@riverbankcms/sdk 0.88.0 → 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 (198) hide show
  1. package/README.md +27 -4
  2. package/dist/{PreviewEditorSidebar-EVRS3C7T.mjs → PreviewEditorSidebar-KVXNF3VW.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-54WD4IGE.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/accessAdmin.d.ts +7 -0
  8. package/dist/_dts/api/src/bookingOperations.d.ts +2 -0
  9. package/dist/_dts/api/src/bookingRecords.d.ts +4 -2
  10. package/dist/_dts/api/src/bookings.d.ts +3 -1
  11. package/dist/_dts/api/src/endpoints.d.ts +8 -0
  12. package/dist/_dts/api/src/index.d.ts +7 -6
  13. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +15 -5
  14. package/dist/_dts/api/src/request.d.ts +21 -0
  15. package/dist/_dts/api/src/sdk-event-upsert.d.ts +3 -1
  16. package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
  17. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +5 -1
  18. package/dist/_dts/api/src/siteMembers.d.ts +6 -1
  19. package/dist/_dts/api/src/types.d.ts +4 -2
  20. package/dist/_dts/api/src/url.d.ts +6 -3
  21. package/dist/_dts/block-form/src/utils/visibleWhen.d.ts +1 -0
  22. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailCard.d.ts +5 -1
  23. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailGrid.d.ts +9 -1
  24. package/dist/_dts/block-form/src/widgets/RepeaterField/components/index.d.ts +1 -0
  25. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +7 -11
  26. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +6 -0
  27. package/dist/_dts/blocks/src/index.d.ts +2 -1
  28. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +14 -6
  29. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -4
  30. package/dist/_dts/blocks/src/system/blocks/hero.d.ts +0 -2
  31. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +3 -3
  32. package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +8 -0
  33. package/dist/_dts/blocks/src/system/constants/events.d.ts +4 -1
  34. package/dist/_dts/blocks/src/system/icons/cta.d.ts +3 -3
  35. package/dist/_dts/blocks/src/system/icons/index.d.ts +1 -0
  36. package/dist/_dts/blocks/src/system/icons/registry.d.ts +2 -2
  37. package/dist/_dts/blocks/src/system/icons/semantic.d.ts +3 -3
  38. package/dist/_dts/blocks/src/system/icons/svg.d.ts +72 -0
  39. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +3 -1
  40. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -0
  41. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +18 -5
  42. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +51 -6
  43. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -0
  44. package/dist/_dts/blocks/src/system/runtime/hooks/loadStateError.d.ts +1 -0
  45. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableDates.d.ts +1 -1
  46. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableDates.state.d.ts +55 -0
  47. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableSlots.state.d.ts +39 -0
  48. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingFormConfig.d.ts +4 -27
  49. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingFormConfig.state.d.ts +40 -0
  50. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +20 -0
  51. package/dist/_dts/blocks/src/system/runtime/hooks/useEventFilters.state.d.ts +31 -0
  52. package/dist/_dts/blocks/src/system/runtime/hooks/useEventPagination.d.ts +3 -3
  53. package/dist/_dts/blocks/src/system/runtime/hooks/useEventPagination.state.d.ts +39 -0
  54. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +2 -2
  55. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +1 -17
  56. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +5 -9
  57. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +5 -9
  58. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -1
  59. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +24 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +5 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.d.ts +4 -4
  62. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.state.d.ts +50 -0
  63. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -2
  64. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +21 -0
  65. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
  66. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +11 -1
  67. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +2 -1
  68. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +11 -1
  69. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventPaginatedListView.client.d.ts +1 -1
  70. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/calendarViewOptions.d.ts +10 -0
  71. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventProductEligibility.d.ts +24 -0
  72. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.state.d.ts +24 -2
  73. package/dist/_dts/blocks/src/system/runtime/nodes/shared/MagicLinkForm.state.d.ts +24 -0
  74. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +5 -2
  75. package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout-form.d.ts +2 -2
  76. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.state.d.ts +35 -0
  77. package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
  78. package/dist/_dts/content-model/src/entry-slots/sdkBlocks.d.ts +21 -0
  79. package/dist/_dts/content-model/src/entry-slots/types.d.ts +61 -0
  80. package/dist/_dts/core/src/branded.d.ts +7 -0
  81. package/dist/_dts/core/src/index.d.ts +1 -0
  82. package/dist/_dts/core/src/money-input.d.ts +18 -0
  83. package/dist/_dts/core/src/site-route-target.d.ts +40 -0
  84. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +209 -2
  85. package/dist/_dts/media-core/src/fileDomain.d.ts +4 -0
  86. package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
  87. package/dist/_dts/media-editor/src/fieldUi.d.ts +6 -0
  88. package/dist/_dts/media-editor/src/index.d.ts +1 -1
  89. package/dist/_dts/preview-next/src/client/index.d.ts +1 -0
  90. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +3 -2
  91. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +3 -2
  92. package/dist/_dts/preview-next/src/client/preview/PreviewThemedSiteDocument.d.ts +3 -2
  93. package/dist/_dts/preview-next/src/client/preview/SiteChromeEditableSurface.d.ts +2 -2
  94. package/dist/_dts/preview-next/src/client/preview/themeRuntime.d.ts +6 -0
  95. package/dist/_dts/preview-next/src/client/sdk/SdkPreviewMode.d.ts +2 -1
  96. package/dist/_dts/sdk/src/cli/commands/pull-dated-offering-scope.d.ts +10 -0
  97. package/dist/_dts/sdk/src/cli/content/reader.d.ts +12 -5
  98. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -55
  99. package/dist/_dts/sdk/src/client/runtimeCachePolicy.d.ts +160 -0
  100. package/dist/_dts/sdk/src/client/types.d.ts +26 -1
  101. package/dist/_dts/sdk/src/components.d.ts +1 -0
  102. package/dist/_dts/sdk/src/config/field-definitions.d.ts +3 -1
  103. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +3 -1
  104. package/dist/_dts/sdk/src/index.d.ts +3 -1
  105. package/dist/_dts/sdk/src/next/types.d.ts +8 -11
  106. package/dist/_dts/sdk/src/preview-next/client/index.d.ts +1 -1
  107. package/dist/_dts/sdk/src/rendering/blocks-theme-scope.d.ts +2 -1
  108. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +8 -7
  109. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +5 -6
  110. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
  111. package/dist/_dts/sdk/src/rendering/server.d.ts +1 -0
  112. package/dist/_dts/sdk/src/rendering/themeRuntime.d.ts +26 -0
  113. package/dist/_dts/sdk/src/version.d.ts +1 -1
  114. package/dist/_dts/site-commands/src/commands.d.ts +18 -0
  115. package/dist/_dts/theme-core/src/ResponsiveScope.d.ts +12 -0
  116. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  117. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +2 -2
  118. package/dist/_dts/theme-core/src/buttons/types.d.ts +5 -5
  119. package/dist/_dts/theme-core/src/cards/types.d.ts +2 -2
  120. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  121. package/dist/_dts/theme-core/src/index.d.ts +2 -0
  122. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +21 -21
  123. package/dist/_dts/theme-core/src/schema.d.ts +18 -18
  124. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
  125. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
  126. package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +4 -4
  127. package/dist/_dts/theme-core/src/themeRuntime.d.ts +11 -0
  128. package/dist/{chunk-ER4UIW4X.mjs → chunk-AEOYWPE4.mjs} +91 -55
  129. package/dist/{chunk-O4LVYUVH.mjs → chunk-BOQXMCSP.mjs} +147 -101
  130. package/dist/{chunk-HVOBXA3Y.mjs → chunk-GSPFFUVB.mjs} +2 -2
  131. package/dist/{chunk-7KOO7RPP.mjs → chunk-PMBB6MQ7.mjs} +2273 -1113
  132. package/dist/{chunk-K3JWH6HE.mjs → chunk-RQ3XZ4SJ.mjs} +9 -1
  133. package/dist/{chunk-YDMBIIS5.mjs → chunk-UG7I7S7W.mjs} +1 -1
  134. package/dist/cli/index.mjs +1564 -546
  135. package/dist/cli/init-docs/content/cli-reference.md +6 -1
  136. package/dist/cli/init-docs/content/content-management.md +27 -0
  137. package/dist/client/{accordion-PT5CGW5N.mjs → accordion-GXQNWQ6O.mjs} +2 -2
  138. package/dist/client/{bookingForm-2HLRTEYS.mjs → bookingForm-STLUJ36H.mjs} +206 -335
  139. package/dist/client/bookings.mjs +821 -413
  140. package/dist/client/{carousel-Z2LKYSWA.mjs → carousel-CVRN6EPP.mjs} +4 -3
  141. package/dist/client/{cart-ND5IK4A6.mjs → cart-IYIBA5CL.mjs} +8 -8
  142. package/dist/client/{checkout-EYUSGAY7.mjs → checkout-O3BGM4GS.mjs} +8 -8
  143. package/dist/client/chunk-4RTFGHZN.mjs +433 -0
  144. package/dist/client/{chunk-DIRW2LNG.mjs → chunk-6DPXDOIL.mjs} +336 -225
  145. package/dist/client/chunk-6N7YRNYU.mjs +183 -0
  146. package/dist/client/{chunk-O5JNI3E4.mjs → chunk-7DH35FGA.mjs} +2 -2
  147. package/dist/client/{chunk-S4G65LGR.mjs → chunk-D3ETC2SU.mjs} +1 -1
  148. package/dist/client/{chunk-BAWHZ5GM.mjs → chunk-DAS5CIER.mjs} +460 -157
  149. package/dist/client/{chunk-6DVPO44G.mjs → chunk-FHU6PFPM.mjs} +1 -1
  150. package/dist/client/{chunk-SDIYSQAY.mjs → chunk-HIHOQGIP.mjs} +2 -3
  151. package/dist/client/{chunk-BL66UWGD.mjs → chunk-MFPKS6QS.mjs} +13 -16
  152. package/dist/client/{chunk-X7GVFB7Y.mjs → chunk-NBFRJ5NB.mjs} +157 -5
  153. package/dist/client/{chunk-WCVK4MBJ.mjs → chunk-VFHZLZAC.mjs} +1 -1
  154. package/dist/client/{chunk-GOFO7HRH.mjs → chunk-WHZQDPBZ.mjs} +19 -1
  155. package/dist/client/{chunk-MHBEWDT7.mjs → chunk-Z62JYS5O.mjs} +122 -50
  156. package/dist/client/client.mjs +5979 -5198
  157. package/dist/client/{courseRegistration-H3AZBUEG.mjs → courseRegistration-2D3ACMJR.mjs} +20 -58
  158. package/dist/client/{eventCalendar-FPKJGLGS.mjs → eventCalendar-QY4UZUFF.mjs} +11 -11
  159. package/dist/client/{eventCombined-QCGIZBUY.mjs → eventCombined-RRCDKJC2.mjs} +11 -11
  160. package/dist/client/{eventDetails-HIT3BJWU.mjs → eventDetails-YO335BUT.mjs} +11 -11
  161. package/dist/client/{eventListing-R4HNWJDN.mjs → eventListing-PXA6GFQ3.mjs} +11 -11
  162. package/dist/client/{eventRegistration-Q7BYY5HF.mjs → eventRegistration-2ZHEDDXO.mjs} +11 -11
  163. package/dist/client/{form-NI6YOG6S.mjs → form-ZS6KX4U2.mjs} +7 -7
  164. package/dist/client/{headerSection-SDYGII36.mjs → headerSection-QK5SLIIB.mjs} +3 -3
  165. package/dist/client/hooks.mjs +1102 -1029
  166. package/dist/client/{locationMap-BDETEUQD.mjs → locationMap-GFNIUD2X.mjs} +3 -3
  167. package/dist/client/{newsletterForm-EKYIU67X.mjs → newsletterForm-PGLTTCUG.mjs} +61 -25
  168. package/dist/client/{productDetail-5UTGNN76.mjs → productDetail-OPBE5ZPI.mjs} +8 -8
  169. package/dist/client/{productList-7YA5KXZQ.mjs → productList-NI72Q62Z.mjs} +8 -8
  170. package/dist/client/rendering/client.mjs +4390 -4245
  171. package/dist/client/rendering/islands.mjs +19 -19
  172. package/dist/client/rendering.mjs +3327 -3181
  173. package/dist/client/{shop-AIMUMZYC.mjs → shop-3ZQPEWYI.mjs} +8 -8
  174. package/dist/client/spam-protection.mjs +4 -5
  175. package/dist/preview-next/before-render.mjs +20 -2
  176. package/dist/preview-next/client/runtime.mjs +5 -5
  177. package/dist/preview-next/middleware.mjs +18 -0
  178. package/dist/{sdk-runtime-NW472WNT.mjs → sdk-runtime-FSHXCWDS.mjs} +6 -6
  179. package/dist/server/components.mjs +2580 -2783
  180. package/dist/server/config-validation.mjs +1334 -1261
  181. package/dist/server/config.mjs +1334 -1261
  182. package/dist/server/data.mjs +1102 -1029
  183. package/dist/server/index.mjs +1097 -476
  184. package/dist/server/navigation.mjs +20 -30
  185. package/dist/server/next.mjs +3282 -2847
  186. package/dist/server/page-converter.mjs +1009 -946
  187. package/dist/server/prebuild.mjs +1 -1
  188. package/dist/server/rendering/server.mjs +2580 -2783
  189. package/dist/server/rendering.mjs +2586 -2789
  190. package/dist/server/routing.mjs +1440 -1053
  191. package/dist/server/server.mjs +1886 -1153
  192. package/dist/server/theme-bridge.mjs +34 -5
  193. package/dist/styles/index.css +26 -0
  194. package/package.json +3 -2
  195. package/dist/SdkPreviewModeRuntime-ZALZDJEK.mjs +0 -8
  196. package/dist/client/chunk-H4MHEXYS.mjs +0 -184
  197. package/dist/client/chunk-ZFHRN6W2.mjs +0 -66
  198. /package/dist/client/{chunk-LI2C6M5O.mjs → chunk-25W2EQUN.mjs} +0 -0
@@ -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) {
@@ -1858,6 +1858,24 @@ var ENDPOINT_DEFINITIONS = {
1858
1858
  auth: "user",
1859
1859
  responseKind: "json"
1860
1860
  },
1861
+ resendSiteInvitation: {
1862
+ path: "/sites/{siteId}/members/invitations/{invitationId}/resend",
1863
+ method: "POST",
1864
+ errors: [
1865
+ "auth:forbidden",
1866
+ "resource:not_found",
1867
+ "validation:invalid_input",
1868
+ "external:service_error",
1869
+ "server:internal_error"
1870
+ ],
1871
+ tags: [
1872
+ "site-{siteId}",
1873
+ "site-members-{siteId}",
1874
+ "site-invite-{invitationId}"
1875
+ ],
1876
+ auth: "user",
1877
+ responseKind: "json"
1878
+ },
1861
1879
  transferSiteOwnership: {
1862
1880
  path: "/sites/{siteId}/members/transfer-ownership",
1863
1881
  method: "POST",
@@ -6795,7 +6813,7 @@ var navigationLinkInputSchema = z2.discriminatedUnion(
6795
6813
  );
6796
6814
 
6797
6815
  // ../api/src/sdkConfig/contracts.ts
6798
- import { z as z65 } from "zod";
6816
+ import { z as z63 } from "zod";
6799
6817
 
6800
6818
  // ../blocks/src/system/manifest/augmentManifest.ts
6801
6819
  function augmentManifest(manifest) {
@@ -7223,12 +7241,17 @@ var visibleWhenPredicateSchema = z4.object({
7223
7241
  minItems: z4.number().int().nonnegative().optional(),
7224
7242
  maxItems: z4.number().int().nonnegative().optional()
7225
7243
  });
7226
- var visibleWhenSchema = z4.union([
7227
- visibleWhenPredicateSchema,
7228
- z4.object({
7229
- allOf: z4.array(visibleWhenPredicateSchema).min(1)
7230
- })
7231
- ]);
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
+ );
7232
7255
  var uiSchema = z4.object({
7233
7256
  widget: z4.string().optional(),
7234
7257
  // Container/widget presets (used by Group/Repeater widgets themselves, not for widget selection)
@@ -20133,9 +20156,6 @@ var heroCopyFragment = defineFragment({
20133
20156
  maxLength: 600
20134
20157
  }
20135
20158
  ],
20136
- // Layout order is [eyebrow, headline, subheadline]. The hero block's
20137
- // `splitEditorial` variant reads these nodes by index; keep the order stable
20138
- // (it fails fast at import if the count changes).
20139
20159
  layout: [
20140
20160
  text(
20141
20161
  {
@@ -22373,32 +22393,6 @@ var splitReverseLayout = splitLayoutWith([
22373
22393
  splitContentColumn,
22374
22394
  splitImageColumn
22375
22395
  ]);
22376
- var heroEyebrowNode = heroCopyFragment.layout[0];
22377
- var heroHeadlineNode = heroCopyFragment.layout[1];
22378
- var heroSubheadlineNode = heroCopyFragment.layout[2];
22379
- var heroCtaRowNode = heroCtaRowFragment.layout[0];
22380
- if (!heroEyebrowNode || !heroHeadlineNode || !heroSubheadlineNode || !heroCtaRowNode) {
22381
- throw new Error("Hero copy/CTA fragments are missing their expected layout nodes.");
22382
- }
22383
- var heroEditorialBottomRow = inline(
22384
- {
22385
- gap: "lg",
22386
- align: "end",
22387
- justify: "start",
22388
- wrap: true,
22389
- className: "rb-w-full"
22390
- },
22391
- [heroSubheadlineNode, heroCtaRowNode]
22392
- );
22393
- var splitEditorialContentColumn = heroContentWrapper(
22394
- [heroEyebrowNode, heroHeadlineNode, heroEditorialBottomRow],
22395
- "md",
22396
- "rb-w-full rb-text-left"
22397
- );
22398
- var splitEditorialLayout = splitLayoutWith([
22399
- splitEditorialContentColumn,
22400
- splitImageColumn
22401
- ]);
22402
22396
  var heroConfig = {
22403
22397
  id: "block.hero",
22404
22398
  title: "Hero",
@@ -22422,7 +22416,8 @@ var heroConfig = {
22422
22416
  id: "imageShape",
22423
22417
  label: "Image shape",
22424
22418
  defaultValue: "default",
22425
- uiIntent: "display"
22419
+ uiIntent: "display",
22420
+ visibleWhen: { field: "variant", oneOf: ["split", "splitReverse"] }
22426
22421
  })
22427
22422
  ],
22428
22423
  layout: classicLayout,
@@ -22430,8 +22425,7 @@ var heroConfig = {
22430
22425
  classic: classicLayout,
22431
22426
  micro: microLayout,
22432
22427
  split: splitLayout,
22433
- splitReverse: splitReverseLayout,
22434
- splitEditorial: splitEditorialLayout
22428
+ splitReverse: splitReverseLayout
22435
22429
  },
22436
22430
  defaultVariant: "classic",
22437
22431
  description: "Hero section with headline, subtitle, and repeatable CTAs.",
@@ -24307,8 +24301,10 @@ function resolveGeneratedHeroLayoutStyles(content) {
24307
24301
  return isPlainObject(raw) ? raw : null;
24308
24302
  }
24309
24303
  function readHeroLayoutString(content, generatedKey, fallbackKey = generatedKey) {
24304
+ const explicitValue = readString(content, fallbackKey);
24305
+ if (explicitValue !== void 0) return explicitValue;
24310
24306
  const generated = resolveGeneratedHeroLayoutStyles(content);
24311
- return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : readString(content, fallbackKey);
24307
+ return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : void 0;
24312
24308
  }
24313
24309
  function resolveHeroVariant(content) {
24314
24310
  const variant = readString(content, "variant");
@@ -24321,7 +24317,7 @@ function resolveHeroContentAlignment(content) {
24321
24317
  const raw = readHeroLayoutString(content, "contentAlignment");
24322
24318
  if (raw === "left" || raw === "center" || raw === "right") return raw;
24323
24319
  const variant = resolveHeroVariant(content);
24324
- if (variant === "split" || variant === "splitReverse" || variant === "splitEditorial") return "left";
24320
+ if (variant === "split" || variant === "splitReverse") return "left";
24325
24321
  return "center";
24326
24322
  }
24327
24323
  function resolveHeroVerticalAlignment(content) {
@@ -24331,7 +24327,7 @@ function resolveHeroVerticalAlignment(content) {
24331
24327
  const minHeight = sectionStyles?.minHeight;
24332
24328
  if (minHeight === "banner" || minHeight === "hero" || minHeight === "immersive") return "center";
24333
24329
  const variant = resolveHeroVariant(content);
24334
- if (variant === "split" || variant === "splitReverse" || variant === "splitEditorial") return "center";
24330
+ if (variant === "split" || variant === "splitReverse") return "center";
24335
24331
  return "top";
24336
24332
  }
24337
24333
  function resolveHeroContentMaxWidth(content) {
@@ -27897,9 +27893,6 @@ var appointmentBookingBlockDefinition = {
27897
27893
  }
27898
27894
  };
27899
27895
 
27900
- // ../blocks/src/system/blocks/event-registration.ts
27901
- import { z as z47 } from "zod";
27902
-
27903
27896
  // ../blocks/src/system/blocks/events/shared/schemas.ts
27904
27897
  import { z as z43 } from "zod";
27905
27898
 
@@ -28514,24 +28507,57 @@ function normalizeEventStaffMemberId(value) {
28514
28507
  return trimmed ? trimmed : null;
28515
28508
  }
28516
28509
 
28517
- // ../blocks/src/system/blocks/event-registration.shared.ts
28510
+ // ../blocks/src/system/blocks/shop.shared.ts
28518
28511
  import { z as z44 } from "zod";
28519
- var occurrenceContextSchema = z44.object({
28512
+ var publicPassProductSchema = z44.object({
28513
+ id: z44.string(),
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({
28520
28529
  id: z44.string(),
28521
- seriesId: z44.string(),
28522
- startsAt: z44.string(),
28523
- endsAt: z44.string(),
28524
- timeZone: z44.string(),
28525
- capacityOverride: z44.number().nullable().optional(),
28526
- overrides: z44.record(z44.string(), z44.unknown()).nullable().optional()
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()
28527
28552
  }).nullable();
28528
28553
 
28529
28554
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28530
- import { z as z46 } from "zod";
28555
+ import { z as z47 } from "zod";
28531
28556
 
28532
28557
  // ../blocks/src/system/constants/events.ts
28533
28558
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
28534
- var eventCalendarDisplayModeValues = ["combined", "month", "week", "list", "timetable"];
28559
+ var eventCalendarDisplayModeValues = ["combined", "calendar", "list", "timetable"];
28560
+ var eventCalendarDefaultViewValues = ["month", "week"];
28535
28561
  var eventCalendarListLayoutValues = ["stack", "grid", "compact"];
28536
28562
  var eventCalendarListLayoutOptions = [
28537
28563
  { id: "stack", label: "Stack" },
@@ -28541,6 +28567,9 @@ var eventCalendarListLayoutOptions = [
28541
28567
  function isEventCalendarDisplayMode(value) {
28542
28568
  return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
28543
28569
  }
28570
+ function isEventCalendarDefaultView(value) {
28571
+ return typeof value === "string" && eventCalendarDefaultViewValues.includes(value);
28572
+ }
28544
28573
  function isEventCalendarListLayout(value) {
28545
28574
  return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
28546
28575
  }
@@ -28681,16 +28710,17 @@ function readAmount(value) {
28681
28710
  }
28682
28711
 
28683
28712
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
28684
- import { z as z45 } from "zod";
28685
- var previewStageSchema = z45.enum(["preview", "published"]);
28686
- var registrationButtonVariantSchema = z45.enum(["primary", "secondary", "outline"]);
28687
- var eventButtonVariantSchema = z45.enum(["primary", "secondary", "outline", "link"]);
28688
- var eventLayoutSchema = z45.enum(eventCalendarListLayoutValues);
28689
- var eventCalendarDisplayModeSchema = z45.enum(eventCalendarDisplayModeValues);
28690
- var columnOptionSchema = z45.enum(["2", "3", "4"]);
28691
- var weekStartSchema = z45.enum(["sunday", "monday"]);
28692
- var filterAutoShowSchema = z45.enum(["auto", "always", "never"]);
28693
- 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"]);
28694
28724
 
28695
28725
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
28696
28726
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -28708,7 +28738,7 @@ function eventMatchesOccurrenceId(event, occurrenceId) {
28708
28738
  function findPreSelectedEvent(input) {
28709
28739
  const occurrenceContext = input.occurrenceContext;
28710
28740
  if (!occurrenceContext) {
28711
- return null;
28741
+ return input.scopedEvents.length === 1 ? input.scopedEvents[0] ?? null : null;
28712
28742
  }
28713
28743
  const contextDate = getBookingLocalDateKey(toScheduledBookingDateTime({
28714
28744
  startsAt: occurrenceContext.startsAt,
@@ -28750,68 +28780,72 @@ function toRegistrationEvents(events) {
28750
28780
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28751
28781
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
28752
28782
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
28753
- var contentEntrySchema = z46.object({
28754
- id: z46.string(),
28755
- slug: z46.string(),
28756
- contentTypeSlug: z46.string()
28783
+ var contentEntrySchema = z47.object({
28784
+ id: z47.string(),
28785
+ slug: z47.string(),
28786
+ contentTypeSlug: z47.string()
28757
28787
  });
28758
- var eventRegistrationPublicEventSchema = z46.preprocess(
28788
+ var eventRegistrationPublicEventSchema = z47.preprocess(
28759
28789
  normalizeEventRegistrationEventInput,
28760
28790
  publicEventSchema
28761
28791
  );
28762
- var eventRegistrationSourceSchema = z46.object({
28763
- siteId: z46.string().optional(),
28764
- apiBaseUrl: z46.string().optional(),
28765
- portalToken: z46.string().nullable().optional(),
28766
- 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(),
28767
28797
  occurrenceContext: occurrenceContextSchema.optional(),
28768
28798
  contentEntry: contentEntrySchema.nullable().optional(),
28769
- events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
28770
- className: z46.string().nullable().optional(),
28771
- buttonText: z46.string().nullable().optional(),
28772
- maxTickets: z46.string().nullable().optional(),
28773
- showVenue: z46.boolean().optional(),
28774
- showCapacity: z46.boolean().optional(),
28775
- successMessage: z46.string().optional(),
28776
- 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(),
28777
28807
  buttonVariant: registrationButtonVariantSchema.optional(),
28778
- overlayEnabled: z46.boolean().optional(),
28779
- spamProtectionEnabled: z46.boolean().optional(),
28808
+ overlayEnabled: z47.boolean().optional(),
28809
+ spamProtectionEnabled: z47.boolean().optional(),
28780
28810
  stage: previewStageSchema.optional(),
28781
- supportEmail: z46.string().optional()
28782
- });
28783
- var eventRegistrationDisplaySchema = z46.object({
28784
- kind: z46.literal("event-registration"),
28785
- state: z46.literal("generic-shell"),
28786
- className: z46.string().nullable(),
28787
- titleText: z46.string(),
28788
- bodyText: z46.string(),
28789
- stepLabels: z46.array(z46.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28790
- summaryButtonText: z46.string()
28791
- });
28792
- 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({
28793
28825
  occurrenceContext: occurrenceContextSchema.optional(),
28794
28826
  contentEntry: contentEntrySchema.nullable().optional(),
28795
- events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
28796
- maxTickets: z46.string().optional(),
28797
- showVenue: z46.boolean().optional(),
28798
- showCapacity: z46.boolean().optional(),
28799
- successMessage: z46.string().optional(),
28800
- 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(),
28801
28833
  buttonVariant: registrationButtonVariantSchema.optional(),
28802
- overlayEnabled: z46.boolean().optional(),
28803
- spamProtectionEnabled: z46.boolean().optional(),
28804
- 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()
28805
28839
  });
28806
- var eventRegistrationRenderSchema = z46.object({
28840
+ var eventRegistrationRenderSchema = z47.object({
28807
28841
  display: eventRegistrationDisplaySchema,
28808
28842
  hydration: eventRegistrationHydrationSchema
28809
28843
  });
28810
- var eventRegistrationIslandMetaCodec = createZodCodec(z46.object({
28811
- siteId: z46.string().optional(),
28812
- apiBaseUrl: z46.string().optional(),
28813
- portalToken: z46.string().nullable().optional(),
28814
- 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(),
28815
28849
  stage: previewStageSchema.optional()
28816
28850
  }));
28817
28851
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -28917,7 +28951,9 @@ var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
28917
28951
  buttonVariant: source.buttonVariant,
28918
28952
  overlayEnabled: source.overlayEnabled,
28919
28953
  spamProtectionEnabled: source.spamProtectionEnabled,
28920
- supportEmail: source.supportEmail
28954
+ supportEmail: source.supportEmail,
28955
+ sitePasses: source.sitePasses ?? null,
28956
+ siteMemberships: source.siteMemberships ?? null
28921
28957
  }
28922
28958
  })
28923
28959
  });
@@ -29099,6 +29135,8 @@ var eventRegistrationManifest = createBlockManifest({
29099
29135
  },
29100
29136
  // Event data from loader
29101
29137
  events: { $bind: { from: "data.events" } },
29138
+ sitePasses: { $bind: { from: "data.sitePasses" } },
29139
+ siteMemberships: { $bind: { from: "data.siteMemberships" } },
29102
29140
  // Stage for preview mode (allows registering for draft events)
29103
29141
  stage: {
29104
29142
  $bind: { from: "$root.previewStage", fallback: "published" }
@@ -29117,7 +29155,9 @@ var eventRegistrationBlockDefinition = {
29117
29155
  manifest: eventRegistrationManifest,
29118
29156
  runtime: eventRegistrationBlockRuntime,
29119
29157
  dataSchemas: {
29120
- events: z47.array(publicEventSchema).optional(),
29158
+ events: publicEventsArraySchema.optional(),
29159
+ sitePasses: publicPassProductCollectionSchema.optional(),
29160
+ siteMemberships: publicMembershipProductCollectionSchema.optional(),
29121
29161
  occurrenceContext: occurrenceContextSchema.optional()
29122
29162
  },
29123
29163
  dataLoaders: {
@@ -29136,6 +29176,20 @@ var eventRegistrationBlockDefinition = {
29136
29176
  entryId: { $bind: { from: "$root.contentEntry._entryId", fallback: "" } }
29137
29177
  },
29138
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"
29139
29193
  }
29140
29194
  }
29141
29195
  };
@@ -29467,35 +29521,7 @@ var courseRegistrationBlockDefinition = {
29467
29521
  };
29468
29522
 
29469
29523
  // ../blocks/src/system/blocks/event-details.ts
29470
- import { z as z50 } from "zod";
29471
-
29472
- // ../blocks/src/system/blocks/shop.shared.ts
29473
29524
  import { z as z49 } from "zod";
29474
- var publicPassProductSchema = z49.object({
29475
- id: z49.string(),
29476
- productUseCase: z49.enum(["event_pass", "appointment_package"]).default("event_pass"),
29477
- name: z49.string(),
29478
- description: z49.string().nullable(),
29479
- price: z49.number(),
29480
- currency: z49.string(),
29481
- creditsTotal: z49.number(),
29482
- pricePerCredit: z49.number(),
29483
- validDays: z49.number().nullable(),
29484
- eligibleCategoryIds: z49.array(z49.string()),
29485
- eligibleCategoryNames: z49.array(z49.string())
29486
- });
29487
- var publicMembershipProductSchema = z49.object({
29488
- id: z49.string(),
29489
- name: z49.string(),
29490
- description: z49.string().nullable(),
29491
- price: z49.number(),
29492
- currency: z49.string(),
29493
- billingInterval: z49.enum(["month", "year"]),
29494
- eligibleCategoryIds: z49.array(z49.string()),
29495
- eligibleCategoryNames: z49.array(z49.string())
29496
- });
29497
-
29498
- // ../blocks/src/system/blocks/event-details.ts
29499
29525
  var eventDetailsManifest = createBlockManifest({
29500
29526
  id: "block.event-details",
29501
29527
  version: "1.0.0",
@@ -29627,40 +29653,40 @@ var eventDetailsManifest = createBlockManifest({
29627
29653
  })
29628
29654
  ]
29629
29655
  });
29630
- var occurrenceContextSchema2 = z50.object({
29631
- id: z50.string(),
29632
- seriesId: z50.string(),
29633
- startsAt: z50.string(),
29634
- endsAt: z50.string(),
29635
- timeZone: z50.string(),
29636
- capacityOverride: z50.number().nullable().optional(),
29637
- 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()
29638
29664
  }).nullable();
29639
- var eventAutoApplyDiscountPreviewBaseSchema = z50.object({
29640
- id: z50.string(),
29641
- publicLabel: z50.string(),
29642
- description: z50.string().nullable(),
29643
- 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()
29644
29670
  });
29645
- var eventAutoApplyDiscountPreviewSchema = z50.discriminatedUnion("discountType", [
29671
+ var eventAutoApplyDiscountPreviewSchema = z49.discriminatedUnion("discountType", [
29646
29672
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29647
- discountType: z50.literal("percent"),
29648
- discountPercent: z50.number(),
29649
- discountAmountCents: z50.null()
29673
+ discountType: z49.literal("percent"),
29674
+ discountPercent: z49.number(),
29675
+ discountAmountCents: z49.null()
29650
29676
  }),
29651
29677
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29652
- discountType: z50.literal("fixed"),
29653
- discountPercent: z50.null(),
29654
- discountAmountCents: z50.number()
29678
+ discountType: z49.literal("fixed"),
29679
+ discountPercent: z49.null(),
29680
+ discountAmountCents: z49.number()
29655
29681
  })
29656
29682
  ]);
29657
29683
  var eventDetailsBlockDefinition = {
29658
29684
  manifest: eventDetailsManifest,
29659
29685
  dataSchemas: {
29660
- eventDetailsData: z50.object({
29686
+ eventDetailsData: z49.object({
29661
29687
  events: publicEventsArraySchema,
29662
- sitePasses: z50.object({ passes: z50.array(publicPassProductSchema) }),
29663
- siteMemberships: z50.object({ memberships: z50.array(publicMembershipProductSchema) }),
29688
+ sitePasses: publicPassProductCollectionSchema,
29689
+ siteMemberships: publicMembershipProductCollectionSchema,
29664
29690
  autoApplyDiscount: eventAutoApplyDiscountPreviewSchema.nullable().optional().default(null)
29665
29691
  }).optional(),
29666
29692
  occurrenceContext: occurrenceContextSchema2.optional()
@@ -29984,7 +30010,7 @@ var eventSpotlightBlockDefinition = {
29984
30010
  };
29985
30011
 
29986
30012
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
29987
- import { z as z52 } from "zod";
30013
+ import { z as z51 } from "zod";
29988
30014
 
29989
30015
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
29990
30016
  var COLUMN_CLASSES = {
@@ -30092,16 +30118,16 @@ function computeMediaTransformStyle(value, style, targetAspectRatio, options) {
30092
30118
  }
30093
30119
 
30094
30120
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
30095
- import { z as z51 } from "zod";
30121
+ import { z as z50 } from "zod";
30096
30122
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
30097
- var eventPageSizeSchema = z51.union([
30098
- z51.literal(3),
30099
- z51.literal(6),
30100
- z51.literal(10),
30101
- z51.literal(12),
30102
- z51.literal(20),
30103
- z51.literal(24),
30104
- 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)
30105
30131
  ]);
30106
30132
  var eventPageSizeSet = new Set(eventPageSizeValues);
30107
30133
  function resolveEventPageSize(value, fallback = 12) {
@@ -30111,15 +30137,15 @@ function resolveEventPageSize(value, fallback = 12) {
30111
30137
  function resolveEventCalendarListPageSize(input) {
30112
30138
  return resolveEventPageSize(input.eventsPerPage);
30113
30139
  }
30114
- var eventListPaginationActionSchema = z51.discriminatedUnion("kind", [
30115
- z51.object({
30116
- kind: z51.literal("loadMore"),
30117
- label: z51.string()
30140
+ var eventListPaginationActionSchema = z50.discriminatedUnion("kind", [
30141
+ z50.object({
30142
+ kind: z50.literal("loadMore"),
30143
+ label: z50.string()
30118
30144
  }),
30119
- z51.object({
30120
- kind: z51.literal("seeAllLink"),
30121
- label: z51.string(),
30122
- href: z51.string()
30145
+ z50.object({
30146
+ kind: z50.literal("seeAllLink"),
30147
+ label: z50.string(),
30148
+ href: z50.string()
30123
30149
  })
30124
30150
  ]);
30125
30151
  function resolveEventListPaginationAction(input) {
@@ -30132,89 +30158,89 @@ function resolveEventListPaginationAction(input) {
30132
30158
  }
30133
30159
 
30134
30160
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
30135
- var legacyEventCardVariantSchema = z52.enum(["variant1", "variant2"]);
30136
- var eventCardVariantInputSchema = z52.union([
30161
+ var legacyEventCardVariantSchema = z51.enum(["variant1", "variant2"]);
30162
+ var eventCardVariantInputSchema = z51.union([
30137
30163
  cardVariantRoleSchema,
30138
30164
  legacyEventCardVariantSchema
30139
30165
  ]);
30140
- var cardOrientationSchema = z52.enum(["vertical", "horizontal"]);
30141
- var eventBlockKindSchema = z52.enum(eventBlockKindValues);
30142
- var eventSurfaceScopeSchema = z52.enum(eventSurfaceScopeValues);
30143
- var eventScheduleScopeSchema2 = z52.enum(eventScheduleScopeValues);
30144
- var eventListingSourceSchema = z52.object({
30145
- events: z52.array(publicEventSchema).nullable().optional(),
30146
- siteId: z52.string(),
30147
- 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(),
30148
30174
  stage: previewStageSchema.optional(),
30149
30175
  layout: eventLayoutSchema.optional(),
30150
30176
  columns: columnOptionSchema.optional(),
30151
- eventsPerPage: z52.string().optional(),
30152
- paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30153
- seeAllUrl: z52.string().optional(),
30154
- 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(),
30155
30181
  cardVariant: eventCardVariantInputSchema.optional(),
30156
30182
  buttonVariant: eventButtonVariantSchema.optional(),
30157
- buttonText: z52.string().optional(),
30158
- showVenue: z52.boolean().optional(),
30159
- showMap: z52.boolean().optional(),
30160
- showCapacity: z52.boolean().optional(),
30161
- emptyMessage: z52.string().optional(),
30162
- className: z52.string().optional(),
30163
- 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(),
30164
30190
  showCategoryFilter: filterAutoShowSchema.optional(),
30165
- showVenueFilter: z52.boolean().nullable().optional(),
30166
- showStaffFilter: z52.boolean().nullable().optional(),
30191
+ showVenueFilter: z51.boolean().nullable().optional(),
30192
+ showStaffFilter: z51.boolean().nullable().optional(),
30167
30193
  eventKind: eventBlockKindSchema.nullable().optional(),
30168
30194
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
30169
- filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30195
+ filterEventPresets: z51.union([z51.string(), z51.array(z51.string())]).nullable().optional(),
30170
30196
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
30171
- filterCategoryIds: z52.string().nullable().optional(),
30172
- filterStaffMemberId: z52.string().nullable().optional(),
30173
- filterVenueId: z52.string().nullable().optional()
30197
+ filterCategoryIds: z51.string().nullable().optional(),
30198
+ filterStaffMemberId: z51.string().nullable().optional(),
30199
+ filterVenueId: z51.string().nullable().optional()
30174
30200
  });
30175
- var eventListingDisplaySchema = z52.object({
30176
- kind: z52.literal("event-listing"),
30177
- state: z52.enum(["loading", "empty", "ready"]),
30201
+ var eventListingDisplaySchema = z51.object({
30202
+ kind: z51.literal("event-listing"),
30203
+ state: z51.enum(["loading", "empty", "ready"]),
30178
30204
  listLayout: eventLayoutSchema,
30179
- className: z52.string().nullable(),
30180
- emptyMessage: z52.string(),
30181
- loadingMessage: z52.string(),
30182
- containerClass: z52.string(),
30205
+ className: z51.string().nullable(),
30206
+ emptyMessage: z51.string(),
30207
+ loadingMessage: z51.string(),
30208
+ containerClass: z51.string(),
30183
30209
  cardVariant: cardVariantRoleSchema,
30184
30210
  buttonVariant: eventButtonVariantSchema,
30185
- buttonText: z52.string(),
30186
- showVenue: z52.boolean(),
30187
- showMap: z52.boolean(),
30188
- showCapacity: z52.boolean(),
30211
+ buttonText: z51.string(),
30212
+ showVenue: z51.boolean(),
30213
+ showMap: z51.boolean(),
30214
+ showCapacity: z51.boolean(),
30189
30215
  orientation: cardOrientationSchema,
30190
- events: z52.array(publicEventSchema)
30216
+ events: z51.array(publicEventSchema)
30191
30217
  });
30192
- var eventListingHydrationSchema = z52.object({
30193
- siteId: z52.string(),
30218
+ var eventListingHydrationSchema = z51.object({
30219
+ siteId: z51.string(),
30194
30220
  stage: previewStageSchema.optional(),
30195
30221
  eventsPerPage: eventPageSizeSchema,
30196
30222
  paginationAction: eventListPaginationActionSchema,
30197
- showFilters: z52.boolean(),
30223
+ showFilters: z51.boolean(),
30198
30224
  showCategoryFilter: filterAutoShowSchema,
30199
- showVenueFilter: z52.boolean(),
30200
- showStaffFilter: z52.boolean(),
30225
+ showVenueFilter: z51.boolean(),
30226
+ showStaffFilter: z51.boolean(),
30201
30227
  eventKind: eventBlockKindSchema,
30202
30228
  eventSurface: eventSurfaceScopeSchema,
30203
- filterEventPresets: z52.string().nullable(),
30229
+ filterEventPresets: z51.string().nullable(),
30204
30230
  scheduleScope: eventScheduleScopeSchema2,
30205
- filterCategoryIds: z52.string().nullable().optional(),
30206
- filterStaffMemberId: z52.string().nullable().optional(),
30207
- filterVenueId: z52.string().nullable().optional(),
30208
- 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()
30209
30235
  });
30210
- var eventListingRenderSchema = z52.object({
30236
+ var eventListingRenderSchema = z51.object({
30211
30237
  display: eventListingDisplaySchema,
30212
30238
  hydration: eventListingHydrationSchema
30213
30239
  });
30214
30240
  var eventListingIslandMetaCodec = createZodCodec(
30215
- z52.object({
30216
- siteId: z52.string(),
30217
- apiBaseUrl: z52.string().optional(),
30241
+ z51.object({
30242
+ siteId: z51.string(),
30243
+ apiBaseUrl: z51.string().optional(),
30218
30244
  stage: previewStageSchema.optional()
30219
30245
  })
30220
30246
  );
@@ -30581,15 +30607,15 @@ var eventListingBlockDefinition = {
30581
30607
  };
30582
30608
 
30583
30609
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
30584
- import { z as z53 } from "zod";
30585
- var eventBlockKindSchema2 = z53.enum(eventBlockKindValues);
30586
- var eventSurfaceScopeSchema2 = z53.enum(eventSurfaceScopeValues);
30587
- var eventScheduleScopeSchema3 = z53.enum(eventScheduleScopeValues);
30588
- 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(
30589
30615
  {
30590
- events: z53.array(publicEventSchema).nullable().optional(),
30591
- siteId: z53.string(),
30592
- apiBaseUrl: z53.string().optional(),
30616
+ events: z52.array(publicEventSchema).nullable().optional(),
30617
+ siteId: z52.string(),
30618
+ apiBaseUrl: z52.string().optional(),
30593
30619
  stage: previewStageSchema.optional(),
30594
30620
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
30595
30621
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -30597,78 +30623,80 @@ var eventCalendarSourceSchema = z53.object(
30597
30623
  listColumns: columnOptionSchema.optional(),
30598
30624
  layout: eventLayoutSchema.optional(),
30599
30625
  columns: columnOptionSchema.optional(),
30600
- eventsPerPage: z53.string().optional(),
30601
- paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
30602
- seeAllUrl: z53.string().optional(),
30603
- 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(),
30604
30630
  startOfWeek: weekStartSchema.optional(),
30605
30631
  calendarTabViews: calendarTabViewsSchema.optional(),
30606
- showFilters: z53.boolean().nullable().optional(),
30632
+ defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
30633
+ showFilters: z52.boolean().nullable().optional(),
30607
30634
  showCategoryFilter: filterAutoShowSchema.optional(),
30608
- showVenueFilter: z53.boolean().nullable().optional(),
30609
- showStaffFilter: z53.boolean().nullable().optional(),
30635
+ showVenueFilter: z52.boolean().nullable().optional(),
30636
+ showStaffFilter: z52.boolean().nullable().optional(),
30610
30637
  kind: eventBlockKindSchema2.nullable().optional(),
30611
30638
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
30612
- filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30639
+ filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30613
30640
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
30614
- filterCategoryIds: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30615
- filterStaffMemberId: z53.string().nullable().optional(),
30616
- 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(),
30617
30644
  buttonVariant: eventButtonVariantSchema.optional(),
30618
- buttonText: z53.string().optional(),
30619
- showVenue: z53.boolean().nullable().optional(),
30620
- showMap: z53.boolean().nullable().optional(),
30621
- showCapacity: z53.boolean().nullable().optional(),
30622
- emptyMessage: z53.string().optional(),
30623
- 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()
30624
30651
  }
30625
30652
  );
30626
- var eventCalendarDisplaySchema = z53.object({
30627
- kind: z53.literal("event-calendar"),
30653
+ var eventCalendarDisplaySchema = z52.object({
30654
+ kind: z52.literal("event-calendar"),
30628
30655
  displayMode: eventCalendarDisplayModeSchema,
30629
- className: z53.string().nullable(),
30630
- events: z53.array(publicEventSchema),
30656
+ className: z52.string().nullable(),
30657
+ events: z52.array(publicEventSchema),
30631
30658
  listLayout: eventLayoutSchema,
30632
30659
  listColumns: columnOptionSchema,
30633
30660
  eventsPerPage: eventPageSizeSchema,
30634
30661
  paginationAction: eventListPaginationActionSchema,
30635
30662
  startOfWeek: weekStartSchema,
30636
30663
  calendarTabViews: calendarTabViewsSchema,
30637
- showFilters: z53.boolean(),
30664
+ defaultCalendarView: eventCalendarDefaultViewSchema,
30665
+ showFilters: z52.boolean(),
30638
30666
  showCategoryFilter: filterAutoShowSchema,
30639
- showVenueFilter: z53.boolean(),
30640
- showStaffFilter: z53.boolean(),
30667
+ showVenueFilter: z52.boolean(),
30668
+ showStaffFilter: z52.boolean(),
30641
30669
  eventKind: eventBlockKindSchema2,
30642
30670
  eventSurface: eventSurfaceScopeSchema2,
30643
- filterEventPresets: z53.string().nullable(),
30671
+ filterEventPresets: z52.string().nullable(),
30644
30672
  scheduleScope: eventScheduleScopeSchema3,
30645
- filterCategoryIds: z53.string().nullable(),
30646
- filterStaffMemberId: z53.string().nullable(),
30647
- filterVenueId: z53.string().nullable(),
30673
+ filterCategoryIds: z52.string().nullable(),
30674
+ filterStaffMemberId: z52.string().nullable(),
30675
+ filterVenueId: z52.string().nullable(),
30648
30676
  buttonVariant: eventButtonVariantSchema,
30649
- buttonText: z53.string(),
30650
- showVenue: z53.boolean(),
30651
- showMap: z53.boolean(),
30652
- showCapacity: z53.boolean(),
30653
- emptyMessage: z53.string()
30654
- });
30655
- var eventCalendarHydrationSchema = z53.object({
30656
- 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(),
30657
30685
  stage: previewStageSchema.optional(),
30658
- prefetchedEvents: z53.boolean(),
30686
+ prefetchedEvents: z52.boolean(),
30659
30687
  eventKind: eventBlockKindSchema2,
30660
30688
  eventSurface: eventSurfaceScopeSchema2,
30661
- filterEventPresets: z53.string().nullable(),
30689
+ filterEventPresets: z52.string().nullable(),
30662
30690
  scheduleScope: eventScheduleScopeSchema3
30663
30691
  });
30664
- var eventCalendarRenderSchema = z53.object({
30692
+ var eventCalendarRenderSchema = z52.object({
30665
30693
  display: eventCalendarDisplaySchema,
30666
30694
  hydration: eventCalendarHydrationSchema
30667
30695
  });
30668
30696
  var eventCalendarIslandMetaCodec = createZodCodec(
30669
- z53.object({
30670
- siteId: z53.string(),
30671
- apiBaseUrl: z53.string().optional(),
30697
+ z52.object({
30698
+ siteId: z52.string(),
30699
+ apiBaseUrl: z52.string().optional(),
30672
30700
  stage: previewStageSchema.optional()
30673
30701
  })
30674
30702
  );
@@ -30698,6 +30726,7 @@ function buildEventCalendarDisplay(source) {
30698
30726
  }),
30699
30727
  startOfWeek: source.startOfWeek ?? "monday",
30700
30728
  calendarTabViews: source.calendarTabViews ?? "both",
30729
+ defaultCalendarView: source.defaultCalendarView ?? "month",
30701
30730
  showFilters: source.showFilters ?? true,
30702
30731
  showCategoryFilter: source.showCategoryFilter ?? "auto",
30703
30732
  showVenueFilter: source.showVenueFilter ?? false,
@@ -30760,6 +30789,9 @@ function normalizeEventCalendarContent(content) {
30760
30789
  ...variant ? { variant } : {},
30761
30790
  displayMode: normalizeEventCalendarDisplayMode(record.displayMode),
30762
30791
  listLayout: normalizeEventCalendarListLayout(record.listLayout),
30792
+ defaultCalendarView: normalizeEventCalendarDefaultView(
30793
+ record.defaultCalendarView
30794
+ ),
30763
30795
  kind,
30764
30796
  eventSurface: normalizeEventSurfaceScope(record.eventSurface),
30765
30797
  filterEventPresets: normalizeEventSurfacePresets(record.filterEventPresets),
@@ -30777,6 +30809,9 @@ function normalizeEventCalendarDisplayMode(value) {
30777
30809
  function normalizeEventCalendarListLayout(value) {
30778
30810
  return isEventCalendarListLayout(value) ? value : void 0;
30779
30811
  }
30812
+ function normalizeEventCalendarDefaultView(value) {
30813
+ return isEventCalendarDefaultView(value) ? value : void 0;
30814
+ }
30780
30815
  var eventCalendarLayout = [
30781
30816
  styledSection({
30782
30817
  children: sectionContainer(
@@ -30836,6 +30871,9 @@ var eventCalendarLayout = [
30836
30871
  calendarTabViews: {
30837
30872
  $bind: { from: "content.calendarTabViews", fallback: "both" }
30838
30873
  },
30874
+ defaultCalendarView: {
30875
+ $bind: { from: "content.defaultCalendarView", fallback: "month" }
30876
+ },
30839
30877
  // Filtering options
30840
30878
  showFilters: {
30841
30879
  $bind: { from: "content.showFilters", fallback: true }
@@ -30902,8 +30940,7 @@ var eventCalendarAdditionalFields = [
30902
30940
  defaultValue: "combined",
30903
30941
  options: [
30904
30942
  { value: "combined", label: "Combined (List + Calendar tabs)" },
30905
- { value: "month", label: "Month calendar" },
30906
- { value: "week", label: "Week agenda" },
30943
+ { value: "calendar", label: "Calendar" },
30907
30944
  { value: "timetable", label: "Timetable" },
30908
30945
  { value: "list", label: "List" }
30909
30946
  ],
@@ -30942,7 +30979,12 @@ var eventCalendarAdditionalFields = [
30942
30979
  ],
30943
30980
  ui: {
30944
30981
  intent: "display",
30945
- visibleWhen: { field: "listLayout", equals: "grid" }
30982
+ visibleWhen: {
30983
+ allOf: [
30984
+ { field: "variant", oneOf: ["combined", "list"] },
30985
+ { field: "listLayout", equals: "grid" }
30986
+ ]
30987
+ }
30946
30988
  }
30947
30989
  },
30948
30990
  {
@@ -30990,7 +31032,12 @@ var eventCalendarAdditionalFields = [
30990
31032
  required: false,
30991
31033
  ui: {
30992
31034
  intent: "display",
30993
- visibleWhen: { field: "paginationMode", equals: "seeAllLink" }
31035
+ visibleWhen: {
31036
+ allOf: [
31037
+ { field: "variant", oneOf: ["combined", "list"] },
31038
+ { field: "paginationMode", equals: "seeAllLink" }
31039
+ ]
31040
+ }
30994
31041
  }
30995
31042
  },
30996
31043
  {
@@ -31023,7 +31070,7 @@ var eventCalendarAdditionalFields = [
31023
31070
  intent: "display",
31024
31071
  visibleWhen: {
31025
31072
  field: "variant",
31026
- oneOf: ["combined", "month", "week"]
31073
+ oneOf: ["combined", "calendar", "timetable"]
31027
31074
  }
31028
31075
  }
31029
31076
  },
@@ -31046,6 +31093,33 @@ var eventCalendarAdditionalFields = [
31046
31093
  visibleWhen: { field: "variant", equals: "combined" }
31047
31094
  }
31048
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
+ },
31049
31123
  // Filtering options
31050
31124
  {
31051
31125
  id: "kind",
@@ -31073,7 +31147,7 @@ var eventCalendarAdditionalFields = [
31073
31147
  intent: "display",
31074
31148
  visibleWhen: {
31075
31149
  field: "variant",
31076
- oneOf: ["combined", "list", "timetable"]
31150
+ oneOf: ["combined", "calendar", "list", "timetable"]
31077
31151
  }
31078
31152
  }
31079
31153
  },
@@ -31093,8 +31167,10 @@ var eventCalendarAdditionalFields = [
31093
31167
  ui: {
31094
31168
  intent: "display",
31095
31169
  visibleWhen: {
31096
- field: "variant",
31097
- oneOf: ["combined", "list", "timetable"]
31170
+ allOf: [
31171
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
31172
+ { field: "showFilters", equals: true }
31173
+ ]
31098
31174
  }
31099
31175
  }
31100
31176
  },
@@ -31108,8 +31184,10 @@ var eventCalendarAdditionalFields = [
31108
31184
  ui: {
31109
31185
  intent: "display",
31110
31186
  visibleWhen: {
31111
- field: "variant",
31112
- oneOf: ["combined", "list", "timetable"]
31187
+ allOf: [
31188
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
31189
+ { field: "showFilters", equals: true }
31190
+ ]
31113
31191
  }
31114
31192
  }
31115
31193
  },
@@ -31123,8 +31201,10 @@ var eventCalendarAdditionalFields = [
31123
31201
  ui: {
31124
31202
  intent: "display",
31125
31203
  visibleWhen: {
31126
- field: "variant",
31127
- oneOf: ["combined", "list", "timetable"]
31204
+ allOf: [
31205
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
31206
+ { field: "showFilters", equals: true }
31207
+ ]
31128
31208
  }
31129
31209
  }
31130
31210
  },
@@ -31138,8 +31218,15 @@ var eventCalendarAdditionalFields = [
31138
31218
  ui: {
31139
31219
  intent: "display",
31140
31220
  visibleWhen: {
31141
- field: "variant",
31142
- 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
+ ]
31143
31230
  }
31144
31231
  }
31145
31232
  },
@@ -31255,8 +31342,7 @@ var eventCalendarAdditionalFields = [
31255
31342
  ];
31256
31343
  var eventCalendarVariants = {
31257
31344
  combined: eventCalendarLayout[0],
31258
- month: eventCalendarLayout[0],
31259
- week: eventCalendarLayout[0],
31345
+ calendar: eventCalendarLayout[0],
31260
31346
  timetable: eventCalendarLayout[0],
31261
31347
  list: eventCalendarLayout[0]
31262
31348
  };
@@ -31268,8 +31354,7 @@ var eventCalendarDerivedFields = [
31268
31354
  multiple: false,
31269
31355
  options: [
31270
31356
  { value: "combined" },
31271
- { value: "month" },
31272
- { value: "week" },
31357
+ { value: "calendar" },
31273
31358
  { value: "timetable" },
31274
31359
  { value: "list" }
31275
31360
  ]
@@ -31282,6 +31367,13 @@ var eventCalendarDerivedFields = [
31282
31367
  options: eventCalendarListLayoutOptions.map((option) => ({
31283
31368
  value: option.id
31284
31369
  }))
31370
+ },
31371
+ {
31372
+ id: "defaultCalendarView",
31373
+ type: "select",
31374
+ required: false,
31375
+ multiple: false,
31376
+ options: [{ value: "month" }, { value: "week" }]
31285
31377
  }
31286
31378
  ];
31287
31379
  var eventCalendarContentShape = {
@@ -31330,8 +31422,7 @@ var eventCalendarConfig = {
31330
31422
  defaultVariant: "combined",
31331
31423
  variantOptions: {
31332
31424
  combined: { label: "Combined" },
31333
- month: { label: "Month" },
31334
- week: { label: "Week" },
31425
+ calendar: { label: "Calendar" },
31335
31426
  timetable: { label: "Timetable" },
31336
31427
  list: { label: "List" }
31337
31428
  }
@@ -31377,7 +31468,7 @@ var eventCalendarBlockDefinition = {
31377
31468
  };
31378
31469
 
31379
31470
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31380
- import { z as z54 } from "zod";
31471
+ import { z as z53 } from "zod";
31381
31472
 
31382
31473
  // ../blocks/src/system/blocks/offerings-preview/model.ts
31383
31474
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -31469,13 +31560,13 @@ function isRecord5(value) {
31469
31560
  }
31470
31561
 
31471
31562
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31472
- var publicRouteCandidatesSchema = z54.object({
31473
- routes: z54.array(z54.object({
31474
- entityId: z54.string(),
31475
- path: z54.string(),
31476
- title: z54.string(),
31477
- kind: z54.enum(["page", "content"]),
31478
- 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()
31479
31570
  }))
31480
31571
  });
31481
31572
  var groupOverrideFields = [
@@ -31873,7 +31964,7 @@ function isRecord6(value) {
31873
31964
  }
31874
31965
 
31875
31966
  // ../blocks/src/system/blocks/embed.ts
31876
- import { z as z55 } from "zod";
31967
+ import { z as z54 } from "zod";
31877
31968
  var embedFields = [
31878
31969
  // Section heading
31879
31970
  parseFieldDefinition({
@@ -32104,18 +32195,18 @@ var embedManifest = createBlockManifest({
32104
32195
  spacing: "lg"
32105
32196
  }
32106
32197
  });
32107
- var embedEntrySchema = z55.object({
32108
- id: z55.string(),
32109
- identifier: z55.string(),
32110
- title: z55.string(),
32111
- slug: z55.string().nullable().optional(),
32112
- content: z55.record(z55.string(), z55.unknown()).optional(),
32113
- 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()
32114
32205
  });
32115
32206
  var embedBlockDefinition = {
32116
32207
  manifest: embedManifest,
32117
32208
  dataSchemas: {
32118
- entries: z55.array(embedEntrySchema).optional()
32209
+ entries: z54.array(embedEntrySchema).optional()
32119
32210
  },
32120
32211
  dataLoaders: {
32121
32212
  entries: {
@@ -33298,53 +33389,50 @@ var fileDownloadBlockDefinition = {
33298
33389
  manifest: fileDownloadManifest
33299
33390
  };
33300
33391
 
33301
- // ../blocks/src/system/blocks/shop.ts
33302
- import { z as z59 } from "zod";
33303
-
33304
33392
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33305
- import { z as z58 } from "zod";
33393
+ import { z as z57 } from "zod";
33306
33394
 
33307
33395
  // ../blocks/src/system/blocks/products/shared.ts
33308
- import { z as z56 } from "zod";
33309
- var publicProductVariantSchema = z56.object({
33310
- id: z56.string(),
33311
- title: z56.string(),
33312
- sku: z56.string().nullable(),
33313
- priceCents: z56.number(),
33314
- stockQuantity: z56.number().nullable(),
33315
- soldOut: z56.boolean()
33316
- });
33317
- var publicProductSchema = z56.object({
33318
- id: z56.string(),
33319
- contentEntryId: z56.string().nullable(),
33320
- title: z56.string(),
33321
- slug: z56.string(),
33322
- path: z56.string().nullable(),
33323
- status: z56.enum(["draft", "active"]),
33324
- priceCents: z56.number(),
33325
- currency: z56.string(),
33326
- productType: z56.enum(["physical", "digital"]),
33327
- requiresShipping: z56.boolean(),
33328
- hasVariants: z56.boolean(),
33329
- trackInventory: z56.boolean(),
33330
- soldOut: z56.boolean(),
33331
- category: z56.object({
33332
- id: z56.string(),
33333
- name: z56.string(),
33334
- 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()
33335
33423
  }).nullable(),
33336
- summary: z56.string().nullable(),
33337
- body: z56.unknown().nullable(),
33338
- gallery: z56.array(
33339
- z56.object({
33340
- url: z56.string(),
33341
- 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()
33342
33430
  })
33343
33431
  ),
33344
- variants: z56.array(publicProductVariantSchema)
33432
+ variants: z55.array(publicProductVariantSchema)
33345
33433
  });
33346
- var publicProductsResponseSchema = z56.object({
33347
- products: z56.array(publicProductSchema)
33434
+ var publicProductsResponseSchema = z55.object({
33435
+ products: z55.array(publicProductSchema)
33348
33436
  });
33349
33437
 
33350
33438
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -33408,27 +33496,27 @@ function deriveCreditProductLabels(products, options = {}) {
33408
33496
  }
33409
33497
 
33410
33498
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
33411
- import { z as z57 } from "zod";
33412
- var storedProductCartItemSchema = z57.object({
33413
- kind: z57.literal("product"),
33414
- productId: z57.string().min(1),
33415
- productCategoryId: z57.string().min(1).optional().nullable(),
33416
- variantId: z57.string().min(1).optional().nullable(),
33417
- title: z57.string().min(1),
33418
- variantTitle: z57.string().optional().nullable(),
33419
- quantity: z57.number().finite(),
33420
- unitPriceCents: z57.number().finite(),
33421
- currency: z57.string().min(1),
33422
- imageUrl: z57.string().optional().nullable(),
33423
- soldOut: z57.boolean().optional()
33424
- });
33425
- var storedPassCartItemSchema = z57.object({
33426
- kind: z57.literal("pass"),
33427
- passId: z57.string().min(1),
33428
- title: z57.string().min(1),
33429
- quantity: z57.number().finite().optional(),
33430
- unitPriceCents: z57.number().finite(),
33431
- 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)
33432
33520
  });
33433
33521
  function deriveCommerceCheckoutState(state) {
33434
33522
  if (state.items.length === 0) {
@@ -33662,214 +33750,214 @@ function formatValidity(days) {
33662
33750
  }
33663
33751
 
33664
33752
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33665
- var shopModeSchema = z58.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33666
- var contentEntrySchema3 = z58.object({
33667
- id: z58.string().nullable().optional(),
33668
- 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()
33669
33757
  }).nullable();
33670
- var shopSourceSchema = z58.object({
33671
- className: z58.string().nullable().optional(),
33758
+ var shopSourceSchema = z57.object({
33759
+ className: z57.string().nullable().optional(),
33672
33760
  mode: shopModeSchema.optional(),
33673
- heading: z58.string().nullable().optional(),
33674
- productSlug: z58.string().nullable().optional(),
33675
- showPasses: z58.boolean().optional(),
33676
- showMemberships: z58.boolean().optional(),
33677
- layout: z58.enum(["grid", "list"]).optional(),
33678
- columns: z58.string().optional(),
33679
- showDescriptions: z58.boolean().optional(),
33680
- showSummary: z58.boolean().optional(),
33681
- showBody: z58.boolean().optional(),
33682
- showPrices: z58.boolean().optional(),
33683
- showValidityPeriod: z58.boolean().optional(),
33684
- showPricePerCredit: z58.boolean().nullable().optional(),
33685
- passesHeading: z58.string().optional(),
33686
- membershipsHeading: z58.string().optional(),
33687
- buyButtonText: z58.string().optional(),
33688
- addButtonText: z58.string().optional(),
33689
- passPurchaseMode: z58.enum(["add_to_cart", "buy_now"]).optional(),
33690
- subscribeButtonText: z58.string().optional(),
33691
- emptyStateText: z58.string().optional(),
33692
- checkoutButtonText: z58.string().optional(),
33693
- clearButtonText: z58.string().optional(),
33694
- 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(),
33695
33783
  contentEntry: contentEntrySchema3.optional(),
33696
- passes: z58.array(publicPassProductSchema).nullable().optional(),
33697
- memberships: z58.array(publicMembershipProductSchema).nullable().optional(),
33698
- products: z58.array(publicProductSchema).nullable().optional(),
33699
- siteId: z58.string().optional(),
33700
- 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(),
33701
33789
  stage: previewStageSchema.optional()
33702
33790
  });
33703
- var productVariantOptionDisplaySchema = z58.object({
33704
- id: z58.string(),
33705
- label: z58.string(),
33706
- soldOut: z58.boolean()
33707
- });
33708
- var productCardDisplaySchema = z58.object({
33709
- productId: z58.string(),
33710
- title: z58.string(),
33711
- path: z58.string().nullable(),
33712
- summary: z58.string().nullable(),
33713
- priceLabel: z58.string().nullable(),
33714
- image: z58.object({
33715
- url: z58.string(),
33716
- 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()
33717
33805
  }).nullable(),
33718
- variantOptions: z58.array(productVariantOptionDisplaySchema),
33719
- selectedVariantId: z58.string().nullable(),
33720
- selectionLabel: z58.string(),
33721
- actionLabel: z58.string(),
33722
- soldOut: z58.boolean()
33723
- });
33724
- var productListDisplaySchema = z58.object({
33725
- kind: z58.literal("product-list"),
33726
- state: z58.enum(["empty", "ready"]),
33727
- heading: z58.string().nullable(),
33728
- className: z58.string().nullable(),
33729
- layout: z58.enum(["grid", "list"]),
33730
- columns: z58.string(),
33731
- emptyMessage: z58.string(),
33732
- cards: z58.array(productCardDisplaySchema)
33733
- });
33734
- var productDetailDisplaySchema = z58.discriminatedUnion("state", [
33735
- z58.object({
33736
- kind: z58.literal("product-detail"),
33737
- state: z58.literal("empty"),
33738
- heading: z58.string().nullable(),
33739
- className: z58.string().nullable(),
33740
- 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()
33741
33829
  }),
33742
- z58.object({
33743
- kind: z58.literal("product-detail"),
33744
- state: z58.literal("ready"),
33745
- heading: z58.string().nullable(),
33746
- className: z58.string().nullable(),
33747
- title: z58.string(),
33748
- priceLabel: z58.string(),
33749
- summary: z58.string().nullable(),
33750
- categoryLabel: z58.string().nullable(),
33751
- gallery: z58.array(z58.object({
33752
- url: z58.string(),
33753
- 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()
33754
33842
  })),
33755
- variantOptions: z58.array(productVariantOptionDisplaySchema),
33756
- selectedVariantId: z58.string().nullable(),
33757
- selectionLabel: z58.string(),
33758
- actionLabel: z58.string(),
33759
- soldOut: z58.boolean(),
33760
- 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()
33761
33849
  })
33762
33850
  ]);
33763
- var passCardDisplaySchema = z58.object({
33764
- id: z58.string(),
33765
- title: z58.string(),
33766
- description: z58.string().nullable(),
33767
- priceLabel: z58.string(),
33768
- creditsLabel: z58.string(),
33769
- perCreditLabel: z58.string().nullable(),
33770
- validityLabel: z58.string().nullable(),
33771
- actionLabel: z58.string()
33772
- });
33773
- var membershipCardDisplaySchema = z58.object({
33774
- id: z58.string(),
33775
- title: z58.string(),
33776
- description: z58.string().nullable(),
33777
- priceLabel: z58.string(),
33778
- intervalLabel: z58.string(),
33779
- actionLabel: z58.string()
33780
- });
33781
- var passesMembershipsDisplaySchema = z58.object({
33782
- kind: z58.literal("passes-memberships"),
33783
- state: z58.enum(["empty", "ready"]),
33784
- className: z58.string().nullable(),
33785
- layout: z58.enum(["grid", "list"]),
33786
- columns: z58.string(),
33787
- emptyMessage: z58.string(),
33788
- passesHeading: z58.string(),
33789
- membershipsHeading: z58.string(),
33790
- passes: z58.array(passCardDisplaySchema),
33791
- memberships: z58.array(membershipCardDisplaySchema)
33792
- });
33793
- var cartLineDisplaySchema = z58.object({
33794
- key: z58.string(),
33795
- title: z58.string(),
33796
- priceLabel: z58.string(),
33797
- quantity: z58.number(),
33798
- quantityEditable: z58.boolean()
33799
- });
33800
- var cartDisplaySchema = z58.object({
33801
- kind: z58.literal("cart"),
33802
- state: z58.enum(["empty", "ready"]),
33803
- heading: z58.string().nullable(),
33804
- className: z58.string().nullable(),
33805
- emptyMessage: z58.string(),
33806
- supportText: z58.string().nullable(),
33807
- items: z58.array(cartLineDisplaySchema),
33808
- subtotalLabel: z58.string().nullable(),
33809
- checkoutButtonText: z58.string(),
33810
- clearButtonText: z58.string()
33811
- });
33812
- var checkoutDisplaySchema = z58.object({
33813
- kind: z58.literal("checkout"),
33814
- state: z58.enum(["empty", "blocked", "ready"]),
33815
- heading: z58.string().nullable(),
33816
- className: z58.string().nullable(),
33817
- message: z58.string().nullable(),
33818
- submitButtonText: z58.string()
33819
- });
33820
- var passesMembershipsHydrationSchema = z58.object({
33821
- passes: z58.array(publicPassProductSchema),
33822
- memberships: z58.array(publicMembershipProductSchema),
33823
- passPurchaseMode: z58.enum(["add_to_cart", "buy_now"])
33824
- });
33825
- var productListHydrationSchema = z58.object({
33826
- products: z58.array(publicProductSchema),
33827
- showSummary: z58.boolean(),
33828
- showPrices: z58.boolean(),
33829
- addButtonText: z58.string()
33830
- });
33831
- var productDetailHydrationSchema = z58.object({
33832
- products: z58.array(publicProductSchema),
33833
- productId: z58.string().nullable(),
33834
- showSummary: z58.boolean(),
33835
- showBody: z58.boolean(),
33836
- addButtonText: z58.string()
33837
- });
33838
- var cartHydrationSchema = z58.object({
33839
- emptyStateText: z58.string(),
33840
- checkoutButtonText: z58.string(),
33841
- clearButtonText: z58.string()
33842
- });
33843
- var checkoutHydrationSchema = z58.object({
33844
- emptyStateText: z58.string(),
33845
- submitButtonText: z58.string()
33846
- });
33847
- 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({
33848
33936
  display: passesMembershipsDisplaySchema,
33849
33937
  hydration: passesMembershipsHydrationSchema
33850
33938
  });
33851
- var productListRenderSchema = z58.object({
33939
+ var productListRenderSchema = z57.object({
33852
33940
  display: productListDisplaySchema,
33853
33941
  hydration: productListHydrationSchema
33854
33942
  });
33855
- var productDetailRenderSchema = z58.object({
33943
+ var productDetailRenderSchema = z57.object({
33856
33944
  display: productDetailDisplaySchema,
33857
33945
  hydration: productDetailHydrationSchema
33858
33946
  });
33859
- var cartRenderSchema = z58.object({
33947
+ var cartRenderSchema = z57.object({
33860
33948
  display: cartDisplaySchema,
33861
33949
  hydration: cartHydrationSchema
33862
33950
  });
33863
- var checkoutRenderSchema = z58.object({
33951
+ var checkoutRenderSchema = z57.object({
33864
33952
  display: checkoutDisplaySchema,
33865
33953
  hydration: checkoutHydrationSchema
33866
33954
  });
33867
33955
  function resolveShowPricePerCredit(source) {
33868
33956
  return source.showPricePerCredit ?? true;
33869
33957
  }
33870
- var shopIslandMetaCodec = createZodCodec(z58.object({
33871
- siteId: z58.string().optional(),
33872
- apiBaseUrl: z58.string().optional(),
33958
+ var shopIslandMetaCodec = createZodCodec(z57.object({
33959
+ siteId: z57.string().optional(),
33960
+ apiBaseUrl: z57.string().optional(),
33873
33961
  stage: previewStageSchema.optional()
33874
33962
  }));
33875
33963
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -34247,9 +34335,9 @@ var shopBlockDefinition = {
34247
34335
  runtime: shopBlockRuntime,
34248
34336
  dataSchemas: {
34249
34337
  // listPublicPasses returns { passes: [...] }
34250
- passes: z59.object({ passes: z59.array(publicPassProductSchema) }).optional(),
34338
+ passes: publicPassProductCollectionSchema.optional(),
34251
34339
  // listPublicMemberships returns { memberships: [...] }
34252
- memberships: z59.object({ memberships: z59.array(publicMembershipProductSchema) }).optional()
34340
+ memberships: publicMembershipProductCollectionSchema.optional()
34253
34341
  },
34254
34342
  dataLoaders: {
34255
34343
  // Load passes for display
@@ -34272,7 +34360,7 @@ var shopBlockDefinition = {
34272
34360
  };
34273
34361
 
34274
34362
  // ../blocks/src/system/blocks/product-list.ts
34275
- import { z as z60 } from "zod";
34363
+ import { z as z58 } from "zod";
34276
34364
  var productListManifest = createBlockManifest({
34277
34365
  id: "block.product-list",
34278
34366
  version: "1.0.0",
@@ -34405,7 +34493,7 @@ var productListBlockDefinition = {
34405
34493
  }
34406
34494
  }
34407
34495
  };
34408
- var productListDataSchema = z60.object({
34496
+ var productListDataSchema = z58.object({
34409
34497
  products: publicProductsResponseSchema.optional()
34410
34498
  });
34411
34499
 
@@ -34666,72 +34754,72 @@ var checkoutBlockDefinition = {
34666
34754
  };
34667
34755
 
34668
34756
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
34669
- import { z as z61 } from "zod";
34670
- var publicGiftCardOfferSchema = z61.object({
34671
- id: z61.string(),
34672
- kind: z61.literal("gift_card"),
34673
- title: z61.string(),
34674
- description: z61.string().nullable(),
34675
- sortOrder: z61.number().int(),
34676
- giftCard: z61.object({
34677
- fixedDenominations: z61.array(z61.number().int().positive()),
34678
- customAmountEnabled: z61.boolean(),
34679
- customAmountMinCents: z61.number().int().positive(),
34680
- 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()
34681
34769
  }),
34682
- voucher: z61.null()
34683
- });
34684
- var publicVoucherOfferSchema = z61.object({
34685
- id: z61.string(),
34686
- kind: z61.literal("voucher"),
34687
- title: z61.string(),
34688
- description: z61.string().nullable(),
34689
- sortOrder: z61.number().int(),
34690
- giftCard: z61.null(),
34691
- voucher: z61.object({
34692
- 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()
34693
34781
  })
34694
34782
  });
34695
- var publicGiftingOffersResponseSchema = z61.object({
34696
- currency: z61.string(),
34697
- giftCards: z61.array(publicGiftCardOfferSchema),
34698
- vouchers: z61.array(publicVoucherOfferSchema)
34783
+ var publicGiftingOffersResponseSchema = z59.object({
34784
+ currency: z59.string(),
34785
+ giftCards: z59.array(publicGiftCardOfferSchema),
34786
+ vouchers: z59.array(publicVoucherOfferSchema)
34699
34787
  });
34700
- var giftingSourceSchema = z61.object({
34701
- siteId: z61.string().optional(),
34702
- apiBaseUrl: z61.string().optional(),
34788
+ var giftingSourceSchema = z59.object({
34789
+ siteId: z59.string().optional(),
34790
+ apiBaseUrl: z59.string().optional(),
34703
34791
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
34704
- className: z61.string().nullable().optional(),
34705
- heading: z61.string().nullable().optional(),
34706
- intro: z61.string().nullable().optional(),
34707
- giftCardsHeading: z61.string().nullable().optional(),
34708
- vouchersHeading: z61.string().nullable().optional(),
34709
- emptyStateText: z61.string().nullable().optional(),
34710
- checkoutButtonText: z61.string().nullable().optional(),
34711
- successMessage: z61.string().nullable().optional()
34712
- });
34713
- var giftingDisplaySchema = z61.object({
34714
- kind: z61.literal("gifting"),
34715
- state: z61.literal("ready"),
34716
- className: z61.string().nullable(),
34717
- heading: z61.string(),
34718
- intro: z61.string().nullable(),
34719
- giftCardsHeading: z61.string(),
34720
- vouchersHeading: z61.string(),
34721
- emptyStateText: z61.string()
34722
- });
34723
- 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({
34724
34812
  offers: publicGiftingOffersResponseSchema.nullable(),
34725
- checkoutButtonText: z61.string(),
34726
- successMessage: z61.string()
34813
+ checkoutButtonText: z59.string(),
34814
+ successMessage: z59.string()
34727
34815
  });
34728
- var giftingRenderSchema = z61.object({
34816
+ var giftingRenderSchema = z59.object({
34729
34817
  display: giftingDisplaySchema,
34730
34818
  hydration: giftingHydrationSchema
34731
34819
  });
34732
- var giftingIslandMetaCodec = createZodCodec(z61.object({
34733
- siteId: z61.string().optional(),
34734
- apiBaseUrl: z61.string().optional()
34820
+ var giftingIslandMetaCodec = createZodCodec(z59.object({
34821
+ siteId: z59.string().optional(),
34822
+ apiBaseUrl: z59.string().optional()
34735
34823
  }));
34736
34824
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
34737
34825
  "siteId",
@@ -34902,7 +34990,7 @@ var giftingBlockDefinition = {
34902
34990
  };
34903
34991
 
34904
34992
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
34905
- import { z as z62 } from "zod";
34993
+ import { z as z60 } from "zod";
34906
34994
 
34907
34995
  // ../blocks/src/system/blocks/newsletter-signup-destination.ts
34908
34996
  function parseNewsletterSignupBlockId(value) {
@@ -35009,65 +35097,65 @@ function withOptionalPhone(fields3, includePhone) {
35009
35097
  }
35010
35098
 
35011
35099
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
35012
- var newsletterPresetSchema = z62.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
35013
- var newsletterDestinationProviderSchema = z62.enum(["riverbank", "mailchimp"]);
35014
- var newsletterFieldSchema = z62.object({
35015
- id: z62.string(),
35016
- type: z62.enum(["email", "text"]),
35017
- label: z62.string(),
35018
- required: z62.boolean(),
35019
- placeholder: z62.string().optional()
35020
- });
35021
- var newsletterSignupBlockIdSchema = z62.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
35022
- var signedNewsletterDestinationRefSchema = z62.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
35023
- var newsletterPublicDestinationRefSchema = z62.discriminatedUnion("tag", [
35024
- z62.object({
35025
- 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"),
35026
35114
  blockId: newsletterSignupBlockIdSchema
35027
35115
  }),
35028
- z62.object({
35029
- tag: z62.literal("signed_destination_ref"),
35116
+ z60.object({
35117
+ tag: z60.literal("signed_destination_ref"),
35030
35118
  token: signedNewsletterDestinationRefSchema
35031
35119
  })
35032
35120
  ]);
35033
- var newsletterSourceSchema = z62.object({
35034
- blockId: z62.string().nullable().optional(),
35035
- siteId: z62.string().optional(),
35036
- apiBaseUrl: z62.string().optional(),
35037
- 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(),
35038
35126
  destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
35039
35127
  preset: newsletterPresetSchema.optional(),
35040
- includePhone: z62.boolean().optional(),
35041
- buttonLabel: z62.string().nullable().optional(),
35042
- successMessage: z62.string().nullable().optional(),
35043
- privacyNote: z62.string().nullable().optional(),
35044
- tags: z62.string().nullable().optional(),
35045
- spamProtectionEnabled: z62.boolean().optional(),
35046
- className: z62.string().nullable().optional()
35047
- });
35048
- var newsletterDisplaySchema = z62.object({
35049
- kind: z62.literal("newsletter-form"),
35050
- className: z62.string().nullable(),
35051
- buttonLabel: z62.string(),
35052
- successMessage: z62.string().nullable(),
35053
- privacyNote: z62.string().nullable(),
35054
- fields: z62.array(newsletterFieldSchema)
35055
- });
35056
- 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({
35057
35145
  destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
35058
- listId: z62.string().nullable().optional(),
35146
+ listId: z60.string().nullable().optional(),
35059
35147
  preset: newsletterPresetSchema,
35060
- includePhone: z62.boolean(),
35061
- tags: z62.string().nullable().optional(),
35062
- spamProtectionEnabled: z62.boolean().optional()
35148
+ includePhone: z60.boolean(),
35149
+ tags: z60.string().nullable().optional(),
35150
+ spamProtectionEnabled: z60.boolean().optional()
35063
35151
  });
35064
- var newsletterRenderSchema = z62.object({
35152
+ var newsletterRenderSchema = z60.object({
35065
35153
  display: newsletterDisplaySchema,
35066
35154
  hydration: newsletterHydrationSchema
35067
35155
  });
35068
- var newsletterIslandMetaCodec = createZodCodec(z62.object({
35069
- siteId: z62.string().optional(),
35070
- apiBaseUrl: z62.string().optional()
35156
+ var newsletterIslandMetaCodec = createZodCodec(z60.object({
35157
+ siteId: z60.string().optional(),
35158
+ apiBaseUrl: z60.string().optional()
35071
35159
  }));
35072
35160
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
35073
35161
  function buildNewsletterDisplay(source) {
@@ -35206,23 +35294,23 @@ var newsletterSignupBlockDefinition = {
35206
35294
  };
35207
35295
 
35208
35296
  // ../blocks/src/system/blocks/team-members.ts
35209
- import { z as z63 } from "zod";
35297
+ import { z as z61 } from "zod";
35210
35298
  var ITEM_NAME2 = "member";
35211
35299
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
35212
35300
  message: "Team member photos must be image media"
35213
35301
  }).nullable();
35214
- var teamMemberDataSchema = z63.object({
35215
- _type: z63.literal("teamMember"),
35216
- id: z63.string(),
35217
- name: z63.string(),
35218
- role: z63.string().nullable(),
35219
- roleLabel: z63.string().nullable(),
35220
- bio: z63.string().nullable(),
35221
- 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(),
35222
35310
  photo: teamMemberPhotoSchema,
35223
- profilePath: z63.string().nullable()
35311
+ profilePath: z61.string().nullable()
35224
35312
  });
35225
- var teamMembersDataSchema = z63.array(teamMemberDataSchema);
35313
+ var teamMembersDataSchema = z61.array(teamMemberDataSchema);
35226
35314
  var dynamicSourceWhen = { equals: "site_staff" };
35227
35315
  var manualSourceWhen = { equals: "site_staff", not: true };
35228
35316
  var headingNode = text(
@@ -36114,13 +36202,6 @@ var systemBlockDefinitionsRaw = [
36114
36202
  weight: "featured",
36115
36203
  bias: "clear",
36116
36204
  surfaces: heroSectionSurfaces
36117
- }),
36118
- layoutProfile({
36119
- variantKey: "splitEditorial",
36120
- family: "split",
36121
- weight: "featured",
36122
- bias: "clear",
36123
- surfaces: heroSectionSurfaces
36124
36205
  })
36125
36206
  ]
36126
36207
  })),
@@ -36364,9 +36445,8 @@ var systemBlockDefinitionsRaw = [
36364
36445
  flow: offeringsFlow,
36365
36446
  layoutProfiles: [
36366
36447
  layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),
36448
+ layoutProfile({ variantKey: "calendar", family: "stack", weight: "standard" }),
36367
36449
  layoutProfile({ variantKey: "list", family: "stack", weight: "standard" }),
36368
- layoutProfile({ variantKey: "month", family: "grid", weight: "standard" }),
36369
- layoutProfile({ variantKey: "week", family: "stack", weight: "standard" }),
36370
36450
  layoutProfile({ variantKey: "timetable", family: "stack", weight: "standard" })
36371
36451
  ]
36372
36452
  })),
@@ -36929,10 +37009,7 @@ function normalizeRenderStage(stage) {
36929
37009
  return stage === "preview" ? "preview" : "published";
36930
37010
  }
36931
37011
  function isRouteVisibleInStage(routeEntry, stageInput) {
36932
- const stage = normalizeRenderStage(stageInput);
36933
- if (stage === "preview" || !isRouteRecord(routeEntry)) {
36934
- return true;
36935
- }
37012
+ if (normalizeRenderStage(stageInput) === "preview" || !isRouteRecord(routeEntry)) return true;
36936
37013
  const status = routeEntry.status;
36937
37014
  return !(typeof status === "string" && status !== "published");
36938
37015
  }
@@ -36941,52 +37018,45 @@ function extractRouteHref(candidate, stageInput = "published") {
36941
37018
  const trimmed = candidate.trim();
36942
37019
  return trimmed.length > 0 ? trimmed : null;
36943
37020
  }
36944
- if (!isRouteRecord(candidate)) {
36945
- return null;
36946
- }
36947
- const stage = normalizeRenderStage(stageInput);
36948
- 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
+ ];
36949
37032
  for (const field of fields3) {
36950
37033
  const value = candidate[field];
36951
- if (typeof value === "string" && value.trim().length > 0) {
36952
- return value.trim();
36953
- }
37034
+ if (typeof value === "string" && value.trim().length > 0) return value.trim();
36954
37035
  }
36955
37036
  return null;
36956
37037
  }
36957
37038
  function extractRouteUpdatedAt(candidate) {
36958
- if (!isRouteRecord(candidate)) {
36959
- return null;
36960
- }
36961
- const fields3 = [
37039
+ if (!isRouteRecord(candidate)) return null;
37040
+ for (const field of [
36962
37041
  "updatedAt",
36963
37042
  "updated_at",
36964
37043
  "publishedAt",
36965
37044
  "published_at",
36966
37045
  "modifiedAt",
36967
37046
  "modified_at"
36968
- ];
36969
- for (const field of fields3) {
37047
+ ]) {
36970
37048
  const value = candidate[field];
36971
- if (typeof value === "string" && value.length > 0) {
36972
- return value;
36973
- }
37049
+ if (typeof value === "string" && value.length > 0) return value;
36974
37050
  }
36975
37051
  return null;
36976
37052
  }
36977
37053
  function resolveRouteTargetForStage(routeIdValue, routes, stageInput) {
36978
37054
  const routeId = typeof routeIdValue === "string" ? routeIdValue : null;
36979
- if (!routeId || !routes) {
36980
- return null;
36981
- }
37055
+ if (!routeId || !routes) return null;
36982
37056
  const routeEntry = routes[routeId];
36983
- if (!isRouteVisibleInStage(routeEntry, stageInput)) {
36984
- return null;
36985
- }
37057
+ if (!isRouteVisibleInStage(routeEntry, stageInput)) return null;
36986
37058
  const href = extractRouteHref(routeEntry, stageInput);
36987
- if (!href) {
36988
- return null;
36989
- }
37059
+ if (!href) return null;
36990
37060
  return {
36991
37061
  routeId,
36992
37062
  href,
@@ -37916,42 +37986,45 @@ import { jsx as jsx5 } from "react/jsx-runtime";
37916
37986
  import * as React from "react";
37917
37987
  import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
37918
37988
 
37989
+ // ../theme-core/src/ResponsiveScope.tsx
37990
+ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
37991
+
37919
37992
  // ../theme-core/src/fonts/uploadFormat.ts
37920
37993
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
37921
37994
 
37922
37995
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
37923
- import { z as z64 } from "zod";
37924
- var themeBridgeConfigSchema = z64.object({
37925
- tokens: z64.record(z64.string(), z64.string()),
37926
- typography: z64.object({
37927
- headingFamily: z64.string().optional(),
37928
- bodyFamily: z64.string().optional(),
37929
- headingWeight: z64.number().optional(),
37930
- 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()
37931
38004
  }).optional(),
37932
- spacing: z64.enum(["comfortable", "standard", "dense"]).optional(),
37933
- corners: z64.enum(["square", "soft", "rounded", "pill"]).optional(),
37934
- shadows: z64.enum(["none", "low", "medium", "high"]).optional(),
37935
- components: z64.object({
37936
- buttons: z64.union([
37937
- z64.boolean(),
37938
- z64.object({
37939
- 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()
37940
38013
  })
37941
38014
  ]).optional(),
37942
- cards: z64.union([
37943
- z64.boolean(),
37944
- z64.object({
37945
- 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()
37946
38019
  })
37947
38020
  ]).optional(),
37948
- inputs: z64.boolean().optional()
38021
+ inputs: z62.boolean().optional()
37949
38022
  }).optional(),
37950
- overrides: z64.record(z64.string(), z64.string()).optional()
38023
+ overrides: z62.record(z62.string(), z62.string()).optional()
37951
38024
  }).passthrough();
37952
38025
 
37953
38026
  // ../theme-core/src/siteChrome.tsx
37954
- 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";
37955
38028
 
37956
38029
  // ../blocks/src/system/data/loaderEndpoints.ts
37957
38030
  var SUPPORTED_LOADER_ENDPOINTS = [
@@ -37973,17 +38046,17 @@ var SUPPORTED_LOADER_ENDPOINTS = [
37973
38046
  function unsafeRetypeZodSchema(schema) {
37974
38047
  return schema;
37975
38048
  }
37976
- var navIdListSchema = z65.preprocess((value) => {
38049
+ var navIdListSchema = z63.preprocess((value) => {
37977
38050
  if (!Array.isArray(value)) return void 0;
37978
38051
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
37979
38052
  return filtered.length > 0 ? filtered : void 0;
37980
- }, z65.array(z65.string()).max(200).optional());
37981
- var dashboardNavVisibilityBaseSchema = z65.object({
37982
- 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(),
37983
38056
  allowIds: navIdListSchema,
37984
38057
  denyIds: navIdListSchema
37985
38058
  }).strip();
37986
- var dashboardNavVisibilityRolesSchema = z65.object({
38059
+ var dashboardNavVisibilityRolesSchema = z63.object({
37987
38060
  administrator: dashboardNavVisibilityBaseSchema.optional(),
37988
38061
  editor: dashboardNavVisibilityBaseSchema.optional(),
37989
38062
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -37991,63 +38064,63 @@ var dashboardNavVisibilityRolesSchema = z65.object({
37991
38064
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
37992
38065
  roles: dashboardNavVisibilityRolesSchema
37993
38066
  }).strip();
37994
- var dashboardNavigationConfigSchema = z65.object({
38067
+ var dashboardNavigationConfigSchema = z63.object({
37995
38068
  siteNav: dashboardNavVisibilitySchema.optional(),
37996
38069
  settingsNav: dashboardNavVisibilitySchema.optional()
37997
38070
  }).strip();
37998
- var dashboardConfigSchema = z65.object({
37999
- previewEditingEnabled: z65.boolean().optional(),
38071
+ var dashboardConfigSchema = z63.object({
38072
+ previewEditingEnabled: z63.boolean().optional(),
38000
38073
  navigation: dashboardNavigationConfigSchema.optional()
38001
38074
  }).strip();
38002
38075
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
38003
38076
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
38004
- var sdkLoaderEndpointSchema = z65.enum(SUPPORTED_LOADER_ENDPOINTS);
38005
- var loaderFallbackScalarSchema = z65.union([
38006
- z65.string(),
38007
- z65.number(),
38008
- z65.boolean(),
38009
- 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()
38010
38083
  ]);
38011
- var loaderParamBindingSchema = z65.object({
38012
- $bind: z65.object({
38013
- 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"),
38014
38087
  fallback: loaderFallbackScalarSchema.optional()
38015
38088
  })
38016
38089
  });
38017
- var loaderParamValueSchema = z65.union([
38018
- z65.string(),
38019
- z65.number(),
38020
- z65.boolean(),
38090
+ var loaderParamValueSchema = z63.union([
38091
+ z63.string(),
38092
+ z63.number(),
38093
+ z63.boolean(),
38021
38094
  loaderParamBindingSchema
38022
38095
  ]);
38023
- var sdkConfigLoaderSchema = z65.object({
38096
+ var sdkConfigLoaderSchema = z63.object({
38024
38097
  endpoint: sdkLoaderEndpointSchema,
38025
- params: z65.record(z65.string(), loaderParamValueSchema),
38026
- mode: z65.enum(["server", "client"]).default("server")
38098
+ params: z63.record(z63.string(), loaderParamValueSchema),
38099
+ mode: z63.enum(["server", "client"]).default("server")
38027
38100
  });
38028
- var sdkDataLoadersSchema = z65.record(z65.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38029
- 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-]*$/, {
38030
38103
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
38031
38104
  }).transform((value) => value);
38032
- var sdkCustomBlockInputSchema = z65.object({
38105
+ var sdkCustomBlockInputSchema = z63.object({
38033
38106
  id: sdkCustomBlockIdSchema,
38034
- title: z65.string().min(1),
38035
- titleSource: z65.union([z65.string().min(1), z65.array(z65.string().min(1)).min(1)]).optional(),
38036
- 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(),
38037
38110
  category: blockCategoryEnum,
38038
- icon: z65.string().optional(),
38039
- tags: z65.array(z65.string()).optional(),
38111
+ icon: z63.string().optional(),
38112
+ tags: z63.array(z63.string()).optional(),
38040
38113
  fields: fieldDefinitionInputSchema.array().min(1),
38041
38114
  dataLoaders: sdkDataLoadersSchema,
38042
38115
  layout: NodeSchema.optional(),
38043
- variants: z65.record(z65.string().min(1), NodeSchema).optional(),
38044
- defaultVariant: z65.string().min(1).optional(),
38045
- variantOptions: z65.record(
38046
- z65.string().min(1),
38047
- z65.object({
38048
- label: z65.string().min(1).optional(),
38049
- description: z65.string().min(1).optional(),
38050
- 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()
38051
38124
  })
38052
38125
  ).optional(),
38053
38126
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -38058,7 +38131,7 @@ var sdkCustomBlockInputSchema = z65.object({
38058
38131
  const exists = data.fields.some((field) => field.id === source);
38059
38132
  if (!exists) {
38060
38133
  ctx.addIssue({
38061
- code: z65.ZodIssueCode.custom,
38134
+ code: z63.ZodIssueCode.custom,
38062
38135
  message: `titleSource must reference a valid field ID (got "${source}")`,
38063
38136
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
38064
38137
  });
@@ -38067,7 +38140,7 @@ var sdkCustomBlockInputSchema = z65.object({
38067
38140
  }
38068
38141
  if (data.layout && data.variants) {
38069
38142
  ctx.addIssue({
38070
- code: z65.ZodIssueCode.custom,
38143
+ code: z63.ZodIssueCode.custom,
38071
38144
  message: "Custom block must define either `layout` or `variants`, not both",
38072
38145
  path: ["variants"]
38073
38146
  });
@@ -38076,14 +38149,14 @@ var sdkCustomBlockInputSchema = z65.object({
38076
38149
  const keys = Object.keys(data.variants);
38077
38150
  if (keys.length === 0) {
38078
38151
  ctx.addIssue({
38079
- code: z65.ZodIssueCode.custom,
38152
+ code: z63.ZodIssueCode.custom,
38080
38153
  message: "`variants` must contain at least one variant key",
38081
38154
  path: ["variants"]
38082
38155
  });
38083
38156
  }
38084
38157
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
38085
38158
  ctx.addIssue({
38086
- code: z65.ZodIssueCode.custom,
38159
+ code: z63.ZodIssueCode.custom,
38087
38160
  message: "`defaultVariant` must be a key present in `variants`",
38088
38161
  path: ["defaultVariant"]
38089
38162
  });
@@ -38092,7 +38165,7 @@ var sdkCustomBlockInputSchema = z65.object({
38092
38165
  for (const key of Object.keys(data.variantOptions)) {
38093
38166
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
38094
38167
  ctx.addIssue({
38095
- code: z65.ZodIssueCode.custom,
38168
+ code: z63.ZodIssueCode.custom,
38096
38169
  message: "`variantOptions` key must exist in `variants`",
38097
38170
  path: ["variantOptions", key]
38098
38171
  });
@@ -38101,78 +38174,78 @@ var sdkCustomBlockInputSchema = z65.object({
38101
38174
  }
38102
38175
  }
38103
38176
  });
38104
- var sdkBlockFieldExtensionInputSchema = z65.object({
38177
+ var sdkBlockFieldExtensionInputSchema = z63.object({
38105
38178
  fields: fieldDefinitionInputSchema.array().min(1)
38106
38179
  });
38107
- var sdkBlockFieldExtensionsInputSchema = z65.record(
38108
- z65.string().min(1),
38180
+ var sdkBlockFieldExtensionsInputSchema = z63.record(
38181
+ z63.string().min(1),
38109
38182
  sdkBlockFieldExtensionInputSchema
38110
38183
  );
38111
- var sdkThemePaletteSchema = z65.record(z65.string(), z65.string());
38112
- var sdkThemeConfigSchema = z65.object({
38184
+ var sdkThemePaletteSchema = z63.record(z63.string(), z63.string());
38185
+ var sdkThemeConfigSchema = z63.object({
38113
38186
  palette: sdkThemePaletteSchema
38114
38187
  });
38115
- var sdkSectionBackgroundSchema = z65.object({
38116
- id: z65.string().min(1),
38117
- label: z65.string().min(1),
38118
- 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)
38119
38192
  });
38120
- var sdkSectionOptionsConfigSchema = z65.object({
38121
- backgroundColor: z65.boolean().optional(),
38122
- backgroundImage: z65.boolean().optional(),
38123
- backgroundGradient: z65.boolean().optional(),
38124
- spacing: z65.union([z65.array(z65.enum(["compact", "default", "spacious"])), z65.boolean()]).optional(),
38125
- 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()
38126
38199
  });
38127
- var sdkContainerOptionsConfigSchema = z65.object({
38128
- maxWidth: z65.union([z65.array(z65.enum(["narrow", "default", "wide", "full"])), z65.boolean()]).optional(),
38129
- 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()
38130
38203
  });
38131
- var sdkSiteStyleConfigSchema = z65.object({
38132
- sectionBackgrounds: z65.array(sdkSectionBackgroundSchema).optional(),
38204
+ var sdkSiteStyleConfigSchema = z63.object({
38205
+ sectionBackgrounds: z63.array(sdkSectionBackgroundSchema).optional(),
38133
38206
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
38134
38207
  containerOptions: sdkContainerOptionsConfigSchema.optional()
38135
38208
  });
38136
- var sdkSiteLayoutConfigSchema = z65.object({
38137
- footerBlocks: z65.array(
38138
- z65.object({
38139
- id: z65.string().min(1).optional(),
38140
- kind: z65.string().min(1),
38141
- 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()
38142
38215
  })
38143
38216
  ).optional()
38144
38217
  });
38145
- var sdkFieldSelectOptionSchema = z65.object({
38146
- value: z65.string(),
38147
- label: z65.string()
38218
+ var sdkFieldSelectOptionSchema = z63.object({
38219
+ value: z63.string(),
38220
+ label: z63.string()
38148
38221
  });
38149
- var sdkBlockFieldConfigSchema = z65.object({
38150
- options: z65.array(sdkFieldSelectOptionSchema).optional()
38222
+ var sdkBlockFieldConfigSchema = z63.object({
38223
+ options: z63.array(sdkFieldSelectOptionSchema).optional()
38151
38224
  });
38152
- var sdkBlockFieldOptionsMapSchema = z65.record(
38153
- 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-]*$/, {
38154
38227
  message: "Block ID must be 'block.*' or 'custom.*' format"
38155
38228
  }),
38156
- z65.record(z65.string().min(1), sdkBlockFieldConfigSchema)
38229
+ z63.record(z63.string().min(1), sdkBlockFieldConfigSchema)
38157
38230
  ).optional();
38158
- var sdkContentTypeTemplateConfigSchema = z65.object({
38159
- blocks: z65.array(z65.unknown())
38231
+ var sdkContentTypeTemplateConfigSchema = z63.object({
38232
+ blocks: z63.array(z63.unknown())
38160
38233
  }).passthrough();
38161
- var sdkContentTypeOrderingConfigSchema = z65.object({
38162
- mode: z65.enum(["default", "manual"]).optional()
38234
+ var sdkContentTypeOrderingConfigSchema = z63.object({
38235
+ mode: z63.enum(["default", "manual"]).optional()
38163
38236
  }).optional();
38164
- var sdkContentTypeConfigSchema = z65.object({
38165
- key: z65.string().min(1),
38166
- fields: z65.array(z65.unknown()),
38237
+ var sdkContentTypeConfigSchema = z63.object({
38238
+ key: z63.string().min(1),
38239
+ fields: z63.array(z63.unknown()),
38167
38240
  ordering: sdkContentTypeOrderingConfigSchema,
38168
38241
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
38169
38242
  }).passthrough();
38170
- var sdkContentConfigSchema = z65.object({
38171
- contentTypes: z65.array(sdkContentTypeConfigSchema).optional(),
38172
- pages: z65.array(z65.unknown()).optional(),
38173
- entries: z65.array(z65.unknown()).optional(),
38174
- navigationMenus: z65.array(z65.unknown()).optional(),
38175
- 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()
38176
38249
  }).passthrough();
38177
38250
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
38178
38251
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -38187,62 +38260,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
38187
38260
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
38188
38261
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
38189
38262
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
38190
- 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, {
38191
38264
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
38192
38265
  });
38193
- 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 "/"' });
38194
- var sdkWorkflowManualTriggerSchema = z65.object({
38195
- 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")
38196
38269
  }).strict();
38197
- 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("."), {
38198
38271
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
38199
38272
  });
38200
- var sdkWorkflowFieldChangedConditionSchema = z65.object({
38273
+ var sdkWorkflowFieldChangedConditionSchema = z63.object({
38201
38274
  field: sdkWorkflowTriggerFieldSchema,
38202
- changed: z65.literal(true)
38275
+ changed: z63.literal(true)
38203
38276
  }).strict();
38204
- var sdkWorkflowFieldEmptyConditionSchema = z65.object({
38277
+ var sdkWorkflowFieldEmptyConditionSchema = z63.object({
38205
38278
  field: sdkWorkflowTriggerFieldSchema,
38206
- isEmpty: z65.boolean()
38279
+ isEmpty: z63.boolean()
38207
38280
  }).strict();
38208
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z65.object({
38209
- type: z65.literal("entry.draft.updated"),
38210
- when: z65.array(
38211
- z65.union([
38281
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z63.object({
38282
+ type: z63.literal("entry.draft.updated"),
38283
+ when: z63.array(
38284
+ z63.union([
38212
38285
  sdkWorkflowFieldChangedConditionSchema,
38213
38286
  sdkWorkflowFieldEmptyConditionSchema
38214
38287
  ])
38215
38288
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
38216
38289
  }).strict();
38217
- var sdkWorkflowTriggerSchema = z65.discriminatedUnion("type", [
38290
+ var sdkWorkflowTriggerSchema = z63.discriminatedUnion("type", [
38218
38291
  sdkWorkflowManualTriggerSchema,
38219
38292
  sdkWorkflowEntryDraftUpdatedTriggerSchema
38220
38293
  ]);
38221
- var sdkWorkflowConfirmationSchema = z65.object({
38222
- title: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38223
- 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()
38224
38297
  }).strict();
38225
- var sdkWorkflowConfigSchema = z65.object({
38298
+ var sdkWorkflowConfigSchema = z63.object({
38226
38299
  id: sdkWorkflowIdSchema,
38227
- title: z65.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38228
- description: z65.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38229
- 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),
38230
38303
  endpoint: sdkWorkflowEndpointSchema,
38231
- 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),
38232
38305
  confirmation: sdkWorkflowConfirmationSchema.optional()
38233
38306
  }).strict();
38234
- 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) => {
38235
38308
  const ids = workflows.map((workflow) => workflow.id);
38236
38309
  return ids.length === new Set(ids).size;
38237
38310
  }, { message: "Workflow IDs must be unique" }).optional();
38238
- var riverbankSiteConfigInputSchema = z65.object({
38239
- siteId: z65.string().uuid(),
38240
- previewUrl: z65.string().url().optional(),
38241
- 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(),
38242
38315
  theme: sdkThemeConfigSchema.optional(),
38243
38316
  styles: sdkSiteStyleConfigSchema.optional(),
38244
38317
  layout: sdkSiteLayoutConfigSchema.optional(),
38245
- 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) => {
38246
38319
  const ids = blocks.map((b) => b.id);
38247
38320
  return ids.length === new Set(ids).size;
38248
38321
  }, { message: "Block IDs must be unique" }).optional(),
@@ -38250,50 +38323,50 @@ var riverbankSiteConfigInputSchema = z65.object({
38250
38323
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
38251
38324
  workflows: sdkWorkflowsSchema,
38252
38325
  content: sdkContentConfigSchema.optional(),
38253
- contentDir: z65.string().optional(),
38254
- sync: z65.object({
38255
- existingEntries: z65.enum(["skip", "update"]).optional()
38326
+ contentDir: z63.string().optional(),
38327
+ sync: z63.object({
38328
+ existingEntries: z63.enum(["skip", "update"]).optional()
38256
38329
  }).optional(),
38257
- deploy: z65.object({
38258
- verifyCommand: z65.string().optional(),
38259
- prebuildOutput: z65.string().optional()
38330
+ deploy: z63.object({
38331
+ verifyCommand: z63.string().optional(),
38332
+ prebuildOutput: z63.string().optional()
38260
38333
  }).optional(),
38261
- themeSource: z65.enum(["local", "cms"]).optional(),
38262
- activeTheme: z65.string().optional(),
38263
- enablePortal: z65.boolean().optional(),
38334
+ themeSource: z63.enum(["local", "cms"]).optional(),
38335
+ activeTheme: z63.string().optional(),
38336
+ enablePortal: z63.boolean().optional(),
38264
38337
  dashboard: dashboardConfigSchema.optional()
38265
38338
  }).strict();
38266
- var pushSdkConfigBodySchema = z65.object({
38339
+ var pushSdkConfigBodySchema = z63.object({
38267
38340
  config: riverbankSiteConfigInputSchema,
38268
- forceContentTypes: z65.boolean().optional()
38341
+ forceContentTypes: z63.boolean().optional()
38269
38342
  }).strict();
38270
38343
 
38271
38344
  // ../api/src/siteOnboarding.ts
38272
- import { z as z66 } from "zod";
38345
+ import { z as z64 } from "zod";
38273
38346
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
38274
38347
  configure_appointments: {
38275
38348
  requirementId: "configure_appointments",
38276
38349
  reason: "launch_anyway"
38277
38350
  }
38278
38351
  };
38279
- var acknowledgeLaunchRequirementRequestSchema = z66.discriminatedUnion(
38352
+ var acknowledgeLaunchRequirementRequestSchema = z64.discriminatedUnion(
38280
38353
  "requirementId",
38281
38354
  [
38282
- z66.object({
38283
- requirementId: z66.literal("review_generated_site")
38355
+ z64.object({
38356
+ requirementId: z64.literal("review_generated_site")
38284
38357
  }),
38285
- z66.object({
38286
- requirementId: z66.literal(
38358
+ z64.object({
38359
+ requirementId: z64.literal(
38287
38360
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
38288
38361
  ),
38289
- overrideReason: z66.literal(
38362
+ overrideReason: z64.literal(
38290
38363
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
38291
38364
  )
38292
38365
  })
38293
38366
  ]
38294
38367
  );
38295
- var goLiveSiteRequestSchema = z66.object({
38296
- acceptExtraSiteCharge: z66.boolean().optional()
38368
+ var goLiveSiteRequestSchema = z64.object({
38369
+ acceptExtraSiteCharge: z64.boolean().optional()
38297
38370
  });
38298
38371
 
38299
38372
  // ../surfaces/src/index.ts
@@ -38377,7 +38450,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
38377
38450
  ];
38378
38451
 
38379
38452
  // ../api/src/bookingVerticals.ts
38380
- import { z as z67 } from "zod";
38453
+ import { z as z65 } from "zod";
38381
38454
  var VERTICAL_IDS = [
38382
38455
  "yoga_wellness",
38383
38456
  "fitness_pt",
@@ -38542,39 +38615,39 @@ function getSiteVerticalConfigIssues(rawConfig, config) {
38542
38615
  }
38543
38616
  return [...issues];
38544
38617
  }
38545
- var VerticalIdSchema = z67.string().trim().transform((value, ctx) => {
38618
+ var VerticalIdSchema = z65.string().trim().transform((value, ctx) => {
38546
38619
  const parsed = parseVerticalId(value);
38547
38620
  if (!parsed) {
38548
38621
  ctx.addIssue({
38549
- code: z67.ZodIssueCode.custom,
38622
+ code: z65.ZodIssueCode.custom,
38550
38623
  message: "Unknown booking vertical"
38551
38624
  });
38552
- return z67.NEVER;
38625
+ return z65.NEVER;
38553
38626
  }
38554
38627
  return parsed;
38555
38628
  });
38556
- var VerticalPresetIdSchema = z67.string().trim().transform((value, ctx) => {
38629
+ var VerticalPresetIdSchema = z65.string().trim().transform((value, ctx) => {
38557
38630
  const parsed = parseVerticalPresetId(value);
38558
38631
  if (!parsed) {
38559
38632
  ctx.addIssue({
38560
- code: z67.ZodIssueCode.custom,
38633
+ code: z65.ZodIssueCode.custom,
38561
38634
  message: "Unknown booking preset"
38562
38635
  });
38563
- return z67.NEVER;
38636
+ return z65.NEVER;
38564
38637
  }
38565
38638
  return parsed;
38566
38639
  });
38567
- var BookingVerticalConfigSchema = z67.object({
38640
+ var BookingVerticalConfigSchema = z65.object({
38568
38641
  verticalId: VerticalIdSchema.nullable(),
38569
- selectedPresetIds: z67.array(VerticalPresetIdSchema).max(20)
38642
+ selectedPresetIds: z65.array(VerticalPresetIdSchema).max(20)
38570
38643
  }).transform((value, ctx) => {
38571
38644
  const resolved = resolveSiteVerticalBookingConfig(value);
38572
38645
  if (resolved.kind === "invalid") {
38573
38646
  ctx.addIssue({
38574
- code: z67.ZodIssueCode.custom,
38647
+ code: z65.ZodIssueCode.custom,
38575
38648
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
38576
38649
  });
38577
- return z67.NEVER;
38650
+ return z65.NEVER;
38578
38651
  }
38579
38652
  return resolved.config;
38580
38653
  });
@@ -38601,51 +38674,51 @@ function isRecord7(value) {
38601
38674
  }
38602
38675
 
38603
38676
  // ../api/src/appointmentSetup.ts
38604
- import { z as z68 } from "zod";
38677
+ import { z as z66 } from "zod";
38605
38678
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
38606
- var appointmentSetupRefSchema = z68.discriminatedUnion("kind", [
38607
- z68.object({ kind: z68.literal("existing"), id: z68.string().min(1) }),
38608
- 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) })
38609
38682
  ]);
38610
- var appointmentSetupVenueChoiceSchema = z68.discriminatedUnion("kind", [
38611
- z68.object({ kind: z68.literal("none") }),
38612
- z68.object({ kind: z68.literal("existing"), venueId: z68.string().min(1) }),
38613
- z68.object({
38614
- kind: z68.literal("create"),
38615
- draftId: z68.string().min(1),
38616
- title: z68.string().trim().min(1),
38617
- description: z68.string().nullable(),
38618
- timezone: z68.string().trim().min(1).nullable(),
38619
- addressJson: z68.record(z68.string(), z68.unknown()),
38620
- 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()
38621
38694
  })
38622
38695
  ]);
38623
- var appointmentSetupPaymentDraftSchema = z68.object({
38624
- priceType: z68.union([z68.literal("free"), z68.literal("paid")])
38625
- });
38626
- var appointmentSetupServiceAssignmentDraftSchema = z68.discriminatedUnion("kind", [
38627
- z68.object({ kind: z68.literal("all_practitioners") }),
38628
- z68.object({
38629
- kind: z68.literal("selected_practitioners"),
38630
- 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)
38631
38704
  })
38632
38705
  ]);
38633
- var appointmentSetupServiceDraftSchema = z68.object({
38706
+ var appointmentSetupServiceDraftSchema = z66.object({
38634
38707
  ref: appointmentSetupRefSchema,
38635
- title: z68.string().trim().min(1),
38636
- description: z68.string().nullable(),
38637
- durationMinutes: z68.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38638
- prepMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38639
- cleanupMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38640
- priceAmount: z68.number().int().nonnegative().nullable(),
38641
- isActive: z68.boolean(),
38642
- locationType: z68.union([
38643
- z68.literal("virtual"),
38644
- z68.literal("in_person"),
38645
- 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")
38646
38719
  ]),
38647
38720
  venue: appointmentSetupVenueChoiceSchema,
38648
- timezone: z68.string().trim().min(1).nullable(),
38721
+ timezone: z66.string().trim().min(1).nullable(),
38649
38722
  payment: appointmentSetupPaymentDraftSchema,
38650
38723
  assignment: appointmentSetupServiceAssignmentDraftSchema
38651
38724
  }).superRefine((service, ctx) => {
@@ -38664,49 +38737,49 @@ var appointmentSetupServiceDraftSchema = z68.object({
38664
38737
  });
38665
38738
  }
38666
38739
  });
38667
- var appointmentSetupPractitionerDraftSchema = z68.object({
38740
+ var appointmentSetupPractitionerDraftSchema = z66.object({
38668
38741
  ref: appointmentSetupRefSchema,
38669
- displayName: z68.string().trim().min(1),
38670
- bio: z68.string().nullable(),
38671
- timezone: z68.string().trim().min(1),
38672
- colorHex: z68.string().nullable()
38673
- });
38674
- var appointmentSetupWeeklyWindowDraftSchema = z68.object({
38675
- weekday: z68.number().int().min(0).max(6),
38676
- startTime: z68.string(),
38677
- endTime: z68.string()
38678
- });
38679
- var appointmentSetupStartTimePolicyDraftSchema = z68.discriminatedUnion("kind", [
38680
- z68.object({ kind: z68.literal("automatic_spacing") }),
38681
- z68.object({
38682
- kind: z68.literal("regular_interval"),
38683
- intervalMinutes: z68.union([
38684
- z68.literal(10),
38685
- z68.literal(15),
38686
- z68.literal(20),
38687
- z68.literal(30),
38688
- z68.literal(45),
38689
- 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)
38690
38763
  ])
38691
38764
  })
38692
38765
  ]);
38693
- var appointmentSetupAvailabilityDraftSchema = z68.object({
38694
- kind: z68.literal("weekly_windows"),
38766
+ var appointmentSetupAvailabilityDraftSchema = z66.object({
38767
+ kind: z66.literal("weekly_windows"),
38695
38768
  resourceRef: appointmentSetupRefSchema,
38696
38769
  serviceRef: appointmentSetupRefSchema.nullable(),
38697
- windows: z68.array(appointmentSetupWeeklyWindowDraftSchema),
38770
+ windows: z66.array(appointmentSetupWeeklyWindowDraftSchema),
38698
38771
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
38699
38772
  });
38700
38773
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
38701
38774
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
38702
- var appointmentSetupBookingNoticeSchema = z68.object({
38703
- minLeadMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38704
- maxBookingNoticeMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38705
- });
38706
- var applyAppointmentSetupRequestSchema = z68.object({
38707
- services: z68.array(appointmentSetupServiceDraftSchema),
38708
- practitioners: z68.array(appointmentSetupPractitionerDraftSchema),
38709
- 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),
38710
38783
  bookingNotice: appointmentSetupBookingNoticeSchema
38711
38784
  });
38712
38785
 
@@ -38739,24 +38812,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
38739
38812
  ];
38740
38813
 
38741
38814
  // ../api/src/siteBanner.ts
38742
- import { z as z69 } from "zod";
38815
+ import { z as z67 } from "zod";
38743
38816
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
38744
38817
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
38745
38818
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
38746
38819
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
38747
- var siteBannerScopeSchema = z69.enum(SITE_BANNER_SCOPE_VALUES);
38748
- var siteBannerToneSchema = z69.enum(SITE_BANNER_TONE_VALUES);
38749
- var siteBannerBodySchema = z69.unknown().transform(unwrapRichTextValue);
38750
- var siteBannerCtaSchema = z69.object({
38751
- 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),
38752
38825
  link: linkPayloadSchema
38753
38826
  });
38754
- var siteBannerSettingsSchema = z69.discriminatedUnion("enabled", [
38755
- z69.object({
38756
- enabled: z69.literal(false)
38827
+ var siteBannerSettingsSchema = z67.discriminatedUnion("enabled", [
38828
+ z67.object({
38829
+ enabled: z67.literal(false)
38757
38830
  }),
38758
- z69.object({
38759
- enabled: z69.literal(true),
38831
+ z67.object({
38832
+ enabled: z67.literal(true),
38760
38833
  scope: siteBannerScopeSchema,
38761
38834
  tone: siteBannerToneSchema,
38762
38835
  body: siteBannerBodySchema,
@@ -38770,7 +38843,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
38770
38843
  const analysis = analyzeSiteBannerBody(value.body);
38771
38844
  for (const issue of analysis.issues) {
38772
38845
  ctx.addIssue({
38773
- code: z69.ZodIssueCode.custom,
38846
+ code: z67.ZodIssueCode.custom,
38774
38847
  path: ["body"],
38775
38848
  message: siteBannerBodyIssueMessage(issue)
38776
38849
  });
@@ -39077,75 +39150,75 @@ function unsafeAsNavigationMenuIdentifier(identifier) {
39077
39150
  var MAIN_NAVIGATION_MENU_IDENTIFIER = unsafeAsNavigationMenuIdentifier("main");
39078
39151
 
39079
39152
  // ../api/src/aiPlayground.ts
39080
- import { z as z70 } from "zod";
39081
- var Rfc6902PatchOp = z70.discriminatedUnion("op", [
39153
+ import { z as z68 } from "zod";
39154
+ var Rfc6902PatchOp = z68.discriminatedUnion("op", [
39082
39155
  // Standard RFC-6902 operations
39083
- z70.object({
39084
- op: z70.literal("add"),
39085
- path: z70.string(),
39086
- value: z70.unknown()
39156
+ z68.object({
39157
+ op: z68.literal("add"),
39158
+ path: z68.string(),
39159
+ value: z68.unknown()
39087
39160
  }),
39088
- z70.object({
39089
- op: z70.literal("remove"),
39090
- path: z70.string()
39161
+ z68.object({
39162
+ op: z68.literal("remove"),
39163
+ path: z68.string()
39091
39164
  }),
39092
- z70.object({
39093
- op: z70.literal("replace"),
39094
- path: z70.string(),
39095
- value: z70.unknown()
39165
+ z68.object({
39166
+ op: z68.literal("replace"),
39167
+ path: z68.string(),
39168
+ value: z68.unknown()
39096
39169
  }),
39097
- z70.object({
39098
- op: z70.literal("move"),
39099
- from: z70.string(),
39100
- path: z70.string()
39170
+ z68.object({
39171
+ op: z68.literal("move"),
39172
+ from: z68.string(),
39173
+ path: z68.string()
39101
39174
  }),
39102
- z70.object({
39103
- op: z70.literal("copy"),
39104
- from: z70.string(),
39105
- path: z70.string()
39175
+ z68.object({
39176
+ op: z68.literal("copy"),
39177
+ from: z68.string(),
39178
+ path: z68.string()
39106
39179
  }),
39107
39180
  // Block-level operations (Phase 2)
39108
- z70.object({
39109
- op: z70.literal("add_block"),
39110
- blockKind: z70.string(),
39111
- afterBlockId: z70.string().nullable(),
39112
- content: z70.record(z70.string(), z70.unknown()),
39113
- 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()
39114
39187
  }),
39115
- z70.object({
39116
- op: z70.literal("delete_block"),
39117
- blockId: z70.string(),
39118
- rationale: z70.string()
39188
+ z68.object({
39189
+ op: z68.literal("delete_block"),
39190
+ blockId: z68.string(),
39191
+ rationale: z68.string()
39119
39192
  }),
39120
- z70.object({
39121
- op: z70.literal("reorder_block"),
39122
- blockId: z70.string(),
39123
- afterBlockId: z70.string().nullable(),
39124
- 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()
39125
39198
  })
39126
39199
  ]);
39127
- var PlaygroundProposeRequest = z70.object({
39128
- request: z70.string().min(1).max(2e3)
39200
+ var PlaygroundProposeRequest = z68.object({
39201
+ request: z68.string().min(1).max(2e3)
39129
39202
  });
39130
- var MultiPagePatchEnvelope = z70.object({
39131
- pageId: z70.string(),
39132
- blockId: z70.string().optional(),
39203
+ var MultiPagePatchEnvelope = z68.object({
39204
+ pageId: z68.string(),
39205
+ blockId: z68.string().optional(),
39133
39206
  // Not present for page-level ops
39134
- blockKind: z70.string().optional(),
39135
- blockPurpose: z70.string().optional().nullable(),
39136
- ops: z70.array(Rfc6902PatchOp),
39137
- rationale: z70.string(),
39138
- 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()
39139
39212
  });
39140
- var MultiPageUpdateResponse = z70.object({
39141
- patches: z70.array(MultiPagePatchEnvelope),
39142
- assistantMessage: z70.string(),
39143
- pagesModified: z70.number(),
39144
- 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()
39145
39218
  });
39146
39219
 
39147
39220
  // src/config/content-validation.ts
39148
- import { z as z71 } from "zod";
39221
+ import { z as z69 } from "zod";
39149
39222
 
39150
39223
  // src/types/block-kinds.ts
39151
39224
  var SYSTEM_BLOCK_KINDS = [
@@ -39289,36 +39362,36 @@ function describeInvalidBindingTransform(transform) {
39289
39362
  }
39290
39363
 
39291
39364
  // src/config/content-validation.ts
39292
- var jsonDataSchema = z71.record(z71.string(), z71.any());
39293
- var contentTypeKeySchema = z71.string().min(1).regex(
39365
+ var jsonDataSchema = z69.record(z69.string(), z69.any());
39366
+ var contentTypeKeySchema = z69.string().min(1).regex(
39294
39367
  /^[a-z][a-z0-9-]*$/,
39295
39368
  "Key must be lowercase, start with a letter, and contain only letters, numbers, and hyphens"
39296
39369
  );
39297
- var templateConfigSchemaForward = z71.object({
39298
- blocks: z71.array(
39299
- z71.object({
39300
- identifier: z71.string().min(1),
39301
- kind: z71.string(),
39302
- scope: z71.enum(["entry", "template"]),
39303
- bindings: z71.record(z71.string(), z71.any()).optional(),
39304
- 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()
39305
39378
  })
39306
39379
  )
39307
39380
  }).optional();
39308
- var contentTypeOrderingSchema = z71.object({
39309
- mode: z71.enum(["default", "manual"]).optional()
39381
+ var contentTypeOrderingSchema = z69.object({
39382
+ mode: z69.enum(["default", "manual"]).optional()
39310
39383
  }).optional();
39311
- var contentTypeConfigSchema = z71.object({
39384
+ var contentTypeConfigSchema = z69.object({
39312
39385
  key: contentTypeKeySchema,
39313
- name: z71.string().min(1),
39314
- description: z71.string().optional(),
39315
- hasPages: z71.boolean(),
39316
- routePattern: z71.string().optional(),
39386
+ name: z69.string().min(1),
39387
+ description: z69.string().optional(),
39388
+ hasPages: z69.boolean(),
39389
+ routePattern: z69.string().optional(),
39317
39390
  // Fields are validated as unknown[] here - deep field validation happens in @riverbankcms/blocks
39318
- fields: z71.array(z71.any()).min(1, "At least one field is required"),
39319
- titleField: z71.string().optional(),
39391
+ fields: z69.array(z69.any()).min(1, "At least one field is required"),
39392
+ titleField: z69.string().optional(),
39320
39393
  ordering: contentTypeOrderingSchema,
39321
- isSingleton: z71.boolean().optional().default(false),
39394
+ isSingleton: z69.boolean().optional().default(false),
39322
39395
  template: templateConfigSchemaForward
39323
39396
  }).refine(
39324
39397
  (data) => {
@@ -39340,7 +39413,7 @@ var contentTypeConfigSchema = z71.object({
39340
39413
  }
39341
39414
  if (!data.routePattern) {
39342
39415
  ctx.addIssue({
39343
- code: z71.ZodIssueCode.custom,
39416
+ code: z69.ZodIssueCode.custom,
39344
39417
  path: ["routePattern"],
39345
39418
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39346
39419
  });
@@ -39349,7 +39422,7 @@ var contentTypeConfigSchema = z71.object({
39349
39422
  const parseResult = safeParseRouteTemplate(data.routePattern);
39350
39423
  if (!parseResult.success) {
39351
39424
  ctx.addIssue({
39352
- code: z71.ZodIssueCode.custom,
39425
+ code: z69.ZodIssueCode.custom,
39353
39426
  path: ["routePattern"],
39354
39427
  message: describeRouteTemplateParseError(parseResult.error)
39355
39428
  });
@@ -39357,44 +39430,44 @@ var contentTypeConfigSchema = z71.object({
39357
39430
  }
39358
39431
  if (!data.isSingleton && parseResult.routeTemplate.kind !== "slug-template") {
39359
39432
  ctx.addIssue({
39360
- code: z71.ZodIssueCode.custom,
39433
+ code: z69.ZodIssueCode.custom,
39361
39434
  path: ["routePattern"],
39362
39435
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39363
39436
  });
39364
39437
  }
39365
39438
  });
39366
- var fieldBindingSchema = z71.object({
39367
- source: z71.literal("field"),
39368
- 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")
39369
39442
  });
39370
- var metaBindingSchema = z71.object({
39371
- source: z71.literal("meta"),
39372
- 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, {
39373
39446
  error: (issue) => describeInvalidTemplateBindingMetaPath(String(issue.input))
39374
39447
  })
39375
39448
  });
39376
- var literalBindingSchema = z71.object({
39377
- source: z71.literal("literal"),
39378
- value: z71.unknown()
39449
+ var literalBindingSchema = z69.object({
39450
+ source: z69.literal("literal"),
39451
+ value: z69.unknown()
39379
39452
  });
39380
- var transformBindingSchema = z71.object({
39381
- source: z71.literal("transform"),
39382
- path: z71.string().min(1, "Transform path is required"),
39383
- 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, {
39384
39457
  error: (issue) => describeInvalidBindingTransform(String(issue.input))
39385
39458
  })
39386
39459
  });
39387
- var baseBindingSchema = z71.discriminatedUnion("source", [
39460
+ var baseBindingSchema = z69.discriminatedUnion("source", [
39388
39461
  fieldBindingSchema,
39389
39462
  metaBindingSchema,
39390
39463
  literalBindingSchema,
39391
39464
  transformBindingSchema
39392
39465
  ]);
39393
- var fallbackBindingSchema = z71.object({
39394
- source: z71.literal("fallback"),
39395
- 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")
39396
39469
  });
39397
- var bindingSourceSchema = z71.union([
39470
+ var bindingSourceSchema = z69.union([
39398
39471
  baseBindingSchema,
39399
39472
  fallbackBindingSchema
39400
39473
  ]);
@@ -39408,12 +39481,12 @@ function isValidBlockKind(kind) {
39408
39481
  return false;
39409
39482
  }
39410
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")';
39411
- var blockKindSchema = z71.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39412
- var templateBlockConfigSchema = z71.object({
39413
- 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"),
39414
39487
  kind: blockKindSchema,
39415
- scope: z71.enum(["entry", "template"]),
39416
- bindings: z71.record(z71.string(), bindingSourceSchema).optional(),
39488
+ scope: z69.enum(["entry", "template"]),
39489
+ bindings: z69.record(z69.string(), bindingSourceSchema).optional(),
39417
39490
  content: jsonDataSchema.optional()
39418
39491
  }).refine(
39419
39492
  (data) => {
@@ -39432,8 +39505,8 @@ var templateBlockConfigSchema = z71.object({
39432
39505
  },
39433
39506
  { message: "Template-scoped blocks should define static content, not bindings" }
39434
39507
  );
39435
- var templateConfigSchema = z71.object({
39436
- 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")
39437
39510
  }).refine(
39438
39511
  (data) => {
39439
39512
  const identifiers = data.blocks.map((b) => b.identifier);
@@ -39442,77 +39515,77 @@ var templateConfigSchema = z71.object({
39442
39515
  },
39443
39516
  { message: "Template block identifiers must be unique" }
39444
39517
  );
39445
- var blockConfigSchema = z71.object({
39518
+ var blockConfigSchema = z69.object({
39446
39519
  kind: blockKindSchema,
39447
39520
  content: jsonDataSchema,
39448
- orderIndex: z71.number().optional()
39449
- });
39450
- var pageConfigSchema = z71.object({
39451
- identifier: z71.string().min(1, "Identifier is required"),
39452
- title: z71.string().min(1, "Title is required"),
39453
- path: z71.string().regex(/^\//, "Path must start with /"),
39454
- purpose: z71.string().default("content"),
39455
- blocks: z71.array(blockConfigSchema).optional(),
39456
- status: z71.enum(["draft", "published"]).default("draft"),
39457
- metaTitle: z71.string().optional(),
39458
- metaDescription: z71.string().optional()
39459
- });
39460
- var entryConfigSchema = z71.object({
39461
- identifier: z71.string().min(1, "Identifier is required"),
39462
- 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"),
39463
39536
  data: jsonDataSchema,
39464
- status: z71.enum(["draft", "published"]).default("draft"),
39465
- slug: z71.string().optional(),
39466
- summary: z71.string().optional(),
39537
+ status: z69.enum(["draft", "published"]).default("draft"),
39538
+ slug: z69.string().optional(),
39539
+ summary: z69.string().optional(),
39467
39540
  // Hard remove legacy config-only titles: titles must live in entry `data`.
39468
- title: z71.any().optional().refine((value) => value === void 0, {
39541
+ title: z69.any().optional().refine((value) => value === void 0, {
39469
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."
39470
39543
  }),
39471
- metaTitle: z71.string().optional(),
39472
- metaDescription: z71.string().optional()
39544
+ metaTitle: z69.string().optional(),
39545
+ metaDescription: z69.string().optional()
39473
39546
  });
39474
- var dropdownLinkSchema = z71.object({
39475
- kind: z71.literal("dropdown")
39547
+ var dropdownLinkSchema = z69.object({
39548
+ kind: z69.literal("dropdown")
39476
39549
  });
39477
- var navigationLinkSchema = z71.discriminatedUnion("kind", [
39550
+ var navigationLinkSchema = z69.discriminatedUnion("kind", [
39478
39551
  ...navigationLinkInputSchemaOptions,
39479
39552
  dropdownLinkSchema
39480
39553
  ]);
39481
- var baseNavigationItemSchema = z71.object({
39482
- label: z71.string().min(1, "Label is required"),
39554
+ var baseNavigationItemSchema = z69.object({
39555
+ label: z69.string().min(1, "Label is required"),
39483
39556
  link: navigationLinkSchema,
39484
- isCta: z71.boolean().optional()
39557
+ isCta: z69.boolean().optional()
39485
39558
  });
39486
39559
  var navigationItemConfigSchema = baseNavigationItemSchema.extend({
39487
- children: z71.lazy(() => z71.array(navigationItemConfigSchema)).optional()
39488
- });
39489
- var navigationMenuConfigSchema = z71.object({
39490
- identifier: z71.string().min(1, "Identifier is required"),
39491
- name: z71.string().min(1, "Name is required"),
39492
- isPrimary: z71.boolean().optional(),
39493
- isFooter: z71.boolean().optional(),
39494
- 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)
39495
39568
  }).superRefine((menu, ctx) => {
39496
39569
  const portalStats = collectPortalLinkStats(
39497
39570
  menu.items
39498
39571
  );
39499
39572
  if (portalStats.count > 1) {
39500
39573
  ctx.addIssue({
39501
- code: z71.ZodIssueCode.custom,
39574
+ code: z69.ZodIssueCode.custom,
39502
39575
  message: "Only one portal link is allowed per navigation menu",
39503
39576
  path: ["items"]
39504
39577
  });
39505
39578
  }
39506
39579
  if (portalStats.nestedLabels.length > 0) {
39507
39580
  ctx.addIssue({
39508
- code: z71.ZodIssueCode.custom,
39581
+ code: z69.ZodIssueCode.custom,
39509
39582
  message: `Portal links must be root-level items: ${portalStats.nestedLabels.join(", ")}`,
39510
39583
  path: ["items"]
39511
39584
  });
39512
39585
  }
39513
39586
  if (portalStats.withChildrenLabels.length > 0) {
39514
39587
  ctx.addIssue({
39515
- code: z71.ZodIssueCode.custom,
39588
+ code: z69.ZodIssueCode.custom,
39516
39589
  message: `Portal links cannot contain child items: ${portalStats.withChildrenLabels.join(", ")}`,
39517
39590
  path: ["items"]
39518
39591
  });
@@ -39522,44 +39595,44 @@ var navigationMenuConfigSchema = z71.object({
39522
39595
  );
39523
39596
  if (cartStats.nestedLabels.length > 0) {
39524
39597
  ctx.addIssue({
39525
- code: z71.ZodIssueCode.custom,
39598
+ code: z69.ZodIssueCode.custom,
39526
39599
  message: `Cart links must be root-level items: ${cartStats.nestedLabels.join(", ")}`,
39527
39600
  path: ["items"]
39528
39601
  });
39529
39602
  }
39530
39603
  if (cartStats.withChildrenLabels.length > 0) {
39531
39604
  ctx.addIssue({
39532
- code: z71.ZodIssueCode.custom,
39605
+ code: z69.ZodIssueCode.custom,
39533
39606
  message: `Cart links cannot contain child items: ${cartStats.withChildrenLabels.join(", ")}`,
39534
39607
  path: ["items"]
39535
39608
  });
39536
39609
  }
39537
39610
  if (cartStats.ctaLabels.length > 0) {
39538
39611
  ctx.addIssue({
39539
- code: z71.ZodIssueCode.custom,
39612
+ code: z69.ZodIssueCode.custom,
39540
39613
  message: `Cart links cannot be marked as CTA: ${cartStats.ctaLabels.join(", ")}`,
39541
39614
  path: ["items"]
39542
39615
  });
39543
39616
  }
39544
39617
  if (cartStats.missingVisibleTextLabels.length > 0) {
39545
39618
  ctx.addIssue({
39546
- code: z71.ZodIssueCode.custom,
39619
+ code: z69.ZodIssueCode.custom,
39547
39620
  message: `Cart links with icon-with-label must provide a visible label: ${cartStats.missingVisibleTextLabels.join(", ")}`,
39548
39621
  path: ["items"]
39549
39622
  });
39550
39623
  }
39551
39624
  });
39552
- var siteSettingsConfigSchema = z71.object({
39553
- homepagePath: z71.string().optional(),
39554
- siteTitle: z71.string().optional(),
39555
- siteDescription: z71.string().optional(),
39556
- 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()
39557
39630
  });
39558
- var contentConfigBaseSchema = z71.object({
39559
- contentTypes: z71.array(contentTypeConfigSchema).optional(),
39560
- entries: z71.array(entryConfigSchema).optional(),
39561
- pages: z71.array(pageConfigSchema).optional(),
39562
- 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(),
39563
39636
  settings: siteSettingsConfigSchema.optional()
39564
39637
  });
39565
39638
  var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
@@ -39568,7 +39641,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39568
39641
  const duplicateKeys = keys.filter((key, i) => keys.indexOf(key) !== i);
39569
39642
  if (duplicateKeys.length > 0) {
39570
39643
  ctx.addIssue({
39571
- code: z71.ZodIssueCode.custom,
39644
+ code: z69.ZodIssueCode.custom,
39572
39645
  message: `Content type keys must be unique. Duplicates: ${duplicateKeys.join(", ")}`,
39573
39646
  path: ["contentTypes"]
39574
39647
  });
@@ -39579,7 +39652,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39579
39652
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39580
39653
  if (duplicateIds.length > 0) {
39581
39654
  ctx.addIssue({
39582
- code: z71.ZodIssueCode.custom,
39655
+ code: z69.ZodIssueCode.custom,
39583
39656
  message: `Page identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39584
39657
  path: ["pages"]
39585
39658
  });
@@ -39588,7 +39661,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39588
39661
  const duplicatePaths = paths.filter((path, i) => paths.indexOf(path) !== i);
39589
39662
  if (duplicatePaths.length > 0) {
39590
39663
  ctx.addIssue({
39591
- code: z71.ZodIssueCode.custom,
39664
+ code: z69.ZodIssueCode.custom,
39592
39665
  message: `Page paths must be unique. Duplicates: ${duplicatePaths.join(", ")}`,
39593
39666
  path: ["pages"]
39594
39667
  });
@@ -39599,7 +39672,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39599
39672
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39600
39673
  if (duplicateIds.length > 0) {
39601
39674
  ctx.addIssue({
39602
- code: z71.ZodIssueCode.custom,
39675
+ code: z69.ZodIssueCode.custom,
39603
39676
  message: `Entry identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39604
39677
  path: ["entries"]
39605
39678
  });
@@ -39610,7 +39683,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39610
39683
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39611
39684
  if (duplicateIds.length > 0) {
39612
39685
  ctx.addIssue({
39613
- code: z71.ZodIssueCode.custom,
39686
+ code: z69.ZodIssueCode.custom,
39614
39687
  message: `Navigation menu identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39615
39688
  path: ["navigationMenus"]
39616
39689
  });
@@ -39624,7 +39697,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39624
39697
  const entriesForType = data.entries.filter((e) => e.contentType === singletonKey);
39625
39698
  if (entriesForType.length > 1) {
39626
39699
  ctx.addIssue({
39627
- code: z71.ZodIssueCode.custom,
39700
+ code: z69.ZodIssueCode.custom,
39628
39701
  message: `Singleton content type "${singletonKey}" cannot have more than one entry. Found ${entriesForType.length} entries.`,
39629
39702
  path: ["entries"]
39630
39703
  });
@@ -39737,18 +39810,18 @@ function validateLayout(layout) {
39737
39810
  }
39738
39811
 
39739
39812
  // src/config/dashboard-validation.ts
39740
- import { z as z72 } from "zod";
39741
- var navIdListSchema2 = z72.preprocess((value) => {
39813
+ import { z as z70 } from "zod";
39814
+ var navIdListSchema2 = z70.preprocess((value) => {
39742
39815
  if (!Array.isArray(value)) return void 0;
39743
39816
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
39744
39817
  return filtered.length > 0 ? filtered : void 0;
39745
- }, z72.array(z72.string()).max(200, "Maximum 200 nav IDs").optional());
39746
- var dashboardNavVisibilityBaseSchema2 = z72.object({
39747
- 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(),
39748
39821
  allowIds: navIdListSchema2,
39749
39822
  denyIds: navIdListSchema2
39750
39823
  }).strip();
39751
- var dashboardNavVisibilityRolesSchema2 = z72.object({
39824
+ var dashboardNavVisibilityRolesSchema2 = z70.object({
39752
39825
  administrator: dashboardNavVisibilityBaseSchema2.optional(),
39753
39826
  editor: dashboardNavVisibilityBaseSchema2.optional(),
39754
39827
  team_member: dashboardNavVisibilityBaseSchema2.optional()
@@ -39756,28 +39829,28 @@ var dashboardNavVisibilityRolesSchema2 = z72.object({
39756
39829
  var dashboardNavVisibilitySchema2 = dashboardNavVisibilityBaseSchema2.extend({
39757
39830
  roles: dashboardNavVisibilityRolesSchema2
39758
39831
  }).strip();
39759
- var dashboardNavigationConfigSchema2 = z72.object({
39832
+ var dashboardNavigationConfigSchema2 = z70.object({
39760
39833
  siteNav: dashboardNavVisibilitySchema2.optional(),
39761
39834
  settingsNav: dashboardNavVisibilitySchema2.optional()
39762
39835
  }).strip();
39763
- var dashboardConfigSchema2 = z72.object({
39764
- previewEditingEnabled: z72.boolean().optional(),
39836
+ var dashboardConfigSchema2 = z70.object({
39837
+ previewEditingEnabled: z70.boolean().optional(),
39765
39838
  navigation: dashboardNavigationConfigSchema2.optional()
39766
39839
  }).strip();
39767
39840
 
39768
39841
  // src/zod/titleSourceSchema.ts
39769
- import { z as z73 } from "zod";
39770
- var titleSourceValueSchema = z73.union([
39771
- z73.string().min(1),
39772
- 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)
39773
39846
  ]);
39774
39847
 
39775
39848
  // src/config/validation.ts
39776
- var sdkThemePaletteSchema2 = z74.record(z74.string(), z74.string());
39777
- var sdkThemeConfigSchema2 = z74.object({
39849
+ var sdkThemePaletteSchema2 = z72.record(z72.string(), z72.string());
39850
+ var sdkThemeConfigSchema2 = z72.object({
39778
39851
  palette: sdkThemePaletteSchema2
39779
39852
  });
39780
- 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) => {
39781
39854
  try {
39782
39855
  const parsed = new URL(url);
39783
39856
  const isLocal = parsed.hostname === "localhost" || parsed.hostname.endsWith(".localhost") || parsed.hostname.endsWith(".local") || parsed.hostname.endsWith(".test");
@@ -39786,97 +39859,97 @@ var sdkSiteUrlSchema = z74.string().url("Must be a valid URL").refine((url) => {
39786
39859
  return false;
39787
39860
  }
39788
39861
  }, { message: "Production URLs must use HTTPS" }).transform((url) => url.replace(/\/$/, ""));
39789
- var sectionBackgroundSchema = z74.object({
39790
- id: z74.string(),
39791
- label: z74.string(),
39792
- token: z74.string()
39862
+ var sectionBackgroundSchema = z72.object({
39863
+ id: z72.string(),
39864
+ label: z72.string(),
39865
+ token: z72.string()
39793
39866
  // Reference to theme palette token
39794
39867
  });
39795
- var sectionSpacingSchema = z74.enum(["compact", "default", "spacious"]);
39796
- var containerMaxWidthSchema = z74.enum(["narrow", "default", "wide", "full"]);
39797
- var containerAlignmentSchema = z74.enum(["left", "center", "right"]);
39798
- var sectionOptionsSchema = z74.object({
39799
- backgroundColor: z74.boolean().optional(),
39800
- backgroundImage: z74.boolean().optional(),
39801
- backgroundGradient: z74.boolean().optional(),
39802
- spacing: z74.union([
39803
- z74.array(sectionSpacingSchema),
39804
- 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()
39805
39878
  ]).optional(),
39806
- textColor: z74.boolean().optional()
39879
+ textColor: z72.boolean().optional()
39807
39880
  }).optional();
39808
- var containerOptionsSchema = z74.object({
39809
- maxWidth: z74.union([
39810
- z74.array(containerMaxWidthSchema),
39811
- z74.boolean()
39881
+ var containerOptionsSchema = z72.object({
39882
+ maxWidth: z72.union([
39883
+ z72.array(containerMaxWidthSchema),
39884
+ z72.boolean()
39812
39885
  ]).optional(),
39813
- alignment: z74.union([
39814
- z74.array(containerAlignmentSchema),
39815
- z74.boolean()
39886
+ alignment: z72.union([
39887
+ z72.array(containerAlignmentSchema),
39888
+ z72.boolean()
39816
39889
  ]).optional()
39817
39890
  }).optional();
39818
- var siteStyleConfigSchema = z74.object({
39819
- sectionBackgrounds: z74.array(sectionBackgroundSchema).optional(),
39891
+ var siteStyleConfigSchema = z72.object({
39892
+ sectionBackgrounds: z72.array(sectionBackgroundSchema).optional(),
39820
39893
  sectionOptions: sectionOptionsSchema,
39821
39894
  containerOptions: containerOptionsSchema
39822
39895
  }).optional();
39823
- var sdkLoaderEndpointSchema2 = z74.enum(SUPPORTED_LOADER_ENDPOINTS);
39896
+ var sdkLoaderEndpointSchema2 = z72.enum(SUPPORTED_LOADER_ENDPOINTS);
39824
39897
  var allowedTransformIds = new Set(builtinTransformDefinitions.map((transform) => transform.id));
39825
- var loaderTransformStepSchema = z74.object({
39826
- id: z74.string().refine((id) => allowedTransformIds.has(id), {
39898
+ var loaderTransformStepSchema = z72.object({
39899
+ id: z72.string().refine((id) => allowedTransformIds.has(id), {
39827
39900
  message: "Unknown transform id"
39828
39901
  }),
39829
- options: z74.record(z74.string(), z74.unknown()).optional()
39902
+ options: z72.record(z72.string(), z72.unknown()).optional()
39830
39903
  });
39831
- var loaderParamBindingSchema2 = z74.object({
39832
- $bind: z74.object({
39833
- 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"),
39834
39907
  // Loader params are ultimately string-normalized for query strings, so fallbacks should
39835
39908
  // stay scalar. Use transforms (e.g. `value.jsonArray`) when you need to serialize
39836
39909
  // more complex values into a string.
39837
39910
  fallback: loaderFallbackScalarSchema.optional(),
39838
- transforms: z74.array(loaderTransformStepSchema).default([]),
39839
- pick: z74.enum(["value", "collection", "context"]).default("value"),
39840
- 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()
39841
39914
  })
39842
39915
  });
39843
- var loaderParamValueSchema2 = z74.union([
39844
- z74.string(),
39845
- z74.number(),
39846
- z74.boolean(),
39916
+ var loaderParamValueSchema2 = z72.union([
39917
+ z72.string(),
39918
+ z72.number(),
39919
+ z72.boolean(),
39847
39920
  loaderParamBindingSchema2
39848
39921
  ]);
39849
- var loaderWhenValueSchema = z74.union([
39850
- z74.boolean(),
39922
+ var loaderWhenValueSchema = z72.union([
39923
+ z72.boolean(),
39851
39924
  loaderParamBindingSchema2
39852
39925
  ]);
39853
- var sdkConfigLoaderSchema2 = z74.object({
39926
+ var sdkConfigLoaderSchema2 = z72.object({
39854
39927
  endpoint: sdkLoaderEndpointSchema2,
39855
- params: z74.record(z74.string(), loaderParamValueSchema2),
39856
- mode: z74.enum(["server", "client"]).default("server"),
39928
+ params: z72.record(z72.string(), loaderParamValueSchema2),
39929
+ mode: z72.enum(["server", "client"]).default("server"),
39857
39930
  when: loaderWhenValueSchema.optional()
39858
39931
  });
39859
- var sdkDataLoadersSchema2 = z74.record(z74.string(), sdkConfigLoaderSchema2).refine(
39932
+ var sdkDataLoadersSchema2 = z72.record(z72.string(), sdkConfigLoaderSchema2).refine(
39860
39933
  (loaders) => Object.keys(loaders).length <= 5,
39861
39934
  { message: "Maximum 5 data loaders per block" }
39862
39935
  ).optional();
39863
- var fieldSelectOptionSchema = z74.object({
39864
- value: z74.string().min(1, "Option value is required"),
39865
- 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")
39866
39939
  });
39867
- var blockFieldConfigSchema = z74.object({
39868
- 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()
39869
39942
  });
39870
- var blockFieldOptionsSchema = z74.record(
39871
- 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-]*$/, {
39872
39945
  message: "Block ID must be 'block.*' or 'custom.*' format"
39873
39946
  }),
39874
- z74.record(
39875
- z74.string().min(1, "Field ID is required"),
39947
+ z72.record(
39948
+ z72.string().min(1, "Field ID is required"),
39876
39949
  blockFieldConfigSchema
39877
39950
  )
39878
39951
  ).optional();
39879
- var blockFieldExtensionSchema = z74.object({
39952
+ var blockFieldExtensionSchema = z72.object({
39880
39953
  fields: fieldSchema.array().min(1, "At least one field is required")
39881
39954
  }).refine(
39882
39955
  (data) => {
@@ -39890,10 +39963,10 @@ var blockFieldExtensionSchema = z74.object({
39890
39963
  message: "Required fields must have a defaultValue to support existing blocks"
39891
39964
  }
39892
39965
  );
39893
- var blockFieldExtensionsMapSchema = z74.record(
39966
+ var blockFieldExtensionsMapSchema = z72.record(
39894
39967
  // System blocks are kebab-case: block.body-text, block.event-calendar, ...
39895
39968
  // Enforce: lowercase alphanumerics with single hyphens (no trailing hyphen, no consecutive hyphens).
39896
- 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]+)*$/, {
39897
39970
  message: "Block ID must be 'block.*' format (system blocks only)"
39898
39971
  }),
39899
39972
  blockFieldExtensionSchema
@@ -39909,7 +39982,7 @@ var blockFieldExtensionsMapSchema = z74.record(
39909
39982
  (field) => field.id === collision.fieldId
39910
39983
  );
39911
39984
  ctx.addIssue({
39912
- code: z74.ZodIssueCode.custom,
39985
+ code: z72.ZodIssueCode.custom,
39913
39986
  message: collision.message,
39914
39987
  path: [
39915
39988
  APPOINTMENT_BOOKING_BLOCK_ID,
@@ -39924,24 +39997,24 @@ var blockFieldExtensionsSchema = blockFieldExtensionsMapSchema.optional();
39924
39997
  function collectAppointmentBookingExtensionReservedFieldCollisions(extension) {
39925
39998
  return collectBookingReservedFieldCollisions(extension, { type: "booking" });
39926
39999
  }
39927
- var syncConfigSchema = z74.object({
39928
- existingEntries: z74.enum(["skip", "update"]).optional()
40000
+ var syncConfigSchema = z72.object({
40001
+ existingEntries: z72.enum(["skip", "update"]).optional()
39929
40002
  }).optional();
39930
- var deployConfigSchema = z74.object({
39931
- verifyCommand: z74.string().optional(),
39932
- prebuildOutput: z74.string().optional()
40003
+ var deployConfigSchema = z72.object({
40004
+ verifyCommand: z72.string().optional(),
40005
+ prebuildOutput: z72.string().optional()
39933
40006
  }).optional();
39934
- var sdkCustomBlockSchema = z74.object({
40007
+ var sdkCustomBlockSchema = z72.object({
39935
40008
  // Block ID must start with 'custom.'
39936
- 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-]*$/, {
39937
40010
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
39938
40011
  }),
39939
- title: z74.string().min(1, "Title is required"),
40012
+ title: z72.string().min(1, "Title is required"),
39940
40013
  titleSource: titleSourceValueSchema.optional(),
39941
- description: z74.string().optional(),
40014
+ description: z72.string().optional(),
39942
40015
  category: blockCategoryEnum,
39943
- icon: z74.string().optional(),
39944
- tags: z74.array(z74.string()).optional(),
40016
+ icon: z72.string().optional(),
40017
+ tags: z72.array(z72.string()).optional(),
39945
40018
  // Reuse the exact field schema from @riverbankcms/blocks - all field types supported
39946
40019
  fields: fieldSchema.array().min(1, "Custom blocks must have at least one field"),
39947
40020
  // Data loaders for CMS endpoints
@@ -39949,14 +40022,14 @@ var sdkCustomBlockSchema = z74.object({
39949
40022
  // Optional declarative layout - when present, block can render without React override
39950
40023
  layout: NodeSchema.optional(),
39951
40024
  // Optional variants system (preferred when a block has multiple structural layouts)
39952
- variants: z74.record(z74.string().min(1), NodeSchema).optional(),
39953
- defaultVariant: z74.string().min(1).optional(),
39954
- variantOptions: z74.record(
39955
- z74.string().min(1),
39956
- z74.object({
39957
- label: z74.string().min(1).optional(),
39958
- description: z74.string().min(1).optional(),
39959
- 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()
39960
40033
  })
39961
40034
  ).optional(),
39962
40035
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -39968,7 +40041,7 @@ var sdkCustomBlockSchema = z74.object({
39968
40041
  const exists = fields3.some((field) => field.id === source);
39969
40042
  if (!exists) {
39970
40043
  ctx.addIssue({
39971
- code: z74.ZodIssueCode.custom,
40044
+ code: z72.ZodIssueCode.custom,
39972
40045
  message: `titleSource must reference a valid field ID (got "${source}")`,
39973
40046
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
39974
40047
  });
@@ -39977,7 +40050,7 @@ var sdkCustomBlockSchema = z74.object({
39977
40050
  }
39978
40051
  if (data.layout && data.variants) {
39979
40052
  ctx.addIssue({
39980
- code: z74.ZodIssueCode.custom,
40053
+ code: z72.ZodIssueCode.custom,
39981
40054
  message: "Custom block must define either `layout` or `variants`, not both",
39982
40055
  path: ["variants"]
39983
40056
  });
@@ -39987,7 +40060,7 @@ var sdkCustomBlockSchema = z74.object({
39987
40060
  if (!result.valid) {
39988
40061
  for (const error of result.errors) {
39989
40062
  ctx.addIssue({
39990
- code: z74.ZodIssueCode.custom,
40063
+ code: z72.ZodIssueCode.custom,
39991
40064
  message: error.message,
39992
40065
  path: ["layout"]
39993
40066
  });
@@ -39998,14 +40071,14 @@ var sdkCustomBlockSchema = z74.object({
39998
40071
  const keys = Object.keys(data.variants);
39999
40072
  if (keys.length === 0) {
40000
40073
  ctx.addIssue({
40001
- code: z74.ZodIssueCode.custom,
40074
+ code: z72.ZodIssueCode.custom,
40002
40075
  message: "`variants` must contain at least one variant key",
40003
40076
  path: ["variants"]
40004
40077
  });
40005
40078
  }
40006
40079
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
40007
40080
  ctx.addIssue({
40008
- code: z74.ZodIssueCode.custom,
40081
+ code: z72.ZodIssueCode.custom,
40009
40082
  message: "`defaultVariant` must be a key present in `variants`",
40010
40083
  path: ["defaultVariant"]
40011
40084
  });
@@ -40015,7 +40088,7 @@ var sdkCustomBlockSchema = z74.object({
40015
40088
  if (!result.valid) {
40016
40089
  for (const error of result.errors) {
40017
40090
  ctx.addIssue({
40018
- code: z74.ZodIssueCode.custom,
40091
+ code: z72.ZodIssueCode.custom,
40019
40092
  message: `${key}: ${error.message}`,
40020
40093
  path: ["variants", key]
40021
40094
  });
@@ -40026,7 +40099,7 @@ var sdkCustomBlockSchema = z74.object({
40026
40099
  for (const key of Object.keys(data.variantOptions)) {
40027
40100
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
40028
40101
  ctx.addIssue({
40029
- code: z74.ZodIssueCode.custom,
40102
+ code: z72.ZodIssueCode.custom,
40030
40103
  message: "`variantOptions` key must exist in `variants`",
40031
40104
  path: ["variantOptions", key]
40032
40105
  });
@@ -40035,58 +40108,58 @@ var sdkCustomBlockSchema = z74.object({
40035
40108
  }
40036
40109
  }
40037
40110
  });
40038
- var themeSourceSchema = z74.enum(["local", "cms"]).optional();
40039
- 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-_]*$/, {
40040
40113
  message: "Theme name must be lowercase alphanumeric with hyphens/underscores"
40041
40114
  }).max(64, "Theme name too long").optional();
40042
40115
  function isValidConfigBlockKind(kind) {
40043
40116
  if (getBlockDefinition(kind)) return true;
40044
40117
  return /^custom\.[a-z][a-z0-9-]*$/.test(kind);
40045
40118
  }
40046
- var layoutBlockKindSchema = z74.string().refine(isValidConfigBlockKind, {
40119
+ var layoutBlockKindSchema = z72.string().refine(isValidConfigBlockKind, {
40047
40120
  message: 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.my-block")'
40048
40121
  });
40049
- var layoutFooterBlockSchema = z74.object({
40050
- id: z74.string().min(1).optional(),
40122
+ var layoutFooterBlockSchema = z72.object({
40123
+ id: z72.string().min(1).optional(),
40051
40124
  kind: layoutBlockKindSchema,
40052
40125
  // Allow omitted content for blocks that rely on defaults.
40053
- content: z74.record(z74.string(), z74.unknown()).optional()
40126
+ content: z72.record(z72.string(), z72.unknown()).optional()
40054
40127
  }).strict();
40055
- var layoutConfigSchema = z74.object({
40056
- footerBlocks: z74.array(layoutFooterBlockSchema).optional()
40128
+ var layoutConfigSchema = z72.object({
40129
+ footerBlocks: z72.array(layoutFooterBlockSchema).optional()
40057
40130
  }).strict();
40058
- 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, {
40059
40132
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
40060
40133
  });
40061
- 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 "/"' });
40062
- var sdkWorkflowTriggerSchema2 = z74.discriminatedUnion("type", [
40063
- 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()
40064
40137
  ]);
40065
- var sdkWorkflowConfirmationSchema2 = z74.object({
40066
- title: z74.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
40067
- 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()
40068
40141
  }).strict();
40069
- var sdkWorkflowConfigSchema2 = z74.object({
40142
+ var sdkWorkflowConfigSchema2 = z72.object({
40070
40143
  id: sdkWorkflowIdSchema2,
40071
- title: z74.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
40072
- description: z74.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
40073
- 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),
40074
40147
  endpoint: sdkWorkflowEndpointSchema2,
40075
- 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),
40076
40149
  confirmation: sdkWorkflowConfirmationSchema2.optional()
40077
40150
  }).strict();
40078
- 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) => {
40079
40152
  const ids = workflows.map((workflow) => workflow.id);
40080
40153
  return ids.length === new Set(ids).size;
40081
40154
  }, { message: "Workflow IDs must be unique" }).optional();
40082
- var riverbankSiteConfigSchema = z74.object({
40083
- siteId: z74.string().uuid(),
40155
+ var riverbankSiteConfigSchema = z72.object({
40156
+ siteId: z72.string().uuid(),
40084
40157
  previewUrl: sdkSiteUrlSchema.optional(),
40085
40158
  liveUrl: sdkSiteUrlSchema.optional(),
40086
40159
  theme: sdkThemeConfigSchema2.optional(),
40087
40160
  styles: siteStyleConfigSchema,
40088
40161
  layout: layoutConfigSchema.optional(),
40089
- 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(
40090
40163
  // Ensure unique block IDs
40091
40164
  (blocks) => {
40092
40165
  const ids = blocks.map((b) => b.id);
@@ -40099,7 +40172,7 @@ var riverbankSiteConfigSchema = z74.object({
40099
40172
  workflows: sdkWorkflowsSchema2,
40100
40173
  content: contentConfigSchema.optional(),
40101
40174
  // CLI-related configuration (Phase 4)
40102
- contentDir: z74.string().optional(),
40175
+ contentDir: z72.string().optional(),
40103
40176
  sync: syncConfigSchema,
40104
40177
  deploy: deployConfigSchema,
40105
40178
  // Theme sync configuration (Phase 5)