@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
@@ -44,7 +44,7 @@ function fallbackBinding(...sources) {
44
44
  }
45
45
 
46
46
  // src/config/validation.ts
47
- import { z as z74 } from "zod";
47
+ import { z as z72 } from "zod";
48
48
 
49
49
  // ../api/src/apiEndpointTypes.ts
50
50
  function blockedDemoMutationPolicy(classification, publicMessage) {
@@ -6813,7 +6813,7 @@ var navigationLinkInputSchema = z2.discriminatedUnion(
6813
6813
  );
6814
6814
 
6815
6815
  // ../api/src/sdkConfig/contracts.ts
6816
- import { z as z65 } from "zod";
6816
+ import { z as z63 } from "zod";
6817
6817
 
6818
6818
  // ../blocks/src/system/manifest/augmentManifest.ts
6819
6819
  function augmentManifest(manifest) {
@@ -7241,12 +7241,17 @@ var visibleWhenPredicateSchema = z4.object({
7241
7241
  minItems: z4.number().int().nonnegative().optional(),
7242
7242
  maxItems: z4.number().int().nonnegative().optional()
7243
7243
  });
7244
- var visibleWhenSchema = z4.union([
7245
- visibleWhenPredicateSchema,
7246
- z4.object({
7247
- allOf: z4.array(visibleWhenPredicateSchema).min(1)
7248
- })
7249
- ]);
7244
+ var visibleWhenSchema = z4.lazy(
7245
+ () => z4.union([
7246
+ visibleWhenPredicateSchema,
7247
+ z4.object({
7248
+ allOf: z4.array(visibleWhenSchema).min(1)
7249
+ }),
7250
+ z4.object({
7251
+ anyOf: z4.array(visibleWhenSchema).min(1)
7252
+ })
7253
+ ])
7254
+ );
7250
7255
  var uiSchema = z4.object({
7251
7256
  widget: z4.string().optional(),
7252
7257
  // Container/widget presets (used by Group/Repeater widgets themselves, not for widget selection)
@@ -20151,9 +20156,6 @@ var heroCopyFragment = defineFragment({
20151
20156
  maxLength: 600
20152
20157
  }
20153
20158
  ],
20154
- // Layout order is [eyebrow, headline, subheadline]. The hero block's
20155
- // `splitEditorial` variant reads these nodes by index; keep the order stable
20156
- // (it fails fast at import if the count changes).
20157
20159
  layout: [
20158
20160
  text(
20159
20161
  {
@@ -22391,32 +22393,6 @@ var splitReverseLayout = splitLayoutWith([
22391
22393
  splitContentColumn,
22392
22394
  splitImageColumn
22393
22395
  ]);
22394
- var heroEyebrowNode = heroCopyFragment.layout[0];
22395
- var heroHeadlineNode = heroCopyFragment.layout[1];
22396
- var heroSubheadlineNode = heroCopyFragment.layout[2];
22397
- var heroCtaRowNode = heroCtaRowFragment.layout[0];
22398
- if (!heroEyebrowNode || !heroHeadlineNode || !heroSubheadlineNode || !heroCtaRowNode) {
22399
- throw new Error("Hero copy/CTA fragments are missing their expected layout nodes.");
22400
- }
22401
- var heroEditorialBottomRow = inline(
22402
- {
22403
- gap: "lg",
22404
- align: "end",
22405
- justify: "start",
22406
- wrap: true,
22407
- className: "rb-w-full"
22408
- },
22409
- [heroSubheadlineNode, heroCtaRowNode]
22410
- );
22411
- var splitEditorialContentColumn = heroContentWrapper(
22412
- [heroEyebrowNode, heroHeadlineNode, heroEditorialBottomRow],
22413
- "md",
22414
- "rb-w-full rb-text-left"
22415
- );
22416
- var splitEditorialLayout = splitLayoutWith([
22417
- splitEditorialContentColumn,
22418
- splitImageColumn
22419
- ]);
22420
22396
  var heroConfig = {
22421
22397
  id: "block.hero",
22422
22398
  title: "Hero",
@@ -22440,7 +22416,8 @@ var heroConfig = {
22440
22416
  id: "imageShape",
22441
22417
  label: "Image shape",
22442
22418
  defaultValue: "default",
22443
- uiIntent: "display"
22419
+ uiIntent: "display",
22420
+ visibleWhen: { field: "variant", oneOf: ["split", "splitReverse"] }
22444
22421
  })
22445
22422
  ],
22446
22423
  layout: classicLayout,
@@ -22448,8 +22425,7 @@ var heroConfig = {
22448
22425
  classic: classicLayout,
22449
22426
  micro: microLayout,
22450
22427
  split: splitLayout,
22451
- splitReverse: splitReverseLayout,
22452
- splitEditorial: splitEditorialLayout
22428
+ splitReverse: splitReverseLayout
22453
22429
  },
22454
22430
  defaultVariant: "classic",
22455
22431
  description: "Hero section with headline, subtitle, and repeatable CTAs.",
@@ -24325,8 +24301,10 @@ function resolveGeneratedHeroLayoutStyles(content) {
24325
24301
  return isPlainObject(raw) ? raw : null;
24326
24302
  }
24327
24303
  function readHeroLayoutString(content, generatedKey, fallbackKey = generatedKey) {
24304
+ const explicitValue = readString(content, fallbackKey);
24305
+ if (explicitValue !== void 0) return explicitValue;
24328
24306
  const generated = resolveGeneratedHeroLayoutStyles(content);
24329
- return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : readString(content, fallbackKey);
24307
+ return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : void 0;
24330
24308
  }
24331
24309
  function resolveHeroVariant(content) {
24332
24310
  const variant = readString(content, "variant");
@@ -24339,7 +24317,7 @@ function resolveHeroContentAlignment(content) {
24339
24317
  const raw = readHeroLayoutString(content, "contentAlignment");
24340
24318
  if (raw === "left" || raw === "center" || raw === "right") return raw;
24341
24319
  const variant = resolveHeroVariant(content);
24342
- if (variant === "split" || variant === "splitReverse" || variant === "splitEditorial") return "left";
24320
+ if (variant === "split" || variant === "splitReverse") return "left";
24343
24321
  return "center";
24344
24322
  }
24345
24323
  function resolveHeroVerticalAlignment(content) {
@@ -24349,7 +24327,7 @@ function resolveHeroVerticalAlignment(content) {
24349
24327
  const minHeight = sectionStyles?.minHeight;
24350
24328
  if (minHeight === "banner" || minHeight === "hero" || minHeight === "immersive") return "center";
24351
24329
  const variant = resolveHeroVariant(content);
24352
- if (variant === "split" || variant === "splitReverse" || variant === "splitEditorial") return "center";
24330
+ if (variant === "split" || variant === "splitReverse") return "center";
24353
24331
  return "top";
24354
24332
  }
24355
24333
  function resolveHeroContentMaxWidth(content) {
@@ -27915,9 +27893,6 @@ var appointmentBookingBlockDefinition = {
27915
27893
  }
27916
27894
  };
27917
27895
 
27918
- // ../blocks/src/system/blocks/event-registration.ts
27919
- import { z as z47 } from "zod";
27920
-
27921
27896
  // ../blocks/src/system/blocks/events/shared/schemas.ts
27922
27897
  import { z as z43 } from "zod";
27923
27898
 
@@ -28532,24 +28507,57 @@ function normalizeEventStaffMemberId(value) {
28532
28507
  return trimmed ? trimmed : null;
28533
28508
  }
28534
28509
 
28535
- // ../blocks/src/system/blocks/event-registration.shared.ts
28510
+ // ../blocks/src/system/blocks/shop.shared.ts
28536
28511
  import { z as z44 } from "zod";
28537
- var occurrenceContextSchema = z44.object({
28512
+ var publicPassProductSchema = z44.object({
28538
28513
  id: z44.string(),
28539
- seriesId: z44.string(),
28540
- startsAt: z44.string(),
28541
- endsAt: z44.string(),
28542
- timeZone: z44.string(),
28543
- capacityOverride: z44.number().nullable().optional(),
28544
- overrides: z44.record(z44.string(), z44.unknown()).nullable().optional()
28514
+ productUseCase: z44.enum(["event_pass", "appointment_package"]).default("event_pass"),
28515
+ name: z44.string(),
28516
+ description: z44.string().nullable(),
28517
+ price: z44.number(),
28518
+ currency: z44.string(),
28519
+ creditsTotal: z44.number(),
28520
+ pricePerCredit: z44.number(),
28521
+ validDays: z44.number().nullable(),
28522
+ eligibleCategoryIds: z44.array(z44.string()),
28523
+ eligibleCategoryNames: z44.array(z44.string())
28524
+ });
28525
+ var publicPassProductCollectionSchema = z44.object({
28526
+ passes: z44.array(publicPassProductSchema)
28527
+ });
28528
+ var publicMembershipProductSchema = z44.object({
28529
+ id: z44.string(),
28530
+ name: z44.string(),
28531
+ description: z44.string().nullable(),
28532
+ price: z44.number(),
28533
+ currency: z44.string(),
28534
+ billingInterval: z44.enum(["month", "year"]),
28535
+ eligibleCategoryIds: z44.array(z44.string()),
28536
+ eligibleCategoryNames: z44.array(z44.string())
28537
+ });
28538
+ var publicMembershipProductCollectionSchema = z44.object({
28539
+ memberships: z44.array(publicMembershipProductSchema)
28540
+ });
28541
+
28542
+ // ../blocks/src/system/blocks/event-registration.shared.ts
28543
+ import { z as z45 } from "zod";
28544
+ var occurrenceContextSchema = z45.object({
28545
+ id: z45.string(),
28546
+ seriesId: z45.string(),
28547
+ startsAt: z45.string(),
28548
+ endsAt: z45.string(),
28549
+ timeZone: z45.string(),
28550
+ capacityOverride: z45.number().nullable().optional(),
28551
+ overrides: z45.record(z45.string(), z45.unknown()).nullable().optional()
28545
28552
  }).nullable();
28546
28553
 
28547
28554
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28548
- import { z as z46 } from "zod";
28555
+ import { z as z47 } from "zod";
28549
28556
 
28550
28557
  // ../blocks/src/system/constants/events.ts
28551
28558
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
28552
- var eventCalendarDisplayModeValues = ["combined", "month", "week", "list", "timetable"];
28559
+ var eventCalendarDisplayModeValues = ["combined", "calendar", "list", "timetable"];
28560
+ var eventCalendarDefaultViewValues = ["month", "week"];
28553
28561
  var eventCalendarListLayoutValues = ["stack", "grid", "compact"];
28554
28562
  var eventCalendarListLayoutOptions = [
28555
28563
  { id: "stack", label: "Stack" },
@@ -28559,6 +28567,9 @@ var eventCalendarListLayoutOptions = [
28559
28567
  function isEventCalendarDisplayMode(value) {
28560
28568
  return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
28561
28569
  }
28570
+ function isEventCalendarDefaultView(value) {
28571
+ return typeof value === "string" && eventCalendarDefaultViewValues.includes(value);
28572
+ }
28562
28573
  function isEventCalendarListLayout(value) {
28563
28574
  return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
28564
28575
  }
@@ -28699,16 +28710,17 @@ function readAmount(value) {
28699
28710
  }
28700
28711
 
28701
28712
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
28702
- import { z as z45 } from "zod";
28703
- var previewStageSchema = z45.enum(["preview", "published"]);
28704
- var registrationButtonVariantSchema = z45.enum(["primary", "secondary", "outline"]);
28705
- var eventButtonVariantSchema = z45.enum(["primary", "secondary", "outline", "link"]);
28706
- var eventLayoutSchema = z45.enum(eventCalendarListLayoutValues);
28707
- var eventCalendarDisplayModeSchema = z45.enum(eventCalendarDisplayModeValues);
28708
- var columnOptionSchema = z45.enum(["2", "3", "4"]);
28709
- var weekStartSchema = z45.enum(["sunday", "monday"]);
28710
- var filterAutoShowSchema = z45.enum(["auto", "always", "never"]);
28711
- var calendarTabViewsSchema = z45.enum(["both", "month", "week"]);
28713
+ import { z as z46 } from "zod";
28714
+ var previewStageSchema = z46.enum(["preview", "published"]);
28715
+ var registrationButtonVariantSchema = z46.enum(["primary", "secondary", "outline"]);
28716
+ var eventButtonVariantSchema = z46.enum(["primary", "secondary", "outline", "link"]);
28717
+ var eventLayoutSchema = z46.enum(eventCalendarListLayoutValues);
28718
+ var eventCalendarDisplayModeSchema = z46.enum(eventCalendarDisplayModeValues);
28719
+ var eventCalendarDefaultViewSchema = z46.enum(eventCalendarDefaultViewValues);
28720
+ var columnOptionSchema = z46.enum(["2", "3", "4"]);
28721
+ var weekStartSchema = z46.enum(["sunday", "monday"]);
28722
+ var filterAutoShowSchema = z46.enum(["auto", "always", "never"]);
28723
+ var calendarTabViewsSchema = z46.enum(["both", "month", "week"]);
28712
28724
 
28713
28725
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
28714
28726
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -28726,7 +28738,7 @@ function eventMatchesOccurrenceId(event, occurrenceId) {
28726
28738
  function findPreSelectedEvent(input) {
28727
28739
  const occurrenceContext = input.occurrenceContext;
28728
28740
  if (!occurrenceContext) {
28729
- return null;
28741
+ return input.scopedEvents.length === 1 ? input.scopedEvents[0] ?? null : null;
28730
28742
  }
28731
28743
  const contextDate = getBookingLocalDateKey(toScheduledBookingDateTime({
28732
28744
  startsAt: occurrenceContext.startsAt,
@@ -28768,68 +28780,72 @@ function toRegistrationEvents(events) {
28768
28780
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28769
28781
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
28770
28782
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
28771
- var contentEntrySchema = z46.object({
28772
- id: z46.string(),
28773
- slug: z46.string(),
28774
- contentTypeSlug: z46.string()
28783
+ var contentEntrySchema = z47.object({
28784
+ id: z47.string(),
28785
+ slug: z47.string(),
28786
+ contentTypeSlug: z47.string()
28775
28787
  });
28776
- var eventRegistrationPublicEventSchema = z46.preprocess(
28788
+ var eventRegistrationPublicEventSchema = z47.preprocess(
28777
28789
  normalizeEventRegistrationEventInput,
28778
28790
  publicEventSchema
28779
28791
  );
28780
- var eventRegistrationSourceSchema = z46.object({
28781
- siteId: z46.string().optional(),
28782
- apiBaseUrl: z46.string().optional(),
28783
- portalToken: z46.string().nullable().optional(),
28784
- previewToken: z46.string().nullable().optional(),
28792
+ var eventRegistrationSourceSchema = z47.object({
28793
+ siteId: z47.string().optional(),
28794
+ apiBaseUrl: z47.string().optional(),
28795
+ portalToken: z47.string().nullable().optional(),
28796
+ previewToken: z47.string().nullable().optional(),
28785
28797
  occurrenceContext: occurrenceContextSchema.optional(),
28786
28798
  contentEntry: contentEntrySchema.nullable().optional(),
28787
- events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
28788
- className: z46.string().nullable().optional(),
28789
- buttonText: z46.string().nullable().optional(),
28790
- maxTickets: z46.string().nullable().optional(),
28791
- showVenue: z46.boolean().optional(),
28792
- showCapacity: z46.boolean().optional(),
28793
- successMessage: z46.string().optional(),
28794
- waitlistMessage: z46.string().optional(),
28799
+ events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
28800
+ className: z47.string().nullable().optional(),
28801
+ buttonText: z47.string().nullable().optional(),
28802
+ maxTickets: z47.string().nullable().optional(),
28803
+ showVenue: z47.boolean().optional(),
28804
+ showCapacity: z47.boolean().optional(),
28805
+ successMessage: z47.string().optional(),
28806
+ waitlistMessage: z47.string().optional(),
28795
28807
  buttonVariant: registrationButtonVariantSchema.optional(),
28796
- overlayEnabled: z46.boolean().optional(),
28797
- spamProtectionEnabled: z46.boolean().optional(),
28808
+ overlayEnabled: z47.boolean().optional(),
28809
+ spamProtectionEnabled: z47.boolean().optional(),
28798
28810
  stage: previewStageSchema.optional(),
28799
- supportEmail: z46.string().optional()
28800
- });
28801
- var eventRegistrationDisplaySchema = z46.object({
28802
- kind: z46.literal("event-registration"),
28803
- state: z46.literal("generic-shell"),
28804
- className: z46.string().nullable(),
28805
- titleText: z46.string(),
28806
- bodyText: z46.string(),
28807
- stepLabels: z46.array(z46.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28808
- summaryButtonText: z46.string()
28809
- });
28810
- var eventRegistrationHydrationSchema = z46.object({
28811
+ supportEmail: z47.string().optional(),
28812
+ sitePasses: publicPassProductCollectionSchema.nullable().optional(),
28813
+ siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
28814
+ });
28815
+ var eventRegistrationDisplaySchema = z47.object({
28816
+ kind: z47.literal("event-registration"),
28817
+ state: z47.literal("generic-shell"),
28818
+ className: z47.string().nullable(),
28819
+ titleText: z47.string(),
28820
+ bodyText: z47.string(),
28821
+ stepLabels: z47.array(z47.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28822
+ summaryButtonText: z47.string()
28823
+ });
28824
+ var eventRegistrationHydrationSchema = z47.object({
28811
28825
  occurrenceContext: occurrenceContextSchema.optional(),
28812
28826
  contentEntry: contentEntrySchema.nullable().optional(),
28813
- events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
28814
- maxTickets: z46.string().optional(),
28815
- showVenue: z46.boolean().optional(),
28816
- showCapacity: z46.boolean().optional(),
28817
- successMessage: z46.string().optional(),
28818
- waitlistMessage: z46.string().optional(),
28827
+ events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
28828
+ maxTickets: z47.string().optional(),
28829
+ showVenue: z47.boolean().optional(),
28830
+ showCapacity: z47.boolean().optional(),
28831
+ successMessage: z47.string().optional(),
28832
+ waitlistMessage: z47.string().optional(),
28819
28833
  buttonVariant: registrationButtonVariantSchema.optional(),
28820
- overlayEnabled: z46.boolean().optional(),
28821
- spamProtectionEnabled: z46.boolean().optional(),
28822
- supportEmail: z46.string().optional()
28834
+ overlayEnabled: z47.boolean().optional(),
28835
+ spamProtectionEnabled: z47.boolean().optional(),
28836
+ supportEmail: z47.string().optional(),
28837
+ sitePasses: publicPassProductCollectionSchema.nullable().optional(),
28838
+ siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
28823
28839
  });
28824
- var eventRegistrationRenderSchema = z46.object({
28840
+ var eventRegistrationRenderSchema = z47.object({
28825
28841
  display: eventRegistrationDisplaySchema,
28826
28842
  hydration: eventRegistrationHydrationSchema
28827
28843
  });
28828
- var eventRegistrationIslandMetaCodec = createZodCodec(z46.object({
28829
- siteId: z46.string().optional(),
28830
- apiBaseUrl: z46.string().optional(),
28831
- portalToken: z46.string().nullable().optional(),
28832
- previewToken: z46.string().nullable().optional(),
28844
+ var eventRegistrationIslandMetaCodec = createZodCodec(z47.object({
28845
+ siteId: z47.string().optional(),
28846
+ apiBaseUrl: z47.string().optional(),
28847
+ portalToken: z47.string().nullable().optional(),
28848
+ previewToken: z47.string().nullable().optional(),
28833
28849
  stage: previewStageSchema.optional()
28834
28850
  }));
28835
28851
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -28935,7 +28951,9 @@ var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
28935
28951
  buttonVariant: source.buttonVariant,
28936
28952
  overlayEnabled: source.overlayEnabled,
28937
28953
  spamProtectionEnabled: source.spamProtectionEnabled,
28938
- supportEmail: source.supportEmail
28954
+ supportEmail: source.supportEmail,
28955
+ sitePasses: source.sitePasses ?? null,
28956
+ siteMemberships: source.siteMemberships ?? null
28939
28957
  }
28940
28958
  })
28941
28959
  });
@@ -29117,6 +29135,8 @@ var eventRegistrationManifest = createBlockManifest({
29117
29135
  },
29118
29136
  // Event data from loader
29119
29137
  events: { $bind: { from: "data.events" } },
29138
+ sitePasses: { $bind: { from: "data.sitePasses" } },
29139
+ siteMemberships: { $bind: { from: "data.siteMemberships" } },
29120
29140
  // Stage for preview mode (allows registering for draft events)
29121
29141
  stage: {
29122
29142
  $bind: { from: "$root.previewStage", fallback: "published" }
@@ -29135,7 +29155,9 @@ var eventRegistrationBlockDefinition = {
29135
29155
  manifest: eventRegistrationManifest,
29136
29156
  runtime: eventRegistrationBlockRuntime,
29137
29157
  dataSchemas: {
29138
- events: z47.array(publicEventSchema).optional(),
29158
+ events: publicEventsArraySchema.optional(),
29159
+ sitePasses: publicPassProductCollectionSchema.optional(),
29160
+ siteMemberships: publicMembershipProductCollectionSchema.optional(),
29139
29161
  occurrenceContext: occurrenceContextSchema.optional()
29140
29162
  },
29141
29163
  dataLoaders: {
@@ -29154,6 +29176,20 @@ var eventRegistrationBlockDefinition = {
29154
29176
  entryId: { $bind: { from: "$root.contentEntry._entryId", fallback: "" } }
29155
29177
  },
29156
29178
  mode: "server"
29179
+ },
29180
+ sitePasses: {
29181
+ endpoint: "listPublicPasses",
29182
+ params: {
29183
+ siteId: { $bind: { from: "$root.siteId" } }
29184
+ },
29185
+ mode: "server"
29186
+ },
29187
+ siteMemberships: {
29188
+ endpoint: "listPublicMemberships",
29189
+ params: {
29190
+ siteId: { $bind: { from: "$root.siteId" } }
29191
+ },
29192
+ mode: "server"
29157
29193
  }
29158
29194
  }
29159
29195
  };
@@ -29485,35 +29521,7 @@ var courseRegistrationBlockDefinition = {
29485
29521
  };
29486
29522
 
29487
29523
  // ../blocks/src/system/blocks/event-details.ts
29488
- import { z as z50 } from "zod";
29489
-
29490
- // ../blocks/src/system/blocks/shop.shared.ts
29491
29524
  import { z as z49 } from "zod";
29492
- var publicPassProductSchema = z49.object({
29493
- id: z49.string(),
29494
- productUseCase: z49.enum(["event_pass", "appointment_package"]).default("event_pass"),
29495
- name: z49.string(),
29496
- description: z49.string().nullable(),
29497
- price: z49.number(),
29498
- currency: z49.string(),
29499
- creditsTotal: z49.number(),
29500
- pricePerCredit: z49.number(),
29501
- validDays: z49.number().nullable(),
29502
- eligibleCategoryIds: z49.array(z49.string()),
29503
- eligibleCategoryNames: z49.array(z49.string())
29504
- });
29505
- var publicMembershipProductSchema = z49.object({
29506
- id: z49.string(),
29507
- name: z49.string(),
29508
- description: z49.string().nullable(),
29509
- price: z49.number(),
29510
- currency: z49.string(),
29511
- billingInterval: z49.enum(["month", "year"]),
29512
- eligibleCategoryIds: z49.array(z49.string()),
29513
- eligibleCategoryNames: z49.array(z49.string())
29514
- });
29515
-
29516
- // ../blocks/src/system/blocks/event-details.ts
29517
29525
  var eventDetailsManifest = createBlockManifest({
29518
29526
  id: "block.event-details",
29519
29527
  version: "1.0.0",
@@ -29645,40 +29653,40 @@ var eventDetailsManifest = createBlockManifest({
29645
29653
  })
29646
29654
  ]
29647
29655
  });
29648
- var occurrenceContextSchema2 = z50.object({
29649
- id: z50.string(),
29650
- seriesId: z50.string(),
29651
- startsAt: z50.string(),
29652
- endsAt: z50.string(),
29653
- timeZone: z50.string(),
29654
- capacityOverride: z50.number().nullable().optional(),
29655
- overrides: z50.record(z50.string(), z50.unknown()).nullable().optional()
29656
+ var occurrenceContextSchema2 = z49.object({
29657
+ id: z49.string(),
29658
+ seriesId: z49.string(),
29659
+ startsAt: z49.string(),
29660
+ endsAt: z49.string(),
29661
+ timeZone: z49.string(),
29662
+ capacityOverride: z49.number().nullable().optional(),
29663
+ overrides: z49.record(z49.string(), z49.unknown()).nullable().optional()
29656
29664
  }).nullable();
29657
- var eventAutoApplyDiscountPreviewBaseSchema = z50.object({
29658
- id: z50.string(),
29659
- publicLabel: z50.string(),
29660
- description: z50.string().nullable(),
29661
- minTicketsRequired: z50.number().nullable()
29665
+ var eventAutoApplyDiscountPreviewBaseSchema = z49.object({
29666
+ id: z49.string(),
29667
+ publicLabel: z49.string(),
29668
+ description: z49.string().nullable(),
29669
+ minTicketsRequired: z49.number().nullable()
29662
29670
  });
29663
- var eventAutoApplyDiscountPreviewSchema = z50.discriminatedUnion("discountType", [
29671
+ var eventAutoApplyDiscountPreviewSchema = z49.discriminatedUnion("discountType", [
29664
29672
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29665
- discountType: z50.literal("percent"),
29666
- discountPercent: z50.number(),
29667
- discountAmountCents: z50.null()
29673
+ discountType: z49.literal("percent"),
29674
+ discountPercent: z49.number(),
29675
+ discountAmountCents: z49.null()
29668
29676
  }),
29669
29677
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29670
- discountType: z50.literal("fixed"),
29671
- discountPercent: z50.null(),
29672
- discountAmountCents: z50.number()
29678
+ discountType: z49.literal("fixed"),
29679
+ discountPercent: z49.null(),
29680
+ discountAmountCents: z49.number()
29673
29681
  })
29674
29682
  ]);
29675
29683
  var eventDetailsBlockDefinition = {
29676
29684
  manifest: eventDetailsManifest,
29677
29685
  dataSchemas: {
29678
- eventDetailsData: z50.object({
29686
+ eventDetailsData: z49.object({
29679
29687
  events: publicEventsArraySchema,
29680
- sitePasses: z50.object({ passes: z50.array(publicPassProductSchema) }),
29681
- siteMemberships: z50.object({ memberships: z50.array(publicMembershipProductSchema) }),
29688
+ sitePasses: publicPassProductCollectionSchema,
29689
+ siteMemberships: publicMembershipProductCollectionSchema,
29682
29690
  autoApplyDiscount: eventAutoApplyDiscountPreviewSchema.nullable().optional().default(null)
29683
29691
  }).optional(),
29684
29692
  occurrenceContext: occurrenceContextSchema2.optional()
@@ -30002,7 +30010,7 @@ var eventSpotlightBlockDefinition = {
30002
30010
  };
30003
30011
 
30004
30012
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
30005
- import { z as z52 } from "zod";
30013
+ import { z as z51 } from "zod";
30006
30014
 
30007
30015
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
30008
30016
  var COLUMN_CLASSES = {
@@ -30110,16 +30118,16 @@ function computeMediaTransformStyle(value, style, targetAspectRatio, options) {
30110
30118
  }
30111
30119
 
30112
30120
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
30113
- import { z as z51 } from "zod";
30121
+ import { z as z50 } from "zod";
30114
30122
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
30115
- var eventPageSizeSchema = z51.union([
30116
- z51.literal(3),
30117
- z51.literal(6),
30118
- z51.literal(10),
30119
- z51.literal(12),
30120
- z51.literal(20),
30121
- z51.literal(24),
30122
- z51.literal(30)
30123
+ var eventPageSizeSchema = z50.union([
30124
+ z50.literal(3),
30125
+ z50.literal(6),
30126
+ z50.literal(10),
30127
+ z50.literal(12),
30128
+ z50.literal(20),
30129
+ z50.literal(24),
30130
+ z50.literal(30)
30123
30131
  ]);
30124
30132
  var eventPageSizeSet = new Set(eventPageSizeValues);
30125
30133
  function resolveEventPageSize(value, fallback = 12) {
@@ -30129,15 +30137,15 @@ function resolveEventPageSize(value, fallback = 12) {
30129
30137
  function resolveEventCalendarListPageSize(input) {
30130
30138
  return resolveEventPageSize(input.eventsPerPage);
30131
30139
  }
30132
- var eventListPaginationActionSchema = z51.discriminatedUnion("kind", [
30133
- z51.object({
30134
- kind: z51.literal("loadMore"),
30135
- label: z51.string()
30140
+ var eventListPaginationActionSchema = z50.discriminatedUnion("kind", [
30141
+ z50.object({
30142
+ kind: z50.literal("loadMore"),
30143
+ label: z50.string()
30136
30144
  }),
30137
- z51.object({
30138
- kind: z51.literal("seeAllLink"),
30139
- label: z51.string(),
30140
- href: z51.string()
30145
+ z50.object({
30146
+ kind: z50.literal("seeAllLink"),
30147
+ label: z50.string(),
30148
+ href: z50.string()
30141
30149
  })
30142
30150
  ]);
30143
30151
  function resolveEventListPaginationAction(input) {
@@ -30150,89 +30158,89 @@ function resolveEventListPaginationAction(input) {
30150
30158
  }
30151
30159
 
30152
30160
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
30153
- var legacyEventCardVariantSchema = z52.enum(["variant1", "variant2"]);
30154
- var eventCardVariantInputSchema = z52.union([
30161
+ var legacyEventCardVariantSchema = z51.enum(["variant1", "variant2"]);
30162
+ var eventCardVariantInputSchema = z51.union([
30155
30163
  cardVariantRoleSchema,
30156
30164
  legacyEventCardVariantSchema
30157
30165
  ]);
30158
- var cardOrientationSchema = z52.enum(["vertical", "horizontal"]);
30159
- var eventBlockKindSchema = z52.enum(eventBlockKindValues);
30160
- var eventSurfaceScopeSchema = z52.enum(eventSurfaceScopeValues);
30161
- var eventScheduleScopeSchema2 = z52.enum(eventScheduleScopeValues);
30162
- var eventListingSourceSchema = z52.object({
30163
- events: z52.array(publicEventSchema).nullable().optional(),
30164
- siteId: z52.string(),
30165
- apiBaseUrl: z52.string().optional(),
30166
+ var cardOrientationSchema = z51.enum(["vertical", "horizontal"]);
30167
+ var eventBlockKindSchema = z51.enum(eventBlockKindValues);
30168
+ var eventSurfaceScopeSchema = z51.enum(eventSurfaceScopeValues);
30169
+ var eventScheduleScopeSchema2 = z51.enum(eventScheduleScopeValues);
30170
+ var eventListingSourceSchema = z51.object({
30171
+ events: z51.array(publicEventSchema).nullable().optional(),
30172
+ siteId: z51.string(),
30173
+ apiBaseUrl: z51.string().optional(),
30166
30174
  stage: previewStageSchema.optional(),
30167
30175
  layout: eventLayoutSchema.optional(),
30168
30176
  columns: columnOptionSchema.optional(),
30169
- eventsPerPage: z52.string().optional(),
30170
- paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30171
- seeAllUrl: z52.string().optional(),
30172
- loadMoreText: z52.string().optional(),
30177
+ eventsPerPage: z51.string().optional(),
30178
+ paginationMode: z51.enum(["loadMore", "seeAllLink"]).optional(),
30179
+ seeAllUrl: z51.string().optional(),
30180
+ loadMoreText: z51.string().optional(),
30173
30181
  cardVariant: eventCardVariantInputSchema.optional(),
30174
30182
  buttonVariant: eventButtonVariantSchema.optional(),
30175
- buttonText: z52.string().optional(),
30176
- showVenue: z52.boolean().optional(),
30177
- showMap: z52.boolean().optional(),
30178
- showCapacity: z52.boolean().optional(),
30179
- emptyMessage: z52.string().optional(),
30180
- className: z52.string().optional(),
30181
- showFilters: z52.boolean().nullable().optional(),
30183
+ buttonText: z51.string().optional(),
30184
+ showVenue: z51.boolean().optional(),
30185
+ showMap: z51.boolean().optional(),
30186
+ showCapacity: z51.boolean().optional(),
30187
+ emptyMessage: z51.string().optional(),
30188
+ className: z51.string().optional(),
30189
+ showFilters: z51.boolean().nullable().optional(),
30182
30190
  showCategoryFilter: filterAutoShowSchema.optional(),
30183
- showVenueFilter: z52.boolean().nullable().optional(),
30184
- showStaffFilter: z52.boolean().nullable().optional(),
30191
+ showVenueFilter: z51.boolean().nullable().optional(),
30192
+ showStaffFilter: z51.boolean().nullable().optional(),
30185
30193
  eventKind: eventBlockKindSchema.nullable().optional(),
30186
30194
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
30187
- filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30195
+ filterEventPresets: z51.union([z51.string(), z51.array(z51.string())]).nullable().optional(),
30188
30196
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
30189
- filterCategoryIds: z52.string().nullable().optional(),
30190
- filterStaffMemberId: z52.string().nullable().optional(),
30191
- filterVenueId: z52.string().nullable().optional()
30197
+ filterCategoryIds: z51.string().nullable().optional(),
30198
+ filterStaffMemberId: z51.string().nullable().optional(),
30199
+ filterVenueId: z51.string().nullable().optional()
30192
30200
  });
30193
- var eventListingDisplaySchema = z52.object({
30194
- kind: z52.literal("event-listing"),
30195
- state: z52.enum(["loading", "empty", "ready"]),
30201
+ var eventListingDisplaySchema = z51.object({
30202
+ kind: z51.literal("event-listing"),
30203
+ state: z51.enum(["loading", "empty", "ready"]),
30196
30204
  listLayout: eventLayoutSchema,
30197
- className: z52.string().nullable(),
30198
- emptyMessage: z52.string(),
30199
- loadingMessage: z52.string(),
30200
- containerClass: z52.string(),
30205
+ className: z51.string().nullable(),
30206
+ emptyMessage: z51.string(),
30207
+ loadingMessage: z51.string(),
30208
+ containerClass: z51.string(),
30201
30209
  cardVariant: cardVariantRoleSchema,
30202
30210
  buttonVariant: eventButtonVariantSchema,
30203
- buttonText: z52.string(),
30204
- showVenue: z52.boolean(),
30205
- showMap: z52.boolean(),
30206
- showCapacity: z52.boolean(),
30211
+ buttonText: z51.string(),
30212
+ showVenue: z51.boolean(),
30213
+ showMap: z51.boolean(),
30214
+ showCapacity: z51.boolean(),
30207
30215
  orientation: cardOrientationSchema,
30208
- events: z52.array(publicEventSchema)
30216
+ events: z51.array(publicEventSchema)
30209
30217
  });
30210
- var eventListingHydrationSchema = z52.object({
30211
- siteId: z52.string(),
30218
+ var eventListingHydrationSchema = z51.object({
30219
+ siteId: z51.string(),
30212
30220
  stage: previewStageSchema.optional(),
30213
30221
  eventsPerPage: eventPageSizeSchema,
30214
30222
  paginationAction: eventListPaginationActionSchema,
30215
- showFilters: z52.boolean(),
30223
+ showFilters: z51.boolean(),
30216
30224
  showCategoryFilter: filterAutoShowSchema,
30217
- showVenueFilter: z52.boolean(),
30218
- showStaffFilter: z52.boolean(),
30225
+ showVenueFilter: z51.boolean(),
30226
+ showStaffFilter: z51.boolean(),
30219
30227
  eventKind: eventBlockKindSchema,
30220
30228
  eventSurface: eventSurfaceScopeSchema,
30221
- filterEventPresets: z52.string().nullable(),
30229
+ filterEventPresets: z51.string().nullable(),
30222
30230
  scheduleScope: eventScheduleScopeSchema2,
30223
- filterCategoryIds: z52.string().nullable().optional(),
30224
- filterStaffMemberId: z52.string().nullable().optional(),
30225
- filterVenueId: z52.string().nullable().optional(),
30226
- fetchInitialEventsOnMount: z52.boolean()
30231
+ filterCategoryIds: z51.string().nullable().optional(),
30232
+ filterStaffMemberId: z51.string().nullable().optional(),
30233
+ filterVenueId: z51.string().nullable().optional(),
30234
+ fetchInitialEventsOnMount: z51.boolean()
30227
30235
  });
30228
- var eventListingRenderSchema = z52.object({
30236
+ var eventListingRenderSchema = z51.object({
30229
30237
  display: eventListingDisplaySchema,
30230
30238
  hydration: eventListingHydrationSchema
30231
30239
  });
30232
30240
  var eventListingIslandMetaCodec = createZodCodec(
30233
- z52.object({
30234
- siteId: z52.string(),
30235
- apiBaseUrl: z52.string().optional(),
30241
+ z51.object({
30242
+ siteId: z51.string(),
30243
+ apiBaseUrl: z51.string().optional(),
30236
30244
  stage: previewStageSchema.optional()
30237
30245
  })
30238
30246
  );
@@ -30599,15 +30607,15 @@ var eventListingBlockDefinition = {
30599
30607
  };
30600
30608
 
30601
30609
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
30602
- import { z as z53 } from "zod";
30603
- var eventBlockKindSchema2 = z53.enum(eventBlockKindValues);
30604
- var eventSurfaceScopeSchema2 = z53.enum(eventSurfaceScopeValues);
30605
- var eventScheduleScopeSchema3 = z53.enum(eventScheduleScopeValues);
30606
- var eventCalendarSourceSchema = z53.object(
30610
+ import { z as z52 } from "zod";
30611
+ var eventBlockKindSchema2 = z52.enum(eventBlockKindValues);
30612
+ var eventSurfaceScopeSchema2 = z52.enum(eventSurfaceScopeValues);
30613
+ var eventScheduleScopeSchema3 = z52.enum(eventScheduleScopeValues);
30614
+ var eventCalendarSourceSchema = z52.object(
30607
30615
  {
30608
- events: z53.array(publicEventSchema).nullable().optional(),
30609
- siteId: z53.string(),
30610
- apiBaseUrl: z53.string().optional(),
30616
+ events: z52.array(publicEventSchema).nullable().optional(),
30617
+ siteId: z52.string(),
30618
+ apiBaseUrl: z52.string().optional(),
30611
30619
  stage: previewStageSchema.optional(),
30612
30620
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
30613
30621
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -30615,78 +30623,80 @@ var eventCalendarSourceSchema = z53.object(
30615
30623
  listColumns: columnOptionSchema.optional(),
30616
30624
  layout: eventLayoutSchema.optional(),
30617
30625
  columns: columnOptionSchema.optional(),
30618
- eventsPerPage: z53.string().optional(),
30619
- paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
30620
- seeAllUrl: z53.string().optional(),
30621
- loadMoreText: z53.string().optional(),
30626
+ eventsPerPage: z52.string().optional(),
30627
+ paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30628
+ seeAllUrl: z52.string().optional(),
30629
+ loadMoreText: z52.string().optional(),
30622
30630
  startOfWeek: weekStartSchema.optional(),
30623
30631
  calendarTabViews: calendarTabViewsSchema.optional(),
30624
- showFilters: z53.boolean().nullable().optional(),
30632
+ defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
30633
+ showFilters: z52.boolean().nullable().optional(),
30625
30634
  showCategoryFilter: filterAutoShowSchema.optional(),
30626
- showVenueFilter: z53.boolean().nullable().optional(),
30627
- showStaffFilter: z53.boolean().nullable().optional(),
30635
+ showVenueFilter: z52.boolean().nullable().optional(),
30636
+ showStaffFilter: z52.boolean().nullable().optional(),
30628
30637
  kind: eventBlockKindSchema2.nullable().optional(),
30629
30638
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
30630
- filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30639
+ filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30631
30640
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
30632
- filterCategoryIds: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30633
- filterStaffMemberId: z53.string().nullable().optional(),
30634
- filterVenueId: z53.string().nullable().optional(),
30641
+ filterCategoryIds: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30642
+ filterStaffMemberId: z52.string().nullable().optional(),
30643
+ filterVenueId: z52.string().nullable().optional(),
30635
30644
  buttonVariant: eventButtonVariantSchema.optional(),
30636
- buttonText: z53.string().optional(),
30637
- showVenue: z53.boolean().nullable().optional(),
30638
- showMap: z53.boolean().nullable().optional(),
30639
- showCapacity: z53.boolean().nullable().optional(),
30640
- emptyMessage: z53.string().optional(),
30641
- className: z53.string().optional()
30645
+ buttonText: z52.string().optional(),
30646
+ showVenue: z52.boolean().nullable().optional(),
30647
+ showMap: z52.boolean().nullable().optional(),
30648
+ showCapacity: z52.boolean().nullable().optional(),
30649
+ emptyMessage: z52.string().optional(),
30650
+ className: z52.string().optional()
30642
30651
  }
30643
30652
  );
30644
- var eventCalendarDisplaySchema = z53.object({
30645
- kind: z53.literal("event-calendar"),
30653
+ var eventCalendarDisplaySchema = z52.object({
30654
+ kind: z52.literal("event-calendar"),
30646
30655
  displayMode: eventCalendarDisplayModeSchema,
30647
- className: z53.string().nullable(),
30648
- events: z53.array(publicEventSchema),
30656
+ className: z52.string().nullable(),
30657
+ events: z52.array(publicEventSchema),
30649
30658
  listLayout: eventLayoutSchema,
30650
30659
  listColumns: columnOptionSchema,
30651
30660
  eventsPerPage: eventPageSizeSchema,
30652
30661
  paginationAction: eventListPaginationActionSchema,
30653
30662
  startOfWeek: weekStartSchema,
30654
30663
  calendarTabViews: calendarTabViewsSchema,
30655
- showFilters: z53.boolean(),
30664
+ defaultCalendarView: eventCalendarDefaultViewSchema,
30665
+ showFilters: z52.boolean(),
30656
30666
  showCategoryFilter: filterAutoShowSchema,
30657
- showVenueFilter: z53.boolean(),
30658
- showStaffFilter: z53.boolean(),
30667
+ showVenueFilter: z52.boolean(),
30668
+ showStaffFilter: z52.boolean(),
30659
30669
  eventKind: eventBlockKindSchema2,
30660
30670
  eventSurface: eventSurfaceScopeSchema2,
30661
- filterEventPresets: z53.string().nullable(),
30671
+ filterEventPresets: z52.string().nullable(),
30662
30672
  scheduleScope: eventScheduleScopeSchema3,
30663
- filterCategoryIds: z53.string().nullable(),
30664
- filterStaffMemberId: z53.string().nullable(),
30665
- filterVenueId: z53.string().nullable(),
30673
+ filterCategoryIds: z52.string().nullable(),
30674
+ filterStaffMemberId: z52.string().nullable(),
30675
+ filterVenueId: z52.string().nullable(),
30666
30676
  buttonVariant: eventButtonVariantSchema,
30667
- buttonText: z53.string(),
30668
- showVenue: z53.boolean(),
30669
- showMap: z53.boolean(),
30670
- showCapacity: z53.boolean(),
30671
- emptyMessage: z53.string()
30672
- });
30673
- var eventCalendarHydrationSchema = z53.object({
30674
- siteId: z53.string(),
30677
+ buttonText: z52.string(),
30678
+ showVenue: z52.boolean(),
30679
+ showMap: z52.boolean(),
30680
+ showCapacity: z52.boolean(),
30681
+ emptyMessage: z52.string()
30682
+ });
30683
+ var eventCalendarHydrationSchema = z52.object({
30684
+ siteId: z52.string(),
30675
30685
  stage: previewStageSchema.optional(),
30676
- prefetchedEvents: z53.boolean(),
30686
+ prefetchedEvents: z52.boolean(),
30677
30687
  eventKind: eventBlockKindSchema2,
30678
30688
  eventSurface: eventSurfaceScopeSchema2,
30679
- filterEventPresets: z53.string().nullable(),
30689
+ filterEventPresets: z52.string().nullable(),
30680
30690
  scheduleScope: eventScheduleScopeSchema3
30681
30691
  });
30682
- var eventCalendarRenderSchema = z53.object({
30692
+ var eventCalendarRenderSchema = z52.object({
30683
30693
  display: eventCalendarDisplaySchema,
30684
30694
  hydration: eventCalendarHydrationSchema
30685
30695
  });
30686
30696
  var eventCalendarIslandMetaCodec = createZodCodec(
30687
- z53.object({
30688
- siteId: z53.string(),
30689
- apiBaseUrl: z53.string().optional(),
30697
+ z52.object({
30698
+ siteId: z52.string(),
30699
+ apiBaseUrl: z52.string().optional(),
30690
30700
  stage: previewStageSchema.optional()
30691
30701
  })
30692
30702
  );
@@ -30716,6 +30726,7 @@ function buildEventCalendarDisplay(source) {
30716
30726
  }),
30717
30727
  startOfWeek: source.startOfWeek ?? "monday",
30718
30728
  calendarTabViews: source.calendarTabViews ?? "both",
30729
+ defaultCalendarView: source.defaultCalendarView ?? "month",
30719
30730
  showFilters: source.showFilters ?? true,
30720
30731
  showCategoryFilter: source.showCategoryFilter ?? "auto",
30721
30732
  showVenueFilter: source.showVenueFilter ?? false,
@@ -30778,6 +30789,9 @@ function normalizeEventCalendarContent(content) {
30778
30789
  ...variant ? { variant } : {},
30779
30790
  displayMode: normalizeEventCalendarDisplayMode(record.displayMode),
30780
30791
  listLayout: normalizeEventCalendarListLayout(record.listLayout),
30792
+ defaultCalendarView: normalizeEventCalendarDefaultView(
30793
+ record.defaultCalendarView
30794
+ ),
30781
30795
  kind,
30782
30796
  eventSurface: normalizeEventSurfaceScope(record.eventSurface),
30783
30797
  filterEventPresets: normalizeEventSurfacePresets(record.filterEventPresets),
@@ -30795,6 +30809,9 @@ function normalizeEventCalendarDisplayMode(value) {
30795
30809
  function normalizeEventCalendarListLayout(value) {
30796
30810
  return isEventCalendarListLayout(value) ? value : void 0;
30797
30811
  }
30812
+ function normalizeEventCalendarDefaultView(value) {
30813
+ return isEventCalendarDefaultView(value) ? value : void 0;
30814
+ }
30798
30815
  var eventCalendarLayout = [
30799
30816
  styledSection({
30800
30817
  children: sectionContainer(
@@ -30854,6 +30871,9 @@ var eventCalendarLayout = [
30854
30871
  calendarTabViews: {
30855
30872
  $bind: { from: "content.calendarTabViews", fallback: "both" }
30856
30873
  },
30874
+ defaultCalendarView: {
30875
+ $bind: { from: "content.defaultCalendarView", fallback: "month" }
30876
+ },
30857
30877
  // Filtering options
30858
30878
  showFilters: {
30859
30879
  $bind: { from: "content.showFilters", fallback: true }
@@ -30920,8 +30940,7 @@ var eventCalendarAdditionalFields = [
30920
30940
  defaultValue: "combined",
30921
30941
  options: [
30922
30942
  { value: "combined", label: "Combined (List + Calendar tabs)" },
30923
- { value: "month", label: "Month calendar" },
30924
- { value: "week", label: "Week agenda" },
30943
+ { value: "calendar", label: "Calendar" },
30925
30944
  { value: "timetable", label: "Timetable" },
30926
30945
  { value: "list", label: "List" }
30927
30946
  ],
@@ -30960,7 +30979,12 @@ var eventCalendarAdditionalFields = [
30960
30979
  ],
30961
30980
  ui: {
30962
30981
  intent: "display",
30963
- visibleWhen: { field: "listLayout", equals: "grid" }
30982
+ visibleWhen: {
30983
+ allOf: [
30984
+ { field: "variant", oneOf: ["combined", "list"] },
30985
+ { field: "listLayout", equals: "grid" }
30986
+ ]
30987
+ }
30964
30988
  }
30965
30989
  },
30966
30990
  {
@@ -31008,7 +31032,12 @@ var eventCalendarAdditionalFields = [
31008
31032
  required: false,
31009
31033
  ui: {
31010
31034
  intent: "display",
31011
- visibleWhen: { field: "paginationMode", equals: "seeAllLink" }
31035
+ visibleWhen: {
31036
+ allOf: [
31037
+ { field: "variant", oneOf: ["combined", "list"] },
31038
+ { field: "paginationMode", equals: "seeAllLink" }
31039
+ ]
31040
+ }
31012
31041
  }
31013
31042
  },
31014
31043
  {
@@ -31041,7 +31070,7 @@ var eventCalendarAdditionalFields = [
31041
31070
  intent: "display",
31042
31071
  visibleWhen: {
31043
31072
  field: "variant",
31044
- oneOf: ["combined", "month", "week"]
31073
+ oneOf: ["combined", "calendar", "timetable"]
31045
31074
  }
31046
31075
  }
31047
31076
  },
@@ -31064,6 +31093,33 @@ var eventCalendarAdditionalFields = [
31064
31093
  visibleWhen: { field: "variant", equals: "combined" }
31065
31094
  }
31066
31095
  },
31096
+ {
31097
+ id: "defaultCalendarView",
31098
+ type: "select",
31099
+ label: "Calendar view",
31100
+ description: "Choose the standalone calendar view, or the first view in combined mode",
31101
+ required: false,
31102
+ multiple: false,
31103
+ defaultValue: "month",
31104
+ options: [
31105
+ { value: "month", label: "Month" },
31106
+ { value: "week", label: "Week" }
31107
+ ],
31108
+ ui: {
31109
+ intent: "display",
31110
+ visibleWhen: {
31111
+ anyOf: [
31112
+ { field: "variant", equals: "calendar" },
31113
+ {
31114
+ allOf: [
31115
+ { field: "variant", equals: "combined" },
31116
+ { field: "calendarTabViews", equals: "both" }
31117
+ ]
31118
+ }
31119
+ ]
31120
+ }
31121
+ }
31122
+ },
31067
31123
  // Filtering options
31068
31124
  {
31069
31125
  id: "kind",
@@ -31091,7 +31147,7 @@ var eventCalendarAdditionalFields = [
31091
31147
  intent: "display",
31092
31148
  visibleWhen: {
31093
31149
  field: "variant",
31094
- oneOf: ["combined", "list", "timetable"]
31150
+ oneOf: ["combined", "calendar", "list", "timetable"]
31095
31151
  }
31096
31152
  }
31097
31153
  },
@@ -31111,8 +31167,10 @@ var eventCalendarAdditionalFields = [
31111
31167
  ui: {
31112
31168
  intent: "display",
31113
31169
  visibleWhen: {
31114
- field: "variant",
31115
- oneOf: ["combined", "list", "timetable"]
31170
+ allOf: [
31171
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
31172
+ { field: "showFilters", equals: true }
31173
+ ]
31116
31174
  }
31117
31175
  }
31118
31176
  },
@@ -31126,8 +31184,10 @@ var eventCalendarAdditionalFields = [
31126
31184
  ui: {
31127
31185
  intent: "display",
31128
31186
  visibleWhen: {
31129
- field: "variant",
31130
- oneOf: ["combined", "list", "timetable"]
31187
+ allOf: [
31188
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
31189
+ { field: "showFilters", equals: true }
31190
+ ]
31131
31191
  }
31132
31192
  }
31133
31193
  },
@@ -31141,8 +31201,10 @@ var eventCalendarAdditionalFields = [
31141
31201
  ui: {
31142
31202
  intent: "display",
31143
31203
  visibleWhen: {
31144
- field: "variant",
31145
- oneOf: ["combined", "list", "timetable"]
31204
+ allOf: [
31205
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
31206
+ { field: "showFilters", equals: true }
31207
+ ]
31146
31208
  }
31147
31209
  }
31148
31210
  },
@@ -31156,8 +31218,15 @@ var eventCalendarAdditionalFields = [
31156
31218
  ui: {
31157
31219
  intent: "display",
31158
31220
  visibleWhen: {
31159
- field: "variant",
31160
- oneOf: ["combined", "list", "week", "timetable"]
31221
+ anyOf: [
31222
+ { field: "variant", oneOf: ["combined", "list", "timetable"] },
31223
+ {
31224
+ allOf: [
31225
+ { field: "variant", equals: "calendar" },
31226
+ { field: "defaultCalendarView", equals: "week" }
31227
+ ]
31228
+ }
31229
+ ]
31161
31230
  }
31162
31231
  }
31163
31232
  },
@@ -31273,8 +31342,7 @@ var eventCalendarAdditionalFields = [
31273
31342
  ];
31274
31343
  var eventCalendarVariants = {
31275
31344
  combined: eventCalendarLayout[0],
31276
- month: eventCalendarLayout[0],
31277
- week: eventCalendarLayout[0],
31345
+ calendar: eventCalendarLayout[0],
31278
31346
  timetable: eventCalendarLayout[0],
31279
31347
  list: eventCalendarLayout[0]
31280
31348
  };
@@ -31286,8 +31354,7 @@ var eventCalendarDerivedFields = [
31286
31354
  multiple: false,
31287
31355
  options: [
31288
31356
  { value: "combined" },
31289
- { value: "month" },
31290
- { value: "week" },
31357
+ { value: "calendar" },
31291
31358
  { value: "timetable" },
31292
31359
  { value: "list" }
31293
31360
  ]
@@ -31300,6 +31367,13 @@ var eventCalendarDerivedFields = [
31300
31367
  options: eventCalendarListLayoutOptions.map((option) => ({
31301
31368
  value: option.id
31302
31369
  }))
31370
+ },
31371
+ {
31372
+ id: "defaultCalendarView",
31373
+ type: "select",
31374
+ required: false,
31375
+ multiple: false,
31376
+ options: [{ value: "month" }, { value: "week" }]
31303
31377
  }
31304
31378
  ];
31305
31379
  var eventCalendarContentShape = {
@@ -31348,8 +31422,7 @@ var eventCalendarConfig = {
31348
31422
  defaultVariant: "combined",
31349
31423
  variantOptions: {
31350
31424
  combined: { label: "Combined" },
31351
- month: { label: "Month" },
31352
- week: { label: "Week" },
31425
+ calendar: { label: "Calendar" },
31353
31426
  timetable: { label: "Timetable" },
31354
31427
  list: { label: "List" }
31355
31428
  }
@@ -31395,7 +31468,7 @@ var eventCalendarBlockDefinition = {
31395
31468
  };
31396
31469
 
31397
31470
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31398
- import { z as z54 } from "zod";
31471
+ import { z as z53 } from "zod";
31399
31472
 
31400
31473
  // ../blocks/src/system/blocks/offerings-preview/model.ts
31401
31474
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -31487,13 +31560,13 @@ function isRecord5(value) {
31487
31560
  }
31488
31561
 
31489
31562
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31490
- var publicRouteCandidatesSchema = z54.object({
31491
- routes: z54.array(z54.object({
31492
- entityId: z54.string(),
31493
- path: z54.string(),
31494
- title: z54.string(),
31495
- kind: z54.enum(["page", "content"]),
31496
- contentTypeKey: z54.string().nullable().optional()
31563
+ var publicRouteCandidatesSchema = z53.object({
31564
+ routes: z53.array(z53.object({
31565
+ entityId: z53.string(),
31566
+ path: z53.string(),
31567
+ title: z53.string(),
31568
+ kind: z53.enum(["page", "content"]),
31569
+ contentTypeKey: z53.string().nullable().optional()
31497
31570
  }))
31498
31571
  });
31499
31572
  var groupOverrideFields = [
@@ -31891,7 +31964,7 @@ function isRecord6(value) {
31891
31964
  }
31892
31965
 
31893
31966
  // ../blocks/src/system/blocks/embed.ts
31894
- import { z as z55 } from "zod";
31967
+ import { z as z54 } from "zod";
31895
31968
  var embedFields = [
31896
31969
  // Section heading
31897
31970
  parseFieldDefinition({
@@ -32122,18 +32195,18 @@ var embedManifest = createBlockManifest({
32122
32195
  spacing: "lg"
32123
32196
  }
32124
32197
  });
32125
- var embedEntrySchema = z55.object({
32126
- id: z55.string(),
32127
- identifier: z55.string(),
32128
- title: z55.string(),
32129
- slug: z55.string().nullable().optional(),
32130
- content: z55.record(z55.string(), z55.unknown()).optional(),
32131
- publishedAt: z55.string().nullable().optional()
32198
+ var embedEntrySchema = z54.object({
32199
+ id: z54.string(),
32200
+ identifier: z54.string(),
32201
+ title: z54.string(),
32202
+ slug: z54.string().nullable().optional(),
32203
+ content: z54.record(z54.string(), z54.unknown()).optional(),
32204
+ publishedAt: z54.string().nullable().optional()
32132
32205
  });
32133
32206
  var embedBlockDefinition = {
32134
32207
  manifest: embedManifest,
32135
32208
  dataSchemas: {
32136
- entries: z55.array(embedEntrySchema).optional()
32209
+ entries: z54.array(embedEntrySchema).optional()
32137
32210
  },
32138
32211
  dataLoaders: {
32139
32212
  entries: {
@@ -33316,53 +33389,50 @@ var fileDownloadBlockDefinition = {
33316
33389
  manifest: fileDownloadManifest
33317
33390
  };
33318
33391
 
33319
- // ../blocks/src/system/blocks/shop.ts
33320
- import { z as z59 } from "zod";
33321
-
33322
33392
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33323
- import { z as z58 } from "zod";
33393
+ import { z as z57 } from "zod";
33324
33394
 
33325
33395
  // ../blocks/src/system/blocks/products/shared.ts
33326
- import { z as z56 } from "zod";
33327
- var publicProductVariantSchema = z56.object({
33328
- id: z56.string(),
33329
- title: z56.string(),
33330
- sku: z56.string().nullable(),
33331
- priceCents: z56.number(),
33332
- stockQuantity: z56.number().nullable(),
33333
- soldOut: z56.boolean()
33334
- });
33335
- var publicProductSchema = z56.object({
33336
- id: z56.string(),
33337
- contentEntryId: z56.string().nullable(),
33338
- title: z56.string(),
33339
- slug: z56.string(),
33340
- path: z56.string().nullable(),
33341
- status: z56.enum(["draft", "active"]),
33342
- priceCents: z56.number(),
33343
- currency: z56.string(),
33344
- productType: z56.enum(["physical", "digital"]),
33345
- requiresShipping: z56.boolean(),
33346
- hasVariants: z56.boolean(),
33347
- trackInventory: z56.boolean(),
33348
- soldOut: z56.boolean(),
33349
- category: z56.object({
33350
- id: z56.string(),
33351
- name: z56.string(),
33352
- slug: z56.string()
33396
+ import { z as z55 } from "zod";
33397
+ var publicProductVariantSchema = z55.object({
33398
+ id: z55.string(),
33399
+ title: z55.string(),
33400
+ sku: z55.string().nullable(),
33401
+ priceCents: z55.number(),
33402
+ stockQuantity: z55.number().nullable(),
33403
+ soldOut: z55.boolean()
33404
+ });
33405
+ var publicProductSchema = z55.object({
33406
+ id: z55.string(),
33407
+ contentEntryId: z55.string().nullable(),
33408
+ title: z55.string(),
33409
+ slug: z55.string(),
33410
+ path: z55.string().nullable(),
33411
+ status: z55.enum(["draft", "active"]),
33412
+ priceCents: z55.number(),
33413
+ currency: z55.string(),
33414
+ productType: z55.enum(["physical", "digital"]),
33415
+ requiresShipping: z55.boolean(),
33416
+ hasVariants: z55.boolean(),
33417
+ trackInventory: z55.boolean(),
33418
+ soldOut: z55.boolean(),
33419
+ category: z55.object({
33420
+ id: z55.string(),
33421
+ name: z55.string(),
33422
+ slug: z55.string()
33353
33423
  }).nullable(),
33354
- summary: z56.string().nullable(),
33355
- body: z56.unknown().nullable(),
33356
- gallery: z56.array(
33357
- z56.object({
33358
- url: z56.string(),
33359
- alt: z56.string().nullable()
33424
+ summary: z55.string().nullable(),
33425
+ body: z55.unknown().nullable(),
33426
+ gallery: z55.array(
33427
+ z55.object({
33428
+ url: z55.string(),
33429
+ alt: z55.string().nullable()
33360
33430
  })
33361
33431
  ),
33362
- variants: z56.array(publicProductVariantSchema)
33432
+ variants: z55.array(publicProductVariantSchema)
33363
33433
  });
33364
- var publicProductsResponseSchema = z56.object({
33365
- products: z56.array(publicProductSchema)
33434
+ var publicProductsResponseSchema = z55.object({
33435
+ products: z55.array(publicProductSchema)
33366
33436
  });
33367
33437
 
33368
33438
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -33426,27 +33496,27 @@ function deriveCreditProductLabels(products, options = {}) {
33426
33496
  }
33427
33497
 
33428
33498
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
33429
- import { z as z57 } from "zod";
33430
- var storedProductCartItemSchema = z57.object({
33431
- kind: z57.literal("product"),
33432
- productId: z57.string().min(1),
33433
- productCategoryId: z57.string().min(1).optional().nullable(),
33434
- variantId: z57.string().min(1).optional().nullable(),
33435
- title: z57.string().min(1),
33436
- variantTitle: z57.string().optional().nullable(),
33437
- quantity: z57.number().finite(),
33438
- unitPriceCents: z57.number().finite(),
33439
- currency: z57.string().min(1),
33440
- imageUrl: z57.string().optional().nullable(),
33441
- soldOut: z57.boolean().optional()
33442
- });
33443
- var storedPassCartItemSchema = z57.object({
33444
- kind: z57.literal("pass"),
33445
- passId: z57.string().min(1),
33446
- title: z57.string().min(1),
33447
- quantity: z57.number().finite().optional(),
33448
- unitPriceCents: z57.number().finite(),
33449
- currency: z57.string().min(1)
33499
+ import { z as z56 } from "zod";
33500
+ var storedProductCartItemSchema = z56.object({
33501
+ kind: z56.literal("product"),
33502
+ productId: z56.string().min(1),
33503
+ productCategoryId: z56.string().min(1).optional().nullable(),
33504
+ variantId: z56.string().min(1).optional().nullable(),
33505
+ title: z56.string().min(1),
33506
+ variantTitle: z56.string().optional().nullable(),
33507
+ quantity: z56.number().finite(),
33508
+ unitPriceCents: z56.number().finite(),
33509
+ currency: z56.string().min(1),
33510
+ imageUrl: z56.string().optional().nullable(),
33511
+ soldOut: z56.boolean().optional()
33512
+ });
33513
+ var storedPassCartItemSchema = z56.object({
33514
+ kind: z56.literal("pass"),
33515
+ passId: z56.string().min(1),
33516
+ title: z56.string().min(1),
33517
+ quantity: z56.number().finite().optional(),
33518
+ unitPriceCents: z56.number().finite(),
33519
+ currency: z56.string().min(1)
33450
33520
  });
33451
33521
  function deriveCommerceCheckoutState(state) {
33452
33522
  if (state.items.length === 0) {
@@ -33680,214 +33750,214 @@ function formatValidity(days) {
33680
33750
  }
33681
33751
 
33682
33752
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33683
- var shopModeSchema = z58.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33684
- var contentEntrySchema3 = z58.object({
33685
- id: z58.string().nullable().optional(),
33686
- slug: z58.string().nullable().optional()
33753
+ var shopModeSchema = z57.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33754
+ var contentEntrySchema3 = z57.object({
33755
+ id: z57.string().nullable().optional(),
33756
+ slug: z57.string().nullable().optional()
33687
33757
  }).nullable();
33688
- var shopSourceSchema = z58.object({
33689
- className: z58.string().nullable().optional(),
33758
+ var shopSourceSchema = z57.object({
33759
+ className: z57.string().nullable().optional(),
33690
33760
  mode: shopModeSchema.optional(),
33691
- heading: z58.string().nullable().optional(),
33692
- productSlug: z58.string().nullable().optional(),
33693
- showPasses: z58.boolean().optional(),
33694
- showMemberships: z58.boolean().optional(),
33695
- layout: z58.enum(["grid", "list"]).optional(),
33696
- columns: z58.string().optional(),
33697
- showDescriptions: z58.boolean().optional(),
33698
- showSummary: z58.boolean().optional(),
33699
- showBody: z58.boolean().optional(),
33700
- showPrices: z58.boolean().optional(),
33701
- showValidityPeriod: z58.boolean().optional(),
33702
- showPricePerCredit: z58.boolean().nullable().optional(),
33703
- passesHeading: z58.string().optional(),
33704
- membershipsHeading: z58.string().optional(),
33705
- buyButtonText: z58.string().optional(),
33706
- addButtonText: z58.string().optional(),
33707
- passPurchaseMode: z58.enum(["add_to_cart", "buy_now"]).optional(),
33708
- subscribeButtonText: z58.string().optional(),
33709
- emptyStateText: z58.string().optional(),
33710
- checkoutButtonText: z58.string().optional(),
33711
- clearButtonText: z58.string().optional(),
33712
- submitButtonText: z58.string().optional(),
33761
+ heading: z57.string().nullable().optional(),
33762
+ productSlug: z57.string().nullable().optional(),
33763
+ showPasses: z57.boolean().optional(),
33764
+ showMemberships: z57.boolean().optional(),
33765
+ layout: z57.enum(["grid", "list"]).optional(),
33766
+ columns: z57.string().optional(),
33767
+ showDescriptions: z57.boolean().optional(),
33768
+ showSummary: z57.boolean().optional(),
33769
+ showBody: z57.boolean().optional(),
33770
+ showPrices: z57.boolean().optional(),
33771
+ showValidityPeriod: z57.boolean().optional(),
33772
+ showPricePerCredit: z57.boolean().nullable().optional(),
33773
+ passesHeading: z57.string().optional(),
33774
+ membershipsHeading: z57.string().optional(),
33775
+ buyButtonText: z57.string().optional(),
33776
+ addButtonText: z57.string().optional(),
33777
+ passPurchaseMode: z57.enum(["add_to_cart", "buy_now"]).optional(),
33778
+ subscribeButtonText: z57.string().optional(),
33779
+ emptyStateText: z57.string().optional(),
33780
+ checkoutButtonText: z57.string().optional(),
33781
+ clearButtonText: z57.string().optional(),
33782
+ submitButtonText: z57.string().optional(),
33713
33783
  contentEntry: contentEntrySchema3.optional(),
33714
- passes: z58.array(publicPassProductSchema).nullable().optional(),
33715
- memberships: z58.array(publicMembershipProductSchema).nullable().optional(),
33716
- products: z58.array(publicProductSchema).nullable().optional(),
33717
- siteId: z58.string().optional(),
33718
- apiBaseUrl: z58.string().optional(),
33784
+ passes: z57.array(publicPassProductSchema).nullable().optional(),
33785
+ memberships: z57.array(publicMembershipProductSchema).nullable().optional(),
33786
+ products: z57.array(publicProductSchema).nullable().optional(),
33787
+ siteId: z57.string().optional(),
33788
+ apiBaseUrl: z57.string().optional(),
33719
33789
  stage: previewStageSchema.optional()
33720
33790
  });
33721
- var productVariantOptionDisplaySchema = z58.object({
33722
- id: z58.string(),
33723
- label: z58.string(),
33724
- soldOut: z58.boolean()
33725
- });
33726
- var productCardDisplaySchema = z58.object({
33727
- productId: z58.string(),
33728
- title: z58.string(),
33729
- path: z58.string().nullable(),
33730
- summary: z58.string().nullable(),
33731
- priceLabel: z58.string().nullable(),
33732
- image: z58.object({
33733
- url: z58.string(),
33734
- alt: z58.string().nullable()
33791
+ var productVariantOptionDisplaySchema = z57.object({
33792
+ id: z57.string(),
33793
+ label: z57.string(),
33794
+ soldOut: z57.boolean()
33795
+ });
33796
+ var productCardDisplaySchema = z57.object({
33797
+ productId: z57.string(),
33798
+ title: z57.string(),
33799
+ path: z57.string().nullable(),
33800
+ summary: z57.string().nullable(),
33801
+ priceLabel: z57.string().nullable(),
33802
+ image: z57.object({
33803
+ url: z57.string(),
33804
+ alt: z57.string().nullable()
33735
33805
  }).nullable(),
33736
- variantOptions: z58.array(productVariantOptionDisplaySchema),
33737
- selectedVariantId: z58.string().nullable(),
33738
- selectionLabel: z58.string(),
33739
- actionLabel: z58.string(),
33740
- soldOut: z58.boolean()
33741
- });
33742
- var productListDisplaySchema = z58.object({
33743
- kind: z58.literal("product-list"),
33744
- state: z58.enum(["empty", "ready"]),
33745
- heading: z58.string().nullable(),
33746
- className: z58.string().nullable(),
33747
- layout: z58.enum(["grid", "list"]),
33748
- columns: z58.string(),
33749
- emptyMessage: z58.string(),
33750
- cards: z58.array(productCardDisplaySchema)
33751
- });
33752
- var productDetailDisplaySchema = z58.discriminatedUnion("state", [
33753
- z58.object({
33754
- kind: z58.literal("product-detail"),
33755
- state: z58.literal("empty"),
33756
- heading: z58.string().nullable(),
33757
- className: z58.string().nullable(),
33758
- emptyMessage: z58.string()
33806
+ variantOptions: z57.array(productVariantOptionDisplaySchema),
33807
+ selectedVariantId: z57.string().nullable(),
33808
+ selectionLabel: z57.string(),
33809
+ actionLabel: z57.string(),
33810
+ soldOut: z57.boolean()
33811
+ });
33812
+ var productListDisplaySchema = z57.object({
33813
+ kind: z57.literal("product-list"),
33814
+ state: z57.enum(["empty", "ready"]),
33815
+ heading: z57.string().nullable(),
33816
+ className: z57.string().nullable(),
33817
+ layout: z57.enum(["grid", "list"]),
33818
+ columns: z57.string(),
33819
+ emptyMessage: z57.string(),
33820
+ cards: z57.array(productCardDisplaySchema)
33821
+ });
33822
+ var productDetailDisplaySchema = z57.discriminatedUnion("state", [
33823
+ z57.object({
33824
+ kind: z57.literal("product-detail"),
33825
+ state: z57.literal("empty"),
33826
+ heading: z57.string().nullable(),
33827
+ className: z57.string().nullable(),
33828
+ emptyMessage: z57.string()
33759
33829
  }),
33760
- z58.object({
33761
- kind: z58.literal("product-detail"),
33762
- state: z58.literal("ready"),
33763
- heading: z58.string().nullable(),
33764
- className: z58.string().nullable(),
33765
- title: z58.string(),
33766
- priceLabel: z58.string(),
33767
- summary: z58.string().nullable(),
33768
- categoryLabel: z58.string().nullable(),
33769
- gallery: z58.array(z58.object({
33770
- url: z58.string(),
33771
- alt: z58.string().nullable()
33830
+ z57.object({
33831
+ kind: z57.literal("product-detail"),
33832
+ state: z57.literal("ready"),
33833
+ heading: z57.string().nullable(),
33834
+ className: z57.string().nullable(),
33835
+ title: z57.string(),
33836
+ priceLabel: z57.string(),
33837
+ summary: z57.string().nullable(),
33838
+ categoryLabel: z57.string().nullable(),
33839
+ gallery: z57.array(z57.object({
33840
+ url: z57.string(),
33841
+ alt: z57.string().nullable()
33772
33842
  })),
33773
- variantOptions: z58.array(productVariantOptionDisplaySchema),
33774
- selectedVariantId: z58.string().nullable(),
33775
- selectionLabel: z58.string(),
33776
- actionLabel: z58.string(),
33777
- soldOut: z58.boolean(),
33778
- body: z58.unknown().nullable()
33843
+ variantOptions: z57.array(productVariantOptionDisplaySchema),
33844
+ selectedVariantId: z57.string().nullable(),
33845
+ selectionLabel: z57.string(),
33846
+ actionLabel: z57.string(),
33847
+ soldOut: z57.boolean(),
33848
+ body: z57.unknown().nullable()
33779
33849
  })
33780
33850
  ]);
33781
- var passCardDisplaySchema = z58.object({
33782
- id: z58.string(),
33783
- title: z58.string(),
33784
- description: z58.string().nullable(),
33785
- priceLabel: z58.string(),
33786
- creditsLabel: z58.string(),
33787
- perCreditLabel: z58.string().nullable(),
33788
- validityLabel: z58.string().nullable(),
33789
- actionLabel: z58.string()
33790
- });
33791
- var membershipCardDisplaySchema = z58.object({
33792
- id: z58.string(),
33793
- title: z58.string(),
33794
- description: z58.string().nullable(),
33795
- priceLabel: z58.string(),
33796
- intervalLabel: z58.string(),
33797
- actionLabel: z58.string()
33798
- });
33799
- var passesMembershipsDisplaySchema = z58.object({
33800
- kind: z58.literal("passes-memberships"),
33801
- state: z58.enum(["empty", "ready"]),
33802
- className: z58.string().nullable(),
33803
- layout: z58.enum(["grid", "list"]),
33804
- columns: z58.string(),
33805
- emptyMessage: z58.string(),
33806
- passesHeading: z58.string(),
33807
- membershipsHeading: z58.string(),
33808
- passes: z58.array(passCardDisplaySchema),
33809
- memberships: z58.array(membershipCardDisplaySchema)
33810
- });
33811
- var cartLineDisplaySchema = z58.object({
33812
- key: z58.string(),
33813
- title: z58.string(),
33814
- priceLabel: z58.string(),
33815
- quantity: z58.number(),
33816
- quantityEditable: z58.boolean()
33817
- });
33818
- var cartDisplaySchema = z58.object({
33819
- kind: z58.literal("cart"),
33820
- state: z58.enum(["empty", "ready"]),
33821
- heading: z58.string().nullable(),
33822
- className: z58.string().nullable(),
33823
- emptyMessage: z58.string(),
33824
- supportText: z58.string().nullable(),
33825
- items: z58.array(cartLineDisplaySchema),
33826
- subtotalLabel: z58.string().nullable(),
33827
- checkoutButtonText: z58.string(),
33828
- clearButtonText: z58.string()
33829
- });
33830
- var checkoutDisplaySchema = z58.object({
33831
- kind: z58.literal("checkout"),
33832
- state: z58.enum(["empty", "blocked", "ready"]),
33833
- heading: z58.string().nullable(),
33834
- className: z58.string().nullable(),
33835
- message: z58.string().nullable(),
33836
- submitButtonText: z58.string()
33837
- });
33838
- var passesMembershipsHydrationSchema = z58.object({
33839
- passes: z58.array(publicPassProductSchema),
33840
- memberships: z58.array(publicMembershipProductSchema),
33841
- passPurchaseMode: z58.enum(["add_to_cart", "buy_now"])
33842
- });
33843
- var productListHydrationSchema = z58.object({
33844
- products: z58.array(publicProductSchema),
33845
- showSummary: z58.boolean(),
33846
- showPrices: z58.boolean(),
33847
- addButtonText: z58.string()
33848
- });
33849
- var productDetailHydrationSchema = z58.object({
33850
- products: z58.array(publicProductSchema),
33851
- productId: z58.string().nullable(),
33852
- showSummary: z58.boolean(),
33853
- showBody: z58.boolean(),
33854
- addButtonText: z58.string()
33855
- });
33856
- var cartHydrationSchema = z58.object({
33857
- emptyStateText: z58.string(),
33858
- checkoutButtonText: z58.string(),
33859
- clearButtonText: z58.string()
33860
- });
33861
- var checkoutHydrationSchema = z58.object({
33862
- emptyStateText: z58.string(),
33863
- submitButtonText: z58.string()
33864
- });
33865
- var passesMembershipsRenderSchema = z58.object({
33851
+ var passCardDisplaySchema = z57.object({
33852
+ id: z57.string(),
33853
+ title: z57.string(),
33854
+ description: z57.string().nullable(),
33855
+ priceLabel: z57.string(),
33856
+ creditsLabel: z57.string(),
33857
+ perCreditLabel: z57.string().nullable(),
33858
+ validityLabel: z57.string().nullable(),
33859
+ actionLabel: z57.string()
33860
+ });
33861
+ var membershipCardDisplaySchema = z57.object({
33862
+ id: z57.string(),
33863
+ title: z57.string(),
33864
+ description: z57.string().nullable(),
33865
+ priceLabel: z57.string(),
33866
+ intervalLabel: z57.string(),
33867
+ actionLabel: z57.string()
33868
+ });
33869
+ var passesMembershipsDisplaySchema = z57.object({
33870
+ kind: z57.literal("passes-memberships"),
33871
+ state: z57.enum(["empty", "ready"]),
33872
+ className: z57.string().nullable(),
33873
+ layout: z57.enum(["grid", "list"]),
33874
+ columns: z57.string(),
33875
+ emptyMessage: z57.string(),
33876
+ passesHeading: z57.string(),
33877
+ membershipsHeading: z57.string(),
33878
+ passes: z57.array(passCardDisplaySchema),
33879
+ memberships: z57.array(membershipCardDisplaySchema)
33880
+ });
33881
+ var cartLineDisplaySchema = z57.object({
33882
+ key: z57.string(),
33883
+ title: z57.string(),
33884
+ priceLabel: z57.string(),
33885
+ quantity: z57.number(),
33886
+ quantityEditable: z57.boolean()
33887
+ });
33888
+ var cartDisplaySchema = z57.object({
33889
+ kind: z57.literal("cart"),
33890
+ state: z57.enum(["empty", "ready"]),
33891
+ heading: z57.string().nullable(),
33892
+ className: z57.string().nullable(),
33893
+ emptyMessage: z57.string(),
33894
+ supportText: z57.string().nullable(),
33895
+ items: z57.array(cartLineDisplaySchema),
33896
+ subtotalLabel: z57.string().nullable(),
33897
+ checkoutButtonText: z57.string(),
33898
+ clearButtonText: z57.string()
33899
+ });
33900
+ var checkoutDisplaySchema = z57.object({
33901
+ kind: z57.literal("checkout"),
33902
+ state: z57.enum(["empty", "blocked", "ready"]),
33903
+ heading: z57.string().nullable(),
33904
+ className: z57.string().nullable(),
33905
+ message: z57.string().nullable(),
33906
+ submitButtonText: z57.string()
33907
+ });
33908
+ var passesMembershipsHydrationSchema = z57.object({
33909
+ passes: z57.array(publicPassProductSchema),
33910
+ memberships: z57.array(publicMembershipProductSchema),
33911
+ passPurchaseMode: z57.enum(["add_to_cart", "buy_now"])
33912
+ });
33913
+ var productListHydrationSchema = z57.object({
33914
+ products: z57.array(publicProductSchema),
33915
+ showSummary: z57.boolean(),
33916
+ showPrices: z57.boolean(),
33917
+ addButtonText: z57.string()
33918
+ });
33919
+ var productDetailHydrationSchema = z57.object({
33920
+ products: z57.array(publicProductSchema),
33921
+ productId: z57.string().nullable(),
33922
+ showSummary: z57.boolean(),
33923
+ showBody: z57.boolean(),
33924
+ addButtonText: z57.string()
33925
+ });
33926
+ var cartHydrationSchema = z57.object({
33927
+ emptyStateText: z57.string(),
33928
+ checkoutButtonText: z57.string(),
33929
+ clearButtonText: z57.string()
33930
+ });
33931
+ var checkoutHydrationSchema = z57.object({
33932
+ emptyStateText: z57.string(),
33933
+ submitButtonText: z57.string()
33934
+ });
33935
+ var passesMembershipsRenderSchema = z57.object({
33866
33936
  display: passesMembershipsDisplaySchema,
33867
33937
  hydration: passesMembershipsHydrationSchema
33868
33938
  });
33869
- var productListRenderSchema = z58.object({
33939
+ var productListRenderSchema = z57.object({
33870
33940
  display: productListDisplaySchema,
33871
33941
  hydration: productListHydrationSchema
33872
33942
  });
33873
- var productDetailRenderSchema = z58.object({
33943
+ var productDetailRenderSchema = z57.object({
33874
33944
  display: productDetailDisplaySchema,
33875
33945
  hydration: productDetailHydrationSchema
33876
33946
  });
33877
- var cartRenderSchema = z58.object({
33947
+ var cartRenderSchema = z57.object({
33878
33948
  display: cartDisplaySchema,
33879
33949
  hydration: cartHydrationSchema
33880
33950
  });
33881
- var checkoutRenderSchema = z58.object({
33951
+ var checkoutRenderSchema = z57.object({
33882
33952
  display: checkoutDisplaySchema,
33883
33953
  hydration: checkoutHydrationSchema
33884
33954
  });
33885
33955
  function resolveShowPricePerCredit(source) {
33886
33956
  return source.showPricePerCredit ?? true;
33887
33957
  }
33888
- var shopIslandMetaCodec = createZodCodec(z58.object({
33889
- siteId: z58.string().optional(),
33890
- apiBaseUrl: z58.string().optional(),
33958
+ var shopIslandMetaCodec = createZodCodec(z57.object({
33959
+ siteId: z57.string().optional(),
33960
+ apiBaseUrl: z57.string().optional(),
33891
33961
  stage: previewStageSchema.optional()
33892
33962
  }));
33893
33963
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -34265,9 +34335,9 @@ var shopBlockDefinition = {
34265
34335
  runtime: shopBlockRuntime,
34266
34336
  dataSchemas: {
34267
34337
  // listPublicPasses returns { passes: [...] }
34268
- passes: z59.object({ passes: z59.array(publicPassProductSchema) }).optional(),
34338
+ passes: publicPassProductCollectionSchema.optional(),
34269
34339
  // listPublicMemberships returns { memberships: [...] }
34270
- memberships: z59.object({ memberships: z59.array(publicMembershipProductSchema) }).optional()
34340
+ memberships: publicMembershipProductCollectionSchema.optional()
34271
34341
  },
34272
34342
  dataLoaders: {
34273
34343
  // Load passes for display
@@ -34290,7 +34360,7 @@ var shopBlockDefinition = {
34290
34360
  };
34291
34361
 
34292
34362
  // ../blocks/src/system/blocks/product-list.ts
34293
- import { z as z60 } from "zod";
34363
+ import { z as z58 } from "zod";
34294
34364
  var productListManifest = createBlockManifest({
34295
34365
  id: "block.product-list",
34296
34366
  version: "1.0.0",
@@ -34423,7 +34493,7 @@ var productListBlockDefinition = {
34423
34493
  }
34424
34494
  }
34425
34495
  };
34426
- var productListDataSchema = z60.object({
34496
+ var productListDataSchema = z58.object({
34427
34497
  products: publicProductsResponseSchema.optional()
34428
34498
  });
34429
34499
 
@@ -34684,72 +34754,72 @@ var checkoutBlockDefinition = {
34684
34754
  };
34685
34755
 
34686
34756
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
34687
- import { z as z61 } from "zod";
34688
- var publicGiftCardOfferSchema = z61.object({
34689
- id: z61.string(),
34690
- kind: z61.literal("gift_card"),
34691
- title: z61.string(),
34692
- description: z61.string().nullable(),
34693
- sortOrder: z61.number().int(),
34694
- giftCard: z61.object({
34695
- fixedDenominations: z61.array(z61.number().int().positive()),
34696
- customAmountEnabled: z61.boolean(),
34697
- customAmountMinCents: z61.number().int().positive(),
34698
- customAmountMaxCents: z61.number().int().positive()
34757
+ import { z as z59 } from "zod";
34758
+ var publicGiftCardOfferSchema = z59.object({
34759
+ id: z59.string(),
34760
+ kind: z59.literal("gift_card"),
34761
+ title: z59.string(),
34762
+ description: z59.string().nullable(),
34763
+ sortOrder: z59.number().int(),
34764
+ giftCard: z59.object({
34765
+ fixedDenominations: z59.array(z59.number().int().positive()),
34766
+ customAmountEnabled: z59.boolean(),
34767
+ customAmountMinCents: z59.number().int().positive(),
34768
+ customAmountMaxCents: z59.number().int().positive()
34699
34769
  }),
34700
- voucher: z61.null()
34701
- });
34702
- var publicVoucherOfferSchema = z61.object({
34703
- id: z61.string(),
34704
- kind: z61.literal("voucher"),
34705
- title: z61.string(),
34706
- description: z61.string().nullable(),
34707
- sortOrder: z61.number().int(),
34708
- giftCard: z61.null(),
34709
- voucher: z61.object({
34710
- purchaseAmountCents: z61.number().int().positive()
34770
+ voucher: z59.null()
34771
+ });
34772
+ var publicVoucherOfferSchema = z59.object({
34773
+ id: z59.string(),
34774
+ kind: z59.literal("voucher"),
34775
+ title: z59.string(),
34776
+ description: z59.string().nullable(),
34777
+ sortOrder: z59.number().int(),
34778
+ giftCard: z59.null(),
34779
+ voucher: z59.object({
34780
+ purchaseAmountCents: z59.number().int().positive()
34711
34781
  })
34712
34782
  });
34713
- var publicGiftingOffersResponseSchema = z61.object({
34714
- currency: z61.string(),
34715
- giftCards: z61.array(publicGiftCardOfferSchema),
34716
- vouchers: z61.array(publicVoucherOfferSchema)
34783
+ var publicGiftingOffersResponseSchema = z59.object({
34784
+ currency: z59.string(),
34785
+ giftCards: z59.array(publicGiftCardOfferSchema),
34786
+ vouchers: z59.array(publicVoucherOfferSchema)
34717
34787
  });
34718
- var giftingSourceSchema = z61.object({
34719
- siteId: z61.string().optional(),
34720
- apiBaseUrl: z61.string().optional(),
34788
+ var giftingSourceSchema = z59.object({
34789
+ siteId: z59.string().optional(),
34790
+ apiBaseUrl: z59.string().optional(),
34721
34791
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
34722
- className: z61.string().nullable().optional(),
34723
- heading: z61.string().nullable().optional(),
34724
- intro: z61.string().nullable().optional(),
34725
- giftCardsHeading: z61.string().nullable().optional(),
34726
- vouchersHeading: z61.string().nullable().optional(),
34727
- emptyStateText: z61.string().nullable().optional(),
34728
- checkoutButtonText: z61.string().nullable().optional(),
34729
- successMessage: z61.string().nullable().optional()
34730
- });
34731
- var giftingDisplaySchema = z61.object({
34732
- kind: z61.literal("gifting"),
34733
- state: z61.literal("ready"),
34734
- className: z61.string().nullable(),
34735
- heading: z61.string(),
34736
- intro: z61.string().nullable(),
34737
- giftCardsHeading: z61.string(),
34738
- vouchersHeading: z61.string(),
34739
- emptyStateText: z61.string()
34740
- });
34741
- var giftingHydrationSchema = z61.object({
34792
+ className: z59.string().nullable().optional(),
34793
+ heading: z59.string().nullable().optional(),
34794
+ intro: z59.string().nullable().optional(),
34795
+ giftCardsHeading: z59.string().nullable().optional(),
34796
+ vouchersHeading: z59.string().nullable().optional(),
34797
+ emptyStateText: z59.string().nullable().optional(),
34798
+ checkoutButtonText: z59.string().nullable().optional(),
34799
+ successMessage: z59.string().nullable().optional()
34800
+ });
34801
+ var giftingDisplaySchema = z59.object({
34802
+ kind: z59.literal("gifting"),
34803
+ state: z59.literal("ready"),
34804
+ className: z59.string().nullable(),
34805
+ heading: z59.string(),
34806
+ intro: z59.string().nullable(),
34807
+ giftCardsHeading: z59.string(),
34808
+ vouchersHeading: z59.string(),
34809
+ emptyStateText: z59.string()
34810
+ });
34811
+ var giftingHydrationSchema = z59.object({
34742
34812
  offers: publicGiftingOffersResponseSchema.nullable(),
34743
- checkoutButtonText: z61.string(),
34744
- successMessage: z61.string()
34813
+ checkoutButtonText: z59.string(),
34814
+ successMessage: z59.string()
34745
34815
  });
34746
- var giftingRenderSchema = z61.object({
34816
+ var giftingRenderSchema = z59.object({
34747
34817
  display: giftingDisplaySchema,
34748
34818
  hydration: giftingHydrationSchema
34749
34819
  });
34750
- var giftingIslandMetaCodec = createZodCodec(z61.object({
34751
- siteId: z61.string().optional(),
34752
- apiBaseUrl: z61.string().optional()
34820
+ var giftingIslandMetaCodec = createZodCodec(z59.object({
34821
+ siteId: z59.string().optional(),
34822
+ apiBaseUrl: z59.string().optional()
34753
34823
  }));
34754
34824
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
34755
34825
  "siteId",
@@ -34920,7 +34990,7 @@ var giftingBlockDefinition = {
34920
34990
  };
34921
34991
 
34922
34992
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
34923
- import { z as z62 } from "zod";
34993
+ import { z as z60 } from "zod";
34924
34994
 
34925
34995
  // ../blocks/src/system/blocks/newsletter-signup-destination.ts
34926
34996
  function parseNewsletterSignupBlockId(value) {
@@ -35027,65 +35097,65 @@ function withOptionalPhone(fields3, includePhone) {
35027
35097
  }
35028
35098
 
35029
35099
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
35030
- var newsletterPresetSchema = z62.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
35031
- var newsletterDestinationProviderSchema = z62.enum(["riverbank", "mailchimp"]);
35032
- var newsletterFieldSchema = z62.object({
35033
- id: z62.string(),
35034
- type: z62.enum(["email", "text"]),
35035
- label: z62.string(),
35036
- required: z62.boolean(),
35037
- placeholder: z62.string().optional()
35038
- });
35039
- var newsletterSignupBlockIdSchema = z62.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
35040
- var signedNewsletterDestinationRefSchema = z62.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
35041
- var newsletterPublicDestinationRefSchema = z62.discriminatedUnion("tag", [
35042
- z62.object({
35043
- tag: z62.literal("block_ref"),
35100
+ var newsletterPresetSchema = z60.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
35101
+ var newsletterDestinationProviderSchema = z60.enum(["riverbank", "mailchimp"]);
35102
+ var newsletterFieldSchema = z60.object({
35103
+ id: z60.string(),
35104
+ type: z60.enum(["email", "text"]),
35105
+ label: z60.string(),
35106
+ required: z60.boolean(),
35107
+ placeholder: z60.string().optional()
35108
+ });
35109
+ var newsletterSignupBlockIdSchema = z60.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
35110
+ var signedNewsletterDestinationRefSchema = z60.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
35111
+ var newsletterPublicDestinationRefSchema = z60.discriminatedUnion("tag", [
35112
+ z60.object({
35113
+ tag: z60.literal("block_ref"),
35044
35114
  blockId: newsletterSignupBlockIdSchema
35045
35115
  }),
35046
- z62.object({
35047
- tag: z62.literal("signed_destination_ref"),
35116
+ z60.object({
35117
+ tag: z60.literal("signed_destination_ref"),
35048
35118
  token: signedNewsletterDestinationRefSchema
35049
35119
  })
35050
35120
  ]);
35051
- var newsletterSourceSchema = z62.object({
35052
- blockId: z62.string().nullable().optional(),
35053
- siteId: z62.string().optional(),
35054
- apiBaseUrl: z62.string().optional(),
35055
- listId: z62.string().nullable().optional(),
35121
+ var newsletterSourceSchema = z60.object({
35122
+ blockId: z60.string().nullable().optional(),
35123
+ siteId: z60.string().optional(),
35124
+ apiBaseUrl: z60.string().optional(),
35125
+ listId: z60.string().nullable().optional(),
35056
35126
  destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
35057
35127
  preset: newsletterPresetSchema.optional(),
35058
- includePhone: z62.boolean().optional(),
35059
- buttonLabel: z62.string().nullable().optional(),
35060
- successMessage: z62.string().nullable().optional(),
35061
- privacyNote: z62.string().nullable().optional(),
35062
- tags: z62.string().nullable().optional(),
35063
- spamProtectionEnabled: z62.boolean().optional(),
35064
- className: z62.string().nullable().optional()
35065
- });
35066
- var newsletterDisplaySchema = z62.object({
35067
- kind: z62.literal("newsletter-form"),
35068
- className: z62.string().nullable(),
35069
- buttonLabel: z62.string(),
35070
- successMessage: z62.string().nullable(),
35071
- privacyNote: z62.string().nullable(),
35072
- fields: z62.array(newsletterFieldSchema)
35073
- });
35074
- var newsletterHydrationSchema = z62.object({
35128
+ includePhone: z60.boolean().optional(),
35129
+ buttonLabel: z60.string().nullable().optional(),
35130
+ successMessage: z60.string().nullable().optional(),
35131
+ privacyNote: z60.string().nullable().optional(),
35132
+ tags: z60.string().nullable().optional(),
35133
+ spamProtectionEnabled: z60.boolean().optional(),
35134
+ className: z60.string().nullable().optional()
35135
+ });
35136
+ var newsletterDisplaySchema = z60.object({
35137
+ kind: z60.literal("newsletter-form"),
35138
+ className: z60.string().nullable(),
35139
+ buttonLabel: z60.string(),
35140
+ successMessage: z60.string().nullable(),
35141
+ privacyNote: z60.string().nullable(),
35142
+ fields: z60.array(newsletterFieldSchema)
35143
+ });
35144
+ var newsletterHydrationSchema = z60.object({
35075
35145
  destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
35076
- listId: z62.string().nullable().optional(),
35146
+ listId: z60.string().nullable().optional(),
35077
35147
  preset: newsletterPresetSchema,
35078
- includePhone: z62.boolean(),
35079
- tags: z62.string().nullable().optional(),
35080
- spamProtectionEnabled: z62.boolean().optional()
35148
+ includePhone: z60.boolean(),
35149
+ tags: z60.string().nullable().optional(),
35150
+ spamProtectionEnabled: z60.boolean().optional()
35081
35151
  });
35082
- var newsletterRenderSchema = z62.object({
35152
+ var newsletterRenderSchema = z60.object({
35083
35153
  display: newsletterDisplaySchema,
35084
35154
  hydration: newsletterHydrationSchema
35085
35155
  });
35086
- var newsletterIslandMetaCodec = createZodCodec(z62.object({
35087
- siteId: z62.string().optional(),
35088
- apiBaseUrl: z62.string().optional()
35156
+ var newsletterIslandMetaCodec = createZodCodec(z60.object({
35157
+ siteId: z60.string().optional(),
35158
+ apiBaseUrl: z60.string().optional()
35089
35159
  }));
35090
35160
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
35091
35161
  function buildNewsletterDisplay(source) {
@@ -35224,23 +35294,23 @@ var newsletterSignupBlockDefinition = {
35224
35294
  };
35225
35295
 
35226
35296
  // ../blocks/src/system/blocks/team-members.ts
35227
- import { z as z63 } from "zod";
35297
+ import { z as z61 } from "zod";
35228
35298
  var ITEM_NAME2 = "member";
35229
35299
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
35230
35300
  message: "Team member photos must be image media"
35231
35301
  }).nullable();
35232
- var teamMemberDataSchema = z63.object({
35233
- _type: z63.literal("teamMember"),
35234
- id: z63.string(),
35235
- name: z63.string(),
35236
- role: z63.string().nullable(),
35237
- roleLabel: z63.string().nullable(),
35238
- bio: z63.string().nullable(),
35239
- summary: z63.string().nullable(),
35302
+ var teamMemberDataSchema = z61.object({
35303
+ _type: z61.literal("teamMember"),
35304
+ id: z61.string(),
35305
+ name: z61.string(),
35306
+ role: z61.string().nullable(),
35307
+ roleLabel: z61.string().nullable(),
35308
+ bio: z61.string().nullable(),
35309
+ summary: z61.string().nullable(),
35240
35310
  photo: teamMemberPhotoSchema,
35241
- profilePath: z63.string().nullable()
35311
+ profilePath: z61.string().nullable()
35242
35312
  });
35243
- var teamMembersDataSchema = z63.array(teamMemberDataSchema);
35313
+ var teamMembersDataSchema = z61.array(teamMemberDataSchema);
35244
35314
  var dynamicSourceWhen = { equals: "site_staff" };
35245
35315
  var manualSourceWhen = { equals: "site_staff", not: true };
35246
35316
  var headingNode = text(
@@ -36132,13 +36202,6 @@ var systemBlockDefinitionsRaw = [
36132
36202
  weight: "featured",
36133
36203
  bias: "clear",
36134
36204
  surfaces: heroSectionSurfaces
36135
- }),
36136
- layoutProfile({
36137
- variantKey: "splitEditorial",
36138
- family: "split",
36139
- weight: "featured",
36140
- bias: "clear",
36141
- surfaces: heroSectionSurfaces
36142
36205
  })
36143
36206
  ]
36144
36207
  })),
@@ -36382,9 +36445,8 @@ var systemBlockDefinitionsRaw = [
36382
36445
  flow: offeringsFlow,
36383
36446
  layoutProfiles: [
36384
36447
  layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),
36448
+ layoutProfile({ variantKey: "calendar", family: "stack", weight: "standard" }),
36385
36449
  layoutProfile({ variantKey: "list", family: "stack", weight: "standard" }),
36386
- layoutProfile({ variantKey: "month", family: "grid", weight: "standard" }),
36387
- layoutProfile({ variantKey: "week", family: "stack", weight: "standard" }),
36388
36450
  layoutProfile({ variantKey: "timetable", family: "stack", weight: "standard" })
36389
36451
  ]
36390
36452
  })),
@@ -36947,10 +37009,7 @@ function normalizeRenderStage(stage) {
36947
37009
  return stage === "preview" ? "preview" : "published";
36948
37010
  }
36949
37011
  function isRouteVisibleInStage(routeEntry, stageInput) {
36950
- const stage = normalizeRenderStage(stageInput);
36951
- if (stage === "preview" || !isRouteRecord(routeEntry)) {
36952
- return true;
36953
- }
37012
+ if (normalizeRenderStage(stageInput) === "preview" || !isRouteRecord(routeEntry)) return true;
36954
37013
  const status = routeEntry.status;
36955
37014
  return !(typeof status === "string" && status !== "published");
36956
37015
  }
@@ -36959,52 +37018,45 @@ function extractRouteHref(candidate, stageInput = "published") {
36959
37018
  const trimmed = candidate.trim();
36960
37019
  return trimmed.length > 0 ? trimmed : null;
36961
37020
  }
36962
- if (!isRouteRecord(candidate)) {
36963
- return null;
36964
- }
36965
- const stage = normalizeRenderStage(stageInput);
36966
- const fields3 = stage === "preview" ? ["draftPath", "path", "href", "url"] : ["path", "href", "url"];
37021
+ if (!isRouteRecord(candidate)) return null;
37022
+ const fields3 = normalizeRenderStage(stageInput) === "preview" ? [
37023
+ "draftPath",
37024
+ "path",
37025
+ "href",
37026
+ "url"
37027
+ ] : [
37028
+ "path",
37029
+ "href",
37030
+ "url"
37031
+ ];
36967
37032
  for (const field of fields3) {
36968
37033
  const value = candidate[field];
36969
- if (typeof value === "string" && value.trim().length > 0) {
36970
- return value.trim();
36971
- }
37034
+ if (typeof value === "string" && value.trim().length > 0) return value.trim();
36972
37035
  }
36973
37036
  return null;
36974
37037
  }
36975
37038
  function extractRouteUpdatedAt(candidate) {
36976
- if (!isRouteRecord(candidate)) {
36977
- return null;
36978
- }
36979
- const fields3 = [
37039
+ if (!isRouteRecord(candidate)) return null;
37040
+ for (const field of [
36980
37041
  "updatedAt",
36981
37042
  "updated_at",
36982
37043
  "publishedAt",
36983
37044
  "published_at",
36984
37045
  "modifiedAt",
36985
37046
  "modified_at"
36986
- ];
36987
- for (const field of fields3) {
37047
+ ]) {
36988
37048
  const value = candidate[field];
36989
- if (typeof value === "string" && value.length > 0) {
36990
- return value;
36991
- }
37049
+ if (typeof value === "string" && value.length > 0) return value;
36992
37050
  }
36993
37051
  return null;
36994
37052
  }
36995
37053
  function resolveRouteTargetForStage(routeIdValue, routes, stageInput) {
36996
37054
  const routeId = typeof routeIdValue === "string" ? routeIdValue : null;
36997
- if (!routeId || !routes) {
36998
- return null;
36999
- }
37055
+ if (!routeId || !routes) return null;
37000
37056
  const routeEntry = routes[routeId];
37001
- if (!isRouteVisibleInStage(routeEntry, stageInput)) {
37002
- return null;
37003
- }
37057
+ if (!isRouteVisibleInStage(routeEntry, stageInput)) return null;
37004
37058
  const href = extractRouteHref(routeEntry, stageInput);
37005
- if (!href) {
37006
- return null;
37007
- }
37059
+ if (!href) return null;
37008
37060
  return {
37009
37061
  routeId,
37010
37062
  href,
@@ -37934,42 +37986,45 @@ import { jsx as jsx5 } from "react/jsx-runtime";
37934
37986
  import * as React from "react";
37935
37987
  import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
37936
37988
 
37989
+ // ../theme-core/src/ResponsiveScope.tsx
37990
+ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
37991
+
37937
37992
  // ../theme-core/src/fonts/uploadFormat.ts
37938
37993
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
37939
37994
 
37940
37995
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
37941
- import { z as z64 } from "zod";
37942
- var themeBridgeConfigSchema = z64.object({
37943
- tokens: z64.record(z64.string(), z64.string()),
37944
- typography: z64.object({
37945
- headingFamily: z64.string().optional(),
37946
- bodyFamily: z64.string().optional(),
37947
- headingWeight: z64.number().optional(),
37948
- bodyWeight: z64.number().optional()
37996
+ import { z as z62 } from "zod";
37997
+ var themeBridgeConfigSchema = z62.object({
37998
+ tokens: z62.record(z62.string(), z62.string()),
37999
+ typography: z62.object({
38000
+ headingFamily: z62.string().optional(),
38001
+ bodyFamily: z62.string().optional(),
38002
+ headingWeight: z62.number().optional(),
38003
+ bodyWeight: z62.number().optional()
37949
38004
  }).optional(),
37950
- spacing: z64.enum(["comfortable", "standard", "dense"]).optional(),
37951
- corners: z64.enum(["square", "soft", "rounded", "pill"]).optional(),
37952
- shadows: z64.enum(["none", "low", "medium", "high"]).optional(),
37953
- components: z64.object({
37954
- buttons: z64.union([
37955
- z64.boolean(),
37956
- z64.object({
37957
- variants: z64.array(z64.enum(["primary", "secondary", "outline", "ghost"])).optional()
38005
+ spacing: z62.enum(["comfortable", "standard", "dense"]).optional(),
38006
+ corners: z62.enum(["square", "soft", "rounded", "pill"]).optional(),
38007
+ shadows: z62.enum(["none", "low", "medium", "high"]).optional(),
38008
+ components: z62.object({
38009
+ buttons: z62.union([
38010
+ z62.boolean(),
38011
+ z62.object({
38012
+ variants: z62.array(z62.enum(["primary", "secondary", "outline", "ghost"])).optional()
37958
38013
  })
37959
38014
  ]).optional(),
37960
- cards: z64.union([
37961
- z64.boolean(),
37962
- z64.object({
37963
- variants: z64.array(z64.enum(["default", "elevated", "outlined"])).optional()
38015
+ cards: z62.union([
38016
+ z62.boolean(),
38017
+ z62.object({
38018
+ variants: z62.array(z62.enum(["default", "elevated", "outlined"])).optional()
37964
38019
  })
37965
38020
  ]).optional(),
37966
- inputs: z64.boolean().optional()
38021
+ inputs: z62.boolean().optional()
37967
38022
  }).optional(),
37968
- overrides: z64.record(z64.string(), z64.string()).optional()
38023
+ overrides: z62.record(z62.string(), z62.string()).optional()
37969
38024
  }).passthrough();
37970
38025
 
37971
38026
  // ../theme-core/src/siteChrome.tsx
37972
- import { Fragment as Fragment2, jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
38027
+ import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
37973
38028
 
37974
38029
  // ../blocks/src/system/data/loaderEndpoints.ts
37975
38030
  var SUPPORTED_LOADER_ENDPOINTS = [
@@ -37991,17 +38046,17 @@ var SUPPORTED_LOADER_ENDPOINTS = [
37991
38046
  function unsafeRetypeZodSchema(schema) {
37992
38047
  return schema;
37993
38048
  }
37994
- var navIdListSchema = z65.preprocess((value) => {
38049
+ var navIdListSchema = z63.preprocess((value) => {
37995
38050
  if (!Array.isArray(value)) return void 0;
37996
38051
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
37997
38052
  return filtered.length > 0 ? filtered : void 0;
37998
- }, z65.array(z65.string()).max(200).optional());
37999
- var dashboardNavVisibilityBaseSchema = z65.object({
38000
- mode: z65.enum(["augment", "restrict"]).optional(),
38053
+ }, z63.array(z63.string()).max(200).optional());
38054
+ var dashboardNavVisibilityBaseSchema = z63.object({
38055
+ mode: z63.enum(["augment", "restrict"]).optional(),
38001
38056
  allowIds: navIdListSchema,
38002
38057
  denyIds: navIdListSchema
38003
38058
  }).strip();
38004
- var dashboardNavVisibilityRolesSchema = z65.object({
38059
+ var dashboardNavVisibilityRolesSchema = z63.object({
38005
38060
  administrator: dashboardNavVisibilityBaseSchema.optional(),
38006
38061
  editor: dashboardNavVisibilityBaseSchema.optional(),
38007
38062
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -38009,63 +38064,63 @@ var dashboardNavVisibilityRolesSchema = z65.object({
38009
38064
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
38010
38065
  roles: dashboardNavVisibilityRolesSchema
38011
38066
  }).strip();
38012
- var dashboardNavigationConfigSchema = z65.object({
38067
+ var dashboardNavigationConfigSchema = z63.object({
38013
38068
  siteNav: dashboardNavVisibilitySchema.optional(),
38014
38069
  settingsNav: dashboardNavVisibilitySchema.optional()
38015
38070
  }).strip();
38016
- var dashboardConfigSchema = z65.object({
38017
- previewEditingEnabled: z65.boolean().optional(),
38071
+ var dashboardConfigSchema = z63.object({
38072
+ previewEditingEnabled: z63.boolean().optional(),
38018
38073
  navigation: dashboardNavigationConfigSchema.optional()
38019
38074
  }).strip();
38020
38075
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
38021
38076
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
38022
- var sdkLoaderEndpointSchema = z65.enum(SUPPORTED_LOADER_ENDPOINTS);
38023
- var loaderFallbackScalarSchema = z65.union([
38024
- z65.string(),
38025
- z65.number(),
38026
- z65.boolean(),
38027
- z65.null()
38077
+ var sdkLoaderEndpointSchema = z63.enum(SUPPORTED_LOADER_ENDPOINTS);
38078
+ var loaderFallbackScalarSchema = z63.union([
38079
+ z63.string(),
38080
+ z63.number(),
38081
+ z63.boolean(),
38082
+ z63.null()
38028
38083
  ]);
38029
- var loaderParamBindingSchema = z65.object({
38030
- $bind: z65.object({
38031
- from: z65.string().min(1, "Binding path is required"),
38084
+ var loaderParamBindingSchema = z63.object({
38085
+ $bind: z63.object({
38086
+ from: z63.string().min(1, "Binding path is required"),
38032
38087
  fallback: loaderFallbackScalarSchema.optional()
38033
38088
  })
38034
38089
  });
38035
- var loaderParamValueSchema = z65.union([
38036
- z65.string(),
38037
- z65.number(),
38038
- z65.boolean(),
38090
+ var loaderParamValueSchema = z63.union([
38091
+ z63.string(),
38092
+ z63.number(),
38093
+ z63.boolean(),
38039
38094
  loaderParamBindingSchema
38040
38095
  ]);
38041
- var sdkConfigLoaderSchema = z65.object({
38096
+ var sdkConfigLoaderSchema = z63.object({
38042
38097
  endpoint: sdkLoaderEndpointSchema,
38043
- params: z65.record(z65.string(), loaderParamValueSchema),
38044
- mode: z65.enum(["server", "client"]).default("server")
38098
+ params: z63.record(z63.string(), loaderParamValueSchema),
38099
+ mode: z63.enum(["server", "client"]).default("server")
38045
38100
  });
38046
- var sdkDataLoadersSchema = z65.record(z65.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38047
- var sdkCustomBlockIdSchema = z65.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38101
+ var sdkDataLoadersSchema = z63.record(z63.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38102
+ var sdkCustomBlockIdSchema = z63.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38048
38103
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
38049
38104
  }).transform((value) => value);
38050
- var sdkCustomBlockInputSchema = z65.object({
38105
+ var sdkCustomBlockInputSchema = z63.object({
38051
38106
  id: sdkCustomBlockIdSchema,
38052
- title: z65.string().min(1),
38053
- titleSource: z65.union([z65.string().min(1), z65.array(z65.string().min(1)).min(1)]).optional(),
38054
- description: z65.string().optional(),
38107
+ title: z63.string().min(1),
38108
+ titleSource: z63.union([z63.string().min(1), z63.array(z63.string().min(1)).min(1)]).optional(),
38109
+ description: z63.string().optional(),
38055
38110
  category: blockCategoryEnum,
38056
- icon: z65.string().optional(),
38057
- tags: z65.array(z65.string()).optional(),
38111
+ icon: z63.string().optional(),
38112
+ tags: z63.array(z63.string()).optional(),
38058
38113
  fields: fieldDefinitionInputSchema.array().min(1),
38059
38114
  dataLoaders: sdkDataLoadersSchema,
38060
38115
  layout: NodeSchema.optional(),
38061
- variants: z65.record(z65.string().min(1), NodeSchema).optional(),
38062
- defaultVariant: z65.string().min(1).optional(),
38063
- variantOptions: z65.record(
38064
- z65.string().min(1),
38065
- z65.object({
38066
- label: z65.string().min(1).optional(),
38067
- description: z65.string().min(1).optional(),
38068
- icon: z65.string().min(1).optional()
38116
+ variants: z63.record(z63.string().min(1), NodeSchema).optional(),
38117
+ defaultVariant: z63.string().min(1).optional(),
38118
+ variantOptions: z63.record(
38119
+ z63.string().min(1),
38120
+ z63.object({
38121
+ label: z63.string().min(1).optional(),
38122
+ description: z63.string().min(1).optional(),
38123
+ icon: z63.string().min(1).optional()
38069
38124
  })
38070
38125
  ).optional(),
38071
38126
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -38076,7 +38131,7 @@ var sdkCustomBlockInputSchema = z65.object({
38076
38131
  const exists = data.fields.some((field) => field.id === source);
38077
38132
  if (!exists) {
38078
38133
  ctx.addIssue({
38079
- code: z65.ZodIssueCode.custom,
38134
+ code: z63.ZodIssueCode.custom,
38080
38135
  message: `titleSource must reference a valid field ID (got "${source}")`,
38081
38136
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
38082
38137
  });
@@ -38085,7 +38140,7 @@ var sdkCustomBlockInputSchema = z65.object({
38085
38140
  }
38086
38141
  if (data.layout && data.variants) {
38087
38142
  ctx.addIssue({
38088
- code: z65.ZodIssueCode.custom,
38143
+ code: z63.ZodIssueCode.custom,
38089
38144
  message: "Custom block must define either `layout` or `variants`, not both",
38090
38145
  path: ["variants"]
38091
38146
  });
@@ -38094,14 +38149,14 @@ var sdkCustomBlockInputSchema = z65.object({
38094
38149
  const keys = Object.keys(data.variants);
38095
38150
  if (keys.length === 0) {
38096
38151
  ctx.addIssue({
38097
- code: z65.ZodIssueCode.custom,
38152
+ code: z63.ZodIssueCode.custom,
38098
38153
  message: "`variants` must contain at least one variant key",
38099
38154
  path: ["variants"]
38100
38155
  });
38101
38156
  }
38102
38157
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
38103
38158
  ctx.addIssue({
38104
- code: z65.ZodIssueCode.custom,
38159
+ code: z63.ZodIssueCode.custom,
38105
38160
  message: "`defaultVariant` must be a key present in `variants`",
38106
38161
  path: ["defaultVariant"]
38107
38162
  });
@@ -38110,7 +38165,7 @@ var sdkCustomBlockInputSchema = z65.object({
38110
38165
  for (const key of Object.keys(data.variantOptions)) {
38111
38166
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
38112
38167
  ctx.addIssue({
38113
- code: z65.ZodIssueCode.custom,
38168
+ code: z63.ZodIssueCode.custom,
38114
38169
  message: "`variantOptions` key must exist in `variants`",
38115
38170
  path: ["variantOptions", key]
38116
38171
  });
@@ -38119,78 +38174,78 @@ var sdkCustomBlockInputSchema = z65.object({
38119
38174
  }
38120
38175
  }
38121
38176
  });
38122
- var sdkBlockFieldExtensionInputSchema = z65.object({
38177
+ var sdkBlockFieldExtensionInputSchema = z63.object({
38123
38178
  fields: fieldDefinitionInputSchema.array().min(1)
38124
38179
  });
38125
- var sdkBlockFieldExtensionsInputSchema = z65.record(
38126
- z65.string().min(1),
38180
+ var sdkBlockFieldExtensionsInputSchema = z63.record(
38181
+ z63.string().min(1),
38127
38182
  sdkBlockFieldExtensionInputSchema
38128
38183
  );
38129
- var sdkThemePaletteSchema = z65.record(z65.string(), z65.string());
38130
- var sdkThemeConfigSchema = z65.object({
38184
+ var sdkThemePaletteSchema = z63.record(z63.string(), z63.string());
38185
+ var sdkThemeConfigSchema = z63.object({
38131
38186
  palette: sdkThemePaletteSchema
38132
38187
  });
38133
- var sdkSectionBackgroundSchema = z65.object({
38134
- id: z65.string().min(1),
38135
- label: z65.string().min(1),
38136
- token: z65.string().min(1)
38188
+ var sdkSectionBackgroundSchema = z63.object({
38189
+ id: z63.string().min(1),
38190
+ label: z63.string().min(1),
38191
+ token: z63.string().min(1)
38137
38192
  });
38138
- var sdkSectionOptionsConfigSchema = z65.object({
38139
- backgroundColor: z65.boolean().optional(),
38140
- backgroundImage: z65.boolean().optional(),
38141
- backgroundGradient: z65.boolean().optional(),
38142
- spacing: z65.union([z65.array(z65.enum(["compact", "default", "spacious"])), z65.boolean()]).optional(),
38143
- textColor: z65.boolean().optional()
38193
+ var sdkSectionOptionsConfigSchema = z63.object({
38194
+ backgroundColor: z63.boolean().optional(),
38195
+ backgroundImage: z63.boolean().optional(),
38196
+ backgroundGradient: z63.boolean().optional(),
38197
+ spacing: z63.union([z63.array(z63.enum(["compact", "default", "spacious"])), z63.boolean()]).optional(),
38198
+ textColor: z63.boolean().optional()
38144
38199
  });
38145
- var sdkContainerOptionsConfigSchema = z65.object({
38146
- maxWidth: z65.union([z65.array(z65.enum(["narrow", "default", "wide", "full"])), z65.boolean()]).optional(),
38147
- alignment: z65.union([z65.array(z65.enum(["left", "center", "right"])), z65.boolean()]).optional()
38200
+ var sdkContainerOptionsConfigSchema = z63.object({
38201
+ maxWidth: z63.union([z63.array(z63.enum(["narrow", "default", "wide", "full"])), z63.boolean()]).optional(),
38202
+ alignment: z63.union([z63.array(z63.enum(["left", "center", "right"])), z63.boolean()]).optional()
38148
38203
  });
38149
- var sdkSiteStyleConfigSchema = z65.object({
38150
- sectionBackgrounds: z65.array(sdkSectionBackgroundSchema).optional(),
38204
+ var sdkSiteStyleConfigSchema = z63.object({
38205
+ sectionBackgrounds: z63.array(sdkSectionBackgroundSchema).optional(),
38151
38206
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
38152
38207
  containerOptions: sdkContainerOptionsConfigSchema.optional()
38153
38208
  });
38154
- var sdkSiteLayoutConfigSchema = z65.object({
38155
- footerBlocks: z65.array(
38156
- z65.object({
38157
- id: z65.string().min(1).optional(),
38158
- kind: z65.string().min(1),
38159
- content: z65.record(z65.string(), z65.unknown()).optional()
38209
+ var sdkSiteLayoutConfigSchema = z63.object({
38210
+ footerBlocks: z63.array(
38211
+ z63.object({
38212
+ id: z63.string().min(1).optional(),
38213
+ kind: z63.string().min(1),
38214
+ content: z63.record(z63.string(), z63.unknown()).optional()
38160
38215
  })
38161
38216
  ).optional()
38162
38217
  });
38163
- var sdkFieldSelectOptionSchema = z65.object({
38164
- value: z65.string(),
38165
- label: z65.string()
38218
+ var sdkFieldSelectOptionSchema = z63.object({
38219
+ value: z63.string(),
38220
+ label: z63.string()
38166
38221
  });
38167
- var sdkBlockFieldConfigSchema = z65.object({
38168
- options: z65.array(sdkFieldSelectOptionSchema).optional()
38222
+ var sdkBlockFieldConfigSchema = z63.object({
38223
+ options: z63.array(sdkFieldSelectOptionSchema).optional()
38169
38224
  });
38170
- var sdkBlockFieldOptionsMapSchema = z65.record(
38171
- z65.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38225
+ var sdkBlockFieldOptionsMapSchema = z63.record(
38226
+ z63.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38172
38227
  message: "Block ID must be 'block.*' or 'custom.*' format"
38173
38228
  }),
38174
- z65.record(z65.string().min(1), sdkBlockFieldConfigSchema)
38229
+ z63.record(z63.string().min(1), sdkBlockFieldConfigSchema)
38175
38230
  ).optional();
38176
- var sdkContentTypeTemplateConfigSchema = z65.object({
38177
- blocks: z65.array(z65.unknown())
38231
+ var sdkContentTypeTemplateConfigSchema = z63.object({
38232
+ blocks: z63.array(z63.unknown())
38178
38233
  }).passthrough();
38179
- var sdkContentTypeOrderingConfigSchema = z65.object({
38180
- mode: z65.enum(["default", "manual"]).optional()
38234
+ var sdkContentTypeOrderingConfigSchema = z63.object({
38235
+ mode: z63.enum(["default", "manual"]).optional()
38181
38236
  }).optional();
38182
- var sdkContentTypeConfigSchema = z65.object({
38183
- key: z65.string().min(1),
38184
- fields: z65.array(z65.unknown()),
38237
+ var sdkContentTypeConfigSchema = z63.object({
38238
+ key: z63.string().min(1),
38239
+ fields: z63.array(z63.unknown()),
38185
38240
  ordering: sdkContentTypeOrderingConfigSchema,
38186
38241
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
38187
38242
  }).passthrough();
38188
- var sdkContentConfigSchema = z65.object({
38189
- contentTypes: z65.array(sdkContentTypeConfigSchema).optional(),
38190
- pages: z65.array(z65.unknown()).optional(),
38191
- entries: z65.array(z65.unknown()).optional(),
38192
- navigationMenus: z65.array(z65.unknown()).optional(),
38193
- settings: z65.unknown().optional()
38243
+ var sdkContentConfigSchema = z63.object({
38244
+ contentTypes: z63.array(sdkContentTypeConfigSchema).optional(),
38245
+ pages: z63.array(z63.unknown()).optional(),
38246
+ entries: z63.array(z63.unknown()).optional(),
38247
+ navigationMenus: z63.array(z63.unknown()).optional(),
38248
+ settings: z63.unknown().optional()
38194
38249
  }).passthrough();
38195
38250
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
38196
38251
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -38205,62 +38260,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
38205
38260
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
38206
38261
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
38207
38262
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
38208
- var sdkWorkflowIdSchema = z65.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38263
+ var sdkWorkflowIdSchema = z63.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38209
38264
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
38210
38265
  });
38211
- 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 "/"' });
38212
- var sdkWorkflowManualTriggerSchema = z65.object({
38213
- type: z65.literal("manual")
38266
+ 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 "/"' });
38267
+ var sdkWorkflowManualTriggerSchema = z63.object({
38268
+ type: z63.literal("manual")
38214
38269
  }).strict();
38215
- var sdkWorkflowTriggerFieldSchema = z65.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38270
+ var sdkWorkflowTriggerFieldSchema = z63.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38216
38271
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
38217
38272
  });
38218
- var sdkWorkflowFieldChangedConditionSchema = z65.object({
38273
+ var sdkWorkflowFieldChangedConditionSchema = z63.object({
38219
38274
  field: sdkWorkflowTriggerFieldSchema,
38220
- changed: z65.literal(true)
38275
+ changed: z63.literal(true)
38221
38276
  }).strict();
38222
- var sdkWorkflowFieldEmptyConditionSchema = z65.object({
38277
+ var sdkWorkflowFieldEmptyConditionSchema = z63.object({
38223
38278
  field: sdkWorkflowTriggerFieldSchema,
38224
- isEmpty: z65.boolean()
38279
+ isEmpty: z63.boolean()
38225
38280
  }).strict();
38226
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z65.object({
38227
- type: z65.literal("entry.draft.updated"),
38228
- when: z65.array(
38229
- z65.union([
38281
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z63.object({
38282
+ type: z63.literal("entry.draft.updated"),
38283
+ when: z63.array(
38284
+ z63.union([
38230
38285
  sdkWorkflowFieldChangedConditionSchema,
38231
38286
  sdkWorkflowFieldEmptyConditionSchema
38232
38287
  ])
38233
38288
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
38234
38289
  }).strict();
38235
- var sdkWorkflowTriggerSchema = z65.discriminatedUnion("type", [
38290
+ var sdkWorkflowTriggerSchema = z63.discriminatedUnion("type", [
38236
38291
  sdkWorkflowManualTriggerSchema,
38237
38292
  sdkWorkflowEntryDraftUpdatedTriggerSchema
38238
38293
  ]);
38239
- var sdkWorkflowConfirmationSchema = z65.object({
38240
- title: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38241
- body: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38294
+ var sdkWorkflowConfirmationSchema = z63.object({
38295
+ title: z63.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38296
+ body: z63.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38242
38297
  }).strict();
38243
- var sdkWorkflowConfigSchema = z65.object({
38298
+ var sdkWorkflowConfigSchema = z63.object({
38244
38299
  id: sdkWorkflowIdSchema,
38245
- title: z65.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38246
- description: z65.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38247
- contentType: z65.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38300
+ title: z63.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38301
+ description: z63.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38302
+ contentType: z63.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38248
38303
  endpoint: sdkWorkflowEndpointSchema,
38249
- triggers: z65.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38304
+ triggers: z63.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38250
38305
  confirmation: sdkWorkflowConfirmationSchema.optional()
38251
38306
  }).strict();
38252
- var sdkWorkflowsSchema = z65.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38307
+ var sdkWorkflowsSchema = z63.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38253
38308
  const ids = workflows.map((workflow) => workflow.id);
38254
38309
  return ids.length === new Set(ids).size;
38255
38310
  }, { message: "Workflow IDs must be unique" }).optional();
38256
- var riverbankSiteConfigInputSchema = z65.object({
38257
- siteId: z65.string().uuid(),
38258
- previewUrl: z65.string().url().optional(),
38259
- liveUrl: z65.string().url().optional(),
38311
+ var riverbankSiteConfigInputSchema = z63.object({
38312
+ siteId: z63.string().uuid(),
38313
+ previewUrl: z63.string().url().optional(),
38314
+ liveUrl: z63.string().url().optional(),
38260
38315
  theme: sdkThemeConfigSchema.optional(),
38261
38316
  styles: sdkSiteStyleConfigSchema.optional(),
38262
38317
  layout: sdkSiteLayoutConfigSchema.optional(),
38263
- customBlocks: z65.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38318
+ customBlocks: z63.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38264
38319
  const ids = blocks.map((b) => b.id);
38265
38320
  return ids.length === new Set(ids).size;
38266
38321
  }, { message: "Block IDs must be unique" }).optional(),
@@ -38268,50 +38323,50 @@ var riverbankSiteConfigInputSchema = z65.object({
38268
38323
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
38269
38324
  workflows: sdkWorkflowsSchema,
38270
38325
  content: sdkContentConfigSchema.optional(),
38271
- contentDir: z65.string().optional(),
38272
- sync: z65.object({
38273
- existingEntries: z65.enum(["skip", "update"]).optional()
38326
+ contentDir: z63.string().optional(),
38327
+ sync: z63.object({
38328
+ existingEntries: z63.enum(["skip", "update"]).optional()
38274
38329
  }).optional(),
38275
- deploy: z65.object({
38276
- verifyCommand: z65.string().optional(),
38277
- prebuildOutput: z65.string().optional()
38330
+ deploy: z63.object({
38331
+ verifyCommand: z63.string().optional(),
38332
+ prebuildOutput: z63.string().optional()
38278
38333
  }).optional(),
38279
- themeSource: z65.enum(["local", "cms"]).optional(),
38280
- activeTheme: z65.string().optional(),
38281
- enablePortal: z65.boolean().optional(),
38334
+ themeSource: z63.enum(["local", "cms"]).optional(),
38335
+ activeTheme: z63.string().optional(),
38336
+ enablePortal: z63.boolean().optional(),
38282
38337
  dashboard: dashboardConfigSchema.optional()
38283
38338
  }).strict();
38284
- var pushSdkConfigBodySchema = z65.object({
38339
+ var pushSdkConfigBodySchema = z63.object({
38285
38340
  config: riverbankSiteConfigInputSchema,
38286
- forceContentTypes: z65.boolean().optional()
38341
+ forceContentTypes: z63.boolean().optional()
38287
38342
  }).strict();
38288
38343
 
38289
38344
  // ../api/src/siteOnboarding.ts
38290
- import { z as z66 } from "zod";
38345
+ import { z as z64 } from "zod";
38291
38346
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
38292
38347
  configure_appointments: {
38293
38348
  requirementId: "configure_appointments",
38294
38349
  reason: "launch_anyway"
38295
38350
  }
38296
38351
  };
38297
- var acknowledgeLaunchRequirementRequestSchema = z66.discriminatedUnion(
38352
+ var acknowledgeLaunchRequirementRequestSchema = z64.discriminatedUnion(
38298
38353
  "requirementId",
38299
38354
  [
38300
- z66.object({
38301
- requirementId: z66.literal("review_generated_site")
38355
+ z64.object({
38356
+ requirementId: z64.literal("review_generated_site")
38302
38357
  }),
38303
- z66.object({
38304
- requirementId: z66.literal(
38358
+ z64.object({
38359
+ requirementId: z64.literal(
38305
38360
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
38306
38361
  ),
38307
- overrideReason: z66.literal(
38362
+ overrideReason: z64.literal(
38308
38363
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
38309
38364
  )
38310
38365
  })
38311
38366
  ]
38312
38367
  );
38313
- var goLiveSiteRequestSchema = z66.object({
38314
- acceptExtraSiteCharge: z66.boolean().optional()
38368
+ var goLiveSiteRequestSchema = z64.object({
38369
+ acceptExtraSiteCharge: z64.boolean().optional()
38315
38370
  });
38316
38371
 
38317
38372
  // ../surfaces/src/index.ts
@@ -38395,7 +38450,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
38395
38450
  ];
38396
38451
 
38397
38452
  // ../api/src/bookingVerticals.ts
38398
- import { z as z67 } from "zod";
38453
+ import { z as z65 } from "zod";
38399
38454
  var VERTICAL_IDS = [
38400
38455
  "yoga_wellness",
38401
38456
  "fitness_pt",
@@ -38560,39 +38615,39 @@ function getSiteVerticalConfigIssues(rawConfig, config) {
38560
38615
  }
38561
38616
  return [...issues];
38562
38617
  }
38563
- var VerticalIdSchema = z67.string().trim().transform((value, ctx) => {
38618
+ var VerticalIdSchema = z65.string().trim().transform((value, ctx) => {
38564
38619
  const parsed = parseVerticalId(value);
38565
38620
  if (!parsed) {
38566
38621
  ctx.addIssue({
38567
- code: z67.ZodIssueCode.custom,
38622
+ code: z65.ZodIssueCode.custom,
38568
38623
  message: "Unknown booking vertical"
38569
38624
  });
38570
- return z67.NEVER;
38625
+ return z65.NEVER;
38571
38626
  }
38572
38627
  return parsed;
38573
38628
  });
38574
- var VerticalPresetIdSchema = z67.string().trim().transform((value, ctx) => {
38629
+ var VerticalPresetIdSchema = z65.string().trim().transform((value, ctx) => {
38575
38630
  const parsed = parseVerticalPresetId(value);
38576
38631
  if (!parsed) {
38577
38632
  ctx.addIssue({
38578
- code: z67.ZodIssueCode.custom,
38633
+ code: z65.ZodIssueCode.custom,
38579
38634
  message: "Unknown booking preset"
38580
38635
  });
38581
- return z67.NEVER;
38636
+ return z65.NEVER;
38582
38637
  }
38583
38638
  return parsed;
38584
38639
  });
38585
- var BookingVerticalConfigSchema = z67.object({
38640
+ var BookingVerticalConfigSchema = z65.object({
38586
38641
  verticalId: VerticalIdSchema.nullable(),
38587
- selectedPresetIds: z67.array(VerticalPresetIdSchema).max(20)
38642
+ selectedPresetIds: z65.array(VerticalPresetIdSchema).max(20)
38588
38643
  }).transform((value, ctx) => {
38589
38644
  const resolved = resolveSiteVerticalBookingConfig(value);
38590
38645
  if (resolved.kind === "invalid") {
38591
38646
  ctx.addIssue({
38592
- code: z67.ZodIssueCode.custom,
38647
+ code: z65.ZodIssueCode.custom,
38593
38648
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
38594
38649
  });
38595
- return z67.NEVER;
38650
+ return z65.NEVER;
38596
38651
  }
38597
38652
  return resolved.config;
38598
38653
  });
@@ -38619,51 +38674,51 @@ function isRecord7(value) {
38619
38674
  }
38620
38675
 
38621
38676
  // ../api/src/appointmentSetup.ts
38622
- import { z as z68 } from "zod";
38677
+ import { z as z66 } from "zod";
38623
38678
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
38624
- var appointmentSetupRefSchema = z68.discriminatedUnion("kind", [
38625
- z68.object({ kind: z68.literal("existing"), id: z68.string().min(1) }),
38626
- z68.object({ kind: z68.literal("new"), draftId: z68.string().min(1) })
38679
+ var appointmentSetupRefSchema = z66.discriminatedUnion("kind", [
38680
+ z66.object({ kind: z66.literal("existing"), id: z66.string().min(1) }),
38681
+ z66.object({ kind: z66.literal("new"), draftId: z66.string().min(1) })
38627
38682
  ]);
38628
- var appointmentSetupVenueChoiceSchema = z68.discriminatedUnion("kind", [
38629
- z68.object({ kind: z68.literal("none") }),
38630
- z68.object({ kind: z68.literal("existing"), venueId: z68.string().min(1) }),
38631
- z68.object({
38632
- kind: z68.literal("create"),
38633
- draftId: z68.string().min(1),
38634
- title: z68.string().trim().min(1),
38635
- description: z68.string().nullable(),
38636
- timezone: z68.string().trim().min(1).nullable(),
38637
- addressJson: z68.record(z68.string(), z68.unknown()),
38638
- locationJson: z68.object({ lat: z68.number(), lng: z68.number() }).nullable()
38683
+ var appointmentSetupVenueChoiceSchema = z66.discriminatedUnion("kind", [
38684
+ z66.object({ kind: z66.literal("none") }),
38685
+ z66.object({ kind: z66.literal("existing"), venueId: z66.string().min(1) }),
38686
+ z66.object({
38687
+ kind: z66.literal("create"),
38688
+ draftId: z66.string().min(1),
38689
+ title: z66.string().trim().min(1),
38690
+ description: z66.string().nullable(),
38691
+ timezone: z66.string().trim().min(1).nullable(),
38692
+ addressJson: z66.record(z66.string(), z66.unknown()),
38693
+ locationJson: z66.object({ lat: z66.number(), lng: z66.number() }).nullable()
38639
38694
  })
38640
38695
  ]);
38641
- var appointmentSetupPaymentDraftSchema = z68.object({
38642
- priceType: z68.union([z68.literal("free"), z68.literal("paid")])
38643
- });
38644
- var appointmentSetupServiceAssignmentDraftSchema = z68.discriminatedUnion("kind", [
38645
- z68.object({ kind: z68.literal("all_practitioners") }),
38646
- z68.object({
38647
- kind: z68.literal("selected_practitioners"),
38648
- resourceRefs: z68.array(appointmentSetupRefSchema)
38696
+ var appointmentSetupPaymentDraftSchema = z66.object({
38697
+ priceType: z66.union([z66.literal("free"), z66.literal("paid")])
38698
+ });
38699
+ var appointmentSetupServiceAssignmentDraftSchema = z66.discriminatedUnion("kind", [
38700
+ z66.object({ kind: z66.literal("all_practitioners") }),
38701
+ z66.object({
38702
+ kind: z66.literal("selected_practitioners"),
38703
+ resourceRefs: z66.array(appointmentSetupRefSchema)
38649
38704
  })
38650
38705
  ]);
38651
- var appointmentSetupServiceDraftSchema = z68.object({
38706
+ var appointmentSetupServiceDraftSchema = z66.object({
38652
38707
  ref: appointmentSetupRefSchema,
38653
- title: z68.string().trim().min(1),
38654
- description: z68.string().nullable(),
38655
- durationMinutes: z68.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38656
- prepMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38657
- cleanupMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38658
- priceAmount: z68.number().int().nonnegative().nullable(),
38659
- isActive: z68.boolean(),
38660
- locationType: z68.union([
38661
- z68.literal("virtual"),
38662
- z68.literal("in_person"),
38663
- z68.literal("hybrid")
38708
+ title: z66.string().trim().min(1),
38709
+ description: z66.string().nullable(),
38710
+ durationMinutes: z66.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38711
+ prepMinutes: z66.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38712
+ cleanupMinutes: z66.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38713
+ priceAmount: z66.number().int().nonnegative().nullable(),
38714
+ isActive: z66.boolean(),
38715
+ locationType: z66.union([
38716
+ z66.literal("virtual"),
38717
+ z66.literal("in_person"),
38718
+ z66.literal("hybrid")
38664
38719
  ]),
38665
38720
  venue: appointmentSetupVenueChoiceSchema,
38666
- timezone: z68.string().trim().min(1).nullable(),
38721
+ timezone: z66.string().trim().min(1).nullable(),
38667
38722
  payment: appointmentSetupPaymentDraftSchema,
38668
38723
  assignment: appointmentSetupServiceAssignmentDraftSchema
38669
38724
  }).superRefine((service, ctx) => {
@@ -38682,49 +38737,49 @@ var appointmentSetupServiceDraftSchema = z68.object({
38682
38737
  });
38683
38738
  }
38684
38739
  });
38685
- var appointmentSetupPractitionerDraftSchema = z68.object({
38740
+ var appointmentSetupPractitionerDraftSchema = z66.object({
38686
38741
  ref: appointmentSetupRefSchema,
38687
- displayName: z68.string().trim().min(1),
38688
- bio: z68.string().nullable(),
38689
- timezone: z68.string().trim().min(1),
38690
- colorHex: z68.string().nullable()
38691
- });
38692
- var appointmentSetupWeeklyWindowDraftSchema = z68.object({
38693
- weekday: z68.number().int().min(0).max(6),
38694
- startTime: z68.string(),
38695
- endTime: z68.string()
38696
- });
38697
- var appointmentSetupStartTimePolicyDraftSchema = z68.discriminatedUnion("kind", [
38698
- z68.object({ kind: z68.literal("automatic_spacing") }),
38699
- z68.object({
38700
- kind: z68.literal("regular_interval"),
38701
- intervalMinutes: z68.union([
38702
- z68.literal(10),
38703
- z68.literal(15),
38704
- z68.literal(20),
38705
- z68.literal(30),
38706
- z68.literal(45),
38707
- z68.literal(60)
38742
+ displayName: z66.string().trim().min(1),
38743
+ bio: z66.string().nullable(),
38744
+ timezone: z66.string().trim().min(1),
38745
+ colorHex: z66.string().nullable()
38746
+ });
38747
+ var appointmentSetupWeeklyWindowDraftSchema = z66.object({
38748
+ weekday: z66.number().int().min(0).max(6),
38749
+ startTime: z66.string(),
38750
+ endTime: z66.string()
38751
+ });
38752
+ var appointmentSetupStartTimePolicyDraftSchema = z66.discriminatedUnion("kind", [
38753
+ z66.object({ kind: z66.literal("automatic_spacing") }),
38754
+ z66.object({
38755
+ kind: z66.literal("regular_interval"),
38756
+ intervalMinutes: z66.union([
38757
+ z66.literal(10),
38758
+ z66.literal(15),
38759
+ z66.literal(20),
38760
+ z66.literal(30),
38761
+ z66.literal(45),
38762
+ z66.literal(60)
38708
38763
  ])
38709
38764
  })
38710
38765
  ]);
38711
- var appointmentSetupAvailabilityDraftSchema = z68.object({
38712
- kind: z68.literal("weekly_windows"),
38766
+ var appointmentSetupAvailabilityDraftSchema = z66.object({
38767
+ kind: z66.literal("weekly_windows"),
38713
38768
  resourceRef: appointmentSetupRefSchema,
38714
38769
  serviceRef: appointmentSetupRefSchema.nullable(),
38715
- windows: z68.array(appointmentSetupWeeklyWindowDraftSchema),
38770
+ windows: z66.array(appointmentSetupWeeklyWindowDraftSchema),
38716
38771
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
38717
38772
  });
38718
38773
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
38719
38774
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
38720
- var appointmentSetupBookingNoticeSchema = z68.object({
38721
- minLeadMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38722
- maxBookingNoticeMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38723
- });
38724
- var applyAppointmentSetupRequestSchema = z68.object({
38725
- services: z68.array(appointmentSetupServiceDraftSchema),
38726
- practitioners: z68.array(appointmentSetupPractitionerDraftSchema),
38727
- availability: z68.array(appointmentSetupAvailabilityDraftSchema),
38775
+ var appointmentSetupBookingNoticeSchema = z66.object({
38776
+ minLeadMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38777
+ maxBookingNoticeMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38778
+ });
38779
+ var applyAppointmentSetupRequestSchema = z66.object({
38780
+ services: z66.array(appointmentSetupServiceDraftSchema),
38781
+ practitioners: z66.array(appointmentSetupPractitionerDraftSchema),
38782
+ availability: z66.array(appointmentSetupAvailabilityDraftSchema),
38728
38783
  bookingNotice: appointmentSetupBookingNoticeSchema
38729
38784
  });
38730
38785
 
@@ -38757,24 +38812,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
38757
38812
  ];
38758
38813
 
38759
38814
  // ../api/src/siteBanner.ts
38760
- import { z as z69 } from "zod";
38815
+ import { z as z67 } from "zod";
38761
38816
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
38762
38817
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
38763
38818
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
38764
38819
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
38765
- var siteBannerScopeSchema = z69.enum(SITE_BANNER_SCOPE_VALUES);
38766
- var siteBannerToneSchema = z69.enum(SITE_BANNER_TONE_VALUES);
38767
- var siteBannerBodySchema = z69.unknown().transform(unwrapRichTextValue);
38768
- var siteBannerCtaSchema = z69.object({
38769
- label: z69.string().trim().min(1),
38820
+ var siteBannerScopeSchema = z67.enum(SITE_BANNER_SCOPE_VALUES);
38821
+ var siteBannerToneSchema = z67.enum(SITE_BANNER_TONE_VALUES);
38822
+ var siteBannerBodySchema = z67.unknown().transform(unwrapRichTextValue);
38823
+ var siteBannerCtaSchema = z67.object({
38824
+ label: z67.string().trim().min(1),
38770
38825
  link: linkPayloadSchema
38771
38826
  });
38772
- var siteBannerSettingsSchema = z69.discriminatedUnion("enabled", [
38773
- z69.object({
38774
- enabled: z69.literal(false)
38827
+ var siteBannerSettingsSchema = z67.discriminatedUnion("enabled", [
38828
+ z67.object({
38829
+ enabled: z67.literal(false)
38775
38830
  }),
38776
- z69.object({
38777
- enabled: z69.literal(true),
38831
+ z67.object({
38832
+ enabled: z67.literal(true),
38778
38833
  scope: siteBannerScopeSchema,
38779
38834
  tone: siteBannerToneSchema,
38780
38835
  body: siteBannerBodySchema,
@@ -38788,7 +38843,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
38788
38843
  const analysis = analyzeSiteBannerBody(value.body);
38789
38844
  for (const issue of analysis.issues) {
38790
38845
  ctx.addIssue({
38791
- code: z69.ZodIssueCode.custom,
38846
+ code: z67.ZodIssueCode.custom,
38792
38847
  path: ["body"],
38793
38848
  message: siteBannerBodyIssueMessage(issue)
38794
38849
  });
@@ -39095,75 +39150,75 @@ function unsafeAsNavigationMenuIdentifier(identifier) {
39095
39150
  var MAIN_NAVIGATION_MENU_IDENTIFIER = unsafeAsNavigationMenuIdentifier("main");
39096
39151
 
39097
39152
  // ../api/src/aiPlayground.ts
39098
- import { z as z70 } from "zod";
39099
- var Rfc6902PatchOp = z70.discriminatedUnion("op", [
39153
+ import { z as z68 } from "zod";
39154
+ var Rfc6902PatchOp = z68.discriminatedUnion("op", [
39100
39155
  // Standard RFC-6902 operations
39101
- z70.object({
39102
- op: z70.literal("add"),
39103
- path: z70.string(),
39104
- value: z70.unknown()
39156
+ z68.object({
39157
+ op: z68.literal("add"),
39158
+ path: z68.string(),
39159
+ value: z68.unknown()
39105
39160
  }),
39106
- z70.object({
39107
- op: z70.literal("remove"),
39108
- path: z70.string()
39161
+ z68.object({
39162
+ op: z68.literal("remove"),
39163
+ path: z68.string()
39109
39164
  }),
39110
- z70.object({
39111
- op: z70.literal("replace"),
39112
- path: z70.string(),
39113
- value: z70.unknown()
39165
+ z68.object({
39166
+ op: z68.literal("replace"),
39167
+ path: z68.string(),
39168
+ value: z68.unknown()
39114
39169
  }),
39115
- z70.object({
39116
- op: z70.literal("move"),
39117
- from: z70.string(),
39118
- path: z70.string()
39170
+ z68.object({
39171
+ op: z68.literal("move"),
39172
+ from: z68.string(),
39173
+ path: z68.string()
39119
39174
  }),
39120
- z70.object({
39121
- op: z70.literal("copy"),
39122
- from: z70.string(),
39123
- path: z70.string()
39175
+ z68.object({
39176
+ op: z68.literal("copy"),
39177
+ from: z68.string(),
39178
+ path: z68.string()
39124
39179
  }),
39125
39180
  // Block-level operations (Phase 2)
39126
- z70.object({
39127
- op: z70.literal("add_block"),
39128
- blockKind: z70.string(),
39129
- afterBlockId: z70.string().nullable(),
39130
- content: z70.record(z70.string(), z70.unknown()),
39131
- rationale: z70.string()
39181
+ z68.object({
39182
+ op: z68.literal("add_block"),
39183
+ blockKind: z68.string(),
39184
+ afterBlockId: z68.string().nullable(),
39185
+ content: z68.record(z68.string(), z68.unknown()),
39186
+ rationale: z68.string()
39132
39187
  }),
39133
- z70.object({
39134
- op: z70.literal("delete_block"),
39135
- blockId: z70.string(),
39136
- rationale: z70.string()
39188
+ z68.object({
39189
+ op: z68.literal("delete_block"),
39190
+ blockId: z68.string(),
39191
+ rationale: z68.string()
39137
39192
  }),
39138
- z70.object({
39139
- op: z70.literal("reorder_block"),
39140
- blockId: z70.string(),
39141
- afterBlockId: z70.string().nullable(),
39142
- rationale: z70.string()
39193
+ z68.object({
39194
+ op: z68.literal("reorder_block"),
39195
+ blockId: z68.string(),
39196
+ afterBlockId: z68.string().nullable(),
39197
+ rationale: z68.string()
39143
39198
  })
39144
39199
  ]);
39145
- var PlaygroundProposeRequest = z70.object({
39146
- request: z70.string().min(1).max(2e3)
39200
+ var PlaygroundProposeRequest = z68.object({
39201
+ request: z68.string().min(1).max(2e3)
39147
39202
  });
39148
- var MultiPagePatchEnvelope = z70.object({
39149
- pageId: z70.string(),
39150
- blockId: z70.string().optional(),
39203
+ var MultiPagePatchEnvelope = z68.object({
39204
+ pageId: z68.string(),
39205
+ blockId: z68.string().optional(),
39151
39206
  // Not present for page-level ops
39152
- blockKind: z70.string().optional(),
39153
- blockPurpose: z70.string().optional().nullable(),
39154
- ops: z70.array(Rfc6902PatchOp),
39155
- rationale: z70.string(),
39156
- currentContent: z70.record(z70.string(), z70.unknown()).optional()
39207
+ blockKind: z68.string().optional(),
39208
+ blockPurpose: z68.string().optional().nullable(),
39209
+ ops: z68.array(Rfc6902PatchOp),
39210
+ rationale: z68.string(),
39211
+ currentContent: z68.record(z68.string(), z68.unknown()).optional()
39157
39212
  });
39158
- var MultiPageUpdateResponse = z70.object({
39159
- patches: z70.array(MultiPagePatchEnvelope),
39160
- assistantMessage: z70.string(),
39161
- pagesModified: z70.number(),
39162
- toolCallsUsed: z70.number()
39213
+ var MultiPageUpdateResponse = z68.object({
39214
+ patches: z68.array(MultiPagePatchEnvelope),
39215
+ assistantMessage: z68.string(),
39216
+ pagesModified: z68.number(),
39217
+ toolCallsUsed: z68.number()
39163
39218
  });
39164
39219
 
39165
39220
  // src/config/content-validation.ts
39166
- import { z as z71 } from "zod";
39221
+ import { z as z69 } from "zod";
39167
39222
 
39168
39223
  // src/types/block-kinds.ts
39169
39224
  var SYSTEM_BLOCK_KINDS = [
@@ -39307,36 +39362,36 @@ function describeInvalidBindingTransform(transform) {
39307
39362
  }
39308
39363
 
39309
39364
  // src/config/content-validation.ts
39310
- var jsonDataSchema = z71.record(z71.string(), z71.any());
39311
- var contentTypeKeySchema = z71.string().min(1).regex(
39365
+ var jsonDataSchema = z69.record(z69.string(), z69.any());
39366
+ var contentTypeKeySchema = z69.string().min(1).regex(
39312
39367
  /^[a-z][a-z0-9-]*$/,
39313
39368
  "Key must be lowercase, start with a letter, and contain only letters, numbers, and hyphens"
39314
39369
  );
39315
- var templateConfigSchemaForward = z71.object({
39316
- blocks: z71.array(
39317
- z71.object({
39318
- identifier: z71.string().min(1),
39319
- kind: z71.string(),
39320
- scope: z71.enum(["entry", "template"]),
39321
- bindings: z71.record(z71.string(), z71.any()).optional(),
39322
- content: z71.record(z71.string(), z71.any()).optional()
39370
+ var templateConfigSchemaForward = z69.object({
39371
+ blocks: z69.array(
39372
+ z69.object({
39373
+ identifier: z69.string().min(1),
39374
+ kind: z69.string(),
39375
+ scope: z69.enum(["entry", "template"]),
39376
+ bindings: z69.record(z69.string(), z69.any()).optional(),
39377
+ content: z69.record(z69.string(), z69.any()).optional()
39323
39378
  })
39324
39379
  )
39325
39380
  }).optional();
39326
- var contentTypeOrderingSchema = z71.object({
39327
- mode: z71.enum(["default", "manual"]).optional()
39381
+ var contentTypeOrderingSchema = z69.object({
39382
+ mode: z69.enum(["default", "manual"]).optional()
39328
39383
  }).optional();
39329
- var contentTypeConfigSchema = z71.object({
39384
+ var contentTypeConfigSchema = z69.object({
39330
39385
  key: contentTypeKeySchema,
39331
- name: z71.string().min(1),
39332
- description: z71.string().optional(),
39333
- hasPages: z71.boolean(),
39334
- routePattern: z71.string().optional(),
39386
+ name: z69.string().min(1),
39387
+ description: z69.string().optional(),
39388
+ hasPages: z69.boolean(),
39389
+ routePattern: z69.string().optional(),
39335
39390
  // Fields are validated as unknown[] here - deep field validation happens in @riverbankcms/blocks
39336
- fields: z71.array(z71.any()).min(1, "At least one field is required"),
39337
- titleField: z71.string().optional(),
39391
+ fields: z69.array(z69.any()).min(1, "At least one field is required"),
39392
+ titleField: z69.string().optional(),
39338
39393
  ordering: contentTypeOrderingSchema,
39339
- isSingleton: z71.boolean().optional().default(false),
39394
+ isSingleton: z69.boolean().optional().default(false),
39340
39395
  template: templateConfigSchemaForward
39341
39396
  }).refine(
39342
39397
  (data) => {
@@ -39358,7 +39413,7 @@ var contentTypeConfigSchema = z71.object({
39358
39413
  }
39359
39414
  if (!data.routePattern) {
39360
39415
  ctx.addIssue({
39361
- code: z71.ZodIssueCode.custom,
39416
+ code: z69.ZodIssueCode.custom,
39362
39417
  path: ["routePattern"],
39363
39418
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39364
39419
  });
@@ -39367,7 +39422,7 @@ var contentTypeConfigSchema = z71.object({
39367
39422
  const parseResult = safeParseRouteTemplate(data.routePattern);
39368
39423
  if (!parseResult.success) {
39369
39424
  ctx.addIssue({
39370
- code: z71.ZodIssueCode.custom,
39425
+ code: z69.ZodIssueCode.custom,
39371
39426
  path: ["routePattern"],
39372
39427
  message: describeRouteTemplateParseError(parseResult.error)
39373
39428
  });
@@ -39375,44 +39430,44 @@ var contentTypeConfigSchema = z71.object({
39375
39430
  }
39376
39431
  if (!data.isSingleton && parseResult.routeTemplate.kind !== "slug-template") {
39377
39432
  ctx.addIssue({
39378
- code: z71.ZodIssueCode.custom,
39433
+ code: z69.ZodIssueCode.custom,
39379
39434
  path: ["routePattern"],
39380
39435
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39381
39436
  });
39382
39437
  }
39383
39438
  });
39384
- var fieldBindingSchema = z71.object({
39385
- source: z71.literal("field"),
39386
- path: z71.string().min(1, "Field path is required")
39439
+ var fieldBindingSchema = z69.object({
39440
+ source: z69.literal("field"),
39441
+ path: z69.string().min(1, "Field path is required")
39387
39442
  });
39388
- var metaBindingSchema = z71.object({
39389
- source: z71.literal("meta"),
39390
- path: z71.enum(TEMPLATE_BINDING_META_PATHS, {
39443
+ var metaBindingSchema = z69.object({
39444
+ source: z69.literal("meta"),
39445
+ path: z69.enum(TEMPLATE_BINDING_META_PATHS, {
39391
39446
  error: (issue) => describeInvalidTemplateBindingMetaPath(String(issue.input))
39392
39447
  })
39393
39448
  });
39394
- var literalBindingSchema = z71.object({
39395
- source: z71.literal("literal"),
39396
- value: z71.unknown()
39449
+ var literalBindingSchema = z69.object({
39450
+ source: z69.literal("literal"),
39451
+ value: z69.unknown()
39397
39452
  });
39398
- var transformBindingSchema = z71.object({
39399
- source: z71.literal("transform"),
39400
- path: z71.string().min(1, "Transform path is required"),
39401
- transform: z71.enum(BINDING_TRANSFORM_VALUES, {
39453
+ var transformBindingSchema = z69.object({
39454
+ source: z69.literal("transform"),
39455
+ path: z69.string().min(1, "Transform path is required"),
39456
+ transform: z69.enum(BINDING_TRANSFORM_VALUES, {
39402
39457
  error: (issue) => describeInvalidBindingTransform(String(issue.input))
39403
39458
  })
39404
39459
  });
39405
- var baseBindingSchema = z71.discriminatedUnion("source", [
39460
+ var baseBindingSchema = z69.discriminatedUnion("source", [
39406
39461
  fieldBindingSchema,
39407
39462
  metaBindingSchema,
39408
39463
  literalBindingSchema,
39409
39464
  transformBindingSchema
39410
39465
  ]);
39411
- var fallbackBindingSchema = z71.object({
39412
- source: z71.literal("fallback"),
39413
- sources: z71.array(z71.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39466
+ var fallbackBindingSchema = z69.object({
39467
+ source: z69.literal("fallback"),
39468
+ sources: z69.array(z69.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39414
39469
  });
39415
- var bindingSourceSchema = z71.union([
39470
+ var bindingSourceSchema = z69.union([
39416
39471
  baseBindingSchema,
39417
39472
  fallbackBindingSchema
39418
39473
  ]);
@@ -39426,12 +39481,12 @@ function isValidBlockKind(kind) {
39426
39481
  return false;
39427
39482
  }
39428
39483
  var BLOCK_KIND_ERROR_MESSAGE = 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.myBlock")';
39429
- var blockKindSchema = z71.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39430
- var templateBlockConfigSchema = z71.object({
39431
- identifier: z71.string().min(1, "Block identifier is required"),
39484
+ var blockKindSchema = z69.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39485
+ var templateBlockConfigSchema = z69.object({
39486
+ identifier: z69.string().min(1, "Block identifier is required"),
39432
39487
  kind: blockKindSchema,
39433
- scope: z71.enum(["entry", "template"]),
39434
- bindings: z71.record(z71.string(), bindingSourceSchema).optional(),
39488
+ scope: z69.enum(["entry", "template"]),
39489
+ bindings: z69.record(z69.string(), bindingSourceSchema).optional(),
39435
39490
  content: jsonDataSchema.optional()
39436
39491
  }).refine(
39437
39492
  (data) => {
@@ -39450,8 +39505,8 @@ var templateBlockConfigSchema = z71.object({
39450
39505
  },
39451
39506
  { message: "Template-scoped blocks should define static content, not bindings" }
39452
39507
  );
39453
- var templateConfigSchema = z71.object({
39454
- blocks: z71.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39508
+ var templateConfigSchema = z69.object({
39509
+ blocks: z69.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39455
39510
  }).refine(
39456
39511
  (data) => {
39457
39512
  const identifiers = data.blocks.map((b) => b.identifier);
@@ -39460,77 +39515,77 @@ var templateConfigSchema = z71.object({
39460
39515
  },
39461
39516
  { message: "Template block identifiers must be unique" }
39462
39517
  );
39463
- var blockConfigSchema = z71.object({
39518
+ var blockConfigSchema = z69.object({
39464
39519
  kind: blockKindSchema,
39465
39520
  content: jsonDataSchema,
39466
- orderIndex: z71.number().optional()
39467
- });
39468
- var pageConfigSchema = z71.object({
39469
- identifier: z71.string().min(1, "Identifier is required"),
39470
- title: z71.string().min(1, "Title is required"),
39471
- path: z71.string().regex(/^\//, "Path must start with /"),
39472
- purpose: z71.string().default("content"),
39473
- blocks: z71.array(blockConfigSchema).optional(),
39474
- status: z71.enum(["draft", "published"]).default("draft"),
39475
- metaTitle: z71.string().optional(),
39476
- metaDescription: z71.string().optional()
39477
- });
39478
- var entryConfigSchema = z71.object({
39479
- identifier: z71.string().min(1, "Identifier is required"),
39480
- contentType: z71.string().min(1, "Content type is required"),
39521
+ orderIndex: z69.number().optional()
39522
+ });
39523
+ var pageConfigSchema = z69.object({
39524
+ identifier: z69.string().min(1, "Identifier is required"),
39525
+ title: z69.string().min(1, "Title is required"),
39526
+ path: z69.string().regex(/^\//, "Path must start with /"),
39527
+ purpose: z69.string().default("content"),
39528
+ blocks: z69.array(blockConfigSchema).optional(),
39529
+ status: z69.enum(["draft", "published"]).default("draft"),
39530
+ metaTitle: z69.string().optional(),
39531
+ metaDescription: z69.string().optional()
39532
+ });
39533
+ var entryConfigSchema = z69.object({
39534
+ identifier: z69.string().min(1, "Identifier is required"),
39535
+ contentType: z69.string().min(1, "Content type is required"),
39481
39536
  data: jsonDataSchema,
39482
- status: z71.enum(["draft", "published"]).default("draft"),
39483
- slug: z71.string().optional(),
39484
- summary: z71.string().optional(),
39537
+ status: z69.enum(["draft", "published"]).default("draft"),
39538
+ slug: z69.string().optional(),
39539
+ summary: z69.string().optional(),
39485
39540
  // Hard remove legacy config-only titles: titles must live in entry `data`.
39486
- title: z71.any().optional().refine((value) => value === void 0, {
39541
+ title: z69.any().optional().refine((value) => value === void 0, {
39487
39542
  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."
39488
39543
  }),
39489
- metaTitle: z71.string().optional(),
39490
- metaDescription: z71.string().optional()
39544
+ metaTitle: z69.string().optional(),
39545
+ metaDescription: z69.string().optional()
39491
39546
  });
39492
- var dropdownLinkSchema = z71.object({
39493
- kind: z71.literal("dropdown")
39547
+ var dropdownLinkSchema = z69.object({
39548
+ kind: z69.literal("dropdown")
39494
39549
  });
39495
- var navigationLinkSchema = z71.discriminatedUnion("kind", [
39550
+ var navigationLinkSchema = z69.discriminatedUnion("kind", [
39496
39551
  ...navigationLinkInputSchemaOptions,
39497
39552
  dropdownLinkSchema
39498
39553
  ]);
39499
- var baseNavigationItemSchema = z71.object({
39500
- label: z71.string().min(1, "Label is required"),
39554
+ var baseNavigationItemSchema = z69.object({
39555
+ label: z69.string().min(1, "Label is required"),
39501
39556
  link: navigationLinkSchema,
39502
- isCta: z71.boolean().optional()
39557
+ isCta: z69.boolean().optional()
39503
39558
  });
39504
39559
  var navigationItemConfigSchema = baseNavigationItemSchema.extend({
39505
- children: z71.lazy(() => z71.array(navigationItemConfigSchema)).optional()
39506
- });
39507
- var navigationMenuConfigSchema = z71.object({
39508
- identifier: z71.string().min(1, "Identifier is required"),
39509
- name: z71.string().min(1, "Name is required"),
39510
- isPrimary: z71.boolean().optional(),
39511
- isFooter: z71.boolean().optional(),
39512
- items: z71.array(navigationItemConfigSchema)
39560
+ children: z69.lazy(() => z69.array(navigationItemConfigSchema)).optional()
39561
+ });
39562
+ var navigationMenuConfigSchema = z69.object({
39563
+ identifier: z69.string().min(1, "Identifier is required"),
39564
+ name: z69.string().min(1, "Name is required"),
39565
+ isPrimary: z69.boolean().optional(),
39566
+ isFooter: z69.boolean().optional(),
39567
+ items: z69.array(navigationItemConfigSchema)
39513
39568
  }).superRefine((menu, ctx) => {
39514
39569
  const portalStats = collectPortalLinkStats(
39515
39570
  menu.items
39516
39571
  );
39517
39572
  if (portalStats.count > 1) {
39518
39573
  ctx.addIssue({
39519
- code: z71.ZodIssueCode.custom,
39574
+ code: z69.ZodIssueCode.custom,
39520
39575
  message: "Only one portal link is allowed per navigation menu",
39521
39576
  path: ["items"]
39522
39577
  });
39523
39578
  }
39524
39579
  if (portalStats.nestedLabels.length > 0) {
39525
39580
  ctx.addIssue({
39526
- code: z71.ZodIssueCode.custom,
39581
+ code: z69.ZodIssueCode.custom,
39527
39582
  message: `Portal links must be root-level items: ${portalStats.nestedLabels.join(", ")}`,
39528
39583
  path: ["items"]
39529
39584
  });
39530
39585
  }
39531
39586
  if (portalStats.withChildrenLabels.length > 0) {
39532
39587
  ctx.addIssue({
39533
- code: z71.ZodIssueCode.custom,
39588
+ code: z69.ZodIssueCode.custom,
39534
39589
  message: `Portal links cannot contain child items: ${portalStats.withChildrenLabels.join(", ")}`,
39535
39590
  path: ["items"]
39536
39591
  });
@@ -39540,44 +39595,44 @@ var navigationMenuConfigSchema = z71.object({
39540
39595
  );
39541
39596
  if (cartStats.nestedLabels.length > 0) {
39542
39597
  ctx.addIssue({
39543
- code: z71.ZodIssueCode.custom,
39598
+ code: z69.ZodIssueCode.custom,
39544
39599
  message: `Cart links must be root-level items: ${cartStats.nestedLabels.join(", ")}`,
39545
39600
  path: ["items"]
39546
39601
  });
39547
39602
  }
39548
39603
  if (cartStats.withChildrenLabels.length > 0) {
39549
39604
  ctx.addIssue({
39550
- code: z71.ZodIssueCode.custom,
39605
+ code: z69.ZodIssueCode.custom,
39551
39606
  message: `Cart links cannot contain child items: ${cartStats.withChildrenLabels.join(", ")}`,
39552
39607
  path: ["items"]
39553
39608
  });
39554
39609
  }
39555
39610
  if (cartStats.ctaLabels.length > 0) {
39556
39611
  ctx.addIssue({
39557
- code: z71.ZodIssueCode.custom,
39612
+ code: z69.ZodIssueCode.custom,
39558
39613
  message: `Cart links cannot be marked as CTA: ${cartStats.ctaLabels.join(", ")}`,
39559
39614
  path: ["items"]
39560
39615
  });
39561
39616
  }
39562
39617
  if (cartStats.missingVisibleTextLabels.length > 0) {
39563
39618
  ctx.addIssue({
39564
- code: z71.ZodIssueCode.custom,
39619
+ code: z69.ZodIssueCode.custom,
39565
39620
  message: `Cart links with icon-with-label must provide a visible label: ${cartStats.missingVisibleTextLabels.join(", ")}`,
39566
39621
  path: ["items"]
39567
39622
  });
39568
39623
  }
39569
39624
  });
39570
- var siteSettingsConfigSchema = z71.object({
39571
- homepagePath: z71.string().optional(),
39572
- siteTitle: z71.string().optional(),
39573
- siteDescription: z71.string().optional(),
39574
- defaultTemplates: z71.record(z71.string(), z71.string()).optional()
39625
+ var siteSettingsConfigSchema = z69.object({
39626
+ homepagePath: z69.string().optional(),
39627
+ siteTitle: z69.string().optional(),
39628
+ siteDescription: z69.string().optional(),
39629
+ defaultTemplates: z69.record(z69.string(), z69.string()).optional()
39575
39630
  });
39576
- var contentConfigBaseSchema = z71.object({
39577
- contentTypes: z71.array(contentTypeConfigSchema).optional(),
39578
- entries: z71.array(entryConfigSchema).optional(),
39579
- pages: z71.array(pageConfigSchema).optional(),
39580
- navigationMenus: z71.array(navigationMenuConfigSchema).optional(),
39631
+ var contentConfigBaseSchema = z69.object({
39632
+ contentTypes: z69.array(contentTypeConfigSchema).optional(),
39633
+ entries: z69.array(entryConfigSchema).optional(),
39634
+ pages: z69.array(pageConfigSchema).optional(),
39635
+ navigationMenus: z69.array(navigationMenuConfigSchema).optional(),
39581
39636
  settings: siteSettingsConfigSchema.optional()
39582
39637
  });
39583
39638
  var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
@@ -39586,7 +39641,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39586
39641
  const duplicateKeys = keys.filter((key, i) => keys.indexOf(key) !== i);
39587
39642
  if (duplicateKeys.length > 0) {
39588
39643
  ctx.addIssue({
39589
- code: z71.ZodIssueCode.custom,
39644
+ code: z69.ZodIssueCode.custom,
39590
39645
  message: `Content type keys must be unique. Duplicates: ${duplicateKeys.join(", ")}`,
39591
39646
  path: ["contentTypes"]
39592
39647
  });
@@ -39597,7 +39652,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39597
39652
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39598
39653
  if (duplicateIds.length > 0) {
39599
39654
  ctx.addIssue({
39600
- code: z71.ZodIssueCode.custom,
39655
+ code: z69.ZodIssueCode.custom,
39601
39656
  message: `Page identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39602
39657
  path: ["pages"]
39603
39658
  });
@@ -39606,7 +39661,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39606
39661
  const duplicatePaths = paths.filter((path, i) => paths.indexOf(path) !== i);
39607
39662
  if (duplicatePaths.length > 0) {
39608
39663
  ctx.addIssue({
39609
- code: z71.ZodIssueCode.custom,
39664
+ code: z69.ZodIssueCode.custom,
39610
39665
  message: `Page paths must be unique. Duplicates: ${duplicatePaths.join(", ")}`,
39611
39666
  path: ["pages"]
39612
39667
  });
@@ -39617,7 +39672,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39617
39672
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39618
39673
  if (duplicateIds.length > 0) {
39619
39674
  ctx.addIssue({
39620
- code: z71.ZodIssueCode.custom,
39675
+ code: z69.ZodIssueCode.custom,
39621
39676
  message: `Entry identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39622
39677
  path: ["entries"]
39623
39678
  });
@@ -39628,7 +39683,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39628
39683
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39629
39684
  if (duplicateIds.length > 0) {
39630
39685
  ctx.addIssue({
39631
- code: z71.ZodIssueCode.custom,
39686
+ code: z69.ZodIssueCode.custom,
39632
39687
  message: `Navigation menu identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39633
39688
  path: ["navigationMenus"]
39634
39689
  });
@@ -39642,7 +39697,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39642
39697
  const entriesForType = data.entries.filter((e) => e.contentType === singletonKey);
39643
39698
  if (entriesForType.length > 1) {
39644
39699
  ctx.addIssue({
39645
- code: z71.ZodIssueCode.custom,
39700
+ code: z69.ZodIssueCode.custom,
39646
39701
  message: `Singleton content type "${singletonKey}" cannot have more than one entry. Found ${entriesForType.length} entries.`,
39647
39702
  path: ["entries"]
39648
39703
  });
@@ -39755,18 +39810,18 @@ function validateLayout(layout) {
39755
39810
  }
39756
39811
 
39757
39812
  // src/config/dashboard-validation.ts
39758
- import { z as z72 } from "zod";
39759
- var navIdListSchema2 = z72.preprocess((value) => {
39813
+ import { z as z70 } from "zod";
39814
+ var navIdListSchema2 = z70.preprocess((value) => {
39760
39815
  if (!Array.isArray(value)) return void 0;
39761
39816
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
39762
39817
  return filtered.length > 0 ? filtered : void 0;
39763
- }, z72.array(z72.string()).max(200, "Maximum 200 nav IDs").optional());
39764
- var dashboardNavVisibilityBaseSchema2 = z72.object({
39765
- mode: z72.enum(["augment", "restrict"]).optional(),
39818
+ }, z70.array(z70.string()).max(200, "Maximum 200 nav IDs").optional());
39819
+ var dashboardNavVisibilityBaseSchema2 = z70.object({
39820
+ mode: z70.enum(["augment", "restrict"]).optional(),
39766
39821
  allowIds: navIdListSchema2,
39767
39822
  denyIds: navIdListSchema2
39768
39823
  }).strip();
39769
- var dashboardNavVisibilityRolesSchema2 = z72.object({
39824
+ var dashboardNavVisibilityRolesSchema2 = z70.object({
39770
39825
  administrator: dashboardNavVisibilityBaseSchema2.optional(),
39771
39826
  editor: dashboardNavVisibilityBaseSchema2.optional(),
39772
39827
  team_member: dashboardNavVisibilityBaseSchema2.optional()
@@ -39774,28 +39829,28 @@ var dashboardNavVisibilityRolesSchema2 = z72.object({
39774
39829
  var dashboardNavVisibilitySchema2 = dashboardNavVisibilityBaseSchema2.extend({
39775
39830
  roles: dashboardNavVisibilityRolesSchema2
39776
39831
  }).strip();
39777
- var dashboardNavigationConfigSchema2 = z72.object({
39832
+ var dashboardNavigationConfigSchema2 = z70.object({
39778
39833
  siteNav: dashboardNavVisibilitySchema2.optional(),
39779
39834
  settingsNav: dashboardNavVisibilitySchema2.optional()
39780
39835
  }).strip();
39781
- var dashboardConfigSchema2 = z72.object({
39782
- previewEditingEnabled: z72.boolean().optional(),
39836
+ var dashboardConfigSchema2 = z70.object({
39837
+ previewEditingEnabled: z70.boolean().optional(),
39783
39838
  navigation: dashboardNavigationConfigSchema2.optional()
39784
39839
  }).strip();
39785
39840
 
39786
39841
  // src/zod/titleSourceSchema.ts
39787
- import { z as z73 } from "zod";
39788
- var titleSourceValueSchema = z73.union([
39789
- z73.string().min(1),
39790
- z73.array(z73.string().min(1)).min(1)
39842
+ import { z as z71 } from "zod";
39843
+ var titleSourceValueSchema = z71.union([
39844
+ z71.string().min(1),
39845
+ z71.array(z71.string().min(1)).min(1)
39791
39846
  ]);
39792
39847
 
39793
39848
  // src/config/validation.ts
39794
- var sdkThemePaletteSchema2 = z74.record(z74.string(), z74.string());
39795
- var sdkThemeConfigSchema2 = z74.object({
39849
+ var sdkThemePaletteSchema2 = z72.record(z72.string(), z72.string());
39850
+ var sdkThemeConfigSchema2 = z72.object({
39796
39851
  palette: sdkThemePaletteSchema2
39797
39852
  });
39798
- var sdkSiteUrlSchema = z74.string().url("Must be a valid URL").refine((url) => {
39853
+ var sdkSiteUrlSchema = z72.string().url("Must be a valid URL").refine((url) => {
39799
39854
  try {
39800
39855
  const parsed = new URL(url);
39801
39856
  const isLocal = parsed.hostname === "localhost" || parsed.hostname.endsWith(".localhost") || parsed.hostname.endsWith(".local") || parsed.hostname.endsWith(".test");
@@ -39804,97 +39859,97 @@ var sdkSiteUrlSchema = z74.string().url("Must be a valid URL").refine((url) => {
39804
39859
  return false;
39805
39860
  }
39806
39861
  }, { message: "Production URLs must use HTTPS" }).transform((url) => url.replace(/\/$/, ""));
39807
- var sectionBackgroundSchema = z74.object({
39808
- id: z74.string(),
39809
- label: z74.string(),
39810
- token: z74.string()
39862
+ var sectionBackgroundSchema = z72.object({
39863
+ id: z72.string(),
39864
+ label: z72.string(),
39865
+ token: z72.string()
39811
39866
  // Reference to theme palette token
39812
39867
  });
39813
- var sectionSpacingSchema = z74.enum(["compact", "default", "spacious"]);
39814
- var containerMaxWidthSchema = z74.enum(["narrow", "default", "wide", "full"]);
39815
- var containerAlignmentSchema = z74.enum(["left", "center", "right"]);
39816
- var sectionOptionsSchema = z74.object({
39817
- backgroundColor: z74.boolean().optional(),
39818
- backgroundImage: z74.boolean().optional(),
39819
- backgroundGradient: z74.boolean().optional(),
39820
- spacing: z74.union([
39821
- z74.array(sectionSpacingSchema),
39822
- z74.boolean()
39868
+ var sectionSpacingSchema = z72.enum(["compact", "default", "spacious"]);
39869
+ var containerMaxWidthSchema = z72.enum(["narrow", "default", "wide", "full"]);
39870
+ var containerAlignmentSchema = z72.enum(["left", "center", "right"]);
39871
+ var sectionOptionsSchema = z72.object({
39872
+ backgroundColor: z72.boolean().optional(),
39873
+ backgroundImage: z72.boolean().optional(),
39874
+ backgroundGradient: z72.boolean().optional(),
39875
+ spacing: z72.union([
39876
+ z72.array(sectionSpacingSchema),
39877
+ z72.boolean()
39823
39878
  ]).optional(),
39824
- textColor: z74.boolean().optional()
39879
+ textColor: z72.boolean().optional()
39825
39880
  }).optional();
39826
- var containerOptionsSchema = z74.object({
39827
- maxWidth: z74.union([
39828
- z74.array(containerMaxWidthSchema),
39829
- z74.boolean()
39881
+ var containerOptionsSchema = z72.object({
39882
+ maxWidth: z72.union([
39883
+ z72.array(containerMaxWidthSchema),
39884
+ z72.boolean()
39830
39885
  ]).optional(),
39831
- alignment: z74.union([
39832
- z74.array(containerAlignmentSchema),
39833
- z74.boolean()
39886
+ alignment: z72.union([
39887
+ z72.array(containerAlignmentSchema),
39888
+ z72.boolean()
39834
39889
  ]).optional()
39835
39890
  }).optional();
39836
- var siteStyleConfigSchema = z74.object({
39837
- sectionBackgrounds: z74.array(sectionBackgroundSchema).optional(),
39891
+ var siteStyleConfigSchema = z72.object({
39892
+ sectionBackgrounds: z72.array(sectionBackgroundSchema).optional(),
39838
39893
  sectionOptions: sectionOptionsSchema,
39839
39894
  containerOptions: containerOptionsSchema
39840
39895
  }).optional();
39841
- var sdkLoaderEndpointSchema2 = z74.enum(SUPPORTED_LOADER_ENDPOINTS);
39896
+ var sdkLoaderEndpointSchema2 = z72.enum(SUPPORTED_LOADER_ENDPOINTS);
39842
39897
  var allowedTransformIds = new Set(builtinTransformDefinitions.map((transform) => transform.id));
39843
- var loaderTransformStepSchema = z74.object({
39844
- id: z74.string().refine((id) => allowedTransformIds.has(id), {
39898
+ var loaderTransformStepSchema = z72.object({
39899
+ id: z72.string().refine((id) => allowedTransformIds.has(id), {
39845
39900
  message: "Unknown transform id"
39846
39901
  }),
39847
- options: z74.record(z74.string(), z74.unknown()).optional()
39902
+ options: z72.record(z72.string(), z72.unknown()).optional()
39848
39903
  });
39849
- var loaderParamBindingSchema2 = z74.object({
39850
- $bind: z74.object({
39851
- from: z74.string().min(1, "Binding path is required"),
39904
+ var loaderParamBindingSchema2 = z72.object({
39905
+ $bind: z72.object({
39906
+ from: z72.string().min(1, "Binding path is required"),
39852
39907
  // Loader params are ultimately string-normalized for query strings, so fallbacks should
39853
39908
  // stay scalar. Use transforms (e.g. `value.jsonArray`) when you need to serialize
39854
39909
  // more complex values into a string.
39855
39910
  fallback: loaderFallbackScalarSchema.optional(),
39856
- transforms: z74.array(loaderTransformStepSchema).default([]),
39857
- pick: z74.enum(["value", "collection", "context"]).default("value"),
39858
- coerce: z74.enum(["number", "boolean", "string"]).optional()
39911
+ transforms: z72.array(loaderTransformStepSchema).default([]),
39912
+ pick: z72.enum(["value", "collection", "context"]).default("value"),
39913
+ coerce: z72.enum(["number", "boolean", "string"]).optional()
39859
39914
  })
39860
39915
  });
39861
- var loaderParamValueSchema2 = z74.union([
39862
- z74.string(),
39863
- z74.number(),
39864
- z74.boolean(),
39916
+ var loaderParamValueSchema2 = z72.union([
39917
+ z72.string(),
39918
+ z72.number(),
39919
+ z72.boolean(),
39865
39920
  loaderParamBindingSchema2
39866
39921
  ]);
39867
- var loaderWhenValueSchema = z74.union([
39868
- z74.boolean(),
39922
+ var loaderWhenValueSchema = z72.union([
39923
+ z72.boolean(),
39869
39924
  loaderParamBindingSchema2
39870
39925
  ]);
39871
- var sdkConfigLoaderSchema2 = z74.object({
39926
+ var sdkConfigLoaderSchema2 = z72.object({
39872
39927
  endpoint: sdkLoaderEndpointSchema2,
39873
- params: z74.record(z74.string(), loaderParamValueSchema2),
39874
- mode: z74.enum(["server", "client"]).default("server"),
39928
+ params: z72.record(z72.string(), loaderParamValueSchema2),
39929
+ mode: z72.enum(["server", "client"]).default("server"),
39875
39930
  when: loaderWhenValueSchema.optional()
39876
39931
  });
39877
- var sdkDataLoadersSchema2 = z74.record(z74.string(), sdkConfigLoaderSchema2).refine(
39932
+ var sdkDataLoadersSchema2 = z72.record(z72.string(), sdkConfigLoaderSchema2).refine(
39878
39933
  (loaders) => Object.keys(loaders).length <= 5,
39879
39934
  { message: "Maximum 5 data loaders per block" }
39880
39935
  ).optional();
39881
- var fieldSelectOptionSchema = z74.object({
39882
- value: z74.string().min(1, "Option value is required"),
39883
- label: z74.string().min(1, "Option label is required")
39936
+ var fieldSelectOptionSchema = z72.object({
39937
+ value: z72.string().min(1, "Option value is required"),
39938
+ label: z72.string().min(1, "Option label is required")
39884
39939
  });
39885
- var blockFieldConfigSchema = z74.object({
39886
- options: z74.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
39940
+ var blockFieldConfigSchema = z72.object({
39941
+ options: z72.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
39887
39942
  });
39888
- var blockFieldOptionsSchema = z74.record(
39889
- z74.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
39943
+ var blockFieldOptionsSchema = z72.record(
39944
+ z72.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
39890
39945
  message: "Block ID must be 'block.*' or 'custom.*' format"
39891
39946
  }),
39892
- z74.record(
39893
- z74.string().min(1, "Field ID is required"),
39947
+ z72.record(
39948
+ z72.string().min(1, "Field ID is required"),
39894
39949
  blockFieldConfigSchema
39895
39950
  )
39896
39951
  ).optional();
39897
- var blockFieldExtensionSchema = z74.object({
39952
+ var blockFieldExtensionSchema = z72.object({
39898
39953
  fields: fieldSchema.array().min(1, "At least one field is required")
39899
39954
  }).refine(
39900
39955
  (data) => {
@@ -39908,10 +39963,10 @@ var blockFieldExtensionSchema = z74.object({
39908
39963
  message: "Required fields must have a defaultValue to support existing blocks"
39909
39964
  }
39910
39965
  );
39911
- var blockFieldExtensionsMapSchema = z74.record(
39966
+ var blockFieldExtensionsMapSchema = z72.record(
39912
39967
  // System blocks are kebab-case: block.body-text, block.event-calendar, ...
39913
39968
  // Enforce: lowercase alphanumerics with single hyphens (no trailing hyphen, no consecutive hyphens).
39914
- z74.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
39969
+ z72.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
39915
39970
  message: "Block ID must be 'block.*' format (system blocks only)"
39916
39971
  }),
39917
39972
  blockFieldExtensionSchema
@@ -39927,7 +39982,7 @@ var blockFieldExtensionsMapSchema = z74.record(
39927
39982
  (field) => field.id === collision.fieldId
39928
39983
  );
39929
39984
  ctx.addIssue({
39930
- code: z74.ZodIssueCode.custom,
39985
+ code: z72.ZodIssueCode.custom,
39931
39986
  message: collision.message,
39932
39987
  path: [
39933
39988
  APPOINTMENT_BOOKING_BLOCK_ID,
@@ -39942,24 +39997,24 @@ var blockFieldExtensionsSchema = blockFieldExtensionsMapSchema.optional();
39942
39997
  function collectAppointmentBookingExtensionReservedFieldCollisions(extension) {
39943
39998
  return collectBookingReservedFieldCollisions(extension, { type: "booking" });
39944
39999
  }
39945
- var syncConfigSchema = z74.object({
39946
- existingEntries: z74.enum(["skip", "update"]).optional()
40000
+ var syncConfigSchema = z72.object({
40001
+ existingEntries: z72.enum(["skip", "update"]).optional()
39947
40002
  }).optional();
39948
- var deployConfigSchema = z74.object({
39949
- verifyCommand: z74.string().optional(),
39950
- prebuildOutput: z74.string().optional()
40003
+ var deployConfigSchema = z72.object({
40004
+ verifyCommand: z72.string().optional(),
40005
+ prebuildOutput: z72.string().optional()
39951
40006
  }).optional();
39952
- var sdkCustomBlockSchema = z74.object({
40007
+ var sdkCustomBlockSchema = z72.object({
39953
40008
  // Block ID must start with 'custom.'
39954
- id: z74.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
40009
+ id: z72.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
39955
40010
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
39956
40011
  }),
39957
- title: z74.string().min(1, "Title is required"),
40012
+ title: z72.string().min(1, "Title is required"),
39958
40013
  titleSource: titleSourceValueSchema.optional(),
39959
- description: z74.string().optional(),
40014
+ description: z72.string().optional(),
39960
40015
  category: blockCategoryEnum,
39961
- icon: z74.string().optional(),
39962
- tags: z74.array(z74.string()).optional(),
40016
+ icon: z72.string().optional(),
40017
+ tags: z72.array(z72.string()).optional(),
39963
40018
  // Reuse the exact field schema from @riverbankcms/blocks - all field types supported
39964
40019
  fields: fieldSchema.array().min(1, "Custom blocks must have at least one field"),
39965
40020
  // Data loaders for CMS endpoints
@@ -39967,14 +40022,14 @@ var sdkCustomBlockSchema = z74.object({
39967
40022
  // Optional declarative layout - when present, block can render without React override
39968
40023
  layout: NodeSchema.optional(),
39969
40024
  // Optional variants system (preferred when a block has multiple structural layouts)
39970
- variants: z74.record(z74.string().min(1), NodeSchema).optional(),
39971
- defaultVariant: z74.string().min(1).optional(),
39972
- variantOptions: z74.record(
39973
- z74.string().min(1),
39974
- z74.object({
39975
- label: z74.string().min(1).optional(),
39976
- description: z74.string().min(1).optional(),
39977
- icon: z74.string().min(1).optional()
40025
+ variants: z72.record(z72.string().min(1), NodeSchema).optional(),
40026
+ defaultVariant: z72.string().min(1).optional(),
40027
+ variantOptions: z72.record(
40028
+ z72.string().min(1),
40029
+ z72.object({
40030
+ label: z72.string().min(1).optional(),
40031
+ description: z72.string().min(1).optional(),
40032
+ icon: z72.string().min(1).optional()
39978
40033
  })
39979
40034
  ).optional(),
39980
40035
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -39986,7 +40041,7 @@ var sdkCustomBlockSchema = z74.object({
39986
40041
  const exists = fields3.some((field) => field.id === source);
39987
40042
  if (!exists) {
39988
40043
  ctx.addIssue({
39989
- code: z74.ZodIssueCode.custom,
40044
+ code: z72.ZodIssueCode.custom,
39990
40045
  message: `titleSource must reference a valid field ID (got "${source}")`,
39991
40046
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
39992
40047
  });
@@ -39995,7 +40050,7 @@ var sdkCustomBlockSchema = z74.object({
39995
40050
  }
39996
40051
  if (data.layout && data.variants) {
39997
40052
  ctx.addIssue({
39998
- code: z74.ZodIssueCode.custom,
40053
+ code: z72.ZodIssueCode.custom,
39999
40054
  message: "Custom block must define either `layout` or `variants`, not both",
40000
40055
  path: ["variants"]
40001
40056
  });
@@ -40005,7 +40060,7 @@ var sdkCustomBlockSchema = z74.object({
40005
40060
  if (!result.valid) {
40006
40061
  for (const error of result.errors) {
40007
40062
  ctx.addIssue({
40008
- code: z74.ZodIssueCode.custom,
40063
+ code: z72.ZodIssueCode.custom,
40009
40064
  message: error.message,
40010
40065
  path: ["layout"]
40011
40066
  });
@@ -40016,14 +40071,14 @@ var sdkCustomBlockSchema = z74.object({
40016
40071
  const keys = Object.keys(data.variants);
40017
40072
  if (keys.length === 0) {
40018
40073
  ctx.addIssue({
40019
- code: z74.ZodIssueCode.custom,
40074
+ code: z72.ZodIssueCode.custom,
40020
40075
  message: "`variants` must contain at least one variant key",
40021
40076
  path: ["variants"]
40022
40077
  });
40023
40078
  }
40024
40079
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
40025
40080
  ctx.addIssue({
40026
- code: z74.ZodIssueCode.custom,
40081
+ code: z72.ZodIssueCode.custom,
40027
40082
  message: "`defaultVariant` must be a key present in `variants`",
40028
40083
  path: ["defaultVariant"]
40029
40084
  });
@@ -40033,7 +40088,7 @@ var sdkCustomBlockSchema = z74.object({
40033
40088
  if (!result.valid) {
40034
40089
  for (const error of result.errors) {
40035
40090
  ctx.addIssue({
40036
- code: z74.ZodIssueCode.custom,
40091
+ code: z72.ZodIssueCode.custom,
40037
40092
  message: `${key}: ${error.message}`,
40038
40093
  path: ["variants", key]
40039
40094
  });
@@ -40044,7 +40099,7 @@ var sdkCustomBlockSchema = z74.object({
40044
40099
  for (const key of Object.keys(data.variantOptions)) {
40045
40100
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
40046
40101
  ctx.addIssue({
40047
- code: z74.ZodIssueCode.custom,
40102
+ code: z72.ZodIssueCode.custom,
40048
40103
  message: "`variantOptions` key must exist in `variants`",
40049
40104
  path: ["variantOptions", key]
40050
40105
  });
@@ -40053,58 +40108,58 @@ var sdkCustomBlockSchema = z74.object({
40053
40108
  }
40054
40109
  }
40055
40110
  });
40056
- var themeSourceSchema = z74.enum(["local", "cms"]).optional();
40057
- var activeThemeSchema = z74.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
40111
+ var themeSourceSchema = z72.enum(["local", "cms"]).optional();
40112
+ var activeThemeSchema = z72.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
40058
40113
  message: "Theme name must be lowercase alphanumeric with hyphens/underscores"
40059
40114
  }).max(64, "Theme name too long").optional();
40060
40115
  function isValidConfigBlockKind(kind) {
40061
40116
  if (getBlockDefinition(kind)) return true;
40062
40117
  return /^custom\.[a-z][a-z0-9-]*$/.test(kind);
40063
40118
  }
40064
- var layoutBlockKindSchema = z74.string().refine(isValidConfigBlockKind, {
40119
+ var layoutBlockKindSchema = z72.string().refine(isValidConfigBlockKind, {
40065
40120
  message: 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.my-block")'
40066
40121
  });
40067
- var layoutFooterBlockSchema = z74.object({
40068
- id: z74.string().min(1).optional(),
40122
+ var layoutFooterBlockSchema = z72.object({
40123
+ id: z72.string().min(1).optional(),
40069
40124
  kind: layoutBlockKindSchema,
40070
40125
  // Allow omitted content for blocks that rely on defaults.
40071
- content: z74.record(z74.string(), z74.unknown()).optional()
40126
+ content: z72.record(z72.string(), z72.unknown()).optional()
40072
40127
  }).strict();
40073
- var layoutConfigSchema = z74.object({
40074
- footerBlocks: z74.array(layoutFooterBlockSchema).optional()
40128
+ var layoutConfigSchema = z72.object({
40129
+ footerBlocks: z72.array(layoutFooterBlockSchema).optional()
40075
40130
  }).strict();
40076
- var sdkWorkflowIdSchema2 = z74.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
40131
+ var sdkWorkflowIdSchema2 = z72.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
40077
40132
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
40078
40133
  });
40079
- 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 "/"' });
40080
- var sdkWorkflowTriggerSchema2 = z74.discriminatedUnion("type", [
40081
- z74.object({ type: z74.literal("manual") }).strict()
40134
+ 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 "/"' });
40135
+ var sdkWorkflowTriggerSchema2 = z72.discriminatedUnion("type", [
40136
+ z72.object({ type: z72.literal("manual") }).strict()
40082
40137
  ]);
40083
- var sdkWorkflowConfirmationSchema2 = z74.object({
40084
- title: z74.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
40085
- body: z74.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
40138
+ var sdkWorkflowConfirmationSchema2 = z72.object({
40139
+ title: z72.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
40140
+ body: z72.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
40086
40141
  }).strict();
40087
- var sdkWorkflowConfigSchema2 = z74.object({
40142
+ var sdkWorkflowConfigSchema2 = z72.object({
40088
40143
  id: sdkWorkflowIdSchema2,
40089
- title: z74.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
40090
- description: z74.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
40091
- contentType: z74.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
40144
+ title: z72.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
40145
+ description: z72.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
40146
+ contentType: z72.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
40092
40147
  endpoint: sdkWorkflowEndpointSchema2,
40093
- triggers: z74.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
40148
+ triggers: z72.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
40094
40149
  confirmation: sdkWorkflowConfirmationSchema2.optional()
40095
40150
  }).strict();
40096
- var sdkWorkflowsSchema2 = z74.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
40151
+ var sdkWorkflowsSchema2 = z72.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
40097
40152
  const ids = workflows.map((workflow) => workflow.id);
40098
40153
  return ids.length === new Set(ids).size;
40099
40154
  }, { message: "Workflow IDs must be unique" }).optional();
40100
- var riverbankSiteConfigSchema = z74.object({
40101
- siteId: z74.string().uuid(),
40155
+ var riverbankSiteConfigSchema = z72.object({
40156
+ siteId: z72.string().uuid(),
40102
40157
  previewUrl: sdkSiteUrlSchema.optional(),
40103
40158
  liveUrl: sdkSiteUrlSchema.optional(),
40104
40159
  theme: sdkThemeConfigSchema2.optional(),
40105
40160
  styles: siteStyleConfigSchema,
40106
40161
  layout: layoutConfigSchema.optional(),
40107
- customBlocks: z74.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
40162
+ customBlocks: z72.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
40108
40163
  // Ensure unique block IDs
40109
40164
  (blocks) => {
40110
40165
  const ids = blocks.map((b) => b.id);
@@ -40117,7 +40172,7 @@ var riverbankSiteConfigSchema = z74.object({
40117
40172
  workflows: sdkWorkflowsSchema2,
40118
40173
  content: contentConfigSchema.optional(),
40119
40174
  // CLI-related configuration (Phase 4)
40120
- contentDir: z74.string().optional(),
40175
+ contentDir: z72.string().optional(),
40121
40176
  sync: syncConfigSchema,
40122
40177
  deploy: deployConfigSchema,
40123
40178
  // Theme sync configuration (Phase 5)