@riverbankcms/sdk 0.85.0 → 0.89.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/dist/{PreviewEditorSidebar-4PH35ZIE.mjs → PreviewEditorSidebar-JDR64FEC.mjs} +3 -3
  2. package/dist/{PreviewEditorUI-WHMCRJGM.mjs → PreviewEditorUI-67TMJMAF.mjs} +3 -3
  3. package/dist/SdkPreviewModeRuntime-ZBEMRV7N.mjs +8 -0
  4. package/dist/_dts/api/src/accessAdmin.d.ts +7 -0
  5. package/dist/_dts/api/src/endpoints.d.ts +66 -14
  6. package/dist/_dts/api/src/index.d.ts +5 -2
  7. package/dist/_dts/api/src/launchReadiness.d.ts +3 -3
  8. package/dist/_dts/api/src/mailchimpIntegration.d.ts +215 -0
  9. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +35 -15
  10. package/dist/_dts/api/src/siteInfrastructure.d.ts +0 -14
  11. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +5 -1
  12. package/dist/_dts/api/src/siteMembers.d.ts +6 -1
  13. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +1 -13
  14. package/dist/_dts/api/src/types.d.ts +7 -4
  15. package/dist/_dts/blocks/src/PageRenderer.d.ts +1 -0
  16. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -0
  17. package/dist/_dts/blocks/src/index.d.ts +2 -1
  18. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +288 -288
  19. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +288 -288
  20. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +288 -288
  21. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +288 -288
  22. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +288 -288
  23. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +42 -0
  24. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -0
  25. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +288 -288
  26. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +288 -288
  27. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
  28. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +42 -42
  29. package/dist/_dts/blocks/src/system/blocks/newsletter-signup-destination.d.ts +300 -0
  30. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +63 -3
  31. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +288 -288
  32. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +288 -288
  33. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +288 -288
  34. package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +53 -1
  35. package/dist/_dts/blocks/src/system/icons/cta.d.ts +3 -3
  36. package/dist/_dts/blocks/src/system/icons/index.d.ts +1 -0
  37. package/dist/_dts/blocks/src/system/icons/registry.d.ts +2 -2
  38. package/dist/_dts/blocks/src/system/icons/semantic.d.ts +3 -3
  39. package/dist/_dts/blocks/src/system/icons/svg.d.ts +72 -0
  40. package/dist/_dts/blocks/src/system/manifest/richTextSchema.d.ts +27 -0
  41. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +23 -23
  42. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +11 -2
  43. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +24 -0
  44. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +12 -0
  45. package/dist/_dts/blocks/src/system/runtime/hooks/loadStateError.d.ts +1 -0
  46. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableDates.d.ts +1 -1
  47. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableDates.state.d.ts +55 -0
  48. package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableSlots.state.d.ts +39 -0
  49. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingFormConfig.d.ts +4 -27
  50. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingFormConfig.state.d.ts +40 -0
  51. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +20 -0
  52. package/dist/_dts/blocks/src/system/runtime/hooks/useEventFilters.state.d.ts +31 -0
  53. package/dist/_dts/blocks/src/system/runtime/hooks/useEventPagination.d.ts +3 -3
  54. package/dist/_dts/blocks/src/system/runtime/hooks/useEventPagination.state.d.ts +39 -0
  55. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +1 -0
  56. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +4 -0
  57. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
  58. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventPaginatedListView.client.d.ts +1 -1
  59. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +11 -1
  60. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.state.d.ts +24 -2
  61. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +15 -0
  62. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.server.d.ts +1 -1
  63. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +32 -0
  64. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +5 -1
  65. package/dist/_dts/blocks/src/system/runtime/nodes/shared/MagicLinkForm.state.d.ts +24 -0
  66. package/dist/_dts/blocks/src/system/runtime/shared/components/ModalShell.d.ts +5 -1
  67. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.state.d.ts +35 -0
  68. package/dist/_dts/blocks/src/system/runtime/shared/utils/formatting.d.ts +1 -1
  69. package/dist/_dts/content-model/src/entry-slots/types.d.ts +54 -0
  70. package/dist/_dts/content-model/src/referenceFields.d.ts +1 -1
  71. package/dist/_dts/core/src/branded.d.ts +7 -0
  72. package/dist/_dts/core/src/currency-format.d.ts +37 -2
  73. package/dist/_dts/core/src/event-pricing.d.ts +24 -0
  74. package/dist/_dts/core/src/index.d.ts +1 -0
  75. package/dist/_dts/core/src/site-route-target.d.ts +40 -0
  76. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +705 -17
  77. package/dist/_dts/editor-blocks/src/widgets/reference/loaders.d.ts +3 -1
  78. package/dist/_dts/media-core/src/fileDomain.d.ts +4 -0
  79. package/dist/_dts/sdk/src/client/runtimeCachePolicy.d.ts +160 -0
  80. package/dist/_dts/sdk/src/client/types.d.ts +35 -1
  81. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  82. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +3 -0
  83. package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +3 -9
  84. package/dist/_dts/sdk/src/index.d.ts +3 -1
  85. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +1 -1
  86. package/dist/_dts/sdk/src/manifest/three-pass-converter.d.ts +7 -18
  87. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -0
  88. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +3 -1
  89. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +7 -3
  90. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +4 -24
  91. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +45 -0
  92. package/dist/_dts/sdk/src/version.d.ts +1 -1
  93. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  94. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +9 -9
  95. package/dist/_dts/theme-core/src/schema.d.ts +11 -11
  96. package/dist/{chunk-PYDHOMEO.mjs → chunk-7N46MZHI.mjs} +1 -1
  97. package/dist/{chunk-ZR2GQK2A.mjs → chunk-7YUAXONX.mjs} +1880 -588
  98. package/dist/{chunk-4QNLOTES.mjs → chunk-F645A5UV.mjs} +76 -14
  99. package/dist/{chunk-OCGTXHSO.mjs → chunk-HKJQERFR.mjs} +7 -7
  100. package/dist/{chunk-NFWGLRZZ.mjs → chunk-TGBJWKMP.mjs} +37 -3
  101. package/dist/{chunk-WFPYN7KA.mjs → chunk-ZQRBLCW5.mjs} +2 -2
  102. package/dist/cli/index.mjs +1075 -126
  103. package/dist/client/{accordion-2UZPBMYM.mjs → accordion-MUCVNGQ7.mjs} +2 -2
  104. package/dist/client/{bookingForm-36CWQUMV.mjs → bookingForm-PKD6EFIE.mjs} +193 -77
  105. package/dist/client/bookings.mjs +487 -197
  106. package/dist/client/{carousel-QH77HR6X.mjs → carousel-3TKQSNJC.mjs} +4 -3
  107. package/dist/client/cart-6XHSZK23.mjs +19 -0
  108. package/dist/client/checkout-FVSPM6FI.mjs +19 -0
  109. package/dist/client/{chunk-ZE5G642V.mjs → chunk-25W2EQUN.mjs} +75 -1
  110. package/dist/client/chunk-6N7YRNYU.mjs +183 -0
  111. package/dist/client/{chunk-4OXKTA3D.mjs → chunk-7DH35FGA.mjs} +2 -2
  112. package/dist/client/{chunk-3C2VTPWI.mjs → chunk-CQKKFEQD.mjs} +363 -66
  113. package/dist/client/{chunk-7UCLJ5SP.mjs → chunk-EY42X22F.mjs} +4 -7
  114. package/dist/client/{chunk-SYIJ5JO2.mjs → chunk-FHU6PFPM.mjs} +1 -1
  115. package/dist/client/{chunk-ZKUO52W3.mjs → chunk-LQFDYWPJ.mjs} +1 -1
  116. package/dist/client/chunk-RSQWWUAD.mjs +390 -0
  117. package/dist/client/{chunk-UDNSI5PY.mjs → chunk-STJ2NCQM.mjs} +2 -3
  118. package/dist/client/{chunk-VGDBVNOO.mjs → chunk-UQFY4AHX.mjs} +511 -406
  119. package/dist/client/{chunk-F5VRX5Y6.mjs → chunk-VGLXACVK.mjs} +1 -1
  120. package/dist/client/{chunk-DVNUDUVT.mjs → chunk-WBQG7VJA.mjs} +4 -1
  121. package/dist/client/{chunk-52CGCQ7B.mjs → chunk-ZJZZA5EP.mjs} +10 -80
  122. package/dist/client/{chunk-XSV6KW4D.mjs → chunk-ZT5XE7FK.mjs} +1 -1
  123. package/dist/client/client.mjs +5820 -4782
  124. package/dist/client/{courseRegistration-TMKU6ABO.mjs → courseRegistration-ATZSYDHM.mjs} +7 -7
  125. package/dist/client/{eventCalendar-G6TI32X6.mjs → eventCalendar-6T2UGKKP.mjs} +11 -11
  126. package/dist/client/{eventCombined-SCKEMNAR.mjs → eventCombined-Q4VANXVF.mjs} +11 -11
  127. package/dist/client/{eventDetails-XPIFXXPK.mjs → eventDetails-DW37E7VW.mjs} +11 -11
  128. package/dist/client/{eventListing-7QFMEMGT.mjs → eventListing-XURTSAUW.mjs} +11 -11
  129. package/dist/client/{eventRegistration-TOODSZUI.mjs → eventRegistration-MRKEVAXW.mjs} +11 -11
  130. package/dist/client/{form-MTCMVCZT.mjs → form-WZZFFGMU.mjs} +3 -3
  131. package/dist/client/{headerSection-Y5TMR3TW.mjs → headerSection-EQYVQBLM.mjs} +4 -4
  132. package/dist/client/hooks.mjs +1700 -1412
  133. package/dist/client/{locationMap-RH2LG7FZ.mjs → locationMap-MFF5VAZR.mjs} +3 -4
  134. package/dist/client/{newsletterForm-PCAIPFMA.mjs → newsletterForm-JQ77UYIE.mjs} +127 -43
  135. package/dist/client/{productDetail-OIGDR4YE.mjs → productDetail-25LMT3IZ.mjs} +9 -9
  136. package/dist/client/{productList-4MA5S2CX.mjs → productList-5ABEMKUG.mjs} +9 -9
  137. package/dist/client/rendering/client.mjs +3884 -3722
  138. package/dist/client/rendering/islands.mjs +19 -19
  139. package/dist/client/rendering.mjs +6774 -6331
  140. package/dist/client/shop-OMMQZ6YO.mjs +21 -0
  141. package/dist/preview-next/before-render.mjs +76 -14
  142. package/dist/preview-next/client/runtime.mjs +5 -5
  143. package/dist/preview-next/editor-chrome.css +56 -9
  144. package/dist/preview-next/middleware.mjs +76 -14
  145. package/dist/{sdk-runtime-QLOCYKVU.mjs → sdk-runtime-WNLBZ3ZH.mjs} +6 -6
  146. package/dist/server/components.mjs +2579 -2548
  147. package/dist/server/config-validation.mjs +1737 -1461
  148. package/dist/server/config.mjs +1737 -1461
  149. package/dist/server/data.mjs +1701 -1413
  150. package/dist/server/index.mjs +1048 -400
  151. package/dist/server/next.mjs +3602 -2858
  152. package/dist/server/page-converter.mjs +2193 -1169
  153. package/dist/server/prebuild.mjs +1 -1
  154. package/dist/server/rendering/server.mjs +2770 -2742
  155. package/dist/server/rendering.mjs +2961 -2886
  156. package/dist/server/routing.mjs +2186 -1508
  157. package/dist/server/server.mjs +2237 -1287
  158. package/dist/server/theme-bridge.mjs +260 -0
  159. package/dist/styles/index.css +258 -0
  160. package/package.json +2 -1
  161. package/dist/SdkPreviewModeRuntime-4FGSVUYI.mjs +0 -8
  162. package/dist/client/cart-X4YK4FTW.mjs +0 -19
  163. package/dist/client/checkout-OM2BEPWD.mjs +0 -19
  164. package/dist/client/chunk-3DTWLTXM.mjs +0 -204
  165. package/dist/client/chunk-I2MMZO53.mjs +0 -6
  166. package/dist/client/shop-WXSYV5QO.mjs +0 -21
@@ -44,7 +44,7 @@ function fallbackBinding(...sources) {
44
44
  }
45
45
 
46
46
  // src/config/validation.ts
47
- import { z as z73 } from "zod";
47
+ import { z as z74 } from "zod";
48
48
 
49
49
  // ../api/src/apiEndpointTypes.ts
