@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
@@ -1,5 +1,5 @@
1
1
  // src/config/validation.ts
2
- import { z as z73 } from "zod";
2
+ import { z as z74 } from "zod";
3
3
 
4
4
  // ../api/src/apiEndpointTypes.ts
5
5
  function blockedDemoMutationPolicy(classification, publicMessage) {
@@ -754,6 +754,64 @@ var ENDPOINT_DEFINITIONS = {
754
754
  auth: "user",
755
755
  responseKind: "json"
756
756
  },
757
+ listMailchimpAudiences: {
758
+ path: "/sites/{siteId}/integrations/mailchimp/audiences",
759
+ method: "GET",
760
+ tags: [TAG_TEMPLATES.site],
761
+ auth: "user",
762
+ responseKind: "json",
763
+ errors: ["auth:forbidden", "server:internal_error"]
764
+ },
765
+ getMailchimpSignupSyncHealth: {
766
+ path: "/sites/{siteId}/integrations/mailchimp/signup-sync-health",
767
+ method: "GET",
768
+ tags: [TAG_TEMPLATES.site],
769
+ auth: "user",
770
+ responseKind: "json",
771
+ errors: ["auth:forbidden", "server:internal_error"]
772
+ },
773
+ getMailchimpConnection: {
774
+ path: "/sites/{siteId}/integrations/mailchimp/connection",
775
+ method: "GET",
776
+ tags: [TAG_TEMPLATES.site],
777
+ auth: "user",
778
+ responseKind: "json",
779
+ errors: ["auth:forbidden", "server:internal_error"]
780
+ },
781
+ startMailchimpOAuth: {
782
+ path: "/sites/{siteId}/integrations/mailchimp/oauth/start",
783
+ method: "POST",
784
+ tags: [TAG_TEMPLATES.site],
785
+ auth: "user",
786
+ responseKind: "json",
787
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
788
+ errors: ["auth:forbidden", "validation:invalid_input", "server:internal_error"]
789
+ },
790
+ refreshMailchimpAudiences: {
791
+ path: "/sites/{siteId}/integrations/mailchimp/audiences/refresh",
792
+ method: "POST",
793
+ tags: [TAG_TEMPLATES.site],
794
+ auth: "user",
795
+ responseKind: "json",
796
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
797
+ errors: ["auth:forbidden", "server:internal_error"]
798
+ },
799
+ disconnectMailchimp: {
800
+ path: "/sites/{siteId}/integrations/mailchimp/disconnect",
801
+ method: "POST",
802
+ tags: [TAG_TEMPLATES.site],
803
+ auth: "user",
804
+ responseKind: "json",
805
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
806
+ errors: ["auth:forbidden", "server:internal_error"]
807
+ },
808
+ mailchimpOAuthCallback: {
809
+ path: "/auth/mailchimp/callback",
810
+ method: "GET",
811
+ auth: "public",
812
+ responseKind: "void",
813
+ errors: []
814
+ },
757
815
  createNewsletterList: {
758
816
  path: "/sites/{siteId}/newsletter/lists",
759
817
  method: "POST",
@@ -1755,6 +1813,24 @@ var ENDPOINT_DEFINITIONS = {
1755
1813
  auth: "user",
1756
1814
  responseKind: "json"
1757
1815
  },
1816
+ resendSiteInvitation: {
1817
+ path: "/sites/{siteId}/members/invitations/{invitationId}/resend",
1818
+ method: "POST",
1819
+ errors: [
1820
+ "auth:forbidden",
1821
+ "resource:not_found",
1822
+ "validation:invalid_input",
1823
+ "external:service_error",
1824
+ "server:internal_error"
1825
+ ],
1826
+ tags: [
1827
+ "site-{siteId}",
1828
+ "site-members-{siteId}",
1829
+ "site-invite-{invitationId}"
1830
+ ],
1831
+ auth: "user",
1832
+ responseKind: "json"
1833
+ },
1758
1834
  transferSiteOwnership: {
1759
1835
  path: "/sites/{siteId}/members/transfer-ownership",
1760
1836
  method: "POST",
@@ -2978,20 +3054,6 @@ var ENDPOINT_DEFINITIONS = {
2978
3054
  auth: "user",
2979
3055
  responseKind: "json"
2980
3056
  },
2981
- instagramUploadZip: {
2982
- path: "/instagram/upload-zip",
2983
- method: "POST",
2984
- tags: ["instagram-import"],
2985
- auth: "user",
2986
- responseKind: "json"
2987
- },
2988
- createInstagramZipUploadUrl: {
2989
- path: "/instagram/upload-zip-url",
2990
- method: "POST",
2991
- tags: ["instagram-import"],
2992
- auth: "user",
2993
- responseKind: "json"
2994
- },
2995
3057
  getAnalyticsReport: {
2996
3058
  path: "/sites/{siteId}/analytics/report",
2997
3059
  method: "GET",
@@ -6386,6 +6448,43 @@ function err(error) {
6386
6448
  return { ok: false, error };
6387
6449
  }
6388
6450
 
6451
+ // ../core/src/currency-format.ts
6452
+ var CURRENCY_LOCALE_BY_CODE = {
6453
+ USD: "en-US",
6454
+ GBP: "en-GB",
6455
+ EUR: "de-DE",
6456
+ AUD: "en-AU",
6457
+ CAD: "en-CA",
6458
+ NZD: "en-NZ",
6459
+ JPY: "ja-JP",
6460
+ CNY: "zh-CN",
6461
+ CHF: "de-CH"
6462
+ };
6463
+ function resolveCurrencyLocale(currencyCode, override) {
6464
+ return override ?? CURRENCY_LOCALE_BY_CODE[currencyCode] ?? "en";
6465
+ }
6466
+ function formatCurrencyAmount(amountCents, currency, options) {
6467
+ const currencyCode = currency.toUpperCase();
6468
+ const locale = resolveCurrencyLocale(currencyCode, options?.locale);
6469
+ try {
6470
+ const exactFormatter = new Intl.NumberFormat(locale, {
6471
+ style: "currency",
6472
+ currency: currencyCode
6473
+ });
6474
+ const fractionDigits = options?.decimals === "auto" ? {
6475
+ minimumFractionDigits: 0,
6476
+ maximumFractionDigits: exactFormatter.resolvedOptions().maximumFractionDigits
6477
+ } : {};
6478
+ return new Intl.NumberFormat(locale, {
6479
+ style: "currency",
6480
+ currency: currencyCode,
6481
+ ...fractionDigits
6482
+ }).format(amountCents / 100);
6483
+ } catch {
6484
+ return `${(amountCents / 100).toFixed(2)} ${currencyCode}`;
6485
+ }
6486
+ }
6487
+
6389
6488
  // ../core/src/event-pricing.ts
6390
6489
  function publicEventPricingType(pricing) {
6391
6490
  switch (pricing.kind) {
@@ -6406,6 +6505,7 @@ function isFreePublicEventPriceDisplay(display) {
6406
6505
  return display.display.kind === "free";
6407
6506
  case "exact":
6408
6507
  case "from":
6508
+ case "range":
6409
6509
  case "mixed":
6410
6510
  case "unavailable":
6411
6511
  return false;
@@ -6668,7 +6768,7 @@ var navigationLinkInputSchema = z2.discriminatedUnion(
6668
6768
  );
6669
6769
 
6670
6770
  // ../api/src/sdkConfig/contracts.ts
6671
- import { z as z64 } from "zod";
6771
+ import { z as z65 } from "zod";
6672
6772
 
6673
6773
  // ../blocks/src/system/manifest/augmentManifest.ts
6674
6774
  function augmentManifest(manifest) {
@@ -21826,15 +21926,53 @@ var newsletterFormFragment = defineFragment({
21826
21926
  title: "Newsletter Form",
21827
21927
  description: "Newsletter subscription form with preset field configurations.",
21828
21928
  fields: [
21929
+ {
21930
+ id: "destinationProvider",
21931
+ type: "select",
21932
+ label: "Send signups to",
21933
+ description: "Choose where new subscribers from this form should go.",
21934
+ defaultValue: "riverbank",
21935
+ required: true,
21936
+ ui: { intent: "behavior" },
21937
+ options: [
21938
+ { value: "riverbank", label: "Riverbank newsletter" }
21939
+ ]
21940
+ },
21829
21941
  {
21830
21942
  id: "listId",
21831
21943
  type: "reference",
21832
21944
  label: "Newsletter list",
21833
21945
  description: "Select the list new subscribers should be added to.",
21834
- required: true,
21946
+ required: false,
21835
21947
  referenceKind: "newsletterList",
21836
21948
  allowManualEntry: false,
21837
- ui: { intent: "behavior" }
21949
+ ui: {
21950
+ intent: "behavior",
21951
+ visibleWhen: { field: "destinationProvider", equals: "riverbank" }
21952
+ }
21953
+ },
21954
+ {
21955
+ id: "mailchimpAudienceId",
21956
+ type: "reference",
21957
+ label: "Mailchimp audience",
21958
+ description: "Choose the Mailchimp audience for new subscribers.",
21959
+ required: false,
21960
+ referenceKind: "mailchimpAudience",
21961
+ allowManualEntry: false,
21962
+ ui: {
21963
+ intent: "behavior",
21964
+ visibleWhen: { field: "destinationProvider", equals: "mailchimp" }
21965
+ }
21966
+ },
21967
+ {
21968
+ id: "mailchimpTags",
21969
+ type: "text",
21970
+ label: "Mailchimp tags",
21971
+ description: "Optional tags to apply in Mailchimp, separated by commas or semicolons.",
21972
+ ui: {
21973
+ intent: "behavior",
21974
+ visibleWhen: { field: "destinationProvider", equals: "mailchimp" }
21975
+ }
21838
21976
  },
21839
21977
  {
21840
21978
  id: "preset",
@@ -21881,13 +22019,18 @@ var newsletterFormFragment = defineFragment({
21881
22019
  id: "tags",
21882
22020
  type: "text",
21883
22021
  label: "Tags (optional)",
21884
- description: "Optional tags to apply on subscribe (comma or semicolon separated)."
22022
+ description: "Optional tags to apply on subscribe (comma or semicolon separated).",
22023
+ ui: {
22024
+ intent: "behavior",
22025
+ visibleWhen: { field: "destinationProvider", equals: "riverbank" }
22026
+ }
21885
22027
  }
21886
22028
  ],
21887
22029
  layout: [
21888
22030
  el(
21889
22031
  "newsletter-form",
21890
22032
  withApiBindings({
22033
+ destinationProvider: { $bind: { from: "destinationProvider" } },
21891
22034
  listId: { $bind: { from: "listId" } },
21892
22035
  preset: { $bind: { from: "preset" } },
21893
22036
  includePhone: { $bind: { from: "includePhone" } },
@@ -27728,10 +27871,10 @@ var appointmentBookingBlockDefinition = {
27728
27871
  };
27729
27872
 
27730
27873
  // ../blocks/src/system/blocks/event-registration.ts
27731
- import { z as z46 } from "zod";
27874
+ import { z as z47 } from "zod";
27732
27875
 
27733
27876
  // ../blocks/src/system/blocks/events/shared/schemas.ts
27734
- import { z as z42 } from "zod";
27877
+ import { z as z43 } from "zod";
27735
27878
 
27736
27879
  // ../blocks/src/lib/media.ts
27737
27880
  import z39 from "zod";
@@ -27809,296 +27952,339 @@ var mediaSchema2 = z39.discriminatedUnion("type", [
27809
27952
  archiveMediaSchema
27810
27953
  ]);
27811
27954
 
27812
- // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
27955
+ // ../blocks/src/system/manifest/richTextSchema.ts
27813
27956
  import { z as z40 } from "zod";
27814
- var bookingDepositRefundPolicySchema = z40.enum([
27957
+ var TipTapMarkSchema = z40.object({
27958
+ type: z40.string(),
27959
+ attrs: z40.record(z40.string(), z40.unknown()).optional()
27960
+ });
27961
+ var TipTapNodeSchema = z40.lazy(
27962
+ () => z40.object({
27963
+ type: z40.string(),
27964
+ content: z40.array(TipTapNodeSchema).optional(),
27965
+ text: z40.string().optional(),
27966
+ attrs: z40.record(z40.string(), z40.unknown()).optional(),
27967
+ marks: z40.array(TipTapMarkSchema).optional()
27968
+ })
27969
+ );
27970
+ var RichTextValueSchema = z40.union([
27971
+ // Canonical: TipTap document directly
27972
+ TipTapNodeSchema,
27973
+ // Legacy (read-tolerance only): wrapped in { doc: {...} }
27974
+ z40.object({
27975
+ doc: TipTapNodeSchema
27976
+ })
27977
+ ]);
27978
+ var RichTextDocSchema = z40.object({
27979
+ type: z40.literal("doc"),
27980
+ content: z40.array(TipTapNodeSchema)
27981
+ });
27982
+
27983
+ // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
27984
+ import { z as z41 } from "zod";
27985
+ var bookingDepositRefundPolicySchema = z41.enum([
27815
27986
  "refundable",
27816
27987
  "non_refundable"
27817
27988
  ]);
27818
- var bookingInstalmentPlanSchema = z40.union([
27819
- z40.object({
27820
- kind: z40.literal("deposit_plus_one_remainder"),
27821
- depositAmountCents: z40.number().int().min(0),
27989
+ var bookingInstalmentPlanSchema = z41.union([
27990
+ z41.object({
27991
+ kind: z41.literal("deposit_plus_one_remainder"),
27992
+ depositAmountCents: z41.number().int().min(0),
27822
27993
  depositRefundability: bookingDepositRefundPolicySchema,
27823
- remainderDueCount: z40.number().int().positive(),
27824
- intervalUnit: z40.enum(["day", "week", "month"])
27994
+ remainderDueCount: z41.number().int().positive(),
27995
+ intervalUnit: z41.enum(["day", "week", "month"])
27825
27996
  }),
27826
- z40.object({
27827
- kind: z40.literal("deposit_plus_scheduled_instalments"),
27828
- depositAmountCents: z40.number().int().min(0),
27997
+ z41.object({
27998
+ kind: z41.literal("deposit_plus_scheduled_instalments"),
27999
+ depositAmountCents: z41.number().int().min(0),
27829
28000
  depositRefundability: bookingDepositRefundPolicySchema,
27830
- instalmentCount: z40.number().int().positive(),
27831
- intervalCount: z40.number().int().positive(),
27832
- intervalUnit: z40.enum(["day", "week", "month"])
28001
+ instalmentCount: z41.number().int().positive(),
28002
+ intervalCount: z41.number().int().positive(),
28003
+ intervalUnit: z41.enum(["day", "week", "month"])
27833
28004
  }),
27834
- z40.object({
27835
- kind: z40.literal("equal_scheduled_instalments"),
27836
- instalmentCount: z40.number().int().positive(),
27837
- intervalCount: z40.number().int().positive(),
27838
- intervalUnit: z40.enum(["day", "week", "month"])
28005
+ z41.object({
28006
+ kind: z41.literal("equal_scheduled_instalments"),
28007
+ instalmentCount: z41.number().int().positive(),
28008
+ intervalCount: z41.number().int().positive(),
28009
+ intervalUnit: z41.enum(["day", "week", "month"])
27839
28010
  })
27840
28011
  ]);
27841
- var bookingFlexibleBalanceDueDateRuleSchema = z40.union([
27842
- z40.object({
27843
- kind: z40.literal("relative_to_start_date"),
27844
- daysBeforeStart: z40.number().int().positive()
28012
+ var bookingFlexibleBalanceDueDateRuleSchema = z41.union([
28013
+ z41.object({
28014
+ kind: z41.literal("relative_to_start_date"),
28015
+ daysBeforeStart: z41.number().int().positive()
27845
28016
  }),
27846
- z40.object({
27847
- kind: z40.literal("fixed_calendar_date"),
27848
- dueAt: z40.string().datetime()
28017
+ z41.object({
28018
+ kind: z41.literal("fixed_calendar_date"),
28019
+ dueAt: z41.string().datetime()
27849
28020
  })
27850
28021
  ]);
27851
- var bookingFlexibleBalanceConfigSchema = z40.object({
27852
- upfrontAmountCents: z40.number().int().min(0),
28022
+ var bookingFlexibleBalanceConfigSchema = z41.object({
28023
+ upfrontAmountCents: z41.number().int().min(0),
27853
28024
  dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
27854
28025
  depositRefundability: bookingDepositRefundPolicySchema
27855
28026
  });
27856
- var blockBookingPaymentCollectionOptionSchema = z40.union([
27857
- z40.object({
27858
- kind: z40.literal("upfront")
28027
+ var blockBookingPaymentCollectionOptionSchema = z41.union([
28028
+ z41.object({
28029
+ kind: z41.literal("upfront")
27859
28030
  }),
27860
- z40.object({
27861
- kind: z40.literal("deferred_manual")
28031
+ z41.object({
28032
+ kind: z41.literal("deferred_manual")
27862
28033
  }),
27863
- z40.object({
27864
- kind: z40.literal("instalment_plan"),
28034
+ z41.object({
28035
+ kind: z41.literal("instalment_plan"),
27865
28036
  plan: bookingInstalmentPlanSchema
27866
28037
  }),
27867
- z40.object({
27868
- kind: z40.literal("flexible_balance"),
28038
+ z41.object({
28039
+ kind: z41.literal("flexible_balance"),
27869
28040
  config: bookingFlexibleBalanceConfigSchema
27870
28041
  })
27871
28042
  ]);
27872
- var blockBookingPaymentTermsSchema = z40.object({
27873
- allowedOptions: z40.array(blockBookingPaymentCollectionOptionSchema).min(1)
28043
+ var blockBookingPaymentTermsSchema = z41.object({
28044
+ allowedOptions: z41.array(blockBookingPaymentCollectionOptionSchema).min(1)
27874
28045
  });
27875
28046
 
27876
28047
  // ../blocks/src/system/blocks/courses/shared/schemas.ts
27877
- import { z as z41 } from "zod";
27878
- var courseVenueSchema = z41.object({
27879
- id: z41.string(),
27880
- name: z41.string(),
27881
- address: z41.string().nullable()
27882
- });
27883
- var courseSessionSchema = z41.object({
27884
- id: z41.string(),
27885
- startsAt: z41.string(),
27886
- endsAt: z41.string(),
27887
- timeZone: z41.string(),
27888
- capacityOverride: z41.number().nullable().optional(),
27889
- overrides: z41.record(z41.string(), z41.unknown()).nullable().optional()
27890
- });
27891
- var courseTeamMemberSummarySchema = z41.object({
27892
- id: z41.string(),
27893
- name: z41.string(),
27894
- roleLabel: z41.string().nullable(),
27895
- summary: z41.string().nullable(),
27896
- profilePath: z41.string().nullable()
27897
- });
27898
- var coursePricingOptionSchema = z41.object({
27899
- id: z41.string(),
27900
- name: z41.string(),
27901
- description: z41.string().nullable(),
27902
- priceAmount: z41.number(),
27903
- isActive: z41.boolean(),
27904
- sortOrder: z41.number(),
27905
- capacityLimit: z41.number().nullable(),
27906
- saleStartsAt: z41.string().nullable(),
27907
- saleEndsAt: z41.string().nullable(),
27908
- attendanceScope: z41.enum(["in_person", "online", "both"]).nullable().optional()
27909
- });
27910
- var coursePricingSchema = z41.object({
27911
- bookingRequirement: z41.enum(["none", "required"]),
27912
- pricingStrategy: z41.enum(["free", "single", "tiered"]),
27913
- currency: z41.string(),
27914
- singlePriceAmount: z41.number().nullable(),
28048
+ import { z as z42 } from "zod";
28049
+ var courseVenueSchema = z42.object({
28050
+ id: z42.string(),
28051
+ name: z42.string(),
28052
+ address: z42.string().nullable()
28053
+ });
28054
+ var courseSessionSchema = z42.object({
28055
+ id: z42.string(),
28056
+ startsAt: z42.string(),
28057
+ endsAt: z42.string(),
28058
+ timeZone: z42.string(),
28059
+ capacityOverride: z42.number().nullable().optional(),
28060
+ overrides: z42.record(z42.string(), z42.unknown()).nullable().optional()
28061
+ });
28062
+ var courseTeamMemberSummarySchema = z42.object({
28063
+ id: z42.string(),
28064
+ name: z42.string(),
28065
+ roleLabel: z42.string().nullable(),
28066
+ summary: z42.string().nullable(),
28067
+ profilePath: z42.string().nullable()
28068
+ });
28069
+ var coursePricingOptionSchema = z42.object({
28070
+ id: z42.string(),
28071
+ name: z42.string(),
28072
+ description: z42.string().nullable(),
28073
+ priceAmount: z42.number(),
28074
+ isActive: z42.boolean(),
28075
+ sortOrder: z42.number(),
28076
+ capacityLimit: z42.number().nullable(),
28077
+ saleStartsAt: z42.string().nullable(),
28078
+ saleEndsAt: z42.string().nullable(),
28079
+ attendanceScope: z42.enum(["in_person", "online", "both"]).nullable().optional()
28080
+ });
28081
+ var coursePricingSchema = z42.object({
28082
+ bookingRequirement: z42.enum(["none", "required"]),
28083
+ pricingStrategy: z42.enum(["free", "single", "tiered"]),
28084
+ currency: z42.string(),
28085
+ singlePriceAmount: z42.number().nullable(),
27915
28086
  paymentTerms: blockBookingPaymentTermsSchema,
27916
- options: z41.array(coursePricingOptionSchema)
27917
- });
27918
- var publicCourseSchema = z41.object({
27919
- id: z41.string(),
27920
- title: z41.string(),
27921
- slug: z41.string(),
27922
- description: z41.unknown().nullable(),
27923
- teamMembers: z41.array(courseTeamMemberSummarySchema).optional(),
27924
- enrollmentOpen: z41.boolean(),
28087
+ options: z42.array(coursePricingOptionSchema)
28088
+ });
28089
+ var publicCourseSchema = z42.object({
28090
+ id: z42.string(),
28091
+ title: z42.string(),
28092
+ slug: z42.string(),
28093
+ description: z42.unknown().nullable(),
28094
+ teamMembers: z42.array(courseTeamMemberSummarySchema).optional(),
28095
+ enrollmentOpen: z42.boolean(),
27925
28096
  pricing: coursePricingSchema.optional(),
27926
- priceCents: z41.number().nullable(),
27927
- currency: z41.string(),
28097
+ priceCents: z42.number().nullable(),
28098
+ currency: z42.string(),
27928
28099
  paymentTerms: blockBookingPaymentTermsSchema,
27929
- enrollmentCapacity: z41.number().nullable(),
27930
- acceptsMemberships: z41.boolean(),
27931
- status: z41.enum(["active", "draft", "cancelled"]),
27932
- sessionsCount: z41.number(),
27933
- enrolledCount: z41.number(),
27934
- availableSpots: z41.number().nullable(),
27935
- sessions: z41.array(courseSessionSchema),
28100
+ enrollmentCapacity: z42.number().nullable(),
28101
+ acceptsMemberships: z42.boolean(),
28102
+ status: z42.enum(["active", "draft", "cancelled"]),
28103
+ sessionsCount: z42.number(),
28104
+ enrolledCount: z42.number(),
28105
+ availableSpots: z42.number().nullable(),
28106
+ sessions: z42.array(courseSessionSchema),
27936
28107
  venue: courseVenueSchema.nullable(),
27937
- contentEntryId: z41.string().nullable()
28108
+ contentEntryId: z42.string().nullable()
27938
28109
  });
27939
- var publicCoursesArraySchema = z41.array(publicCourseSchema);
28110
+ var publicCoursesArraySchema = z42.array(publicCourseSchema);
27940
28111
 
27941
28112
  // ../blocks/src/system/blocks/events/shared/schemas.ts
27942
- var eventPresetSchema = z42.enum(["event", "class", "workshop", "retreat", "performance"]);
27943
- var eventScheduleScopeSchema = z42.enum(["recurring", "oneOff"]);
27944
- var eventDestinationModeSchema = z42.enum(["cms-managed", "system-managed"]);
27945
- var eventVenueSchema = z42.object({
27946
- id: z42.string(),
27947
- name: z42.string(),
27948
- address: z42.string().nullable(),
27949
- location: z42.object({
27950
- lat: z42.number(),
27951
- lng: z42.number()
28113
+ var eventPresetSchema = z43.enum(["event", "class", "workshop", "retreat", "performance"]);
28114
+ var eventScheduleScopeSchema = z43.enum(["recurring", "oneOff"]);
28115
+ var eventDestinationModeSchema = z43.enum(["cms-managed", "system-managed"]);
28116
+ var eventVenueSchema = z43.object({
28117
+ id: z43.string(),
28118
+ name: z43.string(),
28119
+ address: z43.string().nullable(),
28120
+ location: z43.object({
28121
+ lat: z43.number(),
28122
+ lng: z43.number()
27952
28123
  }).nullable()
27953
28124
  });
27954
- var eventCategorySchema = z42.object({
27955
- id: z42.string(),
27956
- name: z42.string(),
27957
- color: z42.string().nullable()
27958
- });
27959
- var pricingTypeSchema = z42.enum(["free", "paid"]);
27960
- var accessRestrictionSchema = z42.enum(["none", "category"]);
27961
- var eventPricingModeSchema = z42.enum(["single", "ticket_types"]);
27962
- var publicCoursePriceDisplaySchema = z42.discriminatedUnion("kind", [
27963
- z42.object({ kind: z42.literal("free"), currency: z42.string() }),
27964
- z42.object({ kind: z42.literal("exact"), amount: z42.number(), currency: z42.string() }),
27965
- z42.object({ kind: z42.literal("from"), amount: z42.number(), currency: z42.string() }),
27966
- z42.object({ kind: z42.literal("unavailable"), currency: z42.string() })
28125
+ var eventCategorySchema = z43.object({
28126
+ id: z43.string(),
28127
+ name: z43.string(),
28128
+ color: z43.string().nullable()
28129
+ });
28130
+ var pricingTypeSchema = z43.enum(["free", "paid"]);
28131
+ var accessRestrictionSchema = z43.enum(["none", "category"]);
28132
+ var eventPricingModeSchema = z43.enum(["single", "ticket_types"]);
28133
+ var publicCoursePriceDisplaySchema = z43.discriminatedUnion("kind", [
28134
+ z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28135
+ z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28136
+ z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28137
+ z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
27967
28138
  ]);
27968
- var publicEventPriceDisplaySchema = z42.discriminatedUnion("kind", [
27969
- z42.object({ kind: z42.literal("free"), currency: z42.string() }),
27970
- z42.object({ kind: z42.literal("exact"), amount: z42.number(), currency: z42.string() }),
27971
- z42.object({ kind: z42.literal("from"), amount: z42.number(), currency: z42.string() }),
27972
- z42.object({ kind: z42.literal("mixed"), paidFromAmount: z42.number(), currency: z42.string() }),
27973
- z42.object({ kind: z42.literal("unavailable"), currency: z42.string() }),
27974
- z42.object({ kind: z42.literal("course"), display: publicCoursePriceDisplaySchema })
28139
+ var publicEventPriceDisplaySchema = z43.discriminatedUnion("kind", [
28140
+ z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28141
+ z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28142
+ z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28143
+ z43.object({ kind: z43.literal("range"), minAmount: z43.number(), maxAmount: z43.number(), currency: z43.string() }),
28144
+ z43.object({
28145
+ kind: z43.literal("mixed"),
28146
+ paidFromAmount: z43.number(),
28147
+ paidToAmount: z43.number(),
28148
+ currency: z43.string()
28149
+ }),
28150
+ z43.object({ kind: z43.literal("unavailable"), currency: z43.string() }),
28151
+ z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
27975
28152
  ]);
27976
- var publicEventTicketTypePriceDisplaySchema = z42.union([
27977
- z42.object({ kind: z42.literal("free"), currency: z42.string() }),
27978
- z42.object({ kind: z42.literal("exact"), amount: z42.number(), currency: z42.string() }),
27979
- z42.object({ kind: z42.literal("from"), amount: z42.number(), currency: z42.string() }),
27980
- z42.object({ kind: z42.literal("mixed"), paidFromAmount: z42.number(), currency: z42.string() }),
27981
- z42.object({ kind: z42.literal("unavailable"), currency: z42.string() })
28153
+ var publicEventTicketTypePriceDisplaySchema = z43.union([
28154
+ z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28155
+ z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28156
+ z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28157
+ z43.object({ kind: z43.literal("range"), minAmount: z43.number(), maxAmount: z43.number(), currency: z43.string() }),
28158
+ z43.object({
28159
+ kind: z43.literal("mixed"),
28160
+ paidFromAmount: z43.number(),
28161
+ paidToAmount: z43.number(),
28162
+ currency: z43.string()
28163
+ }),
28164
+ z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
27982
28165
  ]);
27983
- var publicEventAttendanceModeSchema = z42.enum(["in_person", "online"]);
27984
- var publicEventAttendanceModeAvailabilitySchema = z42.object({
28166
+ var publicEventAttendanceModeSchema = z43.enum(["in_person", "online"]);
28167
+ var publicEventAttendanceModeAvailabilitySchema = z43.object({
27985
28168
  mode: publicEventAttendanceModeSchema,
27986
- capacity: z42.number().nullable(),
27987
- registeredCount: z42.number(),
27988
- availableSpots: z42.number().nullable(),
27989
- waitlistEnabled: z42.boolean()
27990
- });
27991
- var publicEventTicketTypeAvailabilitySchema = z42.union([
27992
- z42.object({
27993
- kind: z42.literal("available"),
27994
- remainingCapacity: z42.number().nullable()
28169
+ capacity: z43.number().nullable(),
28170
+ registeredCount: z43.number(),
28171
+ availableSpots: z43.number().nullable(),
28172
+ waitlistEnabled: z43.boolean()
28173
+ });
28174
+ var publicEventTicketTypeAvailabilitySchema = z43.union([
28175
+ z43.object({
28176
+ kind: z43.literal("available"),
28177
+ remainingCapacity: z43.number().nullable()
27995
28178
  }),
27996
- z42.object({
27997
- kind: z42.literal("unavailable"),
27998
- reason: z42.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
27999
- remainingCapacity: z42.number().nullable()
28179
+ z43.object({
28180
+ kind: z43.literal("unavailable"),
28181
+ reason: z43.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
28182
+ remainingCapacity: z43.number().nullable()
28000
28183
  })
28001
28184
  ]);
28002
- var publicEventTicketTypeSchema = z42.object({
28003
- id: z42.string(),
28004
- siteId: z42.string(),
28005
- eventSeriesId: z42.string(),
28006
- name: z42.string(),
28007
- description: z42.string().nullable(),
28008
- priceAmount: z42.number(),
28009
- isActive: z42.boolean(),
28010
- sortOrder: z42.number(),
28011
- capacityMode: z42.enum(["limited", "unlimited"]),
28012
- capacityLimit: z42.number().nullable(),
28013
- attendanceScope: z42.enum(["in_person", "online", "both"]).optional(),
28014
- saleStartsAt: z42.string().nullable(),
28015
- saleEndsAt: z42.string().nullable(),
28185
+ var publicEventTicketTypeSchema = z43.object({
28186
+ id: z43.string(),
28187
+ siteId: z43.string(),
28188
+ eventSeriesId: z43.string(),
28189
+ name: z43.string(),
28190
+ description: z43.string().nullable(),
28191
+ priceAmount: z43.number(),
28192
+ isActive: z43.boolean(),
28193
+ sortOrder: z43.number(),
28194
+ capacityMode: z43.enum(["limited", "unlimited"]),
28195
+ capacityLimit: z43.number().nullable(),
28196
+ attendanceScope: z43.enum(["in_person", "online", "both"]).optional(),
28197
+ saleStartsAt: z43.string().nullable(),
28198
+ saleEndsAt: z43.string().nullable(),
28016
28199
  availability: publicEventTicketTypeAvailabilitySchema,
28017
- createdAt: z42.string(),
28018
- updatedAt: z42.string()
28019
- });
28020
- var publicEventPricingSchema = z42.discriminatedUnion("kind", [
28021
- z42.object({
28022
- kind: z42.literal("drop_in"),
28023
- currency: z42.string(),
28024
- display: z42.object({ kind: z42.literal("free"), currency: z42.string() })
28200
+ createdAt: z43.string(),
28201
+ updatedAt: z43.string()
28202
+ });
28203
+ var publicEventPricingSchema = z43.discriminatedUnion("kind", [
28204
+ z43.object({
28205
+ kind: z43.literal("drop_in"),
28206
+ currency: z43.string(),
28207
+ display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
28025
28208
  }),
28026
- z42.object({
28027
- kind: z42.literal("free_registration"),
28028
- currency: z42.string(),
28029
- display: z42.object({ kind: z42.literal("free"), currency: z42.string() })
28209
+ z43.object({
28210
+ kind: z43.literal("free_registration"),
28211
+ currency: z43.string(),
28212
+ display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
28030
28213
  }),
28031
- z42.object({
28032
- kind: z42.literal("single_paid"),
28033
- amount: z42.number(),
28034
- currency: z42.string(),
28035
- display: z42.object({ kind: z42.literal("exact"), amount: z42.number(), currency: z42.string() })
28214
+ z43.object({
28215
+ kind: z43.literal("single_paid"),
28216
+ amount: z43.number(),
28217
+ currency: z43.string(),
28218
+ display: z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() })
28036
28219
  }),
28037
- z42.object({
28038
- kind: z42.literal("ticket_types"),
28039
- currency: z42.string(),
28040
- ticketTypes: z42.array(publicEventTicketTypeSchema),
28220
+ z43.object({
28221
+ kind: z43.literal("ticket_types"),
28222
+ currency: z43.string(),
28223
+ ticketTypes: z43.array(publicEventTicketTypeSchema),
28041
28224
  display: publicEventTicketTypePriceDisplaySchema
28042
28225
  }),
28043
- z42.object({
28044
- kind: z42.literal("course"),
28045
- display: z42.object({ kind: z42.literal("course"), display: publicCoursePriceDisplaySchema })
28226
+ z43.object({
28227
+ kind: z43.literal("course"),
28228
+ display: z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28046
28229
  })
28047
28230
  ]);
28048
- var publicTeamMemberSummarySchema = z42.object({
28049
- id: z42.string(),
28050
- name: z42.string(),
28051
- roleLabel: z42.string().nullable(),
28052
- summary: z42.string().nullable(),
28053
- profilePath: z42.string().nullable()
28231
+ var publicTeamMemberSummarySchema = z43.object({
28232
+ id: z43.string(),
28233
+ name: z43.string(),
28234
+ roleLabel: z43.string().nullable(),
28235
+ summary: z43.string().nullable(),
28236
+ profilePath: z43.string().nullable()
28054
28237
  });
28055
- var publicEventSchema = z42.object({
28056
- kind: z42.enum(["event", "course_session"]).optional(),
28238
+ var publicEventSchema = z43.object({
28239
+ kind: z43.enum(["event", "course_session"]).optional(),
28057
28240
  eventPreset: eventPresetSchema.optional(),
28058
28241
  eventDestinationMode: eventDestinationModeSchema.optional(),
28059
28242
  scheduleScope: eventScheduleScopeSchema.optional(),
28060
- id: z42.string(),
28061
- occurrenceId: z42.string(),
28062
- seriesId: z42.string(),
28063
- title: z42.string(),
28064
- description: z42.string().nullable(),
28065
- presentation: z42.object({
28066
- cardTitleOverride: z42.string().nullable().optional(),
28067
- summary: z42.string().nullable().optional(),
28243
+ id: z43.string(),
28244
+ occurrenceId: z43.string(),
28245
+ seriesId: z43.string(),
28246
+ title: z43.string(),
28247
+ description: z43.string().nullable(),
28248
+ content: z43.object({
28249
+ body: RichTextDocSchema.nullable().optional()
28250
+ }).optional(),
28251
+ presentation: z43.object({
28252
+ cardTitleOverride: z43.string().nullable().optional(),
28253
+ summary: z43.string().nullable().optional(),
28068
28254
  image: mediaSchema2.nullable().optional()
28069
28255
  }).optional(),
28070
- slug: z42.string(),
28071
- path: z42.string(),
28072
- requiresRegistration: z42.boolean(),
28073
- deliveryMode: z42.enum(["in_person", "online", "hybrid"]),
28074
- attendanceModes: z42.array(publicEventAttendanceModeAvailabilitySchema),
28075
- startsAt: z42.string(),
28076
- endsAt: z42.string(),
28077
- capacity: z42.number().nullable(),
28078
- registeredCount: z42.number(),
28079
- availableSpots: z42.number().nullable(),
28080
- waitlistEnabled: z42.boolean(),
28256
+ slug: z43.string(),
28257
+ path: z43.string(),
28258
+ requiresRegistration: z43.boolean(),
28259
+ deliveryMode: z43.enum(["in_person", "online", "hybrid"]),
28260
+ attendanceModes: z43.array(publicEventAttendanceModeAvailabilitySchema),
28261
+ startsAt: z43.string(),
28262
+ endsAt: z43.string(),
28263
+ capacity: z43.number().nullable(),
28264
+ registeredCount: z43.number(),
28265
+ availableSpots: z43.number().nullable(),
28266
+ waitlistEnabled: z43.boolean(),
28081
28267
  venue: eventVenueSchema.nullable(),
28082
28268
  eventCategory: eventCategorySchema.nullable(),
28083
- teamMembers: z42.array(publicTeamMemberSummarySchema).optional(),
28084
- status: z42.enum(["active", "draft", "archived"]).optional(),
28085
- timeZone: z42.string(),
28269
+ teamMembers: z43.array(publicTeamMemberSummarySchema).optional(),
28270
+ status: z43.enum(["active", "draft", "archived"]).optional(),
28271
+ timeZone: z43.string(),
28086
28272
  pricing: publicEventPricingSchema,
28087
28273
  paymentTerms: blockBookingPaymentTermsSchema,
28088
28274
  accessRestriction: accessRestrictionSchema,
28089
- allowedCategoryIds: z42.array(z42.string()),
28090
- requireGuestDetails: z42.boolean().optional(),
28091
- acceptsPasses: z42.boolean().optional(),
28092
- acceptsMemberships: z42.boolean().optional(),
28093
- course: z42.object({
28094
- id: z42.string(),
28275
+ allowedCategoryIds: z43.array(z43.string()),
28276
+ requireGuestDetails: z43.boolean().optional(),
28277
+ acceptsPasses: z43.boolean().optional(),
28278
+ acceptsMemberships: z43.boolean().optional(),
28279
+ course: z43.object({
28280
+ id: z43.string(),
28095
28281
  pricing: coursePricingSchema.optional(),
28096
- priceCents: z42.number().nullable(),
28097
- currency: z42.string(),
28098
- enrollmentOpen: z42.boolean()
28282
+ priceCents: z43.number().nullable(),
28283
+ currency: z43.string(),
28284
+ enrollmentOpen: z43.boolean()
28099
28285
  }).nullable().optional()
28100
28286
  });
28101
- var publicEventsArraySchema = z42.array(publicEventSchema);
28287
+ var publicEventsArraySchema = z43.array(publicEventSchema);
28102
28288
 
28103
28289
  // ../blocks/src/system/blocks/events/shared/fields.ts
28104
28290
  var cardVariantOptions2 = cardVariantRoleValues.map((value) => ({
@@ -28302,19 +28488,19 @@ function normalizeEventStaffMemberId(value) {
28302
28488
  }
28303
28489
 
28304
28490
  // ../blocks/src/system/blocks/event-registration.shared.ts
28305
- import { z as z43 } from "zod";
28306
- var occurrenceContextSchema = z43.object({
28307
- id: z43.string(),
28308
- seriesId: z43.string(),
28309
- startsAt: z43.string(),
28310
- endsAt: z43.string(),
28311
- timeZone: z43.string(),
28312
- capacityOverride: z43.number().nullable().optional(),
28313
- overrides: z43.record(z43.string(), z43.unknown()).nullable().optional()
28491
+ import { z as z44 } from "zod";
28492
+ var occurrenceContextSchema = z44.object({
28493
+ id: z44.string(),
28494
+ seriesId: z44.string(),
28495
+ startsAt: z44.string(),
28496
+ endsAt: z44.string(),
28497
+ timeZone: z44.string(),
28498
+ capacityOverride: z44.number().nullable().optional(),
28499
+ overrides: z44.record(z44.string(), z44.unknown()).nullable().optional()
28314
28500
  }).nullable();
28315
28501
 
28316
28502
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28317
- import { z as z45 } from "zod";
28503
+ import { z as z46 } from "zod";
28318
28504
 
28319
28505
  // ../blocks/src/system/constants/events.ts
28320
28506
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
@@ -28412,10 +28598,21 @@ function readLegacyPriceDisplay(value, currency) {
28412
28598
  amount: readAmount(value.amount) ?? 0,
28413
28599
  currency: displayCurrency
28414
28600
  } : { kind: "unavailable", currency };
28601
+ case "range": {
28602
+ const minAmount = readAmount(value.minAmount);
28603
+ const maxAmount = readAmount(value.maxAmount);
28604
+ return minAmount !== null && maxAmount !== null ? {
28605
+ kind: "range",
28606
+ minAmount,
28607
+ maxAmount,
28608
+ currency: displayCurrency
28609
+ } : { kind: "unavailable", currency };
28610
+ }
28415
28611
  case "mixed":
28416
28612
  return readAmount(value.paidFromAmount) !== null ? {
28417
28613
  kind: "mixed",
28418
28614
  paidFromAmount: readAmount(value.paidFromAmount) ?? 0,
28615
+ paidToAmount: readAmount(value.paidToAmount) ?? readAmount(value.paidFromAmount) ?? 0,
28419
28616
  currency: displayCurrency
28420
28617
  } : { kind: "unavailable", currency };
28421
28618
  case "unavailable":
@@ -28457,16 +28654,16 @@ function readAmount(value) {
28457
28654
  }
28458
28655
 
28459
28656
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
28460
- import { z as z44 } from "zod";
28461
- var previewStageSchema = z44.enum(["preview", "published"]);
28462
- var registrationButtonVariantSchema = z44.enum(["primary", "secondary", "outline"]);
28463
- var eventButtonVariantSchema = z44.enum(["primary", "secondary", "outline", "link"]);
28464
- var eventLayoutSchema = z44.enum(eventCalendarListLayoutValues);
28465
- var eventCalendarDisplayModeSchema = z44.enum(eventCalendarDisplayModeValues);
28466
- var columnOptionSchema = z44.enum(["2", "3", "4"]);
28467
- var weekStartSchema = z44.enum(["sunday", "monday"]);
28468
- var filterAutoShowSchema = z44.enum(["auto", "always", "never"]);
28469
- var calendarTabViewsSchema = z44.enum(["both", "month", "week"]);
28657
+ import { z as z45 } from "zod";
28658
+ var previewStageSchema = z45.enum(["preview", "published"]);
28659
+ var registrationButtonVariantSchema = z45.enum(["primary", "secondary", "outline"]);
28660
+ var eventButtonVariantSchema = z45.enum(["primary", "secondary", "outline", "link"]);
28661
+ var eventLayoutSchema = z45.enum(eventCalendarListLayoutValues);
28662
+ var eventCalendarDisplayModeSchema = z45.enum(eventCalendarDisplayModeValues);
28663
+ var columnOptionSchema = z45.enum(["2", "3", "4"]);
28664
+ var weekStartSchema = z45.enum(["sunday", "monday"]);
28665
+ var filterAutoShowSchema = z45.enum(["auto", "always", "never"]);
28666
+ var calendarTabViewsSchema = z45.enum(["both", "month", "week"]);
28470
28667
 
28471
28668
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
28472
28669
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -28526,66 +28723,68 @@ function toRegistrationEvents(events) {
28526
28723
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28527
28724
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
28528
28725
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
28529
- var contentEntrySchema = z45.object({
28530
- id: z45.string(),
28531
- slug: z45.string(),
28532
- contentTypeSlug: z45.string()
28726
+ var contentEntrySchema = z46.object({
28727
+ id: z46.string(),
28728
+ slug: z46.string(),
28729
+ contentTypeSlug: z46.string()
28533
28730
  });
28534
- var eventRegistrationPublicEventSchema = z45.preprocess(
28731
+ var eventRegistrationPublicEventSchema = z46.preprocess(
28535
28732
  normalizeEventRegistrationEventInput,
28536
28733
  publicEventSchema
28537
28734
  );
28538
- var eventRegistrationSourceSchema = z45.object({
28539
- siteId: z45.string().optional(),
28540
- apiBaseUrl: z45.string().optional(),
28541
- portalToken: z45.string().nullable().optional(),
28542
- previewToken: z45.string().nullable().optional(),
28735
+ var eventRegistrationSourceSchema = z46.object({
28736
+ siteId: z46.string().optional(),
28737
+ apiBaseUrl: z46.string().optional(),
28738
+ portalToken: z46.string().nullable().optional(),
28739
+ previewToken: z46.string().nullable().optional(),
28543
28740
  occurrenceContext: occurrenceContextSchema.optional(),
28544
28741
  contentEntry: contentEntrySchema.nullable().optional(),
28545
- events: z45.array(eventRegistrationPublicEventSchema).nullable().optional(),
28546
- className: z45.string().nullable().optional(),
28547
- buttonText: z45.string().nullable().optional(),
28548
- maxTickets: z45.string().nullable().optional(),
28549
- showVenue: z45.boolean().optional(),
28550
- showCapacity: z45.boolean().optional(),
28551
- successMessage: z45.string().optional(),
28552
- waitlistMessage: z45.string().optional(),
28742
+ events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
28743
+ className: z46.string().nullable().optional(),
28744
+ buttonText: z46.string().nullable().optional(),
28745
+ maxTickets: z46.string().nullable().optional(),
28746
+ showVenue: z46.boolean().optional(),
28747
+ showCapacity: z46.boolean().optional(),
28748
+ successMessage: z46.string().optional(),
28749
+ waitlistMessage: z46.string().optional(),
28553
28750
  buttonVariant: registrationButtonVariantSchema.optional(),
28554
- spamProtectionEnabled: z45.boolean().optional(),
28751
+ overlayEnabled: z46.boolean().optional(),
28752
+ spamProtectionEnabled: z46.boolean().optional(),
28555
28753
  stage: previewStageSchema.optional(),
28556
- supportEmail: z45.string().optional()
28557
- });
28558
- var eventRegistrationDisplaySchema = z45.object({
28559
- kind: z45.literal("event-registration"),
28560
- state: z45.literal("generic-shell"),
28561
- className: z45.string().nullable(),
28562
- titleText: z45.string(),
28563
- bodyText: z45.string(),
28564
- stepLabels: z45.array(z45.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28565
- summaryButtonText: z45.string()
28566
- });
28567
- var eventRegistrationHydrationSchema = z45.object({
28754
+ supportEmail: z46.string().optional()
28755
+ });
28756
+ var eventRegistrationDisplaySchema = z46.object({
28757
+ kind: z46.literal("event-registration"),
28758
+ state: z46.literal("generic-shell"),
28759
+ className: z46.string().nullable(),
28760
+ titleText: z46.string(),
28761
+ bodyText: z46.string(),
28762
+ stepLabels: z46.array(z46.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28763
+ summaryButtonText: z46.string()
28764
+ });
28765
+ var eventRegistrationHydrationSchema = z46.object({
28568
28766
  occurrenceContext: occurrenceContextSchema.optional(),
28569
28767
  contentEntry: contentEntrySchema.nullable().optional(),
28570
- events: z45.array(eventRegistrationPublicEventSchema).nullable().optional(),
28571
- maxTickets: z45.string().optional(),
28572
- showVenue: z45.boolean().optional(),
28573
- showCapacity: z45.boolean().optional(),
28574
- successMessage: z45.string().optional(),
28575
- waitlistMessage: z45.string().optional(),
28768
+ events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
28769
+ maxTickets: z46.string().optional(),
28770
+ showVenue: z46.boolean().optional(),
28771
+ showCapacity: z46.boolean().optional(),
28772
+ successMessage: z46.string().optional(),
28773
+ waitlistMessage: z46.string().optional(),
28576
28774
  buttonVariant: registrationButtonVariantSchema.optional(),
28577
- spamProtectionEnabled: z45.boolean().optional(),
28578
- supportEmail: z45.string().optional()
28775
+ overlayEnabled: z46.boolean().optional(),
28776
+ spamProtectionEnabled: z46.boolean().optional(),
28777
+ supportEmail: z46.string().optional()
28579
28778
  });
28580
- var eventRegistrationRenderSchema = z45.object({
28779
+ var eventRegistrationRenderSchema = z46.object({
28581
28780
  display: eventRegistrationDisplaySchema,
28582
28781
  hydration: eventRegistrationHydrationSchema
28583
28782
  });
28584
- var eventRegistrationIslandMetaCodec = createZodCodec(z45.object({
28585
- siteId: z45.string().optional(),
28586
- apiBaseUrl: z45.string().optional(),
28587
- portalToken: z45.string().nullable().optional(),
28588
- previewToken: z45.string().nullable().optional(),
28783
+ var eventRegistrationIslandMetaCodec = createZodCodec(z46.object({
28784
+ siteId: z46.string().optional(),
28785
+ apiBaseUrl: z46.string().optional(),
28786
+ portalToken: z46.string().nullable().optional(),
28787
+ previewToken: z46.string().nullable().optional(),
28589
28788
  stage: previewStageSchema.optional()
28590
28789
  }));
28591
28790
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -28689,6 +28888,7 @@ var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
28689
28888
  successMessage: source.successMessage,
28690
28889
  waitlistMessage: source.waitlistMessage,
28691
28890
  buttonVariant: source.buttonVariant,
28891
+ overlayEnabled: source.overlayEnabled,
28692
28892
  spamProtectionEnabled: source.spamProtectionEnabled,
28693
28893
  supportEmail: source.supportEmail
28694
28894
  }
@@ -28864,6 +29064,12 @@ var eventRegistrationManifest = createBlockManifest({
28864
29064
  buttonVariant: {
28865
29065
  $bind: { from: "content.buttonVariant", fallback: "primary" }
28866
29066
  },
29067
+ overlayEnabled: {
29068
+ $bind: {
29069
+ from: "$root.eventRegistrationOverlayEnabled",
29070
+ fallback: false
29071
+ }
29072
+ },
28867
29073
  // Event data from loader
28868
29074
  events: { $bind: { from: "data.events" } },
28869
29075
  // Stage for preview mode (allows registering for draft events)
@@ -28884,7 +29090,7 @@ var eventRegistrationBlockDefinition = {
28884
29090
  manifest: eventRegistrationManifest,
28885
29091
  runtime: eventRegistrationBlockRuntime,
28886
29092
  dataSchemas: {
28887
- events: z46.array(publicEventSchema).optional(),
29093
+ events: z47.array(publicEventSchema).optional(),
28888
29094
  occurrenceContext: occurrenceContextSchema.optional()
28889
29095
  },
28890
29096
  dataLoaders: {
@@ -28908,73 +29114,73 @@ var eventRegistrationBlockDefinition = {
28908
29114
  };
28909
29115
 
28910
29116
  // ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
28911
- import { z as z47 } from "zod";
28912
- var contentEntrySchema2 = z47.object({
28913
- id: z47.string(),
28914
- slug: z47.string(),
28915
- contentTypeSlug: z47.string()
28916
- });
28917
- var courseEntrySubrouteContextSchema = z47.union([
28918
- z47.object({
28919
- kind: z47.literal("course-run"),
28920
- run: z47.object({
28921
- courseId: z47.string(),
28922
- seriesId: z47.string(),
28923
- runSlug: z47.string(),
28924
- runName: z47.string().nullable()
29117
+ import { z as z48 } from "zod";
29118
+ var contentEntrySchema2 = z48.object({
29119
+ id: z48.string(),
29120
+ slug: z48.string(),
29121
+ contentTypeSlug: z48.string()
29122
+ });
29123
+ var courseEntrySubrouteContextSchema = z48.union([
29124
+ z48.object({
29125
+ kind: z48.literal("course-run"),
29126
+ run: z48.object({
29127
+ courseId: z48.string(),
29128
+ seriesId: z48.string(),
29129
+ runSlug: z48.string(),
29130
+ runName: z48.string().nullable()
28925
29131
  })
28926
29132
  }),
28927
- z47.object({
28928
- kind: z47.literal("event-occurrence"),
29133
+ z48.object({
29134
+ kind: z48.literal("event-occurrence"),
28929
29135
  occurrence: occurrenceContextSchema
28930
29136
  })
28931
29137
  ]);
28932
- var courseRegistrationSourceSchema = z47.object({
28933
- siteId: z47.string().optional(),
28934
- apiBaseUrl: z47.string().optional(),
28935
- portalToken: z47.string().nullable().optional(),
29138
+ var courseRegistrationSourceSchema = z48.object({
29139
+ siteId: z48.string().optional(),
29140
+ apiBaseUrl: z48.string().optional(),
29141
+ portalToken: z48.string().nullable().optional(),
28936
29142
  contentEntry: contentEntrySchema2.nullable().optional(),
28937
29143
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
28938
- courses: z47.array(publicCourseSchema).nullable().optional(),
28939
- className: z47.string().nullable().optional(),
28940
- showSessions: z47.boolean().optional(),
28941
- showPrice: z47.boolean().optional(),
28942
- showCapacity: z47.boolean().optional(),
28943
- showVenue: z47.boolean().optional(),
28944
- successMessage: z47.string().optional(),
28945
- waitlistMessage: z47.string().optional(),
28946
- membershipMessage: z47.string().optional(),
28947
- buttonText: z47.string().nullable().optional(),
29144
+ courses: z48.array(publicCourseSchema).nullable().optional(),
29145
+ className: z48.string().nullable().optional(),
29146
+ showSessions: z48.boolean().optional(),
29147
+ showPrice: z48.boolean().optional(),
29148
+ showCapacity: z48.boolean().optional(),
29149
+ showVenue: z48.boolean().optional(),
29150
+ successMessage: z48.string().optional(),
29151
+ waitlistMessage: z48.string().optional(),
29152
+ membershipMessage: z48.string().optional(),
29153
+ buttonText: z48.string().nullable().optional(),
28948
29154
  buttonVariant: registrationButtonVariantSchema.optional(),
28949
29155
  stage: previewStageSchema.optional()
28950
29156
  });
28951
- var courseRegistrationDisplaySchema = z47.object({
28952
- kind: z47.literal("course-registration"),
28953
- state: z47.literal("shell"),
28954
- className: z47.string().nullable(),
28955
- summaryButtonText: z47.string()
29157
+ var courseRegistrationDisplaySchema = z48.object({
29158
+ kind: z48.literal("course-registration"),
29159
+ state: z48.literal("shell"),
29160
+ className: z48.string().nullable(),
29161
+ summaryButtonText: z48.string()
28956
29162
  });
28957
- var courseRegistrationHydrationSchema = z47.object({
29163
+ var courseRegistrationHydrationSchema = z48.object({
28958
29164
  contentEntry: contentEntrySchema2.nullable().optional(),
28959
29165
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
28960
- courses: z47.array(publicCourseSchema).nullable().optional(),
28961
- showSessions: z47.boolean().optional(),
28962
- showPrice: z47.boolean().optional(),
28963
- showCapacity: z47.boolean().optional(),
28964
- showVenue: z47.boolean().optional(),
28965
- successMessage: z47.string().optional(),
28966
- waitlistMessage: z47.string().optional(),
28967
- membershipMessage: z47.string().optional(),
29166
+ courses: z48.array(publicCourseSchema).nullable().optional(),
29167
+ showSessions: z48.boolean().optional(),
29168
+ showPrice: z48.boolean().optional(),
29169
+ showCapacity: z48.boolean().optional(),
29170
+ showVenue: z48.boolean().optional(),
29171
+ successMessage: z48.string().optional(),
29172
+ waitlistMessage: z48.string().optional(),
29173
+ membershipMessage: z48.string().optional(),
28968
29174
  buttonVariant: registrationButtonVariantSchema.optional()
28969
29175
  });
28970
- var courseRegistrationRenderSchema = z47.object({
29176
+ var courseRegistrationRenderSchema = z48.object({
28971
29177
  display: courseRegistrationDisplaySchema,
28972
29178
  hydration: courseRegistrationHydrationSchema
28973
29179
  });
28974
- var courseRegistrationIslandMetaCodec = createZodCodec(z47.object({
28975
- siteId: z47.string().optional(),
28976
- apiBaseUrl: z47.string().optional(),
28977
- portalToken: z47.string().nullable().optional(),
29180
+ var courseRegistrationIslandMetaCodec = createZodCodec(z48.object({
29181
+ siteId: z48.string().optional(),
29182
+ apiBaseUrl: z48.string().optional(),
29183
+ portalToken: z48.string().nullable().optional(),
28978
29184
  stage: previewStageSchema.optional()
28979
29185
  }));
28980
29186
  var courseRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -29234,32 +29440,32 @@ var courseRegistrationBlockDefinition = {
29234
29440
  };
29235
29441
 
29236
29442
  // ../blocks/src/system/blocks/event-details.ts
29237
- import { z as z49 } from "zod";
29443
+ import { z as z50 } from "zod";
29238
29444
 
29239
29445
  // ../blocks/src/system/blocks/shop.shared.ts
29240
- import { z as z48 } from "zod";
29241
- var publicPassProductSchema = z48.object({
29242
- id: z48.string(),
29243
- productUseCase: z48.enum(["event_pass", "appointment_package"]).default("event_pass"),
29244
- name: z48.string(),
29245
- description: z48.string().nullable(),
29246
- price: z48.number(),
29247
- currency: z48.string(),
29248
- creditsTotal: z48.number(),
29249
- pricePerCredit: z48.number(),
29250
- validDays: z48.number().nullable(),
29251
- eligibleCategoryIds: z48.array(z48.string()),
29252
- eligibleCategoryNames: z48.array(z48.string())
29253
- });
29254
- var publicMembershipProductSchema = z48.object({
29255
- id: z48.string(),
29256
- name: z48.string(),
29257
- description: z48.string().nullable(),
29258
- price: z48.number(),
29259
- currency: z48.string(),
29260
- billingInterval: z48.enum(["month", "year"]),
29261
- eligibleCategoryIds: z48.array(z48.string()),
29262
- eligibleCategoryNames: z48.array(z48.string())
29446
+ import { z as z49 } from "zod";
29447
+ var publicPassProductSchema = z49.object({
29448
+ id: z49.string(),
29449
+ productUseCase: z49.enum(["event_pass", "appointment_package"]).default("event_pass"),
29450
+ name: z49.string(),
29451
+ description: z49.string().nullable(),
29452
+ price: z49.number(),
29453
+ currency: z49.string(),
29454
+ creditsTotal: z49.number(),
29455
+ pricePerCredit: z49.number(),
29456
+ validDays: z49.number().nullable(),
29457
+ eligibleCategoryIds: z49.array(z49.string()),
29458
+ eligibleCategoryNames: z49.array(z49.string())
29459
+ });
29460
+ var publicMembershipProductSchema = z49.object({
29461
+ id: z49.string(),
29462
+ name: z49.string(),
29463
+ description: z49.string().nullable(),
29464
+ price: z49.number(),
29465
+ currency: z49.string(),
29466
+ billingInterval: z49.enum(["month", "year"]),
29467
+ eligibleCategoryIds: z49.array(z49.string()),
29468
+ eligibleCategoryNames: z49.array(z49.string())
29263
29469
  });
29264
29470
 
29265
29471
  // ../blocks/src/system/blocks/event-details.ts
@@ -29394,40 +29600,40 @@ var eventDetailsManifest = createBlockManifest({
29394
29600
  })
29395
29601
  ]
29396
29602
  });
29397
- var occurrenceContextSchema2 = z49.object({
29398
- id: z49.string(),
29399
- seriesId: z49.string(),
29400
- startsAt: z49.string(),
29401
- endsAt: z49.string(),
29402
- timeZone: z49.string(),
29403
- capacityOverride: z49.number().nullable().optional(),
29404
- overrides: z49.record(z49.string(), z49.unknown()).nullable().optional()
29603
+ var occurrenceContextSchema2 = z50.object({
29604
+ id: z50.string(),
29605
+ seriesId: z50.string(),
29606
+ startsAt: z50.string(),
29607
+ endsAt: z50.string(),
29608
+ timeZone: z50.string(),
29609
+ capacityOverride: z50.number().nullable().optional(),
29610
+ overrides: z50.record(z50.string(), z50.unknown()).nullable().optional()
29405
29611
  }).nullable();
29406
- var eventAutoApplyDiscountPreviewBaseSchema = z49.object({
29407
- id: z49.string(),
29408
- publicLabel: z49.string(),
29409
- description: z49.string().nullable(),
29410
- minTicketsRequired: z49.number().nullable()
29612
+ var eventAutoApplyDiscountPreviewBaseSchema = z50.object({
29613
+ id: z50.string(),
29614
+ publicLabel: z50.string(),
29615
+ description: z50.string().nullable(),
29616
+ minTicketsRequired: z50.number().nullable()
29411
29617
  });
29412
- var eventAutoApplyDiscountPreviewSchema = z49.discriminatedUnion("discountType", [
29618
+ var eventAutoApplyDiscountPreviewSchema = z50.discriminatedUnion("discountType", [
29413
29619
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29414
- discountType: z49.literal("percent"),
29415
- discountPercent: z49.number(),
29416
- discountAmountCents: z49.null()
29620
+ discountType: z50.literal("percent"),
29621
+ discountPercent: z50.number(),
29622
+ discountAmountCents: z50.null()
29417
29623
  }),
29418
29624
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29419
- discountType: z49.literal("fixed"),
29420
- discountPercent: z49.null(),
29421
- discountAmountCents: z49.number()
29625
+ discountType: z50.literal("fixed"),
29626
+ discountPercent: z50.null(),
29627
+ discountAmountCents: z50.number()
29422
29628
  })
29423
29629
  ]);
29424
29630
  var eventDetailsBlockDefinition = {
29425
29631
  manifest: eventDetailsManifest,
29426
29632
  dataSchemas: {
29427
- eventDetailsData: z49.object({
29633
+ eventDetailsData: z50.object({
29428
29634
  events: publicEventsArraySchema,
29429
- sitePasses: z49.object({ passes: z49.array(publicPassProductSchema) }),
29430
- siteMemberships: z49.object({ memberships: z49.array(publicMembershipProductSchema) }),
29635
+ sitePasses: z50.object({ passes: z50.array(publicPassProductSchema) }),
29636
+ siteMemberships: z50.object({ memberships: z50.array(publicMembershipProductSchema) }),
29431
29637
  autoApplyDiscount: eventAutoApplyDiscountPreviewSchema.nullable().optional().default(null)
29432
29638
  }).optional(),
29433
29639
  occurrenceContext: occurrenceContextSchema2.optional()
@@ -29751,7 +29957,7 @@ var eventSpotlightBlockDefinition = {
29751
29957
  };
29752
29958
 
29753
29959
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
29754
- import { z as z51 } from "zod";
29960
+ import { z as z52 } from "zod";
29755
29961
 
29756
29962
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
29757
29963
  var COLUMN_CLASSES = {
@@ -29859,16 +30065,16 @@ function computeMediaTransformStyle(value, style, targetAspectRatio, options) {
29859
30065
  }
29860
30066
 
29861
30067
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
29862
- import { z as z50 } from "zod";
30068
+ import { z as z51 } from "zod";
29863
30069
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
29864
- var eventPageSizeSchema = z50.union([
29865
- z50.literal(3),
29866
- z50.literal(6),
29867
- z50.literal(10),
29868
- z50.literal(12),
29869
- z50.literal(20),
29870
- z50.literal(24),
29871
- z50.literal(30)
30070
+ var eventPageSizeSchema = z51.union([
30071
+ z51.literal(3),
30072
+ z51.literal(6),
30073
+ z51.literal(10),
30074
+ z51.literal(12),
30075
+ z51.literal(20),
30076
+ z51.literal(24),
30077
+ z51.literal(30)
29872
30078
  ]);
29873
30079
  var eventPageSizeSet = new Set(eventPageSizeValues);
29874
30080
  function resolveEventPageSize(value, fallback = 12) {
@@ -29878,15 +30084,15 @@ function resolveEventPageSize(value, fallback = 12) {
29878
30084
  function resolveEventCalendarListPageSize(input) {
29879
30085
  return resolveEventPageSize(input.eventsPerPage);
29880
30086
  }
29881
- var eventListPaginationActionSchema = z50.discriminatedUnion("kind", [
29882
- z50.object({
29883
- kind: z50.literal("loadMore"),
29884
- label: z50.string()
30087
+ var eventListPaginationActionSchema = z51.discriminatedUnion("kind", [
30088
+ z51.object({
30089
+ kind: z51.literal("loadMore"),
30090
+ label: z51.string()
29885
30091
  }),
29886
- z50.object({
29887
- kind: z50.literal("seeAllLink"),
29888
- label: z50.string(),
29889
- href: z50.string()
30092
+ z51.object({
30093
+ kind: z51.literal("seeAllLink"),
30094
+ label: z51.string(),
30095
+ href: z51.string()
29890
30096
  })
29891
30097
  ]);
29892
30098
  function resolveEventListPaginationAction(input) {
@@ -29899,89 +30105,89 @@ function resolveEventListPaginationAction(input) {
29899
30105
  }
29900
30106
 
29901
30107
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
29902
- var legacyEventCardVariantSchema = z51.enum(["variant1", "variant2"]);
29903
- var eventCardVariantInputSchema = z51.union([
30108
+ var legacyEventCardVariantSchema = z52.enum(["variant1", "variant2"]);
30109
+ var eventCardVariantInputSchema = z52.union([
29904
30110
  cardVariantRoleSchema,
29905
30111
  legacyEventCardVariantSchema
29906
30112
  ]);
29907
- var cardOrientationSchema = z51.enum(["vertical", "horizontal"]);
29908
- var eventBlockKindSchema = z51.enum(eventBlockKindValues);
29909
- var eventSurfaceScopeSchema = z51.enum(eventSurfaceScopeValues);
29910
- var eventScheduleScopeSchema2 = z51.enum(eventScheduleScopeValues);
29911
- var eventListingSourceSchema = z51.object({
29912
- events: z51.array(publicEventSchema).nullable().optional(),
29913
- siteId: z51.string(),
29914
- apiBaseUrl: z51.string().optional(),
30113
+ var cardOrientationSchema = z52.enum(["vertical", "horizontal"]);
30114
+ var eventBlockKindSchema = z52.enum(eventBlockKindValues);
30115
+ var eventSurfaceScopeSchema = z52.enum(eventSurfaceScopeValues);
30116
+ var eventScheduleScopeSchema2 = z52.enum(eventScheduleScopeValues);
30117
+ var eventListingSourceSchema = z52.object({
30118
+ events: z52.array(publicEventSchema).nullable().optional(),
30119
+ siteId: z52.string(),
30120
+ apiBaseUrl: z52.string().optional(),
29915
30121
  stage: previewStageSchema.optional(),
29916
30122
  layout: eventLayoutSchema.optional(),
29917
30123
  columns: columnOptionSchema.optional(),
29918
- eventsPerPage: z51.string().optional(),
29919
- paginationMode: z51.enum(["loadMore", "seeAllLink"]).optional(),
29920
- seeAllUrl: z51.string().optional(),
29921
- loadMoreText: z51.string().optional(),
30124
+ eventsPerPage: z52.string().optional(),
30125
+ paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30126
+ seeAllUrl: z52.string().optional(),
30127
+ loadMoreText: z52.string().optional(),
29922
30128
  cardVariant: eventCardVariantInputSchema.optional(),
29923
30129
  buttonVariant: eventButtonVariantSchema.optional(),
29924
- buttonText: z51.string().optional(),
29925
- showVenue: z51.boolean().optional(),
29926
- showMap: z51.boolean().optional(),
29927
- showCapacity: z51.boolean().optional(),
29928
- emptyMessage: z51.string().optional(),
29929
- className: z51.string().optional(),
29930
- showFilters: z51.boolean().nullable().optional(),
30130
+ buttonText: z52.string().optional(),
30131
+ showVenue: z52.boolean().optional(),
30132
+ showMap: z52.boolean().optional(),
30133
+ showCapacity: z52.boolean().optional(),
30134
+ emptyMessage: z52.string().optional(),
30135
+ className: z52.string().optional(),
30136
+ showFilters: z52.boolean().nullable().optional(),
29931
30137
  showCategoryFilter: filterAutoShowSchema.optional(),
29932
- showVenueFilter: z51.boolean().nullable().optional(),
29933
- showStaffFilter: z51.boolean().nullable().optional(),
30138
+ showVenueFilter: z52.boolean().nullable().optional(),
30139
+ showStaffFilter: z52.boolean().nullable().optional(),
29934
30140
  eventKind: eventBlockKindSchema.nullable().optional(),
29935
30141
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
29936
- filterEventPresets: z51.union([z51.string(), z51.array(z51.string())]).nullable().optional(),
30142
+ filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
29937
30143
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
29938
- filterCategoryIds: z51.string().nullable().optional(),
29939
- filterStaffMemberId: z51.string().nullable().optional(),
29940
- filterVenueId: z51.string().nullable().optional()
30144
+ filterCategoryIds: z52.string().nullable().optional(),
30145
+ filterStaffMemberId: z52.string().nullable().optional(),
30146
+ filterVenueId: z52.string().nullable().optional()
29941
30147
  });
29942
- var eventListingDisplaySchema = z51.object({
29943
- kind: z51.literal("event-listing"),
29944
- state: z51.enum(["loading", "empty", "ready"]),
30148
+ var eventListingDisplaySchema = z52.object({
30149
+ kind: z52.literal("event-listing"),
30150
+ state: z52.enum(["loading", "empty", "ready"]),
29945
30151
  listLayout: eventLayoutSchema,
29946
- className: z51.string().nullable(),
29947
- emptyMessage: z51.string(),
29948
- loadingMessage: z51.string(),
29949
- containerClass: z51.string(),
30152
+ className: z52.string().nullable(),
30153
+ emptyMessage: z52.string(),
30154
+ loadingMessage: z52.string(),
30155
+ containerClass: z52.string(),
29950
30156
  cardVariant: cardVariantRoleSchema,
29951
30157
  buttonVariant: eventButtonVariantSchema,
29952
- buttonText: z51.string(),
29953
- showVenue: z51.boolean(),
29954
- showMap: z51.boolean(),
29955
- showCapacity: z51.boolean(),
30158
+ buttonText: z52.string(),
30159
+ showVenue: z52.boolean(),
30160
+ showMap: z52.boolean(),
30161
+ showCapacity: z52.boolean(),
29956
30162
  orientation: cardOrientationSchema,
29957
- events: z51.array(publicEventSchema)
30163
+ events: z52.array(publicEventSchema)
29958
30164
  });
29959
- var eventListingHydrationSchema = z51.object({
29960
- siteId: z51.string(),
30165
+ var eventListingHydrationSchema = z52.object({
30166
+ siteId: z52.string(),
29961
30167
  stage: previewStageSchema.optional(),
29962
30168
  eventsPerPage: eventPageSizeSchema,
29963
30169
  paginationAction: eventListPaginationActionSchema,
29964
- showFilters: z51.boolean(),
30170
+ showFilters: z52.boolean(),
29965
30171
  showCategoryFilter: filterAutoShowSchema,
29966
- showVenueFilter: z51.boolean(),
29967
- showStaffFilter: z51.boolean(),
30172
+ showVenueFilter: z52.boolean(),
30173
+ showStaffFilter: z52.boolean(),
29968
30174
  eventKind: eventBlockKindSchema,
29969
30175
  eventSurface: eventSurfaceScopeSchema,
29970
- filterEventPresets: z51.string().nullable(),
30176
+ filterEventPresets: z52.string().nullable(),
29971
30177
  scheduleScope: eventScheduleScopeSchema2,
29972
- filterCategoryIds: z51.string().nullable().optional(),
29973
- filterStaffMemberId: z51.string().nullable().optional(),
29974
- filterVenueId: z51.string().nullable().optional(),
29975
- fetchInitialEventsOnMount: z51.boolean()
30178
+ filterCategoryIds: z52.string().nullable().optional(),
30179
+ filterStaffMemberId: z52.string().nullable().optional(),
30180
+ filterVenueId: z52.string().nullable().optional(),
30181
+ fetchInitialEventsOnMount: z52.boolean()
29976
30182
  });
29977
- var eventListingRenderSchema = z51.object({
30183
+ var eventListingRenderSchema = z52.object({
29978
30184
  display: eventListingDisplaySchema,
29979
30185
  hydration: eventListingHydrationSchema
29980
30186
  });
29981
30187
  var eventListingIslandMetaCodec = createZodCodec(
29982
- z51.object({
29983
- siteId: z51.string(),
29984
- apiBaseUrl: z51.string().optional(),
30188
+ z52.object({
30189
+ siteId: z52.string(),
30190
+ apiBaseUrl: z52.string().optional(),
29985
30191
  stage: previewStageSchema.optional()
29986
30192
  })
29987
30193
  );
@@ -30348,15 +30554,15 @@ var eventListingBlockDefinition = {
30348
30554
  };
30349
30555
 
30350
30556
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
30351
- import { z as z52 } from "zod";
30352
- var eventBlockKindSchema2 = z52.enum(eventBlockKindValues);
30353
- var eventSurfaceScopeSchema2 = z52.enum(eventSurfaceScopeValues);
30354
- var eventScheduleScopeSchema3 = z52.enum(eventScheduleScopeValues);
30355
- var eventCalendarSourceSchema = z52.object(
30557
+ import { z as z53 } from "zod";
30558
+ var eventBlockKindSchema2 = z53.enum(eventBlockKindValues);
30559
+ var eventSurfaceScopeSchema2 = z53.enum(eventSurfaceScopeValues);
30560
+ var eventScheduleScopeSchema3 = z53.enum(eventScheduleScopeValues);
30561
+ var eventCalendarSourceSchema = z53.object(
30356
30562
  {
30357
- events: z52.array(publicEventSchema).nullable().optional(),
30358
- siteId: z52.string(),
30359
- apiBaseUrl: z52.string().optional(),
30563
+ events: z53.array(publicEventSchema).nullable().optional(),
30564
+ siteId: z53.string(),
30565
+ apiBaseUrl: z53.string().optional(),
30360
30566
  stage: previewStageSchema.optional(),
30361
30567
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
30362
30568
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -30364,78 +30570,78 @@ var eventCalendarSourceSchema = z52.object(
30364
30570
  listColumns: columnOptionSchema.optional(),
30365
30571
  layout: eventLayoutSchema.optional(),
30366
30572
  columns: columnOptionSchema.optional(),
30367
- eventsPerPage: z52.string().optional(),
30368
- paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30369
- seeAllUrl: z52.string().optional(),
30370
- loadMoreText: z52.string().optional(),
30573
+ eventsPerPage: z53.string().optional(),
30574
+ paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
30575
+ seeAllUrl: z53.string().optional(),
30576
+ loadMoreText: z53.string().optional(),
30371
30577
  startOfWeek: weekStartSchema.optional(),
30372
30578
  calendarTabViews: calendarTabViewsSchema.optional(),
30373
- showFilters: z52.boolean().nullable().optional(),
30579
+ showFilters: z53.boolean().nullable().optional(),
30374
30580
  showCategoryFilter: filterAutoShowSchema.optional(),
30375
- showVenueFilter: z52.boolean().nullable().optional(),
30376
- showStaffFilter: z52.boolean().nullable().optional(),
30581
+ showVenueFilter: z53.boolean().nullable().optional(),
30582
+ showStaffFilter: z53.boolean().nullable().optional(),
30377
30583
  kind: eventBlockKindSchema2.nullable().optional(),
30378
30584
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
30379
- filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30585
+ filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30380
30586
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
30381
- filterCategoryIds: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30382
- filterStaffMemberId: z52.string().nullable().optional(),
30383
- filterVenueId: z52.string().nullable().optional(),
30587
+ filterCategoryIds: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30588
+ filterStaffMemberId: z53.string().nullable().optional(),
30589
+ filterVenueId: z53.string().nullable().optional(),
30384
30590
  buttonVariant: eventButtonVariantSchema.optional(),
30385
- buttonText: z52.string().optional(),
30386
- showVenue: z52.boolean().nullable().optional(),
30387
- showMap: z52.boolean().nullable().optional(),
30388
- showCapacity: z52.boolean().nullable().optional(),
30389
- emptyMessage: z52.string().optional(),
30390
- className: z52.string().optional()
30591
+ buttonText: z53.string().optional(),
30592
+ showVenue: z53.boolean().nullable().optional(),
30593
+ showMap: z53.boolean().nullable().optional(),
30594
+ showCapacity: z53.boolean().nullable().optional(),
30595
+ emptyMessage: z53.string().optional(),
30596
+ className: z53.string().optional()
30391
30597
  }
30392
30598
  );
30393
- var eventCalendarDisplaySchema = z52.object({
30394
- kind: z52.literal("event-calendar"),
30599
+ var eventCalendarDisplaySchema = z53.object({
30600
+ kind: z53.literal("event-calendar"),
30395
30601
  displayMode: eventCalendarDisplayModeSchema,
30396
- className: z52.string().nullable(),
30397
- events: z52.array(publicEventSchema),
30602
+ className: z53.string().nullable(),
30603
+ events: z53.array(publicEventSchema),
30398
30604
  listLayout: eventLayoutSchema,
30399
30605
  listColumns: columnOptionSchema,
30400
30606
  eventsPerPage: eventPageSizeSchema,
30401
30607
  paginationAction: eventListPaginationActionSchema,
30402
30608
  startOfWeek: weekStartSchema,
30403
30609
  calendarTabViews: calendarTabViewsSchema,
30404
- showFilters: z52.boolean(),
30610
+ showFilters: z53.boolean(),
30405
30611
  showCategoryFilter: filterAutoShowSchema,
30406
- showVenueFilter: z52.boolean(),
30407
- showStaffFilter: z52.boolean(),
30612
+ showVenueFilter: z53.boolean(),
30613
+ showStaffFilter: z53.boolean(),
30408
30614
  eventKind: eventBlockKindSchema2,
30409
30615
  eventSurface: eventSurfaceScopeSchema2,
30410
- filterEventPresets: z52.string().nullable(),
30616
+ filterEventPresets: z53.string().nullable(),
30411
30617
  scheduleScope: eventScheduleScopeSchema3,
30412
- filterCategoryIds: z52.string().nullable(),
30413
- filterStaffMemberId: z52.string().nullable(),
30414
- filterVenueId: z52.string().nullable(),
30618
+ filterCategoryIds: z53.string().nullable(),
30619
+ filterStaffMemberId: z53.string().nullable(),
30620
+ filterVenueId: z53.string().nullable(),
30415
30621
  buttonVariant: eventButtonVariantSchema,
30416
- buttonText: z52.string(),
30417
- showVenue: z52.boolean(),
30418
- showMap: z52.boolean(),
30419
- showCapacity: z52.boolean(),
30420
- emptyMessage: z52.string()
30421
- });
30422
- var eventCalendarHydrationSchema = z52.object({
30423
- siteId: z52.string(),
30622
+ buttonText: z53.string(),
30623
+ showVenue: z53.boolean(),
30624
+ showMap: z53.boolean(),
30625
+ showCapacity: z53.boolean(),
30626
+ emptyMessage: z53.string()
30627
+ });
30628
+ var eventCalendarHydrationSchema = z53.object({
30629
+ siteId: z53.string(),
30424
30630
  stage: previewStageSchema.optional(),
30425
- prefetchedEvents: z52.boolean(),
30631
+ prefetchedEvents: z53.boolean(),
30426
30632
  eventKind: eventBlockKindSchema2,
30427
30633
  eventSurface: eventSurfaceScopeSchema2,
30428
- filterEventPresets: z52.string().nullable(),
30634
+ filterEventPresets: z53.string().nullable(),
30429
30635
  scheduleScope: eventScheduleScopeSchema3
30430
30636
  });
30431
- var eventCalendarRenderSchema = z52.object({
30637
+ var eventCalendarRenderSchema = z53.object({
30432
30638
  display: eventCalendarDisplaySchema,
30433
30639
  hydration: eventCalendarHydrationSchema
30434
30640
  });
30435
30641
  var eventCalendarIslandMetaCodec = createZodCodec(
30436
- z52.object({
30437
- siteId: z52.string(),
30438
- apiBaseUrl: z52.string().optional(),
30642
+ z53.object({
30643
+ siteId: z53.string(),
30644
+ apiBaseUrl: z53.string().optional(),
30439
30645
  stage: previewStageSchema.optional()
30440
30646
  })
30441
30647
  );
@@ -31144,7 +31350,7 @@ var eventCalendarBlockDefinition = {
31144
31350
  };
31145
31351
 
31146
31352
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31147
- import { z as z53 } from "zod";
31353
+ import { z as z54 } from "zod";
31148
31354
 
31149
31355
  // ../blocks/src/system/blocks/offerings-preview/model.ts
31150
31356
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -31236,13 +31442,13 @@ function isRecord5(value) {
31236
31442
  }
31237
31443
 
31238
31444
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31239
- var publicRouteCandidatesSchema = z53.object({
31240
- routes: z53.array(z53.object({
31241
- entityId: z53.string(),
31242
- path: z53.string(),
31243
- title: z53.string(),
31244
- kind: z53.enum(["page", "content"]),
31245
- contentTypeKey: z53.string().nullable().optional()
31445
+ var publicRouteCandidatesSchema = z54.object({
31446
+ routes: z54.array(z54.object({
31447
+ entityId: z54.string(),
31448
+ path: z54.string(),
31449
+ title: z54.string(),
31450
+ kind: z54.enum(["page", "content"]),
31451
+ contentTypeKey: z54.string().nullable().optional()
31246
31452
  }))
31247
31453
  });
31248
31454
  var groupOverrideFields = [
@@ -31640,7 +31846,7 @@ function isRecord6(value) {
31640
31846
  }
31641
31847
 
31642
31848
  // ../blocks/src/system/blocks/embed.ts
31643
- import { z as z54 } from "zod";
31849
+ import { z as z55 } from "zod";
31644
31850
  var embedFields = [
31645
31851
  // Section heading
31646
31852
  parseFieldDefinition({
@@ -31871,18 +32077,18 @@ var embedManifest = createBlockManifest({
31871
32077
  spacing: "lg"
31872
32078
  }
31873
32079
  });
31874
- var embedEntrySchema = z54.object({
31875
- id: z54.string(),
31876
- identifier: z54.string(),
31877
- title: z54.string(),
31878
- slug: z54.string().nullable().optional(),
31879
- content: z54.record(z54.string(), z54.unknown()).optional(),
31880
- publishedAt: z54.string().nullable().optional()
32080
+ var embedEntrySchema = z55.object({
32081
+ id: z55.string(),
32082
+ identifier: z55.string(),
32083
+ title: z55.string(),
32084
+ slug: z55.string().nullable().optional(),
32085
+ content: z55.record(z55.string(), z55.unknown()).optional(),
32086
+ publishedAt: z55.string().nullable().optional()
31881
32087
  });
31882
32088
  var embedBlockDefinition = {
31883
32089
  manifest: embedManifest,
31884
32090
  dataSchemas: {
31885
- entries: z54.array(embedEntrySchema).optional()
32091
+ entries: z55.array(embedEntrySchema).optional()
31886
32092
  },
31887
32093
  dataLoaders: {
31888
32094
  entries: {
@@ -33066,52 +33272,52 @@ var fileDownloadBlockDefinition = {
33066
33272
  };
33067
33273
 
33068
33274
  // ../blocks/src/system/blocks/shop.ts
33069
- import { z as z58 } from "zod";
33275
+ import { z as z59 } from "zod";
33070
33276
 
33071
33277
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33072
- import { z as z57 } from "zod";
33278
+ import { z as z58 } from "zod";
33073
33279
 
33074
33280
  // ../blocks/src/system/blocks/products/shared.ts
33075
- import { z as z55 } from "zod";
33076
- var publicProductVariantSchema = z55.object({
33077
- id: z55.string(),
33078
- title: z55.string(),
33079
- sku: z55.string().nullable(),
33080
- priceCents: z55.number(),
33081
- stockQuantity: z55.number().nullable(),
33082
- soldOut: z55.boolean()
33083
- });
33084
- var publicProductSchema = z55.object({
33085
- id: z55.string(),
33086
- contentEntryId: z55.string().nullable(),
33087
- title: z55.string(),
33088
- slug: z55.string(),
33089
- path: z55.string().nullable(),
33090
- status: z55.enum(["draft", "active"]),
33091
- priceCents: z55.number(),
33092
- currency: z55.string(),
33093
- productType: z55.enum(["physical", "digital"]),
33094
- requiresShipping: z55.boolean(),
33095
- hasVariants: z55.boolean(),
33096
- trackInventory: z55.boolean(),
33097
- soldOut: z55.boolean(),
33098
- category: z55.object({
33099
- id: z55.string(),
33100
- name: z55.string(),
33101
- slug: z55.string()
33281
+ import { z as z56 } from "zod";
33282
+ var publicProductVariantSchema = z56.object({
33283
+ id: z56.string(),
33284
+ title: z56.string(),
33285
+ sku: z56.string().nullable(),
33286
+ priceCents: z56.number(),
33287
+ stockQuantity: z56.number().nullable(),
33288
+ soldOut: z56.boolean()
33289
+ });
33290
+ var publicProductSchema = z56.object({
33291
+ id: z56.string(),
33292
+ contentEntryId: z56.string().nullable(),
33293
+ title: z56.string(),
33294
+ slug: z56.string(),
33295
+ path: z56.string().nullable(),
33296
+ status: z56.enum(["draft", "active"]),
33297
+ priceCents: z56.number(),
33298
+ currency: z56.string(),
33299
+ productType: z56.enum(["physical", "digital"]),
33300
+ requiresShipping: z56.boolean(),
33301
+ hasVariants: z56.boolean(),
33302
+ trackInventory: z56.boolean(),
33303
+ soldOut: z56.boolean(),
33304
+ category: z56.object({
33305
+ id: z56.string(),
33306
+ name: z56.string(),
33307
+ slug: z56.string()
33102
33308
  }).nullable(),
33103
- summary: z55.string().nullable(),
33104
- body: z55.unknown().nullable(),
33105
- gallery: z55.array(
33106
- z55.object({
33107
- url: z55.string(),
33108
- alt: z55.string().nullable()
33309
+ summary: z56.string().nullable(),
33310
+ body: z56.unknown().nullable(),
33311
+ gallery: z56.array(
33312
+ z56.object({
33313
+ url: z56.string(),
33314
+ alt: z56.string().nullable()
33109
33315
  })
33110
33316
  ),
33111
- variants: z55.array(publicProductVariantSchema)
33317
+ variants: z56.array(publicProductVariantSchema)
33112
33318
  });
33113
- var publicProductsResponseSchema = z55.object({
33114
- products: z55.array(publicProductSchema)
33319
+ var publicProductsResponseSchema = z56.object({
33320
+ products: z56.array(publicProductSchema)
33115
33321
  });
33116
33322
 
33117
33323
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -33175,27 +33381,27 @@ function deriveCreditProductLabels(products, options = {}) {
33175
33381
  }
33176
33382
 
33177
33383
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
33178
- import { z as z56 } from "zod";
33179
- var storedProductCartItemSchema = z56.object({
33180
- kind: z56.literal("product"),
33181
- productId: z56.string().min(1),
33182
- productCategoryId: z56.string().min(1).optional().nullable(),
33183
- variantId: z56.string().min(1).optional().nullable(),
33184
- title: z56.string().min(1),
33185
- variantTitle: z56.string().optional().nullable(),
33186
- quantity: z56.number().finite(),
33187
- unitPriceCents: z56.number().finite(),
33188
- currency: z56.string().min(1),
33189
- imageUrl: z56.string().optional().nullable(),
33190
- soldOut: z56.boolean().optional()
33191
- });
33192
- var storedPassCartItemSchema = z56.object({
33193
- kind: z56.literal("pass"),
33194
- passId: z56.string().min(1),
33195
- title: z56.string().min(1),
33196
- quantity: z56.number().finite().optional(),
33197
- unitPriceCents: z56.number().finite(),
33198
- currency: z56.string().min(1)
33384
+ import { z as z57 } from "zod";
33385
+ var storedProductCartItemSchema = z57.object({
33386
+ kind: z57.literal("product"),
33387
+ productId: z57.string().min(1),
33388
+ productCategoryId: z57.string().min(1).optional().nullable(),
33389
+ variantId: z57.string().min(1).optional().nullable(),
33390
+ title: z57.string().min(1),
33391
+ variantTitle: z57.string().optional().nullable(),
33392
+ quantity: z57.number().finite(),
33393
+ unitPriceCents: z57.number().finite(),
33394
+ currency: z57.string().min(1),
33395
+ imageUrl: z57.string().optional().nullable(),
33396
+ soldOut: z57.boolean().optional()
33397
+ });
33398
+ var storedPassCartItemSchema = z57.object({
33399
+ kind: z57.literal("pass"),
33400
+ passId: z57.string().min(1),
33401
+ title: z57.string().min(1),
33402
+ quantity: z57.number().finite().optional(),
33403
+ unitPriceCents: z57.number().finite(),
33404
+ currency: z57.string().min(1)
33199
33405
  });
33200
33406
  function deriveCommerceCheckoutState(state) {
33201
33407
  if (state.items.length === 0) {
@@ -33234,10 +33440,7 @@ function resolveSelectedProduct(products, contentEntry, productSlug) {
33234
33440
 
33235
33441
  // ../blocks/src/system/runtime/nodes/commerce/shared/display.ts
33236
33442
  function formatCommercePrice(cents, currency) {
33237
- return new Intl.NumberFormat("en-US", {
33238
- style: "currency",
33239
- currency: currency.toUpperCase()
33240
- }).format(cents / 100);
33443
+ return formatCurrencyAmount(cents, currency);
33241
33444
  }
33242
33445
  function getPassesHeading(passes, explicitHeading) {
33243
33446
  if (explicitHeading) return explicitHeading;
@@ -33432,214 +33635,214 @@ function formatValidity(days) {
33432
33635
  }
33433
33636
 
33434
33637
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33435
- var shopModeSchema = z57.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33436
- var contentEntrySchema3 = z57.object({
33437
- id: z57.string().nullable().optional(),
33438
- slug: z57.string().nullable().optional()
33638
+ var shopModeSchema = z58.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33639
+ var contentEntrySchema3 = z58.object({
33640
+ id: z58.string().nullable().optional(),
33641
+ slug: z58.string().nullable().optional()
33439
33642
  }).nullable();
33440
- var shopSourceSchema = z57.object({
33441
- className: z57.string().nullable().optional(),
33643
+ var shopSourceSchema = z58.object({
33644
+ className: z58.string().nullable().optional(),
33442
33645
  mode: shopModeSchema.optional(),
33443
- heading: z57.string().nullable().optional(),
33444
- productSlug: z57.string().nullable().optional(),
33445
- showPasses: z57.boolean().optional(),
33446
- showMemberships: z57.boolean().optional(),
33447
- layout: z57.enum(["grid", "list"]).optional(),
33448
- columns: z57.string().optional(),
33449
- showDescriptions: z57.boolean().optional(),
33450
- showSummary: z57.boolean().optional(),
33451
- showBody: z57.boolean().optional(),
33452
- showPrices: z57.boolean().optional(),
33453
- showValidityPeriod: z57.boolean().optional(),
33454
- showPricePerCredit: z57.boolean().nullable().optional(),
33455
- passesHeading: z57.string().optional(),
33456
- membershipsHeading: z57.string().optional(),
33457
- buyButtonText: z57.string().optional(),
33458
- addButtonText: z57.string().optional(),
33459
- passPurchaseMode: z57.enum(["add_to_cart", "buy_now"]).optional(),
33460
- subscribeButtonText: z57.string().optional(),
33461
- emptyStateText: z57.string().optional(),
33462
- checkoutButtonText: z57.string().optional(),
33463
- clearButtonText: z57.string().optional(),
33464
- submitButtonText: z57.string().optional(),
33646
+ heading: z58.string().nullable().optional(),
33647
+ productSlug: z58.string().nullable().optional(),
33648
+ showPasses: z58.boolean().optional(),
33649
+ showMemberships: z58.boolean().optional(),
33650
+ layout: z58.enum(["grid", "list"]).optional(),
33651
+ columns: z58.string().optional(),
33652
+ showDescriptions: z58.boolean().optional(),
33653
+ showSummary: z58.boolean().optional(),
33654
+ showBody: z58.boolean().optional(),
33655
+ showPrices: z58.boolean().optional(),
33656
+ showValidityPeriod: z58.boolean().optional(),
33657
+ showPricePerCredit: z58.boolean().nullable().optional(),
33658
+ passesHeading: z58.string().optional(),
33659
+ membershipsHeading: z58.string().optional(),
33660
+ buyButtonText: z58.string().optional(),
33661
+ addButtonText: z58.string().optional(),
33662
+ passPurchaseMode: z58.enum(["add_to_cart", "buy_now"]).optional(),
33663
+ subscribeButtonText: z58.string().optional(),
33664
+ emptyStateText: z58.string().optional(),
33665
+ checkoutButtonText: z58.string().optional(),
33666
+ clearButtonText: z58.string().optional(),
33667
+ submitButtonText: z58.string().optional(),
33465
33668
  contentEntry: contentEntrySchema3.optional(),
33466
- passes: z57.array(publicPassProductSchema).nullable().optional(),
33467
- memberships: z57.array(publicMembershipProductSchema).nullable().optional(),
33468
- products: z57.array(publicProductSchema).nullable().optional(),
33469
- siteId: z57.string().optional(),
33470
- apiBaseUrl: z57.string().optional(),
33669
+ passes: z58.array(publicPassProductSchema).nullable().optional(),
33670
+ memberships: z58.array(publicMembershipProductSchema).nullable().optional(),
33671
+ products: z58.array(publicProductSchema).nullable().optional(),
33672
+ siteId: z58.string().optional(),
33673
+ apiBaseUrl: z58.string().optional(),
33471
33674
  stage: previewStageSchema.optional()
33472
33675
  });
33473
- var productVariantOptionDisplaySchema = z57.object({
33474
- id: z57.string(),
33475
- label: z57.string(),
33476
- soldOut: z57.boolean()
33477
- });
33478
- var productCardDisplaySchema = z57.object({
33479
- productId: z57.string(),
33480
- title: z57.string(),
33481
- path: z57.string().nullable(),
33482
- summary: z57.string().nullable(),
33483
- priceLabel: z57.string().nullable(),
33484
- image: z57.object({
33485
- url: z57.string(),
33486
- alt: z57.string().nullable()
33676
+ var productVariantOptionDisplaySchema = z58.object({
33677
+ id: z58.string(),
33678
+ label: z58.string(),
33679
+ soldOut: z58.boolean()
33680
+ });
33681
+ var productCardDisplaySchema = z58.object({
33682
+ productId: z58.string(),
33683
+ title: z58.string(),
33684
+ path: z58.string().nullable(),
33685
+ summary: z58.string().nullable(),
33686
+ priceLabel: z58.string().nullable(),
33687
+ image: z58.object({
33688
+ url: z58.string(),
33689
+ alt: z58.string().nullable()
33487
33690
  }).nullable(),
33488
- variantOptions: z57.array(productVariantOptionDisplaySchema),
33489
- selectedVariantId: z57.string().nullable(),
33490
- selectionLabel: z57.string(),
33491
- actionLabel: z57.string(),
33492
- soldOut: z57.boolean()
33493
- });
33494
- var productListDisplaySchema = z57.object({
33495
- kind: z57.literal("product-list"),
33496
- state: z57.enum(["empty", "ready"]),
33497
- heading: z57.string().nullable(),
33498
- className: z57.string().nullable(),
33499
- layout: z57.enum(["grid", "list"]),
33500
- columns: z57.string(),
33501
- emptyMessage: z57.string(),
33502
- cards: z57.array(productCardDisplaySchema)
33503
- });
33504
- var productDetailDisplaySchema = z57.discriminatedUnion("state", [
33505
- z57.object({
33506
- kind: z57.literal("product-detail"),
33507
- state: z57.literal("empty"),
33508
- heading: z57.string().nullable(),
33509
- className: z57.string().nullable(),
33510
- emptyMessage: z57.string()
33691
+ variantOptions: z58.array(productVariantOptionDisplaySchema),
33692
+ selectedVariantId: z58.string().nullable(),
33693
+ selectionLabel: z58.string(),
33694
+ actionLabel: z58.string(),
33695
+ soldOut: z58.boolean()
33696
+ });
33697
+ var productListDisplaySchema = z58.object({
33698
+ kind: z58.literal("product-list"),
33699
+ state: z58.enum(["empty", "ready"]),
33700
+ heading: z58.string().nullable(),
33701
+ className: z58.string().nullable(),
33702
+ layout: z58.enum(["grid", "list"]),
33703
+ columns: z58.string(),
33704
+ emptyMessage: z58.string(),
33705
+ cards: z58.array(productCardDisplaySchema)
33706
+ });
33707
+ var productDetailDisplaySchema = z58.discriminatedUnion("state", [
33708
+ z58.object({
33709
+ kind: z58.literal("product-detail"),
33710
+ state: z58.literal("empty"),
33711
+ heading: z58.string().nullable(),
33712
+ className: z58.string().nullable(),
33713
+ emptyMessage: z58.string()
33511
33714
  }),
33512
- z57.object({
33513
- kind: z57.literal("product-detail"),
33514
- state: z57.literal("ready"),
33515
- heading: z57.string().nullable(),
33516
- className: z57.string().nullable(),
33517
- title: z57.string(),
33518
- priceLabel: z57.string(),
33519
- summary: z57.string().nullable(),
33520
- categoryLabel: z57.string().nullable(),
33521
- gallery: z57.array(z57.object({
33522
- url: z57.string(),
33523
- alt: z57.string().nullable()
33715
+ z58.object({
33716
+ kind: z58.literal("product-detail"),
33717
+ state: z58.literal("ready"),
33718
+ heading: z58.string().nullable(),
33719
+ className: z58.string().nullable(),
33720
+ title: z58.string(),
33721
+ priceLabel: z58.string(),
33722
+ summary: z58.string().nullable(),
33723
+ categoryLabel: z58.string().nullable(),
33724
+ gallery: z58.array(z58.object({
33725
+ url: z58.string(),
33726
+ alt: z58.string().nullable()
33524
33727
  })),
33525
- variantOptions: z57.array(productVariantOptionDisplaySchema),
33526
- selectedVariantId: z57.string().nullable(),
33527
- selectionLabel: z57.string(),
33528
- actionLabel: z57.string(),
33529
- soldOut: z57.boolean(),
33530
- body: z57.unknown().nullable()
33728
+ variantOptions: z58.array(productVariantOptionDisplaySchema),
33729
+ selectedVariantId: z58.string().nullable(),
33730
+ selectionLabel: z58.string(),
33731
+ actionLabel: z58.string(),
33732
+ soldOut: z58.boolean(),
33733
+ body: z58.unknown().nullable()
33531
33734
  })
33532
33735
  ]);
33533
- var passCardDisplaySchema = z57.object({
33534
- id: z57.string(),
33535
- title: z57.string(),
33536
- description: z57.string().nullable(),
33537
- priceLabel: z57.string(),
33538
- creditsLabel: z57.string(),
33539
- perCreditLabel: z57.string().nullable(),
33540
- validityLabel: z57.string().nullable(),
33541
- actionLabel: z57.string()
33542
- });
33543
- var membershipCardDisplaySchema = z57.object({
33544
- id: z57.string(),
33545
- title: z57.string(),
33546
- description: z57.string().nullable(),
33547
- priceLabel: z57.string(),
33548
- intervalLabel: z57.string(),
33549
- actionLabel: z57.string()
33550
- });
33551
- var passesMembershipsDisplaySchema = z57.object({
33552
- kind: z57.literal("passes-memberships"),
33553
- state: z57.enum(["empty", "ready"]),
33554
- className: z57.string().nullable(),
33555
- layout: z57.enum(["grid", "list"]),
33556
- columns: z57.string(),
33557
- emptyMessage: z57.string(),
33558
- passesHeading: z57.string(),
33559
- membershipsHeading: z57.string(),
33560
- passes: z57.array(passCardDisplaySchema),
33561
- memberships: z57.array(membershipCardDisplaySchema)
33562
- });
33563
- var cartLineDisplaySchema = z57.object({
33564
- key: z57.string(),
33565
- title: z57.string(),
33566
- priceLabel: z57.string(),
33567
- quantity: z57.number(),
33568
- quantityEditable: z57.boolean()
33569
- });
33570
- var cartDisplaySchema = z57.object({
33571
- kind: z57.literal("cart"),
33572
- state: z57.enum(["empty", "ready"]),
33573
- heading: z57.string().nullable(),
33574
- className: z57.string().nullable(),
33575
- emptyMessage: z57.string(),
33576
- supportText: z57.string().nullable(),
33577
- items: z57.array(cartLineDisplaySchema),
33578
- subtotalLabel: z57.string().nullable(),
33579
- checkoutButtonText: z57.string(),
33580
- clearButtonText: z57.string()
33581
- });
33582
- var checkoutDisplaySchema = z57.object({
33583
- kind: z57.literal("checkout"),
33584
- state: z57.enum(["empty", "blocked", "ready"]),
33585
- heading: z57.string().nullable(),
33586
- className: z57.string().nullable(),
33587
- message: z57.string().nullable(),
33588
- submitButtonText: z57.string()
33589
- });
33590
- var passesMembershipsHydrationSchema = z57.object({
33591
- passes: z57.array(publicPassProductSchema),
33592
- memberships: z57.array(publicMembershipProductSchema),
33593
- passPurchaseMode: z57.enum(["add_to_cart", "buy_now"])
33594
- });
33595
- var productListHydrationSchema = z57.object({
33596
- products: z57.array(publicProductSchema),
33597
- showSummary: z57.boolean(),
33598
- showPrices: z57.boolean(),
33599
- addButtonText: z57.string()
33600
- });
33601
- var productDetailHydrationSchema = z57.object({
33602
- products: z57.array(publicProductSchema),
33603
- productId: z57.string().nullable(),
33604
- showSummary: z57.boolean(),
33605
- showBody: z57.boolean(),
33606
- addButtonText: z57.string()
33607
- });
33608
- var cartHydrationSchema = z57.object({
33609
- emptyStateText: z57.string(),
33610
- checkoutButtonText: z57.string(),
33611
- clearButtonText: z57.string()
33612
- });
33613
- var checkoutHydrationSchema = z57.object({
33614
- emptyStateText: z57.string(),
33615
- submitButtonText: z57.string()
33616
- });
33617
- var passesMembershipsRenderSchema = z57.object({
33736
+ var passCardDisplaySchema = z58.object({
33737
+ id: z58.string(),
33738
+ title: z58.string(),
33739
+ description: z58.string().nullable(),
33740
+ priceLabel: z58.string(),
33741
+ creditsLabel: z58.string(),
33742
+ perCreditLabel: z58.string().nullable(),
33743
+ validityLabel: z58.string().nullable(),
33744
+ actionLabel: z58.string()
33745
+ });
33746
+ var membershipCardDisplaySchema = z58.object({
33747
+ id: z58.string(),
33748
+ title: z58.string(),
33749
+ description: z58.string().nullable(),
33750
+ priceLabel: z58.string(),
33751
+ intervalLabel: z58.string(),
33752
+ actionLabel: z58.string()
33753
+ });
33754
+ var passesMembershipsDisplaySchema = z58.object({
33755
+ kind: z58.literal("passes-memberships"),
33756
+ state: z58.enum(["empty", "ready"]),
33757
+ className: z58.string().nullable(),
33758
+ layout: z58.enum(["grid", "list"]),
33759
+ columns: z58.string(),
33760
+ emptyMessage: z58.string(),
33761
+ passesHeading: z58.string(),
33762
+ membershipsHeading: z58.string(),
33763
+ passes: z58.array(passCardDisplaySchema),
33764
+ memberships: z58.array(membershipCardDisplaySchema)
33765
+ });
33766
+ var cartLineDisplaySchema = z58.object({
33767
+ key: z58.string(),
33768
+ title: z58.string(),
33769
+ priceLabel: z58.string(),
33770
+ quantity: z58.number(),
33771
+ quantityEditable: z58.boolean()
33772
+ });
33773
+ var cartDisplaySchema = z58.object({
33774
+ kind: z58.literal("cart"),
33775
+ state: z58.enum(["empty", "ready"]),
33776
+ heading: z58.string().nullable(),
33777
+ className: z58.string().nullable(),
33778
+ emptyMessage: z58.string(),
33779
+ supportText: z58.string().nullable(),
33780
+ items: z58.array(cartLineDisplaySchema),
33781
+ subtotalLabel: z58.string().nullable(),
33782
+ checkoutButtonText: z58.string(),
33783
+ clearButtonText: z58.string()
33784
+ });
33785
+ var checkoutDisplaySchema = z58.object({
33786
+ kind: z58.literal("checkout"),
33787
+ state: z58.enum(["empty", "blocked", "ready"]),
33788
+ heading: z58.string().nullable(),
33789
+ className: z58.string().nullable(),
33790
+ message: z58.string().nullable(),
33791
+ submitButtonText: z58.string()
33792
+ });
33793
+ var passesMembershipsHydrationSchema = z58.object({
33794
+ passes: z58.array(publicPassProductSchema),
33795
+ memberships: z58.array(publicMembershipProductSchema),
33796
+ passPurchaseMode: z58.enum(["add_to_cart", "buy_now"])
33797
+ });
33798
+ var productListHydrationSchema = z58.object({
33799
+ products: z58.array(publicProductSchema),
33800
+ showSummary: z58.boolean(),
33801
+ showPrices: z58.boolean(),
33802
+ addButtonText: z58.string()
33803
+ });
33804
+ var productDetailHydrationSchema = z58.object({
33805
+ products: z58.array(publicProductSchema),
33806
+ productId: z58.string().nullable(),
33807
+ showSummary: z58.boolean(),
33808
+ showBody: z58.boolean(),
33809
+ addButtonText: z58.string()
33810
+ });
33811
+ var cartHydrationSchema = z58.object({
33812
+ emptyStateText: z58.string(),
33813
+ checkoutButtonText: z58.string(),
33814
+ clearButtonText: z58.string()
33815
+ });
33816
+ var checkoutHydrationSchema = z58.object({
33817
+ emptyStateText: z58.string(),
33818
+ submitButtonText: z58.string()
33819
+ });
33820
+ var passesMembershipsRenderSchema = z58.object({
33618
33821
  display: passesMembershipsDisplaySchema,
33619
33822
  hydration: passesMembershipsHydrationSchema
33620
33823
  });
33621
- var productListRenderSchema = z57.object({
33824
+ var productListRenderSchema = z58.object({
33622
33825
  display: productListDisplaySchema,
33623
33826
  hydration: productListHydrationSchema
33624
33827
  });
33625
- var productDetailRenderSchema = z57.object({
33828
+ var productDetailRenderSchema = z58.object({
33626
33829
  display: productDetailDisplaySchema,
33627
33830
  hydration: productDetailHydrationSchema
33628
33831
  });
33629
- var cartRenderSchema = z57.object({
33832
+ var cartRenderSchema = z58.object({
33630
33833
  display: cartDisplaySchema,
33631
33834
  hydration: cartHydrationSchema
33632
33835
  });
33633
- var checkoutRenderSchema = z57.object({
33836
+ var checkoutRenderSchema = z58.object({
33634
33837
  display: checkoutDisplaySchema,
33635
33838
  hydration: checkoutHydrationSchema
33636
33839
  });
33637
33840
  function resolveShowPricePerCredit(source) {
33638
33841
  return source.showPricePerCredit ?? true;
33639
33842
  }
33640
- var shopIslandMetaCodec = createZodCodec(z57.object({
33641
- siteId: z57.string().optional(),
33642
- apiBaseUrl: z57.string().optional(),
33843
+ var shopIslandMetaCodec = createZodCodec(z58.object({
33844
+ siteId: z58.string().optional(),
33845
+ apiBaseUrl: z58.string().optional(),
33643
33846
  stage: previewStageSchema.optional()
33644
33847
  }));
33645
33848
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -34017,9 +34220,9 @@ var shopBlockDefinition = {
34017
34220
  runtime: shopBlockRuntime,
34018
34221
  dataSchemas: {
34019
34222
  // listPublicPasses returns { passes: [...] }
34020
- passes: z58.object({ passes: z58.array(publicPassProductSchema) }).optional(),
34223
+ passes: z59.object({ passes: z59.array(publicPassProductSchema) }).optional(),
34021
34224
  // listPublicMemberships returns { memberships: [...] }
34022
- memberships: z58.object({ memberships: z58.array(publicMembershipProductSchema) }).optional()
34225
+ memberships: z59.object({ memberships: z59.array(publicMembershipProductSchema) }).optional()
34023
34226
  },
34024
34227
  dataLoaders: {
34025
34228
  // Load passes for display
@@ -34042,7 +34245,7 @@ var shopBlockDefinition = {
34042
34245
  };
34043
34246
 
34044
34247
  // ../blocks/src/system/blocks/product-list.ts
34045
- import { z as z59 } from "zod";
34248
+ import { z as z60 } from "zod";
34046
34249
  var productListManifest = createBlockManifest({
34047
34250
  id: "block.product-list",
34048
34251
  version: "1.0.0",
@@ -34175,7 +34378,7 @@ var productListBlockDefinition = {
34175
34378
  }
34176
34379
  }
34177
34380
  };
34178
- var productListDataSchema = z59.object({
34381
+ var productListDataSchema = z60.object({
34179
34382
  products: publicProductsResponseSchema.optional()
34180
34383
  });
34181
34384
 
@@ -34436,72 +34639,72 @@ var checkoutBlockDefinition = {
34436
34639
  };
34437
34640
 
34438
34641
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
34439
- import { z as z60 } from "zod";
34440
- var publicGiftCardOfferSchema = z60.object({
34441
- id: z60.string(),
34442
- kind: z60.literal("gift_card"),
34443
- title: z60.string(),
34444
- description: z60.string().nullable(),
34445
- sortOrder: z60.number().int(),
34446
- giftCard: z60.object({
34447
- fixedDenominations: z60.array(z60.number().int().positive()),
34448
- customAmountEnabled: z60.boolean(),
34449
- customAmountMinCents: z60.number().int().positive(),
34450
- customAmountMaxCents: z60.number().int().positive()
34642
+ import { z as z61 } from "zod";
34643
+ var publicGiftCardOfferSchema = z61.object({
34644
+ id: z61.string(),
34645
+ kind: z61.literal("gift_card"),
34646
+ title: z61.string(),
34647
+ description: z61.string().nullable(),
34648
+ sortOrder: z61.number().int(),
34649
+ giftCard: z61.object({
34650
+ fixedDenominations: z61.array(z61.number().int().positive()),
34651
+ customAmountEnabled: z61.boolean(),
34652
+ customAmountMinCents: z61.number().int().positive(),
34653
+ customAmountMaxCents: z61.number().int().positive()
34451
34654
  }),
34452
- voucher: z60.null()
34453
- });
34454
- var publicVoucherOfferSchema = z60.object({
34455
- id: z60.string(),
34456
- kind: z60.literal("voucher"),
34457
- title: z60.string(),
34458
- description: z60.string().nullable(),
34459
- sortOrder: z60.number().int(),
34460
- giftCard: z60.null(),
34461
- voucher: z60.object({
34462
- purchaseAmountCents: z60.number().int().positive()
34655
+ voucher: z61.null()
34656
+ });
34657
+ var publicVoucherOfferSchema = z61.object({
34658
+ id: z61.string(),
34659
+ kind: z61.literal("voucher"),
34660
+ title: z61.string(),
34661
+ description: z61.string().nullable(),
34662
+ sortOrder: z61.number().int(),
34663
+ giftCard: z61.null(),
34664
+ voucher: z61.object({
34665
+ purchaseAmountCents: z61.number().int().positive()
34463
34666
  })
34464
34667
  });
34465
- var publicGiftingOffersResponseSchema = z60.object({
34466
- currency: z60.string(),
34467
- giftCards: z60.array(publicGiftCardOfferSchema),
34468
- vouchers: z60.array(publicVoucherOfferSchema)
34668
+ var publicGiftingOffersResponseSchema = z61.object({
34669
+ currency: z61.string(),
34670
+ giftCards: z61.array(publicGiftCardOfferSchema),
34671
+ vouchers: z61.array(publicVoucherOfferSchema)
34469
34672
  });
34470
- var giftingSourceSchema = z60.object({
34471
- siteId: z60.string().optional(),
34472
- apiBaseUrl: z60.string().optional(),
34673
+ var giftingSourceSchema = z61.object({
34674
+ siteId: z61.string().optional(),
34675
+ apiBaseUrl: z61.string().optional(),
34473
34676
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
34474
- className: z60.string().nullable().optional(),
34475
- heading: z60.string().nullable().optional(),
34476
- intro: z60.string().nullable().optional(),
34477
- giftCardsHeading: z60.string().nullable().optional(),
34478
- vouchersHeading: z60.string().nullable().optional(),
34479
- emptyStateText: z60.string().nullable().optional(),
34480
- checkoutButtonText: z60.string().nullable().optional(),
34481
- successMessage: z60.string().nullable().optional()
34482
- });
34483
- var giftingDisplaySchema = z60.object({
34484
- kind: z60.literal("gifting"),
34485
- state: z60.literal("ready"),
34486
- className: z60.string().nullable(),
34487
- heading: z60.string(),
34488
- intro: z60.string().nullable(),
34489
- giftCardsHeading: z60.string(),
34490
- vouchersHeading: z60.string(),
34491
- emptyStateText: z60.string()
34492
- });
34493
- var giftingHydrationSchema = z60.object({
34677
+ className: z61.string().nullable().optional(),
34678
+ heading: z61.string().nullable().optional(),
34679
+ intro: z61.string().nullable().optional(),
34680
+ giftCardsHeading: z61.string().nullable().optional(),
34681
+ vouchersHeading: z61.string().nullable().optional(),
34682
+ emptyStateText: z61.string().nullable().optional(),
34683
+ checkoutButtonText: z61.string().nullable().optional(),
34684
+ successMessage: z61.string().nullable().optional()
34685
+ });
34686
+ var giftingDisplaySchema = z61.object({
34687
+ kind: z61.literal("gifting"),
34688
+ state: z61.literal("ready"),
34689
+ className: z61.string().nullable(),
34690
+ heading: z61.string(),
34691
+ intro: z61.string().nullable(),
34692
+ giftCardsHeading: z61.string(),
34693
+ vouchersHeading: z61.string(),
34694
+ emptyStateText: z61.string()
34695
+ });
34696
+ var giftingHydrationSchema = z61.object({
34494
34697
  offers: publicGiftingOffersResponseSchema.nullable(),
34495
- checkoutButtonText: z60.string(),
34496
- successMessage: z60.string()
34698
+ checkoutButtonText: z61.string(),
34699
+ successMessage: z61.string()
34497
34700
  });
34498
- var giftingRenderSchema = z60.object({
34701
+ var giftingRenderSchema = z61.object({
34499
34702
  display: giftingDisplaySchema,
34500
34703
  hydration: giftingHydrationSchema
34501
34704
  });
34502
- var giftingIslandMetaCodec = createZodCodec(z60.object({
34503
- siteId: z60.string().optional(),
34504
- apiBaseUrl: z60.string().optional()
34705
+ var giftingIslandMetaCodec = createZodCodec(z61.object({
34706
+ siteId: z61.string().optional(),
34707
+ apiBaseUrl: z61.string().optional()
34505
34708
  }));
34506
34709
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
34507
34710
  "siteId",
@@ -34672,7 +34875,61 @@ var giftingBlockDefinition = {
34672
34875
  };
34673
34876
 
34674
34877
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
34675
- import { z as z61 } from "zod";
34878
+ import { z as z62 } from "zod";
34879
+
34880
+ // ../blocks/src/system/blocks/newsletter-signup-destination.ts
34881
+ function parseNewsletterSignupBlockId(value) {
34882
+ const trimmed = parseTrimmedString(value);
34883
+ return trimmed && BLOCK_ID_PATTERN.test(trimmed) ? trimmed : null;
34884
+ }
34885
+ function parseSignedNewsletterDestinationRef(value) {
34886
+ const trimmed = parseTrimmedString(value);
34887
+ return trimmed && SIGNED_DESTINATION_REF_PATTERN.test(trimmed) ? trimmed : null;
34888
+ }
34889
+ function parseNewsletterSignupDestinationProvider(value) {
34890
+ return value === "riverbank" || value === "mailchimp" ? value : null;
34891
+ }
34892
+ function buildNewsletterSignupBlockRef(blockId) {
34893
+ const parsed = parseNewsletterSignupBlockId(blockId);
34894
+ return parsed ? { tag: "block_ref", blockId: parsed } : null;
34895
+ }
34896
+ function normalizeNewsletterSignupEditorValuesForDestination(values) {
34897
+ const destinationProvider = parseNewsletterSignupDestinationProvider(values.destinationProvider) ?? "riverbank";
34898
+ if (destinationProvider === "mailchimp") {
34899
+ return {
34900
+ destinationProvider,
34901
+ mailchimpAudienceId: values.mailchimpAudienceId,
34902
+ mailchimpTags: values.mailchimpTags
34903
+ };
34904
+ }
34905
+ return {
34906
+ destinationProvider,
34907
+ listId: values.listId,
34908
+ tags: values.tags
34909
+ };
34910
+ }
34911
+ function deriveNewsletterSignupRuntimeSource(values) {
34912
+ const normalized = normalizeNewsletterSignupEditorValuesForDestination(values);
34913
+ if (normalized.destinationProvider === "mailchimp") {
34914
+ return {
34915
+ destinationProvider: "mailchimp",
34916
+ listId: null,
34917
+ tags: null
34918
+ };
34919
+ }
34920
+ return {
34921
+ destinationProvider: "riverbank",
34922
+ listId: parseTrimmedString(normalized.listId),
34923
+ tags: parseTrimmedString(normalized.tags)
34924
+ };
34925
+ }
34926
+ var BLOCK_ID_PATTERN = /^[A-Za-z0-9._:-]{1,200}$/;
34927
+ var SIGNED_DESTINATION_REF_PATTERN = /^[A-Za-z0-9._~-]{16,1000}$/;
34928
+ function parseTrimmedString(value) {
34929
+ if (typeof value !== "string") return null;
34930
+ const trimmed = value.trim();
34931
+ return trimmed.length > 0 ? trimmed : null;
34932
+ }
34676
34933
 
34677
34934
  // ../blocks/src/system/runtime/nodes/newsletter-form.types.ts
34678
34935
  function getPresetFields(preset2, options) {
@@ -34725,49 +34982,65 @@ function withOptionalPhone(fields3, includePhone) {
34725
34982
  }
34726
34983
 
34727
34984
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
34728
- var newsletterPresetSchema = z61.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
34729
- var newsletterFieldSchema = z61.object({
34730
- id: z61.string(),
34731
- type: z61.enum(["email", "text"]),
34732
- label: z61.string(),
34733
- required: z61.boolean(),
34734
- placeholder: z61.string().optional()
34735
- });
34736
- var newsletterSourceSchema = z61.object({
34737
- siteId: z61.string().optional(),
34738
- apiBaseUrl: z61.string().optional(),
34739
- listId: z61.string().nullable().optional(),
34985
+ var newsletterPresetSchema = z62.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
34986
+ var newsletterDestinationProviderSchema = z62.enum(["riverbank", "mailchimp"]);
34987
+ var newsletterFieldSchema = z62.object({
34988
+ id: z62.string(),
34989
+ type: z62.enum(["email", "text"]),
34990
+ label: z62.string(),
34991
+ required: z62.boolean(),
34992
+ placeholder: z62.string().optional()
34993
+ });
34994
+ var newsletterSignupBlockIdSchema = z62.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
34995
+ var signedNewsletterDestinationRefSchema = z62.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
34996
+ var newsletterPublicDestinationRefSchema = z62.discriminatedUnion("tag", [
34997
+ z62.object({
34998
+ tag: z62.literal("block_ref"),
34999
+ blockId: newsletterSignupBlockIdSchema
35000
+ }),
35001
+ z62.object({
35002
+ tag: z62.literal("signed_destination_ref"),
35003
+ token: signedNewsletterDestinationRefSchema
35004
+ })
35005
+ ]);
35006
+ var newsletterSourceSchema = z62.object({
35007
+ blockId: z62.string().nullable().optional(),
35008
+ siteId: z62.string().optional(),
35009
+ apiBaseUrl: z62.string().optional(),
35010
+ listId: z62.string().nullable().optional(),
35011
+ destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
34740
35012
  preset: newsletterPresetSchema.optional(),
34741
- includePhone: z61.boolean().optional(),
34742
- buttonLabel: z61.string().nullable().optional(),
34743
- successMessage: z61.string().nullable().optional(),
34744
- privacyNote: z61.string().nullable().optional(),
34745
- tags: z61.string().nullable().optional(),
34746
- spamProtectionEnabled: z61.boolean().optional(),
34747
- className: z61.string().nullable().optional()
34748
- });
34749
- var newsletterDisplaySchema = z61.object({
34750
- kind: z61.literal("newsletter-form"),
34751
- className: z61.string().nullable(),
34752
- buttonLabel: z61.string(),
34753
- successMessage: z61.string().nullable(),
34754
- privacyNote: z61.string().nullable(),
34755
- fields: z61.array(newsletterFieldSchema)
34756
- });
34757
- var newsletterHydrationSchema = z61.object({
34758
- listId: z61.string().nullable().optional(),
35013
+ includePhone: z62.boolean().optional(),
35014
+ buttonLabel: z62.string().nullable().optional(),
35015
+ successMessage: z62.string().nullable().optional(),
35016
+ privacyNote: z62.string().nullable().optional(),
35017
+ tags: z62.string().nullable().optional(),
35018
+ spamProtectionEnabled: z62.boolean().optional(),
35019
+ className: z62.string().nullable().optional()
35020
+ });
35021
+ var newsletterDisplaySchema = z62.object({
35022
+ kind: z62.literal("newsletter-form"),
35023
+ className: z62.string().nullable(),
35024
+ buttonLabel: z62.string(),
35025
+ successMessage: z62.string().nullable(),
35026
+ privacyNote: z62.string().nullable(),
35027
+ fields: z62.array(newsletterFieldSchema)
35028
+ });
35029
+ var newsletterHydrationSchema = z62.object({
35030
+ destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
35031
+ listId: z62.string().nullable().optional(),
34759
35032
  preset: newsletterPresetSchema,
34760
- includePhone: z61.boolean(),
34761
- tags: z61.string().nullable().optional(),
34762
- spamProtectionEnabled: z61.boolean().optional()
35033
+ includePhone: z62.boolean(),
35034
+ tags: z62.string().nullable().optional(),
35035
+ spamProtectionEnabled: z62.boolean().optional()
34763
35036
  });
34764
- var newsletterRenderSchema = z61.object({
35037
+ var newsletterRenderSchema = z62.object({
34765
35038
  display: newsletterDisplaySchema,
34766
35039
  hydration: newsletterHydrationSchema
34767
35040
  });
34768
- var newsletterIslandMetaCodec = createZodCodec(z61.object({
34769
- siteId: z61.string().optional(),
34770
- apiBaseUrl: z61.string().optional()
35041
+ var newsletterIslandMetaCodec = createZodCodec(z62.object({
35042
+ siteId: z62.string().optional(),
35043
+ apiBaseUrl: z62.string().optional()
34771
35044
  }));
34772
35045
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
34773
35046
  function buildNewsletterDisplay(source) {
@@ -34788,16 +35061,20 @@ var newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
34788
35061
  source: createZodCodec(newsletterSourceSchema),
34789
35062
  render: createZodCodec(newsletterRenderSchema)
34790
35063
  },
34791
- buildRender: (source) => ({
34792
- display: buildNewsletterDisplay(source),
34793
- hydration: {
34794
- listId: source.listId,
34795
- preset: source.preset ?? "emailOnly",
34796
- includePhone: source.includePhone ?? false,
34797
- tags: source.tags ?? null,
34798
- spamProtectionEnabled: source.spamProtectionEnabled
34799
- }
34800
- })
35064
+ buildRender: (source) => {
35065
+ const runtimeSource = deriveNewsletterSignupRuntimeSource(source);
35066
+ return {
35067
+ display: buildNewsletterDisplay(source),
35068
+ hydration: {
35069
+ destinationRef: buildNewsletterSignupBlockRef(source.blockId),
35070
+ listId: runtimeSource.listId,
35071
+ preset: source.preset ?? "emailOnly",
35072
+ includePhone: source.includePhone ?? false,
35073
+ tags: runtimeSource.tags,
35074
+ spamProtectionEnabled: source.spamProtectionEnabled
35075
+ }
35076
+ };
35077
+ }
34801
35078
  });
34802
35079
  var newsletterFormInteractiveIslandPropsCodec = createInteractiveIslandCodec({
34803
35080
  runtime: newsletterFormBlockRuntime,
@@ -34809,6 +35086,20 @@ var newsletterFormInteractiveIslandPropsCodec = createInteractiveIslandCodec({
34809
35086
  apiBaseUrl: value.apiBaseUrl
34810
35087
  })
34811
35088
  });
35089
+ function parseRequiredNewsletterSignupBlockId(value) {
35090
+ const parsed = parseNewsletterSignupBlockId(value);
35091
+ if (!parsed) {
35092
+ throw new Error("Newsletter signup block destination ref requires blockId");
35093
+ }
35094
+ return parsed;
35095
+ }
35096
+ function parseRequiredSignedNewsletterDestinationRef(value) {
35097
+ const parsed = parseSignedNewsletterDestinationRef(value);
35098
+ if (!parsed) {
35099
+ throw new Error("Newsletter signup signed destination ref requires token");
35100
+ }
35101
+ return parsed;
35102
+ }
34812
35103
 
34813
35104
  // ../blocks/src/system/blocks/newsletter-signup.ts
34814
35105
  var stackedComposition = composeFragments([
@@ -34888,23 +35179,23 @@ var newsletterSignupBlockDefinition = {
34888
35179
  };
34889
35180
 
34890
35181
  // ../blocks/src/system/blocks/team-members.ts
34891
- import { z as z62 } from "zod";
35182
+ import { z as z63 } from "zod";
34892
35183
  var ITEM_NAME2 = "member";
34893
35184
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
34894
35185
  message: "Team member photos must be image media"
34895
35186
  }).nullable();
34896
- var teamMemberDataSchema = z62.object({
34897
- _type: z62.literal("teamMember"),
34898
- id: z62.string(),
34899
- name: z62.string(),
34900
- role: z62.string().nullable(),
34901
- roleLabel: z62.string().nullable(),
34902
- bio: z62.string().nullable(),
34903
- summary: z62.string().nullable(),
35187
+ var teamMemberDataSchema = z63.object({
35188
+ _type: z63.literal("teamMember"),
35189
+ id: z63.string(),
35190
+ name: z63.string(),
35191
+ role: z63.string().nullable(),
35192
+ roleLabel: z63.string().nullable(),
35193
+ bio: z63.string().nullable(),
35194
+ summary: z63.string().nullable(),
34904
35195
  photo: teamMemberPhotoSchema,
34905
- profilePath: z62.string().nullable()
35196
+ profilePath: z63.string().nullable()
34906
35197
  });
34907
- var teamMembersDataSchema = z62.array(teamMemberDataSchema);
35198
+ var teamMembersDataSchema = z63.array(teamMemberDataSchema);
34908
35199
  var dynamicSourceWhen = { equals: "site_staff" };
34909
35200
  var manualSourceWhen = { equals: "site_staff", not: true };
34910
35201
  var headingNode = text(
@@ -37602,34 +37893,34 @@ import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
37602
37893
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
37603
37894
 
37604
37895
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
37605
- import { z as z63 } from "zod";
37606
- var themeBridgeConfigSchema = z63.object({
37607
- tokens: z63.record(z63.string(), z63.string()),
37608
- typography: z63.object({
37609
- headingFamily: z63.string().optional(),
37610
- bodyFamily: z63.string().optional(),
37611
- headingWeight: z63.number().optional(),
37612
- bodyWeight: z63.number().optional()
37896
+ import { z as z64 } from "zod";
37897
+ var themeBridgeConfigSchema = z64.object({
37898
+ tokens: z64.record(z64.string(), z64.string()),
37899
+ typography: z64.object({
37900
+ headingFamily: z64.string().optional(),
37901
+ bodyFamily: z64.string().optional(),
37902
+ headingWeight: z64.number().optional(),
37903
+ bodyWeight: z64.number().optional()
37613
37904
  }).optional(),
37614
- spacing: z63.enum(["comfortable", "standard", "dense"]).optional(),
37615
- corners: z63.enum(["square", "soft", "rounded", "pill"]).optional(),
37616
- shadows: z63.enum(["none", "low", "medium", "high"]).optional(),
37617
- components: z63.object({
37618
- buttons: z63.union([
37619
- z63.boolean(),
37620
- z63.object({
37621
- variants: z63.array(z63.enum(["primary", "secondary", "outline", "ghost"])).optional()
37905
+ spacing: z64.enum(["comfortable", "standard", "dense"]).optional(),
37906
+ corners: z64.enum(["square", "soft", "rounded", "pill"]).optional(),
37907
+ shadows: z64.enum(["none", "low", "medium", "high"]).optional(),
37908
+ components: z64.object({
37909
+ buttons: z64.union([
37910
+ z64.boolean(),
37911
+ z64.object({
37912
+ variants: z64.array(z64.enum(["primary", "secondary", "outline", "ghost"])).optional()
37622
37913
  })
37623
37914
  ]).optional(),
37624
- cards: z63.union([
37625
- z63.boolean(),
37626
- z63.object({
37627
- variants: z63.array(z63.enum(["default", "elevated", "outlined"])).optional()
37915
+ cards: z64.union([
37916
+ z64.boolean(),
37917
+ z64.object({
37918
+ variants: z64.array(z64.enum(["default", "elevated", "outlined"])).optional()
37628
37919
  })
37629
37920
  ]).optional(),
37630
- inputs: z63.boolean().optional()
37921
+ inputs: z64.boolean().optional()
37631
37922
  }).optional(),
37632
- overrides: z63.record(z63.string(), z63.string()).optional()
37923
+ overrides: z64.record(z64.string(), z64.string()).optional()
37633
37924
  }).passthrough();
37634
37925
 
37635
37926
  // ../theme-core/src/siteChrome.tsx
@@ -37655,17 +37946,17 @@ var SUPPORTED_LOADER_ENDPOINTS = [
37655
37946
  function unsafeRetypeZodSchema(schema) {
37656
37947
  return schema;
37657
37948
  }
37658
- var navIdListSchema = z64.preprocess((value) => {
37949
+ var navIdListSchema = z65.preprocess((value) => {
37659
37950
  if (!Array.isArray(value)) return void 0;
37660
37951
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
37661
37952
  return filtered.length > 0 ? filtered : void 0;
37662
- }, z64.array(z64.string()).max(200).optional());
37663
- var dashboardNavVisibilityBaseSchema = z64.object({
37664
- mode: z64.enum(["augment", "restrict"]).optional(),
37953
+ }, z65.array(z65.string()).max(200).optional());
37954
+ var dashboardNavVisibilityBaseSchema = z65.object({
37955
+ mode: z65.enum(["augment", "restrict"]).optional(),
37665
37956
  allowIds: navIdListSchema,
37666
37957
  denyIds: navIdListSchema
37667
37958
  }).strip();
37668
- var dashboardNavVisibilityRolesSchema = z64.object({
37959
+ var dashboardNavVisibilityRolesSchema = z65.object({
37669
37960
  administrator: dashboardNavVisibilityBaseSchema.optional(),
37670
37961
  editor: dashboardNavVisibilityBaseSchema.optional(),
37671
37962
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -37673,63 +37964,63 @@ var dashboardNavVisibilityRolesSchema = z64.object({
37673
37964
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
37674
37965
  roles: dashboardNavVisibilityRolesSchema
37675
37966
  }).strip();
37676
- var dashboardNavigationConfigSchema = z64.object({
37967
+ var dashboardNavigationConfigSchema = z65.object({
37677
37968
  siteNav: dashboardNavVisibilitySchema.optional(),
37678
37969
  settingsNav: dashboardNavVisibilitySchema.optional()
37679
37970
  }).strip();
37680
- var dashboardConfigSchema = z64.object({
37681
- previewEditingEnabled: z64.boolean().optional(),
37971
+ var dashboardConfigSchema = z65.object({
37972
+ previewEditingEnabled: z65.boolean().optional(),
37682
37973
  navigation: dashboardNavigationConfigSchema.optional()
37683
37974
  }).strip();
37684
37975
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
37685
37976
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
37686
- var sdkLoaderEndpointSchema = z64.enum(SUPPORTED_LOADER_ENDPOINTS);
37687
- var loaderFallbackScalarSchema = z64.union([
37688
- z64.string(),
37689
- z64.number(),
37690
- z64.boolean(),
37691
- z64.null()
37977
+ var sdkLoaderEndpointSchema = z65.enum(SUPPORTED_LOADER_ENDPOINTS);
37978
+ var loaderFallbackScalarSchema = z65.union([
37979
+ z65.string(),
37980
+ z65.number(),
37981
+ z65.boolean(),
37982
+ z65.null()
37692
37983
  ]);
37693
- var loaderParamBindingSchema = z64.object({
37694
- $bind: z64.object({
37695
- from: z64.string().min(1, "Binding path is required"),
37984
+ var loaderParamBindingSchema = z65.object({
37985
+ $bind: z65.object({
37986
+ from: z65.string().min(1, "Binding path is required"),
37696
37987
  fallback: loaderFallbackScalarSchema.optional()
37697
37988
  })
37698
37989
  });
37699
- var loaderParamValueSchema = z64.union([
37700
- z64.string(),
37701
- z64.number(),
37702
- z64.boolean(),
37990
+ var loaderParamValueSchema = z65.union([
37991
+ z65.string(),
37992
+ z65.number(),
37993
+ z65.boolean(),
37703
37994
  loaderParamBindingSchema
37704
37995
  ]);
37705
- var sdkConfigLoaderSchema = z64.object({
37996
+ var sdkConfigLoaderSchema = z65.object({
37706
37997
  endpoint: sdkLoaderEndpointSchema,
37707
- params: z64.record(z64.string(), loaderParamValueSchema),
37708
- mode: z64.enum(["server", "client"]).default("server")
37998
+ params: z65.record(z65.string(), loaderParamValueSchema),
37999
+ mode: z65.enum(["server", "client"]).default("server")
37709
38000
  });
37710
- var sdkDataLoadersSchema = z64.record(z64.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
37711
- var sdkCustomBlockIdSchema = z64.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38001
+ var sdkDataLoadersSchema = z65.record(z65.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38002
+ var sdkCustomBlockIdSchema = z65.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
37712
38003
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
37713
38004
  }).transform((value) => value);
37714
- var sdkCustomBlockInputSchema = z64.object({
38005
+ var sdkCustomBlockInputSchema = z65.object({
37715
38006
  id: sdkCustomBlockIdSchema,
37716
- title: z64.string().min(1),
37717
- titleSource: z64.union([z64.string().min(1), z64.array(z64.string().min(1)).min(1)]).optional(),
37718
- description: z64.string().optional(),
38007
+ title: z65.string().min(1),
38008
+ titleSource: z65.union([z65.string().min(1), z65.array(z65.string().min(1)).min(1)]).optional(),
38009
+ description: z65.string().optional(),
37719
38010
  category: blockCategoryEnum,
37720
- icon: z64.string().optional(),
37721
- tags: z64.array(z64.string()).optional(),
38011
+ icon: z65.string().optional(),
38012
+ tags: z65.array(z65.string()).optional(),
37722
38013
  fields: fieldDefinitionInputSchema.array().min(1),
37723
38014
  dataLoaders: sdkDataLoadersSchema,
37724
38015
  layout: NodeSchema.optional(),
37725
- variants: z64.record(z64.string().min(1), NodeSchema).optional(),
37726
- defaultVariant: z64.string().min(1).optional(),
37727
- variantOptions: z64.record(
37728
- z64.string().min(1),
37729
- z64.object({
37730
- label: z64.string().min(1).optional(),
37731
- description: z64.string().min(1).optional(),
37732
- icon: z64.string().min(1).optional()
38016
+ variants: z65.record(z65.string().min(1), NodeSchema).optional(),
38017
+ defaultVariant: z65.string().min(1).optional(),
38018
+ variantOptions: z65.record(
38019
+ z65.string().min(1),
38020
+ z65.object({
38021
+ label: z65.string().min(1).optional(),
38022
+ description: z65.string().min(1).optional(),
38023
+ icon: z65.string().min(1).optional()
37733
38024
  })
37734
38025
  ).optional(),
37735
38026
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -37740,7 +38031,7 @@ var sdkCustomBlockInputSchema = z64.object({
37740
38031
  const exists = data.fields.some((field) => field.id === source);
37741
38032
  if (!exists) {
37742
38033
  ctx.addIssue({
37743
- code: z64.ZodIssueCode.custom,
38034
+ code: z65.ZodIssueCode.custom,
37744
38035
  message: `titleSource must reference a valid field ID (got "${source}")`,
37745
38036
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
37746
38037
  });
@@ -37749,7 +38040,7 @@ var sdkCustomBlockInputSchema = z64.object({
37749
38040
  }
37750
38041
  if (data.layout && data.variants) {
37751
38042
  ctx.addIssue({
37752
- code: z64.ZodIssueCode.custom,
38043
+ code: z65.ZodIssueCode.custom,
37753
38044
  message: "Custom block must define either `layout` or `variants`, not both",
37754
38045
  path: ["variants"]
37755
38046
  });
@@ -37758,14 +38049,14 @@ var sdkCustomBlockInputSchema = z64.object({
37758
38049
  const keys = Object.keys(data.variants);
37759
38050
  if (keys.length === 0) {
37760
38051
  ctx.addIssue({
37761
- code: z64.ZodIssueCode.custom,
38052
+ code: z65.ZodIssueCode.custom,
37762
38053
  message: "`variants` must contain at least one variant key",
37763
38054
  path: ["variants"]
37764
38055
  });
37765
38056
  }
37766
38057
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
37767
38058
  ctx.addIssue({
37768
- code: z64.ZodIssueCode.custom,
38059
+ code: z65.ZodIssueCode.custom,
37769
38060
  message: "`defaultVariant` must be a key present in `variants`",
37770
38061
  path: ["defaultVariant"]
37771
38062
  });
@@ -37774,7 +38065,7 @@ var sdkCustomBlockInputSchema = z64.object({
37774
38065
  for (const key of Object.keys(data.variantOptions)) {
37775
38066
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
37776
38067
  ctx.addIssue({
37777
- code: z64.ZodIssueCode.custom,
38068
+ code: z65.ZodIssueCode.custom,
37778
38069
  message: "`variantOptions` key must exist in `variants`",
37779
38070
  path: ["variantOptions", key]
37780
38071
  });
@@ -37783,78 +38074,78 @@ var sdkCustomBlockInputSchema = z64.object({
37783
38074
  }
37784
38075
  }
37785
38076
  });
37786
- var sdkBlockFieldExtensionInputSchema = z64.object({
38077
+ var sdkBlockFieldExtensionInputSchema = z65.object({
37787
38078
  fields: fieldDefinitionInputSchema.array().min(1)
37788
38079
  });
37789
- var sdkBlockFieldExtensionsInputSchema = z64.record(
37790
- z64.string().min(1),
38080
+ var sdkBlockFieldExtensionsInputSchema = z65.record(
38081
+ z65.string().min(1),
37791
38082
  sdkBlockFieldExtensionInputSchema
37792
38083
  );
37793
- var sdkThemePaletteSchema = z64.record(z64.string(), z64.string());
37794
- var sdkThemeConfigSchema = z64.object({
38084
+ var sdkThemePaletteSchema = z65.record(z65.string(), z65.string());
38085
+ var sdkThemeConfigSchema = z65.object({
37795
38086
  palette: sdkThemePaletteSchema
37796
38087
  });
37797
- var sdkSectionBackgroundSchema = z64.object({
37798
- id: z64.string().min(1),
37799
- label: z64.string().min(1),
37800
- token: z64.string().min(1)
38088
+ var sdkSectionBackgroundSchema = z65.object({
38089
+ id: z65.string().min(1),
38090
+ label: z65.string().min(1),
38091
+ token: z65.string().min(1)
37801
38092
  });
37802
- var sdkSectionOptionsConfigSchema = z64.object({
37803
- backgroundColor: z64.boolean().optional(),
37804
- backgroundImage: z64.boolean().optional(),
37805
- backgroundGradient: z64.boolean().optional(),
37806
- spacing: z64.union([z64.array(z64.enum(["compact", "default", "spacious"])), z64.boolean()]).optional(),
37807
- textColor: z64.boolean().optional()
38093
+ var sdkSectionOptionsConfigSchema = z65.object({
38094
+ backgroundColor: z65.boolean().optional(),
38095
+ backgroundImage: z65.boolean().optional(),
38096
+ backgroundGradient: z65.boolean().optional(),
38097
+ spacing: z65.union([z65.array(z65.enum(["compact", "default", "spacious"])), z65.boolean()]).optional(),
38098
+ textColor: z65.boolean().optional()
37808
38099
  });
37809
- var sdkContainerOptionsConfigSchema = z64.object({
37810
- maxWidth: z64.union([z64.array(z64.enum(["narrow", "default", "wide", "full"])), z64.boolean()]).optional(),
37811
- alignment: z64.union([z64.array(z64.enum(["left", "center", "right"])), z64.boolean()]).optional()
38100
+ var sdkContainerOptionsConfigSchema = z65.object({
38101
+ maxWidth: z65.union([z65.array(z65.enum(["narrow", "default", "wide", "full"])), z65.boolean()]).optional(),
38102
+ alignment: z65.union([z65.array(z65.enum(["left", "center", "right"])), z65.boolean()]).optional()
37812
38103
  });
37813
- var sdkSiteStyleConfigSchema = z64.object({
37814
- sectionBackgrounds: z64.array(sdkSectionBackgroundSchema).optional(),
38104
+ var sdkSiteStyleConfigSchema = z65.object({
38105
+ sectionBackgrounds: z65.array(sdkSectionBackgroundSchema).optional(),
37815
38106
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
37816
38107
  containerOptions: sdkContainerOptionsConfigSchema.optional()
37817
38108
  });
37818
- var sdkSiteLayoutConfigSchema = z64.object({
37819
- footerBlocks: z64.array(
37820
- z64.object({
37821
- id: z64.string().min(1).optional(),
37822
- kind: z64.string().min(1),
37823
- content: z64.record(z64.string(), z64.unknown()).optional()
38109
+ var sdkSiteLayoutConfigSchema = z65.object({
38110
+ footerBlocks: z65.array(
38111
+ z65.object({
38112
+ id: z65.string().min(1).optional(),
38113
+ kind: z65.string().min(1),
38114
+ content: z65.record(z65.string(), z65.unknown()).optional()
37824
38115
  })
37825
38116
  ).optional()
37826
38117
  });
37827
- var sdkFieldSelectOptionSchema = z64.object({
37828
- value: z64.string(),
37829
- label: z64.string()
38118
+ var sdkFieldSelectOptionSchema = z65.object({
38119
+ value: z65.string(),
38120
+ label: z65.string()
37830
38121
  });
37831
- var sdkBlockFieldConfigSchema = z64.object({
37832
- options: z64.array(sdkFieldSelectOptionSchema).optional()
38122
+ var sdkBlockFieldConfigSchema = z65.object({
38123
+ options: z65.array(sdkFieldSelectOptionSchema).optional()
37833
38124
  });
37834
- var sdkBlockFieldOptionsMapSchema = z64.record(
37835
- z64.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38125
+ var sdkBlockFieldOptionsMapSchema = z65.record(
38126
+ z65.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
37836
38127
  message: "Block ID must be 'block.*' or 'custom.*' format"
37837
38128
  }),
37838
- z64.record(z64.string().min(1), sdkBlockFieldConfigSchema)
38129
+ z65.record(z65.string().min(1), sdkBlockFieldConfigSchema)
37839
38130
  ).optional();
37840
- var sdkContentTypeTemplateConfigSchema = z64.object({
37841
- blocks: z64.array(z64.unknown())
38131
+ var sdkContentTypeTemplateConfigSchema = z65.object({
38132
+ blocks: z65.array(z65.unknown())
37842
38133
  }).passthrough();
37843
- var sdkContentTypeOrderingConfigSchema = z64.object({
37844
- mode: z64.enum(["default", "manual"]).optional()
38134
+ var sdkContentTypeOrderingConfigSchema = z65.object({
38135
+ mode: z65.enum(["default", "manual"]).optional()
37845
38136
  }).optional();
37846
- var sdkContentTypeConfigSchema = z64.object({
37847
- key: z64.string().min(1),
37848
- fields: z64.array(z64.unknown()),
38137
+ var sdkContentTypeConfigSchema = z65.object({
38138
+ key: z65.string().min(1),
38139
+ fields: z65.array(z65.unknown()),
37849
38140
  ordering: sdkContentTypeOrderingConfigSchema,
37850
38141
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
37851
38142
  }).passthrough();
37852
- var sdkContentConfigSchema = z64.object({
37853
- contentTypes: z64.array(sdkContentTypeConfigSchema).optional(),
37854
- pages: z64.array(z64.unknown()).optional(),
37855
- entries: z64.array(z64.unknown()).optional(),
37856
- navigationMenus: z64.array(z64.unknown()).optional(),
37857
- settings: z64.unknown().optional()
38143
+ var sdkContentConfigSchema = z65.object({
38144
+ contentTypes: z65.array(sdkContentTypeConfigSchema).optional(),
38145
+ pages: z65.array(z65.unknown()).optional(),
38146
+ entries: z65.array(z65.unknown()).optional(),
38147
+ navigationMenus: z65.array(z65.unknown()).optional(),
38148
+ settings: z65.unknown().optional()
37858
38149
  }).passthrough();
37859
38150
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
37860
38151
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -37869,62 +38160,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
37869
38160
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
37870
38161
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
37871
38162
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
37872
- var sdkWorkflowIdSchema = z64.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38163
+ var sdkWorkflowIdSchema = z65.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
37873
38164
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
37874
38165
  });
37875
- 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 "/"' });
37876
- var sdkWorkflowManualTriggerSchema = z64.object({
37877
- type: z64.literal("manual")
38166
+ var sdkWorkflowEndpointSchema = z65.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
38167
+ var sdkWorkflowManualTriggerSchema = z65.object({
38168
+ type: z65.literal("manual")
37878
38169
  }).strict();
37879
- var sdkWorkflowTriggerFieldSchema = z64.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38170
+ var sdkWorkflowTriggerFieldSchema = z65.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
37880
38171
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
37881
38172
  });
37882
- var sdkWorkflowFieldChangedConditionSchema = z64.object({
38173
+ var sdkWorkflowFieldChangedConditionSchema = z65.object({
37883
38174
  field: sdkWorkflowTriggerFieldSchema,
37884
- changed: z64.literal(true)
38175
+ changed: z65.literal(true)
37885
38176
  }).strict();
37886
- var sdkWorkflowFieldEmptyConditionSchema = z64.object({
38177
+ var sdkWorkflowFieldEmptyConditionSchema = z65.object({
37887
38178
  field: sdkWorkflowTriggerFieldSchema,
37888
- isEmpty: z64.boolean()
38179
+ isEmpty: z65.boolean()
37889
38180
  }).strict();
37890
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z64.object({
37891
- type: z64.literal("entry.draft.updated"),
37892
- when: z64.array(
37893
- z64.union([
38181
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z65.object({
38182
+ type: z65.literal("entry.draft.updated"),
38183
+ when: z65.array(
38184
+ z65.union([
37894
38185
  sdkWorkflowFieldChangedConditionSchema,
37895
38186
  sdkWorkflowFieldEmptyConditionSchema
37896
38187
  ])
37897
38188
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
37898
38189
  }).strict();
37899
- var sdkWorkflowTriggerSchema = z64.discriminatedUnion("type", [
38190
+ var sdkWorkflowTriggerSchema = z65.discriminatedUnion("type", [
37900
38191
  sdkWorkflowManualTriggerSchema,
37901
38192
  sdkWorkflowEntryDraftUpdatedTriggerSchema
37902
38193
  ]);
37903
- var sdkWorkflowConfirmationSchema = z64.object({
37904
- title: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
37905
- body: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38194
+ var sdkWorkflowConfirmationSchema = z65.object({
38195
+ title: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38196
+ body: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
37906
38197
  }).strict();
37907
- var sdkWorkflowConfigSchema = z64.object({
38198
+ var sdkWorkflowConfigSchema = z65.object({
37908
38199
  id: sdkWorkflowIdSchema,
37909
- title: z64.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
37910
- description: z64.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
37911
- contentType: z64.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38200
+ title: z65.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38201
+ description: z65.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38202
+ contentType: z65.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
37912
38203
  endpoint: sdkWorkflowEndpointSchema,
37913
- triggers: z64.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38204
+ triggers: z65.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
37914
38205
  confirmation: sdkWorkflowConfirmationSchema.optional()
37915
38206
  }).strict();
37916
- var sdkWorkflowsSchema = z64.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38207
+ var sdkWorkflowsSchema = z65.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
37917
38208
  const ids = workflows.map((workflow) => workflow.id);
37918
38209
  return ids.length === new Set(ids).size;
37919
38210
  }, { message: "Workflow IDs must be unique" }).optional();
37920
- var riverbankSiteConfigInputSchema = z64.object({
37921
- siteId: z64.string().uuid(),
37922
- previewUrl: z64.string().url().optional(),
37923
- liveUrl: z64.string().url().optional(),
38211
+ var riverbankSiteConfigInputSchema = z65.object({
38212
+ siteId: z65.string().uuid(),
38213
+ previewUrl: z65.string().url().optional(),
38214
+ liveUrl: z65.string().url().optional(),
37924
38215
  theme: sdkThemeConfigSchema.optional(),
37925
38216
  styles: sdkSiteStyleConfigSchema.optional(),
37926
38217
  layout: sdkSiteLayoutConfigSchema.optional(),
37927
- customBlocks: z64.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38218
+ customBlocks: z65.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
37928
38219
  const ids = blocks.map((b) => b.id);
37929
38220
  return ids.length === new Set(ids).size;
37930
38221
  }, { message: "Block IDs must be unique" }).optional(),
@@ -37932,50 +38223,50 @@ var riverbankSiteConfigInputSchema = z64.object({
37932
38223
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
37933
38224
  workflows: sdkWorkflowsSchema,
37934
38225
  content: sdkContentConfigSchema.optional(),
37935
- contentDir: z64.string().optional(),
37936
- sync: z64.object({
37937
- existingEntries: z64.enum(["skip", "update"]).optional()
38226
+ contentDir: z65.string().optional(),
38227
+ sync: z65.object({
38228
+ existingEntries: z65.enum(["skip", "update"]).optional()
37938
38229
  }).optional(),
37939
- deploy: z64.object({
37940
- verifyCommand: z64.string().optional(),
37941
- prebuildOutput: z64.string().optional()
38230
+ deploy: z65.object({
38231
+ verifyCommand: z65.string().optional(),
38232
+ prebuildOutput: z65.string().optional()
37942
38233
  }).optional(),
37943
- themeSource: z64.enum(["local", "cms"]).optional(),
37944
- activeTheme: z64.string().optional(),
37945
- enablePortal: z64.boolean().optional(),
38234
+ themeSource: z65.enum(["local", "cms"]).optional(),
38235
+ activeTheme: z65.string().optional(),
38236
+ enablePortal: z65.boolean().optional(),
37946
38237
  dashboard: dashboardConfigSchema.optional()
37947
38238
  }).strict();
37948
- var pushSdkConfigBodySchema = z64.object({
38239
+ var pushSdkConfigBodySchema = z65.object({
37949
38240
  config: riverbankSiteConfigInputSchema,
37950
- forceContentTypes: z64.boolean().optional()
38241
+ forceContentTypes: z65.boolean().optional()
37951
38242
  }).strict();
37952
38243
 
37953
38244
  // ../api/src/siteOnboarding.ts
37954
- import { z as z65 } from "zod";
38245
+ import { z as z66 } from "zod";
37955
38246
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
37956
38247
  configure_appointments: {
37957
38248
  requirementId: "configure_appointments",
37958
38249
  reason: "launch_anyway"
37959
38250
  }
37960
38251
  };
37961
- var acknowledgeLaunchRequirementRequestSchema = z65.discriminatedUnion(
38252
+ var acknowledgeLaunchRequirementRequestSchema = z66.discriminatedUnion(
37962
38253
  "requirementId",
37963
38254
  [
37964
- z65.object({
37965
- requirementId: z65.literal("review_generated_site")
38255
+ z66.object({
38256
+ requirementId: z66.literal("review_generated_site")
37966
38257
  }),
37967
- z65.object({
37968
- requirementId: z65.literal(
38258
+ z66.object({
38259
+ requirementId: z66.literal(
37969
38260
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
37970
38261
  ),
37971
- overrideReason: z65.literal(
38262
+ overrideReason: z66.literal(
37972
38263
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
37973
38264
  )
37974
38265
  })
37975
38266
  ]
37976
38267
  );
37977
- var goLiveSiteRequestSchema = z65.object({
37978
- acceptExtraSiteCharge: z65.boolean().optional()
38268
+ var goLiveSiteRequestSchema = z66.object({
38269
+ acceptExtraSiteCharge: z66.boolean().optional()
37979
38270
  });
37980
38271
 
37981
38272
  // ../surfaces/src/index.ts
@@ -38059,7 +38350,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
38059
38350
  ];
38060
38351
 
38061
38352
  // ../api/src/bookingVerticals.ts
38062
- import { z as z66 } from "zod";
38353
+ import { z as z67 } from "zod";
38063
38354
  var VERTICAL_IDS = [
38064
38355
  "yoga_wellness",
38065
38356
  "fitness_pt",
@@ -38224,39 +38515,39 @@ function getSiteVerticalConfigIssues(rawConfig, config) {
38224
38515
  }
38225
38516
  return [...issues];
38226
38517
  }
38227
- var VerticalIdSchema = z66.string().trim().transform((value, ctx) => {
38518
+ var VerticalIdSchema = z67.string().trim().transform((value, ctx) => {
38228
38519
  const parsed = parseVerticalId(value);
38229
38520
  if (!parsed) {
38230
38521
  ctx.addIssue({
38231
- code: z66.ZodIssueCode.custom,
38522
+ code: z67.ZodIssueCode.custom,
38232
38523
  message: "Unknown booking vertical"
38233
38524
  });
38234
- return z66.NEVER;
38525
+ return z67.NEVER;
38235
38526
  }
38236
38527
  return parsed;
38237
38528
  });
38238
- var VerticalPresetIdSchema = z66.string().trim().transform((value, ctx) => {
38529
+ var VerticalPresetIdSchema = z67.string().trim().transform((value, ctx) => {
38239
38530
  const parsed = parseVerticalPresetId(value);
38240
38531
  if (!parsed) {
38241
38532
  ctx.addIssue({
38242
- code: z66.ZodIssueCode.custom,
38533
+ code: z67.ZodIssueCode.custom,
38243
38534
  message: "Unknown booking preset"
38244
38535
  });
38245
- return z66.NEVER;
38536
+ return z67.NEVER;
38246
38537
  }
38247
38538
  return parsed;
38248
38539
  });
38249
- var BookingVerticalConfigSchema = z66.object({
38540
+ var BookingVerticalConfigSchema = z67.object({
38250
38541
  verticalId: VerticalIdSchema.nullable(),
38251
- selectedPresetIds: z66.array(VerticalPresetIdSchema).max(20)
38542
+ selectedPresetIds: z67.array(VerticalPresetIdSchema).max(20)
38252
38543
  }).transform((value, ctx) => {
38253
38544
  const resolved = resolveSiteVerticalBookingConfig(value);
38254
38545
  if (resolved.kind === "invalid") {
38255
38546
  ctx.addIssue({
38256
- code: z66.ZodIssueCode.custom,
38547
+ code: z67.ZodIssueCode.custom,
38257
38548
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
38258
38549
  });
38259
- return z66.NEVER;
38550
+ return z67.NEVER;
38260
38551
  }
38261
38552
  return resolved.config;
38262
38553
  });
@@ -38283,51 +38574,51 @@ function isRecord7(value) {
38283
38574
  }
38284
38575
 
38285
38576
  // ../api/src/appointmentSetup.ts
38286
- import { z as z67 } from "zod";
38577
+ import { z as z68 } from "zod";
38287
38578
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
38288
- var appointmentSetupRefSchema = z67.discriminatedUnion("kind", [
38289
- z67.object({ kind: z67.literal("existing"), id: z67.string().min(1) }),
38290
- z67.object({ kind: z67.literal("new"), draftId: z67.string().min(1) })
38579
+ var appointmentSetupRefSchema = z68.discriminatedUnion("kind", [
38580
+ z68.object({ kind: z68.literal("existing"), id: z68.string().min(1) }),
38581
+ z68.object({ kind: z68.literal("new"), draftId: z68.string().min(1) })
38291
38582
  ]);
38292
- var appointmentSetupVenueChoiceSchema = z67.discriminatedUnion("kind", [
38293
- z67.object({ kind: z67.literal("none") }),
38294
- z67.object({ kind: z67.literal("existing"), venueId: z67.string().min(1) }),
38295
- z67.object({
38296
- kind: z67.literal("create"),
38297
- draftId: z67.string().min(1),
38298
- title: z67.string().trim().min(1),
38299
- description: z67.string().nullable(),
38300
- timezone: z67.string().trim().min(1).nullable(),
38301
- addressJson: z67.record(z67.string(), z67.unknown()),
38302
- locationJson: z67.object({ lat: z67.number(), lng: z67.number() }).nullable()
38583
+ var appointmentSetupVenueChoiceSchema = z68.discriminatedUnion("kind", [
38584
+ z68.object({ kind: z68.literal("none") }),
38585
+ z68.object({ kind: z68.literal("existing"), venueId: z68.string().min(1) }),
38586
+ z68.object({
38587
+ kind: z68.literal("create"),
38588
+ draftId: z68.string().min(1),
38589
+ title: z68.string().trim().min(1),
38590
+ description: z68.string().nullable(),
38591
+ timezone: z68.string().trim().min(1).nullable(),
38592
+ addressJson: z68.record(z68.string(), z68.unknown()),
38593
+ locationJson: z68.object({ lat: z68.number(), lng: z68.number() }).nullable()
38303
38594
  })
38304
38595
  ]);
38305
- var appointmentSetupPaymentDraftSchema = z67.object({
38306
- priceType: z67.union([z67.literal("free"), z67.literal("paid")])
38307
- });
38308
- var appointmentSetupServiceAssignmentDraftSchema = z67.discriminatedUnion("kind", [
38309
- z67.object({ kind: z67.literal("all_practitioners") }),
38310
- z67.object({
38311
- kind: z67.literal("selected_practitioners"),
38312
- resourceRefs: z67.array(appointmentSetupRefSchema)
38596
+ var appointmentSetupPaymentDraftSchema = z68.object({
38597
+ priceType: z68.union([z68.literal("free"), z68.literal("paid")])
38598
+ });
38599
+ var appointmentSetupServiceAssignmentDraftSchema = z68.discriminatedUnion("kind", [
38600
+ z68.object({ kind: z68.literal("all_practitioners") }),
38601
+ z68.object({
38602
+ kind: z68.literal("selected_practitioners"),
38603
+ resourceRefs: z68.array(appointmentSetupRefSchema)
38313
38604
  })
38314
38605
  ]);
38315
- var appointmentSetupServiceDraftSchema = z67.object({
38606
+ var appointmentSetupServiceDraftSchema = z68.object({
38316
38607
  ref: appointmentSetupRefSchema,
38317
- title: z67.string().trim().min(1),
38318
- description: z67.string().nullable(),
38319
- durationMinutes: z67.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38320
- prepMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38321
- cleanupMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38322
- priceAmount: z67.number().int().nonnegative().nullable(),
38323
- isActive: z67.boolean(),
38324
- locationType: z67.union([
38325
- z67.literal("virtual"),
38326
- z67.literal("in_person"),
38327
- z67.literal("hybrid")
38608
+ title: z68.string().trim().min(1),
38609
+ description: z68.string().nullable(),
38610
+ durationMinutes: z68.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38611
+ prepMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38612
+ cleanupMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38613
+ priceAmount: z68.number().int().nonnegative().nullable(),
38614
+ isActive: z68.boolean(),
38615
+ locationType: z68.union([
38616
+ z68.literal("virtual"),
38617
+ z68.literal("in_person"),
38618
+ z68.literal("hybrid")
38328
38619
  ]),
38329
38620
  venue: appointmentSetupVenueChoiceSchema,
38330
- timezone: z67.string().trim().min(1).nullable(),
38621
+ timezone: z68.string().trim().min(1).nullable(),
38331
38622
  payment: appointmentSetupPaymentDraftSchema,
38332
38623
  assignment: appointmentSetupServiceAssignmentDraftSchema
38333
38624
  }).superRefine((service, ctx) => {
@@ -38346,49 +38637,49 @@ var appointmentSetupServiceDraftSchema = z67.object({
38346
38637
  });
38347
38638
  }
38348
38639
  });
38349
- var appointmentSetupPractitionerDraftSchema = z67.object({
38640
+ var appointmentSetupPractitionerDraftSchema = z68.object({
38350
38641
  ref: appointmentSetupRefSchema,
38351
- displayName: z67.string().trim().min(1),
38352
- bio: z67.string().nullable(),
38353
- timezone: z67.string().trim().min(1),
38354
- colorHex: z67.string().nullable()
38355
- });
38356
- var appointmentSetupWeeklyWindowDraftSchema = z67.object({
38357
- weekday: z67.number().int().min(0).max(6),
38358
- startTime: z67.string(),
38359
- endTime: z67.string()
38360
- });
38361
- var appointmentSetupStartTimePolicyDraftSchema = z67.discriminatedUnion("kind", [
38362
- z67.object({ kind: z67.literal("automatic_spacing") }),
38363
- z67.object({
38364
- kind: z67.literal("regular_interval"),
38365
- intervalMinutes: z67.union([
38366
- z67.literal(10),
38367
- z67.literal(15),
38368
- z67.literal(20),
38369
- z67.literal(30),
38370
- z67.literal(45),
38371
- z67.literal(60)
38642
+ displayName: z68.string().trim().min(1),
38643
+ bio: z68.string().nullable(),
38644
+ timezone: z68.string().trim().min(1),
38645
+ colorHex: z68.string().nullable()
38646
+ });
38647
+ var appointmentSetupWeeklyWindowDraftSchema = z68.object({
38648
+ weekday: z68.number().int().min(0).max(6),
38649
+ startTime: z68.string(),
38650
+ endTime: z68.string()
38651
+ });
38652
+ var appointmentSetupStartTimePolicyDraftSchema = z68.discriminatedUnion("kind", [
38653
+ z68.object({ kind: z68.literal("automatic_spacing") }),
38654
+ z68.object({
38655
+ kind: z68.literal("regular_interval"),
38656
+ intervalMinutes: z68.union([
38657
+ z68.literal(10),
38658
+ z68.literal(15),
38659
+ z68.literal(20),
38660
+ z68.literal(30),
38661
+ z68.literal(45),
38662
+ z68.literal(60)
38372
38663
  ])
38373
38664
  })
38374
38665
  ]);
38375
- var appointmentSetupAvailabilityDraftSchema = z67.object({
38376
- kind: z67.literal("weekly_windows"),
38666
+ var appointmentSetupAvailabilityDraftSchema = z68.object({
38667
+ kind: z68.literal("weekly_windows"),
38377
38668
  resourceRef: appointmentSetupRefSchema,
38378
38669
  serviceRef: appointmentSetupRefSchema.nullable(),
38379
- windows: z67.array(appointmentSetupWeeklyWindowDraftSchema),
38670
+ windows: z68.array(appointmentSetupWeeklyWindowDraftSchema),
38380
38671
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
38381
38672
  });
38382
38673
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
38383
38674
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
38384
- var appointmentSetupBookingNoticeSchema = z67.object({
38385
- minLeadMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38386
- maxBookingNoticeMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38387
- });
38388
- var applyAppointmentSetupRequestSchema = z67.object({
38389
- services: z67.array(appointmentSetupServiceDraftSchema),
38390
- practitioners: z67.array(appointmentSetupPractitionerDraftSchema),
38391
- availability: z67.array(appointmentSetupAvailabilityDraftSchema),
38675
+ var appointmentSetupBookingNoticeSchema = z68.object({
38676
+ minLeadMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38677
+ maxBookingNoticeMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38678
+ });
38679
+ var applyAppointmentSetupRequestSchema = z68.object({
38680
+ services: z68.array(appointmentSetupServiceDraftSchema),
38681
+ practitioners: z68.array(appointmentSetupPractitionerDraftSchema),
38682
+ availability: z68.array(appointmentSetupAvailabilityDraftSchema),
38392
38683
  bookingNotice: appointmentSetupBookingNoticeSchema
38393
38684
  });
38394
38685
 
@@ -38421,24 +38712,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
38421
38712
  ];
38422
38713
 
38423
38714
  // ../api/src/siteBanner.ts
38424
- import { z as z68 } from "zod";
38715
+ import { z as z69 } from "zod";
38425
38716
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
38426
38717
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
38427
38718
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
38428
38719
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
38429
- var siteBannerScopeSchema = z68.enum(SITE_BANNER_SCOPE_VALUES);
38430
- var siteBannerToneSchema = z68.enum(SITE_BANNER_TONE_VALUES);
38431
- var siteBannerBodySchema = z68.unknown().transform(unwrapRichTextValue);
38432
- var siteBannerCtaSchema = z68.object({
38433
- label: z68.string().trim().min(1),
38720
+ var siteBannerScopeSchema = z69.enum(SITE_BANNER_SCOPE_VALUES);
38721
+ var siteBannerToneSchema = z69.enum(SITE_BANNER_TONE_VALUES);
38722
+ var siteBannerBodySchema = z69.unknown().transform(unwrapRichTextValue);
38723
+ var siteBannerCtaSchema = z69.object({
38724
+ label: z69.string().trim().min(1),
38434
38725
  link: linkPayloadSchema
38435
38726
  });
38436
- var siteBannerSettingsSchema = z68.discriminatedUnion("enabled", [
38437
- z68.object({
38438
- enabled: z68.literal(false)
38727
+ var siteBannerSettingsSchema = z69.discriminatedUnion("enabled", [
38728
+ z69.object({
38729
+ enabled: z69.literal(false)
38439
38730
  }),
38440
- z68.object({
38441
- enabled: z68.literal(true),
38731
+ z69.object({
38732
+ enabled: z69.literal(true),
38442
38733
  scope: siteBannerScopeSchema,
38443
38734
  tone: siteBannerToneSchema,
38444
38735
  body: siteBannerBodySchema,
@@ -38452,7 +38743,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
38452
38743
  const analysis = analyzeSiteBannerBody(value.body);
38453
38744
  for (const issue of analysis.issues) {
38454
38745
  ctx.addIssue({
38455
- code: z68.ZodIssueCode.custom,
38746
+ code: z69.ZodIssueCode.custom,
38456
38747
  path: ["body"],
38457
38748
  message: siteBannerBodyIssueMessage(issue)
38458
38749
  });
@@ -38759,75 +39050,75 @@ function unsafeAsNavigationMenuIdentifier(identifier) {
38759
39050
  var MAIN_NAVIGATION_MENU_IDENTIFIER = unsafeAsNavigationMenuIdentifier("main");
38760
39051
 
38761
39052
  // ../api/src/aiPlayground.ts
38762
- import { z as z69 } from "zod";
38763
- var Rfc6902PatchOp = z69.discriminatedUnion("op", [
39053
+ import { z as z70 } from "zod";
39054
+ var Rfc6902PatchOp = z70.discriminatedUnion("op", [
38764
39055
  // Standard RFC-6902 operations
38765
- z69.object({
38766
- op: z69.literal("add"),
38767
- path: z69.string(),
38768
- value: z69.unknown()
39056
+ z70.object({
39057
+ op: z70.literal("add"),
39058
+ path: z70.string(),
39059
+ value: z70.unknown()
38769
39060
  }),
38770
- z69.object({
38771
- op: z69.literal("remove"),
38772
- path: z69.string()
39061
+ z70.object({
39062
+ op: z70.literal("remove"),
39063
+ path: z70.string()
38773
39064
  }),
38774
- z69.object({
38775
- op: z69.literal("replace"),
38776
- path: z69.string(),
38777
- value: z69.unknown()
39065
+ z70.object({
39066
+ op: z70.literal("replace"),
39067
+ path: z70.string(),
39068
+ value: z70.unknown()
38778
39069
  }),
38779
- z69.object({
38780
- op: z69.literal("move"),
38781
- from: z69.string(),
38782
- path: z69.string()
39070
+ z70.object({
39071
+ op: z70.literal("move"),
39072
+ from: z70.string(),
39073
+ path: z70.string()
38783
39074
  }),
38784
- z69.object({
38785
- op: z69.literal("copy"),
38786
- from: z69.string(),
38787
- path: z69.string()
39075
+ z70.object({
39076
+ op: z70.literal("copy"),
39077
+ from: z70.string(),
39078
+ path: z70.string()
38788
39079
  }),
38789
39080
  // Block-level operations (Phase 2)
38790
- z69.object({
38791
- op: z69.literal("add_block"),
38792
- blockKind: z69.string(),
38793
- afterBlockId: z69.string().nullable(),
38794
- content: z69.record(z69.string(), z69.unknown()),
38795
- rationale: z69.string()
39081
+ z70.object({
39082
+ op: z70.literal("add_block"),
39083
+ blockKind: z70.string(),
39084
+ afterBlockId: z70.string().nullable(),
39085
+ content: z70.record(z70.string(), z70.unknown()),
39086
+ rationale: z70.string()
38796
39087
  }),
38797
- z69.object({
38798
- op: z69.literal("delete_block"),
38799
- blockId: z69.string(),
38800
- rationale: z69.string()
39088
+ z70.object({
39089
+ op: z70.literal("delete_block"),
39090
+ blockId: z70.string(),
39091
+ rationale: z70.string()
38801
39092
  }),
38802
- z69.object({
38803
- op: z69.literal("reorder_block"),
38804
- blockId: z69.string(),
38805
- afterBlockId: z69.string().nullable(),
38806
- rationale: z69.string()
39093
+ z70.object({
39094
+ op: z70.literal("reorder_block"),
39095
+ blockId: z70.string(),
39096
+ afterBlockId: z70.string().nullable(),
39097
+ rationale: z70.string()
38807
39098
  })
38808
39099
  ]);
38809
- var PlaygroundProposeRequest = z69.object({
38810
- request: z69.string().min(1).max(2e3)
39100
+ var PlaygroundProposeRequest = z70.object({
39101
+ request: z70.string().min(1).max(2e3)
38811
39102
  });
38812
- var MultiPagePatchEnvelope = z69.object({
38813
- pageId: z69.string(),
38814
- blockId: z69.string().optional(),
39103
+ var MultiPagePatchEnvelope = z70.object({
39104
+ pageId: z70.string(),
39105
+ blockId: z70.string().optional(),
38815
39106
  // Not present for page-level ops
38816
- blockKind: z69.string().optional(),
38817
- blockPurpose: z69.string().optional().nullable(),
38818
- ops: z69.array(Rfc6902PatchOp),
38819
- rationale: z69.string(),
38820
- currentContent: z69.record(z69.string(), z69.unknown()).optional()
39107
+ blockKind: z70.string().optional(),
39108
+ blockPurpose: z70.string().optional().nullable(),
39109
+ ops: z70.array(Rfc6902PatchOp),
39110
+ rationale: z70.string(),
39111
+ currentContent: z70.record(z70.string(), z70.unknown()).optional()
38821
39112
  });
38822
- var MultiPageUpdateResponse = z69.object({
38823
- patches: z69.array(MultiPagePatchEnvelope),
38824
- assistantMessage: z69.string(),
38825
- pagesModified: z69.number(),
38826
- toolCallsUsed: z69.number()
39113
+ var MultiPageUpdateResponse = z70.object({
39114
+ patches: z70.array(MultiPagePatchEnvelope),
39115
+ assistantMessage: z70.string(),
39116
+ pagesModified: z70.number(),
39117
+ toolCallsUsed: z70.number()
38827
39118
  });
38828
39119
 
38829
39120
  // src/config/content-validation.ts
38830
- import { z as z70 } from "zod";
39121
+ import { z as z71 } from "zod";
38831
39122
 
38832
39123
  // src/types/block-kinds.ts
38833
39124
  var SYSTEM_BLOCK_KINDS = [
@@ -38983,36 +39274,36 @@ function describeInvalidBindingTransform(transform) {
38983
39274
  }
38984
39275
 
38985
39276
  // src/config/content-validation.ts
38986
- var jsonDataSchema = z70.record(z70.string(), z70.any());
38987
- var contentTypeKeySchema = z70.string().min(1).regex(
39277
+ var jsonDataSchema = z71.record(z71.string(), z71.any());
39278
+ var contentTypeKeySchema = z71.string().min(1).regex(
38988
39279
  /^[a-z][a-z0-9-]*$/,
38989
39280
  "Key must be lowercase, start with a letter, and contain only letters, numbers, and hyphens"
38990
39281
  );
38991
- var templateConfigSchemaForward = z70.object({
38992
- blocks: z70.array(
38993
- z70.object({
38994
- identifier: z70.string().min(1),
38995
- kind: z70.string(),
38996
- scope: z70.enum(["entry", "template"]),
38997
- bindings: z70.record(z70.string(), z70.any()).optional(),
38998
- content: z70.record(z70.string(), z70.any()).optional()
39282
+ var templateConfigSchemaForward = z71.object({
39283
+ blocks: z71.array(
39284
+ z71.object({
39285
+ identifier: z71.string().min(1),
39286
+ kind: z71.string(),
39287
+ scope: z71.enum(["entry", "template"]),
39288
+ bindings: z71.record(z71.string(), z71.any()).optional(),
39289
+ content: z71.record(z71.string(), z71.any()).optional()
38999
39290
  })
39000
39291
  )
39001
39292
  }).optional();
39002
- var contentTypeOrderingSchema = z70.object({
39003
- mode: z70.enum(["default", "manual"]).optional()
39293
+ var contentTypeOrderingSchema = z71.object({
39294
+ mode: z71.enum(["default", "manual"]).optional()
39004
39295
  }).optional();
39005
- var contentTypeConfigSchema = z70.object({
39296
+ var contentTypeConfigSchema = z71.object({
39006
39297
  key: contentTypeKeySchema,
39007
- name: z70.string().min(1),
39008
- description: z70.string().optional(),
39009
- hasPages: z70.boolean(),
39010
- routePattern: z70.string().optional(),
39298
+ name: z71.string().min(1),
39299
+ description: z71.string().optional(),
39300
+ hasPages: z71.boolean(),
39301
+ routePattern: z71.string().optional(),
39011
39302
  // Fields are validated as unknown[] here - deep field validation happens in @riverbankcms/blocks
39012
- fields: z70.array(z70.any()).min(1, "At least one field is required"),
39013
- titleField: z70.string().optional(),
39303
+ fields: z71.array(z71.any()).min(1, "At least one field is required"),
39304
+ titleField: z71.string().optional(),
39014
39305
  ordering: contentTypeOrderingSchema,
39015
- isSingleton: z70.boolean().optional().default(false),
39306
+ isSingleton: z71.boolean().optional().default(false),
39016
39307
  template: templateConfigSchemaForward
39017
39308
  }).refine(
39018
39309
  (data) => {
@@ -39034,7 +39325,7 @@ var contentTypeConfigSchema = z70.object({
39034
39325
  }
39035
39326
  if (!data.routePattern) {
39036
39327
  ctx.addIssue({
39037
- code: z70.ZodIssueCode.custom,
39328
+ code: z71.ZodIssueCode.custom,
39038
39329
  path: ["routePattern"],
39039
39330
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39040
39331
  });
@@ -39043,7 +39334,7 @@ var contentTypeConfigSchema = z70.object({
39043
39334
  const parseResult = safeParseRouteTemplate(data.routePattern);
39044
39335
  if (!parseResult.success) {
39045
39336
  ctx.addIssue({
39046
- code: z70.ZodIssueCode.custom,
39337
+ code: z71.ZodIssueCode.custom,
39047
39338
  path: ["routePattern"],
39048
39339
  message: describeRouteTemplateParseError(parseResult.error)
39049
39340
  });
@@ -39051,44 +39342,44 @@ var contentTypeConfigSchema = z70.object({
39051
39342
  }
39052
39343
  if (!data.isSingleton && parseResult.routeTemplate.kind !== "slug-template") {
39053
39344
  ctx.addIssue({
39054
- code: z70.ZodIssueCode.custom,
39345
+ code: z71.ZodIssueCode.custom,
39055
39346
  path: ["routePattern"],
39056
39347
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39057
39348
  });
39058
39349
  }
39059
39350
  });
39060
- var fieldBindingSchema = z70.object({
39061
- source: z70.literal("field"),
39062
- path: z70.string().min(1, "Field path is required")
39351
+ var fieldBindingSchema = z71.object({
39352
+ source: z71.literal("field"),
39353
+ path: z71.string().min(1, "Field path is required")
39063
39354
  });
39064
- var metaBindingSchema = z70.object({
39065
- source: z70.literal("meta"),
39066
- path: z70.enum(TEMPLATE_BINDING_META_PATHS, {
39355
+ var metaBindingSchema = z71.object({
39356
+ source: z71.literal("meta"),
39357
+ path: z71.enum(TEMPLATE_BINDING_META_PATHS, {
39067
39358
  error: (issue) => describeInvalidTemplateBindingMetaPath(String(issue.input))
39068
39359
  })
39069
39360
  });
39070
- var literalBindingSchema = z70.object({
39071
- source: z70.literal("literal"),
39072
- value: z70.unknown()
39361
+ var literalBindingSchema = z71.object({
39362
+ source: z71.literal("literal"),
39363
+ value: z71.unknown()
39073
39364
  });
39074
- var transformBindingSchema = z70.object({
39075
- source: z70.literal("transform"),
39076
- path: z70.string().min(1, "Transform path is required"),
39077
- transform: z70.enum(BINDING_TRANSFORM_VALUES, {
39365
+ var transformBindingSchema = z71.object({
39366
+ source: z71.literal("transform"),
39367
+ path: z71.string().min(1, "Transform path is required"),
39368
+ transform: z71.enum(BINDING_TRANSFORM_VALUES, {
39078
39369
  error: (issue) => describeInvalidBindingTransform(String(issue.input))
39079
39370
  })
39080
39371
  });
39081
- var baseBindingSchema = z70.discriminatedUnion("source", [
39372
+ var baseBindingSchema = z71.discriminatedUnion("source", [
39082
39373
  fieldBindingSchema,
39083
39374
  metaBindingSchema,
39084
39375
  literalBindingSchema,
39085
39376
  transformBindingSchema
39086
39377
  ]);
39087
- var fallbackBindingSchema = z70.object({
39088
- source: z70.literal("fallback"),
39089
- sources: z70.array(z70.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39378
+ var fallbackBindingSchema = z71.object({
39379
+ source: z71.literal("fallback"),
39380
+ sources: z71.array(z71.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39090
39381
  });
39091
- var bindingSourceSchema = z70.union([
39382
+ var bindingSourceSchema = z71.union([
39092
39383
  baseBindingSchema,
39093
39384
  fallbackBindingSchema
39094
39385
  ]);
@@ -39102,12 +39393,12 @@ function isValidBlockKind(kind) {
39102
39393
  return false;
39103
39394
  }
39104
39395
  var BLOCK_KIND_ERROR_MESSAGE = 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.myBlock")';
39105
- var blockKindSchema = z70.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39106
- var templateBlockConfigSchema = z70.object({
39107
- identifier: z70.string().min(1, "Block identifier is required"),
39396
+ var blockKindSchema = z71.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39397
+ var templateBlockConfigSchema = z71.object({
39398
+ identifier: z71.string().min(1, "Block identifier is required"),
39108
39399
  kind: blockKindSchema,
39109
- scope: z70.enum(["entry", "template"]),
39110
- bindings: z70.record(z70.string(), bindingSourceSchema).optional(),
39400
+ scope: z71.enum(["entry", "template"]),
39401
+ bindings: z71.record(z71.string(), bindingSourceSchema).optional(),
39111
39402
  content: jsonDataSchema.optional()
39112
39403
  }).refine(
39113
39404
  (data) => {
@@ -39126,8 +39417,8 @@ var templateBlockConfigSchema = z70.object({
39126
39417
  },
39127
39418
  { message: "Template-scoped blocks should define static content, not bindings" }
39128
39419
  );
39129
- var templateConfigSchema = z70.object({
39130
- blocks: z70.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39420
+ var templateConfigSchema = z71.object({
39421
+ blocks: z71.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39131
39422
  }).refine(
39132
39423
  (data) => {
39133
39424
  const identifiers = data.blocks.map((b) => b.identifier);
@@ -39136,77 +39427,77 @@ var templateConfigSchema = z70.object({
39136
39427
  },
39137
39428
  { message: "Template block identifiers must be unique" }
39138
39429
  );
39139
- var blockConfigSchema = z70.object({
39430
+ var blockConfigSchema = z71.object({
39140
39431
  kind: blockKindSchema,
39141
39432
  content: jsonDataSchema,
39142
- orderIndex: z70.number().optional()
39143
- });
39144
- var pageConfigSchema = z70.object({
39145
- identifier: z70.string().min(1, "Identifier is required"),
39146
- title: z70.string().min(1, "Title is required"),
39147
- path: z70.string().regex(/^\//, "Path must start with /"),
39148
- purpose: z70.string().default("content"),
39149
- blocks: z70.array(blockConfigSchema).optional(),
39150
- status: z70.enum(["draft", "published"]).default("draft"),
39151
- metaTitle: z70.string().optional(),
39152
- metaDescription: z70.string().optional()
39153
- });
39154
- var entryConfigSchema = z70.object({
39155
- identifier: z70.string().min(1, "Identifier is required"),
39156
- contentType: z70.string().min(1, "Content type is required"),
39433
+ orderIndex: z71.number().optional()
39434
+ });
39435
+ var pageConfigSchema = z71.object({
39436
+ identifier: z71.string().min(1, "Identifier is required"),
39437
+ title: z71.string().min(1, "Title is required"),
39438
+ path: z71.string().regex(/^\//, "Path must start with /"),
39439
+ purpose: z71.string().default("content"),
39440
+ blocks: z71.array(blockConfigSchema).optional(),
39441
+ status: z71.enum(["draft", "published"]).default("draft"),
39442
+ metaTitle: z71.string().optional(),
39443
+ metaDescription: z71.string().optional()
39444
+ });
39445
+ var entryConfigSchema = z71.object({
39446
+ identifier: z71.string().min(1, "Identifier is required"),
39447
+ contentType: z71.string().min(1, "Content type is required"),
39157
39448
  data: jsonDataSchema,
39158
- status: z70.enum(["draft", "published"]).default("draft"),
39159
- slug: z70.string().optional(),
39160
- summary: z70.string().optional(),
39449
+ status: z71.enum(["draft", "published"]).default("draft"),
39450
+ slug: z71.string().optional(),
39451
+ summary: z71.string().optional(),
39161
39452
  // Hard remove legacy config-only titles: titles must live in entry `data`.
39162
- title: z70.any().optional().refine((value) => value === void 0, {
39453
+ title: z71.any().optional().refine((value) => value === void 0, {
39163
39454
  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."
39164
39455
  }),
39165
- metaTitle: z70.string().optional(),
39166
- metaDescription: z70.string().optional()
39456
+ metaTitle: z71.string().optional(),
39457
+ metaDescription: z71.string().optional()
39167
39458
  });
39168
- var dropdownLinkSchema = z70.object({
39169
- kind: z70.literal("dropdown")
39459
+ var dropdownLinkSchema = z71.object({
39460
+ kind: z71.literal("dropdown")
39170
39461
  });
39171
- var navigationLinkSchema = z70.discriminatedUnion("kind", [
39462
+ var navigationLinkSchema = z71.discriminatedUnion("kind", [
39172
39463
  ...navigationLinkInputSchemaOptions,
39173
39464
  dropdownLinkSchema
39174
39465
  ]);
39175
- var baseNavigationItemSchema = z70.object({
39176
- label: z70.string().min(1, "Label is required"),
39466
+ var baseNavigationItemSchema = z71.object({
39467
+ label: z71.string().min(1, "Label is required"),
39177
39468
  link: navigationLinkSchema,
39178
- isCta: z70.boolean().optional()
39469
+ isCta: z71.boolean().optional()
39179
39470
  });
39180
39471
  var navigationItemConfigSchema = baseNavigationItemSchema.extend({
39181
- children: z70.lazy(() => z70.array(navigationItemConfigSchema)).optional()
39182
- });
39183
- var navigationMenuConfigSchema = z70.object({
39184
- identifier: z70.string().min(1, "Identifier is required"),
39185
- name: z70.string().min(1, "Name is required"),
39186
- isPrimary: z70.boolean().optional(),
39187
- isFooter: z70.boolean().optional(),
39188
- items: z70.array(navigationItemConfigSchema)
39472
+ children: z71.lazy(() => z71.array(navigationItemConfigSchema)).optional()
39473
+ });
39474
+ var navigationMenuConfigSchema = z71.object({
39475
+ identifier: z71.string().min(1, "Identifier is required"),
39476
+ name: z71.string().min(1, "Name is required"),
39477
+ isPrimary: z71.boolean().optional(),
39478
+ isFooter: z71.boolean().optional(),
39479
+ items: z71.array(navigationItemConfigSchema)
39189
39480
  }).superRefine((menu, ctx) => {
39190
39481
  const portalStats = collectPortalLinkStats(
39191
39482
  menu.items
39192
39483
  );
39193
39484
  if (portalStats.count > 1) {
39194
39485
  ctx.addIssue({
39195
- code: z70.ZodIssueCode.custom,
39486
+ code: z71.ZodIssueCode.custom,
39196
39487
  message: "Only one portal link is allowed per navigation menu",
39197
39488
  path: ["items"]
39198
39489
  });
39199
39490
  }
39200
39491
  if (portalStats.nestedLabels.length > 0) {
39201
39492
  ctx.addIssue({
39202
- code: z70.ZodIssueCode.custom,
39493
+ code: z71.ZodIssueCode.custom,
39203
39494
  message: `Portal links must be root-level items: ${portalStats.nestedLabels.join(", ")}`,
39204
39495
  path: ["items"]
39205
39496
  });
39206
39497
  }
39207
39498
  if (portalStats.withChildrenLabels.length > 0) {
39208
39499
  ctx.addIssue({
39209
- code: z70.ZodIssueCode.custom,
39500
+ code: z71.ZodIssueCode.custom,
39210
39501
  message: `Portal links cannot contain child items: ${portalStats.withChildrenLabels.join(", ")}`,
39211
39502
  path: ["items"]
39212
39503
  });
@@ -39216,44 +39507,44 @@ var navigationMenuConfigSchema = z70.object({
39216
39507
  );
39217
39508
  if (cartStats.nestedLabels.length > 0) {
39218
39509
  ctx.addIssue({
39219
- code: z70.ZodIssueCode.custom,
39510
+ code: z71.ZodIssueCode.custom,
39220
39511
  message: `Cart links must be root-level items: ${cartStats.nestedLabels.join(", ")}`,
39221
39512
  path: ["items"]
39222
39513
  });
39223
39514
  }
39224
39515
  if (cartStats.withChildrenLabels.length > 0) {
39225
39516
  ctx.addIssue({
39226
- code: z70.ZodIssueCode.custom,
39517
+ code: z71.ZodIssueCode.custom,
39227
39518
  message: `Cart links cannot contain child items: ${cartStats.withChildrenLabels.join(", ")}`,
39228
39519
  path: ["items"]
39229
39520
  });
39230
39521
  }
39231
39522
  if (cartStats.ctaLabels.length > 0) {
39232
39523
  ctx.addIssue({
39233
- code: z70.ZodIssueCode.custom,
39524
+ code: z71.ZodIssueCode.custom,
39234
39525
  message: `Cart links cannot be marked as CTA: ${cartStats.ctaLabels.join(", ")}`,
39235
39526
  path: ["items"]
39236
39527
  });
39237
39528
  }
39238
39529
  if (cartStats.missingVisibleTextLabels.length > 0) {
39239
39530
  ctx.addIssue({
39240
- code: z70.ZodIssueCode.custom,
39531
+ code: z71.ZodIssueCode.custom,
39241
39532
  message: `Cart links with icon-with-label must provide a visible label: ${cartStats.missingVisibleTextLabels.join(", ")}`,
39242
39533
  path: ["items"]
39243
39534
  });
39244
39535
  }
39245
39536
  });
39246
- var siteSettingsConfigSchema = z70.object({
39247
- homepagePath: z70.string().optional(),
39248
- siteTitle: z70.string().optional(),
39249
- siteDescription: z70.string().optional(),
39250
- defaultTemplates: z70.record(z70.string(), z70.string()).optional()
39537
+ var siteSettingsConfigSchema = z71.object({
39538
+ homepagePath: z71.string().optional(),
39539
+ siteTitle: z71.string().optional(),
39540
+ siteDescription: z71.string().optional(),
39541
+ defaultTemplates: z71.record(z71.string(), z71.string()).optional()
39251
39542
  });
39252
- var contentConfigBaseSchema = z70.object({
39253
- contentTypes: z70.array(contentTypeConfigSchema).optional(),
39254
- entries: z70.array(entryConfigSchema).optional(),
39255
- pages: z70.array(pageConfigSchema).optional(),
39256
- navigationMenus: z70.array(navigationMenuConfigSchema).optional(),
39543
+ var contentConfigBaseSchema = z71.object({
39544
+ contentTypes: z71.array(contentTypeConfigSchema).optional(),
39545
+ entries: z71.array(entryConfigSchema).optional(),
39546
+ pages: z71.array(pageConfigSchema).optional(),
39547
+ navigationMenus: z71.array(navigationMenuConfigSchema).optional(),
39257
39548
  settings: siteSettingsConfigSchema.optional()
39258
39549
  });
39259
39550
  var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
@@ -39262,7 +39553,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39262
39553
  const duplicateKeys = keys.filter((key, i) => keys.indexOf(key) !== i);
39263
39554
  if (duplicateKeys.length > 0) {
39264
39555
  ctx.addIssue({
39265
- code: z70.ZodIssueCode.custom,
39556
+ code: z71.ZodIssueCode.custom,
39266
39557
  message: `Content type keys must be unique. Duplicates: ${duplicateKeys.join(", ")}`,
39267
39558
  path: ["contentTypes"]
39268
39559
  });
@@ -39273,7 +39564,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39273
39564
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39274
39565
  if (duplicateIds.length > 0) {
39275
39566
  ctx.addIssue({
39276
- code: z70.ZodIssueCode.custom,
39567
+ code: z71.ZodIssueCode.custom,
39277
39568
  message: `Page identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39278
39569
  path: ["pages"]
39279
39570
  });
@@ -39282,7 +39573,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39282
39573
  const duplicatePaths = paths.filter((path, i) => paths.indexOf(path) !== i);
39283
39574
  if (duplicatePaths.length > 0) {
39284
39575
  ctx.addIssue({
39285
- code: z70.ZodIssueCode.custom,
39576
+ code: z71.ZodIssueCode.custom,
39286
39577
  message: `Page paths must be unique. Duplicates: ${duplicatePaths.join(", ")}`,
39287
39578
  path: ["pages"]
39288
39579
  });
@@ -39293,7 +39584,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39293
39584
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39294
39585
  if (duplicateIds.length > 0) {
39295
39586
  ctx.addIssue({
39296
- code: z70.ZodIssueCode.custom,
39587
+ code: z71.ZodIssueCode.custom,
39297
39588
  message: `Entry identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39298
39589
  path: ["entries"]
39299
39590
  });
@@ -39304,7 +39595,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39304
39595
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39305
39596
  if (duplicateIds.length > 0) {
39306
39597
  ctx.addIssue({
39307
- code: z70.ZodIssueCode.custom,
39598
+ code: z71.ZodIssueCode.custom,
39308
39599
  message: `Navigation menu identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39309
39600
  path: ["navigationMenus"]
39310
39601
  });
@@ -39318,7 +39609,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39318
39609
  const entriesForType = data.entries.filter((e) => e.contentType === singletonKey);
39319
39610
  if (entriesForType.length > 1) {
39320
39611
  ctx.addIssue({
39321
- code: z70.ZodIssueCode.custom,
39612
+ code: z71.ZodIssueCode.custom,
39322
39613
  message: `Singleton content type "${singletonKey}" cannot have more than one entry. Found ${entriesForType.length} entries.`,
39323
39614
  path: ["entries"]
39324
39615
  });
@@ -39431,18 +39722,18 @@ function validateLayout(layout) {
39431
39722
  }
39432
39723
 
39433
39724
  // src/config/dashboard-validation.ts
39434
- import { z as z71 } from "zod";
39435
- var navIdListSchema2 = z71.preprocess((value) => {
39725
+ import { z as z72 } from "zod";
39726
+ var navIdListSchema2 = z72.preprocess((value) => {
39436
39727
  if (!Array.isArray(value)) return void 0;
39437
39728
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
39438
39729
  return filtered.length > 0 ? filtered : void 0;
39439
- }, z71.array(z71.string()).max(200, "Maximum 200 nav IDs").optional());
39440
- var dashboardNavVisibilityBaseSchema2 = z71.object({
39441
- mode: z71.enum(["augment", "restrict"]).optional(),
39730
+ }, z72.array(z72.string()).max(200, "Maximum 200 nav IDs").optional());
39731
+ var dashboardNavVisibilityBaseSchema2 = z72.object({
39732
+ mode: z72.enum(["augment", "restrict"]).optional(),
39442
39733
  allowIds: navIdListSchema2,
39443
39734
  denyIds: navIdListSchema2
39444
39735
  }).strip();
39445
- var dashboardNavVisibilityRolesSchema2 = z71.object({
39736
+ var dashboardNavVisibilityRolesSchema2 = z72.object({
39446
39737
  administrator: dashboardNavVisibilityBaseSchema2.optional(),
39447
39738
  editor: dashboardNavVisibilityBaseSchema2.optional(),
39448
39739
  team_member: dashboardNavVisibilityBaseSchema2.optional()
@@ -39450,43 +39741,28 @@ var dashboardNavVisibilityRolesSchema2 = z71.object({
39450
39741
  var dashboardNavVisibilitySchema2 = dashboardNavVisibilityBaseSchema2.extend({
39451
39742
  roles: dashboardNavVisibilityRolesSchema2
39452
39743
  }).strip();
39453
- var dashboardNavigationConfigSchema2 = z71.object({
39744
+ var dashboardNavigationConfigSchema2 = z72.object({
39454
39745
  siteNav: dashboardNavVisibilitySchema2.optional(),
39455
39746
  settingsNav: dashboardNavVisibilitySchema2.optional()
39456
39747
  }).strip();
39457
- var dashboardConfigSchema2 = z71.object({
39458
- previewEditingEnabled: z71.boolean().optional(),
39748
+ var dashboardConfigSchema2 = z72.object({
39749
+ previewEditingEnabled: z72.boolean().optional(),
39459
39750
  navigation: dashboardNavigationConfigSchema2.optional()
39460
39751
  }).strip();
39461
39752
 
39462
39753
  // src/zod/titleSourceSchema.ts
39463
- import { z as z72 } from "zod";
39464
- var titleSourceValueSchema = z72.union([
39465
- z72.string().min(1),
39466
- z72.array(z72.string().min(1)).min(1)
39754
+ import { z as z73 } from "zod";
39755
+ var titleSourceValueSchema = z73.union([
39756
+ z73.string().min(1),
39757
+ z73.array(z73.string().min(1)).min(1)
39467
39758
  ]);
39468
39759
 
39469
- // src/data/prefetchBlockData.ts
39470
- var SUPPORTED_LOADER_ENDPOINTS2 = [
39471
- "listPublishedEntries",
39472
- "getPublishedEntryPreview",
39473
- "listPublicEvents",
39474
- "listPublicCourses",
39475
- "listPublicTeamMembers",
39476
- "listPublicProducts",
39477
- "listPublicPasses",
39478
- "listPublicMemberships",
39479
- "getPublicFormById",
39480
- "getPublicBookingServices",
39481
- "getPublicEventDetails"
39482
- ];
39483
-
39484
39760
  // src/config/validation.ts
39485
- var sdkThemePaletteSchema2 = z73.record(z73.string(), z73.string());
39486
- var sdkThemeConfigSchema2 = z73.object({
39761
+ var sdkThemePaletteSchema2 = z74.record(z74.string(), z74.string());
39762
+ var sdkThemeConfigSchema2 = z74.object({
39487
39763
  palette: sdkThemePaletteSchema2
39488
39764
  });
39489
- var sdkSiteUrlSchema = z73.string().url("Must be a valid URL").refine((url) => {
39765
+ var sdkSiteUrlSchema = z74.string().url("Must be a valid URL").refine((url) => {
39490
39766
  try {
39491
39767
  const parsed = new URL(url);
39492
39768
  const isLocal = parsed.hostname === "localhost" || parsed.hostname.endsWith(".localhost") || parsed.hostname.endsWith(".local") || parsed.hostname.endsWith(".test");
@@ -39495,97 +39771,97 @@ var sdkSiteUrlSchema = z73.string().url("Must be a valid URL").refine((url) => {
39495
39771
  return false;
39496
39772
  }
39497
39773
  }, { message: "Production URLs must use HTTPS" }).transform((url) => url.replace(/\/$/, ""));
39498
- var sectionBackgroundSchema = z73.object({
39499
- id: z73.string(),
39500
- label: z73.string(),
39501
- token: z73.string()
39774
+ var sectionBackgroundSchema = z74.object({
39775
+ id: z74.string(),
39776
+ label: z74.string(),
39777
+ token: z74.string()
39502
39778
  // Reference to theme palette token
39503
39779
  });
39504
- var sectionSpacingSchema = z73.enum(["compact", "default", "spacious"]);
39505
- var containerMaxWidthSchema = z73.enum(["narrow", "default", "wide", "full"]);
39506
- var containerAlignmentSchema = z73.enum(["left", "center", "right"]);
39507
- var sectionOptionsSchema = z73.object({
39508
- backgroundColor: z73.boolean().optional(),
39509
- backgroundImage: z73.boolean().optional(),
39510
- backgroundGradient: z73.boolean().optional(),
39511
- spacing: z73.union([
39512
- z73.array(sectionSpacingSchema),
39513
- z73.boolean()
39780
+ var sectionSpacingSchema = z74.enum(["compact", "default", "spacious"]);
39781
+ var containerMaxWidthSchema = z74.enum(["narrow", "default", "wide", "full"]);
39782
+ var containerAlignmentSchema = z74.enum(["left", "center", "right"]);
39783
+ var sectionOptionsSchema = z74.object({
39784
+ backgroundColor: z74.boolean().optional(),
39785
+ backgroundImage: z74.boolean().optional(),
39786
+ backgroundGradient: z74.boolean().optional(),
39787
+ spacing: z74.union([
39788
+ z74.array(sectionSpacingSchema),
39789
+ z74.boolean()
39514
39790
  ]).optional(),
39515
- textColor: z73.boolean().optional()
39791
+ textColor: z74.boolean().optional()
39516
39792
  }).optional();
39517
- var containerOptionsSchema = z73.object({
39518
- maxWidth: z73.union([
39519
- z73.array(containerMaxWidthSchema),
39520
- z73.boolean()
39793
+ var containerOptionsSchema = z74.object({
39794
+ maxWidth: z74.union([
39795
+ z74.array(containerMaxWidthSchema),
39796
+ z74.boolean()
39521
39797
  ]).optional(),
39522
- alignment: z73.union([
39523
- z73.array(containerAlignmentSchema),
39524
- z73.boolean()
39798
+ alignment: z74.union([
39799
+ z74.array(containerAlignmentSchema),
39800
+ z74.boolean()
39525
39801
  ]).optional()
39526
39802
  }).optional();
39527
- var siteStyleConfigSchema = z73.object({
39528
- sectionBackgrounds: z73.array(sectionBackgroundSchema).optional(),
39803
+ var siteStyleConfigSchema = z74.object({
39804
+ sectionBackgrounds: z74.array(sectionBackgroundSchema).optional(),
39529
39805
  sectionOptions: sectionOptionsSchema,
39530
39806
  containerOptions: containerOptionsSchema
39531
39807
  }).optional();
39532
- var sdkLoaderEndpointSchema2 = z73.enum(SUPPORTED_LOADER_ENDPOINTS2);
39808
+ var sdkLoaderEndpointSchema2 = z74.enum(SUPPORTED_LOADER_ENDPOINTS);
39533
39809
  var allowedTransformIds = new Set(builtinTransformDefinitions.map((transform) => transform.id));
39534
- var loaderTransformStepSchema = z73.object({
39535
- id: z73.string().refine((id) => allowedTransformIds.has(id), {
39810
+ var loaderTransformStepSchema = z74.object({
39811
+ id: z74.string().refine((id) => allowedTransformIds.has(id), {
39536
39812
  message: "Unknown transform id"
39537
39813
  }),
39538
- options: z73.record(z73.string(), z73.unknown()).optional()
39814
+ options: z74.record(z74.string(), z74.unknown()).optional()
39539
39815
  });
39540
- var loaderParamBindingSchema2 = z73.object({
39541
- $bind: z73.object({
39542
- from: z73.string().min(1, "Binding path is required"),
39816
+ var loaderParamBindingSchema2 = z74.object({
39817
+ $bind: z74.object({
39818
+ from: z74.string().min(1, "Binding path is required"),
39543
39819
  // Loader params are ultimately string-normalized for query strings, so fallbacks should
39544
39820
  // stay scalar. Use transforms (e.g. `value.jsonArray`) when you need to serialize
39545
39821
  // more complex values into a string.
39546
39822
  fallback: loaderFallbackScalarSchema.optional(),
39547
- transforms: z73.array(loaderTransformStepSchema).default([]),
39548
- pick: z73.enum(["value", "collection", "context"]).default("value"),
39549
- coerce: z73.enum(["number", "boolean", "string"]).optional()
39823
+ transforms: z74.array(loaderTransformStepSchema).default([]),
39824
+ pick: z74.enum(["value", "collection", "context"]).default("value"),
39825
+ coerce: z74.enum(["number", "boolean", "string"]).optional()
39550
39826
  })
39551
39827
  });
39552
- var loaderParamValueSchema2 = z73.union([
39553
- z73.string(),
39554
- z73.number(),
39555
- z73.boolean(),
39828
+ var loaderParamValueSchema2 = z74.union([
39829
+ z74.string(),
39830
+ z74.number(),
39831
+ z74.boolean(),
39556
39832
  loaderParamBindingSchema2
39557
39833
  ]);
39558
- var loaderWhenValueSchema = z73.union([
39559
- z73.boolean(),
39834
+ var loaderWhenValueSchema = z74.union([
39835
+ z74.boolean(),
39560
39836
  loaderParamBindingSchema2
39561
39837
  ]);
39562
- var sdkConfigLoaderSchema2 = z73.object({
39838
+ var sdkConfigLoaderSchema2 = z74.object({
39563
39839
  endpoint: sdkLoaderEndpointSchema2,
39564
- params: z73.record(z73.string(), loaderParamValueSchema2),
39565
- mode: z73.enum(["server", "client"]).default("server"),
39840
+ params: z74.record(z74.string(), loaderParamValueSchema2),
39841
+ mode: z74.enum(["server", "client"]).default("server"),
39566
39842
  when: loaderWhenValueSchema.optional()
39567
39843
  });
39568
- var sdkDataLoadersSchema2 = z73.record(z73.string(), sdkConfigLoaderSchema2).refine(
39844
+ var sdkDataLoadersSchema2 = z74.record(z74.string(), sdkConfigLoaderSchema2).refine(
39569
39845
  (loaders) => Object.keys(loaders).length <= 5,
39570
39846
  { message: "Maximum 5 data loaders per block" }
39571
39847
  ).optional();
39572
- var fieldSelectOptionSchema = z73.object({
39573
- value: z73.string().min(1, "Option value is required"),
39574
- label: z73.string().min(1, "Option label is required")
39848
+ var fieldSelectOptionSchema = z74.object({
39849
+ value: z74.string().min(1, "Option value is required"),
39850
+ label: z74.string().min(1, "Option label is required")
39575
39851
  });
39576
- var blockFieldConfigSchema = z73.object({
39577
- options: z73.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
39852
+ var blockFieldConfigSchema = z74.object({
39853
+ options: z74.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
39578
39854
  });
39579
- var blockFieldOptionsSchema = z73.record(
39580
- z73.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
39855
+ var blockFieldOptionsSchema = z74.record(
39856
+ z74.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
39581
39857
  message: "Block ID must be 'block.*' or 'custom.*' format"
39582
39858
  }),
39583
- z73.record(
39584
- z73.string().min(1, "Field ID is required"),
39859
+ z74.record(
39860
+ z74.string().min(1, "Field ID is required"),
39585
39861
  blockFieldConfigSchema
39586
39862
  )
39587
39863
  ).optional();
39588
- var blockFieldExtensionSchema = z73.object({
39864
+ var blockFieldExtensionSchema = z74.object({
39589
39865
  fields: fieldSchema.array().min(1, "At least one field is required")
39590
39866
  }).refine(
39591
39867
  (data) => {
@@ -39599,10 +39875,10 @@ var blockFieldExtensionSchema = z73.object({
39599
39875
  message: "Required fields must have a defaultValue to support existing blocks"
39600
39876
  }
39601
39877
  );
39602
- var blockFieldExtensionsMapSchema = z73.record(
39878
+ var blockFieldExtensionsMapSchema = z74.record(
39603
39879
  // System blocks are kebab-case: block.body-text, block.event-calendar, ...
39604
39880
  // Enforce: lowercase alphanumerics with single hyphens (no trailing hyphen, no consecutive hyphens).
39605
- z73.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
39881
+ z74.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
39606
39882
  message: "Block ID must be 'block.*' format (system blocks only)"
39607
39883
  }),
39608
39884
  blockFieldExtensionSchema
@@ -39618,7 +39894,7 @@ var blockFieldExtensionsMapSchema = z73.record(
39618
39894
  (field) => field.id === collision.fieldId
39619
39895
  );
39620
39896
  ctx.addIssue({
39621
- code: z73.ZodIssueCode.custom,
39897
+ code: z74.ZodIssueCode.custom,
39622
39898
  message: collision.message,
39623
39899
  path: [
39624
39900
  APPOINTMENT_BOOKING_BLOCK_ID,
@@ -39684,24 +39960,24 @@ function validateFieldIdConflicts(blockFieldExtensions) {
39684
39960
  }
39685
39961
  return conflicts;
39686
39962
  }
39687
- var syncConfigSchema = z73.object({
39688
- existingEntries: z73.enum(["skip", "update"]).optional()
39963
+ var syncConfigSchema = z74.object({
39964
+ existingEntries: z74.enum(["skip", "update"]).optional()
39689
39965
  }).optional();
39690
- var deployConfigSchema = z73.object({
39691
- verifyCommand: z73.string().optional(),
39692
- prebuildOutput: z73.string().optional()
39966
+ var deployConfigSchema = z74.object({
39967
+ verifyCommand: z74.string().optional(),
39968
+ prebuildOutput: z74.string().optional()
39693
39969
  }).optional();
39694
- var sdkCustomBlockSchema = z73.object({
39970
+ var sdkCustomBlockSchema = z74.object({
39695
39971
  // Block ID must start with 'custom.'
39696
- id: z73.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
39972
+ id: z74.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
39697
39973
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
39698
39974
  }),
39699
- title: z73.string().min(1, "Title is required"),
39975
+ title: z74.string().min(1, "Title is required"),
39700
39976
  titleSource: titleSourceValueSchema.optional(),
39701
- description: z73.string().optional(),
39977
+ description: z74.string().optional(),
39702
39978
  category: blockCategoryEnum,
39703
- icon: z73.string().optional(),
39704
- tags: z73.array(z73.string()).optional(),
39979
+ icon: z74.string().optional(),
39980
+ tags: z74.array(z74.string()).optional(),
39705
39981
  // Reuse the exact field schema from @riverbankcms/blocks - all field types supported
39706
39982
  fields: fieldSchema.array().min(1, "Custom blocks must have at least one field"),
39707
39983
  // Data loaders for CMS endpoints
@@ -39709,14 +39985,14 @@ var sdkCustomBlockSchema = z73.object({
39709
39985
  // Optional declarative layout - when present, block can render without React override
39710
39986
  layout: NodeSchema.optional(),
39711
39987
  // Optional variants system (preferred when a block has multiple structural layouts)
39712
- variants: z73.record(z73.string().min(1), NodeSchema).optional(),
39713
- defaultVariant: z73.string().min(1).optional(),
39714
- variantOptions: z73.record(
39715
- z73.string().min(1),
39716
- z73.object({
39717
- label: z73.string().min(1).optional(),
39718
- description: z73.string().min(1).optional(),
39719
- icon: z73.string().min(1).optional()
39988
+ variants: z74.record(z74.string().min(1), NodeSchema).optional(),
39989
+ defaultVariant: z74.string().min(1).optional(),
39990
+ variantOptions: z74.record(
39991
+ z74.string().min(1),
39992
+ z74.object({
39993
+ label: z74.string().min(1).optional(),
39994
+ description: z74.string().min(1).optional(),
39995
+ icon: z74.string().min(1).optional()
39720
39996
  })
39721
39997
  ).optional(),
39722
39998
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -39728,7 +40004,7 @@ var sdkCustomBlockSchema = z73.object({
39728
40004
  const exists = fields3.some((field) => field.id === source);
39729
40005
  if (!exists) {
39730
40006
  ctx.addIssue({
39731
- code: z73.ZodIssueCode.custom,
40007
+ code: z74.ZodIssueCode.custom,
39732
40008
  message: `titleSource must reference a valid field ID (got "${source}")`,
39733
40009
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
39734
40010
  });
@@ -39737,7 +40013,7 @@ var sdkCustomBlockSchema = z73.object({
39737
40013
  }
39738
40014
  if (data.layout && data.variants) {
39739
40015
  ctx.addIssue({
39740
- code: z73.ZodIssueCode.custom,
40016
+ code: z74.ZodIssueCode.custom,
39741
40017
  message: "Custom block must define either `layout` or `variants`, not both",
39742
40018
  path: ["variants"]
39743
40019
  });
@@ -39747,7 +40023,7 @@ var sdkCustomBlockSchema = z73.object({
39747
40023
  if (!result.valid) {
39748
40024
  for (const error of result.errors) {
39749
40025
  ctx.addIssue({
39750
- code: z73.ZodIssueCode.custom,
40026
+ code: z74.ZodIssueCode.custom,
39751
40027
  message: error.message,
39752
40028
  path: ["layout"]
39753
40029
  });
@@ -39758,14 +40034,14 @@ var sdkCustomBlockSchema = z73.object({
39758
40034
  const keys = Object.keys(data.variants);
39759
40035
  if (keys.length === 0) {
39760
40036
  ctx.addIssue({
39761
- code: z73.ZodIssueCode.custom,
40037
+ code: z74.ZodIssueCode.custom,
39762
40038
  message: "`variants` must contain at least one variant key",
39763
40039
  path: ["variants"]
39764
40040
  });
39765
40041
  }
39766
40042
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
39767
40043
  ctx.addIssue({
39768
- code: z73.ZodIssueCode.custom,
40044
+ code: z74.ZodIssueCode.custom,
39769
40045
  message: "`defaultVariant` must be a key present in `variants`",
39770
40046
  path: ["defaultVariant"]
39771
40047
  });
@@ -39775,7 +40051,7 @@ var sdkCustomBlockSchema = z73.object({
39775
40051
  if (!result.valid) {
39776
40052
  for (const error of result.errors) {
39777
40053
  ctx.addIssue({
39778
- code: z73.ZodIssueCode.custom,
40054
+ code: z74.ZodIssueCode.custom,
39779
40055
  message: `${key}: ${error.message}`,
39780
40056
  path: ["variants", key]
39781
40057
  });
@@ -39786,7 +40062,7 @@ var sdkCustomBlockSchema = z73.object({
39786
40062
  for (const key of Object.keys(data.variantOptions)) {
39787
40063
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
39788
40064
  ctx.addIssue({
39789
- code: z73.ZodIssueCode.custom,
40065
+ code: z74.ZodIssueCode.custom,
39790
40066
  message: "`variantOptions` key must exist in `variants`",
39791
40067
  path: ["variantOptions", key]
39792
40068
  });
@@ -39795,58 +40071,58 @@ var sdkCustomBlockSchema = z73.object({
39795
40071
  }
39796
40072
  }
39797
40073
  });
39798
- var themeSourceSchema = z73.enum(["local", "cms"]).optional();
39799
- var activeThemeSchema = z73.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
40074
+ var themeSourceSchema = z74.enum(["local", "cms"]).optional();
40075
+ var activeThemeSchema = z74.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
39800
40076
  message: "Theme name must be lowercase alphanumeric with hyphens/underscores"
39801
40077
  }).max(64, "Theme name too long").optional();
39802
40078
  function isValidConfigBlockKind(kind) {
39803
40079
  if (getBlockDefinition(kind)) return true;
39804
40080
  return /^custom\.[a-z][a-z0-9-]*$/.test(kind);
39805
40081
  }
39806
- var layoutBlockKindSchema = z73.string().refine(isValidConfigBlockKind, {
40082
+ var layoutBlockKindSchema = z74.string().refine(isValidConfigBlockKind, {
39807
40083
  message: 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.my-block")'
39808
40084
  });
39809
- var layoutFooterBlockSchema = z73.object({
39810
- id: z73.string().min(1).optional(),
40085
+ var layoutFooterBlockSchema = z74.object({
40086
+ id: z74.string().min(1).optional(),
39811
40087
  kind: layoutBlockKindSchema,
39812
40088
  // Allow omitted content for blocks that rely on defaults.
39813
- content: z73.record(z73.string(), z73.unknown()).optional()
40089
+ content: z74.record(z74.string(), z74.unknown()).optional()
39814
40090
  }).strict();
39815
- var layoutConfigSchema = z73.object({
39816
- footerBlocks: z73.array(layoutFooterBlockSchema).optional()
40091
+ var layoutConfigSchema = z74.object({
40092
+ footerBlocks: z74.array(layoutFooterBlockSchema).optional()
39817
40093
  }).strict();
39818
- var sdkWorkflowIdSchema2 = z73.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
40094
+ var sdkWorkflowIdSchema2 = z74.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
39819
40095
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
39820
40096
  });
39821
- 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 "/"' });
39822
- var sdkWorkflowTriggerSchema2 = z73.discriminatedUnion("type", [
39823
- z73.object({ type: z73.literal("manual") }).strict()
40097
+ var sdkWorkflowEndpointSchema2 = z74.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
40098
+ var sdkWorkflowTriggerSchema2 = z74.discriminatedUnion("type", [
40099
+ z74.object({ type: z74.literal("manual") }).strict()
39824
40100
  ]);
39825
- var sdkWorkflowConfirmationSchema2 = z73.object({
39826
- title: z73.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
39827
- body: z73.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
40101
+ var sdkWorkflowConfirmationSchema2 = z74.object({
40102
+ title: z74.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
40103
+ body: z74.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
39828
40104
  }).strict();
39829
- var sdkWorkflowConfigSchema2 = z73.object({
40105
+ var sdkWorkflowConfigSchema2 = z74.object({
39830
40106
  id: sdkWorkflowIdSchema2,
39831
- title: z73.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
39832
- description: z73.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
39833
- contentType: z73.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
40107
+ title: z74.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
40108
+ description: z74.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
40109
+ contentType: z74.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
39834
40110
  endpoint: sdkWorkflowEndpointSchema2,
39835
- triggers: z73.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
40111
+ triggers: z74.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
39836
40112
  confirmation: sdkWorkflowConfirmationSchema2.optional()
39837
40113
  }).strict();
39838
- var sdkWorkflowsSchema2 = z73.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
40114
+ var sdkWorkflowsSchema2 = z74.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
39839
40115
  const ids = workflows.map((workflow) => workflow.id);
39840
40116
  return ids.length === new Set(ids).size;
39841
40117
  }, { message: "Workflow IDs must be unique" }).optional();
39842
- var riverbankSiteConfigSchema = z73.object({
39843
- siteId: z73.string().uuid(),
40118
+ var riverbankSiteConfigSchema = z74.object({
40119
+ siteId: z74.string().uuid(),
39844
40120
  previewUrl: sdkSiteUrlSchema.optional(),
39845
40121
  liveUrl: sdkSiteUrlSchema.optional(),
39846
40122
  theme: sdkThemeConfigSchema2.optional(),
39847
40123
  styles: siteStyleConfigSchema,
39848
40124
  layout: layoutConfigSchema.optional(),
39849
- customBlocks: z73.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
40125
+ customBlocks: z74.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
39850
40126
  // Ensure unique block IDs
39851
40127
  (blocks) => {
39852
40128
  const ids = blocks.map((b) => b.id);
@@ -39859,7 +40135,7 @@ var riverbankSiteConfigSchema = z73.object({
39859
40135
  workflows: sdkWorkflowsSchema2,
39860
40136
  content: contentConfigSchema.optional(),
39861
40137
  // CLI-related configuration (Phase 4)
39862
- contentDir: z73.string().optional(),
40138
+ contentDir: z74.string().optional(),
39863
40139
  sync: syncConfigSchema,
39864
40140
  deploy: deployConfigSchema,
39865
40141
  // Theme sync configuration (Phase 5)