@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
@@ -778,6 +778,64 @@ var init_endpoints = __esm({
778
778
  auth: "user",
779
779
  responseKind: "json"
780
780
  },
781
+ listMailchimpAudiences: {
782
+ path: "/sites/{siteId}/integrations/mailchimp/audiences",
783
+ method: "GET",
784
+ tags: [TAG_TEMPLATES.site],
785
+ auth: "user",
786
+ responseKind: "json",
787
+ errors: ["auth:forbidden", "server:internal_error"]
788
+ },
789
+ getMailchimpSignupSyncHealth: {
790
+ path: "/sites/{siteId}/integrations/mailchimp/signup-sync-health",
791
+ method: "GET",
792
+ tags: [TAG_TEMPLATES.site],
793
+ auth: "user",
794
+ responseKind: "json",
795
+ errors: ["auth:forbidden", "server:internal_error"]
796
+ },
797
+ getMailchimpConnection: {
798
+ path: "/sites/{siteId}/integrations/mailchimp/connection",
799
+ method: "GET",
800
+ tags: [TAG_TEMPLATES.site],
801
+ auth: "user",
802
+ responseKind: "json",
803
+ errors: ["auth:forbidden", "server:internal_error"]
804
+ },
805
+ startMailchimpOAuth: {
806
+ path: "/sites/{siteId}/integrations/mailchimp/oauth/start",
807
+ method: "POST",
808
+ tags: [TAG_TEMPLATES.site],
809
+ auth: "user",
810
+ responseKind: "json",
811
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
812
+ errors: ["auth:forbidden", "validation:invalid_input", "server:internal_error"]
813
+ },
814
+ refreshMailchimpAudiences: {
815
+ path: "/sites/{siteId}/integrations/mailchimp/audiences/refresh",
816
+ method: "POST",
817
+ tags: [TAG_TEMPLATES.site],
818
+ auth: "user",
819
+ responseKind: "json",
820
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
821
+ errors: ["auth:forbidden", "server:internal_error"]
822
+ },
823
+ disconnectMailchimp: {
824
+ path: "/sites/{siteId}/integrations/mailchimp/disconnect",
825
+ method: "POST",
826
+ tags: [TAG_TEMPLATES.site],
827
+ auth: "user",
828
+ responseKind: "json",
829
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
830
+ errors: ["auth:forbidden", "server:internal_error"]
831
+ },
832
+ mailchimpOAuthCallback: {
833
+ path: "/auth/mailchimp/callback",
834
+ method: "GET",
835
+ auth: "public",
836
+ responseKind: "void",
837
+ errors: []
838
+ },
781
839
  createNewsletterList: {
782
840
  path: "/sites/{siteId}/newsletter/lists",
783
841
  method: "POST",
@@ -1779,6 +1837,24 @@ var init_endpoints = __esm({
1779
1837
  auth: "user",
1780
1838
  responseKind: "json"
1781
1839
  },
1840
+ resendSiteInvitation: {
1841
+ path: "/sites/{siteId}/members/invitations/{invitationId}/resend",
1842
+ method: "POST",
1843
+ errors: [
1844
+ "auth:forbidden",
1845
+ "resource:not_found",
1846
+ "validation:invalid_input",
1847
+ "external:service_error",
1848
+ "server:internal_error"
1849
+ ],
1850
+ tags: [
1851
+ "site-{siteId}",
1852
+ "site-members-{siteId}",
1853
+ "site-invite-{invitationId}"
1854
+ ],
1855
+ auth: "user",
1856
+ responseKind: "json"
1857
+ },
1782
1858
  transferSiteOwnership: {
1783
1859
  path: "/sites/{siteId}/members/transfer-ownership",
1784
1860
  method: "POST",
@@ -3002,20 +3078,6 @@ var init_endpoints = __esm({
3002
3078
  auth: "user",
3003
3079
  responseKind: "json"
3004
3080
  },
3005
- instagramUploadZip: {
3006
- path: "/instagram/upload-zip",
3007
- method: "POST",
3008
- tags: ["instagram-import"],
3009
- auth: "user",
3010
- responseKind: "json"
3011
- },
3012
- createInstagramZipUploadUrl: {
3013
- path: "/instagram/upload-zip-url",
3014
- method: "POST",
3015
- tags: ["instagram-import"],
3016
- auth: "user",
3017
- responseKind: "json"
3018
- },
3019
3081
  getAnalyticsReport: {
3020
3082
  path: "/sites/{siteId}/analytics/report",
3021
3083
  method: "GET",
@@ -6484,6 +6546,59 @@ var init_collections = __esm({
6484
6546
  }
6485
6547
  });
6486
6548
 
6549
+ // ../core/src/assert-never.ts
6550
+ function assertNever(value, message = "Unexpected variant") {
6551
+ throw new Error(`${message}: ${String(value)}`);
6552
+ }
6553
+ var init_assert_never = __esm({
6554
+ "../core/src/assert-never.ts"() {
6555
+ "use strict";
6556
+ }
6557
+ });
6558
+
6559
+ // ../core/src/currency-format.ts
6560
+ function resolveCurrencyLocale(currencyCode, override) {
6561
+ return override ?? CURRENCY_LOCALE_BY_CODE[currencyCode] ?? "en";
6562
+ }
6563
+ function formatCurrencyAmount(amountCents, currency, options) {
6564
+ const currencyCode = currency.toUpperCase();
6565
+ const locale = resolveCurrencyLocale(currencyCode, options?.locale);
6566
+ try {
6567
+ const exactFormatter = new Intl.NumberFormat(locale, {
6568
+ style: "currency",
6569
+ currency: currencyCode
6570
+ });
6571
+ const fractionDigits = options?.decimals === "auto" ? {
6572
+ minimumFractionDigits: 0,
6573
+ maximumFractionDigits: exactFormatter.resolvedOptions().maximumFractionDigits
6574
+ } : {};
6575
+ return new Intl.NumberFormat(locale, {
6576
+ style: "currency",
6577
+ currency: currencyCode,
6578
+ ...fractionDigits
6579
+ }).format(amountCents / 100);
6580
+ } catch {
6581
+ return `${(amountCents / 100).toFixed(2)} ${currencyCode}`;
6582
+ }
6583
+ }
6584
+ var CURRENCY_LOCALE_BY_CODE;
6585
+ var init_currency_format = __esm({
6586
+ "../core/src/currency-format.ts"() {
6587
+ "use strict";
6588
+ CURRENCY_LOCALE_BY_CODE = {
6589
+ USD: "en-US",
6590
+ GBP: "en-GB",
6591
+ EUR: "de-DE",
6592
+ AUD: "en-AU",
6593
+ CAD: "en-CA",
6594
+ NZD: "en-NZ",
6595
+ JPY: "ja-JP",
6596
+ CNY: "zh-CN",
6597
+ CHF: "de-CH"
6598
+ };
6599
+ }
6600
+ });
6601
+
6487
6602
  // ../core/src/event-pricing.ts
6488
6603
  function publicEventPricingType(pricing) {
6489
6604
  switch (pricing.kind) {
@@ -6504,6 +6619,7 @@ function isFreePublicEventPriceDisplay(display) {
6504
6619
  return display.display.kind === "free";
6505
6620
  case "exact":
6506
6621
  case "from":
6622
+ case "range":
6507
6623
  case "mixed":
6508
6624
  case "unavailable":
6509
6625
  return false;
@@ -6728,16 +6844,6 @@ var init_business_address = __esm({
6728
6844
  }
6729
6845
  });
6730
6846
 
6731
- // ../core/src/assert-never.ts
6732
- function assertNever(value, message = "Unexpected variant") {
6733
- throw new Error(`${message}: ${String(value)}`);
6734
- }
6735
- var init_assert_never = __esm({
6736
- "../core/src/assert-never.ts"() {
6737
- "use strict";
6738
- }
6739
- });
6740
-
6741
6847
  // ../core/src/narrow-result.ts
6742
6848
  var init_narrow_result = __esm({
6743
6849
  "../core/src/narrow-result.ts"() {
@@ -6857,13 +6963,6 @@ var init_csv_types = __esm({
6857
6963
  }
6858
6964
  });
6859
6965
 
6860
- // ../core/src/currency-format.ts
6861
- var init_currency_format = __esm({
6862
- "../core/src/currency-format.ts"() {
6863
- "use strict";
6864
- }
6865
- });
6866
-
6867
6966
  // ../core/src/email-format.ts
6868
6967
  var init_email_format = __esm({
6869
6968
  "../core/src/email-format.ts"() {
@@ -6899,6 +6998,13 @@ var init_stable_json = __esm({
6899
6998
  }
6900
6999
  });
6901
7000
 
7001
+ // ../core/src/site-route-target.ts
7002
+ var init_site_route_target = __esm({
7003
+ "../core/src/site-route-target.ts"() {
7004
+ "use strict";
7005
+ }
7006
+ });
7007
+
6902
7008
  // ../core/src/index.ts
6903
7009
  var init_src = __esm({
6904
7010
  "../core/src/index.ts"() {
@@ -6946,6 +7052,7 @@ var init_src = __esm({
6946
7052
  init_string();
6947
7053
  init_uuid();
6948
7054
  init_stable_json();
7055
+ init_site_route_target();
6949
7056
  }
6950
7057
  });
6951
7058
 
@@ -8675,6 +8782,284 @@ var init_ids = __esm({
8675
8782
  }
8676
8783
  });
8677
8784
 
8785
+ // ../blocks/src/system/icons/svg.tsx
8786
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8787
+ function createIcon(displayName, children) {
8788
+ const Icon = ({
8789
+ size = "1em",
8790
+ strokeWidth = 2,
8791
+ title,
8792
+ className,
8793
+ focusable = false,
8794
+ role,
8795
+ ...props2
8796
+ }) => /* @__PURE__ */ jsxs(
8797
+ "svg",
8798
+ {
8799
+ "aria-hidden": title ? void 0 : true,
8800
+ className,
8801
+ "data-rb-icon": displayName.replace(/Icon$/, ""),
8802
+ fill: "none",
8803
+ focusable,
8804
+ height: size,
8805
+ role: title ? role ?? "img" : role,
8806
+ stroke: "currentColor",
8807
+ strokeLinecap: "round",
8808
+ strokeLinejoin: "round",
8809
+ strokeWidth,
8810
+ viewBox: "0 0 24 24",
8811
+ width: size,
8812
+ xmlns: "http://www.w3.org/2000/svg",
8813
+ ...props2,
8814
+ children: [
8815
+ title ? /* @__PURE__ */ jsx("title", { children: title }) : null,
8816
+ children
8817
+ ]
8818
+ }
8819
+ );
8820
+ Icon.displayName = displayName;
8821
+ return Icon;
8822
+ }
8823
+ var ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, AwardIcon, BadgeCheckIcon, BookOpenIcon, BrainIcon, BriefcaseBusinessIcon, CalendarIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CircleMinusIcon, CirclePlusIcon, ClockIcon, CompassIcon, DownloadIcon, ExternalLinkIcon, FileArchiveIcon, FileAudioIcon, FileSpreadsheetIcon, FileTextIcon, Flower2Icon, GlobeIcon, GraduationCapIcon, HandHeartIcon, HeartIcon, HeartHandshakeIcon, HomeIcon, InfoIcon, LeafIcon, LightbulbIcon, LockIcon, MailIcon, MapPinIcon, MessageCircleIcon, MinusIcon, PackageIcon, PhoneIcon, PlayIcon, PlusIcon, ShieldIcon, ShoppingBagIcon, ShoppingCartIcon, SmileIcon, SparklesIcon, SproutIcon, StarIcon, TargetIcon, UploadIcon, UserRoundCheckIcon, UsersIcon, WrenchIcon, XIcon;
8824
+ var init_svg = __esm({
8825
+ "../blocks/src/system/icons/svg.tsx"() {
8826
+ "use strict";
8827
+ ArrowDownIcon = createIcon("ArrowDownIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8828
+ /* @__PURE__ */ jsx("path", { d: "M12 5v14" }),
8829
+ /* @__PURE__ */ jsx("path", { d: "m6 13 6 6 6-6" })
8830
+ ] }));
8831
+ ArrowLeftIcon = createIcon("ArrowLeftIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8832
+ /* @__PURE__ */ jsx("path", { d: "M19 12H5" }),
8833
+ /* @__PURE__ */ jsx("path", { d: "m11 6-6 6 6 6" })
8834
+ ] }));
8835
+ ArrowRightIcon = createIcon("ArrowRightIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8836
+ /* @__PURE__ */ jsx("path", { d: "M5 12h14" }),
8837
+ /* @__PURE__ */ jsx("path", { d: "m13 6 6 6-6 6" })
8838
+ ] }));
8839
+ AwardIcon = createIcon("AwardIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8840
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "8", r: "4" }),
8841
+ /* @__PURE__ */ jsx("path", { d: "m8.5 12.5-1.5 7 5-3 5 3-1.5-7" })
8842
+ ] }));
8843
+ BadgeCheckIcon = createIcon("BadgeCheckIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8844
+ /* @__PURE__ */ jsx("path", { d: "m8 3 4-1 4 1 3 3 1 4-1 4-3 3-4 1-4-1-3-3-1-4 1-4Z" }),
8845
+ /* @__PURE__ */ jsx("path", { d: "m8.5 11.5 2.5 2.5 4.5-5" })
8846
+ ] }));
8847
+ BookOpenIcon = createIcon("BookOpenIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8848
+ /* @__PURE__ */ jsx("path", { d: "M4 5.5A3 3 0 0 1 7 4h13v15H7a3 3 0 0 0-3 1.5Z" }),
8849
+ /* @__PURE__ */ jsx("path", { d: "M4 5.5V20" }),
8850
+ /* @__PURE__ */ jsx("path", { d: "M12 4v15" })
8851
+ ] }));
8852
+ BrainIcon = createIcon("BrainIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8853
+ /* @__PURE__ */ jsx("path", { d: "M9 4a4 4 0 0 0-4 4 4 4 0 0 0 0 8 4 4 0 0 0 4 4" }),
8854
+ /* @__PURE__ */ jsx("path", { d: "M15 4a4 4 0 0 1 4 4 4 4 0 0 1 0 8 4 4 0 0 1-4 4" }),
8855
+ /* @__PURE__ */ jsx("path", { d: "M9 4v16" }),
8856
+ /* @__PURE__ */ jsx("path", { d: "M15 4v16" }),
8857
+ /* @__PURE__ */ jsx("path", { d: "M9 8h6" }),
8858
+ /* @__PURE__ */ jsx("path", { d: "M9 14h6" })
8859
+ ] }));
8860
+ BriefcaseBusinessIcon = createIcon("BriefcaseBusinessIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8861
+ /* @__PURE__ */ jsx("path", { d: "M9 7V5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2" }),
8862
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "7", width: "18", height: "13", rx: "2" }),
8863
+ /* @__PURE__ */ jsx("path", { d: "M3 12h18" }),
8864
+ /* @__PURE__ */ jsx("path", { d: "M9 12v2" }),
8865
+ /* @__PURE__ */ jsx("path", { d: "M15 12v2" })
8866
+ ] }));
8867
+ CalendarIcon = createIcon("CalendarIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8868
+ /* @__PURE__ */ jsx("path", { d: "M8 3v4" }),
8869
+ /* @__PURE__ */ jsx("path", { d: "M16 3v4" }),
8870
+ /* @__PURE__ */ jsx("rect", { x: "4", y: "5", width: "16", height: "16", rx: "2" }),
8871
+ /* @__PURE__ */ jsx("path", { d: "M4 10h16" })
8872
+ ] }));
8873
+ CheckIcon = createIcon("CheckIcon", /* @__PURE__ */ jsx("path", { d: "m5 12 4 4L19 6" }));
8874
+ ChevronDownIcon = createIcon("ChevronDownIcon", /* @__PURE__ */ jsx("path", { d: "m6 9 6 6 6-6" }));
8875
+ ChevronLeftIcon = createIcon("ChevronLeftIcon", /* @__PURE__ */ jsx("path", { d: "m15 18-6-6 6-6" }));
8876
+ ChevronRightIcon = createIcon("ChevronRightIcon", /* @__PURE__ */ jsx("path", { d: "m9 18 6-6-6-6" }));
8877
+ ChevronUpIcon = createIcon("ChevronUpIcon", /* @__PURE__ */ jsx("path", { d: "m18 15-6-6-6 6" }));
8878
+ CircleMinusIcon = createIcon("CircleMinusIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8879
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "9" }),
8880
+ /* @__PURE__ */ jsx("path", { d: "M8 12h8" })
8881
+ ] }));
8882
+ CirclePlusIcon = createIcon("CirclePlusIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8883
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "9" }),
8884
+ /* @__PURE__ */ jsx("path", { d: "M8 12h8" }),
8885
+ /* @__PURE__ */ jsx("path", { d: "M12 8v8" })
8886
+ ] }));
8887
+ ClockIcon = createIcon("ClockIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8888
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "9" }),
8889
+ /* @__PURE__ */ jsx("path", { d: "M12 7v5l3 2" })
8890
+ ] }));
8891
+ CompassIcon = createIcon("CompassIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8892
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "9" }),
8893
+ /* @__PURE__ */ jsx("path", { d: "m15 9-2 6-4 2 2-6Z" })
8894
+ ] }));
8895
+ DownloadIcon = createIcon("DownloadIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8896
+ /* @__PURE__ */ jsx("path", { d: "M12 3v12" }),
8897
+ /* @__PURE__ */ jsx("path", { d: "m7 10 5 5 5-5" }),
8898
+ /* @__PURE__ */ jsx("path", { d: "M5 21h14" })
8899
+ ] }));
8900
+ ExternalLinkIcon = createIcon("ExternalLinkIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8901
+ /* @__PURE__ */ jsx("path", { d: "M14 4h6v6" }),
8902
+ /* @__PURE__ */ jsx("path", { d: "m10 14 10-10" }),
8903
+ /* @__PURE__ */ jsx("path", { d: "M20 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h5" })
8904
+ ] }));
8905
+ FileArchiveIcon = createIcon("FileArchiveIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8906
+ /* @__PURE__ */ jsx("path", { d: "M14 2H7a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7Z" }),
8907
+ /* @__PURE__ */ jsx("path", { d: "M14 2v5h5" }),
8908
+ /* @__PURE__ */ jsx("path", { d: "M10 7h2" }),
8909
+ /* @__PURE__ */ jsx("path", { d: "M10 11h2" }),
8910
+ /* @__PURE__ */ jsx("path", { d: "M10 15h4v4h-4Z" })
8911
+ ] }));
8912
+ FileAudioIcon = createIcon("FileAudioIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8913
+ /* @__PURE__ */ jsx("path", { d: "M14 2H7a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7Z" }),
8914
+ /* @__PURE__ */ jsx("path", { d: "M14 2v5h5" }),
8915
+ /* @__PURE__ */ jsx("path", { d: "M10 16V10l5-2v6" }),
8916
+ /* @__PURE__ */ jsx("circle", { cx: "9", cy: "17", r: "1.5" }),
8917
+ /* @__PURE__ */ jsx("circle", { cx: "15", cy: "15", r: "1.5" })
8918
+ ] }));
8919
+ FileSpreadsheetIcon = createIcon("FileSpreadsheetIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8920
+ /* @__PURE__ */ jsx("path", { d: "M14 2H7a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7Z" }),
8921
+ /* @__PURE__ */ jsx("path", { d: "M14 2v5h5" }),
8922
+ /* @__PURE__ */ jsx("path", { d: "M8 12h8" }),
8923
+ /* @__PURE__ */ jsx("path", { d: "M8 16h8" }),
8924
+ /* @__PURE__ */ jsx("path", { d: "M12 10v8" })
8925
+ ] }));
8926
+ FileTextIcon = createIcon("FileTextIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8927
+ /* @__PURE__ */ jsx("path", { d: "M14 2H7a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7Z" }),
8928
+ /* @__PURE__ */ jsx("path", { d: "M14 2v5h5" }),
8929
+ /* @__PURE__ */ jsx("path", { d: "M9 13h6" }),
8930
+ /* @__PURE__ */ jsx("path", { d: "M9 17h6" })
8931
+ ] }));
8932
+ Flower2Icon = createIcon("Flower2Icon", /* @__PURE__ */ jsxs(Fragment, { children: [
8933
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "2" }),
8934
+ /* @__PURE__ */ jsx("path", { d: "M12 10C8 4 16 4 12 10Z" }),
8935
+ /* @__PURE__ */ jsx("path", { d: "M14 12c6-4 6 4 0 0Z" }),
8936
+ /* @__PURE__ */ jsx("path", { d: "M12 14c4 6-4 6 0 0Z" }),
8937
+ /* @__PURE__ */ jsx("path", { d: "M10 12c-6 4-6-4 0 0Z" })
8938
+ ] }));
8939
+ GlobeIcon = createIcon("GlobeIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8940
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "9" }),
8941
+ /* @__PURE__ */ jsx("path", { d: "M3 12h18" }),
8942
+ /* @__PURE__ */ jsx("path", { d: "M12 3a14 14 0 0 1 0 18" }),
8943
+ /* @__PURE__ */ jsx("path", { d: "M12 3a14 14 0 0 0 0 18" })
8944
+ ] }));
8945
+ GraduationCapIcon = createIcon("GraduationCapIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8946
+ /* @__PURE__ */ jsx("path", { d: "m3 8 9-4 9 4-9 4Z" }),
8947
+ /* @__PURE__ */ jsx("path", { d: "M7 10v5c3 3 7 3 10 0v-5" }),
8948
+ /* @__PURE__ */ jsx("path", { d: "M21 8v6" })
8949
+ ] }));
8950
+ HandHeartIcon = createIcon("HandHeartIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8951
+ /* @__PURE__ */ jsx("path", { d: "M3 15h4l4 4h5l5-5" }),
8952
+ /* @__PURE__ */ jsx("path", { d: "M7 15l3-3h4a2 2 0 0 1 2 2" }),
8953
+ /* @__PURE__ */ jsx("path", { d: "M12 8c-2-2-5 1-2 4l2 2 2-2c3-3 0-6-2-4Z" })
8954
+ ] }));
8955
+ HeartIcon = createIcon("HeartIcon", /* @__PURE__ */ jsx("path", { d: "M12 21s-8-5-8-11a5 5 0 0 1 8-4 5 5 0 0 1 8 4c0 6-8 11-8 11Z" }));
8956
+ HeartHandshakeIcon = createIcon("HeartHandshakeIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8957
+ /* @__PURE__ */ jsx("path", { d: "M12 21s-8-5-8-11a5 5 0 0 1 8-4 5 5 0 0 1 8 4c0 6-8 11-8 11Z" }),
8958
+ /* @__PURE__ */ jsx("path", { d: "m8 12 2 2 2-2 2 2 2-2" })
8959
+ ] }));
8960
+ HomeIcon = createIcon("HomeIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8961
+ /* @__PURE__ */ jsx("path", { d: "m3 11 9-8 9 8" }),
8962
+ /* @__PURE__ */ jsx("path", { d: "M5 10v10h14V10" }),
8963
+ /* @__PURE__ */ jsx("path", { d: "M9 20v-6h6v6" })
8964
+ ] }));
8965
+ InfoIcon = createIcon("InfoIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8966
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "9" }),
8967
+ /* @__PURE__ */ jsx("path", { d: "M12 11v6" }),
8968
+ /* @__PURE__ */ jsx("path", { d: "M12 7h.01" })
8969
+ ] }));
8970
+ LeafIcon = createIcon("LeafIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8971
+ /* @__PURE__ */ jsx("path", { d: "M5 20C5 10 12 4 21 4c0 9-6 16-16 16Z" }),
8972
+ /* @__PURE__ */ jsx("path", { d: "M5 20c4-5 8-8 13-11" })
8973
+ ] }));
8974
+ LightbulbIcon = createIcon("LightbulbIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8975
+ /* @__PURE__ */ jsx("path", { d: "M9 18h6" }),
8976
+ /* @__PURE__ */ jsx("path", { d: "M10 22h4" }),
8977
+ /* @__PURE__ */ jsx("path", { d: "M8 14a6 6 0 1 1 8 0c-1 1-1 2-1 4H9c0-2 0-3-1-4Z" })
8978
+ ] }));
8979
+ LockIcon = createIcon("LockIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8980
+ /* @__PURE__ */ jsx("rect", { x: "5", y: "10", width: "14", height: "10", rx: "2" }),
8981
+ /* @__PURE__ */ jsx("path", { d: "M8 10V7a4 4 0 0 1 8 0v3" })
8982
+ ] }));
8983
+ MailIcon = createIcon("MailIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8984
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "5", width: "18", height: "14", rx: "2" }),
8985
+ /* @__PURE__ */ jsx("path", { d: "m3 7 9 6 9-6" })
8986
+ ] }));
8987
+ MapPinIcon = createIcon("MapPinIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8988
+ /* @__PURE__ */ jsx("path", { d: "M12 21s7-5 7-12a7 7 0 0 0-14 0c0 7 7 12 7 12Z" }),
8989
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "9", r: "2.5" })
8990
+ ] }));
8991
+ MessageCircleIcon = createIcon("MessageCircleIcon", /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx("path", { d: "M21 11.5a8.5 8.5 0 0 1-12.6 7.4L3 20l1.1-5.3A8.5 8.5 0 1 1 21 11.5Z" }) }));
8992
+ MinusIcon = createIcon("MinusIcon", /* @__PURE__ */ jsx("path", { d: "M5 12h14" }));
8993
+ PackageIcon = createIcon("PackageIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
8994
+ /* @__PURE__ */ jsx("path", { d: "m12 3 8 4.5v9L12 21l-8-4.5v-9Z" }),
8995
+ /* @__PURE__ */ jsx("path", { d: "M12 12 4 7.5" }),
8996
+ /* @__PURE__ */ jsx("path", { d: "m12 12 8-4.5" }),
8997
+ /* @__PURE__ */ jsx("path", { d: "M12 12v9" })
8998
+ ] }));
8999
+ PhoneIcon = createIcon("PhoneIcon", /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx("path", { d: "M22 16.9v3a2 2 0 0 1-2.2 2A19 19 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7l.4 2.5a2 2 0 0 1-.6 1.8L7.7 9.2a13 13 0 0 0 7.1 7.1l1.2-1.2a2 2 0 0 1 1.8-.6l2.5.4a2 2 0 0 1 1.7 2Z" }) }));
9000
+ PlayIcon = createIcon("PlayIcon", /* @__PURE__ */ jsx("path", { d: "m8 5 11 7-11 7Z" }));
9001
+ PlusIcon = createIcon("PlusIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
9002
+ /* @__PURE__ */ jsx("path", { d: "M12 5v14" }),
9003
+ /* @__PURE__ */ jsx("path", { d: "M5 12h14" })
9004
+ ] }));
9005
+ ShieldIcon = createIcon("ShieldIcon", /* @__PURE__ */ jsx("path", { d: "M12 22s8-4 8-11V5l-8-3-8 3v6c0 7 8 11 8 11Z" }));
9006
+ ShoppingBagIcon = createIcon("ShoppingBagIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
9007
+ /* @__PURE__ */ jsx("path", { d: "M6 8h12l1 13H5Z" }),
9008
+ /* @__PURE__ */ jsx("path", { d: "M9 8a3 3 0 0 1 6 0" })
9009
+ ] }));
9010
+ ShoppingCartIcon = createIcon("ShoppingCartIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
9011
+ /* @__PURE__ */ jsx("circle", { cx: "9", cy: "20", r: "1" }),
9012
+ /* @__PURE__ */ jsx("circle", { cx: "18", cy: "20", r: "1" }),
9013
+ /* @__PURE__ */ jsx("path", { d: "M2 3h3l3 12h10l3-8H7" })
9014
+ ] }));
9015
+ SmileIcon = createIcon("SmileIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
9016
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "9" }),
9017
+ /* @__PURE__ */ jsx("path", { d: "M8 14s1.5 2 4 2 4-2 4-2" }),
9018
+ /* @__PURE__ */ jsx("path", { d: "M9 9h.01" }),
9019
+ /* @__PURE__ */ jsx("path", { d: "M15 9h.01" })
9020
+ ] }));
9021
+ SparklesIcon = createIcon("SparklesIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
9022
+ /* @__PURE__ */ jsx("path", { d: "m12 3 2 5 5 2-5 2-2 5-2-5-5-2 5-2Z" }),
9023
+ /* @__PURE__ */ jsx("path", { d: "m19 15 .8 2.2L22 18l-2.2.8L19 21l-.8-2.2L16 18l2.2-.8Z" })
9024
+ ] }));
9025
+ SproutIcon = createIcon("SproutIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
9026
+ /* @__PURE__ */ jsx("path", { d: "M12 21V10" }),
9027
+ /* @__PURE__ */ jsx("path", { d: "M12 10C8 5 4 6 3 10c4 1 7 0 9 0Z" }),
9028
+ /* @__PURE__ */ jsx("path", { d: "M12 11c4-5 8-4 9 0-4 1-7 0-9 0Z" })
9029
+ ] }));
9030
+ StarIcon = createIcon("StarIcon", /* @__PURE__ */ jsx("path", { d: "m12 3 2.8 5.7 6.2.9-4.5 4.4 1.1 6.2L12 17.2 6.4 20.2 7.5 14 3 9.6l6.2-.9Z" }));
9031
+ TargetIcon = createIcon("TargetIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
9032
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "9" }),
9033
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "5" }),
9034
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "1" })
9035
+ ] }));
9036
+ UploadIcon = createIcon("UploadIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
9037
+ /* @__PURE__ */ jsx("path", { d: "M12 21V9" }),
9038
+ /* @__PURE__ */ jsx("path", { d: "m7 14 5-5 5 5" }),
9039
+ /* @__PURE__ */ jsx("path", { d: "M5 3h14" })
9040
+ ] }));
9041
+ UserRoundCheckIcon = createIcon("UserRoundCheckIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
9042
+ /* @__PURE__ */ jsx("circle", { cx: "10", cy: "8", r: "4" }),
9043
+ /* @__PURE__ */ jsx("path", { d: "M3 21a7 7 0 0 1 11.5-5.3" }),
9044
+ /* @__PURE__ */ jsx("path", { d: "m15 19 2 2 4-5" })
9045
+ ] }));
9046
+ UsersIcon = createIcon("UsersIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
9047
+ /* @__PURE__ */ jsx("circle", { cx: "9", cy: "8", r: "4" }),
9048
+ /* @__PURE__ */ jsx("path", { d: "M2 21a7 7 0 0 1 14 0" }),
9049
+ /* @__PURE__ */ jsx("path", { d: "M17 11a4 4 0 0 0 0-7" }),
9050
+ /* @__PURE__ */ jsx("path", { d: "M22 21a7 7 0 0 0-5-6.7" })
9051
+ ] }));
9052
+ WrenchIcon = createIcon("WrenchIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
9053
+ /* @__PURE__ */ jsx("path", { d: "M14.7 6.3A5 5 0 0 0 7 12.6L3.5 16a2.1 2.1 0 0 0 3 3L10 15.5A5 5 0 0 0 16.7 9Z" }),
9054
+ /* @__PURE__ */ jsx("path", { d: "m15 5 4 4" })
9055
+ ] }));
9056
+ XIcon = createIcon("XIcon", /* @__PURE__ */ jsxs(Fragment, { children: [
9057
+ /* @__PURE__ */ jsx("path", { d: "M18 6 6 18" }),
9058
+ /* @__PURE__ */ jsx("path", { d: "m6 6 12 12" })
9059
+ ] }));
9060
+ }
9061
+ });
9062
+
8678
9063
  // ../blocks/src/system/icons/semantic.ts
8679
9064
  var featurePreset, SEMANTIC_ICON_DEFINITIONS, SEMANTIC_ICON_OPTIONS;
