@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
@@ -1,5 +1,5 @@
1
1
  // src/config/validation.ts
2
- import { z as z74 } from "zod";
2
+ import { z as z72 } from "zod";
3
3
 
4
4
  // ../api/src/apiEndpointTypes.ts
5
5
  function blockedDemoMutationPolicy(classification, publicMessage) {
@@ -6768,7 +6768,7 @@ var navigationLinkInputSchema = z2.discriminatedUnion(
6768
6768
  );
6769
6769
 
6770
6770
  // ../api/src/sdkConfig/contracts.ts
6771
- import { z as z65 } from "zod";
6771
+ import { z as z63 } from "zod";
6772
6772
 
6773
6773
  // ../blocks/src/system/manifest/augmentManifest.ts
6774
6774
  function augmentManifest(manifest) {
@@ -7196,12 +7196,17 @@ var visibleWhenPredicateSchema = z4.object({
7196
7196
  minItems: z4.number().int().nonnegative().optional(),
7197
7197
  maxItems: z4.number().int().nonnegative().optional()
7198
7198
  });
7199
- var visibleWhenSchema = z4.union([
7200
- visibleWhenPredicateSchema,
7201
- z4.object({
7202
- allOf: z4.array(visibleWhenPredicateSchema).min(1)
7203
- })
7204
- ]);
7199
+ var visibleWhenSchema = z4.lazy(
7200
+ () => z4.union([
7201
+ visibleWhenPredicateSchema,
7202
+ z4.object({
7203
+ allOf: z4.array(visibleWhenSchema).min(1)
7204
+ }),
7205
+ z4.object({
7206
+ anyOf: z4.array(visibleWhenSchema).min(1)
7207
+ })
7208
+ ])
7209
+ );
7205
7210
  var uiSchema = z4.object({
7206
7211
  widget: z4.string().optional(),
7207
7212
  // Container/widget presets (used by Group/Repeater widgets themselves, not for widget selection)
@@ -20106,9 +20111,6 @@ var heroCopyFragment = defineFragment({
20106
20111
  maxLength: 600
20107
20112
  }
20108
20113
  ],
20109
- // Layout order is [eyebrow, headline, subheadline]. The hero block's
20110
- // `splitEditorial` variant reads these nodes by index; keep the order stable
20111
- // (it fails fast at import if the count changes).
20112
20114
  layout: [
20113
20115
  text(
20114
20116
  {
@@ -22346,32 +22348,6 @@ var splitReverseLayout = splitLayoutWith([
22346
22348
  splitContentColumn,
22347
22349
  splitImageColumn
22348
22350
  ]);
22349
- var heroEyebrowNode = heroCopyFragment.layout[0];
22350
- var heroHeadlineNode = heroCopyFragment.layout[1];
22351
- var heroSubheadlineNode = heroCopyFragment.layout[2];
22352
- var heroCtaRowNode = heroCtaRowFragment.layout[0];
22353
- if (!heroEyebrowNode || !heroHeadlineNode || !heroSubheadlineNode || !heroCtaRowNode) {
22354
- throw new Error("Hero copy/CTA fragments are missing their expected layout nodes.");
22355
- }
22356
- var heroEditorialBottomRow = inline(
22357
- {
22358
- gap: "lg",
22359
- align: "end",
22360
- justify: "start",
22361
- wrap: true,
22362
- className: "rb-w-full"
22363
- },
22364
- [heroSubheadlineNode, heroCtaRowNode]
22365
- );
22366
- var splitEditorialContentColumn = heroContentWrapper(
22367
- [heroEyebrowNode, heroHeadlineNode, heroEditorialBottomRow],
22368
- "md",
22369
- "rb-w-full rb-text-left"
22370
- );
22371
- var splitEditorialLayout = splitLayoutWith([
22372
- splitEditorialContentColumn,
22373
- splitImageColumn
22374
- ]);
22375
22351
  var heroConfig = {
22376
22352
  id: "block.hero",
22377
22353
  title: "Hero",
@@ -22395,7 +22371,8 @@ var heroConfig = {
22395
22371
  id: "imageShape",
22396
22372
  label: "Image shape",
22397
22373
  defaultValue: "default",
22398
- uiIntent: "display"
22374
+ uiIntent: "display",
22375
+ visibleWhen: { field: "variant", oneOf: ["split", "splitReverse"] }
22399
22376
  })
22400
22377
  ],
22401
22378
  layout: classicLayout,
@@ -22403,8 +22380,7 @@ var heroConfig = {
22403
22380
  classic: classicLayout,
22404
22381
  micro: microLayout,
22405
22382
  split: splitLayout,
22406
- splitReverse: splitReverseLayout,
22407
- splitEditorial: splitEditorialLayout
22383
+ splitReverse: splitReverseLayout
22408
22384
  },
22409
22385
  defaultVariant: "classic",
22410
22386
  description: "Hero section with headline, subtitle, and repeatable CTAs.",
@@ -24280,8 +24256,10 @@ function resolveGeneratedHeroLayoutStyles(content) {
24280
24256
  return isPlainObject(raw) ? raw : null;
24281
24257
  }
24282
24258
  function readHeroLayoutString(content, generatedKey, fallbackKey = generatedKey) {
24259
+ const explicitValue = readString(content, fallbackKey);
24260
+ if (explicitValue !== void 0) return explicitValue;
24283
24261
  const generated = resolveGeneratedHeroLayoutStyles(content);
24284
- return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : readString(content, fallbackKey);
24262
+ return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : void 0;
24285
24263
  }
24286
24264
  function resolveHeroVariant(content) {
24287
24265
  const variant = readString(content, "variant");
@@ -24294,7 +24272,7 @@ function resolveHeroContentAlignment(content) {
24294
24272
  const raw = readHeroLayoutString(content, "contentAlignment");
24295
24273
  if (raw === "left" || raw === "center" || raw === "right") return raw;
24296
24274
  const variant = resolveHeroVariant(content);
24297
- if (variant === "split" || variant === "splitReverse" || variant === "splitEditorial") return "left";
24275
+ if (variant === "split" || variant === "splitReverse") return "left";
24298
24276
  return "center";
24299
24277
  }
24300
24278
  function resolveHeroVerticalAlignment(content) {
@@ -24304,7 +24282,7 @@ function resolveHeroVerticalAlignment(content) {
24304
24282
  const minHeight = sectionStyles?.minHeight;
24305
24283
  if (minHeight === "banner" || minHeight === "hero" || minHeight === "immersive") return "center";
24306
24284
  const variant = resolveHeroVariant(content);
24307
- if (variant === "split" || variant === "splitReverse" || variant === "splitEditorial") return "center";
24285
+ if (variant === "split" || variant === "splitReverse") return "center";
24308
24286
  return "top";
24309
24287
  }
24310
24288
  function resolveHeroContentMaxWidth(content) {
@@ -27870,9 +27848,6 @@ var appointmentBookingBlockDefinition = {
27870
27848
  }
27871
27849
  };
27872
27850
 
27873
- // ../blocks/src/system/blocks/event-registration.ts
27874
- import { z as z47 } from "zod";
27875
-
27876
27851
  // ../blocks/src/system/blocks/events/shared/schemas.ts
27877
27852
  import { z as z43 } from "zod";
27878
27853
 
@@ -28487,24 +28462,57 @@ function normalizeEventStaffMemberId(value) {
28487
28462
  return trimmed ? trimmed : null;
28488
28463
  }
28489
28464
 
28490
- // ../blocks/src/system/blocks/event-registration.shared.ts
28465
+ // ../blocks/src/system/blocks/shop.shared.ts
28491
28466
  import { z as z44 } from "zod";
28492
- var occurrenceContextSchema = z44.object({
28467
+ var publicPassProductSchema = z44.object({
28493
28468
  id: z44.string(),
28494
- seriesId: z44.string(),
28495
- startsAt: z44.string(),
28496
- endsAt: z44.string(),
28497
- timeZone: z44.string(),
28498
- capacityOverride: z44.number().nullable().optional(),
28499
- overrides: z44.record(z44.string(), z44.unknown()).nullable().optional()
28469
+ productUseCase: z44.enum(["event_pass", "appointment_package"]).default("event_pass"),
28470
+ name: z44.string(),
28471
+ description: z44.string().nullable(),
28472
+ price: z44.number(),
28473
+ currency: z44.string(),
28474
+ creditsTotal: z44.number(),
28475
+ pricePerCredit: z44.number(),
28476
+ validDays: z44.number().nullable(),
28477
+ eligibleCategoryIds: z44.array(z44.string()),
28478
+ eligibleCategoryNames: z44.array(z44.string())
28479
+ });
28480
+ var publicPassProductCollectionSchema = z44.object({
28481
+ passes: z44.array(publicPassProductSchema)
28482
+ });
28483
+ var publicMembershipProductSchema = z44.object({
28484
+ id: z44.string(),
28485
+ name: z44.string(),
28486
+ description: z44.string().nullable(),
28487
+ price: z44.number(),
28488
+ currency: z44.string(),
28489
+ billingInterval: z44.enum(["month", "year"]),
28490
+ eligibleCategoryIds: z44.array(z44.string()),
28491
+ eligibleCategoryNames: z44.array(z44.string())
28492
+ });
28493
+ var publicMembershipProductCollectionSchema = z44.object({
28494
+ memberships: z44.array(publicMembershipProductSchema)
28495
+ });
28496
+
28497
+ // ../blocks/src/system/blocks/event-registration.shared.ts
28498
+ import { z as z45 } from "zod";
28499
+ var occurrenceContextSchema = z45.object({
28500
+ id: z45.string(),
28501
+ seriesId: z45.string(),
28502
+ startsAt: z45.string(),
28503
+ endsAt: z45.string(),
28504
+ timeZone: z45.string(),
28505
+ capacityOverride: z45.number().nullable().optional(),
28506
+ overrides: z45.record(z45.string(), z45.unknown()).nullable().optional()
28500
28507
  }).nullable();
28501
28508
 
28502
28509
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28503
- import { z as z46 } from "zod";
28510
+ import { z as z47 } from "zod";
28504
28511
 
28505
28512
  // ../blocks/src/system/constants/events.ts
28506
28513
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
28507
- var eventCalendarDisplayModeValues = ["combined", "month", "week", "list", "timetable"];
28514
+ var eventCalendarDisplayModeValues = ["combined", "calendar", "list", "timetable"];
28515
+ var eventCalendarDefaultViewValues = ["month", "week"];
28508
28516
  var eventCalendarListLayoutValues = ["stack", "grid", "compact"];
28509
28517
  var eventCalendarListLayoutOptions = [
28510
28518
  { id: "stack", label: "Stack" },
@@ -28514,6 +28522,9 @@ var eventCalendarListLayoutOptions = [
28514
28522
  function isEventCalendarDisplayMode(value) {
28515
28523
  return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
28516
28524
  }
28525
+ function isEventCalendarDefaultView(value) {
28526
+ return typeof value === "string" && eventCalendarDefaultViewValues.includes(value);
28527
+ }
28517
28528
  function isEventCalendarListLayout(value) {
28518
28529
  return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
28519
28530
  }
@@ -28654,16 +28665,17 @@ function readAmount(value) {
28654
28665
  }
28655
28666
 
28656
28667
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
28657
- import { z as z45 } from "zod";
28658
- var previewStageSchema = z45.enum(["preview", "published"]);
28659
- var registrationButtonVariantSchema = z45.enum(["primary", "secondary", "outline"]);
28660
- var eventButtonVariantSchema = z45.enum(["primary", "secondary", "outline", "link"]);
28661
- var eventLayoutSchema = z45.enum(eventCalendarListLayoutValues);
28662
- var eventCalendarDisplayModeSchema = z45.enum(eventCalendarDisplayModeValues);
28663
- var columnOptionSchema = z45.enum(["2", "3", "4"]);
28664
- var weekStartSchema = z45.enum(["sunday", "monday"]);
28665
- var filterAutoShowSchema = z45.enum(["auto", "always", "never"]);
28666
- var calendarTabViewsSchema = z45.enum(["both", "month", "week"]);
28668
+ import { z as z46 } from "zod";
28669
+ var previewStageSchema = z46.enum(["preview", "published"]);
28670
+ var registrationButtonVariantSchema = z46.enum(["primary", "secondary", "outline"]);
28671
+ var eventButtonVariantSchema = z46.enum(["primary", "secondary", "outline", "link"]);
28672
+ var eventLayoutSchema = z46.enum(eventCalendarListLayoutValues);
28673
+ var eventCalendarDisplayModeSchema = z46.enum(eventCalendarDisplayModeValues);
28674
+ var eventCalendarDefaultViewSchema = z46.enum(eventCalendarDefaultViewValues);
28675
+ var columnOptionSchema = z46.enum(["2", "3", "4"]);
28676
+ var weekStartSchema = z46.enum(["sunday", "monday"]);
28677
+ var filterAutoShowSchema = z46.enum(["auto", "always", "never"]);
28678
+ var calendarTabViewsSchema = z46.enum(["both", "month", "week"]);
28667
28679
 
28668
28680
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
28669
28681
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -28681,7 +28693,7 @@ function eventMatchesOccurrenceId(event, occurrenceId) {
28681
28693
  function findPreSelectedEvent(input) {
28682
28694
  const occurrenceContext = input.occurrenceContext;
28683
28695
  if (!occurrenceContext) {
28684
- return null;
28696
+ return input.scopedEvents.length === 1 ? input.scopedEvents[0] ?? null : null;
28685
28697
  }
28686
28698
  const contextDate = getBookingLocalDateKey(toScheduledBookingDateTime({
28687
28699
  startsAt: occurrenceContext.startsAt,
@@ -28723,68 +28735,72 @@ function toRegistrationEvents(events) {
28723
28735
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28724
28736
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
28725
28737
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
28726
- var contentEntrySchema = z46.object({
28727
- id: z46.string(),
28728
- slug: z46.string(),
28729
- contentTypeSlug: z46.string()
28738
+ var contentEntrySchema = z47.object({
28739
+ id: z47.string(),
28740
+ slug: z47.string(),
28741
+ contentTypeSlug: z47.string()
28730
28742
  });
28731
- var eventRegistrationPublicEventSchema = z46.preprocess(
28743
+ var eventRegistrationPublicEventSchema = z47.preprocess(
28732
28744
  normalizeEventRegistrationEventInput,
28733
28745
  publicEventSchema
28734
28746
  );
28735
- var eventRegistrationSourceSchema = z46.object({
28736
- siteId: z46.string().optional(),
28737
- apiBaseUrl: z46.string().optional(),
28738
- portalToken: z46.string().nullable().optional(),
28739
- previewToken: z46.string().nullable().optional(),
28747
+ var eventRegistrationSourceSchema = z47.object({
28748
+ siteId: z47.string().optional(),
28749
+ apiBaseUrl: z47.string().optional(),
28750
+ portalToken: z47.string().nullable().optional(),
28751
+ previewToken: z47.string().nullable().optional(),
28740
28752
  occurrenceContext: occurrenceContextSchema.optional(),
28741
28753
  contentEntry: contentEntrySchema.nullable().optional(),
28742
- events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
28743
- className: z46.string().nullable().optional(),
28744
- buttonText: z46.string().nullable().optional(),
28745
- maxTickets: z46.string().nullable().optional(),
28746
- showVenue: z46.boolean().optional(),
28747
- showCapacity: z46.boolean().optional(),
28748
- successMessage: z46.string().optional(),
28749
- waitlistMessage: z46.string().optional(),
28754
+ events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
28755
+ className: z47.string().nullable().optional(),
28756
+ buttonText: z47.string().nullable().optional(),
28757
+ maxTickets: z47.string().nullable().optional(),
28758
+ showVenue: z47.boolean().optional(),
28759
+ showCapacity: z47.boolean().optional(),
28760
+ successMessage: z47.string().optional(),
28761
+ waitlistMessage: z47.string().optional(),
28750
28762
  buttonVariant: registrationButtonVariantSchema.optional(),
28751
- overlayEnabled: z46.boolean().optional(),
28752
- spamProtectionEnabled: z46.boolean().optional(),
28763
+ overlayEnabled: z47.boolean().optional(),
28764
+ spamProtectionEnabled: z47.boolean().optional(),
28753
28765
  stage: previewStageSchema.optional(),
28754
- supportEmail: z46.string().optional()
28755
- });
28756
- var eventRegistrationDisplaySchema = z46.object({
28757
- kind: z46.literal("event-registration"),
28758
- state: z46.literal("generic-shell"),
28759
- className: z46.string().nullable(),
28760
- titleText: z46.string(),
28761
- bodyText: z46.string(),
28762
- stepLabels: z46.array(z46.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28763
- summaryButtonText: z46.string()
28764
- });
28765
- var eventRegistrationHydrationSchema = z46.object({
28766
+ supportEmail: z47.string().optional(),
28767
+ sitePasses: publicPassProductCollectionSchema.nullable().optional(),
28768
+ siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
28769
+ });
28770
+ var eventRegistrationDisplaySchema = z47.object({
28771
+ kind: z47.literal("event-registration"),
28772
+ state: z47.literal("generic-shell"),
28773
+ className: z47.string().nullable(),
28774
+ titleText: z47.string(),
28775
+ bodyText: z47.string(),
28776
+ stepLabels: z47.array(z47.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28777
+ summaryButtonText: z47.string()
28778
+ });
28779
+ var eventRegistrationHydrationSchema = z47.object({
28766
28780
  occurrenceContext: occurrenceContextSchema.optional(),
28767
28781
  contentEntry: contentEntrySchema.nullable().optional(),
28768
- events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
28769
- maxTickets: z46.string().optional(),
28770
- showVenue: z46.boolean().optional(),
28771
- showCapacity: z46.boolean().optional(),
28772
- successMessage: z46.string().optional(),
28773
- waitlistMessage: z46.string().optional(),
28782
+ events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
28783
+ maxTickets: z47.string().optional(),
28784
+ showVenue: z47.boolean().optional(),
28785
+ showCapacity: z47.boolean().optional(),
28786
+ successMessage: z47.string().optional(),
28787
+ waitlistMessage: z47.string().optional(),
28774
28788
  buttonVariant: registrationButtonVariantSchema.optional(),
28775
- overlayEnabled: z46.boolean().optional(),
28776
- spamProtectionEnabled: z46.boolean().optional(),
28777
- supportEmail: z46.string().optional()
28789
+ overlayEnabled: z47.boolean().optional(),
28790
+ spamProtectionEnabled: z47.boolean().optional(),
28791
+ supportEmail: z47.string().optional(),
28792
+ sitePasses: publicPassProductCollectionSchema.nullable().optional(),
28793
+ siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
28778
28794
  });
28779
- var eventRegistrationRenderSchema = z46.object({
28795
+ var eventRegistrationRenderSchema = z47.object({
28780
28796
  display: eventRegistrationDisplaySchema,
28781
28797
  hydration: eventRegistrationHydrationSchema
28782
28798
  });
28783
- var eventRegistrationIslandMetaCodec = createZodCodec(z46.object({
28784
- siteId: z46.string().optional(),
28785
- apiBaseUrl: z46.string().optional(),
28786
- portalToken: z46.string().nullable().optional(),
28787
- previewToken: z46.string().nullable().optional(),
28799
+ var eventRegistrationIslandMetaCodec = createZodCodec(z47.object({
28800
+ siteId: z47.string().optional(),
28801
+ apiBaseUrl: z47.string().optional(),
28802
+ portalToken: z47.string().nullable().optional(),
28803
+ previewToken: z47.string().nullable().optional(),
28788
28804
  stage: previewStageSchema.optional()
28789
28805
  }));
28790
28806
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -28890,7 +28906,9 @@ var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
28890
28906
  buttonVariant: source.buttonVariant,
28891
28907
  overlayEnabled: source.overlayEnabled,
28892
28908
  spamProtectionEnabled: source.spamProtectionEnabled,
28893
- supportEmail: source.supportEmail
28909
+ supportEmail: source.supportEmail,
28910
+ sitePasses: source.sitePasses ?? null,
28911
+ siteMemberships: source.siteMemberships ?? null
28894
28912
  }
28895
28913
  })
28896
28914
  });
@@ -29072,6 +29090,8 @@ var eventRegistrationManifest = createBlockManifest({
29072
29090
  },
29073
29091
  // Event data from loader
29074
29092
  events: { $bind: { from: "data.events" } },
29093
+ sitePasses: { $bind: { from: "data.sitePasses" } },
29094
+ siteMemberships: { $bind: { from: "data.siteMemberships" } },
29075
29095
  // Stage for preview mode (allows registering for draft events)
29076
29096
  stage: {
29077
29097
  $bind: { from: "$root.previewStage", fallback: "published" }
@@ -29090,7 +29110,9 @@ var eventRegistrationBlockDefinition = {
29090
29110
  manifest: eventRegistrationManifest,
29091
29111
  runtime: eventRegistrationBlockRuntime,
29092
29112
  dataSchemas: {
29093
- events: z47.array(publicEventSchema).optional(),
29113
+ events: publicEventsArraySchema.optional(),
29114
+ sitePasses: publicPassProductCollectionSchema.optional(),
29115
+ siteMemberships: publicMembershipProductCollectionSchema.optional(),
29094
29116
  occurrenceContext: occurrenceContextSchema.optional()
29095
29117
  },
29096
29118
  dataLoaders: {
@@ -29109,6 +29131,20 @@ var eventRegistrationBlockDefinition = {
29109
29131
  entryId: { $bind: { from: "$root.contentEntry._entryId", fallback: "" } }
29110
29132
  },
29111
29133
  mode: "server"
29134
+ },
29135
+ sitePasses: {
29136
+ endpoint: "listPublicPasses",
29137
+ params: {
29138
+ siteId: { $bind: { from: "$root.siteId" } }
29139
+ },
29140
+ mode: "server"
29141
+ },
29142
+ siteMemberships: {
29143
+ endpoint: "listPublicMemberships",
29144
+ params: {
29145
+ siteId: { $bind: { from: "$root.siteId" } }
29146
+ },
29147
+ mode: "server"
29112
29148
  }
29113
29149
  }
29114
29150
  };
@@ -29440,35 +29476,7 @@ var courseRegistrationBlockDefinition = {
29440
29476
  };
29441
29477
 
29442
29478
  // ../blocks/src/system/blocks/event-details.ts
29443
- import { z as z50 } from "zod";
29444
-
29445
- // ../blocks/src/system/blocks/shop.shared.ts
29446
29479
  import { z as z49 } from "zod";
29447
- var publicPassProductSchema = z49.object({
29448
- id: z49.string(),
29449
- productUseCase: z49.enum(["event_pass", "appointment_package"]).default("event_pass"),
29450
- name: z49.string(),
29451
- description: z49.string().nullable(),
29452
- price: z49.number(),
29453
- currency: z49.string(),
29454
- creditsTotal: z49.number(),
29455
- pricePerCredit: z49.number(),
29456
- validDays: z49.number().nullable(),
29457
- eligibleCategoryIds: z49.array(z49.string()),
29458
- eligibleCategoryNames: z49.array(z49.string())
29459
- });
29460
- var publicMembershipProductSchema = z49.object({
29461
- id: z49.string(),
29462
- name: z49.string(),
29463
- description: z49.string().nullable(),
29464
- price: z49.number(),
29465
- currency: z49.string(),
29466
- billingInterval: z49.enum(["month", "year"]),
29467
- eligibleCategoryIds: z49.array(z49.string()),
29468
- eligibleCategoryNames: z49.array(z49.string())
29469
- });
29470
-
29471
- // ../blocks/src/system/blocks/event-details.ts
29472
29480
  var eventDetailsManifest = createBlockManifest({
29473
29481
  id: "block.event-details",
29474
29482
  version: "1.0.0",
@@ -29600,40 +29608,40 @@ var eventDetailsManifest = createBlockManifest({
29600
29608
  })
29601
29609
  ]
29602
29610
  });
29603
- var occurrenceContextSchema2 = z50.object({
29604
- id: z50.string(),
29605
- seriesId: z50.string(),
29606
- startsAt: z50.string(),
29607
- endsAt: z50.string(),
29608
- timeZone: z50.string(),
29609
- capacityOverride: z50.number().nullable().optional(),
29610
- overrides: z50.record(z50.string(), z50.unknown()).nullable().optional()
29611
+ var occurrenceContextSchema2 = z49.object({
29612
+ id: z49.string(),
29613
+ seriesId: z49.string(),
29614
+ startsAt: z49.string(),
29615
+ endsAt: z49.string(),
29616
+ timeZone: z49.string(),
29617
+ capacityOverride: z49.number().nullable().optional(),
29618
+ overrides: z49.record(z49.string(), z49.unknown()).nullable().optional()
29611
29619
  }).nullable();
29612
- var eventAutoApplyDiscountPreviewBaseSchema = z50.object({
29613
- id: z50.string(),
29614
- publicLabel: z50.string(),
29615
- description: z50.string().nullable(),
29616
- minTicketsRequired: z50.number().nullable()
29620
+ var eventAutoApplyDiscountPreviewBaseSchema = z49.object({
29621
+ id: z49.string(),
29622
+ publicLabel: z49.string(),
29623
+ description: z49.string().nullable(),
29624
+ minTicketsRequired: z49.number().nullable()
29617
29625
  });
29618
- var eventAutoApplyDiscountPreviewSchema = z50.discriminatedUnion("discountType", [
29626
+ var eventAutoApplyDiscountPreviewSchema = z49.discriminatedUnion("discountType", [
29619
29627
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29620
- discountType: z50.literal("percent"),
29621
- discountPercent: z50.number(),
29622
- discountAmountCents: z50.null()
29628
+ discountType: z49.literal("percent"),
29629
+ discountPercent: z49.number(),
29630
+ discountAmountCents: z49.null()
29623
29631
  }),
29624
29632
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29625
- discountType: z50.literal("fixed"),
29626
- discountPercent: z50.null(),
29627
- discountAmountCents: z50.number()
29633
+ discountType: z49.literal("fixed"),
29634
+ discountPercent: z49.null(),
29635
+ discountAmountCents: z49.number()
29628
29636
  })
29629
29637
  ]);
29630
29638
  var eventDetailsBlockDefinition = {
29631
29639
  manifest: eventDetailsManifest,
29632
29640
  dataSchemas: {
29633
- eventDetailsData: z50.object({
29641
+ eventDetailsData: z49.object({
29634
29642
  events: publicEventsArraySchema,
29635
- sitePasses: z50.object({ passes: z50.array(publicPassProductSchema) }),
29636
- siteMemberships: z50.object({ memberships: z50.array(publicMembershipProductSchema) }),
29643
+ sitePasses: publicPassProductCollectionSchema,
29644
+ siteMemberships: publicMembershipProductCollectionSchema,
29637
29645
  autoApplyDiscount: eventAutoApplyDiscountPreviewSchema.nullable().optional().default(null)
29638
29646
  }).optional(),
29639
29647
  occurrenceContext: occurrenceContextSchema2.optional()
@@ -29957,7 +29965,7 @@ var eventSpotlightBlockDefinition = {
29957
29965
  };
29958
29966
 
29959
29967
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
29960
- import { z as z52 } from "zod";
29968
+ import { z as z51 } from "zod";
29961
29969
 
29962
29970
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
29963
29971
  var COLUMN_CLASSES = {
@@ -30065,16 +30073,16 @@ function computeMediaTransformStyle(value, style, targetAspectRatio, options) {
30065
30073
  }
30066
30074
 
30067
30075
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
30068
- import { z as z51 } from "zod";
30076
+ import { z as z50 } from "zod";
30069
30077
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
30070
- var eventPageSizeSchema = z51.union([
30071
- z51.literal(3),
30072
- z51.literal(6),
30073
- z51.literal(10),
30074
- z51.literal(12),
30075
- z51.literal(20),
30076
- z51.literal(24),
30077
- z51.literal(30)
30078
+ var eventPageSizeSchema = z50.union([
30079
+ z50.literal(3),
30080
+ z50.literal(6),
30081
+ z50.literal(10),
30082
+ z50.literal(12),
30083
+ z50.literal(20),
30084
+ z50.literal(24),
30085
+ z50.literal(30)
30078
30086
  ]);
30079
30087
  var eventPageSizeSet = new Set(eventPageSizeValues);
30080
30088
  function resolveEventPageSize(value, fallback = 12) {
@@ -30084,15 +30092,15 @@ function resolveEventPageSize(value, fallback = 12) {
30084
30092
  function resolveEventCalendarListPageSize(input) {
30085
30093
  return resolveEventPageSize(input.eventsPerPage);
30086
30094
  }
30087
- var eventListPaginationActionSchema = z51.discriminatedUnion("kind", [
30088
- z51.object({
30089
- kind: z51.literal("loadMore"),
30090
- label: z51.string()
30095
+ var eventListPaginationActionSchema = z50.discriminatedUnion("kind", [
30096
+ z50.object({
30097
+ kind: z50.literal("loadMore"),
30098
+ label: z50.string()
30091
30099
  }),
30092
- z51.object({
30093
- kind: z51.literal("seeAllLink"),
30094
- label: z51.string(),
30095
- href: z51.string()
30100
+ z50.object({
30101
+ kind: z50.literal("seeAllLink"),
30102
+ label: z50.string(),
30103
+ href: z50.string()
30096
30104
  })
30097
30105
  ]);
30098
30106
  function resolveEventListPaginationAction(input) {
@@ -30105,89 +30113,89 @@ function resolveEventListPaginationAction(input) {
30105
30113
  }
30106
30114
 
30107
30115
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
30108
- var legacyEventCardVariantSchema = z52.enum(["variant1", "variant2"]);
30109
- var eventCardVariantInputSchema = z52.union([
30116
+ var legacyEventCardVariantSchema = z51.enum(["variant1", "variant2"]);
30117
+ var eventCardVariantInputSchema = z51.union([
30110
30118
  cardVariantRoleSchema,
30111
30119
  legacyEventCardVariantSchema
30112
30120
  ]);
30113
- var cardOrientationSchema = z52.enum(["vertical", "horizontal"]);
30114
- var eventBlockKindSchema = z52.enum(eventBlockKindValues);
30115
- var eventSurfaceScopeSchema = z52.enum(eventSurfaceScopeValues);
30116
- var eventScheduleScopeSchema2 = z52.enum(eventScheduleScopeValues);
30117
- var eventListingSourceSchema = z52.object({
30118
- events: z52.array(publicEventSchema).nullable().optional(),
30119
- siteId: z52.string(),
30120
- apiBaseUrl: z52.string().optional(),
30121
+ var cardOrientationSchema = z51.enum(["vertical", "horizontal"]);
30122
+ var eventBlockKindSchema = z51.enum(eventBlockKindValues);
30123
+ var eventSurfaceScopeSchema = z51.enum(eventSurfaceScopeValues);
30124
+ var eventScheduleScopeSchema2 = z51.enum(eventScheduleScopeValues);
30125
+ var eventListingSourceSchema = z51.object({
30126
+ events: z51.array(publicEventSchema).nullable().optional(),
30127
+ siteId: z51.string(),
30128
+ apiBaseUrl: z51.string().optional(),
30121
30129
  stage: previewStageSchema.optional(),
30122
30130
  layout: eventLayoutSchema.optional(),
30123
30131
  columns: columnOptionSchema.optional(),
30124
- eventsPerPage: z52.string().optional(),
30125
- paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30126
- seeAllUrl: z52.string().optional(),
30127
- loadMoreText: z52.string().optional(),
30132
+ eventsPerPage: z51.string().optional(),
30133
+ paginationMode: z51.enum(["loadMore", "seeAllLink"]).optional(),
30134
+ seeAllUrl: z51.string().optional(),
30135
+ loadMoreText: z51.string().optional(),
30128
30136
  cardVariant: eventCardVariantInputSchema.optional(),
30129
30137
  buttonVariant: eventButtonVariantSchema.optional(),
30130
- buttonText: z52.string().optional(),
30131
- showVenue: z52.boolean().optional(),
30132
- showMap: z52.boolean().optional(),
30133
- showCapacity: z52.boolean().optional(),
30134
- emptyMessage: z52.string().optional(),
30135
- className: z52.string().optional(),
30136
- showFilters: z52.boolean().nullable().optional(),
30138
+ buttonText: z51.string().optional(),
30139
+ showVenue: z51.boolean().optional(),
30140
+ showMap: z51.boolean().optional(),
30141
+ showCapacity: z51.boolean().optional(),
30142
+ emptyMessage: z51.string().optional(),
30143
+ className: z51.string().optional(),
30144
+ showFilters: z51.boolean().nullable().optional(),
30137
30145
  showCategoryFilter: filterAutoShowSchema.optional(),
30138
- showVenueFilter: z52.boolean().nullable().optional(),
30139
- showStaffFilter: z52.boolean().nullable().optional(),
30146
+ showVenueFilter: z51.boolean().nullable().optional(),
30147
+ showStaffFilter: z51.boolean().nullable().optional(),
30140
30148
  eventKind: eventBlockKindSchema.nullable().optional(),
30141
30149
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
30142
- filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30150
+ filterEventPresets: z51.union([z51.string(), z51.array(z51.string())]).nullable().optional(),
30143
30151
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
30144
- filterCategoryIds: z52.string().nullable().optional(),
30145
- filterStaffMemberId: z52.string().nullable().optional(),
30146
- filterVenueId: z52.string().nullable().optional()
30152
+ filterCategoryIds: z51.string().nullable().optional(),
30153
+ filterStaffMemberId: z51.string().nullable().optional(),
30154
+ filterVenueId: z51.string().nullable().optional()
30147
30155
  });
30148
- var eventListingDisplaySchema = z52.object({
30149
- kind: z52.literal("event-listing"),
30150
- state: z52.enum(["loading", "empty", "ready"]),
30156
+ var eventListingDisplaySchema = z51.object({
30157
+ kind: z51.literal("event-listing"),
30158
+ state: z51.enum(["loading", "empty", "ready"]),
30151
30159
  listLayout: eventLayoutSchema,
30152
- className: z52.string().nullable(),
30153
- emptyMessage: z52.string(),
30154
- loadingMessage: z52.string(),
30155
- containerClass: z52.string(),
30160
+ className: z51.string().nullable(),
30161
+ emptyMessage: z51.string(),
30162
+ loadingMessage: z51.string(),
30163
+ containerClass: z51.string(),
30156
30164
  cardVariant: cardVariantRoleSchema,
30157
30165
  buttonVariant: eventButtonVariantSchema,
30158
- buttonText: z52.string(),
30159
- showVenue: z52.boolean(),
30160
- showMap: z52.boolean(),
30161
- showCapacity: z52.boolean(),
30166
+ buttonText: z51.string(),
30167
+ showVenue: z51.boolean(),
30168
+ showMap: z51.boolean(),
30169
+ showCapacity: z51.boolean(),
30162
30170
  orientation: cardOrientationSchema,
30163
- events: z52.array(publicEventSchema)
30171
+ events: z51.array(publicEventSchema)
30164
30172
  });
30165
- var eventListingHydrationSchema = z52.object({
30166
- siteId: z52.string(),
30173
+ var eventListingHydrationSchema = z51.object({
30174
+ siteId: z51.string(),
30167
30175
  stage: previewStageSchema.optional(),
30168
30176
  eventsPerPage: eventPageSizeSchema,
30169
30177
  paginationAction: eventListPaginationActionSchema,
30170
- showFilters: z52.boolean(),
30178
+ showFilters: z51.boolean(),
30171
30179
  showCategoryFilter: filterAutoShowSchema,
30172
- showVenueFilter: z52.boolean(),
30173
- showStaffFilter: z52.boolean(),
30180
+ showVenueFilter: z51.boolean(),
30181
+ showStaffFilter: z51.boolean(),
30174
30182
  eventKind: eventBlockKindSchema,
30175
30183
  eventSurface: eventSurfaceScopeSchema,
30176
- filterEventPresets: z52.string().nullable(),
30184
+ filterEventPresets: z51.string().nullable(),
30177
30185
  scheduleScope: eventScheduleScopeSchema2,
30178
- filterCategoryIds: z52.string().nullable().optional(),
30179
- filterStaffMemberId: z52.string().nullable().optional(),
30180
- filterVenueId: z52.string().nullable().optional(),
30181
- fetchInitialEventsOnMount: z52.boolean()
30186
+ filterCategoryIds: z51.string().nullable().optional(),
30187
+ filterStaffMemberId: z51.string().nullable().optional(),
30188
+ filterVenueId: z51.string().nullable().optional(),
30189
+ fetchInitialEventsOnMount: z51.boolean()
30182
30190
  });
30183
- var eventListingRenderSchema = z52.object({
30191
+ var eventListingRenderSchema = z51.object({
30184
30192
  display: eventListingDisplaySchema,
30185
30193
  hydration: eventListingHydrationSchema
30186
30194
  });
30187
30195
  var eventListingIslandMetaCodec = createZodCodec(
30188
- z52.object({
30189
- siteId: z52.string(),
30190
- apiBaseUrl: z52.string().optional(),
30196
+ z51.object({
30197
+ siteId: z51.string(),
30198
+ apiBaseUrl: z51.string().optional(),
30191
30199
  stage: previewStageSchema.optional()
30192
30200
  })
30193
30201
  );
@@ -30554,15 +30562,15 @@ var eventListingBlockDefinition = {
30554
30562
  };
30555
30563
 
30556
30564
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
30557
- import { z as z53 } from "zod";
30558
- var eventBlockKindSchema2 = z53.enum(eventBlockKindValues);
30559
- var eventSurfaceScopeSchema2 = z53.enum(eventSurfaceScopeValues);
30560
- var eventScheduleScopeSchema3 = z53.enum(eventScheduleScopeValues);
30561
- var eventCalendarSourceSchema = z53.object(
30565
+ import { z as z52 } from "zod";
30566
+ var eventBlockKindSchema2 = z52.enum(eventBlockKindValues);
30567
+ var eventSurfaceScopeSchema2 = z52.enum(eventSurfaceScopeValues);
30568
+ var eventScheduleScopeSchema3 = z52.enum(eventScheduleScopeValues);
30569
+ var eventCalendarSourceSchema = z52.object(
30562
30570
  {
30563
- events: z53.array(publicEventSchema).nullable().optional(),
30564
- siteId: z53.string(),
30565
- apiBaseUrl: z53.string().optional(),
30571
+ events: z52.array(publicEventSchema).nullable().optional(),
30572
+ siteId: z52.string(),
30573
+ apiBaseUrl: z52.string().optional(),
30566
30574
  stage: previewStageSchema.optional(),
30567
30575
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
30568
30576
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -30570,78 +30578,80 @@ var eventCalendarSourceSchema = z53.object(
30570
30578
  listColumns: columnOptionSchema.optional(),
30571
30579
  layout: eventLayoutSchema.optional(),
30572
30580
  columns: columnOptionSchema.optional(),
30573
- eventsPerPage: z53.string().optional(),
30574
- paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
30575
- seeAllUrl: z53.string().optional(),
30576
- loadMoreText: z53.string().optional(),
30581
+ eventsPerPage: z52.string().optional(),
30582
+ paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30583
+ seeAllUrl: z52.string().optional(),
30584
+ loadMoreText: z52.string().optional(),
30577
30585
  startOfWeek: weekStartSchema.optional(),
30578
30586
  calendarTabViews: calendarTabViewsSchema.optional(),
30579
- showFilters: z53.boolean().nullable().optional(),
30587
+ defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
30588
+ showFilters: z52.boolean().nullable().optional(),
30580
30589
  showCategoryFilter: filterAutoShowSchema.optional(),
30581
- showVenueFilter: z53.boolean().nullable().optional(),
30582
- showStaffFilter: z53.boolean().nullable().optional(),
30590
+ showVenueFilter: z52.boolean().nullable().optional(),
30591
+ showStaffFilter: z52.boolean().nullable().optional(),
30583
30592
  kind: eventBlockKindSchema2.nullable().optional(),
30584
30593
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
30585
- filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30594
+ filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30586
30595
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
30587
- filterCategoryIds: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30588
- filterStaffMemberId: z53.string().nullable().optional(),
30589
- filterVenueId: z53.string().nullable().optional(),
30596
+ filterCategoryIds: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30597
+ filterStaffMemberId: z52.string().nullable().optional(),
30598
+ filterVenueId: z52.string().nullable().optional(),
30590
30599
  buttonVariant: eventButtonVariantSchema.optional(),
30591
- buttonText: z53.string().optional(),
30592
- showVenue: z53.boolean().nullable().optional(),
30593
- showMap: z53.boolean().nullable().optional(),
30594
- showCapacity: z53.boolean().nullable().optional(),
30595
- emptyMessage: z53.string().optional(),
30596
- className: z53.string().optional()
30600
+ buttonText: z52.string().optional(),
30601
+ showVenue: z52.boolean().nullable().optional(),
30602
+ showMap: z52.boolean().nullable().optional(),
30603
+ showCapacity: z52.boolean().nullable().optional(),
30604
+ emptyMessage: z52.string().optional(),
30605
+ className: z52.string().optional()
30597
30606
  }
30598
30607
  );
30599
- var eventCalendarDisplaySchema = z53.object({
30600
- kind: z53.literal("event-calendar"),
30608
+ var eventCalendarDisplaySchema = z52.object({
30609
+ kind: z52.literal("event-calendar"),
30601
30610
  displayMode: eventCalendarDisplayModeSchema,
30602
- className: z53.string().nullable(),
30603
- events: z53.array(publicEventSchema),
30611
+ className: z52.string().nullable(),
30612
+ events: z52.array(publicEventSchema),
30604
30613
  listLayout: eventLayoutSchema,
30605
30614
  listColumns: columnOptionSchema,
30606
30615
  eventsPerPage: eventPageSizeSchema,
30607
30616
  paginationAction: eventListPaginationActionSchema,
30608
30617
  startOfWeek: weekStartSchema,
30609
30618
  calendarTabViews: calendarTabViewsSchema,
30610
- showFilters: z53.boolean(),
30619
+ defaultCalendarView: eventCalendarDefaultViewSchema,
30620
+ showFilters: z52.boolean(),
30611
30621
  showCategoryFilter: filterAutoShowSchema,
30612
- showVenueFilter: z53.boolean(),
30613
- showStaffFilter: z53.boolean(),
30622
+ showVenueFilter: z52.boolean(),
30623
+ showStaffFilter: z52.boolean(),
30614
30624
  eventKind: eventBlockKindSchema2,
30615
30625
  eventSurface: eventSurfaceScopeSchema2,
30616
- filterEventPresets: z53.string().nullable(),
30626
+ filterEventPresets: z52.string().nullable(),
30617
30627
  scheduleScope: eventScheduleScopeSchema3,
30618
- filterCategoryIds: z53.string().nullable(),
30619
- filterStaffMemberId: z53.string().nullable(),
30620
- filterVenueId: z53.string().nullable(),
30628
+ filterCategoryIds: z52.string().nullable(),
30629
+ filterStaffMemberId: z52.string().nullable(),
30630
+ filterVenueId: z52.string().nullable(),
30621
30631
  buttonVariant: eventButtonVariantSchema,
30622
- buttonText: z53.string(),
30623
- showVenue: z53.boolean(),
30624
- showMap: z53.boolean(),
30625
- showCapacity: z53.boolean(),
30626
- emptyMessage: z53.string()
30627
- });
30628
- var eventCalendarHydrationSchema = z53.object({
30629
- siteId: z53.string(),
30632
+ buttonText: z52.string(),
30633
+ showVenue: z52.boolean(),
30634
+ showMap: z52.boolean(),
30635
+ showCapacity: z52.boolean(),
30636
+ emptyMessage: z52.string()
30637
+ });
30638
+ var eventCalendarHydrationSchema = z52.object({
30639
+ siteId: z52.string(),
30630
30640
  stage: previewStageSchema.optional(),
30631
- prefetchedEvents: z53.boolean(),
30641
+ prefetchedEvents: z52.boolean(),
30632
30642
  eventKind: eventBlockKindSchema2,
30633
30643
  eventSurface: eventSurfaceScopeSchema2,
30634
- filterEventPresets: z53.string().nullable(),
30644
+ filterEventPresets: z52.string().nullable(),
30635
30645
  scheduleScope: eventScheduleScopeSchema3
30636
30646
  });
30637
- var eventCalendarRenderSchema = z53.object({
30647
+ var eventCalendarRenderSchema = z52.object({
30638
30648
  display: eventCalendarDisplaySchema,
30639
30649
  hydration: eventCalendarHydrationSchema
30640
30650
  });
30641
30651
  var eventCalendarIslandMetaCodec = createZodCodec(
30642
- z53.object({
30643
- siteId: z53.string(),
30644
- apiBaseUrl: z53.string().optional(),
30652
+ z52.object({
30653
+ siteId: z52.string(),
30654
+ apiBaseUrl: z52.string().optional(),
30645
30655
  stage: previewStageSchema.optional()
30646
30656
  })
30647
30657
  );
@@ -30671,6 +30681,7 @@ function buildEventCalendarDisplay(source) {
30671
30681
  }),
30672
30682
  startOfWeek: source.startOfWeek ?? "monday",
30673
30683
  calendarTabViews: source.calendarTabViews ?? "both",
30684
+ defaultCalendarView: source.defaultCalendarView ?? "month",
30674
30685
  showFilters: source.showFilters ?? true,
30675
30686
  showCategoryFilter: source.showCategoryFilter ?? "auto",
30676
30687
  showVenueFilter: source.showVenueFilter ?? false,
@@ -30733,6 +30744,9 @@ function normalizeEventCalendarContent(content) {
30733
30744
  ...variant ? { variant } : {},
30734
30745
  displayMode: normalizeEventCalendarDisplayMode(record.displayMode),
30735
30746
  listLayout: normalizeEventCalendarListLayout(record.listLayout),
30747
+ defaultCalendarView: normalizeEventCalendarDefaultView(
30748
+ record.defaultCalendarView
30749
+ ),
30736
30750
  kind,
30737
30751
  eventSurface: normalizeEventSurfaceScope(record.eventSurface),
30738
30752
  filterEventPresets: normalizeEventSurfacePresets(record.filterEventPresets),
@@ -30750,6 +30764,9 @@ function normalizeEventCalendarDisplayMode(value) {
30750
30764
  function normalizeEventCalendarListLayout(value) {
30751
30765
  return isEventCalendarListLayout(value) ? value : void 0;
30752
30766
  }
30767
+ function normalizeEventCalendarDefaultView(value) {
30768
+ return isEventCalendarDefaultView(value) ? value : void 0;
30769
+ }
30753
30770
  var eventCalendarLayout = [
30754
30771
  styledSection({
30755
30772
  children: sectionContainer(
@@ -30809,6 +30826,9 @@ var eventCalendarLayout = [
30809
30826
  calendarTabViews: {
30810
30827
  $bind: { from: "content.calendarTabViews", fallback: "both" }
30811
30828
  },
30829
+ defaultCalendarView: {
30830
+ $bind: { from: "content.defaultCalendarView", fallback: "month" }
30831
+ },
30812
30832
  // Filtering options
30813
30833
  showFilters: {
30814
30834
  $bind: { from: "content.showFilters", fallback: true }
@@ -30875,8 +30895,7 @@ var eventCalendarAdditionalFields = [
30875
30895
  defaultValue: "combined",
30876
30896
  options: [
30877
30897
  { value: "combined", label: "Combined (List + Calendar tabs)" },
30878
- { value: "month", label: "Month calendar" },
30879
- { value: "week", label: "Week agenda" },
30898
+ { value: "calendar", label: "Calendar" },
30880
30899
  { value: "timetable", label: "Timetable" },
30881
30900
  { value: "list", label: "List" }
30882
30901
  ],
@@ -30915,7 +30934,12 @@ var eventCalendarAdditionalFields = [
30915
30934
  ],
30916
30935
  ui: {
30917
30936
  intent: "display",
30918
- visibleWhen: { field: "listLayout", equals: "grid" }
30937
+ visibleWhen: {
30938
+ allOf: [
30939
+ { field: "variant", oneOf: ["combined", "list"] },
30940
+ { field: "listLayout", equals: "grid" }
30941
+ ]
30942
+ }
30919
30943
  }
30920
30944
  },
30921
30945
  {
@@ -30963,7 +30987,12 @@ var eventCalendarAdditionalFields = [
30963
30987
  required: false,
30964
30988
  ui: {
30965
30989
  intent: "display",
30966
- visibleWhen: { field: "paginationMode", equals: "seeAllLink" }
30990
+ visibleWhen: {
30991
+ allOf: [
30992
+ { field: "variant", oneOf: ["combined", "list"] },
30993
+ { field: "paginationMode", equals: "seeAllLink" }
30994
+ ]
30995
+ }
30967
30996
  }
30968
30997
  },
30969
30998
  {
@@ -30996,7 +31025,7 @@ var eventCalendarAdditionalFields = [
30996
31025
  intent: "display",
30997
31026
  visibleWhen: {
30998
31027
  field: "variant",
30999
- oneOf: ["combined", "month", "week"]
31028
+ oneOf: ["combined", "calendar", "timetable"]
31000
31029
  }
31001
31030
  }
31002
31031
  },
@@ -31019,6 +31048,33 @@ var eventCalendarAdditionalFields = [
31019
31048
  visibleWhen: { field: "variant", equals: "combined" }
31020
31049
  }
31021
31050
  },
31051
+ {
31052
+ id: "defaultCalendarView",
31053
+ type: "select",
31054
+ label: "Calendar view",
31055
+ description: "Choose the standalone calendar view, or the first view in combined mode",
31056
+ required: false,
31057
+ multiple: false,
31058
+ defaultValue: "month",
31059
+ options: [
31060
+ { value: "month", label: "Month" },
31061
+ { value: "week", label: "Week" }
31062
+ ],
31063
+ ui: {
31064
+ intent: "display",
31065
+ visibleWhen: {
31066
+ anyOf: [
31067
+ { field: "variant", equals: "calendar" },
31068
+ {
31069
+ allOf: [
31070
+ { field: "variant", equals: "combined" },
31071
+ { field: "calendarTabViews", equals: "both" }
31072
+ ]
31073
+ }
31074
+ ]
31075
+ }
31076
+ }
31077
+ },
31022
31078
  // Filtering options
31023
31079
  {
31024
31080
  id: "kind",
@@ -31046,7 +31102,7 @@ var eventCalendarAdditionalFields = [
31046
31102
  intent: "display",
31047
31103
  visibleWhen: {
31048
31104
  field: "variant",
31049
- oneOf: ["combined", "list", "timetable"]
31105
+ oneOf: ["combined", "calendar", "list", "timetable"]
31050
31106
  }
31051
31107
  }
31052
31108
  },
@@ -31066,8 +31122,10 @@ var eventCalendarAdditionalFields = [
31066
31122
  ui: {
31067
31123
  intent: "display",
31068
31124
  visibleWhen: {
31069
- field: "variant",
31070
- oneOf: ["combined", "list", "timetable"]
31125
+ allOf: [
31126
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
31127
+ { field: "showFilters", equals: true }
31128
+ ]
31071
31129
  }
31072
31130
  }
31073
31131
  },
@@ -31081,8 +31139,10 @@ var eventCalendarAdditionalFields = [
31081
31139
  ui: {
31082
31140
  intent: "display",
31083
31141
  visibleWhen: {
31084
- field: "variant",
31085
- oneOf: ["combined", "list", "timetable"]
31142
+ allOf: [
31143
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
31144
+ { field: "showFilters", equals: true }
31145
+ ]
31086
31146
  }
31087
31147
  }
31088
31148
  },
@@ -31096,8 +31156,10 @@ var eventCalendarAdditionalFields = [
31096
31156
  ui: {
31097
31157
  intent: "display",
31098
31158
  visibleWhen: {
31099
- field: "variant",
31100
- oneOf: ["combined", "list", "timetable"]
31159
+ allOf: [
31160
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
31161
+ { field: "showFilters", equals: true }
31162
+ ]
31101
31163
  }
31102
31164
  }
31103
31165
  },
@@ -31111,8 +31173,15 @@ var eventCalendarAdditionalFields = [
31111
31173
  ui: {
31112
31174
  intent: "display",
31113
31175
  visibleWhen: {
31114
- field: "variant",
31115
- oneOf: ["combined", "list", "week", "timetable"]
31176
+ anyOf: [
31177
+ { field: "variant", oneOf: ["combined", "list", "timetable"] },
31178
+ {
31179
+ allOf: [
31180
+ { field: "variant", equals: "calendar" },
31181
+ { field: "defaultCalendarView", equals: "week" }
31182
+ ]
31183
+ }
31184
+ ]
31116
31185
  }
31117
31186
  }
31118
31187
  },
@@ -31228,8 +31297,7 @@ var eventCalendarAdditionalFields = [
31228
31297
  ];
31229
31298
  var eventCalendarVariants = {
31230
31299
  combined: eventCalendarLayout[0],
31231
- month: eventCalendarLayout[0],
31232
- week: eventCalendarLayout[0],
31300
+ calendar: eventCalendarLayout[0],
31233
31301
  timetable: eventCalendarLayout[0],
31234
31302
  list: eventCalendarLayout[0]
31235
31303
  };
@@ -31241,8 +31309,7 @@ var eventCalendarDerivedFields = [
31241
31309
  multiple: false,
31242
31310
  options: [
31243
31311
  { value: "combined" },
31244
- { value: "month" },
31245
- { value: "week" },
31312
+ { value: "calendar" },
31246
31313
  { value: "timetable" },
31247
31314
  { value: "list" }
31248
31315
  ]
@@ -31255,6 +31322,13 @@ var eventCalendarDerivedFields = [
31255
31322
  options: eventCalendarListLayoutOptions.map((option) => ({
31256
31323
  value: option.id
31257
31324
  }))
31325
+ },
31326
+ {
31327
+ id: "defaultCalendarView",
31328
+ type: "select",
31329
+ required: false,
31330
+ multiple: false,
31331
+ options: [{ value: "month" }, { value: "week" }]
31258
31332
  }
31259
31333
  ];
31260
31334
  var eventCalendarContentShape = {
@@ -31303,8 +31377,7 @@ var eventCalendarConfig = {
31303
31377
  defaultVariant: "combined",
31304
31378
  variantOptions: {
31305
31379
  combined: { label: "Combined" },
31306
- month: { label: "Month" },
31307
- week: { label: "Week" },
31380
+ calendar: { label: "Calendar" },
31308
31381
  timetable: { label: "Timetable" },
31309
31382
  list: { label: "List" }
31310
31383
  }
@@ -31350,7 +31423,7 @@ var eventCalendarBlockDefinition = {
31350
31423
  };
31351
31424
 
31352
31425
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31353
- import { z as z54 } from "zod";
31426
+ import { z as z53 } from "zod";
31354
31427
 
31355
31428
  // ../blocks/src/system/blocks/offerings-preview/model.ts
31356
31429
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -31442,13 +31515,13 @@ function isRecord5(value) {
31442
31515
  }
31443
31516
 
31444
31517
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31445
- var publicRouteCandidatesSchema = z54.object({
31446
- routes: z54.array(z54.object({
31447
- entityId: z54.string(),
31448
- path: z54.string(),
31449
- title: z54.string(),
31450
- kind: z54.enum(["page", "content"]),
31451
- contentTypeKey: z54.string().nullable().optional()
31518
+ var publicRouteCandidatesSchema = z53.object({
31519
+ routes: z53.array(z53.object({
31520
+ entityId: z53.string(),
31521
+ path: z53.string(),
31522
+ title: z53.string(),
31523
+ kind: z53.enum(["page", "content"]),
31524
+ contentTypeKey: z53.string().nullable().optional()
31452
31525
  }))
31453
31526
  });
31454
31527
  var groupOverrideFields = [
@@ -31846,7 +31919,7 @@ function isRecord6(value) {
31846
31919
  }
31847
31920
 
31848
31921
  // ../blocks/src/system/blocks/embed.ts
31849
- import { z as z55 } from "zod";
31922
+ import { z as z54 } from "zod";
31850
31923
  var embedFields = [
31851
31924
  // Section heading
31852
31925
  parseFieldDefinition({
@@ -32077,18 +32150,18 @@ var embedManifest = createBlockManifest({
32077
32150
  spacing: "lg"
32078
32151
  }
32079
32152
  });
32080
- var embedEntrySchema = z55.object({
32081
- id: z55.string(),
32082
- identifier: z55.string(),
32083
- title: z55.string(),
32084
- slug: z55.string().nullable().optional(),
32085
- content: z55.record(z55.string(), z55.unknown()).optional(),
32086
- publishedAt: z55.string().nullable().optional()
32153
+ var embedEntrySchema = z54.object({
32154
+ id: z54.string(),
32155
+ identifier: z54.string(),
32156
+ title: z54.string(),
32157
+ slug: z54.string().nullable().optional(),
32158
+ content: z54.record(z54.string(), z54.unknown()).optional(),
32159
+ publishedAt: z54.string().nullable().optional()
32087
32160
  });
32088
32161
  var embedBlockDefinition = {
32089
32162
  manifest: embedManifest,
32090
32163
  dataSchemas: {
32091
- entries: z55.array(embedEntrySchema).optional()
32164
+ entries: z54.array(embedEntrySchema).optional()
32092
32165
  },
32093
32166
  dataLoaders: {
32094
32167
  entries: {
@@ -33271,53 +33344,50 @@ var fileDownloadBlockDefinition = {
33271
33344
  manifest: fileDownloadManifest
33272
33345
  };
33273
33346
 
33274
- // ../blocks/src/system/blocks/shop.ts
33275
- import { z as z59 } from "zod";
33276
-
33277
33347
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33278
- import { z as z58 } from "zod";
33348
+ import { z as z57 } from "zod";
33279
33349
 
33280
33350
  // ../blocks/src/system/blocks/products/shared.ts
33281
- import { z as z56 } from "zod";
33282
- var publicProductVariantSchema = z56.object({
33283
- id: z56.string(),
33284
- title: z56.string(),
33285
- sku: z56.string().nullable(),
33286
- priceCents: z56.number(),
33287
- stockQuantity: z56.number().nullable(),
33288
- soldOut: z56.boolean()
33289
- });
33290
- var publicProductSchema = z56.object({
33291
- id: z56.string(),
33292
- contentEntryId: z56.string().nullable(),
33293
- title: z56.string(),
33294
- slug: z56.string(),
33295
- path: z56.string().nullable(),
33296
- status: z56.enum(["draft", "active"]),
33297
- priceCents: z56.number(),
33298
- currency: z56.string(),
33299
- productType: z56.enum(["physical", "digital"]),
33300
- requiresShipping: z56.boolean(),
33301
- hasVariants: z56.boolean(),
33302
- trackInventory: z56.boolean(),
33303
- soldOut: z56.boolean(),
33304
- category: z56.object({
33305
- id: z56.string(),
33306
- name: z56.string(),
33307
- slug: z56.string()
33351
+ import { z as z55 } from "zod";
33352
+ var publicProductVariantSchema = z55.object({
33353
+ id: z55.string(),
33354
+ title: z55.string(),
33355
+ sku: z55.string().nullable(),
33356
+ priceCents: z55.number(),
33357
+ stockQuantity: z55.number().nullable(),
33358
+ soldOut: z55.boolean()
33359
+ });
33360
+ var publicProductSchema = z55.object({
33361
+ id: z55.string(),
33362
+ contentEntryId: z55.string().nullable(),
33363
+ title: z55.string(),
33364
+ slug: z55.string(),
33365
+ path: z55.string().nullable(),
33366
+ status: z55.enum(["draft", "active"]),
33367
+ priceCents: z55.number(),
33368
+ currency: z55.string(),
33369
+ productType: z55.enum(["physical", "digital"]),
33370
+ requiresShipping: z55.boolean(),
33371
+ hasVariants: z55.boolean(),
33372
+ trackInventory: z55.boolean(),
33373
+ soldOut: z55.boolean(),
33374
+ category: z55.object({
33375
+ id: z55.string(),
33376
+ name: z55.string(),
33377
+ slug: z55.string()
33308
33378
  }).nullable(),
33309
- summary: z56.string().nullable(),
33310
- body: z56.unknown().nullable(),
33311
- gallery: z56.array(
33312
- z56.object({
33313
- url: z56.string(),
33314
- alt: z56.string().nullable()
33379
+ summary: z55.string().nullable(),
33380
+ body: z55.unknown().nullable(),
33381
+ gallery: z55.array(
33382
+ z55.object({
33383
+ url: z55.string(),
33384
+ alt: z55.string().nullable()
33315
33385
  })
33316
33386
  ),
33317
- variants: z56.array(publicProductVariantSchema)
33387
+ variants: z55.array(publicProductVariantSchema)
33318
33388
  });
33319
- var publicProductsResponseSchema = z56.object({
33320
- products: z56.array(publicProductSchema)
33389
+ var publicProductsResponseSchema = z55.object({
33390
+ products: z55.array(publicProductSchema)
33321
33391
  });
33322
33392
 
33323
33393
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -33381,27 +33451,27 @@ function deriveCreditProductLabels(products, options = {}) {
33381
33451
  }
33382
33452
 
33383
33453
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
33384
- import { z as z57 } from "zod";
33385
- var storedProductCartItemSchema = z57.object({
33386
- kind: z57.literal("product"),
33387
- productId: z57.string().min(1),
33388
- productCategoryId: z57.string().min(1).optional().nullable(),
33389
- variantId: z57.string().min(1).optional().nullable(),
33390
- title: z57.string().min(1),
33391
- variantTitle: z57.string().optional().nullable(),
33392
- quantity: z57.number().finite(),
33393
- unitPriceCents: z57.number().finite(),
33394
- currency: z57.string().min(1),
33395
- imageUrl: z57.string().optional().nullable(),
33396
- soldOut: z57.boolean().optional()
33397
- });
33398
- var storedPassCartItemSchema = z57.object({
33399
- kind: z57.literal("pass"),
33400
- passId: z57.string().min(1),
33401
- title: z57.string().min(1),
33402
- quantity: z57.number().finite().optional(),
33403
- unitPriceCents: z57.number().finite(),
33404
- currency: z57.string().min(1)
33454
+ import { z as z56 } from "zod";
33455
+ var storedProductCartItemSchema = z56.object({
33456
+ kind: z56.literal("product"),
33457
+ productId: z56.string().min(1),
33458
+ productCategoryId: z56.string().min(1).optional().nullable(),
33459
+ variantId: z56.string().min(1).optional().nullable(),
33460
+ title: z56.string().min(1),
33461
+ variantTitle: z56.string().optional().nullable(),
33462
+ quantity: z56.number().finite(),
33463
+ unitPriceCents: z56.number().finite(),
33464
+ currency: z56.string().min(1),
33465
+ imageUrl: z56.string().optional().nullable(),
33466
+ soldOut: z56.boolean().optional()
33467
+ });
33468
+ var storedPassCartItemSchema = z56.object({
33469
+ kind: z56.literal("pass"),
33470
+ passId: z56.string().min(1),
33471
+ title: z56.string().min(1),
33472
+ quantity: z56.number().finite().optional(),
33473
+ unitPriceCents: z56.number().finite(),
33474
+ currency: z56.string().min(1)
33405
33475
  });
33406
33476
  function deriveCommerceCheckoutState(state) {
33407
33477
  if (state.items.length === 0) {
@@ -33635,214 +33705,214 @@ function formatValidity(days) {
33635
33705
  }
33636
33706
 
33637
33707
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33638
- var shopModeSchema = z58.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33639
- var contentEntrySchema3 = z58.object({
33640
- id: z58.string().nullable().optional(),
33641
- slug: z58.string().nullable().optional()
33708
+ var shopModeSchema = z57.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33709
+ var contentEntrySchema3 = z57.object({
33710
+ id: z57.string().nullable().optional(),
33711
+ slug: z57.string().nullable().optional()
33642
33712
  }).nullable();
33643
- var shopSourceSchema = z58.object({
33644
- className: z58.string().nullable().optional(),
33713
+ var shopSourceSchema = z57.object({
33714
+ className: z57.string().nullable().optional(),
33645
33715
  mode: shopModeSchema.optional(),
33646
- heading: z58.string().nullable().optional(),
33647
- productSlug: z58.string().nullable().optional(),
33648
- showPasses: z58.boolean().optional(),
33649
- showMemberships: z58.boolean().optional(),
33650
- layout: z58.enum(["grid", "list"]).optional(),
33651
- columns: z58.string().optional(),
33652
- showDescriptions: z58.boolean().optional(),
33653
- showSummary: z58.boolean().optional(),
33654
- showBody: z58.boolean().optional(),
33655
- showPrices: z58.boolean().optional(),
33656
- showValidityPeriod: z58.boolean().optional(),
33657
- showPricePerCredit: z58.boolean().nullable().optional(),
33658
- passesHeading: z58.string().optional(),
33659
- membershipsHeading: z58.string().optional(),
33660
- buyButtonText: z58.string().optional(),
33661
- addButtonText: z58.string().optional(),
33662
- passPurchaseMode: z58.enum(["add_to_cart", "buy_now"]).optional(),
33663
- subscribeButtonText: z58.string().optional(),
33664
- emptyStateText: z58.string().optional(),
33665
- checkoutButtonText: z58.string().optional(),
33666
- clearButtonText: z58.string().optional(),
33667
- submitButtonText: z58.string().optional(),
33716
+ heading: z57.string().nullable().optional(),
33717
+ productSlug: z57.string().nullable().optional(),
33718
+ showPasses: z57.boolean().optional(),
33719
+ showMemberships: z57.boolean().optional(),
33720
+ layout: z57.enum(["grid", "list"]).optional(),
33721
+ columns: z57.string().optional(),
33722
+ showDescriptions: z57.boolean().optional(),
33723
+ showSummary: z57.boolean().optional(),
33724
+ showBody: z57.boolean().optional(),
33725
+ showPrices: z57.boolean().optional(),
33726
+ showValidityPeriod: z57.boolean().optional(),
33727
+ showPricePerCredit: z57.boolean().nullable().optional(),
33728
+ passesHeading: z57.string().optional(),
33729
+ membershipsHeading: z57.string().optional(),
33730
+ buyButtonText: z57.string().optional(),
33731
+ addButtonText: z57.string().optional(),
33732
+ passPurchaseMode: z57.enum(["add_to_cart", "buy_now"]).optional(),
33733
+ subscribeButtonText: z57.string().optional(),
33734
+ emptyStateText: z57.string().optional(),
33735
+ checkoutButtonText: z57.string().optional(),
33736
+ clearButtonText: z57.string().optional(),
33737
+ submitButtonText: z57.string().optional(),
33668
33738
  contentEntry: contentEntrySchema3.optional(),
33669
- passes: z58.array(publicPassProductSchema).nullable().optional(),
33670
- memberships: z58.array(publicMembershipProductSchema).nullable().optional(),
33671
- products: z58.array(publicProductSchema).nullable().optional(),
33672
- siteId: z58.string().optional(),
33673
- apiBaseUrl: z58.string().optional(),
33739
+ passes: z57.array(publicPassProductSchema).nullable().optional(),
33740
+ memberships: z57.array(publicMembershipProductSchema).nullable().optional(),
33741
+ products: z57.array(publicProductSchema).nullable().optional(),
33742
+ siteId: z57.string().optional(),
33743
+ apiBaseUrl: z57.string().optional(),
33674
33744
  stage: previewStageSchema.optional()
33675
33745
  });
33676
- var productVariantOptionDisplaySchema = z58.object({
33677
- id: z58.string(),
33678
- label: z58.string(),
33679
- soldOut: z58.boolean()
33680
- });
33681
- var productCardDisplaySchema = z58.object({
33682
- productId: z58.string(),
33683
- title: z58.string(),
33684
- path: z58.string().nullable(),
33685
- summary: z58.string().nullable(),
33686
- priceLabel: z58.string().nullable(),
33687
- image: z58.object({
33688
- url: z58.string(),
33689
- alt: z58.string().nullable()
33746
+ var productVariantOptionDisplaySchema = z57.object({
33747
+ id: z57.string(),
33748
+ label: z57.string(),
33749
+ soldOut: z57.boolean()
33750
+ });
33751
+ var productCardDisplaySchema = z57.object({
33752
+ productId: z57.string(),
33753
+ title: z57.string(),
33754
+ path: z57.string().nullable(),
33755
+ summary: z57.string().nullable(),
33756
+ priceLabel: z57.string().nullable(),
33757
+ image: z57.object({
33758
+ url: z57.string(),
33759
+ alt: z57.string().nullable()
33690
33760
  }).nullable(),
33691
- variantOptions: z58.array(productVariantOptionDisplaySchema),
33692
- selectedVariantId: z58.string().nullable(),
33693
- selectionLabel: z58.string(),
33694
- actionLabel: z58.string(),
33695
- soldOut: z58.boolean()
33696
- });
33697
- var productListDisplaySchema = z58.object({
33698
- kind: z58.literal("product-list"),
33699
- state: z58.enum(["empty", "ready"]),
33700
- heading: z58.string().nullable(),
33701
- className: z58.string().nullable(),
33702
- layout: z58.enum(["grid", "list"]),
33703
- columns: z58.string(),
33704
- emptyMessage: z58.string(),
33705
- cards: z58.array(productCardDisplaySchema)
33706
- });
33707
- var productDetailDisplaySchema = z58.discriminatedUnion("state", [
33708
- z58.object({
33709
- kind: z58.literal("product-detail"),
33710
- state: z58.literal("empty"),
33711
- heading: z58.string().nullable(),
33712
- className: z58.string().nullable(),
33713
- emptyMessage: z58.string()
33761
+ variantOptions: z57.array(productVariantOptionDisplaySchema),
33762
+ selectedVariantId: z57.string().nullable(),
33763
+ selectionLabel: z57.string(),
33764
+ actionLabel: z57.string(),
33765
+ soldOut: z57.boolean()
33766
+ });
33767
+ var productListDisplaySchema = z57.object({
33768
+ kind: z57.literal("product-list"),
33769
+ state: z57.enum(["empty", "ready"]),
33770
+ heading: z57.string().nullable(),
33771
+ className: z57.string().nullable(),
33772
+ layout: z57.enum(["grid", "list"]),
33773
+ columns: z57.string(),
33774
+ emptyMessage: z57.string(),
33775
+ cards: z57.array(productCardDisplaySchema)
33776
+ });
33777
+ var productDetailDisplaySchema = z57.discriminatedUnion("state", [
33778
+ z57.object({
33779
+ kind: z57.literal("product-detail"),
33780
+ state: z57.literal("empty"),
33781
+ heading: z57.string().nullable(),
33782
+ className: z57.string().nullable(),
33783
+ emptyMessage: z57.string()
33714
33784
  }),
33715
- z58.object({
33716
- kind: z58.literal("product-detail"),
33717
- state: z58.literal("ready"),
33718
- heading: z58.string().nullable(),
33719
- className: z58.string().nullable(),
33720
- title: z58.string(),
33721
- priceLabel: z58.string(),
33722
- summary: z58.string().nullable(),
33723
- categoryLabel: z58.string().nullable(),
33724
- gallery: z58.array(z58.object({
33725
- url: z58.string(),
33726
- alt: z58.string().nullable()
33785
+ z57.object({
33786
+ kind: z57.literal("product-detail"),
33787
+ state: z57.literal("ready"),
33788
+ heading: z57.string().nullable(),
33789
+ className: z57.string().nullable(),
33790
+ title: z57.string(),
33791
+ priceLabel: z57.string(),
33792
+ summary: z57.string().nullable(),
33793
+ categoryLabel: z57.string().nullable(),
33794
+ gallery: z57.array(z57.object({
33795
+ url: z57.string(),
33796
+ alt: z57.string().nullable()
33727
33797
  })),
33728
- variantOptions: z58.array(productVariantOptionDisplaySchema),
33729
- selectedVariantId: z58.string().nullable(),
33730
- selectionLabel: z58.string(),
33731
- actionLabel: z58.string(),
33732
- soldOut: z58.boolean(),
33733
- body: z58.unknown().nullable()
33798
+ variantOptions: z57.array(productVariantOptionDisplaySchema),
33799
+ selectedVariantId: z57.string().nullable(),
33800
+ selectionLabel: z57.string(),
33801
+ actionLabel: z57.string(),
33802
+ soldOut: z57.boolean(),
33803
+ body: z57.unknown().nullable()
33734
33804
  })
33735
33805
  ]);
33736
- var passCardDisplaySchema = z58.object({
33737
- id: z58.string(),
33738
- title: z58.string(),
33739
- description: z58.string().nullable(),
33740
- priceLabel: z58.string(),
33741
- creditsLabel: z58.string(),
33742
- perCreditLabel: z58.string().nullable(),
33743
- validityLabel: z58.string().nullable(),
33744
- actionLabel: z58.string()
33745
- });
33746
- var membershipCardDisplaySchema = z58.object({
33747
- id: z58.string(),
33748
- title: z58.string(),
33749
- description: z58.string().nullable(),
33750
- priceLabel: z58.string(),
33751
- intervalLabel: z58.string(),
33752
- actionLabel: z58.string()
33753
- });
33754
- var passesMembershipsDisplaySchema = z58.object({
33755
- kind: z58.literal("passes-memberships"),
33756
- state: z58.enum(["empty", "ready"]),
33757
- className: z58.string().nullable(),
33758
- layout: z58.enum(["grid", "list"]),
33759
- columns: z58.string(),
33760
- emptyMessage: z58.string(),
33761
- passesHeading: z58.string(),
33762
- membershipsHeading: z58.string(),
33763
- passes: z58.array(passCardDisplaySchema),
33764
- memberships: z58.array(membershipCardDisplaySchema)
33765
- });
33766
- var cartLineDisplaySchema = z58.object({
33767
- key: z58.string(),
33768
- title: z58.string(),
33769
- priceLabel: z58.string(),
33770
- quantity: z58.number(),
33771
- quantityEditable: z58.boolean()
33772
- });
33773
- var cartDisplaySchema = z58.object({
33774
- kind: z58.literal("cart"),
33775
- state: z58.enum(["empty", "ready"]),
33776
- heading: z58.string().nullable(),
33777
- className: z58.string().nullable(),
33778
- emptyMessage: z58.string(),
33779
- supportText: z58.string().nullable(),
33780
- items: z58.array(cartLineDisplaySchema),
33781
- subtotalLabel: z58.string().nullable(),
33782
- checkoutButtonText: z58.string(),
33783
- clearButtonText: z58.string()
33784
- });
33785
- var checkoutDisplaySchema = z58.object({
33786
- kind: z58.literal("checkout"),
33787
- state: z58.enum(["empty", "blocked", "ready"]),
33788
- heading: z58.string().nullable(),
33789
- className: z58.string().nullable(),
33790
- message: z58.string().nullable(),
33791
- submitButtonText: z58.string()
33792
- });
33793
- var passesMembershipsHydrationSchema = z58.object({
33794
- passes: z58.array(publicPassProductSchema),
33795
- memberships: z58.array(publicMembershipProductSchema),
33796
- passPurchaseMode: z58.enum(["add_to_cart", "buy_now"])
33797
- });
33798
- var productListHydrationSchema = z58.object({
33799
- products: z58.array(publicProductSchema),
33800
- showSummary: z58.boolean(),
33801
- showPrices: z58.boolean(),
33802
- addButtonText: z58.string()
33803
- });
33804
- var productDetailHydrationSchema = z58.object({
33805
- products: z58.array(publicProductSchema),
33806
- productId: z58.string().nullable(),
33807
- showSummary: z58.boolean(),
33808
- showBody: z58.boolean(),
33809
- addButtonText: z58.string()
33810
- });
33811
- var cartHydrationSchema = z58.object({
33812
- emptyStateText: z58.string(),
33813
- checkoutButtonText: z58.string(),
33814
- clearButtonText: z58.string()
33815
- });
33816
- var checkoutHydrationSchema = z58.object({
33817
- emptyStateText: z58.string(),
33818
- submitButtonText: z58.string()
33819
- });
33820
- var passesMembershipsRenderSchema = z58.object({
33806
+ var passCardDisplaySchema = z57.object({
33807
+ id: z57.string(),
33808
+ title: z57.string(),
33809
+ description: z57.string().nullable(),
33810
+ priceLabel: z57.string(),
33811
+ creditsLabel: z57.string(),
33812
+ perCreditLabel: z57.string().nullable(),
33813
+ validityLabel: z57.string().nullable(),
33814
+ actionLabel: z57.string()
33815
+ });
33816
+ var membershipCardDisplaySchema = z57.object({
33817
+ id: z57.string(),
33818
+ title: z57.string(),
33819
+ description: z57.string().nullable(),
33820
+ priceLabel: z57.string(),
33821
+ intervalLabel: z57.string(),
33822
+ actionLabel: z57.string()
33823
+ });
33824
+ var passesMembershipsDisplaySchema = z57.object({
33825
+ kind: z57.literal("passes-memberships"),
33826
+ state: z57.enum(["empty", "ready"]),
33827
+ className: z57.string().nullable(),
33828
+ layout: z57.enum(["grid", "list"]),
33829
+ columns: z57.string(),
33830
+ emptyMessage: z57.string(),
33831
+ passesHeading: z57.string(),
33832
+ membershipsHeading: z57.string(),
33833
+ passes: z57.array(passCardDisplaySchema),
33834
+ memberships: z57.array(membershipCardDisplaySchema)
33835
+ });
33836
+ var cartLineDisplaySchema = z57.object({
33837
+ key: z57.string(),
33838
+ title: z57.string(),
33839
+ priceLabel: z57.string(),
33840
+ quantity: z57.number(),
33841
+ quantityEditable: z57.boolean()
33842
+ });
33843
+ var cartDisplaySchema = z57.object({
33844
+ kind: z57.literal("cart"),
33845
+ state: z57.enum(["empty", "ready"]),
33846
+ heading: z57.string().nullable(),
33847
+ className: z57.string().nullable(),
33848
+ emptyMessage: z57.string(),
33849
+ supportText: z57.string().nullable(),
33850
+ items: z57.array(cartLineDisplaySchema),
33851
+ subtotalLabel: z57.string().nullable(),
33852
+ checkoutButtonText: z57.string(),
33853
+ clearButtonText: z57.string()
33854
+ });
33855
+ var checkoutDisplaySchema = z57.object({
33856
+ kind: z57.literal("checkout"),
33857
+ state: z57.enum(["empty", "blocked", "ready"]),
33858
+ heading: z57.string().nullable(),
33859
+ className: z57.string().nullable(),
33860
+ message: z57.string().nullable(),
33861
+ submitButtonText: z57.string()
33862
+ });
33863
+ var passesMembershipsHydrationSchema = z57.object({
33864
+ passes: z57.array(publicPassProductSchema),
33865
+ memberships: z57.array(publicMembershipProductSchema),
33866
+ passPurchaseMode: z57.enum(["add_to_cart", "buy_now"])
33867
+ });
33868
+ var productListHydrationSchema = z57.object({
33869
+ products: z57.array(publicProductSchema),
33870
+ showSummary: z57.boolean(),
33871
+ showPrices: z57.boolean(),
33872
+ addButtonText: z57.string()
33873
+ });
33874
+ var productDetailHydrationSchema = z57.object({
33875
+ products: z57.array(publicProductSchema),
33876
+ productId: z57.string().nullable(),
33877
+ showSummary: z57.boolean(),
33878
+ showBody: z57.boolean(),
33879
+ addButtonText: z57.string()
33880
+ });
33881
+ var cartHydrationSchema = z57.object({
33882
+ emptyStateText: z57.string(),
33883
+ checkoutButtonText: z57.string(),
33884
+ clearButtonText: z57.string()
33885
+ });
33886
+ var checkoutHydrationSchema = z57.object({
33887
+ emptyStateText: z57.string(),
33888
+ submitButtonText: z57.string()
33889
+ });
33890
+ var passesMembershipsRenderSchema = z57.object({
33821
33891
  display: passesMembershipsDisplaySchema,
33822
33892
  hydration: passesMembershipsHydrationSchema
33823
33893
  });
33824
- var productListRenderSchema = z58.object({
33894
+ var productListRenderSchema = z57.object({
33825
33895
  display: productListDisplaySchema,
33826
33896
  hydration: productListHydrationSchema
33827
33897
  });
33828
- var productDetailRenderSchema = z58.object({
33898
+ var productDetailRenderSchema = z57.object({
33829
33899
  display: productDetailDisplaySchema,
33830
33900
  hydration: productDetailHydrationSchema
33831
33901
  });
33832
- var cartRenderSchema = z58.object({
33902
+ var cartRenderSchema = z57.object({
33833
33903
  display: cartDisplaySchema,
33834
33904
  hydration: cartHydrationSchema
33835
33905
  });
33836
- var checkoutRenderSchema = z58.object({
33906
+ var checkoutRenderSchema = z57.object({
33837
33907
  display: checkoutDisplaySchema,
33838
33908
  hydration: checkoutHydrationSchema
33839
33909
  });
33840
33910
  function resolveShowPricePerCredit(source) {
33841
33911
  return source.showPricePerCredit ?? true;
33842
33912
  }
33843
- var shopIslandMetaCodec = createZodCodec(z58.object({
33844
- siteId: z58.string().optional(),
33845
- apiBaseUrl: z58.string().optional(),
33913
+ var shopIslandMetaCodec = createZodCodec(z57.object({
33914
+ siteId: z57.string().optional(),
33915
+ apiBaseUrl: z57.string().optional(),
33846
33916
  stage: previewStageSchema.optional()
33847
33917
  }));
33848
33918
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -34220,9 +34290,9 @@ var shopBlockDefinition = {
34220
34290
  runtime: shopBlockRuntime,
34221
34291
  dataSchemas: {
34222
34292
  // listPublicPasses returns { passes: [...] }
34223
- passes: z59.object({ passes: z59.array(publicPassProductSchema) }).optional(),
34293
+ passes: publicPassProductCollectionSchema.optional(),
34224
34294
  // listPublicMemberships returns { memberships: [...] }
34225
- memberships: z59.object({ memberships: z59.array(publicMembershipProductSchema) }).optional()
34295
+ memberships: publicMembershipProductCollectionSchema.optional()
34226
34296
  },
34227
34297
  dataLoaders: {
34228
34298
  // Load passes for display
@@ -34245,7 +34315,7 @@ var shopBlockDefinition = {
34245
34315
  };
34246
34316
 
34247
34317
  // ../blocks/src/system/blocks/product-list.ts
34248
- import { z as z60 } from "zod";
34318
+ import { z as z58 } from "zod";
34249
34319
  var productListManifest = createBlockManifest({
34250
34320
  id: "block.product-list",
34251
34321
  version: "1.0.0",
@@ -34378,7 +34448,7 @@ var productListBlockDefinition = {
34378
34448
  }
34379
34449
  }
34380
34450
  };
34381
- var productListDataSchema = z60.object({
34451
+ var productListDataSchema = z58.object({
34382
34452
  products: publicProductsResponseSchema.optional()
34383
34453
  });
34384
34454
 
@@ -34639,72 +34709,72 @@ var checkoutBlockDefinition = {
34639
34709
  };
34640
34710
 
34641
34711
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
34642
- import { z as z61 } from "zod";
34643
- var publicGiftCardOfferSchema = z61.object({
34644
- id: z61.string(),
34645
- kind: z61.literal("gift_card"),
34646
- title: z61.string(),
34647
- description: z61.string().nullable(),
34648
- sortOrder: z61.number().int(),
34649
- giftCard: z61.object({
34650
- fixedDenominations: z61.array(z61.number().int().positive()),
34651
- customAmountEnabled: z61.boolean(),
34652
- customAmountMinCents: z61.number().int().positive(),
34653
- customAmountMaxCents: z61.number().int().positive()
34712
+ import { z as z59 } from "zod";
34713
+ var publicGiftCardOfferSchema = z59.object({
34714
+ id: z59.string(),
34715
+ kind: z59.literal("gift_card"),
34716
+ title: z59.string(),
34717
+ description: z59.string().nullable(),
34718
+ sortOrder: z59.number().int(),
34719
+ giftCard: z59.object({
34720
+ fixedDenominations: z59.array(z59.number().int().positive()),
34721
+ customAmountEnabled: z59.boolean(),
34722
+ customAmountMinCents: z59.number().int().positive(),
34723
+ customAmountMaxCents: z59.number().int().positive()
34654
34724
  }),
34655
- voucher: z61.null()
34656
- });
34657
- var publicVoucherOfferSchema = z61.object({
34658
- id: z61.string(),
34659
- kind: z61.literal("voucher"),
34660
- title: z61.string(),
34661
- description: z61.string().nullable(),
34662
- sortOrder: z61.number().int(),
34663
- giftCard: z61.null(),
34664
- voucher: z61.object({
34665
- purchaseAmountCents: z61.number().int().positive()
34725
+ voucher: z59.null()
34726
+ });
34727
+ var publicVoucherOfferSchema = z59.object({
34728
+ id: z59.string(),
34729
+ kind: z59.literal("voucher"),
34730
+ title: z59.string(),
34731
+ description: z59.string().nullable(),
34732
+ sortOrder: z59.number().int(),
34733
+ giftCard: z59.null(),
34734
+ voucher: z59.object({
34735
+ purchaseAmountCents: z59.number().int().positive()
34666
34736
  })
34667
34737
  });
34668
- var publicGiftingOffersResponseSchema = z61.object({
34669
- currency: z61.string(),
34670
- giftCards: z61.array(publicGiftCardOfferSchema),
34671
- vouchers: z61.array(publicVoucherOfferSchema)
34738
+ var publicGiftingOffersResponseSchema = z59.object({
34739
+ currency: z59.string(),
34740
+ giftCards: z59.array(publicGiftCardOfferSchema),
34741
+ vouchers: z59.array(publicVoucherOfferSchema)
34672
34742
  });
34673
- var giftingSourceSchema = z61.object({
34674
- siteId: z61.string().optional(),
34675
- apiBaseUrl: z61.string().optional(),
34743
+ var giftingSourceSchema = z59.object({
34744
+ siteId: z59.string().optional(),
34745
+ apiBaseUrl: z59.string().optional(),
34676
34746
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
34677
- className: z61.string().nullable().optional(),
34678
- heading: z61.string().nullable().optional(),
34679
- intro: z61.string().nullable().optional(),
34680
- giftCardsHeading: z61.string().nullable().optional(),
34681
- vouchersHeading: z61.string().nullable().optional(),
34682
- emptyStateText: z61.string().nullable().optional(),
34683
- checkoutButtonText: z61.string().nullable().optional(),
34684
- successMessage: z61.string().nullable().optional()
34685
- });
34686
- var giftingDisplaySchema = z61.object({
34687
- kind: z61.literal("gifting"),
34688
- state: z61.literal("ready"),
34689
- className: z61.string().nullable(),
34690
- heading: z61.string(),
34691
- intro: z61.string().nullable(),
34692
- giftCardsHeading: z61.string(),
34693
- vouchersHeading: z61.string(),
34694
- emptyStateText: z61.string()
34695
- });
34696
- var giftingHydrationSchema = z61.object({
34747
+ className: z59.string().nullable().optional(),
34748
+ heading: z59.string().nullable().optional(),
34749
+ intro: z59.string().nullable().optional(),
34750
+ giftCardsHeading: z59.string().nullable().optional(),
34751
+ vouchersHeading: z59.string().nullable().optional(),
34752
+ emptyStateText: z59.string().nullable().optional(),
34753
+ checkoutButtonText: z59.string().nullable().optional(),
34754
+ successMessage: z59.string().nullable().optional()
34755
+ });
34756
+ var giftingDisplaySchema = z59.object({
34757
+ kind: z59.literal("gifting"),
34758
+ state: z59.literal("ready"),
34759
+ className: z59.string().nullable(),
34760
+ heading: z59.string(),
34761
+ intro: z59.string().nullable(),
34762
+ giftCardsHeading: z59.string(),
34763
+ vouchersHeading: z59.string(),
34764
+ emptyStateText: z59.string()
34765
+ });
34766
+ var giftingHydrationSchema = z59.object({
34697
34767
  offers: publicGiftingOffersResponseSchema.nullable(),
34698
- checkoutButtonText: z61.string(),
34699
- successMessage: z61.string()
34768
+ checkoutButtonText: z59.string(),
34769
+ successMessage: z59.string()
34700
34770
  });
34701
- var giftingRenderSchema = z61.object({
34771
+ var giftingRenderSchema = z59.object({
34702
34772
  display: giftingDisplaySchema,
34703
34773
  hydration: giftingHydrationSchema
34704
34774
  });
34705
- var giftingIslandMetaCodec = createZodCodec(z61.object({
34706
- siteId: z61.string().optional(),
34707
- apiBaseUrl: z61.string().optional()
34775
+ var giftingIslandMetaCodec = createZodCodec(z59.object({
34776
+ siteId: z59.string().optional(),
34777
+ apiBaseUrl: z59.string().optional()
34708
34778
  }));
34709
34779
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
34710
34780
  "siteId",
@@ -34875,7 +34945,7 @@ var giftingBlockDefinition = {
34875
34945
  };
34876
34946
 
34877
34947
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
34878
- import { z as z62 } from "zod";
34948
+ import { z as z60 } from "zod";
34879
34949
 
34880
34950
  // ../blocks/src/system/blocks/newsletter-signup-destination.ts
34881
34951
  function parseNewsletterSignupBlockId(value) {
@@ -34982,65 +35052,65 @@ function withOptionalPhone(fields3, includePhone) {
34982
35052
  }
34983
35053
 
34984
35054
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
34985
- var newsletterPresetSchema = z62.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
34986
- var newsletterDestinationProviderSchema = z62.enum(["riverbank", "mailchimp"]);
34987
- var newsletterFieldSchema = z62.object({
34988
- id: z62.string(),
34989
- type: z62.enum(["email", "text"]),
34990
- label: z62.string(),
34991
- required: z62.boolean(),
34992
- placeholder: z62.string().optional()
34993
- });
34994
- var newsletterSignupBlockIdSchema = z62.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
34995
- var signedNewsletterDestinationRefSchema = z62.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
34996
- var newsletterPublicDestinationRefSchema = z62.discriminatedUnion("tag", [
34997
- z62.object({
34998
- tag: z62.literal("block_ref"),
35055
+ var newsletterPresetSchema = z60.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
35056
+ var newsletterDestinationProviderSchema = z60.enum(["riverbank", "mailchimp"]);
35057
+ var newsletterFieldSchema = z60.object({
35058
+ id: z60.string(),
35059
+ type: z60.enum(["email", "text"]),
35060
+ label: z60.string(),
35061
+ required: z60.boolean(),
35062
+ placeholder: z60.string().optional()
35063
+ });
35064
+ var newsletterSignupBlockIdSchema = z60.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
35065
+ var signedNewsletterDestinationRefSchema = z60.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
35066
+ var newsletterPublicDestinationRefSchema = z60.discriminatedUnion("tag", [
35067
+ z60.object({
35068
+ tag: z60.literal("block_ref"),
34999
35069
  blockId: newsletterSignupBlockIdSchema
35000
35070
  }),
35001
- z62.object({
35002
- tag: z62.literal("signed_destination_ref"),
35071
+ z60.object({
35072
+ tag: z60.literal("signed_destination_ref"),
35003
35073
  token: signedNewsletterDestinationRefSchema
35004
35074
  })
35005
35075
  ]);
35006
- var newsletterSourceSchema = z62.object({
35007
- blockId: z62.string().nullable().optional(),
35008
- siteId: z62.string().optional(),
35009
- apiBaseUrl: z62.string().optional(),
35010
- listId: z62.string().nullable().optional(),
35076
+ var newsletterSourceSchema = z60.object({
35077
+ blockId: z60.string().nullable().optional(),
35078
+ siteId: z60.string().optional(),
35079
+ apiBaseUrl: z60.string().optional(),
35080
+ listId: z60.string().nullable().optional(),
35011
35081
  destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
35012
35082
  preset: newsletterPresetSchema.optional(),
35013
- includePhone: z62.boolean().optional(),
35014
- buttonLabel: z62.string().nullable().optional(),
35015
- successMessage: z62.string().nullable().optional(),
35016
- privacyNote: z62.string().nullable().optional(),
35017
- tags: z62.string().nullable().optional(),
35018
- spamProtectionEnabled: z62.boolean().optional(),
35019
- className: z62.string().nullable().optional()
35020
- });
35021
- var newsletterDisplaySchema = z62.object({
35022
- kind: z62.literal("newsletter-form"),
35023
- className: z62.string().nullable(),
35024
- buttonLabel: z62.string(),
35025
- successMessage: z62.string().nullable(),
35026
- privacyNote: z62.string().nullable(),
35027
- fields: z62.array(newsletterFieldSchema)
35028
- });
35029
- var newsletterHydrationSchema = z62.object({
35083
+ includePhone: z60.boolean().optional(),
35084
+ buttonLabel: z60.string().nullable().optional(),
35085
+ successMessage: z60.string().nullable().optional(),
35086
+ privacyNote: z60.string().nullable().optional(),
35087
+ tags: z60.string().nullable().optional(),
35088
+ spamProtectionEnabled: z60.boolean().optional(),
35089
+ className: z60.string().nullable().optional()
35090
+ });
35091
+ var newsletterDisplaySchema = z60.object({
35092
+ kind: z60.literal("newsletter-form"),
35093
+ className: z60.string().nullable(),
35094
+ buttonLabel: z60.string(),
35095
+ successMessage: z60.string().nullable(),
35096
+ privacyNote: z60.string().nullable(),
35097
+ fields: z60.array(newsletterFieldSchema)
35098
+ });
35099
+ var newsletterHydrationSchema = z60.object({
35030
35100
  destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
35031
- listId: z62.string().nullable().optional(),
35101
+ listId: z60.string().nullable().optional(),
35032
35102
  preset: newsletterPresetSchema,
35033
- includePhone: z62.boolean(),
35034
- tags: z62.string().nullable().optional(),
35035
- spamProtectionEnabled: z62.boolean().optional()
35103
+ includePhone: z60.boolean(),
35104
+ tags: z60.string().nullable().optional(),
35105
+ spamProtectionEnabled: z60.boolean().optional()
35036
35106
  });
35037
- var newsletterRenderSchema = z62.object({
35107
+ var newsletterRenderSchema = z60.object({
35038
35108
  display: newsletterDisplaySchema,
35039
35109
  hydration: newsletterHydrationSchema
35040
35110
  });
35041
- var newsletterIslandMetaCodec = createZodCodec(z62.object({
35042
- siteId: z62.string().optional(),
35043
- apiBaseUrl: z62.string().optional()
35111
+ var newsletterIslandMetaCodec = createZodCodec(z60.object({
35112
+ siteId: z60.string().optional(),
35113
+ apiBaseUrl: z60.string().optional()
35044
35114
  }));
35045
35115
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
35046
35116
  function buildNewsletterDisplay(source) {
@@ -35179,23 +35249,23 @@ var newsletterSignupBlockDefinition = {
35179
35249
  };
35180
35250
 
35181
35251
  // ../blocks/src/system/blocks/team-members.ts
35182
- import { z as z63 } from "zod";
35252
+ import { z as z61 } from "zod";
35183
35253
  var ITEM_NAME2 = "member";
35184
35254
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
35185
35255
  message: "Team member photos must be image media"
35186
35256
  }).nullable();
35187
- var teamMemberDataSchema = z63.object({
35188
- _type: z63.literal("teamMember"),
35189
- id: z63.string(),
35190
- name: z63.string(),
35191
- role: z63.string().nullable(),
35192
- roleLabel: z63.string().nullable(),
35193
- bio: z63.string().nullable(),
35194
- summary: z63.string().nullable(),
35257
+ var teamMemberDataSchema = z61.object({
35258
+ _type: z61.literal("teamMember"),
35259
+ id: z61.string(),
35260
+ name: z61.string(),
35261
+ role: z61.string().nullable(),
35262
+ roleLabel: z61.string().nullable(),
35263
+ bio: z61.string().nullable(),
35264
+ summary: z61.string().nullable(),
35195
35265
  photo: teamMemberPhotoSchema,
35196
- profilePath: z63.string().nullable()
35266
+ profilePath: z61.string().nullable()
35197
35267
  });
35198
- var teamMembersDataSchema = z63.array(teamMemberDataSchema);
35268
+ var teamMembersDataSchema = z61.array(teamMemberDataSchema);
35199
35269
  var dynamicSourceWhen = { equals: "site_staff" };
35200
35270
  var manualSourceWhen = { equals: "site_staff", not: true };
35201
35271
  var headingNode = text(
@@ -36087,13 +36157,6 @@ var systemBlockDefinitionsRaw = [
36087
36157
  weight: "featured",
36088
36158
  bias: "clear",
36089
36159
  surfaces: heroSectionSurfaces
36090
- }),
36091
- layoutProfile({
36092
- variantKey: "splitEditorial",
36093
- family: "split",
36094
- weight: "featured",
36095
- bias: "clear",
36096
- surfaces: heroSectionSurfaces
36097
36160
  })
36098
36161
  ]
36099
36162
  })),
@@ -36337,9 +36400,8 @@ var systemBlockDefinitionsRaw = [
36337
36400
  flow: offeringsFlow,
36338
36401
  layoutProfiles: [
36339
36402
  layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),
36403
+ layoutProfile({ variantKey: "calendar", family: "stack", weight: "standard" }),
36340
36404
  layoutProfile({ variantKey: "list", family: "stack", weight: "standard" }),
36341
- layoutProfile({ variantKey: "month", family: "grid", weight: "standard" }),
36342
- layoutProfile({ variantKey: "week", family: "stack", weight: "standard" }),
36343
36405
  layoutProfile({ variantKey: "timetable", family: "stack", weight: "standard" })
36344
36406
  ]
36345
36407
  })),
@@ -36902,10 +36964,7 @@ function normalizeRenderStage(stage) {
36902
36964
  return stage === "preview" ? "preview" : "published";
36903
36965
  }
36904
36966
  function isRouteVisibleInStage(routeEntry, stageInput) {
36905
- const stage = normalizeRenderStage(stageInput);
36906
- if (stage === "preview" || !isRouteRecord(routeEntry)) {
36907
- return true;
36908
- }
36967
+ if (normalizeRenderStage(stageInput) === "preview" || !isRouteRecord(routeEntry)) return true;
36909
36968
  const status = routeEntry.status;
36910
36969
  return !(typeof status === "string" && status !== "published");
36911
36970
  }
@@ -36914,52 +36973,45 @@ function extractRouteHref(candidate, stageInput = "published") {
36914
36973
  const trimmed = candidate.trim();
36915
36974
  return trimmed.length > 0 ? trimmed : null;
36916
36975
  }
36917
- if (!isRouteRecord(candidate)) {
36918
- return null;
36919
- }
36920
- const stage = normalizeRenderStage(stageInput);
36921
- const fields3 = stage === "preview" ? ["draftPath", "path", "href", "url"] : ["path", "href", "url"];
36976
+ if (!isRouteRecord(candidate)) return null;
36977
+ const fields3 = normalizeRenderStage(stageInput) === "preview" ? [
36978
+ "draftPath",
36979
+ "path",
36980
+ "href",
36981
+ "url"
36982
+ ] : [
36983
+ "path",
36984
+ "href",
36985
+ "url"
36986
+ ];
36922
36987
  for (const field of fields3) {
36923
36988
  const value = candidate[field];
36924
- if (typeof value === "string" && value.trim().length > 0) {
36925
- return value.trim();
36926
- }
36989
+ if (typeof value === "string" && value.trim().length > 0) return value.trim();
36927
36990
  }
36928
36991
  return null;
36929
36992
  }
36930
36993
  function extractRouteUpdatedAt(candidate) {
36931
- if (!isRouteRecord(candidate)) {
36932
- return null;
36933
- }
36934
- const fields3 = [
36994
+ if (!isRouteRecord(candidate)) return null;
36995
+ for (const field of [
36935
36996
  "updatedAt",
36936
36997
  "updated_at",
36937
36998
  "publishedAt",
36938
36999
  "published_at",
36939
37000
  "modifiedAt",
36940
37001
  "modified_at"
36941
- ];
36942
- for (const field of fields3) {
37002
+ ]) {
36943
37003
  const value = candidate[field];
36944
- if (typeof value === "string" && value.length > 0) {
36945
- return value;
36946
- }
37004
+ if (typeof value === "string" && value.length > 0) return value;
36947
37005
  }
36948
37006
  return null;
36949
37007
  }
36950
37008
  function resolveRouteTargetForStage(routeIdValue, routes, stageInput) {
36951
37009
  const routeId = typeof routeIdValue === "string" ? routeIdValue : null;
36952
- if (!routeId || !routes) {
36953
- return null;
36954
- }
37010
+ if (!routeId || !routes) return null;
36955
37011
  const routeEntry = routes[routeId];
36956
- if (!isRouteVisibleInStage(routeEntry, stageInput)) {
36957
- return null;
36958
- }
37012
+ if (!isRouteVisibleInStage(routeEntry, stageInput)) return null;
36959
37013
  const href = extractRouteHref(routeEntry, stageInput);
36960
- if (!href) {
36961
- return null;
36962
- }
37014
+ if (!href) return null;
36963
37015
  return {
36964
37016
  routeId,
36965
37017
  href,
@@ -37889,42 +37941,45 @@ import { jsx as jsx5 } from "react/jsx-runtime";
37889
37941
  import * as React from "react";
37890
37942
  import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
37891
37943
 
37944
+ // ../theme-core/src/ResponsiveScope.tsx
37945
+ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
37946
+
37892
37947
  // ../theme-core/src/fonts/uploadFormat.ts
37893
37948
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
37894
37949
 
37895
37950
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
37896
- import { z as z64 } from "zod";
37897
- var themeBridgeConfigSchema = z64.object({
37898
- tokens: z64.record(z64.string(), z64.string()),
37899
- typography: z64.object({
37900
- headingFamily: z64.string().optional(),
37901
- bodyFamily: z64.string().optional(),
37902
- headingWeight: z64.number().optional(),
37903
- bodyWeight: z64.number().optional()
37951
+ import { z as z62 } from "zod";
37952
+ var themeBridgeConfigSchema = z62.object({
37953
+ tokens: z62.record(z62.string(), z62.string()),
37954
+ typography: z62.object({
37955
+ headingFamily: z62.string().optional(),
37956
+ bodyFamily: z62.string().optional(),
37957
+ headingWeight: z62.number().optional(),
37958
+ bodyWeight: z62.number().optional()
37904
37959
  }).optional(),
37905
- spacing: z64.enum(["comfortable", "standard", "dense"]).optional(),
37906
- corners: z64.enum(["square", "soft", "rounded", "pill"]).optional(),
37907
- shadows: z64.enum(["none", "low", "medium", "high"]).optional(),
37908
- components: z64.object({
37909
- buttons: z64.union([
37910
- z64.boolean(),
37911
- z64.object({
37912
- variants: z64.array(z64.enum(["primary", "secondary", "outline", "ghost"])).optional()
37960
+ spacing: z62.enum(["comfortable", "standard", "dense"]).optional(),
37961
+ corners: z62.enum(["square", "soft", "rounded", "pill"]).optional(),
37962
+ shadows: z62.enum(["none", "low", "medium", "high"]).optional(),
37963
+ components: z62.object({
37964
+ buttons: z62.union([
37965
+ z62.boolean(),
37966
+ z62.object({
37967
+ variants: z62.array(z62.enum(["primary", "secondary", "outline", "ghost"])).optional()
37913
37968
  })
37914
37969
  ]).optional(),
37915
- cards: z64.union([
37916
- z64.boolean(),
37917
- z64.object({
37918
- variants: z64.array(z64.enum(["default", "elevated", "outlined"])).optional()
37970
+ cards: z62.union([
37971
+ z62.boolean(),
37972
+ z62.object({
37973
+ variants: z62.array(z62.enum(["default", "elevated", "outlined"])).optional()
37919
37974
  })
37920
37975
  ]).optional(),
37921
- inputs: z64.boolean().optional()
37976
+ inputs: z62.boolean().optional()
37922
37977
  }).optional(),
37923
- overrides: z64.record(z64.string(), z64.string()).optional()
37978
+ overrides: z62.record(z62.string(), z62.string()).optional()
37924
37979
  }).passthrough();
37925
37980
 
37926
37981
  // ../theme-core/src/siteChrome.tsx
37927
- import { Fragment as Fragment2, jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
37982
+ import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
37928
37983
 
37929
37984
  // ../blocks/src/system/data/loaderEndpoints.ts
37930
37985
  var SUPPORTED_LOADER_ENDPOINTS = [
@@ -37946,17 +38001,17 @@ var SUPPORTED_LOADER_ENDPOINTS = [
37946
38001
  function unsafeRetypeZodSchema(schema) {
37947
38002
  return schema;
37948
38003
  }
37949
- var navIdListSchema = z65.preprocess((value) => {
38004
+ var navIdListSchema = z63.preprocess((value) => {
37950
38005
  if (!Array.isArray(value)) return void 0;
37951
38006
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
37952
38007
  return filtered.length > 0 ? filtered : void 0;
37953
- }, z65.array(z65.string()).max(200).optional());
37954
- var dashboardNavVisibilityBaseSchema = z65.object({
37955
- mode: z65.enum(["augment", "restrict"]).optional(),
38008
+ }, z63.array(z63.string()).max(200).optional());
38009
+ var dashboardNavVisibilityBaseSchema = z63.object({
38010
+ mode: z63.enum(["augment", "restrict"]).optional(),
37956
38011
  allowIds: navIdListSchema,
37957
38012
  denyIds: navIdListSchema
37958
38013
  }).strip();
37959
- var dashboardNavVisibilityRolesSchema = z65.object({
38014
+ var dashboardNavVisibilityRolesSchema = z63.object({
37960
38015
  administrator: dashboardNavVisibilityBaseSchema.optional(),
37961
38016
  editor: dashboardNavVisibilityBaseSchema.optional(),
37962
38017
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -37964,63 +38019,63 @@ var dashboardNavVisibilityRolesSchema = z65.object({
37964
38019
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
37965
38020
  roles: dashboardNavVisibilityRolesSchema
37966
38021
  }).strip();
37967
- var dashboardNavigationConfigSchema = z65.object({
38022
+ var dashboardNavigationConfigSchema = z63.object({
37968
38023
  siteNav: dashboardNavVisibilitySchema.optional(),
37969
38024
  settingsNav: dashboardNavVisibilitySchema.optional()
37970
38025
  }).strip();
37971
- var dashboardConfigSchema = z65.object({
37972
- previewEditingEnabled: z65.boolean().optional(),
38026
+ var dashboardConfigSchema = z63.object({
38027
+ previewEditingEnabled: z63.boolean().optional(),
37973
38028
  navigation: dashboardNavigationConfigSchema.optional()
37974
38029
  }).strip();
37975
38030
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
37976
38031
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
37977
- var sdkLoaderEndpointSchema = z65.enum(SUPPORTED_LOADER_ENDPOINTS);
37978
- var loaderFallbackScalarSchema = z65.union([
37979
- z65.string(),
37980
- z65.number(),
37981
- z65.boolean(),
37982
- z65.null()
38032
+ var sdkLoaderEndpointSchema = z63.enum(SUPPORTED_LOADER_ENDPOINTS);
38033
+ var loaderFallbackScalarSchema = z63.union([
38034
+ z63.string(),
38035
+ z63.number(),
38036
+ z63.boolean(),
38037
+ z63.null()
37983
38038
  ]);
37984
- var loaderParamBindingSchema = z65.object({
37985
- $bind: z65.object({
37986
- from: z65.string().min(1, "Binding path is required"),
38039
+ var loaderParamBindingSchema = z63.object({
38040
+ $bind: z63.object({
38041
+ from: z63.string().min(1, "Binding path is required"),
37987
38042
  fallback: loaderFallbackScalarSchema.optional()
37988
38043
  })
37989
38044
  });
37990
- var loaderParamValueSchema = z65.union([
37991
- z65.string(),
37992
- z65.number(),
37993
- z65.boolean(),
38045
+ var loaderParamValueSchema = z63.union([
38046
+ z63.string(),
38047
+ z63.number(),
38048
+ z63.boolean(),
37994
38049
  loaderParamBindingSchema
37995
38050
  ]);
37996
- var sdkConfigLoaderSchema = z65.object({
38051
+ var sdkConfigLoaderSchema = z63.object({
37997
38052
  endpoint: sdkLoaderEndpointSchema,
37998
- params: z65.record(z65.string(), loaderParamValueSchema),
37999
- mode: z65.enum(["server", "client"]).default("server")
38053
+ params: z63.record(z63.string(), loaderParamValueSchema),
38054
+ mode: z63.enum(["server", "client"]).default("server")
38000
38055
  });
38001
- var sdkDataLoadersSchema = z65.record(z65.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38002
- var sdkCustomBlockIdSchema = z65.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38056
+ var sdkDataLoadersSchema = z63.record(z63.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38057
+ var sdkCustomBlockIdSchema = z63.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38003
38058
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
38004
38059
  }).transform((value) => value);
38005
- var sdkCustomBlockInputSchema = z65.object({
38060
+ var sdkCustomBlockInputSchema = z63.object({
38006
38061
  id: sdkCustomBlockIdSchema,
38007
- title: z65.string().min(1),
38008
- titleSource: z65.union([z65.string().min(1), z65.array(z65.string().min(1)).min(1)]).optional(),
38009
- description: z65.string().optional(),
38062
+ title: z63.string().min(1),
38063
+ titleSource: z63.union([z63.string().min(1), z63.array(z63.string().min(1)).min(1)]).optional(),
38064
+ description: z63.string().optional(),
38010
38065
  category: blockCategoryEnum,
38011
- icon: z65.string().optional(),
38012
- tags: z65.array(z65.string()).optional(),
38066
+ icon: z63.string().optional(),
38067
+ tags: z63.array(z63.string()).optional(),
38013
38068
  fields: fieldDefinitionInputSchema.array().min(1),
38014
38069
  dataLoaders: sdkDataLoadersSchema,
38015
38070
  layout: NodeSchema.optional(),
38016
- variants: z65.record(z65.string().min(1), NodeSchema).optional(),
38017
- defaultVariant: z65.string().min(1).optional(),
38018
- variantOptions: z65.record(
38019
- z65.string().min(1),
38020
- z65.object({
38021
- label: z65.string().min(1).optional(),
38022
- description: z65.string().min(1).optional(),
38023
- icon: z65.string().min(1).optional()
38071
+ variants: z63.record(z63.string().min(1), NodeSchema).optional(),
38072
+ defaultVariant: z63.string().min(1).optional(),
38073
+ variantOptions: z63.record(
38074
+ z63.string().min(1),
38075
+ z63.object({
38076
+ label: z63.string().min(1).optional(),
38077
+ description: z63.string().min(1).optional(),
38078
+ icon: z63.string().min(1).optional()
38024
38079
  })
38025
38080
  ).optional(),
38026
38081
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -38031,7 +38086,7 @@ var sdkCustomBlockInputSchema = z65.object({
38031
38086
  const exists = data.fields.some((field) => field.id === source);
38032
38087
  if (!exists) {
38033
38088
  ctx.addIssue({
38034
- code: z65.ZodIssueCode.custom,
38089
+ code: z63.ZodIssueCode.custom,
38035
38090
  message: `titleSource must reference a valid field ID (got "${source}")`,
38036
38091
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
38037
38092
  });
@@ -38040,7 +38095,7 @@ var sdkCustomBlockInputSchema = z65.object({
38040
38095
  }
38041
38096
  if (data.layout && data.variants) {
38042
38097
  ctx.addIssue({
38043
- code: z65.ZodIssueCode.custom,
38098
+ code: z63.ZodIssueCode.custom,
38044
38099
  message: "Custom block must define either `layout` or `variants`, not both",
38045
38100
  path: ["variants"]
38046
38101
  });
@@ -38049,14 +38104,14 @@ var sdkCustomBlockInputSchema = z65.object({
38049
38104
  const keys = Object.keys(data.variants);
38050
38105
  if (keys.length === 0) {
38051
38106
  ctx.addIssue({
38052
- code: z65.ZodIssueCode.custom,
38107
+ code: z63.ZodIssueCode.custom,
38053
38108
  message: "`variants` must contain at least one variant key",
38054
38109
  path: ["variants"]
38055
38110
  });
38056
38111
  }
38057
38112
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
38058
38113
  ctx.addIssue({
38059
- code: z65.ZodIssueCode.custom,
38114
+ code: z63.ZodIssueCode.custom,
38060
38115
  message: "`defaultVariant` must be a key present in `variants`",
38061
38116
  path: ["defaultVariant"]
38062
38117
  });
@@ -38065,7 +38120,7 @@ var sdkCustomBlockInputSchema = z65.object({
38065
38120
  for (const key of Object.keys(data.variantOptions)) {
38066
38121
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
38067
38122
  ctx.addIssue({
38068
- code: z65.ZodIssueCode.custom,
38123
+ code: z63.ZodIssueCode.custom,
38069
38124
  message: "`variantOptions` key must exist in `variants`",
38070
38125
  path: ["variantOptions", key]
38071
38126
  });
@@ -38074,78 +38129,78 @@ var sdkCustomBlockInputSchema = z65.object({
38074
38129
  }
38075
38130
  }
38076
38131
  });
38077
- var sdkBlockFieldExtensionInputSchema = z65.object({
38132
+ var sdkBlockFieldExtensionInputSchema = z63.object({
38078
38133
  fields: fieldDefinitionInputSchema.array().min(1)
38079
38134
  });
38080
- var sdkBlockFieldExtensionsInputSchema = z65.record(
38081
- z65.string().min(1),
38135
+ var sdkBlockFieldExtensionsInputSchema = z63.record(
38136
+ z63.string().min(1),
38082
38137
  sdkBlockFieldExtensionInputSchema
38083
38138
  );
38084
- var sdkThemePaletteSchema = z65.record(z65.string(), z65.string());
38085
- var sdkThemeConfigSchema = z65.object({
38139
+ var sdkThemePaletteSchema = z63.record(z63.string(), z63.string());
38140
+ var sdkThemeConfigSchema = z63.object({
38086
38141
  palette: sdkThemePaletteSchema
38087
38142
  });
38088
- var sdkSectionBackgroundSchema = z65.object({
38089
- id: z65.string().min(1),
38090
- label: z65.string().min(1),
38091
- token: z65.string().min(1)
38143
+ var sdkSectionBackgroundSchema = z63.object({
38144
+ id: z63.string().min(1),
38145
+ label: z63.string().min(1),
38146
+ token: z63.string().min(1)
38092
38147
  });
38093
- var sdkSectionOptionsConfigSchema = z65.object({
38094
- backgroundColor: z65.boolean().optional(),
38095
- backgroundImage: z65.boolean().optional(),
38096
- backgroundGradient: z65.boolean().optional(),
38097
- spacing: z65.union([z65.array(z65.enum(["compact", "default", "spacious"])), z65.boolean()]).optional(),
38098
- textColor: z65.boolean().optional()
38148
+ var sdkSectionOptionsConfigSchema = z63.object({
38149
+ backgroundColor: z63.boolean().optional(),
38150
+ backgroundImage: z63.boolean().optional(),
38151
+ backgroundGradient: z63.boolean().optional(),
38152
+ spacing: z63.union([z63.array(z63.enum(["compact", "default", "spacious"])), z63.boolean()]).optional(),
38153
+ textColor: z63.boolean().optional()
38099
38154
  });
38100
- var sdkContainerOptionsConfigSchema = z65.object({
38101
- maxWidth: z65.union([z65.array(z65.enum(["narrow", "default", "wide", "full"])), z65.boolean()]).optional(),
38102
- alignment: z65.union([z65.array(z65.enum(["left", "center", "right"])), z65.boolean()]).optional()
38155
+ var sdkContainerOptionsConfigSchema = z63.object({
38156
+ maxWidth: z63.union([z63.array(z63.enum(["narrow", "default", "wide", "full"])), z63.boolean()]).optional(),
38157
+ alignment: z63.union([z63.array(z63.enum(["left", "center", "right"])), z63.boolean()]).optional()
38103
38158
  });
38104
- var sdkSiteStyleConfigSchema = z65.object({
38105
- sectionBackgrounds: z65.array(sdkSectionBackgroundSchema).optional(),
38159
+ var sdkSiteStyleConfigSchema = z63.object({
38160
+ sectionBackgrounds: z63.array(sdkSectionBackgroundSchema).optional(),
38106
38161
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
38107
38162
  containerOptions: sdkContainerOptionsConfigSchema.optional()
38108
38163
  });
38109
- var sdkSiteLayoutConfigSchema = z65.object({
38110
- footerBlocks: z65.array(
38111
- z65.object({
38112
- id: z65.string().min(1).optional(),
38113
- kind: z65.string().min(1),
38114
- content: z65.record(z65.string(), z65.unknown()).optional()
38164
+ var sdkSiteLayoutConfigSchema = z63.object({
38165
+ footerBlocks: z63.array(
38166
+ z63.object({
38167
+ id: z63.string().min(1).optional(),
38168
+ kind: z63.string().min(1),
38169
+ content: z63.record(z63.string(), z63.unknown()).optional()
38115
38170
  })
38116
38171
  ).optional()
38117
38172
  });
38118
- var sdkFieldSelectOptionSchema = z65.object({
38119
- value: z65.string(),
38120
- label: z65.string()
38173
+ var sdkFieldSelectOptionSchema = z63.object({
38174
+ value: z63.string(),
38175
+ label: z63.string()
38121
38176
  });
38122
- var sdkBlockFieldConfigSchema = z65.object({
38123
- options: z65.array(sdkFieldSelectOptionSchema).optional()
38177
+ var sdkBlockFieldConfigSchema = z63.object({
38178
+ options: z63.array(sdkFieldSelectOptionSchema).optional()
38124
38179
  });
38125
- var sdkBlockFieldOptionsMapSchema = z65.record(
38126
- z65.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38180
+ var sdkBlockFieldOptionsMapSchema = z63.record(
38181
+ z63.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38127
38182
  message: "Block ID must be 'block.*' or 'custom.*' format"
38128
38183
  }),
38129
- z65.record(z65.string().min(1), sdkBlockFieldConfigSchema)
38184
+ z63.record(z63.string().min(1), sdkBlockFieldConfigSchema)
38130
38185
  ).optional();
38131
- var sdkContentTypeTemplateConfigSchema = z65.object({
38132
- blocks: z65.array(z65.unknown())
38186
+ var sdkContentTypeTemplateConfigSchema = z63.object({
38187
+ blocks: z63.array(z63.unknown())
38133
38188
  }).passthrough();
38134
- var sdkContentTypeOrderingConfigSchema = z65.object({
38135
- mode: z65.enum(["default", "manual"]).optional()
38189
+ var sdkContentTypeOrderingConfigSchema = z63.object({
38190
+ mode: z63.enum(["default", "manual"]).optional()
38136
38191
  }).optional();
38137
- var sdkContentTypeConfigSchema = z65.object({
38138
- key: z65.string().min(1),
38139
- fields: z65.array(z65.unknown()),
38192
+ var sdkContentTypeConfigSchema = z63.object({
38193
+ key: z63.string().min(1),
38194
+ fields: z63.array(z63.unknown()),
38140
38195
  ordering: sdkContentTypeOrderingConfigSchema,
38141
38196
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
38142
38197
  }).passthrough();
38143
- var sdkContentConfigSchema = z65.object({
38144
- contentTypes: z65.array(sdkContentTypeConfigSchema).optional(),
38145
- pages: z65.array(z65.unknown()).optional(),
38146
- entries: z65.array(z65.unknown()).optional(),
38147
- navigationMenus: z65.array(z65.unknown()).optional(),
38148
- settings: z65.unknown().optional()
38198
+ var sdkContentConfigSchema = z63.object({
38199
+ contentTypes: z63.array(sdkContentTypeConfigSchema).optional(),
38200
+ pages: z63.array(z63.unknown()).optional(),
38201
+ entries: z63.array(z63.unknown()).optional(),
38202
+ navigationMenus: z63.array(z63.unknown()).optional(),
38203
+ settings: z63.unknown().optional()
38149
38204
  }).passthrough();
38150
38205
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
38151
38206
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -38160,62 +38215,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
38160
38215
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
38161
38216
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
38162
38217
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
38163
- var sdkWorkflowIdSchema = z65.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38218
+ var sdkWorkflowIdSchema = z63.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38164
38219
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
38165
38220
  });
38166
- var sdkWorkflowEndpointSchema = z65.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
38167
- var sdkWorkflowManualTriggerSchema = z65.object({
38168
- type: z65.literal("manual")
38221
+ var sdkWorkflowEndpointSchema = z63.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
38222
+ var sdkWorkflowManualTriggerSchema = z63.object({
38223
+ type: z63.literal("manual")
38169
38224
  }).strict();
38170
- var sdkWorkflowTriggerFieldSchema = z65.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38225
+ var sdkWorkflowTriggerFieldSchema = z63.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38171
38226
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
38172
38227
  });
38173
- var sdkWorkflowFieldChangedConditionSchema = z65.object({
38228
+ var sdkWorkflowFieldChangedConditionSchema = z63.object({
38174
38229
  field: sdkWorkflowTriggerFieldSchema,
38175
- changed: z65.literal(true)
38230
+ changed: z63.literal(true)
38176
38231
  }).strict();
38177
- var sdkWorkflowFieldEmptyConditionSchema = z65.object({
38232
+ var sdkWorkflowFieldEmptyConditionSchema = z63.object({
38178
38233
  field: sdkWorkflowTriggerFieldSchema,
38179
- isEmpty: z65.boolean()
38234
+ isEmpty: z63.boolean()
38180
38235
  }).strict();
38181
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z65.object({
38182
- type: z65.literal("entry.draft.updated"),
38183
- when: z65.array(
38184
- z65.union([
38236
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z63.object({
38237
+ type: z63.literal("entry.draft.updated"),
38238
+ when: z63.array(
38239
+ z63.union([
38185
38240
  sdkWorkflowFieldChangedConditionSchema,
38186
38241
  sdkWorkflowFieldEmptyConditionSchema
38187
38242
  ])
38188
38243
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
38189
38244
  }).strict();
38190
- var sdkWorkflowTriggerSchema = z65.discriminatedUnion("type", [
38245
+ var sdkWorkflowTriggerSchema = z63.discriminatedUnion("type", [
38191
38246
  sdkWorkflowManualTriggerSchema,
38192
38247
  sdkWorkflowEntryDraftUpdatedTriggerSchema
38193
38248
  ]);
38194
- var sdkWorkflowConfirmationSchema = z65.object({
38195
- title: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38196
- body: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38249
+ var sdkWorkflowConfirmationSchema = z63.object({
38250
+ title: z63.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38251
+ body: z63.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38197
38252
  }).strict();
38198
- var sdkWorkflowConfigSchema = z65.object({
38253
+ var sdkWorkflowConfigSchema = z63.object({
38199
38254
  id: sdkWorkflowIdSchema,
38200
- title: z65.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38201
- description: z65.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38202
- contentType: z65.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38255
+ title: z63.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38256
+ description: z63.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38257
+ contentType: z63.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38203
38258
  endpoint: sdkWorkflowEndpointSchema,
38204
- triggers: z65.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38259
+ triggers: z63.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38205
38260
  confirmation: sdkWorkflowConfirmationSchema.optional()
38206
38261
  }).strict();
38207
- var sdkWorkflowsSchema = z65.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38262
+ var sdkWorkflowsSchema = z63.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38208
38263
  const ids = workflows.map((workflow) => workflow.id);
38209
38264
  return ids.length === new Set(ids).size;
38210
38265
  }, { message: "Workflow IDs must be unique" }).optional();
38211
- var riverbankSiteConfigInputSchema = z65.object({
38212
- siteId: z65.string().uuid(),
38213
- previewUrl: z65.string().url().optional(),
38214
- liveUrl: z65.string().url().optional(),
38266
+ var riverbankSiteConfigInputSchema = z63.object({
38267
+ siteId: z63.string().uuid(),
38268
+ previewUrl: z63.string().url().optional(),
38269
+ liveUrl: z63.string().url().optional(),
38215
38270
  theme: sdkThemeConfigSchema.optional(),
38216
38271
  styles: sdkSiteStyleConfigSchema.optional(),
38217
38272
  layout: sdkSiteLayoutConfigSchema.optional(),
38218
- customBlocks: z65.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38273
+ customBlocks: z63.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38219
38274
  const ids = blocks.map((b) => b.id);
38220
38275
  return ids.length === new Set(ids).size;
38221
38276
  }, { message: "Block IDs must be unique" }).optional(),
@@ -38223,50 +38278,50 @@ var riverbankSiteConfigInputSchema = z65.object({
38223
38278
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
38224
38279
  workflows: sdkWorkflowsSchema,
38225
38280
  content: sdkContentConfigSchema.optional(),
38226
- contentDir: z65.string().optional(),
38227
- sync: z65.object({
38228
- existingEntries: z65.enum(["skip", "update"]).optional()
38281
+ contentDir: z63.string().optional(),
38282
+ sync: z63.object({
38283
+ existingEntries: z63.enum(["skip", "update"]).optional()
38229
38284
  }).optional(),
38230
- deploy: z65.object({
38231
- verifyCommand: z65.string().optional(),
38232
- prebuildOutput: z65.string().optional()
38285
+ deploy: z63.object({
38286
+ verifyCommand: z63.string().optional(),
38287
+ prebuildOutput: z63.string().optional()
38233
38288
  }).optional(),
38234
- themeSource: z65.enum(["local", "cms"]).optional(),
38235
- activeTheme: z65.string().optional(),
38236
- enablePortal: z65.boolean().optional(),
38289
+ themeSource: z63.enum(["local", "cms"]).optional(),
38290
+ activeTheme: z63.string().optional(),
38291
+ enablePortal: z63.boolean().optional(),
38237
38292
  dashboard: dashboardConfigSchema.optional()
38238
38293
  }).strict();
38239
- var pushSdkConfigBodySchema = z65.object({
38294
+ var pushSdkConfigBodySchema = z63.object({
38240
38295
  config: riverbankSiteConfigInputSchema,
38241
- forceContentTypes: z65.boolean().optional()
38296
+ forceContentTypes: z63.boolean().optional()
38242
38297
  }).strict();
38243
38298
 
38244
38299
  // ../api/src/siteOnboarding.ts
38245
- import { z as z66 } from "zod";
38300
+ import { z as z64 } from "zod";
38246
38301
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
38247
38302
  configure_appointments: {
38248
38303
  requirementId: "configure_appointments",
38249
38304
  reason: "launch_anyway"
38250
38305
  }
38251
38306
  };
38252
- var acknowledgeLaunchRequirementRequestSchema = z66.discriminatedUnion(
38307
+ var acknowledgeLaunchRequirementRequestSchema = z64.discriminatedUnion(
38253
38308
  "requirementId",
38254
38309
  [
38255
- z66.object({
38256
- requirementId: z66.literal("review_generated_site")
38310
+ z64.object({
38311
+ requirementId: z64.literal("review_generated_site")
38257
38312
  }),
38258
- z66.object({
38259
- requirementId: z66.literal(
38313
+ z64.object({
38314
+ requirementId: z64.literal(
38260
38315
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
38261
38316
  ),
38262
- overrideReason: z66.literal(
38317
+ overrideReason: z64.literal(
38263
38318
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
38264
38319
  )
38265
38320
  })
38266
38321
  ]
38267
38322
  );
38268
- var goLiveSiteRequestSchema = z66.object({
38269
- acceptExtraSiteCharge: z66.boolean().optional()
38323
+ var goLiveSiteRequestSchema = z64.object({
38324
+ acceptExtraSiteCharge: z64.boolean().optional()
38270
38325
  });
38271
38326
 
38272
38327
  // ../surfaces/src/index.ts
@@ -38350,7 +38405,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
38350
38405
  ];
38351
38406
 
38352
38407
  // ../api/src/bookingVerticals.ts
38353
- import { z as z67 } from "zod";
38408
+ import { z as z65 } from "zod";
38354
38409
  var VERTICAL_IDS = [
38355
38410
  "yoga_wellness",
38356
38411
  "fitness_pt",
@@ -38515,39 +38570,39 @@ function getSiteVerticalConfigIssues(rawConfig, config) {
38515
38570
  }
38516
38571
  return [...issues];
38517
38572
  }
38518
- var VerticalIdSchema = z67.string().trim().transform((value, ctx) => {
38573
+ var VerticalIdSchema = z65.string().trim().transform((value, ctx) => {
38519
38574
  const parsed = parseVerticalId(value);
38520
38575
  if (!parsed) {
38521
38576
  ctx.addIssue({
38522
- code: z67.ZodIssueCode.custom,
38577
+ code: z65.ZodIssueCode.custom,
38523
38578
  message: "Unknown booking vertical"
38524
38579
  });
38525
- return z67.NEVER;
38580
+ return z65.NEVER;
38526
38581
  }
38527
38582
  return parsed;
38528
38583
  });
38529
- var VerticalPresetIdSchema = z67.string().trim().transform((value, ctx) => {
38584
+ var VerticalPresetIdSchema = z65.string().trim().transform((value, ctx) => {
38530
38585
  const parsed = parseVerticalPresetId(value);
38531
38586
  if (!parsed) {
38532
38587
  ctx.addIssue({
38533
- code: z67.ZodIssueCode.custom,
38588
+ code: z65.ZodIssueCode.custom,
38534
38589
  message: "Unknown booking preset"
38535
38590
  });
38536
- return z67.NEVER;
38591
+ return z65.NEVER;
38537
38592
  }
38538
38593
  return parsed;
38539
38594
  });
38540
- var BookingVerticalConfigSchema = z67.object({
38595
+ var BookingVerticalConfigSchema = z65.object({
38541
38596
  verticalId: VerticalIdSchema.nullable(),
38542
- selectedPresetIds: z67.array(VerticalPresetIdSchema).max(20)
38597
+ selectedPresetIds: z65.array(VerticalPresetIdSchema).max(20)
38543
38598
  }).transform((value, ctx) => {
38544
38599
  const resolved = resolveSiteVerticalBookingConfig(value);
38545
38600
  if (resolved.kind === "invalid") {
38546
38601
  ctx.addIssue({
38547
- code: z67.ZodIssueCode.custom,
38602
+ code: z65.ZodIssueCode.custom,
38548
38603
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
38549
38604
  });
38550
- return z67.NEVER;
38605
+ return z65.NEVER;
38551
38606
  }
38552
38607
  return resolved.config;
38553
38608
  });
@@ -38574,51 +38629,51 @@ function isRecord7(value) {
38574
38629
  }
38575
38630
 
38576
38631
  // ../api/src/appointmentSetup.ts
38577
- import { z as z68 } from "zod";
38632
+ import { z as z66 } from "zod";
38578
38633
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
38579
- var appointmentSetupRefSchema = z68.discriminatedUnion("kind", [
38580
- z68.object({ kind: z68.literal("existing"), id: z68.string().min(1) }),
38581
- z68.object({ kind: z68.literal("new"), draftId: z68.string().min(1) })
38634
+ var appointmentSetupRefSchema = z66.discriminatedUnion("kind", [
38635
+ z66.object({ kind: z66.literal("existing"), id: z66.string().min(1) }),
38636
+ z66.object({ kind: z66.literal("new"), draftId: z66.string().min(1) })
38582
38637
  ]);
38583
- var appointmentSetupVenueChoiceSchema = z68.discriminatedUnion("kind", [
38584
- z68.object({ kind: z68.literal("none") }),
38585
- z68.object({ kind: z68.literal("existing"), venueId: z68.string().min(1) }),
38586
- z68.object({
38587
- kind: z68.literal("create"),
38588
- draftId: z68.string().min(1),
38589
- title: z68.string().trim().min(1),
38590
- description: z68.string().nullable(),
38591
- timezone: z68.string().trim().min(1).nullable(),
38592
- addressJson: z68.record(z68.string(), z68.unknown()),
38593
- locationJson: z68.object({ lat: z68.number(), lng: z68.number() }).nullable()
38638
+ var appointmentSetupVenueChoiceSchema = z66.discriminatedUnion("kind", [
38639
+ z66.object({ kind: z66.literal("none") }),
38640
+ z66.object({ kind: z66.literal("existing"), venueId: z66.string().min(1) }),
38641
+ z66.object({
38642
+ kind: z66.literal("create"),
38643
+ draftId: z66.string().min(1),
38644
+ title: z66.string().trim().min(1),
38645
+ description: z66.string().nullable(),
38646
+ timezone: z66.string().trim().min(1).nullable(),
38647
+ addressJson: z66.record(z66.string(), z66.unknown()),
38648
+ locationJson: z66.object({ lat: z66.number(), lng: z66.number() }).nullable()
38594
38649
  })
38595
38650
  ]);
38596
- var appointmentSetupPaymentDraftSchema = z68.object({
38597
- priceType: z68.union([z68.literal("free"), z68.literal("paid")])
38598
- });
38599
- var appointmentSetupServiceAssignmentDraftSchema = z68.discriminatedUnion("kind", [
38600
- z68.object({ kind: z68.literal("all_practitioners") }),
38601
- z68.object({
38602
- kind: z68.literal("selected_practitioners"),
38603
- resourceRefs: z68.array(appointmentSetupRefSchema)
38651
+ var appointmentSetupPaymentDraftSchema = z66.object({
38652
+ priceType: z66.union([z66.literal("free"), z66.literal("paid")])
38653
+ });
38654
+ var appointmentSetupServiceAssignmentDraftSchema = z66.discriminatedUnion("kind", [
38655
+ z66.object({ kind: z66.literal("all_practitioners") }),
38656
+ z66.object({
38657
+ kind: z66.literal("selected_practitioners"),
38658
+ resourceRefs: z66.array(appointmentSetupRefSchema)
38604
38659
  })
38605
38660
  ]);
38606
- var appointmentSetupServiceDraftSchema = z68.object({
38661
+ var appointmentSetupServiceDraftSchema = z66.object({
38607
38662
  ref: appointmentSetupRefSchema,
38608
- title: z68.string().trim().min(1),
38609
- description: z68.string().nullable(),
38610
- durationMinutes: z68.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38611
- prepMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38612
- cleanupMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38613
- priceAmount: z68.number().int().nonnegative().nullable(),
38614
- isActive: z68.boolean(),
38615
- locationType: z68.union([
38616
- z68.literal("virtual"),
38617
- z68.literal("in_person"),
38618
- z68.literal("hybrid")
38663
+ title: z66.string().trim().min(1),
38664
+ description: z66.string().nullable(),
38665
+ durationMinutes: z66.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38666
+ prepMinutes: z66.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38667
+ cleanupMinutes: z66.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38668
+ priceAmount: z66.number().int().nonnegative().nullable(),
38669
+ isActive: z66.boolean(),
38670
+ locationType: z66.union([
38671
+ z66.literal("virtual"),
38672
+ z66.literal("in_person"),
38673
+ z66.literal("hybrid")
38619
38674
  ]),
38620
38675
  venue: appointmentSetupVenueChoiceSchema,
38621
- timezone: z68.string().trim().min(1).nullable(),
38676
+ timezone: z66.string().trim().min(1).nullable(),
38622
38677
  payment: appointmentSetupPaymentDraftSchema,
38623
38678
  assignment: appointmentSetupServiceAssignmentDraftSchema
38624
38679
  }).superRefine((service, ctx) => {
@@ -38637,49 +38692,49 @@ var appointmentSetupServiceDraftSchema = z68.object({
38637
38692
  });
38638
38693
  }
38639
38694
  });
38640
- var appointmentSetupPractitionerDraftSchema = z68.object({
38695
+ var appointmentSetupPractitionerDraftSchema = z66.object({
38641
38696
  ref: appointmentSetupRefSchema,
38642
- displayName: z68.string().trim().min(1),
38643
- bio: z68.string().nullable(),
38644
- timezone: z68.string().trim().min(1),
38645
- colorHex: z68.string().nullable()
38646
- });
38647
- var appointmentSetupWeeklyWindowDraftSchema = z68.object({
38648
- weekday: z68.number().int().min(0).max(6),
38649
- startTime: z68.string(),
38650
- endTime: z68.string()
38651
- });
38652
- var appointmentSetupStartTimePolicyDraftSchema = z68.discriminatedUnion("kind", [
38653
- z68.object({ kind: z68.literal("automatic_spacing") }),
38654
- z68.object({
38655
- kind: z68.literal("regular_interval"),
38656
- intervalMinutes: z68.union([
38657
- z68.literal(10),
38658
- z68.literal(15),
38659
- z68.literal(20),
38660
- z68.literal(30),
38661
- z68.literal(45),
38662
- z68.literal(60)
38697
+ displayName: z66.string().trim().min(1),
38698
+ bio: z66.string().nullable(),
38699
+ timezone: z66.string().trim().min(1),
38700
+ colorHex: z66.string().nullable()
38701
+ });
38702
+ var appointmentSetupWeeklyWindowDraftSchema = z66.object({
38703
+ weekday: z66.number().int().min(0).max(6),
38704
+ startTime: z66.string(),
38705
+ endTime: z66.string()
38706
+ });
38707
+ var appointmentSetupStartTimePolicyDraftSchema = z66.discriminatedUnion("kind", [
38708
+ z66.object({ kind: z66.literal("automatic_spacing") }),
38709
+ z66.object({
38710
+ kind: z66.literal("regular_interval"),
38711
+ intervalMinutes: z66.union([
38712
+ z66.literal(10),
38713
+ z66.literal(15),
38714
+ z66.literal(20),
38715
+ z66.literal(30),
38716
+ z66.literal(45),
38717
+ z66.literal(60)
38663
38718
  ])
38664
38719
  })
38665
38720
  ]);
38666
- var appointmentSetupAvailabilityDraftSchema = z68.object({
38667
- kind: z68.literal("weekly_windows"),
38721
+ var appointmentSetupAvailabilityDraftSchema = z66.object({
38722
+ kind: z66.literal("weekly_windows"),
38668
38723
  resourceRef: appointmentSetupRefSchema,
38669
38724
  serviceRef: appointmentSetupRefSchema.nullable(),
38670
- windows: z68.array(appointmentSetupWeeklyWindowDraftSchema),
38725
+ windows: z66.array(appointmentSetupWeeklyWindowDraftSchema),
38671
38726
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
38672
38727
  });
38673
38728
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
38674
38729
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
38675
- var appointmentSetupBookingNoticeSchema = z68.object({
38676
- minLeadMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38677
- maxBookingNoticeMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38678
- });
38679
- var applyAppointmentSetupRequestSchema = z68.object({
38680
- services: z68.array(appointmentSetupServiceDraftSchema),
38681
- practitioners: z68.array(appointmentSetupPractitionerDraftSchema),
38682
- availability: z68.array(appointmentSetupAvailabilityDraftSchema),
38730
+ var appointmentSetupBookingNoticeSchema = z66.object({
38731
+ minLeadMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38732
+ maxBookingNoticeMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38733
+ });
38734
+ var applyAppointmentSetupRequestSchema = z66.object({
38735
+ services: z66.array(appointmentSetupServiceDraftSchema),
38736
+ practitioners: z66.array(appointmentSetupPractitionerDraftSchema),
38737
+ availability: z66.array(appointmentSetupAvailabilityDraftSchema),
38683
38738
  bookingNotice: appointmentSetupBookingNoticeSchema
38684
38739
  });
38685
38740
 
@@ -38712,24 +38767,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
38712
38767
  ];
38713
38768
 
38714
38769
  // ../api/src/siteBanner.ts
38715
- import { z as z69 } from "zod";
38770
+ import { z as z67 } from "zod";
38716
38771
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
38717
38772
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
38718
38773
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
38719
38774
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
38720
- var siteBannerScopeSchema = z69.enum(SITE_BANNER_SCOPE_VALUES);
38721
- var siteBannerToneSchema = z69.enum(SITE_BANNER_TONE_VALUES);
38722
- var siteBannerBodySchema = z69.unknown().transform(unwrapRichTextValue);
38723
- var siteBannerCtaSchema = z69.object({
38724
- label: z69.string().trim().min(1),
38775
+ var siteBannerScopeSchema = z67.enum(SITE_BANNER_SCOPE_VALUES);
38776
+ var siteBannerToneSchema = z67.enum(SITE_BANNER_TONE_VALUES);
38777
+ var siteBannerBodySchema = z67.unknown().transform(unwrapRichTextValue);
38778
+ var siteBannerCtaSchema = z67.object({
38779
+ label: z67.string().trim().min(1),
38725
38780
  link: linkPayloadSchema
38726
38781
  });
38727
- var siteBannerSettingsSchema = z69.discriminatedUnion("enabled", [
38728
- z69.object({
38729
- enabled: z69.literal(false)
38782
+ var siteBannerSettingsSchema = z67.discriminatedUnion("enabled", [
38783
+ z67.object({
38784
+ enabled: z67.literal(false)
38730
38785
  }),
38731
- z69.object({
38732
- enabled: z69.literal(true),
38786
+ z67.object({
38787
+ enabled: z67.literal(true),
38733
38788
  scope: siteBannerScopeSchema,
38734
38789
  tone: siteBannerToneSchema,
38735
38790
  body: siteBannerBodySchema,
@@ -38743,7 +38798,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
38743
38798
  const analysis = analyzeSiteBannerBody(value.body);
38744
38799
  for (const issue of analysis.issues) {
38745
38800
  ctx.addIssue({
38746
- code: z69.ZodIssueCode.custom,
38801
+ code: z67.ZodIssueCode.custom,
38747
38802
  path: ["body"],
38748
38803
  message: siteBannerBodyIssueMessage(issue)
38749
38804
  });
@@ -39050,75 +39105,75 @@ function unsafeAsNavigationMenuIdentifier(identifier) {
39050
39105
  var MAIN_NAVIGATION_MENU_IDENTIFIER = unsafeAsNavigationMenuIdentifier("main");
39051
39106
 
39052
39107
  // ../api/src/aiPlayground.ts
39053
- import { z as z70 } from "zod";
39054
- var Rfc6902PatchOp = z70.discriminatedUnion("op", [
39108
+ import { z as z68 } from "zod";
39109
+ var Rfc6902PatchOp = z68.discriminatedUnion("op", [
39055
39110
  // Standard RFC-6902 operations
39056
- z70.object({
39057
- op: z70.literal("add"),
39058
- path: z70.string(),
39059
- value: z70.unknown()
39111
+ z68.object({
39112
+ op: z68.literal("add"),
39113
+ path: z68.string(),
39114
+ value: z68.unknown()
39060
39115
  }),
39061
- z70.object({
39062
- op: z70.literal("remove"),
39063
- path: z70.string()
39116
+ z68.object({
39117
+ op: z68.literal("remove"),
39118
+ path: z68.string()
39064
39119
  }),
39065
- z70.object({
39066
- op: z70.literal("replace"),
39067
- path: z70.string(),
39068
- value: z70.unknown()
39120
+ z68.object({
39121
+ op: z68.literal("replace"),
39122
+ path: z68.string(),
39123
+ value: z68.unknown()
39069
39124
  }),
39070
- z70.object({
39071
- op: z70.literal("move"),
39072
- from: z70.string(),
39073
- path: z70.string()
39125
+ z68.object({
39126
+ op: z68.literal("move"),
39127
+ from: z68.string(),
39128
+ path: z68.string()
39074
39129
  }),
39075
- z70.object({
39076
- op: z70.literal("copy"),
39077
- from: z70.string(),
39078
- path: z70.string()
39130
+ z68.object({
39131
+ op: z68.literal("copy"),
39132
+ from: z68.string(),
39133
+ path: z68.string()
39079
39134
  }),
39080
39135
  // Block-level operations (Phase 2)
39081
- z70.object({
39082
- op: z70.literal("add_block"),
39083
- blockKind: z70.string(),
39084
- afterBlockId: z70.string().nullable(),
39085
- content: z70.record(z70.string(), z70.unknown()),
39086
- rationale: z70.string()
39136
+ z68.object({
39137
+ op: z68.literal("add_block"),
39138
+ blockKind: z68.string(),
39139
+ afterBlockId: z68.string().nullable(),
39140
+ content: z68.record(z68.string(), z68.unknown()),
39141
+ rationale: z68.string()
39087
39142
  }),
39088
- z70.object({
39089
- op: z70.literal("delete_block"),
39090
- blockId: z70.string(),
39091
- rationale: z70.string()
39143
+ z68.object({
39144
+ op: z68.literal("delete_block"),
39145
+ blockId: z68.string(),
39146
+ rationale: z68.string()
39092
39147
  }),
39093
- z70.object({
39094
- op: z70.literal("reorder_block"),
39095
- blockId: z70.string(),
39096
- afterBlockId: z70.string().nullable(),
39097
- rationale: z70.string()
39148
+ z68.object({
39149
+ op: z68.literal("reorder_block"),
39150
+ blockId: z68.string(),
39151
+ afterBlockId: z68.string().nullable(),
39152
+ rationale: z68.string()
39098
39153
  })
39099
39154
  ]);
39100
- var PlaygroundProposeRequest = z70.object({
39101
- request: z70.string().min(1).max(2e3)
39155
+ var PlaygroundProposeRequest = z68.object({
39156
+ request: z68.string().min(1).max(2e3)
39102
39157
  });
39103
- var MultiPagePatchEnvelope = z70.object({
39104
- pageId: z70.string(),
39105
- blockId: z70.string().optional(),
39158
+ var MultiPagePatchEnvelope = z68.object({
39159
+ pageId: z68.string(),
39160
+ blockId: z68.string().optional(),
39106
39161
  // Not present for page-level ops
39107
- blockKind: z70.string().optional(),
39108
- blockPurpose: z70.string().optional().nullable(),
39109
- ops: z70.array(Rfc6902PatchOp),
39110
- rationale: z70.string(),
39111
- currentContent: z70.record(z70.string(), z70.unknown()).optional()
39162
+ blockKind: z68.string().optional(),
39163
+ blockPurpose: z68.string().optional().nullable(),
39164
+ ops: z68.array(Rfc6902PatchOp),
39165
+ rationale: z68.string(),
39166
+ currentContent: z68.record(z68.string(), z68.unknown()).optional()
39112
39167
  });
39113
- var MultiPageUpdateResponse = z70.object({
39114
- patches: z70.array(MultiPagePatchEnvelope),
39115
- assistantMessage: z70.string(),
39116
- pagesModified: z70.number(),
39117
- toolCallsUsed: z70.number()
39168
+ var MultiPageUpdateResponse = z68.object({
39169
+ patches: z68.array(MultiPagePatchEnvelope),
39170
+ assistantMessage: z68.string(),
39171
+ pagesModified: z68.number(),
39172
+ toolCallsUsed: z68.number()
39118
39173
  });
39119
39174
 
39120
39175
  // src/config/content-validation.ts
39121
- import { z as z71 } from "zod";
39176
+ import { z as z69 } from "zod";
39122
39177
 
39123
39178
  // src/types/block-kinds.ts
39124
39179
  var SYSTEM_BLOCK_KINDS = [
@@ -39274,36 +39329,36 @@ function describeInvalidBindingTransform(transform) {
39274
39329
  }
39275
39330
 
39276
39331
  // src/config/content-validation.ts
39277
- var jsonDataSchema = z71.record(z71.string(), z71.any());
39278
- var contentTypeKeySchema = z71.string().min(1).regex(
39332
+ var jsonDataSchema = z69.record(z69.string(), z69.any());
39333
+ var contentTypeKeySchema = z69.string().min(1).regex(
39279
39334
  /^[a-z][a-z0-9-]*$/,
39280
39335
  "Key must be lowercase, start with a letter, and contain only letters, numbers, and hyphens"
39281
39336
  );
39282
- var templateConfigSchemaForward = z71.object({
39283
- blocks: z71.array(
39284
- z71.object({
39285
- identifier: z71.string().min(1),
39286
- kind: z71.string(),
39287
- scope: z71.enum(["entry", "template"]),
39288
- bindings: z71.record(z71.string(), z71.any()).optional(),
39289
- content: z71.record(z71.string(), z71.any()).optional()
39337
+ var templateConfigSchemaForward = z69.object({
39338
+ blocks: z69.array(
39339
+ z69.object({
39340
+ identifier: z69.string().min(1),
39341
+ kind: z69.string(),
39342
+ scope: z69.enum(["entry", "template"]),
39343
+ bindings: z69.record(z69.string(), z69.any()).optional(),
39344
+ content: z69.record(z69.string(), z69.any()).optional()
39290
39345
  })
39291
39346
  )
39292
39347
  }).optional();
39293
- var contentTypeOrderingSchema = z71.object({
39294
- mode: z71.enum(["default", "manual"]).optional()
39348
+ var contentTypeOrderingSchema = z69.object({
39349
+ mode: z69.enum(["default", "manual"]).optional()
39295
39350
  }).optional();
39296
- var contentTypeConfigSchema = z71.object({
39351
+ var contentTypeConfigSchema = z69.object({
39297
39352
  key: contentTypeKeySchema,
39298
- name: z71.string().min(1),
39299
- description: z71.string().optional(),
39300
- hasPages: z71.boolean(),
39301
- routePattern: z71.string().optional(),
39353
+ name: z69.string().min(1),
39354
+ description: z69.string().optional(),
39355
+ hasPages: z69.boolean(),
39356
+ routePattern: z69.string().optional(),
39302
39357
  // Fields are validated as unknown[] here - deep field validation happens in @riverbankcms/blocks
39303
- fields: z71.array(z71.any()).min(1, "At least one field is required"),
39304
- titleField: z71.string().optional(),
39358
+ fields: z69.array(z69.any()).min(1, "At least one field is required"),
39359
+ titleField: z69.string().optional(),
39305
39360
  ordering: contentTypeOrderingSchema,
39306
- isSingleton: z71.boolean().optional().default(false),
39361
+ isSingleton: z69.boolean().optional().default(false),
39307
39362
  template: templateConfigSchemaForward
39308
39363
  }).refine(
39309
39364
  (data) => {
@@ -39325,7 +39380,7 @@ var contentTypeConfigSchema = z71.object({
39325
39380
  }
39326
39381
  if (!data.routePattern) {
39327
39382
  ctx.addIssue({
39328
- code: z71.ZodIssueCode.custom,
39383
+ code: z69.ZodIssueCode.custom,
39329
39384
  path: ["routePattern"],
39330
39385
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39331
39386
  });
@@ -39334,7 +39389,7 @@ var contentTypeConfigSchema = z71.object({
39334
39389
  const parseResult = safeParseRouteTemplate(data.routePattern);
39335
39390
  if (!parseResult.success) {
39336
39391
  ctx.addIssue({
39337
- code: z71.ZodIssueCode.custom,
39392
+ code: z69.ZodIssueCode.custom,
39338
39393
  path: ["routePattern"],
39339
39394
  message: describeRouteTemplateParseError(parseResult.error)
39340
39395
  });
@@ -39342,44 +39397,44 @@ var contentTypeConfigSchema = z71.object({
39342
39397
  }
39343
39398
  if (!data.isSingleton && parseResult.routeTemplate.kind !== "slug-template") {
39344
39399
  ctx.addIssue({
39345
- code: z71.ZodIssueCode.custom,
39400
+ code: z69.ZodIssueCode.custom,
39346
39401
  path: ["routePattern"],
39347
39402
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39348
39403
  });
39349
39404
  }
39350
39405
  });
39351
- var fieldBindingSchema = z71.object({
39352
- source: z71.literal("field"),
39353
- path: z71.string().min(1, "Field path is required")
39406
+ var fieldBindingSchema = z69.object({
39407
+ source: z69.literal("field"),
39408
+ path: z69.string().min(1, "Field path is required")
39354
39409
  });
39355
- var metaBindingSchema = z71.object({
39356
- source: z71.literal("meta"),
39357
- path: z71.enum(TEMPLATE_BINDING_META_PATHS, {
39410
+ var metaBindingSchema = z69.object({
39411
+ source: z69.literal("meta"),
39412
+ path: z69.enum(TEMPLATE_BINDING_META_PATHS, {
39358
39413
  error: (issue) => describeInvalidTemplateBindingMetaPath(String(issue.input))
39359
39414
  })
39360
39415
  });
39361
- var literalBindingSchema = z71.object({
39362
- source: z71.literal("literal"),
39363
- value: z71.unknown()
39416
+ var literalBindingSchema = z69.object({
39417
+ source: z69.literal("literal"),
39418
+ value: z69.unknown()
39364
39419
  });
39365
- var transformBindingSchema = z71.object({
39366
- source: z71.literal("transform"),
39367
- path: z71.string().min(1, "Transform path is required"),
39368
- transform: z71.enum(BINDING_TRANSFORM_VALUES, {
39420
+ var transformBindingSchema = z69.object({
39421
+ source: z69.literal("transform"),
39422
+ path: z69.string().min(1, "Transform path is required"),
39423
+ transform: z69.enum(BINDING_TRANSFORM_VALUES, {
39369
39424
  error: (issue) => describeInvalidBindingTransform(String(issue.input))
39370
39425
  })
39371
39426
  });
39372
- var baseBindingSchema = z71.discriminatedUnion("source", [
39427
+ var baseBindingSchema = z69.discriminatedUnion("source", [
39373
39428
  fieldBindingSchema,
39374
39429
  metaBindingSchema,
39375
39430
  literalBindingSchema,
39376
39431
  transformBindingSchema
39377
39432
  ]);
39378
- var fallbackBindingSchema = z71.object({
39379
- source: z71.literal("fallback"),
39380
- sources: z71.array(z71.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39433
+ var fallbackBindingSchema = z69.object({
39434
+ source: z69.literal("fallback"),
39435
+ sources: z69.array(z69.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39381
39436
  });
39382
- var bindingSourceSchema = z71.union([
39437
+ var bindingSourceSchema = z69.union([
39383
39438
  baseBindingSchema,
39384
39439
  fallbackBindingSchema
39385
39440
  ]);
@@ -39393,12 +39448,12 @@ function isValidBlockKind(kind) {
39393
39448
  return false;
39394
39449
  }
39395
39450
  var BLOCK_KIND_ERROR_MESSAGE = 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.myBlock")';
39396
- var blockKindSchema = z71.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39397
- var templateBlockConfigSchema = z71.object({
39398
- identifier: z71.string().min(1, "Block identifier is required"),
39451
+ var blockKindSchema = z69.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39452
+ var templateBlockConfigSchema = z69.object({
39453
+ identifier: z69.string().min(1, "Block identifier is required"),
39399
39454
  kind: blockKindSchema,
39400
- scope: z71.enum(["entry", "template"]),
39401
- bindings: z71.record(z71.string(), bindingSourceSchema).optional(),
39455
+ scope: z69.enum(["entry", "template"]),
39456
+ bindings: z69.record(z69.string(), bindingSourceSchema).optional(),
39402
39457
  content: jsonDataSchema.optional()
39403
39458
  }).refine(
39404
39459
  (data) => {
@@ -39417,8 +39472,8 @@ var templateBlockConfigSchema = z71.object({
39417
39472
  },
39418
39473
  { message: "Template-scoped blocks should define static content, not bindings" }
39419
39474
  );
39420
- var templateConfigSchema = z71.object({
39421
- blocks: z71.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39475
+ var templateConfigSchema = z69.object({
39476
+ blocks: z69.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39422
39477
  }).refine(
39423
39478
  (data) => {
39424
39479
  const identifiers = data.blocks.map((b) => b.identifier);
@@ -39427,77 +39482,77 @@ var templateConfigSchema = z71.object({
39427
39482
  },
39428
39483
  { message: "Template block identifiers must be unique" }
39429
39484
  );
39430
- var blockConfigSchema = z71.object({
39485
+ var blockConfigSchema = z69.object({
39431
39486
  kind: blockKindSchema,
39432
39487
  content: jsonDataSchema,
39433
- orderIndex: z71.number().optional()
39434
- });
39435
- var pageConfigSchema = z71.object({
39436
- identifier: z71.string().min(1, "Identifier is required"),
39437
- title: z71.string().min(1, "Title is required"),
39438
- path: z71.string().regex(/^\//, "Path must start with /"),
39439
- purpose: z71.string().default("content"),
39440
- blocks: z71.array(blockConfigSchema).optional(),
39441
- status: z71.enum(["draft", "published"]).default("draft"),
39442
- metaTitle: z71.string().optional(),
39443
- metaDescription: z71.string().optional()
39444
- });
39445
- var entryConfigSchema = z71.object({
39446
- identifier: z71.string().min(1, "Identifier is required"),
39447
- contentType: z71.string().min(1, "Content type is required"),
39488
+ orderIndex: z69.number().optional()
39489
+ });
39490
+ var pageConfigSchema = z69.object({
39491
+ identifier: z69.string().min(1, "Identifier is required"),
39492
+ title: z69.string().min(1, "Title is required"),
39493
+ path: z69.string().regex(/^\//, "Path must start with /"),
39494
+ purpose: z69.string().default("content"),
39495
+ blocks: z69.array(blockConfigSchema).optional(),
39496
+ status: z69.enum(["draft", "published"]).default("draft"),
39497
+ metaTitle: z69.string().optional(),
39498
+ metaDescription: z69.string().optional()
39499
+ });
39500
+ var entryConfigSchema = z69.object({
39501
+ identifier: z69.string().min(1, "Identifier is required"),
39502
+ contentType: z69.string().min(1, "Content type is required"),
39448
39503
  data: jsonDataSchema,
39449
- status: z71.enum(["draft", "published"]).default("draft"),
39450
- slug: z71.string().optional(),
39451
- summary: z71.string().optional(),
39504
+ status: z69.enum(["draft", "published"]).default("draft"),
39505
+ slug: z69.string().optional(),
39506
+ summary: z69.string().optional(),
39452
39507
  // Hard remove legacy config-only titles: titles must live in entry `data`.
39453
- title: z71.any().optional().refine((value) => value === void 0, {
39508
+ title: z69.any().optional().refine((value) => value === void 0, {
39454
39509
  message: "Entry titles are now derived from entry data. Remove `title` and move it into `data` (e.g. `data.title`, or your configured `titleField`). Run `riverbankcms migrate entries` for guided migration."
39455
39510
  }),
39456
- metaTitle: z71.string().optional(),
39457
- metaDescription: z71.string().optional()
39511
+ metaTitle: z69.string().optional(),
39512
+ metaDescription: z69.string().optional()
39458
39513
  });
39459
- var dropdownLinkSchema = z71.object({
39460
- kind: z71.literal("dropdown")
39514
+ var dropdownLinkSchema = z69.object({
39515
+ kind: z69.literal("dropdown")
39461
39516
  });
39462
- var navigationLinkSchema = z71.discriminatedUnion("kind", [
39517
+ var navigationLinkSchema = z69.discriminatedUnion("kind", [
39463
39518
  ...navigationLinkInputSchemaOptions,
39464
39519
  dropdownLinkSchema
39465
39520
  ]);
39466
- var baseNavigationItemSchema = z71.object({
39467
- label: z71.string().min(1, "Label is required"),
39521
+ var baseNavigationItemSchema = z69.object({
39522
+ label: z69.string().min(1, "Label is required"),
39468
39523
  link: navigationLinkSchema,
39469
- isCta: z71.boolean().optional()
39524
+ isCta: z69.boolean().optional()
39470
39525
  });
39471
39526
  var navigationItemConfigSchema = baseNavigationItemSchema.extend({
39472
- children: z71.lazy(() => z71.array(navigationItemConfigSchema)).optional()
39473
- });
39474
- var navigationMenuConfigSchema = z71.object({
39475
- identifier: z71.string().min(1, "Identifier is required"),
39476
- name: z71.string().min(1, "Name is required"),
39477
- isPrimary: z71.boolean().optional(),
39478
- isFooter: z71.boolean().optional(),
39479
- items: z71.array(navigationItemConfigSchema)
39527
+ children: z69.lazy(() => z69.array(navigationItemConfigSchema)).optional()
39528
+ });
39529
+ var navigationMenuConfigSchema = z69.object({
39530
+ identifier: z69.string().min(1, "Identifier is required"),
39531
+ name: z69.string().min(1, "Name is required"),
39532
+ isPrimary: z69.boolean().optional(),
39533
+ isFooter: z69.boolean().optional(),
39534
+ items: z69.array(navigationItemConfigSchema)
39480
39535
  }).superRefine((menu, ctx) => {
39481
39536
  const portalStats = collectPortalLinkStats(
39482
39537
  menu.items
39483
39538
  );
39484
39539
  if (portalStats.count > 1) {
39485
39540
  ctx.addIssue({
39486
- code: z71.ZodIssueCode.custom,
39541
+ code: z69.ZodIssueCode.custom,
39487
39542
  message: "Only one portal link is allowed per navigation menu",
39488
39543
  path: ["items"]
39489
39544
  });
39490
39545
  }
39491
39546
  if (portalStats.nestedLabels.length > 0) {
39492
39547
  ctx.addIssue({
39493
- code: z71.ZodIssueCode.custom,
39548
+ code: z69.ZodIssueCode.custom,
39494
39549
  message: `Portal links must be root-level items: ${portalStats.nestedLabels.join(", ")}`,
39495
39550
  path: ["items"]
39496
39551
  });
39497
39552
  }
39498
39553
  if (portalStats.withChildrenLabels.length > 0) {
39499
39554
  ctx.addIssue({
39500
- code: z71.ZodIssueCode.custom,
39555
+ code: z69.ZodIssueCode.custom,
39501
39556
  message: `Portal links cannot contain child items: ${portalStats.withChildrenLabels.join(", ")}`,
39502
39557
  path: ["items"]
39503
39558
  });
@@ -39507,44 +39562,44 @@ var navigationMenuConfigSchema = z71.object({
39507
39562
  );
39508
39563
  if (cartStats.nestedLabels.length > 0) {
39509
39564
  ctx.addIssue({
39510
- code: z71.ZodIssueCode.custom,
39565
+ code: z69.ZodIssueCode.custom,
39511
39566
  message: `Cart links must be root-level items: ${cartStats.nestedLabels.join(", ")}`,
39512
39567
  path: ["items"]
39513
39568
  });
39514
39569
  }
39515
39570
  if (cartStats.withChildrenLabels.length > 0) {
39516
39571
  ctx.addIssue({
39517
- code: z71.ZodIssueCode.custom,
39572
+ code: z69.ZodIssueCode.custom,
39518
39573
  message: `Cart links cannot contain child items: ${cartStats.withChildrenLabels.join(", ")}`,
39519
39574
  path: ["items"]
39520
39575
  });
39521
39576
  }
39522
39577
  if (cartStats.ctaLabels.length > 0) {
39523
39578
  ctx.addIssue({
39524
- code: z71.ZodIssueCode.custom,
39579
+ code: z69.ZodIssueCode.custom,
39525
39580
  message: `Cart links cannot be marked as CTA: ${cartStats.ctaLabels.join(", ")}`,
39526
39581
  path: ["items"]
39527
39582
  });
39528
39583
  }
39529
39584
  if (cartStats.missingVisibleTextLabels.length > 0) {
39530
39585
  ctx.addIssue({
39531
- code: z71.ZodIssueCode.custom,
39586
+ code: z69.ZodIssueCode.custom,
39532
39587
  message: `Cart links with icon-with-label must provide a visible label: ${cartStats.missingVisibleTextLabels.join(", ")}`,
39533
39588
  path: ["items"]
39534
39589
  });
39535
39590
  }
39536
39591
  });
39537
- var siteSettingsConfigSchema = z71.object({
39538
- homepagePath: z71.string().optional(),
39539
- siteTitle: z71.string().optional(),
39540
- siteDescription: z71.string().optional(),
39541
- defaultTemplates: z71.record(z71.string(), z71.string()).optional()
39592
+ var siteSettingsConfigSchema = z69.object({
39593
+ homepagePath: z69.string().optional(),
39594
+ siteTitle: z69.string().optional(),
39595
+ siteDescription: z69.string().optional(),
39596
+ defaultTemplates: z69.record(z69.string(), z69.string()).optional()
39542
39597
  });
39543
- var contentConfigBaseSchema = z71.object({
39544
- contentTypes: z71.array(contentTypeConfigSchema).optional(),
39545
- entries: z71.array(entryConfigSchema).optional(),
39546
- pages: z71.array(pageConfigSchema).optional(),
39547
- navigationMenus: z71.array(navigationMenuConfigSchema).optional(),
39598
+ var contentConfigBaseSchema = z69.object({
39599
+ contentTypes: z69.array(contentTypeConfigSchema).optional(),
39600
+ entries: z69.array(entryConfigSchema).optional(),
39601
+ pages: z69.array(pageConfigSchema).optional(),
39602
+ navigationMenus: z69.array(navigationMenuConfigSchema).optional(),
39548
39603
  settings: siteSettingsConfigSchema.optional()
39549
39604
  });
39550
39605
  var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
@@ -39553,7 +39608,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39553
39608
  const duplicateKeys = keys.filter((key, i) => keys.indexOf(key) !== i);
39554
39609
  if (duplicateKeys.length > 0) {
39555
39610
  ctx.addIssue({
39556
- code: z71.ZodIssueCode.custom,
39611
+ code: z69.ZodIssueCode.custom,
39557
39612
  message: `Content type keys must be unique. Duplicates: ${duplicateKeys.join(", ")}`,
39558
39613
  path: ["contentTypes"]
39559
39614
  });
@@ -39564,7 +39619,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39564
39619
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39565
39620
  if (duplicateIds.length > 0) {
39566
39621
  ctx.addIssue({
39567
- code: z71.ZodIssueCode.custom,
39622
+ code: z69.ZodIssueCode.custom,
39568
39623
  message: `Page identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39569
39624
  path: ["pages"]
39570
39625
  });
@@ -39573,7 +39628,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39573
39628
  const duplicatePaths = paths.filter((path, i) => paths.indexOf(path) !== i);
39574
39629
  if (duplicatePaths.length > 0) {
39575
39630
  ctx.addIssue({
39576
- code: z71.ZodIssueCode.custom,
39631
+ code: z69.ZodIssueCode.custom,
39577
39632
  message: `Page paths must be unique. Duplicates: ${duplicatePaths.join(", ")}`,
39578
39633
  path: ["pages"]
39579
39634
  });
@@ -39584,7 +39639,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39584
39639
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39585
39640
  if (duplicateIds.length > 0) {
39586
39641
  ctx.addIssue({
39587
- code: z71.ZodIssueCode.custom,
39642
+ code: z69.ZodIssueCode.custom,
39588
39643
  message: `Entry identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39589
39644
  path: ["entries"]
39590
39645
  });
@@ -39595,7 +39650,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39595
39650
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39596
39651
  if (duplicateIds.length > 0) {
39597
39652
  ctx.addIssue({
39598
- code: z71.ZodIssueCode.custom,
39653
+ code: z69.ZodIssueCode.custom,
39599
39654
  message: `Navigation menu identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39600
39655
  path: ["navigationMenus"]
39601
39656
  });
@@ -39609,7 +39664,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39609
39664
  const entriesForType = data.entries.filter((e) => e.contentType === singletonKey);
39610
39665
  if (entriesForType.length > 1) {
39611
39666
  ctx.addIssue({
39612
- code: z71.ZodIssueCode.custom,
39667
+ code: z69.ZodIssueCode.custom,
39613
39668
  message: `Singleton content type "${singletonKey}" cannot have more than one entry. Found ${entriesForType.length} entries.`,
39614
39669
  path: ["entries"]
39615
39670
  });
@@ -39722,18 +39777,18 @@ function validateLayout(layout) {
39722
39777
  }
39723
39778
 
39724
39779
  // src/config/dashboard-validation.ts
39725
- import { z as z72 } from "zod";
39726
- var navIdListSchema2 = z72.preprocess((value) => {
39780
+ import { z as z70 } from "zod";
39781
+ var navIdListSchema2 = z70.preprocess((value) => {
39727
39782
  if (!Array.isArray(value)) return void 0;
39728
39783
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
39729
39784
  return filtered.length > 0 ? filtered : void 0;
39730
- }, z72.array(z72.string()).max(200, "Maximum 200 nav IDs").optional());
39731
- var dashboardNavVisibilityBaseSchema2 = z72.object({
39732
- mode: z72.enum(["augment", "restrict"]).optional(),
39785
+ }, z70.array(z70.string()).max(200, "Maximum 200 nav IDs").optional());
39786
+ var dashboardNavVisibilityBaseSchema2 = z70.object({
39787
+ mode: z70.enum(["augment", "restrict"]).optional(),
39733
39788
  allowIds: navIdListSchema2,
39734
39789
  denyIds: navIdListSchema2
39735
39790
  }).strip();
39736
- var dashboardNavVisibilityRolesSchema2 = z72.object({
39791
+ var dashboardNavVisibilityRolesSchema2 = z70.object({
39737
39792
  administrator: dashboardNavVisibilityBaseSchema2.optional(),
39738
39793
  editor: dashboardNavVisibilityBaseSchema2.optional(),
39739
39794
  team_member: dashboardNavVisibilityBaseSchema2.optional()
@@ -39741,28 +39796,28 @@ var dashboardNavVisibilityRolesSchema2 = z72.object({
39741
39796
  var dashboardNavVisibilitySchema2 = dashboardNavVisibilityBaseSchema2.extend({
39742
39797
  roles: dashboardNavVisibilityRolesSchema2
39743
39798
  }).strip();
39744
- var dashboardNavigationConfigSchema2 = z72.object({
39799
+ var dashboardNavigationConfigSchema2 = z70.object({
39745
39800
  siteNav: dashboardNavVisibilitySchema2.optional(),
39746
39801
  settingsNav: dashboardNavVisibilitySchema2.optional()
39747
39802
  }).strip();
39748
- var dashboardConfigSchema2 = z72.object({
39749
- previewEditingEnabled: z72.boolean().optional(),
39803
+ var dashboardConfigSchema2 = z70.object({
39804
+ previewEditingEnabled: z70.boolean().optional(),
39750
39805
  navigation: dashboardNavigationConfigSchema2.optional()
39751
39806
  }).strip();
39752
39807
 
39753
39808
  // src/zod/titleSourceSchema.ts
39754
- import { z as z73 } from "zod";
39755
- var titleSourceValueSchema = z73.union([
39756
- z73.string().min(1),
39757
- z73.array(z73.string().min(1)).min(1)
39809
+ import { z as z71 } from "zod";
39810
+ var titleSourceValueSchema = z71.union([
39811
+ z71.string().min(1),
39812
+ z71.array(z71.string().min(1)).min(1)
39758
39813
  ]);
39759
39814
 
39760
39815
  // src/config/validation.ts
39761
- var sdkThemePaletteSchema2 = z74.record(z74.string(), z74.string());
39762
- var sdkThemeConfigSchema2 = z74.object({
39816
+ var sdkThemePaletteSchema2 = z72.record(z72.string(), z72.string());
39817
+ var sdkThemeConfigSchema2 = z72.object({
39763
39818
  palette: sdkThemePaletteSchema2
39764
39819
  });
39765
- var sdkSiteUrlSchema = z74.string().url("Must be a valid URL").refine((url) => {
39820
+ var sdkSiteUrlSchema = z72.string().url("Must be a valid URL").refine((url) => {
39766
39821
  try {
39767
39822
  const parsed = new URL(url);
39768
39823
  const isLocal = parsed.hostname === "localhost" || parsed.hostname.endsWith(".localhost") || parsed.hostname.endsWith(".local") || parsed.hostname.endsWith(".test");
@@ -39771,97 +39826,97 @@ var sdkSiteUrlSchema = z74.string().url("Must be a valid URL").refine((url) => {
39771
39826
  return false;
39772
39827
  }
39773
39828
  }, { message: "Production URLs must use HTTPS" }).transform((url) => url.replace(/\/$/, ""));
39774
- var sectionBackgroundSchema = z74.object({
39775
- id: z74.string(),
39776
- label: z74.string(),
39777
- token: z74.string()
39829
+ var sectionBackgroundSchema = z72.object({
39830
+ id: z72.string(),
39831
+ label: z72.string(),
39832
+ token: z72.string()
39778
39833
  // Reference to theme palette token
39779
39834
  });
39780
- var sectionSpacingSchema = z74.enum(["compact", "default", "spacious"]);
39781
- var containerMaxWidthSchema = z74.enum(["narrow", "default", "wide", "full"]);
39782
- var containerAlignmentSchema = z74.enum(["left", "center", "right"]);
39783
- var sectionOptionsSchema = z74.object({
39784
- backgroundColor: z74.boolean().optional(),
39785
- backgroundImage: z74.boolean().optional(),
39786
- backgroundGradient: z74.boolean().optional(),
39787
- spacing: z74.union([
39788
- z74.array(sectionSpacingSchema),
39789
- z74.boolean()
39835
+ var sectionSpacingSchema = z72.enum(["compact", "default", "spacious"]);
39836
+ var containerMaxWidthSchema = z72.enum(["narrow", "default", "wide", "full"]);
39837
+ var containerAlignmentSchema = z72.enum(["left", "center", "right"]);
39838
+ var sectionOptionsSchema = z72.object({
39839
+ backgroundColor: z72.boolean().optional(),
39840
+ backgroundImage: z72.boolean().optional(),
39841
+ backgroundGradient: z72.boolean().optional(),
39842
+ spacing: z72.union([
39843
+ z72.array(sectionSpacingSchema),
39844
+ z72.boolean()
39790
39845
  ]).optional(),
39791
- textColor: z74.boolean().optional()
39846
+ textColor: z72.boolean().optional()
39792
39847
  }).optional();
39793
- var containerOptionsSchema = z74.object({
39794
- maxWidth: z74.union([
39795
- z74.array(containerMaxWidthSchema),
39796
- z74.boolean()
39848
+ var containerOptionsSchema = z72.object({
39849
+ maxWidth: z72.union([
39850
+ z72.array(containerMaxWidthSchema),
39851
+ z72.boolean()
39797
39852
  ]).optional(),
39798
- alignment: z74.union([
39799
- z74.array(containerAlignmentSchema),
39800
- z74.boolean()
39853
+ alignment: z72.union([
39854
+ z72.array(containerAlignmentSchema),
39855
+ z72.boolean()
39801
39856
  ]).optional()
39802
39857
  }).optional();
39803
- var siteStyleConfigSchema = z74.object({
39804
- sectionBackgrounds: z74.array(sectionBackgroundSchema).optional(),
39858
+ var siteStyleConfigSchema = z72.object({
39859
+ sectionBackgrounds: z72.array(sectionBackgroundSchema).optional(),
39805
39860
  sectionOptions: sectionOptionsSchema,
39806
39861
  containerOptions: containerOptionsSchema
39807
39862
  }).optional();
39808
- var sdkLoaderEndpointSchema2 = z74.enum(SUPPORTED_LOADER_ENDPOINTS);
39863
+ var sdkLoaderEndpointSchema2 = z72.enum(SUPPORTED_LOADER_ENDPOINTS);
39809
39864
  var allowedTransformIds = new Set(builtinTransformDefinitions.map((transform) => transform.id));
39810
- var loaderTransformStepSchema = z74.object({
39811
- id: z74.string().refine((id) => allowedTransformIds.has(id), {
39865
+ var loaderTransformStepSchema = z72.object({
39866
+ id: z72.string().refine((id) => allowedTransformIds.has(id), {
39812
39867
  message: "Unknown transform id"
39813
39868
  }),
39814
- options: z74.record(z74.string(), z74.unknown()).optional()
39869
+ options: z72.record(z72.string(), z72.unknown()).optional()
39815
39870
  });
39816
- var loaderParamBindingSchema2 = z74.object({
39817
- $bind: z74.object({
39818
- from: z74.string().min(1, "Binding path is required"),
39871
+ var loaderParamBindingSchema2 = z72.object({
39872
+ $bind: z72.object({
39873
+ from: z72.string().min(1, "Binding path is required"),
39819
39874
  // Loader params are ultimately string-normalized for query strings, so fallbacks should
39820
39875
  // stay scalar. Use transforms (e.g. `value.jsonArray`) when you need to serialize
39821
39876
  // more complex values into a string.
39822
39877
  fallback: loaderFallbackScalarSchema.optional(),
39823
- transforms: z74.array(loaderTransformStepSchema).default([]),
39824
- pick: z74.enum(["value", "collection", "context"]).default("value"),
39825
- coerce: z74.enum(["number", "boolean", "string"]).optional()
39878
+ transforms: z72.array(loaderTransformStepSchema).default([]),
39879
+ pick: z72.enum(["value", "collection", "context"]).default("value"),
39880
+ coerce: z72.enum(["number", "boolean", "string"]).optional()
39826
39881
  })
39827
39882
  });
39828
- var loaderParamValueSchema2 = z74.union([
39829
- z74.string(),
39830
- z74.number(),
39831
- z74.boolean(),
39883
+ var loaderParamValueSchema2 = z72.union([
39884
+ z72.string(),
39885
+ z72.number(),
39886
+ z72.boolean(),
39832
39887
  loaderParamBindingSchema2
39833
39888
  ]);
39834
- var loaderWhenValueSchema = z74.union([
39835
- z74.boolean(),
39889
+ var loaderWhenValueSchema = z72.union([
39890
+ z72.boolean(),
39836
39891
  loaderParamBindingSchema2
39837
39892
  ]);
39838
- var sdkConfigLoaderSchema2 = z74.object({
39893
+ var sdkConfigLoaderSchema2 = z72.object({
39839
39894
  endpoint: sdkLoaderEndpointSchema2,
39840
- params: z74.record(z74.string(), loaderParamValueSchema2),
39841
- mode: z74.enum(["server", "client"]).default("server"),
39895
+ params: z72.record(z72.string(), loaderParamValueSchema2),
39896
+ mode: z72.enum(["server", "client"]).default("server"),
39842
39897
  when: loaderWhenValueSchema.optional()
39843
39898
  });
39844
- var sdkDataLoadersSchema2 = z74.record(z74.string(), sdkConfigLoaderSchema2).refine(
39899
+ var sdkDataLoadersSchema2 = z72.record(z72.string(), sdkConfigLoaderSchema2).refine(
39845
39900
  (loaders) => Object.keys(loaders).length <= 5,
39846
39901
  { message: "Maximum 5 data loaders per block" }
39847
39902
  ).optional();
39848
- var fieldSelectOptionSchema = z74.object({
39849
- value: z74.string().min(1, "Option value is required"),
39850
- label: z74.string().min(1, "Option label is required")
39903
+ var fieldSelectOptionSchema = z72.object({
39904
+ value: z72.string().min(1, "Option value is required"),
39905
+ label: z72.string().min(1, "Option label is required")
39851
39906
  });
39852
- var blockFieldConfigSchema = z74.object({
39853
- options: z74.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
39907
+ var blockFieldConfigSchema = z72.object({
39908
+ options: z72.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
39854
39909
  });
39855
- var blockFieldOptionsSchema = z74.record(
39856
- z74.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
39910
+ var blockFieldOptionsSchema = z72.record(
39911
+ z72.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
39857
39912
  message: "Block ID must be 'block.*' or 'custom.*' format"
39858
39913
  }),
39859
- z74.record(
39860
- z74.string().min(1, "Field ID is required"),
39914
+ z72.record(
39915
+ z72.string().min(1, "Field ID is required"),
39861
39916
  blockFieldConfigSchema
39862
39917
  )
39863
39918
  ).optional();
39864
- var blockFieldExtensionSchema = z74.object({
39919
+ var blockFieldExtensionSchema = z72.object({
39865
39920
  fields: fieldSchema.array().min(1, "At least one field is required")
39866
39921
  }).refine(
39867
39922
  (data) => {
@@ -39875,10 +39930,10 @@ var blockFieldExtensionSchema = z74.object({
39875
39930
  message: "Required fields must have a defaultValue to support existing blocks"
39876
39931
  }
39877
39932
  );
39878
- var blockFieldExtensionsMapSchema = z74.record(
39933
+ var blockFieldExtensionsMapSchema = z72.record(
39879
39934
  // System blocks are kebab-case: block.body-text, block.event-calendar, ...
39880
39935
  // Enforce: lowercase alphanumerics with single hyphens (no trailing hyphen, no consecutive hyphens).
39881
- z74.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
39936
+ z72.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
39882
39937
  message: "Block ID must be 'block.*' format (system blocks only)"
39883
39938
  }),
39884
39939
  blockFieldExtensionSchema
@@ -39894,7 +39949,7 @@ var blockFieldExtensionsMapSchema = z74.record(
39894
39949
  (field) => field.id === collision.fieldId
39895
39950
  );
39896
39951
  ctx.addIssue({
39897
- code: z74.ZodIssueCode.custom,
39952
+ code: z72.ZodIssueCode.custom,
39898
39953
  message: collision.message,
39899
39954
  path: [
39900
39955
  APPOINTMENT_BOOKING_BLOCK_ID,
@@ -39960,24 +40015,24 @@ function validateFieldIdConflicts(blockFieldExtensions) {
39960
40015
  }
39961
40016
  return conflicts;
39962
40017
  }
39963
- var syncConfigSchema = z74.object({
39964
- existingEntries: z74.enum(["skip", "update"]).optional()
40018
+ var syncConfigSchema = z72.object({
40019
+ existingEntries: z72.enum(["skip", "update"]).optional()
39965
40020
  }).optional();
39966
- var deployConfigSchema = z74.object({
39967
- verifyCommand: z74.string().optional(),
39968
- prebuildOutput: z74.string().optional()
40021
+ var deployConfigSchema = z72.object({
40022
+ verifyCommand: z72.string().optional(),
40023
+ prebuildOutput: z72.string().optional()
39969
40024
  }).optional();
39970
- var sdkCustomBlockSchema = z74.object({
40025
+ var sdkCustomBlockSchema = z72.object({
39971
40026
  // Block ID must start with 'custom.'
39972
- id: z74.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
40027
+ id: z72.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
39973
40028
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
39974
40029
  }),
39975
- title: z74.string().min(1, "Title is required"),
40030
+ title: z72.string().min(1, "Title is required"),
39976
40031
  titleSource: titleSourceValueSchema.optional(),
39977
- description: z74.string().optional(),
40032
+ description: z72.string().optional(),
39978
40033
  category: blockCategoryEnum,
39979
- icon: z74.string().optional(),
39980
- tags: z74.array(z74.string()).optional(),
40034
+ icon: z72.string().optional(),
40035
+ tags: z72.array(z72.string()).optional(),
39981
40036
  // Reuse the exact field schema from @riverbankcms/blocks - all field types supported
39982
40037
  fields: fieldSchema.array().min(1, "Custom blocks must have at least one field"),
39983
40038
  // Data loaders for CMS endpoints
@@ -39985,14 +40040,14 @@ var sdkCustomBlockSchema = z74.object({
39985
40040
  // Optional declarative layout - when present, block can render without React override
39986
40041
  layout: NodeSchema.optional(),
39987
40042
  // Optional variants system (preferred when a block has multiple structural layouts)
39988
- variants: z74.record(z74.string().min(1), NodeSchema).optional(),
39989
- defaultVariant: z74.string().min(1).optional(),
39990
- variantOptions: z74.record(
39991
- z74.string().min(1),
39992
- z74.object({
39993
- label: z74.string().min(1).optional(),
39994
- description: z74.string().min(1).optional(),
39995
- icon: z74.string().min(1).optional()
40043
+ variants: z72.record(z72.string().min(1), NodeSchema).optional(),
40044
+ defaultVariant: z72.string().min(1).optional(),
40045
+ variantOptions: z72.record(
40046
+ z72.string().min(1),
40047
+ z72.object({
40048
+ label: z72.string().min(1).optional(),
40049
+ description: z72.string().min(1).optional(),
40050
+ icon: z72.string().min(1).optional()
39996
40051
  })
39997
40052
  ).optional(),
39998
40053
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -40004,7 +40059,7 @@ var sdkCustomBlockSchema = z74.object({
40004
40059
  const exists = fields3.some((field) => field.id === source);
40005
40060
  if (!exists) {
40006
40061
  ctx.addIssue({
40007
- code: z74.ZodIssueCode.custom,
40062
+ code: z72.ZodIssueCode.custom,
40008
40063
  message: `titleSource must reference a valid field ID (got "${source}")`,
40009
40064
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
40010
40065
  });
@@ -40013,7 +40068,7 @@ var sdkCustomBlockSchema = z74.object({
40013
40068
  }
40014
40069
  if (data.layout && data.variants) {
40015
40070
  ctx.addIssue({
40016
- code: z74.ZodIssueCode.custom,
40071
+ code: z72.ZodIssueCode.custom,
40017
40072
  message: "Custom block must define either `layout` or `variants`, not both",
40018
40073
  path: ["variants"]
40019
40074
  });
@@ -40023,7 +40078,7 @@ var sdkCustomBlockSchema = z74.object({
40023
40078
  if (!result.valid) {
40024
40079
  for (const error of result.errors) {
40025
40080
  ctx.addIssue({
40026
- code: z74.ZodIssueCode.custom,
40081
+ code: z72.ZodIssueCode.custom,
40027
40082
  message: error.message,
40028
40083
  path: ["layout"]
40029
40084
  });
@@ -40034,14 +40089,14 @@ var sdkCustomBlockSchema = z74.object({
40034
40089
  const keys = Object.keys(data.variants);
40035
40090
  if (keys.length === 0) {
40036
40091
  ctx.addIssue({
40037
- code: z74.ZodIssueCode.custom,
40092
+ code: z72.ZodIssueCode.custom,
40038
40093
  message: "`variants` must contain at least one variant key",
40039
40094
  path: ["variants"]
40040
40095
  });
40041
40096
  }
40042
40097
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
40043
40098
  ctx.addIssue({
40044
- code: z74.ZodIssueCode.custom,
40099
+ code: z72.ZodIssueCode.custom,
40045
40100
  message: "`defaultVariant` must be a key present in `variants`",
40046
40101
  path: ["defaultVariant"]
40047
40102
  });
@@ -40051,7 +40106,7 @@ var sdkCustomBlockSchema = z74.object({
40051
40106
  if (!result.valid) {
40052
40107
  for (const error of result.errors) {
40053
40108
  ctx.addIssue({
40054
- code: z74.ZodIssueCode.custom,
40109
+ code: z72.ZodIssueCode.custom,
40055
40110
  message: `${key}: ${error.message}`,
40056
40111
  path: ["variants", key]
40057
40112
  });
@@ -40062,7 +40117,7 @@ var sdkCustomBlockSchema = z74.object({
40062
40117
  for (const key of Object.keys(data.variantOptions)) {
40063
40118
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
40064
40119
  ctx.addIssue({
40065
- code: z74.ZodIssueCode.custom,
40120
+ code: z72.ZodIssueCode.custom,
40066
40121
  message: "`variantOptions` key must exist in `variants`",
40067
40122
  path: ["variantOptions", key]
40068
40123
  });
@@ -40071,58 +40126,58 @@ var sdkCustomBlockSchema = z74.object({
40071
40126
  }
40072
40127
  }
40073
40128
  });
40074
- var themeSourceSchema = z74.enum(["local", "cms"]).optional();
40075
- var activeThemeSchema = z74.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
40129
+ var themeSourceSchema = z72.enum(["local", "cms"]).optional();
40130
+ var activeThemeSchema = z72.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
40076
40131
  message: "Theme name must be lowercase alphanumeric with hyphens/underscores"
40077
40132
  }).max(64, "Theme name too long").optional();
40078
40133
  function isValidConfigBlockKind(kind) {
40079
40134
  if (getBlockDefinition(kind)) return true;
40080
40135
  return /^custom\.[a-z][a-z0-9-]*$/.test(kind);
40081
40136
  }
40082
- var layoutBlockKindSchema = z74.string().refine(isValidConfigBlockKind, {
40137
+ var layoutBlockKindSchema = z72.string().refine(isValidConfigBlockKind, {
40083
40138
  message: 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.my-block")'
40084
40139
  });
40085
- var layoutFooterBlockSchema = z74.object({
40086
- id: z74.string().min(1).optional(),
40140
+ var layoutFooterBlockSchema = z72.object({
40141
+ id: z72.string().min(1).optional(),
40087
40142
  kind: layoutBlockKindSchema,
40088
40143
  // Allow omitted content for blocks that rely on defaults.
40089
- content: z74.record(z74.string(), z74.unknown()).optional()
40144
+ content: z72.record(z72.string(), z72.unknown()).optional()
40090
40145
  }).strict();
40091
- var layoutConfigSchema = z74.object({
40092
- footerBlocks: z74.array(layoutFooterBlockSchema).optional()
40146
+ var layoutConfigSchema = z72.object({
40147
+ footerBlocks: z72.array(layoutFooterBlockSchema).optional()
40093
40148
  }).strict();
40094
- var sdkWorkflowIdSchema2 = z74.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
40149
+ var sdkWorkflowIdSchema2 = z72.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
40095
40150
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
40096
40151
  });
40097
- var sdkWorkflowEndpointSchema2 = z74.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
40098
- var sdkWorkflowTriggerSchema2 = z74.discriminatedUnion("type", [
40099
- z74.object({ type: z74.literal("manual") }).strict()
40152
+ var sdkWorkflowEndpointSchema2 = z72.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
40153
+ var sdkWorkflowTriggerSchema2 = z72.discriminatedUnion("type", [
40154
+ z72.object({ type: z72.literal("manual") }).strict()
40100
40155
  ]);
40101
- var sdkWorkflowConfirmationSchema2 = z74.object({
40102
- title: z74.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
40103
- body: z74.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
40156
+ var sdkWorkflowConfirmationSchema2 = z72.object({
40157
+ title: z72.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
40158
+ body: z72.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
40104
40159
  }).strict();
40105
- var sdkWorkflowConfigSchema2 = z74.object({
40160
+ var sdkWorkflowConfigSchema2 = z72.object({
40106
40161
  id: sdkWorkflowIdSchema2,
40107
- title: z74.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
40108
- description: z74.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
40109
- contentType: z74.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
40162
+ title: z72.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
40163
+ description: z72.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
40164
+ contentType: z72.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
40110
40165
  endpoint: sdkWorkflowEndpointSchema2,
40111
- triggers: z74.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
40166
+ triggers: z72.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
40112
40167
  confirmation: sdkWorkflowConfirmationSchema2.optional()
40113
40168
  }).strict();
40114
- var sdkWorkflowsSchema2 = z74.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
40169
+ var sdkWorkflowsSchema2 = z72.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
40115
40170
  const ids = workflows.map((workflow) => workflow.id);
40116
40171
  return ids.length === new Set(ids).size;
40117
40172
  }, { message: "Workflow IDs must be unique" }).optional();
40118
- var riverbankSiteConfigSchema = z74.object({
40119
- siteId: z74.string().uuid(),
40173
+ var riverbankSiteConfigSchema = z72.object({
40174
+ siteId: z72.string().uuid(),
40120
40175
  previewUrl: sdkSiteUrlSchema.optional(),
40121
40176
  liveUrl: sdkSiteUrlSchema.optional(),
40122
40177
  theme: sdkThemeConfigSchema2.optional(),
40123
40178
  styles: siteStyleConfigSchema,
40124
40179
  layout: layoutConfigSchema.optional(),
40125
- customBlocks: z74.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
40180
+ customBlocks: z72.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
40126
40181
  // Ensure unique block IDs
40127
40182
  (blocks) => {
40128
40183
  const ids = blocks.map((b) => b.id);
@@ -40135,7 +40190,7 @@ var riverbankSiteConfigSchema = z74.object({
40135
40190
  workflows: sdkWorkflowsSchema2,
40136
40191
  content: contentConfigSchema.optional(),
40137
40192
  // CLI-related configuration (Phase 4)
40138
- contentDir: z74.string().optional(),
40193
+ contentDir: z72.string().optional(),
40139
40194
  sync: syncConfigSchema,
40140
40195
  deploy: deployConfigSchema,
40141
40196
  // Theme sync configuration (Phase 5)