@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
@@ -758,6 +758,64 @@ var ENDPOINT_DEFINITIONS = {
758
758
  auth: "user",
759
759
  responseKind: "json"
760
760
  },
761
+ listMailchimpAudiences: {
762
+ path: "/sites/{siteId}/integrations/mailchimp/audiences",
763
+ method: "GET",
764
+ tags: [TAG_TEMPLATES.site],
765
+ auth: "user",
766
+ responseKind: "json",
767
+ errors: ["auth:forbidden", "server:internal_error"]
768
+ },
769
+ getMailchimpSignupSyncHealth: {
770
+ path: "/sites/{siteId}/integrations/mailchimp/signup-sync-health",
771
+ method: "GET",
772
+ tags: [TAG_TEMPLATES.site],
773
+ auth: "user",
774
+ responseKind: "json",
775
+ errors: ["auth:forbidden", "server:internal_error"]
776
+ },
777
+ getMailchimpConnection: {
778
+ path: "/sites/{siteId}/integrations/mailchimp/connection",
779
+ method: "GET",
780
+ tags: [TAG_TEMPLATES.site],
781
+ auth: "user",
782
+ responseKind: "json",
783
+ errors: ["auth:forbidden", "server:internal_error"]
784
+ },
785
+ startMailchimpOAuth: {
786
+ path: "/sites/{siteId}/integrations/mailchimp/oauth/start",
787
+ method: "POST",
788
+ tags: [TAG_TEMPLATES.site],
789
+ auth: "user",
790
+ responseKind: "json",
791
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
792
+ errors: ["auth:forbidden", "validation:invalid_input", "server:internal_error"]
793
+ },
794
+ refreshMailchimpAudiences: {
795
+ path: "/sites/{siteId}/integrations/mailchimp/audiences/refresh",
796
+ method: "POST",
797
+ tags: [TAG_TEMPLATES.site],
798
+ auth: "user",
799
+ responseKind: "json",
800
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
801
+ errors: ["auth:forbidden", "server:internal_error"]
802
+ },
803
+ disconnectMailchimp: {
804
+ path: "/sites/{siteId}/integrations/mailchimp/disconnect",
805
+ method: "POST",
806
+ tags: [TAG_TEMPLATES.site],
807
+ auth: "user",
808
+ responseKind: "json",
809
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
810
+ errors: ["auth:forbidden", "server:internal_error"]
811
+ },
812
+ mailchimpOAuthCallback: {
813
+ path: "/auth/mailchimp/callback",
814
+ method: "GET",
815
+ auth: "public",
816
+ responseKind: "void",
817
+ errors: []
818
+ },
761
819
  createNewsletterList: {
762
820
  path: "/sites/{siteId}/newsletter/lists",
763
821
  method: "POST",
@@ -1759,6 +1817,24 @@ var ENDPOINT_DEFINITIONS = {
1759
1817
  auth: "user",
1760
1818
  responseKind: "json"
1761
1819
  },
1820
+ resendSiteInvitation: {
1821
+ path: "/sites/{siteId}/members/invitations/{invitationId}/resend",
1822
+ method: "POST",
1823
+ errors: [
1824
+ "auth:forbidden",
1825
+ "resource:not_found",
1826
+ "validation:invalid_input",
1827
+ "external:service_error",
1828
+ "server:internal_error"
1829
+ ],
1830
+ tags: [
1831
+ "site-{siteId}",
1832
+ "site-members-{siteId}",
1833
+ "site-invite-{invitationId}"
1834
+ ],
1835
+ auth: "user",
1836
+ responseKind: "json"
1837
+ },
1762
1838
  transferSiteOwnership: {
1763
1839
  path: "/sites/{siteId}/members/transfer-ownership",
1764
1840
  method: "POST",
@@ -2982,20 +3058,6 @@ var ENDPOINT_DEFINITIONS = {
2982
3058
  auth: "user",
2983
3059
  responseKind: "json"
2984
3060
  },
2985
- instagramUploadZip: {
2986
- path: "/instagram/upload-zip",
2987
- method: "POST",
2988
- tags: ["instagram-import"],
2989
- auth: "user",
2990
- responseKind: "json"
2991
- },
2992
- createInstagramZipUploadUrl: {
2993
- path: "/instagram/upload-zip-url",
2994
- method: "POST",
2995
- tags: ["instagram-import"],
2996
- auth: "user",
2997
- responseKind: "json"
2998
- },
2999
3061
  getAnalyticsReport: {
3000
3062
  path: "/sites/{siteId}/analytics/report",
3001
3063
  method: "GET",
@@ -6390,6 +6452,48 @@ function err(error) {
6390
6452
  return { ok: false, error };
6391
6453
  }
6392
6454
 
6455
+ // ../core/src/assert-never.ts
6456
+ function assertNever(value, message = "Unexpected variant") {
6457
+ throw new Error(`${message}: ${String(value)}`);
6458
+ }
6459
+
6460
+ // ../core/src/currency-format.ts
6461
+ var CURRENCY_LOCALE_BY_CODE = {
6462
+ USD: "en-US",
6463
+ GBP: "en-GB",
6464
+ EUR: "de-DE",
6465
+ AUD: "en-AU",
6466
+ CAD: "en-CA",
6467
+ NZD: "en-NZ",
6468
+ JPY: "ja-JP",
6469
+ CNY: "zh-CN",
6470
+ CHF: "de-CH"
6471
+ };
6472
+ function resolveCurrencyLocale(currencyCode, override) {
6473
+ return override ?? CURRENCY_LOCALE_BY_CODE[currencyCode] ?? "en";
6474
+ }
6475
+ function formatCurrencyAmount(amountCents, currency, options) {
6476
+ const currencyCode = currency.toUpperCase();
6477
+ const locale = resolveCurrencyLocale(currencyCode, options?.locale);
6478
+ try {
6479
+ const exactFormatter = new Intl.NumberFormat(locale, {
6480
+ style: "currency",
6481
+ currency: currencyCode
6482
+ });
6483
+ const fractionDigits = options?.decimals === "auto" ? {
6484
+ minimumFractionDigits: 0,
6485
+ maximumFractionDigits: exactFormatter.resolvedOptions().maximumFractionDigits
6486
+ } : {};
6487
+ return new Intl.NumberFormat(locale, {
6488
+ style: "currency",
6489
+ currency: currencyCode,
6490
+ ...fractionDigits
6491
+ }).format(amountCents / 100);
6492
+ } catch {
6493
+ return `${(amountCents / 100).toFixed(2)} ${currencyCode}`;
6494
+ }
6495
+ }
6496
+
6393
6497
  // ../core/src/event-pricing.ts
6394
6498
  function publicEventPricingType(pricing) {
6395
6499
  switch (pricing.kind) {
@@ -6410,6 +6514,7 @@ function isFreePublicEventPriceDisplay(display) {
6410
6514
  return display.display.kind === "free";
6411
6515
  case "exact":
6412
6516
  case "from":
6517
+ case "range":
6413
6518
  case "mixed":
6414
6519
  case "unavailable":
6415
6520
  return false;
@@ -6568,11 +6673,6 @@ function toLocationCoordinates(value) {
6568
6673
  };
6569
6674
  }
6570
6675
 
6571
- // ../core/src/assert-never.ts
6572
- function assertNever(value, message = "Unexpected variant") {
6573
- throw new Error(`${message}: ${String(value)}`);
6574
- }
6575
-
6576
6676
  // ../api/src/accessAdmin.ts
6577
6677
  import { z } from "zod";
6578
6678
  var managedDomainAddOnPricingSnapshotSchema = z.object({
@@ -6677,7 +6777,7 @@ var navigationLinkInputSchema = z2.discriminatedUnion(
6677
6777
  );
6678
6778
 
6679
6779
  // ../api/src/sdkConfig/contracts.ts
6680
- import { z as z64 } from "zod";
6780
+ import { z as z65 } from "zod";
6681
6781
 
6682
6782
  // ../blocks/src/system/manifest/augmentManifest.ts
6683
6783
  function augmentManifest(manifest) {
@@ -21814,15 +21914,53 @@ var newsletterFormFragment = defineFragment({
21814
21914
  title: "Newsletter Form",
21815
21915
  description: "Newsletter subscription form with preset field configurations.",
21816
21916
  fields: [
21917
+ {
21918
+ id: "destinationProvider",
21919
+ type: "select",
21920
+ label: "Send signups to",
21921
+ description: "Choose where new subscribers from this form should go.",
21922
+ defaultValue: "riverbank",
21923
+ required: true,
21924
+ ui: { intent: "behavior" },
21925
+ options: [
21926
+ { value: "riverbank", label: "Riverbank newsletter" }
21927
+ ]
21928
+ },
21817
21929
  {
21818
21930
  id: "listId",
21819
21931
  type: "reference",
21820
21932
  label: "Newsletter list",
21821
21933
  description: "Select the list new subscribers should be added to.",
21822
- required: true,
21934
+ required: false,
21823
21935
  referenceKind: "newsletterList",
21824
21936
  allowManualEntry: false,
21825
- ui: { intent: "behavior" }
21937
+ ui: {
21938
+ intent: "behavior",
21939
+ visibleWhen: { field: "destinationProvider", equals: "riverbank" }
21940
+ }
21941
+ },
21942
+ {
21943
+ id: "mailchimpAudienceId",
21944
+ type: "reference",
21945
+ label: "Mailchimp audience",
21946
+ description: "Choose the Mailchimp audience for new subscribers.",
21947
+ required: false,
21948
+ referenceKind: "mailchimpAudience",
21949
+ allowManualEntry: false,
21950
+ ui: {
21951
+ intent: "behavior",
21952
+ visibleWhen: { field: "destinationProvider", equals: "mailchimp" }
21953
+ }
21954
+ },
21955
+ {
21956
+ id: "mailchimpTags",
21957
+ type: "text",
21958
+ label: "Mailchimp tags",
21959
+ description: "Optional tags to apply in Mailchimp, separated by commas or semicolons.",
21960
+ ui: {
21961
+ intent: "behavior",
21962
+ visibleWhen: { field: "destinationProvider", equals: "mailchimp" }
21963
+ }
21826
21964
  },
21827
21965
  {
21828
21966
  id: "preset",
@@ -21869,13 +22007,18 @@ var newsletterFormFragment = defineFragment({
21869
22007
  id: "tags",
21870
22008
  type: "text",
21871
22009
  label: "Tags (optional)",
21872
- description: "Optional tags to apply on subscribe (comma or semicolon separated)."
22010
+ description: "Optional tags to apply on subscribe (comma or semicolon separated).",
22011
+ ui: {
22012
+ intent: "behavior",
22013
+ visibleWhen: { field: "destinationProvider", equals: "riverbank" }
22014
+ }
21873
22015
  }
21874
22016
  ],
21875
22017
  layout: [
21876
22018
  el(
21877
22019
  "newsletter-form",
21878
22020
  withApiBindings({
22021
+ destinationProvider: { $bind: { from: "destinationProvider" } },
21879
22022
  listId: { $bind: { from: "listId" } },
21880
22023
  preset: { $bind: { from: "preset" } },
21881
22024
  includePhone: { $bind: { from: "includePhone" } },
@@ -27719,10 +27862,10 @@ var appointmentBookingBlockDefinition = {
27719
27862
  };
27720
27863
 
27721
27864
  // ../blocks/src/system/blocks/event-registration.ts
27722
- import { z as z46 } from "zod";
27865
+ import { z as z47 } from "zod";
27723
27866
 
27724
27867
  // ../blocks/src/system/blocks/events/shared/schemas.ts
27725
- import { z as z42 } from "zod";
27868
+ import { z as z43 } from "zod";
27726
27869
 
27727
27870
  // ../blocks/src/lib/media.ts
27728
27871
  import z39 from "zod";
@@ -27800,296 +27943,339 @@ var mediaSchema2 = z39.discriminatedUnion("type", [
27800
27943
  archiveMediaSchema
27801
27944
  ]);
27802
27945
 
27803
- // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
27946
+ // ../blocks/src/system/manifest/richTextSchema.ts
27804
27947
  import { z as z40 } from "zod";
27805
- var bookingDepositRefundPolicySchema = z40.enum([
27948
+ var TipTapMarkSchema = z40.object({
27949
+ type: z40.string(),
27950
+ attrs: z40.record(z40.string(), z40.unknown()).optional()
27951
+ });
27952
+ var TipTapNodeSchema = z40.lazy(
27953
+ () => z40.object({
27954
+ type: z40.string(),
27955
+ content: z40.array(TipTapNodeSchema).optional(),
27956
+ text: z40.string().optional(),
27957
+ attrs: z40.record(z40.string(), z40.unknown()).optional(),
27958
+ marks: z40.array(TipTapMarkSchema).optional()
27959
+ })
27960
+ );
27961
+ var RichTextValueSchema = z40.union([
27962
+ // Canonical: TipTap document directly
27963
+ TipTapNodeSchema,
27964
+ // Legacy (read-tolerance only): wrapped in { doc: {...} }
27965
+ z40.object({
27966
+ doc: TipTapNodeSchema
27967
+ })
27968
+ ]);
27969
+ var RichTextDocSchema = z40.object({
27970
+ type: z40.literal("doc"),
27971
+ content: z40.array(TipTapNodeSchema)
27972
+ });
27973
+
27974
+ // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
27975
+ import { z as z41 } from "zod";
27976
+ var bookingDepositRefundPolicySchema = z41.enum([
27806
27977
  "refundable",
27807
27978
  "non_refundable"
27808
27979
  ]);
27809
- var bookingInstalmentPlanSchema = z40.union([
27810
- z40.object({
27811
- kind: z40.literal("deposit_plus_one_remainder"),
27812
- depositAmountCents: z40.number().int().min(0),
27980
+ var bookingInstalmentPlanSchema = z41.union([
27981
+ z41.object({
27982
+ kind: z41.literal("deposit_plus_one_remainder"),
27983
+ depositAmountCents: z41.number().int().min(0),
27813
27984
  depositRefundability: bookingDepositRefundPolicySchema,
27814
- remainderDueCount: z40.number().int().positive(),
27815
- intervalUnit: z40.enum(["day", "week", "month"])
27985
+ remainderDueCount: z41.number().int().positive(),
27986
+ intervalUnit: z41.enum(["day", "week", "month"])
27816
27987
  }),
27817
- z40.object({
27818
- kind: z40.literal("deposit_plus_scheduled_instalments"),
27819
- depositAmountCents: z40.number().int().min(0),
27988
+ z41.object({
27989
+ kind: z41.literal("deposit_plus_scheduled_instalments"),
27990
+ depositAmountCents: z41.number().int().min(0),
27820
27991
  depositRefundability: bookingDepositRefundPolicySchema,
27821
- instalmentCount: z40.number().int().positive(),
27822
- intervalCount: z40.number().int().positive(),
27823
- intervalUnit: z40.enum(["day", "week", "month"])
27992
+ instalmentCount: z41.number().int().positive(),
27993
+ intervalCount: z41.number().int().positive(),
27994
+ intervalUnit: z41.enum(["day", "week", "month"])
27824
27995
  }),
27825
- z40.object({
27826
- kind: z40.literal("equal_scheduled_instalments"),
27827
- instalmentCount: z40.number().int().positive(),
27828
- intervalCount: z40.number().int().positive(),
27829
- intervalUnit: z40.enum(["day", "week", "month"])
27996
+ z41.object({
27997
+ kind: z41.literal("equal_scheduled_instalments"),
27998
+ instalmentCount: z41.number().int().positive(),
27999
+ intervalCount: z41.number().int().positive(),
28000
+ intervalUnit: z41.enum(["day", "week", "month"])
27830
28001
  })
27831
28002
  ]);
27832
- var bookingFlexibleBalanceDueDateRuleSchema = z40.union([
27833
- z40.object({
27834
- kind: z40.literal("relative_to_start_date"),
27835
- daysBeforeStart: z40.number().int().positive()
28003
+ var bookingFlexibleBalanceDueDateRuleSchema = z41.union([
28004
+ z41.object({
28005
+ kind: z41.literal("relative_to_start_date"),
28006
+ daysBeforeStart: z41.number().int().positive()
27836
28007
  }),
27837
- z40.object({
27838
- kind: z40.literal("fixed_calendar_date"),
27839
- dueAt: z40.string().datetime()
28008
+ z41.object({
28009
+ kind: z41.literal("fixed_calendar_date"),
28010
+ dueAt: z41.string().datetime()
27840
28011
  })
27841
28012
  ]);
27842
- var bookingFlexibleBalanceConfigSchema = z40.object({
27843
- upfrontAmountCents: z40.number().int().min(0),
28013
+ var bookingFlexibleBalanceConfigSchema = z41.object({
28014
+ upfrontAmountCents: z41.number().int().min(0),
27844
28015
  dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
27845
28016
  depositRefundability: bookingDepositRefundPolicySchema
27846
28017
  });
27847
- var blockBookingPaymentCollectionOptionSchema = z40.union([
27848
- z40.object({
27849
- kind: z40.literal("upfront")
28018
+ var blockBookingPaymentCollectionOptionSchema = z41.union([
28019
+ z41.object({
28020
+ kind: z41.literal("upfront")
27850
28021
  }),
27851
- z40.object({
27852
- kind: z40.literal("deferred_manual")
28022
+ z41.object({
28023
+ kind: z41.literal("deferred_manual")
27853
28024
  }),
27854
- z40.object({
27855
- kind: z40.literal("instalment_plan"),
28025
+ z41.object({
28026
+ kind: z41.literal("instalment_plan"),
27856
28027
  plan: bookingInstalmentPlanSchema
27857
28028
  }),
27858
- z40.object({
27859
- kind: z40.literal("flexible_balance"),
28029
+ z41.object({
28030
+ kind: z41.literal("flexible_balance"),
27860
28031
  config: bookingFlexibleBalanceConfigSchema
27861
28032
  })
27862
28033
  ]);
27863
- var blockBookingPaymentTermsSchema = z40.object({
27864
- allowedOptions: z40.array(blockBookingPaymentCollectionOptionSchema).min(1)
28034
+ var blockBookingPaymentTermsSchema = z41.object({
28035
+ allowedOptions: z41.array(blockBookingPaymentCollectionOptionSchema).min(1)
27865
28036
  });
27866
28037
 
27867
28038
  // ../blocks/src/system/blocks/courses/shared/schemas.ts
27868
- import { z as z41 } from "zod";
27869
- var courseVenueSchema = z41.object({
27870
- id: z41.string(),
27871
- name: z41.string(),
27872
- address: z41.string().nullable()
27873
- });
27874
- var courseSessionSchema = z41.object({
27875
- id: z41.string(),
27876
- startsAt: z41.string(),
27877
- endsAt: z41.string(),
27878
- timeZone: z41.string(),
27879
- capacityOverride: z41.number().nullable().optional(),
27880
- overrides: z41.record(z41.string(), z41.unknown()).nullable().optional()
27881
- });
27882
- var courseTeamMemberSummarySchema = z41.object({
27883
- id: z41.string(),
27884
- name: z41.string(),
27885
- roleLabel: z41.string().nullable(),
27886
- summary: z41.string().nullable(),
27887
- profilePath: z41.string().nullable()
27888
- });
27889
- var coursePricingOptionSchema = z41.object({
27890
- id: z41.string(),
27891
- name: z41.string(),
27892
- description: z41.string().nullable(),
27893
- priceAmount: z41.number(),
27894
- isActive: z41.boolean(),
27895
- sortOrder: z41.number(),
27896
- capacityLimit: z41.number().nullable(),
27897
- saleStartsAt: z41.string().nullable(),
27898
- saleEndsAt: z41.string().nullable(),
27899
- attendanceScope: z41.enum(["in_person", "online", "both"]).nullable().optional()
27900
- });
27901
- var coursePricingSchema = z41.object({
27902
- bookingRequirement: z41.enum(["none", "required"]),
27903
- pricingStrategy: z41.enum(["free", "single", "tiered"]),
27904
- currency: z41.string(),
27905
- singlePriceAmount: z41.number().nullable(),
28039
+ import { z as z42 } from "zod";
28040
+ var courseVenueSchema = z42.object({
28041
+ id: z42.string(),
28042
+ name: z42.string(),
28043
+ address: z42.string().nullable()
28044
+ });
28045
+ var courseSessionSchema = z42.object({
28046
+ id: z42.string(),
28047
+ startsAt: z42.string(),
28048
+ endsAt: z42.string(),
28049
+ timeZone: z42.string(),
28050
+ capacityOverride: z42.number().nullable().optional(),
28051
+ overrides: z42.record(z42.string(), z42.unknown()).nullable().optional()
28052
+ });
28053
+ var courseTeamMemberSummarySchema = z42.object({
28054
+ id: z42.string(),
28055
+ name: z42.string(),
28056
+ roleLabel: z42.string().nullable(),
28057
+ summary: z42.string().nullable(),
28058
+ profilePath: z42.string().nullable()
28059
+ });
28060
+ var coursePricingOptionSchema = z42.object({
28061
+ id: z42.string(),
28062
+ name: z42.string(),
28063
+ description: z42.string().nullable(),
28064
+ priceAmount: z42.number(),
28065
+ isActive: z42.boolean(),
28066
+ sortOrder: z42.number(),
28067
+ capacityLimit: z42.number().nullable(),
28068
+ saleStartsAt: z42.string().nullable(),
28069
+ saleEndsAt: z42.string().nullable(),
28070
+ attendanceScope: z42.enum(["in_person", "online", "both"]).nullable().optional()
28071
+ });
28072
+ var coursePricingSchema = z42.object({
28073
+ bookingRequirement: z42.enum(["none", "required"]),
28074
+ pricingStrategy: z42.enum(["free", "single", "tiered"]),
28075
+ currency: z42.string(),
28076
+ singlePriceAmount: z42.number().nullable(),
27906
28077
  paymentTerms: blockBookingPaymentTermsSchema,
27907
- options: z41.array(coursePricingOptionSchema)
27908
- });
27909
- var publicCourseSchema = z41.object({
27910
- id: z41.string(),
27911
- title: z41.string(),
27912
- slug: z41.string(),
27913
- description: z41.unknown().nullable(),
27914
- teamMembers: z41.array(courseTeamMemberSummarySchema).optional(),
27915
- enrollmentOpen: z41.boolean(),
28078
+ options: z42.array(coursePricingOptionSchema)
28079
+ });
28080
+ var publicCourseSchema = z42.object({
28081
+ id: z42.string(),
28082
+ title: z42.string(),
28083
+ slug: z42.string(),
28084
+ description: z42.unknown().nullable(),
28085
+ teamMembers: z42.array(courseTeamMemberSummarySchema).optional(),
28086
+ enrollmentOpen: z42.boolean(),
27916
28087
  pricing: coursePricingSchema.optional(),
27917
- priceCents: z41.number().nullable(),
27918
- currency: z41.string(),
28088
+ priceCents: z42.number().nullable(),
28089
+ currency: z42.string(),
27919
28090
  paymentTerms: blockBookingPaymentTermsSchema,
27920
- enrollmentCapacity: z41.number().nullable(),
27921
- acceptsMemberships: z41.boolean(),
27922
- status: z41.enum(["active", "draft", "cancelled"]),
27923
- sessionsCount: z41.number(),
27924
- enrolledCount: z41.number(),
27925
- availableSpots: z41.number().nullable(),
27926
- sessions: z41.array(courseSessionSchema),
28091
+ enrollmentCapacity: z42.number().nullable(),
28092
+ acceptsMemberships: z42.boolean(),
28093
+ status: z42.enum(["active", "draft", "cancelled"]),
28094
+ sessionsCount: z42.number(),
28095
+ enrolledCount: z42.number(),
28096
+ availableSpots: z42.number().nullable(),
28097
+ sessions: z42.array(courseSessionSchema),
27927
28098
  venue: courseVenueSchema.nullable(),
27928
- contentEntryId: z41.string().nullable()
28099
+ contentEntryId: z42.string().nullable()
27929
28100
  });
27930
- var publicCoursesArraySchema = z41.array(publicCourseSchema);
28101
+ var publicCoursesArraySchema = z42.array(publicCourseSchema);
27931
28102
 
27932
28103
  // ../blocks/src/system/blocks/events/shared/schemas.ts
27933
- var eventPresetSchema = z42.enum(["event", "class", "workshop", "retreat", "performance"]);
27934
- var eventScheduleScopeSchema = z42.enum(["recurring", "oneOff"]);
27935
- var eventDestinationModeSchema = z42.enum(["cms-managed", "system-managed"]);
27936
- var eventVenueSchema = z42.object({
27937
- id: z42.string(),
27938
- name: z42.string(),
27939
- address: z42.string().nullable(),
27940
- location: z42.object({
27941
- lat: z42.number(),
27942
- lng: z42.number()
28104
+ var eventPresetSchema = z43.enum(["event", "class", "workshop", "retreat", "performance"]);
28105
+ var eventScheduleScopeSchema = z43.enum(["recurring", "oneOff"]);
28106
+ var eventDestinationModeSchema = z43.enum(["cms-managed", "system-managed"]);
28107
+ var eventVenueSchema = z43.object({
28108
+ id: z43.string(),
28109
+ name: z43.string(),
28110
+ address: z43.string().nullable(),
28111
+ location: z43.object({
28112
+ lat: z43.number(),
28113
+ lng: z43.number()
27943
28114
  }).nullable()
27944
28115
  });
27945
- var eventCategorySchema = z42.object({
27946
- id: z42.string(),
27947
- name: z42.string(),
27948
- color: z42.string().nullable()
27949
- });
27950
- var pricingTypeSchema = z42.enum(["free", "paid"]);
27951
- var accessRestrictionSchema = z42.enum(["none", "category"]);
27952
- var eventPricingModeSchema = z42.enum(["single", "ticket_types"]);
27953
- var publicCoursePriceDisplaySchema = z42.discriminatedUnion("kind", [
27954
- z42.object({ kind: z42.literal("free"), currency: z42.string() }),
27955
- z42.object({ kind: z42.literal("exact"), amount: z42.number(), currency: z42.string() }),
27956
- z42.object({ kind: z42.literal("from"), amount: z42.number(), currency: z42.string() }),
27957
- z42.object({ kind: z42.literal("unavailable"), currency: z42.string() })
28116
+ var eventCategorySchema = z43.object({
28117
+ id: z43.string(),
28118
+ name: z43.string(),
28119
+ color: z43.string().nullable()
28120
+ });
28121
+ var pricingTypeSchema = z43.enum(["free", "paid"]);
28122
+ var accessRestrictionSchema = z43.enum(["none", "category"]);
28123
+ var eventPricingModeSchema = z43.enum(["single", "ticket_types"]);
28124
+ var publicCoursePriceDisplaySchema = z43.discriminatedUnion("kind", [
28125
+ z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28126
+ z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28127
+ z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28128
+ z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
27958
28129
  ]);
27959
- var publicEventPriceDisplaySchema = z42.discriminatedUnion("kind", [
27960
- z42.object({ kind: z42.literal("free"), currency: z42.string() }),
27961
- z42.object({ kind: z42.literal("exact"), amount: z42.number(), currency: z42.string() }),
27962
- z42.object({ kind: z42.literal("from"), amount: z42.number(), currency: z42.string() }),
27963
- z42.object({ kind: z42.literal("mixed"), paidFromAmount: z42.number(), currency: z42.string() }),
27964
- z42.object({ kind: z42.literal("unavailable"), currency: z42.string() }),
27965
- z42.object({ kind: z42.literal("course"), display: publicCoursePriceDisplaySchema })
28130
+ var publicEventPriceDisplaySchema = z43.discriminatedUnion("kind", [
28131
+ z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28132
+ z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28133
+ z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28134
+ z43.object({ kind: z43.literal("range"), minAmount: z43.number(), maxAmount: z43.number(), currency: z43.string() }),
28135
+ z43.object({
28136
+ kind: z43.literal("mixed"),
28137
+ paidFromAmount: z43.number(),
28138
+ paidToAmount: z43.number(),
28139
+ currency: z43.string()
28140
+ }),
28141
+ z43.object({ kind: z43.literal("unavailable"), currency: z43.string() }),
28142
+ z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
27966
28143
  ]);
27967
- var publicEventTicketTypePriceDisplaySchema = z42.union([
27968
- z42.object({ kind: z42.literal("free"), currency: z42.string() }),
27969
- z42.object({ kind: z42.literal("exact"), amount: z42.number(), currency: z42.string() }),
27970
- z42.object({ kind: z42.literal("from"), amount: z42.number(), currency: z42.string() }),
27971
- z42.object({ kind: z42.literal("mixed"), paidFromAmount: z42.number(), currency: z42.string() }),
27972
- z42.object({ kind: z42.literal("unavailable"), currency: z42.string() })
28144
+ var publicEventTicketTypePriceDisplaySchema = z43.union([
28145
+ z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28146
+ z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28147
+ z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28148
+ z43.object({ kind: z43.literal("range"), minAmount: z43.number(), maxAmount: z43.number(), currency: z43.string() }),
28149
+ z43.object({
28150
+ kind: z43.literal("mixed"),
28151
+ paidFromAmount: z43.number(),
28152
+ paidToAmount: z43.number(),
28153
+ currency: z43.string()
28154
+ }),
28155
+ z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
27973
28156
  ]);
27974
- var publicEventAttendanceModeSchema = z42.enum(["in_person", "online"]);
27975
- var publicEventAttendanceModeAvailabilitySchema = z42.object({
28157
+ var publicEventAttendanceModeSchema = z43.enum(["in_person", "online"]);
28158
+ var publicEventAttendanceModeAvailabilitySchema = z43.object({
27976
28159
  mode: publicEventAttendanceModeSchema,
27977
- capacity: z42.number().nullable(),
27978
- registeredCount: z42.number(),
27979
- availableSpots: z42.number().nullable(),
27980
- waitlistEnabled: z42.boolean()
27981
- });
27982
- var publicEventTicketTypeAvailabilitySchema = z42.union([
27983
- z42.object({
27984
- kind: z42.literal("available"),
27985
- remainingCapacity: z42.number().nullable()
28160
+ capacity: z43.number().nullable(),
28161
+ registeredCount: z43.number(),
28162
+ availableSpots: z43.number().nullable(),
28163
+ waitlistEnabled: z43.boolean()
28164
+ });
28165
+ var publicEventTicketTypeAvailabilitySchema = z43.union([
28166
+ z43.object({
28167
+ kind: z43.literal("available"),
28168
+ remainingCapacity: z43.number().nullable()
27986
28169
  }),
27987
- z42.object({
27988
- kind: z42.literal("unavailable"),
27989
- reason: z42.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
27990
- remainingCapacity: z42.number().nullable()
28170
+ z43.object({
28171
+ kind: z43.literal("unavailable"),
28172
+ reason: z43.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
28173
+ remainingCapacity: z43.number().nullable()
27991
28174
  })
27992
28175
  ]);
27993
- var publicEventTicketTypeSchema = z42.object({
27994
- id: z42.string(),
27995
- siteId: z42.string(),
27996
- eventSeriesId: z42.string(),
27997
- name: z42.string(),
27998
- description: z42.string().nullable(),
27999
- priceAmount: z42.number(),
28000
- isActive: z42.boolean(),
28001
- sortOrder: z42.number(),
28002
- capacityMode: z42.enum(["limited", "unlimited"]),
28003
- capacityLimit: z42.number().nullable(),
28004
- attendanceScope: z42.enum(["in_person", "online", "both"]).optional(),
28005
- saleStartsAt: z42.string().nullable(),
28006
- saleEndsAt: z42.string().nullable(),
28176
+ var publicEventTicketTypeSchema = z43.object({
28177
+ id: z43.string(),
28178
+ siteId: z43.string(),
28179
+ eventSeriesId: z43.string(),
28180
+ name: z43.string(),
28181
+ description: z43.string().nullable(),
28182
+ priceAmount: z43.number(),
28183
+ isActive: z43.boolean(),
28184
+ sortOrder: z43.number(),
28185
+ capacityMode: z43.enum(["limited", "unlimited"]),
28186
+ capacityLimit: z43.number().nullable(),
28187
+ attendanceScope: z43.enum(["in_person", "online", "both"]).optional(),
28188
+ saleStartsAt: z43.string().nullable(),
28189
+ saleEndsAt: z43.string().nullable(),
28007
28190
  availability: publicEventTicketTypeAvailabilitySchema,
28008
- createdAt: z42.string(),
28009
- updatedAt: z42.string()
28010
- });
28011
- var publicEventPricingSchema = z42.discriminatedUnion("kind", [
28012
- z42.object({
28013
- kind: z42.literal("drop_in"),
28014
- currency: z42.string(),
28015
- display: z42.object({ kind: z42.literal("free"), currency: z42.string() })
28191
+ createdAt: z43.string(),
28192
+ updatedAt: z43.string()
28193
+ });
28194
+ var publicEventPricingSchema = z43.discriminatedUnion("kind", [
28195
+ z43.object({
28196
+ kind: z43.literal("drop_in"),
28197
+ currency: z43.string(),
28198
+ display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
28016
28199
  }),
28017
- z42.object({
28018
- kind: z42.literal("free_registration"),
28019
- currency: z42.string(),
28020
- display: z42.object({ kind: z42.literal("free"), currency: z42.string() })
28200
+ z43.object({
28201
+ kind: z43.literal("free_registration"),
28202
+ currency: z43.string(),
28203
+ display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
28021
28204
  }),
28022
- z42.object({
28023
- kind: z42.literal("single_paid"),
28024
- amount: z42.number(),
28025
- currency: z42.string(),
28026
- display: z42.object({ kind: z42.literal("exact"), amount: z42.number(), currency: z42.string() })
28205
+ z43.object({
28206
+ kind: z43.literal("single_paid"),
28207
+ amount: z43.number(),
28208
+ currency: z43.string(),
28209
+ display: z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() })
28027
28210
  }),
28028
- z42.object({
28029
- kind: z42.literal("ticket_types"),
28030
- currency: z42.string(),
28031
- ticketTypes: z42.array(publicEventTicketTypeSchema),
28211
+ z43.object({
28212
+ kind: z43.literal("ticket_types"),
28213
+ currency: z43.string(),
28214
+ ticketTypes: z43.array(publicEventTicketTypeSchema),
28032
28215
  display: publicEventTicketTypePriceDisplaySchema
28033
28216
  }),
28034
- z42.object({
28035
- kind: z42.literal("course"),
28036
- display: z42.object({ kind: z42.literal("course"), display: publicCoursePriceDisplaySchema })
28217
+ z43.object({
28218
+ kind: z43.literal("course"),
28219
+ display: z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28037
28220
  })
28038
28221
  ]);
28039
- var publicTeamMemberSummarySchema = z42.object({
28040
- id: z42.string(),
28041
- name: z42.string(),
28042
- roleLabel: z42.string().nullable(),
28043
- summary: z42.string().nullable(),
28044
- profilePath: z42.string().nullable()
28222
+ var publicTeamMemberSummarySchema = z43.object({
28223
+ id: z43.string(),
28224
+ name: z43.string(),
28225
+ roleLabel: z43.string().nullable(),
28226
+ summary: z43.string().nullable(),
28227
+ profilePath: z43.string().nullable()
28045
28228
  });
28046
- var publicEventSchema = z42.object({
28047
- kind: z42.enum(["event", "course_session"]).optional(),
28229
+ var publicEventSchema = z43.object({
28230
+ kind: z43.enum(["event", "course_session"]).optional(),
28048
28231
  eventPreset: eventPresetSchema.optional(),
28049
28232
  eventDestinationMode: eventDestinationModeSchema.optional(),
28050
28233
  scheduleScope: eventScheduleScopeSchema.optional(),
28051
- id: z42.string(),
28052
- occurrenceId: z42.string(),
28053
- seriesId: z42.string(),
28054
- title: z42.string(),
28055
- description: z42.string().nullable(),
28056
- presentation: z42.object({
28057
- cardTitleOverride: z42.string().nullable().optional(),
28058
- summary: z42.string().nullable().optional(),
28234
+ id: z43.string(),
28235
+ occurrenceId: z43.string(),
28236
+ seriesId: z43.string(),
28237
+ title: z43.string(),
28238
+ description: z43.string().nullable(),
28239
+ content: z43.object({
28240
+ body: RichTextDocSchema.nullable().optional()
28241
+ }).optional(),
28242
+ presentation: z43.object({
28243
+ cardTitleOverride: z43.string().nullable().optional(),
28244
+ summary: z43.string().nullable().optional(),
28059
28245
  image: mediaSchema2.nullable().optional()
28060
28246
  }).optional(),
28061
- slug: z42.string(),
28062
- path: z42.string(),
28063
- requiresRegistration: z42.boolean(),
28064
- deliveryMode: z42.enum(["in_person", "online", "hybrid"]),
28065
- attendanceModes: z42.array(publicEventAttendanceModeAvailabilitySchema),
28066
- startsAt: z42.string(),
28067
- endsAt: z42.string(),
28068
- capacity: z42.number().nullable(),
28069
- registeredCount: z42.number(),
28070
- availableSpots: z42.number().nullable(),
28071
- waitlistEnabled: z42.boolean(),
28247
+ slug: z43.string(),
28248
+ path: z43.string(),
28249
+ requiresRegistration: z43.boolean(),
28250
+ deliveryMode: z43.enum(["in_person", "online", "hybrid"]),
28251
+ attendanceModes: z43.array(publicEventAttendanceModeAvailabilitySchema),
28252
+ startsAt: z43.string(),
28253
+ endsAt: z43.string(),
28254
+ capacity: z43.number().nullable(),
28255
+ registeredCount: z43.number(),
28256
+ availableSpots: z43.number().nullable(),
28257
+ waitlistEnabled: z43.boolean(),
28072
28258
  venue: eventVenueSchema.nullable(),
28073
28259
  eventCategory: eventCategorySchema.nullable(),
28074
- teamMembers: z42.array(publicTeamMemberSummarySchema).optional(),
28075
- status: z42.enum(["active", "draft", "archived"]).optional(),
28076
- timeZone: z42.string(),
28260
+ teamMembers: z43.array(publicTeamMemberSummarySchema).optional(),
28261
+ status: z43.enum(["active", "draft", "archived"]).optional(),
28262
+ timeZone: z43.string(),
28077
28263
  pricing: publicEventPricingSchema,
28078
28264
  paymentTerms: blockBookingPaymentTermsSchema,
28079
28265
  accessRestriction: accessRestrictionSchema,
28080
- allowedCategoryIds: z42.array(z42.string()),
28081
- requireGuestDetails: z42.boolean().optional(),
28082
- acceptsPasses: z42.boolean().optional(),
28083
- acceptsMemberships: z42.boolean().optional(),
28084
- course: z42.object({
28085
- id: z42.string(),
28266
+ allowedCategoryIds: z43.array(z43.string()),
28267
+ requireGuestDetails: z43.boolean().optional(),
28268
+ acceptsPasses: z43.boolean().optional(),
28269
+ acceptsMemberships: z43.boolean().optional(),
28270
+ course: z43.object({
28271
+ id: z43.string(),
28086
28272
  pricing: coursePricingSchema.optional(),
28087
- priceCents: z42.number().nullable(),
28088
- currency: z42.string(),
28089
- enrollmentOpen: z42.boolean()
28273
+ priceCents: z43.number().nullable(),
28274
+ currency: z43.string(),
28275
+ enrollmentOpen: z43.boolean()
28090
28276
  }).nullable().optional()
28091
28277
  });
28092
- var publicEventsArraySchema = z42.array(publicEventSchema);
28278
+ var publicEventsArraySchema = z43.array(publicEventSchema);
28093
28279
 
28094
28280
  // ../blocks/src/system/blocks/events/shared/fields.ts
28095
28281
  var cardVariantOptions2 = cardVariantRoleValues.map((value) => ({
@@ -28293,19 +28479,19 @@ function normalizeEventStaffMemberId(value) {
28293
28479
  }
28294
28480
 
28295
28481
  // ../blocks/src/system/blocks/event-registration.shared.ts
28296
- import { z as z43 } from "zod";
28297
- var occurrenceContextSchema = z43.object({
28298
- id: z43.string(),
28299
- seriesId: z43.string(),
28300
- startsAt: z43.string(),
28301
- endsAt: z43.string(),
28302
- timeZone: z43.string(),
28303
- capacityOverride: z43.number().nullable().optional(),
28304
- overrides: z43.record(z43.string(), z43.unknown()).nullable().optional()
28482
+ import { z as z44 } from "zod";
28483
+ var occurrenceContextSchema = z44.object({
28484
+ id: z44.string(),
28485
+ seriesId: z44.string(),
28486
+ startsAt: z44.string(),
28487
+ endsAt: z44.string(),
28488
+ timeZone: z44.string(),
28489
+ capacityOverride: z44.number().nullable().optional(),
28490
+ overrides: z44.record(z44.string(), z44.unknown()).nullable().optional()
28305
28491
  }).nullable();
28306
28492
 
28307
28493
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28308
- import { z as z45 } from "zod";
28494
+ import { z as z46 } from "zod";
28309
28495
 
28310
28496
  // ../blocks/src/system/constants/events.ts
28311
28497
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
@@ -28403,10 +28589,21 @@ function readLegacyPriceDisplay(value, currency) {
28403
28589
  amount: readAmount(value.amount) ?? 0,
28404
28590
  currency: displayCurrency
28405
28591
  } : { kind: "unavailable", currency };
28592
+ case "range": {
28593
+ const minAmount = readAmount(value.minAmount);
28594
+ const maxAmount = readAmount(value.maxAmount);
28595
+ return minAmount !== null && maxAmount !== null ? {
28596
+ kind: "range",
28597
+ minAmount,
28598
+ maxAmount,
28599
+ currency: displayCurrency
28600
+ } : { kind: "unavailable", currency };
28601
+ }
28406
28602
  case "mixed":
28407
28603
  return readAmount(value.paidFromAmount) !== null ? {
28408
28604
  kind: "mixed",
28409
28605
  paidFromAmount: readAmount(value.paidFromAmount) ?? 0,
28606
+ paidToAmount: readAmount(value.paidToAmount) ?? readAmount(value.paidFromAmount) ?? 0,
28410
28607
  currency: displayCurrency
28411
28608
  } : { kind: "unavailable", currency };
28412
28609
  case "unavailable":
@@ -28448,16 +28645,16 @@ function readAmount(value) {
28448
28645
  }
28449
28646
 
28450
28647
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
28451
- import { z as z44 } from "zod";
28452
- var previewStageSchema = z44.enum(["preview", "published"]);
28453
- var registrationButtonVariantSchema = z44.enum(["primary", "secondary", "outline"]);
28454
- var eventButtonVariantSchema = z44.enum(["primary", "secondary", "outline", "link"]);
28455
- var eventLayoutSchema = z44.enum(eventCalendarListLayoutValues);
28456
- var eventCalendarDisplayModeSchema = z44.enum(eventCalendarDisplayModeValues);
28457
- var columnOptionSchema = z44.enum(["2", "3", "4"]);
28458
- var weekStartSchema = z44.enum(["sunday", "monday"]);
28459
- var filterAutoShowSchema = z44.enum(["auto", "always", "never"]);
28460
- var calendarTabViewsSchema = z44.enum(["both", "month", "week"]);
28648
+ import { z as z45 } from "zod";
28649
+ var previewStageSchema = z45.enum(["preview", "published"]);
28650
+ var registrationButtonVariantSchema = z45.enum(["primary", "secondary", "outline"]);
28651
+ var eventButtonVariantSchema = z45.enum(["primary", "secondary", "outline", "link"]);
28652
+ var eventLayoutSchema = z45.enum(eventCalendarListLayoutValues);
28653
+ var eventCalendarDisplayModeSchema = z45.enum(eventCalendarDisplayModeValues);
28654
+ var columnOptionSchema = z45.enum(["2", "3", "4"]);
28655
+ var weekStartSchema = z45.enum(["sunday", "monday"]);
28656
+ var filterAutoShowSchema = z45.enum(["auto", "always", "never"]);
28657
+ var calendarTabViewsSchema = z45.enum(["both", "month", "week"]);
28461
28658
 
28462
28659
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
28463
28660
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -28517,66 +28714,68 @@ function toRegistrationEvents(events) {
28517
28714
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28518
28715
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
28519
28716
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
28520
- var contentEntrySchema = z45.object({
28521
- id: z45.string(),
28522
- slug: z45.string(),
28523
- contentTypeSlug: z45.string()
28717
+ var contentEntrySchema = z46.object({
28718
+ id: z46.string(),
28719
+ slug: z46.string(),
28720
+ contentTypeSlug: z46.string()
28524
28721
  });
28525
- var eventRegistrationPublicEventSchema = z45.preprocess(
28722
+ var eventRegistrationPublicEventSchema = z46.preprocess(
28526
28723
  normalizeEventRegistrationEventInput,
28527
28724
  publicEventSchema
28528
28725
  );
28529
- var eventRegistrationSourceSchema = z45.object({
28530
- siteId: z45.string().optional(),
28531
- apiBaseUrl: z45.string().optional(),
28532
- portalToken: z45.string().nullable().optional(),
28533
- previewToken: z45.string().nullable().optional(),
28726
+ var eventRegistrationSourceSchema = z46.object({
28727
+ siteId: z46.string().optional(),
28728
+ apiBaseUrl: z46.string().optional(),
28729
+ portalToken: z46.string().nullable().optional(),
28730
+ previewToken: z46.string().nullable().optional(),
28534
28731
  occurrenceContext: occurrenceContextSchema.optional(),
28535
28732
  contentEntry: contentEntrySchema.nullable().optional(),
28536
- events: z45.array(eventRegistrationPublicEventSchema).nullable().optional(),
28537
- className: z45.string().nullable().optional(),
28538
- buttonText: z45.string().nullable().optional(),
28539
- maxTickets: z45.string().nullable().optional(),
28540
- showVenue: z45.boolean().optional(),
28541
- showCapacity: z45.boolean().optional(),
28542
- successMessage: z45.string().optional(),
28543
- waitlistMessage: z45.string().optional(),
28733
+ events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
28734
+ className: z46.string().nullable().optional(),
28735
+ buttonText: z46.string().nullable().optional(),
28736
+ maxTickets: z46.string().nullable().optional(),
28737
+ showVenue: z46.boolean().optional(),
28738
+ showCapacity: z46.boolean().optional(),
28739
+ successMessage: z46.string().optional(),
28740
+ waitlistMessage: z46.string().optional(),
28544
28741
  buttonVariant: registrationButtonVariantSchema.optional(),
28545
- spamProtectionEnabled: z45.boolean().optional(),
28742
+ overlayEnabled: z46.boolean().optional(),
28743
+ spamProtectionEnabled: z46.boolean().optional(),
28546
28744
  stage: previewStageSchema.optional(),
28547
- supportEmail: z45.string().optional()
28548
- });
28549
- var eventRegistrationDisplaySchema = z45.object({
28550
- kind: z45.literal("event-registration"),
28551
- state: z45.literal("generic-shell"),
28552
- className: z45.string().nullable(),
28553
- titleText: z45.string(),
28554
- bodyText: z45.string(),
28555
- stepLabels: z45.array(z45.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28556
- summaryButtonText: z45.string()
28557
- });
28558
- var eventRegistrationHydrationSchema = z45.object({
28745
+ supportEmail: z46.string().optional()
28746
+ });
28747
+ var eventRegistrationDisplaySchema = z46.object({
28748
+ kind: z46.literal("event-registration"),
28749
+ state: z46.literal("generic-shell"),
28750
+ className: z46.string().nullable(),
28751
+ titleText: z46.string(),
28752
+ bodyText: z46.string(),
28753
+ stepLabels: z46.array(z46.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28754
+ summaryButtonText: z46.string()
28755
+ });
28756
+ var eventRegistrationHydrationSchema = z46.object({
28559
28757
  occurrenceContext: occurrenceContextSchema.optional(),
28560
28758
  contentEntry: contentEntrySchema.nullable().optional(),
28561
- events: z45.array(eventRegistrationPublicEventSchema).nullable().optional(),
28562
- maxTickets: z45.string().optional(),
28563
- showVenue: z45.boolean().optional(),
28564
- showCapacity: z45.boolean().optional(),
28565
- successMessage: z45.string().optional(),
28566
- waitlistMessage: z45.string().optional(),
28759
+ events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
28760
+ maxTickets: z46.string().optional(),
28761
+ showVenue: z46.boolean().optional(),
28762
+ showCapacity: z46.boolean().optional(),
28763
+ successMessage: z46.string().optional(),
28764
+ waitlistMessage: z46.string().optional(),
28567
28765
  buttonVariant: registrationButtonVariantSchema.optional(),
28568
- spamProtectionEnabled: z45.boolean().optional(),
28569
- supportEmail: z45.string().optional()
28766
+ overlayEnabled: z46.boolean().optional(),
28767
+ spamProtectionEnabled: z46.boolean().optional(),
28768
+ supportEmail: z46.string().optional()
28570
28769
  });
28571
- var eventRegistrationRenderSchema = z45.object({
28770
+ var eventRegistrationRenderSchema = z46.object({
28572
28771
  display: eventRegistrationDisplaySchema,
28573
28772
  hydration: eventRegistrationHydrationSchema
28574
28773
  });
28575
- var eventRegistrationIslandMetaCodec = createZodCodec(z45.object({
28576
- siteId: z45.string().optional(),
28577
- apiBaseUrl: z45.string().optional(),
28578
- portalToken: z45.string().nullable().optional(),
28579
- previewToken: z45.string().nullable().optional(),
28774
+ var eventRegistrationIslandMetaCodec = createZodCodec(z46.object({
28775
+ siteId: z46.string().optional(),
28776
+ apiBaseUrl: z46.string().optional(),
28777
+ portalToken: z46.string().nullable().optional(),
28778
+ previewToken: z46.string().nullable().optional(),
28580
28779
  stage: previewStageSchema.optional()
28581
28780
  }));
28582
28781
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -28680,6 +28879,7 @@ var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
28680
28879
  successMessage: source.successMessage,
28681
28880
  waitlistMessage: source.waitlistMessage,
28682
28881
  buttonVariant: source.buttonVariant,
28882
+ overlayEnabled: source.overlayEnabled,
28683
28883
  spamProtectionEnabled: source.spamProtectionEnabled,
28684
28884
  supportEmail: source.supportEmail
28685
28885
  }
@@ -28855,6 +29055,12 @@ var eventRegistrationManifest = createBlockManifest({
28855
29055
  buttonVariant: {
28856
29056
  $bind: { from: "content.buttonVariant", fallback: "primary" }
28857
29057
  },
29058
+ overlayEnabled: {
29059
+ $bind: {
29060
+ from: "$root.eventRegistrationOverlayEnabled",
29061
+ fallback: false
29062
+ }
29063
+ },
28858
29064
  // Event data from loader
28859
29065
  events: { $bind: { from: "data.events" } },
28860
29066
  // Stage for preview mode (allows registering for draft events)
@@ -28875,7 +29081,7 @@ var eventRegistrationBlockDefinition = {
28875
29081
  manifest: eventRegistrationManifest,
28876
29082
  runtime: eventRegistrationBlockRuntime,
28877
29083
  dataSchemas: {
28878
- events: z46.array(publicEventSchema).optional(),
29084
+ events: z47.array(publicEventSchema).optional(),
28879
29085
  occurrenceContext: occurrenceContextSchema.optional()
28880
29086
  },
28881
29087
  dataLoaders: {
@@ -28899,73 +29105,73 @@ var eventRegistrationBlockDefinition = {
28899
29105
  };
28900
29106
 
28901
29107
  // ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
28902
- import { z as z47 } from "zod";
28903
- var contentEntrySchema2 = z47.object({
28904
- id: z47.string(),
28905
- slug: z47.string(),
28906
- contentTypeSlug: z47.string()
28907
- });
28908
- var courseEntrySubrouteContextSchema = z47.union([
28909
- z47.object({
28910
- kind: z47.literal("course-run"),
28911
- run: z47.object({
28912
- courseId: z47.string(),
28913
- seriesId: z47.string(),
28914
- runSlug: z47.string(),
28915
- runName: z47.string().nullable()
29108
+ import { z as z48 } from "zod";
29109
+ var contentEntrySchema2 = z48.object({
29110
+ id: z48.string(),
29111
+ slug: z48.string(),
29112
+ contentTypeSlug: z48.string()
29113
+ });
29114
+ var courseEntrySubrouteContextSchema = z48.union([
29115
+ z48.object({
29116
+ kind: z48.literal("course-run"),
29117
+ run: z48.object({
29118
+ courseId: z48.string(),
29119
+ seriesId: z48.string(),
29120
+ runSlug: z48.string(),
29121
+ runName: z48.string().nullable()
28916
29122
  })
28917
29123
  }),
28918
- z47.object({
28919
- kind: z47.literal("event-occurrence"),
29124
+ z48.object({
29125
+ kind: z48.literal("event-occurrence"),
28920
29126
  occurrence: occurrenceContextSchema
28921
29127
  })
28922
29128
  ]);
28923
- var courseRegistrationSourceSchema = z47.object({
28924
- siteId: z47.string().optional(),
28925
- apiBaseUrl: z47.string().optional(),
28926
- portalToken: z47.string().nullable().optional(),
29129
+ var courseRegistrationSourceSchema = z48.object({
29130
+ siteId: z48.string().optional(),
29131
+ apiBaseUrl: z48.string().optional(),
29132
+ portalToken: z48.string().nullable().optional(),
28927
29133
  contentEntry: contentEntrySchema2.nullable().optional(),
28928
29134
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
28929
- courses: z47.array(publicCourseSchema).nullable().optional(),
28930
- className: z47.string().nullable().optional(),
28931
- showSessions: z47.boolean().optional(),
28932
- showPrice: z47.boolean().optional(),
28933
- showCapacity: z47.boolean().optional(),
28934
- showVenue: z47.boolean().optional(),
28935
- successMessage: z47.string().optional(),
28936
- waitlistMessage: z47.string().optional(),
28937
- membershipMessage: z47.string().optional(),
28938
- buttonText: z47.string().nullable().optional(),
29135
+ courses: z48.array(publicCourseSchema).nullable().optional(),
29136
+ className: z48.string().nullable().optional(),
29137
+ showSessions: z48.boolean().optional(),
29138
+ showPrice: z48.boolean().optional(),
29139
+ showCapacity: z48.boolean().optional(),
29140
+ showVenue: z48.boolean().optional(),
29141
+ successMessage: z48.string().optional(),
29142
+ waitlistMessage: z48.string().optional(),
29143
+ membershipMessage: z48.string().optional(),
29144
+ buttonText: z48.string().nullable().optional(),
28939
29145
  buttonVariant: registrationButtonVariantSchema.optional(),
28940
29146
  stage: previewStageSchema.optional()
28941
29147
  });
28942
- var courseRegistrationDisplaySchema = z47.object({
28943
- kind: z47.literal("course-registration"),
28944
- state: z47.literal("shell"),
28945
- className: z47.string().nullable(),
28946
- summaryButtonText: z47.string()
29148
+ var courseRegistrationDisplaySchema = z48.object({
29149
+ kind: z48.literal("course-registration"),
29150
+ state: z48.literal("shell"),
29151
+ className: z48.string().nullable(),
29152
+ summaryButtonText: z48.string()
28947
29153
  });
28948
- var courseRegistrationHydrationSchema = z47.object({
29154
+ var courseRegistrationHydrationSchema = z48.object({
28949
29155
  contentEntry: contentEntrySchema2.nullable().optional(),
28950
29156
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
28951
- courses: z47.array(publicCourseSchema).nullable().optional(),
28952
- showSessions: z47.boolean().optional(),
28953
- showPrice: z47.boolean().optional(),
28954
- showCapacity: z47.boolean().optional(),
28955
- showVenue: z47.boolean().optional(),
28956
- successMessage: z47.string().optional(),
28957
- waitlistMessage: z47.string().optional(),
28958
- membershipMessage: z47.string().optional(),
29157
+ courses: z48.array(publicCourseSchema).nullable().optional(),
29158
+ showSessions: z48.boolean().optional(),
29159
+ showPrice: z48.boolean().optional(),
29160
+ showCapacity: z48.boolean().optional(),
29161
+ showVenue: z48.boolean().optional(),
29162
+ successMessage: z48.string().optional(),
29163
+ waitlistMessage: z48.string().optional(),
29164
+ membershipMessage: z48.string().optional(),
28959
29165
  buttonVariant: registrationButtonVariantSchema.optional()
28960
29166
  });
28961
- var courseRegistrationRenderSchema = z47.object({
29167
+ var courseRegistrationRenderSchema = z48.object({
28962
29168
  display: courseRegistrationDisplaySchema,
28963
29169
  hydration: courseRegistrationHydrationSchema
28964
29170
  });
28965
- var courseRegistrationIslandMetaCodec = createZodCodec(z47.object({
28966
- siteId: z47.string().optional(),
28967
- apiBaseUrl: z47.string().optional(),
28968
- portalToken: z47.string().nullable().optional(),
29171
+ var courseRegistrationIslandMetaCodec = createZodCodec(z48.object({
29172
+ siteId: z48.string().optional(),
29173
+ apiBaseUrl: z48.string().optional(),
29174
+ portalToken: z48.string().nullable().optional(),
28969
29175
  stage: previewStageSchema.optional()
28970
29176
  }));
28971
29177
  var courseRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -29225,32 +29431,32 @@ var courseRegistrationBlockDefinition = {
29225
29431
  };
29226
29432
 
29227
29433
  // ../blocks/src/system/blocks/event-details.ts
29228
- import { z as z49 } from "zod";
29434
+ import { z as z50 } from "zod";
29229
29435
 
29230
29436
  // ../blocks/src/system/blocks/shop.shared.ts
29231
- import { z as z48 } from "zod";
29232
- var publicPassProductSchema = z48.object({
29233
- id: z48.string(),
29234
- productUseCase: z48.enum(["event_pass", "appointment_package"]).default("event_pass"),
29235
- name: z48.string(),
29236
- description: z48.string().nullable(),
29237
- price: z48.number(),
29238
- currency: z48.string(),
29239
- creditsTotal: z48.number(),
29240
- pricePerCredit: z48.number(),
29241
- validDays: z48.number().nullable(),
29242
- eligibleCategoryIds: z48.array(z48.string()),
29243
- eligibleCategoryNames: z48.array(z48.string())
29244
- });
29245
- var publicMembershipProductSchema = z48.object({
29246
- id: z48.string(),
29247
- name: z48.string(),
29248
- description: z48.string().nullable(),
29249
- price: z48.number(),
29250
- currency: z48.string(),
29251
- billingInterval: z48.enum(["month", "year"]),
29252
- eligibleCategoryIds: z48.array(z48.string()),
29253
- eligibleCategoryNames: z48.array(z48.string())
29437
+ import { z as z49 } from "zod";
29438
+ var publicPassProductSchema = z49.object({
29439
+ id: z49.string(),
29440
+ productUseCase: z49.enum(["event_pass", "appointment_package"]).default("event_pass"),
29441
+ name: z49.string(),
29442
+ description: z49.string().nullable(),
29443
+ price: z49.number(),
29444
+ currency: z49.string(),
29445
+ creditsTotal: z49.number(),
29446
+ pricePerCredit: z49.number(),
29447
+ validDays: z49.number().nullable(),
29448
+ eligibleCategoryIds: z49.array(z49.string()),
29449
+ eligibleCategoryNames: z49.array(z49.string())
29450
+ });
29451
+ var publicMembershipProductSchema = z49.object({
29452
+ id: z49.string(),
29453
+ name: z49.string(),
29454
+ description: z49.string().nullable(),
29455
+ price: z49.number(),
29456
+ currency: z49.string(),
29457
+ billingInterval: z49.enum(["month", "year"]),
29458
+ eligibleCategoryIds: z49.array(z49.string()),
29459
+ eligibleCategoryNames: z49.array(z49.string())
29254
29460
  });
29255
29461
 
29256
29462
  // ../blocks/src/system/blocks/event-details.ts
@@ -29385,40 +29591,40 @@ var eventDetailsManifest = createBlockManifest({
29385
29591
  })
29386
29592
  ]
29387
29593
  });
29388
- var occurrenceContextSchema2 = z49.object({
29389
- id: z49.string(),
29390
- seriesId: z49.string(),
29391
- startsAt: z49.string(),
29392
- endsAt: z49.string(),
29393
- timeZone: z49.string(),
29394
- capacityOverride: z49.number().nullable().optional(),
29395
- overrides: z49.record(z49.string(), z49.unknown()).nullable().optional()
29594
+ var occurrenceContextSchema2 = z50.object({
29595
+ id: z50.string(),
29596
+ seriesId: z50.string(),
29597
+ startsAt: z50.string(),
29598
+ endsAt: z50.string(),
29599
+ timeZone: z50.string(),
29600
+ capacityOverride: z50.number().nullable().optional(),
29601
+ overrides: z50.record(z50.string(), z50.unknown()).nullable().optional()
29396
29602
  }).nullable();
29397
- var eventAutoApplyDiscountPreviewBaseSchema = z49.object({
29398
- id: z49.string(),
29399
- publicLabel: z49.string(),
29400
- description: z49.string().nullable(),
29401
- minTicketsRequired: z49.number().nullable()
29603
+ var eventAutoApplyDiscountPreviewBaseSchema = z50.object({
29604
+ id: z50.string(),
29605
+ publicLabel: z50.string(),
29606
+ description: z50.string().nullable(),
29607
+ minTicketsRequired: z50.number().nullable()
29402
29608
  });
29403
- var eventAutoApplyDiscountPreviewSchema = z49.discriminatedUnion("discountType", [
29609
+ var eventAutoApplyDiscountPreviewSchema = z50.discriminatedUnion("discountType", [
29404
29610
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29405
- discountType: z49.literal("percent"),
29406
- discountPercent: z49.number(),
29407
- discountAmountCents: z49.null()
29611
+ discountType: z50.literal("percent"),
29612
+ discountPercent: z50.number(),
29613
+ discountAmountCents: z50.null()
29408
29614
  }),
29409
29615
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29410
- discountType: z49.literal("fixed"),
29411
- discountPercent: z49.null(),
29412
- discountAmountCents: z49.number()
29616
+ discountType: z50.literal("fixed"),
29617
+ discountPercent: z50.null(),
29618
+ discountAmountCents: z50.number()
29413
29619
  })
29414
29620
  ]);
29415
29621
  var eventDetailsBlockDefinition = {
29416
29622
  manifest: eventDetailsManifest,
29417
29623
  dataSchemas: {
29418
- eventDetailsData: z49.object({
29624
+ eventDetailsData: z50.object({
29419
29625
  events: publicEventsArraySchema,
29420
- sitePasses: z49.object({ passes: z49.array(publicPassProductSchema) }),
29421
- siteMemberships: z49.object({ memberships: z49.array(publicMembershipProductSchema) }),
29626
+ sitePasses: z50.object({ passes: z50.array(publicPassProductSchema) }),
29627
+ siteMemberships: z50.object({ memberships: z50.array(publicMembershipProductSchema) }),
29422
29628
  autoApplyDiscount: eventAutoApplyDiscountPreviewSchema.nullable().optional().default(null)
29423
29629
  }).optional(),
29424
29630
  occurrenceContext: occurrenceContextSchema2.optional()
@@ -29742,7 +29948,7 @@ var eventSpotlightBlockDefinition = {
29742
29948
  };
29743
29949
 
29744
29950
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
29745
- import { z as z51 } from "zod";
29951
+ import { z as z52 } from "zod";
29746
29952
 
29747
29953
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
29748
29954
  var COLUMN_CLASSES = {
@@ -29850,16 +30056,16 @@ function computeMediaTransformStyle(value, style, targetAspectRatio, options) {
29850
30056
  }
29851
30057
 
29852
30058
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
29853
- import { z as z50 } from "zod";
30059
+ import { z as z51 } from "zod";
29854
30060
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
29855
- var eventPageSizeSchema = z50.union([
29856
- z50.literal(3),
29857
- z50.literal(6),
29858
- z50.literal(10),
29859
- z50.literal(12),
29860
- z50.literal(20),
29861
- z50.literal(24),
29862
- z50.literal(30)
30061
+ var eventPageSizeSchema = z51.union([
30062
+ z51.literal(3),
30063
+ z51.literal(6),
30064
+ z51.literal(10),
30065
+ z51.literal(12),
30066
+ z51.literal(20),
30067
+ z51.literal(24),
30068
+ z51.literal(30)
29863
30069
  ]);
29864
30070
  var eventPageSizeSet = new Set(eventPageSizeValues);
29865
30071
  function resolveEventPageSize(value, fallback = 12) {
@@ -29869,15 +30075,15 @@ function resolveEventPageSize(value, fallback = 12) {
29869
30075
  function resolveEventCalendarListPageSize(input) {
29870
30076
  return resolveEventPageSize(input.eventsPerPage);
29871
30077
  }
29872
- var eventListPaginationActionSchema = z50.discriminatedUnion("kind", [
29873
- z50.object({
29874
- kind: z50.literal("loadMore"),
29875
- label: z50.string()
30078
+ var eventListPaginationActionSchema = z51.discriminatedUnion("kind", [
30079
+ z51.object({
30080
+ kind: z51.literal("loadMore"),
30081
+ label: z51.string()
29876
30082
  }),
29877
- z50.object({
29878
- kind: z50.literal("seeAllLink"),
29879
- label: z50.string(),
29880
- href: z50.string()
30083
+ z51.object({
30084
+ kind: z51.literal("seeAllLink"),
30085
+ label: z51.string(),
30086
+ href: z51.string()
29881
30087
  })
29882
30088
  ]);
29883
30089
  function resolveEventListPaginationAction(input) {
@@ -29890,89 +30096,89 @@ function resolveEventListPaginationAction(input) {
29890
30096
  }
29891
30097
 
29892
30098
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
29893
- var legacyEventCardVariantSchema = z51.enum(["variant1", "variant2"]);
29894
- var eventCardVariantInputSchema = z51.union([
30099
+ var legacyEventCardVariantSchema = z52.enum(["variant1", "variant2"]);
30100
+ var eventCardVariantInputSchema = z52.union([
29895
30101
  cardVariantRoleSchema,
29896
30102
  legacyEventCardVariantSchema
29897
30103
  ]);
29898
- var cardOrientationSchema = z51.enum(["vertical", "horizontal"]);
29899
- var eventBlockKindSchema = z51.enum(eventBlockKindValues);
29900
- var eventSurfaceScopeSchema = z51.enum(eventSurfaceScopeValues);
29901
- var eventScheduleScopeSchema2 = z51.enum(eventScheduleScopeValues);
29902
- var eventListingSourceSchema = z51.object({
29903
- events: z51.array(publicEventSchema).nullable().optional(),
29904
- siteId: z51.string(),
29905
- apiBaseUrl: z51.string().optional(),
30104
+ var cardOrientationSchema = z52.enum(["vertical", "horizontal"]);
30105
+ var eventBlockKindSchema = z52.enum(eventBlockKindValues);
30106
+ var eventSurfaceScopeSchema = z52.enum(eventSurfaceScopeValues);
30107
+ var eventScheduleScopeSchema2 = z52.enum(eventScheduleScopeValues);
30108
+ var eventListingSourceSchema = z52.object({
30109
+ events: z52.array(publicEventSchema).nullable().optional(),
30110
+ siteId: z52.string(),
30111
+ apiBaseUrl: z52.string().optional(),
29906
30112
  stage: previewStageSchema.optional(),
29907
30113
  layout: eventLayoutSchema.optional(),
29908
30114
  columns: columnOptionSchema.optional(),
29909
- eventsPerPage: z51.string().optional(),
29910
- paginationMode: z51.enum(["loadMore", "seeAllLink"]).optional(),
29911
- seeAllUrl: z51.string().optional(),
29912
- loadMoreText: z51.string().optional(),
30115
+ eventsPerPage: z52.string().optional(),
30116
+ paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30117
+ seeAllUrl: z52.string().optional(),
30118
+ loadMoreText: z52.string().optional(),
29913
30119
  cardVariant: eventCardVariantInputSchema.optional(),
29914
30120
  buttonVariant: eventButtonVariantSchema.optional(),
29915
- buttonText: z51.string().optional(),
29916
- showVenue: z51.boolean().optional(),
29917
- showMap: z51.boolean().optional(),
29918
- showCapacity: z51.boolean().optional(),
29919
- emptyMessage: z51.string().optional(),
29920
- className: z51.string().optional(),
29921
- showFilters: z51.boolean().nullable().optional(),
30121
+ buttonText: z52.string().optional(),
30122
+ showVenue: z52.boolean().optional(),
30123
+ showMap: z52.boolean().optional(),
30124
+ showCapacity: z52.boolean().optional(),
30125
+ emptyMessage: z52.string().optional(),
30126
+ className: z52.string().optional(),
30127
+ showFilters: z52.boolean().nullable().optional(),
29922
30128
  showCategoryFilter: filterAutoShowSchema.optional(),
29923
- showVenueFilter: z51.boolean().nullable().optional(),
29924
- showStaffFilter: z51.boolean().nullable().optional(),
30129
+ showVenueFilter: z52.boolean().nullable().optional(),
30130
+ showStaffFilter: z52.boolean().nullable().optional(),
29925
30131
  eventKind: eventBlockKindSchema.nullable().optional(),
29926
30132
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
29927
- filterEventPresets: z51.union([z51.string(), z51.array(z51.string())]).nullable().optional(),
30133
+ filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
29928
30134
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
29929
- filterCategoryIds: z51.string().nullable().optional(),
29930
- filterStaffMemberId: z51.string().nullable().optional(),
29931
- filterVenueId: z51.string().nullable().optional()
30135
+ filterCategoryIds: z52.string().nullable().optional(),
30136
+ filterStaffMemberId: z52.string().nullable().optional(),
30137
+ filterVenueId: z52.string().nullable().optional()
29932
30138
  });
29933
- var eventListingDisplaySchema = z51.object({
29934
- kind: z51.literal("event-listing"),
29935
- state: z51.enum(["loading", "empty", "ready"]),
30139
+ var eventListingDisplaySchema = z52.object({
30140
+ kind: z52.literal("event-listing"),
30141
+ state: z52.enum(["loading", "empty", "ready"]),
29936
30142
  listLayout: eventLayoutSchema,
29937
- className: z51.string().nullable(),
29938
- emptyMessage: z51.string(),
29939
- loadingMessage: z51.string(),
29940
- containerClass: z51.string(),
30143
+ className: z52.string().nullable(),
30144
+ emptyMessage: z52.string(),
30145
+ loadingMessage: z52.string(),
30146
+ containerClass: z52.string(),
29941
30147
  cardVariant: cardVariantRoleSchema,
29942
30148
  buttonVariant: eventButtonVariantSchema,
29943
- buttonText: z51.string(),
29944
- showVenue: z51.boolean(),
29945
- showMap: z51.boolean(),
29946
- showCapacity: z51.boolean(),
30149
+ buttonText: z52.string(),
30150
+ showVenue: z52.boolean(),
30151
+ showMap: z52.boolean(),
30152
+ showCapacity: z52.boolean(),
29947
30153
  orientation: cardOrientationSchema,
29948
- events: z51.array(publicEventSchema)
30154
+ events: z52.array(publicEventSchema)
29949
30155
  });
29950
- var eventListingHydrationSchema = z51.object({
29951
- siteId: z51.string(),
30156
+ var eventListingHydrationSchema = z52.object({
30157
+ siteId: z52.string(),
29952
30158
  stage: previewStageSchema.optional(),
29953
30159
  eventsPerPage: eventPageSizeSchema,
29954
30160
  paginationAction: eventListPaginationActionSchema,
29955
- showFilters: z51.boolean(),
30161
+ showFilters: z52.boolean(),
29956
30162
  showCategoryFilter: filterAutoShowSchema,
29957
- showVenueFilter: z51.boolean(),
29958
- showStaffFilter: z51.boolean(),
30163
+ showVenueFilter: z52.boolean(),
30164
+ showStaffFilter: z52.boolean(),
29959
30165
  eventKind: eventBlockKindSchema,
29960
30166
  eventSurface: eventSurfaceScopeSchema,
29961
- filterEventPresets: z51.string().nullable(),
30167
+ filterEventPresets: z52.string().nullable(),
29962
30168
  scheduleScope: eventScheduleScopeSchema2,
29963
- filterCategoryIds: z51.string().nullable().optional(),
29964
- filterStaffMemberId: z51.string().nullable().optional(),
29965
- filterVenueId: z51.string().nullable().optional(),
29966
- fetchInitialEventsOnMount: z51.boolean()
30169
+ filterCategoryIds: z52.string().nullable().optional(),
30170
+ filterStaffMemberId: z52.string().nullable().optional(),
30171
+ filterVenueId: z52.string().nullable().optional(),
30172
+ fetchInitialEventsOnMount: z52.boolean()
29967
30173
  });
29968
- var eventListingRenderSchema = z51.object({
30174
+ var eventListingRenderSchema = z52.object({
29969
30175
  display: eventListingDisplaySchema,
29970
30176
  hydration: eventListingHydrationSchema
29971
30177
  });
29972
30178
  var eventListingIslandMetaCodec = createZodCodec(
29973
- z51.object({
29974
- siteId: z51.string(),
29975
- apiBaseUrl: z51.string().optional(),
30179
+ z52.object({
30180
+ siteId: z52.string(),
30181
+ apiBaseUrl: z52.string().optional(),
29976
30182
  stage: previewStageSchema.optional()
29977
30183
  })
29978
30184
  );
@@ -30339,15 +30545,15 @@ var eventListingBlockDefinition = {
30339
30545
  };
30340
30546
 
30341
30547
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
30342
- import { z as z52 } from "zod";
30343
- var eventBlockKindSchema2 = z52.enum(eventBlockKindValues);
30344
- var eventSurfaceScopeSchema2 = z52.enum(eventSurfaceScopeValues);
30345
- var eventScheduleScopeSchema3 = z52.enum(eventScheduleScopeValues);
30346
- var eventCalendarSourceSchema = z52.object(
30548
+ import { z as z53 } from "zod";
30549
+ var eventBlockKindSchema2 = z53.enum(eventBlockKindValues);
30550
+ var eventSurfaceScopeSchema2 = z53.enum(eventSurfaceScopeValues);
30551
+ var eventScheduleScopeSchema3 = z53.enum(eventScheduleScopeValues);
30552
+ var eventCalendarSourceSchema = z53.object(
30347
30553
  {
30348
- events: z52.array(publicEventSchema).nullable().optional(),
30349
- siteId: z52.string(),
30350
- apiBaseUrl: z52.string().optional(),
30554
+ events: z53.array(publicEventSchema).nullable().optional(),
30555
+ siteId: z53.string(),
30556
+ apiBaseUrl: z53.string().optional(),
30351
30557
  stage: previewStageSchema.optional(),
30352
30558
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
30353
30559
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -30355,78 +30561,78 @@ var eventCalendarSourceSchema = z52.object(
30355
30561
  listColumns: columnOptionSchema.optional(),
30356
30562
  layout: eventLayoutSchema.optional(),
30357
30563
  columns: columnOptionSchema.optional(),
30358
- eventsPerPage: z52.string().optional(),
30359
- paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30360
- seeAllUrl: z52.string().optional(),
30361
- loadMoreText: z52.string().optional(),
30564
+ eventsPerPage: z53.string().optional(),
30565
+ paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
30566
+ seeAllUrl: z53.string().optional(),
30567
+ loadMoreText: z53.string().optional(),
30362
30568
  startOfWeek: weekStartSchema.optional(),
30363
30569
  calendarTabViews: calendarTabViewsSchema.optional(),
30364
- showFilters: z52.boolean().nullable().optional(),
30570
+ showFilters: z53.boolean().nullable().optional(),
30365
30571
  showCategoryFilter: filterAutoShowSchema.optional(),
30366
- showVenueFilter: z52.boolean().nullable().optional(),
30367
- showStaffFilter: z52.boolean().nullable().optional(),
30572
+ showVenueFilter: z53.boolean().nullable().optional(),
30573
+ showStaffFilter: z53.boolean().nullable().optional(),
30368
30574
  kind: eventBlockKindSchema2.nullable().optional(),
30369
30575
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
30370
- filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30576
+ filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30371
30577
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
30372
- filterCategoryIds: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30373
- filterStaffMemberId: z52.string().nullable().optional(),
30374
- filterVenueId: z52.string().nullable().optional(),
30578
+ filterCategoryIds: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30579
+ filterStaffMemberId: z53.string().nullable().optional(),
30580
+ filterVenueId: z53.string().nullable().optional(),
30375
30581
  buttonVariant: eventButtonVariantSchema.optional(),
30376
- buttonText: z52.string().optional(),
30377
- showVenue: z52.boolean().nullable().optional(),
30378
- showMap: z52.boolean().nullable().optional(),
30379
- showCapacity: z52.boolean().nullable().optional(),
30380
- emptyMessage: z52.string().optional(),
30381
- className: z52.string().optional()
30582
+ buttonText: z53.string().optional(),
30583
+ showVenue: z53.boolean().nullable().optional(),
30584
+ showMap: z53.boolean().nullable().optional(),
30585
+ showCapacity: z53.boolean().nullable().optional(),
30586
+ emptyMessage: z53.string().optional(),
30587
+ className: z53.string().optional()
30382
30588
  }
30383
30589
  );
30384
- var eventCalendarDisplaySchema = z52.object({
30385
- kind: z52.literal("event-calendar"),
30590
+ var eventCalendarDisplaySchema = z53.object({
30591
+ kind: z53.literal("event-calendar"),
30386
30592
  displayMode: eventCalendarDisplayModeSchema,
30387
- className: z52.string().nullable(),
30388
- events: z52.array(publicEventSchema),
30593
+ className: z53.string().nullable(),
30594
+ events: z53.array(publicEventSchema),
30389
30595
  listLayout: eventLayoutSchema,
30390
30596
  listColumns: columnOptionSchema,
30391
30597
  eventsPerPage: eventPageSizeSchema,
30392
30598
  paginationAction: eventListPaginationActionSchema,
30393
30599
  startOfWeek: weekStartSchema,
30394
30600
  calendarTabViews: calendarTabViewsSchema,
30395
- showFilters: z52.boolean(),
30601
+ showFilters: z53.boolean(),
30396
30602
  showCategoryFilter: filterAutoShowSchema,
30397
- showVenueFilter: z52.boolean(),
30398
- showStaffFilter: z52.boolean(),
30603
+ showVenueFilter: z53.boolean(),
30604
+ showStaffFilter: z53.boolean(),
30399
30605
  eventKind: eventBlockKindSchema2,
30400
30606
  eventSurface: eventSurfaceScopeSchema2,
30401
- filterEventPresets: z52.string().nullable(),
30607
+ filterEventPresets: z53.string().nullable(),
30402
30608
  scheduleScope: eventScheduleScopeSchema3,
30403
- filterCategoryIds: z52.string().nullable(),
30404
- filterStaffMemberId: z52.string().nullable(),
30405
- filterVenueId: z52.string().nullable(),
30609
+ filterCategoryIds: z53.string().nullable(),
30610
+ filterStaffMemberId: z53.string().nullable(),
30611
+ filterVenueId: z53.string().nullable(),
30406
30612
  buttonVariant: eventButtonVariantSchema,
30407
- buttonText: z52.string(),
30408
- showVenue: z52.boolean(),
30409
- showMap: z52.boolean(),
30410
- showCapacity: z52.boolean(),
30411
- emptyMessage: z52.string()
30412
- });
30413
- var eventCalendarHydrationSchema = z52.object({
30414
- siteId: z52.string(),
30613
+ buttonText: z53.string(),
30614
+ showVenue: z53.boolean(),
30615
+ showMap: z53.boolean(),
30616
+ showCapacity: z53.boolean(),
30617
+ emptyMessage: z53.string()
30618
+ });
30619
+ var eventCalendarHydrationSchema = z53.object({
30620
+ siteId: z53.string(),
30415
30621
  stage: previewStageSchema.optional(),
30416
- prefetchedEvents: z52.boolean(),
30622
+ prefetchedEvents: z53.boolean(),
30417
30623
  eventKind: eventBlockKindSchema2,
30418
30624
  eventSurface: eventSurfaceScopeSchema2,
30419
- filterEventPresets: z52.string().nullable(),
30625
+ filterEventPresets: z53.string().nullable(),
30420
30626
  scheduleScope: eventScheduleScopeSchema3
30421
30627
  });
30422
- var eventCalendarRenderSchema = z52.object({
30628
+ var eventCalendarRenderSchema = z53.object({
30423
30629
  display: eventCalendarDisplaySchema,
30424
30630
  hydration: eventCalendarHydrationSchema
30425
30631
  });
30426
30632
  var eventCalendarIslandMetaCodec = createZodCodec(
30427
- z52.object({
30428
- siteId: z52.string(),
30429
- apiBaseUrl: z52.string().optional(),
30633
+ z53.object({
30634
+ siteId: z53.string(),
30635
+ apiBaseUrl: z53.string().optional(),
30430
30636
  stage: previewStageSchema.optional()
30431
30637
  })
30432
30638
  );
@@ -31135,7 +31341,7 @@ var eventCalendarBlockDefinition = {
31135
31341
  };
31136
31342
 
31137
31343
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31138
- import { z as z53 } from "zod";
31344
+ import { z as z54 } from "zod";
31139
31345
 
31140
31346
  // ../blocks/src/system/blocks/offerings-preview/model.ts
31141
31347
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -31227,13 +31433,13 @@ function isRecord5(value) {
31227
31433
  }
31228
31434
 
31229
31435
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31230
- var publicRouteCandidatesSchema = z53.object({
31231
- routes: z53.array(z53.object({
31232
- entityId: z53.string(),
31233
- path: z53.string(),
31234
- title: z53.string(),
31235
- kind: z53.enum(["page", "content"]),
31236
- contentTypeKey: z53.string().nullable().optional()
31436
+ var publicRouteCandidatesSchema = z54.object({
31437
+ routes: z54.array(z54.object({
31438
+ entityId: z54.string(),
31439
+ path: z54.string(),
31440
+ title: z54.string(),
31441
+ kind: z54.enum(["page", "content"]),
31442
+ contentTypeKey: z54.string().nullable().optional()
31237
31443
  }))
31238
31444
  });
31239
31445
  var groupOverrideFields = [
@@ -31631,7 +31837,7 @@ function isRecord6(value) {
31631
31837
  }
31632
31838
 
31633
31839
  // ../blocks/src/system/blocks/embed.ts
31634
- import { z as z54 } from "zod";
31840
+ import { z as z55 } from "zod";
31635
31841
  var embedFields = [
31636
31842
  // Section heading
31637
31843
  parseFieldDefinition({
@@ -31862,18 +32068,18 @@ var embedManifest = createBlockManifest({
31862
32068
  spacing: "lg"
31863
32069
  }
31864
32070
  });
31865
- var embedEntrySchema = z54.object({
31866
- id: z54.string(),
31867
- identifier: z54.string(),
31868
- title: z54.string(),
31869
- slug: z54.string().nullable().optional(),
31870
- content: z54.record(z54.string(), z54.unknown()).optional(),
31871
- publishedAt: z54.string().nullable().optional()
32071
+ var embedEntrySchema = z55.object({
32072
+ id: z55.string(),
32073
+ identifier: z55.string(),
32074
+ title: z55.string(),
32075
+ slug: z55.string().nullable().optional(),
32076
+ content: z55.record(z55.string(), z55.unknown()).optional(),
32077
+ publishedAt: z55.string().nullable().optional()
31872
32078
  });
31873
32079
  var embedBlockDefinition = {
31874
32080
  manifest: embedManifest,
31875
32081
  dataSchemas: {
31876
- entries: z54.array(embedEntrySchema).optional()
32082
+ entries: z55.array(embedEntrySchema).optional()
31877
32083
  },
31878
32084
  dataLoaders: {
31879
32085
  entries: {
@@ -33057,52 +33263,52 @@ var fileDownloadBlockDefinition = {
33057
33263
  };
33058
33264
 
33059
33265
  // ../blocks/src/system/blocks/shop.ts
33060
- import { z as z58 } from "zod";
33266
+ import { z as z59 } from "zod";
33061
33267
 
33062
33268
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33063
- import { z as z57 } from "zod";
33269
+ import { z as z58 } from "zod";
33064
33270
 
33065
33271
  // ../blocks/src/system/blocks/products/shared.ts
33066
- import { z as z55 } from "zod";
33067
- var publicProductVariantSchema = z55.object({
33068
- id: z55.string(),
33069
- title: z55.string(),
33070
- sku: z55.string().nullable(),
33071
- priceCents: z55.number(),
33072
- stockQuantity: z55.number().nullable(),
33073
- soldOut: z55.boolean()
33074
- });
33075
- var publicProductSchema = z55.object({
33076
- id: z55.string(),
33077
- contentEntryId: z55.string().nullable(),
33078
- title: z55.string(),
33079
- slug: z55.string(),
33080
- path: z55.string().nullable(),
33081
- status: z55.enum(["draft", "active"]),
33082
- priceCents: z55.number(),
33083
- currency: z55.string(),
33084
- productType: z55.enum(["physical", "digital"]),
33085
- requiresShipping: z55.boolean(),
33086
- hasVariants: z55.boolean(),
33087
- trackInventory: z55.boolean(),
33088
- soldOut: z55.boolean(),
33089
- category: z55.object({
33090
- id: z55.string(),
33091
- name: z55.string(),
33092
- slug: z55.string()
33272
+ import { z as z56 } from "zod";
33273
+ var publicProductVariantSchema = z56.object({
33274
+ id: z56.string(),
33275
+ title: z56.string(),
33276
+ sku: z56.string().nullable(),
33277
+ priceCents: z56.number(),
33278
+ stockQuantity: z56.number().nullable(),
33279
+ soldOut: z56.boolean()
33280
+ });
33281
+ var publicProductSchema = z56.object({
33282
+ id: z56.string(),
33283
+ contentEntryId: z56.string().nullable(),
33284
+ title: z56.string(),
33285
+ slug: z56.string(),
33286
+ path: z56.string().nullable(),
33287
+ status: z56.enum(["draft", "active"]),
33288
+ priceCents: z56.number(),
33289
+ currency: z56.string(),
33290
+ productType: z56.enum(["physical", "digital"]),
33291
+ requiresShipping: z56.boolean(),
33292
+ hasVariants: z56.boolean(),
33293
+ trackInventory: z56.boolean(),
33294
+ soldOut: z56.boolean(),
33295
+ category: z56.object({
33296
+ id: z56.string(),
33297
+ name: z56.string(),
33298
+ slug: z56.string()
33093
33299
  }).nullable(),
33094
- summary: z55.string().nullable(),
33095
- body: z55.unknown().nullable(),
33096
- gallery: z55.array(
33097
- z55.object({
33098
- url: z55.string(),
33099
- alt: z55.string().nullable()
33300
+ summary: z56.string().nullable(),
33301
+ body: z56.unknown().nullable(),
33302
+ gallery: z56.array(
33303
+ z56.object({
33304
+ url: z56.string(),
33305
+ alt: z56.string().nullable()
33100
33306
  })
33101
33307
  ),
33102
- variants: z55.array(publicProductVariantSchema)
33308
+ variants: z56.array(publicProductVariantSchema)
33103
33309
  });
33104
- var publicProductsResponseSchema = z55.object({
33105
- products: z55.array(publicProductSchema)
33310
+ var publicProductsResponseSchema = z56.object({
33311
+ products: z56.array(publicProductSchema)
33106
33312
  });
33107
33313
 
33108
33314
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -33166,27 +33372,27 @@ function deriveCreditProductLabels(products, options = {}) {
33166
33372
  }
33167
33373
 
33168
33374
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
33169
- import { z as z56 } from "zod";
33170
- var storedProductCartItemSchema = z56.object({
33171
- kind: z56.literal("product"),
33172
- productId: z56.string().min(1),
33173
- productCategoryId: z56.string().min(1).optional().nullable(),
33174
- variantId: z56.string().min(1).optional().nullable(),
33175
- title: z56.string().min(1),
33176
- variantTitle: z56.string().optional().nullable(),
33177
- quantity: z56.number().finite(),
33178
- unitPriceCents: z56.number().finite(),
33179
- currency: z56.string().min(1),
33180
- imageUrl: z56.string().optional().nullable(),
33181
- soldOut: z56.boolean().optional()
33182
- });
33183
- var storedPassCartItemSchema = z56.object({
33184
- kind: z56.literal("pass"),
33185
- passId: z56.string().min(1),
33186
- title: z56.string().min(1),
33187
- quantity: z56.number().finite().optional(),
33188
- unitPriceCents: z56.number().finite(),
33189
- currency: z56.string().min(1)
33375
+ import { z as z57 } from "zod";
33376
+ var storedProductCartItemSchema = z57.object({
33377
+ kind: z57.literal("product"),
33378
+ productId: z57.string().min(1),
33379
+ productCategoryId: z57.string().min(1).optional().nullable(),
33380
+ variantId: z57.string().min(1).optional().nullable(),
33381
+ title: z57.string().min(1),
33382
+ variantTitle: z57.string().optional().nullable(),
33383
+ quantity: z57.number().finite(),
33384
+ unitPriceCents: z57.number().finite(),
33385
+ currency: z57.string().min(1),
33386
+ imageUrl: z57.string().optional().nullable(),
33387
+ soldOut: z57.boolean().optional()
33388
+ });
33389
+ var storedPassCartItemSchema = z57.object({
33390
+ kind: z57.literal("pass"),
33391
+ passId: z57.string().min(1),
33392
+ title: z57.string().min(1),
33393
+ quantity: z57.number().finite().optional(),
33394
+ unitPriceCents: z57.number().finite(),
33395
+ currency: z57.string().min(1)
33190
33396
  });
33191
33397
  function deriveCommerceCheckoutState(state) {
33192
33398
  if (state.items.length === 0) {
@@ -33225,10 +33431,7 @@ function resolveSelectedProduct(products, contentEntry, productSlug) {
33225
33431
 
33226
33432
  // ../blocks/src/system/runtime/nodes/commerce/shared/display.ts
33227
33433
  function formatCommercePrice(cents, currency) {
33228
- return new Intl.NumberFormat("en-US", {
33229
- style: "currency",
33230
- currency: currency.toUpperCase()
33231
- }).format(cents / 100);
33434
+ return formatCurrencyAmount(cents, currency);
33232
33435
  }
33233
33436
  function getPassesHeading(passes, explicitHeading) {
33234
33437
  if (explicitHeading) return explicitHeading;
@@ -33423,214 +33626,214 @@ function formatValidity(days) {
33423
33626
  }
33424
33627
 
33425
33628
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33426
- var shopModeSchema = z57.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33427
- var contentEntrySchema3 = z57.object({
33428
- id: z57.string().nullable().optional(),
33429
- slug: z57.string().nullable().optional()
33629
+ var shopModeSchema = z58.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33630
+ var contentEntrySchema3 = z58.object({
33631
+ id: z58.string().nullable().optional(),
33632
+ slug: z58.string().nullable().optional()
33430
33633
  }).nullable();
33431
- var shopSourceSchema = z57.object({
33432
- className: z57.string().nullable().optional(),
33634
+ var shopSourceSchema = z58.object({
33635
+ className: z58.string().nullable().optional(),
33433
33636
  mode: shopModeSchema.optional(),
33434
- heading: z57.string().nullable().optional(),
33435
- productSlug: z57.string().nullable().optional(),
33436
- showPasses: z57.boolean().optional(),
33437
- showMemberships: z57.boolean().optional(),
33438
- layout: z57.enum(["grid", "list"]).optional(),
33439
- columns: z57.string().optional(),
33440
- showDescriptions: z57.boolean().optional(),
33441
- showSummary: z57.boolean().optional(),
33442
- showBody: z57.boolean().optional(),
33443
- showPrices: z57.boolean().optional(),
33444
- showValidityPeriod: z57.boolean().optional(),
33445
- showPricePerCredit: z57.boolean().nullable().optional(),
33446
- passesHeading: z57.string().optional(),
33447
- membershipsHeading: z57.string().optional(),
33448
- buyButtonText: z57.string().optional(),
33449
- addButtonText: z57.string().optional(),
33450
- passPurchaseMode: z57.enum(["add_to_cart", "buy_now"]).optional(),
33451
- subscribeButtonText: z57.string().optional(),
33452
- emptyStateText: z57.string().optional(),
33453
- checkoutButtonText: z57.string().optional(),
33454
- clearButtonText: z57.string().optional(),
33455
- submitButtonText: z57.string().optional(),
33637
+ heading: z58.string().nullable().optional(),
33638
+ productSlug: z58.string().nullable().optional(),
33639
+ showPasses: z58.boolean().optional(),
33640
+ showMemberships: z58.boolean().optional(),
33641
+ layout: z58.enum(["grid", "list"]).optional(),
33642
+ columns: z58.string().optional(),
33643
+ showDescriptions: z58.boolean().optional(),
33644
+ showSummary: z58.boolean().optional(),
33645
+ showBody: z58.boolean().optional(),
33646
+ showPrices: z58.boolean().optional(),
33647
+ showValidityPeriod: z58.boolean().optional(),
33648
+ showPricePerCredit: z58.boolean().nullable().optional(),
33649
+ passesHeading: z58.string().optional(),
33650
+ membershipsHeading: z58.string().optional(),
33651
+ buyButtonText: z58.string().optional(),
33652
+ addButtonText: z58.string().optional(),
33653
+ passPurchaseMode: z58.enum(["add_to_cart", "buy_now"]).optional(),
33654
+ subscribeButtonText: z58.string().optional(),
33655
+ emptyStateText: z58.string().optional(),
33656
+ checkoutButtonText: z58.string().optional(),
33657
+ clearButtonText: z58.string().optional(),
33658
+ submitButtonText: z58.string().optional(),
33456
33659
  contentEntry: contentEntrySchema3.optional(),
33457
- passes: z57.array(publicPassProductSchema).nullable().optional(),
33458
- memberships: z57.array(publicMembershipProductSchema).nullable().optional(),
33459
- products: z57.array(publicProductSchema).nullable().optional(),
33460
- siteId: z57.string().optional(),
33461
- apiBaseUrl: z57.string().optional(),
33660
+ passes: z58.array(publicPassProductSchema).nullable().optional(),
33661
+ memberships: z58.array(publicMembershipProductSchema).nullable().optional(),
33662
+ products: z58.array(publicProductSchema).nullable().optional(),
33663
+ siteId: z58.string().optional(),
33664
+ apiBaseUrl: z58.string().optional(),
33462
33665
  stage: previewStageSchema.optional()
33463
33666
  });
33464
- var productVariantOptionDisplaySchema = z57.object({
33465
- id: z57.string(),
33466
- label: z57.string(),
33467
- soldOut: z57.boolean()
33468
- });
33469
- var productCardDisplaySchema = z57.object({
33470
- productId: z57.string(),
33471
- title: z57.string(),
33472
- path: z57.string().nullable(),
33473
- summary: z57.string().nullable(),
33474
- priceLabel: z57.string().nullable(),
33475
- image: z57.object({
33476
- url: z57.string(),
33477
- alt: z57.string().nullable()
33667
+ var productVariantOptionDisplaySchema = z58.object({
33668
+ id: z58.string(),
33669
+ label: z58.string(),
33670
+ soldOut: z58.boolean()
33671
+ });
33672
+ var productCardDisplaySchema = z58.object({
33673
+ productId: z58.string(),
33674
+ title: z58.string(),
33675
+ path: z58.string().nullable(),
33676
+ summary: z58.string().nullable(),
33677
+ priceLabel: z58.string().nullable(),
33678
+ image: z58.object({
33679
+ url: z58.string(),
33680
+ alt: z58.string().nullable()
33478
33681
  }).nullable(),
33479
- variantOptions: z57.array(productVariantOptionDisplaySchema),
33480
- selectedVariantId: z57.string().nullable(),
33481
- selectionLabel: z57.string(),
33482
- actionLabel: z57.string(),
33483
- soldOut: z57.boolean()
33484
- });
33485
- var productListDisplaySchema = z57.object({
33486
- kind: z57.literal("product-list"),
33487
- state: z57.enum(["empty", "ready"]),
33488
- heading: z57.string().nullable(),
33489
- className: z57.string().nullable(),
33490
- layout: z57.enum(["grid", "list"]),
33491
- columns: z57.string(),
33492
- emptyMessage: z57.string(),
33493
- cards: z57.array(productCardDisplaySchema)
33494
- });
33495
- var productDetailDisplaySchema = z57.discriminatedUnion("state", [
33496
- z57.object({
33497
- kind: z57.literal("product-detail"),
33498
- state: z57.literal("empty"),
33499
- heading: z57.string().nullable(),
33500
- className: z57.string().nullable(),
33501
- emptyMessage: z57.string()
33682
+ variantOptions: z58.array(productVariantOptionDisplaySchema),
33683
+ selectedVariantId: z58.string().nullable(),
33684
+ selectionLabel: z58.string(),
33685
+ actionLabel: z58.string(),
33686
+ soldOut: z58.boolean()
33687
+ });
33688
+ var productListDisplaySchema = z58.object({
33689
+ kind: z58.literal("product-list"),
33690
+ state: z58.enum(["empty", "ready"]),
33691
+ heading: z58.string().nullable(),
33692
+ className: z58.string().nullable(),
33693
+ layout: z58.enum(["grid", "list"]),
33694
+ columns: z58.string(),
33695
+ emptyMessage: z58.string(),
33696
+ cards: z58.array(productCardDisplaySchema)
33697
+ });
33698
+ var productDetailDisplaySchema = z58.discriminatedUnion("state", [
33699
+ z58.object({
33700
+ kind: z58.literal("product-detail"),
33701
+ state: z58.literal("empty"),
33702
+ heading: z58.string().nullable(),
33703
+ className: z58.string().nullable(),
33704
+ emptyMessage: z58.string()
33502
33705
  }),
33503
- z57.object({
33504
- kind: z57.literal("product-detail"),
33505
- state: z57.literal("ready"),
33506
- heading: z57.string().nullable(),
33507
- className: z57.string().nullable(),
33508
- title: z57.string(),
33509
- priceLabel: z57.string(),
33510
- summary: z57.string().nullable(),
33511
- categoryLabel: z57.string().nullable(),
33512
- gallery: z57.array(z57.object({
33513
- url: z57.string(),
33514
- alt: z57.string().nullable()
33706
+ z58.object({
33707
+ kind: z58.literal("product-detail"),
33708
+ state: z58.literal("ready"),
33709
+ heading: z58.string().nullable(),
33710
+ className: z58.string().nullable(),
33711
+ title: z58.string(),
33712
+ priceLabel: z58.string(),
33713
+ summary: z58.string().nullable(),
33714
+ categoryLabel: z58.string().nullable(),
33715
+ gallery: z58.array(z58.object({
33716
+ url: z58.string(),
33717
+ alt: z58.string().nullable()
33515
33718
  })),
33516
- variantOptions: z57.array(productVariantOptionDisplaySchema),
33517
- selectedVariantId: z57.string().nullable(),
33518
- selectionLabel: z57.string(),
33519
- actionLabel: z57.string(),
33520
- soldOut: z57.boolean(),
33521
- body: z57.unknown().nullable()
33719
+ variantOptions: z58.array(productVariantOptionDisplaySchema),
33720
+ selectedVariantId: z58.string().nullable(),
33721
+ selectionLabel: z58.string(),
33722
+ actionLabel: z58.string(),
33723
+ soldOut: z58.boolean(),
33724
+ body: z58.unknown().nullable()
33522
33725
  })
33523
33726
  ]);
33524
- var passCardDisplaySchema = z57.object({
33525
- id: z57.string(),
33526
- title: z57.string(),
33527
- description: z57.string().nullable(),
33528
- priceLabel: z57.string(),
33529
- creditsLabel: z57.string(),
33530
- perCreditLabel: z57.string().nullable(),
33531
- validityLabel: z57.string().nullable(),
33532
- actionLabel: z57.string()
33533
- });
33534
- var membershipCardDisplaySchema = z57.object({
33535
- id: z57.string(),
33536
- title: z57.string(),
33537
- description: z57.string().nullable(),
33538
- priceLabel: z57.string(),
33539
- intervalLabel: z57.string(),
33540
- actionLabel: z57.string()
33541
- });
33542
- var passesMembershipsDisplaySchema = z57.object({
33543
- kind: z57.literal("passes-memberships"),
33544
- state: z57.enum(["empty", "ready"]),
33545
- className: z57.string().nullable(),
33546
- layout: z57.enum(["grid", "list"]),
33547
- columns: z57.string(),
33548
- emptyMessage: z57.string(),
33549
- passesHeading: z57.string(),
33550
- membershipsHeading: z57.string(),
33551
- passes: z57.array(passCardDisplaySchema),
33552
- memberships: z57.array(membershipCardDisplaySchema)
33553
- });
33554
- var cartLineDisplaySchema = z57.object({
33555
- key: z57.string(),
33556
- title: z57.string(),
33557
- priceLabel: z57.string(),
33558
- quantity: z57.number(),
33559
- quantityEditable: z57.boolean()
33560
- });
33561
- var cartDisplaySchema = z57.object({
33562
- kind: z57.literal("cart"),
33563
- state: z57.enum(["empty", "ready"]),
33564
- heading: z57.string().nullable(),
33565
- className: z57.string().nullable(),
33566
- emptyMessage: z57.string(),
33567
- supportText: z57.string().nullable(),
33568
- items: z57.array(cartLineDisplaySchema),
33569
- subtotalLabel: z57.string().nullable(),
33570
- checkoutButtonText: z57.string(),
33571
- clearButtonText: z57.string()
33572
- });
33573
- var checkoutDisplaySchema = z57.object({
33574
- kind: z57.literal("checkout"),
33575
- state: z57.enum(["empty", "blocked", "ready"]),
33576
- heading: z57.string().nullable(),
33577
- className: z57.string().nullable(),
33578
- message: z57.string().nullable(),
33579
- submitButtonText: z57.string()
33580
- });
33581
- var passesMembershipsHydrationSchema = z57.object({
33582
- passes: z57.array(publicPassProductSchema),
33583
- memberships: z57.array(publicMembershipProductSchema),
33584
- passPurchaseMode: z57.enum(["add_to_cart", "buy_now"])
33585
- });
33586
- var productListHydrationSchema = z57.object({
33587
- products: z57.array(publicProductSchema),
33588
- showSummary: z57.boolean(),
33589
- showPrices: z57.boolean(),
33590
- addButtonText: z57.string()
33591
- });
33592
- var productDetailHydrationSchema = z57.object({
33593
- products: z57.array(publicProductSchema),
33594
- productId: z57.string().nullable(),
33595
- showSummary: z57.boolean(),
33596
- showBody: z57.boolean(),
33597
- addButtonText: z57.string()
33598
- });
33599
- var cartHydrationSchema = z57.object({
33600
- emptyStateText: z57.string(),
33601
- checkoutButtonText: z57.string(),
33602
- clearButtonText: z57.string()
33603
- });
33604
- var checkoutHydrationSchema = z57.object({
33605
- emptyStateText: z57.string(),
33606
- submitButtonText: z57.string()
33607
- });
33608
- var passesMembershipsRenderSchema = z57.object({
33727
+ var passCardDisplaySchema = z58.object({
33728
+ id: z58.string(),
33729
+ title: z58.string(),
33730
+ description: z58.string().nullable(),
33731
+ priceLabel: z58.string(),
33732
+ creditsLabel: z58.string(),
33733
+ perCreditLabel: z58.string().nullable(),
33734
+ validityLabel: z58.string().nullable(),
33735
+ actionLabel: z58.string()
33736
+ });
33737
+ var membershipCardDisplaySchema = z58.object({
33738
+ id: z58.string(),
33739
+ title: z58.string(),
33740
+ description: z58.string().nullable(),
33741
+ priceLabel: z58.string(),
33742
+ intervalLabel: z58.string(),
33743
+ actionLabel: z58.string()
33744
+ });
33745
+ var passesMembershipsDisplaySchema = z58.object({
33746
+ kind: z58.literal("passes-memberships"),
33747
+ state: z58.enum(["empty", "ready"]),
33748
+ className: z58.string().nullable(),
33749
+ layout: z58.enum(["grid", "list"]),
33750
+ columns: z58.string(),
33751
+ emptyMessage: z58.string(),
33752
+ passesHeading: z58.string(),
33753
+ membershipsHeading: z58.string(),
33754
+ passes: z58.array(passCardDisplaySchema),
33755
+ memberships: z58.array(membershipCardDisplaySchema)
33756
+ });
33757
+ var cartLineDisplaySchema = z58.object({
33758
+ key: z58.string(),
33759
+ title: z58.string(),
33760
+ priceLabel: z58.string(),
33761
+ quantity: z58.number(),
33762
+ quantityEditable: z58.boolean()
33763
+ });
33764
+ var cartDisplaySchema = z58.object({
33765
+ kind: z58.literal("cart"),
33766
+ state: z58.enum(["empty", "ready"]),
33767
+ heading: z58.string().nullable(),
33768
+ className: z58.string().nullable(),
33769
+ emptyMessage: z58.string(),
33770
+ supportText: z58.string().nullable(),
33771
+ items: z58.array(cartLineDisplaySchema),
33772
+ subtotalLabel: z58.string().nullable(),
33773
+ checkoutButtonText: z58.string(),
33774
+ clearButtonText: z58.string()
33775
+ });
33776
+ var checkoutDisplaySchema = z58.object({
33777
+ kind: z58.literal("checkout"),
33778
+ state: z58.enum(["empty", "blocked", "ready"]),
33779
+ heading: z58.string().nullable(),
33780
+ className: z58.string().nullable(),
33781
+ message: z58.string().nullable(),
33782
+ submitButtonText: z58.string()
33783
+ });
33784
+ var passesMembershipsHydrationSchema = z58.object({
33785
+ passes: z58.array(publicPassProductSchema),
33786
+ memberships: z58.array(publicMembershipProductSchema),
33787
+ passPurchaseMode: z58.enum(["add_to_cart", "buy_now"])
33788
+ });
33789
+ var productListHydrationSchema = z58.object({
33790
+ products: z58.array(publicProductSchema),
33791
+ showSummary: z58.boolean(),
33792
+ showPrices: z58.boolean(),
33793
+ addButtonText: z58.string()
33794
+ });
33795
+ var productDetailHydrationSchema = z58.object({
33796
+ products: z58.array(publicProductSchema),
33797
+ productId: z58.string().nullable(),
33798
+ showSummary: z58.boolean(),
33799
+ showBody: z58.boolean(),
33800
+ addButtonText: z58.string()
33801
+ });
33802
+ var cartHydrationSchema = z58.object({
33803
+ emptyStateText: z58.string(),
33804
+ checkoutButtonText: z58.string(),
33805
+ clearButtonText: z58.string()
33806
+ });
33807
+ var checkoutHydrationSchema = z58.object({
33808
+ emptyStateText: z58.string(),
33809
+ submitButtonText: z58.string()
33810
+ });
33811
+ var passesMembershipsRenderSchema = z58.object({
33609
33812
  display: passesMembershipsDisplaySchema,
33610
33813
  hydration: passesMembershipsHydrationSchema
33611
33814
  });
33612
- var productListRenderSchema = z57.object({
33815
+ var productListRenderSchema = z58.object({
33613
33816
  display: productListDisplaySchema,
33614
33817
  hydration: productListHydrationSchema
33615
33818
  });
33616
- var productDetailRenderSchema = z57.object({
33819
+ var productDetailRenderSchema = z58.object({
33617
33820
  display: productDetailDisplaySchema,
33618
33821
  hydration: productDetailHydrationSchema
33619
33822
  });
33620
- var cartRenderSchema = z57.object({
33823
+ var cartRenderSchema = z58.object({
33621
33824
  display: cartDisplaySchema,
33622
33825
  hydration: cartHydrationSchema
33623
33826
  });
33624
- var checkoutRenderSchema = z57.object({
33827
+ var checkoutRenderSchema = z58.object({
33625
33828
  display: checkoutDisplaySchema,
33626
33829
  hydration: checkoutHydrationSchema
33627
33830
  });
33628
33831
  function resolveShowPricePerCredit(source) {
33629
33832
  return source.showPricePerCredit ?? true;
33630
33833
  }
33631
- var shopIslandMetaCodec = createZodCodec(z57.object({
33632
- siteId: z57.string().optional(),
33633
- apiBaseUrl: z57.string().optional(),
33834
+ var shopIslandMetaCodec = createZodCodec(z58.object({
33835
+ siteId: z58.string().optional(),
33836
+ apiBaseUrl: z58.string().optional(),
33634
33837
  stage: previewStageSchema.optional()
33635
33838
  }));
33636
33839
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -34008,9 +34211,9 @@ var shopBlockDefinition = {
34008
34211
  runtime: shopBlockRuntime,
34009
34212
  dataSchemas: {
34010
34213
  // listPublicPasses returns { passes: [...] }
34011
- passes: z58.object({ passes: z58.array(publicPassProductSchema) }).optional(),
34214
+ passes: z59.object({ passes: z59.array(publicPassProductSchema) }).optional(),
34012
34215
  // listPublicMemberships returns { memberships: [...] }
34013
- memberships: z58.object({ memberships: z58.array(publicMembershipProductSchema) }).optional()
34216
+ memberships: z59.object({ memberships: z59.array(publicMembershipProductSchema) }).optional()
34014
34217
  },
34015
34218
  dataLoaders: {
34016
34219
  // Load passes for display
@@ -34033,7 +34236,7 @@ var shopBlockDefinition = {
34033
34236
  };
34034
34237
 
34035
34238
  // ../blocks/src/system/blocks/product-list.ts
34036
- import { z as z59 } from "zod";
34239
+ import { z as z60 } from "zod";
34037
34240
  var productListManifest = createBlockManifest({
34038
34241
  id: "block.product-list",
34039
34242
  version: "1.0.0",
@@ -34166,7 +34369,7 @@ var productListBlockDefinition = {
34166
34369
  }
34167
34370
  }
34168
34371
  };
34169
- var productListDataSchema = z59.object({
34372
+ var productListDataSchema = z60.object({
34170
34373
  products: publicProductsResponseSchema.optional()
34171
34374
  });
34172
34375
 
@@ -34427,72 +34630,72 @@ var checkoutBlockDefinition = {
34427
34630
  };
34428
34631
 
34429
34632
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
34430
- import { z as z60 } from "zod";
34431
- var publicGiftCardOfferSchema = z60.object({
34432
- id: z60.string(),
34433
- kind: z60.literal("gift_card"),
34434
- title: z60.string(),
34435
- description: z60.string().nullable(),
34436
- sortOrder: z60.number().int(),
34437
- giftCard: z60.object({
34438
- fixedDenominations: z60.array(z60.number().int().positive()),
34439
- customAmountEnabled: z60.boolean(),
34440
- customAmountMinCents: z60.number().int().positive(),
34441
- customAmountMaxCents: z60.number().int().positive()
34633
+ import { z as z61 } from "zod";
34634
+ var publicGiftCardOfferSchema = z61.object({
34635
+ id: z61.string(),
34636
+ kind: z61.literal("gift_card"),
34637
+ title: z61.string(),
34638
+ description: z61.string().nullable(),
34639
+ sortOrder: z61.number().int(),
34640
+ giftCard: z61.object({
34641
+ fixedDenominations: z61.array(z61.number().int().positive()),
34642
+ customAmountEnabled: z61.boolean(),
34643
+ customAmountMinCents: z61.number().int().positive(),
34644
+ customAmountMaxCents: z61.number().int().positive()
34442
34645
  }),
34443
- voucher: z60.null()
34444
- });
34445
- var publicVoucherOfferSchema = z60.object({
34446
- id: z60.string(),
34447
- kind: z60.literal("voucher"),
34448
- title: z60.string(),
34449
- description: z60.string().nullable(),
34450
- sortOrder: z60.number().int(),
34451
- giftCard: z60.null(),
34452
- voucher: z60.object({
34453
- purchaseAmountCents: z60.number().int().positive()
34646
+ voucher: z61.null()
34647
+ });
34648
+ var publicVoucherOfferSchema = z61.object({
34649
+ id: z61.string(),
34650
+ kind: z61.literal("voucher"),
34651
+ title: z61.string(),
34652
+ description: z61.string().nullable(),
34653
+ sortOrder: z61.number().int(),
34654
+ giftCard: z61.null(),
34655
+ voucher: z61.object({
34656
+ purchaseAmountCents: z61.number().int().positive()
34454
34657
  })
34455
34658
  });
34456
- var publicGiftingOffersResponseSchema = z60.object({
34457
- currency: z60.string(),
34458
- giftCards: z60.array(publicGiftCardOfferSchema),
34459
- vouchers: z60.array(publicVoucherOfferSchema)
34659
+ var publicGiftingOffersResponseSchema = z61.object({
34660
+ currency: z61.string(),
34661
+ giftCards: z61.array(publicGiftCardOfferSchema),
34662
+ vouchers: z61.array(publicVoucherOfferSchema)
34460
34663
  });
34461
- var giftingSourceSchema = z60.object({
34462
- siteId: z60.string().optional(),
34463
- apiBaseUrl: z60.string().optional(),
34664
+ var giftingSourceSchema = z61.object({
34665
+ siteId: z61.string().optional(),
34666
+ apiBaseUrl: z61.string().optional(),
34464
34667
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
34465
- className: z60.string().nullable().optional(),
34466
- heading: z60.string().nullable().optional(),
34467
- intro: z60.string().nullable().optional(),
34468
- giftCardsHeading: z60.string().nullable().optional(),
34469
- vouchersHeading: z60.string().nullable().optional(),
34470
- emptyStateText: z60.string().nullable().optional(),
34471
- checkoutButtonText: z60.string().nullable().optional(),
34472
- successMessage: z60.string().nullable().optional()
34473
- });
34474
- var giftingDisplaySchema = z60.object({
34475
- kind: z60.literal("gifting"),
34476
- state: z60.literal("ready"),
34477
- className: z60.string().nullable(),
34478
- heading: z60.string(),
34479
- intro: z60.string().nullable(),
34480
- giftCardsHeading: z60.string(),
34481
- vouchersHeading: z60.string(),
34482
- emptyStateText: z60.string()
34483
- });
34484
- var giftingHydrationSchema = z60.object({
34668
+ className: z61.string().nullable().optional(),
34669
+ heading: z61.string().nullable().optional(),
34670
+ intro: z61.string().nullable().optional(),
34671
+ giftCardsHeading: z61.string().nullable().optional(),
34672
+ vouchersHeading: z61.string().nullable().optional(),
34673
+ emptyStateText: z61.string().nullable().optional(),
34674
+ checkoutButtonText: z61.string().nullable().optional(),
34675
+ successMessage: z61.string().nullable().optional()
34676
+ });
34677
+ var giftingDisplaySchema = z61.object({
34678
+ kind: z61.literal("gifting"),
34679
+ state: z61.literal("ready"),
34680
+ className: z61.string().nullable(),
34681
+ heading: z61.string(),
34682
+ intro: z61.string().nullable(),
34683
+ giftCardsHeading: z61.string(),
34684
+ vouchersHeading: z61.string(),
34685
+ emptyStateText: z61.string()
34686
+ });
34687
+ var giftingHydrationSchema = z61.object({
34485
34688
  offers: publicGiftingOffersResponseSchema.nullable(),
34486
- checkoutButtonText: z60.string(),
34487
- successMessage: z60.string()
34689
+ checkoutButtonText: z61.string(),
34690
+ successMessage: z61.string()
34488
34691
  });
34489
- var giftingRenderSchema = z60.object({
34692
+ var giftingRenderSchema = z61.object({
34490
34693
  display: giftingDisplaySchema,
34491
34694
  hydration: giftingHydrationSchema
34492
34695
  });
34493
- var giftingIslandMetaCodec = createZodCodec(z60.object({
34494
- siteId: z60.string().optional(),
34495
- apiBaseUrl: z60.string().optional()
34696
+ var giftingIslandMetaCodec = createZodCodec(z61.object({
34697
+ siteId: z61.string().optional(),
34698
+ apiBaseUrl: z61.string().optional()
34496
34699
  }));
34497
34700
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
34498
34701
  "siteId",
@@ -34663,7 +34866,61 @@ var giftingBlockDefinition = {
34663
34866
  };
34664
34867
 
34665
34868
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
34666
- import { z as z61 } from "zod";
34869
+ import { z as z62 } from "zod";
34870
+
34871
+ // ../blocks/src/system/blocks/newsletter-signup-destination.ts
34872
+ function parseNewsletterSignupBlockId(value) {
34873
+ const trimmed = parseTrimmedString(value);
34874
+ return trimmed && BLOCK_ID_PATTERN.test(trimmed) ? trimmed : null;
34875
+ }
34876
+ function parseSignedNewsletterDestinationRef(value) {
34877
+ const trimmed = parseTrimmedString(value);
34878
+ return trimmed && SIGNED_DESTINATION_REF_PATTERN.test(trimmed) ? trimmed : null;
34879
+ }
34880
+ function parseNewsletterSignupDestinationProvider(value) {
34881
+ return value === "riverbank" || value === "mailchimp" ? value : null;
34882
+ }
34883
+ function buildNewsletterSignupBlockRef(blockId) {
34884
+ const parsed = parseNewsletterSignupBlockId(blockId);
34885
+ return parsed ? { tag: "block_ref", blockId: parsed } : null;
34886
+ }
34887
+ function normalizeNewsletterSignupEditorValuesForDestination(values) {
34888
+ const destinationProvider = parseNewsletterSignupDestinationProvider(values.destinationProvider) ?? "riverbank";
34889
+ if (destinationProvider === "mailchimp") {
34890
+ return {
34891
+ destinationProvider,
34892
+ mailchimpAudienceId: values.mailchimpAudienceId,
34893
+ mailchimpTags: values.mailchimpTags
34894
+ };
34895
+ }
34896
+ return {
34897
+ destinationProvider,
34898
+ listId: values.listId,
34899
+ tags: values.tags
34900
+ };
34901
+ }
34902
+ function deriveNewsletterSignupRuntimeSource(values) {
34903
+ const normalized = normalizeNewsletterSignupEditorValuesForDestination(values);
34904
+ if (normalized.destinationProvider === "mailchimp") {
34905
+ return {
34906
+ destinationProvider: "mailchimp",
34907
+ listId: null,
34908
+ tags: null
34909
+ };
34910
+ }
34911
+ return {
34912
+ destinationProvider: "riverbank",
34913
+ listId: parseTrimmedString(normalized.listId),
34914
+ tags: parseTrimmedString(normalized.tags)
34915
+ };
34916
+ }
34917
+ var BLOCK_ID_PATTERN = /^[A-Za-z0-9._:-]{1,200}$/;
34918
+ var SIGNED_DESTINATION_REF_PATTERN = /^[A-Za-z0-9._~-]{16,1000}$/;
34919
+ function parseTrimmedString(value) {
34920
+ if (typeof value !== "string") return null;
34921
+ const trimmed = value.trim();
34922
+ return trimmed.length > 0 ? trimmed : null;
34923
+ }
34667
34924
 
34668
34925
  // ../blocks/src/system/runtime/nodes/newsletter-form.types.ts
34669
34926
  function getPresetFields(preset2, options) {
@@ -34716,49 +34973,65 @@ function withOptionalPhone(fields3, includePhone) {
34716
34973
  }
34717
34974
 
34718
34975
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
34719
- var newsletterPresetSchema = z61.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
34720
- var newsletterFieldSchema = z61.object({
34721
- id: z61.string(),
34722
- type: z61.enum(["email", "text"]),
34723
- label: z61.string(),
34724
- required: z61.boolean(),
34725
- placeholder: z61.string().optional()
34726
- });
34727
- var newsletterSourceSchema = z61.object({
34728
- siteId: z61.string().optional(),
34729
- apiBaseUrl: z61.string().optional(),
34730
- listId: z61.string().nullable().optional(),
34976
+ var newsletterPresetSchema = z62.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
34977
+ var newsletterDestinationProviderSchema = z62.enum(["riverbank", "mailchimp"]);
34978
+ var newsletterFieldSchema = z62.object({
34979
+ id: z62.string(),
34980
+ type: z62.enum(["email", "text"]),
34981
+ label: z62.string(),
34982
+ required: z62.boolean(),
34983
+ placeholder: z62.string().optional()
34984
+ });
34985
+ var newsletterSignupBlockIdSchema = z62.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
34986
+ var signedNewsletterDestinationRefSchema = z62.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
34987
+ var newsletterPublicDestinationRefSchema = z62.discriminatedUnion("tag", [
34988
+ z62.object({
34989
+ tag: z62.literal("block_ref"),
34990
+ blockId: newsletterSignupBlockIdSchema
34991
+ }),
34992
+ z62.object({
34993
+ tag: z62.literal("signed_destination_ref"),
34994
+ token: signedNewsletterDestinationRefSchema
34995
+ })
34996
+ ]);
34997
+ var newsletterSourceSchema = z62.object({
34998
+ blockId: z62.string().nullable().optional(),
34999
+ siteId: z62.string().optional(),
35000
+ apiBaseUrl: z62.string().optional(),
35001
+ listId: z62.string().nullable().optional(),
35002
+ destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
34731
35003
  preset: newsletterPresetSchema.optional(),
34732
- includePhone: z61.boolean().optional(),
34733
- buttonLabel: z61.string().nullable().optional(),
34734
- successMessage: z61.string().nullable().optional(),
34735
- privacyNote: z61.string().nullable().optional(),
34736
- tags: z61.string().nullable().optional(),
34737
- spamProtectionEnabled: z61.boolean().optional(),
34738
- className: z61.string().nullable().optional()
34739
- });
34740
- var newsletterDisplaySchema = z61.object({
34741
- kind: z61.literal("newsletter-form"),
34742
- className: z61.string().nullable(),
34743
- buttonLabel: z61.string(),
34744
- successMessage: z61.string().nullable(),
34745
- privacyNote: z61.string().nullable(),
34746
- fields: z61.array(newsletterFieldSchema)
34747
- });
34748
- var newsletterHydrationSchema = z61.object({
34749
- listId: z61.string().nullable().optional(),
35004
+ includePhone: z62.boolean().optional(),
35005
+ buttonLabel: z62.string().nullable().optional(),
35006
+ successMessage: z62.string().nullable().optional(),
35007
+ privacyNote: z62.string().nullable().optional(),
35008
+ tags: z62.string().nullable().optional(),
35009
+ spamProtectionEnabled: z62.boolean().optional(),
35010
+ className: z62.string().nullable().optional()
35011
+ });
35012
+ var newsletterDisplaySchema = z62.object({
35013
+ kind: z62.literal("newsletter-form"),
35014
+ className: z62.string().nullable(),
35015
+ buttonLabel: z62.string(),
35016
+ successMessage: z62.string().nullable(),
35017
+ privacyNote: z62.string().nullable(),
35018
+ fields: z62.array(newsletterFieldSchema)
35019
+ });
35020
+ var newsletterHydrationSchema = z62.object({
35021
+ destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
35022
+ listId: z62.string().nullable().optional(),
34750
35023
  preset: newsletterPresetSchema,
34751
- includePhone: z61.boolean(),
34752
- tags: z61.string().nullable().optional(),
34753
- spamProtectionEnabled: z61.boolean().optional()
35024
+ includePhone: z62.boolean(),
35025
+ tags: z62.string().nullable().optional(),
35026
+ spamProtectionEnabled: z62.boolean().optional()
34754
35027
  });
34755
- var newsletterRenderSchema = z61.object({
35028
+ var newsletterRenderSchema = z62.object({
34756
35029
  display: newsletterDisplaySchema,
34757
35030
  hydration: newsletterHydrationSchema
34758
35031
  });
34759
- var newsletterIslandMetaCodec = createZodCodec(z61.object({
34760
- siteId: z61.string().optional(),
34761
- apiBaseUrl: z61.string().optional()
35032
+ var newsletterIslandMetaCodec = createZodCodec(z62.object({
35033
+ siteId: z62.string().optional(),
35034
+ apiBaseUrl: z62.string().optional()
34762
35035
  }));
34763
35036
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
34764
35037
  function buildNewsletterDisplay(source) {
@@ -34779,16 +35052,20 @@ var newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
34779
35052
  source: createZodCodec(newsletterSourceSchema),
34780
35053
  render: createZodCodec(newsletterRenderSchema)
34781
35054
  },
34782
- buildRender: (source) => ({
34783
- display: buildNewsletterDisplay(source),
34784
- hydration: {
34785
- listId: source.listId,
34786
- preset: source.preset ?? "emailOnly",
34787
- includePhone: source.includePhone ?? false,
34788
- tags: source.tags ?? null,
34789
- spamProtectionEnabled: source.spamProtectionEnabled
34790
- }
34791
- })
35055
+ buildRender: (source) => {
35056
+ const runtimeSource = deriveNewsletterSignupRuntimeSource(source);
35057
+ return {
35058
+ display: buildNewsletterDisplay(source),
35059
+ hydration: {
35060
+ destinationRef: buildNewsletterSignupBlockRef(source.blockId),
35061
+ listId: runtimeSource.listId,
35062
+ preset: source.preset ?? "emailOnly",
35063
+ includePhone: source.includePhone ?? false,
35064
+ tags: runtimeSource.tags,
35065
+ spamProtectionEnabled: source.spamProtectionEnabled
35066
+ }
35067
+ };
35068
+ }
34792
35069
  });
34793
35070
  var newsletterFormInteractiveIslandPropsCodec = createInteractiveIslandCodec({
34794
35071
  runtime: newsletterFormBlockRuntime,
@@ -34800,6 +35077,20 @@ var newsletterFormInteractiveIslandPropsCodec = createInteractiveIslandCodec({
34800
35077
  apiBaseUrl: value.apiBaseUrl
34801
35078
  })
34802
35079
  });
35080
+ function parseRequiredNewsletterSignupBlockId(value) {
35081
+ const parsed = parseNewsletterSignupBlockId(value);
35082
+ if (!parsed) {
35083
+ throw new Error("Newsletter signup block destination ref requires blockId");
35084
+ }
35085
+ return parsed;
35086
+ }
35087
+ function parseRequiredSignedNewsletterDestinationRef(value) {
35088
+ const parsed = parseSignedNewsletterDestinationRef(value);
35089
+ if (!parsed) {
35090
+ throw new Error("Newsletter signup signed destination ref requires token");
35091
+ }
35092
+ return parsed;
35093
+ }
34803
35094
 
34804
35095
  // ../blocks/src/system/blocks/newsletter-signup.ts
34805
35096
  var stackedComposition = composeFragments([
@@ -34879,23 +35170,23 @@ var newsletterSignupBlockDefinition = {
34879
35170
  };
34880
35171
 
34881
35172
  // ../blocks/src/system/blocks/team-members.ts
34882
- import { z as z62 } from "zod";
35173
+ import { z as z63 } from "zod";
34883
35174
  var ITEM_NAME2 = "member";
34884
35175
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
34885
35176
  message: "Team member photos must be image media"
34886
35177
  }).nullable();
34887
- var teamMemberDataSchema = z62.object({
34888
- _type: z62.literal("teamMember"),
34889
- id: z62.string(),
34890
- name: z62.string(),
34891
- role: z62.string().nullable(),
34892
- roleLabel: z62.string().nullable(),
34893
- bio: z62.string().nullable(),
34894
- summary: z62.string().nullable(),
35178
+ var teamMemberDataSchema = z63.object({
35179
+ _type: z63.literal("teamMember"),
35180
+ id: z63.string(),
35181
+ name: z63.string(),
35182
+ role: z63.string().nullable(),
35183
+ roleLabel: z63.string().nullable(),
35184
+ bio: z63.string().nullable(),
35185
+ summary: z63.string().nullable(),
34895
35186
  photo: teamMemberPhotoSchema,
34896
- profilePath: z62.string().nullable()
35187
+ profilePath: z63.string().nullable()
34897
35188
  });
34898
- var teamMembersDataSchema = z62.array(teamMemberDataSchema);
35189
+ var teamMembersDataSchema = z63.array(teamMemberDataSchema);
34899
35190
  var dynamicSourceWhen = { equals: "site_staff" };
34900
35191
  var manualSourceWhen = { equals: "site_staff", not: true };
34901
35192
  var headingNode = text(
@@ -37699,34 +37990,34 @@ import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
37699
37990
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
37700
37991
 
37701
37992
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
37702
- import { z as z63 } from "zod";
37703
- var themeBridgeConfigSchema = z63.object({
37704
- tokens: z63.record(z63.string(), z63.string()),
37705
- typography: z63.object({
37706
- headingFamily: z63.string().optional(),
37707
- bodyFamily: z63.string().optional(),
37708
- headingWeight: z63.number().optional(),
37709
- bodyWeight: z63.number().optional()
37993
+ import { z as z64 } from "zod";
37994
+ var themeBridgeConfigSchema = z64.object({
37995
+ tokens: z64.record(z64.string(), z64.string()),
37996
+ typography: z64.object({
37997
+ headingFamily: z64.string().optional(),
37998
+ bodyFamily: z64.string().optional(),
37999
+ headingWeight: z64.number().optional(),
38000
+ bodyWeight: z64.number().optional()
37710
38001
  }).optional(),
37711
- spacing: z63.enum(["comfortable", "standard", "dense"]).optional(),
37712
- corners: z63.enum(["square", "soft", "rounded", "pill"]).optional(),
37713
- shadows: z63.enum(["none", "low", "medium", "high"]).optional(),
37714
- components: z63.object({
37715
- buttons: z63.union([
37716
- z63.boolean(),
37717
- z63.object({
37718
- variants: z63.array(z63.enum(["primary", "secondary", "outline", "ghost"])).optional()
38002
+ spacing: z64.enum(["comfortable", "standard", "dense"]).optional(),
38003
+ corners: z64.enum(["square", "soft", "rounded", "pill"]).optional(),
38004
+ shadows: z64.enum(["none", "low", "medium", "high"]).optional(),
38005
+ components: z64.object({
38006
+ buttons: z64.union([
38007
+ z64.boolean(),
38008
+ z64.object({
38009
+ variants: z64.array(z64.enum(["primary", "secondary", "outline", "ghost"])).optional()
37719
38010
  })
37720
38011
  ]).optional(),
37721
- cards: z63.union([
37722
- z63.boolean(),
37723
- z63.object({
37724
- variants: z63.array(z63.enum(["default", "elevated", "outlined"])).optional()
38012
+ cards: z64.union([
38013
+ z64.boolean(),
38014
+ z64.object({
38015
+ variants: z64.array(z64.enum(["default", "elevated", "outlined"])).optional()
37725
38016
  })
37726
38017
  ]).optional(),
37727
- inputs: z63.boolean().optional()
38018
+ inputs: z64.boolean().optional()
37728
38019
  }).optional(),
37729
- overrides: z63.record(z63.string(), z63.string()).optional()
38020
+ overrides: z64.record(z64.string(), z64.string()).optional()
37730
38021
  }).passthrough();
37731
38022
 
37732
38023
  // ../theme-core/src/siteChrome.tsx
@@ -38095,17 +38386,17 @@ function normalizeLoaderParams(endpoint, params, context) {
38095
38386
  function unsafeRetypeZodSchema(schema) {
38096
38387
  return schema;
38097
38388
  }
38098
- var navIdListSchema = z64.preprocess((value) => {
38389
+ var navIdListSchema = z65.preprocess((value) => {
38099
38390
  if (!Array.isArray(value)) return void 0;
38100
38391
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
38101
38392
  return filtered.length > 0 ? filtered : void 0;
38102
- }, z64.array(z64.string()).max(200).optional());
38103
- var dashboardNavVisibilityBaseSchema = z64.object({
38104
- mode: z64.enum(["augment", "restrict"]).optional(),
38393
+ }, z65.array(z65.string()).max(200).optional());
38394
+ var dashboardNavVisibilityBaseSchema = z65.object({
38395
+ mode: z65.enum(["augment", "restrict"]).optional(),
38105
38396
  allowIds: navIdListSchema,
38106
38397
  denyIds: navIdListSchema
38107
38398
  }).strip();
38108
- var dashboardNavVisibilityRolesSchema = z64.object({
38399
+ var dashboardNavVisibilityRolesSchema = z65.object({
38109
38400
  administrator: dashboardNavVisibilityBaseSchema.optional(),
38110
38401
  editor: dashboardNavVisibilityBaseSchema.optional(),
38111
38402
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -38113,63 +38404,63 @@ var dashboardNavVisibilityRolesSchema = z64.object({
38113
38404
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
38114
38405
  roles: dashboardNavVisibilityRolesSchema
38115
38406
  }).strip();
38116
- var dashboardNavigationConfigSchema = z64.object({
38407
+ var dashboardNavigationConfigSchema = z65.object({
38117
38408
  siteNav: dashboardNavVisibilitySchema.optional(),
38118
38409
  settingsNav: dashboardNavVisibilitySchema.optional()
38119
38410
  }).strip();
38120
- var dashboardConfigSchema = z64.object({
38121
- previewEditingEnabled: z64.boolean().optional(),
38411
+ var dashboardConfigSchema = z65.object({
38412
+ previewEditingEnabled: z65.boolean().optional(),
38122
38413
  navigation: dashboardNavigationConfigSchema.optional()
38123
38414
  }).strip();
38124
38415
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
38125
38416
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
38126
- var sdkLoaderEndpointSchema = z64.enum(SUPPORTED_LOADER_ENDPOINTS);
38127
- var loaderFallbackScalarSchema = z64.union([
38128
- z64.string(),
38129
- z64.number(),
38130
- z64.boolean(),
38131
- z64.null()
38417
+ var sdkLoaderEndpointSchema = z65.enum(SUPPORTED_LOADER_ENDPOINTS);
38418
+ var loaderFallbackScalarSchema = z65.union([
38419
+ z65.string(),
38420
+ z65.number(),
38421
+ z65.boolean(),
38422
+ z65.null()
38132
38423
  ]);
38133
- var loaderParamBindingSchema = z64.object({
38134
- $bind: z64.object({
38135
- from: z64.string().min(1, "Binding path is required"),
38424
+ var loaderParamBindingSchema = z65.object({
38425
+ $bind: z65.object({
38426
+ from: z65.string().min(1, "Binding path is required"),
38136
38427
  fallback: loaderFallbackScalarSchema.optional()
38137
38428
  })
38138
38429
  });
38139
- var loaderParamValueSchema = z64.union([
38140
- z64.string(),
38141
- z64.number(),
38142
- z64.boolean(),
38430
+ var loaderParamValueSchema = z65.union([
38431
+ z65.string(),
38432
+ z65.number(),
38433
+ z65.boolean(),
38143
38434
  loaderParamBindingSchema
38144
38435
  ]);
38145
- var sdkConfigLoaderSchema = z64.object({
38436
+ var sdkConfigLoaderSchema = z65.object({
38146
38437
  endpoint: sdkLoaderEndpointSchema,
38147
- params: z64.record(z64.string(), loaderParamValueSchema),
38148
- mode: z64.enum(["server", "client"]).default("server")
38438
+ params: z65.record(z65.string(), loaderParamValueSchema),
38439
+ mode: z65.enum(["server", "client"]).default("server")
38149
38440
  });
38150
- var sdkDataLoadersSchema = z64.record(z64.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38151
- var sdkCustomBlockIdSchema = z64.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38441
+ var sdkDataLoadersSchema = z65.record(z65.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38442
+ var sdkCustomBlockIdSchema = z65.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38152
38443
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
38153
38444
  }).transform((value) => value);
38154
- var sdkCustomBlockInputSchema = z64.object({
38445
+ var sdkCustomBlockInputSchema = z65.object({
38155
38446
  id: sdkCustomBlockIdSchema,
38156
- title: z64.string().min(1),
38157
- titleSource: z64.union([z64.string().min(1), z64.array(z64.string().min(1)).min(1)]).optional(),
38158
- description: z64.string().optional(),
38447
+ title: z65.string().min(1),
38448
+ titleSource: z65.union([z65.string().min(1), z65.array(z65.string().min(1)).min(1)]).optional(),
38449
+ description: z65.string().optional(),
38159
38450
  category: blockCategoryEnum,
38160
- icon: z64.string().optional(),
38161
- tags: z64.array(z64.string()).optional(),
38451
+ icon: z65.string().optional(),
38452
+ tags: z65.array(z65.string()).optional(),
38162
38453
  fields: fieldDefinitionInputSchema.array().min(1),
38163
38454
  dataLoaders: sdkDataLoadersSchema,
38164
38455
  layout: NodeSchema.optional(),
38165
- variants: z64.record(z64.string().min(1), NodeSchema).optional(),
38166
- defaultVariant: z64.string().min(1).optional(),
38167
- variantOptions: z64.record(
38168
- z64.string().min(1),
38169
- z64.object({
38170
- label: z64.string().min(1).optional(),
38171
- description: z64.string().min(1).optional(),
38172
- icon: z64.string().min(1).optional()
38456
+ variants: z65.record(z65.string().min(1), NodeSchema).optional(),
38457
+ defaultVariant: z65.string().min(1).optional(),
38458
+ variantOptions: z65.record(
38459
+ z65.string().min(1),
38460
+ z65.object({
38461
+ label: z65.string().min(1).optional(),
38462
+ description: z65.string().min(1).optional(),
38463
+ icon: z65.string().min(1).optional()
38173
38464
  })
38174
38465
  ).optional(),
38175
38466
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -38180,7 +38471,7 @@ var sdkCustomBlockInputSchema = z64.object({
38180
38471
  const exists = data.fields.some((field) => field.id === source);
38181
38472
  if (!exists) {
38182
38473
  ctx.addIssue({
38183
- code: z64.ZodIssueCode.custom,
38474
+ code: z65.ZodIssueCode.custom,
38184
38475
  message: `titleSource must reference a valid field ID (got "${source}")`,
38185
38476
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
38186
38477
  });
@@ -38189,7 +38480,7 @@ var sdkCustomBlockInputSchema = z64.object({
38189
38480
  }
38190
38481
  if (data.layout && data.variants) {
38191
38482
  ctx.addIssue({
38192
- code: z64.ZodIssueCode.custom,
38483
+ code: z65.ZodIssueCode.custom,
38193
38484
  message: "Custom block must define either `layout` or `variants`, not both",
38194
38485
  path: ["variants"]
38195
38486
  });
@@ -38198,14 +38489,14 @@ var sdkCustomBlockInputSchema = z64.object({
38198
38489
  const keys = Object.keys(data.variants);
38199
38490
  if (keys.length === 0) {
38200
38491
  ctx.addIssue({
38201
- code: z64.ZodIssueCode.custom,
38492
+ code: z65.ZodIssueCode.custom,
38202
38493
  message: "`variants` must contain at least one variant key",
38203
38494
  path: ["variants"]
38204
38495
  });
38205
38496
  }
38206
38497
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
38207
38498
  ctx.addIssue({
38208
- code: z64.ZodIssueCode.custom,
38499
+ code: z65.ZodIssueCode.custom,
38209
38500
  message: "`defaultVariant` must be a key present in `variants`",
38210
38501
  path: ["defaultVariant"]
38211
38502
  });
@@ -38214,7 +38505,7 @@ var sdkCustomBlockInputSchema = z64.object({
38214
38505
  for (const key of Object.keys(data.variantOptions)) {
38215
38506
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
38216
38507
  ctx.addIssue({
38217
- code: z64.ZodIssueCode.custom,
38508
+ code: z65.ZodIssueCode.custom,
38218
38509
  message: "`variantOptions` key must exist in `variants`",
38219
38510
  path: ["variantOptions", key]
38220
38511
  });
@@ -38223,78 +38514,78 @@ var sdkCustomBlockInputSchema = z64.object({
38223
38514
  }
38224
38515
  }
38225
38516
  });
38226
- var sdkBlockFieldExtensionInputSchema = z64.object({
38517
+ var sdkBlockFieldExtensionInputSchema = z65.object({
38227
38518
  fields: fieldDefinitionInputSchema.array().min(1)
38228
38519
  });
38229
- var sdkBlockFieldExtensionsInputSchema = z64.record(
38230
- z64.string().min(1),
38520
+ var sdkBlockFieldExtensionsInputSchema = z65.record(
38521
+ z65.string().min(1),
38231
38522
  sdkBlockFieldExtensionInputSchema
38232
38523
  );
38233
- var sdkThemePaletteSchema = z64.record(z64.string(), z64.string());
38234
- var sdkThemeConfigSchema = z64.object({
38524
+ var sdkThemePaletteSchema = z65.record(z65.string(), z65.string());
38525
+ var sdkThemeConfigSchema = z65.object({
38235
38526
  palette: sdkThemePaletteSchema
38236
38527
  });
38237
- var sdkSectionBackgroundSchema = z64.object({
38238
- id: z64.string().min(1),
38239
- label: z64.string().min(1),
38240
- token: z64.string().min(1)
38528
+ var sdkSectionBackgroundSchema = z65.object({
38529
+ id: z65.string().min(1),
38530
+ label: z65.string().min(1),
38531
+ token: z65.string().min(1)
38241
38532
  });
38242
- var sdkSectionOptionsConfigSchema = z64.object({
38243
- backgroundColor: z64.boolean().optional(),
38244
- backgroundImage: z64.boolean().optional(),
38245
- backgroundGradient: z64.boolean().optional(),
38246
- spacing: z64.union([z64.array(z64.enum(["compact", "default", "spacious"])), z64.boolean()]).optional(),
38247
- textColor: z64.boolean().optional()
38533
+ var sdkSectionOptionsConfigSchema = z65.object({
38534
+ backgroundColor: z65.boolean().optional(),
38535
+ backgroundImage: z65.boolean().optional(),
38536
+ backgroundGradient: z65.boolean().optional(),
38537
+ spacing: z65.union([z65.array(z65.enum(["compact", "default", "spacious"])), z65.boolean()]).optional(),
38538
+ textColor: z65.boolean().optional()
38248
38539
  });
38249
- var sdkContainerOptionsConfigSchema = z64.object({
38250
- maxWidth: z64.union([z64.array(z64.enum(["narrow", "default", "wide", "full"])), z64.boolean()]).optional(),
38251
- alignment: z64.union([z64.array(z64.enum(["left", "center", "right"])), z64.boolean()]).optional()
38540
+ var sdkContainerOptionsConfigSchema = z65.object({
38541
+ maxWidth: z65.union([z65.array(z65.enum(["narrow", "default", "wide", "full"])), z65.boolean()]).optional(),
38542
+ alignment: z65.union([z65.array(z65.enum(["left", "center", "right"])), z65.boolean()]).optional()
38252
38543
  });
38253
- var sdkSiteStyleConfigSchema = z64.object({
38254
- sectionBackgrounds: z64.array(sdkSectionBackgroundSchema).optional(),
38544
+ var sdkSiteStyleConfigSchema = z65.object({
38545
+ sectionBackgrounds: z65.array(sdkSectionBackgroundSchema).optional(),
38255
38546
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
38256
38547
  containerOptions: sdkContainerOptionsConfigSchema.optional()
38257
38548
  });
38258
- var sdkSiteLayoutConfigSchema = z64.object({
38259
- footerBlocks: z64.array(
38260
- z64.object({
38261
- id: z64.string().min(1).optional(),
38262
- kind: z64.string().min(1),
38263
- content: z64.record(z64.string(), z64.unknown()).optional()
38549
+ var sdkSiteLayoutConfigSchema = z65.object({
38550
+ footerBlocks: z65.array(
38551
+ z65.object({
38552
+ id: z65.string().min(1).optional(),
38553
+ kind: z65.string().min(1),
38554
+ content: z65.record(z65.string(), z65.unknown()).optional()
38264
38555
  })
38265
38556
  ).optional()
38266
38557
  });
38267
- var sdkFieldSelectOptionSchema = z64.object({
38268
- value: z64.string(),
38269
- label: z64.string()
38558
+ var sdkFieldSelectOptionSchema = z65.object({
38559
+ value: z65.string(),
38560
+ label: z65.string()
38270
38561
  });
38271
- var sdkBlockFieldConfigSchema = z64.object({
38272
- options: z64.array(sdkFieldSelectOptionSchema).optional()
38562
+ var sdkBlockFieldConfigSchema = z65.object({
38563
+ options: z65.array(sdkFieldSelectOptionSchema).optional()
38273
38564
  });
38274
- var sdkBlockFieldOptionsMapSchema = z64.record(
38275
- z64.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38565
+ var sdkBlockFieldOptionsMapSchema = z65.record(
38566
+ z65.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38276
38567
  message: "Block ID must be 'block.*' or 'custom.*' format"
38277
38568
  }),
38278
- z64.record(z64.string().min(1), sdkBlockFieldConfigSchema)
38569
+ z65.record(z65.string().min(1), sdkBlockFieldConfigSchema)
38279
38570
  ).optional();
38280
- var sdkContentTypeTemplateConfigSchema = z64.object({
38281
- blocks: z64.array(z64.unknown())
38571
+ var sdkContentTypeTemplateConfigSchema = z65.object({
38572
+ blocks: z65.array(z65.unknown())
38282
38573
  }).passthrough();
38283
- var sdkContentTypeOrderingConfigSchema = z64.object({
38284
- mode: z64.enum(["default", "manual"]).optional()
38574
+ var sdkContentTypeOrderingConfigSchema = z65.object({
38575
+ mode: z65.enum(["default", "manual"]).optional()
38285
38576
  }).optional();
38286
- var sdkContentTypeConfigSchema = z64.object({
38287
- key: z64.string().min(1),
38288
- fields: z64.array(z64.unknown()),
38577
+ var sdkContentTypeConfigSchema = z65.object({
38578
+ key: z65.string().min(1),
38579
+ fields: z65.array(z65.unknown()),
38289
38580
  ordering: sdkContentTypeOrderingConfigSchema,
38290
38581
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
38291
38582
  }).passthrough();
38292
- var sdkContentConfigSchema = z64.object({
38293
- contentTypes: z64.array(sdkContentTypeConfigSchema).optional(),
38294
- pages: z64.array(z64.unknown()).optional(),
38295
- entries: z64.array(z64.unknown()).optional(),
38296
- navigationMenus: z64.array(z64.unknown()).optional(),
38297
- settings: z64.unknown().optional()
38583
+ var sdkContentConfigSchema = z65.object({
38584
+ contentTypes: z65.array(sdkContentTypeConfigSchema).optional(),
38585
+ pages: z65.array(z65.unknown()).optional(),
38586
+ entries: z65.array(z65.unknown()).optional(),
38587
+ navigationMenus: z65.array(z65.unknown()).optional(),
38588
+ settings: z65.unknown().optional()
38298
38589
  }).passthrough();
38299
38590
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
38300
38591
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -38309,62 +38600,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
38309
38600
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
38310
38601
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
38311
38602
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
38312
- var sdkWorkflowIdSchema = z64.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38603
+ var sdkWorkflowIdSchema = z65.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38313
38604
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
38314
38605
  });
38315
- 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 "/"' });
38316
- var sdkWorkflowManualTriggerSchema = z64.object({
38317
- type: z64.literal("manual")
38606
+ 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 "/"' });
38607
+ var sdkWorkflowManualTriggerSchema = z65.object({
38608
+ type: z65.literal("manual")
38318
38609
  }).strict();
38319
- var sdkWorkflowTriggerFieldSchema = z64.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38610
+ var sdkWorkflowTriggerFieldSchema = z65.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38320
38611
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
38321
38612
  });
38322
- var sdkWorkflowFieldChangedConditionSchema = z64.object({
38613
+ var sdkWorkflowFieldChangedConditionSchema = z65.object({
38323
38614
  field: sdkWorkflowTriggerFieldSchema,
38324
- changed: z64.literal(true)
38615
+ changed: z65.literal(true)
38325
38616
  }).strict();
38326
- var sdkWorkflowFieldEmptyConditionSchema = z64.object({
38617
+ var sdkWorkflowFieldEmptyConditionSchema = z65.object({
38327
38618
  field: sdkWorkflowTriggerFieldSchema,
38328
- isEmpty: z64.boolean()
38619
+ isEmpty: z65.boolean()
38329
38620
  }).strict();
38330
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z64.object({
38331
- type: z64.literal("entry.draft.updated"),
38332
- when: z64.array(
38333
- z64.union([
38621
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z65.object({
38622
+ type: z65.literal("entry.draft.updated"),
38623
+ when: z65.array(
38624
+ z65.union([
38334
38625
  sdkWorkflowFieldChangedConditionSchema,
38335
38626
  sdkWorkflowFieldEmptyConditionSchema
38336
38627
  ])
38337
38628
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
38338
38629
  }).strict();
38339
- var sdkWorkflowTriggerSchema = z64.discriminatedUnion("type", [
38630
+ var sdkWorkflowTriggerSchema = z65.discriminatedUnion("type", [
38340
38631
  sdkWorkflowManualTriggerSchema,
38341
38632
  sdkWorkflowEntryDraftUpdatedTriggerSchema
38342
38633
  ]);
38343
- var sdkWorkflowConfirmationSchema = z64.object({
38344
- title: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38345
- body: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38634
+ var sdkWorkflowConfirmationSchema = z65.object({
38635
+ title: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38636
+ body: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38346
38637
  }).strict();
38347
- var sdkWorkflowConfigSchema = z64.object({
38638
+ var sdkWorkflowConfigSchema = z65.object({
38348
38639
  id: sdkWorkflowIdSchema,
38349
- title: z64.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38350
- description: z64.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38351
- contentType: z64.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38640
+ title: z65.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38641
+ description: z65.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38642
+ contentType: z65.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38352
38643
  endpoint: sdkWorkflowEndpointSchema,
38353
- triggers: z64.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38644
+ triggers: z65.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38354
38645
  confirmation: sdkWorkflowConfirmationSchema.optional()
38355
38646
  }).strict();
38356
- var sdkWorkflowsSchema = z64.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38647
+ var sdkWorkflowsSchema = z65.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38357
38648
  const ids = workflows.map((workflow) => workflow.id);
38358
38649
  return ids.length === new Set(ids).size;
38359
38650
  }, { message: "Workflow IDs must be unique" }).optional();
38360
- var riverbankSiteConfigInputSchema = z64.object({
38361
- siteId: z64.string().uuid(),
38362
- previewUrl: z64.string().url().optional(),
38363
- liveUrl: z64.string().url().optional(),
38651
+ var riverbankSiteConfigInputSchema = z65.object({
38652
+ siteId: z65.string().uuid(),
38653
+ previewUrl: z65.string().url().optional(),
38654
+ liveUrl: z65.string().url().optional(),
38364
38655
  theme: sdkThemeConfigSchema.optional(),
38365
38656
  styles: sdkSiteStyleConfigSchema.optional(),
38366
38657
  layout: sdkSiteLayoutConfigSchema.optional(),
38367
- customBlocks: z64.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38658
+ customBlocks: z65.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38368
38659
  const ids = blocks.map((b) => b.id);
38369
38660
  return ids.length === new Set(ids).size;
38370
38661
  }, { message: "Block IDs must be unique" }).optional(),
@@ -38372,50 +38663,50 @@ var riverbankSiteConfigInputSchema = z64.object({
38372
38663
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
38373
38664
  workflows: sdkWorkflowsSchema,
38374
38665
  content: sdkContentConfigSchema.optional(),
38375
- contentDir: z64.string().optional(),
38376
- sync: z64.object({
38377
- existingEntries: z64.enum(["skip", "update"]).optional()
38666
+ contentDir: z65.string().optional(),
38667
+ sync: z65.object({
38668
+ existingEntries: z65.enum(["skip", "update"]).optional()
38378
38669
  }).optional(),
38379
- deploy: z64.object({
38380
- verifyCommand: z64.string().optional(),
38381
- prebuildOutput: z64.string().optional()
38670
+ deploy: z65.object({
38671
+ verifyCommand: z65.string().optional(),
38672
+ prebuildOutput: z65.string().optional()
38382
38673
  }).optional(),
38383
- themeSource: z64.enum(["local", "cms"]).optional(),
38384
- activeTheme: z64.string().optional(),
38385
- enablePortal: z64.boolean().optional(),
38674
+ themeSource: z65.enum(["local", "cms"]).optional(),
38675
+ activeTheme: z65.string().optional(),
38676
+ enablePortal: z65.boolean().optional(),
38386
38677
  dashboard: dashboardConfigSchema.optional()
38387
38678
  }).strict();
38388
- var pushSdkConfigBodySchema = z64.object({
38679
+ var pushSdkConfigBodySchema = z65.object({
38389
38680
  config: riverbankSiteConfigInputSchema,
38390
- forceContentTypes: z64.boolean().optional()
38681
+ forceContentTypes: z65.boolean().optional()
38391
38682
  }).strict();
38392
38683
 
38393
38684
  // ../api/src/siteOnboarding.ts
38394
- import { z as z65 } from "zod";
38685
+ import { z as z66 } from "zod";
38395
38686
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
38396
38687
  configure_appointments: {
38397
38688
  requirementId: "configure_appointments",
38398
38689
  reason: "launch_anyway"
38399
38690
  }
38400
38691
  };
38401
- var acknowledgeLaunchRequirementRequestSchema = z65.discriminatedUnion(
38692
+ var acknowledgeLaunchRequirementRequestSchema = z66.discriminatedUnion(
38402
38693
  "requirementId",
38403
38694
  [
38404
- z65.object({
38405
- requirementId: z65.literal("review_generated_site")
38695
+ z66.object({
38696
+ requirementId: z66.literal("review_generated_site")
38406
38697
  }),
38407
- z65.object({
38408
- requirementId: z65.literal(
38698
+ z66.object({
38699
+ requirementId: z66.literal(
38409
38700
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
38410
38701
  ),
38411
- overrideReason: z65.literal(
38702
+ overrideReason: z66.literal(
38412
38703
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
38413
38704
  )
38414
38705
  })
38415
38706
  ]
38416
38707
  );
38417
- var goLiveSiteRequestSchema = z65.object({
38418
- acceptExtraSiteCharge: z65.boolean().optional()
38708
+ var goLiveSiteRequestSchema = z66.object({
38709
+ acceptExtraSiteCharge: z66.boolean().optional()
38419
38710
  });
38420
38711
 
38421
38712
  // ../surfaces/src/index.ts
@@ -38499,7 +38790,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
38499
38790
  ];
38500
38791
 
38501
38792
  // ../api/src/bookingVerticals.ts
38502
- import { z as z66 } from "zod";
38793
+ import { z as z67 } from "zod";
38503
38794
  var VERTICAL_IDS = [
38504
38795
  "yoga_wellness",
38505
38796
  "fitness_pt",
@@ -38664,39 +38955,39 @@ function getSiteVerticalConfigIssues(rawConfig, config) {
38664
38955
  }
38665
38956
  return [...issues];
38666
38957
  }
38667
- var VerticalIdSchema = z66.string().trim().transform((value, ctx) => {
38958
+ var VerticalIdSchema = z67.string().trim().transform((value, ctx) => {
38668
38959
  const parsed = parseVerticalId(value);
38669
38960
  if (!parsed) {
38670
38961
  ctx.addIssue({
38671
- code: z66.ZodIssueCode.custom,
38962
+ code: z67.ZodIssueCode.custom,
38672
38963
  message: "Unknown booking vertical"
38673
38964
  });
38674
- return z66.NEVER;
38965
+ return z67.NEVER;
38675
38966
  }
38676
38967
  return parsed;
38677
38968
  });
38678
- var VerticalPresetIdSchema = z66.string().trim().transform((value, ctx) => {
38969
+ var VerticalPresetIdSchema = z67.string().trim().transform((value, ctx) => {
38679
38970
  const parsed = parseVerticalPresetId(value);
38680
38971
  if (!parsed) {
38681
38972
  ctx.addIssue({
38682
- code: z66.ZodIssueCode.custom,
38973
+ code: z67.ZodIssueCode.custom,
38683
38974
  message: "Unknown booking preset"
38684
38975
  });
38685
- return z66.NEVER;
38976
+ return z67.NEVER;
38686
38977
  }
38687
38978
  return parsed;
38688
38979
  });
38689
- var BookingVerticalConfigSchema = z66.object({
38980
+ var BookingVerticalConfigSchema = z67.object({
38690
38981
  verticalId: VerticalIdSchema.nullable(),
38691
- selectedPresetIds: z66.array(VerticalPresetIdSchema).max(20)
38982
+ selectedPresetIds: z67.array(VerticalPresetIdSchema).max(20)
38692
38983
  }).transform((value, ctx) => {
38693
38984
  const resolved = resolveSiteVerticalBookingConfig(value);
38694
38985
  if (resolved.kind === "invalid") {
38695
38986
  ctx.addIssue({
38696
- code: z66.ZodIssueCode.custom,
38987
+ code: z67.ZodIssueCode.custom,
38697
38988
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
38698
38989
  });
38699
- return z66.NEVER;
38990
+ return z67.NEVER;
38700
38991
  }
38701
38992
  return resolved.config;
38702
38993
  });
@@ -38723,51 +39014,51 @@ function isRecord8(value) {
38723
39014
  }
38724
39015
 
38725
39016
  // ../api/src/appointmentSetup.ts
38726
- import { z as z67 } from "zod";
39017
+ import { z as z68 } from "zod";
38727
39018
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
38728
- var appointmentSetupRefSchema = z67.discriminatedUnion("kind", [
38729
- z67.object({ kind: z67.literal("existing"), id: z67.string().min(1) }),
38730
- z67.object({ kind: z67.literal("new"), draftId: z67.string().min(1) })
39019
+ var appointmentSetupRefSchema = z68.discriminatedUnion("kind", [
39020
+ z68.object({ kind: z68.literal("existing"), id: z68.string().min(1) }),
39021
+ z68.object({ kind: z68.literal("new"), draftId: z68.string().min(1) })
38731
39022
  ]);
38732
- var appointmentSetupVenueChoiceSchema = z67.discriminatedUnion("kind", [
38733
- z67.object({ kind: z67.literal("none") }),
38734
- z67.object({ kind: z67.literal("existing"), venueId: z67.string().min(1) }),
38735
- z67.object({
38736
- kind: z67.literal("create"),
38737
- draftId: z67.string().min(1),
38738
- title: z67.string().trim().min(1),
38739
- description: z67.string().nullable(),
38740
- timezone: z67.string().trim().min(1).nullable(),
38741
- addressJson: z67.record(z67.string(), z67.unknown()),
38742
- locationJson: z67.object({ lat: z67.number(), lng: z67.number() }).nullable()
39023
+ var appointmentSetupVenueChoiceSchema = z68.discriminatedUnion("kind", [
39024
+ z68.object({ kind: z68.literal("none") }),
39025
+ z68.object({ kind: z68.literal("existing"), venueId: z68.string().min(1) }),
39026
+ z68.object({
39027
+ kind: z68.literal("create"),
39028
+ draftId: z68.string().min(1),
39029
+ title: z68.string().trim().min(1),
39030
+ description: z68.string().nullable(),
39031
+ timezone: z68.string().trim().min(1).nullable(),
39032
+ addressJson: z68.record(z68.string(), z68.unknown()),
39033
+ locationJson: z68.object({ lat: z68.number(), lng: z68.number() }).nullable()
38743
39034
  })
38744
39035
  ]);
38745
- var appointmentSetupPaymentDraftSchema = z67.object({
38746
- priceType: z67.union([z67.literal("free"), z67.literal("paid")])
38747
- });
38748
- var appointmentSetupServiceAssignmentDraftSchema = z67.discriminatedUnion("kind", [
38749
- z67.object({ kind: z67.literal("all_practitioners") }),
38750
- z67.object({
38751
- kind: z67.literal("selected_practitioners"),
38752
- resourceRefs: z67.array(appointmentSetupRefSchema)
39036
+ var appointmentSetupPaymentDraftSchema = z68.object({
39037
+ priceType: z68.union([z68.literal("free"), z68.literal("paid")])
39038
+ });
39039
+ var appointmentSetupServiceAssignmentDraftSchema = z68.discriminatedUnion("kind", [
39040
+ z68.object({ kind: z68.literal("all_practitioners") }),
39041
+ z68.object({
39042
+ kind: z68.literal("selected_practitioners"),
39043
+ resourceRefs: z68.array(appointmentSetupRefSchema)
38753
39044
  })
38754
39045
  ]);
38755
- var appointmentSetupServiceDraftSchema = z67.object({
39046
+ var appointmentSetupServiceDraftSchema = z68.object({
38756
39047
  ref: appointmentSetupRefSchema,
38757
- title: z67.string().trim().min(1),
38758
- description: z67.string().nullable(),
38759
- durationMinutes: z67.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38760
- prepMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38761
- cleanupMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38762
- priceAmount: z67.number().int().nonnegative().nullable(),
38763
- isActive: z67.boolean(),
38764
- locationType: z67.union([
38765
- z67.literal("virtual"),
38766
- z67.literal("in_person"),
38767
- z67.literal("hybrid")
39048
+ title: z68.string().trim().min(1),
39049
+ description: z68.string().nullable(),
39050
+ durationMinutes: z68.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
39051
+ prepMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
39052
+ cleanupMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
39053
+ priceAmount: z68.number().int().nonnegative().nullable(),
39054
+ isActive: z68.boolean(),
39055
+ locationType: z68.union([
39056
+ z68.literal("virtual"),
39057
+ z68.literal("in_person"),
39058
+ z68.literal("hybrid")
38768
39059
  ]),
38769
39060
  venue: appointmentSetupVenueChoiceSchema,
38770
- timezone: z67.string().trim().min(1).nullable(),
39061
+ timezone: z68.string().trim().min(1).nullable(),
38771
39062
  payment: appointmentSetupPaymentDraftSchema,
38772
39063
  assignment: appointmentSetupServiceAssignmentDraftSchema
38773
39064
  }).superRefine((service, ctx) => {
@@ -38786,49 +39077,49 @@ var appointmentSetupServiceDraftSchema = z67.object({
38786
39077
  });
38787
39078
  }
38788
39079
  });
38789
- var appointmentSetupPractitionerDraftSchema = z67.object({
39080
+ var appointmentSetupPractitionerDraftSchema = z68.object({
38790
39081
  ref: appointmentSetupRefSchema,
38791
- displayName: z67.string().trim().min(1),
38792
- bio: z67.string().nullable(),
38793
- timezone: z67.string().trim().min(1),
38794
- colorHex: z67.string().nullable()
38795
- });
38796
- var appointmentSetupWeeklyWindowDraftSchema = z67.object({
38797
- weekday: z67.number().int().min(0).max(6),
38798
- startTime: z67.string(),
38799
- endTime: z67.string()
38800
- });
38801
- var appointmentSetupStartTimePolicyDraftSchema = z67.discriminatedUnion("kind", [
38802
- z67.object({ kind: z67.literal("automatic_spacing") }),
38803
- z67.object({
38804
- kind: z67.literal("regular_interval"),
38805
- intervalMinutes: z67.union([
38806
- z67.literal(10),
38807
- z67.literal(15),
38808
- z67.literal(20),
38809
- z67.literal(30),
38810
- z67.literal(45),
38811
- z67.literal(60)
39082
+ displayName: z68.string().trim().min(1),
39083
+ bio: z68.string().nullable(),
39084
+ timezone: z68.string().trim().min(1),
39085
+ colorHex: z68.string().nullable()
39086
+ });
39087
+ var appointmentSetupWeeklyWindowDraftSchema = z68.object({
39088
+ weekday: z68.number().int().min(0).max(6),
39089
+ startTime: z68.string(),
39090
+ endTime: z68.string()
39091
+ });
39092
+ var appointmentSetupStartTimePolicyDraftSchema = z68.discriminatedUnion("kind", [
39093
+ z68.object({ kind: z68.literal("automatic_spacing") }),
39094
+ z68.object({
39095
+ kind: z68.literal("regular_interval"),
39096
+ intervalMinutes: z68.union([
39097
+ z68.literal(10),
39098
+ z68.literal(15),
39099
+ z68.literal(20),
39100
+ z68.literal(30),
39101
+ z68.literal(45),
39102
+ z68.literal(60)
38812
39103
  ])
38813
39104
  })
38814
39105
  ]);
38815
- var appointmentSetupAvailabilityDraftSchema = z67.object({
38816
- kind: z67.literal("weekly_windows"),
39106
+ var appointmentSetupAvailabilityDraftSchema = z68.object({
39107
+ kind: z68.literal("weekly_windows"),
38817
39108
  resourceRef: appointmentSetupRefSchema,
38818
39109
  serviceRef: appointmentSetupRefSchema.nullable(),
38819
- windows: z67.array(appointmentSetupWeeklyWindowDraftSchema),
39110
+ windows: z68.array(appointmentSetupWeeklyWindowDraftSchema),
38820
39111
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
38821
39112
  });
38822
39113
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
38823
39114
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
38824
- var appointmentSetupBookingNoticeSchema = z67.object({
38825
- minLeadMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38826
- maxBookingNoticeMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38827
- });
38828
- var applyAppointmentSetupRequestSchema = z67.object({
38829
- services: z67.array(appointmentSetupServiceDraftSchema),
38830
- practitioners: z67.array(appointmentSetupPractitionerDraftSchema),
38831
- availability: z67.array(appointmentSetupAvailabilityDraftSchema),
39115
+ var appointmentSetupBookingNoticeSchema = z68.object({
39116
+ minLeadMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
39117
+ maxBookingNoticeMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
39118
+ });
39119
+ var applyAppointmentSetupRequestSchema = z68.object({
39120
+ services: z68.array(appointmentSetupServiceDraftSchema),
39121
+ practitioners: z68.array(appointmentSetupPractitionerDraftSchema),
39122
+ availability: z68.array(appointmentSetupAvailabilityDraftSchema),
38832
39123
  bookingNotice: appointmentSetupBookingNoticeSchema
38833
39124
  });
38834
39125
 
@@ -38861,24 +39152,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
38861
39152
  ];
38862
39153
 
38863
39154
  // ../api/src/siteBanner.ts
38864
- import { z as z68 } from "zod";
39155
+ import { z as z69 } from "zod";
38865
39156
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
38866
39157
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
38867
39158
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
38868
39159
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
38869
- var siteBannerScopeSchema = z68.enum(SITE_BANNER_SCOPE_VALUES);
38870
- var siteBannerToneSchema = z68.enum(SITE_BANNER_TONE_VALUES);
38871
- var siteBannerBodySchema = z68.unknown().transform(unwrapRichTextValue);
38872
- var siteBannerCtaSchema = z68.object({
38873
- label: z68.string().trim().min(1),
39160
+ var siteBannerScopeSchema = z69.enum(SITE_BANNER_SCOPE_VALUES);
39161
+ var siteBannerToneSchema = z69.enum(SITE_BANNER_TONE_VALUES);
39162
+ var siteBannerBodySchema = z69.unknown().transform(unwrapRichTextValue);
39163
+ var siteBannerCtaSchema = z69.object({
39164
+ label: z69.string().trim().min(1),
38874
39165
  link: linkPayloadSchema
38875
39166
  });
38876
- var siteBannerSettingsSchema = z68.discriminatedUnion("enabled", [
38877
- z68.object({
38878
- enabled: z68.literal(false)
39167
+ var siteBannerSettingsSchema = z69.discriminatedUnion("enabled", [
39168
+ z69.object({
39169
+ enabled: z69.literal(false)
38879
39170
  }),
38880
- z68.object({
38881
- enabled: z68.literal(true),
39171
+ z69.object({
39172
+ enabled: z69.literal(true),
38882
39173
  scope: siteBannerScopeSchema,
38883
39174
  tone: siteBannerToneSchema,
38884
39175
  body: siteBannerBodySchema,
@@ -38892,7 +39183,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
38892
39183
  const analysis = analyzeSiteBannerBody(value.body);
38893
39184
  for (const issue of analysis.issues) {
38894
39185
  ctx.addIssue({
38895
- code: z68.ZodIssueCode.custom,
39186
+ code: z69.ZodIssueCode.custom,
38896
39187
  path: ["body"],
38897
39188
  message: siteBannerBodyIssueMessage(issue)
38898
39189
  });
@@ -39154,89 +39445,76 @@ function unsafeAsNavigationMenuIdentifier(identifier) {
39154
39445
  var MAIN_NAVIGATION_MENU_IDENTIFIER = unsafeAsNavigationMenuIdentifier("main");
39155
39446
 
39156
39447
  // ../api/src/aiPlayground.ts
39157
- import { z as z69 } from "zod";
39158
- var Rfc6902PatchOp = z69.discriminatedUnion("op", [
39448
+ import { z as z70 } from "zod";
39449
+ var Rfc6902PatchOp = z70.discriminatedUnion("op", [
39159
39450
  // Standard RFC-6902 operations
39160
- z69.object({
39161
- op: z69.literal("add"),
39162
- path: z69.string(),
39163
- value: z69.unknown()
39451
+ z70.object({
39452
+ op: z70.literal("add"),
39453
+ path: z70.string(),
39454
+ value: z70.unknown()
39164
39455
  }),
39165
- z69.object({
39166
- op: z69.literal("remove"),
39167
- path: z69.string()
39456
+ z70.object({
39457
+ op: z70.literal("remove"),
39458
+ path: z70.string()
39168
39459
  }),
39169
- z69.object({
39170
- op: z69.literal("replace"),
39171
- path: z69.string(),
39172
- value: z69.unknown()
39460
+ z70.object({
39461
+ op: z70.literal("replace"),
39462
+ path: z70.string(),
39463
+ value: z70.unknown()
39173
39464
  }),
39174
- z69.object({
39175
- op: z69.literal("move"),
39176
- from: z69.string(),
39177
- path: z69.string()
39465
+ z70.object({
39466
+ op: z70.literal("move"),
39467
+ from: z70.string(),
39468
+ path: z70.string()
39178
39469
  }),
39179
- z69.object({
39180
- op: z69.literal("copy"),
39181
- from: z69.string(),
39182
- path: z69.string()
39470
+ z70.object({
39471
+ op: z70.literal("copy"),
39472
+ from: z70.string(),
39473
+ path: z70.string()
39183
39474
  }),
39184
39475
  // Block-level operations (Phase 2)
39185
- z69.object({
39186
- op: z69.literal("add_block"),
39187
- blockKind: z69.string(),
39188
- afterBlockId: z69.string().nullable(),
39189
- content: z69.record(z69.string(), z69.unknown()),
39190
- rationale: z69.string()
39476
+ z70.object({
39477
+ op: z70.literal("add_block"),
39478
+ blockKind: z70.string(),
39479
+ afterBlockId: z70.string().nullable(),
39480
+ content: z70.record(z70.string(), z70.unknown()),
39481
+ rationale: z70.string()
39191
39482
  }),
39192
- z69.object({
39193
- op: z69.literal("delete_block"),
39194
- blockId: z69.string(),
39195
- rationale: z69.string()
39483
+ z70.object({
39484
+ op: z70.literal("delete_block"),
39485
+ blockId: z70.string(),
39486
+ rationale: z70.string()
39196
39487
  }),
39197
- z69.object({
39198
- op: z69.literal("reorder_block"),
39199
- blockId: z69.string(),
39200
- afterBlockId: z69.string().nullable(),
39201
- rationale: z69.string()
39488
+ z70.object({
39489
+ op: z70.literal("reorder_block"),
39490
+ blockId: z70.string(),
39491
+ afterBlockId: z70.string().nullable(),
39492
+ rationale: z70.string()
39202
39493
  })
39203
39494
  ]);
39204
- var PlaygroundProposeRequest = z69.object({
39205
- request: z69.string().min(1).max(2e3)
39495
+ var PlaygroundProposeRequest = z70.object({
39496
+ request: z70.string().min(1).max(2e3)
39206
39497
  });
39207
- var MultiPagePatchEnvelope = z69.object({
39208
- pageId: z69.string(),
39209
- blockId: z69.string().optional(),
39498
+ var MultiPagePatchEnvelope = z70.object({
39499
+ pageId: z70.string(),
39500
+ blockId: z70.string().optional(),
39210
39501
  // Not present for page-level ops
39211
- blockKind: z69.string().optional(),
39212
- blockPurpose: z69.string().optional().nullable(),
39213
- ops: z69.array(Rfc6902PatchOp),
39214
- rationale: z69.string(),
39215
- currentContent: z69.record(z69.string(), z69.unknown()).optional()
39502
+ blockKind: z70.string().optional(),
39503
+ blockPurpose: z70.string().optional().nullable(),
39504
+ ops: z70.array(Rfc6902PatchOp),
39505
+ rationale: z70.string(),
39506
+ currentContent: z70.record(z70.string(), z70.unknown()).optional()
39216
39507
  });
39217
- var MultiPageUpdateResponse = z69.object({
39218
- patches: z69.array(MultiPagePatchEnvelope),
39219
- assistantMessage: z69.string(),
39220
- pagesModified: z69.number(),
39221
- toolCallsUsed: z69.number()
39508
+ var MultiPageUpdateResponse = z70.object({
39509
+ patches: z70.array(MultiPagePatchEnvelope),
39510
+ assistantMessage: z70.string(),
39511
+ pagesModified: z70.number(),
39512
+ toolCallsUsed: z70.number()
39222
39513
  });
39223
39514
 
39224
39515
  // src/data/prefetchBlockData.ts
39225
- var SUPPORTED_LOADER_ENDPOINTS2 = [
39226
- "listPublishedEntries",
39227
- "getPublishedEntryPreview",
39228
- "listPublicEvents",
39229
- "listPublicCourses",
39230
- "listPublicTeamMembers",
39231
- "listPublicProducts",
39232
- "listPublicPasses",
39233
- "listPublicMemberships",
39234
- "getPublicFormById",
39235
- "getPublicBookingServices",
39236
- "getPublicEventDetails"
39237
- ];
39238
39516
  function isSupportedLoaderEndpoint2(endpoint) {
39239
- return SUPPORTED_LOADER_ENDPOINTS2.includes(endpoint);
39517
+ return SUPPORTED_LOADER_ENDPOINTS.includes(endpoint);
39240
39518
  }
39241
39519
  var ENTRY_REF_KEYS = [
39242
39520
  "identifier",
@@ -39301,6 +39579,194 @@ function parseManualEntryRefs(...values) {
39301
39579
  }
39302
39580
  return void 0;
39303
39581
  }
39582
+ var loaderAdapters = {
39583
+ listPublishedEntries: listPublishedEntries2,
39584
+ getPublishedEntryPreview,
39585
+ listPublicEvents,
39586
+ getPublicEventDetails,
39587
+ listPublicCourses,
39588
+ listPublicRouteCandidates,
39589
+ listPublicTeamMembers,
39590
+ listPublicProducts,
39591
+ listPublicPasses,
39592
+ listPublicMemberships,
39593
+ getPublicFormById,
39594
+ getPublicBookingServices
39595
+ };
39596
+ function readStringParam(params, key) {
39597
+ const value = params[key];
39598
+ return value && value.length > 0 ? value : void 0;
39599
+ }
39600
+ function requireStringParam(params, key, endpoint) {
39601
+ const value = readStringParam(params, key);
39602
+ if (!value) {
39603
+ throw new Error(`${endpoint} requires ${key} param`);
39604
+ }
39605
+ return value;
39606
+ }
39607
+ function parsePositiveIntegerParam(params, key) {
39608
+ const value = params[key];
39609
+ const parsed = value === void 0 ? void 0 : Number.parseInt(value, 10);
39610
+ return typeof parsed === "number" && Number.isInteger(parsed) && parsed > 0 ? parsed : void 0;
39611
+ }
39612
+ function parseEntryOrder(value) {
39613
+ if (value === void 0) return void 0;
39614
+ switch (value) {
39615
+ case "order":
39616
+ return "manual";
39617
+ case "newest":
39618
+ case "oldest":
39619
+ case "title":
39620
+ return value;
39621
+ default:
39622
+ return void 0;
39623
+ }
39624
+ }
39625
+ function parsePublicEventKind(value) {
39626
+ if (value === void 0) return void 0;
39627
+ switch (value) {
39628
+ case "all":
39629
+ case "courses":
39630
+ case "events":
39631
+ return value;
39632
+ default:
39633
+ return void 0;
39634
+ }
39635
+ }
39636
+ async function listPublishedEntries2({ client, params }) {
39637
+ const siteId = requireStringParam(params, "siteId", "listPublishedEntries");
39638
+ const type = requireStringParam(params, "type", "listPublishedEntries");
39639
+ const stage = readStringParam(params, "stage");
39640
+ const mode = readStringParam(params, "mode");
39641
+ const parsedEntryRefs = mode === "manual" ? parseManualEntryRefs(params.identifiers, params.entryRefs, params.entryIds) : void 0;
39642
+ if (mode === "manual" && (!parsedEntryRefs || parsedEntryRefs.length === 0)) {
39643
+ return { entries: [] };
39644
+ }
39645
+ if (mode === "manual" && parsedEntryRefs) {
39646
+ return await client.getEntriesByIdentifiers({
39647
+ siteId,
39648
+ contentType: type,
39649
+ identifiers: parsedEntryRefs,
39650
+ preview: stage === "preview"
39651
+ });
39652
+ }
39653
+ return await client.getEntries({
39654
+ siteId,
39655
+ contentType: type,
39656
+ limit: parsePositiveIntegerParam(params, "limit"),
39657
+ order: parseEntryOrder(readStringParam(params, "orderBy")),
39658
+ preview: stage === "preview"
39659
+ });
39660
+ }
39661
+ async function getPublishedEntryPreview({ client, params }) {
39662
+ return await client.getEntry({
39663
+ siteId: requireStringParam(params, "siteId", "getPublishedEntryPreview"),
39664
+ contentType: requireStringParam(params, "type", "getPublishedEntryPreview"),
39665
+ slug: requireStringParam(params, "slug", "getPublishedEntryPreview")
39666
+ });
39667
+ }
39668
+ async function listPublicEvents({ client, params }) {
39669
+ return await client.listPublicEvents({
39670
+ siteId: requireStringParam(params, "siteId", "listPublicEvents"),
39671
+ limit: parsePositiveIntegerParam(params, "limit"),
39672
+ from: readStringParam(params, "from"),
39673
+ to: readStringParam(params, "to"),
39674
+ afterStartsAt: readStringParam(params, "afterStartsAt"),
39675
+ afterId: readStringParam(params, "afterId"),
39676
+ stage: readStringParam(params, "stage"),
39677
+ categoryIds: readStringParam(params, "categoryIds"),
39678
+ venueId: readStringParam(params, "venueId"),
39679
+ staffMemberId: readStringParam(params, "staffMemberId"),
39680
+ kind: parsePublicEventKind(readStringParam(params, "kind")),
39681
+ eventSurface: readStringParam(params, "eventSurface"),
39682
+ eventPresets: readStringParam(params, "eventPresets"),
39683
+ scheduleScope: readStringParam(params, "scheduleScope"),
39684
+ entryId: readStringParam(params, "entryId"),
39685
+ seriesId: readStringParam(params, "seriesId"),
39686
+ includeOccurrenceId: readStringParam(params, "includeOccurrenceId")
39687
+ });
39688
+ }
39689
+ async function getPublicEventDetails({ client, params }) {
39690
+ return await client.getPublicEventDetails({
39691
+ siteId: requireStringParam(params, "siteId", "getPublicEventDetails"),
39692
+ limit: parsePositiveIntegerParam(params, "limit"),
39693
+ from: readStringParam(params, "from"),
39694
+ to: readStringParam(params, "to"),
39695
+ afterStartsAt: readStringParam(params, "afterStartsAt"),
39696
+ afterId: readStringParam(params, "afterId"),
39697
+ stage: readStringParam(params, "stage"),
39698
+ categoryIds: readStringParam(params, "categoryIds"),
39699
+ venueId: readStringParam(params, "venueId"),
39700
+ staffMemberId: readStringParam(params, "staffMemberId"),
39701
+ kind: readStringParam(params, "kind"),
39702
+ eventSurface: readStringParam(params, "eventSurface"),
39703
+ eventPresets: readStringParam(params, "eventPresets"),
39704
+ scheduleScope: readStringParam(params, "scheduleScope"),
39705
+ entryId: readStringParam(params, "entryId"),
39706
+ seriesId: readStringParam(params, "seriesId"),
39707
+ includeOccurrenceId: readStringParam(params, "includeOccurrenceId")
39708
+ });
39709
+ }
39710
+ async function listPublicCourses({ client, params }) {
39711
+ return await client.listPublicCourses({
39712
+ siteId: requireStringParam(params, "siteId", "listPublicCourses"),
39713
+ limit: parsePositiveIntegerParam(params, "limit"),
39714
+ stage: readStringParam(params, "stage")
39715
+ });
39716
+ }
39717
+ async function listPublicRouteCandidates({ client, params }) {
39718
+ const siteId = requireStringParam(params, "siteId", "listPublicRouteCandidates");
39719
+ const response = await client.getAllPublishedRoutes({ siteId });
39720
+ return {
39721
+ routes: response.items.flatMap((item) => {
39722
+ if (!item.path) return [];
39723
+ return [{
39724
+ entityId: item.entityId,
39725
+ path: item.path,
39726
+ title: item.title,
39727
+ kind: item.entityType,
39728
+ contentTypeKey: item.contentTypeKey ?? null
39729
+ }];
39730
+ })
39731
+ };
39732
+ }
39733
+ async function listPublicTeamMembers({ client, params }) {
39734
+ return await client.listPublicTeamMembers({
39735
+ siteId: requireStringParam(params, "siteId", "listPublicTeamMembers"),
39736
+ stage: readStringParam(params, "stage")
39737
+ });
39738
+ }
39739
+ async function listPublicProducts({ client, params }) {
39740
+ return await client.listPublicProducts({
39741
+ siteId: requireStringParam(params, "siteId", "listPublicProducts"),
39742
+ stage: readStringParam(params, "stage") === "preview" ? "preview" : "published",
39743
+ categorySelector: parsePublicProductCategorySelector(params.categorySelector)
39744
+ });
39745
+ }
39746
+ async function listPublicPasses({ client, params }) {
39747
+ return await client.listPublicPasses({
39748
+ siteId: requireStringParam(params, "siteId", "listPublicPasses"),
39749
+ categories: readStringParam(params, "categories")
39750
+ });
39751
+ }
39752
+ async function listPublicMemberships({ client, params }) {
39753
+ return await client.listPublicMemberships({
39754
+ siteId: requireStringParam(params, "siteId", "listPublicMemberships"),
39755
+ categories: readStringParam(params, "categories")
39756
+ });
39757
+ }
39758
+ async function getPublicFormById({ client, params }) {
39759
+ return await client.getPublicFormById({
39760
+ formId: requireStringParam(params, "formId", "getPublicFormById"),
39761
+ siteId: requireStringParam(params, "siteId", "getPublicFormById")
39762
+ });
39763
+ }
39764
+ async function getPublicBookingServices({ client, params }) {
39765
+ return await client.getPublicBookingServices({
39766
+ siteId: requireStringParam(params, "siteId", "getPublicBookingServices"),
39767
+ ids: readStringParam(params, "ids")
39768
+ });
39769
+ }
39304
39770
  async function prefetchBlockData2(page, context, client, options) {
39305
39771
  const { customBlocks } = options ?? {};
39306
39772
  const customBlockMap = new Map(
@@ -39310,189 +39776,11 @@ async function prefetchBlockData2(page, context, client, options) {
39310
39776
  apiClient: async ({ endpoint, params }) => {
39311
39777
  if (!isSupportedLoaderEndpoint2(endpoint)) {
39312
39778
  throw new Error(
39313
- `Unsupported loader endpoint: ${endpoint}. SDK only supports: ${SUPPORTED_LOADER_ENDPOINTS2.join(", ")}`
39779
+ `Unsupported loader endpoint: ${endpoint}. SDK only supports: ${SUPPORTED_LOADER_ENDPOINTS.join(", ")}`
39314
39780
  );
39315
39781
  }
39316
39782
  const resolvedParams = normalizeLoaderParams(endpoint, params, context);
39317
- switch (endpoint) {
39318
- case "listPublishedEntries": {
39319
- const {
39320
- siteId,
39321
- type,
39322
- orderBy,
39323
- limit,
39324
- stage,
39325
- mode,
39326
- entryIds,
39327
- identifiers,
39328
- entryRefs
39329
- } = resolvedParams ?? {};
39330
- if (!siteId || !type) {
39331
- throw new Error("listPublishedEntries requires siteId and type params");
39332
- }
39333
- const parsedLimit = typeof limit === "string" ? Number.parseInt(limit, 10) : typeof limit === "number" ? limit : void 0;
39334
- const order = orderBy === "order" ? "manual" : orderBy === "newest" || orderBy === "oldest" || orderBy === "title" ? orderBy : void 0;
39335
- const parsedEntryRefs = mode === "manual" ? parseManualEntryRefs(identifiers, entryRefs, entryIds) : void 0;
39336
- if (mode === "manual" && (!parsedEntryRefs || parsedEntryRefs.length === 0)) {
39337
- return { entries: [] };
39338
- }
39339
- if (mode === "manual" && parsedEntryRefs) {
39340
- return await client.getEntriesByIdentifiers({
39341
- siteId,
39342
- contentType: type,
39343
- identifiers: parsedEntryRefs,
39344
- preview: stage === "preview"
39345
- });
39346
- }
39347
- return await client.getEntries({
39348
- siteId,
39349
- contentType: type,
39350
- limit: parsedLimit,
39351
- order,
39352
- preview: stage === "preview"
39353
- });
39354
- }
39355
- case "getPublishedEntryPreview": {
39356
- const { siteId, type, slug } = resolvedParams ?? {};
39357
- if (!siteId || !type || !slug) {
39358
- throw new Error("getPublishedEntryPreview requires siteId, type, and slug params");
39359
- }
39360
- return await client.getEntry({ siteId, contentType: type, slug });
39361
- }
39362
- case "listPublicEvents": {
39363
- const {
39364
- siteId,
39365
- limit,
39366
- from,
39367
- to,
39368
- stage,
39369
- categoryIds,
39370
- venueId,
39371
- kind,
39372
- entryId,
39373
- seriesId,
39374
- includeOccurrenceId
39375
- } = resolvedParams ?? {};
39376
- if (!siteId) {
39377
- throw new Error("listPublicEvents requires siteId param");
39378
- }
39379
- const parsedLimit = typeof limit === "string" ? Number.parseInt(limit, 10) : typeof limit === "number" ? limit : void 0;
39380
- return await client.listPublicEvents({
39381
- siteId,
39382
- limit: parsedLimit,
39383
- from,
39384
- to,
39385
- stage,
39386
- categoryIds: typeof categoryIds === "string" ? categoryIds : void 0,
39387
- venueId: typeof venueId === "string" ? venueId : void 0,
39388
- kind: kind === "all" || kind === "courses" || kind === "events" ? kind : void 0,
39389
- entryId: typeof entryId === "string" ? entryId : void 0,
39390
- seriesId: typeof seriesId === "string" ? seriesId : void 0,
39391
- includeOccurrenceId: typeof includeOccurrenceId === "string" ? includeOccurrenceId : void 0
39392
- });
39393
- }
39394
- case "getPublicEventDetails": {
39395
- const {
39396
- siteId,
39397
- limit,
39398
- from,
39399
- to,
39400
- afterStartsAt,
39401
- afterId,
39402
- stage,
39403
- categoryIds,
39404
- venueId,
39405
- staffMemberId,
39406
- kind,
39407
- entryId,
39408
- seriesId,
39409
- includeOccurrenceId
39410
- } = resolvedParams ?? {};
39411
- if (!siteId) {
39412
- throw new Error("getPublicEventDetails requires siteId param");
39413
- }
39414
- const parsedLimit = typeof limit === "string" ? Number.parseInt(limit, 10) : typeof limit === "number" ? limit : void 0;
39415
- return await client.getPublicEventDetails({
39416
- siteId,
39417
- limit: parsedLimit,
39418
- from: typeof from === "string" ? from : void 0,
39419
- to: typeof to === "string" ? to : void 0,
39420
- afterStartsAt: typeof afterStartsAt === "string" ? afterStartsAt : void 0,
39421
- afterId: typeof afterId === "string" ? afterId : void 0,
39422
- stage: typeof stage === "string" ? stage : void 0,
39423
- categoryIds: typeof categoryIds === "string" ? categoryIds : void 0,
39424
- venueId: typeof venueId === "string" ? venueId : void 0,
39425
- staffMemberId: typeof staffMemberId === "string" ? staffMemberId : void 0,
39426
- kind: typeof kind === "string" ? kind : void 0,
39427
- entryId: typeof entryId === "string" ? entryId : void 0,
39428
- seriesId: typeof seriesId === "string" ? seriesId : void 0,
39429
- includeOccurrenceId: typeof includeOccurrenceId === "string" ? includeOccurrenceId : void 0
39430
- });
39431
- }
39432
- case "listPublicCourses": {
39433
- const { siteId, limit, stage } = resolvedParams ?? {};
39434
- if (!siteId) {
39435
- throw new Error("listPublicCourses requires siteId param");
39436
- }
39437
- const parsedLimit = typeof limit === "string" ? Number.parseInt(limit, 10) : typeof limit === "number" ? limit : void 0;
39438
- return await client.listPublicCourses({ siteId, limit: parsedLimit, stage });
39439
- }
39440
- case "listPublicTeamMembers": {
39441
- const { siteId, stage } = resolvedParams ?? {};
39442
- if (!siteId) {
39443
- throw new Error("listPublicTeamMembers requires siteId param");
39444
- }
39445
- return await client.listPublicTeamMembers({
39446
- siteId,
39447
- stage: typeof stage === "string" ? stage : void 0
39448
- });
39449
- }
39450
- case "listPublicProducts": {
39451
- const { siteId, stage, categorySelector } = resolvedParams ?? {};
39452
- if (!siteId) {
39453
- throw new Error("listPublicProducts requires siteId param");
39454
- }
39455
- return await client.listPublicProducts({
39456
- siteId,
39457
- stage: stage === "preview" ? "preview" : "published",
39458
- categorySelector: parsePublicProductCategorySelector(categorySelector)
39459
- });
39460
- }
39461
- case "getPublicFormById": {
39462
- const { formId, siteId } = resolvedParams ?? {};
39463
- if (!formId) {
39464
- throw new Error("getPublicFormById requires formId param");
39465
- }
39466
- if (!siteId) {
39467
- throw new Error("getPublicFormById requires siteId param");
39468
- }
39469
- return await client.getPublicFormById({ formId, siteId });
39470
- }
39471
- case "getPublicBookingServices": {
39472
- const { siteId, ids } = resolvedParams ?? {};
39473
- if (!siteId) {
39474
- throw new Error("getPublicBookingServices requires siteId param");
39475
- }
39476
- return await client.getPublicBookingServices({ siteId, ids });
39477
- }
39478
- case "listPublicPasses": {
39479
- const { siteId, categories } = resolvedParams ?? {};
39480
- if (!siteId) {
39481
- throw new Error("listPublicPasses requires siteId param");
39482
- }
39483
- return await client.listPublicPasses({ siteId, categories });
39484
- }
39485
- case "listPublicMemberships": {
39486
- const { siteId, categories } = resolvedParams ?? {};
39487
- if (!siteId) {
39488
- throw new Error("listPublicMemberships requires siteId param");
39489
- }
39490
- return await client.listPublicMemberships({ siteId, categories });
39491
- }
39492
- default: {
39493
- throw new Error("Unhandled endpoint");
39494
- }
39495
- }
39783
+ return await loaderAdapters[endpoint]({ client, params: resolvedParams });
39496
39784
  },
39497
39785
  isValidEndpoint: isSupportedLoaderEndpoint2,
39498
39786
  onError: (error, { block, loader }) => {