8680
9065
  var init_semantic = __esm({
@@ -10488,7 +10873,7 @@ var init_expandPalette = __esm({
10488
10873
  });
10489
10874
 
10490
10875
  // ../theme-core/src/mock-themes/components/swatch.tsx
10491
- import { jsx, jsxs } from "react/jsx-runtime";
10876
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
10492
10877
  var init_swatch = __esm({
10493
10878
  "../theme-core/src/mock-themes/components/swatch.tsx"() {
10494
10879
  "use strict";
@@ -10496,7 +10881,7 @@ var init_swatch = __esm({
10496
10881
  });
10497
10882
 
10498
10883
  // ../theme-core/src/mock-themes/components/PaletteCard.tsx
10499
- import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
10884
+ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
10500
10885
  var init_PaletteCard = __esm({
10501
10886
  "../theme-core/src/mock-themes/components/PaletteCard.tsx"() {
10502
10887
  "use strict";
@@ -25501,15 +25886,53 @@ var init_newsletterForm = __esm({
25501
25886
  title: "Newsletter Form",
25502
25887
  description: "Newsletter subscription form with preset field configurations.",
25503
25888
  fields: [
25889
+ {
25890
+ id: "destinationProvider",
25891
+ type: "select",
25892
+ label: "Send signups to",
25893
+ description: "Choose where new subscribers from this form should go.",
25894
+ defaultValue: "riverbank",
25895
+ required: true,
25896
+ ui: { intent: "behavior" },
25897
+ options: [
25898
+ { value: "riverbank", label: "Riverbank newsletter" }
25899
+ ]
25900
+ },
25504
25901
  {
25505
25902
  id: "listId",
25506
25903
  type: "reference",
25507
25904
  label: "Newsletter list",
25508
25905
  description: "Select the list new subscribers should be added to.",
25509
- required: true,
25906
+ required: false,
25510
25907
  referenceKind: "newsletterList",
25511
25908
  allowManualEntry: false,
25512
- ui: { intent: "behavior" }
25909
+ ui: {
25910
+ intent: "behavior",
25911
+ visibleWhen: { field: "destinationProvider", equals: "riverbank" }
25912
+ }
25913
+ },
25914
+ {
25915
+ id: "mailchimpAudienceId",
25916
+ type: "reference",
25917
+ label: "Mailchimp audience",
25918
+ description: "Choose the Mailchimp audience for new subscribers.",
25919
+ required: false,
25920
+ referenceKind: "mailchimpAudience",
25921
+ allowManualEntry: false,
25922
+ ui: {
25923
+ intent: "behavior",
25924
+ visibleWhen: { field: "destinationProvider", equals: "mailchimp" }
25925
+ }
25926
+ },
25927
+ {
25928
+ id: "mailchimpTags",
25929
+ type: "text",
25930
+ label: "Mailchimp tags",
25931
+ description: "Optional tags to apply in Mailchimp, separated by commas or semicolons.",
25932
+ ui: {
25933
+ intent: "behavior",
25934
+ visibleWhen: { field: "destinationProvider", equals: "mailchimp" }
25935
+ }
25513
25936
  },
25514
25937
  {
25515
25938
  id: "preset",
@@ -25556,13 +25979,18 @@ var init_newsletterForm = __esm({
25556
25979
  id: "tags",
25557
25980
  type: "text",
25558
25981
  label: "Tags (optional)",
25559
- description: "Optional tags to apply on subscribe (comma or semicolon separated)."
25982
+ description: "Optional tags to apply on subscribe (comma or semicolon separated).",
25983
+ ui: {
25984
+ intent: "behavior",
25985
+ visibleWhen: { field: "destinationProvider", equals: "riverbank" }
25986
+ }
25560
25987
  }
25561
25988
  ],
25562
25989
  layout: [
25563
25990
  el(
25564
25991
  "newsletter-form",
25565
25992
  withApiBindings({
25993
+ destinationProvider: { $bind: { from: "destinationProvider" } },
25566
25994
  listId: { $bind: { from: "listId" } },
25567
25995
  preset: { $bind: { from: "preset" } },
25568
25996
  includePhone: { $bind: { from: "includePhone" } },
@@ -31912,317 +32340,367 @@ var init_media4 = __esm({
31912
32340
  }
31913
32341
  });
31914
32342
 
31915
- // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
32343
+ // ../blocks/src/system/manifest/richTextSchema.ts
31916
32344
  import { z as z43 } from "zod";
32345
+ var TipTapMarkSchema, TipTapNodeSchema, RichTextValueSchema, RichTextDocSchema;
32346
+ var init_richTextSchema = __esm({
32347
+ "../blocks/src/system/manifest/richTextSchema.ts"() {
32348
+ "use strict";
32349
+ TipTapMarkSchema = z43.object({
32350
+ type: z43.string(),
32351
+ attrs: z43.record(z43.string(), z43.unknown()).optional()
32352
+ });
32353
+ TipTapNodeSchema = z43.lazy(
32354
+ () => z43.object({
32355
+ type: z43.string(),
32356
+ content: z43.array(TipTapNodeSchema).optional(),
32357
+ text: z43.string().optional(),
32358
+ attrs: z43.record(z43.string(), z43.unknown()).optional(),
32359
+ marks: z43.array(TipTapMarkSchema).optional()
32360
+ })
32361
+ );
32362
+ RichTextValueSchema = z43.union([
32363
+ // Canonical: TipTap document directly
32364
+ TipTapNodeSchema,
32365
+ // Legacy (read-tolerance only): wrapped in { doc: {...} }
32366
+ z43.object({
32367
+ doc: TipTapNodeSchema
32368
+ })
32369
+ ]);
32370
+ RichTextDocSchema = z43.object({
32371
+ type: z43.literal("doc"),
32372
+ content: z43.array(TipTapNodeSchema)
32373
+ });
32374
+ }
32375
+ });
32376
+
32377
+ // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
32378
+ import { z as z44 } from "zod";
31917
32379
  var bookingDepositRefundPolicySchema, bookingInstalmentPlanSchema, bookingFlexibleBalanceDueDateRuleSchema, bookingFlexibleBalanceConfigSchema, blockBookingPaymentCollectionOptionSchema, blockBookingPaymentTermsSchema;
31918
32380
  var init_bookingPaymentTerms = __esm({
31919
32381
  "../blocks/src/system/blocks/shared/bookingPaymentTerms.ts"() {
31920
32382
  "use strict";
31921
- bookingDepositRefundPolicySchema = z43.enum([
32383
+ bookingDepositRefundPolicySchema = z44.enum([
31922
32384
  "refundable",
31923
32385
  "non_refundable"
31924
32386
  ]);
31925
- bookingInstalmentPlanSchema = z43.union([
31926
- z43.object({
31927
- kind: z43.literal("deposit_plus_one_remainder"),
31928
- depositAmountCents: z43.number().int().min(0),
32387
+ bookingInstalmentPlanSchema = z44.union([
32388
+ z44.object({
32389
+ kind: z44.literal("deposit_plus_one_remainder"),
32390
+ depositAmountCents: z44.number().int().min(0),
31929
32391
  depositRefundability: bookingDepositRefundPolicySchema,
31930
- remainderDueCount: z43.number().int().positive(),
31931
- intervalUnit: z43.enum(["day", "week", "month"])
32392
+ remainderDueCount: z44.number().int().positive(),
32393
+ intervalUnit: z44.enum(["day", "week", "month"])
31932
32394
  }),
31933
- z43.object({
31934
- kind: z43.literal("deposit_plus_scheduled_instalments"),
31935
- depositAmountCents: z43.number().int().min(0),
32395
+ z44.object({
32396
+ kind: z44.literal("deposit_plus_scheduled_instalments"),
32397
+ depositAmountCents: z44.number().int().min(0),
31936
32398
  depositRefundability: bookingDepositRefundPolicySchema,
31937
- instalmentCount: z43.number().int().positive(),
31938
- intervalCount: z43.number().int().positive(),
31939
- intervalUnit: z43.enum(["day", "week", "month"])
32399
+ instalmentCount: z44.number().int().positive(),
32400
+ intervalCount: z44.number().int().positive(),
32401
+ intervalUnit: z44.enum(["day", "week", "month"])
31940
32402
  }),
31941
- z43.object({
31942
- kind: z43.literal("equal_scheduled_instalments"),
31943
- instalmentCount: z43.number().int().positive(),
31944
- intervalCount: z43.number().int().positive(),
31945
- intervalUnit: z43.enum(["day", "week", "month"])
32403
+ z44.object({
32404
+ kind: z44.literal("equal_scheduled_instalments"),
32405
+ instalmentCount: z44.number().int().positive(),
32406
+ intervalCount: z44.number().int().positive(),
32407
+ intervalUnit: z44.enum(["day", "week", "month"])
31946
32408
  })
31947
32409
  ]);
31948
- bookingFlexibleBalanceDueDateRuleSchema = z43.union([
31949
- z43.object({
31950
- kind: z43.literal("relative_to_start_date"),
31951
- daysBeforeStart: z43.number().int().positive()
32410
+ bookingFlexibleBalanceDueDateRuleSchema = z44.union([
32411
+ z44.object({
32412
+ kind: z44.literal("relative_to_start_date"),
32413
+ daysBeforeStart: z44.number().int().positive()
31952
32414
  }),
31953
- z43.object({
31954
- kind: z43.literal("fixed_calendar_date"),
31955
- dueAt: z43.string().datetime()
32415
+ z44.object({
32416
+ kind: z44.literal("fixed_calendar_date"),
32417
+ dueAt: z44.string().datetime()
31956
32418
  })
31957
32419
  ]);
31958
- bookingFlexibleBalanceConfigSchema = z43.object({
31959
- upfrontAmountCents: z43.number().int().min(0),
32420
+ bookingFlexibleBalanceConfigSchema = z44.object({
32421
+ upfrontAmountCents: z44.number().int().min(0),
31960
32422
  dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
31961
32423
  depositRefundability: bookingDepositRefundPolicySchema
31962
32424
  });
31963
- blockBookingPaymentCollectionOptionSchema = z43.union([
31964
- z43.object({
31965
- kind: z43.literal("upfront")
32425
+ blockBookingPaymentCollectionOptionSchema = z44.union([
32426
+ z44.object({
32427
+ kind: z44.literal("upfront")
31966
32428
  }),
31967
- z43.object({
31968
- kind: z43.literal("deferred_manual")
32429
+ z44.object({
32430
+ kind: z44.literal("deferred_manual")
31969
32431
  }),
31970
- z43.object({
31971
- kind: z43.literal("instalment_plan"),
32432
+ z44.object({
32433
+ kind: z44.literal("instalment_plan"),
31972
32434
  plan: bookingInstalmentPlanSchema
31973
32435
  }),
31974
- z43.object({
31975
- kind: z43.literal("flexible_balance"),
32436
+ z44.object({
32437
+ kind: z44.literal("flexible_balance"),
31976
32438
  config: bookingFlexibleBalanceConfigSchema
31977
32439
  })
31978
32440
  ]);
31979
- blockBookingPaymentTermsSchema = z43.object({
31980
- allowedOptions: z43.array(blockBookingPaymentCollectionOptionSchema).min(1)
32441
+ blockBookingPaymentTermsSchema = z44.object({
32442
+ allowedOptions: z44.array(blockBookingPaymentCollectionOptionSchema).min(1)
31981
32443
  });
31982
32444
  }
31983
32445
  });
31984
32446
 
31985
32447
  // ../blocks/src/system/blocks/courses/shared/schemas.ts
31986
- import { z as z44 } from "zod";
32448
+ import { z as z45 } from "zod";
31987
32449
  var courseVenueSchema, courseSessionSchema, courseTeamMemberSummarySchema, coursePricingOptionSchema, coursePricingSchema, publicCourseSchema, publicCoursesArraySchema;
31988
32450
  var init_schemas = __esm({
31989
32451
  "../blocks/src/system/blocks/courses/shared/schemas.ts"() {
31990
32452
  "use strict";
31991
32453
  init_bookingPaymentTerms();
31992
- courseVenueSchema = z44.object({
31993
- id: z44.string(),
31994
- name: z44.string(),
31995
- address: z44.string().nullable()
31996
- });
31997
- courseSessionSchema = z44.object({
31998
- id: z44.string(),
31999
- startsAt: z44.string(),
32000
- endsAt: z44.string(),
32001
- timeZone: z44.string(),
32002
- capacityOverride: z44.number().nullable().optional(),
32003
- overrides: z44.record(z44.string(), z44.unknown()).nullable().optional()
32004
- });
32005
- courseTeamMemberSummarySchema = z44.object({
32006
- id: z44.string(),
32007
- name: z44.string(),
32008
- roleLabel: z44.string().nullable(),
32009
- summary: z44.string().nullable(),
32010
- profilePath: z44.string().nullable()
32011
- });
32012
- coursePricingOptionSchema = z44.object({
32013
- id: z44.string(),
32014
- name: z44.string(),
32015
- description: z44.string().nullable(),
32016
- priceAmount: z44.number(),
32017
- isActive: z44.boolean(),
32018
- sortOrder: z44.number(),
32019
- capacityLimit: z44.number().nullable(),
32020
- saleStartsAt: z44.string().nullable(),
32021
- saleEndsAt: z44.string().nullable(),
32022
- attendanceScope: z44.enum(["in_person", "online", "both"]).nullable().optional()
32023
- });
32024
- coursePricingSchema = z44.object({
32025
- bookingRequirement: z44.enum(["none", "required"]),
32026
- pricingStrategy: z44.enum(["free", "single", "tiered"]),
32027
- currency: z44.string(),
32028
- singlePriceAmount: z44.number().nullable(),
32454
+ courseVenueSchema = z45.object({
32455
+ id: z45.string(),
32456
+ name: z45.string(),
32457
+ address: z45.string().nullable()
32458
+ });
32459
+ courseSessionSchema = z45.object({
32460
+ id: z45.string(),
32461
+ startsAt: z45.string(),
32462
+ endsAt: z45.string(),
32463
+ timeZone: z45.string(),
32464
+ capacityOverride: z45.number().nullable().optional(),
32465
+ overrides: z45.record(z45.string(), z45.unknown()).nullable().optional()
32466
+ });
32467
+ courseTeamMemberSummarySchema = z45.object({
32468
+ id: z45.string(),
32469
+ name: z45.string(),
32470
+ roleLabel: z45.string().nullable(),
32471
+ summary: z45.string().nullable(),
32472
+ profilePath: z45.string().nullable()
32473
+ });
32474
+ coursePricingOptionSchema = z45.object({
32475
+ id: z45.string(),
32476
+ name: z45.string(),
32477
+ description: z45.string().nullable(),
32478
+ priceAmount: z45.number(),
32479
+ isActive: z45.boolean(),
32480
+ sortOrder: z45.number(),
32481
+ capacityLimit: z45.number().nullable(),
32482
+ saleStartsAt: z45.string().nullable(),
32483
+ saleEndsAt: z45.string().nullable(),
32484
+ attendanceScope: z45.enum(["in_person", "online", "both"]).nullable().optional()
32485
+ });
32486
+ coursePricingSchema = z45.object({
32487
+ bookingRequirement: z45.enum(["none", "required"]),
32488
+ pricingStrategy: z45.enum(["free", "single", "tiered"]),
32489
+ currency: z45.string(),
32490
+ singlePriceAmount: z45.number().nullable(),
32029
32491
  paymentTerms: blockBookingPaymentTermsSchema,
32030
- options: z44.array(coursePricingOptionSchema)
32031
- });
32032
- publicCourseSchema = z44.object({
32033
- id: z44.string(),
32034
- title: z44.string(),
32035
- slug: z44.string(),
32036
- description: z44.unknown().nullable(),
32037
- teamMembers: z44.array(courseTeamMemberSummarySchema).optional(),
32038
- enrollmentOpen: z44.boolean(),
32492
+ options: z45.array(coursePricingOptionSchema)
32493
+ });
32494
+ publicCourseSchema = z45.object({
32495
+ id: z45.string(),
32496
+ title: z45.string(),
32497
+ slug: z45.string(),
32498
+ description: z45.unknown().nullable(),
32499
+ teamMembers: z45.array(courseTeamMemberSummarySchema).optional(),
32500
+ enrollmentOpen: z45.boolean(),
32039
32501
  pricing: coursePricingSchema.optional(),
32040
- priceCents: z44.number().nullable(),
32041
- currency: z44.string(),
32502
+ priceCents: z45.number().nullable(),
32503
+ currency: z45.string(),
32042
32504
  paymentTerms: blockBookingPaymentTermsSchema,
32043
- enrollmentCapacity: z44.number().nullable(),
32044
- acceptsMemberships: z44.boolean(),
32045
- status: z44.enum(["active", "draft", "cancelled"]),
32046
- sessionsCount: z44.number(),
32047
- enrolledCount: z44.number(),
32048
- availableSpots: z44.number().nullable(),
32049
- sessions: z44.array(courseSessionSchema),
32505
+ enrollmentCapacity: z45.number().nullable(),
32506
+ acceptsMemberships: z45.boolean(),
32507
+ status: z45.enum(["active", "draft", "cancelled"]),
32508
+ sessionsCount: z45.number(),
32509
+ enrolledCount: z45.number(),
32510
+ availableSpots: z45.number().nullable(),
32511
+ sessions: z45.array(courseSessionSchema),
32050
32512
  venue: courseVenueSchema.nullable(),
32051
- contentEntryId: z44.string().nullable()
32513
+ contentEntryId: z45.string().nullable()
32052
32514
  });
32053
- publicCoursesArraySchema = z44.array(publicCourseSchema);
32515
+ publicCoursesArraySchema = z45.array(publicCourseSchema);
32054
32516
  }
32055
32517
  });
32056
32518
 
32057
32519
  // ../blocks/src/system/blocks/events/shared/schemas.ts
32058
- import { z as z45 } from "zod";
32520
+ import { z as z46 } from "zod";
32059
32521
  var eventPresetSchema, eventScheduleScopeSchema, eventDestinationModeSchema, eventVenueSchema, eventCategorySchema, pricingTypeSchema, accessRestrictionSchema, eventPricingModeSchema, publicCoursePriceDisplaySchema, publicEventPriceDisplaySchema, publicEventTicketTypePriceDisplaySchema, publicEventAttendanceModeSchema, publicEventAttendanceModeAvailabilitySchema, publicEventTicketTypeAvailabilitySchema, publicEventTicketTypeSchema, publicEventPricingSchema, publicTeamMemberSummarySchema, publicEventSchema, publicEventsArraySchema;
32060
32522
  var init_schemas2 = __esm({
32061
32523
  "../blocks/src/system/blocks/events/shared/schemas.ts"() {
32062
32524
  "use strict";
32063
32525
  init_media4();
32526
+ init_richTextSchema();
32064
32527
  init_bookingPaymentTerms();
32065
32528
  init_schemas();
32066
- eventPresetSchema = z45.enum(["event", "class", "workshop", "retreat", "performance"]);
32067
- eventScheduleScopeSchema = z45.enum(["recurring", "oneOff"]);
32068
- eventDestinationModeSchema = z45.enum(["cms-managed", "system-managed"]);
32069
- eventVenueSchema = z45.object({
32070
- id: z45.string(),
32071
- name: z45.string(),
32072
- address: z45.string().nullable(),
32073
- location: z45.object({
32074
- lat: z45.number(),
32075
- lng: z45.number()
32529
+ eventPresetSchema = z46.enum(["event", "class", "workshop", "retreat", "performance"]);
32530
+ eventScheduleScopeSchema = z46.enum(["recurring", "oneOff"]);
32531
+ eventDestinationModeSchema = z46.enum(["cms-managed", "system-managed"]);
32532
+ eventVenueSchema = z46.object({
32533
+ id: z46.string(),
32534
+ name: z46.string(),
32535
+ address: z46.string().nullable(),
32536
+ location: z46.object({
32537
+ lat: z46.number(),
32538
+ lng: z46.number()
32076
32539
  }).nullable()
32077
32540
  });
32078
- eventCategorySchema = z45.object({
32079
- id: z45.string(),
32080
- name: z45.string(),
32081
- color: z45.string().nullable()
32082
- });
32083
- pricingTypeSchema = z45.enum(["free", "paid"]);
32084
- accessRestrictionSchema = z45.enum(["none", "category"]);
32085
- eventPricingModeSchema = z45.enum(["single", "ticket_types"]);
32086
- publicCoursePriceDisplaySchema = z45.discriminatedUnion("kind", [
32087
- z45.object({ kind: z45.literal("free"), currency: z45.string() }),
32088
- z45.object({ kind: z45.literal("exact"), amount: z45.number(), currency: z45.string() }),
32089
- z45.object({ kind: z45.literal("from"), amount: z45.number(), currency: z45.string() }),
32090
- z45.object({ kind: z45.literal("unavailable"), currency: z45.string() })
32541
+ eventCategorySchema = z46.object({
32542
+ id: z46.string(),
32543
+ name: z46.string(),
32544
+ color: z46.string().nullable()
32545
+ });
32546
+ pricingTypeSchema = z46.enum(["free", "paid"]);
32547
+ accessRestrictionSchema = z46.enum(["none", "category"]);
32548
+ eventPricingModeSchema = z46.enum(["single", "ticket_types"]);
32549
+ publicCoursePriceDisplaySchema = z46.discriminatedUnion("kind", [
32550
+ z46.object({ kind: z46.literal("free"), currency: z46.string() }),
32551
+ z46.object({ kind: z46.literal("exact"), amount: z46.number(), currency: z46.string() }),
32552
+ z46.object({ kind: z46.literal("from"), amount: z46.number(), currency: z46.string() }),
32553
+ z46.object({ kind: z46.literal("unavailable"), currency: z46.string() })
32091
32554
  ]);
32092
- publicEventPriceDisplaySchema = z45.discriminatedUnion("kind", [
32093
- z45.object({ kind: z45.literal("free"), currency: z45.string() }),
32094
- z45.object({ kind: z45.literal("exact"), amount: z45.number(), currency: z45.string() }),
32095
- z45.object({ kind: z45.literal("from"), amount: z45.number(), currency: z45.string() }),
32096
- z45.object({ kind: z45.literal("mixed"), paidFromAmount: z45.number(), currency: z45.string() }),
32097
- z45.object({ kind: z45.literal("unavailable"), currency: z45.string() }),
32098
- z45.object({ kind: z45.literal("course"), display: publicCoursePriceDisplaySchema })
32555
+ publicEventPriceDisplaySchema = z46.discriminatedUnion("kind", [
32556
+ z46.object({ kind: z46.literal("free"), currency: z46.string() }),
32557
+ z46.object({ kind: z46.literal("exact"), amount: z46.number(), currency: z46.string() }),
32558
+ z46.object({ kind: z46.literal("from"), amount: z46.number(), currency: z46.string() }),
32559
+ z46.object({ kind: z46.literal("range"), minAmount: z46.number(), maxAmount: z46.number(), currency: z46.string() }),
32560
+ z46.object({
32561
+ kind: z46.literal("mixed"),
32562
+ paidFromAmount: z46.number(),
32563
+ paidToAmount: z46.number(),
32564
+ currency: z46.string()
32565
+ }),
32566
+ z46.object({ kind: z46.literal("unavailable"), currency: z46.string() }),
32567
+ z46.object({ kind: z46.literal("course"), display: publicCoursePriceDisplaySchema })
32099
32568
  ]);
32100
- publicEventTicketTypePriceDisplaySchema = z45.union([
32101
- z45.object({ kind: z45.literal("free"), currency: z45.string() }),
32102
- z45.object({ kind: z45.literal("exact"), amount: z45.number(), currency: z45.string() }),
32103
- z45.object({ kind: z45.literal("from"), amount: z45.number(), currency: z45.string() }),
32104
- z45.object({ kind: z45.literal("mixed"), paidFromAmount: z45.number(), currency: z45.string() }),
32105
- z45.object({ kind: z45.literal("unavailable"), currency: z45.string() })
32569
+ publicEventTicketTypePriceDisplaySchema = z46.union([
32570
+ z46.object({ kind: z46.literal("free"), currency: z46.string() }),
32571
+ z46.object({ kind: z46.literal("exact"), amount: z46.number(), currency: z46.string() }),
32572
+ z46.object({ kind: z46.literal("from"), amount: z46.number(), currency: z46.string() }),
32573
+ z46.object({ kind: z46.literal("range"), minAmount: z46.number(), maxAmount: z46.number(), currency: z46.string() }),
32574
+ z46.object({
32575
+ kind: z46.literal("mixed"),
32576
+ paidFromAmount: z46.number(),
32577
+ paidToAmount: z46.number(),
32578
+ currency: z46.string()
32579
+ }),
32580
+ z46.object({ kind: z46.literal("unavailable"), currency: z46.string() })
32106
32581
  ]);
32107
- publicEventAttendanceModeSchema = z45.enum(["in_person", "online"]);
32108
- publicEventAttendanceModeAvailabilitySchema = z45.object({
32582
+ publicEventAttendanceModeSchema = z46.enum(["in_person", "online"]);
32583
+ publicEventAttendanceModeAvailabilitySchema = z46.object({
32109
32584
  mode: publicEventAttendanceModeSchema,
32110
- capacity: z45.number().nullable(),
32111
- registeredCount: z45.number(),
32112
- availableSpots: z45.number().nullable(),
32113
- waitlistEnabled: z45.boolean()
32114
- });
32115
- publicEventTicketTypeAvailabilitySchema = z45.union([
32116
- z45.object({
32117
- kind: z45.literal("available"),
32118
- remainingCapacity: z45.number().nullable()
32585
+ capacity: z46.number().nullable(),
32586
+ registeredCount: z46.number(),
32587
+ availableSpots: z46.number().nullable(),
32588
+ waitlistEnabled: z46.boolean()
32589
+ });
32590
+ publicEventTicketTypeAvailabilitySchema = z46.union([
32591
+ z46.object({
32592
+ kind: z46.literal("available"),
32593
+ remainingCapacity: z46.number().nullable()
32119
32594
  }),
32120
- z45.object({
32121
- kind: z45.literal("unavailable"),
32122
- reason: z45.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
32123
- remainingCapacity: z45.number().nullable()
32595
+ z46.object({
32596
+ kind: z46.literal("unavailable"),
32597
+ reason: z46.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
32598
+ remainingCapacity: z46.number().nullable()
32124
32599
  })
32125
32600
  ]);
32126
- publicEventTicketTypeSchema = z45.object({
32127
- id: z45.string(),
32128
- siteId: z45.string(),
32129
- eventSeriesId: z45.string(),
32130
- name: z45.string(),
32131
- description: z45.string().nullable(),
32132
- priceAmount: z45.number(),
32133
- isActive: z45.boolean(),
32134
- sortOrder: z45.number(),
32135
- capacityMode: z45.enum(["limited", "unlimited"]),
32136
- capacityLimit: z45.number().nullable(),
32137
- attendanceScope: z45.enum(["in_person", "online", "both"]).optional(),
32138
- saleStartsAt: z45.string().nullable(),
32139
- saleEndsAt: z45.string().nullable(),
32601
+ publicEventTicketTypeSchema = z46.object({
32602
+ id: z46.string(),
32603
+ siteId: z46.string(),
32604
+ eventSeriesId: z46.string(),
32605
+ name: z46.string(),
32606
+ description: z46.string().nullable(),
32607
+ priceAmount: z46.number(),
32608
+ isActive: z46.boolean(),
32609
+ sortOrder: z46.number(),
32610
+ capacityMode: z46.enum(["limited", "unlimited"]),
32611
+ capacityLimit: z46.number().nullable(),
32612
+ attendanceScope: z46.enum(["in_person", "online", "both"]).optional(),
32613
+ saleStartsAt: z46.string().nullable(),
32614
+ saleEndsAt: z46.string().nullable(),
32140
32615
  availability: publicEventTicketTypeAvailabilitySchema,
32141
- createdAt: z45.string(),
32142
- updatedAt: z45.string()
32143
- });
32144
- publicEventPricingSchema = z45.discriminatedUnion("kind", [
32145
- z45.object({
32146
- kind: z45.literal("drop_in"),
32147
- currency: z45.string(),
32148
- display: z45.object({ kind: z45.literal("free"), currency: z45.string() })
32616
+ createdAt: z46.string(),
32617
+ updatedAt: z46.string()
32618
+ });
32619
+ publicEventPricingSchema = z46.discriminatedUnion("kind", [
32620
+ z46.object({
32621
+ kind: z46.literal("drop_in"),
32622
+ currency: z46.string(),
32623
+ display: z46.object({ kind: z46.literal("free"), currency: z46.string() })
32149
32624
  }),
32150
- z45.object({
32151
- kind: z45.literal("free_registration"),
32152
- currency: z45.string(),
32153
- display: z45.object({ kind: z45.literal("free"), currency: z45.string() })
32625
+ z46.object({
32626
+ kind: z46.literal("free_registration"),
32627
+ currency: z46.string(),
32628
+ display: z46.object({ kind: z46.literal("free"), currency: z46.string() })
32154
32629
  }),
32155
- z45.object({
32156
- kind: z45.literal("single_paid"),
32157
- amount: z45.number(),
32158
- currency: z45.string(),
32159
- display: z45.object({ kind: z45.literal("exact"), amount: z45.number(), currency: z45.string() })
32630
+ z46.object({
32631
+ kind: z46.literal("single_paid"),
32632
+ amount: z46.number(),
32633
+ currency: z46.string(),
32634
+ display: z46.object({ kind: z46.literal("exact"), amount: z46.number(), currency: z46.string() })
32160
32635
  }),
32161
- z45.object({
32162
- kind: z45.literal("ticket_types"),
32163
- currency: z45.string(),
32164
- ticketTypes: z45.array(publicEventTicketTypeSchema),
32636
+ z46.object({
32637
+ kind: z46.literal("ticket_types"),
32638
+ currency: z46.string(),
32639
+ ticketTypes: z46.array(publicEventTicketTypeSchema),
32165
32640
  display: publicEventTicketTypePriceDisplaySchema
32166
32641
  }),
32167
- z45.object({
32168
- kind: z45.literal("course"),
32169
- display: z45.object({ kind: z45.literal("course"), display: publicCoursePriceDisplaySchema })
32642
+ z46.object({
32643
+ kind: z46.literal("course"),
32644
+ display: z46.object({ kind: z46.literal("course"), display: publicCoursePriceDisplaySchema })
32170
32645
  })
32171
32646
  ]);
32172
- publicTeamMemberSummarySchema = z45.object({
32173
- id: z45.string(),
32174
- name: z45.string(),
32175
- roleLabel: z45.string().nullable(),
32176
- summary: z45.string().nullable(),
32177
- profilePath: z45.string().nullable()
32647
+ publicTeamMemberSummarySchema = z46.object({
32648
+ id: z46.string(),
32649
+ name: z46.string(),
32650
+ roleLabel: z46.string().nullable(),
32651
+ summary: z46.string().nullable(),
32652
+ profilePath: z46.string().nullable()
32178
32653
  });
32179
- publicEventSchema = z45.object({
32180
- kind: z45.enum(["event", "course_session"]).optional(),
32654
+ publicEventSchema = z46.object({
32655
+ kind: z46.enum(["event", "course_session"]).optional(),
32181
32656
  eventPreset: eventPresetSchema.optional(),
32182
32657
  eventDestinationMode: eventDestinationModeSchema.optional(),
32183
32658
  scheduleScope: eventScheduleScopeSchema.optional(),
32184
- id: z45.string(),
32185
- occurrenceId: z45.string(),
32186
- seriesId: z45.string(),
32187
- title: z45.string(),
32188
- description: z45.string().nullable(),
32189
- presentation: z45.object({
32190
- cardTitleOverride: z45.string().nullable().optional(),
32191
- summary: z45.string().nullable().optional(),
32659
+ id: z46.string(),
32660
+ occurrenceId: z46.string(),
32661
+ seriesId: z46.string(),
32662
+ title: z46.string(),
32663
+ description: z46.string().nullable(),
32664
+ content: z46.object({
32665
+ body: RichTextDocSchema.nullable().optional()
32666
+ }).optional(),
32667
+ presentation: z46.object({
32668
+ cardTitleOverride: z46.string().nullable().optional(),
32669
+ summary: z46.string().nullable().optional(),
32192
32670
  image: mediaSchema2.nullable().optional()
32193
32671
  }).optional(),
32194
- slug: z45.string(),
32195
- path: z45.string(),
32196
- requiresRegistration: z45.boolean(),
32197
- deliveryMode: z45.enum(["in_person", "online", "hybrid"]),
32198
- attendanceModes: z45.array(publicEventAttendanceModeAvailabilitySchema),
32199
- startsAt: z45.string(),
32200
- endsAt: z45.string(),
32201
- capacity: z45.number().nullable(),
32202
- registeredCount: z45.number(),
32203
- availableSpots: z45.number().nullable(),
32204
- waitlistEnabled: z45.boolean(),
32672
+ slug: z46.string(),
32673
+ path: z46.string(),
32674
+ requiresRegistration: z46.boolean(),
32675
+ deliveryMode: z46.enum(["in_person", "online", "hybrid"]),
32676
+ attendanceModes: z46.array(publicEventAttendanceModeAvailabilitySchema),
32677
+ startsAt: z46.string(),
32678
+ endsAt: z46.string(),
32679
+ capacity: z46.number().nullable(),
32680
+ registeredCount: z46.number(),
32681
+ availableSpots: z46.number().nullable(),
32682
+ waitlistEnabled: z46.boolean(),
32205
32683
  venue: eventVenueSchema.nullable(),
32206
32684
  eventCategory: eventCategorySchema.nullable(),
32207
- teamMembers: z45.array(publicTeamMemberSummarySchema).optional(),
32208
- status: z45.enum(["active", "draft", "archived"]).optional(),
32209
- timeZone: z45.string(),
32685
+ teamMembers: z46.array(publicTeamMemberSummarySchema).optional(),
32686
+ status: z46.enum(["active", "draft", "archived"]).optional(),
32687
+ timeZone: z46.string(),
32210
32688
  pricing: publicEventPricingSchema,
32211
32689
  paymentTerms: blockBookingPaymentTermsSchema,
32212
32690
  accessRestriction: accessRestrictionSchema,
32213
- allowedCategoryIds: z45.array(z45.string()),
32214
- requireGuestDetails: z45.boolean().optional(),
32215
- acceptsPasses: z45.boolean().optional(),
32216
- acceptsMemberships: z45.boolean().optional(),
32217
- course: z45.object({
32218
- id: z45.string(),
32691
+ allowedCategoryIds: z46.array(z46.string()),
32692
+ requireGuestDetails: z46.boolean().optional(),
32693
+ acceptsPasses: z46.boolean().optional(),
32694
+ acceptsMemberships: z46.boolean().optional(),
32695
+ course: z46.object({
32696
+ id: z46.string(),
32219
32697
  pricing: coursePricingSchema.optional(),
32220
- priceCents: z45.number().nullable(),
32221
- currency: z45.string(),
32222
- enrollmentOpen: z45.boolean()
32698
+ priceCents: z46.number().nullable(),
32699
+ currency: z46.string(),
32700
+ enrollmentOpen: z46.boolean()
32223
32701
  }).nullable().optional()
32224
32702
  });
32225
- publicEventsArraySchema = z45.array(publicEventSchema);
32703
+ publicEventsArraySchema = z46.array(publicEventSchema);
32226
32704
  }
32227
32705
  });
32228
32706
 
@@ -32459,19 +32937,19 @@ var init_shared3 = __esm({
32459
32937
  });
32460
32938
 
32461
32939
  // ../blocks/src/system/blocks/event-registration.shared.ts
32462
- import { z as z46 } from "zod";
32940
+ import { z as z47 } from "zod";
32463
32941
  var occurrenceContextSchema;
32464
32942
  var init_event_registration_shared = __esm({
32465
32943
  "../blocks/src/system/blocks/event-registration.shared.ts"() {
32466
32944
  "use strict";
32467
- occurrenceContextSchema = z46.object({
32468
- id: z46.string(),
32469
- seriesId: z46.string(),
32470
- startsAt: z46.string(),
32471
- endsAt: z46.string(),
32472
- timeZone: z46.string(),
32473
- capacityOverride: z46.number().nullable().optional(),
32474
- overrides: z46.record(z46.string(), z46.unknown()).nullable().optional()
32945
+ occurrenceContextSchema = z47.object({
32946
+ id: z47.string(),
32947
+ seriesId: z47.string(),
32948
+ startsAt: z47.string(),
32949
+ endsAt: z47.string(),
32950
+ timeZone: z47.string(),
32951
+ capacityOverride: z47.number().nullable().optional(),
32952
+ overrides: z47.record(z47.string(), z47.unknown()).nullable().optional()
32475
32953
  }).nullable();
32476
32954
  }
32477
32955
  });
@@ -32577,10 +33055,21 @@ function readLegacyPriceDisplay(value, currency) {
32577
33055
  amount: readAmount(value.amount) ?? 0,
32578
33056
  currency: displayCurrency
32579
33057
  } : { kind: "unavailable", currency };
33058
+ case "range": {
33059
+ const minAmount = readAmount(value.minAmount);
33060
+ const maxAmount = readAmount(value.maxAmount);
33061
+ return minAmount !== null && maxAmount !== null ? {
33062
+ kind: "range",
33063
+ minAmount,
33064
+ maxAmount,
33065
+ currency: displayCurrency
33066
+ } : { kind: "unavailable", currency };
33067
+ }
32580
33068
  case "mixed":
32581
33069
  return readAmount(value.paidFromAmount) !== null ? {
32582
33070
  kind: "mixed",
32583
33071
  paidFromAmount: readAmount(value.paidFromAmount) ?? 0,
33072
+ paidToAmount: readAmount(value.paidToAmount) ?? readAmount(value.paidFromAmount) ?? 0,
32584
33073
  currency: displayCurrency
32585
33074
  } : { kind: "unavailable", currency };
32586
33075
  case "unavailable":
@@ -32629,21 +33118,21 @@ var init_pricing = __esm({
32629
33118
  });
32630
33119
 
32631
33120
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
32632
- import { z as z47 } from "zod";
33121
+ import { z as z48 } from "zod";
32633
33122
  var previewStageSchema, registrationButtonVariantSchema, eventButtonVariantSchema, eventLayoutSchema, eventCalendarDisplayModeSchema, columnOptionSchema, weekStartSchema, filterAutoShowSchema, calendarTabViewsSchema;
32634
33123
  var init_contract_schemas = __esm({
32635
33124
  "../blocks/src/system/runtime/nodes/shared/contract-schemas.ts"() {
32636
33125
  "use strict";
32637
33126
  init_events();
32638
- previewStageSchema = z47.enum(["preview", "published"]);
32639
- registrationButtonVariantSchema = z47.enum(["primary", "secondary", "outline"]);
32640
- eventButtonVariantSchema = z47.enum(["primary", "secondary", "outline", "link"]);
32641
- eventLayoutSchema = z47.enum(eventCalendarListLayoutValues);
32642
- eventCalendarDisplayModeSchema = z47.enum(eventCalendarDisplayModeValues);
32643
- columnOptionSchema = z47.enum(["2", "3", "4"]);
32644
- weekStartSchema = z47.enum(["sunday", "monday"]);
32645
- filterAutoShowSchema = z47.enum(["auto", "always", "never"]);
32646
- calendarTabViewsSchema = z47.enum(["both", "month", "week"]);
33127
+ previewStageSchema = z48.enum(["preview", "published"]);
33128
+ registrationButtonVariantSchema = z48.enum(["primary", "secondary", "outline"]);
33129
+ eventButtonVariantSchema = z48.enum(["primary", "secondary", "outline", "link"]);
33130
+ eventLayoutSchema = z48.enum(eventCalendarListLayoutValues);
33131
+ eventCalendarDisplayModeSchema = z48.enum(eventCalendarDisplayModeValues);
33132
+ columnOptionSchema = z48.enum(["2", "3", "4"]);
33133
+ weekStartSchema = z48.enum(["sunday", "monday"]);
33134
+ filterAutoShowSchema = z48.enum(["auto", "always", "never"]);
33135
+ calendarTabViewsSchema = z48.enum(["both", "month", "week"]);
32647
33136
  }
32648
33137
  });
32649
33138
 
@@ -32721,7 +33210,7 @@ var init_registrationEventAdapter = __esm({
32721
33210
  });
32722
33211
 
32723
33212
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
32724
- import { z as z48 } from "zod";
33213
+ import { z as z49 } from "zod";
32725
33214
  function buildEventRegistrationDisplay(source) {
32726
33215
  const stepLabels = buildEventRegistrationShellStepLabels(source);
32727
33216
  return {
@@ -32826,66 +33315,68 @@ var init_event_registration_interactive = __esm({
32826
33315
  init_registrationEventAdapter();
32827
33316
  EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
32828
33317
  EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
32829
- contentEntrySchema = z48.object({
32830
- id: z48.string(),
32831
- slug: z48.string(),
32832
- contentTypeSlug: z48.string()
33318
+ contentEntrySchema = z49.object({
33319
+ id: z49.string(),
33320
+ slug: z49.string(),
33321
+ contentTypeSlug: z49.string()
32833
33322
  });
32834
- eventRegistrationPublicEventSchema = z48.preprocess(
33323
+ eventRegistrationPublicEventSchema = z49.preprocess(
32835
33324
  normalizeEventRegistrationEventInput,
32836
33325
  publicEventSchema
32837
33326
  );
32838
- eventRegistrationSourceSchema = z48.object({
32839
- siteId: z48.string().optional(),
32840
- apiBaseUrl: z48.string().optional(),
32841
- portalToken: z48.string().nullable().optional(),
32842
- previewToken: z48.string().nullable().optional(),
33327
+ eventRegistrationSourceSchema = z49.object({
33328
+ siteId: z49.string().optional(),
33329
+ apiBaseUrl: z49.string().optional(),
33330
+ portalToken: z49.string().nullable().optional(),
33331
+ previewToken: z49.string().nullable().optional(),
32843
33332
  occurrenceContext: occurrenceContextSchema.optional(),
32844
33333
  contentEntry: contentEntrySchema.nullable().optional(),
32845
- events: z48.array(eventRegistrationPublicEventSchema).nullable().optional(),
32846
- className: z48.string().nullable().optional(),
32847
- buttonText: z48.string().nullable().optional(),
32848
- maxTickets: z48.string().nullable().optional(),
32849
- showVenue: z48.boolean().optional(),
32850
- showCapacity: z48.boolean().optional(),
32851
- successMessage: z48.string().optional(),
32852
- waitlistMessage: z48.string().optional(),
33334
+ events: z49.array(eventRegistrationPublicEventSchema).nullable().optional(),
33335
+ className: z49.string().nullable().optional(),
33336
+ buttonText: z49.string().nullable().optional(),
33337
+ maxTickets: z49.string().nullable().optional(),
33338
+ showVenue: z49.boolean().optional(),
33339
+ showCapacity: z49.boolean().optional(),
33340
+ successMessage: z49.string().optional(),
33341
+ waitlistMessage: z49.string().optional(),
32853
33342
  buttonVariant: registrationButtonVariantSchema.optional(),
32854
- spamProtectionEnabled: z48.boolean().optional(),
33343
+ overlayEnabled: z49.boolean().optional(),
33344
+ spamProtectionEnabled: z49.boolean().optional(),
32855
33345
  stage: previewStageSchema.optional(),
32856
- supportEmail: z48.string().optional()
32857
- });
32858
- eventRegistrationDisplaySchema = z48.object({
32859
- kind: z48.literal("event-registration"),
32860
- state: z48.literal("generic-shell"),
32861
- className: z48.string().nullable(),
32862
- titleText: z48.string(),
32863
- bodyText: z48.string(),
32864
- stepLabels: z48.array(z48.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
32865
- summaryButtonText: z48.string()
32866
- });
32867
- eventRegistrationHydrationSchema = z48.object({
33346
+ supportEmail: z49.string().optional()
33347
+ });
33348
+ eventRegistrationDisplaySchema = z49.object({
33349
+ kind: z49.literal("event-registration"),
33350
+ state: z49.literal("generic-shell"),
33351
+ className: z49.string().nullable(),
33352
+ titleText: z49.string(),
33353
+ bodyText: z49.string(),
33354
+ stepLabels: z49.array(z49.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
33355
+ summaryButtonText: z49.string()
33356
+ });
33357
+ eventRegistrationHydrationSchema = z49.object({
32868
33358
  occurrenceContext: occurrenceContextSchema.optional(),
32869
33359
  contentEntry: contentEntrySchema.nullable().optional(),
32870
- events: z48.array(eventRegistrationPublicEventSchema).nullable().optional(),
32871
- maxTickets: z48.string().optional(),
32872
- showVenue: z48.boolean().optional(),
32873
- showCapacity: z48.boolean().optional(),
32874
- successMessage: z48.string().optional(),
32875
- waitlistMessage: z48.string().optional(),
33360
+ events: z49.array(eventRegistrationPublicEventSchema).nullable().optional(),
33361
+ maxTickets: z49.string().optional(),
33362
+ showVenue: z49.boolean().optional(),
33363
+ showCapacity: z49.boolean().optional(),
33364
+ successMessage: z49.string().optional(),
33365
+ waitlistMessage: z49.string().optional(),
32876
33366
  buttonVariant: registrationButtonVariantSchema.optional(),
32877
- spamProtectionEnabled: z48.boolean().optional(),
32878
- supportEmail: z48.string().optional()
33367
+ overlayEnabled: z49.boolean().optional(),
33368
+ spamProtectionEnabled: z49.boolean().optional(),
33369
+ supportEmail: z49.string().optional()
32879
33370
  });
32880
- eventRegistrationRenderSchema = z48.object({
33371
+ eventRegistrationRenderSchema = z49.object({
32881
33372
  display: eventRegistrationDisplaySchema,
32882
33373
  hydration: eventRegistrationHydrationSchema
32883
33374
  });
32884
- eventRegistrationIslandMetaCodec = createZodCodec(z48.object({
32885
- siteId: z48.string().optional(),
32886
- apiBaseUrl: z48.string().optional(),
32887
- portalToken: z48.string().nullable().optional(),
32888
- previewToken: z48.string().nullable().optional(),
33375
+ eventRegistrationIslandMetaCodec = createZodCodec(z49.object({
33376
+ siteId: z49.string().optional(),
33377
+ apiBaseUrl: z49.string().optional(),
33378
+ portalToken: z49.string().nullable().optional(),
33379
+ previewToken: z49.string().nullable().optional(),
32889
33380
  stage: previewStageSchema.optional()
32890
33381
  }));
32891
33382
  eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -32913,6 +33404,7 @@ var init_event_registration_interactive = __esm({
32913
33404
  successMessage: source.successMessage,
32914
33405
  waitlistMessage: source.waitlistMessage,
32915
33406
  buttonVariant: source.buttonVariant,
33407
+ overlayEnabled: source.overlayEnabled,
32916
33408
  spamProtectionEnabled: source.spamProtectionEnabled,
32917
33409
  supportEmail: source.supportEmail
32918
33410
  }
@@ -32935,7 +33427,7 @@ var init_event_registration_interactive = __esm({
32935
33427
  });
32936
33428
 
32937
33429
  // ../blocks/src/system/blocks/event-registration.ts
32938
- import { z as z49 } from "zod";
33430
+ import { z as z50 } from "zod";
32939
33431
  var eventRegistrationManifest, eventRegistrationBlockDefinition;
32940
33432
  var init_event_registration = __esm({
32941
33433
  "../blocks/src/system/blocks/event-registration.ts"() {
@@ -33092,6 +33584,12 @@ var init_event_registration = __esm({
33092
33584
  buttonVariant: {
33093
33585
  $bind: { from: "content.buttonVariant", fallback: "primary" }
33094
33586
  },
33587
+ overlayEnabled: {
33588
+ $bind: {
33589
+ from: "$root.eventRegistrationOverlayEnabled",
33590
+ fallback: false
33591
+ }
33592
+ },
33095
33593
  // Event data from loader
33096
33594
  events: { $bind: { from: "data.events" } },
33097
33595
  // Stage for preview mode (allows registering for draft events)
@@ -33112,7 +33610,7 @@ var init_event_registration = __esm({
33112
33610
  manifest: eventRegistrationManifest,
33113
33611
  runtime: eventRegistrationBlockRuntime,
33114
33612
  dataSchemas: {
33115
- events: z49.array(publicEventSchema).optional(),
33613
+ events: z50.array(publicEventSchema).optional(),
33116
33614
  occurrenceContext: occurrenceContextSchema.optional()
33117
33615
  },
33118
33616
  dataLoaders: {
@@ -33162,7 +33660,7 @@ var init_shared4 = __esm({
33162
33660
  });
33163
33661
 
33164
33662
  // ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
33165
- import { z as z50 } from "zod";
33663
+ import { z as z51 } from "zod";
33166
33664
  function buildCourseRegistrationDisplay(source) {
33167
33665
  return {
33168
33666
  kind: "course-registration",
@@ -33180,72 +33678,72 @@ var init_course_registration_interactive = __esm({
33180
33678
  init_islands();
33181
33679
  init_runtime();
33182
33680
  init_contract_schemas();
33183
- contentEntrySchema2 = z50.object({
33184
- id: z50.string(),
33185
- slug: z50.string(),
33186
- contentTypeSlug: z50.string()
33187
- });
33188
- courseEntrySubrouteContextSchema = z50.union([
33189
- z50.object({
33190
- kind: z50.literal("course-run"),
33191
- run: z50.object({
33192
- courseId: z50.string(),
33193
- seriesId: z50.string(),
33194
- runSlug: z50.string(),
33195
- runName: z50.string().nullable()
33681
+ contentEntrySchema2 = z51.object({
33682
+ id: z51.string(),
33683
+ slug: z51.string(),
33684
+ contentTypeSlug: z51.string()
33685
+ });
33686
+ courseEntrySubrouteContextSchema = z51.union([
33687
+ z51.object({
33688
+ kind: z51.literal("course-run"),
33689
+ run: z51.object({
33690
+ courseId: z51.string(),
33691
+ seriesId: z51.string(),
33692
+ runSlug: z51.string(),
33693
+ runName: z51.string().nullable()
33196
33694
  })
33197
33695
  }),
33198
- z50.object({
33199
- kind: z50.literal("event-occurrence"),
33696
+ z51.object({
33697
+ kind: z51.literal("event-occurrence"),
33200
33698
  occurrence: occurrenceContextSchema
33201
33699
  })
33202
33700
  ]);
33203
- courseRegistrationSourceSchema = z50.object({
33204
- siteId: z50.string().optional(),
33205
- apiBaseUrl: z50.string().optional(),
33206
- portalToken: z50.string().nullable().optional(),
33701
+ courseRegistrationSourceSchema = z51.object({
33702
+ siteId: z51.string().optional(),
33703
+ apiBaseUrl: z51.string().optional(),
33704
+ portalToken: z51.string().nullable().optional(),
33207
33705
  contentEntry: contentEntrySchema2.nullable().optional(),
33208
33706
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
33209
- courses: z50.array(publicCourseSchema).nullable().optional(),
33210
- className: z50.string().nullable().optional(),
33211
- showSessions: z50.boolean().optional(),
33212
- showPrice: z50.boolean().optional(),
33213
- showCapacity: z50.boolean().optional(),
33214
- showVenue: z50.boolean().optional(),
33215
- successMessage: z50.string().optional(),
33216
- waitlistMessage: z50.string().optional(),
33217
- membershipMessage: z50.string().optional(),
33218
- buttonText: z50.string().nullable().optional(),
33707
+ courses: z51.array(publicCourseSchema).nullable().optional(),
33708
+ className: z51.string().nullable().optional(),
33709
+ showSessions: z51.boolean().optional(),
33710
+ showPrice: z51.boolean().optional(),
33711
+ showCapacity: z51.boolean().optional(),
33712
+ showVenue: z51.boolean().optional(),
33713
+ successMessage: z51.string().optional(),
33714
+ waitlistMessage: z51.string().optional(),
33715
+ membershipMessage: z51.string().optional(),
33716
+ buttonText: z51.string().nullable().optional(),
33219
33717
  buttonVariant: registrationButtonVariantSchema.optional(),
33220
33718
  stage: previewStageSchema.optional()
33221
33719
  });
33222
- courseRegistrationDisplaySchema = z50.object({
33223
- kind: z50.literal("course-registration"),
33224
- state: z50.literal("shell"),
33225
- className: z50.string().nullable(),
33226
- summaryButtonText: z50.string()
33720
+ courseRegistrationDisplaySchema = z51.object({
33721
+ kind: z51.literal("course-registration"),
33722
+ state: z51.literal("shell"),
33723
+ className: z51.string().nullable(),
33724
+ summaryButtonText: z51.string()
33227
33725
  });
33228
- courseRegistrationHydrationSchema = z50.object({
33726
+ courseRegistrationHydrationSchema = z51.object({
33229
33727
  contentEntry: contentEntrySchema2.nullable().optional(),
33230
33728
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
33231
- courses: z50.array(publicCourseSchema).nullable().optional(),
33232
- showSessions: z50.boolean().optional(),
33233
- showPrice: z50.boolean().optional(),
33234
- showCapacity: z50.boolean().optional(),
33235
- showVenue: z50.boolean().optional(),
33236
- successMessage: z50.string().optional(),
33237
- waitlistMessage: z50.string().optional(),
33238
- membershipMessage: z50.string().optional(),
33729
+ courses: z51.array(publicCourseSchema).nullable().optional(),
33730
+ showSessions: z51.boolean().optional(),
33731
+ showPrice: z51.boolean().optional(),
33732
+ showCapacity: z51.boolean().optional(),
33733
+ showVenue: z51.boolean().optional(),
33734
+ successMessage: z51.string().optional(),
33735
+ waitlistMessage: z51.string().optional(),
33736
+ membershipMessage: z51.string().optional(),
33239
33737
  buttonVariant: registrationButtonVariantSchema.optional()
33240
33738
  });
33241
- courseRegistrationRenderSchema = z50.object({
33739
+ courseRegistrationRenderSchema = z51.object({
33242
33740
  display: courseRegistrationDisplaySchema,
33243
33741
  hydration: courseRegistrationHydrationSchema
33244
33742
  });
33245
- courseRegistrationIslandMetaCodec = createZodCodec(z50.object({
33246
- siteId: z50.string().optional(),
33247
- apiBaseUrl: z50.string().optional(),
33248
- portalToken: z50.string().nullable().optional(),
33743
+ courseRegistrationIslandMetaCodec = createZodCodec(z51.object({
33744
+ siteId: z51.string().optional(),
33745
+ apiBaseUrl: z51.string().optional(),
33746
+ portalToken: z51.string().nullable().optional(),
33249
33747
  stage: previewStageSchema.optional()
33250
33748
  }));
33251
33749
  courseRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -33513,39 +34011,39 @@ var init_course_registration = __esm({
33513
34011
  });
33514
34012
 
33515
34013
  // ../blocks/src/system/blocks/shop.shared.ts
33516
- import { z as z51 } from "zod";
34014
+ import { z as z52 } from "zod";
33517
34015
  var publicPassProductSchema, publicMembershipProductSchema;
33518
34016
  var init_shop_shared = __esm({
33519
34017
  "../blocks/src/system/blocks/shop.shared.ts"() {
33520
34018
  "use strict";
33521
- publicPassProductSchema = z51.object({
33522
- id: z51.string(),
33523
- productUseCase: z51.enum(["event_pass", "appointment_package"]).default("event_pass"),
33524
- name: z51.string(),
33525
- description: z51.string().nullable(),
33526
- price: z51.number(),
33527
- currency: z51.string(),
33528
- creditsTotal: z51.number(),
33529
- pricePerCredit: z51.number(),
33530
- validDays: z51.number().nullable(),
33531
- eligibleCategoryIds: z51.array(z51.string()),
33532
- eligibleCategoryNames: z51.array(z51.string())
33533
- });
33534
- publicMembershipProductSchema = z51.object({
33535
- id: z51.string(),
33536
- name: z51.string(),
33537
- description: z51.string().nullable(),
33538
- price: z51.number(),
33539
- currency: z51.string(),
33540
- billingInterval: z51.enum(["month", "year"]),
33541
- eligibleCategoryIds: z51.array(z51.string()),
33542
- eligibleCategoryNames: z51.array(z51.string())
34019
+ publicPassProductSchema = z52.object({
34020
+ id: z52.string(),
34021
+ productUseCase: z52.enum(["event_pass", "appointment_package"]).default("event_pass"),
34022
+ name: z52.string(),
34023
+ description: z52.string().nullable(),
34024
+ price: z52.number(),
34025
+ currency: z52.string(),
34026
+ creditsTotal: z52.number(),
34027
+ pricePerCredit: z52.number(),
34028
+ validDays: z52.number().nullable(),
34029
+ eligibleCategoryIds: z52.array(z52.string()),
34030
+ eligibleCategoryNames: z52.array(z52.string())
34031
+ });
34032
+ publicMembershipProductSchema = z52.object({
34033
+ id: z52.string(),
34034
+ name: z52.string(),
34035
+ description: z52.string().nullable(),
34036
+ price: z52.number(),
34037
+ currency: z52.string(),
34038
+ billingInterval: z52.enum(["month", "year"]),
34039
+ eligibleCategoryIds: z52.array(z52.string()),
34040
+ eligibleCategoryNames: z52.array(z52.string())
33543
34041
  });
33544
34042
  }
33545
34043
  });
33546
34044
 
33547
34045
  // ../blocks/src/system/blocks/event-details.ts
33548
- import { z as z52 } from "zod";
34046
+ import { z as z53 } from "zod";
33549
34047
  var eventDetailsManifest, occurrenceContextSchema2, eventAutoApplyDiscountPreviewBaseSchema, eventAutoApplyDiscountPreviewSchema, eventDetailsBlockDefinition;
33550
34048
  var init_event_details = __esm({
33551
34049
  "../blocks/src/system/blocks/event-details.ts"() {
@@ -33688,40 +34186,40 @@ var init_event_details = __esm({
33688
34186
  })
33689
34187
  ]
33690
34188
  });
33691
- occurrenceContextSchema2 = z52.object({
33692
- id: z52.string(),
33693
- seriesId: z52.string(),
33694
- startsAt: z52.string(),
33695
- endsAt: z52.string(),
33696
- timeZone: z52.string(),
33697
- capacityOverride: z52.number().nullable().optional(),
33698
- overrides: z52.record(z52.string(), z52.unknown()).nullable().optional()
34189
+ occurrenceContextSchema2 = z53.object({
34190
+ id: z53.string(),
34191
+ seriesId: z53.string(),
34192
+ startsAt: z53.string(),
34193
+ endsAt: z53.string(),
34194
+ timeZone: z53.string(),
34195
+ capacityOverride: z53.number().nullable().optional(),
34196
+ overrides: z53.record(z53.string(), z53.unknown()).nullable().optional()
33699
34197
  }).nullable();
33700
- eventAutoApplyDiscountPreviewBaseSchema = z52.object({
33701
- id: z52.string(),
33702
- publicLabel: z52.string(),
33703
- description: z52.string().nullable(),
33704
- minTicketsRequired: z52.number().nullable()
34198
+ eventAutoApplyDiscountPreviewBaseSchema = z53.object({
34199
+ id: z53.string(),
34200
+ publicLabel: z53.string(),
34201
+ description: z53.string().nullable(),
34202
+ minTicketsRequired: z53.number().nullable()
33705
34203
  });
33706
- eventAutoApplyDiscountPreviewSchema = z52.discriminatedUnion("discountType", [
34204
+ eventAutoApplyDiscountPreviewSchema = z53.discriminatedUnion("discountType", [
33707
34205
  eventAutoApplyDiscountPreviewBaseSchema.extend({
33708
- discountType: z52.literal("percent"),
33709
- discountPercent: z52.number(),
33710
- discountAmountCents: z52.null()
34206
+ discountType: z53.literal("percent"),
34207
+ discountPercent: z53.number(),
34208
+ discountAmountCents: z53.null()
33711
34209
  }),
33712
34210
  eventAutoApplyDiscountPreviewBaseSchema.extend({
33713
- discountType: z52.literal("fixed"),
33714
- discountPercent: z52.null(),
33715
- discountAmountCents: z52.number()
34211
+ discountType: z53.literal("fixed"),
34212
+ discountPercent: z53.null(),
34213
+ discountAmountCents: z53.number()
33716
34214
  })
33717
34215
  ]);
33718
34216
  eventDetailsBlockDefinition = {
33719
34217
  manifest: eventDetailsManifest,
33720
34218
  dataSchemas: {
33721
- eventDetailsData: z52.object({
34219
+ eventDetailsData: z53.object({
33722
34220
  events: publicEventsArraySchema,
33723
- sitePasses: z52.object({ passes: z52.array(publicPassProductSchema) }),
33724
- siteMemberships: z52.object({ memberships: z52.array(publicMembershipProductSchema) }),
34221
+ sitePasses: z53.object({ passes: z53.array(publicPassProductSchema) }),
34222
+ siteMemberships: z53.object({ memberships: z53.array(publicMembershipProductSchema) }),
33725
34223
  autoApplyDiscount: eventAutoApplyDiscountPreviewSchema.nullable().optional().default(null)
33726
34224
  }).optional(),
33727
34225
  occurrenceContext: occurrenceContextSchema2.optional()
@@ -34113,7 +34611,7 @@ var init_clsx = __esm({
34113
34611
  });
34114
34612
 
34115
34613
  // ../blocks/src/system/runtime/nodes/media.tsx
34116
- import { jsx as jsx3 } from "react/jsx-runtime";
34614
+ import { jsx as jsx4 } from "react/jsx-runtime";
34117
34615
  function getValidSourceDimension(value) {
34118
34616
  return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : void 0;
34119
34617
  }
@@ -34205,7 +34703,7 @@ var init_shared5 = __esm({
34205
34703
  });
34206
34704
 
34207
34705
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
34208
- import { z as z53 } from "zod";
34706
+ import { z as z54 } from "zod";
34209
34707
  function resolveEventPageSize(value, fallback = 12) {
34210
34708
  const candidate = typeof value === "number" ? value : typeof value === "string" && value.trim() !== "" ? Number(value.trim()) : null;
34211
34709
  return candidate != null && Number.isInteger(candidate) && eventPageSizeSet.has(candidate) ? candidate : fallback;
@@ -34226,32 +34724,32 @@ var init_listOptions = __esm({
34226
34724
  "../blocks/src/system/runtime/nodes/events/shared/listOptions.ts"() {
34227
34725
  "use strict";
34228
34726
  eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
34229
- eventPageSizeSchema = z53.union([
34230
- z53.literal(3),
34231
- z53.literal(6),
34232
- z53.literal(10),
34233
- z53.literal(12),
34234
- z53.literal(20),
34235
- z53.literal(24),
34236
- z53.literal(30)
34727
+ eventPageSizeSchema = z54.union([
34728
+ z54.literal(3),
34729
+ z54.literal(6),
34730
+ z54.literal(10),
34731
+ z54.literal(12),
34732
+ z54.literal(20),
34733
+ z54.literal(24),
34734
+ z54.literal(30)
34237
34735
  ]);
34238
34736
  eventPageSizeSet = new Set(eventPageSizeValues);
34239
- eventListPaginationActionSchema = z53.discriminatedUnion("kind", [
34240
- z53.object({
34241
- kind: z53.literal("loadMore"),
34242
- label: z53.string()
34737
+ eventListPaginationActionSchema = z54.discriminatedUnion("kind", [
34738
+ z54.object({
34739
+ kind: z54.literal("loadMore"),
34740
+ label: z54.string()
34243
34741
  }),
34244
- z53.object({
34245
- kind: z53.literal("seeAllLink"),
34246
- label: z53.string(),
34247
- href: z53.string()
34742
+ z54.object({
34743
+ kind: z54.literal("seeAllLink"),
34744
+ label: z54.string(),
34745
+ href: z54.string()
34248
34746
  })
34249
34747
  ]);
34250
34748
  }
34251
34749
  });
34252
34750
 
34253
34751
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
34254
- import { z as z54 } from "zod";
34752
+ import { z as z55 } from "zod";
34255
34753
  var legacyEventCardVariantSchema, eventCardVariantInputSchema, cardOrientationSchema, eventBlockKindSchema, eventSurfaceScopeSchema, eventScheduleScopeSchema2, eventListingSourceSchema, eventListingDisplaySchema, eventListingHydrationSchema, eventListingRenderSchema, eventListingIslandMetaCodec, eventListingBlockRuntime, eventListingIslandMetaKeys, eventListingInteractiveIslandPropsCodec;
34256
34754
  var init_EventListing_interactive = __esm({
34257
34755
  "../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts"() {
@@ -34264,89 +34762,89 @@ var init_EventListing_interactive = __esm({
34264
34762
  init_shared5();
34265
34763
  init_contract_schemas();
34266
34764
  init_listOptions();
34267
- legacyEventCardVariantSchema = z54.enum(["variant1", "variant2"]);
34268
- eventCardVariantInputSchema = z54.union([
34765
+ legacyEventCardVariantSchema = z55.enum(["variant1", "variant2"]);
34766
+ eventCardVariantInputSchema = z55.union([
34269
34767
  cardVariantRoleSchema,
34270
34768
  legacyEventCardVariantSchema
34271
34769
  ]);
34272
- cardOrientationSchema = z54.enum(["vertical", "horizontal"]);
34273
- eventBlockKindSchema = z54.enum(eventBlockKindValues);
34274
- eventSurfaceScopeSchema = z54.enum(eventSurfaceScopeValues);
34275
- eventScheduleScopeSchema2 = z54.enum(eventScheduleScopeValues);
34276
- eventListingSourceSchema = z54.object({
34277
- events: z54.array(publicEventSchema).nullable().optional(),
34278
- siteId: z54.string(),
34279
- apiBaseUrl: z54.string().optional(),
34770
+ cardOrientationSchema = z55.enum(["vertical", "horizontal"]);
34771
+ eventBlockKindSchema = z55.enum(eventBlockKindValues);
34772
+ eventSurfaceScopeSchema = z55.enum(eventSurfaceScopeValues);
34773
+ eventScheduleScopeSchema2 = z55.enum(eventScheduleScopeValues);
34774
+ eventListingSourceSchema = z55.object({
34775
+ events: z55.array(publicEventSchema).nullable().optional(),
34776
+ siteId: z55.string(),
34777
+ apiBaseUrl: z55.string().optional(),
34280
34778
  stage: previewStageSchema.optional(),
34281
34779
  layout: eventLayoutSchema.optional(),
34282
34780
  columns: columnOptionSchema.optional(),
34283
- eventsPerPage: z54.string().optional(),
34284
- paginationMode: z54.enum(["loadMore", "seeAllLink"]).optional(),
34285
- seeAllUrl: z54.string().optional(),
34286
- loadMoreText: z54.string().optional(),
34781
+ eventsPerPage: z55.string().optional(),
34782
+ paginationMode: z55.enum(["loadMore", "seeAllLink"]).optional(),
34783
+ seeAllUrl: z55.string().optional(),
34784
+ loadMoreText: z55.string().optional(),
34287
34785
  cardVariant: eventCardVariantInputSchema.optional(),
34288
34786
  buttonVariant: eventButtonVariantSchema.optional(),
34289
- buttonText: z54.string().optional(),
34290
- showVenue: z54.boolean().optional(),
34291
- showMap: z54.boolean().optional(),
34292
- showCapacity: z54.boolean().optional(),
34293
- emptyMessage: z54.string().optional(),
34294
- className: z54.string().optional(),
34295
- showFilters: z54.boolean().nullable().optional(),
34787
+ buttonText: z55.string().optional(),
34788
+ showVenue: z55.boolean().optional(),
34789
+ showMap: z55.boolean().optional(),
34790
+ showCapacity: z55.boolean().optional(),
34791
+ emptyMessage: z55.string().optional(),
34792
+ className: z55.string().optional(),
34793
+ showFilters: z55.boolean().nullable().optional(),
34296
34794
  showCategoryFilter: filterAutoShowSchema.optional(),
34297
- showVenueFilter: z54.boolean().nullable().optional(),
34298
- showStaffFilter: z54.boolean().nullable().optional(),
34795
+ showVenueFilter: z55.boolean().nullable().optional(),
34796
+ showStaffFilter: z55.boolean().nullable().optional(),
34299
34797
  eventKind: eventBlockKindSchema.nullable().optional(),
34300
34798
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
34301
- filterEventPresets: z54.union([z54.string(), z54.array(z54.string())]).nullable().optional(),
34799
+ filterEventPresets: z55.union([z55.string(), z55.array(z55.string())]).nullable().optional(),
34302
34800
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
34303
- filterCategoryIds: z54.string().nullable().optional(),
34304
- filterStaffMemberId: z54.string().nullable().optional(),
34305
- filterVenueId: z54.string().nullable().optional()
34801
+ filterCategoryIds: z55.string().nullable().optional(),
34802
+ filterStaffMemberId: z55.string().nullable().optional(),
34803
+ filterVenueId: z55.string().nullable().optional()
34306
34804
  });
34307
- eventListingDisplaySchema = z54.object({
34308
- kind: z54.literal("event-listing"),
34309
- state: z54.enum(["loading", "empty", "ready"]),
34805
+ eventListingDisplaySchema = z55.object({
34806
+ kind: z55.literal("event-listing"),
34807
+ state: z55.enum(["loading", "empty", "ready"]),
34310
34808
  listLayout: eventLayoutSchema,
34311
- className: z54.string().nullable(),
34312
- emptyMessage: z54.string(),
34313
- loadingMessage: z54.string(),
34314
- containerClass: z54.string(),
34809
+ className: z55.string().nullable(),
34810
+ emptyMessage: z55.string(),
34811
+ loadingMessage: z55.string(),
34812
+ containerClass: z55.string(),
34315
34813
  cardVariant: cardVariantRoleSchema,
34316
34814
  buttonVariant: eventButtonVariantSchema,
34317
- buttonText: z54.string(),
34318
- showVenue: z54.boolean(),
34319
- showMap: z54.boolean(),
34320
- showCapacity: z54.boolean(),
34815
+ buttonText: z55.string(),
34816
+ showVenue: z55.boolean(),
34817
+ showMap: z55.boolean(),
34818
+ showCapacity: z55.boolean(),
34321
34819
  orientation: cardOrientationSchema,
34322
- events: z54.array(publicEventSchema)
34820
+ events: z55.array(publicEventSchema)
34323
34821
  });
34324
- eventListingHydrationSchema = z54.object({
34325
- siteId: z54.string(),
34822
+ eventListingHydrationSchema = z55.object({
34823
+ siteId: z55.string(),
34326
34824
  stage: previewStageSchema.optional(),
34327
34825
  eventsPerPage: eventPageSizeSchema,
34328
34826
  paginationAction: eventListPaginationActionSchema,
34329
- showFilters: z54.boolean(),
34827
+ showFilters: z55.boolean(),
34330
34828
  showCategoryFilter: filterAutoShowSchema,
34331
- showVenueFilter: z54.boolean(),
34332
- showStaffFilter: z54.boolean(),
34829
+ showVenueFilter: z55.boolean(),
34830
+ showStaffFilter: z55.boolean(),
34333
34831
  eventKind: eventBlockKindSchema,
34334
34832
  eventSurface: eventSurfaceScopeSchema,
34335
- filterEventPresets: z54.string().nullable(),
34833
+ filterEventPresets: z55.string().nullable(),
34336
34834
  scheduleScope: eventScheduleScopeSchema2,
34337
- filterCategoryIds: z54.string().nullable().optional(),
34338
- filterStaffMemberId: z54.string().nullable().optional(),
34339
- filterVenueId: z54.string().nullable().optional(),
34340
- fetchInitialEventsOnMount: z54.boolean()
34835
+ filterCategoryIds: z55.string().nullable().optional(),
34836
+ filterStaffMemberId: z55.string().nullable().optional(),
34837
+ filterVenueId: z55.string().nullable().optional(),
34838
+ fetchInitialEventsOnMount: z55.boolean()
34341
34839
  });
34342
- eventListingRenderSchema = z54.object({
34840
+ eventListingRenderSchema = z55.object({
34343
34841
  display: eventListingDisplaySchema,
34344
34842
  hydration: eventListingHydrationSchema
34345
34843
  });
34346
34844
  eventListingIslandMetaCodec = createZodCodec(
34347
- z54.object({
34348
- siteId: z54.string(),
34349
- apiBaseUrl: z54.string().optional(),
34845
+ z55.object({
34846
+ siteId: z55.string(),
34847
+ apiBaseUrl: z55.string().optional(),
34350
34848
  stage: previewStageSchema.optional()
34351
34849
  })
34352
34850
  );
@@ -34730,7 +35228,7 @@ var init_event_listing = __esm({
34730
35228
  });
34731
35229
 
34732
35230
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
34733
- import { z as z55 } from "zod";
35231
+ import { z as z56 } from "zod";
34734
35232
  function buildEventCalendarDisplay(source) {
34735
35233
  const listLayout = source.listLayout ?? source.layout ?? "stack";
34736
35234
  return {
@@ -34783,14 +35281,14 @@ var init_EventCalendar_interactive = __esm({
34783
35281
  init_runtime();
34784
35282
  init_contract_schemas();
34785
35283
  init_listOptions();
34786
- eventBlockKindSchema2 = z55.enum(eventBlockKindValues);
34787
- eventSurfaceScopeSchema2 = z55.enum(eventSurfaceScopeValues);
34788
- eventScheduleScopeSchema3 = z55.enum(eventScheduleScopeValues);
34789
- eventCalendarSourceSchema = z55.object(
35284
+ eventBlockKindSchema2 = z56.enum(eventBlockKindValues);
35285
+ eventSurfaceScopeSchema2 = z56.enum(eventSurfaceScopeValues);
35286
+ eventScheduleScopeSchema3 = z56.enum(eventScheduleScopeValues);
35287
+ eventCalendarSourceSchema = z56.object(
34790
35288
  {
34791
- events: z55.array(publicEventSchema).nullable().optional(),
34792
- siteId: z55.string(),
34793
- apiBaseUrl: z55.string().optional(),
35289
+ events: z56.array(publicEventSchema).nullable().optional(),
35290
+ siteId: z56.string(),
35291
+ apiBaseUrl: z56.string().optional(),
34794
35292
  stage: previewStageSchema.optional(),
34795
35293
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
34796
35294
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -34798,78 +35296,78 @@ var init_EventCalendar_interactive = __esm({
34798
35296
  listColumns: columnOptionSchema.optional(),
34799
35297
  layout: eventLayoutSchema.optional(),
34800
35298
  columns: columnOptionSchema.optional(),
34801
- eventsPerPage: z55.string().optional(),
34802
- paginationMode: z55.enum(["loadMore", "seeAllLink"]).optional(),
34803
- seeAllUrl: z55.string().optional(),
34804
- loadMoreText: z55.string().optional(),
35299
+ eventsPerPage: z56.string().optional(),
35300
+ paginationMode: z56.enum(["loadMore", "seeAllLink"]).optional(),
35301
+ seeAllUrl: z56.string().optional(),
35302
+ loadMoreText: z56.string().optional(),
34805
35303
  startOfWeek: weekStartSchema.optional(),
34806
35304
  calendarTabViews: calendarTabViewsSchema.optional(),
34807
- showFilters: z55.boolean().nullable().optional(),
35305
+ showFilters: z56.boolean().nullable().optional(),
34808
35306
  showCategoryFilter: filterAutoShowSchema.optional(),
34809
- showVenueFilter: z55.boolean().nullable().optional(),
34810
- showStaffFilter: z55.boolean().nullable().optional(),
35307
+ showVenueFilter: z56.boolean().nullable().optional(),
35308
+ showStaffFilter: z56.boolean().nullable().optional(),
34811
35309
  kind: eventBlockKindSchema2.nullable().optional(),
34812
35310
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
34813
- filterEventPresets: z55.union([z55.string(), z55.array(z55.string())]).nullable().optional(),
35311
+ filterEventPresets: z56.union([z56.string(), z56.array(z56.string())]).nullable().optional(),
34814
35312
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
34815
- filterCategoryIds: z55.union([z55.string(), z55.array(z55.string())]).nullable().optional(),
34816
- filterStaffMemberId: z55.string().nullable().optional(),
34817
- filterVenueId: z55.string().nullable().optional(),
35313
+ filterCategoryIds: z56.union([z56.string(), z56.array(z56.string())]).nullable().optional(),
35314
+ filterStaffMemberId: z56.string().nullable().optional(),
35315
+ filterVenueId: z56.string().nullable().optional(),
34818
35316
  buttonVariant: eventButtonVariantSchema.optional(),
34819
- buttonText: z55.string().optional(),
34820
- showVenue: z55.boolean().nullable().optional(),
34821
- showMap: z55.boolean().nullable().optional(),
34822
- showCapacity: z55.boolean().nullable().optional(),
34823
- emptyMessage: z55.string().optional(),
34824
- className: z55.string().optional()
35317
+ buttonText: z56.string().optional(),
35318
+ showVenue: z56.boolean().nullable().optional(),
35319
+ showMap: z56.boolean().nullable().optional(),
35320
+ showCapacity: z56.boolean().nullable().optional(),
35321
+ emptyMessage: z56.string().optional(),
35322
+ className: z56.string().optional()
34825
35323
  }
34826
35324
  );
34827
- eventCalendarDisplaySchema = z55.object({
34828
- kind: z55.literal("event-calendar"),
35325
+ eventCalendarDisplaySchema = z56.object({
35326
+ kind: z56.literal("event-calendar"),
34829
35327
  displayMode: eventCalendarDisplayModeSchema,
34830
- className: z55.string().nullable(),
34831
- events: z55.array(publicEventSchema),
35328
+ className: z56.string().nullable(),
35329
+ events: z56.array(publicEventSchema),
34832
35330
  listLayout: eventLayoutSchema,
34833
35331
  listColumns: columnOptionSchema,
34834
35332
  eventsPerPage: eventPageSizeSchema,
34835
35333
  paginationAction: eventListPaginationActionSchema,
34836
35334
  startOfWeek: weekStartSchema,
34837
35335
  calendarTabViews: calendarTabViewsSchema,
34838
- showFilters: z55.boolean(),
35336
+ showFilters: z56.boolean(),
34839
35337
  showCategoryFilter: filterAutoShowSchema,
34840
- showVenueFilter: z55.boolean(),
34841
- showStaffFilter: z55.boolean(),
35338
+ showVenueFilter: z56.boolean(),
35339
+ showStaffFilter: z56.boolean(),
34842
35340
  eventKind: eventBlockKindSchema2,
34843
35341
  eventSurface: eventSurfaceScopeSchema2,
34844
- filterEventPresets: z55.string().nullable(),
35342
+ filterEventPresets: z56.string().nullable(),
34845
35343
  scheduleScope: eventScheduleScopeSchema3,
34846
- filterCategoryIds: z55.string().nullable(),
34847
- filterStaffMemberId: z55.string().nullable(),
34848
- filterVenueId: z55.string().nullable(),
35344
+ filterCategoryIds: z56.string().nullable(),
35345
+ filterStaffMemberId: z56.string().nullable(),
35346
+ filterVenueId: z56.string().nullable(),
34849
35347
  buttonVariant: eventButtonVariantSchema,
34850
- buttonText: z55.string(),
34851
- showVenue: z55.boolean(),
34852
- showMap: z55.boolean(),
34853
- showCapacity: z55.boolean(),
34854
- emptyMessage: z55.string()
34855
- });
34856
- eventCalendarHydrationSchema = z55.object({
34857
- siteId: z55.string(),
35348
+ buttonText: z56.string(),
35349
+ showVenue: z56.boolean(),
35350
+ showMap: z56.boolean(),
35351
+ showCapacity: z56.boolean(),
35352
+ emptyMessage: z56.string()
35353
+ });
35354
+ eventCalendarHydrationSchema = z56.object({
35355
+ siteId: z56.string(),
34858
35356
  stage: previewStageSchema.optional(),
34859
- prefetchedEvents: z55.boolean(),
35357
+ prefetchedEvents: z56.boolean(),
34860
35358
  eventKind: eventBlockKindSchema2,
34861
35359
  eventSurface: eventSurfaceScopeSchema2,
34862
- filterEventPresets: z55.string().nullable(),
35360
+ filterEventPresets: z56.string().nullable(),
34863
35361
  scheduleScope: eventScheduleScopeSchema3
34864
35362
  });
34865
- eventCalendarRenderSchema = z55.object({
35363
+ eventCalendarRenderSchema = z56.object({
34866
35364
  display: eventCalendarDisplaySchema,
34867
35365
  hydration: eventCalendarHydrationSchema
34868
35366
  });
34869
35367
  eventCalendarIslandMetaCodec = createZodCodec(
34870
- z55.object({
34871
- siteId: z55.string(),
34872
- apiBaseUrl: z55.string().optional(),
35368
+ z56.object({
35369
+ siteId: z56.string(),
35370
+ apiBaseUrl: z56.string().optional(),
34873
35371
  stage: previewStageSchema.optional()
34874
35372
  })
34875
35373
  );
@@ -35661,7 +36159,7 @@ var init_model = __esm({
35661
36159
  });
35662
36160
 
35663
36161
  // ../blocks/src/system/blocks/offerings-preview/index.ts
35664
- import { z as z56 } from "zod";
36162
+ import { z as z57 } from "zod";
35665
36163
  function eventPresetLoader(preset2) {
35666
36164
  return {
35667
36165
  endpoint: "listPublicEvents",
@@ -35784,13 +36282,13 @@ var init_offerings_preview = __esm({
35784
36282
  init_shared3();
35785
36283
  init_shared4();
35786
36284
  init_model();
35787
- publicRouteCandidatesSchema = z56.object({
35788
- routes: z56.array(z56.object({
35789
- entityId: z56.string(),
35790
- path: z56.string(),
35791
- title: z56.string(),
35792
- kind: z56.enum(["page", "content"]),
35793
- contentTypeKey: z56.string().nullable().optional()
36285
+ publicRouteCandidatesSchema = z57.object({
36286
+ routes: z57.array(z57.object({
36287
+ entityId: z57.string(),
36288
+ path: z57.string(),
36289
+ title: z57.string(),
36290
+ kind: z57.enum(["page", "content"]),
36291
+ contentTypeKey: z57.string().nullable().optional()
35794
36292
  }))
35795
36293
  });
35796
36294
  groupOverrideFields = [
@@ -36080,7 +36578,7 @@ var init_offerings_preview = __esm({
36080
36578
  });
36081
36579
 
36082
36580
  // ../blocks/src/system/blocks/embed.ts
36083
- import { z as z57 } from "zod";
36581
+ import { z as z58 } from "zod";
36084
36582
  var embedFields, embedLayout2, embedManifest, embedEntrySchema, embedBlockDefinition;
36085
36583
  var init_embed = __esm({
36086
36584
  "../blocks/src/system/blocks/embed.ts"() {
@@ -36320,18 +36818,18 @@ var init_embed = __esm({
36320
36818
  spacing: "lg"
36321
36819
  }
36322
36820
  });
36323
- embedEntrySchema = z57.object({
36324
- id: z57.string(),
36325
- identifier: z57.string(),
36326
- title: z57.string(),
36327
- slug: z57.string().nullable().optional(),
36328
- content: z57.record(z57.string(), z57.unknown()).optional(),
36329
- publishedAt: z57.string().nullable().optional()
36821
+ embedEntrySchema = z58.object({
36822
+ id: z58.string(),
36823
+ identifier: z58.string(),
36824
+ title: z58.string(),
36825
+ slug: z58.string().nullable().optional(),
36826
+ content: z58.record(z58.string(), z58.unknown()).optional(),
36827
+ publishedAt: z58.string().nullable().optional()
36330
36828
  });
36331
36829
  embedBlockDefinition = {
36332
36830
  manifest: embedManifest,
36333
36831
  dataSchemas: {
36334
- entries: z57.array(embedEntrySchema).optional()
36832
+ entries: z58.array(embedEntrySchema).optional()
36335
36833
  },
36336
36834
  dataLoaders: {
36337
36835
  entries: {
@@ -37561,50 +38059,50 @@ var init_file_download = __esm({
37561
38059
  });
37562
38060
 
37563
38061
  // ../blocks/src/system/blocks/products/shared.ts
37564
- import { z as z58 } from "zod";
38062
+ import { z as z59 } from "zod";
37565
38063
  var publicProductVariantSchema, publicProductSchema, publicProductsResponseSchema;
37566
38064
  var init_shared6 = __esm({
37567
38065
  "../blocks/src/system/blocks/products/shared.ts"() {
37568
38066
  "use strict";
37569
- publicProductVariantSchema = z58.object({
37570
- id: z58.string(),
37571
- title: z58.string(),
37572
- sku: z58.string().nullable(),
37573
- priceCents: z58.number(),
37574
- stockQuantity: z58.number().nullable(),
37575
- soldOut: z58.boolean()
37576
- });
37577
- publicProductSchema = z58.object({
37578
- id: z58.string(),
37579
- contentEntryId: z58.string().nullable(),
37580
- title: z58.string(),
37581
- slug: z58.string(),
37582
- path: z58.string().nullable(),
37583
- status: z58.enum(["draft", "active"]),
37584
- priceCents: z58.number(),
37585
- currency: z58.string(),
37586
- productType: z58.enum(["physical", "digital"]),
37587
- requiresShipping: z58.boolean(),
37588
- hasVariants: z58.boolean(),
37589
- trackInventory: z58.boolean(),
37590
- soldOut: z58.boolean(),
37591
- category: z58.object({
37592
- id: z58.string(),
37593
- name: z58.string(),
37594
- slug: z58.string()
38067
+ publicProductVariantSchema = z59.object({
38068
+ id: z59.string(),
38069
+ title: z59.string(),
38070
+ sku: z59.string().nullable(),
38071
+ priceCents: z59.number(),
38072
+ stockQuantity: z59.number().nullable(),
38073
+ soldOut: z59.boolean()
38074
+ });
38075
+ publicProductSchema = z59.object({
38076
+ id: z59.string(),
38077
+ contentEntryId: z59.string().nullable(),
38078
+ title: z59.string(),
38079
+ slug: z59.string(),
38080
+ path: z59.string().nullable(),
38081
+ status: z59.enum(["draft", "active"]),
38082
+ priceCents: z59.number(),
38083
+ currency: z59.string(),
38084
+ productType: z59.enum(["physical", "digital"]),
38085
+ requiresShipping: z59.boolean(),
38086
+ hasVariants: z59.boolean(),
38087
+ trackInventory: z59.boolean(),
38088
+ soldOut: z59.boolean(),
38089
+ category: z59.object({
38090
+ id: z59.string(),
38091
+ name: z59.string(),
38092
+ slug: z59.string()
37595
38093
  }).nullable(),
37596
- summary: z58.string().nullable(),
37597
- body: z58.unknown().nullable(),
37598
- gallery: z58.array(
37599
- z58.object({
37600
- url: z58.string(),
37601
- alt: z58.string().nullable()
38094
+ summary: z59.string().nullable(),
38095
+ body: z59.unknown().nullable(),
38096
+ gallery: z59.array(
38097
+ z59.object({
38098
+ url: z59.string(),
38099
+ alt: z59.string().nullable()
37602
38100
  })
37603
38101
  ),
37604
- variants: z58.array(publicProductVariantSchema)
38102
+ variants: z59.array(publicProductVariantSchema)
37605
38103
  });
37606
- publicProductsResponseSchema = z58.object({
37607
- products: z58.array(publicProductSchema)
38104
+ publicProductsResponseSchema = z59.object({
38105
+ products: z59.array(publicProductSchema)
37608
38106
  });
37609
38107
  }
37610
38108
  });
@@ -37675,7 +38173,7 @@ var init_creditProducts = __esm({
37675
38173
  });
37676
38174
 
37677
38175
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
37678
- import { z as z59 } from "zod";
38176
+ import { z as z60 } from "zod";
37679
38177
  function deriveCommerceCheckoutState(state) {
37680
38178
  if (state.items.length === 0) {
37681
38179
  return { kind: "empty" };
@@ -37714,36 +38212,33 @@ var storedProductCartItemSchema, storedPassCartItemSchema;
37714
38212
  var init_shop_commerce_shared = __esm({
37715
38213
  "../blocks/src/system/runtime/nodes/shop-commerce.shared.ts"() {
37716
38214
  "use strict";
37717
- storedProductCartItemSchema = z59.object({
37718
- kind: z59.literal("product"),
37719
- productId: z59.string().min(1),
37720
- productCategoryId: z59.string().min(1).optional().nullable(),
37721
- variantId: z59.string().min(1).optional().nullable(),
37722
- title: z59.string().min(1),
37723
- variantTitle: z59.string().optional().nullable(),
37724
- quantity: z59.number().finite(),
37725
- unitPriceCents: z59.number().finite(),
37726
- currency: z59.string().min(1),
37727
- imageUrl: z59.string().optional().nullable(),
37728
- soldOut: z59.boolean().optional()
38215
+ storedProductCartItemSchema = z60.object({
38216
+ kind: z60.literal("product"),
38217
+ productId: z60.string().min(1),
38218
+ productCategoryId: z60.string().min(1).optional().nullable(),
38219
+ variantId: z60.string().min(1).optional().nullable(),
38220
+ title: z60.string().min(1),
38221
+ variantTitle: z60.string().optional().nullable(),
38222
+ quantity: z60.number().finite(),
38223
+ unitPriceCents: z60.number().finite(),
38224
+ currency: z60.string().min(1),
38225
+ imageUrl: z60.string().optional().nullable(),
38226
+ soldOut: z60.boolean().optional()
37729
38227
  });
37730
- storedPassCartItemSchema = z59.object({
37731
- kind: z59.literal("pass"),
37732
- passId: z59.string().min(1),
37733
- title: z59.string().min(1),
37734
- quantity: z59.number().finite().optional(),
37735
- unitPriceCents: z59.number().finite(),
37736
- currency: z59.string().min(1)
38228
+ storedPassCartItemSchema = z60.object({
38229
+ kind: z60.literal("pass"),
38230
+ passId: z60.string().min(1),
38231
+ title: z60.string().min(1),
38232
+ quantity: z60.number().finite().optional(),
38233
+ unitPriceCents: z60.number().finite(),
38234
+ currency: z60.string().min(1)
37737
38235
  });
37738
38236
  }
37739
38237
  });
37740
38238
 
37741
38239
  // ../blocks/src/system/runtime/nodes/commerce/shared/display.ts
37742
38240
  function formatCommercePrice(cents, currency) {
37743
- return new Intl.NumberFormat("en-US", {
37744
- style: "currency",
37745
- currency: currency.toUpperCase()
37746
- }).format(cents / 100);
38241
+ return formatCurrencyAmount(cents, currency);
37747
38242
  }
37748
38243
  function getPassesHeading(passes, explicitHeading) {
37749
38244
  if (explicitHeading) return explicitHeading;
@@ -37939,13 +38434,14 @@ function formatValidity(days) {
37939
38434
  var init_display = __esm({
37940
38435
  "../blocks/src/system/runtime/nodes/commerce/shared/display.ts"() {
37941
38436
  "use strict";
38437
+ init_src();
37942
38438
  init_creditProducts();
37943
38439
  init_shop_commerce_shared();
37944
38440
  }
37945
38441
  });
37946
38442
 
37947
38443
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
37948
- import { z as z60 } from "zod";
38444
+ import { z as z61 } from "zod";
37949
38445
  function resolveShowPricePerCredit(source) {
37950
38446
  return source.showPricePerCredit ?? true;
37951
38447
  }
@@ -37973,211 +38469,211 @@ var init_shop_interactive = __esm({
37973
38469
  init_islands();
37974
38470
  init_runtime();
37975
38471
  init_contract_schemas();
37976
- shopModeSchema = z60.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
37977
- contentEntrySchema3 = z60.object({
37978
- id: z60.string().nullable().optional(),
37979
- slug: z60.string().nullable().optional()
38472
+ shopModeSchema = z61.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
38473
+ contentEntrySchema3 = z61.object({
38474
+ id: z61.string().nullable().optional(),
38475
+ slug: z61.string().nullable().optional()
37980
38476
  }).nullable();
37981
- shopSourceSchema = z60.object({
37982
- className: z60.string().nullable().optional(),
38477
+ shopSourceSchema = z61.object({
38478
+ className: z61.string().nullable().optional(),
37983
38479
  mode: shopModeSchema.optional(),
37984
- heading: z60.string().nullable().optional(),
37985
- productSlug: z60.string().nullable().optional(),
37986
- showPasses: z60.boolean().optional(),
37987
- showMemberships: z60.boolean().optional(),
37988
- layout: z60.enum(["grid", "list"]).optional(),
37989
- columns: z60.string().optional(),
37990
- showDescriptions: z60.boolean().optional(),
37991
- showSummary: z60.boolean().optional(),
37992
- showBody: z60.boolean().optional(),
37993
- showPrices: z60.boolean().optional(),
37994
- showValidityPeriod: z60.boolean().optional(),
37995
- showPricePerCredit: z60.boolean().nullable().optional(),
37996
- passesHeading: z60.string().optional(),
37997
- membershipsHeading: z60.string().optional(),
37998
- buyButtonText: z60.string().optional(),
37999
- addButtonText: z60.string().optional(),
38000
- passPurchaseMode: z60.enum(["add_to_cart", "buy_now"]).optional(),
38001
- subscribeButtonText: z60.string().optional(),
38002
- emptyStateText: z60.string().optional(),
38003
- checkoutButtonText: z60.string().optional(),
38004
- clearButtonText: z60.string().optional(),
38005
- submitButtonText: z60.string().optional(),
38480
+ heading: z61.string().nullable().optional(),
38481
+ productSlug: z61.string().nullable().optional(),
38482
+ showPasses: z61.boolean().optional(),
38483
+ showMemberships: z61.boolean().optional(),
38484
+ layout: z61.enum(["grid", "list"]).optional(),
38485
+ columns: z61.string().optional(),
38486
+ showDescriptions: z61.boolean().optional(),
38487
+ showSummary: z61.boolean().optional(),
38488
+ showBody: z61.boolean().optional(),
38489
+ showPrices: z61.boolean().optional(),
38490
+ showValidityPeriod: z61.boolean().optional(),
38491
+ showPricePerCredit: z61.boolean().nullable().optional(),
38492
+ passesHeading: z61.string().optional(),
38493
+ membershipsHeading: z61.string().optional(),
38494
+ buyButtonText: z61.string().optional(),
38495
+ addButtonText: z61.string().optional(),
38496
+ passPurchaseMode: z61.enum(["add_to_cart", "buy_now"]).optional(),
38497
+ subscribeButtonText: z61.string().optional(),
38498
+ emptyStateText: z61.string().optional(),
38499
+ checkoutButtonText: z61.string().optional(),
38500
+ clearButtonText: z61.string().optional(),
38501
+ submitButtonText: z61.string().optional(),
38006
38502
  contentEntry: contentEntrySchema3.optional(),
38007
- passes: z60.array(publicPassProductSchema).nullable().optional(),
38008
- memberships: z60.array(publicMembershipProductSchema).nullable().optional(),
38009
- products: z60.array(publicProductSchema).nullable().optional(),
38010
- siteId: z60.string().optional(),
38011
- apiBaseUrl: z60.string().optional(),
38503
+ passes: z61.array(publicPassProductSchema).nullable().optional(),
38504
+ memberships: z61.array(publicMembershipProductSchema).nullable().optional(),
38505
+ products: z61.array(publicProductSchema).nullable().optional(),
38506
+ siteId: z61.string().optional(),
38507
+ apiBaseUrl: z61.string().optional(),
38012
38508
  stage: previewStageSchema.optional()
38013
38509
  });
38014
- productVariantOptionDisplaySchema = z60.object({
38015
- id: z60.string(),
38016
- label: z60.string(),
38017
- soldOut: z60.boolean()
38018
- });
38019
- productCardDisplaySchema = z60.object({
38020
- productId: z60.string(),
38021
- title: z60.string(),
38022
- path: z60.string().nullable(),
38023
- summary: z60.string().nullable(),
38024
- priceLabel: z60.string().nullable(),
38025
- image: z60.object({
38026
- url: z60.string(),
38027
- alt: z60.string().nullable()
38510
+ productVariantOptionDisplaySchema = z61.object({
38511
+ id: z61.string(),
38512
+ label: z61.string(),
38513
+ soldOut: z61.boolean()
38514
+ });
38515
+ productCardDisplaySchema = z61.object({
38516
+ productId: z61.string(),
38517
+ title: z61.string(),
38518
+ path: z61.string().nullable(),
38519
+ summary: z61.string().nullable(),
38520
+ priceLabel: z61.string().nullable(),
38521
+ image: z61.object({
38522
+ url: z61.string(),
38523
+ alt: z61.string().nullable()
38028
38524
  }).nullable(),
38029
- variantOptions: z60.array(productVariantOptionDisplaySchema),
38030
- selectedVariantId: z60.string().nullable(),
38031
- selectionLabel: z60.string(),
38032
- actionLabel: z60.string(),
38033
- soldOut: z60.boolean()
38034
- });
38035
- productListDisplaySchema = z60.object({
38036
- kind: z60.literal("product-list"),
38037
- state: z60.enum(["empty", "ready"]),
38038
- heading: z60.string().nullable(),
38039
- className: z60.string().nullable(),
38040
- layout: z60.enum(["grid", "list"]),
38041
- columns: z60.string(),
38042
- emptyMessage: z60.string(),
38043
- cards: z60.array(productCardDisplaySchema)
38044
- });
38045
- productDetailDisplaySchema = z60.discriminatedUnion("state", [
38046
- z60.object({
38047
- kind: z60.literal("product-detail"),
38048
- state: z60.literal("empty"),
38049
- heading: z60.string().nullable(),
38050
- className: z60.string().nullable(),
38051
- emptyMessage: z60.string()
38525
+ variantOptions: z61.array(productVariantOptionDisplaySchema),
38526
+ selectedVariantId: z61.string().nullable(),
38527
+ selectionLabel: z61.string(),
38528
+ actionLabel: z61.string(),
38529
+ soldOut: z61.boolean()
38530
+ });
38531
+ productListDisplaySchema = z61.object({
38532
+ kind: z61.literal("product-list"),
38533
+ state: z61.enum(["empty", "ready"]),
38534
+ heading: z61.string().nullable(),
38535
+ className: z61.string().nullable(),
38536
+ layout: z61.enum(["grid", "list"]),
38537
+ columns: z61.string(),
38538
+ emptyMessage: z61.string(),
38539
+ cards: z61.array(productCardDisplaySchema)
38540
+ });
38541
+ productDetailDisplaySchema = z61.discriminatedUnion("state", [
38542
+ z61.object({
38543
+ kind: z61.literal("product-detail"),
38544
+ state: z61.literal("empty"),
38545
+ heading: z61.string().nullable(),
38546
+ className: z61.string().nullable(),
38547
+ emptyMessage: z61.string()
38052
38548
  }),
38053
- z60.object({
38054
- kind: z60.literal("product-detail"),
38055
- state: z60.literal("ready"),
38056
- heading: z60.string().nullable(),
38057
- className: z60.string().nullable(),
38058
- title: z60.string(),
38059
- priceLabel: z60.string(),
38060
- summary: z60.string().nullable(),
38061
- categoryLabel: z60.string().nullable(),
38062
- gallery: z60.array(z60.object({
38063
- url: z60.string(),
38064
- alt: z60.string().nullable()
38549
+ z61.object({
38550
+ kind: z61.literal("product-detail"),
38551
+ state: z61.literal("ready"),
38552
+ heading: z61.string().nullable(),
38553
+ className: z61.string().nullable(),
38554
+ title: z61.string(),
38555
+ priceLabel: z61.string(),
38556
+ summary: z61.string().nullable(),
38557
+ categoryLabel: z61.string().nullable(),
38558
+ gallery: z61.array(z61.object({
38559
+ url: z61.string(),
38560
+ alt: z61.string().nullable()
38065
38561
  })),
38066
- variantOptions: z60.array(productVariantOptionDisplaySchema),
38067
- selectedVariantId: z60.string().nullable(),
38068
- selectionLabel: z60.string(),
38069
- actionLabel: z60.string(),
38070
- soldOut: z60.boolean(),
38071
- body: z60.unknown().nullable()
38562
+ variantOptions: z61.array(productVariantOptionDisplaySchema),
38563
+ selectedVariantId: z61.string().nullable(),
38564
+ selectionLabel: z61.string(),
38565
+ actionLabel: z61.string(),
38566
+ soldOut: z61.boolean(),
38567
+ body: z61.unknown().nullable()
38072
38568
  })
38073
38569
  ]);
38074
- passCardDisplaySchema = z60.object({
38075
- id: z60.string(),
38076
- title: z60.string(),
38077
- description: z60.string().nullable(),
38078
- priceLabel: z60.string(),
38079
- creditsLabel: z60.string(),
38080
- perCreditLabel: z60.string().nullable(),
38081
- validityLabel: z60.string().nullable(),
38082
- actionLabel: z60.string()
38083
- });
38084
- membershipCardDisplaySchema = z60.object({
38085
- id: z60.string(),
38086
- title: z60.string(),
38087
- description: z60.string().nullable(),
38088
- priceLabel: z60.string(),
38089
- intervalLabel: z60.string(),
38090
- actionLabel: z60.string()
38091
- });
38092
- passesMembershipsDisplaySchema = z60.object({
38093
- kind: z60.literal("passes-memberships"),
38094
- state: z60.enum(["empty", "ready"]),
38095
- className: z60.string().nullable(),
38096
- layout: z60.enum(["grid", "list"]),
38097
- columns: z60.string(),
38098
- emptyMessage: z60.string(),
38099
- passesHeading: z60.string(),
38100
- membershipsHeading: z60.string(),
38101
- passes: z60.array(passCardDisplaySchema),
38102
- memberships: z60.array(membershipCardDisplaySchema)
38103
- });
38104
- cartLineDisplaySchema = z60.object({
38105
- key: z60.string(),
38106
- title: z60.string(),
38107
- priceLabel: z60.string(),
38108
- quantity: z60.number(),
38109
- quantityEditable: z60.boolean()
38110
- });
38111
- cartDisplaySchema = z60.object({
38112
- kind: z60.literal("cart"),
38113
- state: z60.enum(["empty", "ready"]),
38114
- heading: z60.string().nullable(),
38115
- className: z60.string().nullable(),
38116
- emptyMessage: z60.string(),
38117
- supportText: z60.string().nullable(),
38118
- items: z60.array(cartLineDisplaySchema),
38119
- subtotalLabel: z60.string().nullable(),
38120
- checkoutButtonText: z60.string(),
38121
- clearButtonText: z60.string()
38122
- });
38123
- checkoutDisplaySchema = z60.object({
38124
- kind: z60.literal("checkout"),
38125
- state: z60.enum(["empty", "blocked", "ready"]),
38126
- heading: z60.string().nullable(),
38127
- className: z60.string().nullable(),
38128
- message: z60.string().nullable(),
38129
- submitButtonText: z60.string()
38130
- });
38131
- passesMembershipsHydrationSchema = z60.object({
38132
- passes: z60.array(publicPassProductSchema),
38133
- memberships: z60.array(publicMembershipProductSchema),
38134
- passPurchaseMode: z60.enum(["add_to_cart", "buy_now"])
38135
- });
38136
- productListHydrationSchema = z60.object({
38137
- products: z60.array(publicProductSchema),
38138
- showSummary: z60.boolean(),
38139
- showPrices: z60.boolean(),
38140
- addButtonText: z60.string()
38141
- });
38142
- productDetailHydrationSchema = z60.object({
38143
- products: z60.array(publicProductSchema),
38144
- productId: z60.string().nullable(),
38145
- showSummary: z60.boolean(),
38146
- showBody: z60.boolean(),
38147
- addButtonText: z60.string()
38148
- });
38149
- cartHydrationSchema = z60.object({
38150
- emptyStateText: z60.string(),
38151
- checkoutButtonText: z60.string(),
38152
- clearButtonText: z60.string()
38153
- });
38154
- checkoutHydrationSchema = z60.object({
38155
- emptyStateText: z60.string(),
38156
- submitButtonText: z60.string()
38157
- });
38158
- passesMembershipsRenderSchema = z60.object({
38570
+ passCardDisplaySchema = z61.object({
38571
+ id: z61.string(),
38572
+ title: z61.string(),
38573
+ description: z61.string().nullable(),
38574
+ priceLabel: z61.string(),
38575
+ creditsLabel: z61.string(),
38576
+ perCreditLabel: z61.string().nullable(),
38577
+ validityLabel: z61.string().nullable(),
38578
+ actionLabel: z61.string()
38579
+ });
38580
+ membershipCardDisplaySchema = z61.object({
38581
+ id: z61.string(),
38582
+ title: z61.string(),
38583
+ description: z61.string().nullable(),
38584
+ priceLabel: z61.string(),
38585
+ intervalLabel: z61.string(),
38586
+ actionLabel: z61.string()
38587
+ });
38588
+ passesMembershipsDisplaySchema = z61.object({
38589
+ kind: z61.literal("passes-memberships"),
38590
+ state: z61.enum(["empty", "ready"]),
38591
+ className: z61.string().nullable(),
38592
+ layout: z61.enum(["grid", "list"]),
38593
+ columns: z61.string(),
38594
+ emptyMessage: z61.string(),
38595
+ passesHeading: z61.string(),
38596
+ membershipsHeading: z61.string(),
38597
+ passes: z61.array(passCardDisplaySchema),
38598
+ memberships: z61.array(membershipCardDisplaySchema)
38599
+ });
38600
+ cartLineDisplaySchema = z61.object({
38601
+ key: z61.string(),
38602
+ title: z61.string(),
38603
+ priceLabel: z61.string(),
38604
+ quantity: z61.number(),
38605
+ quantityEditable: z61.boolean()
38606
+ });
38607
+ cartDisplaySchema = z61.object({
38608
+ kind: z61.literal("cart"),
38609
+ state: z61.enum(["empty", "ready"]),
38610
+ heading: z61.string().nullable(),
38611
+ className: z61.string().nullable(),
38612
+ emptyMessage: z61.string(),
38613
+ supportText: z61.string().nullable(),
38614
+ items: z61.array(cartLineDisplaySchema),
38615
+ subtotalLabel: z61.string().nullable(),
38616
+ checkoutButtonText: z61.string(),
38617
+ clearButtonText: z61.string()
38618
+ });
38619
+ checkoutDisplaySchema = z61.object({
38620
+ kind: z61.literal("checkout"),
38621
+ state: z61.enum(["empty", "blocked", "ready"]),
38622
+ heading: z61.string().nullable(),
38623
+ className: z61.string().nullable(),
38624
+ message: z61.string().nullable(),
38625
+ submitButtonText: z61.string()
38626
+ });
38627
+ passesMembershipsHydrationSchema = z61.object({
38628
+ passes: z61.array(publicPassProductSchema),
38629
+ memberships: z61.array(publicMembershipProductSchema),
38630
+ passPurchaseMode: z61.enum(["add_to_cart", "buy_now"])
38631
+ });
38632
+ productListHydrationSchema = z61.object({
38633
+ products: z61.array(publicProductSchema),
38634
+ showSummary: z61.boolean(),
38635
+ showPrices: z61.boolean(),
38636
+ addButtonText: z61.string()
38637
+ });
38638
+ productDetailHydrationSchema = z61.object({
38639
+ products: z61.array(publicProductSchema),
38640
+ productId: z61.string().nullable(),
38641
+ showSummary: z61.boolean(),
38642
+ showBody: z61.boolean(),
38643
+ addButtonText: z61.string()
38644
+ });
38645
+ cartHydrationSchema = z61.object({
38646
+ emptyStateText: z61.string(),
38647
+ checkoutButtonText: z61.string(),
38648
+ clearButtonText: z61.string()
38649
+ });
38650
+ checkoutHydrationSchema = z61.object({
38651
+ emptyStateText: z61.string(),
38652
+ submitButtonText: z61.string()
38653
+ });
38654
+ passesMembershipsRenderSchema = z61.object({
38159
38655
  display: passesMembershipsDisplaySchema,
38160
38656
  hydration: passesMembershipsHydrationSchema
38161
38657
  });
38162
- productListRenderSchema = z60.object({
38658
+ productListRenderSchema = z61.object({
38163
38659
  display: productListDisplaySchema,
38164
38660
  hydration: productListHydrationSchema
38165
38661
  });
38166
- productDetailRenderSchema = z60.object({
38662
+ productDetailRenderSchema = z61.object({
38167
38663
  display: productDetailDisplaySchema,
38168
38664
  hydration: productDetailHydrationSchema
38169
38665
  });
38170
- cartRenderSchema = z60.object({
38666
+ cartRenderSchema = z61.object({
38171
38667
  display: cartDisplaySchema,
38172
38668
  hydration: cartHydrationSchema
38173
38669
  });
38174
- checkoutRenderSchema = z60.object({
38670
+ checkoutRenderSchema = z61.object({
38175
38671
  display: checkoutDisplaySchema,
38176
38672
  hydration: checkoutHydrationSchema
38177
38673
  });
38178
- shopIslandMetaCodec = createZodCodec(z60.object({
38179
- siteId: z60.string().optional(),
38180
- apiBaseUrl: z60.string().optional(),
38674
+ shopIslandMetaCodec = createZodCodec(z61.object({
38675
+ siteId: z61.string().optional(),
38676
+ apiBaseUrl: z61.string().optional(),
38181
38677
  stage: previewStageSchema.optional()
38182
38678
  }));
38183
38679
  shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -38349,7 +38845,7 @@ var init_shop_interactive = __esm({
38349
38845
  });
38350
38846
 
38351
38847
  // ../blocks/src/system/blocks/shop.ts
38352
- import { z as z61 } from "zod";
38848
+ import { z as z62 } from "zod";
38353
38849
  var shopManifest, shopBlockDefinition;
38354
38850
  var init_shop = __esm({
38355
38851
  "../blocks/src/system/blocks/shop.ts"() {
@@ -38557,9 +39053,9 @@ var init_shop = __esm({
38557
39053
  runtime: shopBlockRuntime,
38558
39054
  dataSchemas: {
38559
39055
  // listPublicPasses returns { passes: [...] }
38560
- passes: z61.object({ passes: z61.array(publicPassProductSchema) }).optional(),
39056
+ passes: z62.object({ passes: z62.array(publicPassProductSchema) }).optional(),
38561
39057
  // listPublicMemberships returns { memberships: [...] }
38562
- memberships: z61.object({ memberships: z61.array(publicMembershipProductSchema) }).optional()
39058
+ memberships: z62.object({ memberships: z62.array(publicMembershipProductSchema) }).optional()
38563
39059
  },
38564
39060
  dataLoaders: {
38565
39061
  // Load passes for display
@@ -38584,7 +39080,7 @@ var init_shop = __esm({
38584
39080
  });
38585
39081
 
38586
39082
  // ../blocks/src/system/blocks/product-list.ts
38587
- import { z as z62 } from "zod";
39083
+ import { z as z63 } from "zod";
38588
39084
  var productListManifest, productListBlockDefinition, productListDataSchema;
38589
39085
  var init_product_list = __esm({
38590
39086
  "../blocks/src/system/blocks/product-list.ts"() {
@@ -38729,7 +39225,7 @@ var init_product_list = __esm({
38729
39225
  }
38730
39226
  }
38731
39227
  };
38732
- productListDataSchema = z62.object({
39228
+ productListDataSchema = z63.object({
38733
39229
  products: publicProductsResponseSchema.optional()
38734
39230
  });
38735
39231
  }
@@ -39032,7 +39528,7 @@ var init_checkout = __esm({
39032
39528
  });
39033
39529
 
39034
39530
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
39035
- import { z as z63 } from "zod";
39531
+ import { z as z64 } from "zod";
39036
39532
  function buildGiftingDisplay(source) {
39037
39533
  return {
39038
39534
  kind: "gifting",
@@ -39051,71 +39547,71 @@ var init_gifting_interactive = __esm({
39051
39547
  "use strict";
39052
39548
  init_islands();
39053
39549
  init_runtime();
39054
- publicGiftCardOfferSchema = z63.object({
39055
- id: z63.string(),
39056
- kind: z63.literal("gift_card"),
39057
- title: z63.string(),
39058
- description: z63.string().nullable(),
39059
- sortOrder: z63.number().int(),
39060
- giftCard: z63.object({
39061
- fixedDenominations: z63.array(z63.number().int().positive()),
39062
- customAmountEnabled: z63.boolean(),
39063
- customAmountMinCents: z63.number().int().positive(),
39064
- customAmountMaxCents: z63.number().int().positive()
39550
+ publicGiftCardOfferSchema = z64.object({
39551
+ id: z64.string(),
39552
+ kind: z64.literal("gift_card"),
39553
+ title: z64.string(),
39554
+ description: z64.string().nullable(),
39555
+ sortOrder: z64.number().int(),
39556
+ giftCard: z64.object({
39557
+ fixedDenominations: z64.array(z64.number().int().positive()),
39558
+ customAmountEnabled: z64.boolean(),
39559
+ customAmountMinCents: z64.number().int().positive(),
39560
+ customAmountMaxCents: z64.number().int().positive()
39065
39561
  }),
39066
- voucher: z63.null()
39067
- });
39068
- publicVoucherOfferSchema = z63.object({
39069
- id: z63.string(),
39070
- kind: z63.literal("voucher"),
39071
- title: z63.string(),
39072
- description: z63.string().nullable(),
39073
- sortOrder: z63.number().int(),
39074
- giftCard: z63.null(),
39075
- voucher: z63.object({
39076
- purchaseAmountCents: z63.number().int().positive()
39562
+ voucher: z64.null()
39563
+ });
39564
+ publicVoucherOfferSchema = z64.object({
39565
+ id: z64.string(),
39566
+ kind: z64.literal("voucher"),
39567
+ title: z64.string(),
39568
+ description: z64.string().nullable(),
39569
+ sortOrder: z64.number().int(),
39570
+ giftCard: z64.null(),
39571
+ voucher: z64.object({
39572
+ purchaseAmountCents: z64.number().int().positive()
39077
39573
  })
39078
39574
  });
39079
- publicGiftingOffersResponseSchema = z63.object({
39080
- currency: z63.string(),
39081
- giftCards: z63.array(publicGiftCardOfferSchema),
39082
- vouchers: z63.array(publicVoucherOfferSchema)
39575
+ publicGiftingOffersResponseSchema = z64.object({
39576
+ currency: z64.string(),
39577
+ giftCards: z64.array(publicGiftCardOfferSchema),
39578
+ vouchers: z64.array(publicVoucherOfferSchema)
39083
39579
  });
39084
- giftingSourceSchema = z63.object({
39085
- siteId: z63.string().optional(),
39086
- apiBaseUrl: z63.string().optional(),
39580
+ giftingSourceSchema = z64.object({
39581
+ siteId: z64.string().optional(),
39582
+ apiBaseUrl: z64.string().optional(),
39087
39583
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
39088
- className: z63.string().nullable().optional(),
39089
- heading: z63.string().nullable().optional(),
39090
- intro: z63.string().nullable().optional(),
39091
- giftCardsHeading: z63.string().nullable().optional(),
39092
- vouchersHeading: z63.string().nullable().optional(),
39093
- emptyStateText: z63.string().nullable().optional(),
39094
- checkoutButtonText: z63.string().nullable().optional(),
39095
- successMessage: z63.string().nullable().optional()
39096
- });
39097
- giftingDisplaySchema = z63.object({
39098
- kind: z63.literal("gifting"),
39099
- state: z63.literal("ready"),
39100
- className: z63.string().nullable(),
39101
- heading: z63.string(),
39102
- intro: z63.string().nullable(),
39103
- giftCardsHeading: z63.string(),
39104
- vouchersHeading: z63.string(),
39105
- emptyStateText: z63.string()
39106
- });
39107
- giftingHydrationSchema = z63.object({
39584
+ className: z64.string().nullable().optional(),
39585
+ heading: z64.string().nullable().optional(),
39586
+ intro: z64.string().nullable().optional(),
39587
+ giftCardsHeading: z64.string().nullable().optional(),
39588
+ vouchersHeading: z64.string().nullable().optional(),
39589
+ emptyStateText: z64.string().nullable().optional(),
39590
+ checkoutButtonText: z64.string().nullable().optional(),
39591
+ successMessage: z64.string().nullable().optional()
39592
+ });
39593
+ giftingDisplaySchema = z64.object({
39594
+ kind: z64.literal("gifting"),
39595
+ state: z64.literal("ready"),
39596
+ className: z64.string().nullable(),
39597
+ heading: z64.string(),
39598
+ intro: z64.string().nullable(),
39599
+ giftCardsHeading: z64.string(),
39600
+ vouchersHeading: z64.string(),
39601
+ emptyStateText: z64.string()
39602
+ });
39603
+ giftingHydrationSchema = z64.object({
39108
39604
  offers: publicGiftingOffersResponseSchema.nullable(),
39109
- checkoutButtonText: z63.string(),
39110
- successMessage: z63.string()
39605
+ checkoutButtonText: z64.string(),
39606
+ successMessage: z64.string()
39111
39607
  });
39112
- giftingRenderSchema = z63.object({
39608
+ giftingRenderSchema = z64.object({
39113
39609
  display: giftingDisplaySchema,
39114
39610
  hydration: giftingHydrationSchema
39115
39611
  });
39116
- giftingIslandMetaCodec = createZodCodec(z63.object({
39117
- siteId: z63.string().optional(),
39118
- apiBaseUrl: z63.string().optional()
39612
+ giftingIslandMetaCodec = createZodCodec(z64.object({
39613
+ siteId: z64.string().optional(),
39614
+ apiBaseUrl: z64.string().optional()
39119
39615
  }));
39120
39616
  giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
39121
39617
  "siteId",
@@ -39288,6 +39784,94 @@ var init_gifting = __esm({
39288
39784
  }
39289
39785
  });
39290
39786
 
39787
+ // ../blocks/src/system/blocks/newsletter-signup-destination.ts
39788
+ function parseNewsletterSignupBlockId(value) {
39789
+ const trimmed = parseTrimmedString(value);
39790
+ return trimmed && BLOCK_ID_PATTERN.test(trimmed) ? trimmed : null;
39791
+ }
39792
+ function parseSignedNewsletterDestinationRef(value) {
39793
+ const trimmed = parseTrimmedString(value);
39794
+ return trimmed && SIGNED_DESTINATION_REF_PATTERN.test(trimmed) ? trimmed : null;
39795
+ }
39796
+ function parseNewsletterSignupDestinationProvider(value) {
39797
+ return value === "riverbank" || value === "mailchimp" ? value : null;
39798
+ }
39799
+ function buildNewsletterSignupBlockRef(blockId) {
39800
+ const parsed = parseNewsletterSignupBlockId(blockId);
39801
+ return parsed ? { tag: "block_ref", blockId: parsed } : null;
39802
+ }
39803
+ function normalizeNewsletterSignupEditorValuesForDestination(values) {
39804
+ const destinationProvider = parseNewsletterSignupDestinationProvider(values.destinationProvider) ?? "riverbank";
39805
+ if (destinationProvider === "mailchimp") {
39806
+ return {
39807
+ destinationProvider,
39808
+ mailchimpAudienceId: values.mailchimpAudienceId,
39809
+ mailchimpTags: values.mailchimpTags
39810
+ };
39811
+ }
39812
+ return {
39813
+ destinationProvider,
39814
+ listId: values.listId,
39815
+ tags: values.tags
39816
+ };
39817
+ }
39818
+ function deriveNewsletterSignupRuntimeSource(values) {
39819
+ const normalized = normalizeNewsletterSignupEditorValuesForDestination(values);
39820
+ if (normalized.destinationProvider === "mailchimp") {
39821
+ return {
39822
+ destinationProvider: "mailchimp",
39823
+ listId: null,
39824
+ tags: null
39825
+ };
39826
+ }
39827
+ return {
39828
+ destinationProvider: "riverbank",
39829
+ listId: parseTrimmedString(normalized.listId),
39830
+ tags: parseTrimmedString(normalized.tags)
39831
+ };
39832
+ }
39833
+ function sanitizeNewsletterSignupPublicContent(content) {
39834
+ if (!isRecord7(content)) return content;
39835
+ const provider = parseNewsletterSignupDestinationProvider(content.destinationProvider) ?? getProviderFromExplicitDestination(content.destination);
39836
+ const {
39837
+ destination: _destination,
39838
+ destinationProvider: _destinationProvider,
39839
+ mailchimpAudienceId: _mailchimpAudienceId,
39840
+ mailchimpTags: _mailchimpTags,
39841
+ listId,
39842
+ tags: tags2,
39843
+ ...publicContent
39844
+ } = content;
39845
+ const mutablePublicContent = { ...publicContent };
39846
+ if (provider !== "mailchimp") {
39847
+ if ("listId" in content) mutablePublicContent.listId = listId;
39848
+ if ("tags" in content) mutablePublicContent.tags = tags2;
39849
+ }
39850
+ return mutablePublicContent;
39851
+ }
39852
+ function getProviderFromExplicitDestination(destination) {
39853
+ if (!isRecord7(destination) || typeof destination.tag !== "string") return null;
39854
+ if (destination.tag === "riverbank_list") return "riverbank";
39855
+ if (destination.tag === "mailchimp_audience") return "mailchimp";
39856
+ return null;
39857
+ }
39858
+ function parseTrimmedString(value) {
39859
+ if (typeof value !== "string") return null;
39860
+ const trimmed = value.trim();
39861
+ return trimmed.length > 0 ? trimmed : null;
39862
+ }
39863
+ function isRecord7(value) {
39864
+ return typeof value === "object" && value !== null;
39865
+ }
39866
+ var BLOCK_ID_PATTERN, SIGNED_DESTINATION_REF_PATTERN;
39867
+ var init_newsletter_signup_destination = __esm({
39868
+ "../blocks/src/system/blocks/newsletter-signup-destination.ts"() {
39869
+ "use strict";
39870
+ BLOCK_ID_PATTERN = /^[A-Za-z0-9._:-]{1,200}$/;
39871
+ SIGNED_DESTINATION_REF_PATTERN = /^[A-Za-z0-9._~-]{16,1000}$/;
39872
+ }
39873
+ });
39874
+
39291
39875
  // ../blocks/src/system/runtime/nodes/newsletter-form.types.ts
39292
39876
  function getPresetFields(preset2, options) {
39293
39877
  const includePhone = Boolean(options?.includePhone);
@@ -39344,7 +39928,7 @@ var init_newsletter_form_types = __esm({
39344
39928
  });
39345
39929
 
39346
39930
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
39347
- import { z as z64 } from "zod";
39931
+ import { z as z65 } from "zod";
39348
39932
  function buildNewsletterDisplay(source) {
39349
39933
  const preset2 = source.preset ?? "emailOnly";
39350
39934
  const includePhone = source.includePhone ?? false;
@@ -39357,56 +39941,87 @@ function buildNewsletterDisplay(source) {
39357
39941
  fields: getPresetFields(preset2, { includePhone })
39358
39942
  };
39359
39943
  }
39360
- var newsletterPresetSchema, newsletterFieldSchema, newsletterSourceSchema, newsletterDisplaySchema, newsletterHydrationSchema, newsletterRenderSchema, newsletterIslandMetaCodec, newsletterIslandMetaKeys, newsletterFormBlockRuntime, newsletterFormInteractiveIslandPropsCodec;
39944
+ function parseRequiredNewsletterSignupBlockId(value) {
39945
+ const parsed = parseNewsletterSignupBlockId(value);
39946
+ if (!parsed) {
39947
+ throw new Error("Newsletter signup block destination ref requires blockId");
39948
+ }
39949
+ return parsed;
39950
+ }
39951
+ function parseRequiredSignedNewsletterDestinationRef(value) {
39952
+ const parsed = parseSignedNewsletterDestinationRef(value);
39953
+ if (!parsed) {
39954
+ throw new Error("Newsletter signup signed destination ref requires token");
39955
+ }
39956
+ return parsed;
39957
+ }
39958
+ var newsletterPresetSchema, newsletterDestinationProviderSchema, newsletterFieldSchema, newsletterSignupBlockIdSchema, signedNewsletterDestinationRefSchema, newsletterPublicDestinationRefSchema, newsletterSourceSchema, newsletterDisplaySchema, newsletterHydrationSchema, newsletterRenderSchema, newsletterIslandMetaCodec, newsletterIslandMetaKeys, newsletterFormBlockRuntime, newsletterFormInteractiveIslandPropsCodec;
39361
39959
  var init_newsletter_form_interactive = __esm({
39362
39960
  "../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts"() {
39363
39961
  "use strict";
39364
39962
  init_islands();
39365
39963
  init_runtime();
39964
+ init_newsletter_signup_destination();
39366
39965
  init_newsletter_form_types();
39367
- newsletterPresetSchema = z64.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
39368
- newsletterFieldSchema = z64.object({
39369
- id: z64.string(),
39370
- type: z64.enum(["email", "text"]),
39371
- label: z64.string(),
39372
- required: z64.boolean(),
39373
- placeholder: z64.string().optional()
39374
- });
39375
- newsletterSourceSchema = z64.object({
39376
- siteId: z64.string().optional(),
39377
- apiBaseUrl: z64.string().optional(),
39378
- listId: z64.string().nullable().optional(),
39966
+ newsletterPresetSchema = z65.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
39967
+ newsletterDestinationProviderSchema = z65.enum(["riverbank", "mailchimp"]);
39968
+ newsletterFieldSchema = z65.object({
39969
+ id: z65.string(),
39970
+ type: z65.enum(["email", "text"]),
39971
+ label: z65.string(),
39972
+ required: z65.boolean(),
39973
+ placeholder: z65.string().optional()
39974
+ });
39975
+ newsletterSignupBlockIdSchema = z65.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
39976
+ signedNewsletterDestinationRefSchema = z65.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
39977
+ newsletterPublicDestinationRefSchema = z65.discriminatedUnion("tag", [
39978
+ z65.object({
39979
+ tag: z65.literal("block_ref"),
39980
+ blockId: newsletterSignupBlockIdSchema
39981
+ }),
39982
+ z65.object({
39983
+ tag: z65.literal("signed_destination_ref"),
39984
+ token: signedNewsletterDestinationRefSchema
39985
+ })
39986
+ ]);
39987
+ newsletterSourceSchema = z65.object({
39988
+ blockId: z65.string().nullable().optional(),
39989
+ siteId: z65.string().optional(),
39990
+ apiBaseUrl: z65.string().optional(),
39991
+ listId: z65.string().nullable().optional(),
39992
+ destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
39379
39993
  preset: newsletterPresetSchema.optional(),
39380
- includePhone: z64.boolean().optional(),
39381
- buttonLabel: z64.string().nullable().optional(),
39382
- successMessage: z64.string().nullable().optional(),
39383
- privacyNote: z64.string().nullable().optional(),
39384
- tags: z64.string().nullable().optional(),
39385
- spamProtectionEnabled: z64.boolean().optional(),
39386
- className: z64.string().nullable().optional()
39387
- });
39388
- newsletterDisplaySchema = z64.object({
39389
- kind: z64.literal("newsletter-form"),
39390
- className: z64.string().nullable(),
39391
- buttonLabel: z64.string(),
39392
- successMessage: z64.string().nullable(),
39393
- privacyNote: z64.string().nullable(),
39394
- fields: z64.array(newsletterFieldSchema)
39395
- });
39396
- newsletterHydrationSchema = z64.object({
39397
- listId: z64.string().nullable().optional(),
39994
+ includePhone: z65.boolean().optional(),
39995
+ buttonLabel: z65.string().nullable().optional(),
39996
+ successMessage: z65.string().nullable().optional(),
39997
+ privacyNote: z65.string().nullable().optional(),
39998
+ tags: z65.string().nullable().optional(),
39999
+ spamProtectionEnabled: z65.boolean().optional(),
40000
+ className: z65.string().nullable().optional()
40001
+ });
40002
+ newsletterDisplaySchema = z65.object({
40003
+ kind: z65.literal("newsletter-form"),
40004
+ className: z65.string().nullable(),
40005
+ buttonLabel: z65.string(),
40006
+ successMessage: z65.string().nullable(),
40007
+ privacyNote: z65.string().nullable(),
40008
+ fields: z65.array(newsletterFieldSchema)
40009
+ });
40010
+ newsletterHydrationSchema = z65.object({
40011
+ destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
40012
+ listId: z65.string().nullable().optional(),
39398
40013
  preset: newsletterPresetSchema,
39399
- includePhone: z64.boolean(),
39400
- tags: z64.string().nullable().optional(),
39401
- spamProtectionEnabled: z64.boolean().optional()
40014
+ includePhone: z65.boolean(),
40015
+ tags: z65.string().nullable().optional(),
40016
+ spamProtectionEnabled: z65.boolean().optional()
39402
40017
  });
39403
- newsletterRenderSchema = z64.object({
40018
+ newsletterRenderSchema = z65.object({
39404
40019
  display: newsletterDisplaySchema,
39405
40020
  hydration: newsletterHydrationSchema
39406
40021
  });
39407
- newsletterIslandMetaCodec = createZodCodec(z64.object({
39408
- siteId: z64.string().optional(),
39409
- apiBaseUrl: z64.string().optional()
40022
+ newsletterIslandMetaCodec = createZodCodec(z65.object({
40023
+ siteId: z65.string().optional(),
40024
+ apiBaseUrl: z65.string().optional()
39410
40025
  }));
39411
40026
  newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
39412
40027
  newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
@@ -39415,16 +40030,20 @@ var init_newsletter_form_interactive = __esm({
39415
40030
  source: createZodCodec(newsletterSourceSchema),
39416
40031
  render: createZodCodec(newsletterRenderSchema)
39417
40032
  },
39418
- buildRender: (source) => ({
39419
- display: buildNewsletterDisplay(source),
39420
- hydration: {
39421
- listId: source.listId,
39422
- preset: source.preset ?? "emailOnly",
39423
- includePhone: source.includePhone ?? false,
39424
- tags: source.tags ?? null,
39425
- spamProtectionEnabled: source.spamProtectionEnabled
39426
- }
39427
- })
40033
+ buildRender: (source) => {
40034
+ const runtimeSource = deriveNewsletterSignupRuntimeSource(source);
40035
+ return {
40036
+ display: buildNewsletterDisplay(source),
40037
+ hydration: {
40038
+ destinationRef: buildNewsletterSignupBlockRef(source.blockId),
40039
+ listId: runtimeSource.listId,
40040
+ preset: source.preset ?? "emailOnly",
40041
+ includePhone: source.includePhone ?? false,
40042
+ tags: runtimeSource.tags,
40043
+ spamProtectionEnabled: source.spamProtectionEnabled
40044
+ }
40045
+ };
40046
+ }
39428
40047
  });
39429
40048
  newsletterFormInteractiveIslandPropsCodec = createInteractiveIslandCodec({
39430
40049
  runtime: newsletterFormBlockRuntime,
@@ -39449,6 +40068,7 @@ var init_newsletter_signup = __esm({
39449
40068
  init_defineBlock();
39450
40069
  init_fragments2();
39451
40070
  init_newsletter_form_interactive();
40071
+ init_newsletter_signup_destination();
39452
40072
  stackedComposition = composeFragments([
39453
40073
  { fragment: newsletterCopyFragment },
39454
40074
  { fragment: newsletterFormFragment }
@@ -39528,7 +40148,7 @@ var init_newsletter_signup = __esm({
39528
40148
  });
39529
40149
 
39530
40150
  // ../blocks/src/system/blocks/team-members.ts
39531
- import { z as z65 } from "zod";
40151
+ import { z as z66 } from "zod";
39532
40152
  var ITEM_NAME2, teamMemberPhotoSchema, teamMemberDataSchema, teamMembersDataSchema, dynamicSourceWhen, manualSourceWhen, headingNode, wrapVariant3, teamMemberStackLayout, manualGridMembersNode, dynamicGridMembersNode, gridVariant, manualStackMembersNode, dynamicStackMembersNode, stackVariant, teamMembersManifest, teamMembersBlockDefinition;
39533
40153
  var init_team_members = __esm({
39534
40154
  "../blocks/src/system/blocks/team-members.ts"() {
@@ -39545,18 +40165,18 @@ var init_team_members = __esm({
39545
40165
  teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
39546
40166
  message: "Team member photos must be image media"
39547
40167
  }).nullable();
39548
- teamMemberDataSchema = z65.object({
39549
- _type: z65.literal("teamMember"),
39550
- id: z65.string(),
39551
- name: z65.string(),
39552
- role: z65.string().nullable(),
39553
- roleLabel: z65.string().nullable(),
39554
- bio: z65.string().nullable(),
39555
- summary: z65.string().nullable(),
40168
+ teamMemberDataSchema = z66.object({
40169
+ _type: z66.literal("teamMember"),
40170
+ id: z66.string(),
40171
+ name: z66.string(),
40172
+ role: z66.string().nullable(),
40173
+ roleLabel: z66.string().nullable(),
40174
+ bio: z66.string().nullable(),
40175
+ summary: z66.string().nullable(),
39556
40176
  photo: teamMemberPhotoSchema,
39557
- profilePath: z65.string().nullable()
40177
+ profilePath: z66.string().nullable()
39558
40178
  });
39559
- teamMembersDataSchema = z65.array(teamMemberDataSchema);
40179
+ teamMembersDataSchema = z66.array(teamMemberDataSchema);
39560
40180
  dynamicSourceWhen = { equals: "site_staff" };
39561
40181
  manualSourceWhen = { equals: "site_staff", not: true };
39562
40182
  headingNode = text(
@@ -41670,7 +42290,7 @@ var init_transforms = __esm({
41670
42290
 
41671
42291
  // ../blocks/src/system/data/linkedContentEntries.ts
41672
42292
  function coerceLinkedContentEntriesPayload(payload) {
41673
- if (!isRecord7(payload)) return payload;
42293
+ if (!isRecord8(payload)) return payload;
41674
42294
  const response = payload;
41675
42295
  if (!Array.isArray(response.entries)) return payload;
41676
42296
  const contentType = parsePublicContentTypeMeta(response.contentType);
@@ -41678,12 +42298,12 @@ function coerceLinkedContentEntriesPayload(payload) {
41678
42298
  return response.entries.map((entry) => enrichLinkedContentEntry(entry, contentType));
41679
42299
  }
41680
42300
  function enrichLinkedContentEntry(entry, contentType) {
41681
- if (!isRecord7(entry)) return entry;
42301
+ if (!isRecord8(entry)) return entry;
41682
42302
  const entryId = typeof entry.id === "string" ? entry.id : null;
41683
42303
  if (!entryId) return entry;
41684
42304
  const title = typeof entry.title === "string" && entry.title.trim().length > 0 ? entry.title : entryId;
41685
42305
  const optimisticHash = typeof entry.optimisticHash === "string" && entry.optimisticHash.length > 0 ? entry.optimisticHash : null;
41686
- const content = isRecord7(entry.content) ? entry.content : {};
42306
+ const content = isRecord8(entry.content) ? entry.content : {};
41687
42307
  const meta = {
41688
42308
  kind: "linked-content-entry",
41689
42309
  entryId,
@@ -41776,7 +42396,7 @@ function capitalize(value) {
41776
42396
  return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();
41777
42397
  }
41778
42398
  function parsePublicContentTypeMeta(value) {
41779
- if (!isRecord7(value)) return null;
42399
+ if (!isRecord8(value)) return null;
41780
42400
  if (typeof value.key !== "string" || value.key.trim().length === 0) return null;
41781
42401
  return {
41782
42402
  key: value.key,
@@ -41786,7 +42406,7 @@ function parsePublicContentTypeMeta(value) {
41786
42406
  };
41787
42407
  }
41788
42408
  function parsePublicContentTypeLinkedEntryEditing(value) {
41789
- if (!isRecord7(value) || typeof value.kind !== "string") return null;
42409
+ if (!isRecord8(value) || typeof value.kind !== "string") return null;
41790
42410
  switch (value.kind) {
41791
42411
  case "generic":
41792
42412
  return { kind: "generic" };
@@ -41800,7 +42420,7 @@ function parsePublicContentTypeLinkedEntryEditing(value) {
41800
42420
  }
41801
42421
  }
41802
42422
  function parsePublicContentTypeFieldMeta(value) {
41803
- if (!isRecord7(value)) return [];
42423
+ if (!isRecord8(value)) return [];
41804
42424
  if (typeof value.id !== "string" || typeof value.type !== "string") return [];
41805
42425
  return [{
41806
42426
  id: value.id,
@@ -41814,7 +42434,7 @@ function parseStringArray(value) {
41814
42434
  if (!Array.isArray(value)) return null;
41815
42435
  return value.filter((item) => typeof item === "string");
41816
42436
  }
41817
- function isRecord7(value) {
42437
+ function isRecord8(value) {
41818
42438
  return typeof value === "object" && value !== null && !Array.isArray(value);
41819
42439
  }
41820
42440
  var LINKED_CONTENT_ENTRY_META_KEY;
@@ -41912,6 +42532,7 @@ var init_icons = __esm({
41912
42532
  init_presets();
41913
42533
  init_semantic();
41914
42534
  init_registry6();
42535
+ init_svg();
41915
42536
  init_value();
41916
42537
  }
41917
42538
  });
@@ -43532,7 +44153,7 @@ var init_buttons2 = __esm({
43532
44153
  });
43533
44154
 
43534
44155
  // ../blocks/src/primitives/content/components/Button.tsx
43535
- import { jsx as jsx4 } from "react/jsx-runtime";
44156
+ import { jsx as jsx5 } from "react/jsx-runtime";
43536
44157
  function createButton(spec) {
43537
44158
  return function Button({
43538
44159
  theme,
@@ -43541,7 +44162,7 @@ function createButton(spec) {
43541
44162
  size = "md"
43542
44163
  }) {
43543
44164
  const res = resolveButton(spec, theme, { size });
43544
- return /* @__PURE__ */ jsx4("button", { className: `${res.className} ${className}`, style: res.style, children });
44165
+ return /* @__PURE__ */ jsx5("button", { className: `${res.className} ${className}`, style: res.style, children });
43545
44166
  };
43546
44167
  }
43547
44168
  var PrimaryButton, SecondaryButton, GhostButton, LinkButton, CtaGradientButton, AccentButton;
@@ -43607,30 +44228,30 @@ var init_Button = __esm({
43607
44228
  });
43608
44229
 
43609
44230
  // ../blocks/src/structure/schema.ts
43610
- import z66 from "zod";
44231
+ import z67 from "zod";
43611
44232
  var BlockKind, blockSchema, pagePath, pageOutlineSchema;
43612
44233
  var init_schema4 = __esm({
43613
44234
  "../blocks/src/structure/schema.ts"() {
43614
44235
  "use strict";
43615
- BlockKind = z66.string();
43616
- blockSchema = z66.object({
43617
- id: z66.string().nullable(),
44236
+ BlockKind = z67.string();
44237
+ blockSchema = z67.object({
44238
+ id: z67.string().nullable(),
43618
44239
  // optional ID for reference in toggle ops
43619
44240
  kind: BlockKind,
43620
- purpose: z66.string().min(1),
44241
+ purpose: z67.string().min(1),
43621
44242
  // Optional content fields used by PageRenderer / block runtime.
43622
- content: z66.record(z66.string(), z66.unknown()).optional(),
44243
+ content: z67.record(z67.string(), z67.unknown()).optional(),
43623
44244
  // Nullable because some persisted sources store "no draft" as null.
43624
- draftContent: z66.record(z66.string(), z66.unknown()).nullable().optional(),
44245
+ draftContent: z67.record(z67.string(), z67.unknown()).nullable().optional(),
43625
44246
  // Optional template bindings for reverse field mapping (entry editing)
43626
- bindings: z66.record(z66.string(), z66.unknown()).optional()
44247
+ bindings: z67.record(z67.string(), z67.unknown()).optional()
43627
44248
  }).passthrough();
43628
- pagePath = z66.string().regex(/^\/[\S]*$/, 'path must start with "/" and contain no spaces');
43629
- pageOutlineSchema = z66.object({
43630
- name: z66.string().min(1),
44249
+ pagePath = z67.string().regex(/^\/[\S]*$/, 'path must start with "/" and contain no spaces');
44250
+ pageOutlineSchema = z67.object({
44251
+ name: z67.string().min(1),
43631
44252
  path: pagePath,
43632
- purpose: z66.string().min(1),
43633
- blocks: z66.array(blockSchema).min(1)
44253
+ purpose: z67.string().min(1),
44254
+ blocks: z67.array(blockSchema).min(1)
43634
44255
  });
43635
44256
  }
43636
44257
  });
@@ -43676,7 +44297,7 @@ var init_containerResponsiveThemeCss = __esm({
43676
44297
  });
43677
44298
 
43678
44299
  // ../theme-core/src/ThemeScopeCore.tsx
43679
- import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
44300
+ import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
43680
44301
  var init_ThemeScopeCore = __esm({
43681
44302
  "../theme-core/src/ThemeScopeCore.tsx"() {
43682
44303
  "use strict";
@@ -43694,7 +44315,7 @@ var init_themeScopeUtils = __esm({
43694
44315
  });
43695
44316
 
43696
44317
  // ../theme-core/src/ThemeScope.tsx
43697
- import { jsx as jsx6 } from "react/jsx-runtime";
44318
+ import { jsx as jsx7 } from "react/jsx-runtime";
43698
44319
  var init_ThemeScope = __esm({
43699
44320
  "../theme-core/src/ThemeScope.tsx"() {
43700
44321
  "use strict";
@@ -43714,7 +44335,7 @@ var init_types18 = __esm({
43714
44335
 
43715
44336
  // ../theme-core/src/ThemeFontLoader.tsx
43716
44337
  import * as React3 from "react";
43717
- import { Fragment, jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
44338
+ import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
43718
44339
  var init_ThemeFontLoader = __esm({
43719
44340
  "../theme-core/src/ThemeFontLoader.tsx"() {
43720
44341
  "use strict";
@@ -43742,7 +44363,7 @@ var init_fonts = __esm({
43742
44363
  });
43743
44364
 
43744
44365
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
43745
- import { z as z67 } from "zod";
44366
+ import { z as z68 } from "zod";
43746
44367
  var themeBridgeConfigSchema;
43747
44368
  var init_buildThemeRuntimeFromBridge = __esm({
43748
44369
  "../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts"() {
@@ -43757,33 +44378,33 @@ var init_buildThemeRuntimeFromBridge = __esm({
43757
44378
  init_progress();
43758
44379
  init_blocks2();
43759
44380
  init_themeCssVarNames();
43760
- themeBridgeConfigSchema = z67.object({
43761
- tokens: z67.record(z67.string(), z67.string()),
43762
- typography: z67.object({
43763
- headingFamily: z67.string().optional(),
43764
- bodyFamily: z67.string().optional(),
43765
- headingWeight: z67.number().optional(),
43766
- bodyWeight: z67.number().optional()
44381
+ themeBridgeConfigSchema = z68.object({
44382
+ tokens: z68.record(z68.string(), z68.string()),
44383
+ typography: z68.object({
44384
+ headingFamily: z68.string().optional(),
44385
+ bodyFamily: z68.string().optional(),
44386
+ headingWeight: z68.number().optional(),
44387
+ bodyWeight: z68.number().optional()
43767
44388
  }).optional(),
43768
- spacing: z67.enum(["comfortable", "standard", "dense"]).optional(),
43769
- corners: z67.enum(["square", "soft", "rounded", "pill"]).optional(),
43770
- shadows: z67.enum(["none", "low", "medium", "high"]).optional(),
43771
- components: z67.object({
43772
- buttons: z67.union([
43773
- z67.boolean(),
43774
- z67.object({
43775
- variants: z67.array(z67.enum(["primary", "secondary", "outline", "ghost"])).optional()
44389
+ spacing: z68.enum(["comfortable", "standard", "dense"]).optional(),
44390
+ corners: z68.enum(["square", "soft", "rounded", "pill"]).optional(),
44391
+ shadows: z68.enum(["none", "low", "medium", "high"]).optional(),
44392
+ components: z68.object({
44393
+ buttons: z68.union([
44394
+ z68.boolean(),
44395
+ z68.object({
44396
+ variants: z68.array(z68.enum(["primary", "secondary", "outline", "ghost"])).optional()
43776
44397
  })
43777
44398
  ]).optional(),
43778
- cards: z67.union([
43779
- z67.boolean(),
43780
- z67.object({
43781
- variants: z67.array(z67.enum(["default", "elevated", "outlined"])).optional()
44399
+ cards: z68.union([
44400
+ z68.boolean(),
44401
+ z68.object({
44402
+ variants: z68.array(z68.enum(["default", "elevated", "outlined"])).optional()
43782
44403
  })
43783
44404
  ]).optional(),
43784
- inputs: z67.boolean().optional()
44405
+ inputs: z68.boolean().optional()
43785
44406
  }).optional(),
43786
- overrides: z67.record(z67.string(), z67.string()).optional()
44407
+ overrides: z68.record(z68.string(), z68.string()).optional()
43787
44408
  }).passthrough();
43788
44409
  }
43789
44410
  });
@@ -43798,7 +44419,7 @@ var init_siteChromePlanning = __esm({
43798
44419
  });
43799
44420
 
43800
44421
  // ../theme-core/src/siteChrome.tsx
43801
- import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
44422
+ import { Fragment as Fragment3, jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
43802
44423
  var init_siteChrome = __esm({
43803
44424
  "../theme-core/src/siteChrome.tsx"() {
43804
44425
  "use strict";
@@ -44253,7 +44874,7 @@ var init_src3 = __esm({
44253
44874
  });
44254
44875
 
44255
44876
  // ../api/src/sdkConfig/contracts.ts
44256
- import { z as z68 } from "zod";
44877
+ import { z as z69 } from "zod";
44257
44878
  function unsafeRetypeZodSchema(schema) {
44258
44879
  return schema;
44259
44880
  }
@@ -44262,17 +44883,17 @@ var init_contracts2 = __esm({
44262
44883
  "../api/src/sdkConfig/contracts.ts"() {
44263
44884
  "use strict";
44264
44885
  init_src3();
44265
- navIdListSchema = z68.preprocess((value) => {
44886
+ navIdListSchema = z69.preprocess((value) => {
44266
44887
  if (!Array.isArray(value)) return void 0;
44267
44888
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
44268
44889
  return filtered.length > 0 ? filtered : void 0;
44269
- }, z68.array(z68.string()).max(200).optional());
44270
- dashboardNavVisibilityBaseSchema = z68.object({
44271
- mode: z68.enum(["augment", "restrict"]).optional(),
44890
+ }, z69.array(z69.string()).max(200).optional());
44891
+ dashboardNavVisibilityBaseSchema = z69.object({
44892
+ mode: z69.enum(["augment", "restrict"]).optional(),
44272
44893
  allowIds: navIdListSchema,
44273
44894
  denyIds: navIdListSchema
44274
44895
  }).strip();
44275
- dashboardNavVisibilityRolesSchema = z68.object({
44896
+ dashboardNavVisibilityRolesSchema = z69.object({
44276
44897
  administrator: dashboardNavVisibilityBaseSchema.optional(),
44277
44898
  editor: dashboardNavVisibilityBaseSchema.optional(),
44278
44899
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -44280,63 +44901,63 @@ var init_contracts2 = __esm({
44280
44901
  dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
44281
44902
  roles: dashboardNavVisibilityRolesSchema
44282
44903
  }).strip();
44283
- dashboardNavigationConfigSchema = z68.object({
44904
+ dashboardNavigationConfigSchema = z69.object({
44284
44905
  siteNav: dashboardNavVisibilitySchema.optional(),
44285
44906
  settingsNav: dashboardNavVisibilitySchema.optional()
44286
44907
  }).strip();
44287
- dashboardConfigSchema = z68.object({
44288
- previewEditingEnabled: z68.boolean().optional(),
44908
+ dashboardConfigSchema = z69.object({
44909
+ previewEditingEnabled: z69.boolean().optional(),
44289
44910
  navigation: dashboardNavigationConfigSchema.optional()
44290
44911
  }).strip();
44291
44912
  fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
44292
44913
  nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
44293
- sdkLoaderEndpointSchema = z68.enum(SUPPORTED_LOADER_ENDPOINTS);
44294
- loaderFallbackScalarSchema = z68.union([
44295
- z68.string(),
44296
- z68.number(),
44297
- z68.boolean(),
44298
- z68.null()
44914
+ sdkLoaderEndpointSchema = z69.enum(SUPPORTED_LOADER_ENDPOINTS);
44915
+ loaderFallbackScalarSchema = z69.union([
44916
+ z69.string(),
44917
+ z69.number(),
44918
+ z69.boolean(),
44919
+ z69.null()
44299
44920
  ]);
44300
- loaderParamBindingSchema = z68.object({
44301
- $bind: z68.object({
44302
- from: z68.string().min(1, "Binding path is required"),
44921
+ loaderParamBindingSchema = z69.object({
44922
+ $bind: z69.object({
44923
+ from: z69.string().min(1, "Binding path is required"),
44303
44924
  fallback: loaderFallbackScalarSchema.optional()
44304
44925
  })
44305
44926
  });
44306
- loaderParamValueSchema = z68.union([
44307
- z68.string(),
44308
- z68.number(),
44309
- z68.boolean(),
44927
+ loaderParamValueSchema = z69.union([
44928
+ z69.string(),
44929
+ z69.number(),
44930
+ z69.boolean(),
44310
44931
  loaderParamBindingSchema
44311
44932
  ]);
44312
- sdkConfigLoaderSchema = z68.object({
44933
+ sdkConfigLoaderSchema = z69.object({
44313
44934
  endpoint: sdkLoaderEndpointSchema,
44314
- params: z68.record(z68.string(), loaderParamValueSchema),
44315
- mode: z68.enum(["server", "client"]).default("server")
44935
+ params: z69.record(z69.string(), loaderParamValueSchema),
44936
+ mode: z69.enum(["server", "client"]).default("server")
44316
44937
  });
44317
- sdkDataLoadersSchema = z68.record(z68.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
44318
- sdkCustomBlockIdSchema = z68.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
44938
+ sdkDataLoadersSchema = z69.record(z69.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
44939
+ sdkCustomBlockIdSchema = z69.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
44319
44940
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
44320
44941
  }).transform((value) => value);
44321
- sdkCustomBlockInputSchema = z68.object({
44942
+ sdkCustomBlockInputSchema = z69.object({
44322
44943
  id: sdkCustomBlockIdSchema,
44323
- title: z68.string().min(1),
44324
- titleSource: z68.union([z68.string().min(1), z68.array(z68.string().min(1)).min(1)]).optional(),
44325
- description: z68.string().optional(),
44944
+ title: z69.string().min(1),
44945
+ titleSource: z69.union([z69.string().min(1), z69.array(z69.string().min(1)).min(1)]).optional(),
44946
+ description: z69.string().optional(),
44326
44947
  category: blockCategoryEnum,
44327
- icon: z68.string().optional(),
44328
- tags: z68.array(z68.string()).optional(),
44948
+ icon: z69.string().optional(),
44949
+ tags: z69.array(z69.string()).optional(),
44329
44950
  fields: fieldDefinitionInputSchema.array().min(1),
44330
44951
  dataLoaders: sdkDataLoadersSchema,
44331
44952
  layout: NodeSchema.optional(),
44332
- variants: z68.record(z68.string().min(1), NodeSchema).optional(),
44333
- defaultVariant: z68.string().min(1).optional(),
44334
- variantOptions: z68.record(
44335
- z68.string().min(1),
44336
- z68.object({
44337
- label: z68.string().min(1).optional(),
44338
- description: z68.string().min(1).optional(),
44339
- icon: z68.string().min(1).optional()
44953
+ variants: z69.record(z69.string().min(1), NodeSchema).optional(),
44954
+ defaultVariant: z69.string().min(1).optional(),
44955
+ variantOptions: z69.record(
44956
+ z69.string().min(1),
44957
+ z69.object({
44958
+ label: z69.string().min(1).optional(),
44959
+ description: z69.string().min(1).optional(),
44960
+ icon: z69.string().min(1).optional()
44340
44961
  })
44341
44962
  ).optional(),
44342
44963
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -44347,7 +44968,7 @@ var init_contracts2 = __esm({
44347
44968
  const exists = data.fields.some((field) => field.id === source);
44348
44969
  if (!exists) {
44349
44970
  ctx.addIssue({
44350
- code: z68.ZodIssueCode.custom,
44971
+ code: z69.ZodIssueCode.custom,
44351
44972
  message: `titleSource must reference a valid field ID (got "${source}")`,
44352
44973
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
44353
44974
  });
@@ -44356,7 +44977,7 @@ var init_contracts2 = __esm({
44356
44977
  }
44357
44978
  if (data.layout && data.variants) {
44358
44979
  ctx.addIssue({
44359
- code: z68.ZodIssueCode.custom,
44980
+ code: z69.ZodIssueCode.custom,
44360
44981
  message: "Custom block must define either `layout` or `variants`, not both",
44361
44982
  path: ["variants"]
44362
44983
  });
@@ -44365,14 +44986,14 @@ var init_contracts2 = __esm({
44365
44986
  const keys = Object.keys(data.variants);
44366
44987
  if (keys.length === 0) {
44367
44988
  ctx.addIssue({
44368
- code: z68.ZodIssueCode.custom,
44989
+ code: z69.ZodIssueCode.custom,
44369
44990
  message: "`variants` must contain at least one variant key",
44370
44991
  path: ["variants"]
44371
44992
  });
44372
44993
  }
44373
44994
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
44374
44995
  ctx.addIssue({
44375
- code: z68.ZodIssueCode.custom,
44996
+ code: z69.ZodIssueCode.custom,
44376
44997
  message: "`defaultVariant` must be a key present in `variants`",
44377
44998
  path: ["defaultVariant"]
44378
44999
  });
@@ -44381,7 +45002,7 @@ var init_contracts2 = __esm({
44381
45002
  for (const key of Object.keys(data.variantOptions)) {
44382
45003
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
44383
45004
  ctx.addIssue({
44384
- code: z68.ZodIssueCode.custom,
45005
+ code: z69.ZodIssueCode.custom,
44385
45006
  message: "`variantOptions` key must exist in `variants`",
44386
45007
  path: ["variantOptions", key]
44387
45008
  });
@@ -44390,78 +45011,78 @@ var init_contracts2 = __esm({
44390
45011
  }
44391
45012
  }
44392
45013
  });
44393
- sdkBlockFieldExtensionInputSchema = z68.object({
45014
+ sdkBlockFieldExtensionInputSchema = z69.object({
44394
45015
  fields: fieldDefinitionInputSchema.array().min(1)
44395
45016
  });
44396
- sdkBlockFieldExtensionsInputSchema = z68.record(
44397
- z68.string().min(1),
45017
+ sdkBlockFieldExtensionsInputSchema = z69.record(
45018
+ z69.string().min(1),
44398
45019
  sdkBlockFieldExtensionInputSchema
44399
45020
  );
44400
- sdkThemePaletteSchema = z68.record(z68.string(), z68.string());
44401
- sdkThemeConfigSchema = z68.object({
45021
+ sdkThemePaletteSchema = z69.record(z69.string(), z69.string());
45022
+ sdkThemeConfigSchema = z69.object({
44402
45023
  palette: sdkThemePaletteSchema
44403
45024
  });
44404
- sdkSectionBackgroundSchema = z68.object({
44405
- id: z68.string().min(1),
44406
- label: z68.string().min(1),
44407
- token: z68.string().min(1)
45025
+ sdkSectionBackgroundSchema = z69.object({
45026
+ id: z69.string().min(1),
45027
+ label: z69.string().min(1),
45028
+ token: z69.string().min(1)
44408
45029
  });
44409
- sdkSectionOptionsConfigSchema = z68.object({
44410
- backgroundColor: z68.boolean().optional(),
44411
- backgroundImage: z68.boolean().optional(),
44412
- backgroundGradient: z68.boolean().optional(),
44413
- spacing: z68.union([z68.array(z68.enum(["compact", "default", "spacious"])), z68.boolean()]).optional(),
44414
- textColor: z68.boolean().optional()
45030
+ sdkSectionOptionsConfigSchema = z69.object({
45031
+ backgroundColor: z69.boolean().optional(),
45032
+ backgroundImage: z69.boolean().optional(),
45033
+ backgroundGradient: z69.boolean().optional(),
45034
+ spacing: z69.union([z69.array(z69.enum(["compact", "default", "spacious"])), z69.boolean()]).optional(),
45035
+ textColor: z69.boolean().optional()
44415
45036
  });
44416
- sdkContainerOptionsConfigSchema = z68.object({
44417
- maxWidth: z68.union([z68.array(z68.enum(["narrow", "default", "wide", "full"])), z68.boolean()]).optional(),
44418
- alignment: z68.union([z68.array(z68.enum(["left", "center", "right"])), z68.boolean()]).optional()
45037
+ sdkContainerOptionsConfigSchema = z69.object({
45038
+ maxWidth: z69.union([z69.array(z69.enum(["narrow", "default", "wide", "full"])), z69.boolean()]).optional(),
45039
+ alignment: z69.union([z69.array(z69.enum(["left", "center", "right"])), z69.boolean()]).optional()
44419
45040
  });
44420
- sdkSiteStyleConfigSchema = z68.object({
44421
- sectionBackgrounds: z68.array(sdkSectionBackgroundSchema).optional(),
45041
+ sdkSiteStyleConfigSchema = z69.object({
45042
+ sectionBackgrounds: z69.array(sdkSectionBackgroundSchema).optional(),
44422
45043
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
44423
45044
  containerOptions: sdkContainerOptionsConfigSchema.optional()
44424
45045
  });
44425
- sdkSiteLayoutConfigSchema = z68.object({
44426
- footerBlocks: z68.array(
44427
- z68.object({
44428
- id: z68.string().min(1).optional(),
44429
- kind: z68.string().min(1),
44430
- content: z68.record(z68.string(), z68.unknown()).optional()
45046
+ sdkSiteLayoutConfigSchema = z69.object({
45047
+ footerBlocks: z69.array(
45048
+ z69.object({
45049
+ id: z69.string().min(1).optional(),
45050
+ kind: z69.string().min(1),
45051
+ content: z69.record(z69.string(), z69.unknown()).optional()
44431
45052
  })
44432
45053
  ).optional()
44433
45054
  });
44434
- sdkFieldSelectOptionSchema = z68.object({
44435
- value: z68.string(),
44436
- label: z68.string()
45055
+ sdkFieldSelectOptionSchema = z69.object({
45056
+ value: z69.string(),
45057
+ label: z69.string()
44437
45058
  });
44438
- sdkBlockFieldConfigSchema = z68.object({
44439
- options: z68.array(sdkFieldSelectOptionSchema).optional()
45059
+ sdkBlockFieldConfigSchema = z69.object({
45060
+ options: z69.array(sdkFieldSelectOptionSchema).optional()
44440
45061
  });
44441
- sdkBlockFieldOptionsMapSchema = z68.record(
44442
- z68.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
45062
+ sdkBlockFieldOptionsMapSchema = z69.record(
45063
+ z69.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
44443
45064
  message: "Block ID must be 'block.*' or 'custom.*' format"
44444
45065
  }),
44445
- z68.record(z68.string().min(1), sdkBlockFieldConfigSchema)
45066
+ z69.record(z69.string().min(1), sdkBlockFieldConfigSchema)
44446
45067
  ).optional();
44447
- sdkContentTypeTemplateConfigSchema = z68.object({
44448
- blocks: z68.array(z68.unknown())
45068
+ sdkContentTypeTemplateConfigSchema = z69.object({
45069
+ blocks: z69.array(z69.unknown())
44449
45070
  }).passthrough();
44450
- sdkContentTypeOrderingConfigSchema = z68.object({
44451
- mode: z68.enum(["default", "manual"]).optional()
45071
+ sdkContentTypeOrderingConfigSchema = z69.object({
45072
+ mode: z69.enum(["default", "manual"]).optional()
44452
45073
  }).optional();
44453
- sdkContentTypeConfigSchema = z68.object({
44454
- key: z68.string().min(1),
44455
- fields: z68.array(z68.unknown()),
45074
+ sdkContentTypeConfigSchema = z69.object({
45075
+ key: z69.string().min(1),
45076
+ fields: z69.array(z69.unknown()),
44456
45077
  ordering: sdkContentTypeOrderingConfigSchema,
44457
45078
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
44458
45079
  }).passthrough();
44459
- sdkContentConfigSchema = z68.object({
44460
- contentTypes: z68.array(sdkContentTypeConfigSchema).optional(),
44461
- pages: z68.array(z68.unknown()).optional(),
44462
- entries: z68.array(z68.unknown()).optional(),
44463
- navigationMenus: z68.array(z68.unknown()).optional(),
44464
- settings: z68.unknown().optional()
45080
+ sdkContentConfigSchema = z69.object({
45081
+ contentTypes: z69.array(sdkContentTypeConfigSchema).optional(),
45082
+ pages: z69.array(z69.unknown()).optional(),
45083
+ entries: z69.array(z69.unknown()).optional(),
45084
+ navigationMenus: z69.array(z69.unknown()).optional(),
45085
+ settings: z69.unknown().optional()
44465
45086
  }).passthrough();
44466
45087
  SDK_WORKFLOW_ID_MAX_LENGTH = 120;
44467
45088
  SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -44476,62 +45097,62 @@ var init_contracts2 = __esm({
44476
45097
  SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
44477
45098
  SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
44478
45099
  SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
44479
- sdkWorkflowIdSchema = z68.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
45100
+ sdkWorkflowIdSchema = z69.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
44480
45101
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
44481
45102
  });
44482
- sdkWorkflowEndpointSchema = z68.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 "/"' });
44483
- sdkWorkflowManualTriggerSchema = z68.object({
44484
- type: z68.literal("manual")
45103
+ sdkWorkflowEndpointSchema = z69.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 "/"' });
45104
+ sdkWorkflowManualTriggerSchema = z69.object({
45105
+ type: z69.literal("manual")
44485
45106
  }).strict();
44486
- sdkWorkflowTriggerFieldSchema = z68.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
45107
+ sdkWorkflowTriggerFieldSchema = z69.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
44487
45108
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
44488
45109
  });
44489
- sdkWorkflowFieldChangedConditionSchema = z68.object({
45110
+ sdkWorkflowFieldChangedConditionSchema = z69.object({
44490
45111
  field: sdkWorkflowTriggerFieldSchema,
44491
- changed: z68.literal(true)
45112
+ changed: z69.literal(true)
44492
45113
  }).strict();
44493
- sdkWorkflowFieldEmptyConditionSchema = z68.object({
45114
+ sdkWorkflowFieldEmptyConditionSchema = z69.object({
44494
45115
  field: sdkWorkflowTriggerFieldSchema,
44495
- isEmpty: z68.boolean()
45116
+ isEmpty: z69.boolean()
44496
45117
  }).strict();
44497
- sdkWorkflowEntryDraftUpdatedTriggerSchema = z68.object({
44498
- type: z68.literal("entry.draft.updated"),
44499
- when: z68.array(
44500
- z68.union([
45118
+ sdkWorkflowEntryDraftUpdatedTriggerSchema = z69.object({
45119
+ type: z69.literal("entry.draft.updated"),
45120
+ when: z69.array(
45121
+ z69.union([
44501
45122
  sdkWorkflowFieldChangedConditionSchema,
44502
45123
  sdkWorkflowFieldEmptyConditionSchema
44503
45124
  ])
44504
45125
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
44505
45126
  }).strict();
44506
- sdkWorkflowTriggerSchema = z68.discriminatedUnion("type", [
45127
+ sdkWorkflowTriggerSchema = z69.discriminatedUnion("type", [
44507
45128
  sdkWorkflowManualTriggerSchema,
44508
45129
  sdkWorkflowEntryDraftUpdatedTriggerSchema
44509
45130
  ]);
44510
- sdkWorkflowConfirmationSchema = z68.object({
44511
- title: z68.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
44512
- body: z68.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
45131
+ sdkWorkflowConfirmationSchema = z69.object({
45132
+ title: z69.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
45133
+ body: z69.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
44513
45134
  }).strict();
44514
- sdkWorkflowConfigSchema = z68.object({
45135
+ sdkWorkflowConfigSchema = z69.object({
44515
45136
  id: sdkWorkflowIdSchema,
44516
- title: z68.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
44517
- description: z68.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
44518
- contentType: z68.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
45137
+ title: z69.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
45138
+ description: z69.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
45139
+ contentType: z69.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
44519
45140
  endpoint: sdkWorkflowEndpointSchema,
44520
- triggers: z68.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
45141
+ triggers: z69.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
44521
45142
  confirmation: sdkWorkflowConfirmationSchema.optional()
44522
45143
  }).strict();
44523
- sdkWorkflowsSchema = z68.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
45144
+ sdkWorkflowsSchema = z69.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
44524
45145
  const ids = workflows.map((workflow) => workflow.id);
44525
45146
  return ids.length === new Set(ids).size;
44526
45147
  }, { message: "Workflow IDs must be unique" }).optional();
44527
- riverbankSiteConfigInputSchema = z68.object({
44528
- siteId: z68.string().uuid(),
44529
- previewUrl: z68.string().url().optional(),
44530
- liveUrl: z68.string().url().optional(),
45148
+ riverbankSiteConfigInputSchema = z69.object({
45149
+ siteId: z69.string().uuid(),
45150
+ previewUrl: z69.string().url().optional(),
45151
+ liveUrl: z69.string().url().optional(),
44531
45152
  theme: sdkThemeConfigSchema.optional(),
44532
45153
  styles: sdkSiteStyleConfigSchema.optional(),
44533
45154
  layout: sdkSiteLayoutConfigSchema.optional(),
44534
- customBlocks: z68.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
45155
+ customBlocks: z69.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
44535
45156
  const ids = blocks.map((b) => b.id);
44536
45157
  return ids.length === new Set(ids).size;
44537
45158
  }, { message: "Block IDs must be unique" }).optional(),
@@ -44539,22 +45160,22 @@ var init_contracts2 = __esm({
44539
45160
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
44540
45161
  workflows: sdkWorkflowsSchema,
44541
45162
  content: sdkContentConfigSchema.optional(),
44542
- contentDir: z68.string().optional(),
44543
- sync: z68.object({
44544
- existingEntries: z68.enum(["skip", "update"]).optional()
45163
+ contentDir: z69.string().optional(),
45164
+ sync: z69.object({
45165
+ existingEntries: z69.enum(["skip", "update"]).optional()
44545
45166
  }).optional(),
44546
- deploy: z68.object({
44547
- verifyCommand: z68.string().optional(),
44548
- prebuildOutput: z68.string().optional()
45167
+ deploy: z69.object({
45168
+ verifyCommand: z69.string().optional(),
45169
+ prebuildOutput: z69.string().optional()
44549
45170
  }).optional(),
44550
- themeSource: z68.enum(["local", "cms"]).optional(),
44551
- activeTheme: z68.string().optional(),
44552
- enablePortal: z68.boolean().optional(),
45171
+ themeSource: z69.enum(["local", "cms"]).optional(),
45172
+ activeTheme: z69.string().optional(),
45173
+ enablePortal: z69.boolean().optional(),
44553
45174
  dashboard: dashboardConfigSchema.optional()
44554
45175
  }).strict();
44555
- pushSdkConfigBodySchema = z68.object({
45176
+ pushSdkConfigBodySchema = z69.object({
44556
45177
  config: riverbankSiteConfigInputSchema,
44557
- forceContentTypes: z68.boolean().optional()
45178
+ forceContentTypes: z69.boolean().optional()
44558
45179
  }).strict();
44559
45180
  }
44560
45181
  });
@@ -44573,8 +45194,15 @@ var init_incrementalJson = __esm({
44573
45194
  }
44574
45195
  });
44575
45196
 
45197
+ // ../api/src/mailchimpIntegration.ts
45198
+ var init_mailchimpIntegration = __esm({
45199
+ "../api/src/mailchimpIntegration.ts"() {
45200
+ "use strict";
45201
+ }
45202
+ });
45203
+
44576
45204
  // ../api/src/siteOnboarding.ts
44577
- import { z as z69 } from "zod";
45205
+ import { z as z70 } from "zod";
44578
45206
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS, acknowledgeLaunchRequirementRequestSchema, goLiveSiteRequestSchema;
44579
45207
  var init_siteOnboarding = __esm({
44580
45208
  "../api/src/siteOnboarding.ts"() {
@@ -44585,24 +45213,24 @@ var init_siteOnboarding = __esm({
44585
45213
  reason: "launch_anyway"
44586
45214
  }
44587
45215
  };
44588
- acknowledgeLaunchRequirementRequestSchema = z69.discriminatedUnion(
45216
+ acknowledgeLaunchRequirementRequestSchema = z70.discriminatedUnion(
44589
45217
  "requirementId",
44590
45218
  [
44591
- z69.object({
44592
- requirementId: z69.literal("review_generated_site")
45219
+ z70.object({
45220
+ requirementId: z70.literal("review_generated_site")
44593
45221
  }),
44594
- z69.object({
44595
- requirementId: z69.literal(
45222
+ z70.object({
45223
+ requirementId: z70.literal(
44596
45224
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
44597
45225
  ),
44598
- overrideReason: z69.literal(
45226
+ overrideReason: z70.literal(
44599
45227
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
44600
45228
  )
44601
45229
  })
44602
45230
  ]
44603
45231
  );
44604
- goLiveSiteRequestSchema = z69.object({
44605
- acceptExtraSiteCharge: z69.boolean().optional()
45232
+ goLiveSiteRequestSchema = z70.object({
45233
+ acceptExtraSiteCharge: z70.boolean().optional()
44606
45234
  });
44607
45235
  }
44608
45236
  });
@@ -44756,7 +45384,7 @@ var init_bookingRefundOutcomes = __esm({
44756
45384
  });
44757
45385
 
44758
45386
  // ../api/src/bookingVerticals.ts
44759
- import { z as z70 } from "zod";
45387
+ import { z as z71 } from "zod";
44760
45388
  function parseVerticalId(value) {
44761
45389
  return typeof value === "string" && VERTICAL_ID_SET.has(value) ? value : null;
44762
45390
  }
@@ -44937,39 +45565,39 @@ var init_bookingVerticals = __esm({
44937
45565
  VERTICAL_PRESET_ID_SET = new Set(
44938
45566
  VERTICAL_BOOKING_PRESETS.map((presetDefinition) => presetDefinition.id)
44939
45567
  );
44940
- VerticalIdSchema = z70.string().trim().transform((value, ctx) => {
45568
+ VerticalIdSchema = z71.string().trim().transform((value, ctx) => {
44941
45569
  const parsed = parseVerticalId(value);
44942
45570
  if (!parsed) {
44943
45571
  ctx.addIssue({
44944
- code: z70.ZodIssueCode.custom,
45572
+ code: z71.ZodIssueCode.custom,
44945
45573
  message: "Unknown booking vertical"
44946
45574
  });
44947
- return z70.NEVER;
45575
+ return z71.NEVER;
44948
45576
  }
44949
45577
  return parsed;
44950
45578
  });
44951
- VerticalPresetIdSchema = z70.string().trim().transform((value, ctx) => {
45579
+ VerticalPresetIdSchema = z71.string().trim().transform((value, ctx) => {
44952
45580
  const parsed = parseVerticalPresetId(value);
44953
45581
  if (!parsed) {
44954
45582
  ctx.addIssue({
44955
- code: z70.ZodIssueCode.custom,
45583
+ code: z71.ZodIssueCode.custom,
44956
45584
  message: "Unknown booking preset"
44957
45585
  });
44958
- return z70.NEVER;
45586
+ return z71.NEVER;
44959
45587
  }
44960
45588
  return parsed;
44961
45589
  });
44962
- BookingVerticalConfigSchema = z70.object({
45590
+ BookingVerticalConfigSchema = z71.object({
44963
45591
  verticalId: VerticalIdSchema.nullable(),
44964
- selectedPresetIds: z70.array(VerticalPresetIdSchema).max(20)
45592
+ selectedPresetIds: z71.array(VerticalPresetIdSchema).max(20)
44965
45593
  }).transform((value, ctx) => {
44966
45594
  const resolved = resolveSiteVerticalBookingConfig(value);
44967
45595
  if (resolved.kind === "invalid") {
44968
45596
  ctx.addIssue({
44969
- code: z70.ZodIssueCode.custom,
45597
+ code: z71.ZodIssueCode.custom,
44970
45598
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
44971
45599
  });
44972
- return z70.NEVER;
45600
+ return z71.NEVER;
44973
45601
  }
44974
45602
  return resolved.config;
44975
45603
  });
@@ -44988,7 +45616,7 @@ var init_event_destination_policy = __esm({
44988
45616
  });
44989
45617
 
44990
45618
  // ../api/src/utils/isRecord.ts
44991
- function isRecord8(value) {
45619
+ function isRecord9(value) {
44992
45620
  return typeof value === "object" && value !== null && !Array.isArray(value);
44993
45621
  }
44994
45622
  var init_isRecord = __esm({
@@ -45007,7 +45635,7 @@ var init_error_propagation = __esm({
45007
45635
  });
45008
45636
 
45009
45637
  // ../api/src/appointmentSetup.ts
45010
- import { z as z71 } from "zod";
45638
+ import { z as z72 } from "zod";
45011
45639
  var APPOINTMENT_SETUP_MAX_MINUTES, appointmentSetupRefSchema, appointmentSetupVenueChoiceSchema, appointmentSetupPaymentDraftSchema, appointmentSetupServiceAssignmentDraftSchema, appointmentSetupServiceDraftSchema, appointmentSetupPractitionerDraftSchema, appointmentSetupWeeklyWindowDraftSchema, appointmentSetupStartTimePolicyDraftSchema, appointmentSetupAvailabilityDraftSchema, APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX, APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX, appointmentSetupBookingNoticeSchema, applyAppointmentSetupRequestSchema;
45012
45640
  var init_appointmentSetup = __esm({
45013
45641
  "../api/src/appointmentSetup.ts"() {
@@ -45015,49 +45643,49 @@ var init_appointmentSetup = __esm({
45015
45643
  init_envelope();
45016
45644
  init_error_propagation();
45017
45645
  APPOINTMENT_SETUP_MAX_MINUTES = 1440;
45018
- appointmentSetupRefSchema = z71.discriminatedUnion("kind", [
45019
- z71.object({ kind: z71.literal("existing"), id: z71.string().min(1) }),
45020
- z71.object({ kind: z71.literal("new"), draftId: z71.string().min(1) })
45646
+ appointmentSetupRefSchema = z72.discriminatedUnion("kind", [
45647
+ z72.object({ kind: z72.literal("existing"), id: z72.string().min(1) }),
45648
+ z72.object({ kind: z72.literal("new"), draftId: z72.string().min(1) })
45021
45649
  ]);
45022
- appointmentSetupVenueChoiceSchema = z71.discriminatedUnion("kind", [
45023
- z71.object({ kind: z71.literal("none") }),
45024
- z71.object({ kind: z71.literal("existing"), venueId: z71.string().min(1) }),
45025
- z71.object({
45026
- kind: z71.literal("create"),
45027
- draftId: z71.string().min(1),
45028
- title: z71.string().trim().min(1),
45029
- description: z71.string().nullable(),
45030
- timezone: z71.string().trim().min(1).nullable(),
45031
- addressJson: z71.record(z71.string(), z71.unknown()),
45032
- locationJson: z71.object({ lat: z71.number(), lng: z71.number() }).nullable()
45650
+ appointmentSetupVenueChoiceSchema = z72.discriminatedUnion("kind", [
45651
+ z72.object({ kind: z72.literal("none") }),
45652
+ z72.object({ kind: z72.literal("existing"), venueId: z72.string().min(1) }),
45653
+ z72.object({
45654
+ kind: z72.literal("create"),
45655
+ draftId: z72.string().min(1),
45656
+ title: z72.string().trim().min(1),
45657
+ description: z72.string().nullable(),
45658
+ timezone: z72.string().trim().min(1).nullable(),
45659
+ addressJson: z72.record(z72.string(), z72.unknown()),
45660
+ locationJson: z72.object({ lat: z72.number(), lng: z72.number() }).nullable()
45033
45661
  })
45034
45662
  ]);
45035
- appointmentSetupPaymentDraftSchema = z71.object({
45036
- priceType: z71.union([z71.literal("free"), z71.literal("paid")])
45037
- });
45038
- appointmentSetupServiceAssignmentDraftSchema = z71.discriminatedUnion("kind", [
45039
- z71.object({ kind: z71.literal("all_practitioners") }),
45040
- z71.object({
45041
- kind: z71.literal("selected_practitioners"),
45042
- resourceRefs: z71.array(appointmentSetupRefSchema)
45663
+ appointmentSetupPaymentDraftSchema = z72.object({
45664
+ priceType: z72.union([z72.literal("free"), z72.literal("paid")])
45665
+ });
45666
+ appointmentSetupServiceAssignmentDraftSchema = z72.discriminatedUnion("kind", [
45667
+ z72.object({ kind: z72.literal("all_practitioners") }),
45668
+ z72.object({
45669
+ kind: z72.literal("selected_practitioners"),
45670
+ resourceRefs: z72.array(appointmentSetupRefSchema)
45043
45671
  })
45044
45672
  ]);
45045
- appointmentSetupServiceDraftSchema = z71.object({
45673
+ appointmentSetupServiceDraftSchema = z72.object({
45046
45674
  ref: appointmentSetupRefSchema,
45047
- title: z71.string().trim().min(1),
45048
- description: z71.string().nullable(),
45049
- durationMinutes: z71.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
45050
- prepMinutes: z71.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
45051
- cleanupMinutes: z71.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
45052
- priceAmount: z71.number().int().nonnegative().nullable(),
45053
- isActive: z71.boolean(),
45054
- locationType: z71.union([
45055
- z71.literal("virtual"),
45056
- z71.literal("in_person"),
45057
- z71.literal("hybrid")
45675
+ title: z72.string().trim().min(1),
45676
+ description: z72.string().nullable(),
45677
+ durationMinutes: z72.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
45678
+ prepMinutes: z72.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
45679
+ cleanupMinutes: z72.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
45680
+ priceAmount: z72.number().int().nonnegative().nullable(),
45681
+ isActive: z72.boolean(),
45682
+ locationType: z72.union([
45683
+ z72.literal("virtual"),
45684
+ z72.literal("in_person"),
45685
+ z72.literal("hybrid")
45058
45686
  ]),
45059
45687
  venue: appointmentSetupVenueChoiceSchema,
45060
- timezone: z71.string().trim().min(1).nullable(),
45688
+ timezone: z72.string().trim().min(1).nullable(),
45061
45689
  payment: appointmentSetupPaymentDraftSchema,
45062
45690
  assignment: appointmentSetupServiceAssignmentDraftSchema
45063
45691
  }).superRefine((service, ctx) => {
@@ -45076,49 +45704,49 @@ var init_appointmentSetup = __esm({
45076
45704
  });
45077
45705
  }
45078
45706
  });
45079
- appointmentSetupPractitionerDraftSchema = z71.object({
45707
+ appointmentSetupPractitionerDraftSchema = z72.object({
45080
45708
  ref: appointmentSetupRefSchema,
45081
- displayName: z71.string().trim().min(1),
45082
- bio: z71.string().nullable(),
45083
- timezone: z71.string().trim().min(1),
45084
- colorHex: z71.string().nullable()
45085
- });
45086
- appointmentSetupWeeklyWindowDraftSchema = z71.object({
45087
- weekday: z71.number().int().min(0).max(6),
45088
- startTime: z71.string(),
45089
- endTime: z71.string()
45090
- });
45091
- appointmentSetupStartTimePolicyDraftSchema = z71.discriminatedUnion("kind", [
45092
- z71.object({ kind: z71.literal("automatic_spacing") }),
45093
- z71.object({
45094
- kind: z71.literal("regular_interval"),
45095
- intervalMinutes: z71.union([
45096
- z71.literal(10),
45097
- z71.literal(15),
45098
- z71.literal(20),
45099
- z71.literal(30),
45100
- z71.literal(45),
45101
- z71.literal(60)
45709
+ displayName: z72.string().trim().min(1),
45710
+ bio: z72.string().nullable(),
45711
+ timezone: z72.string().trim().min(1),
45712
+ colorHex: z72.string().nullable()
45713
+ });
45714
+ appointmentSetupWeeklyWindowDraftSchema = z72.object({
45715
+ weekday: z72.number().int().min(0).max(6),
45716
+ startTime: z72.string(),
45717
+ endTime: z72.string()
45718
+ });
45719
+ appointmentSetupStartTimePolicyDraftSchema = z72.discriminatedUnion("kind", [
45720
+ z72.object({ kind: z72.literal("automatic_spacing") }),
45721
+ z72.object({
45722
+ kind: z72.literal("regular_interval"),
45723
+ intervalMinutes: z72.union([
45724
+ z72.literal(10),
45725
+ z72.literal(15),
45726
+ z72.literal(20),
45727
+ z72.literal(30),
45728
+ z72.literal(45),
45729
+ z72.literal(60)
45102
45730
  ])
45103
45731
  })
45104
45732
  ]);
45105
- appointmentSetupAvailabilityDraftSchema = z71.object({
45106
- kind: z71.literal("weekly_windows"),
45733
+ appointmentSetupAvailabilityDraftSchema = z72.object({
45734
+ kind: z72.literal("weekly_windows"),
45107
45735
  resourceRef: appointmentSetupRefSchema,
45108
45736
  serviceRef: appointmentSetupRefSchema.nullable(),
45109
- windows: z71.array(appointmentSetupWeeklyWindowDraftSchema),
45737
+ windows: z72.array(appointmentSetupWeeklyWindowDraftSchema),
45110
45738
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
45111
45739
  });
45112
45740
  APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
45113
45741
  APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
45114
- appointmentSetupBookingNoticeSchema = z71.object({
45115
- minLeadMinutes: z71.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
45116
- maxBookingNoticeMinutes: z71.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
45117
- });
45118
- applyAppointmentSetupRequestSchema = z71.object({
45119
- services: z71.array(appointmentSetupServiceDraftSchema),
45120
- practitioners: z71.array(appointmentSetupPractitionerDraftSchema),
45121
- availability: z71.array(appointmentSetupAvailabilityDraftSchema),
45742
+ appointmentSetupBookingNoticeSchema = z72.object({
45743
+ minLeadMinutes: z72.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
45744
+ maxBookingNoticeMinutes: z72.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
45745
+ });
45746
+ applyAppointmentSetupRequestSchema = z72.object({
45747
+ services: z72.array(appointmentSetupServiceDraftSchema),
45748
+ practitioners: z72.array(appointmentSetupPractitionerDraftSchema),
45749
+ availability: z72.array(appointmentSetupAvailabilityDraftSchema),
45122
45750
  bookingNotice: appointmentSetupBookingNoticeSchema
45123
45751
  });
45124
45752
  }
@@ -45233,7 +45861,7 @@ var init_eventAttendanceLabels = __esm({
45233
45861
  });
45234
45862
 
45235
45863
  // ../api/src/siteBanner.ts
45236
- import { z as z72 } from "zod";
45864
+ import { z as z73 } from "zod";
45237
45865
  function analyzeSiteBannerBody(body) {
45238
45866
  const sanitizedBody = sanitizeSiteBannerBodyInternal(body, { limitParagraphs: false });
45239
45867
  const paragraphs = collectParagraphs(sanitizedBody);
@@ -45352,7 +45980,7 @@ function sanitizeMarks(marks) {
45352
45980
  if (mark.type === "bold" || mark.type === "strong" || mark.type === "italic" || mark.type === "em") {
45353
45981
  return [{ type: mark.type }];
45354
45982
  }
45355
- if (mark.type === "link" && isRecord8(mark.attrs) && typeof mark.attrs.href === "string") {
45983
+ if (mark.type === "link" && isRecord9(mark.attrs) && typeof mark.attrs.href === "string") {
45356
45984
  const attrs = { href: mark.attrs.href };
45357
45985
  if (typeof mark.attrs.target === "string" && mark.attrs.target.trim().length > 0) {
45358
45986
  attrs.target = mark.attrs.target;
@@ -45367,10 +45995,10 @@ function sanitizeMarks(marks) {
45367
45995
  return sanitized.length > 0 ? sanitized : void 0;
45368
45996
  }
45369
45997
  function unwrapRichTextValue(value) {
45370
- if (isRecord8(value) && isRecord8(value.doc)) {
45998
+ if (isRecord9(value) && isRecord9(value.doc)) {
45371
45999
  return unwrapRichTextValue(value.doc);
45372
46000
  }
45373
- if (isRecord8(value) && value.type === "doc") {
46001
+ if (isRecord9(value) && value.type === "doc") {
45374
46002
  return {
45375
46003
  type: "doc",
45376
46004
  content: Array.isArray(value.content) ? value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) : []
@@ -45379,7 +46007,7 @@ function unwrapRichTextValue(value) {
45379
46007
  return EMPTY_SITE_BANNER_BODY;
45380
46008
  }
45381
46009
  function isTipTapNodeLike(value) {
45382
- return isRecord8(value) && typeof value.type === "string";
46010
+ return isRecord9(value) && typeof value.type === "string";
45383
46011
  }
45384
46012
  function coerceTipTapNode(value) {
45385
46013
  return {
@@ -45387,9 +46015,9 @@ function coerceTipTapNode(value) {
45387
46015
  ...Array.isArray(value.content) ? { content: value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) } : {},
45388
46016
  ...typeof value.text === "string" ? { text: value.text } : {},
45389
46017
  ...Array.isArray(value.marks) ? {
45390
- marks: value.marks.filter((mark) => isRecord8(mark) && typeof mark.type === "string").map((mark) => ({
46018
+ marks: value.marks.filter((mark) => isRecord9(mark) && typeof mark.type === "string").map((mark) => ({
45391
46019
  type: mark.type,
45392
- ...isRecord8(mark.attrs) ? { attrs: mark.attrs } : {}
46020
+ ...isRecord9(mark.attrs) ? { attrs: mark.attrs } : {}
45393
46021
  }))
45394
46022
  } : {}
45395
46023
  };
@@ -45416,19 +46044,19 @@ var init_siteBanner = __esm({
45416
46044
  SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
45417
46045
  SITE_BANNER_MAX_TEXT_LENGTH = 320;
45418
46046
  SITE_BANNER_MAX_PARAGRAPHS = 2;
45419
- siteBannerScopeSchema = z72.enum(SITE_BANNER_SCOPE_VALUES);
45420
- siteBannerToneSchema = z72.enum(SITE_BANNER_TONE_VALUES);
45421
- siteBannerBodySchema = z72.unknown().transform(unwrapRichTextValue);
45422
- siteBannerCtaSchema = z72.object({
45423
- label: z72.string().trim().min(1),
46047
+ siteBannerScopeSchema = z73.enum(SITE_BANNER_SCOPE_VALUES);
46048
+ siteBannerToneSchema = z73.enum(SITE_BANNER_TONE_VALUES);
46049
+ siteBannerBodySchema = z73.unknown().transform(unwrapRichTextValue);
46050
+ siteBannerCtaSchema = z73.object({
46051
+ label: z73.string().trim().min(1),
45424
46052
  link: linkPayloadSchema
45425
46053
  });
45426
- siteBannerSettingsSchema = z72.discriminatedUnion("enabled", [
45427
- z72.object({
45428
- enabled: z72.literal(false)
46054
+ siteBannerSettingsSchema = z73.discriminatedUnion("enabled", [
46055
+ z73.object({
46056
+ enabled: z73.literal(false)
45429
46057
  }),
45430
- z72.object({
45431
- enabled: z72.literal(true),
46058
+ z73.object({
46059
+ enabled: z73.literal(true),
45432
46060
  scope: siteBannerScopeSchema,
45433
46061
  tone: siteBannerToneSchema,
45434
46062
  body: siteBannerBodySchema,
@@ -45442,7 +46070,7 @@ var init_siteBanner = __esm({
45442
46070
  const analysis = analyzeSiteBannerBody(value.body);
45443
46071
  for (const issue of analysis.issues) {
45444
46072
  ctx.addIssue({
45445
- code: z72.ZodIssueCode.custom,
46073
+ code: z73.ZodIssueCode.custom,
45446
46074
  path: ["body"],
45447
46075
  message: siteBannerBodyIssueMessage(issue)
45448
46076
  });
@@ -45832,75 +46460,75 @@ var init_aiPatch = __esm({
45832
46460
  });
45833
46461
 
45834
46462
  // ../api/src/aiPlayground.ts
45835
- import { z as z73 } from "zod";
46463
+ import { z as z74 } from "zod";
45836
46464
  var Rfc6902PatchOp, PlaygroundProposeRequest, MultiPagePatchEnvelope, MultiPageUpdateResponse;
45837
46465
  var init_aiPlayground = __esm({
45838
46466
  "../api/src/aiPlayground.ts"() {
45839
46467
  "use strict";
45840
- Rfc6902PatchOp = z73.discriminatedUnion("op", [
46468
+ Rfc6902PatchOp = z74.discriminatedUnion("op", [
45841
46469
  // Standard RFC-6902 operations
45842
- z73.object({
45843
- op: z73.literal("add"),
45844
- path: z73.string(),
45845
- value: z73.unknown()
46470
+ z74.object({
46471
+ op: z74.literal("add"),
46472
+ path: z74.string(),
46473
+ value: z74.unknown()
45846
46474
  }),
45847
- z73.object({
45848
- op: z73.literal("remove"),
45849
- path: z73.string()
46475
+ z74.object({
46476
+ op: z74.literal("remove"),
46477
+ path: z74.string()
45850
46478
  }),
45851
- z73.object({
45852
- op: z73.literal("replace"),
45853
- path: z73.string(),
45854
- value: z73.unknown()
46479
+ z74.object({
46480
+ op: z74.literal("replace"),
46481
+ path: z74.string(),
46482
+ value: z74.unknown()
45855
46483
  }),
45856
- z73.object({
45857
- op: z73.literal("move"),
45858
- from: z73.string(),
45859
- path: z73.string()
46484
+ z74.object({
46485
+ op: z74.literal("move"),
46486
+ from: z74.string(),
46487
+ path: z74.string()
45860
46488
  }),
45861
- z73.object({
45862
- op: z73.literal("copy"),
45863
- from: z73.string(),
45864
- path: z73.string()
46489
+ z74.object({
46490
+ op: z74.literal("copy"),
46491
+ from: z74.string(),
46492
+ path: z74.string()
45865
46493
  }),
45866
46494
  // Block-level operations (Phase 2)
45867
- z73.object({
45868
- op: z73.literal("add_block"),
45869
- blockKind: z73.string(),
45870
- afterBlockId: z73.string().nullable(),
45871
- content: z73.record(z73.string(), z73.unknown()),
45872
- rationale: z73.string()
46495
+ z74.object({
46496
+ op: z74.literal("add_block"),
46497
+ blockKind: z74.string(),
46498
+ afterBlockId: z74.string().nullable(),
46499
+ content: z74.record(z74.string(), z74.unknown()),
46500
+ rationale: z74.string()
45873
46501
  }),
45874
- z73.object({
45875
- op: z73.literal("delete_block"),
45876
- blockId: z73.string(),
45877
- rationale: z73.string()
46502
+ z74.object({
46503
+ op: z74.literal("delete_block"),
46504
+ blockId: z74.string(),
46505
+ rationale: z74.string()
45878
46506
  }),
45879
- z73.object({
45880
- op: z73.literal("reorder_block"),
45881
- blockId: z73.string(),
45882
- afterBlockId: z73.string().nullable(),
45883
- rationale: z73.string()
46507
+ z74.object({
46508
+ op: z74.literal("reorder_block"),
46509
+ blockId: z74.string(),
46510
+ afterBlockId: z74.string().nullable(),
46511
+ rationale: z74.string()
45884
46512
  })
45885
46513
  ]);
45886
- PlaygroundProposeRequest = z73.object({
45887
- request: z73.string().min(1).max(2e3)
46514
+ PlaygroundProposeRequest = z74.object({
46515
+ request: z74.string().min(1).max(2e3)
45888
46516
  });
45889
- MultiPagePatchEnvelope = z73.object({
45890
- pageId: z73.string(),
45891
- blockId: z73.string().optional(),
46517
+ MultiPagePatchEnvelope = z74.object({
46518
+ pageId: z74.string(),
46519
+ blockId: z74.string().optional(),
45892
46520
  // Not present for page-level ops
45893
- blockKind: z73.string().optional(),
45894
- blockPurpose: z73.string().optional().nullable(),
45895
- ops: z73.array(Rfc6902PatchOp),
45896
- rationale: z73.string(),
45897
- currentContent: z73.record(z73.string(), z73.unknown()).optional()
46521
+ blockKind: z74.string().optional(),
46522
+ blockPurpose: z74.string().optional().nullable(),
46523
+ ops: z74.array(Rfc6902PatchOp),
46524
+ rationale: z74.string(),
46525
+ currentContent: z74.record(z74.string(), z74.unknown()).optional()
45898
46526
  });
45899
- MultiPageUpdateResponse = z73.object({
45900
- patches: z73.array(MultiPagePatchEnvelope),
45901
- assistantMessage: z73.string(),
45902
- pagesModified: z73.number(),
45903
- toolCallsUsed: z73.number()
46527
+ MultiPageUpdateResponse = z74.object({
46528
+ patches: z74.array(MultiPagePatchEnvelope),
46529
+ assistantMessage: z74.string(),
46530
+ pagesModified: z74.number(),
46531
+ toolCallsUsed: z74.number()
45904
46532
  });
45905
46533
  }
45906
46534
  });
@@ -45971,6 +46599,7 @@ var init_src5 = __esm({
45971
46599
  init_contracts2();
45972
46600
  init_sdkContracts();
45973
46601
  init_incrementalJson();
46602
+ init_mailchimpIntegration();
45974
46603
  init_launchReadiness();
45975
46604
  init_url();
45976
46605
  init_envelope();
@@ -46039,9 +46668,9 @@ var init_src5 = __esm({
46039
46668
 
46040
46669
  // src/data/prefetchBlockData.ts
46041
46670
  function isSupportedLoaderEndpoint2(endpoint) {
46042
- return SUPPORTED_LOADER_ENDPOINTS2.includes(endpoint);
46671
+ return SUPPORTED_LOADER_ENDPOINTS.includes(endpoint);
46043
46672
  }
46044
- function isRecord9(value) {
46673
+ function isRecord10(value) {
46045
46674
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
46046
46675
  }
46047
46676
  function extractManualEntryRef(item) {
@@ -46049,7 +46678,7 @@ function extractManualEntryRef(item) {
46049
46678
  const trimmed = item.trim();
46050
46679
  return trimmed.length > 0 ? trimmed : null;
46051
46680
  }
46052
- if (!isRecord9(item)) return null;
46681
+ if (!isRecord10(item)) return null;
46053
46682
  for (const key of ENTRY_REF_KEYS) {
46054
46683
  const raw = item[key];
46055
46684
  if (typeof raw === "string" && raw.trim().length > 0) {
@@ -46097,6 +46726,180 @@ function parseManualEntryRefs(...values) {
46097
46726
  }
46098
46727
  return void 0;
46099
46728
  }
46729
+ function readStringParam(params, key) {
46730
+ const value = params[key];
46731
+ return value && value.length > 0 ? value : void 0;
46732
+ }
46733
+ function requireStringParam(params, key, endpoint) {
46734
+ const value = readStringParam(params, key);
46735
+ if (!value) {
46736
+ throw new Error(`${endpoint} requires ${key} param`);
46737
+ }
46738
+ return value;
46739
+ }
46740
+ function parsePositiveIntegerParam(params, key) {
46741
+ const value = params[key];
46742
+ const parsed = value === void 0 ? void 0 : Number.parseInt(value, 10);
46743
+ return typeof parsed === "number" && Number.isInteger(parsed) && parsed > 0 ? parsed : void 0;
46744
+ }
46745
+ function parseEntryOrder(value) {
46746
+ if (value === void 0) return void 0;
46747
+ switch (value) {
46748
+ case "order":
46749
+ return "manual";
46750
+ case "newest":
46751
+ case "oldest":
46752
+ case "title":
46753
+ return value;
46754
+ default:
46755
+ return void 0;
46756
+ }
46757
+ }
46758
+ function parsePublicEventKind(value) {
46759
+ if (value === void 0) return void 0;
46760
+ switch (value) {
46761
+ case "all":
46762
+ case "courses":
46763
+ case "events":
46764
+ return value;
46765
+ default:
46766
+ return void 0;
46767
+ }
46768
+ }
46769
+ async function listPublishedEntries2({ client, params }) {
46770
+ const siteId = requireStringParam(params, "siteId", "listPublishedEntries");
46771
+ const type = requireStringParam(params, "type", "listPublishedEntries");
46772
+ const stage = readStringParam(params, "stage");
46773
+ const mode = readStringParam(params, "mode");
46774
+ const parsedEntryRefs = mode === "manual" ? parseManualEntryRefs(params.identifiers, params.entryRefs, params.entryIds) : void 0;
46775
+ if (mode === "manual" && (!parsedEntryRefs || parsedEntryRefs.length === 0)) {
46776
+ return { entries: [] };
46777
+ }
46778
+ if (mode === "manual" && parsedEntryRefs) {
46779
+ return await client.getEntriesByIdentifiers({
46780
+ siteId,
46781
+ contentType: type,
46782
+ identifiers: parsedEntryRefs,
46783
+ preview: stage === "preview"
46784
+ });
46785
+ }
46786
+ return await client.getEntries({
46787
+ siteId,
46788
+ contentType: type,
46789
+ limit: parsePositiveIntegerParam(params, "limit"),
46790
+ order: parseEntryOrder(readStringParam(params, "orderBy")),
46791
+ preview: stage === "preview"
46792
+ });
46793
+ }
46794
+ async function getPublishedEntryPreview({ client, params }) {
46795
+ return await client.getEntry({
46796
+ siteId: requireStringParam(params, "siteId", "getPublishedEntryPreview"),
46797
+ contentType: requireStringParam(params, "type", "getPublishedEntryPreview"),
46798
+ slug: requireStringParam(params, "slug", "getPublishedEntryPreview")
46799
+ });
46800
+ }
46801
+ async function listPublicEvents({ client, params }) {
46802
+ return await client.listPublicEvents({
46803
+ siteId: requireStringParam(params, "siteId", "listPublicEvents"),
46804
+ limit: parsePositiveIntegerParam(params, "limit"),
46805
+ from: readStringParam(params, "from"),
46806
+ to: readStringParam(params, "to"),
46807
+ afterStartsAt: readStringParam(params, "afterStartsAt"),
46808
+ afterId: readStringParam(params, "afterId"),
46809
+ stage: readStringParam(params, "stage"),
46810
+ categoryIds: readStringParam(params, "categoryIds"),
46811
+ venueId: readStringParam(params, "venueId"),
46812
+ staffMemberId: readStringParam(params, "staffMemberId"),
46813
+ kind: parsePublicEventKind(readStringParam(params, "kind")),
46814
+ eventSurface: readStringParam(params, "eventSurface"),
46815
+ eventPresets: readStringParam(params, "eventPresets"),
46816
+ scheduleScope: readStringParam(params, "scheduleScope"),
46817
+ entryId: readStringParam(params, "entryId"),
46818
+ seriesId: readStringParam(params, "seriesId"),
46819
+ includeOccurrenceId: readStringParam(params, "includeOccurrenceId")
46820
+ });
46821
+ }
46822
+ async function getPublicEventDetails({ client, params }) {
46823
+ return await client.getPublicEventDetails({
46824
+ siteId: requireStringParam(params, "siteId", "getPublicEventDetails"),
46825
+ limit: parsePositiveIntegerParam(params, "limit"),
46826
+ from: readStringParam(params, "from"),
46827
+ to: readStringParam(params, "to"),
46828
+ afterStartsAt: readStringParam(params, "afterStartsAt"),
46829
+ afterId: readStringParam(params, "afterId"),
46830
+ stage: readStringParam(params, "stage"),
46831
+ categoryIds: readStringParam(params, "categoryIds"),
46832
+ venueId: readStringParam(params, "venueId"),
46833
+ staffMemberId: readStringParam(params, "staffMemberId"),
46834
+ kind: readStringParam(params, "kind"),
46835
+ eventSurface: readStringParam(params, "eventSurface"),
46836
+ eventPresets: readStringParam(params, "eventPresets"),
46837
+ scheduleScope: readStringParam(params, "scheduleScope"),
46838
+ entryId: readStringParam(params, "entryId"),
46839
+ seriesId: readStringParam(params, "seriesId"),
46840
+ includeOccurrenceId: readStringParam(params, "includeOccurrenceId")
46841
+ });
46842
+ }
46843
+ async function listPublicCourses({ client, params }) {
46844
+ return await client.listPublicCourses({
46845
+ siteId: requireStringParam(params, "siteId", "listPublicCourses"),
46846
+ limit: parsePositiveIntegerParam(params, "limit"),
46847
+ stage: readStringParam(params, "stage")
46848
+ });
46849
+ }
46850
+ async function listPublicRouteCandidates({ client, params }) {
46851
+ const siteId = requireStringParam(params, "siteId", "listPublicRouteCandidates");
46852
+ const response = await client.getAllPublishedRoutes({ siteId });
46853
+ return {
46854
+ routes: response.items.flatMap((item) => {
46855
+ if (!item.path) return [];
46856
+ return [{
46857
+ entityId: item.entityId,
46858
+ path: item.path,
46859
+ title: item.title,
46860
+ kind: item.entityType,
46861
+ contentTypeKey: item.contentTypeKey ?? null
46862
+ }];
46863
+ })
46864
+ };
46865
+ }
46866
+ async function listPublicTeamMembers({ client, params }) {
46867
+ return await client.listPublicTeamMembers({
46868
+ siteId: requireStringParam(params, "siteId", "listPublicTeamMembers"),
46869
+ stage: readStringParam(params, "stage")
46870
+ });
46871
+ }
46872
+ async function listPublicProducts({ client, params }) {
46873
+ return await client.listPublicProducts({
46874
+ siteId: requireStringParam(params, "siteId", "listPublicProducts"),
46875
+ stage: readStringParam(params, "stage") === "preview" ? "preview" : "published",
46876
+ categorySelector: parsePublicProductCategorySelector(params.categorySelector)
46877
+ });
46878
+ }
46879
+ async function listPublicPasses({ client, params }) {
46880
+ return await client.listPublicPasses({
46881
+ siteId: requireStringParam(params, "siteId", "listPublicPasses"),
46882
+ categories: readStringParam(params, "categories")
46883
+ });
46884
+ }
46885
+ async function listPublicMemberships({ client, params }) {
46886
+ return await client.listPublicMemberships({
46887
+ siteId: requireStringParam(params, "siteId", "listPublicMemberships"),
46888
+ categories: readStringParam(params, "categories")
46889
+ });
46890
+ }
46891
+ async function getPublicFormById({ client, params }) {
46892
+ return await client.getPublicFormById({
46893
+ formId: requireStringParam(params, "formId", "getPublicFormById"),
46894
+ siteId: requireStringParam(params, "siteId", "getPublicFormById")
46895
+ });
46896
+ }
46897
+ async function getPublicBookingServices({ client, params }) {
46898
+ return await client.getPublicBookingServices({
46899
+ siteId: requireStringParam(params, "siteId", "getPublicBookingServices"),
46900
+ ids: readStringParam(params, "ids")
46901
+ });
46902
+ }
46100
46903
  async function prefetchBlockData2(page, context, client, options) {
46101
46904
  const { customBlocks } = options ?? {};
46102
46905
  const customBlockMap = new Map(
@@ -46106,189 +46909,11 @@ async function prefetchBlockData2(page, context, client, options) {
46106
46909
  apiClient: async ({ endpoint, params }) => {
46107
46910
  if (!isSupportedLoaderEndpoint2(endpoint)) {
46108
46911
  throw new Error(
46109
- `Unsupported loader endpoint: ${endpoint}. SDK only supports: ${SUPPORTED_LOADER_ENDPOINTS2.join(", ")}`
46912
+ `Unsupported loader endpoint: ${endpoint}. SDK only supports: ${SUPPORTED_LOADER_ENDPOINTS.join(", ")}`
46110
46913
  );
46111
46914
  }
46112
46915
  const resolvedParams = normalizeLoaderParams(endpoint, params, context);
46113
- switch (endpoint) {
46114
- case "listPublishedEntries": {
46115
- const {
46116
- siteId,
46117
- type,
46118
- orderBy,
46119
- limit,
46120
- stage,
46121
- mode,
46122
- entryIds,
46123
- identifiers,
46124
- entryRefs
46125
- } = resolvedParams ?? {};
46126
- if (!siteId || !type) {
46127
- throw new Error("listPublishedEntries requires siteId and type params");
46128
- }
46129
- const parsedLimit = typeof limit === "string" ? Number.parseInt(limit, 10) : typeof limit === "number" ? limit : void 0;
46130
- const order = orderBy === "order" ? "manual" : orderBy === "newest" || orderBy === "oldest" || orderBy === "title" ? orderBy : void 0;
46131
- const parsedEntryRefs = mode === "manual" ? parseManualEntryRefs(identifiers, entryRefs, entryIds) : void 0;
46132
- if (mode === "manual" && (!parsedEntryRefs || parsedEntryRefs.length === 0)) {
46133
- return { entries: [] };
46134
- }
46135
- if (mode === "manual" && parsedEntryRefs) {
46136
- return await client.getEntriesByIdentifiers({
46137
- siteId,
46138
- contentType: type,
46139
- identifiers: parsedEntryRefs,
46140
- preview: stage === "preview"
46141
- });
46142
- }
46143
- return await client.getEntries({
46144
- siteId,
46145
- contentType: type,
46146
- limit: parsedLimit,
46147
- order,
46148
- preview: stage === "preview"
46149
- });
46150
- }
46151
- case "getPublishedEntryPreview": {
46152
- const { siteId, type, slug } = resolvedParams ?? {};
46153
- if (!siteId || !type || !slug) {
46154
- throw new Error("getPublishedEntryPreview requires siteId, type, and slug params");
46155
- }
46156
- return await client.getEntry({ siteId, contentType: type, slug });
46157
- }
46158
- case "listPublicEvents": {
46159
- const {
46160
- siteId,
46161
- limit,
46162
- from,
46163
- to,
46164
- stage,
46165
- categoryIds,
46166
- venueId,
46167
- kind,
46168
- entryId,
46169
- seriesId,
46170
- includeOccurrenceId
46171
- } = resolvedParams ?? {};
46172
- if (!siteId) {
46173
- throw new Error("listPublicEvents requires siteId param");
46174
- }
46175
- const parsedLimit = typeof limit === "string" ? Number.parseInt(limit, 10) : typeof limit === "number" ? limit : void 0;
46176
- return await client.listPublicEvents({
46177
- siteId,
46178
- limit: parsedLimit,
46179
- from,
46180
- to,
46181
- stage,
46182
- categoryIds: typeof categoryIds === "string" ? categoryIds : void 0,
46183
- venueId: typeof venueId === "string" ? venueId : void 0,
46184
- kind: kind === "all" || kind === "courses" || kind === "events" ? kind : void 0,
46185
- entryId: typeof entryId === "string" ? entryId : void 0,
46186
- seriesId: typeof seriesId === "string" ? seriesId : void 0,
46187
- includeOccurrenceId: typeof includeOccurrenceId === "string" ? includeOccurrenceId : void 0
46188
- });
46189
- }
46190
- case "getPublicEventDetails": {
46191
- const {
46192
- siteId,
46193
- limit,
46194
- from,
46195
- to,
46196
- afterStartsAt,
46197
- afterId,
46198
- stage,
46199
- categoryIds,
46200
- venueId,
46201
- staffMemberId,
46202
- kind,
46203
- entryId,
46204
- seriesId,
46205
- includeOccurrenceId
46206
- } = resolvedParams ?? {};
46207
- if (!siteId) {
46208
- throw new Error("getPublicEventDetails requires siteId param");
46209
- }
46210
- const parsedLimit = typeof limit === "string" ? Number.parseInt(limit, 10) : typeof limit === "number" ? limit : void 0;
46211
- return await client.getPublicEventDetails({
46212
- siteId,
46213
- limit: parsedLimit,
46214
- from: typeof from === "string" ? from : void 0,
46215
- to: typeof to === "string" ? to : void 0,
46216
- afterStartsAt: typeof afterStartsAt === "string" ? afterStartsAt : void 0,
46217
- afterId: typeof afterId === "string" ? afterId : void 0,
46218
- stage: typeof stage === "string" ? stage : void 0,
46219
- categoryIds: typeof categoryIds === "string" ? categoryIds : void 0,
46220
- venueId: typeof venueId === "string" ? venueId : void 0,
46221
- staffMemberId: typeof staffMemberId === "string" ? staffMemberId : void 0,
46222
- kind: typeof kind === "string" ? kind : void 0,
46223
- entryId: typeof entryId === "string" ? entryId : void 0,
46224
- seriesId: typeof seriesId === "string" ? seriesId : void 0,
46225
- includeOccurrenceId: typeof includeOccurrenceId === "string" ? includeOccurrenceId : void 0
46226
- });
46227
- }
46228
- case "listPublicCourses": {
46229
- const { siteId, limit, stage } = resolvedParams ?? {};
46230
- if (!siteId) {
46231
- throw new Error("listPublicCourses requires siteId param");
46232
- }
46233
- const parsedLimit = typeof limit === "string" ? Number.parseInt(limit, 10) : typeof limit === "number" ? limit : void 0;
46234
- return await client.listPublicCourses({ siteId, limit: parsedLimit, stage });
46235
- }
46236
- case "listPublicTeamMembers": {
46237
- const { siteId, stage } = resolvedParams ?? {};
46238
- if (!siteId) {
46239
- throw new Error("listPublicTeamMembers requires siteId param");
46240
- }
46241
- return await client.listPublicTeamMembers({
46242
- siteId,
46243
- stage: typeof stage === "string" ? stage : void 0
46244
- });
46245
- }
46246
- case "listPublicProducts": {
46247
- const { siteId, stage, categorySelector } = resolvedParams ?? {};
46248
- if (!siteId) {
46249
- throw new Error("listPublicProducts requires siteId param");
46250
- }
46251
- return await client.listPublicProducts({
46252
- siteId,
46253
- stage: stage === "preview" ? "preview" : "published",
46254
- categorySelector: parsePublicProductCategorySelector(categorySelector)
46255
- });
46256
- }
46257
- case "getPublicFormById": {
46258
- const { formId, siteId } = resolvedParams ?? {};
46259
- if (!formId) {
46260
- throw new Error("getPublicFormById requires formId param");
46261
- }
46262
- if (!siteId) {
46263
- throw new Error("getPublicFormById requires siteId param");
46264
- }
46265
- return await client.getPublicFormById({ formId, siteId });
46266
- }
46267
- case "getPublicBookingServices": {
46268
- const { siteId, ids } = resolvedParams ?? {};
46269
- if (!siteId) {
46270
- throw new Error("getPublicBookingServices requires siteId param");
46271
- }
46272
- return await client.getPublicBookingServices({ siteId, ids });
46273
- }
46274
- case "listPublicPasses": {
46275
- const { siteId, categories } = resolvedParams ?? {};
46276
- if (!siteId) {
46277
- throw new Error("listPublicPasses requires siteId param");
46278
- }
46279
- return await client.listPublicPasses({ siteId, categories });
46280
- }
46281
- case "listPublicMemberships": {
46282
- const { siteId, categories } = resolvedParams ?? {};
46283
- if (!siteId) {
46284
- throw new Error("listPublicMemberships requires siteId param");
46285
- }
46286
- return await client.listPublicMemberships({ siteId, categories });
46287
- }
46288
- default: {
46289
- throw new Error("Unhandled endpoint");
46290
- }
46291
- }
46916
+ return await loaderAdapters[endpoint]({ client, params: resolvedParams });
46292
46917
  },
46293
46918
  isValidEndpoint: isSupportedLoaderEndpoint2,
46294
46919
  onError: (error, { block, loader }) => {
@@ -46315,26 +46940,12 @@ async function prefetchBlockData2(page, context, client, options) {
46315
46940
  }
46316
46941
  });
46317
46942
  }
46318
- var SUPPORTED_LOADER_ENDPOINTS2, ENTRY_REF_KEYS;
46943
+ var ENTRY_REF_KEYS, loaderAdapters;
46319
46944
  var init_prefetchBlockData2 = __esm({
46320
46945
  "src/data/prefetchBlockData.ts"() {
46321
46946
  "use strict";
46322
46947
  init_src5();
46323
46948
  init_data();
46324
- init_data();
46325
- SUPPORTED_LOADER_ENDPOINTS2 = [
46326
- "listPublishedEntries",
46327
- "getPublishedEntryPreview",
46328
- "listPublicEvents",
46329
- "listPublicCourses",
46330
- "listPublicTeamMembers",
46331
- "listPublicProducts",
46332
- "listPublicPasses",
46333
- "listPublicMemberships",
46334
- "getPublicFormById",
46335
- "getPublicBookingServices",
46336
- "getPublicEventDetails"
46337
- ];
46338
46949
  ENTRY_REF_KEYS = [
46339
46950
  "identifier",
46340
46951
  "entryIdentifier",
@@ -46342,6 +46953,20 @@ var init_prefetchBlockData2 = __esm({
46342
46953
  "entryId",
46343
46954
  "slug"
46344
46955
  ];
46956
+ loaderAdapters = {
46957
+ listPublishedEntries: listPublishedEntries2,
46958
+ getPublishedEntryPreview,
46959
+ listPublicEvents,
46960
+ getPublicEventDetails,
46961
+ listPublicCourses,
46962
+ listPublicRouteCandidates,
46963
+ listPublicTeamMembers,
46964
+ listPublicProducts,
46965
+ listPublicPasses,
46966
+ listPublicMemberships,
46967
+ getPublicFormById,
46968
+ getPublicBookingServices
46969
+ };
46345
46970
  }
46346
46971
  });
46347
46972
 
@@ -46415,6 +47040,83 @@ var init_siteCustomBlocks = __esm({
46415
47040
  }
46416
47041
  });
46417
47042
 
47043
+ // src/rendering/helpers/pageRuntimeSupport.ts
47044
+ function buildSiteRenderSupport(site, mediaAssets) {
47045
+ const customBlocks = resolveSiteCustomBlocks(site);
47046
+ return {
47047
+ theme: site.theme,
47048
+ site: site.site,
47049
+ sdkConfig: site.sdkConfig ?? null,
47050
+ bookingOfferingPresets: site.bookingOfferingPresets ?? [],
47051
+ ...customBlocks ? { customBlocks } : {},
47052
+ supabaseUrl: site.supabaseUrl,
47053
+ routeMap: site.routes,
47054
+ pagesByIdentifier: site.pagesByIdentifier,
47055
+ entriesByIdentifier: site.entriesByIdentifier,
47056
+ ...mediaAssets ? { mediaAssets } : {}
47057
+ };
47058
+ }
47059
+ function collectMediaAssetSidecar(mediaAssets) {
47060
+ return Array.isArray(mediaAssets) && mediaAssets.length > 0 ? mediaAssets : void 0;
47061
+ }
47062
+ function convertPageResponseBlock(block) {
47063
+ if (!isRecord11(block)) {
47064
+ throw new Error("Invalid block format in page API response");
47065
+ }
47066
+ if (typeof block.id !== "string" && block.id !== null) {
47067
+ throw new Error(`Invalid block id in page: expected string or null, got ${typeof block.id}`);
47068
+ }
47069
+ if (typeof block.kind !== "string") {
47070
+ throw new Error(`Invalid block kind in page: expected string, got ${typeof block.kind}`);
47071
+ }
47072
+ if (typeof block.purpose !== "string") {
47073
+ throw new Error(`Invalid block purpose in page: expected string, got ${typeof block.purpose}`);
47074
+ }
47075
+ return {
47076
+ id: block.id,
47077
+ kind: block.kind,
47078
+ purpose: block.purpose,
47079
+ content: sanitizeSdkRuntimeBlockContent(block.kind, readContentRecord(block.content) ?? {}),
47080
+ draftContent: sanitizeNullableSdkRuntimeBlockContent(
47081
+ block.kind,
47082
+ readNestedContentRecord(block.draftContent)
47083
+ )
47084
+ };
47085
+ }
47086
+ function buildPageOutline(input) {
47087
+ return {
47088
+ name: input.name,
47089
+ path: input.path ?? input.fallbackPath,
47090
+ purpose: input.purpose,
47091
+ blocks: input.blocks.map(convertPageResponseBlock)
47092
+ };
47093
+ }
47094
+ function isRecord11(value) {
47095
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
47096
+ }
47097
+ function readContentRecord(value) {
47098
+ return isRecord11(value) ? value : void 0;
47099
+ }
47100
+ function readNestedContentRecord(value) {
47101
+ if (!isRecord11(value)) return null;
47102
+ return readContentRecord(value.data) ?? null;
47103
+ }
47104
+ function sanitizeSdkRuntimeBlockContent(blockKind, content) {
47105
+ if (blockKind !== "block.newsletter-signup") return content;
47106
+ const sanitized = sanitizeNewsletterSignupPublicContent(content);
47107
+ return isRecord11(sanitized) ? sanitized : {};
47108
+ }
47109
+ function sanitizeNullableSdkRuntimeBlockContent(blockKind, content) {
47110
+ return content ? sanitizeSdkRuntimeBlockContent(blockKind, content) : null;
47111
+ }
47112
+ var init_pageRuntimeSupport = __esm({
47113
+ "src/rendering/helpers/pageRuntimeSupport.ts"() {
47114
+ "use strict";
47115
+ init_newsletter_signup();
47116
+ init_siteCustomBlocks();
47117
+ }
47118
+ });
47119
+
46418
47120
  // src/rendering/helpers/loadPage.ts
46419
47121
  var loadPage_exports = {};
46420
47122
  __export(loadPage_exports, {
@@ -46426,45 +47128,23 @@ async function loadPage(params) {
46426
47128
  client.getSite({ id: siteId, ...forceSite ? { force: true } : {} }),
46427
47129
  client.getPage({ siteId, path, preview })
46428
47130
  ]);
46429
- const customBlocks = resolveSiteCustomBlocks(site);
46430
47131
  if ("entry" in pageResponse) {
46431
47132
  throw new Error(
46432
47133
  "This path resolves to a content entry, not a page. Use loadContent() instead, which handles both pages and entries. For entries, loadContent() returns the raw entry data for custom rendering."
46433
47134
  );
46434
47135
  }
46435
47136
  const { page: pageData } = pageResponse;
46436
- const mediaAssets = Array.isArray(pageResponse.mediaAssets) && pageResponse.mediaAssets.length > 0 ? toMediaAssetSidecar(pageResponse.mediaAssets) : void 0;
46437
- const blocks = pageData.blocks.map((block) => {
46438
- if (!block || typeof block !== "object") {
46439
- throw new Error("Invalid block format in API response");
46440
- }
46441
- if (typeof block.id !== "string" && block.id !== null) {
46442
- throw new Error(`Invalid block id: expected string or null, got ${typeof block.id}`);
46443
- }
46444
- if (typeof block.kind !== "string") {
46445
- throw new Error(`Invalid block kind: expected string, got ${typeof block.kind}`);
46446
- }
46447
- if (typeof block.purpose !== "string") {
46448
- throw new Error(`Invalid block purpose: expected string, got ${typeof block.purpose}`);
46449
- }
46450
- const typedBlock = block;
46451
- return {
46452
- id: typedBlock.id,
46453
- kind: typedBlock.kind,
46454
- purpose: typedBlock.purpose,
46455
- // Include content for PageRenderer's getRenderableContent()
46456
- content: typedBlock.content ?? {},
46457
- // Include draftContent if available (for preview mode)
46458
- draftContent: typedBlock.draftContent?.data ?? null
46459
- };
46460
- });
46461
- const canonicalPagePath = pageData.path ?? path;
46462
- const pageOutline = {
47137
+ const support = buildSiteRenderSupport(
47138
+ site,
47139
+ collectMediaAssetSidecar(pageResponse.mediaAssets)
47140
+ );
47141
+ const pageOutline = buildPageOutline({
46463
47142
  name: pageData.name,
46464
- path: canonicalPagePath,
47143
+ path: pageData.path,
47144
+ fallbackPath: path,
46465
47145
  purpose: pageData.purpose,
46466
- blocks
46467
- };
47146
+ blocks: pageData.blocks
47147
+ });
46468
47148
  const prefetchContext = {
46469
47149
  siteId,
46470
47150
  pageId: pageId ?? pageData.id,
@@ -46477,7 +47157,7 @@ async function loadPage(params) {
46477
47157
  client,
46478
47158
  {
46479
47159
  // Pass custom blocks so their config-based loaders are discovered
46480
- customBlocks
47160
+ customBlocks: support.customBlocks
46481
47161
  }
46482
47162
  );
46483
47163
  let resolvedData = configData;
@@ -46487,28 +47167,26 @@ async function loadPage(params) {
46487
47167
  }
46488
47168
  return {
46489
47169
  page: pageOutline,
46490
- theme: site.theme,
46491
- sdkConfig: site.sdkConfig ?? null,
47170
+ theme: support.theme,
47171
+ sdkConfig: support.sdkConfig,
46492
47172
  siteId,
46493
47173
  resolvedData,
46494
- supabaseUrl: site.supabaseUrl,
46495
- ...mediaAssets ? { mediaAssets } : {},
46496
- ...customBlocks ? { customBlocks } : {},
47174
+ bookingOfferingPresets: support.bookingOfferingPresets,
47175
+ supabaseUrl: support.supabaseUrl,
47176
+ ...support.mediaAssets ? { mediaAssets: support.mediaAssets } : {},
47177
+ ...support.customBlocks ? { customBlocks: support.customBlocks } : {},
46497
47178
  // Maps for CTA link resolution (e.g., { kind: 'page', identifier: 'about' })
46498
- routeMap: site.routes,
46499
- pagesByIdentifier: site.pagesByIdentifier,
46500
- entriesByIdentifier: site.entriesByIdentifier
47179
+ routeMap: support.routeMap,
47180
+ pagesByIdentifier: support.pagesByIdentifier,
47181
+ entriesByIdentifier: support.entriesByIdentifier
46501
47182
  };
46502
47183
  }
46503
- function toMediaAssetSidecar(mediaAssets) {
46504
- return mediaAssets ?? [];
46505
- }
46506
47184
  var init_loadPage = __esm({
46507
47185
  "src/rendering/helpers/loadPage.ts"() {
46508
47186
  "use strict";
46509
47187
  init_prefetchBlockData2();
46510
47188
  init_executeCodeLoaders();
46511
- init_siteCustomBlocks();
47189
+ init_pageRuntimeSupport();
46512
47190
  }
46513
47191
  });
46514
47192