50
50
  function blockedDemoMutationPolicy(classification, publicMessage) {
@@ -799,6 +799,64 @@ var ENDPOINT_DEFINITIONS = {
799
799
  auth: "user",
800
800
  responseKind: "json"
801
801
  },
802
+ listMailchimpAudiences: {
803
+ path: "/sites/{siteId}/integrations/mailchimp/audiences",
804
+ method: "GET",
805
+ tags: [TAG_TEMPLATES.site],
806
+ auth: "user",
807
+ responseKind: "json",
808
+ errors: ["auth:forbidden", "server:internal_error"]
809
+ },
810
+ getMailchimpSignupSyncHealth: {
811
+ path: "/sites/{siteId}/integrations/mailchimp/signup-sync-health",
812
+ method: "GET",
813
+ tags: [TAG_TEMPLATES.site],
814
+ auth: "user",
815
+ responseKind: "json",
816
+ errors: ["auth:forbidden", "server:internal_error"]
817
+ },
818
+ getMailchimpConnection: {
819
+ path: "/sites/{siteId}/integrations/mailchimp/connection",
820
+ method: "GET",
821
+ tags: [TAG_TEMPLATES.site],
822
+ auth: "user",
823
+ responseKind: "json",
824
+ errors: ["auth:forbidden", "server:internal_error"]
825
+ },
826
+ startMailchimpOAuth: {
827
+ path: "/sites/{siteId}/integrations/mailchimp/oauth/start",
828
+ method: "POST",
829
+ tags: [TAG_TEMPLATES.site],
830
+ auth: "user",
831
+ responseKind: "json",
832
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
833
+ errors: ["auth:forbidden", "validation:invalid_input", "server:internal_error"]
834
+ },
835
+ refreshMailchimpAudiences: {
836
+ path: "/sites/{siteId}/integrations/mailchimp/audiences/refresh",
837
+ method: "POST",
838
+ tags: [TAG_TEMPLATES.site],
839
+ auth: "user",
840
+ responseKind: "json",
841
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
842
+ errors: ["auth:forbidden", "server:internal_error"]
843
+ },
844
+ disconnectMailchimp: {
845
+ path: "/sites/{siteId}/integrations/mailchimp/disconnect",
846
+ method: "POST",
847
+ tags: [TAG_TEMPLATES.site],
848
+ auth: "user",
849
+ responseKind: "json",
850
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
851
+ errors: ["auth:forbidden", "server:internal_error"]
852
+ },
853
+ mailchimpOAuthCallback: {
854
+ path: "/auth/mailchimp/callback",
855
+ method: "GET",
856
+ auth: "public",
857
+ responseKind: "void",
858
+ errors: []
859
+ },
802
860
  createNewsletterList: {
803
861
  path: "/sites/{siteId}/newsletter/lists",
804
862
  method: "POST",
@@ -1800,6 +1858,24 @@ var ENDPOINT_DEFINITIONS = {
1800
1858
  auth: "user",
1801
1859
  responseKind: "json"
1802
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
+ },
1803
1879
  transferSiteOwnership: {
1804
1880
  path: "/sites/{siteId}/members/transfer-ownership",
1805
1881
  method: "POST",
@@ -3023,20 +3099,6 @@ var ENDPOINT_DEFINITIONS = {
3023
3099
  auth: "user",
3024
3100
  responseKind: "json"
3025
3101
  },
3026
- instagramUploadZip: {
3027
- path: "/instagram/upload-zip",
3028
- method: "POST",
3029
- tags: ["instagram-import"],
3030
- auth: "user",
3031
- responseKind: "json"
3032
- },
3033
- createInstagramZipUploadUrl: {
3034
- path: "/instagram/upload-zip-url",
3035
- method: "POST",
3036
- tags: ["instagram-import"],
3037
- auth: "user",
3038
- responseKind: "json"
3039
- },
3040
3102
  getAnalyticsReport: {
3041
3103
  path: "/sites/{siteId}/analytics/report",
3042
3104
  method: "GET",
@@ -6431,6 +6493,43 @@ function err(error) {
6431
6493
  return { ok: false, error };
6432
6494
  }
6433
6495
 
6496
+ // ../core/src/currency-format.ts
6497
+ var CURRENCY_LOCALE_BY_CODE = {
6498
+ USD: "en-US",
6499
+ GBP: "en-GB",
6500
+ EUR: "de-DE",
6501
+ AUD: "en-AU",
6502
+ CAD: "en-CA",
6503
+ NZD: "en-NZ",
6504
+ JPY: "ja-JP",
6505
+ CNY: "zh-CN",
6506
+ CHF: "de-CH"
6507
+ };
6508
+ function resolveCurrencyLocale(currencyCode, override) {
6509
+ return override ?? CURRENCY_LOCALE_BY_CODE[currencyCode] ?? "en";
6510
+ }
6511
+ function formatCurrencyAmount(amountCents, currency, options) {
6512
+ const currencyCode = currency.toUpperCase();
6513
+ const locale = resolveCurrencyLocale(currencyCode, options?.locale);
6514
+ try {
6515
+ const exactFormatter = new Intl.NumberFormat(locale, {
6516
+ style: "currency",
6517
+ currency: currencyCode
6518
+ });
6519
+ const fractionDigits = options?.decimals === "auto" ? {
6520
+ minimumFractionDigits: 0,
6521
+ maximumFractionDigits: exactFormatter.resolvedOptions().maximumFractionDigits
6522
+ } : {};
6523
+ return new Intl.NumberFormat(locale, {
6524
+ style: "currency",
6525
+ currency: currencyCode,
6526
+ ...fractionDigits
6527
+ }).format(amountCents / 100);
6528
+ } catch {
6529
+ return `${(amountCents / 100).toFixed(2)} ${currencyCode}`;
6530
+ }
6531
+ }
6532
+
6434
6533
  // ../core/src/event-pricing.ts
6435
6534
  function publicEventPricingType(pricing) {
6436
6535
  switch (pricing.kind) {
@@ -6451,6 +6550,7 @@ function isFreePublicEventPriceDisplay(display) {
6451
6550
  return display.display.kind === "free";
6452
6551
  case "exact":
6453
6552
  case "from":
6553
+ case "range":
6454
6554
  case "mixed":
6455
6555
  case "unavailable":
6456
6556
  return false;
@@ -6713,7 +6813,7 @@ var navigationLinkInputSchema = z2.discriminatedUnion(
6713
6813
  );
6714
6814
 
6715
6815
  // ../api/src/sdkConfig/contracts.ts
6716
- import { z as z64 } from "zod";
6816
+ import { z as z65 } from "zod";
6717
6817
 
6718
6818
  // ../blocks/src/system/manifest/augmentManifest.ts
6719
6819
  function augmentManifest(manifest) {
@@ -21871,15 +21971,53 @@ var newsletterFormFragment = defineFragment({
21871
21971
  title: "Newsletter Form",
21872
21972
  description: "Newsletter subscription form with preset field configurations.",
21873
21973
  fields: [
21974
+ {
21975
+ id: "destinationProvider",
21976
+ type: "select",
21977
+ label: "Send signups to",
21978
+ description: "Choose where new subscribers from this form should go.",
21979
+ defaultValue: "riverbank",
21980
+ required: true,
21981
+ ui: { intent: "behavior" },
21982
+ options: [
21983
+ { value: "riverbank", label: "Riverbank newsletter" }
21984
+ ]
21985
+ },
21874
21986
  {
21875
21987
  id: "listId",
21876
21988
  type: "reference",
21877
21989
  label: "Newsletter list",
21878
21990
  description: "Select the list new subscribers should be added to.",
21879
- required: true,
21991
+ required: false,
21880
21992
  referenceKind: "newsletterList",
21881
21993
  allowManualEntry: false,
21882
- ui: { intent: "behavior" }
21994
+ ui: {
21995
+ intent: "behavior",
21996
+ visibleWhen: { field: "destinationProvider", equals: "riverbank" }
21997
+ }
21998
+ },
21999
+ {
22000
+ id: "mailchimpAudienceId",
22001
+ type: "reference",
22002
+ label: "Mailchimp audience",
22003
+ description: "Choose the Mailchimp audience for new subscribers.",
22004
+ required: false,
22005
+ referenceKind: "mailchimpAudience",
22006
+ allowManualEntry: false,
22007
+ ui: {
22008
+ intent: "behavior",
22009
+ visibleWhen: { field: "destinationProvider", equals: "mailchimp" }
22010
+ }
22011
+ },
22012
+ {
22013
+ id: "mailchimpTags",
22014
+ type: "text",
22015
+ label: "Mailchimp tags",
22016
+ description: "Optional tags to apply in Mailchimp, separated by commas or semicolons.",
22017
+ ui: {
22018
+ intent: "behavior",
22019
+ visibleWhen: { field: "destinationProvider", equals: "mailchimp" }
22020
+ }
21883
22021
  },
21884
22022
  {
21885
22023
  id: "preset",
@@ -21926,13 +22064,18 @@ var newsletterFormFragment = defineFragment({
21926
22064
  id: "tags",
21927
22065
  type: "text",
21928
22066
  label: "Tags (optional)",
21929
- description: "Optional tags to apply on subscribe (comma or semicolon separated)."
22067
+ description: "Optional tags to apply on subscribe (comma or semicolon separated).",
22068
+ ui: {
22069
+ intent: "behavior",
22070
+ visibleWhen: { field: "destinationProvider", equals: "riverbank" }
22071
+ }
21930
22072
  }
21931
22073
  ],
21932
22074
  layout: [
21933
22075
  el(
21934
22076
  "newsletter-form",
21935
22077
  withApiBindings({
22078
+ destinationProvider: { $bind: { from: "destinationProvider" } },
21936
22079
  listId: { $bind: { from: "listId" } },
21937
22080
  preset: { $bind: { from: "preset" } },
21938
22081
  includePhone: { $bind: { from: "includePhone" } },
@@ -27773,10 +27916,10 @@ var appointmentBookingBlockDefinition = {
27773
27916
  };
27774
27917
 
27775
27918
  // ../blocks/src/system/blocks/event-registration.ts
27776
- import { z as z46 } from "zod";
27919
+ import { z as z47 } from "zod";
27777
27920
 
27778
27921
  // ../blocks/src/system/blocks/events/shared/schemas.ts
27779
- import { z as z42 } from "zod";
27922
+ import { z as z43 } from "zod";
27780
27923
 
27781
27924
  // ../blocks/src/lib/media.ts
27782
27925
  import z39 from "zod";
@@ -27854,296 +27997,339 @@ var mediaSchema2 = z39.discriminatedUnion("type", [
27854
27997
  archiveMediaSchema
27855
27998
  ]);
27856
27999
 
27857
- // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
28000
+ // ../blocks/src/system/manifest/richTextSchema.ts
27858
28001
  import { z as z40 } from "zod";
27859
- var bookingDepositRefundPolicySchema = z40.enum([
28002
+ var TipTapMarkSchema = z40.object({
28003
+ type: z40.string(),
28004
+ attrs: z40.record(z40.string(), z40.unknown()).optional()
28005
+ });
28006
+ var TipTapNodeSchema = z40.lazy(
28007
+ () => z40.object({
28008
+ type: z40.string(),
28009
+ content: z40.array(TipTapNodeSchema).optional(),
28010
+ text: z40.string().optional(),
28011
+ attrs: z40.record(z40.string(), z40.unknown()).optional(),
28012
+ marks: z40.array(TipTapMarkSchema).optional()
28013
+ })
28014
+ );
28015
+ var RichTextValueSchema = z40.union([
28016
+ // Canonical: TipTap document directly
28017
+ TipTapNodeSchema,
28018
+ // Legacy (read-tolerance only): wrapped in { doc: {...} }
28019
+ z40.object({
28020
+ doc: TipTapNodeSchema
28021
+ })
28022
+ ]);
28023
+ var RichTextDocSchema = z40.object({
28024
+ type: z40.literal("doc"),
28025
+ content: z40.array(TipTapNodeSchema)
28026
+ });
28027
+
28028
+ // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
28029
+ import { z as z41 } from "zod";
28030
+ var bookingDepositRefundPolicySchema = z41.enum([
27860
28031
  "refundable",
27861
28032
  "non_refundable"
27862
28033
  ]);
27863
- var bookingInstalmentPlanSchema = z40.union([
27864
- z40.object({
27865
- kind: z40.literal("deposit_plus_one_remainder"),
27866
- depositAmountCents: z40.number().int().min(0),
28034
+ var bookingInstalmentPlanSchema = z41.union([
28035
+ z41.object({
28036
+ kind: z41.literal("deposit_plus_one_remainder"),
28037
+ depositAmountCents: z41.number().int().min(0),
27867
28038
  depositRefundability: bookingDepositRefundPolicySchema,
27868
- remainderDueCount: z40.number().int().positive(),
27869
- intervalUnit: z40.enum(["day", "week", "month"])
28039
+ remainderDueCount: z41.number().int().positive(),
28040
+ intervalUnit: z41.enum(["day", "week", "month"])
27870
28041
  }),
27871
- z40.object({
27872
- kind: z40.literal("deposit_plus_scheduled_instalments"),
27873
- depositAmountCents: z40.number().int().min(0),
28042
+ z41.object({
28043
+ kind: z41.literal("deposit_plus_scheduled_instalments"),
28044
+ depositAmountCents: z41.number().int().min(0),
27874
28045
  depositRefundability: bookingDepositRefundPolicySchema,
27875
- instalmentCount: z40.number().int().positive(),
27876
- intervalCount: z40.number().int().positive(),
27877
- intervalUnit: z40.enum(["day", "week", "month"])
28046
+ instalmentCount: z41.number().int().positive(),
28047
+ intervalCount: z41.number().int().positive(),
28048
+ intervalUnit: z41.enum(["day", "week", "month"])
27878
28049
  }),
27879
- z40.object({
27880
- kind: z40.literal("equal_scheduled_instalments"),
27881
- instalmentCount: z40.number().int().positive(),
27882
- intervalCount: z40.number().int().positive(),
27883
- intervalUnit: z40.enum(["day", "week", "month"])
28050
+ z41.object({
28051
+ kind: z41.literal("equal_scheduled_instalments"),
28052
+ instalmentCount: z41.number().int().positive(),
28053
+ intervalCount: z41.number().int().positive(),
28054
+ intervalUnit: z41.enum(["day", "week", "month"])
27884
28055
  })
27885
28056
  ]);
27886
- var bookingFlexibleBalanceDueDateRuleSchema = z40.union([
27887
- z40.object({
27888
- kind: z40.literal("relative_to_start_date"),
27889
- daysBeforeStart: z40.number().int().positive()
28057
+ var bookingFlexibleBalanceDueDateRuleSchema = z41.union([
28058
+ z41.object({
28059
+ kind: z41.literal("relative_to_start_date"),
28060
+ daysBeforeStart: z41.number().int().positive()
27890
28061
  }),
27891
- z40.object({
27892
- kind: z40.literal("fixed_calendar_date"),
27893
- dueAt: z40.string().datetime()
28062
+ z41.object({
28063
+ kind: z41.literal("fixed_calendar_date"),
28064
+ dueAt: z41.string().datetime()
27894
28065
  })
27895
28066
  ]);
27896
- var bookingFlexibleBalanceConfigSchema = z40.object({
27897
- upfrontAmountCents: z40.number().int().min(0),
28067
+ var bookingFlexibleBalanceConfigSchema = z41.object({
28068
+ upfrontAmountCents: z41.number().int().min(0),
27898
28069
  dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
27899
28070
  depositRefundability: bookingDepositRefundPolicySchema
27900
28071
  });
27901
- var blockBookingPaymentCollectionOptionSchema = z40.union([
27902
- z40.object({
27903
- kind: z40.literal("upfront")
28072
+ var blockBookingPaymentCollectionOptionSchema = z41.union([
28073
+ z41.object({
28074
+ kind: z41.literal("upfront")
27904
28075
  }),
27905
- z40.object({
27906
- kind: z40.literal("deferred_manual")
28076
+ z41.object({
28077
+ kind: z41.literal("deferred_manual")
27907
28078
  }),
27908
- z40.object({
27909
- kind: z40.literal("instalment_plan"),
28079
+ z41.object({
28080
+ kind: z41.literal("instalment_plan"),
27910
28081
  plan: bookingInstalmentPlanSchema
27911
28082
  }),
27912
- z40.object({
27913
- kind: z40.literal("flexible_balance"),
28083
+ z41.object({
28084
+ kind: z41.literal("flexible_balance"),
27914
28085
  config: bookingFlexibleBalanceConfigSchema
27915
28086
  })
27916
28087
  ]);
27917
- var blockBookingPaymentTermsSchema = z40.object({
27918
- allowedOptions: z40.array(blockBookingPaymentCollectionOptionSchema).min(1)
28088
+ var blockBookingPaymentTermsSchema = z41.object({
28089
+ allowedOptions: z41.array(blockBookingPaymentCollectionOptionSchema).min(1)
27919
28090
  });
27920
28091
 
27921
28092
  // ../blocks/src/system/blocks/courses/shared/schemas.ts
27922
- import { z as z41 } from "zod";
27923
- var courseVenueSchema = z41.object({
27924
- id: z41.string(),
27925
- name: z41.string(),
27926
- address: z41.string().nullable()
27927
- });
27928
- var courseSessionSchema = z41.object({
27929
- id: z41.string(),
27930
- startsAt: z41.string(),
27931
- endsAt: z41.string(),
27932
- timeZone: z41.string(),
27933
- capacityOverride: z41.number().nullable().optional(),
27934
- overrides: z41.record(z41.string(), z41.unknown()).nullable().optional()
27935
- });
27936
- var courseTeamMemberSummarySchema = z41.object({
27937
- id: z41.string(),
27938
- name: z41.string(),
27939
- roleLabel: z41.string().nullable(),
27940
- summary: z41.string().nullable(),
27941
- profilePath: z41.string().nullable()
27942
- });
27943
- var coursePricingOptionSchema = z41.object({
27944
- id: z41.string(),
27945
- name: z41.string(),
27946
- description: z41.string().nullable(),
27947
- priceAmount: z41.number(),
27948
- isActive: z41.boolean(),
27949
- sortOrder: z41.number(),
27950
- capacityLimit: z41.number().nullable(),
27951
- saleStartsAt: z41.string().nullable(),
27952
- saleEndsAt: z41.string().nullable(),
27953
- attendanceScope: z41.enum(["in_person", "online", "both"]).nullable().optional()
27954
- });
27955
- var coursePricingSchema = z41.object({
27956
- bookingRequirement: z41.enum(["none", "required"]),
27957
- pricingStrategy: z41.enum(["free", "single", "tiered"]),
27958
- currency: z41.string(),
27959
- singlePriceAmount: z41.number().nullable(),
28093
+ import { z as z42 } from "zod";
28094
+ var courseVenueSchema = z42.object({
28095
+ id: z42.string(),
28096
+ name: z42.string(),
28097
+ address: z42.string().nullable()
28098
+ });
28099
+ var courseSessionSchema = z42.object({
28100
+ id: z42.string(),
28101
+ startsAt: z42.string(),
28102
+ endsAt: z42.string(),
28103
+ timeZone: z42.string(),
28104
+ capacityOverride: z42.number().nullable().optional(),
28105
+ overrides: z42.record(z42.string(), z42.unknown()).nullable().optional()
28106
+ });
28107
+ var courseTeamMemberSummarySchema = z42.object({
28108
+ id: z42.string(),
28109
+ name: z42.string(),
28110
+ roleLabel: z42.string().nullable(),
28111
+ summary: z42.string().nullable(),
28112
+ profilePath: z42.string().nullable()
28113
+ });
28114
+ var coursePricingOptionSchema = z42.object({
28115
+ id: z42.string(),
28116
+ name: z42.string(),
28117
+ description: z42.string().nullable(),
28118
+ priceAmount: z42.number(),
28119
+ isActive: z42.boolean(),
28120
+ sortOrder: z42.number(),
28121
+ capacityLimit: z42.number().nullable(),
28122
+ saleStartsAt: z42.string().nullable(),
28123
+ saleEndsAt: z42.string().nullable(),
28124
+ attendanceScope: z42.enum(["in_person", "online", "both"]).nullable().optional()
28125
+ });
28126
+ var coursePricingSchema = z42.object({
28127
+ bookingRequirement: z42.enum(["none", "required"]),
28128
+ pricingStrategy: z42.enum(["free", "single", "tiered"]),
28129
+ currency: z42.string(),
28130
+ singlePriceAmount: z42.number().nullable(),
27960
28131
  paymentTerms: blockBookingPaymentTermsSchema,
27961
- options: z41.array(coursePricingOptionSchema)
27962
- });
27963
- var publicCourseSchema = z41.object({
27964
- id: z41.string(),
27965
- title: z41.string(),
27966
- slug: z41.string(),
27967
- description: z41.unknown().nullable(),
27968
- teamMembers: z41.array(courseTeamMemberSummarySchema).optional(),
27969
- enrollmentOpen: z41.boolean(),
28132
+ options: z42.array(coursePricingOptionSchema)
28133
+ });
28134
+ var publicCourseSchema = z42.object({
28135
+ id: z42.string(),
28136
+ title: z42.string(),
28137
+ slug: z42.string(),
28138
+ description: z42.unknown().nullable(),
28139
+ teamMembers: z42.array(courseTeamMemberSummarySchema).optional(),
28140
+ enrollmentOpen: z42.boolean(),
27970
28141
  pricing: coursePricingSchema.optional(),
27971
- priceCents: z41.number().nullable(),
27972
- currency: z41.string(),
28142
+ priceCents: z42.number().nullable(),
28143
+ currency: z42.string(),
27973
28144
  paymentTerms: blockBookingPaymentTermsSchema,
27974
- enrollmentCapacity: z41.number().nullable(),
27975
- acceptsMemberships: z41.boolean(),
27976
- status: z41.enum(["active", "draft", "cancelled"]),
27977
- sessionsCount: z41.number(),
27978
- enrolledCount: z41.number(),
27979
- availableSpots: z41.number().nullable(),
27980
- sessions: z41.array(courseSessionSchema),
28145
+ enrollmentCapacity: z42.number().nullable(),
28146
+ acceptsMemberships: z42.boolean(),
28147
+ status: z42.enum(["active", "draft", "cancelled"]),
28148
+ sessionsCount: z42.number(),
28149
+ enrolledCount: z42.number(),
28150
+ availableSpots: z42.number().nullable(),
28151
+ sessions: z42.array(courseSessionSchema),
27981
28152
  venue: courseVenueSchema.nullable(),
27982
- contentEntryId: z41.string().nullable()
28153
+ contentEntryId: z42.string().nullable()
27983
28154
  });
27984
- var publicCoursesArraySchema = z41.array(publicCourseSchema);
28155
+ var publicCoursesArraySchema = z42.array(publicCourseSchema);
27985
28156
 
27986
28157
  // ../blocks/src/system/blocks/events/shared/schemas.ts
27987
- var eventPresetSchema = z42.enum(["event", "class", "workshop", "retreat", "performance"]);
27988
- var eventScheduleScopeSchema = z42.enum(["recurring", "oneOff"]);
27989
- var eventDestinationModeSchema = z42.enum(["cms-managed", "system-managed"]);
27990
- var eventVenueSchema = z42.object({
27991
- id: z42.string(),
27992
- name: z42.string(),
27993
- address: z42.string().nullable(),
27994
- location: z42.object({
27995
- lat: z42.number(),
27996
- lng: z42.number()
28158
+ var eventPresetSchema = z43.enum(["event", "class", "workshop", "retreat", "performance"]);
28159
+ var eventScheduleScopeSchema = z43.enum(["recurring", "oneOff"]);
28160
+ var eventDestinationModeSchema = z43.enum(["cms-managed", "system-managed"]);
28161
+ var eventVenueSchema = z43.object({
28162
+ id: z43.string(),
28163
+ name: z43.string(),
28164
+ address: z43.string().nullable(),
28165
+ location: z43.object({
28166
+ lat: z43.number(),
28167
+ lng: z43.number()
27997
28168
  }).nullable()
27998
28169
  });
27999
- var eventCategorySchema = z42.object({
28000
- id: z42.string(),
28001
- name: z42.string(),
28002
- color: z42.string().nullable()
28003
- });
28004
- var pricingTypeSchema = z42.enum(["free", "paid"]);
28005
- var accessRestrictionSchema = z42.enum(["none", "category"]);
28006
- var eventPricingModeSchema = z42.enum(["single", "ticket_types"]);
28007
- var publicCoursePriceDisplaySchema = z42.discriminatedUnion("kind", [
28008
- z42.object({ kind: z42.literal("free"), currency: z42.string() }),
28009
- z42.object({ kind: z42.literal("exact"), amount: z42.number(), currency: z42.string() }),
28010
- z42.object({ kind: z42.literal("from"), amount: z42.number(), currency: z42.string() }),
28011
- z42.object({ kind: z42.literal("unavailable"), currency: z42.string() })
28170
+ var eventCategorySchema = z43.object({
28171
+ id: z43.string(),
28172
+ name: z43.string(),
28173
+ color: z43.string().nullable()
28174
+ });
28175
+ var pricingTypeSchema = z43.enum(["free", "paid"]);
28176
+ var accessRestrictionSchema = z43.enum(["none", "category"]);
28177
+ var eventPricingModeSchema = z43.enum(["single", "ticket_types"]);
28178
+ var publicCoursePriceDisplaySchema = z43.discriminatedUnion("kind", [
28179
+ z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28180
+ z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28181
+ z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28182
+ z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
28012
28183
  ]);
28013
- var publicEventPriceDisplaySchema = z42.discriminatedUnion("kind", [
28014
- z42.object({ kind: z42.literal("free"), currency: z42.string() }),
28015
- z42.object({ kind: z42.literal("exact"), amount: z42.number(), currency: z42.string() }),
28016
- z42.object({ kind: z42.literal("from"), amount: z42.number(), currency: z42.string() }),
28017
- z42.object({ kind: z42.literal("mixed"), paidFromAmount: z42.number(), currency: z42.string() }),
28018
- z42.object({ kind: z42.literal("unavailable"), currency: z42.string() }),
28019
- z42.object({ kind: z42.literal("course"), display: publicCoursePriceDisplaySchema })
28184
+ var publicEventPriceDisplaySchema = z43.discriminatedUnion("kind", [
28185
+ z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28186
+ z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28187
+ z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28188
+ z43.object({ kind: z43.literal("range"), minAmount: z43.number(), maxAmount: z43.number(), currency: z43.string() }),
28189
+ z43.object({
28190
+ kind: z43.literal("mixed"),
28191
+ paidFromAmount: z43.number(),
28192
+ paidToAmount: z43.number(),
28193
+ currency: z43.string()
28194
+ }),
28195
+ z43.object({ kind: z43.literal("unavailable"), currency: z43.string() }),
28196
+ z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28020
28197
  ]);
28021
- var publicEventTicketTypePriceDisplaySchema = z42.union([
28022
- z42.object({ kind: z42.literal("free"), currency: z42.string() }),
28023
- z42.object({ kind: z42.literal("exact"), amount: z42.number(), currency: z42.string() }),
28024
- z42.object({ kind: z42.literal("from"), amount: z42.number(), currency: z42.string() }),
28025
- z42.object({ kind: z42.literal("mixed"), paidFromAmount: z42.number(), currency: z42.string() }),
28026
- z42.object({ kind: z42.literal("unavailable"), currency: z42.string() })
28198
+ var publicEventTicketTypePriceDisplaySchema = z43.union([
28199
+ z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28200
+ z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28201
+ z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28202
+ z43.object({ kind: z43.literal("range"), minAmount: z43.number(), maxAmount: z43.number(), currency: z43.string() }),
28203
+ z43.object({
28204
+ kind: z43.literal("mixed"),
28205
+ paidFromAmount: z43.number(),
28206
+ paidToAmount: z43.number(),
28207
+ currency: z43.string()
28208
+ }),
28209
+ z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
28027
28210
  ]);
28028
- var publicEventAttendanceModeSchema = z42.enum(["in_person", "online"]);
28029
- var publicEventAttendanceModeAvailabilitySchema = z42.object({
28211
+ var publicEventAttendanceModeSchema = z43.enum(["in_person", "online"]);
28212
+ var publicEventAttendanceModeAvailabilitySchema = z43.object({
28030
28213
  mode: publicEventAttendanceModeSchema,
28031
- capacity: z42.number().nullable(),
28032
- registeredCount: z42.number(),
28033
- availableSpots: z42.number().nullable(),
28034
- waitlistEnabled: z42.boolean()
28035
- });
28036
- var publicEventTicketTypeAvailabilitySchema = z42.union([
28037
- z42.object({
28038
- kind: z42.literal("available"),
28039
- remainingCapacity: z42.number().nullable()
28214
+ capacity: z43.number().nullable(),
28215
+ registeredCount: z43.number(),
28216
+ availableSpots: z43.number().nullable(),
28217
+ waitlistEnabled: z43.boolean()
28218
+ });
28219
+ var publicEventTicketTypeAvailabilitySchema = z43.union([
28220
+ z43.object({
28221
+ kind: z43.literal("available"),
28222
+ remainingCapacity: z43.number().nullable()
28040
28223
  }),
28041
- z42.object({
28042
- kind: z42.literal("unavailable"),
28043
- reason: z42.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
28044
- remainingCapacity: z42.number().nullable()
28224
+ z43.object({
28225
+ kind: z43.literal("unavailable"),
28226
+ reason: z43.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
28227
+ remainingCapacity: z43.number().nullable()
28045
28228
  })
28046
28229
  ]);
28047
- var publicEventTicketTypeSchema = z42.object({
28048
- id: z42.string(),
28049
- siteId: z42.string(),
28050
- eventSeriesId: z42.string(),
28051
- name: z42.string(),
28052
- description: z42.string().nullable(),
28053
- priceAmount: z42.number(),
28054
- isActive: z42.boolean(),
28055
- sortOrder: z42.number(),
28056
- capacityMode: z42.enum(["limited", "unlimited"]),
28057
- capacityLimit: z42.number().nullable(),
28058
- attendanceScope: z42.enum(["in_person", "online", "both"]).optional(),
28059
- saleStartsAt: z42.string().nullable(),
28060
- saleEndsAt: z42.string().nullable(),
28230
+ var publicEventTicketTypeSchema = z43.object({
28231
+ id: z43.string(),
28232
+ siteId: z43.string(),
28233
+ eventSeriesId: z43.string(),
28234
+ name: z43.string(),
28235
+ description: z43.string().nullable(),
28236
+ priceAmount: z43.number(),
28237
+ isActive: z43.boolean(),
28238
+ sortOrder: z43.number(),
28239
+ capacityMode: z43.enum(["limited", "unlimited"]),
28240
+ capacityLimit: z43.number().nullable(),
28241
+ attendanceScope: z43.enum(["in_person", "online", "both"]).optional(),
28242
+ saleStartsAt: z43.string().nullable(),
28243
+ saleEndsAt: z43.string().nullable(),
28061
28244
  availability: publicEventTicketTypeAvailabilitySchema,
28062
- createdAt: z42.string(),
28063
- updatedAt: z42.string()
28064
- });
28065
- var publicEventPricingSchema = z42.discriminatedUnion("kind", [
28066
- z42.object({
28067
- kind: z42.literal("drop_in"),
28068
- currency: z42.string(),
28069
- display: z42.object({ kind: z42.literal("free"), currency: z42.string() })
28245
+ createdAt: z43.string(),
28246
+ updatedAt: z43.string()
28247
+ });
28248
+ var publicEventPricingSchema = z43.discriminatedUnion("kind", [
28249
+ z43.object({
28250
+ kind: z43.literal("drop_in"),
28251
+ currency: z43.string(),
28252
+ display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
28070
28253
  }),
28071
- z42.object({
28072
- kind: z42.literal("free_registration"),
28073
- currency: z42.string(),
28074
- display: z42.object({ kind: z42.literal("free"), currency: z42.string() })
28254
+ z43.object({
28255
+ kind: z43.literal("free_registration"),
28256
+ currency: z43.string(),
28257
+ display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
28075
28258
  }),
28076
- z42.object({
28077
- kind: z42.literal("single_paid"),
28078
- amount: z42.number(),
28079
- currency: z42.string(),
28080
- display: z42.object({ kind: z42.literal("exact"), amount: z42.number(), currency: z42.string() })
28259
+ z43.object({
28260
+ kind: z43.literal("single_paid"),
28261
+ amount: z43.number(),
28262
+ currency: z43.string(),
28263
+ display: z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() })
28081
28264
  }),
28082
- z42.object({
28083
- kind: z42.literal("ticket_types"),
28084
- currency: z42.string(),
28085
- ticketTypes: z42.array(publicEventTicketTypeSchema),
28265
+ z43.object({
28266
+ kind: z43.literal("ticket_types"),
28267
+ currency: z43.string(),
28268
+ ticketTypes: z43.array(publicEventTicketTypeSchema),
28086
28269
  display: publicEventTicketTypePriceDisplaySchema
28087
28270
  }),
28088
- z42.object({
28089
- kind: z42.literal("course"),
28090
- display: z42.object({ kind: z42.literal("course"), display: publicCoursePriceDisplaySchema })
28271
+ z43.object({
28272
+ kind: z43.literal("course"),
28273
+ display: z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28091
28274
  })
28092
28275
  ]);
28093
- var publicTeamMemberSummarySchema = z42.object({
28094
- id: z42.string(),
28095
- name: z42.string(),
28096
- roleLabel: z42.string().nullable(),
28097
- summary: z42.string().nullable(),
28098
- profilePath: z42.string().nullable()
28276
+ var publicTeamMemberSummarySchema = z43.object({
28277
+ id: z43.string(),
28278
+ name: z43.string(),
28279
+ roleLabel: z43.string().nullable(),
28280
+ summary: z43.string().nullable(),
28281
+ profilePath: z43.string().nullable()
28099
28282
  });
28100
- var publicEventSchema = z42.object({
28101
- kind: z42.enum(["event", "course_session"]).optional(),
28283
+ var publicEventSchema = z43.object({
28284
+ kind: z43.enum(["event", "course_session"]).optional(),
28102
28285
  eventPreset: eventPresetSchema.optional(),
28103
28286
  eventDestinationMode: eventDestinationModeSchema.optional(),
28104
28287
  scheduleScope: eventScheduleScopeSchema.optional(),
28105
- id: z42.string(),
28106
- occurrenceId: z42.string(),
28107
- seriesId: z42.string(),
28108
- title: z42.string(),
28109
- description: z42.string().nullable(),
28110
- presentation: z42.object({
28111
- cardTitleOverride: z42.string().nullable().optional(),
28112
- summary: z42.string().nullable().optional(),
28288
+ id: z43.string(),
28289
+ occurrenceId: z43.string(),
28290
+ seriesId: z43.string(),
28291
+ title: z43.string(),
28292
+ description: z43.string().nullable(),
28293
+ content: z43.object({
28294
+ body: RichTextDocSchema.nullable().optional()
28295
+ }).optional(),
28296
+ presentation: z43.object({
28297
+ cardTitleOverride: z43.string().nullable().optional(),
28298
+ summary: z43.string().nullable().optional(),
28113
28299
  image: mediaSchema2.nullable().optional()
28114
28300
  }).optional(),
28115
- slug: z42.string(),
28116
- path: z42.string(),
28117
- requiresRegistration: z42.boolean(),
28118
- deliveryMode: z42.enum(["in_person", "online", "hybrid"]),
28119
- attendanceModes: z42.array(publicEventAttendanceModeAvailabilitySchema),
28120
- startsAt: z42.string(),
28121
- endsAt: z42.string(),
28122
- capacity: z42.number().nullable(),
28123
- registeredCount: z42.number(),
28124
- availableSpots: z42.number().nullable(),
28125
- waitlistEnabled: z42.boolean(),
28301
+ slug: z43.string(),
28302
+ path: z43.string(),
28303
+ requiresRegistration: z43.boolean(),
28304
+ deliveryMode: z43.enum(["in_person", "online", "hybrid"]),
28305
+ attendanceModes: z43.array(publicEventAttendanceModeAvailabilitySchema),
28306
+ startsAt: z43.string(),
28307
+ endsAt: z43.string(),
28308
+ capacity: z43.number().nullable(),
28309
+ registeredCount: z43.number(),
28310
+ availableSpots: z43.number().nullable(),
28311
+ waitlistEnabled: z43.boolean(),
28126
28312
  venue: eventVenueSchema.nullable(),
28127
28313
  eventCategory: eventCategorySchema.nullable(),
28128
- teamMembers: z42.array(publicTeamMemberSummarySchema).optional(),
28129
- status: z42.enum(["active", "draft", "archived"]).optional(),
28130
- timeZone: z42.string(),
28314
+ teamMembers: z43.array(publicTeamMemberSummarySchema).optional(),
28315
+ status: z43.enum(["active", "draft", "archived"]).optional(),
28316
+ timeZone: z43.string(),
28131
28317
  pricing: publicEventPricingSchema,
28132
28318
  paymentTerms: blockBookingPaymentTermsSchema,
28133
28319
  accessRestriction: accessRestrictionSchema,
28134
- allowedCategoryIds: z42.array(z42.string()),
28135
- requireGuestDetails: z42.boolean().optional(),
28136
- acceptsPasses: z42.boolean().optional(),
28137
- acceptsMemberships: z42.boolean().optional(),
28138
- course: z42.object({
28139
- id: z42.string(),
28320
+ allowedCategoryIds: z43.array(z43.string()),
28321
+ requireGuestDetails: z43.boolean().optional(),
28322
+ acceptsPasses: z43.boolean().optional(),
28323
+ acceptsMemberships: z43.boolean().optional(),
28324
+ course: z43.object({
28325
+ id: z43.string(),
28140
28326
  pricing: coursePricingSchema.optional(),
28141
- priceCents: z42.number().nullable(),
28142
- currency: z42.string(),
28143
- enrollmentOpen: z42.boolean()
28327
+ priceCents: z43.number().nullable(),
28328
+ currency: z43.string(),
28329
+ enrollmentOpen: z43.boolean()
28144
28330
  }).nullable().optional()
28145
28331
  });
28146
- var publicEventsArraySchema = z42.array(publicEventSchema);
28332
+ var publicEventsArraySchema = z43.array(publicEventSchema);
28147
28333
 
28148
28334
  // ../blocks/src/system/blocks/events/shared/fields.ts
28149
28335
  var cardVariantOptions2 = cardVariantRoleValues.map((value) => ({
@@ -28347,19 +28533,19 @@ function normalizeEventStaffMemberId(value) {
28347
28533
  }
28348
28534
 
28349
28535
  // ../blocks/src/system/blocks/event-registration.shared.ts
28350
- import { z as z43 } from "zod";
28351
- var occurrenceContextSchema = z43.object({
28352
- id: z43.string(),
28353
- seriesId: z43.string(),
28354
- startsAt: z43.string(),
28355
- endsAt: z43.string(),
28356
- timeZone: z43.string(),
28357
- capacityOverride: z43.number().nullable().optional(),
28358
- overrides: z43.record(z43.string(), z43.unknown()).nullable().optional()
28536
+ import { z as z44 } from "zod";
28537
+ var occurrenceContextSchema = z44.object({
28538
+ id: z44.string(),
28539
+ seriesId: z44.string(),
28540
+ startsAt: z44.string(),
28541
+ endsAt: z44.string(),
28542
+ timeZone: z44.string(),
28543
+ capacityOverride: z44.number().nullable().optional(),
28544
+ overrides: z44.record(z44.string(), z44.unknown()).nullable().optional()
28359
28545
  }).nullable();
28360
28546
 
28361
28547
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28362
- import { z as z45 } from "zod";
28548
+ import { z as z46 } from "zod";
28363
28549
 
28364
28550
  // ../blocks/src/system/constants/events.ts
28365
28551
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
@@ -28457,10 +28643,21 @@ function readLegacyPriceDisplay(value, currency) {
28457
28643
  amount: readAmount(value.amount) ?? 0,
28458
28644
  currency: displayCurrency
28459
28645
  } : { kind: "unavailable", currency };
28646
+ case "range": {
28647
+ const minAmount = readAmount(value.minAmount);
28648
+ const maxAmount = readAmount(value.maxAmount);
28649
+ return minAmount !== null && maxAmount !== null ? {
28650
+ kind: "range",
28651
+ minAmount,
28652
+ maxAmount,
28653
+ currency: displayCurrency
28654
+ } : { kind: "unavailable", currency };
28655
+ }
28460
28656
  case "mixed":
28461
28657
  return readAmount(value.paidFromAmount) !== null ? {
28462
28658
  kind: "mixed",
28463
28659
  paidFromAmount: readAmount(value.paidFromAmount) ?? 0,
28660
+ paidToAmount: readAmount(value.paidToAmount) ?? readAmount(value.paidFromAmount) ?? 0,
28464
28661
  currency: displayCurrency
28465
28662
  } : { kind: "unavailable", currency };
28466
28663
  case "unavailable":
@@ -28502,16 +28699,16 @@ function readAmount(value) {
28502
28699
  }
28503
28700
 
28504
28701
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
28505
- import { z as z44 } from "zod";
28506
- var previewStageSchema = z44.enum(["preview", "published"]);
28507
- var registrationButtonVariantSchema = z44.enum(["primary", "secondary", "outline"]);
28508
- var eventButtonVariantSchema = z44.enum(["primary", "secondary", "outline", "link"]);
28509
- var eventLayoutSchema = z44.enum(eventCalendarListLayoutValues);
28510
- var eventCalendarDisplayModeSchema = z44.enum(eventCalendarDisplayModeValues);
28511
- var columnOptionSchema = z44.enum(["2", "3", "4"]);
28512
- var weekStartSchema = z44.enum(["sunday", "monday"]);
28513
- var filterAutoShowSchema = z44.enum(["auto", "always", "never"]);
28514
- var calendarTabViewsSchema = z44.enum(["both", "month", "week"]);
28702
+ import { z as z45 } from "zod";
28703
+ var previewStageSchema = z45.enum(["preview", "published"]);
28704
+ var registrationButtonVariantSchema = z45.enum(["primary", "secondary", "outline"]);
28705
+ var eventButtonVariantSchema = z45.enum(["primary", "secondary", "outline", "link"]);
28706
+ var eventLayoutSchema = z45.enum(eventCalendarListLayoutValues);
28707
+ var eventCalendarDisplayModeSchema = z45.enum(eventCalendarDisplayModeValues);
28708
+ var columnOptionSchema = z45.enum(["2", "3", "4"]);
28709
+ var weekStartSchema = z45.enum(["sunday", "monday"]);
28710
+ var filterAutoShowSchema = z45.enum(["auto", "always", "never"]);
28711
+ var calendarTabViewsSchema = z45.enum(["both", "month", "week"]);
28515
28712
 
28516
28713
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
28517
28714
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -28571,66 +28768,68 @@ function toRegistrationEvents(events) {
28571
28768
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28572
28769
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
28573
28770
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
28574
- var contentEntrySchema = z45.object({
28575
- id: z45.string(),
28576
- slug: z45.string(),
28577
- contentTypeSlug: z45.string()
28771
+ var contentEntrySchema = z46.object({
28772
+ id: z46.string(),
28773
+ slug: z46.string(),
28774
+ contentTypeSlug: z46.string()
28578
28775
  });
28579
- var eventRegistrationPublicEventSchema = z45.preprocess(
28776
+ var eventRegistrationPublicEventSchema = z46.preprocess(
28580
28777
  normalizeEventRegistrationEventInput,
28581
28778
  publicEventSchema
28582
28779
  );
28583
- var eventRegistrationSourceSchema = z45.object({
28584
- siteId: z45.string().optional(),
28585
- apiBaseUrl: z45.string().optional(),
28586
- portalToken: z45.string().nullable().optional(),
28587
- previewToken: z45.string().nullable().optional(),
28780
+ var eventRegistrationSourceSchema = z46.object({
28781
+ siteId: z46.string().optional(),
28782
+ apiBaseUrl: z46.string().optional(),
28783
+ portalToken: z46.string().nullable().optional(),
28784
+ previewToken: z46.string().nullable().optional(),
28588
28785
  occurrenceContext: occurrenceContextSchema.optional(),
28589
28786
  contentEntry: contentEntrySchema.nullable().optional(),
28590
- events: z45.array(eventRegistrationPublicEventSchema).nullable().optional(),
28591
- className: z45.string().nullable().optional(),
28592
- buttonText: z45.string().nullable().optional(),
28593
- maxTickets: z45.string().nullable().optional(),
28594
- showVenue: z45.boolean().optional(),
28595
- showCapacity: z45.boolean().optional(),
28596
- successMessage: z45.string().optional(),
28597
- waitlistMessage: z45.string().optional(),
28787
+ events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
28788
+ className: z46.string().nullable().optional(),
28789
+ buttonText: z46.string().nullable().optional(),
28790
+ maxTickets: z46.string().nullable().optional(),
28791
+ showVenue: z46.boolean().optional(),
28792
+ showCapacity: z46.boolean().optional(),
28793
+ successMessage: z46.string().optional(),
28794
+ waitlistMessage: z46.string().optional(),
28598
28795
  buttonVariant: registrationButtonVariantSchema.optional(),
28599
- spamProtectionEnabled: z45.boolean().optional(),
28796
+ overlayEnabled: z46.boolean().optional(),
28797
+ spamProtectionEnabled: z46.boolean().optional(),
28600
28798
  stage: previewStageSchema.optional(),
28601
- supportEmail: z45.string().optional()
28602
- });
28603
- var eventRegistrationDisplaySchema = z45.object({
28604
- kind: z45.literal("event-registration"),
28605
- state: z45.literal("generic-shell"),
28606
- className: z45.string().nullable(),
28607
- titleText: z45.string(),
28608
- bodyText: z45.string(),
28609
- stepLabels: z45.array(z45.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28610
- summaryButtonText: z45.string()
28611
- });
28612
- var eventRegistrationHydrationSchema = z45.object({
28799
+ supportEmail: z46.string().optional()
28800
+ });
28801
+ var eventRegistrationDisplaySchema = z46.object({
28802
+ kind: z46.literal("event-registration"),
28803
+ state: z46.literal("generic-shell"),
28804
+ className: z46.string().nullable(),
28805
+ titleText: z46.string(),
28806
+ bodyText: z46.string(),
28807
+ stepLabels: z46.array(z46.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28808
+ summaryButtonText: z46.string()
28809
+ });
28810
+ var eventRegistrationHydrationSchema = z46.object({
28613
28811
  occurrenceContext: occurrenceContextSchema.optional(),
28614
28812
  contentEntry: contentEntrySchema.nullable().optional(),
28615
- events: z45.array(eventRegistrationPublicEventSchema).nullable().optional(),
28616
- maxTickets: z45.string().optional(),
28617
- showVenue: z45.boolean().optional(),
28618
- showCapacity: z45.boolean().optional(),
28619
- successMessage: z45.string().optional(),
28620
- waitlistMessage: z45.string().optional(),
28813
+ events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
28814
+ maxTickets: z46.string().optional(),
28815
+ showVenue: z46.boolean().optional(),
28816
+ showCapacity: z46.boolean().optional(),
28817
+ successMessage: z46.string().optional(),
28818
+ waitlistMessage: z46.string().optional(),
28621
28819
  buttonVariant: registrationButtonVariantSchema.optional(),
28622
- spamProtectionEnabled: z45.boolean().optional(),
28623
- supportEmail: z45.string().optional()
28820
+ overlayEnabled: z46.boolean().optional(),
28821
+ spamProtectionEnabled: z46.boolean().optional(),
28822
+ supportEmail: z46.string().optional()
28624
28823
  });
28625
- var eventRegistrationRenderSchema = z45.object({
28824
+ var eventRegistrationRenderSchema = z46.object({
28626
28825
  display: eventRegistrationDisplaySchema,
28627
28826
  hydration: eventRegistrationHydrationSchema
28628
28827
  });
28629
- var eventRegistrationIslandMetaCodec = createZodCodec(z45.object({
28630
- siteId: z45.string().optional(),
28631
- apiBaseUrl: z45.string().optional(),
28632
- portalToken: z45.string().nullable().optional(),
28633
- previewToken: z45.string().nullable().optional(),
28828
+ var eventRegistrationIslandMetaCodec = createZodCodec(z46.object({
28829
+ siteId: z46.string().optional(),
28830
+ apiBaseUrl: z46.string().optional(),
28831
+ portalToken: z46.string().nullable().optional(),
28832
+ previewToken: z46.string().nullable().optional(),
28634
28833
  stage: previewStageSchema.optional()
28635
28834
  }));
28636
28835
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -28734,6 +28933,7 @@ var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
28734
28933
  successMessage: source.successMessage,
28735
28934
  waitlistMessage: source.waitlistMessage,
28736
28935
  buttonVariant: source.buttonVariant,
28936
+ overlayEnabled: source.overlayEnabled,
28737
28937
  spamProtectionEnabled: source.spamProtectionEnabled,
28738
28938
  supportEmail: source.supportEmail
28739
28939
  }
@@ -28909,6 +29109,12 @@ var eventRegistrationManifest = createBlockManifest({
28909
29109
  buttonVariant: {
28910
29110
  $bind: { from: "content.buttonVariant", fallback: "primary" }
28911
29111
  },
29112
+ overlayEnabled: {
29113
+ $bind: {
29114
+ from: "$root.eventRegistrationOverlayEnabled",
29115
+ fallback: false
29116
+ }
29117
+ },
28912
29118
  // Event data from loader
28913
29119
  events: { $bind: { from: "data.events" } },
28914
29120
  // Stage for preview mode (allows registering for draft events)
@@ -28929,7 +29135,7 @@ var eventRegistrationBlockDefinition = {
28929
29135
  manifest: eventRegistrationManifest,
28930
29136
  runtime: eventRegistrationBlockRuntime,
28931
29137
  dataSchemas: {
28932
- events: z46.array(publicEventSchema).optional(),
29138
+ events: z47.array(publicEventSchema).optional(),
28933
29139
  occurrenceContext: occurrenceContextSchema.optional()
28934
29140
  },
28935
29141
  dataLoaders: {
@@ -28953,73 +29159,73 @@ var eventRegistrationBlockDefinition = {
28953
29159
  };
28954
29160
 
28955
29161
  // ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
28956
- import { z as z47 } from "zod";
28957
- var contentEntrySchema2 = z47.object({
28958
- id: z47.string(),
28959
- slug: z47.string(),
28960
- contentTypeSlug: z47.string()
28961
- });
28962
- var courseEntrySubrouteContextSchema = z47.union([
28963
- z47.object({
28964
- kind: z47.literal("course-run"),
28965
- run: z47.object({
28966
- courseId: z47.string(),
28967
- seriesId: z47.string(),
28968
- runSlug: z47.string(),
28969
- runName: z47.string().nullable()
29162
+ import { z as z48 } from "zod";
29163
+ var contentEntrySchema2 = z48.object({
29164
+ id: z48.string(),
29165
+ slug: z48.string(),
29166
+ contentTypeSlug: z48.string()
29167
+ });
29168
+ var courseEntrySubrouteContextSchema = z48.union([
29169
+ z48.object({
29170
+ kind: z48.literal("course-run"),
29171
+ run: z48.object({
29172
+ courseId: z48.string(),
29173
+ seriesId: z48.string(),
29174
+ runSlug: z48.string(),
29175
+ runName: z48.string().nullable()
28970
29176
  })
28971
29177
  }),
28972
- z47.object({
28973
- kind: z47.literal("event-occurrence"),
29178
+ z48.object({
29179
+ kind: z48.literal("event-occurrence"),
28974
29180
  occurrence: occurrenceContextSchema
28975
29181
  })
28976
29182
  ]);
28977
- var courseRegistrationSourceSchema = z47.object({
28978
- siteId: z47.string().optional(),
28979
- apiBaseUrl: z47.string().optional(),
28980
- portalToken: z47.string().nullable().optional(),
29183
+ var courseRegistrationSourceSchema = z48.object({
29184
+ siteId: z48.string().optional(),
29185
+ apiBaseUrl: z48.string().optional(),
29186
+ portalToken: z48.string().nullable().optional(),
28981
29187
  contentEntry: contentEntrySchema2.nullable().optional(),
28982
29188
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
28983
- courses: z47.array(publicCourseSchema).nullable().optional(),
28984
- className: z47.string().nullable().optional(),
28985
- showSessions: z47.boolean().optional(),
28986
- showPrice: z47.boolean().optional(),
28987
- showCapacity: z47.boolean().optional(),
28988
- showVenue: z47.boolean().optional(),
28989
- successMessage: z47.string().optional(),
28990
- waitlistMessage: z47.string().optional(),
28991
- membershipMessage: z47.string().optional(),
28992
- buttonText: z47.string().nullable().optional(),
29189
+ courses: z48.array(publicCourseSchema).nullable().optional(),
29190
+ className: z48.string().nullable().optional(),
29191
+ showSessions: z48.boolean().optional(),
29192
+ showPrice: z48.boolean().optional(),
29193
+ showCapacity: z48.boolean().optional(),
29194
+ showVenue: z48.boolean().optional(),
29195
+ successMessage: z48.string().optional(),
29196
+ waitlistMessage: z48.string().optional(),
29197
+ membershipMessage: z48.string().optional(),
29198
+ buttonText: z48.string().nullable().optional(),
28993
29199
  buttonVariant: registrationButtonVariantSchema.optional(),
28994
29200
  stage: previewStageSchema.optional()
28995
29201
  });
28996
- var courseRegistrationDisplaySchema = z47.object({
28997
- kind: z47.literal("course-registration"),
28998
- state: z47.literal("shell"),
28999
- className: z47.string().nullable(),
29000
- summaryButtonText: z47.string()
29202
+ var courseRegistrationDisplaySchema = z48.object({
29203
+ kind: z48.literal("course-registration"),
29204
+ state: z48.literal("shell"),
29205
+ className: z48.string().nullable(),
29206
+ summaryButtonText: z48.string()
29001
29207
  });
29002
- var courseRegistrationHydrationSchema = z47.object({
29208
+ var courseRegistrationHydrationSchema = z48.object({
29003
29209
  contentEntry: contentEntrySchema2.nullable().optional(),
29004
29210
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
29005
- courses: z47.array(publicCourseSchema).nullable().optional(),
29006
- showSessions: z47.boolean().optional(),
29007
- showPrice: z47.boolean().optional(),
29008
- showCapacity: z47.boolean().optional(),
29009
- showVenue: z47.boolean().optional(),
29010
- successMessage: z47.string().optional(),
29011
- waitlistMessage: z47.string().optional(),
29012
- membershipMessage: z47.string().optional(),
29211
+ courses: z48.array(publicCourseSchema).nullable().optional(),
29212
+ showSessions: z48.boolean().optional(),
29213
+ showPrice: z48.boolean().optional(),
29214
+ showCapacity: z48.boolean().optional(),
29215
+ showVenue: z48.boolean().optional(),
29216
+ successMessage: z48.string().optional(),
29217
+ waitlistMessage: z48.string().optional(),
29218
+ membershipMessage: z48.string().optional(),
29013
29219
  buttonVariant: registrationButtonVariantSchema.optional()
29014
29220
  });
29015
- var courseRegistrationRenderSchema = z47.object({
29221
+ var courseRegistrationRenderSchema = z48.object({
29016
29222
  display: courseRegistrationDisplaySchema,
29017
29223
  hydration: courseRegistrationHydrationSchema
29018
29224
  });
29019
- var courseRegistrationIslandMetaCodec = createZodCodec(z47.object({
29020
- siteId: z47.string().optional(),
29021
- apiBaseUrl: z47.string().optional(),
29022
- portalToken: z47.string().nullable().optional(),
29225
+ var courseRegistrationIslandMetaCodec = createZodCodec(z48.object({
29226
+ siteId: z48.string().optional(),
29227
+ apiBaseUrl: z48.string().optional(),
29228
+ portalToken: z48.string().nullable().optional(),
29023
29229
  stage: previewStageSchema.optional()
29024
29230
  }));
29025
29231
  var courseRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -29279,32 +29485,32 @@ var courseRegistrationBlockDefinition = {
29279
29485
  };
29280
29486
 
29281
29487
  // ../blocks/src/system/blocks/event-details.ts
29282
- import { z as z49 } from "zod";
29488
+ import { z as z50 } from "zod";
29283
29489
 
29284
29490
  // ../blocks/src/system/blocks/shop.shared.ts
29285
- import { z as z48 } from "zod";
29286
- var publicPassProductSchema = z48.object({
29287
- id: z48.string(),
29288
- productUseCase: z48.enum(["event_pass", "appointment_package"]).default("event_pass"),
29289
- name: z48.string(),
29290
- description: z48.string().nullable(),
29291
- price: z48.number(),
29292
- currency: z48.string(),
29293
- creditsTotal: z48.number(),
29294
- pricePerCredit: z48.number(),
29295
- validDays: z48.number().nullable(),
29296
- eligibleCategoryIds: z48.array(z48.string()),
29297
- eligibleCategoryNames: z48.array(z48.string())
29298
- });
29299
- var publicMembershipProductSchema = z48.object({
29300
- id: z48.string(),
29301
- name: z48.string(),
29302
- description: z48.string().nullable(),
29303
- price: z48.number(),
29304
- currency: z48.string(),
29305
- billingInterval: z48.enum(["month", "year"]),
29306
- eligibleCategoryIds: z48.array(z48.string()),
29307
- eligibleCategoryNames: z48.array(z48.string())
29491
+ import { z as z49 } from "zod";
29492
+ var publicPassProductSchema = z49.object({
29493
+ id: z49.string(),
29494
+ productUseCase: z49.enum(["event_pass", "appointment_package"]).default("event_pass"),
29495
+ name: z49.string(),
29496
+ description: z49.string().nullable(),
29497
+ price: z49.number(),
29498
+ currency: z49.string(),
29499
+ creditsTotal: z49.number(),
29500
+ pricePerCredit: z49.number(),
29501
+ validDays: z49.number().nullable(),
29502
+ eligibleCategoryIds: z49.array(z49.string()),
29503
+ eligibleCategoryNames: z49.array(z49.string())
29504
+ });
29505
+ var publicMembershipProductSchema = z49.object({
29506
+ id: z49.string(),
29507
+ name: z49.string(),
29508
+ description: z49.string().nullable(),
29509
+ price: z49.number(),
29510
+ currency: z49.string(),
29511
+ billingInterval: z49.enum(["month", "year"]),
29512
+ eligibleCategoryIds: z49.array(z49.string()),
29513
+ eligibleCategoryNames: z49.array(z49.string())
29308
29514
  });
29309
29515
 
29310
29516
  // ../blocks/src/system/blocks/event-details.ts
@@ -29439,40 +29645,40 @@ var eventDetailsManifest = createBlockManifest({
29439
29645
  })
29440
29646
  ]
29441
29647
  });
29442
- var occurrenceContextSchema2 = z49.object({
29443
- id: z49.string(),
29444
- seriesId: z49.string(),
29445
- startsAt: z49.string(),
29446
- endsAt: z49.string(),
29447
- timeZone: z49.string(),
29448
- capacityOverride: z49.number().nullable().optional(),
29449
- overrides: z49.record(z49.string(), z49.unknown()).nullable().optional()
29648
+ var occurrenceContextSchema2 = z50.object({
29649
+ id: z50.string(),
29650
+ seriesId: z50.string(),
29651
+ startsAt: z50.string(),
29652
+ endsAt: z50.string(),
29653
+ timeZone: z50.string(),
29654
+ capacityOverride: z50.number().nullable().optional(),
29655
+ overrides: z50.record(z50.string(), z50.unknown()).nullable().optional()
29450
29656
  }).nullable();
29451
- var eventAutoApplyDiscountPreviewBaseSchema = z49.object({
29452
- id: z49.string(),
29453
- publicLabel: z49.string(),
29454
- description: z49.string().nullable(),
29455
- minTicketsRequired: z49.number().nullable()
29657
+ var eventAutoApplyDiscountPreviewBaseSchema = z50.object({
29658
+ id: z50.string(),
29659
+ publicLabel: z50.string(),
29660
+ description: z50.string().nullable(),
29661
+ minTicketsRequired: z50.number().nullable()
29456
29662
  });
29457
- var eventAutoApplyDiscountPreviewSchema = z49.discriminatedUnion("discountType", [
29663
+ var eventAutoApplyDiscountPreviewSchema = z50.discriminatedUnion("discountType", [
29458
29664
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29459
- discountType: z49.literal("percent"),
29460
- discountPercent: z49.number(),
29461
- discountAmountCents: z49.null()
29665
+ discountType: z50.literal("percent"),
29666
+ discountPercent: z50.number(),
29667
+ discountAmountCents: z50.null()
29462
29668
  }),
29463
29669
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29464
- discountType: z49.literal("fixed"),
29465
- discountPercent: z49.null(),
29466
- discountAmountCents: z49.number()
29670
+ discountType: z50.literal("fixed"),
29671
+ discountPercent: z50.null(),
29672
+ discountAmountCents: z50.number()
29467
29673
  })
29468
29674
  ]);
29469
29675
  var eventDetailsBlockDefinition = {
29470
29676
  manifest: eventDetailsManifest,
29471
29677
  dataSchemas: {
29472
- eventDetailsData: z49.object({
29678
+ eventDetailsData: z50.object({
29473
29679
  events: publicEventsArraySchema,
29474
- sitePasses: z49.object({ passes: z49.array(publicPassProductSchema) }),
29475
- siteMemberships: z49.object({ memberships: z49.array(publicMembershipProductSchema) }),
29680
+ sitePasses: z50.object({ passes: z50.array(publicPassProductSchema) }),
29681
+ siteMemberships: z50.object({ memberships: z50.array(publicMembershipProductSchema) }),
29476
29682
  autoApplyDiscount: eventAutoApplyDiscountPreviewSchema.nullable().optional().default(null)
29477
29683
  }).optional(),
29478
29684
  occurrenceContext: occurrenceContextSchema2.optional()
@@ -29796,7 +30002,7 @@ var eventSpotlightBlockDefinition = {
29796
30002
  };
29797
30003
 
29798
30004
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
29799
- import { z as z51 } from "zod";
30005
+ import { z as z52 } from "zod";
29800
30006
 
29801
30007
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
29802
30008
  var COLUMN_CLASSES = {
@@ -29904,16 +30110,16 @@ function computeMediaTransformStyle(value, style, targetAspectRatio, options) {
29904
30110
  }
29905
30111
 
29906
30112
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
29907
- import { z as z50 } from "zod";
30113
+ import { z as z51 } from "zod";
29908
30114
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
29909
- var eventPageSizeSchema = z50.union([
29910
- z50.literal(3),
29911
- z50.literal(6),
29912
- z50.literal(10),
29913
- z50.literal(12),
29914
- z50.literal(20),
29915
- z50.literal(24),
29916
- z50.literal(30)
30115
+ var eventPageSizeSchema = z51.union([
30116
+ z51.literal(3),
30117
+ z51.literal(6),
30118
+ z51.literal(10),
30119
+ z51.literal(12),
30120
+ z51.literal(20),
30121
+ z51.literal(24),
30122
+ z51.literal(30)
29917
30123
  ]);
29918
30124
  var eventPageSizeSet = new Set(eventPageSizeValues);
29919
30125
  function resolveEventPageSize(value, fallback = 12) {
@@ -29923,15 +30129,15 @@ function resolveEventPageSize(value, fallback = 12) {
29923
30129
  function resolveEventCalendarListPageSize(input) {
29924
30130
  return resolveEventPageSize(input.eventsPerPage);
29925
30131
  }
29926
- var eventListPaginationActionSchema = z50.discriminatedUnion("kind", [
29927
- z50.object({
29928
- kind: z50.literal("loadMore"),
29929
- label: z50.string()
30132
+ var eventListPaginationActionSchema = z51.discriminatedUnion("kind", [
30133
+ z51.object({
30134
+ kind: z51.literal("loadMore"),
30135
+ label: z51.string()
29930
30136
  }),
29931
- z50.object({
29932
- kind: z50.literal("seeAllLink"),
29933
- label: z50.string(),
29934
- href: z50.string()
30137
+ z51.object({
30138
+ kind: z51.literal("seeAllLink"),
30139
+ label: z51.string(),
30140
+ href: z51.string()
29935
30141
  })
29936
30142
  ]);
29937
30143
  function resolveEventListPaginationAction(input) {
@@ -29944,89 +30150,89 @@ function resolveEventListPaginationAction(input) {
29944
30150
  }
29945
30151
 
29946
30152
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
29947
- var legacyEventCardVariantSchema = z51.enum(["variant1", "variant2"]);
29948
- var eventCardVariantInputSchema = z51.union([
30153
+ var legacyEventCardVariantSchema = z52.enum(["variant1", "variant2"]);
30154
+ var eventCardVariantInputSchema = z52.union([
29949
30155
  cardVariantRoleSchema,
29950
30156
  legacyEventCardVariantSchema
29951
30157
  ]);
29952
- var cardOrientationSchema = z51.enum(["vertical", "horizontal"]);
29953
- var eventBlockKindSchema = z51.enum(eventBlockKindValues);
29954
- var eventSurfaceScopeSchema = z51.enum(eventSurfaceScopeValues);
29955
- var eventScheduleScopeSchema2 = z51.enum(eventScheduleScopeValues);
29956
- var eventListingSourceSchema = z51.object({
29957
- events: z51.array(publicEventSchema).nullable().optional(),
29958
- siteId: z51.string(),
29959
- apiBaseUrl: z51.string().optional(),
30158
+ var cardOrientationSchema = z52.enum(["vertical", "horizontal"]);
30159
+ var eventBlockKindSchema = z52.enum(eventBlockKindValues);
30160
+ var eventSurfaceScopeSchema = z52.enum(eventSurfaceScopeValues);
30161
+ var eventScheduleScopeSchema2 = z52.enum(eventScheduleScopeValues);
30162
+ var eventListingSourceSchema = z52.object({
30163
+ events: z52.array(publicEventSchema).nullable().optional(),
30164
+ siteId: z52.string(),
30165
+ apiBaseUrl: z52.string().optional(),
29960
30166
  stage: previewStageSchema.optional(),
29961
30167
  layout: eventLayoutSchema.optional(),
29962
30168
  columns: columnOptionSchema.optional(),
29963
- eventsPerPage: z51.string().optional(),
29964
- paginationMode: z51.enum(["loadMore", "seeAllLink"]).optional(),
29965
- seeAllUrl: z51.string().optional(),
29966
- loadMoreText: z51.string().optional(),
30169
+ eventsPerPage: z52.string().optional(),
30170
+ paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30171
+ seeAllUrl: z52.string().optional(),
30172
+ loadMoreText: z52.string().optional(),
29967
30173
  cardVariant: eventCardVariantInputSchema.optional(),
29968
30174
  buttonVariant: eventButtonVariantSchema.optional(),
29969
- buttonText: z51.string().optional(),
29970
- showVenue: z51.boolean().optional(),
29971
- showMap: z51.boolean().optional(),
29972
- showCapacity: z51.boolean().optional(),
29973
- emptyMessage: z51.string().optional(),
29974
- className: z51.string().optional(),
29975
- showFilters: z51.boolean().nullable().optional(),
30175
+ buttonText: z52.string().optional(),
30176
+ showVenue: z52.boolean().optional(),
30177
+ showMap: z52.boolean().optional(),
30178
+ showCapacity: z52.boolean().optional(),
30179
+ emptyMessage: z52.string().optional(),
30180
+ className: z52.string().optional(),
30181
+ showFilters: z52.boolean().nullable().optional(),
29976
30182
  showCategoryFilter: filterAutoShowSchema.optional(),
29977
- showVenueFilter: z51.boolean().nullable().optional(),
29978
- showStaffFilter: z51.boolean().nullable().optional(),
30183
+ showVenueFilter: z52.boolean().nullable().optional(),
30184
+ showStaffFilter: z52.boolean().nullable().optional(),
29979
30185
  eventKind: eventBlockKindSchema.nullable().optional(),
29980
30186
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
29981
- filterEventPresets: z51.union([z51.string(), z51.array(z51.string())]).nullable().optional(),
30187
+ filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
29982
30188
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
29983
- filterCategoryIds: z51.string().nullable().optional(),
29984
- filterStaffMemberId: z51.string().nullable().optional(),
29985
- filterVenueId: z51.string().nullable().optional()
30189
+ filterCategoryIds: z52.string().nullable().optional(),
30190
+ filterStaffMemberId: z52.string().nullable().optional(),
30191
+ filterVenueId: z52.string().nullable().optional()
29986
30192
  });
29987
- var eventListingDisplaySchema = z51.object({
29988
- kind: z51.literal("event-listing"),
29989
- state: z51.enum(["loading", "empty", "ready"]),
30193
+ var eventListingDisplaySchema = z52.object({
30194
+ kind: z52.literal("event-listing"),
30195
+ state: z52.enum(["loading", "empty", "ready"]),
29990
30196
  listLayout: eventLayoutSchema,
29991
- className: z51.string().nullable(),
29992
- emptyMessage: z51.string(),
29993
- loadingMessage: z51.string(),
29994
- containerClass: z51.string(),
30197
+ className: z52.string().nullable(),
30198
+ emptyMessage: z52.string(),
30199
+ loadingMessage: z52.string(),
30200
+ containerClass: z52.string(),
29995
30201
  cardVariant: cardVariantRoleSchema,
29996
30202
  buttonVariant: eventButtonVariantSchema,
29997
- buttonText: z51.string(),
29998
- showVenue: z51.boolean(),
29999
- showMap: z51.boolean(),
30000
- showCapacity: z51.boolean(),
30203
+ buttonText: z52.string(),
30204
+ showVenue: z52.boolean(),
30205
+ showMap: z52.boolean(),
30206
+ showCapacity: z52.boolean(),
30001
30207
  orientation: cardOrientationSchema,
30002
- events: z51.array(publicEventSchema)
30208
+ events: z52.array(publicEventSchema)
30003
30209
  });
30004
- var eventListingHydrationSchema = z51.object({
30005
- siteId: z51.string(),
30210
+ var eventListingHydrationSchema = z52.object({
30211
+ siteId: z52.string(),
30006
30212
  stage: previewStageSchema.optional(),
30007
30213
  eventsPerPage: eventPageSizeSchema,
30008
30214
  paginationAction: eventListPaginationActionSchema,
30009
- showFilters: z51.boolean(),
30215
+ showFilters: z52.boolean(),
30010
30216
  showCategoryFilter: filterAutoShowSchema,
30011
- showVenueFilter: z51.boolean(),
30012
- showStaffFilter: z51.boolean(),
30217
+ showVenueFilter: z52.boolean(),
30218
+ showStaffFilter: z52.boolean(),
30013
30219
  eventKind: eventBlockKindSchema,
30014
30220
  eventSurface: eventSurfaceScopeSchema,
30015
- filterEventPresets: z51.string().nullable(),
30221
+ filterEventPresets: z52.string().nullable(),
30016
30222
  scheduleScope: eventScheduleScopeSchema2,
30017
- filterCategoryIds: z51.string().nullable().optional(),
30018
- filterStaffMemberId: z51.string().nullable().optional(),
30019
- filterVenueId: z51.string().nullable().optional(),
30020
- fetchInitialEventsOnMount: z51.boolean()
30223
+ filterCategoryIds: z52.string().nullable().optional(),
30224
+ filterStaffMemberId: z52.string().nullable().optional(),
30225
+ filterVenueId: z52.string().nullable().optional(),
30226
+ fetchInitialEventsOnMount: z52.boolean()
30021
30227
  });
30022
- var eventListingRenderSchema = z51.object({
30228
+ var eventListingRenderSchema = z52.object({
30023
30229
  display: eventListingDisplaySchema,
30024
30230
  hydration: eventListingHydrationSchema
30025
30231
  });
30026
30232
  var eventListingIslandMetaCodec = createZodCodec(
30027
- z51.object({
30028
- siteId: z51.string(),
30029
- apiBaseUrl: z51.string().optional(),
30233
+ z52.object({
30234
+ siteId: z52.string(),
30235
+ apiBaseUrl: z52.string().optional(),
30030
30236
  stage: previewStageSchema.optional()
30031
30237
  })
30032
30238
  );
@@ -30393,15 +30599,15 @@ var eventListingBlockDefinition = {
30393
30599
  };
30394
30600
 
30395
30601
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
30396
- import { z as z52 } from "zod";
30397
- var eventBlockKindSchema2 = z52.enum(eventBlockKindValues);
30398
- var eventSurfaceScopeSchema2 = z52.enum(eventSurfaceScopeValues);
30399
- var eventScheduleScopeSchema3 = z52.enum(eventScheduleScopeValues);
30400
- var eventCalendarSourceSchema = z52.object(
30602
+ import { z as z53 } from "zod";
30603
+ var eventBlockKindSchema2 = z53.enum(eventBlockKindValues);
30604
+ var eventSurfaceScopeSchema2 = z53.enum(eventSurfaceScopeValues);
30605
+ var eventScheduleScopeSchema3 = z53.enum(eventScheduleScopeValues);
30606
+ var eventCalendarSourceSchema = z53.object(
30401
30607
  {
30402
- events: z52.array(publicEventSchema).nullable().optional(),
30403
- siteId: z52.string(),
30404
- apiBaseUrl: z52.string().optional(),
30608
+ events: z53.array(publicEventSchema).nullable().optional(),
30609
+ siteId: z53.string(),
30610
+ apiBaseUrl: z53.string().optional(),
30405
30611
  stage: previewStageSchema.optional(),
30406
30612
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
30407
30613
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -30409,78 +30615,78 @@ var eventCalendarSourceSchema = z52.object(
30409
30615
  listColumns: columnOptionSchema.optional(),
30410
30616
  layout: eventLayoutSchema.optional(),
30411
30617
  columns: columnOptionSchema.optional(),
30412
- eventsPerPage: z52.string().optional(),
30413
- paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30414
- seeAllUrl: z52.string().optional(),
30415
- loadMoreText: z52.string().optional(),
30618
+ eventsPerPage: z53.string().optional(),
30619
+ paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
30620
+ seeAllUrl: z53.string().optional(),
30621
+ loadMoreText: z53.string().optional(),
30416
30622
  startOfWeek: weekStartSchema.optional(),
30417
30623
  calendarTabViews: calendarTabViewsSchema.optional(),
30418
- showFilters: z52.boolean().nullable().optional(),
30624
+ showFilters: z53.boolean().nullable().optional(),
30419
30625
  showCategoryFilter: filterAutoShowSchema.optional(),
30420
- showVenueFilter: z52.boolean().nullable().optional(),
30421
- showStaffFilter: z52.boolean().nullable().optional(),
30626
+ showVenueFilter: z53.boolean().nullable().optional(),
30627
+ showStaffFilter: z53.boolean().nullable().optional(),
30422
30628
  kind: eventBlockKindSchema2.nullable().optional(),
30423
30629
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
30424
- filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30630
+ filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30425
30631
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
30426
- filterCategoryIds: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30427
- filterStaffMemberId: z52.string().nullable().optional(),
30428
- filterVenueId: z52.string().nullable().optional(),
30632
+ filterCategoryIds: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30633
+ filterStaffMemberId: z53.string().nullable().optional(),
30634
+ filterVenueId: z53.string().nullable().optional(),
30429
30635
  buttonVariant: eventButtonVariantSchema.optional(),
30430
- buttonText: z52.string().optional(),
30431
- showVenue: z52.boolean().nullable().optional(),
30432
- showMap: z52.boolean().nullable().optional(),
30433
- showCapacity: z52.boolean().nullable().optional(),
30434
- emptyMessage: z52.string().optional(),
30435
- className: z52.string().optional()
30636
+ buttonText: z53.string().optional(),
30637
+ showVenue: z53.boolean().nullable().optional(),
30638
+ showMap: z53.boolean().nullable().optional(),
30639
+ showCapacity: z53.boolean().nullable().optional(),
30640
+ emptyMessage: z53.string().optional(),
30641
+ className: z53.string().optional()
30436
30642
  }
30437
30643
  );
30438
- var eventCalendarDisplaySchema = z52.object({
30439
- kind: z52.literal("event-calendar"),
30644
+ var eventCalendarDisplaySchema = z53.object({
30645
+ kind: z53.literal("event-calendar"),
30440
30646
  displayMode: eventCalendarDisplayModeSchema,
30441
- className: z52.string().nullable(),
30442
- events: z52.array(publicEventSchema),
30647
+ className: z53.string().nullable(),
30648
+ events: z53.array(publicEventSchema),
30443
30649
  listLayout: eventLayoutSchema,
30444
30650
  listColumns: columnOptionSchema,
30445
30651
  eventsPerPage: eventPageSizeSchema,
30446
30652
  paginationAction: eventListPaginationActionSchema,
30447
30653
  startOfWeek: weekStartSchema,
30448
30654
  calendarTabViews: calendarTabViewsSchema,
30449
- showFilters: z52.boolean(),
30655
+ showFilters: z53.boolean(),
30450
30656
  showCategoryFilter: filterAutoShowSchema,
30451
- showVenueFilter: z52.boolean(),
30452
- showStaffFilter: z52.boolean(),
30657
+ showVenueFilter: z53.boolean(),
30658
+ showStaffFilter: z53.boolean(),
30453
30659
  eventKind: eventBlockKindSchema2,
30454
30660
  eventSurface: eventSurfaceScopeSchema2,
30455
- filterEventPresets: z52.string().nullable(),
30661
+ filterEventPresets: z53.string().nullable(),
30456
30662
  scheduleScope: eventScheduleScopeSchema3,
30457
- filterCategoryIds: z52.string().nullable(),
30458
- filterStaffMemberId: z52.string().nullable(),
30459
- filterVenueId: z52.string().nullable(),
30663
+ filterCategoryIds: z53.string().nullable(),
30664
+ filterStaffMemberId: z53.string().nullable(),
30665
+ filterVenueId: z53.string().nullable(),
30460
30666
  buttonVariant: eventButtonVariantSchema,
30461
- buttonText: z52.string(),
30462
- showVenue: z52.boolean(),
30463
- showMap: z52.boolean(),
30464
- showCapacity: z52.boolean(),
30465
- emptyMessage: z52.string()
30466
- });
30467
- var eventCalendarHydrationSchema = z52.object({
30468
- siteId: z52.string(),
30667
+ buttonText: z53.string(),
30668
+ showVenue: z53.boolean(),
30669
+ showMap: z53.boolean(),
30670
+ showCapacity: z53.boolean(),
30671
+ emptyMessage: z53.string()
30672
+ });
30673
+ var eventCalendarHydrationSchema = z53.object({
30674
+ siteId: z53.string(),
30469
30675
  stage: previewStageSchema.optional(),
30470
- prefetchedEvents: z52.boolean(),
30676
+ prefetchedEvents: z53.boolean(),
30471
30677
  eventKind: eventBlockKindSchema2,
30472
30678
  eventSurface: eventSurfaceScopeSchema2,
30473
- filterEventPresets: z52.string().nullable(),
30679
+ filterEventPresets: z53.string().nullable(),
30474
30680
  scheduleScope: eventScheduleScopeSchema3
30475
30681
  });
30476
- var eventCalendarRenderSchema = z52.object({
30682
+ var eventCalendarRenderSchema = z53.object({
30477
30683
  display: eventCalendarDisplaySchema,
30478
30684
  hydration: eventCalendarHydrationSchema
30479
30685
  });
30480
30686
  var eventCalendarIslandMetaCodec = createZodCodec(
30481
- z52.object({
30482
- siteId: z52.string(),
30483
- apiBaseUrl: z52.string().optional(),
30687
+ z53.object({
30688
+ siteId: z53.string(),
30689
+ apiBaseUrl: z53.string().optional(),
30484
30690
  stage: previewStageSchema.optional()
30485
30691
  })
30486
30692
  );
@@ -31189,7 +31395,7 @@ var eventCalendarBlockDefinition = {
31189
31395
  };
31190
31396
 
31191
31397
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31192
- import { z as z53 } from "zod";
31398
+ import { z as z54 } from "zod";
31193
31399
 
31194
31400
  // ../blocks/src/system/blocks/offerings-preview/model.ts
31195
31401
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -31281,13 +31487,13 @@ function isRecord5(value) {
31281
31487
  }
31282
31488
 
31283
31489
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31284
- var publicRouteCandidatesSchema = z53.object({
31285
- routes: z53.array(z53.object({
31286
- entityId: z53.string(),
31287
- path: z53.string(),
31288
- title: z53.string(),
31289
- kind: z53.enum(["page", "content"]),
31290
- contentTypeKey: z53.string().nullable().optional()
31490
+ var publicRouteCandidatesSchema = z54.object({
31491
+ routes: z54.array(z54.object({
31492
+ entityId: z54.string(),
31493
+ path: z54.string(),
31494
+ title: z54.string(),
31495
+ kind: z54.enum(["page", "content"]),
31496
+ contentTypeKey: z54.string().nullable().optional()
31291
31497
  }))
31292
31498
  });
31293
31499
  var groupOverrideFields = [
@@ -31685,7 +31891,7 @@ function isRecord6(value) {
31685
31891
  }
31686
31892
 
31687
31893
  // ../blocks/src/system/blocks/embed.ts
31688
- import { z as z54 } from "zod";
31894
+ import { z as z55 } from "zod";
31689
31895
  var embedFields = [
31690
31896
  // Section heading
31691
31897
  parseFieldDefinition({
@@ -31916,18 +32122,18 @@ var embedManifest = createBlockManifest({
31916
32122
  spacing: "lg"
31917
32123
  }
31918
32124
  });
31919
- var embedEntrySchema = z54.object({
31920
- id: z54.string(),
31921
- identifier: z54.string(),
31922
- title: z54.string(),
31923
- slug: z54.string().nullable().optional(),
31924
- content: z54.record(z54.string(), z54.unknown()).optional(),
31925
- publishedAt: z54.string().nullable().optional()
32125
+ var embedEntrySchema = z55.object({
32126
+ id: z55.string(),
32127
+ identifier: z55.string(),
32128
+ title: z55.string(),
32129
+ slug: z55.string().nullable().optional(),
32130
+ content: z55.record(z55.string(), z55.unknown()).optional(),
32131
+ publishedAt: z55.string().nullable().optional()
31926
32132
  });
31927
32133
  var embedBlockDefinition = {
31928
32134
  manifest: embedManifest,
31929
32135
  dataSchemas: {
31930
- entries: z54.array(embedEntrySchema).optional()
32136
+ entries: z55.array(embedEntrySchema).optional()
31931
32137
  },
31932
32138
  dataLoaders: {
31933
32139
  entries: {
@@ -33111,52 +33317,52 @@ var fileDownloadBlockDefinition = {
33111
33317
  };
33112
33318
 
33113
33319
  // ../blocks/src/system/blocks/shop.ts
33114
- import { z as z58 } from "zod";
33320
+ import { z as z59 } from "zod";
33115
33321
 
33116
33322
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33117
- import { z as z57 } from "zod";
33323
+ import { z as z58 } from "zod";
33118
33324
 
33119
33325
  // ../blocks/src/system/blocks/products/shared.ts
33120
- import { z as z55 } from "zod";
33121
- var publicProductVariantSchema = z55.object({
33122
- id: z55.string(),
33123
- title: z55.string(),
33124
- sku: z55.string().nullable(),
33125
- priceCents: z55.number(),
33126
- stockQuantity: z55.number().nullable(),
33127
- soldOut: z55.boolean()
33128
- });
33129
- var publicProductSchema = z55.object({
33130
- id: z55.string(),
33131
- contentEntryId: z55.string().nullable(),
33132
- title: z55.string(),
33133
- slug: z55.string(),
33134
- path: z55.string().nullable(),
33135
- status: z55.enum(["draft", "active"]),
33136
- priceCents: z55.number(),
33137
- currency: z55.string(),
33138
- productType: z55.enum(["physical", "digital"]),
33139
- requiresShipping: z55.boolean(),
33140
- hasVariants: z55.boolean(),
33141
- trackInventory: z55.boolean(),
33142
- soldOut: z55.boolean(),
33143
- category: z55.object({
33144
- id: z55.string(),
33145
- name: z55.string(),
33146
- slug: z55.string()
33326
+ import { z as z56 } from "zod";
33327
+ var publicProductVariantSchema = z56.object({
33328
+ id: z56.string(),
33329
+ title: z56.string(),
33330
+ sku: z56.string().nullable(),
33331
+ priceCents: z56.number(),
33332
+ stockQuantity: z56.number().nullable(),
33333
+ soldOut: z56.boolean()
33334
+ });
33335
+ var publicProductSchema = z56.object({
33336
+ id: z56.string(),
33337
+ contentEntryId: z56.string().nullable(),
33338
+ title: z56.string(),
33339
+ slug: z56.string(),
33340
+ path: z56.string().nullable(),
33341
+ status: z56.enum(["draft", "active"]),
33342
+ priceCents: z56.number(),
33343
+ currency: z56.string(),
33344
+ productType: z56.enum(["physical", "digital"]),
33345
+ requiresShipping: z56.boolean(),
33346
+ hasVariants: z56.boolean(),
33347
+ trackInventory: z56.boolean(),
33348
+ soldOut: z56.boolean(),
33349
+ category: z56.object({
33350
+ id: z56.string(),
33351
+ name: z56.string(),
33352
+ slug: z56.string()
33147
33353
  }).nullable(),
33148
- summary: z55.string().nullable(),
33149
- body: z55.unknown().nullable(),
33150
- gallery: z55.array(
33151
- z55.object({
33152
- url: z55.string(),
33153
- alt: z55.string().nullable()
33354
+ summary: z56.string().nullable(),
33355
+ body: z56.unknown().nullable(),
33356
+ gallery: z56.array(
33357
+ z56.object({
33358
+ url: z56.string(),
33359
+ alt: z56.string().nullable()
33154
33360
  })
33155
33361
  ),
33156
- variants: z55.array(publicProductVariantSchema)
33362
+ variants: z56.array(publicProductVariantSchema)
33157
33363
  });
33158
- var publicProductsResponseSchema = z55.object({
33159
- products: z55.array(publicProductSchema)
33364
+ var publicProductsResponseSchema = z56.object({
33365
+ products: z56.array(publicProductSchema)
33160
33366
  });
33161
33367
 
33162
33368
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -33220,27 +33426,27 @@ function deriveCreditProductLabels(products, options = {}) {
33220
33426
  }
33221
33427
 
33222
33428
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
33223
- import { z as z56 } from "zod";
33224
- var storedProductCartItemSchema = z56.object({
33225
- kind: z56.literal("product"),
33226
- productId: z56.string().min(1),
33227
- productCategoryId: z56.string().min(1).optional().nullable(),
33228
- variantId: z56.string().min(1).optional().nullable(),
33229
- title: z56.string().min(1),
33230
- variantTitle: z56.string().optional().nullable(),
33231
- quantity: z56.number().finite(),
33232
- unitPriceCents: z56.number().finite(),
33233
- currency: z56.string().min(1),
33234
- imageUrl: z56.string().optional().nullable(),
33235
- soldOut: z56.boolean().optional()
33236
- });
33237
- var storedPassCartItemSchema = z56.object({
33238
- kind: z56.literal("pass"),
33239
- passId: z56.string().min(1),
33240
- title: z56.string().min(1),
33241
- quantity: z56.number().finite().optional(),
33242
- unitPriceCents: z56.number().finite(),
33243
- currency: z56.string().min(1)
33429
+ import { z as z57 } from "zod";
33430
+ var storedProductCartItemSchema = z57.object({
33431
+ kind: z57.literal("product"),
33432
+ productId: z57.string().min(1),
33433
+ productCategoryId: z57.string().min(1).optional().nullable(),
33434
+ variantId: z57.string().min(1).optional().nullable(),
33435
+ title: z57.string().min(1),
33436
+ variantTitle: z57.string().optional().nullable(),
33437
+ quantity: z57.number().finite(),
33438
+ unitPriceCents: z57.number().finite(),
33439
+ currency: z57.string().min(1),
33440
+ imageUrl: z57.string().optional().nullable(),
33441
+ soldOut: z57.boolean().optional()
33442
+ });
33443
+ var storedPassCartItemSchema = z57.object({
33444
+ kind: z57.literal("pass"),
33445
+ passId: z57.string().min(1),
33446
+ title: z57.string().min(1),
33447
+ quantity: z57.number().finite().optional(),
33448
+ unitPriceCents: z57.number().finite(),
33449
+ currency: z57.string().min(1)
33244
33450
  });
33245
33451
  function deriveCommerceCheckoutState(state) {
33246
33452
  if (state.items.length === 0) {
@@ -33279,10 +33485,7 @@ function resolveSelectedProduct(products, contentEntry, productSlug) {
33279
33485
 
33280
33486
  // ../blocks/src/system/runtime/nodes/commerce/shared/display.ts
33281
33487
  function formatCommercePrice(cents, currency) {
33282
- return new Intl.NumberFormat("en-US", {
33283
- style: "currency",
33284
- currency: currency.toUpperCase()
33285
- }).format(cents / 100);
33488
+ return formatCurrencyAmount(cents, currency);
33286
33489
  }
33287
33490
  function getPassesHeading(passes, explicitHeading) {
33288
33491
  if (explicitHeading) return explicitHeading;
@@ -33477,214 +33680,214 @@ function formatValidity(days) {
33477
33680
  }
33478
33681
 
33479
33682
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33480
- var shopModeSchema = z57.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33481
- var contentEntrySchema3 = z57.object({
33482
- id: z57.string().nullable().optional(),
33483
- slug: z57.string().nullable().optional()
33683
+ var shopModeSchema = z58.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33684
+ var contentEntrySchema3 = z58.object({
33685
+ id: z58.string().nullable().optional(),
33686
+ slug: z58.string().nullable().optional()
33484
33687
  }).nullable();
33485
- var shopSourceSchema = z57.object({
33486
- className: z57.string().nullable().optional(),
33688
+ var shopSourceSchema = z58.object({
33689
+ className: z58.string().nullable().optional(),
33487
33690
  mode: shopModeSchema.optional(),
33488
- heading: z57.string().nullable().optional(),
33489
- productSlug: z57.string().nullable().optional(),
33490
- showPasses: z57.boolean().optional(),
33491
- showMemberships: z57.boolean().optional(),
33492
- layout: z57.enum(["grid", "list"]).optional(),
33493
- columns: z57.string().optional(),
33494
- showDescriptions: z57.boolean().optional(),
33495
- showSummary: z57.boolean().optional(),
33496
- showBody: z57.boolean().optional(),
33497
- showPrices: z57.boolean().optional(),
33498
- showValidityPeriod: z57.boolean().optional(),
33499
- showPricePerCredit: z57.boolean().nullable().optional(),
33500
- passesHeading: z57.string().optional(),
33501
- membershipsHeading: z57.string().optional(),
33502
- buyButtonText: z57.string().optional(),
33503
- addButtonText: z57.string().optional(),
33504
- passPurchaseMode: z57.enum(["add_to_cart", "buy_now"]).optional(),
33505
- subscribeButtonText: z57.string().optional(),
33506
- emptyStateText: z57.string().optional(),
33507
- checkoutButtonText: z57.string().optional(),
33508
- clearButtonText: z57.string().optional(),
33509
- submitButtonText: z57.string().optional(),
33691
+ heading: z58.string().nullable().optional(),
33692
+ productSlug: z58.string().nullable().optional(),
33693
+ showPasses: z58.boolean().optional(),
33694
+ showMemberships: z58.boolean().optional(),
33695
+ layout: z58.enum(["grid", "list"]).optional(),
33696
+ columns: z58.string().optional(),
33697
+ showDescriptions: z58.boolean().optional(),
33698
+ showSummary: z58.boolean().optional(),
33699
+ showBody: z58.boolean().optional(),
33700
+ showPrices: z58.boolean().optional(),
33701
+ showValidityPeriod: z58.boolean().optional(),
33702
+ showPricePerCredit: z58.boolean().nullable().optional(),
33703
+ passesHeading: z58.string().optional(),
33704
+ membershipsHeading: z58.string().optional(),
33705
+ buyButtonText: z58.string().optional(),
33706
+ addButtonText: z58.string().optional(),
33707
+ passPurchaseMode: z58.enum(["add_to_cart", "buy_now"]).optional(),
33708
+ subscribeButtonText: z58.string().optional(),
33709
+ emptyStateText: z58.string().optional(),
33710
+ checkoutButtonText: z58.string().optional(),
33711
+ clearButtonText: z58.string().optional(),
33712
+ submitButtonText: z58.string().optional(),
33510
33713
  contentEntry: contentEntrySchema3.optional(),
33511
- passes: z57.array(publicPassProductSchema).nullable().optional(),
33512
- memberships: z57.array(publicMembershipProductSchema).nullable().optional(),
33513
- products: z57.array(publicProductSchema).nullable().optional(),
33514
- siteId: z57.string().optional(),
33515
- apiBaseUrl: z57.string().optional(),
33714
+ passes: z58.array(publicPassProductSchema).nullable().optional(),
33715
+ memberships: z58.array(publicMembershipProductSchema).nullable().optional(),
33716
+ products: z58.array(publicProductSchema).nullable().optional(),
33717
+ siteId: z58.string().optional(),
33718
+ apiBaseUrl: z58.string().optional(),
33516
33719
  stage: previewStageSchema.optional()
33517
33720
  });
33518
- var productVariantOptionDisplaySchema = z57.object({
33519
- id: z57.string(),
33520
- label: z57.string(),
33521
- soldOut: z57.boolean()
33522
- });
33523
- var productCardDisplaySchema = z57.object({
33524
- productId: z57.string(),
33525
- title: z57.string(),
33526
- path: z57.string().nullable(),
33527
- summary: z57.string().nullable(),
33528
- priceLabel: z57.string().nullable(),
33529
- image: z57.object({
33530
- url: z57.string(),
33531
- alt: z57.string().nullable()
33721
+ var productVariantOptionDisplaySchema = z58.object({
33722
+ id: z58.string(),
33723
+ label: z58.string(),
33724
+ soldOut: z58.boolean()
33725
+ });
33726
+ var productCardDisplaySchema = z58.object({
33727
+ productId: z58.string(),
33728
+ title: z58.string(),
33729
+ path: z58.string().nullable(),
33730
+ summary: z58.string().nullable(),
33731
+ priceLabel: z58.string().nullable(),
33732
+ image: z58.object({
33733
+ url: z58.string(),
33734
+ alt: z58.string().nullable()
33532
33735
  }).nullable(),
33533
- variantOptions: z57.array(productVariantOptionDisplaySchema),
33534
- selectedVariantId: z57.string().nullable(),
33535
- selectionLabel: z57.string(),
33536
- actionLabel: z57.string(),
33537
- soldOut: z57.boolean()
33538
- });
33539
- var productListDisplaySchema = z57.object({
33540
- kind: z57.literal("product-list"),
33541
- state: z57.enum(["empty", "ready"]),
33542
- heading: z57.string().nullable(),
33543
- className: z57.string().nullable(),
33544
- layout: z57.enum(["grid", "list"]),
33545
- columns: z57.string(),
33546
- emptyMessage: z57.string(),
33547
- cards: z57.array(productCardDisplaySchema)
33548
- });
33549
- var productDetailDisplaySchema = z57.discriminatedUnion("state", [
33550
- z57.object({
33551
- kind: z57.literal("product-detail"),
33552
- state: z57.literal("empty"),
33553
- heading: z57.string().nullable(),
33554
- className: z57.string().nullable(),
33555
- emptyMessage: z57.string()
33736
+ variantOptions: z58.array(productVariantOptionDisplaySchema),
33737
+ selectedVariantId: z58.string().nullable(),
33738
+ selectionLabel: z58.string(),
33739
+ actionLabel: z58.string(),
33740
+ soldOut: z58.boolean()
33741
+ });
33742
+ var productListDisplaySchema = z58.object({
33743
+ kind: z58.literal("product-list"),
33744
+ state: z58.enum(["empty", "ready"]),
33745
+ heading: z58.string().nullable(),
33746
+ className: z58.string().nullable(),
33747
+ layout: z58.enum(["grid", "list"]),
33748
+ columns: z58.string(),
33749
+ emptyMessage: z58.string(),
33750
+ cards: z58.array(productCardDisplaySchema)
33751
+ });
33752
+ var productDetailDisplaySchema = z58.discriminatedUnion("state", [
33753
+ z58.object({
33754
+ kind: z58.literal("product-detail"),
33755
+ state: z58.literal("empty"),
33756
+ heading: z58.string().nullable(),
33757
+ className: z58.string().nullable(),
33758
+ emptyMessage: z58.string()
33556
33759
  }),
33557
- z57.object({
33558
- kind: z57.literal("product-detail"),
33559
- state: z57.literal("ready"),
33560
- heading: z57.string().nullable(),
33561
- className: z57.string().nullable(),
33562
- title: z57.string(),
33563
- priceLabel: z57.string(),
33564
- summary: z57.string().nullable(),
33565
- categoryLabel: z57.string().nullable(),
33566
- gallery: z57.array(z57.object({
33567
- url: z57.string(),
33568
- alt: z57.string().nullable()
33760
+ z58.object({
33761
+ kind: z58.literal("product-detail"),
33762
+ state: z58.literal("ready"),
33763
+ heading: z58.string().nullable(),
33764
+ className: z58.string().nullable(),
33765
+ title: z58.string(),
33766
+ priceLabel: z58.string(),
33767
+ summary: z58.string().nullable(),
33768
+ categoryLabel: z58.string().nullable(),
33769
+ gallery: z58.array(z58.object({
33770
+ url: z58.string(),
33771
+ alt: z58.string().nullable()
33569
33772
  })),
33570
- variantOptions: z57.array(productVariantOptionDisplaySchema),
33571
- selectedVariantId: z57.string().nullable(),
33572
- selectionLabel: z57.string(),
33573
- actionLabel: z57.string(),
33574
- soldOut: z57.boolean(),
33575
- body: z57.unknown().nullable()
33773
+ variantOptions: z58.array(productVariantOptionDisplaySchema),
33774
+ selectedVariantId: z58.string().nullable(),
33775
+ selectionLabel: z58.string(),
33776
+ actionLabel: z58.string(),
33777
+ soldOut: z58.boolean(),
33778
+ body: z58.unknown().nullable()
33576
33779
  })
33577
33780
  ]);
33578
- var passCardDisplaySchema = z57.object({
33579
- id: z57.string(),
33580
- title: z57.string(),
33581
- description: z57.string().nullable(),
33582
- priceLabel: z57.string(),
33583
- creditsLabel: z57.string(),
33584
- perCreditLabel: z57.string().nullable(),
33585
- validityLabel: z57.string().nullable(),
33586
- actionLabel: z57.string()
33587
- });
33588
- var membershipCardDisplaySchema = z57.object({
33589
- id: z57.string(),
33590
- title: z57.string(),
33591
- description: z57.string().nullable(),
33592
- priceLabel: z57.string(),
33593
- intervalLabel: z57.string(),
33594
- actionLabel: z57.string()
33595
- });
33596
- var passesMembershipsDisplaySchema = z57.object({
33597
- kind: z57.literal("passes-memberships"),
33598
- state: z57.enum(["empty", "ready"]),
33599
- className: z57.string().nullable(),
33600
- layout: z57.enum(["grid", "list"]),
33601
- columns: z57.string(),
33602
- emptyMessage: z57.string(),
33603
- passesHeading: z57.string(),
33604
- membershipsHeading: z57.string(),
33605
- passes: z57.array(passCardDisplaySchema),
33606
- memberships: z57.array(membershipCardDisplaySchema)
33607
- });
33608
- var cartLineDisplaySchema = z57.object({
33609
- key: z57.string(),
33610
- title: z57.string(),
33611
- priceLabel: z57.string(),
33612
- quantity: z57.number(),
33613
- quantityEditable: z57.boolean()
33614
- });
33615
- var cartDisplaySchema = z57.object({
33616
- kind: z57.literal("cart"),
33617
- state: z57.enum(["empty", "ready"]),
33618
- heading: z57.string().nullable(),
33619
- className: z57.string().nullable(),
33620
- emptyMessage: z57.string(),
33621
- supportText: z57.string().nullable(),
33622
- items: z57.array(cartLineDisplaySchema),
33623
- subtotalLabel: z57.string().nullable(),
33624
- checkoutButtonText: z57.string(),
33625
- clearButtonText: z57.string()
33626
- });
33627
- var checkoutDisplaySchema = z57.object({
33628
- kind: z57.literal("checkout"),
33629
- state: z57.enum(["empty", "blocked", "ready"]),
33630
- heading: z57.string().nullable(),
33631
- className: z57.string().nullable(),
33632
- message: z57.string().nullable(),
33633
- submitButtonText: z57.string()
33634
- });
33635
- var passesMembershipsHydrationSchema = z57.object({
33636
- passes: z57.array(publicPassProductSchema),
33637
- memberships: z57.array(publicMembershipProductSchema),
33638
- passPurchaseMode: z57.enum(["add_to_cart", "buy_now"])
33639
- });
33640
- var productListHydrationSchema = z57.object({
33641
- products: z57.array(publicProductSchema),
33642
- showSummary: z57.boolean(),
33643
- showPrices: z57.boolean(),
33644
- addButtonText: z57.string()
33645
- });
33646
- var productDetailHydrationSchema = z57.object({
33647
- products: z57.array(publicProductSchema),
33648
- productId: z57.string().nullable(),
33649
- showSummary: z57.boolean(),
33650
- showBody: z57.boolean(),
33651
- addButtonText: z57.string()
33652
- });
33653
- var cartHydrationSchema = z57.object({
33654
- emptyStateText: z57.string(),
33655
- checkoutButtonText: z57.string(),
33656
- clearButtonText: z57.string()
33657
- });
33658
- var checkoutHydrationSchema = z57.object({
33659
- emptyStateText: z57.string(),
33660
- submitButtonText: z57.string()
33661
- });
33662
- var passesMembershipsRenderSchema = z57.object({
33781
+ var passCardDisplaySchema = z58.object({
33782
+ id: z58.string(),
33783
+ title: z58.string(),
33784
+ description: z58.string().nullable(),
33785
+ priceLabel: z58.string(),
33786
+ creditsLabel: z58.string(),
33787
+ perCreditLabel: z58.string().nullable(),
33788
+ validityLabel: z58.string().nullable(),
33789
+ actionLabel: z58.string()
33790
+ });
33791
+ var membershipCardDisplaySchema = z58.object({
33792
+ id: z58.string(),
33793
+ title: z58.string(),
33794
+ description: z58.string().nullable(),
33795
+ priceLabel: z58.string(),
33796
+ intervalLabel: z58.string(),
33797
+ actionLabel: z58.string()
33798
+ });
33799
+ var passesMembershipsDisplaySchema = z58.object({
33800
+ kind: z58.literal("passes-memberships"),
33801
+ state: z58.enum(["empty", "ready"]),
33802
+ className: z58.string().nullable(),
33803
+ layout: z58.enum(["grid", "list"]),
33804
+ columns: z58.string(),
33805
+ emptyMessage: z58.string(),
33806
+ passesHeading: z58.string(),
33807
+ membershipsHeading: z58.string(),
33808
+ passes: z58.array(passCardDisplaySchema),
33809
+ memberships: z58.array(membershipCardDisplaySchema)
33810
+ });
33811
+ var cartLineDisplaySchema = z58.object({
33812
+ key: z58.string(),
33813
+ title: z58.string(),
33814
+ priceLabel: z58.string(),
33815
+ quantity: z58.number(),
33816
+ quantityEditable: z58.boolean()
33817
+ });
33818
+ var cartDisplaySchema = z58.object({
33819
+ kind: z58.literal("cart"),
33820
+ state: z58.enum(["empty", "ready"]),
33821
+ heading: z58.string().nullable(),
33822
+ className: z58.string().nullable(),
33823
+ emptyMessage: z58.string(),
33824
+ supportText: z58.string().nullable(),
33825
+ items: z58.array(cartLineDisplaySchema),
33826
+ subtotalLabel: z58.string().nullable(),
33827
+ checkoutButtonText: z58.string(),
33828
+ clearButtonText: z58.string()
33829
+ });
33830
+ var checkoutDisplaySchema = z58.object({
33831
+ kind: z58.literal("checkout"),
33832
+ state: z58.enum(["empty", "blocked", "ready"]),
33833
+ heading: z58.string().nullable(),
33834
+ className: z58.string().nullable(),
33835
+ message: z58.string().nullable(),
33836
+ submitButtonText: z58.string()
33837
+ });
33838
+ var passesMembershipsHydrationSchema = z58.object({
33839
+ passes: z58.array(publicPassProductSchema),
33840
+ memberships: z58.array(publicMembershipProductSchema),
33841
+ passPurchaseMode: z58.enum(["add_to_cart", "buy_now"])
33842
+ });
33843
+ var productListHydrationSchema = z58.object({
33844
+ products: z58.array(publicProductSchema),
33845
+ showSummary: z58.boolean(),
33846
+ showPrices: z58.boolean(),
33847
+ addButtonText: z58.string()
33848
+ });
33849
+ var productDetailHydrationSchema = z58.object({
33850
+ products: z58.array(publicProductSchema),
33851
+ productId: z58.string().nullable(),
33852
+ showSummary: z58.boolean(),
33853
+ showBody: z58.boolean(),
33854
+ addButtonText: z58.string()
33855
+ });
33856
+ var cartHydrationSchema = z58.object({
33857
+ emptyStateText: z58.string(),
33858
+ checkoutButtonText: z58.string(),
33859
+ clearButtonText: z58.string()
33860
+ });
33861
+ var checkoutHydrationSchema = z58.object({
33862
+ emptyStateText: z58.string(),
33863
+ submitButtonText: z58.string()
33864
+ });
33865
+ var passesMembershipsRenderSchema = z58.object({
33663
33866
  display: passesMembershipsDisplaySchema,
33664
33867
  hydration: passesMembershipsHydrationSchema
33665
33868
  });
33666
- var productListRenderSchema = z57.object({
33869
+ var productListRenderSchema = z58.object({
33667
33870
  display: productListDisplaySchema,
33668
33871
  hydration: productListHydrationSchema
33669
33872
  });
33670
- var productDetailRenderSchema = z57.object({
33873
+ var productDetailRenderSchema = z58.object({
33671
33874
  display: productDetailDisplaySchema,
33672
33875
  hydration: productDetailHydrationSchema
33673
33876
  });
33674
- var cartRenderSchema = z57.object({
33877
+ var cartRenderSchema = z58.object({
33675
33878
  display: cartDisplaySchema,
33676
33879
  hydration: cartHydrationSchema
33677
33880
  });
33678
- var checkoutRenderSchema = z57.object({
33881
+ var checkoutRenderSchema = z58.object({
33679
33882
  display: checkoutDisplaySchema,
33680
33883
  hydration: checkoutHydrationSchema
33681
33884
  });
33682
33885
  function resolveShowPricePerCredit(source) {
33683
33886
  return source.showPricePerCredit ?? true;
33684
33887
  }
33685
- var shopIslandMetaCodec = createZodCodec(z57.object({
33686
- siteId: z57.string().optional(),
33687
- apiBaseUrl: z57.string().optional(),
33888
+ var shopIslandMetaCodec = createZodCodec(z58.object({
33889
+ siteId: z58.string().optional(),
33890
+ apiBaseUrl: z58.string().optional(),
33688
33891
  stage: previewStageSchema.optional()
33689
33892
  }));
33690
33893
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -34062,9 +34265,9 @@ var shopBlockDefinition = {
34062
34265
  runtime: shopBlockRuntime,
34063
34266
  dataSchemas: {
34064
34267
  // listPublicPasses returns { passes: [...] }
34065
- passes: z58.object({ passes: z58.array(publicPassProductSchema) }).optional(),
34268
+ passes: z59.object({ passes: z59.array(publicPassProductSchema) }).optional(),
34066
34269
  // listPublicMemberships returns { memberships: [...] }
34067
- memberships: z58.object({ memberships: z58.array(publicMembershipProductSchema) }).optional()
34270
+ memberships: z59.object({ memberships: z59.array(publicMembershipProductSchema) }).optional()
34068
34271
  },
34069
34272
  dataLoaders: {
34070
34273
  // Load passes for display
@@ -34087,7 +34290,7 @@ var shopBlockDefinition = {
34087
34290
  };
34088
34291
 
34089
34292
  // ../blocks/src/system/blocks/product-list.ts
34090
- import { z as z59 } from "zod";
34293
+ import { z as z60 } from "zod";
34091
34294
  var productListManifest = createBlockManifest({
34092
34295
  id: "block.product-list",
34093
34296
  version: "1.0.0",
@@ -34220,7 +34423,7 @@ var productListBlockDefinition = {
34220
34423
  }
34221
34424
  }
34222
34425
  };
34223
- var productListDataSchema = z59.object({
34426
+ var productListDataSchema = z60.object({
34224
34427
  products: publicProductsResponseSchema.optional()
34225
34428
  });
34226
34429
 
@@ -34481,72 +34684,72 @@ var checkoutBlockDefinition = {
34481
34684
  };
34482
34685
 
34483
34686
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
34484
- import { z as z60 } from "zod";
34485
- var publicGiftCardOfferSchema = z60.object({
34486
- id: z60.string(),
34487
- kind: z60.literal("gift_card"),
34488
- title: z60.string(),
34489
- description: z60.string().nullable(),
34490
- sortOrder: z60.number().int(),
34491
- giftCard: z60.object({
34492
- fixedDenominations: z60.array(z60.number().int().positive()),
34493
- customAmountEnabled: z60.boolean(),
34494
- customAmountMinCents: z60.number().int().positive(),
34495
- customAmountMaxCents: z60.number().int().positive()
34687
+ import { z as z61 } from "zod";
34688
+ var publicGiftCardOfferSchema = z61.object({
34689
+ id: z61.string(),
34690
+ kind: z61.literal("gift_card"),
34691
+ title: z61.string(),
34692
+ description: z61.string().nullable(),
34693
+ sortOrder: z61.number().int(),
34694
+ giftCard: z61.object({
34695
+ fixedDenominations: z61.array(z61.number().int().positive()),
34696
+ customAmountEnabled: z61.boolean(),
34697
+ customAmountMinCents: z61.number().int().positive(),
34698
+ customAmountMaxCents: z61.number().int().positive()
34496
34699
  }),
34497
- voucher: z60.null()
34498
- });
34499
- var publicVoucherOfferSchema = z60.object({
34500
- id: z60.string(),
34501
- kind: z60.literal("voucher"),
34502
- title: z60.string(),
34503
- description: z60.string().nullable(),
34504
- sortOrder: z60.number().int(),
34505
- giftCard: z60.null(),
34506
- voucher: z60.object({
34507
- purchaseAmountCents: z60.number().int().positive()
34700
+ voucher: z61.null()
34701
+ });
34702
+ var publicVoucherOfferSchema = z61.object({
34703
+ id: z61.string(),
34704
+ kind: z61.literal("voucher"),
34705
+ title: z61.string(),
34706
+ description: z61.string().nullable(),
34707
+ sortOrder: z61.number().int(),
34708
+ giftCard: z61.null(),
34709
+ voucher: z61.object({
34710
+ purchaseAmountCents: z61.number().int().positive()
34508
34711
  })
34509
34712
  });
34510
- var publicGiftingOffersResponseSchema = z60.object({
34511
- currency: z60.string(),
34512
- giftCards: z60.array(publicGiftCardOfferSchema),
34513
- vouchers: z60.array(publicVoucherOfferSchema)
34713
+ var publicGiftingOffersResponseSchema = z61.object({
34714
+ currency: z61.string(),
34715
+ giftCards: z61.array(publicGiftCardOfferSchema),
34716
+ vouchers: z61.array(publicVoucherOfferSchema)
34514
34717
  });
34515
- var giftingSourceSchema = z60.object({
34516
- siteId: z60.string().optional(),
34517
- apiBaseUrl: z60.string().optional(),
34718
+ var giftingSourceSchema = z61.object({
34719
+ siteId: z61.string().optional(),
34720
+ apiBaseUrl: z61.string().optional(),
34518
34721
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
34519
- className: z60.string().nullable().optional(),
34520
- heading: z60.string().nullable().optional(),
34521
- intro: z60.string().nullable().optional(),
34522
- giftCardsHeading: z60.string().nullable().optional(),
34523
- vouchersHeading: z60.string().nullable().optional(),
34524
- emptyStateText: z60.string().nullable().optional(),
34525
- checkoutButtonText: z60.string().nullable().optional(),
34526
- successMessage: z60.string().nullable().optional()
34527
- });
34528
- var giftingDisplaySchema = z60.object({
34529
- kind: z60.literal("gifting"),
34530
- state: z60.literal("ready"),
34531
- className: z60.string().nullable(),
34532
- heading: z60.string(),
34533
- intro: z60.string().nullable(),
34534
- giftCardsHeading: z60.string(),
34535
- vouchersHeading: z60.string(),
34536
- emptyStateText: z60.string()
34537
- });
34538
- var giftingHydrationSchema = z60.object({
34722
+ className: z61.string().nullable().optional(),
34723
+ heading: z61.string().nullable().optional(),
34724
+ intro: z61.string().nullable().optional(),
34725
+ giftCardsHeading: z61.string().nullable().optional(),
34726
+ vouchersHeading: z61.string().nullable().optional(),
34727
+ emptyStateText: z61.string().nullable().optional(),
34728
+ checkoutButtonText: z61.string().nullable().optional(),
34729
+ successMessage: z61.string().nullable().optional()
34730
+ });
34731
+ var giftingDisplaySchema = z61.object({
34732
+ kind: z61.literal("gifting"),
34733
+ state: z61.literal("ready"),
34734
+ className: z61.string().nullable(),
34735
+ heading: z61.string(),
34736
+ intro: z61.string().nullable(),
34737
+ giftCardsHeading: z61.string(),
34738
+ vouchersHeading: z61.string(),
34739
+ emptyStateText: z61.string()
34740
+ });
34741
+ var giftingHydrationSchema = z61.object({
34539
34742
  offers: publicGiftingOffersResponseSchema.nullable(),
34540
- checkoutButtonText: z60.string(),
34541
- successMessage: z60.string()
34743
+ checkoutButtonText: z61.string(),
34744
+ successMessage: z61.string()
34542
34745
  });
34543
- var giftingRenderSchema = z60.object({
34746
+ var giftingRenderSchema = z61.object({
34544
34747
  display: giftingDisplaySchema,
34545
34748
  hydration: giftingHydrationSchema
34546
34749
  });
34547
- var giftingIslandMetaCodec = createZodCodec(z60.object({
34548
- siteId: z60.string().optional(),
34549
- apiBaseUrl: z60.string().optional()
34750
+ var giftingIslandMetaCodec = createZodCodec(z61.object({
34751
+ siteId: z61.string().optional(),
34752
+ apiBaseUrl: z61.string().optional()
34550
34753
  }));
34551
34754
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
34552
34755
  "siteId",
@@ -34717,7 +34920,61 @@ var giftingBlockDefinition = {
34717
34920
  };
34718
34921
 
34719
34922
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
34720
- import { z as z61 } from "zod";
34923
+ import { z as z62 } from "zod";
34924
+
34925
+ // ../blocks/src/system/blocks/newsletter-signup-destination.ts
34926
+ function parseNewsletterSignupBlockId(value) {
34927
+ const trimmed = parseTrimmedString(value);
34928
+ return trimmed && BLOCK_ID_PATTERN.test(trimmed) ? trimmed : null;
34929
+ }
34930
+ function parseSignedNewsletterDestinationRef(value) {
34931
+ const trimmed = parseTrimmedString(value);
34932
+ return trimmed && SIGNED_DESTINATION_REF_PATTERN.test(trimmed) ? trimmed : null;
34933
+ }
34934
+ function parseNewsletterSignupDestinationProvider(value) {
34935
+ return value === "riverbank" || value === "mailchimp" ? value : null;
34936
+ }
34937
+ function buildNewsletterSignupBlockRef(blockId) {
34938
+ const parsed = parseNewsletterSignupBlockId(blockId);
34939
+ return parsed ? { tag: "block_ref", blockId: parsed } : null;
34940
+ }
34941
+ function normalizeNewsletterSignupEditorValuesForDestination(values) {
34942
+ const destinationProvider = parseNewsletterSignupDestinationProvider(values.destinationProvider) ?? "riverbank";
34943
+ if (destinationProvider === "mailchimp") {
34944
+ return {
34945
+ destinationProvider,
34946
+ mailchimpAudienceId: values.mailchimpAudienceId,
34947
+ mailchimpTags: values.mailchimpTags
34948
+ };
34949
+ }
34950
+ return {
34951
+ destinationProvider,
34952
+ listId: values.listId,
34953
+ tags: values.tags
34954
+ };
34955
+ }
34956
+ function deriveNewsletterSignupRuntimeSource(values) {
34957
+ const normalized = normalizeNewsletterSignupEditorValuesForDestination(values);
34958
+ if (normalized.destinationProvider === "mailchimp") {
34959
+ return {
34960
+ destinationProvider: "mailchimp",
34961
+ listId: null,
34962
+ tags: null
34963
+ };
34964
+ }
34965
+ return {
34966
+ destinationProvider: "riverbank",
34967
+ listId: parseTrimmedString(normalized.listId),
34968
+ tags: parseTrimmedString(normalized.tags)
34969
+ };
34970
+ }
34971
+ var BLOCK_ID_PATTERN = /^[A-Za-z0-9._:-]{1,200}$/;
34972
+ var SIGNED_DESTINATION_REF_PATTERN = /^[A-Za-z0-9._~-]{16,1000}$/;
34973
+ function parseTrimmedString(value) {
34974
+ if (typeof value !== "string") return null;
34975
+ const trimmed = value.trim();
34976
+ return trimmed.length > 0 ? trimmed : null;
34977
+ }
34721
34978
 
34722
34979
  // ../blocks/src/system/runtime/nodes/newsletter-form.types.ts
34723
34980
  function getPresetFields(preset2, options) {
@@ -34770,49 +35027,65 @@ function withOptionalPhone(fields3, includePhone) {
34770
35027
  }
34771
35028
 
34772
35029
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
34773
- var newsletterPresetSchema = z61.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
34774
- var newsletterFieldSchema = z61.object({
34775
- id: z61.string(),
34776
- type: z61.enum(["email", "text"]),
34777
- label: z61.string(),
34778
- required: z61.boolean(),
34779
- placeholder: z61.string().optional()
34780
- });
34781
- var newsletterSourceSchema = z61.object({
34782
- siteId: z61.string().optional(),
34783
- apiBaseUrl: z61.string().optional(),
34784
- listId: z61.string().nullable().optional(),
35030
+ var newsletterPresetSchema = z62.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
35031
+ var newsletterDestinationProviderSchema = z62.enum(["riverbank", "mailchimp"]);
35032
+ var newsletterFieldSchema = z62.object({
35033
+ id: z62.string(),
35034
+ type: z62.enum(["email", "text"]),
35035
+ label: z62.string(),
35036
+ required: z62.boolean(),
35037
+ placeholder: z62.string().optional()
35038
+ });
35039
+ var newsletterSignupBlockIdSchema = z62.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
35040
+ var signedNewsletterDestinationRefSchema = z62.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
35041
+ var newsletterPublicDestinationRefSchema = z62.discriminatedUnion("tag", [
35042
+ z62.object({
35043
+ tag: z62.literal("block_ref"),
35044
+ blockId: newsletterSignupBlockIdSchema
35045
+ }),
35046
+ z62.object({
35047
+ tag: z62.literal("signed_destination_ref"),
35048
+ token: signedNewsletterDestinationRefSchema
35049
+ })
35050
+ ]);
35051
+ var newsletterSourceSchema = z62.object({
35052
+ blockId: z62.string().nullable().optional(),
35053
+ siteId: z62.string().optional(),
35054
+ apiBaseUrl: z62.string().optional(),
35055
+ listId: z62.string().nullable().optional(),
35056
+ destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
34785
35057
  preset: newsletterPresetSchema.optional(),
34786
- includePhone: z61.boolean().optional(),
34787
- buttonLabel: z61.string().nullable().optional(),
34788
- successMessage: z61.string().nullable().optional(),
34789
- privacyNote: z61.string().nullable().optional(),
34790
- tags: z61.string().nullable().optional(),
34791
- spamProtectionEnabled: z61.boolean().optional(),
34792
- className: z61.string().nullable().optional()
34793
- });
34794
- var newsletterDisplaySchema = z61.object({
34795
- kind: z61.literal("newsletter-form"),
34796
- className: z61.string().nullable(),
34797
- buttonLabel: z61.string(),
34798
- successMessage: z61.string().nullable(),
34799
- privacyNote: z61.string().nullable(),
34800
- fields: z61.array(newsletterFieldSchema)
34801
- });
34802
- var newsletterHydrationSchema = z61.object({
34803
- listId: z61.string().nullable().optional(),
35058
+ includePhone: z62.boolean().optional(),
35059
+ buttonLabel: z62.string().nullable().optional(),
35060
+ successMessage: z62.string().nullable().optional(),
35061
+ privacyNote: z62.string().nullable().optional(),
35062
+ tags: z62.string().nullable().optional(),
35063
+ spamProtectionEnabled: z62.boolean().optional(),
35064
+ className: z62.string().nullable().optional()
35065
+ });
35066
+ var newsletterDisplaySchema = z62.object({
35067
+ kind: z62.literal("newsletter-form"),
35068
+ className: z62.string().nullable(),
35069
+ buttonLabel: z62.string(),
35070
+ successMessage: z62.string().nullable(),
35071
+ privacyNote: z62.string().nullable(),
35072
+ fields: z62.array(newsletterFieldSchema)
35073
+ });
35074
+ var newsletterHydrationSchema = z62.object({
35075
+ destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
35076
+ listId: z62.string().nullable().optional(),
34804
35077
  preset: newsletterPresetSchema,
34805
- includePhone: z61.boolean(),
34806
- tags: z61.string().nullable().optional(),
34807
- spamProtectionEnabled: z61.boolean().optional()
35078
+ includePhone: z62.boolean(),
35079
+ tags: z62.string().nullable().optional(),
35080
+ spamProtectionEnabled: z62.boolean().optional()
34808
35081
  });
34809
- var newsletterRenderSchema = z61.object({
35082
+ var newsletterRenderSchema = z62.object({
34810
35083
  display: newsletterDisplaySchema,
34811
35084
  hydration: newsletterHydrationSchema
34812
35085
  });
34813
- var newsletterIslandMetaCodec = createZodCodec(z61.object({
34814
- siteId: z61.string().optional(),
34815
- apiBaseUrl: z61.string().optional()
35086
+ var newsletterIslandMetaCodec = createZodCodec(z62.object({
35087
+ siteId: z62.string().optional(),
35088
+ apiBaseUrl: z62.string().optional()
34816
35089
  }));
34817
35090
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
34818
35091
  function buildNewsletterDisplay(source) {
@@ -34833,16 +35106,20 @@ var newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
34833
35106
  source: createZodCodec(newsletterSourceSchema),
34834
35107
  render: createZodCodec(newsletterRenderSchema)
34835
35108
  },
34836
- buildRender: (source) => ({
34837
- display: buildNewsletterDisplay(source),
34838
- hydration: {
34839
- listId: source.listId,
34840
- preset: source.preset ?? "emailOnly",
34841
- includePhone: source.includePhone ?? false,
34842
- tags: source.tags ?? null,
34843
- spamProtectionEnabled: source.spamProtectionEnabled
34844
- }
34845
- })
35109
+ buildRender: (source) => {
35110
+ const runtimeSource = deriveNewsletterSignupRuntimeSource(source);
35111
+ return {
35112
+ display: buildNewsletterDisplay(source),
35113
+ hydration: {
35114
+ destinationRef: buildNewsletterSignupBlockRef(source.blockId),
35115
+ listId: runtimeSource.listId,
35116
+ preset: source.preset ?? "emailOnly",
35117
+ includePhone: source.includePhone ?? false,
35118
+ tags: runtimeSource.tags,
35119
+ spamProtectionEnabled: source.spamProtectionEnabled
35120
+ }
35121
+ };
35122
+ }
34846
35123
  });
34847
35124
  var newsletterFormInteractiveIslandPropsCodec = createInteractiveIslandCodec({
34848
35125
  runtime: newsletterFormBlockRuntime,
@@ -34854,6 +35131,20 @@ var newsletterFormInteractiveIslandPropsCodec = createInteractiveIslandCodec({
34854
35131
  apiBaseUrl: value.apiBaseUrl
34855
35132
  })
34856
35133
  });
35134
+ function parseRequiredNewsletterSignupBlockId(value) {
35135
+ const parsed = parseNewsletterSignupBlockId(value);
35136
+ if (!parsed) {
35137
+ throw new Error("Newsletter signup block destination ref requires blockId");
35138
+ }
35139
+ return parsed;
35140
+ }
35141
+ function parseRequiredSignedNewsletterDestinationRef(value) {
35142
+ const parsed = parseSignedNewsletterDestinationRef(value);
35143
+ if (!parsed) {
35144
+ throw new Error("Newsletter signup signed destination ref requires token");
35145
+ }
35146
+ return parsed;
35147
+ }
34857
35148
 
34858
35149
  // ../blocks/src/system/blocks/newsletter-signup.ts
34859
35150
  var stackedComposition = composeFragments([
@@ -34933,23 +35224,23 @@ var newsletterSignupBlockDefinition = {
34933
35224
  };
34934
35225
 
34935
35226
  // ../blocks/src/system/blocks/team-members.ts
34936
- import { z as z62 } from "zod";
35227
+ import { z as z63 } from "zod";
34937
35228
  var ITEM_NAME2 = "member";
34938
35229
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
34939
35230
  message: "Team member photos must be image media"
34940
35231
  }).nullable();
34941
- var teamMemberDataSchema = z62.object({
34942
- _type: z62.literal("teamMember"),
34943
- id: z62.string(),
34944
- name: z62.string(),
34945
- role: z62.string().nullable(),
34946
- roleLabel: z62.string().nullable(),
34947
- bio: z62.string().nullable(),
34948
- summary: z62.string().nullable(),
35232
+ var teamMemberDataSchema = z63.object({
35233
+ _type: z63.literal("teamMember"),
35234
+ id: z63.string(),
35235
+ name: z63.string(),
35236
+ role: z63.string().nullable(),
35237
+ roleLabel: z63.string().nullable(),
35238
+ bio: z63.string().nullable(),
35239
+ summary: z63.string().nullable(),
34949
35240
  photo: teamMemberPhotoSchema,
34950
- profilePath: z62.string().nullable()
35241
+ profilePath: z63.string().nullable()
34951
35242
  });
34952
- var teamMembersDataSchema = z62.array(teamMemberDataSchema);
35243
+ var teamMembersDataSchema = z63.array(teamMemberDataSchema);
34953
35244
  var dynamicSourceWhen = { equals: "site_staff" };
34954
35245
  var manualSourceWhen = { equals: "site_staff", not: true };
34955
35246
  var headingNode = text(
@@ -37647,34 +37938,34 @@ import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
37647
37938
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
37648
37939
 
37649
37940
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
37650
- import { z as z63 } from "zod";
37651
- var themeBridgeConfigSchema = z63.object({
37652
- tokens: z63.record(z63.string(), z63.string()),
37653
- typography: z63.object({
37654
- headingFamily: z63.string().optional(),
37655
- bodyFamily: z63.string().optional(),
37656
- headingWeight: z63.number().optional(),
37657
- bodyWeight: z63.number().optional()
37941
+ import { z as z64 } from "zod";
37942
+ var themeBridgeConfigSchema = z64.object({
37943
+ tokens: z64.record(z64.string(), z64.string()),
37944
+ typography: z64.object({
37945
+ headingFamily: z64.string().optional(),
37946
+ bodyFamily: z64.string().optional(),
37947
+ headingWeight: z64.number().optional(),
37948
+ bodyWeight: z64.number().optional()
37658
37949
  }).optional(),
37659
- spacing: z63.enum(["comfortable", "standard", "dense"]).optional(),
37660
- corners: z63.enum(["square", "soft", "rounded", "pill"]).optional(),
37661
- shadows: z63.enum(["none", "low", "medium", "high"]).optional(),
37662
- components: z63.object({
37663
- buttons: z63.union([
37664
- z63.boolean(),
37665
- z63.object({
37666
- variants: z63.array(z63.enum(["primary", "secondary", "outline", "ghost"])).optional()
37950
+ spacing: z64.enum(["comfortable", "standard", "dense"]).optional(),
37951
+ corners: z64.enum(["square", "soft", "rounded", "pill"]).optional(),
37952
+ shadows: z64.enum(["none", "low", "medium", "high"]).optional(),
37953
+ components: z64.object({
37954
+ buttons: z64.union([
37955
+ z64.boolean(),
37956
+ z64.object({
37957
+ variants: z64.array(z64.enum(["primary", "secondary", "outline", "ghost"])).optional()
37667
37958
  })
37668
37959
  ]).optional(),
37669
- cards: z63.union([
37670
- z63.boolean(),
37671
- z63.object({
37672
- variants: z63.array(z63.enum(["default", "elevated", "outlined"])).optional()
37960
+ cards: z64.union([
37961
+ z64.boolean(),
37962
+ z64.object({
37963
+ variants: z64.array(z64.enum(["default", "elevated", "outlined"])).optional()
37673
37964
  })
37674
37965
  ]).optional(),
37675
- inputs: z63.boolean().optional()
37966
+ inputs: z64.boolean().optional()
37676
37967
  }).optional(),
37677
- overrides: z63.record(z63.string(), z63.string()).optional()
37968
+ overrides: z64.record(z64.string(), z64.string()).optional()
37678
37969
  }).passthrough();
37679
37970
 
37680
37971
  // ../theme-core/src/siteChrome.tsx
@@ -37700,17 +37991,17 @@ var SUPPORTED_LOADER_ENDPOINTS = [
37700
37991
  function unsafeRetypeZodSchema(schema) {
37701
37992
  return schema;
37702
37993
  }
37703
- var navIdListSchema = z64.preprocess((value) => {
37994
+ var navIdListSchema = z65.preprocess((value) => {
37704
37995
  if (!Array.isArray(value)) return void 0;
37705
37996
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
37706
37997
  return filtered.length > 0 ? filtered : void 0;
37707
- }, z64.array(z64.string()).max(200).optional());
37708
- var dashboardNavVisibilityBaseSchema = z64.object({
37709
- mode: z64.enum(["augment", "restrict"]).optional(),
37998
+ }, z65.array(z65.string()).max(200).optional());
37999
+ var dashboardNavVisibilityBaseSchema = z65.object({
38000
+ mode: z65.enum(["augment", "restrict"]).optional(),
37710
38001
  allowIds: navIdListSchema,
37711
38002
  denyIds: navIdListSchema
37712
38003
  }).strip();
37713
- var dashboardNavVisibilityRolesSchema = z64.object({
38004
+ var dashboardNavVisibilityRolesSchema = z65.object({
37714
38005
  administrator: dashboardNavVisibilityBaseSchema.optional(),
37715
38006
  editor: dashboardNavVisibilityBaseSchema.optional(),
37716
38007
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -37718,63 +38009,63 @@ var dashboardNavVisibilityRolesSchema = z64.object({
37718
38009
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
37719
38010
  roles: dashboardNavVisibilityRolesSchema
37720
38011
  }).strip();
37721
- var dashboardNavigationConfigSchema = z64.object({
38012
+ var dashboardNavigationConfigSchema = z65.object({
37722
38013
  siteNav: dashboardNavVisibilitySchema.optional(),
37723
38014
  settingsNav: dashboardNavVisibilitySchema.optional()
37724
38015
  }).strip();
37725
- var dashboardConfigSchema = z64.object({
37726
- previewEditingEnabled: z64.boolean().optional(),
38016
+ var dashboardConfigSchema = z65.object({
38017
+ previewEditingEnabled: z65.boolean().optional(),
37727
38018
  navigation: dashboardNavigationConfigSchema.optional()
37728
38019
  }).strip();
37729
38020
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
37730
38021
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
37731
- var sdkLoaderEndpointSchema = z64.enum(SUPPORTED_LOADER_ENDPOINTS);
37732
- var loaderFallbackScalarSchema = z64.union([
37733
- z64.string(),
37734
- z64.number(),
37735
- z64.boolean(),
37736
- z64.null()
38022
+ var sdkLoaderEndpointSchema = z65.enum(SUPPORTED_LOADER_ENDPOINTS);
38023
+ var loaderFallbackScalarSchema = z65.union([
38024
+ z65.string(),
38025
+ z65.number(),
38026
+ z65.boolean(),
38027
+ z65.null()
37737
38028
  ]);
37738
- var loaderParamBindingSchema = z64.object({
37739
- $bind: z64.object({
37740
- from: z64.string().min(1, "Binding path is required"),
38029
+ var loaderParamBindingSchema = z65.object({
38030
+ $bind: z65.object({
38031
+ from: z65.string().min(1, "Binding path is required"),
37741
38032
  fallback: loaderFallbackScalarSchema.optional()
37742
38033
  })
37743
38034
  });
37744
- var loaderParamValueSchema = z64.union([
37745
- z64.string(),
37746
- z64.number(),
37747
- z64.boolean(),
38035
+ var loaderParamValueSchema = z65.union([
38036
+ z65.string(),
38037
+ z65.number(),
38038
+ z65.boolean(),
37748
38039
  loaderParamBindingSchema
37749
38040
  ]);
37750
- var sdkConfigLoaderSchema = z64.object({
38041
+ var sdkConfigLoaderSchema = z65.object({
37751
38042
  endpoint: sdkLoaderEndpointSchema,
37752
- params: z64.record(z64.string(), loaderParamValueSchema),
37753
- mode: z64.enum(["server", "client"]).default("server")
38043
+ params: z65.record(z65.string(), loaderParamValueSchema),
38044
+ mode: z65.enum(["server", "client"]).default("server")
37754
38045
  });
37755
- var sdkDataLoadersSchema = z64.record(z64.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
37756
- var sdkCustomBlockIdSchema = z64.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38046
+ var sdkDataLoadersSchema = z65.record(z65.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38047
+ var sdkCustomBlockIdSchema = z65.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
37757
38048
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
37758
38049
  }).transform((value) => value);
37759
- var sdkCustomBlockInputSchema = z64.object({
38050
+ var sdkCustomBlockInputSchema = z65.object({
37760
38051
  id: sdkCustomBlockIdSchema,
37761
- title: z64.string().min(1),
37762
- titleSource: z64.union([z64.string().min(1), z64.array(z64.string().min(1)).min(1)]).optional(),
37763
- description: z64.string().optional(),
38052
+ title: z65.string().min(1),
38053
+ titleSource: z65.union([z65.string().min(1), z65.array(z65.string().min(1)).min(1)]).optional(),
38054
+ description: z65.string().optional(),
37764
38055
  category: blockCategoryEnum,
37765
- icon: z64.string().optional(),
37766
- tags: z64.array(z64.string()).optional(),
38056
+ icon: z65.string().optional(),
38057
+ tags: z65.array(z65.string()).optional(),
37767
38058
  fields: fieldDefinitionInputSchema.array().min(1),
37768
38059
  dataLoaders: sdkDataLoadersSchema,
37769
38060
  layout: NodeSchema.optional(),
37770
- variants: z64.record(z64.string().min(1), NodeSchema).optional(),
37771
- defaultVariant: z64.string().min(1).optional(),
37772
- variantOptions: z64.record(
37773
- z64.string().min(1),
37774
- z64.object({
37775
- label: z64.string().min(1).optional(),
37776
- description: z64.string().min(1).optional(),
37777
- icon: z64.string().min(1).optional()
38061
+ variants: z65.record(z65.string().min(1), NodeSchema).optional(),
38062
+ defaultVariant: z65.string().min(1).optional(),
38063
+ variantOptions: z65.record(
38064
+ z65.string().min(1),
38065
+ z65.object({
38066
+ label: z65.string().min(1).optional(),
38067
+ description: z65.string().min(1).optional(),
38068
+ icon: z65.string().min(1).optional()
37778
38069
  })
37779
38070
  ).optional(),
37780
38071
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -37785,7 +38076,7 @@ var sdkCustomBlockInputSchema = z64.object({
37785
38076
  const exists = data.fields.some((field) => field.id === source);
37786
38077
  if (!exists) {
37787
38078
  ctx.addIssue({
37788
- code: z64.ZodIssueCode.custom,
38079
+ code: z65.ZodIssueCode.custom,
37789
38080
  message: `titleSource must reference a valid field ID (got "${source}")`,
37790
38081
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
37791
38082
  });
@@ -37794,7 +38085,7 @@ var sdkCustomBlockInputSchema = z64.object({
37794
38085
  }
37795
38086
  if (data.layout && data.variants) {
37796
38087
  ctx.addIssue({
37797
- code: z64.ZodIssueCode.custom,
38088
+ code: z65.ZodIssueCode.custom,
37798
38089
  message: "Custom block must define either `layout` or `variants`, not both",
37799
38090
  path: ["variants"]
37800
38091
  });
@@ -37803,14 +38094,14 @@ var sdkCustomBlockInputSchema = z64.object({
37803
38094
  const keys = Object.keys(data.variants);
37804
38095
  if (keys.length === 0) {
37805
38096
  ctx.addIssue({
37806
- code: z64.ZodIssueCode.custom,
38097
+ code: z65.ZodIssueCode.custom,
37807
38098
  message: "`variants` must contain at least one variant key",
37808
38099
  path: ["variants"]
37809
38100
  });
37810
38101
  }
37811
38102
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
37812
38103
  ctx.addIssue({
37813
- code: z64.ZodIssueCode.custom,
38104
+ code: z65.ZodIssueCode.custom,
37814
38105
  message: "`defaultVariant` must be a key present in `variants`",
37815
38106
  path: ["defaultVariant"]
37816
38107
  });
@@ -37819,7 +38110,7 @@ var sdkCustomBlockInputSchema = z64.object({
37819
38110
  for (const key of Object.keys(data.variantOptions)) {
37820
38111
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
37821
38112
  ctx.addIssue({
37822
- code: z64.ZodIssueCode.custom,
38113
+ code: z65.ZodIssueCode.custom,
37823
38114
  message: "`variantOptions` key must exist in `variants`",
37824
38115
  path: ["variantOptions", key]
37825
38116
  });
@@ -37828,78 +38119,78 @@ var sdkCustomBlockInputSchema = z64.object({
37828
38119
  }
37829
38120
  }
37830
38121
  });
37831
- var sdkBlockFieldExtensionInputSchema = z64.object({
38122
+ var sdkBlockFieldExtensionInputSchema = z65.object({
37832
38123
  fields: fieldDefinitionInputSchema.array().min(1)
37833
38124
  });
37834
- var sdkBlockFieldExtensionsInputSchema = z64.record(
37835
- z64.string().min(1),
38125
+ var sdkBlockFieldExtensionsInputSchema = z65.record(
38126
+ z65.string().min(1),
37836
38127
  sdkBlockFieldExtensionInputSchema
37837
38128
  );
37838
- var sdkThemePaletteSchema = z64.record(z64.string(), z64.string());
37839
- var sdkThemeConfigSchema = z64.object({
38129
+ var sdkThemePaletteSchema = z65.record(z65.string(), z65.string());
38130
+ var sdkThemeConfigSchema = z65.object({
37840
38131
  palette: sdkThemePaletteSchema
37841
38132
  });
37842
- var sdkSectionBackgroundSchema = z64.object({
37843
- id: z64.string().min(1),
37844
- label: z64.string().min(1),
37845
- token: z64.string().min(1)
38133
+ var sdkSectionBackgroundSchema = z65.object({
38134
+ id: z65.string().min(1),
38135
+ label: z65.string().min(1),
38136
+ token: z65.string().min(1)
37846
38137
  });
37847
- var sdkSectionOptionsConfigSchema = z64.object({
37848
- backgroundColor: z64.boolean().optional(),
37849
- backgroundImage: z64.boolean().optional(),
37850
- backgroundGradient: z64.boolean().optional(),
37851
- spacing: z64.union([z64.array(z64.enum(["compact", "default", "spacious"])), z64.boolean()]).optional(),
37852
- textColor: z64.boolean().optional()
38138
+ var sdkSectionOptionsConfigSchema = z65.object({
38139
+ backgroundColor: z65.boolean().optional(),
38140
+ backgroundImage: z65.boolean().optional(),
38141
+ backgroundGradient: z65.boolean().optional(),
38142
+ spacing: z65.union([z65.array(z65.enum(["compact", "default", "spacious"])), z65.boolean()]).optional(),
38143
+ textColor: z65.boolean().optional()
37853
38144
  });
37854
- var sdkContainerOptionsConfigSchema = z64.object({
37855
- maxWidth: z64.union([z64.array(z64.enum(["narrow", "default", "wide", "full"])), z64.boolean()]).optional(),
37856
- alignment: z64.union([z64.array(z64.enum(["left", "center", "right"])), z64.boolean()]).optional()
38145
+ var sdkContainerOptionsConfigSchema = z65.object({
38146
+ maxWidth: z65.union([z65.array(z65.enum(["narrow", "default", "wide", "full"])), z65.boolean()]).optional(),
38147
+ alignment: z65.union([z65.array(z65.enum(["left", "center", "right"])), z65.boolean()]).optional()
37857
38148
  });
37858
- var sdkSiteStyleConfigSchema = z64.object({
37859
- sectionBackgrounds: z64.array(sdkSectionBackgroundSchema).optional(),
38149
+ var sdkSiteStyleConfigSchema = z65.object({
38150
+ sectionBackgrounds: z65.array(sdkSectionBackgroundSchema).optional(),
37860
38151
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
37861
38152
  containerOptions: sdkContainerOptionsConfigSchema.optional()
37862
38153
  });
37863
- var sdkSiteLayoutConfigSchema = z64.object({
37864
- footerBlocks: z64.array(
37865
- z64.object({
37866
- id: z64.string().min(1).optional(),
37867
- kind: z64.string().min(1),
37868
- content: z64.record(z64.string(), z64.unknown()).optional()
38154
+ var sdkSiteLayoutConfigSchema = z65.object({
38155
+ footerBlocks: z65.array(
38156
+ z65.object({
38157
+ id: z65.string().min(1).optional(),
38158
+ kind: z65.string().min(1),
38159
+ content: z65.record(z65.string(), z65.unknown()).optional()
37869
38160
  })
37870
38161
  ).optional()
37871
38162
  });
37872
- var sdkFieldSelectOptionSchema = z64.object({
37873
- value: z64.string(),
37874
- label: z64.string()
38163
+ var sdkFieldSelectOptionSchema = z65.object({
38164
+ value: z65.string(),
38165
+ label: z65.string()
37875
38166
  });
37876
- var sdkBlockFieldConfigSchema = z64.object({
37877
- options: z64.array(sdkFieldSelectOptionSchema).optional()
38167
+ var sdkBlockFieldConfigSchema = z65.object({
38168
+ options: z65.array(sdkFieldSelectOptionSchema).optional()
37878
38169
  });
37879
- var sdkBlockFieldOptionsMapSchema = z64.record(
37880
- z64.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38170
+ var sdkBlockFieldOptionsMapSchema = z65.record(
38171
+ z65.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
37881
38172
  message: "Block ID must be 'block.*' or 'custom.*' format"
37882
38173
  }),
37883
- z64.record(z64.string().min(1), sdkBlockFieldConfigSchema)
38174
+ z65.record(z65.string().min(1), sdkBlockFieldConfigSchema)
37884
38175
  ).optional();
37885
- var sdkContentTypeTemplateConfigSchema = z64.object({
37886
- blocks: z64.array(z64.unknown())
38176
+ var sdkContentTypeTemplateConfigSchema = z65.object({
38177
+ blocks: z65.array(z65.unknown())
37887
38178
  }).passthrough();
37888
- var sdkContentTypeOrderingConfigSchema = z64.object({
37889
- mode: z64.enum(["default", "manual"]).optional()
38179
+ var sdkContentTypeOrderingConfigSchema = z65.object({
38180
+ mode: z65.enum(["default", "manual"]).optional()
37890
38181
  }).optional();
37891
- var sdkContentTypeConfigSchema = z64.object({
37892
- key: z64.string().min(1),
37893
- fields: z64.array(z64.unknown()),
38182
+ var sdkContentTypeConfigSchema = z65.object({
38183
+ key: z65.string().min(1),
38184
+ fields: z65.array(z65.unknown()),
37894
38185
  ordering: sdkContentTypeOrderingConfigSchema,
37895
38186
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
37896
38187
  }).passthrough();
37897
- var sdkContentConfigSchema = z64.object({
37898
- contentTypes: z64.array(sdkContentTypeConfigSchema).optional(),
37899
- pages: z64.array(z64.unknown()).optional(),
37900
- entries: z64.array(z64.unknown()).optional(),
37901
- navigationMenus: z64.array(z64.unknown()).optional(),
37902
- settings: z64.unknown().optional()
38188
+ var sdkContentConfigSchema = z65.object({
38189
+ contentTypes: z65.array(sdkContentTypeConfigSchema).optional(),
38190
+ pages: z65.array(z65.unknown()).optional(),
38191
+ entries: z65.array(z65.unknown()).optional(),
38192
+ navigationMenus: z65.array(z65.unknown()).optional(),
38193
+ settings: z65.unknown().optional()
37903
38194
  }).passthrough();
37904
38195
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
37905
38196
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -37914,62 +38205,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
37914
38205
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
37915
38206
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
37916
38207
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
37917
- var sdkWorkflowIdSchema = z64.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38208
+ var sdkWorkflowIdSchema = z65.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
37918
38209
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
37919
38210
  });
37920
- var sdkWorkflowEndpointSchema = z64.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 "/"' });
37921
- var sdkWorkflowManualTriggerSchema = z64.object({
37922
- type: z64.literal("manual")
38211
+ var sdkWorkflowEndpointSchema = z65.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
38212
+ var sdkWorkflowManualTriggerSchema = z65.object({
38213
+ type: z65.literal("manual")
37923
38214
  }).strict();
37924
- var sdkWorkflowTriggerFieldSchema = z64.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38215
+ var sdkWorkflowTriggerFieldSchema = z65.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
37925
38216
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
37926
38217
  });
37927
- var sdkWorkflowFieldChangedConditionSchema = z64.object({
38218
+ var sdkWorkflowFieldChangedConditionSchema = z65.object({
37928
38219
  field: sdkWorkflowTriggerFieldSchema,
37929
- changed: z64.literal(true)
38220
+ changed: z65.literal(true)
37930
38221
  }).strict();
37931
- var sdkWorkflowFieldEmptyConditionSchema = z64.object({
38222
+ var sdkWorkflowFieldEmptyConditionSchema = z65.object({
37932
38223
  field: sdkWorkflowTriggerFieldSchema,
37933
- isEmpty: z64.boolean()
38224
+ isEmpty: z65.boolean()
37934
38225
  }).strict();
37935
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z64.object({
37936
- type: z64.literal("entry.draft.updated"),
37937
- when: z64.array(
37938
- z64.union([
38226
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z65.object({
38227
+ type: z65.literal("entry.draft.updated"),
38228
+ when: z65.array(
38229
+ z65.union([
37939
38230
  sdkWorkflowFieldChangedConditionSchema,
37940
38231
  sdkWorkflowFieldEmptyConditionSchema
37941
38232
  ])
37942
38233
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
37943
38234
  }).strict();
37944
- var sdkWorkflowTriggerSchema = z64.discriminatedUnion("type", [
38235
+ var sdkWorkflowTriggerSchema = z65.discriminatedUnion("type", [
37945
38236
  sdkWorkflowManualTriggerSchema,
37946
38237
  sdkWorkflowEntryDraftUpdatedTriggerSchema
37947
38238
  ]);
37948
- var sdkWorkflowConfirmationSchema = z64.object({
37949
- title: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
37950
- body: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38239
+ var sdkWorkflowConfirmationSchema = z65.object({
38240
+ title: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38241
+ body: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
37951
38242
  }).strict();
37952
- var sdkWorkflowConfigSchema = z64.object({
38243
+ var sdkWorkflowConfigSchema = z65.object({
37953
38244
  id: sdkWorkflowIdSchema,
37954
- title: z64.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
37955
- description: z64.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
37956
- contentType: z64.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38245
+ title: z65.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38246
+ description: z65.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38247
+ contentType: z65.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
37957
38248
  endpoint: sdkWorkflowEndpointSchema,
37958
- triggers: z64.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38249
+ triggers: z65.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
37959
38250
  confirmation: sdkWorkflowConfirmationSchema.optional()
37960
38251
  }).strict();
37961
- var sdkWorkflowsSchema = z64.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38252
+ var sdkWorkflowsSchema = z65.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
37962
38253
  const ids = workflows.map((workflow) => workflow.id);
37963
38254
  return ids.length === new Set(ids).size;
37964
38255
  }, { message: "Workflow IDs must be unique" }).optional();
37965
- var riverbankSiteConfigInputSchema = z64.object({
37966
- siteId: z64.string().uuid(),
37967
- previewUrl: z64.string().url().optional(),
37968
- liveUrl: z64.string().url().optional(),
38256
+ var riverbankSiteConfigInputSchema = z65.object({
38257
+ siteId: z65.string().uuid(),
38258
+ previewUrl: z65.string().url().optional(),
38259
+ liveUrl: z65.string().url().optional(),
37969
38260
  theme: sdkThemeConfigSchema.optional(),
37970
38261
  styles: sdkSiteStyleConfigSchema.optional(),
37971
38262
  layout: sdkSiteLayoutConfigSchema.optional(),
37972
- customBlocks: z64.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38263
+ customBlocks: z65.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
37973
38264
  const ids = blocks.map((b) => b.id);
37974
38265
  return ids.length === new Set(ids).size;
37975
38266
  }, { message: "Block IDs must be unique" }).optional(),
@@ -37977,50 +38268,50 @@ var riverbankSiteConfigInputSchema = z64.object({
37977
38268
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
37978
38269
  workflows: sdkWorkflowsSchema,
37979
38270
  content: sdkContentConfigSchema.optional(),
37980
- contentDir: z64.string().optional(),
37981
- sync: z64.object({
37982
- existingEntries: z64.enum(["skip", "update"]).optional()
38271
+ contentDir: z65.string().optional(),
38272
+ sync: z65.object({
38273
+ existingEntries: z65.enum(["skip", "update"]).optional()
37983
38274
  }).optional(),
37984
- deploy: z64.object({
37985
- verifyCommand: z64.string().optional(),
37986
- prebuildOutput: z64.string().optional()
38275
+ deploy: z65.object({
38276
+ verifyCommand: z65.string().optional(),
38277
+ prebuildOutput: z65.string().optional()
37987
38278
  }).optional(),
37988
- themeSource: z64.enum(["local", "cms"]).optional(),
37989
- activeTheme: z64.string().optional(),
37990
- enablePortal: z64.boolean().optional(),
38279
+ themeSource: z65.enum(["local", "cms"]).optional(),
38280
+ activeTheme: z65.string().optional(),
38281
+ enablePortal: z65.boolean().optional(),
37991
38282
  dashboard: dashboardConfigSchema.optional()
37992
38283
  }).strict();
37993
- var pushSdkConfigBodySchema = z64.object({
38284
+ var pushSdkConfigBodySchema = z65.object({
37994
38285
  config: riverbankSiteConfigInputSchema,
37995
- forceContentTypes: z64.boolean().optional()
38286
+ forceContentTypes: z65.boolean().optional()
37996
38287
  }).strict();
37997
38288
 
37998
38289
  // ../api/src/siteOnboarding.ts
37999
- import { z as z65 } from "zod";
38290
+ import { z as z66 } from "zod";
38000
38291
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
38001
38292
  configure_appointments: {
38002
38293
  requirementId: "configure_appointments",
38003
38294
  reason: "launch_anyway"
38004
38295
  }
38005
38296
  };
38006
- var acknowledgeLaunchRequirementRequestSchema = z65.discriminatedUnion(
38297
+ var acknowledgeLaunchRequirementRequestSchema = z66.discriminatedUnion(
38007
38298
  "requirementId",
38008
38299
  [
38009
- z65.object({
38010
- requirementId: z65.literal("review_generated_site")
38300
+ z66.object({
38301
+ requirementId: z66.literal("review_generated_site")
38011
38302
  }),
38012
- z65.object({
38013
- requirementId: z65.literal(
38303
+ z66.object({
38304
+ requirementId: z66.literal(
38014
38305
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
38015
38306
  ),
38016
- overrideReason: z65.literal(
38307
+ overrideReason: z66.literal(
38017
38308
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
38018
38309
  )
38019
38310
  })
38020
38311
  ]
38021
38312
  );
38022
- var goLiveSiteRequestSchema = z65.object({
38023
- acceptExtraSiteCharge: z65.boolean().optional()
38313
+ var goLiveSiteRequestSchema = z66.object({
38314
+ acceptExtraSiteCharge: z66.boolean().optional()
38024
38315
  });
38025
38316
 
38026
38317
  // ../surfaces/src/index.ts
@@ -38104,7 +38395,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
38104
38395
  ];
38105
38396
 
38106
38397
  // ../api/src/bookingVerticals.ts
38107
- import { z as z66 } from "zod";
38398
+ import { z as z67 } from "zod";
38108
38399
  var VERTICAL_IDS = [
38109
38400
  "yoga_wellness",
38110
38401
  "fitness_pt",
@@ -38269,39 +38560,39 @@ function getSiteVerticalConfigIssues(rawConfig, config) {
38269
38560
  }
38270
38561
  return [...issues];
38271
38562
  }
38272
- var VerticalIdSchema = z66.string().trim().transform((value, ctx) => {
38563
+ var VerticalIdSchema = z67.string().trim().transform((value, ctx) => {
38273
38564
  const parsed = parseVerticalId(value);
38274
38565
  if (!parsed) {
38275
38566
  ctx.addIssue({
38276
- code: z66.ZodIssueCode.custom,
38567
+ code: z67.ZodIssueCode.custom,
38277
38568
  message: "Unknown booking vertical"
38278
38569
  });
38279
- return z66.NEVER;
38570
+ return z67.NEVER;
38280
38571
  }
38281
38572
  return parsed;
38282
38573
  });
38283
- var VerticalPresetIdSchema = z66.string().trim().transform((value, ctx) => {
38574
+ var VerticalPresetIdSchema = z67.string().trim().transform((value, ctx) => {
38284
38575
  const parsed = parseVerticalPresetId(value);
38285
38576
  if (!parsed) {
38286
38577
  ctx.addIssue({
38287
- code: z66.ZodIssueCode.custom,
38578
+ code: z67.ZodIssueCode.custom,
38288
38579
  message: "Unknown booking preset"
38289
38580
  });
38290
- return z66.NEVER;
38581
+ return z67.NEVER;
38291
38582
  }
38292
38583
  return parsed;
38293
38584
  });
38294
- var BookingVerticalConfigSchema = z66.object({
38585
+ var BookingVerticalConfigSchema = z67.object({
38295
38586
  verticalId: VerticalIdSchema.nullable(),
38296
- selectedPresetIds: z66.array(VerticalPresetIdSchema).max(20)
38587
+ selectedPresetIds: z67.array(VerticalPresetIdSchema).max(20)
38297
38588
  }).transform((value, ctx) => {
38298
38589
  const resolved = resolveSiteVerticalBookingConfig(value);
38299
38590
  if (resolved.kind === "invalid") {
38300
38591
  ctx.addIssue({
38301
- code: z66.ZodIssueCode.custom,
38592
+ code: z67.ZodIssueCode.custom,
38302
38593
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
38303
38594
  });
38304
- return z66.NEVER;
38595
+ return z67.NEVER;
38305
38596
  }
38306
38597
  return resolved.config;
38307
38598
  });
@@ -38328,51 +38619,51 @@ function isRecord7(value) {
38328
38619
  }
38329
38620
 
38330
38621
  // ../api/src/appointmentSetup.ts
38331
- import { z as z67 } from "zod";
38622
+ import { z as z68 } from "zod";
38332
38623
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
38333
- var appointmentSetupRefSchema = z67.discriminatedUnion("kind", [
38334
- z67.object({ kind: z67.literal("existing"), id: z67.string().min(1) }),
38335
- z67.object({ kind: z67.literal("new"), draftId: z67.string().min(1) })
38624
+ var appointmentSetupRefSchema = z68.discriminatedUnion("kind", [
38625
+ z68.object({ kind: z68.literal("existing"), id: z68.string().min(1) }),
38626
+ z68.object({ kind: z68.literal("new"), draftId: z68.string().min(1) })
38336
38627
  ]);
38337
- var appointmentSetupVenueChoiceSchema = z67.discriminatedUnion("kind", [
38338
- z67.object({ kind: z67.literal("none") }),
38339
- z67.object({ kind: z67.literal("existing"), venueId: z67.string().min(1) }),
38340
- z67.object({
38341
- kind: z67.literal("create"),
38342
- draftId: z67.string().min(1),
38343
- title: z67.string().trim().min(1),
38344
- description: z67.string().nullable(),
38345
- timezone: z67.string().trim().min(1).nullable(),
38346
- addressJson: z67.record(z67.string(), z67.unknown()),
38347
- locationJson: z67.object({ lat: z67.number(), lng: z67.number() }).nullable()
38628
+ var appointmentSetupVenueChoiceSchema = z68.discriminatedUnion("kind", [
38629
+ z68.object({ kind: z68.literal("none") }),
38630
+ z68.object({ kind: z68.literal("existing"), venueId: z68.string().min(1) }),
38631
+ z68.object({
38632
+ kind: z68.literal("create"),
38633
+ draftId: z68.string().min(1),
38634
+ title: z68.string().trim().min(1),
38635
+ description: z68.string().nullable(),
38636
+ timezone: z68.string().trim().min(1).nullable(),
38637
+ addressJson: z68.record(z68.string(), z68.unknown()),
38638
+ locationJson: z68.object({ lat: z68.number(), lng: z68.number() }).nullable()
38348
38639
  })
38349
38640
  ]);
38350
- var appointmentSetupPaymentDraftSchema = z67.object({
38351
- priceType: z67.union([z67.literal("free"), z67.literal("paid")])
38352
- });
38353
- var appointmentSetupServiceAssignmentDraftSchema = z67.discriminatedUnion("kind", [
38354
- z67.object({ kind: z67.literal("all_practitioners") }),
38355
- z67.object({
38356
- kind: z67.literal("selected_practitioners"),
38357
- resourceRefs: z67.array(appointmentSetupRefSchema)
38641
+ var appointmentSetupPaymentDraftSchema = z68.object({
38642
+ priceType: z68.union([z68.literal("free"), z68.literal("paid")])
38643
+ });
38644
+ var appointmentSetupServiceAssignmentDraftSchema = z68.discriminatedUnion("kind", [
38645
+ z68.object({ kind: z68.literal("all_practitioners") }),
38646
+ z68.object({
38647
+ kind: z68.literal("selected_practitioners"),
38648
+ resourceRefs: z68.array(appointmentSetupRefSchema)
38358
38649
  })
38359
38650
  ]);
38360
- var appointmentSetupServiceDraftSchema = z67.object({
38651
+ var appointmentSetupServiceDraftSchema = z68.object({
38361
38652
  ref: appointmentSetupRefSchema,
38362
- title: z67.string().trim().min(1),
38363
- description: z67.string().nullable(),
38364
- durationMinutes: z67.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38365
- prepMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38366
- cleanupMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38367
- priceAmount: z67.number().int().nonnegative().nullable(),
38368
- isActive: z67.boolean(),
38369
- locationType: z67.union([
38370
- z67.literal("virtual"),
38371
- z67.literal("in_person"),
38372
- z67.literal("hybrid")
38653
+ title: z68.string().trim().min(1),
38654
+ description: z68.string().nullable(),
38655
+ durationMinutes: z68.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38656
+ prepMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38657
+ cleanupMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38658
+ priceAmount: z68.number().int().nonnegative().nullable(),
38659
+ isActive: z68.boolean(),
38660
+ locationType: z68.union([
38661
+ z68.literal("virtual"),
38662
+ z68.literal("in_person"),
38663
+ z68.literal("hybrid")
38373
38664
  ]),
38374
38665
  venue: appointmentSetupVenueChoiceSchema,
38375
- timezone: z67.string().trim().min(1).nullable(),
38666
+ timezone: z68.string().trim().min(1).nullable(),
38376
38667
  payment: appointmentSetupPaymentDraftSchema,
38377
38668
  assignment: appointmentSetupServiceAssignmentDraftSchema
38378
38669
  }).superRefine((service, ctx) => {
@@ -38391,49 +38682,49 @@ var appointmentSetupServiceDraftSchema = z67.object({
38391
38682
  });
38392
38683
  }
38393
38684
  });
38394
- var appointmentSetupPractitionerDraftSchema = z67.object({
38685
+ var appointmentSetupPractitionerDraftSchema = z68.object({
38395
38686
  ref: appointmentSetupRefSchema,
38396
- displayName: z67.string().trim().min(1),
38397
- bio: z67.string().nullable(),
38398
- timezone: z67.string().trim().min(1),
38399
- colorHex: z67.string().nullable()
38400
- });
38401
- var appointmentSetupWeeklyWindowDraftSchema = z67.object({
38402
- weekday: z67.number().int().min(0).max(6),
38403
- startTime: z67.string(),
38404
- endTime: z67.string()
38405
- });
38406
- var appointmentSetupStartTimePolicyDraftSchema = z67.discriminatedUnion("kind", [
38407
- z67.object({ kind: z67.literal("automatic_spacing") }),
38408
- z67.object({
38409
- kind: z67.literal("regular_interval"),
38410
- intervalMinutes: z67.union([
38411
- z67.literal(10),
38412
- z67.literal(15),
38413
- z67.literal(20),
38414
- z67.literal(30),
38415
- z67.literal(45),
38416
- z67.literal(60)
38687
+ displayName: z68.string().trim().min(1),
38688
+ bio: z68.string().nullable(),
38689
+ timezone: z68.string().trim().min(1),
38690
+ colorHex: z68.string().nullable()
38691
+ });
38692
+ var appointmentSetupWeeklyWindowDraftSchema = z68.object({
38693
+ weekday: z68.number().int().min(0).max(6),
38694
+ startTime: z68.string(),
38695
+ endTime: z68.string()
38696
+ });
38697
+ var appointmentSetupStartTimePolicyDraftSchema = z68.discriminatedUnion("kind", [
38698
+ z68.object({ kind: z68.literal("automatic_spacing") }),
38699
+ z68.object({
38700
+ kind: z68.literal("regular_interval"),
38701
+ intervalMinutes: z68.union([
38702
+ z68.literal(10),
38703
+ z68.literal(15),
38704
+ z68.literal(20),
38705
+ z68.literal(30),
38706
+ z68.literal(45),
38707
+ z68.literal(60)
38417
38708
  ])
38418
38709
  })
38419
38710
  ]);
38420
- var appointmentSetupAvailabilityDraftSchema = z67.object({
38421
- kind: z67.literal("weekly_windows"),
38711
+ var appointmentSetupAvailabilityDraftSchema = z68.object({
38712
+ kind: z68.literal("weekly_windows"),
38422
38713
  resourceRef: appointmentSetupRefSchema,
38423
38714
  serviceRef: appointmentSetupRefSchema.nullable(),
38424
- windows: z67.array(appointmentSetupWeeklyWindowDraftSchema),
38715
+ windows: z68.array(appointmentSetupWeeklyWindowDraftSchema),
38425
38716
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
38426
38717
  });
38427
38718
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
38428
38719
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
38429
- var appointmentSetupBookingNoticeSchema = z67.object({
38430
- minLeadMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38431
- maxBookingNoticeMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38432
- });
38433
- var applyAppointmentSetupRequestSchema = z67.object({
38434
- services: z67.array(appointmentSetupServiceDraftSchema),
38435
- practitioners: z67.array(appointmentSetupPractitionerDraftSchema),
38436
- availability: z67.array(appointmentSetupAvailabilityDraftSchema),
38720
+ var appointmentSetupBookingNoticeSchema = z68.object({
38721
+ minLeadMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38722
+ maxBookingNoticeMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38723
+ });
38724
+ var applyAppointmentSetupRequestSchema = z68.object({
38725
+ services: z68.array(appointmentSetupServiceDraftSchema),
38726
+ practitioners: z68.array(appointmentSetupPractitionerDraftSchema),
38727
+ availability: z68.array(appointmentSetupAvailabilityDraftSchema),
38437
38728
  bookingNotice: appointmentSetupBookingNoticeSchema
38438
38729
  });
38439
38730
 
@@ -38466,24 +38757,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
38466
38757
  ];
38467
38758
 
38468
38759
  // ../api/src/siteBanner.ts
38469
- import { z as z68 } from "zod";
38760
+ import { z as z69 } from "zod";
38470
38761
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
38471
38762
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
38472
38763
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
38473
38764
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
38474
- var siteBannerScopeSchema = z68.enum(SITE_BANNER_SCOPE_VALUES);
38475
- var siteBannerToneSchema = z68.enum(SITE_BANNER_TONE_VALUES);
38476
- var siteBannerBodySchema = z68.unknown().transform(unwrapRichTextValue);
38477
- var siteBannerCtaSchema = z68.object({
38478
- label: z68.string().trim().min(1),
38765
+ var siteBannerScopeSchema = z69.enum(SITE_BANNER_SCOPE_VALUES);
38766
+ var siteBannerToneSchema = z69.enum(SITE_BANNER_TONE_VALUES);
38767
+ var siteBannerBodySchema = z69.unknown().transform(unwrapRichTextValue);
38768
+ var siteBannerCtaSchema = z69.object({
38769
+ label: z69.string().trim().min(1),
38479
38770
  link: linkPayloadSchema
38480
38771
  });
38481
- var siteBannerSettingsSchema = z68.discriminatedUnion("enabled", [
38482
- z68.object({
38483
- enabled: z68.literal(false)
38772
+ var siteBannerSettingsSchema = z69.discriminatedUnion("enabled", [
38773
+ z69.object({
38774
+ enabled: z69.literal(false)
38484
38775
  }),
38485
- z68.object({
38486
- enabled: z68.literal(true),
38776
+ z69.object({
38777
+ enabled: z69.literal(true),
38487
38778
  scope: siteBannerScopeSchema,
38488
38779
  tone: siteBannerToneSchema,
38489
38780
  body: siteBannerBodySchema,
@@ -38497,7 +38788,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
38497
38788
  const analysis = analyzeSiteBannerBody(value.body);
38498
38789
  for (const issue of analysis.issues) {
38499
38790
  ctx.addIssue({
38500
- code: z68.ZodIssueCode.custom,
38791
+ code: z69.ZodIssueCode.custom,
38501
38792
  path: ["body"],
38502
38793
  message: siteBannerBodyIssueMessage(issue)
38503
38794
  });
@@ -38804,75 +39095,75 @@ function unsafeAsNavigationMenuIdentifier(identifier) {
38804
39095
  var MAIN_NAVIGATION_MENU_IDENTIFIER = unsafeAsNavigationMenuIdentifier("main");
38805
39096
 
38806
39097
  // ../api/src/aiPlayground.ts
38807
- import { z as z69 } from "zod";
38808
- var Rfc6902PatchOp = z69.discriminatedUnion("op", [
39098
+ import { z as z70 } from "zod";
39099
+ var Rfc6902PatchOp = z70.discriminatedUnion("op", [
38809
39100
  // Standard RFC-6902 operations
38810
- z69.object({
38811
- op: z69.literal("add"),
38812
- path: z69.string(),
38813
- value: z69.unknown()
39101
+ z70.object({
39102
+ op: z70.literal("add"),
39103
+ path: z70.string(),
39104
+ value: z70.unknown()
38814
39105
  }),
38815
- z69.object({
38816
- op: z69.literal("remove"),
38817
- path: z69.string()
39106
+ z70.object({
39107
+ op: z70.literal("remove"),
39108
+ path: z70.string()
38818
39109
  }),
38819
- z69.object({
38820
- op: z69.literal("replace"),
38821
- path: z69.string(),
38822
- value: z69.unknown()
39110
+ z70.object({
39111
+ op: z70.literal("replace"),
39112
+ path: z70.string(),
39113
+ value: z70.unknown()
38823
39114
  }),
38824
- z69.object({
38825
- op: z69.literal("move"),
38826
- from: z69.string(),
38827
- path: z69.string()
39115
+ z70.object({
39116
+ op: z70.literal("move"),
39117
+ from: z70.string(),
39118
+ path: z70.string()
38828
39119
  }),
38829
- z69.object({
38830
- op: z69.literal("copy"),
38831
- from: z69.string(),
38832
- path: z69.string()
39120
+ z70.object({
39121
+ op: z70.literal("copy"),
39122
+ from: z70.string(),
39123
+ path: z70.string()
38833
39124
  }),
38834
39125
  // Block-level operations (Phase 2)
38835
- z69.object({
38836
- op: z69.literal("add_block"),
38837
- blockKind: z69.string(),
38838
- afterBlockId: z69.string().nullable(),
38839
- content: z69.record(z69.string(), z69.unknown()),
38840
- rationale: z69.string()
39126
+ z70.object({
39127
+ op: z70.literal("add_block"),
39128
+ blockKind: z70.string(),
39129
+ afterBlockId: z70.string().nullable(),
39130
+ content: z70.record(z70.string(), z70.unknown()),
39131
+ rationale: z70.string()
38841
39132
  }),
38842
- z69.object({
38843
- op: z69.literal("delete_block"),
38844
- blockId: z69.string(),
38845
- rationale: z69.string()
39133
+ z70.object({
39134
+ op: z70.literal("delete_block"),
39135
+ blockId: z70.string(),
39136
+ rationale: z70.string()
38846
39137
  }),
38847
- z69.object({
38848
- op: z69.literal("reorder_block"),
38849
- blockId: z69.string(),
38850
- afterBlockId: z69.string().nullable(),
38851
- rationale: z69.string()
39138
+ z70.object({
39139
+ op: z70.literal("reorder_block"),
39140
+ blockId: z70.string(),
39141
+ afterBlockId: z70.string().nullable(),
39142
+ rationale: z70.string()
38852
39143
  })
38853
39144
  ]);
38854
- var PlaygroundProposeRequest = z69.object({
38855
- request: z69.string().min(1).max(2e3)
39145
+ var PlaygroundProposeRequest = z70.object({
39146
+ request: z70.string().min(1).max(2e3)
38856
39147
  });
38857
- var MultiPagePatchEnvelope = z69.object({
38858
- pageId: z69.string(),
38859
- blockId: z69.string().optional(),
39148
+ var MultiPagePatchEnvelope = z70.object({
39149
+ pageId: z70.string(),
39150
+ blockId: z70.string().optional(),
38860
39151
  // Not present for page-level ops
38861
- blockKind: z69.string().optional(),
38862
- blockPurpose: z69.string().optional().nullable(),
38863
- ops: z69.array(Rfc6902PatchOp),
38864
- rationale: z69.string(),
38865
- currentContent: z69.record(z69.string(), z69.unknown()).optional()
39152
+ blockKind: z70.string().optional(),
39153
+ blockPurpose: z70.string().optional().nullable(),
39154
+ ops: z70.array(Rfc6902PatchOp),
39155
+ rationale: z70.string(),
39156
+ currentContent: z70.record(z70.string(), z70.unknown()).optional()
38866
39157
  });
38867
- var MultiPageUpdateResponse = z69.object({
38868
- patches: z69.array(MultiPagePatchEnvelope),
38869
- assistantMessage: z69.string(),
38870
- pagesModified: z69.number(),
38871
- toolCallsUsed: z69.number()
39158
+ var MultiPageUpdateResponse = z70.object({
39159
+ patches: z70.array(MultiPagePatchEnvelope),
39160
+ assistantMessage: z70.string(),
39161
+ pagesModified: z70.number(),
39162
+ toolCallsUsed: z70.number()
38872
39163
  });
38873
39164
 
38874
39165
  // src/config/content-validation.ts
38875
- import { z as z70 } from "zod";
39166
+ import { z as z71 } from "zod";
38876
39167
 
38877
39168
  // src/types/block-kinds.ts
38878
39169
  var SYSTEM_BLOCK_KINDS = [
@@ -39016,36 +39307,36 @@ function describeInvalidBindingTransform(transform) {
39016
39307
  }
39017
39308
 
39018
39309
  // src/config/content-validation.ts
39019
- var jsonDataSchema = z70.record(z70.string(), z70.any());
39020
- var contentTypeKeySchema = z70.string().min(1).regex(
39310
+ var jsonDataSchema = z71.record(z71.string(), z71.any());
39311
+ var contentTypeKeySchema = z71.string().min(1).regex(
39021
39312
  /^[a-z][a-z0-9-]*$/,
39022
39313
  "Key must be lowercase, start with a letter, and contain only letters, numbers, and hyphens"
39023
39314
  );
39024
- var templateConfigSchemaForward = z70.object({
39025
- blocks: z70.array(
39026
- z70.object({
39027
- identifier: z70.string().min(1),
39028
- kind: z70.string(),
39029
- scope: z70.enum(["entry", "template"]),
39030
- bindings: z70.record(z70.string(), z70.any()).optional(),
39031
- content: z70.record(z70.string(), z70.any()).optional()
39315
+ var templateConfigSchemaForward = z71.object({
39316
+ blocks: z71.array(
39317
+ z71.object({
39318
+ identifier: z71.string().min(1),
39319
+ kind: z71.string(),
39320
+ scope: z71.enum(["entry", "template"]),
39321
+ bindings: z71.record(z71.string(), z71.any()).optional(),
39322
+ content: z71.record(z71.string(), z71.any()).optional()
39032
39323
  })
39033
39324
  )
39034
39325
  }).optional();
39035
- var contentTypeOrderingSchema = z70.object({
39036
- mode: z70.enum(["default", "manual"]).optional()
39326
+ var contentTypeOrderingSchema = z71.object({
39327
+ mode: z71.enum(["default", "manual"]).optional()
39037
39328
  }).optional();
39038
- var contentTypeConfigSchema = z70.object({
39329
+ var contentTypeConfigSchema = z71.object({
39039
39330
  key: contentTypeKeySchema,
39040
- name: z70.string().min(1),
39041
- description: z70.string().optional(),
39042
- hasPages: z70.boolean(),
39043
- routePattern: z70.string().optional(),
39331
+ name: z71.string().min(1),
39332
+ description: z71.string().optional(),
39333
+ hasPages: z71.boolean(),
39334
+ routePattern: z71.string().optional(),
39044
39335
  // Fields are validated as unknown[] here - deep field validation happens in @riverbankcms/blocks
39045
- fields: z70.array(z70.any()).min(1, "At least one field is required"),
39046
- titleField: z70.string().optional(),
39336
+ fields: z71.array(z71.any()).min(1, "At least one field is required"),
39337
+ titleField: z71.string().optional(),
39047
39338
  ordering: contentTypeOrderingSchema,
39048
- isSingleton: z70.boolean().optional().default(false),
39339
+ isSingleton: z71.boolean().optional().default(false),
39049
39340
  template: templateConfigSchemaForward
39050
39341
  }).refine(
39051
39342
  (data) => {
@@ -39067,7 +39358,7 @@ var contentTypeConfigSchema = z70.object({
39067
39358
  }
39068
39359
  if (!data.routePattern) {
39069
39360
  ctx.addIssue({
39070
- code: z70.ZodIssueCode.custom,
39361
+ code: z71.ZodIssueCode.custom,
39071
39362
  path: ["routePattern"],
39072
39363
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39073
39364
  });
@@ -39076,7 +39367,7 @@ var contentTypeConfigSchema = z70.object({
39076
39367
  const parseResult = safeParseRouteTemplate(data.routePattern);
39077
39368
  if (!parseResult.success) {
39078
39369
  ctx.addIssue({
39079
- code: z70.ZodIssueCode.custom,
39370
+ code: z71.ZodIssueCode.custom,
39080
39371
  path: ["routePattern"],
39081
39372
  message: describeRouteTemplateParseError(parseResult.error)
39082
39373
  });
@@ -39084,44 +39375,44 @@ var contentTypeConfigSchema = z70.object({
39084
39375
  }
39085
39376
  if (!data.isSingleton && parseResult.routeTemplate.kind !== "slug-template") {
39086
39377
  ctx.addIssue({
39087
- code: z70.ZodIssueCode.custom,
39378
+ code: z71.ZodIssueCode.custom,
39088
39379
  path: ["routePattern"],
39089
39380
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39090
39381
  });
39091
39382
  }
39092
39383
  });
39093
- var fieldBindingSchema = z70.object({
39094
- source: z70.literal("field"),
39095
- path: z70.string().min(1, "Field path is required")
39384
+ var fieldBindingSchema = z71.object({
39385
+ source: z71.literal("field"),
39386
+ path: z71.string().min(1, "Field path is required")
39096
39387
  });
39097
- var metaBindingSchema = z70.object({
39098
- source: z70.literal("meta"),
39099
- path: z70.enum(TEMPLATE_BINDING_META_PATHS, {
39388
+ var metaBindingSchema = z71.object({
39389
+ source: z71.literal("meta"),
39390
+ path: z71.enum(TEMPLATE_BINDING_META_PATHS, {
39100
39391
  error: (issue) => describeInvalidTemplateBindingMetaPath(String(issue.input))
39101
39392
  })
39102
39393
  });
39103
- var literalBindingSchema = z70.object({
39104
- source: z70.literal("literal"),
39105
- value: z70.unknown()
39394
+ var literalBindingSchema = z71.object({
39395
+ source: z71.literal("literal"),
39396
+ value: z71.unknown()
39106
39397
  });
39107
- var transformBindingSchema = z70.object({
39108
- source: z70.literal("transform"),
39109
- path: z70.string().min(1, "Transform path is required"),
39110
- transform: z70.enum(BINDING_TRANSFORM_VALUES, {
39398
+ var transformBindingSchema = z71.object({
39399
+ source: z71.literal("transform"),
39400
+ path: z71.string().min(1, "Transform path is required"),
39401
+ transform: z71.enum(BINDING_TRANSFORM_VALUES, {
39111
39402
  error: (issue) => describeInvalidBindingTransform(String(issue.input))
39112
39403
  })
39113
39404
  });
39114
- var baseBindingSchema = z70.discriminatedUnion("source", [
39405
+ var baseBindingSchema = z71.discriminatedUnion("source", [
39115
39406
  fieldBindingSchema,
39116
39407
  metaBindingSchema,
39117
39408
  literalBindingSchema,
39118
39409
  transformBindingSchema
39119
39410
  ]);
39120
- var fallbackBindingSchema = z70.object({
39121
- source: z70.literal("fallback"),
39122
- sources: z70.array(z70.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39411
+ var fallbackBindingSchema = z71.object({
39412
+ source: z71.literal("fallback"),
39413
+ sources: z71.array(z71.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39123
39414
  });
39124
- var bindingSourceSchema = z70.union([
39415
+ var bindingSourceSchema = z71.union([
39125
39416
  baseBindingSchema,
39126
39417
  fallbackBindingSchema
39127
39418
  ]);
@@ -39135,12 +39426,12 @@ function isValidBlockKind(kind) {
39135
39426
  return false;
39136
39427
  }
39137
39428
  var BLOCK_KIND_ERROR_MESSAGE = 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.myBlock")';
39138
- var blockKindSchema = z70.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39139
- var templateBlockConfigSchema = z70.object({
39140
- identifier: z70.string().min(1, "Block identifier is required"),
39429
+ var blockKindSchema = z71.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39430
+ var templateBlockConfigSchema = z71.object({
39431
+ identifier: z71.string().min(1, "Block identifier is required"),
39141
39432
  kind: blockKindSchema,
39142
- scope: z70.enum(["entry", "template"]),
39143
- bindings: z70.record(z70.string(), bindingSourceSchema).optional(),
39433
+ scope: z71.enum(["entry", "template"]),
39434
+ bindings: z71.record(z71.string(), bindingSourceSchema).optional(),
39144
39435
  content: jsonDataSchema.optional()
39145
39436
  }).refine(
39146
39437
  (data) => {
@@ -39159,8 +39450,8 @@ var templateBlockConfigSchema = z70.object({
39159
39450
  },
39160
39451
  { message: "Template-scoped blocks should define static content, not bindings" }
39161
39452
  );
39162
- var templateConfigSchema = z70.object({
39163
- blocks: z70.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39453
+ var templateConfigSchema = z71.object({
39454
+ blocks: z71.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39164
39455
  }).refine(
39165
39456
  (data) => {
39166
39457
  const identifiers = data.blocks.map((b) => b.identifier);
@@ -39169,77 +39460,77 @@ var templateConfigSchema = z70.object({
39169
39460
  },
39170
39461
  { message: "Template block identifiers must be unique" }
39171
39462
  );
39172
- var blockConfigSchema = z70.object({
39463
+ var blockConfigSchema = z71.object({
39173
39464
  kind: blockKindSchema,
39174
39465
  content: jsonDataSchema,
39175
- orderIndex: z70.number().optional()
39176
- });
39177
- var pageConfigSchema = z70.object({
39178
- identifier: z70.string().min(1, "Identifier is required"),
39179
- title: z70.string().min(1, "Title is required"),
39180
- path: z70.string().regex(/^\//, "Path must start with /"),
39181
- purpose: z70.string().default("content"),
39182
- blocks: z70.array(blockConfigSchema).optional(),
39183
- status: z70.enum(["draft", "published"]).default("draft"),
39184
- metaTitle: z70.string().optional(),
39185
- metaDescription: z70.string().optional()
39186
- });
39187
- var entryConfigSchema = z70.object({
39188
- identifier: z70.string().min(1, "Identifier is required"),
39189
- contentType: z70.string().min(1, "Content type is required"),
39466
+ orderIndex: z71.number().optional()
39467
+ });
39468
+ var pageConfigSchema = z71.object({
39469
+ identifier: z71.string().min(1, "Identifier is required"),
39470
+ title: z71.string().min(1, "Title is required"),
39471
+ path: z71.string().regex(/^\//, "Path must start with /"),
39472
+ purpose: z71.string().default("content"),
39473
+ blocks: z71.array(blockConfigSchema).optional(),
39474
+ status: z71.enum(["draft", "published"]).default("draft"),
39475
+ metaTitle: z71.string().optional(),
39476
+ metaDescription: z71.string().optional()
39477
+ });
39478
+ var entryConfigSchema = z71.object({
39479
+ identifier: z71.string().min(1, "Identifier is required"),
39480
+ contentType: z71.string().min(1, "Content type is required"),
39190
39481
  data: jsonDataSchema,
39191
- status: z70.enum(["draft", "published"]).default("draft"),
39192
- slug: z70.string().optional(),
39193
- summary: z70.string().optional(),
39482
+ status: z71.enum(["draft", "published"]).default("draft"),
39483
+ slug: z71.string().optional(),
39484
+ summary: z71.string().optional(),
39194
39485
  // Hard remove legacy config-only titles: titles must live in entry `data`.
39195
- title: z70.any().optional().refine((value) => value === void 0, {
39486
+ title: z71.any().optional().refine((value) => value === void 0, {
39196
39487
  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."
39197
39488
  }),
39198
- metaTitle: z70.string().optional(),
39199
- metaDescription: z70.string().optional()
39489
+ metaTitle: z71.string().optional(),
39490
+ metaDescription: z71.string().optional()
39200
39491
  });
39201
- var dropdownLinkSchema = z70.object({
39202
- kind: z70.literal("dropdown")
39492
+ var dropdownLinkSchema = z71.object({
39493
+ kind: z71.literal("dropdown")
39203
39494
  });
39204
- var navigationLinkSchema = z70.discriminatedUnion("kind", [
39495
+ var navigationLinkSchema = z71.discriminatedUnion("kind", [
39205
39496
  ...navigationLinkInputSchemaOptions,
39206
39497
  dropdownLinkSchema
39207
39498
  ]);
39208
- var baseNavigationItemSchema = z70.object({
39209
- label: z70.string().min(1, "Label is required"),
39499
+ var baseNavigationItemSchema = z71.object({
39500
+ label: z71.string().min(1, "Label is required"),
39210
39501
  link: navigationLinkSchema,
39211
- isCta: z70.boolean().optional()
39502
+ isCta: z71.boolean().optional()
39212
39503
  });
39213
39504
  var navigationItemConfigSchema = baseNavigationItemSchema.extend({
39214
- children: z70.lazy(() => z70.array(navigationItemConfigSchema)).optional()
39215
- });
39216
- var navigationMenuConfigSchema = z70.object({
39217
- identifier: z70.string().min(1, "Identifier is required"),
39218
- name: z70.string().min(1, "Name is required"),
39219
- isPrimary: z70.boolean().optional(),
39220
- isFooter: z70.boolean().optional(),
39221
- items: z70.array(navigationItemConfigSchema)
39505
+ children: z71.lazy(() => z71.array(navigationItemConfigSchema)).optional()
39506
+ });
39507
+ var navigationMenuConfigSchema = z71.object({
39508
+ identifier: z71.string().min(1, "Identifier is required"),
39509
+ name: z71.string().min(1, "Name is required"),
39510
+ isPrimary: z71.boolean().optional(),
39511
+ isFooter: z71.boolean().optional(),
39512
+ items: z71.array(navigationItemConfigSchema)
39222
39513
  }).superRefine((menu, ctx) => {
39223
39514
  const portalStats = collectPortalLinkStats(
39224
39515
  menu.items
39225
39516
  );
39226
39517
  if (portalStats.count > 1) {
39227
39518
  ctx.addIssue({
39228
- code: z70.ZodIssueCode.custom,
39519
+ code: z71.ZodIssueCode.custom,
39229
39520
  message: "Only one portal link is allowed per navigation menu",
39230
39521
  path: ["items"]
39231
39522
  });
39232
39523
  }
39233
39524
  if (portalStats.nestedLabels.length > 0) {
39234
39525
  ctx.addIssue({
39235
- code: z70.ZodIssueCode.custom,
39526
+ code: z71.ZodIssueCode.custom,
39236
39527
  message: `Portal links must be root-level items: ${portalStats.nestedLabels.join(", ")}`,
39237
39528
  path: ["items"]
39238
39529
  });
39239
39530
  }
39240
39531
  if (portalStats.withChildrenLabels.length > 0) {
39241
39532
  ctx.addIssue({
39242
- code: z70.ZodIssueCode.custom,
39533
+ code: z71.ZodIssueCode.custom,
39243
39534
  message: `Portal links cannot contain child items: ${portalStats.withChildrenLabels.join(", ")}`,
39244
39535
  path: ["items"]
39245
39536
  });
@@ -39249,44 +39540,44 @@ var navigationMenuConfigSchema = z70.object({
39249
39540
  );
39250
39541
  if (cartStats.nestedLabels.length > 0) {
39251
39542
  ctx.addIssue({
39252
- code: z70.ZodIssueCode.custom,
39543
+ code: z71.ZodIssueCode.custom,
39253
39544
  message: `Cart links must be root-level items: ${cartStats.nestedLabels.join(", ")}`,
39254
39545
  path: ["items"]
39255
39546
  });
39256
39547
  }
39257
39548
  if (cartStats.withChildrenLabels.length > 0) {
39258
39549
  ctx.addIssue({
39259
- code: z70.ZodIssueCode.custom,
39550
+ code: z71.ZodIssueCode.custom,
39260
39551
  message: `Cart links cannot contain child items: ${cartStats.withChildrenLabels.join(", ")}`,
39261
39552
  path: ["items"]
39262
39553
  });
39263
39554
  }
39264
39555
  if (cartStats.ctaLabels.length > 0) {
39265
39556
  ctx.addIssue({
39266
- code: z70.ZodIssueCode.custom,
39557
+ code: z71.ZodIssueCode.custom,
39267
39558
  message: `Cart links cannot be marked as CTA: ${cartStats.ctaLabels.join(", ")}`,
39268
39559
  path: ["items"]
39269
39560
  });
39270
39561
  }
39271
39562
  if (cartStats.missingVisibleTextLabels.length > 0) {
39272
39563
  ctx.addIssue({
39273
- code: z70.ZodIssueCode.custom,
39564
+ code: z71.ZodIssueCode.custom,
39274
39565
  message: `Cart links with icon-with-label must provide a visible label: ${cartStats.missingVisibleTextLabels.join(", ")}`,
39275
39566
  path: ["items"]
39276
39567
  });
39277
39568
  }
39278
39569
  });
39279
- var siteSettingsConfigSchema = z70.object({
39280
- homepagePath: z70.string().optional(),
39281
- siteTitle: z70.string().optional(),
39282
- siteDescription: z70.string().optional(),
39283
- defaultTemplates: z70.record(z70.string(), z70.string()).optional()
39570
+ var siteSettingsConfigSchema = z71.object({
39571
+ homepagePath: z71.string().optional(),
39572
+ siteTitle: z71.string().optional(),
39573
+ siteDescription: z71.string().optional(),
39574
+ defaultTemplates: z71.record(z71.string(), z71.string()).optional()
39284
39575
  });
39285
- var contentConfigBaseSchema = z70.object({
39286
- contentTypes: z70.array(contentTypeConfigSchema).optional(),
39287
- entries: z70.array(entryConfigSchema).optional(),
39288
- pages: z70.array(pageConfigSchema).optional(),
39289
- navigationMenus: z70.array(navigationMenuConfigSchema).optional(),
39576
+ var contentConfigBaseSchema = z71.object({
39577
+ contentTypes: z71.array(contentTypeConfigSchema).optional(),
39578
+ entries: z71.array(entryConfigSchema).optional(),
39579
+ pages: z71.array(pageConfigSchema).optional(),
39580
+ navigationMenus: z71.array(navigationMenuConfigSchema).optional(),
39290
39581
  settings: siteSettingsConfigSchema.optional()
39291
39582
  });
39292
39583
  var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
@@ -39295,7 +39586,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39295
39586
  const duplicateKeys = keys.filter((key, i) => keys.indexOf(key) !== i);
39296
39587
  if (duplicateKeys.length > 0) {
39297
39588
  ctx.addIssue({
39298
- code: z70.ZodIssueCode.custom,
39589
+ code: z71.ZodIssueCode.custom,
39299
39590
  message: `Content type keys must be unique. Duplicates: ${duplicateKeys.join(", ")}`,
39300
39591
  path: ["contentTypes"]
39301
39592
  });
@@ -39306,7 +39597,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39306
39597
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39307
39598
  if (duplicateIds.length > 0) {
39308
39599
  ctx.addIssue({
39309
- code: z70.ZodIssueCode.custom,
39600
+ code: z71.ZodIssueCode.custom,
39310
39601
  message: `Page identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39311
39602
  path: ["pages"]
39312
39603
  });
@@ -39315,7 +39606,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39315
39606
  const duplicatePaths = paths.filter((path, i) => paths.indexOf(path) !== i);
39316
39607
  if (duplicatePaths.length > 0) {
39317
39608
  ctx.addIssue({
39318
- code: z70.ZodIssueCode.custom,
39609
+ code: z71.ZodIssueCode.custom,
39319
39610
  message: `Page paths must be unique. Duplicates: ${duplicatePaths.join(", ")}`,
39320
39611
  path: ["pages"]
39321
39612
  });
@@ -39326,7 +39617,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39326
39617
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39327
39618
  if (duplicateIds.length > 0) {
39328
39619
  ctx.addIssue({
39329
- code: z70.ZodIssueCode.custom,
39620
+ code: z71.ZodIssueCode.custom,
39330
39621
  message: `Entry identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39331
39622
  path: ["entries"]
39332
39623
  });
@@ -39337,7 +39628,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39337
39628
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39338
39629
  if (duplicateIds.length > 0) {
39339
39630
  ctx.addIssue({
39340
- code: z70.ZodIssueCode.custom,
39631
+ code: z71.ZodIssueCode.custom,
39341
39632
  message: `Navigation menu identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39342
39633
  path: ["navigationMenus"]
39343
39634
  });
@@ -39351,7 +39642,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39351
39642
  const entriesForType = data.entries.filter((e) => e.contentType === singletonKey);
39352
39643
  if (entriesForType.length > 1) {
39353
39644
  ctx.addIssue({
39354
- code: z70.ZodIssueCode.custom,
39645
+ code: z71.ZodIssueCode.custom,
39355
39646
  message: `Singleton content type "${singletonKey}" cannot have more than one entry. Found ${entriesForType.length} entries.`,
39356
39647
  path: ["entries"]
39357
39648
  });
@@ -39464,18 +39755,18 @@ function validateLayout(layout) {
39464
39755
  }
39465
39756
 
39466
39757
  // src/config/dashboard-validation.ts
39467
- import { z as z71 } from "zod";
39468
- var navIdListSchema2 = z71.preprocess((value) => {
39758
+ import { z as z72 } from "zod";
39759
+ var navIdListSchema2 = z72.preprocess((value) => {
39469
39760
  if (!Array.isArray(value)) return void 0;
39470
39761
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
39471
39762
  return filtered.length > 0 ? filtered : void 0;
39472
- }, z71.array(z71.string()).max(200, "Maximum 200 nav IDs").optional());
39473
- var dashboardNavVisibilityBaseSchema2 = z71.object({
39474
- mode: z71.enum(["augment", "restrict"]).optional(),
39763
+ }, z72.array(z72.string()).max(200, "Maximum 200 nav IDs").optional());
39764
+ var dashboardNavVisibilityBaseSchema2 = z72.object({
39765
+ mode: z72.enum(["augment", "restrict"]).optional(),
39475
39766
  allowIds: navIdListSchema2,
39476
39767
  denyIds: navIdListSchema2
39477
39768
  }).strip();
39478
- var dashboardNavVisibilityRolesSchema2 = z71.object({
39769
+ var dashboardNavVisibilityRolesSchema2 = z72.object({
39479
39770
  administrator: dashboardNavVisibilityBaseSchema2.optional(),
39480
39771
  editor: dashboardNavVisibilityBaseSchema2.optional(),
39481
39772
  team_member: dashboardNavVisibilityBaseSchema2.optional()
@@ -39483,43 +39774,28 @@ var dashboardNavVisibilityRolesSchema2 = z71.object({
39483
39774
  var dashboardNavVisibilitySchema2 = dashboardNavVisibilityBaseSchema2.extend({
39484
39775
  roles: dashboardNavVisibilityRolesSchema2
39485
39776
  }).strip();
39486
- var dashboardNavigationConfigSchema2 = z71.object({
39777
+ var dashboardNavigationConfigSchema2 = z72.object({
39487
39778
  siteNav: dashboardNavVisibilitySchema2.optional(),
39488
39779
  settingsNav: dashboardNavVisibilitySchema2.optional()
39489
39780
  }).strip();
39490
- var dashboardConfigSchema2 = z71.object({
39491
- previewEditingEnabled: z71.boolean().optional(),
39781
+ var dashboardConfigSchema2 = z72.object({
39782
+ previewEditingEnabled: z72.boolean().optional(),
39492
39783
  navigation: dashboardNavigationConfigSchema2.optional()
39493
39784
  }).strip();
39494
39785
 
39495
39786
  // src/zod/titleSourceSchema.ts
39496
- import { z as z72 } from "zod";
39497
- var titleSourceValueSchema = z72.union([
39498
- z72.string().min(1),
39499
- z72.array(z72.string().min(1)).min(1)
39787
+ import { z as z73 } from "zod";
39788
+ var titleSourceValueSchema = z73.union([
39789
+ z73.string().min(1),
39790
+ z73.array(z73.string().min(1)).min(1)
39500
39791
  ]);
39501
39792
 
39502
- // src/data/prefetchBlockData.ts
39503
- var SUPPORTED_LOADER_ENDPOINTS2 = [
39504
- "listPublishedEntries",
39505
- "getPublishedEntryPreview",
39506
- "listPublicEvents",
39507
- "listPublicCourses",
39508
- "listPublicTeamMembers",
39509
- "listPublicProducts",
39510
- "listPublicPasses",
39511
- "listPublicMemberships",
39512
- "getPublicFormById",
39513
- "getPublicBookingServices",
39514
- "getPublicEventDetails"
39515
- ];
39516
-
39517
39793
  // src/config/validation.ts
39518
- var sdkThemePaletteSchema2 = z73.record(z73.string(), z73.string());
39519
- var sdkThemeConfigSchema2 = z73.object({
39794
+ var sdkThemePaletteSchema2 = z74.record(z74.string(), z74.string());
39795
+ var sdkThemeConfigSchema2 = z74.object({
39520
39796
  palette: sdkThemePaletteSchema2
39521
39797
  });
39522
- var sdkSiteUrlSchema = z73.string().url("Must be a valid URL").refine((url) => {
39798
+ var sdkSiteUrlSchema = z74.string().url("Must be a valid URL").refine((url) => {
39523
39799
  try {
39524
39800
  const parsed = new URL(url);
39525
39801
  const isLocal = parsed.hostname === "localhost" || parsed.hostname.endsWith(".localhost") || parsed.hostname.endsWith(".local") || parsed.hostname.endsWith(".test");
@@ -39528,97 +39804,97 @@ var sdkSiteUrlSchema = z73.string().url("Must be a valid URL").refine((url) => {
39528
39804
  return false;
39529
39805
  }
39530
39806
  }, { message: "Production URLs must use HTTPS" }).transform((url) => url.replace(/\/$/, ""));
39531
- var sectionBackgroundSchema = z73.object({
39532
- id: z73.string(),
39533
- label: z73.string(),
39534
- token: z73.string()
39807
+ var sectionBackgroundSchema = z74.object({
39808
+ id: z74.string(),
39809
+ label: z74.string(),
39810
+ token: z74.string()
39535
39811
  // Reference to theme palette token
39536
39812
  });
39537
- var sectionSpacingSchema = z73.enum(["compact", "default", "spacious"]);
39538
- var containerMaxWidthSchema = z73.enum(["narrow", "default", "wide", "full"]);
39539
- var containerAlignmentSchema = z73.enum(["left", "center", "right"]);
39540
- var sectionOptionsSchema = z73.object({
39541
- backgroundColor: z73.boolean().optional(),
39542
- backgroundImage: z73.boolean().optional(),
39543
- backgroundGradient: z73.boolean().optional(),
39544
- spacing: z73.union([
39545
- z73.array(sectionSpacingSchema),
39546
- z73.boolean()
39813
+ var sectionSpacingSchema = z74.enum(["compact", "default", "spacious"]);
39814
+ var containerMaxWidthSchema = z74.enum(["narrow", "default", "wide", "full"]);
39815
+ var containerAlignmentSchema = z74.enum(["left", "center", "right"]);
39816
+ var sectionOptionsSchema = z74.object({
39817
+ backgroundColor: z74.boolean().optional(),
39818
+ backgroundImage: z74.boolean().optional(),
39819
+ backgroundGradient: z74.boolean().optional(),
39820
+ spacing: z74.union([
39821
+ z74.array(sectionSpacingSchema),
39822
+ z74.boolean()
39547
39823
  ]).optional(),
39548
- textColor: z73.boolean().optional()
39824
+ textColor: z74.boolean().optional()
39549
39825
  }).optional();
39550
- var containerOptionsSchema = z73.object({
39551
- maxWidth: z73.union([
39552
- z73.array(containerMaxWidthSchema),
39553
- z73.boolean()
39826
+ var containerOptionsSchema = z74.object({
39827
+ maxWidth: z74.union([
39828
+ z74.array(containerMaxWidthSchema),
39829
+ z74.boolean()
39554
39830
  ]).optional(),
39555
- alignment: z73.union([
39556
- z73.array(containerAlignmentSchema),
39557
- z73.boolean()
39831
+ alignment: z74.union([
39832
+ z74.array(containerAlignmentSchema),
39833
+ z74.boolean()
39558
39834
  ]).optional()
39559
39835
  }).optional();
39560
- var siteStyleConfigSchema = z73.object({
39561
- sectionBackgrounds: z73.array(sectionBackgroundSchema).optional(),
39836
+ var siteStyleConfigSchema = z74.object({
39837
+ sectionBackgrounds: z74.array(sectionBackgroundSchema).optional(),
39562
39838
  sectionOptions: sectionOptionsSchema,
39563
39839
  containerOptions: containerOptionsSchema
39564
39840
  }).optional();
39565
- var sdkLoaderEndpointSchema2 = z73.enum(SUPPORTED_LOADER_ENDPOINTS2);
39841
+ var sdkLoaderEndpointSchema2 = z74.enum(SUPPORTED_LOADER_ENDPOINTS);
39566
39842
  var allowedTransformIds = new Set(builtinTransformDefinitions.map((transform) => transform.id));
39567
- var loaderTransformStepSchema = z73.object({
39568
- id: z73.string().refine((id) => allowedTransformIds.has(id), {
39843
+ var loaderTransformStepSchema = z74.object({
39844
+ id: z74.string().refine((id) => allowedTransformIds.has(id), {
39569
39845
  message: "Unknown transform id"
39570
39846
  }),
39571
- options: z73.record(z73.string(), z73.unknown()).optional()
39847
+ options: z74.record(z74.string(), z74.unknown()).optional()
39572
39848
  });
39573
- var loaderParamBindingSchema2 = z73.object({
39574
- $bind: z73.object({
39575
- from: z73.string().min(1, "Binding path is required"),
39849
+ var loaderParamBindingSchema2 = z74.object({
39850
+ $bind: z74.object({
39851
+ from: z74.string().min(1, "Binding path is required"),
39576
39852
  // Loader params are ultimately string-normalized for query strings, so fallbacks should
39577
39853
  // stay scalar. Use transforms (e.g. `value.jsonArray`) when you need to serialize
39578
39854
  // more complex values into a string.
39579
39855
  fallback: loaderFallbackScalarSchema.optional(),
39580
- transforms: z73.array(loaderTransformStepSchema).default([]),
39581
- pick: z73.enum(["value", "collection", "context"]).default("value"),
39582
- coerce: z73.enum(["number", "boolean", "string"]).optional()
39856
+ transforms: z74.array(loaderTransformStepSchema).default([]),
39857
+ pick: z74.enum(["value", "collection", "context"]).default("value"),
39858
+ coerce: z74.enum(["number", "boolean", "string"]).optional()
39583
39859
  })
39584
39860
  });
39585
- var loaderParamValueSchema2 = z73.union([
39586
- z73.string(),
39587
- z73.number(),
39588
- z73.boolean(),
39861
+ var loaderParamValueSchema2 = z74.union([
39862
+ z74.string(),
39863
+ z74.number(),
39864
+ z74.boolean(),
39589
39865
  loaderParamBindingSchema2
39590
39866
  ]);
39591
- var loaderWhenValueSchema = z73.union([
39592
- z73.boolean(),
39867
+ var loaderWhenValueSchema = z74.union([
39868
+ z74.boolean(),
39593
39869
  loaderParamBindingSchema2
39594
39870
  ]);
39595
- var sdkConfigLoaderSchema2 = z73.object({
39871
+ var sdkConfigLoaderSchema2 = z74.object({
39596
39872
  endpoint: sdkLoaderEndpointSchema2,
39597
- params: z73.record(z73.string(), loaderParamValueSchema2),
39598
- mode: z73.enum(["server", "client"]).default("server"),
39873
+ params: z74.record(z74.string(), loaderParamValueSchema2),
39874
+ mode: z74.enum(["server", "client"]).default("server"),
39599
39875
  when: loaderWhenValueSchema.optional()
39600
39876
  });
39601
- var sdkDataLoadersSchema2 = z73.record(z73.string(), sdkConfigLoaderSchema2).refine(
39877
+ var sdkDataLoadersSchema2 = z74.record(z74.string(), sdkConfigLoaderSchema2).refine(
39602
39878
  (loaders) => Object.keys(loaders).length <= 5,
39603
39879
  { message: "Maximum 5 data loaders per block" }
39604
39880
  ).optional();
39605
- var fieldSelectOptionSchema = z73.object({
39606
- value: z73.string().min(1, "Option value is required"),
39607
- label: z73.string().min(1, "Option label is required")
39881
+ var fieldSelectOptionSchema = z74.object({
39882
+ value: z74.string().min(1, "Option value is required"),
39883
+ label: z74.string().min(1, "Option label is required")
39608
39884
  });
39609
- var blockFieldConfigSchema = z73.object({
39610
- options: z73.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
39885
+ var blockFieldConfigSchema = z74.object({
39886
+ options: z74.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
39611
39887
  });
39612
- var blockFieldOptionsSchema = z73.record(
39613
- z73.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
39888
+ var blockFieldOptionsSchema = z74.record(
39889
+ z74.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
39614
39890
  message: "Block ID must be 'block.*' or 'custom.*' format"
39615
39891
  }),
39616
- z73.record(
39617
- z73.string().min(1, "Field ID is required"),
39892
+ z74.record(
39893
+ z74.string().min(1, "Field ID is required"),
39618
39894
  blockFieldConfigSchema
39619
39895
  )
39620
39896
  ).optional();
39621
- var blockFieldExtensionSchema = z73.object({
39897
+ var blockFieldExtensionSchema = z74.object({
39622
39898
  fields: fieldSchema.array().min(1, "At least one field is required")
39623
39899
  }).refine(
39624
39900
  (data) => {
@@ -39632,10 +39908,10 @@ var blockFieldExtensionSchema = z73.object({
39632
39908
  message: "Required fields must have a defaultValue to support existing blocks"
39633
39909
  }
39634
39910
  );
39635
- var blockFieldExtensionsMapSchema = z73.record(
39911
+ var blockFieldExtensionsMapSchema = z74.record(
39636
39912
  // System blocks are kebab-case: block.body-text, block.event-calendar, ...
39637
39913
  // Enforce: lowercase alphanumerics with single hyphens (no trailing hyphen, no consecutive hyphens).
39638
- z73.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
39914
+ z74.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
39639
39915
  message: "Block ID must be 'block.*' format (system blocks only)"
39640
39916
  }),
39641
39917
  blockFieldExtensionSchema
@@ -39651,7 +39927,7 @@ var blockFieldExtensionsMapSchema = z73.record(
39651
39927
  (field) => field.id === collision.fieldId
39652
39928
  );
39653
39929
  ctx.addIssue({
39654
- code: z73.ZodIssueCode.custom,
39930
+ code: z74.ZodIssueCode.custom,
39655
39931
  message: collision.message,
39656
39932
  path: [
39657
39933
  APPOINTMENT_BOOKING_BLOCK_ID,
@@ -39666,24 +39942,24 @@ var blockFieldExtensionsSchema = blockFieldExtensionsMapSchema.optional();
39666
39942
  function collectAppointmentBookingExtensionReservedFieldCollisions(extension) {
39667
39943
  return collectBookingReservedFieldCollisions(extension, { type: "booking" });
39668
39944
  }
39669
- var syncConfigSchema = z73.object({
39670
- existingEntries: z73.enum(["skip", "update"]).optional()
39945
+ var syncConfigSchema = z74.object({
39946
+ existingEntries: z74.enum(["skip", "update"]).optional()
39671
39947
  }).optional();
39672
- var deployConfigSchema = z73.object({
39673
- verifyCommand: z73.string().optional(),
39674
- prebuildOutput: z73.string().optional()
39948
+ var deployConfigSchema = z74.object({
39949
+ verifyCommand: z74.string().optional(),
39950
+ prebuildOutput: z74.string().optional()
39675
39951
  }).optional();
39676
- var sdkCustomBlockSchema = z73.object({
39952
+ var sdkCustomBlockSchema = z74.object({
39677
39953
  // Block ID must start with 'custom.'
39678
- id: z73.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
39954
+ id: z74.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
39679
39955
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
39680
39956
  }),
39681
- title: z73.string().min(1, "Title is required"),
39957
+ title: z74.string().min(1, "Title is required"),
39682
39958
  titleSource: titleSourceValueSchema.optional(),
39683
- description: z73.string().optional(),
39959
+ description: z74.string().optional(),
39684
39960
  category: blockCategoryEnum,
39685
- icon: z73.string().optional(),
39686
- tags: z73.array(z73.string()).optional(),
39961
+ icon: z74.string().optional(),
39962
+ tags: z74.array(z74.string()).optional(),
39687
39963
  // Reuse the exact field schema from @riverbankcms/blocks - all field types supported
39688
39964
  fields: fieldSchema.array().min(1, "Custom blocks must have at least one field"),
39689
39965
  // Data loaders for CMS endpoints
@@ -39691,14 +39967,14 @@ var sdkCustomBlockSchema = z73.object({
39691
39967
  // Optional declarative layout - when present, block can render without React override
39692
39968
  layout: NodeSchema.optional(),
39693
39969
  // Optional variants system (preferred when a block has multiple structural layouts)
39694
- variants: z73.record(z73.string().min(1), NodeSchema).optional(),
39695
- defaultVariant: z73.string().min(1).optional(),
39696
- variantOptions: z73.record(
39697
- z73.string().min(1),
39698
- z73.object({
39699
- label: z73.string().min(1).optional(),
39700
- description: z73.string().min(1).optional(),
39701
- icon: z73.string().min(1).optional()
39970
+ variants: z74.record(z74.string().min(1), NodeSchema).optional(),
39971
+ defaultVariant: z74.string().min(1).optional(),
39972
+ variantOptions: z74.record(
39973
+ z74.string().min(1),
39974
+ z74.object({
39975
+ label: z74.string().min(1).optional(),
39976
+ description: z74.string().min(1).optional(),
39977
+ icon: z74.string().min(1).optional()
39702
39978
  })
39703
39979
  ).optional(),
39704
39980
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -39710,7 +39986,7 @@ var sdkCustomBlockSchema = z73.object({
39710
39986
  const exists = fields3.some((field) => field.id === source);
39711
39987
  if (!exists) {
39712
39988
  ctx.addIssue({
39713
- code: z73.ZodIssueCode.custom,
39989
+ code: z74.ZodIssueCode.custom,
39714
39990
  message: `titleSource must reference a valid field ID (got "${source}")`,
39715
39991
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
39716
39992
  });
@@ -39719,7 +39995,7 @@ var sdkCustomBlockSchema = z73.object({
39719
39995
  }
39720
39996
  if (data.layout && data.variants) {
39721
39997
  ctx.addIssue({
39722
- code: z73.ZodIssueCode.custom,
39998
+ code: z74.ZodIssueCode.custom,
39723
39999
  message: "Custom block must define either `layout` or `variants`, not both",
39724
40000
  path: ["variants"]
39725
40001
  });
@@ -39729,7 +40005,7 @@ var sdkCustomBlockSchema = z73.object({
39729
40005
  if (!result.valid) {
39730
40006
  for (const error of result.errors) {
39731
40007
  ctx.addIssue({
39732
- code: z73.ZodIssueCode.custom,
40008
+ code: z74.ZodIssueCode.custom,
39733
40009
  message: error.message,
39734
40010
  path: ["layout"]
39735
40011
  });
@@ -39740,14 +40016,14 @@ var sdkCustomBlockSchema = z73.object({
39740
40016
  const keys = Object.keys(data.variants);
39741
40017
  if (keys.length === 0) {
39742
40018
  ctx.addIssue({
39743
- code: z73.ZodIssueCode.custom,
40019
+ code: z74.ZodIssueCode.custom,
39744
40020
  message: "`variants` must contain at least one variant key",
39745
40021
  path: ["variants"]
39746
40022
  });
39747
40023
  }
39748
40024
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
39749
40025
  ctx.addIssue({
39750
- code: z73.ZodIssueCode.custom,
40026
+ code: z74.ZodIssueCode.custom,
39751
40027
  message: "`defaultVariant` must be a key present in `variants`",
39752
40028
  path: ["defaultVariant"]
39753
40029
  });
@@ -39757,7 +40033,7 @@ var sdkCustomBlockSchema = z73.object({
39757
40033
  if (!result.valid) {
39758
40034
  for (const error of result.errors) {
39759
40035
  ctx.addIssue({
39760
- code: z73.ZodIssueCode.custom,
40036
+ code: z74.ZodIssueCode.custom,
39761
40037
  message: `${key}: ${error.message}`,
39762
40038
  path: ["variants", key]
39763
40039
  });
@@ -39768,7 +40044,7 @@ var sdkCustomBlockSchema = z73.object({
39768
40044
  for (const key of Object.keys(data.variantOptions)) {
39769
40045
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
39770
40046
  ctx.addIssue({
39771
- code: z73.ZodIssueCode.custom,
40047
+ code: z74.ZodIssueCode.custom,
39772
40048
  message: "`variantOptions` key must exist in `variants`",
39773
40049
  path: ["variantOptions", key]
39774
40050
  });
@@ -39777,58 +40053,58 @@ var sdkCustomBlockSchema = z73.object({
39777
40053
  }
39778
40054
  }
39779
40055
  });
39780
- var themeSourceSchema = z73.enum(["local", "cms"]).optional();
39781
- var activeThemeSchema = z73.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
40056
+ var themeSourceSchema = z74.enum(["local", "cms"]).optional();
40057
+ var activeThemeSchema = z74.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
39782
40058
  message: "Theme name must be lowercase alphanumeric with hyphens/underscores"
39783
40059
  }).max(64, "Theme name too long").optional();
39784
40060
  function isValidConfigBlockKind(kind) {
39785
40061
  if (getBlockDefinition(kind)) return true;
39786
40062
  return /^custom\.[a-z][a-z0-9-]*$/.test(kind);
39787
40063
  }
39788
- var layoutBlockKindSchema = z73.string().refine(isValidConfigBlockKind, {
40064
+ var layoutBlockKindSchema = z74.string().refine(isValidConfigBlockKind, {
39789
40065
  message: 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.my-block")'
39790
40066
  });
39791
- var layoutFooterBlockSchema = z73.object({
39792
- id: z73.string().min(1).optional(),
40067
+ var layoutFooterBlockSchema = z74.object({
40068
+ id: z74.string().min(1).optional(),
39793
40069
  kind: layoutBlockKindSchema,
39794
40070
  // Allow omitted content for blocks that rely on defaults.
39795
- content: z73.record(z73.string(), z73.unknown()).optional()
40071
+ content: z74.record(z74.string(), z74.unknown()).optional()
39796
40072
  }).strict();
39797
- var layoutConfigSchema = z73.object({
39798
- footerBlocks: z73.array(layoutFooterBlockSchema).optional()
40073
+ var layoutConfigSchema = z74.object({
40074
+ footerBlocks: z74.array(layoutFooterBlockSchema).optional()
39799
40075
  }).strict();
39800
- var sdkWorkflowIdSchema2 = z73.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
40076
+ var sdkWorkflowIdSchema2 = z74.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
39801
40077
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
39802
40078
  });
39803
- var sdkWorkflowEndpointSchema2 = z73.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 "/"' });
39804
- var sdkWorkflowTriggerSchema2 = z73.discriminatedUnion("type", [
39805
- z73.object({ type: z73.literal("manual") }).strict()
40079
+ var sdkWorkflowEndpointSchema2 = z74.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
40080
+ var sdkWorkflowTriggerSchema2 = z74.discriminatedUnion("type", [
40081
+ z74.object({ type: z74.literal("manual") }).strict()
39806
40082
  ]);
39807
- var sdkWorkflowConfirmationSchema2 = z73.object({
39808
- title: z73.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
39809
- body: z73.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
40083
+ var sdkWorkflowConfirmationSchema2 = z74.object({
40084
+ title: z74.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
40085
+ body: z74.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
39810
40086
  }).strict();
39811
- var sdkWorkflowConfigSchema2 = z73.object({
40087
+ var sdkWorkflowConfigSchema2 = z74.object({
39812
40088
  id: sdkWorkflowIdSchema2,
39813
- title: z73.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
39814
- description: z73.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
39815
- contentType: z73.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
40089
+ title: z74.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
40090
+ description: z74.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
40091
+ contentType: z74.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
39816
40092
  endpoint: sdkWorkflowEndpointSchema2,
39817
- triggers: z73.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
40093
+ triggers: z74.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
39818
40094
  confirmation: sdkWorkflowConfirmationSchema2.optional()
39819
40095
  }).strict();
39820
- var sdkWorkflowsSchema2 = z73.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
40096
+ var sdkWorkflowsSchema2 = z74.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
39821
40097
  const ids = workflows.map((workflow) => workflow.id);
39822
40098
  return ids.length === new Set(ids).size;
39823
40099
  }, { message: "Workflow IDs must be unique" }).optional();
39824
- var riverbankSiteConfigSchema = z73.object({
39825
- siteId: z73.string().uuid(),
40100
+ var riverbankSiteConfigSchema = z74.object({
40101
+ siteId: z74.string().uuid(),
39826
40102
  previewUrl: sdkSiteUrlSchema.optional(),
39827
40103
  liveUrl: sdkSiteUrlSchema.optional(),
39828
40104
  theme: sdkThemeConfigSchema2.optional(),
39829
40105
  styles: siteStyleConfigSchema,
39830
40106
  layout: layoutConfigSchema.optional(),
39831
- customBlocks: z73.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
40107
+ customBlocks: z74.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
39832
40108
  // Ensure unique block IDs
39833
40109
  (blocks) => {
39834
40110
  const ids = blocks.map((b) => b.id);
@@ -39841,7 +40117,7 @@ var riverbankSiteConfigSchema = z73.object({
39841
40117
  workflows: sdkWorkflowsSchema2,
39842
40118
  content: contentConfigSchema.optional(),
39843
40119
  // CLI-related configuration (Phase 4)
39844
- contentDir: z73.string().optional(),
40120
+ contentDir: z74.string().optional(),
39845
40121
  sync: syncConfigSchema,
39846
40122
  deploy: deployConfigSchema,
39847
40123
  // Theme sync configuration (Phase 5)