@riverbankcms/sdk 0.84.2 → 0.88.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/dist/{PreviewEditorSidebar-4PH35ZIE.mjs → PreviewEditorSidebar-EVRS3C7T.mjs} +3 -3
  2. package/dist/{PreviewEditorUI-WHMCRJGM.mjs → PreviewEditorUI-54WD4IGE.mjs} +3 -3
  3. package/dist/SdkPreviewModeRuntime-ZALZDJEK.mjs +8 -0
  4. package/dist/_dts/ai/src/contracts/proposals.d.ts +684 -0
  5. package/dist/_dts/api/src/endpoints.d.ts +58 -14
  6. package/dist/_dts/api/src/index.d.ts +4 -1
  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/siteRuntimeEndpoints.d.ts +1 -13
  12. package/dist/_dts/api/src/types.d.ts +6 -3
  13. package/dist/_dts/blocks/src/PageRenderer.d.ts +1 -0
  14. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -0
  15. package/dist/_dts/blocks/src/index.d.ts +2 -1
  16. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +288 -288
  17. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +288 -288
  18. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +288 -288
  19. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +288 -288
  20. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +288 -288
  21. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +42 -0
  22. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -0
  23. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +288 -288
  24. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +288 -288
  25. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
  26. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +42 -42
  27. package/dist/_dts/blocks/src/system/blocks/newsletter-signup-destination.d.ts +300 -0
  28. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +63 -3
  29. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +288 -288
  30. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +288 -288
  31. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +288 -288
  32. package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +53 -1
  33. package/dist/_dts/blocks/src/system/manifest/richTextSchema.d.ts +27 -0
  34. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +23 -23
  35. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +10 -2
  36. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +24 -0
  37. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +12 -0
  38. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +1 -0
  39. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +4 -0
  40. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
  41. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +11 -1
  42. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +15 -0
  43. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.server.d.ts +1 -1
  44. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +32 -0
  45. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +5 -1
  46. package/dist/_dts/blocks/src/system/runtime/shared/components/ModalShell.d.ts +5 -1
  47. package/dist/_dts/blocks/src/system/runtime/shared/utils/formatting.d.ts +1 -1
  48. package/dist/_dts/content-model/src/referenceFields.d.ts +1 -1
  49. package/dist/_dts/core/src/currency-format.d.ts +37 -2
  50. package/dist/_dts/core/src/event-pricing.d.ts +24 -0
  51. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +551 -20
  52. package/dist/_dts/editor-blocks/src/widgets/reference/loaders.d.ts +3 -1
  53. package/dist/_dts/sdk/src/cli/canonical-entry-policy.d.ts +53 -0
  54. package/dist/_dts/sdk/src/cli/commands/migrate.d.ts +1 -0
  55. package/dist/_dts/sdk/src/cli/commands/pull.d.ts +7 -1
  56. package/dist/_dts/sdk/src/cli/content/reader.d.ts +2 -0
  57. package/dist/_dts/sdk/src/cli/migrations/events.d.ts +73 -0
  58. package/dist/_dts/sdk/src/client/types.d.ts +9 -0
  59. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  60. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +3 -0
  61. package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +3 -9
  62. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +1 -1
  63. package/dist/_dts/sdk/src/manifest/three-pass-converter.d.ts +7 -18
  64. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -0
  65. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +3 -1
  66. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +7 -3
  67. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +4 -24
  68. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +45 -0
  69. package/dist/_dts/sdk/src/version.d.ts +1 -1
  70. package/dist/_dts/site-commands/src/commands.d.ts +57 -0
  71. package/dist/_dts/surfaces/src/index.d.ts +12 -0
  72. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  73. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +9 -9
  74. package/dist/_dts/theme-core/src/schema.d.ts +11 -11
  75. package/dist/{chunk-ZR2GQK2A.mjs → chunk-7KOO7RPP.mjs} +953 -315
  76. package/dist/{chunk-OCGTXHSO.mjs → chunk-ER4UIW4X.mjs} +7 -7
  77. package/dist/{chunk-WFPYN7KA.mjs → chunk-HVOBXA3Y.mjs} +2 -2
  78. package/dist/{chunk-NFWGLRZZ.mjs → chunk-K3JWH6HE.mjs} +37 -3
  79. package/dist/{chunk-4QNLOTES.mjs → chunk-O4LVYUVH.mjs} +58 -14
  80. package/dist/{chunk-PYDHOMEO.mjs → chunk-YDMBIIS5.mjs} +1 -1
  81. package/dist/cli/index.mjs +1858 -512
  82. package/dist/client/{accordion-2UZPBMYM.mjs → accordion-PT5CGW5N.mjs} +2 -2
  83. package/dist/client/{bookingForm-36CWQUMV.mjs → bookingForm-2HLRTEYS.mjs} +7 -7
  84. package/dist/client/bookings.mjs +51 -6
  85. package/dist/client/{carousel-QH77HR6X.mjs → carousel-Z2LKYSWA.mjs} +3 -3
  86. package/dist/client/cart-ND5IK4A6.mjs +18 -0
  87. package/dist/client/checkout-EYUSGAY7.mjs +18 -0
  88. package/dist/client/{chunk-SYIJ5JO2.mjs → chunk-6DVPO44G.mjs} +1 -1
  89. package/dist/client/{chunk-3C2VTPWI.mjs → chunk-BAWHZ5GM.mjs} +176 -13
  90. package/dist/client/{chunk-52CGCQ7B.mjs → chunk-BL66UWGD.mjs} +10 -80
  91. package/dist/client/{chunk-VGDBVNOO.mjs → chunk-DIRW2LNG.mjs} +241 -210
  92. package/dist/client/{chunk-UDNSI5PY.mjs → chunk-GOFO7HRH.mjs} +1 -2
  93. package/dist/client/{chunk-ZKUO52W3.mjs → chunk-H4MHEXYS.mjs} +1 -1
  94. package/dist/client/{chunk-ZE5G642V.mjs → chunk-LI2C6M5O.mjs} +75 -1
  95. package/dist/client/{chunk-3DTWLTXM.mjs → chunk-MHBEWDT7.mjs} +117 -3
  96. package/dist/client/{chunk-4OXKTA3D.mjs → chunk-O5JNI3E4.mjs} +2 -2
  97. package/dist/client/{chunk-XSV6KW4D.mjs → chunk-S4G65LGR.mjs} +1 -1
  98. package/dist/client/{chunk-DVNUDUVT.mjs → chunk-WBQG7VJA.mjs} +4 -1
  99. package/dist/client/{chunk-F5VRX5Y6.mjs → chunk-WCVK4MBJ.mjs} +1 -1
  100. package/dist/client/{chunk-7UCLJ5SP.mjs → chunk-X7GVFB7Y.mjs} +4 -7
  101. package/dist/client/client.mjs +2125 -1403
  102. package/dist/client/{courseRegistration-TMKU6ABO.mjs → courseRegistration-H3AZBUEG.mjs} +7 -7
  103. package/dist/client/{eventCalendar-G6TI32X6.mjs → eventCalendar-FPKJGLGS.mjs} +10 -11
  104. package/dist/client/{eventCombined-SCKEMNAR.mjs → eventCombined-QCGIZBUY.mjs} +10 -11
  105. package/dist/client/{eventDetails-XPIFXXPK.mjs → eventDetails-HIT3BJWU.mjs} +10 -11
  106. package/dist/client/{eventListing-7QFMEMGT.mjs → eventListing-R4HNWJDN.mjs} +10 -11
  107. package/dist/client/{eventRegistration-TOODSZUI.mjs → eventRegistration-Q7BYY5HF.mjs} +10 -11
  108. package/dist/client/{form-MTCMVCZT.mjs → form-NI6YOG6S.mjs} +3 -3
  109. package/dist/client/{headerSection-Y5TMR3TW.mjs → headerSection-SDYGII36.mjs} +4 -4
  110. package/dist/client/hooks.mjs +1682 -1412
  111. package/dist/client/{locationMap-RH2LG7FZ.mjs → locationMap-BDETEUQD.mjs} +3 -4
  112. package/dist/client/{newsletterForm-PCAIPFMA.mjs → newsletterForm-EKYIU67X.mjs} +70 -22
  113. package/dist/client/{productDetail-OIGDR4YE.mjs → productDetail-5UTGNN76.mjs} +8 -9
  114. package/dist/client/{productList-4MA5S2CX.mjs → productList-7YA5KXZQ.mjs} +8 -9
  115. package/dist/client/rendering/client.mjs +753 -329
  116. package/dist/client/rendering/islands.mjs +19 -19
  117. package/dist/client/rendering.mjs +3786 -3034
  118. package/dist/client/shop-AIMUMZYC.mjs +20 -0
  119. package/dist/preview-next/before-render.mjs +58 -14
  120. package/dist/preview-next/client/runtime.mjs +5 -5
  121. package/dist/preview-next/editor-chrome.css +56 -9
  122. package/dist/preview-next/middleware.mjs +58 -14
  123. package/dist/{sdk-runtime-QLOCYKVU.mjs → sdk-runtime-NW472WNT.mjs} +6 -6
  124. package/dist/server/components.mjs +1518 -1015
  125. package/dist/server/config-validation.mjs +1719 -1461
  126. package/dist/server/config.mjs +1719 -1461
  127. package/dist/server/data.mjs +1683 -1413
  128. package/dist/server/index.mjs +79 -17
  129. package/dist/server/next.mjs +1902 -1311
  130. package/dist/server/page-converter.mjs +2193 -1169
  131. package/dist/server/prebuild.mjs +1 -1
  132. package/dist/server/rendering/server.mjs +1709 -1209
  133. package/dist/server/rendering.mjs +1894 -1347
  134. package/dist/server/routing.mjs +1872 -1499
  135. package/dist/server/server.mjs +1571 -1264
  136. package/dist/server/theme-bridge.mjs +234 -0
  137. package/dist/styles/index.css +232 -0
  138. package/package.json +1 -1
  139. package/dist/SdkPreviewModeRuntime-4FGSVUYI.mjs +0 -8
  140. package/dist/client/cart-X4YK4FTW.mjs +0 -19
  141. package/dist/client/checkout-OM2BEPWD.mjs +0 -19
  142. package/dist/client/chunk-I2MMZO53.mjs +0 -6
  143. package/dist/client/shop-WXSYV5QO.mjs +0 -21
@@ -1,5 +1,5 @@
1
1
  // src/config/validation.ts
2
- import { z as z73 } from "zod";
2
+ import { z as z74 } from "zod";
3
3
 
4
4
  // ../api/src/apiEndpointTypes.ts
5
5
  function blockedDemoMutationPolicy(classification, publicMessage) {
@@ -754,6 +754,64 @@ var ENDPOINT_DEFINITIONS = {
754
754
  auth: "user",
755
755
  responseKind: "json"
756
756
  },
757
+ listMailchimpAudiences: {
758
+ path: "/sites/{siteId}/integrations/mailchimp/audiences",
759
+ method: "GET",
760
+ tags: [TAG_TEMPLATES.site],
761
+ auth: "user",
762
+ responseKind: "json",
763
+ errors: ["auth:forbidden", "server:internal_error"]
764
+ },
765
+ getMailchimpSignupSyncHealth: {
766
+ path: "/sites/{siteId}/integrations/mailchimp/signup-sync-health",
767
+ method: "GET",
768
+ tags: [TAG_TEMPLATES.site],
769
+ auth: "user",
770
+ responseKind: "json",
771
+ errors: ["auth:forbidden", "server:internal_error"]
772
+ },
773
+ getMailchimpConnection: {
774
+ path: "/sites/{siteId}/integrations/mailchimp/connection",
775
+ method: "GET",
776
+ tags: [TAG_TEMPLATES.site],
777
+ auth: "user",
778
+ responseKind: "json",
779
+ errors: ["auth:forbidden", "server:internal_error"]
780
+ },
781
+ startMailchimpOAuth: {
782
+ path: "/sites/{siteId}/integrations/mailchimp/oauth/start",
783
+ method: "POST",
784
+ tags: [TAG_TEMPLATES.site],
785
+ auth: "user",
786
+ responseKind: "json",
787
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
788
+ errors: ["auth:forbidden", "validation:invalid_input", "server:internal_error"]
789
+ },
790
+ refreshMailchimpAudiences: {
791
+ path: "/sites/{siteId}/integrations/mailchimp/audiences/refresh",
792
+ method: "POST",
793
+ tags: [TAG_TEMPLATES.site],
794
+ auth: "user",
795
+ responseKind: "json",
796
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
797
+ errors: ["auth:forbidden", "server:internal_error"]
798
+ },
799
+ disconnectMailchimp: {
800
+ path: "/sites/{siteId}/integrations/mailchimp/disconnect",
801
+ method: "POST",
802
+ tags: [TAG_TEMPLATES.site],
803
+ auth: "user",
804
+ responseKind: "json",
805
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
806
+ errors: ["auth:forbidden", "server:internal_error"]
807
+ },
808
+ mailchimpOAuthCallback: {
809
+ path: "/auth/mailchimp/callback",
810
+ method: "GET",
811
+ auth: "public",
812
+ responseKind: "void",
813
+ errors: []
814
+ },
757
815
  createNewsletterList: {
758
816
  path: "/sites/{siteId}/newsletter/lists",
759
817
  method: "POST",
@@ -2978,20 +3036,6 @@ var ENDPOINT_DEFINITIONS = {
2978
3036
  auth: "user",
2979
3037
  responseKind: "json"
2980
3038
  },
2981
- instagramUploadZip: {
2982
- path: "/instagram/upload-zip",
2983
- method: "POST",
2984
- tags: ["instagram-import"],
2985
- auth: "user",
2986
- responseKind: "json"
2987
- },
2988
- createInstagramZipUploadUrl: {
2989
- path: "/instagram/upload-zip-url",
2990
- method: "POST",
2991
- tags: ["instagram-import"],
2992
- auth: "user",
2993
- responseKind: "json"
2994
- },
2995
3039
  getAnalyticsReport: {
2996
3040
  path: "/sites/{siteId}/analytics/report",
2997
3041
  method: "GET",
@@ -6386,6 +6430,43 @@ function err(error) {
6386
6430
  return { ok: false, error };
6387
6431
  }
6388
6432
 
6433
+ // ../core/src/currency-format.ts
6434
+ var CURRENCY_LOCALE_BY_CODE = {
6435
+ USD: "en-US",
6436
+ GBP: "en-GB",
6437
+ EUR: "de-DE",
6438
+ AUD: "en-AU",
6439
+ CAD: "en-CA",
6440
+ NZD: "en-NZ",
6441
+ JPY: "ja-JP",
6442
+ CNY: "zh-CN",
6443
+ CHF: "de-CH"
6444
+ };
6445
+ function resolveCurrencyLocale(currencyCode, override) {
6446
+ return override ?? CURRENCY_LOCALE_BY_CODE[currencyCode] ?? "en";
6447
+ }
6448
+ function formatCurrencyAmount(amountCents, currency, options) {
6449
+ const currencyCode = currency.toUpperCase();
6450
+ const locale = resolveCurrencyLocale(currencyCode, options?.locale);
6451
+ try {
6452
+ const exactFormatter = new Intl.NumberFormat(locale, {
6453
+ style: "currency",
6454
+ currency: currencyCode
6455
+ });
6456
+ const fractionDigits = options?.decimals === "auto" ? {
6457
+ minimumFractionDigits: 0,
6458
+ maximumFractionDigits: exactFormatter.resolvedOptions().maximumFractionDigits
6459
+ } : {};
6460
+ return new Intl.NumberFormat(locale, {
6461
+ style: "currency",
6462
+ currency: currencyCode,
6463
+ ...fractionDigits
6464
+ }).format(amountCents / 100);
6465
+ } catch {
6466
+ return `${(amountCents / 100).toFixed(2)} ${currencyCode}`;
6467
+ }
6468
+ }
6469
+
6389
6470
  // ../core/src/event-pricing.ts
6390
6471
  function publicEventPricingType(pricing) {
6391
6472
  switch (pricing.kind) {
@@ -6406,6 +6487,7 @@ function isFreePublicEventPriceDisplay(display) {
6406
6487
  return display.display.kind === "free";
6407
6488
  case "exact":
6408
6489
  case "from":
6490
+ case "range":
6409
6491
  case "mixed":
6410
6492
  case "unavailable":
6411
6493
  return false;
@@ -6668,7 +6750,7 @@ var navigationLinkInputSchema = z2.discriminatedUnion(
6668
6750
  );
6669
6751
 
6670
6752
  // ../api/src/sdkConfig/contracts.ts
6671
- import { z as z64 } from "zod";
6753
+ import { z as z65 } from "zod";
6672
6754
 
6673
6755
  // ../blocks/src/system/manifest/augmentManifest.ts
6674
6756
  function augmentManifest(manifest) {
@@ -21826,15 +21908,53 @@ var newsletterFormFragment = defineFragment({
21826
21908
  title: "Newsletter Form",
21827
21909
  description: "Newsletter subscription form with preset field configurations.",
21828
21910
  fields: [
21911
+ {
21912
+ id: "destinationProvider",
21913
+ type: "select",
21914
+ label: "Send signups to",
21915
+ description: "Choose where new subscribers from this form should go.",
21916
+ defaultValue: "riverbank",
21917
+ required: true,
21918
+ ui: { intent: "behavior" },
21919
+ options: [
21920
+ { value: "riverbank", label: "Riverbank newsletter" }
21921
+ ]
21922
+ },
21829
21923
  {
21830
21924
  id: "listId",
21831
21925
  type: "reference",
21832
21926
  label: "Newsletter list",
21833
21927
  description: "Select the list new subscribers should be added to.",
21834
- required: true,
21928
+ required: false,
21835
21929
  referenceKind: "newsletterList",
21836
21930
  allowManualEntry: false,
21837
- ui: { intent: "behavior" }
21931
+ ui: {
21932
+ intent: "behavior",
21933
+ visibleWhen: { field: "destinationProvider", equals: "riverbank" }
21934
+ }
21935
+ },
21936
+ {
21937
+ id: "mailchimpAudienceId",
21938
+ type: "reference",
21939
+ label: "Mailchimp audience",
21940
+ description: "Choose the Mailchimp audience for new subscribers.",
21941
+ required: false,
21942
+ referenceKind: "mailchimpAudience",
21943
+ allowManualEntry: false,
21944
+ ui: {
21945
+ intent: "behavior",
21946
+ visibleWhen: { field: "destinationProvider", equals: "mailchimp" }
21947
+ }
21948
+ },
21949
+ {
21950
+ id: "mailchimpTags",
21951
+ type: "text",
21952
+ label: "Mailchimp tags",
21953
+ description: "Optional tags to apply in Mailchimp, separated by commas or semicolons.",
21954
+ ui: {
21955
+ intent: "behavior",
21956
+ visibleWhen: { field: "destinationProvider", equals: "mailchimp" }
21957
+ }
21838
21958
  },
21839
21959
  {
21840
21960
  id: "preset",
@@ -21881,13 +22001,18 @@ var newsletterFormFragment = defineFragment({
21881
22001
  id: "tags",
21882
22002
  type: "text",
21883
22003
  label: "Tags (optional)",
21884
- description: "Optional tags to apply on subscribe (comma or semicolon separated)."
22004
+ description: "Optional tags to apply on subscribe (comma or semicolon separated).",
22005
+ ui: {
22006
+ intent: "behavior",
22007
+ visibleWhen: { field: "destinationProvider", equals: "riverbank" }
22008
+ }
21885
22009
  }
21886
22010
  ],
21887
22011
  layout: [
21888
22012
  el(
21889
22013
  "newsletter-form",
21890
22014
  withApiBindings({
22015
+ destinationProvider: { $bind: { from: "destinationProvider" } },
21891
22016
  listId: { $bind: { from: "listId" } },
21892
22017
  preset: { $bind: { from: "preset" } },
21893
22018
  includePhone: { $bind: { from: "includePhone" } },
@@ -27728,10 +27853,10 @@ var appointmentBookingBlockDefinition = {
27728
27853
  };
27729
27854
 
27730
27855
  // ../blocks/src/system/blocks/event-registration.ts
27731
- import { z as z46 } from "zod";
27856
+ import { z as z47 } from "zod";
27732
27857
 
27733
27858
  // ../blocks/src/system/blocks/events/shared/schemas.ts
27734
- import { z as z42 } from "zod";
27859
+ import { z as z43 } from "zod";
27735
27860
 
27736
27861
  // ../blocks/src/lib/media.ts
27737
27862
  import z39 from "zod";
@@ -27809,296 +27934,339 @@ var mediaSchema2 = z39.discriminatedUnion("type", [
27809
27934
  archiveMediaSchema
27810
27935
  ]);
27811
27936
 
27812
- // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
27937
+ // ../blocks/src/system/manifest/richTextSchema.ts
27813
27938
  import { z as z40 } from "zod";
27814
- var bookingDepositRefundPolicySchema = z40.enum([
27939
+ var TipTapMarkSchema = z40.object({
27940
+ type: z40.string(),
27941
+ attrs: z40.record(z40.string(), z40.unknown()).optional()
27942
+ });
27943
+ var TipTapNodeSchema = z40.lazy(
27944
+ () => z40.object({
27945
+ type: z40.string(),
27946
+ content: z40.array(TipTapNodeSchema).optional(),
27947
+ text: z40.string().optional(),
27948
+ attrs: z40.record(z40.string(), z40.unknown()).optional(),
27949
+ marks: z40.array(TipTapMarkSchema).optional()
27950
+ })
27951
+ );
27952
+ var RichTextValueSchema = z40.union([
27953
+ // Canonical: TipTap document directly
27954
+ TipTapNodeSchema,
27955
+ // Legacy (read-tolerance only): wrapped in { doc: {...} }
27956
+ z40.object({
27957
+ doc: TipTapNodeSchema
27958
+ })
27959
+ ]);
27960
+ var RichTextDocSchema = z40.object({
27961
+ type: z40.literal("doc"),
27962
+ content: z40.array(TipTapNodeSchema)
27963
+ });
27964
+
27965
+ // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
27966
+ import { z as z41 } from "zod";
27967
+ var bookingDepositRefundPolicySchema = z41.enum([
27815
27968
  "refundable",
27816
27969
  "non_refundable"
27817
27970
  ]);
27818
- var bookingInstalmentPlanSchema = z40.union([
27819
- z40.object({
27820
- kind: z40.literal("deposit_plus_one_remainder"),
27821
- depositAmountCents: z40.number().int().min(0),
27971
+ var bookingInstalmentPlanSchema = z41.union([
27972
+ z41.object({
27973
+ kind: z41.literal("deposit_plus_one_remainder"),
27974
+ depositAmountCents: z41.number().int().min(0),
27822
27975
  depositRefundability: bookingDepositRefundPolicySchema,
27823
- remainderDueCount: z40.number().int().positive(),
27824
- intervalUnit: z40.enum(["day", "week", "month"])
27976
+ remainderDueCount: z41.number().int().positive(),
27977
+ intervalUnit: z41.enum(["day", "week", "month"])
27825
27978
  }),
27826
- z40.object({
27827
- kind: z40.literal("deposit_plus_scheduled_instalments"),
27828
- depositAmountCents: z40.number().int().min(0),
27979
+ z41.object({
27980
+ kind: z41.literal("deposit_plus_scheduled_instalments"),
27981
+ depositAmountCents: z41.number().int().min(0),
27829
27982
  depositRefundability: bookingDepositRefundPolicySchema,
27830
- instalmentCount: z40.number().int().positive(),
27831
- intervalCount: z40.number().int().positive(),
27832
- intervalUnit: z40.enum(["day", "week", "month"])
27983
+ instalmentCount: z41.number().int().positive(),
27984
+ intervalCount: z41.number().int().positive(),
27985
+ intervalUnit: z41.enum(["day", "week", "month"])
27833
27986
  }),
27834
- z40.object({
27835
- kind: z40.literal("equal_scheduled_instalments"),
27836
- instalmentCount: z40.number().int().positive(),
27837
- intervalCount: z40.number().int().positive(),
27838
- intervalUnit: z40.enum(["day", "week", "month"])
27987
+ z41.object({
27988
+ kind: z41.literal("equal_scheduled_instalments"),
27989
+ instalmentCount: z41.number().int().positive(),
27990
+ intervalCount: z41.number().int().positive(),
27991
+ intervalUnit: z41.enum(["day", "week", "month"])
27839
27992
  })
27840
27993
  ]);
27841
- var bookingFlexibleBalanceDueDateRuleSchema = z40.union([
27842
- z40.object({
27843
- kind: z40.literal("relative_to_start_date"),
27844
- daysBeforeStart: z40.number().int().positive()
27994
+ var bookingFlexibleBalanceDueDateRuleSchema = z41.union([
27995
+ z41.object({
27996
+ kind: z41.literal("relative_to_start_date"),
27997
+ daysBeforeStart: z41.number().int().positive()
27845
27998
  }),
27846
- z40.object({
27847
- kind: z40.literal("fixed_calendar_date"),
27848
- dueAt: z40.string().datetime()
27999
+ z41.object({
28000
+ kind: z41.literal("fixed_calendar_date"),
28001
+ dueAt: z41.string().datetime()
27849
28002
  })
27850
28003
  ]);
27851
- var bookingFlexibleBalanceConfigSchema = z40.object({
27852
- upfrontAmountCents: z40.number().int().min(0),
28004
+ var bookingFlexibleBalanceConfigSchema = z41.object({
28005
+ upfrontAmountCents: z41.number().int().min(0),
27853
28006
  dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
27854
28007
  depositRefundability: bookingDepositRefundPolicySchema
27855
28008
  });
27856
- var blockBookingPaymentCollectionOptionSchema = z40.union([
27857
- z40.object({
27858
- kind: z40.literal("upfront")
28009
+ var blockBookingPaymentCollectionOptionSchema = z41.union([
28010
+ z41.object({
28011
+ kind: z41.literal("upfront")
27859
28012
  }),
27860
- z40.object({
27861
- kind: z40.literal("deferred_manual")
28013
+ z41.object({
28014
+ kind: z41.literal("deferred_manual")
27862
28015
  }),
27863
- z40.object({
27864
- kind: z40.literal("instalment_plan"),
28016
+ z41.object({
28017
+ kind: z41.literal("instalment_plan"),
27865
28018
  plan: bookingInstalmentPlanSchema
27866
28019
  }),
27867
- z40.object({
27868
- kind: z40.literal("flexible_balance"),
28020
+ z41.object({
28021
+ kind: z41.literal("flexible_balance"),
27869
28022
  config: bookingFlexibleBalanceConfigSchema
27870
28023
  })
27871
28024
  ]);
27872
- var blockBookingPaymentTermsSchema = z40.object({
27873
- allowedOptions: z40.array(blockBookingPaymentCollectionOptionSchema).min(1)
28025
+ var blockBookingPaymentTermsSchema = z41.object({
28026
+ allowedOptions: z41.array(blockBookingPaymentCollectionOptionSchema).min(1)
27874
28027
  });
27875
28028
 
27876
28029
  // ../blocks/src/system/blocks/courses/shared/schemas.ts
27877
- import { z as z41 } from "zod";
27878
- var courseVenueSchema = z41.object({
27879
- id: z41.string(),
27880
- name: z41.string(),
27881
- address: z41.string().nullable()
27882
- });
27883
- var courseSessionSchema = z41.object({
27884
- id: z41.string(),
27885
- startsAt: z41.string(),
27886
- endsAt: z41.string(),
27887
- timeZone: z41.string(),
27888
- capacityOverride: z41.number().nullable().optional(),
27889
- overrides: z41.record(z41.string(), z41.unknown()).nullable().optional()
27890
- });
27891
- var courseTeamMemberSummarySchema = z41.object({
27892
- id: z41.string(),
27893
- name: z41.string(),
27894
- roleLabel: z41.string().nullable(),
27895
- summary: z41.string().nullable(),
27896
- profilePath: z41.string().nullable()
27897
- });
27898
- var coursePricingOptionSchema = z41.object({
27899
- id: z41.string(),
27900
- name: z41.string(),
27901
- description: z41.string().nullable(),
27902
- priceAmount: z41.number(),
27903
- isActive: z41.boolean(),
27904
- sortOrder: z41.number(),
27905
- capacityLimit: z41.number().nullable(),
27906
- saleStartsAt: z41.string().nullable(),
27907
- saleEndsAt: z41.string().nullable(),
27908
- attendanceScope: z41.enum(["in_person", "online", "both"]).nullable().optional()
27909
- });
27910
- var coursePricingSchema = z41.object({
27911
- bookingRequirement: z41.enum(["none", "required"]),
27912
- pricingStrategy: z41.enum(["free", "single", "tiered"]),
27913
- currency: z41.string(),
27914
- singlePriceAmount: z41.number().nullable(),
28030
+ import { z as z42 } from "zod";
28031
+ var courseVenueSchema = z42.object({
28032
+ id: z42.string(),
28033
+ name: z42.string(),
28034
+ address: z42.string().nullable()
28035
+ });
28036
+ var courseSessionSchema = z42.object({
28037
+ id: z42.string(),
28038
+ startsAt: z42.string(),
28039
+ endsAt: z42.string(),
28040
+ timeZone: z42.string(),
28041
+ capacityOverride: z42.number().nullable().optional(),
28042
+ overrides: z42.record(z42.string(), z42.unknown()).nullable().optional()
28043
+ });
28044
+ var courseTeamMemberSummarySchema = z42.object({
28045
+ id: z42.string(),
28046
+ name: z42.string(),
28047
+ roleLabel: z42.string().nullable(),
28048
+ summary: z42.string().nullable(),
28049
+ profilePath: z42.string().nullable()
28050
+ });
28051
+ var coursePricingOptionSchema = z42.object({
28052
+ id: z42.string(),
28053
+ name: z42.string(),
28054
+ description: z42.string().nullable(),
28055
+ priceAmount: z42.number(),
28056
+ isActive: z42.boolean(),
28057
+ sortOrder: z42.number(),
28058
+ capacityLimit: z42.number().nullable(),
28059
+ saleStartsAt: z42.string().nullable(),
28060
+ saleEndsAt: z42.string().nullable(),
28061
+ attendanceScope: z42.enum(["in_person", "online", "both"]).nullable().optional()
28062
+ });
28063
+ var coursePricingSchema = z42.object({
28064
+ bookingRequirement: z42.enum(["none", "required"]),
28065
+ pricingStrategy: z42.enum(["free", "single", "tiered"]),
28066
+ currency: z42.string(),
28067
+ singlePriceAmount: z42.number().nullable(),
27915
28068
  paymentTerms: blockBookingPaymentTermsSchema,
27916
- options: z41.array(coursePricingOptionSchema)
27917
- });
27918
- var publicCourseSchema = z41.object({
27919
- id: z41.string(),
27920
- title: z41.string(),
27921
- slug: z41.string(),
27922
- description: z41.unknown().nullable(),
27923
- teamMembers: z41.array(courseTeamMemberSummarySchema).optional(),
27924
- enrollmentOpen: z41.boolean(),
28069
+ options: z42.array(coursePricingOptionSchema)
28070
+ });
28071
+ var publicCourseSchema = z42.object({
28072
+ id: z42.string(),
28073
+ title: z42.string(),
28074
+ slug: z42.string(),
28075
+ description: z42.unknown().nullable(),
28076
+ teamMembers: z42.array(courseTeamMemberSummarySchema).optional(),
28077
+ enrollmentOpen: z42.boolean(),
27925
28078
  pricing: coursePricingSchema.optional(),
27926
- priceCents: z41.number().nullable(),
27927
- currency: z41.string(),
28079
+ priceCents: z42.number().nullable(),
28080
+ currency: z42.string(),
27928
28081
  paymentTerms: blockBookingPaymentTermsSchema,
27929
- enrollmentCapacity: z41.number().nullable(),
27930
- acceptsMemberships: z41.boolean(),
27931
- status: z41.enum(["active", "draft", "cancelled"]),
27932
- sessionsCount: z41.number(),
27933
- enrolledCount: z41.number(),
27934
- availableSpots: z41.number().nullable(),
27935
- sessions: z41.array(courseSessionSchema),
28082
+ enrollmentCapacity: z42.number().nullable(),
28083
+ acceptsMemberships: z42.boolean(),
28084
+ status: z42.enum(["active", "draft", "cancelled"]),
28085
+ sessionsCount: z42.number(),
28086
+ enrolledCount: z42.number(),
28087
+ availableSpots: z42.number().nullable(),
28088
+ sessions: z42.array(courseSessionSchema),
27936
28089
  venue: courseVenueSchema.nullable(),
27937
- contentEntryId: z41.string().nullable()
28090
+ contentEntryId: z42.string().nullable()
27938
28091
  });
27939
- var publicCoursesArraySchema = z41.array(publicCourseSchema);
28092
+ var publicCoursesArraySchema = z42.array(publicCourseSchema);
27940
28093
 
27941
28094
  // ../blocks/src/system/blocks/events/shared/schemas.ts
27942
- var eventPresetSchema = z42.enum(["event", "class", "workshop", "retreat", "performance"]);
27943
- var eventScheduleScopeSchema = z42.enum(["recurring", "oneOff"]);
27944
- var eventDestinationModeSchema = z42.enum(["cms-managed", "system-managed"]);
27945
- var eventVenueSchema = z42.object({
27946
- id: z42.string(),
27947
- name: z42.string(),
27948
- address: z42.string().nullable(),
27949
- location: z42.object({
27950
- lat: z42.number(),
27951
- lng: z42.number()
28095
+ var eventPresetSchema = z43.enum(["event", "class", "workshop", "retreat", "performance"]);
28096
+ var eventScheduleScopeSchema = z43.enum(["recurring", "oneOff"]);
28097
+ var eventDestinationModeSchema = z43.enum(["cms-managed", "system-managed"]);
28098
+ var eventVenueSchema = z43.object({
28099
+ id: z43.string(),
28100
+ name: z43.string(),
28101
+ address: z43.string().nullable(),
28102
+ location: z43.object({
28103
+ lat: z43.number(),
28104
+ lng: z43.number()
27952
28105
  }).nullable()
27953
28106
  });
27954
- var eventCategorySchema = z42.object({
27955
- id: z42.string(),
27956
- name: z42.string(),
27957
- color: z42.string().nullable()
27958
- });
27959
- var pricingTypeSchema = z42.enum(["free", "paid"]);
27960
- var accessRestrictionSchema = z42.enum(["none", "category"]);
27961
- var eventPricingModeSchema = z42.enum(["single", "ticket_types"]);
27962
- var publicCoursePriceDisplaySchema = z42.discriminatedUnion("kind", [
27963
- z42.object({ kind: z42.literal("free"), currency: z42.string() }),
27964
- z42.object({ kind: z42.literal("exact"), amount: z42.number(), currency: z42.string() }),
27965
- z42.object({ kind: z42.literal("from"), amount: z42.number(), currency: z42.string() }),
27966
- z42.object({ kind: z42.literal("unavailable"), currency: z42.string() })
28107
+ var eventCategorySchema = z43.object({
28108
+ id: z43.string(),
28109
+ name: z43.string(),
28110
+ color: z43.string().nullable()
28111
+ });
28112
+ var pricingTypeSchema = z43.enum(["free", "paid"]);
28113
+ var accessRestrictionSchema = z43.enum(["none", "category"]);
28114
+ var eventPricingModeSchema = z43.enum(["single", "ticket_types"]);
28115
+ var publicCoursePriceDisplaySchema = z43.discriminatedUnion("kind", [
28116
+ z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28117
+ z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28118
+ z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28119
+ z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
27967
28120
  ]);
27968
- var publicEventPriceDisplaySchema = z42.discriminatedUnion("kind", [
27969
- z42.object({ kind: z42.literal("free"), currency: z42.string() }),
27970
- z42.object({ kind: z42.literal("exact"), amount: z42.number(), currency: z42.string() }),
27971
- z42.object({ kind: z42.literal("from"), amount: z42.number(), currency: z42.string() }),
27972
- z42.object({ kind: z42.literal("mixed"), paidFromAmount: z42.number(), currency: z42.string() }),
27973
- z42.object({ kind: z42.literal("unavailable"), currency: z42.string() }),
27974
- z42.object({ kind: z42.literal("course"), display: publicCoursePriceDisplaySchema })
28121
+ var publicEventPriceDisplaySchema = z43.discriminatedUnion("kind", [
28122
+ z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28123
+ z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28124
+ z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28125
+ z43.object({ kind: z43.literal("range"), minAmount: z43.number(), maxAmount: z43.number(), currency: z43.string() }),
28126
+ z43.object({
28127
+ kind: z43.literal("mixed"),
28128
+ paidFromAmount: z43.number(),
28129
+ paidToAmount: z43.number(),
28130
+ currency: z43.string()
28131
+ }),
28132
+ z43.object({ kind: z43.literal("unavailable"), currency: z43.string() }),
28133
+ z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
27975
28134
  ]);
27976
- var publicEventTicketTypePriceDisplaySchema = z42.union([
27977
- z42.object({ kind: z42.literal("free"), currency: z42.string() }),
27978
- z42.object({ kind: z42.literal("exact"), amount: z42.number(), currency: z42.string() }),
27979
- z42.object({ kind: z42.literal("from"), amount: z42.number(), currency: z42.string() }),
27980
- z42.object({ kind: z42.literal("mixed"), paidFromAmount: z42.number(), currency: z42.string() }),
27981
- z42.object({ kind: z42.literal("unavailable"), currency: z42.string() })
28135
+ var publicEventTicketTypePriceDisplaySchema = z43.union([
28136
+ z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28137
+ z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28138
+ z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28139
+ z43.object({ kind: z43.literal("range"), minAmount: z43.number(), maxAmount: z43.number(), currency: z43.string() }),
28140
+ z43.object({
28141
+ kind: z43.literal("mixed"),
28142
+ paidFromAmount: z43.number(),
28143
+ paidToAmount: z43.number(),
28144
+ currency: z43.string()
28145
+ }),
28146
+ z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
27982
28147
  ]);
27983
- var publicEventAttendanceModeSchema = z42.enum(["in_person", "online"]);
27984
- var publicEventAttendanceModeAvailabilitySchema = z42.object({
28148
+ var publicEventAttendanceModeSchema = z43.enum(["in_person", "online"]);
28149
+ var publicEventAttendanceModeAvailabilitySchema = z43.object({
27985
28150
  mode: publicEventAttendanceModeSchema,
27986
- capacity: z42.number().nullable(),
27987
- registeredCount: z42.number(),
27988
- availableSpots: z42.number().nullable(),
27989
- waitlistEnabled: z42.boolean()
27990
- });
27991
- var publicEventTicketTypeAvailabilitySchema = z42.union([
27992
- z42.object({
27993
- kind: z42.literal("available"),
27994
- remainingCapacity: z42.number().nullable()
28151
+ capacity: z43.number().nullable(),
28152
+ registeredCount: z43.number(),
28153
+ availableSpots: z43.number().nullable(),
28154
+ waitlistEnabled: z43.boolean()
28155
+ });
28156
+ var publicEventTicketTypeAvailabilitySchema = z43.union([
28157
+ z43.object({
28158
+ kind: z43.literal("available"),
28159
+ remainingCapacity: z43.number().nullable()
27995
28160
  }),
27996
- z42.object({
27997
- kind: z42.literal("unavailable"),
27998
- reason: z42.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
27999
- remainingCapacity: z42.number().nullable()
28161
+ z43.object({
28162
+ kind: z43.literal("unavailable"),
28163
+ reason: z43.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
28164
+ remainingCapacity: z43.number().nullable()
28000
28165
  })
28001
28166
  ]);
28002
- var publicEventTicketTypeSchema = z42.object({
28003
- id: z42.string(),
28004
- siteId: z42.string(),
28005
- eventSeriesId: z42.string(),
28006
- name: z42.string(),
28007
- description: z42.string().nullable(),
28008
- priceAmount: z42.number(),
28009
- isActive: z42.boolean(),
28010
- sortOrder: z42.number(),
28011
- capacityMode: z42.enum(["limited", "unlimited"]),
28012
- capacityLimit: z42.number().nullable(),
28013
- attendanceScope: z42.enum(["in_person", "online", "both"]).optional(),
28014
- saleStartsAt: z42.string().nullable(),
28015
- saleEndsAt: z42.string().nullable(),
28167
+ var publicEventTicketTypeSchema = z43.object({
28168
+ id: z43.string(),
28169
+ siteId: z43.string(),
28170
+ eventSeriesId: z43.string(),
28171
+ name: z43.string(),
28172
+ description: z43.string().nullable(),
28173
+ priceAmount: z43.number(),
28174
+ isActive: z43.boolean(),
28175
+ sortOrder: z43.number(),
28176
+ capacityMode: z43.enum(["limited", "unlimited"]),
28177
+ capacityLimit: z43.number().nullable(),
28178
+ attendanceScope: z43.enum(["in_person", "online", "both"]).optional(),
28179
+ saleStartsAt: z43.string().nullable(),
28180
+ saleEndsAt: z43.string().nullable(),
28016
28181
  availability: publicEventTicketTypeAvailabilitySchema,
28017
- createdAt: z42.string(),
28018
- updatedAt: z42.string()
28019
- });
28020
- var publicEventPricingSchema = z42.discriminatedUnion("kind", [
28021
- z42.object({
28022
- kind: z42.literal("drop_in"),
28023
- currency: z42.string(),
28024
- display: z42.object({ kind: z42.literal("free"), currency: z42.string() })
28182
+ createdAt: z43.string(),
28183
+ updatedAt: z43.string()
28184
+ });
28185
+ var publicEventPricingSchema = z43.discriminatedUnion("kind", [
28186
+ z43.object({
28187
+ kind: z43.literal("drop_in"),
28188
+ currency: z43.string(),
28189
+ display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
28025
28190
  }),
28026
- z42.object({
28027
- kind: z42.literal("free_registration"),
28028
- currency: z42.string(),
28029
- display: z42.object({ kind: z42.literal("free"), currency: z42.string() })
28191
+ z43.object({
28192
+ kind: z43.literal("free_registration"),
28193
+ currency: z43.string(),
28194
+ display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
28030
28195
  }),
28031
- z42.object({
28032
- kind: z42.literal("single_paid"),
28033
- amount: z42.number(),
28034
- currency: z42.string(),
28035
- display: z42.object({ kind: z42.literal("exact"), amount: z42.number(), currency: z42.string() })
28196
+ z43.object({
28197
+ kind: z43.literal("single_paid"),
28198
+ amount: z43.number(),
28199
+ currency: z43.string(),
28200
+ display: z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() })
28036
28201
  }),
28037
- z42.object({
28038
- kind: z42.literal("ticket_types"),
28039
- currency: z42.string(),
28040
- ticketTypes: z42.array(publicEventTicketTypeSchema),
28202
+ z43.object({
28203
+ kind: z43.literal("ticket_types"),
28204
+ currency: z43.string(),
28205
+ ticketTypes: z43.array(publicEventTicketTypeSchema),
28041
28206
  display: publicEventTicketTypePriceDisplaySchema
28042
28207
  }),
28043
- z42.object({
28044
- kind: z42.literal("course"),
28045
- display: z42.object({ kind: z42.literal("course"), display: publicCoursePriceDisplaySchema })
28208
+ z43.object({
28209
+ kind: z43.literal("course"),
28210
+ display: z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28046
28211
  })
28047
28212
  ]);
28048
- var publicTeamMemberSummarySchema = z42.object({
28049
- id: z42.string(),
28050
- name: z42.string(),
28051
- roleLabel: z42.string().nullable(),
28052
- summary: z42.string().nullable(),
28053
- profilePath: z42.string().nullable()
28213
+ var publicTeamMemberSummarySchema = z43.object({
28214
+ id: z43.string(),
28215
+ name: z43.string(),
28216
+ roleLabel: z43.string().nullable(),
28217
+ summary: z43.string().nullable(),
28218
+ profilePath: z43.string().nullable()
28054
28219
  });
28055
- var publicEventSchema = z42.object({
28056
- kind: z42.enum(["event", "course_session"]).optional(),
28220
+ var publicEventSchema = z43.object({
28221
+ kind: z43.enum(["event", "course_session"]).optional(),
28057
28222
  eventPreset: eventPresetSchema.optional(),
28058
28223
  eventDestinationMode: eventDestinationModeSchema.optional(),
28059
28224
  scheduleScope: eventScheduleScopeSchema.optional(),
28060
- id: z42.string(),
28061
- occurrenceId: z42.string(),
28062
- seriesId: z42.string(),
28063
- title: z42.string(),
28064
- description: z42.string().nullable(),
28065
- presentation: z42.object({
28066
- cardTitleOverride: z42.string().nullable().optional(),
28067
- summary: z42.string().nullable().optional(),
28225
+ id: z43.string(),
28226
+ occurrenceId: z43.string(),
28227
+ seriesId: z43.string(),
28228
+ title: z43.string(),
28229
+ description: z43.string().nullable(),
28230
+ content: z43.object({
28231
+ body: RichTextDocSchema.nullable().optional()
28232
+ }).optional(),
28233
+ presentation: z43.object({
28234
+ cardTitleOverride: z43.string().nullable().optional(),
28235
+ summary: z43.string().nullable().optional(),
28068
28236
  image: mediaSchema2.nullable().optional()
28069
28237
  }).optional(),
28070
- slug: z42.string(),
28071
- path: z42.string(),
28072
- requiresRegistration: z42.boolean(),
28073
- deliveryMode: z42.enum(["in_person", "online", "hybrid"]),
28074
- attendanceModes: z42.array(publicEventAttendanceModeAvailabilitySchema),
28075
- startsAt: z42.string(),
28076
- endsAt: z42.string(),
28077
- capacity: z42.number().nullable(),
28078
- registeredCount: z42.number(),
28079
- availableSpots: z42.number().nullable(),
28080
- waitlistEnabled: z42.boolean(),
28238
+ slug: z43.string(),
28239
+ path: z43.string(),
28240
+ requiresRegistration: z43.boolean(),
28241
+ deliveryMode: z43.enum(["in_person", "online", "hybrid"]),
28242
+ attendanceModes: z43.array(publicEventAttendanceModeAvailabilitySchema),
28243
+ startsAt: z43.string(),
28244
+ endsAt: z43.string(),
28245
+ capacity: z43.number().nullable(),
28246
+ registeredCount: z43.number(),
28247
+ availableSpots: z43.number().nullable(),
28248
+ waitlistEnabled: z43.boolean(),
28081
28249
  venue: eventVenueSchema.nullable(),
28082
28250
  eventCategory: eventCategorySchema.nullable(),
28083
- teamMembers: z42.array(publicTeamMemberSummarySchema).optional(),
28084
- status: z42.enum(["active", "draft", "archived"]).optional(),
28085
- timeZone: z42.string(),
28251
+ teamMembers: z43.array(publicTeamMemberSummarySchema).optional(),
28252
+ status: z43.enum(["active", "draft", "archived"]).optional(),
28253
+ timeZone: z43.string(),
28086
28254
  pricing: publicEventPricingSchema,
28087
28255
  paymentTerms: blockBookingPaymentTermsSchema,
28088
28256
  accessRestriction: accessRestrictionSchema,
28089
- allowedCategoryIds: z42.array(z42.string()),
28090
- requireGuestDetails: z42.boolean().optional(),
28091
- acceptsPasses: z42.boolean().optional(),
28092
- acceptsMemberships: z42.boolean().optional(),
28093
- course: z42.object({
28094
- id: z42.string(),
28257
+ allowedCategoryIds: z43.array(z43.string()),
28258
+ requireGuestDetails: z43.boolean().optional(),
28259
+ acceptsPasses: z43.boolean().optional(),
28260
+ acceptsMemberships: z43.boolean().optional(),
28261
+ course: z43.object({
28262
+ id: z43.string(),
28095
28263
  pricing: coursePricingSchema.optional(),
28096
- priceCents: z42.number().nullable(),
28097
- currency: z42.string(),
28098
- enrollmentOpen: z42.boolean()
28264
+ priceCents: z43.number().nullable(),
28265
+ currency: z43.string(),
28266
+ enrollmentOpen: z43.boolean()
28099
28267
  }).nullable().optional()
28100
28268
  });
28101
- var publicEventsArraySchema = z42.array(publicEventSchema);
28269
+ var publicEventsArraySchema = z43.array(publicEventSchema);
28102
28270
 
28103
28271
  // ../blocks/src/system/blocks/events/shared/fields.ts
28104
28272
  var cardVariantOptions2 = cardVariantRoleValues.map((value) => ({
@@ -28302,19 +28470,19 @@ function normalizeEventStaffMemberId(value) {
28302
28470
  }
28303
28471
 
28304
28472
  // ../blocks/src/system/blocks/event-registration.shared.ts
28305
- import { z as z43 } from "zod";
28306
- var occurrenceContextSchema = z43.object({
28307
- id: z43.string(),
28308
- seriesId: z43.string(),
28309
- startsAt: z43.string(),
28310
- endsAt: z43.string(),
28311
- timeZone: z43.string(),
28312
- capacityOverride: z43.number().nullable().optional(),
28313
- overrides: z43.record(z43.string(), z43.unknown()).nullable().optional()
28473
+ import { z as z44 } from "zod";
28474
+ var occurrenceContextSchema = z44.object({
28475
+ id: z44.string(),
28476
+ seriesId: z44.string(),
28477
+ startsAt: z44.string(),
28478
+ endsAt: z44.string(),
28479
+ timeZone: z44.string(),
28480
+ capacityOverride: z44.number().nullable().optional(),
28481
+ overrides: z44.record(z44.string(), z44.unknown()).nullable().optional()
28314
28482
  }).nullable();
28315
28483
 
28316
28484
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28317
- import { z as z45 } from "zod";
28485
+ import { z as z46 } from "zod";
28318
28486
 
28319
28487
  // ../blocks/src/system/constants/events.ts
28320
28488
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
@@ -28412,10 +28580,21 @@ function readLegacyPriceDisplay(value, currency) {
28412
28580
  amount: readAmount(value.amount) ?? 0,
28413
28581
  currency: displayCurrency
28414
28582
  } : { kind: "unavailable", currency };
28583
+ case "range": {
28584
+ const minAmount = readAmount(value.minAmount);
28585
+ const maxAmount = readAmount(value.maxAmount);
28586
+ return minAmount !== null && maxAmount !== null ? {
28587
+ kind: "range",
28588
+ minAmount,
28589
+ maxAmount,
28590
+ currency: displayCurrency
28591
+ } : { kind: "unavailable", currency };
28592
+ }
28415
28593
  case "mixed":
28416
28594
  return readAmount(value.paidFromAmount) !== null ? {
28417
28595
  kind: "mixed",
28418
28596
  paidFromAmount: readAmount(value.paidFromAmount) ?? 0,
28597
+ paidToAmount: readAmount(value.paidToAmount) ?? readAmount(value.paidFromAmount) ?? 0,
28419
28598
  currency: displayCurrency
28420
28599
  } : { kind: "unavailable", currency };
28421
28600
  case "unavailable":
@@ -28457,16 +28636,16 @@ function readAmount(value) {
28457
28636
  }
28458
28637
 
28459
28638
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
28460
- import { z as z44 } from "zod";
28461
- var previewStageSchema = z44.enum(["preview", "published"]);
28462
- var registrationButtonVariantSchema = z44.enum(["primary", "secondary", "outline"]);
28463
- var eventButtonVariantSchema = z44.enum(["primary", "secondary", "outline", "link"]);
28464
- var eventLayoutSchema = z44.enum(eventCalendarListLayoutValues);
28465
- var eventCalendarDisplayModeSchema = z44.enum(eventCalendarDisplayModeValues);
28466
- var columnOptionSchema = z44.enum(["2", "3", "4"]);
28467
- var weekStartSchema = z44.enum(["sunday", "monday"]);
28468
- var filterAutoShowSchema = z44.enum(["auto", "always", "never"]);
28469
- var calendarTabViewsSchema = z44.enum(["both", "month", "week"]);
28639
+ import { z as z45 } from "zod";
28640
+ var previewStageSchema = z45.enum(["preview", "published"]);
28641
+ var registrationButtonVariantSchema = z45.enum(["primary", "secondary", "outline"]);
28642
+ var eventButtonVariantSchema = z45.enum(["primary", "secondary", "outline", "link"]);
28643
+ var eventLayoutSchema = z45.enum(eventCalendarListLayoutValues);
28644
+ var eventCalendarDisplayModeSchema = z45.enum(eventCalendarDisplayModeValues);
28645
+ var columnOptionSchema = z45.enum(["2", "3", "4"]);
28646
+ var weekStartSchema = z45.enum(["sunday", "monday"]);
28647
+ var filterAutoShowSchema = z45.enum(["auto", "always", "never"]);
28648
+ var calendarTabViewsSchema = z45.enum(["both", "month", "week"]);
28470
28649
 
28471
28650
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
28472
28651
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -28526,66 +28705,68 @@ function toRegistrationEvents(events) {
28526
28705
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28527
28706
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
28528
28707
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
28529
- var contentEntrySchema = z45.object({
28530
- id: z45.string(),
28531
- slug: z45.string(),
28532
- contentTypeSlug: z45.string()
28708
+ var contentEntrySchema = z46.object({
28709
+ id: z46.string(),
28710
+ slug: z46.string(),
28711
+ contentTypeSlug: z46.string()
28533
28712
  });
28534
- var eventRegistrationPublicEventSchema = z45.preprocess(
28713
+ var eventRegistrationPublicEventSchema = z46.preprocess(
28535
28714
  normalizeEventRegistrationEventInput,
28536
28715
  publicEventSchema
28537
28716
  );
28538
- var eventRegistrationSourceSchema = z45.object({
28539
- siteId: z45.string().optional(),
28540
- apiBaseUrl: z45.string().optional(),
28541
- portalToken: z45.string().nullable().optional(),
28542
- previewToken: z45.string().nullable().optional(),
28717
+ var eventRegistrationSourceSchema = z46.object({
28718
+ siteId: z46.string().optional(),
28719
+ apiBaseUrl: z46.string().optional(),
28720
+ portalToken: z46.string().nullable().optional(),
28721
+ previewToken: z46.string().nullable().optional(),
28543
28722
  occurrenceContext: occurrenceContextSchema.optional(),
28544
28723
  contentEntry: contentEntrySchema.nullable().optional(),
28545
- events: z45.array(eventRegistrationPublicEventSchema).nullable().optional(),
28546
- className: z45.string().nullable().optional(),
28547
- buttonText: z45.string().nullable().optional(),
28548
- maxTickets: z45.string().nullable().optional(),
28549
- showVenue: z45.boolean().optional(),
28550
- showCapacity: z45.boolean().optional(),
28551
- successMessage: z45.string().optional(),
28552
- waitlistMessage: z45.string().optional(),
28724
+ events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
28725
+ className: z46.string().nullable().optional(),
28726
+ buttonText: z46.string().nullable().optional(),
28727
+ maxTickets: z46.string().nullable().optional(),
28728
+ showVenue: z46.boolean().optional(),
28729
+ showCapacity: z46.boolean().optional(),
28730
+ successMessage: z46.string().optional(),
28731
+ waitlistMessage: z46.string().optional(),
28553
28732
  buttonVariant: registrationButtonVariantSchema.optional(),
28554
- spamProtectionEnabled: z45.boolean().optional(),
28733
+ overlayEnabled: z46.boolean().optional(),
28734
+ spamProtectionEnabled: z46.boolean().optional(),
28555
28735
  stage: previewStageSchema.optional(),
28556
- supportEmail: z45.string().optional()
28557
- });
28558
- var eventRegistrationDisplaySchema = z45.object({
28559
- kind: z45.literal("event-registration"),
28560
- state: z45.literal("generic-shell"),
28561
- className: z45.string().nullable(),
28562
- titleText: z45.string(),
28563
- bodyText: z45.string(),
28564
- stepLabels: z45.array(z45.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28565
- summaryButtonText: z45.string()
28566
- });
28567
- var eventRegistrationHydrationSchema = z45.object({
28736
+ supportEmail: z46.string().optional()
28737
+ });
28738
+ var eventRegistrationDisplaySchema = z46.object({
28739
+ kind: z46.literal("event-registration"),
28740
+ state: z46.literal("generic-shell"),
28741
+ className: z46.string().nullable(),
28742
+ titleText: z46.string(),
28743
+ bodyText: z46.string(),
28744
+ stepLabels: z46.array(z46.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28745
+ summaryButtonText: z46.string()
28746
+ });
28747
+ var eventRegistrationHydrationSchema = z46.object({
28568
28748
  occurrenceContext: occurrenceContextSchema.optional(),
28569
28749
  contentEntry: contentEntrySchema.nullable().optional(),
28570
- events: z45.array(eventRegistrationPublicEventSchema).nullable().optional(),
28571
- maxTickets: z45.string().optional(),
28572
- showVenue: z45.boolean().optional(),
28573
- showCapacity: z45.boolean().optional(),
28574
- successMessage: z45.string().optional(),
28575
- waitlistMessage: z45.string().optional(),
28750
+ events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
28751
+ maxTickets: z46.string().optional(),
28752
+ showVenue: z46.boolean().optional(),
28753
+ showCapacity: z46.boolean().optional(),
28754
+ successMessage: z46.string().optional(),
28755
+ waitlistMessage: z46.string().optional(),
28576
28756
  buttonVariant: registrationButtonVariantSchema.optional(),
28577
- spamProtectionEnabled: z45.boolean().optional(),
28578
- supportEmail: z45.string().optional()
28757
+ overlayEnabled: z46.boolean().optional(),
28758
+ spamProtectionEnabled: z46.boolean().optional(),
28759
+ supportEmail: z46.string().optional()
28579
28760
  });
28580
- var eventRegistrationRenderSchema = z45.object({
28761
+ var eventRegistrationRenderSchema = z46.object({
28581
28762
  display: eventRegistrationDisplaySchema,
28582
28763
  hydration: eventRegistrationHydrationSchema
28583
28764
  });
28584
- var eventRegistrationIslandMetaCodec = createZodCodec(z45.object({
28585
- siteId: z45.string().optional(),
28586
- apiBaseUrl: z45.string().optional(),
28587
- portalToken: z45.string().nullable().optional(),
28588
- previewToken: z45.string().nullable().optional(),
28765
+ var eventRegistrationIslandMetaCodec = createZodCodec(z46.object({
28766
+ siteId: z46.string().optional(),
28767
+ apiBaseUrl: z46.string().optional(),
28768
+ portalToken: z46.string().nullable().optional(),
28769
+ previewToken: z46.string().nullable().optional(),
28589
28770
  stage: previewStageSchema.optional()
28590
28771
  }));
28591
28772
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -28689,6 +28870,7 @@ var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
28689
28870
  successMessage: source.successMessage,
28690
28871
  waitlistMessage: source.waitlistMessage,
28691
28872
  buttonVariant: source.buttonVariant,
28873
+ overlayEnabled: source.overlayEnabled,
28692
28874
  spamProtectionEnabled: source.spamProtectionEnabled,
28693
28875
  supportEmail: source.supportEmail
28694
28876
  }
@@ -28864,6 +29046,12 @@ var eventRegistrationManifest = createBlockManifest({
28864
29046
  buttonVariant: {
28865
29047
  $bind: { from: "content.buttonVariant", fallback: "primary" }
28866
29048
  },
29049
+ overlayEnabled: {
29050
+ $bind: {
29051
+ from: "$root.eventRegistrationOverlayEnabled",
29052
+ fallback: false
29053
+ }
29054
+ },
28867
29055
  // Event data from loader
28868
29056
  events: { $bind: { from: "data.events" } },
28869
29057
  // Stage for preview mode (allows registering for draft events)
@@ -28884,7 +29072,7 @@ var eventRegistrationBlockDefinition = {
28884
29072
  manifest: eventRegistrationManifest,
28885
29073
  runtime: eventRegistrationBlockRuntime,
28886
29074
  dataSchemas: {
28887
- events: z46.array(publicEventSchema).optional(),
29075
+ events: z47.array(publicEventSchema).optional(),
28888
29076
  occurrenceContext: occurrenceContextSchema.optional()
28889
29077
  },
28890
29078
  dataLoaders: {
@@ -28908,73 +29096,73 @@ var eventRegistrationBlockDefinition = {
28908
29096
  };
28909
29097
 
28910
29098
  // ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
28911
- import { z as z47 } from "zod";
28912
- var contentEntrySchema2 = z47.object({
28913
- id: z47.string(),
28914
- slug: z47.string(),
28915
- contentTypeSlug: z47.string()
28916
- });
28917
- var courseEntrySubrouteContextSchema = z47.union([
28918
- z47.object({
28919
- kind: z47.literal("course-run"),
28920
- run: z47.object({
28921
- courseId: z47.string(),
28922
- seriesId: z47.string(),
28923
- runSlug: z47.string(),
28924
- runName: z47.string().nullable()
29099
+ import { z as z48 } from "zod";
29100
+ var contentEntrySchema2 = z48.object({
29101
+ id: z48.string(),
29102
+ slug: z48.string(),
29103
+ contentTypeSlug: z48.string()
29104
+ });
29105
+ var courseEntrySubrouteContextSchema = z48.union([
29106
+ z48.object({
29107
+ kind: z48.literal("course-run"),
29108
+ run: z48.object({
29109
+ courseId: z48.string(),
29110
+ seriesId: z48.string(),
29111
+ runSlug: z48.string(),
29112
+ runName: z48.string().nullable()
28925
29113
  })
28926
29114
  }),
28927
- z47.object({
28928
- kind: z47.literal("event-occurrence"),
29115
+ z48.object({
29116
+ kind: z48.literal("event-occurrence"),
28929
29117
  occurrence: occurrenceContextSchema
28930
29118
  })
28931
29119
  ]);
28932
- var courseRegistrationSourceSchema = z47.object({
28933
- siteId: z47.string().optional(),
28934
- apiBaseUrl: z47.string().optional(),
28935
- portalToken: z47.string().nullable().optional(),
29120
+ var courseRegistrationSourceSchema = z48.object({
29121
+ siteId: z48.string().optional(),
29122
+ apiBaseUrl: z48.string().optional(),
29123
+ portalToken: z48.string().nullable().optional(),
28936
29124
  contentEntry: contentEntrySchema2.nullable().optional(),
28937
29125
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
28938
- courses: z47.array(publicCourseSchema).nullable().optional(),
28939
- className: z47.string().nullable().optional(),
28940
- showSessions: z47.boolean().optional(),
28941
- showPrice: z47.boolean().optional(),
28942
- showCapacity: z47.boolean().optional(),
28943
- showVenue: z47.boolean().optional(),
28944
- successMessage: z47.string().optional(),
28945
- waitlistMessage: z47.string().optional(),
28946
- membershipMessage: z47.string().optional(),
28947
- buttonText: z47.string().nullable().optional(),
29126
+ courses: z48.array(publicCourseSchema).nullable().optional(),
29127
+ className: z48.string().nullable().optional(),
29128
+ showSessions: z48.boolean().optional(),
29129
+ showPrice: z48.boolean().optional(),
29130
+ showCapacity: z48.boolean().optional(),
29131
+ showVenue: z48.boolean().optional(),
29132
+ successMessage: z48.string().optional(),
29133
+ waitlistMessage: z48.string().optional(),
29134
+ membershipMessage: z48.string().optional(),
29135
+ buttonText: z48.string().nullable().optional(),
28948
29136
  buttonVariant: registrationButtonVariantSchema.optional(),
28949
29137
  stage: previewStageSchema.optional()
28950
29138
  });
28951
- var courseRegistrationDisplaySchema = z47.object({
28952
- kind: z47.literal("course-registration"),
28953
- state: z47.literal("shell"),
28954
- className: z47.string().nullable(),
28955
- summaryButtonText: z47.string()
29139
+ var courseRegistrationDisplaySchema = z48.object({
29140
+ kind: z48.literal("course-registration"),
29141
+ state: z48.literal("shell"),
29142
+ className: z48.string().nullable(),
29143
+ summaryButtonText: z48.string()
28956
29144
  });
28957
- var courseRegistrationHydrationSchema = z47.object({
29145
+ var courseRegistrationHydrationSchema = z48.object({
28958
29146
  contentEntry: contentEntrySchema2.nullable().optional(),
28959
29147
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
28960
- courses: z47.array(publicCourseSchema).nullable().optional(),
28961
- showSessions: z47.boolean().optional(),
28962
- showPrice: z47.boolean().optional(),
28963
- showCapacity: z47.boolean().optional(),
28964
- showVenue: z47.boolean().optional(),
28965
- successMessage: z47.string().optional(),
28966
- waitlistMessage: z47.string().optional(),
28967
- membershipMessage: z47.string().optional(),
29148
+ courses: z48.array(publicCourseSchema).nullable().optional(),
29149
+ showSessions: z48.boolean().optional(),
29150
+ showPrice: z48.boolean().optional(),
29151
+ showCapacity: z48.boolean().optional(),
29152
+ showVenue: z48.boolean().optional(),
29153
+ successMessage: z48.string().optional(),
29154
+ waitlistMessage: z48.string().optional(),
29155
+ membershipMessage: z48.string().optional(),
28968
29156
  buttonVariant: registrationButtonVariantSchema.optional()
28969
29157
  });
28970
- var courseRegistrationRenderSchema = z47.object({
29158
+ var courseRegistrationRenderSchema = z48.object({
28971
29159
  display: courseRegistrationDisplaySchema,
28972
29160
  hydration: courseRegistrationHydrationSchema
28973
29161
  });
28974
- var courseRegistrationIslandMetaCodec = createZodCodec(z47.object({
28975
- siteId: z47.string().optional(),
28976
- apiBaseUrl: z47.string().optional(),
28977
- portalToken: z47.string().nullable().optional(),
29162
+ var courseRegistrationIslandMetaCodec = createZodCodec(z48.object({
29163
+ siteId: z48.string().optional(),
29164
+ apiBaseUrl: z48.string().optional(),
29165
+ portalToken: z48.string().nullable().optional(),
28978
29166
  stage: previewStageSchema.optional()
28979
29167
  }));
28980
29168
  var courseRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -29234,32 +29422,32 @@ var courseRegistrationBlockDefinition = {
29234
29422
  };
29235
29423
 
29236
29424
  // ../blocks/src/system/blocks/event-details.ts
29237
- import { z as z49 } from "zod";
29425
+ import { z as z50 } from "zod";
29238
29426
 
29239
29427
  // ../blocks/src/system/blocks/shop.shared.ts
29240
- import { z as z48 } from "zod";
29241
- var publicPassProductSchema = z48.object({
29242
- id: z48.string(),
29243
- productUseCase: z48.enum(["event_pass", "appointment_package"]).default("event_pass"),
29244
- name: z48.string(),
29245
- description: z48.string().nullable(),
29246
- price: z48.number(),
29247
- currency: z48.string(),
29248
- creditsTotal: z48.number(),
29249
- pricePerCredit: z48.number(),
29250
- validDays: z48.number().nullable(),
29251
- eligibleCategoryIds: z48.array(z48.string()),
29252
- eligibleCategoryNames: z48.array(z48.string())
29253
- });
29254
- var publicMembershipProductSchema = z48.object({
29255
- id: z48.string(),
29256
- name: z48.string(),
29257
- description: z48.string().nullable(),
29258
- price: z48.number(),
29259
- currency: z48.string(),
29260
- billingInterval: z48.enum(["month", "year"]),
29261
- eligibleCategoryIds: z48.array(z48.string()),
29262
- eligibleCategoryNames: z48.array(z48.string())
29428
+ import { z as z49 } from "zod";
29429
+ var publicPassProductSchema = z49.object({
29430
+ id: z49.string(),
29431
+ productUseCase: z49.enum(["event_pass", "appointment_package"]).default("event_pass"),
29432
+ name: z49.string(),
29433
+ description: z49.string().nullable(),
29434
+ price: z49.number(),
29435
+ currency: z49.string(),
29436
+ creditsTotal: z49.number(),
29437
+ pricePerCredit: z49.number(),
29438
+ validDays: z49.number().nullable(),
29439
+ eligibleCategoryIds: z49.array(z49.string()),
29440
+ eligibleCategoryNames: z49.array(z49.string())
29441
+ });
29442
+ var publicMembershipProductSchema = z49.object({
29443
+ id: z49.string(),
29444
+ name: z49.string(),
29445
+ description: z49.string().nullable(),
29446
+ price: z49.number(),
29447
+ currency: z49.string(),
29448
+ billingInterval: z49.enum(["month", "year"]),
29449
+ eligibleCategoryIds: z49.array(z49.string()),
29450
+ eligibleCategoryNames: z49.array(z49.string())
29263
29451
  });
29264
29452
 
29265
29453
  // ../blocks/src/system/blocks/event-details.ts
@@ -29394,40 +29582,40 @@ var eventDetailsManifest = createBlockManifest({
29394
29582
  })
29395
29583
  ]
29396
29584
  });
29397
- var occurrenceContextSchema2 = z49.object({
29398
- id: z49.string(),
29399
- seriesId: z49.string(),
29400
- startsAt: z49.string(),
29401
- endsAt: z49.string(),
29402
- timeZone: z49.string(),
29403
- capacityOverride: z49.number().nullable().optional(),
29404
- overrides: z49.record(z49.string(), z49.unknown()).nullable().optional()
29585
+ var occurrenceContextSchema2 = z50.object({
29586
+ id: z50.string(),
29587
+ seriesId: z50.string(),
29588
+ startsAt: z50.string(),
29589
+ endsAt: z50.string(),
29590
+ timeZone: z50.string(),
29591
+ capacityOverride: z50.number().nullable().optional(),
29592
+ overrides: z50.record(z50.string(), z50.unknown()).nullable().optional()
29405
29593
  }).nullable();
29406
- var eventAutoApplyDiscountPreviewBaseSchema = z49.object({
29407
- id: z49.string(),
29408
- publicLabel: z49.string(),
29409
- description: z49.string().nullable(),
29410
- minTicketsRequired: z49.number().nullable()
29594
+ var eventAutoApplyDiscountPreviewBaseSchema = z50.object({
29595
+ id: z50.string(),
29596
+ publicLabel: z50.string(),
29597
+ description: z50.string().nullable(),
29598
+ minTicketsRequired: z50.number().nullable()
29411
29599
  });
29412
- var eventAutoApplyDiscountPreviewSchema = z49.discriminatedUnion("discountType", [
29600
+ var eventAutoApplyDiscountPreviewSchema = z50.discriminatedUnion("discountType", [
29413
29601
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29414
- discountType: z49.literal("percent"),
29415
- discountPercent: z49.number(),
29416
- discountAmountCents: z49.null()
29602
+ discountType: z50.literal("percent"),
29603
+ discountPercent: z50.number(),
29604
+ discountAmountCents: z50.null()
29417
29605
  }),
29418
29606
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29419
- discountType: z49.literal("fixed"),
29420
- discountPercent: z49.null(),
29421
- discountAmountCents: z49.number()
29607
+ discountType: z50.literal("fixed"),
29608
+ discountPercent: z50.null(),
29609
+ discountAmountCents: z50.number()
29422
29610
  })
29423
29611
  ]);
29424
29612
  var eventDetailsBlockDefinition = {
29425
29613
  manifest: eventDetailsManifest,
29426
29614
  dataSchemas: {
29427
- eventDetailsData: z49.object({
29615
+ eventDetailsData: z50.object({
29428
29616
  events: publicEventsArraySchema,
29429
- sitePasses: z49.object({ passes: z49.array(publicPassProductSchema) }),
29430
- siteMemberships: z49.object({ memberships: z49.array(publicMembershipProductSchema) }),
29617
+ sitePasses: z50.object({ passes: z50.array(publicPassProductSchema) }),
29618
+ siteMemberships: z50.object({ memberships: z50.array(publicMembershipProductSchema) }),
29431
29619
  autoApplyDiscount: eventAutoApplyDiscountPreviewSchema.nullable().optional().default(null)
29432
29620
  }).optional(),
29433
29621
  occurrenceContext: occurrenceContextSchema2.optional()
@@ -29751,7 +29939,7 @@ var eventSpotlightBlockDefinition = {
29751
29939
  };
29752
29940
 
29753
29941
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
29754
- import { z as z51 } from "zod";
29942
+ import { z as z52 } from "zod";
29755
29943
 
29756
29944
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
29757
29945
  var COLUMN_CLASSES = {
@@ -29859,16 +30047,16 @@ function computeMediaTransformStyle(value, style, targetAspectRatio, options) {
29859
30047
  }
29860
30048
 
29861
30049
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
29862
- import { z as z50 } from "zod";
30050
+ import { z as z51 } from "zod";
29863
30051
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
29864
- var eventPageSizeSchema = z50.union([
29865
- z50.literal(3),
29866
- z50.literal(6),
29867
- z50.literal(10),
29868
- z50.literal(12),
29869
- z50.literal(20),
29870
- z50.literal(24),
29871
- z50.literal(30)
30052
+ var eventPageSizeSchema = z51.union([
30053
+ z51.literal(3),
30054
+ z51.literal(6),
30055
+ z51.literal(10),
30056
+ z51.literal(12),
30057
+ z51.literal(20),
30058
+ z51.literal(24),
30059
+ z51.literal(30)
29872
30060
  ]);
29873
30061
  var eventPageSizeSet = new Set(eventPageSizeValues);
29874
30062
  function resolveEventPageSize(value, fallback = 12) {
@@ -29878,15 +30066,15 @@ function resolveEventPageSize(value, fallback = 12) {
29878
30066
  function resolveEventCalendarListPageSize(input) {
29879
30067
  return resolveEventPageSize(input.eventsPerPage);
29880
30068
  }
29881
- var eventListPaginationActionSchema = z50.discriminatedUnion("kind", [
29882
- z50.object({
29883
- kind: z50.literal("loadMore"),
29884
- label: z50.string()
30069
+ var eventListPaginationActionSchema = z51.discriminatedUnion("kind", [
30070
+ z51.object({
30071
+ kind: z51.literal("loadMore"),
30072
+ label: z51.string()
29885
30073
  }),
29886
- z50.object({
29887
- kind: z50.literal("seeAllLink"),
29888
- label: z50.string(),
29889
- href: z50.string()
30074
+ z51.object({
30075
+ kind: z51.literal("seeAllLink"),
30076
+ label: z51.string(),
30077
+ href: z51.string()
29890
30078
  })
29891
30079
  ]);
29892
30080
  function resolveEventListPaginationAction(input) {
@@ -29899,89 +30087,89 @@ function resolveEventListPaginationAction(input) {
29899
30087
  }
29900
30088
 
29901
30089
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
29902
- var legacyEventCardVariantSchema = z51.enum(["variant1", "variant2"]);
29903
- var eventCardVariantInputSchema = z51.union([
30090
+ var legacyEventCardVariantSchema = z52.enum(["variant1", "variant2"]);
30091
+ var eventCardVariantInputSchema = z52.union([
29904
30092
  cardVariantRoleSchema,
29905
30093
  legacyEventCardVariantSchema
29906
30094
  ]);
29907
- var cardOrientationSchema = z51.enum(["vertical", "horizontal"]);
29908
- var eventBlockKindSchema = z51.enum(eventBlockKindValues);
29909
- var eventSurfaceScopeSchema = z51.enum(eventSurfaceScopeValues);
29910
- var eventScheduleScopeSchema2 = z51.enum(eventScheduleScopeValues);
29911
- var eventListingSourceSchema = z51.object({
29912
- events: z51.array(publicEventSchema).nullable().optional(),
29913
- siteId: z51.string(),
29914
- apiBaseUrl: z51.string().optional(),
30095
+ var cardOrientationSchema = z52.enum(["vertical", "horizontal"]);
30096
+ var eventBlockKindSchema = z52.enum(eventBlockKindValues);
30097
+ var eventSurfaceScopeSchema = z52.enum(eventSurfaceScopeValues);
30098
+ var eventScheduleScopeSchema2 = z52.enum(eventScheduleScopeValues);
30099
+ var eventListingSourceSchema = z52.object({
30100
+ events: z52.array(publicEventSchema).nullable().optional(),
30101
+ siteId: z52.string(),
30102
+ apiBaseUrl: z52.string().optional(),
29915
30103
  stage: previewStageSchema.optional(),
29916
30104
  layout: eventLayoutSchema.optional(),
29917
30105
  columns: columnOptionSchema.optional(),
29918
- eventsPerPage: z51.string().optional(),
29919
- paginationMode: z51.enum(["loadMore", "seeAllLink"]).optional(),
29920
- seeAllUrl: z51.string().optional(),
29921
- loadMoreText: z51.string().optional(),
30106
+ eventsPerPage: z52.string().optional(),
30107
+ paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30108
+ seeAllUrl: z52.string().optional(),
30109
+ loadMoreText: z52.string().optional(),
29922
30110
  cardVariant: eventCardVariantInputSchema.optional(),
29923
30111
  buttonVariant: eventButtonVariantSchema.optional(),
29924
- buttonText: z51.string().optional(),
29925
- showVenue: z51.boolean().optional(),
29926
- showMap: z51.boolean().optional(),
29927
- showCapacity: z51.boolean().optional(),
29928
- emptyMessage: z51.string().optional(),
29929
- className: z51.string().optional(),
29930
- showFilters: z51.boolean().nullable().optional(),
30112
+ buttonText: z52.string().optional(),
30113
+ showVenue: z52.boolean().optional(),
30114
+ showMap: z52.boolean().optional(),
30115
+ showCapacity: z52.boolean().optional(),
30116
+ emptyMessage: z52.string().optional(),
30117
+ className: z52.string().optional(),
30118
+ showFilters: z52.boolean().nullable().optional(),
29931
30119
  showCategoryFilter: filterAutoShowSchema.optional(),
29932
- showVenueFilter: z51.boolean().nullable().optional(),
29933
- showStaffFilter: z51.boolean().nullable().optional(),
30120
+ showVenueFilter: z52.boolean().nullable().optional(),
30121
+ showStaffFilter: z52.boolean().nullable().optional(),
29934
30122
  eventKind: eventBlockKindSchema.nullable().optional(),
29935
30123
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
29936
- filterEventPresets: z51.union([z51.string(), z51.array(z51.string())]).nullable().optional(),
30124
+ filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
29937
30125
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
29938
- filterCategoryIds: z51.string().nullable().optional(),
29939
- filterStaffMemberId: z51.string().nullable().optional(),
29940
- filterVenueId: z51.string().nullable().optional()
30126
+ filterCategoryIds: z52.string().nullable().optional(),
30127
+ filterStaffMemberId: z52.string().nullable().optional(),
30128
+ filterVenueId: z52.string().nullable().optional()
29941
30129
  });
29942
- var eventListingDisplaySchema = z51.object({
29943
- kind: z51.literal("event-listing"),
29944
- state: z51.enum(["loading", "empty", "ready"]),
30130
+ var eventListingDisplaySchema = z52.object({
30131
+ kind: z52.literal("event-listing"),
30132
+ state: z52.enum(["loading", "empty", "ready"]),
29945
30133
  listLayout: eventLayoutSchema,
29946
- className: z51.string().nullable(),
29947
- emptyMessage: z51.string(),
29948
- loadingMessage: z51.string(),
29949
- containerClass: z51.string(),
30134
+ className: z52.string().nullable(),
30135
+ emptyMessage: z52.string(),
30136
+ loadingMessage: z52.string(),
30137
+ containerClass: z52.string(),
29950
30138
  cardVariant: cardVariantRoleSchema,
29951
30139
  buttonVariant: eventButtonVariantSchema,
29952
- buttonText: z51.string(),
29953
- showVenue: z51.boolean(),
29954
- showMap: z51.boolean(),
29955
- showCapacity: z51.boolean(),
30140
+ buttonText: z52.string(),
30141
+ showVenue: z52.boolean(),
30142
+ showMap: z52.boolean(),
30143
+ showCapacity: z52.boolean(),
29956
30144
  orientation: cardOrientationSchema,
29957
- events: z51.array(publicEventSchema)
30145
+ events: z52.array(publicEventSchema)
29958
30146
  });
29959
- var eventListingHydrationSchema = z51.object({
29960
- siteId: z51.string(),
30147
+ var eventListingHydrationSchema = z52.object({
30148
+ siteId: z52.string(),
29961
30149
  stage: previewStageSchema.optional(),
29962
30150
  eventsPerPage: eventPageSizeSchema,
29963
30151
  paginationAction: eventListPaginationActionSchema,
29964
- showFilters: z51.boolean(),
30152
+ showFilters: z52.boolean(),
29965
30153
  showCategoryFilter: filterAutoShowSchema,
29966
- showVenueFilter: z51.boolean(),
29967
- showStaffFilter: z51.boolean(),
30154
+ showVenueFilter: z52.boolean(),
30155
+ showStaffFilter: z52.boolean(),
29968
30156
  eventKind: eventBlockKindSchema,
29969
30157
  eventSurface: eventSurfaceScopeSchema,
29970
- filterEventPresets: z51.string().nullable(),
30158
+ filterEventPresets: z52.string().nullable(),
29971
30159
  scheduleScope: eventScheduleScopeSchema2,
29972
- filterCategoryIds: z51.string().nullable().optional(),
29973
- filterStaffMemberId: z51.string().nullable().optional(),
29974
- filterVenueId: z51.string().nullable().optional(),
29975
- fetchInitialEventsOnMount: z51.boolean()
30160
+ filterCategoryIds: z52.string().nullable().optional(),
30161
+ filterStaffMemberId: z52.string().nullable().optional(),
30162
+ filterVenueId: z52.string().nullable().optional(),
30163
+ fetchInitialEventsOnMount: z52.boolean()
29976
30164
  });
29977
- var eventListingRenderSchema = z51.object({
30165
+ var eventListingRenderSchema = z52.object({
29978
30166
  display: eventListingDisplaySchema,
29979
30167
  hydration: eventListingHydrationSchema
29980
30168
  });
29981
30169
  var eventListingIslandMetaCodec = createZodCodec(
29982
- z51.object({
29983
- siteId: z51.string(),
29984
- apiBaseUrl: z51.string().optional(),
30170
+ z52.object({
30171
+ siteId: z52.string(),
30172
+ apiBaseUrl: z52.string().optional(),
29985
30173
  stage: previewStageSchema.optional()
29986
30174
  })
29987
30175
  );
@@ -30348,15 +30536,15 @@ var eventListingBlockDefinition = {
30348
30536
  };
30349
30537
 
30350
30538
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
30351
- import { z as z52 } from "zod";
30352
- var eventBlockKindSchema2 = z52.enum(eventBlockKindValues);
30353
- var eventSurfaceScopeSchema2 = z52.enum(eventSurfaceScopeValues);
30354
- var eventScheduleScopeSchema3 = z52.enum(eventScheduleScopeValues);
30355
- var eventCalendarSourceSchema = z52.object(
30539
+ import { z as z53 } from "zod";
30540
+ var eventBlockKindSchema2 = z53.enum(eventBlockKindValues);
30541
+ var eventSurfaceScopeSchema2 = z53.enum(eventSurfaceScopeValues);
30542
+ var eventScheduleScopeSchema3 = z53.enum(eventScheduleScopeValues);
30543
+ var eventCalendarSourceSchema = z53.object(
30356
30544
  {
30357
- events: z52.array(publicEventSchema).nullable().optional(),
30358
- siteId: z52.string(),
30359
- apiBaseUrl: z52.string().optional(),
30545
+ events: z53.array(publicEventSchema).nullable().optional(),
30546
+ siteId: z53.string(),
30547
+ apiBaseUrl: z53.string().optional(),
30360
30548
  stage: previewStageSchema.optional(),
30361
30549
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
30362
30550
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -30364,78 +30552,78 @@ var eventCalendarSourceSchema = z52.object(
30364
30552
  listColumns: columnOptionSchema.optional(),
30365
30553
  layout: eventLayoutSchema.optional(),
30366
30554
  columns: columnOptionSchema.optional(),
30367
- eventsPerPage: z52.string().optional(),
30368
- paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30369
- seeAllUrl: z52.string().optional(),
30370
- loadMoreText: z52.string().optional(),
30555
+ eventsPerPage: z53.string().optional(),
30556
+ paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
30557
+ seeAllUrl: z53.string().optional(),
30558
+ loadMoreText: z53.string().optional(),
30371
30559
  startOfWeek: weekStartSchema.optional(),
30372
30560
  calendarTabViews: calendarTabViewsSchema.optional(),
30373
- showFilters: z52.boolean().nullable().optional(),
30561
+ showFilters: z53.boolean().nullable().optional(),
30374
30562
  showCategoryFilter: filterAutoShowSchema.optional(),
30375
- showVenueFilter: z52.boolean().nullable().optional(),
30376
- showStaffFilter: z52.boolean().nullable().optional(),
30563
+ showVenueFilter: z53.boolean().nullable().optional(),
30564
+ showStaffFilter: z53.boolean().nullable().optional(),
30377
30565
  kind: eventBlockKindSchema2.nullable().optional(),
30378
30566
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
30379
- filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30567
+ filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30380
30568
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
30381
- filterCategoryIds: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30382
- filterStaffMemberId: z52.string().nullable().optional(),
30383
- filterVenueId: z52.string().nullable().optional(),
30569
+ filterCategoryIds: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30570
+ filterStaffMemberId: z53.string().nullable().optional(),
30571
+ filterVenueId: z53.string().nullable().optional(),
30384
30572
  buttonVariant: eventButtonVariantSchema.optional(),
30385
- buttonText: z52.string().optional(),
30386
- showVenue: z52.boolean().nullable().optional(),
30387
- showMap: z52.boolean().nullable().optional(),
30388
- showCapacity: z52.boolean().nullable().optional(),
30389
- emptyMessage: z52.string().optional(),
30390
- className: z52.string().optional()
30573
+ buttonText: z53.string().optional(),
30574
+ showVenue: z53.boolean().nullable().optional(),
30575
+ showMap: z53.boolean().nullable().optional(),
30576
+ showCapacity: z53.boolean().nullable().optional(),
30577
+ emptyMessage: z53.string().optional(),
30578
+ className: z53.string().optional()
30391
30579
  }
30392
30580
  );
30393
- var eventCalendarDisplaySchema = z52.object({
30394
- kind: z52.literal("event-calendar"),
30581
+ var eventCalendarDisplaySchema = z53.object({
30582
+ kind: z53.literal("event-calendar"),
30395
30583
  displayMode: eventCalendarDisplayModeSchema,
30396
- className: z52.string().nullable(),
30397
- events: z52.array(publicEventSchema),
30584
+ className: z53.string().nullable(),
30585
+ events: z53.array(publicEventSchema),
30398
30586
  listLayout: eventLayoutSchema,
30399
30587
  listColumns: columnOptionSchema,
30400
30588
  eventsPerPage: eventPageSizeSchema,
30401
30589
  paginationAction: eventListPaginationActionSchema,
30402
30590
  startOfWeek: weekStartSchema,
30403
30591
  calendarTabViews: calendarTabViewsSchema,
30404
- showFilters: z52.boolean(),
30592
+ showFilters: z53.boolean(),
30405
30593
  showCategoryFilter: filterAutoShowSchema,
30406
- showVenueFilter: z52.boolean(),
30407
- showStaffFilter: z52.boolean(),
30594
+ showVenueFilter: z53.boolean(),
30595
+ showStaffFilter: z53.boolean(),
30408
30596
  eventKind: eventBlockKindSchema2,
30409
30597
  eventSurface: eventSurfaceScopeSchema2,
30410
- filterEventPresets: z52.string().nullable(),
30598
+ filterEventPresets: z53.string().nullable(),
30411
30599
  scheduleScope: eventScheduleScopeSchema3,
30412
- filterCategoryIds: z52.string().nullable(),
30413
- filterStaffMemberId: z52.string().nullable(),
30414
- filterVenueId: z52.string().nullable(),
30600
+ filterCategoryIds: z53.string().nullable(),
30601
+ filterStaffMemberId: z53.string().nullable(),
30602
+ filterVenueId: z53.string().nullable(),
30415
30603
  buttonVariant: eventButtonVariantSchema,
30416
- buttonText: z52.string(),
30417
- showVenue: z52.boolean(),
30418
- showMap: z52.boolean(),
30419
- showCapacity: z52.boolean(),
30420
- emptyMessage: z52.string()
30421
- });
30422
- var eventCalendarHydrationSchema = z52.object({
30423
- siteId: z52.string(),
30604
+ buttonText: z53.string(),
30605
+ showVenue: z53.boolean(),
30606
+ showMap: z53.boolean(),
30607
+ showCapacity: z53.boolean(),
30608
+ emptyMessage: z53.string()
30609
+ });
30610
+ var eventCalendarHydrationSchema = z53.object({
30611
+ siteId: z53.string(),
30424
30612
  stage: previewStageSchema.optional(),
30425
- prefetchedEvents: z52.boolean(),
30613
+ prefetchedEvents: z53.boolean(),
30426
30614
  eventKind: eventBlockKindSchema2,
30427
30615
  eventSurface: eventSurfaceScopeSchema2,
30428
- filterEventPresets: z52.string().nullable(),
30616
+ filterEventPresets: z53.string().nullable(),
30429
30617
  scheduleScope: eventScheduleScopeSchema3
30430
30618
  });
30431
- var eventCalendarRenderSchema = z52.object({
30619
+ var eventCalendarRenderSchema = z53.object({
30432
30620
  display: eventCalendarDisplaySchema,
30433
30621
  hydration: eventCalendarHydrationSchema
30434
30622
  });
30435
30623
  var eventCalendarIslandMetaCodec = createZodCodec(
30436
- z52.object({
30437
- siteId: z52.string(),
30438
- apiBaseUrl: z52.string().optional(),
30624
+ z53.object({
30625
+ siteId: z53.string(),
30626
+ apiBaseUrl: z53.string().optional(),
30439
30627
  stage: previewStageSchema.optional()
30440
30628
  })
30441
30629
  );
@@ -31144,7 +31332,7 @@ var eventCalendarBlockDefinition = {
31144
31332
  };
31145
31333
 
31146
31334
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31147
- import { z as z53 } from "zod";
31335
+ import { z as z54 } from "zod";
31148
31336
 
31149
31337
  // ../blocks/src/system/blocks/offerings-preview/model.ts
31150
31338
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -31236,13 +31424,13 @@ function isRecord5(value) {
31236
31424
  }
31237
31425
 
31238
31426
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31239
- var publicRouteCandidatesSchema = z53.object({
31240
- routes: z53.array(z53.object({
31241
- entityId: z53.string(),
31242
- path: z53.string(),
31243
- title: z53.string(),
31244
- kind: z53.enum(["page", "content"]),
31245
- contentTypeKey: z53.string().nullable().optional()
31427
+ var publicRouteCandidatesSchema = z54.object({
31428
+ routes: z54.array(z54.object({
31429
+ entityId: z54.string(),
31430
+ path: z54.string(),
31431
+ title: z54.string(),
31432
+ kind: z54.enum(["page", "content"]),
31433
+ contentTypeKey: z54.string().nullable().optional()
31246
31434
  }))
31247
31435
  });
31248
31436
  var groupOverrideFields = [
@@ -31640,7 +31828,7 @@ function isRecord6(value) {
31640
31828
  }
31641
31829
 
31642
31830
  // ../blocks/src/system/blocks/embed.ts
31643
- import { z as z54 } from "zod";
31831
+ import { z as z55 } from "zod";
31644
31832
  var embedFields = [
31645
31833
  // Section heading
31646
31834
  parseFieldDefinition({
@@ -31871,18 +32059,18 @@ var embedManifest = createBlockManifest({
31871
32059
  spacing: "lg"
31872
32060
  }
31873
32061
  });
31874
- var embedEntrySchema = z54.object({
31875
- id: z54.string(),
31876
- identifier: z54.string(),
31877
- title: z54.string(),
31878
- slug: z54.string().nullable().optional(),
31879
- content: z54.record(z54.string(), z54.unknown()).optional(),
31880
- publishedAt: z54.string().nullable().optional()
32062
+ var embedEntrySchema = z55.object({
32063
+ id: z55.string(),
32064
+ identifier: z55.string(),
32065
+ title: z55.string(),
32066
+ slug: z55.string().nullable().optional(),
32067
+ content: z55.record(z55.string(), z55.unknown()).optional(),
32068
+ publishedAt: z55.string().nullable().optional()
31881
32069
  });
31882
32070
  var embedBlockDefinition = {
31883
32071
  manifest: embedManifest,
31884
32072
  dataSchemas: {
31885
- entries: z54.array(embedEntrySchema).optional()
32073
+ entries: z55.array(embedEntrySchema).optional()
31886
32074
  },
31887
32075
  dataLoaders: {
31888
32076
  entries: {
@@ -33066,52 +33254,52 @@ var fileDownloadBlockDefinition = {
33066
33254
  };
33067
33255
 
33068
33256
  // ../blocks/src/system/blocks/shop.ts
33069
- import { z as z58 } from "zod";
33257
+ import { z as z59 } from "zod";
33070
33258
 
33071
33259
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33072
- import { z as z57 } from "zod";
33260
+ import { z as z58 } from "zod";
33073
33261
 
33074
33262
  // ../blocks/src/system/blocks/products/shared.ts
33075
- import { z as z55 } from "zod";
33076
- var publicProductVariantSchema = z55.object({
33077
- id: z55.string(),
33078
- title: z55.string(),
33079
- sku: z55.string().nullable(),
33080
- priceCents: z55.number(),
33081
- stockQuantity: z55.number().nullable(),
33082
- soldOut: z55.boolean()
33083
- });
33084
- var publicProductSchema = z55.object({
33085
- id: z55.string(),
33086
- contentEntryId: z55.string().nullable(),
33087
- title: z55.string(),
33088
- slug: z55.string(),
33089
- path: z55.string().nullable(),
33090
- status: z55.enum(["draft", "active"]),
33091
- priceCents: z55.number(),
33092
- currency: z55.string(),
33093
- productType: z55.enum(["physical", "digital"]),
33094
- requiresShipping: z55.boolean(),
33095
- hasVariants: z55.boolean(),
33096
- trackInventory: z55.boolean(),
33097
- soldOut: z55.boolean(),
33098
- category: z55.object({
33099
- id: z55.string(),
33100
- name: z55.string(),
33101
- slug: z55.string()
33263
+ import { z as z56 } from "zod";
33264
+ var publicProductVariantSchema = z56.object({
33265
+ id: z56.string(),
33266
+ title: z56.string(),
33267
+ sku: z56.string().nullable(),
33268
+ priceCents: z56.number(),
33269
+ stockQuantity: z56.number().nullable(),
33270
+ soldOut: z56.boolean()
33271
+ });
33272
+ var publicProductSchema = z56.object({
33273
+ id: z56.string(),
33274
+ contentEntryId: z56.string().nullable(),
33275
+ title: z56.string(),
33276
+ slug: z56.string(),
33277
+ path: z56.string().nullable(),
33278
+ status: z56.enum(["draft", "active"]),
33279
+ priceCents: z56.number(),
33280
+ currency: z56.string(),
33281
+ productType: z56.enum(["physical", "digital"]),
33282
+ requiresShipping: z56.boolean(),
33283
+ hasVariants: z56.boolean(),
33284
+ trackInventory: z56.boolean(),
33285
+ soldOut: z56.boolean(),
33286
+ category: z56.object({
33287
+ id: z56.string(),
33288
+ name: z56.string(),
33289
+ slug: z56.string()
33102
33290
  }).nullable(),
33103
- summary: z55.string().nullable(),
33104
- body: z55.unknown().nullable(),
33105
- gallery: z55.array(
33106
- z55.object({
33107
- url: z55.string(),
33108
- alt: z55.string().nullable()
33291
+ summary: z56.string().nullable(),
33292
+ body: z56.unknown().nullable(),
33293
+ gallery: z56.array(
33294
+ z56.object({
33295
+ url: z56.string(),
33296
+ alt: z56.string().nullable()
33109
33297
  })
33110
33298
  ),
33111
- variants: z55.array(publicProductVariantSchema)
33299
+ variants: z56.array(publicProductVariantSchema)
33112
33300
  });
33113
- var publicProductsResponseSchema = z55.object({
33114
- products: z55.array(publicProductSchema)
33301
+ var publicProductsResponseSchema = z56.object({
33302
+ products: z56.array(publicProductSchema)
33115
33303
  });
33116
33304
 
33117
33305
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -33175,27 +33363,27 @@ function deriveCreditProductLabels(products, options = {}) {
33175
33363
  }
33176
33364
 
33177
33365
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
33178
- import { z as z56 } from "zod";
33179
- var storedProductCartItemSchema = z56.object({
33180
- kind: z56.literal("product"),
33181
- productId: z56.string().min(1),
33182
- productCategoryId: z56.string().min(1).optional().nullable(),
33183
- variantId: z56.string().min(1).optional().nullable(),
33184
- title: z56.string().min(1),
33185
- variantTitle: z56.string().optional().nullable(),
33186
- quantity: z56.number().finite(),
33187
- unitPriceCents: z56.number().finite(),
33188
- currency: z56.string().min(1),
33189
- imageUrl: z56.string().optional().nullable(),
33190
- soldOut: z56.boolean().optional()
33191
- });
33192
- var storedPassCartItemSchema = z56.object({
33193
- kind: z56.literal("pass"),
33194
- passId: z56.string().min(1),
33195
- title: z56.string().min(1),
33196
- quantity: z56.number().finite().optional(),
33197
- unitPriceCents: z56.number().finite(),
33198
- currency: z56.string().min(1)
33366
+ import { z as z57 } from "zod";
33367
+ var storedProductCartItemSchema = z57.object({
33368
+ kind: z57.literal("product"),
33369
+ productId: z57.string().min(1),
33370
+ productCategoryId: z57.string().min(1).optional().nullable(),
33371
+ variantId: z57.string().min(1).optional().nullable(),
33372
+ title: z57.string().min(1),
33373
+ variantTitle: z57.string().optional().nullable(),
33374
+ quantity: z57.number().finite(),
33375
+ unitPriceCents: z57.number().finite(),
33376
+ currency: z57.string().min(1),
33377
+ imageUrl: z57.string().optional().nullable(),
33378
+ soldOut: z57.boolean().optional()
33379
+ });
33380
+ var storedPassCartItemSchema = z57.object({
33381
+ kind: z57.literal("pass"),
33382
+ passId: z57.string().min(1),
33383
+ title: z57.string().min(1),
33384
+ quantity: z57.number().finite().optional(),
33385
+ unitPriceCents: z57.number().finite(),
33386
+ currency: z57.string().min(1)
33199
33387
  });
33200
33388
  function deriveCommerceCheckoutState(state) {
33201
33389
  if (state.items.length === 0) {
@@ -33234,10 +33422,7 @@ function resolveSelectedProduct(products, contentEntry, productSlug) {
33234
33422
 
33235
33423
  // ../blocks/src/system/runtime/nodes/commerce/shared/display.ts
33236
33424
  function formatCommercePrice(cents, currency) {
33237
- return new Intl.NumberFormat("en-US", {
33238
- style: "currency",
33239
- currency: currency.toUpperCase()
33240
- }).format(cents / 100);
33425
+ return formatCurrencyAmount(cents, currency);
33241
33426
  }
33242
33427
  function getPassesHeading(passes, explicitHeading) {
33243
33428
  if (explicitHeading) return explicitHeading;
@@ -33432,214 +33617,214 @@ function formatValidity(days) {
33432
33617
  }
33433
33618
 
33434
33619
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33435
- var shopModeSchema = z57.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33436
- var contentEntrySchema3 = z57.object({
33437
- id: z57.string().nullable().optional(),
33438
- slug: z57.string().nullable().optional()
33620
+ var shopModeSchema = z58.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33621
+ var contentEntrySchema3 = z58.object({
33622
+ id: z58.string().nullable().optional(),
33623
+ slug: z58.string().nullable().optional()
33439
33624
  }).nullable();
33440
- var shopSourceSchema = z57.object({
33441
- className: z57.string().nullable().optional(),
33625
+ var shopSourceSchema = z58.object({
33626
+ className: z58.string().nullable().optional(),
33442
33627
  mode: shopModeSchema.optional(),
33443
- heading: z57.string().nullable().optional(),
33444
- productSlug: z57.string().nullable().optional(),
33445
- showPasses: z57.boolean().optional(),
33446
- showMemberships: z57.boolean().optional(),
33447
- layout: z57.enum(["grid", "list"]).optional(),
33448
- columns: z57.string().optional(),
33449
- showDescriptions: z57.boolean().optional(),
33450
- showSummary: z57.boolean().optional(),
33451
- showBody: z57.boolean().optional(),
33452
- showPrices: z57.boolean().optional(),
33453
- showValidityPeriod: z57.boolean().optional(),
33454
- showPricePerCredit: z57.boolean().nullable().optional(),
33455
- passesHeading: z57.string().optional(),
33456
- membershipsHeading: z57.string().optional(),
33457
- buyButtonText: z57.string().optional(),
33458
- addButtonText: z57.string().optional(),
33459
- passPurchaseMode: z57.enum(["add_to_cart", "buy_now"]).optional(),
33460
- subscribeButtonText: z57.string().optional(),
33461
- emptyStateText: z57.string().optional(),
33462
- checkoutButtonText: z57.string().optional(),
33463
- clearButtonText: z57.string().optional(),
33464
- submitButtonText: z57.string().optional(),
33628
+ heading: z58.string().nullable().optional(),
33629
+ productSlug: z58.string().nullable().optional(),
33630
+ showPasses: z58.boolean().optional(),
33631
+ showMemberships: z58.boolean().optional(),
33632
+ layout: z58.enum(["grid", "list"]).optional(),
33633
+ columns: z58.string().optional(),
33634
+ showDescriptions: z58.boolean().optional(),
33635
+ showSummary: z58.boolean().optional(),
33636
+ showBody: z58.boolean().optional(),
33637
+ showPrices: z58.boolean().optional(),
33638
+ showValidityPeriod: z58.boolean().optional(),
33639
+ showPricePerCredit: z58.boolean().nullable().optional(),
33640
+ passesHeading: z58.string().optional(),
33641
+ membershipsHeading: z58.string().optional(),
33642
+ buyButtonText: z58.string().optional(),
33643
+ addButtonText: z58.string().optional(),
33644
+ passPurchaseMode: z58.enum(["add_to_cart", "buy_now"]).optional(),
33645
+ subscribeButtonText: z58.string().optional(),
33646
+ emptyStateText: z58.string().optional(),
33647
+ checkoutButtonText: z58.string().optional(),
33648
+ clearButtonText: z58.string().optional(),
33649
+ submitButtonText: z58.string().optional(),
33465
33650
  contentEntry: contentEntrySchema3.optional(),
33466
- passes: z57.array(publicPassProductSchema).nullable().optional(),
33467
- memberships: z57.array(publicMembershipProductSchema).nullable().optional(),
33468
- products: z57.array(publicProductSchema).nullable().optional(),
33469
- siteId: z57.string().optional(),
33470
- apiBaseUrl: z57.string().optional(),
33651
+ passes: z58.array(publicPassProductSchema).nullable().optional(),
33652
+ memberships: z58.array(publicMembershipProductSchema).nullable().optional(),
33653
+ products: z58.array(publicProductSchema).nullable().optional(),
33654
+ siteId: z58.string().optional(),
33655
+ apiBaseUrl: z58.string().optional(),
33471
33656
  stage: previewStageSchema.optional()
33472
33657
  });
33473
- var productVariantOptionDisplaySchema = z57.object({
33474
- id: z57.string(),
33475
- label: z57.string(),
33476
- soldOut: z57.boolean()
33477
- });
33478
- var productCardDisplaySchema = z57.object({
33479
- productId: z57.string(),
33480
- title: z57.string(),
33481
- path: z57.string().nullable(),
33482
- summary: z57.string().nullable(),
33483
- priceLabel: z57.string().nullable(),
33484
- image: z57.object({
33485
- url: z57.string(),
33486
- alt: z57.string().nullable()
33658
+ var productVariantOptionDisplaySchema = z58.object({
33659
+ id: z58.string(),
33660
+ label: z58.string(),
33661
+ soldOut: z58.boolean()
33662
+ });
33663
+ var productCardDisplaySchema = z58.object({
33664
+ productId: z58.string(),
33665
+ title: z58.string(),
33666
+ path: z58.string().nullable(),
33667
+ summary: z58.string().nullable(),
33668
+ priceLabel: z58.string().nullable(),
33669
+ image: z58.object({
33670
+ url: z58.string(),
33671
+ alt: z58.string().nullable()
33487
33672
  }).nullable(),
33488
- variantOptions: z57.array(productVariantOptionDisplaySchema),
33489
- selectedVariantId: z57.string().nullable(),
33490
- selectionLabel: z57.string(),
33491
- actionLabel: z57.string(),
33492
- soldOut: z57.boolean()
33493
- });
33494
- var productListDisplaySchema = z57.object({
33495
- kind: z57.literal("product-list"),
33496
- state: z57.enum(["empty", "ready"]),
33497
- heading: z57.string().nullable(),
33498
- className: z57.string().nullable(),
33499
- layout: z57.enum(["grid", "list"]),
33500
- columns: z57.string(),
33501
- emptyMessage: z57.string(),
33502
- cards: z57.array(productCardDisplaySchema)
33503
- });
33504
- var productDetailDisplaySchema = z57.discriminatedUnion("state", [
33505
- z57.object({
33506
- kind: z57.literal("product-detail"),
33507
- state: z57.literal("empty"),
33508
- heading: z57.string().nullable(),
33509
- className: z57.string().nullable(),
33510
- emptyMessage: z57.string()
33673
+ variantOptions: z58.array(productVariantOptionDisplaySchema),
33674
+ selectedVariantId: z58.string().nullable(),
33675
+ selectionLabel: z58.string(),
33676
+ actionLabel: z58.string(),
33677
+ soldOut: z58.boolean()
33678
+ });
33679
+ var productListDisplaySchema = z58.object({
33680
+ kind: z58.literal("product-list"),
33681
+ state: z58.enum(["empty", "ready"]),
33682
+ heading: z58.string().nullable(),
33683
+ className: z58.string().nullable(),
33684
+ layout: z58.enum(["grid", "list"]),
33685
+ columns: z58.string(),
33686
+ emptyMessage: z58.string(),
33687
+ cards: z58.array(productCardDisplaySchema)
33688
+ });
33689
+ var productDetailDisplaySchema = z58.discriminatedUnion("state", [
33690
+ z58.object({
33691
+ kind: z58.literal("product-detail"),
33692
+ state: z58.literal("empty"),
33693
+ heading: z58.string().nullable(),
33694
+ className: z58.string().nullable(),
33695
+ emptyMessage: z58.string()
33511
33696
  }),
33512
- z57.object({
33513
- kind: z57.literal("product-detail"),
33514
- state: z57.literal("ready"),
33515
- heading: z57.string().nullable(),
33516
- className: z57.string().nullable(),
33517
- title: z57.string(),
33518
- priceLabel: z57.string(),
33519
- summary: z57.string().nullable(),
33520
- categoryLabel: z57.string().nullable(),
33521
- gallery: z57.array(z57.object({
33522
- url: z57.string(),
33523
- alt: z57.string().nullable()
33697
+ z58.object({
33698
+ kind: z58.literal("product-detail"),
33699
+ state: z58.literal("ready"),
33700
+ heading: z58.string().nullable(),
33701
+ className: z58.string().nullable(),
33702
+ title: z58.string(),
33703
+ priceLabel: z58.string(),
33704
+ summary: z58.string().nullable(),
33705
+ categoryLabel: z58.string().nullable(),
33706
+ gallery: z58.array(z58.object({
33707
+ url: z58.string(),
33708
+ alt: z58.string().nullable()
33524
33709
  })),
33525
- variantOptions: z57.array(productVariantOptionDisplaySchema),
33526
- selectedVariantId: z57.string().nullable(),
33527
- selectionLabel: z57.string(),
33528
- actionLabel: z57.string(),
33529
- soldOut: z57.boolean(),
33530
- body: z57.unknown().nullable()
33710
+ variantOptions: z58.array(productVariantOptionDisplaySchema),
33711
+ selectedVariantId: z58.string().nullable(),
33712
+ selectionLabel: z58.string(),
33713
+ actionLabel: z58.string(),
33714
+ soldOut: z58.boolean(),
33715
+ body: z58.unknown().nullable()
33531
33716
  })
33532
33717
  ]);
33533
- var passCardDisplaySchema = z57.object({
33534
- id: z57.string(),
33535
- title: z57.string(),
33536
- description: z57.string().nullable(),
33537
- priceLabel: z57.string(),
33538
- creditsLabel: z57.string(),
33539
- perCreditLabel: z57.string().nullable(),
33540
- validityLabel: z57.string().nullable(),
33541
- actionLabel: z57.string()
33542
- });
33543
- var membershipCardDisplaySchema = z57.object({
33544
- id: z57.string(),
33545
- title: z57.string(),
33546
- description: z57.string().nullable(),
33547
- priceLabel: z57.string(),
33548
- intervalLabel: z57.string(),
33549
- actionLabel: z57.string()
33550
- });
33551
- var passesMembershipsDisplaySchema = z57.object({
33552
- kind: z57.literal("passes-memberships"),
33553
- state: z57.enum(["empty", "ready"]),
33554
- className: z57.string().nullable(),
33555
- layout: z57.enum(["grid", "list"]),
33556
- columns: z57.string(),
33557
- emptyMessage: z57.string(),
33558
- passesHeading: z57.string(),
33559
- membershipsHeading: z57.string(),
33560
- passes: z57.array(passCardDisplaySchema),
33561
- memberships: z57.array(membershipCardDisplaySchema)
33562
- });
33563
- var cartLineDisplaySchema = z57.object({
33564
- key: z57.string(),
33565
- title: z57.string(),
33566
- priceLabel: z57.string(),
33567
- quantity: z57.number(),
33568
- quantityEditable: z57.boolean()
33569
- });
33570
- var cartDisplaySchema = z57.object({
33571
- kind: z57.literal("cart"),
33572
- state: z57.enum(["empty", "ready"]),
33573
- heading: z57.string().nullable(),
33574
- className: z57.string().nullable(),
33575
- emptyMessage: z57.string(),
33576
- supportText: z57.string().nullable(),
33577
- items: z57.array(cartLineDisplaySchema),
33578
- subtotalLabel: z57.string().nullable(),
33579
- checkoutButtonText: z57.string(),
33580
- clearButtonText: z57.string()
33581
- });
33582
- var checkoutDisplaySchema = z57.object({
33583
- kind: z57.literal("checkout"),
33584
- state: z57.enum(["empty", "blocked", "ready"]),
33585
- heading: z57.string().nullable(),
33586
- className: z57.string().nullable(),
33587
- message: z57.string().nullable(),
33588
- submitButtonText: z57.string()
33589
- });
33590
- var passesMembershipsHydrationSchema = z57.object({
33591
- passes: z57.array(publicPassProductSchema),
33592
- memberships: z57.array(publicMembershipProductSchema),
33593
- passPurchaseMode: z57.enum(["add_to_cart", "buy_now"])
33594
- });
33595
- var productListHydrationSchema = z57.object({
33596
- products: z57.array(publicProductSchema),
33597
- showSummary: z57.boolean(),
33598
- showPrices: z57.boolean(),
33599
- addButtonText: z57.string()
33600
- });
33601
- var productDetailHydrationSchema = z57.object({
33602
- products: z57.array(publicProductSchema),
33603
- productId: z57.string().nullable(),
33604
- showSummary: z57.boolean(),
33605
- showBody: z57.boolean(),
33606
- addButtonText: z57.string()
33607
- });
33608
- var cartHydrationSchema = z57.object({
33609
- emptyStateText: z57.string(),
33610
- checkoutButtonText: z57.string(),
33611
- clearButtonText: z57.string()
33612
- });
33613
- var checkoutHydrationSchema = z57.object({
33614
- emptyStateText: z57.string(),
33615
- submitButtonText: z57.string()
33616
- });
33617
- var passesMembershipsRenderSchema = z57.object({
33718
+ var passCardDisplaySchema = z58.object({
33719
+ id: z58.string(),
33720
+ title: z58.string(),
33721
+ description: z58.string().nullable(),
33722
+ priceLabel: z58.string(),
33723
+ creditsLabel: z58.string(),
33724
+ perCreditLabel: z58.string().nullable(),
33725
+ validityLabel: z58.string().nullable(),
33726
+ actionLabel: z58.string()
33727
+ });
33728
+ var membershipCardDisplaySchema = z58.object({
33729
+ id: z58.string(),
33730
+ title: z58.string(),
33731
+ description: z58.string().nullable(),
33732
+ priceLabel: z58.string(),
33733
+ intervalLabel: z58.string(),
33734
+ actionLabel: z58.string()
33735
+ });
33736
+ var passesMembershipsDisplaySchema = z58.object({
33737
+ kind: z58.literal("passes-memberships"),
33738
+ state: z58.enum(["empty", "ready"]),
33739
+ className: z58.string().nullable(),
33740
+ layout: z58.enum(["grid", "list"]),
33741
+ columns: z58.string(),
33742
+ emptyMessage: z58.string(),
33743
+ passesHeading: z58.string(),
33744
+ membershipsHeading: z58.string(),
33745
+ passes: z58.array(passCardDisplaySchema),
33746
+ memberships: z58.array(membershipCardDisplaySchema)
33747
+ });
33748
+ var cartLineDisplaySchema = z58.object({
33749
+ key: z58.string(),
33750
+ title: z58.string(),
33751
+ priceLabel: z58.string(),
33752
+ quantity: z58.number(),
33753
+ quantityEditable: z58.boolean()
33754
+ });
33755
+ var cartDisplaySchema = z58.object({
33756
+ kind: z58.literal("cart"),
33757
+ state: z58.enum(["empty", "ready"]),
33758
+ heading: z58.string().nullable(),
33759
+ className: z58.string().nullable(),
33760
+ emptyMessage: z58.string(),
33761
+ supportText: z58.string().nullable(),
33762
+ items: z58.array(cartLineDisplaySchema),
33763
+ subtotalLabel: z58.string().nullable(),
33764
+ checkoutButtonText: z58.string(),
33765
+ clearButtonText: z58.string()
33766
+ });
33767
+ var checkoutDisplaySchema = z58.object({
33768
+ kind: z58.literal("checkout"),
33769
+ state: z58.enum(["empty", "blocked", "ready"]),
33770
+ heading: z58.string().nullable(),
33771
+ className: z58.string().nullable(),
33772
+ message: z58.string().nullable(),
33773
+ submitButtonText: z58.string()
33774
+ });
33775
+ var passesMembershipsHydrationSchema = z58.object({
33776
+ passes: z58.array(publicPassProductSchema),
33777
+ memberships: z58.array(publicMembershipProductSchema),
33778
+ passPurchaseMode: z58.enum(["add_to_cart", "buy_now"])
33779
+ });
33780
+ var productListHydrationSchema = z58.object({
33781
+ products: z58.array(publicProductSchema),
33782
+ showSummary: z58.boolean(),
33783
+ showPrices: z58.boolean(),
33784
+ addButtonText: z58.string()
33785
+ });
33786
+ var productDetailHydrationSchema = z58.object({
33787
+ products: z58.array(publicProductSchema),
33788
+ productId: z58.string().nullable(),
33789
+ showSummary: z58.boolean(),
33790
+ showBody: z58.boolean(),
33791
+ addButtonText: z58.string()
33792
+ });
33793
+ var cartHydrationSchema = z58.object({
33794
+ emptyStateText: z58.string(),
33795
+ checkoutButtonText: z58.string(),
33796
+ clearButtonText: z58.string()
33797
+ });
33798
+ var checkoutHydrationSchema = z58.object({
33799
+ emptyStateText: z58.string(),
33800
+ submitButtonText: z58.string()
33801
+ });
33802
+ var passesMembershipsRenderSchema = z58.object({
33618
33803
  display: passesMembershipsDisplaySchema,
33619
33804
  hydration: passesMembershipsHydrationSchema
33620
33805
  });
33621
- var productListRenderSchema = z57.object({
33806
+ var productListRenderSchema = z58.object({
33622
33807
  display: productListDisplaySchema,
33623
33808
  hydration: productListHydrationSchema
33624
33809
  });
33625
- var productDetailRenderSchema = z57.object({
33810
+ var productDetailRenderSchema = z58.object({
33626
33811
  display: productDetailDisplaySchema,
33627
33812
  hydration: productDetailHydrationSchema
33628
33813
  });
33629
- var cartRenderSchema = z57.object({
33814
+ var cartRenderSchema = z58.object({
33630
33815
  display: cartDisplaySchema,
33631
33816
  hydration: cartHydrationSchema
33632
33817
  });
33633
- var checkoutRenderSchema = z57.object({
33818
+ var checkoutRenderSchema = z58.object({
33634
33819
  display: checkoutDisplaySchema,
33635
33820
  hydration: checkoutHydrationSchema
33636
33821
  });
33637
33822
  function resolveShowPricePerCredit(source) {
33638
33823
  return source.showPricePerCredit ?? true;
33639
33824
  }
33640
- var shopIslandMetaCodec = createZodCodec(z57.object({
33641
- siteId: z57.string().optional(),
33642
- apiBaseUrl: z57.string().optional(),
33825
+ var shopIslandMetaCodec = createZodCodec(z58.object({
33826
+ siteId: z58.string().optional(),
33827
+ apiBaseUrl: z58.string().optional(),
33643
33828
  stage: previewStageSchema.optional()
33644
33829
  }));
33645
33830
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -34017,9 +34202,9 @@ var shopBlockDefinition = {
34017
34202
  runtime: shopBlockRuntime,
34018
34203
  dataSchemas: {
34019
34204
  // listPublicPasses returns { passes: [...] }
34020
- passes: z58.object({ passes: z58.array(publicPassProductSchema) }).optional(),
34205
+ passes: z59.object({ passes: z59.array(publicPassProductSchema) }).optional(),
34021
34206
  // listPublicMemberships returns { memberships: [...] }
34022
- memberships: z58.object({ memberships: z58.array(publicMembershipProductSchema) }).optional()
34207
+ memberships: z59.object({ memberships: z59.array(publicMembershipProductSchema) }).optional()
34023
34208
  },
34024
34209
  dataLoaders: {
34025
34210
  // Load passes for display
@@ -34042,7 +34227,7 @@ var shopBlockDefinition = {
34042
34227
  };
34043
34228
 
34044
34229
  // ../blocks/src/system/blocks/product-list.ts
34045
- import { z as z59 } from "zod";
34230
+ import { z as z60 } from "zod";
34046
34231
  var productListManifest = createBlockManifest({
34047
34232
  id: "block.product-list",
34048
34233
  version: "1.0.0",
@@ -34175,7 +34360,7 @@ var productListBlockDefinition = {
34175
34360
  }
34176
34361
  }
34177
34362
  };
34178
- var productListDataSchema = z59.object({
34363
+ var productListDataSchema = z60.object({
34179
34364
  products: publicProductsResponseSchema.optional()
34180
34365
  });
34181
34366
 
@@ -34436,72 +34621,72 @@ var checkoutBlockDefinition = {
34436
34621
  };
34437
34622
 
34438
34623
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
34439
- import { z as z60 } from "zod";
34440
- var publicGiftCardOfferSchema = z60.object({
34441
- id: z60.string(),
34442
- kind: z60.literal("gift_card"),
34443
- title: z60.string(),
34444
- description: z60.string().nullable(),
34445
- sortOrder: z60.number().int(),
34446
- giftCard: z60.object({
34447
- fixedDenominations: z60.array(z60.number().int().positive()),
34448
- customAmountEnabled: z60.boolean(),
34449
- customAmountMinCents: z60.number().int().positive(),
34450
- customAmountMaxCents: z60.number().int().positive()
34624
+ import { z as z61 } from "zod";
34625
+ var publicGiftCardOfferSchema = z61.object({
34626
+ id: z61.string(),
34627
+ kind: z61.literal("gift_card"),
34628
+ title: z61.string(),
34629
+ description: z61.string().nullable(),
34630
+ sortOrder: z61.number().int(),
34631
+ giftCard: z61.object({
34632
+ fixedDenominations: z61.array(z61.number().int().positive()),
34633
+ customAmountEnabled: z61.boolean(),
34634
+ customAmountMinCents: z61.number().int().positive(),
34635
+ customAmountMaxCents: z61.number().int().positive()
34451
34636
  }),
34452
- voucher: z60.null()
34453
- });
34454
- var publicVoucherOfferSchema = z60.object({
34455
- id: z60.string(),
34456
- kind: z60.literal("voucher"),
34457
- title: z60.string(),
34458
- description: z60.string().nullable(),
34459
- sortOrder: z60.number().int(),
34460
- giftCard: z60.null(),
34461
- voucher: z60.object({
34462
- purchaseAmountCents: z60.number().int().positive()
34637
+ voucher: z61.null()
34638
+ });
34639
+ var publicVoucherOfferSchema = z61.object({
34640
+ id: z61.string(),
34641
+ kind: z61.literal("voucher"),
34642
+ title: z61.string(),
34643
+ description: z61.string().nullable(),
34644
+ sortOrder: z61.number().int(),
34645
+ giftCard: z61.null(),
34646
+ voucher: z61.object({
34647
+ purchaseAmountCents: z61.number().int().positive()
34463
34648
  })
34464
34649
  });
34465
- var publicGiftingOffersResponseSchema = z60.object({
34466
- currency: z60.string(),
34467
- giftCards: z60.array(publicGiftCardOfferSchema),
34468
- vouchers: z60.array(publicVoucherOfferSchema)
34650
+ var publicGiftingOffersResponseSchema = z61.object({
34651
+ currency: z61.string(),
34652
+ giftCards: z61.array(publicGiftCardOfferSchema),
34653
+ vouchers: z61.array(publicVoucherOfferSchema)
34469
34654
  });
34470
- var giftingSourceSchema = z60.object({
34471
- siteId: z60.string().optional(),
34472
- apiBaseUrl: z60.string().optional(),
34655
+ var giftingSourceSchema = z61.object({
34656
+ siteId: z61.string().optional(),
34657
+ apiBaseUrl: z61.string().optional(),
34473
34658
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
34474
- className: z60.string().nullable().optional(),
34475
- heading: z60.string().nullable().optional(),
34476
- intro: z60.string().nullable().optional(),
34477
- giftCardsHeading: z60.string().nullable().optional(),
34478
- vouchersHeading: z60.string().nullable().optional(),
34479
- emptyStateText: z60.string().nullable().optional(),
34480
- checkoutButtonText: z60.string().nullable().optional(),
34481
- successMessage: z60.string().nullable().optional()
34482
- });
34483
- var giftingDisplaySchema = z60.object({
34484
- kind: z60.literal("gifting"),
34485
- state: z60.literal("ready"),
34486
- className: z60.string().nullable(),
34487
- heading: z60.string(),
34488
- intro: z60.string().nullable(),
34489
- giftCardsHeading: z60.string(),
34490
- vouchersHeading: z60.string(),
34491
- emptyStateText: z60.string()
34492
- });
34493
- var giftingHydrationSchema = z60.object({
34659
+ className: z61.string().nullable().optional(),
34660
+ heading: z61.string().nullable().optional(),
34661
+ intro: z61.string().nullable().optional(),
34662
+ giftCardsHeading: z61.string().nullable().optional(),
34663
+ vouchersHeading: z61.string().nullable().optional(),
34664
+ emptyStateText: z61.string().nullable().optional(),
34665
+ checkoutButtonText: z61.string().nullable().optional(),
34666
+ successMessage: z61.string().nullable().optional()
34667
+ });
34668
+ var giftingDisplaySchema = z61.object({
34669
+ kind: z61.literal("gifting"),
34670
+ state: z61.literal("ready"),
34671
+ className: z61.string().nullable(),
34672
+ heading: z61.string(),
34673
+ intro: z61.string().nullable(),
34674
+ giftCardsHeading: z61.string(),
34675
+ vouchersHeading: z61.string(),
34676
+ emptyStateText: z61.string()
34677
+ });
34678
+ var giftingHydrationSchema = z61.object({
34494
34679
  offers: publicGiftingOffersResponseSchema.nullable(),
34495
- checkoutButtonText: z60.string(),
34496
- successMessage: z60.string()
34680
+ checkoutButtonText: z61.string(),
34681
+ successMessage: z61.string()
34497
34682
  });
34498
- var giftingRenderSchema = z60.object({
34683
+ var giftingRenderSchema = z61.object({
34499
34684
  display: giftingDisplaySchema,
34500
34685
  hydration: giftingHydrationSchema
34501
34686
  });
34502
- var giftingIslandMetaCodec = createZodCodec(z60.object({
34503
- siteId: z60.string().optional(),
34504
- apiBaseUrl: z60.string().optional()
34687
+ var giftingIslandMetaCodec = createZodCodec(z61.object({
34688
+ siteId: z61.string().optional(),
34689
+ apiBaseUrl: z61.string().optional()
34505
34690
  }));
34506
34691
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
34507
34692
  "siteId",
@@ -34672,7 +34857,61 @@ var giftingBlockDefinition = {
34672
34857
  };
34673
34858
 
34674
34859
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
34675
- import { z as z61 } from "zod";
34860
+ import { z as z62 } from "zod";
34861
+
34862
+ // ../blocks/src/system/blocks/newsletter-signup-destination.ts
34863
+ function parseNewsletterSignupBlockId(value) {
34864
+ const trimmed = parseTrimmedString(value);
34865
+ return trimmed && BLOCK_ID_PATTERN.test(trimmed) ? trimmed : null;
34866
+ }
34867
+ function parseSignedNewsletterDestinationRef(value) {
34868
+ const trimmed = parseTrimmedString(value);
34869
+ return trimmed && SIGNED_DESTINATION_REF_PATTERN.test(trimmed) ? trimmed : null;
34870
+ }
34871
+ function parseNewsletterSignupDestinationProvider(value) {
34872
+ return value === "riverbank" || value === "mailchimp" ? value : null;
34873
+ }
34874
+ function buildNewsletterSignupBlockRef(blockId) {
34875
+ const parsed = parseNewsletterSignupBlockId(blockId);
34876
+ return parsed ? { tag: "block_ref", blockId: parsed } : null;
34877
+ }
34878
+ function normalizeNewsletterSignupEditorValuesForDestination(values) {
34879
+ const destinationProvider = parseNewsletterSignupDestinationProvider(values.destinationProvider) ?? "riverbank";
34880
+ if (destinationProvider === "mailchimp") {
34881
+ return {
34882
+ destinationProvider,
34883
+ mailchimpAudienceId: values.mailchimpAudienceId,
34884
+ mailchimpTags: values.mailchimpTags
34885
+ };
34886
+ }
34887
+ return {
34888
+ destinationProvider,
34889
+ listId: values.listId,
34890
+ tags: values.tags
34891
+ };
34892
+ }
34893
+ function deriveNewsletterSignupRuntimeSource(values) {
34894
+ const normalized = normalizeNewsletterSignupEditorValuesForDestination(values);
34895
+ if (normalized.destinationProvider === "mailchimp") {
34896
+ return {
34897
+ destinationProvider: "mailchimp",
34898
+ listId: null,
34899
+ tags: null
34900
+ };
34901
+ }
34902
+ return {
34903
+ destinationProvider: "riverbank",
34904
+ listId: parseTrimmedString(normalized.listId),
34905
+ tags: parseTrimmedString(normalized.tags)
34906
+ };
34907
+ }
34908
+ var BLOCK_ID_PATTERN = /^[A-Za-z0-9._:-]{1,200}$/;
34909
+ var SIGNED_DESTINATION_REF_PATTERN = /^[A-Za-z0-9._~-]{16,1000}$/;
34910
+ function parseTrimmedString(value) {
34911
+ if (typeof value !== "string") return null;
34912
+ const trimmed = value.trim();
34913
+ return trimmed.length > 0 ? trimmed : null;
34914
+ }
34676
34915
 
34677
34916
  // ../blocks/src/system/runtime/nodes/newsletter-form.types.ts
34678
34917
  function getPresetFields(preset2, options) {
@@ -34725,49 +34964,65 @@ function withOptionalPhone(fields3, includePhone) {
34725
34964
  }
34726
34965
 
34727
34966
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
34728
- var newsletterPresetSchema = z61.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
34729
- var newsletterFieldSchema = z61.object({
34730
- id: z61.string(),
34731
- type: z61.enum(["email", "text"]),
34732
- label: z61.string(),
34733
- required: z61.boolean(),
34734
- placeholder: z61.string().optional()
34735
- });
34736
- var newsletterSourceSchema = z61.object({
34737
- siteId: z61.string().optional(),
34738
- apiBaseUrl: z61.string().optional(),
34739
- listId: z61.string().nullable().optional(),
34967
+ var newsletterPresetSchema = z62.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
34968
+ var newsletterDestinationProviderSchema = z62.enum(["riverbank", "mailchimp"]);
34969
+ var newsletterFieldSchema = z62.object({
34970
+ id: z62.string(),
34971
+ type: z62.enum(["email", "text"]),
34972
+ label: z62.string(),
34973
+ required: z62.boolean(),
34974
+ placeholder: z62.string().optional()
34975
+ });
34976
+ var newsletterSignupBlockIdSchema = z62.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
34977
+ var signedNewsletterDestinationRefSchema = z62.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
34978
+ var newsletterPublicDestinationRefSchema = z62.discriminatedUnion("tag", [
34979
+ z62.object({
34980
+ tag: z62.literal("block_ref"),
34981
+ blockId: newsletterSignupBlockIdSchema
34982
+ }),
34983
+ z62.object({
34984
+ tag: z62.literal("signed_destination_ref"),
34985
+ token: signedNewsletterDestinationRefSchema
34986
+ })
34987
+ ]);
34988
+ var newsletterSourceSchema = z62.object({
34989
+ blockId: z62.string().nullable().optional(),
34990
+ siteId: z62.string().optional(),
34991
+ apiBaseUrl: z62.string().optional(),
34992
+ listId: z62.string().nullable().optional(),
34993
+ destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
34740
34994
  preset: newsletterPresetSchema.optional(),
34741
- includePhone: z61.boolean().optional(),
34742
- buttonLabel: z61.string().nullable().optional(),
34743
- successMessage: z61.string().nullable().optional(),
34744
- privacyNote: z61.string().nullable().optional(),
34745
- tags: z61.string().nullable().optional(),
34746
- spamProtectionEnabled: z61.boolean().optional(),
34747
- className: z61.string().nullable().optional()
34748
- });
34749
- var newsletterDisplaySchema = z61.object({
34750
- kind: z61.literal("newsletter-form"),
34751
- className: z61.string().nullable(),
34752
- buttonLabel: z61.string(),
34753
- successMessage: z61.string().nullable(),
34754
- privacyNote: z61.string().nullable(),
34755
- fields: z61.array(newsletterFieldSchema)
34756
- });
34757
- var newsletterHydrationSchema = z61.object({
34758
- listId: z61.string().nullable().optional(),
34995
+ includePhone: z62.boolean().optional(),
34996
+ buttonLabel: z62.string().nullable().optional(),
34997
+ successMessage: z62.string().nullable().optional(),
34998
+ privacyNote: z62.string().nullable().optional(),
34999
+ tags: z62.string().nullable().optional(),
35000
+ spamProtectionEnabled: z62.boolean().optional(),
35001
+ className: z62.string().nullable().optional()
35002
+ });
35003
+ var newsletterDisplaySchema = z62.object({
35004
+ kind: z62.literal("newsletter-form"),
35005
+ className: z62.string().nullable(),
35006
+ buttonLabel: z62.string(),
35007
+ successMessage: z62.string().nullable(),
35008
+ privacyNote: z62.string().nullable(),
35009
+ fields: z62.array(newsletterFieldSchema)
35010
+ });
35011
+ var newsletterHydrationSchema = z62.object({
35012
+ destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
35013
+ listId: z62.string().nullable().optional(),
34759
35014
  preset: newsletterPresetSchema,
34760
- includePhone: z61.boolean(),
34761
- tags: z61.string().nullable().optional(),
34762
- spamProtectionEnabled: z61.boolean().optional()
35015
+ includePhone: z62.boolean(),
35016
+ tags: z62.string().nullable().optional(),
35017
+ spamProtectionEnabled: z62.boolean().optional()
34763
35018
  });
34764
- var newsletterRenderSchema = z61.object({
35019
+ var newsletterRenderSchema = z62.object({
34765
35020
  display: newsletterDisplaySchema,
34766
35021
  hydration: newsletterHydrationSchema
34767
35022
  });
34768
- var newsletterIslandMetaCodec = createZodCodec(z61.object({
34769
- siteId: z61.string().optional(),
34770
- apiBaseUrl: z61.string().optional()
35023
+ var newsletterIslandMetaCodec = createZodCodec(z62.object({
35024
+ siteId: z62.string().optional(),
35025
+ apiBaseUrl: z62.string().optional()
34771
35026
  }));
34772
35027
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
34773
35028
  function buildNewsletterDisplay(source) {
@@ -34788,16 +35043,20 @@ var newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
34788
35043
  source: createZodCodec(newsletterSourceSchema),
34789
35044
  render: createZodCodec(newsletterRenderSchema)
34790
35045
  },
34791
- buildRender: (source) => ({
34792
- display: buildNewsletterDisplay(source),
34793
- hydration: {
34794
- listId: source.listId,
34795
- preset: source.preset ?? "emailOnly",
34796
- includePhone: source.includePhone ?? false,
34797
- tags: source.tags ?? null,
34798
- spamProtectionEnabled: source.spamProtectionEnabled
34799
- }
34800
- })
35046
+ buildRender: (source) => {
35047
+ const runtimeSource = deriveNewsletterSignupRuntimeSource(source);
35048
+ return {
35049
+ display: buildNewsletterDisplay(source),
35050
+ hydration: {
35051
+ destinationRef: buildNewsletterSignupBlockRef(source.blockId),
35052
+ listId: runtimeSource.listId,
35053
+ preset: source.preset ?? "emailOnly",
35054
+ includePhone: source.includePhone ?? false,
35055
+ tags: runtimeSource.tags,
35056
+ spamProtectionEnabled: source.spamProtectionEnabled
35057
+ }
35058
+ };
35059
+ }
34801
35060
  });
34802
35061
  var newsletterFormInteractiveIslandPropsCodec = createInteractiveIslandCodec({
34803
35062
  runtime: newsletterFormBlockRuntime,
@@ -34809,6 +35068,20 @@ var newsletterFormInteractiveIslandPropsCodec = createInteractiveIslandCodec({
34809
35068
  apiBaseUrl: value.apiBaseUrl
34810
35069
  })
34811
35070
  });
35071
+ function parseRequiredNewsletterSignupBlockId(value) {
35072
+ const parsed = parseNewsletterSignupBlockId(value);
35073
+ if (!parsed) {
35074
+ throw new Error("Newsletter signup block destination ref requires blockId");
35075
+ }
35076
+ return parsed;
35077
+ }
35078
+ function parseRequiredSignedNewsletterDestinationRef(value) {
35079
+ const parsed = parseSignedNewsletterDestinationRef(value);
35080
+ if (!parsed) {
35081
+ throw new Error("Newsletter signup signed destination ref requires token");
35082
+ }
35083
+ return parsed;
35084
+ }
34812
35085
 
34813
35086
  // ../blocks/src/system/blocks/newsletter-signup.ts
34814
35087
  var stackedComposition = composeFragments([
@@ -34888,23 +35161,23 @@ var newsletterSignupBlockDefinition = {
34888
35161
  };
34889
35162
 
34890
35163
  // ../blocks/src/system/blocks/team-members.ts
34891
- import { z as z62 } from "zod";
35164
+ import { z as z63 } from "zod";
34892
35165
  var ITEM_NAME2 = "member";
34893
35166
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
34894
35167
  message: "Team member photos must be image media"
34895
35168
  }).nullable();
34896
- var teamMemberDataSchema = z62.object({
34897
- _type: z62.literal("teamMember"),
34898
- id: z62.string(),
34899
- name: z62.string(),
34900
- role: z62.string().nullable(),
34901
- roleLabel: z62.string().nullable(),
34902
- bio: z62.string().nullable(),
34903
- summary: z62.string().nullable(),
35169
+ var teamMemberDataSchema = z63.object({
35170
+ _type: z63.literal("teamMember"),
35171
+ id: z63.string(),
35172
+ name: z63.string(),
35173
+ role: z63.string().nullable(),
35174
+ roleLabel: z63.string().nullable(),
35175
+ bio: z63.string().nullable(),
35176
+ summary: z63.string().nullable(),
34904
35177
  photo: teamMemberPhotoSchema,
34905
- profilePath: z62.string().nullable()
35178
+ profilePath: z63.string().nullable()
34906
35179
  });
34907
- var teamMembersDataSchema = z62.array(teamMemberDataSchema);
35180
+ var teamMembersDataSchema = z63.array(teamMemberDataSchema);
34908
35181
  var dynamicSourceWhen = { equals: "site_staff" };
34909
35182
  var manualSourceWhen = { equals: "site_staff", not: true };
34910
35183
  var headingNode = text(
@@ -37602,34 +37875,34 @@ import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
37602
37875
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
37603
37876
 
37604
37877
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
37605
- import { z as z63 } from "zod";
37606
- var themeBridgeConfigSchema = z63.object({
37607
- tokens: z63.record(z63.string(), z63.string()),
37608
- typography: z63.object({
37609
- headingFamily: z63.string().optional(),
37610
- bodyFamily: z63.string().optional(),
37611
- headingWeight: z63.number().optional(),
37612
- bodyWeight: z63.number().optional()
37878
+ import { z as z64 } from "zod";
37879
+ var themeBridgeConfigSchema = z64.object({
37880
+ tokens: z64.record(z64.string(), z64.string()),
37881
+ typography: z64.object({
37882
+ headingFamily: z64.string().optional(),
37883
+ bodyFamily: z64.string().optional(),
37884
+ headingWeight: z64.number().optional(),
37885
+ bodyWeight: z64.number().optional()
37613
37886
  }).optional(),
37614
- spacing: z63.enum(["comfortable", "standard", "dense"]).optional(),
37615
- corners: z63.enum(["square", "soft", "rounded", "pill"]).optional(),
37616
- shadows: z63.enum(["none", "low", "medium", "high"]).optional(),
37617
- components: z63.object({
37618
- buttons: z63.union([
37619
- z63.boolean(),
37620
- z63.object({
37621
- variants: z63.array(z63.enum(["primary", "secondary", "outline", "ghost"])).optional()
37887
+ spacing: z64.enum(["comfortable", "standard", "dense"]).optional(),
37888
+ corners: z64.enum(["square", "soft", "rounded", "pill"]).optional(),
37889
+ shadows: z64.enum(["none", "low", "medium", "high"]).optional(),
37890
+ components: z64.object({
37891
+ buttons: z64.union([
37892
+ z64.boolean(),
37893
+ z64.object({
37894
+ variants: z64.array(z64.enum(["primary", "secondary", "outline", "ghost"])).optional()
37622
37895
  })
37623
37896
  ]).optional(),
37624
- cards: z63.union([
37625
- z63.boolean(),
37626
- z63.object({
37627
- variants: z63.array(z63.enum(["default", "elevated", "outlined"])).optional()
37897
+ cards: z64.union([
37898
+ z64.boolean(),
37899
+ z64.object({
37900
+ variants: z64.array(z64.enum(["default", "elevated", "outlined"])).optional()
37628
37901
  })
37629
37902
  ]).optional(),
37630
- inputs: z63.boolean().optional()
37903
+ inputs: z64.boolean().optional()
37631
37904
  }).optional(),
37632
- overrides: z63.record(z63.string(), z63.string()).optional()
37905
+ overrides: z64.record(z64.string(), z64.string()).optional()
37633
37906
  }).passthrough();
37634
37907
 
37635
37908
  // ../theme-core/src/siteChrome.tsx
@@ -37655,17 +37928,17 @@ var SUPPORTED_LOADER_ENDPOINTS = [
37655
37928
  function unsafeRetypeZodSchema(schema) {
37656
37929
  return schema;
37657
37930
  }
37658
- var navIdListSchema = z64.preprocess((value) => {
37931
+ var navIdListSchema = z65.preprocess((value) => {
37659
37932
  if (!Array.isArray(value)) return void 0;
37660
37933
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
37661
37934
  return filtered.length > 0 ? filtered : void 0;
37662
- }, z64.array(z64.string()).max(200).optional());
37663
- var dashboardNavVisibilityBaseSchema = z64.object({
37664
- mode: z64.enum(["augment", "restrict"]).optional(),
37935
+ }, z65.array(z65.string()).max(200).optional());
37936
+ var dashboardNavVisibilityBaseSchema = z65.object({
37937
+ mode: z65.enum(["augment", "restrict"]).optional(),
37665
37938
  allowIds: navIdListSchema,
37666
37939
  denyIds: navIdListSchema
37667
37940
  }).strip();
37668
- var dashboardNavVisibilityRolesSchema = z64.object({
37941
+ var dashboardNavVisibilityRolesSchema = z65.object({
37669
37942
  administrator: dashboardNavVisibilityBaseSchema.optional(),
37670
37943
  editor: dashboardNavVisibilityBaseSchema.optional(),
37671
37944
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -37673,63 +37946,63 @@ var dashboardNavVisibilityRolesSchema = z64.object({
37673
37946
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
37674
37947
  roles: dashboardNavVisibilityRolesSchema
37675
37948
  }).strip();
37676
- var dashboardNavigationConfigSchema = z64.object({
37949
+ var dashboardNavigationConfigSchema = z65.object({
37677
37950
  siteNav: dashboardNavVisibilitySchema.optional(),
37678
37951
  settingsNav: dashboardNavVisibilitySchema.optional()
37679
37952
  }).strip();
37680
- var dashboardConfigSchema = z64.object({
37681
- previewEditingEnabled: z64.boolean().optional(),
37953
+ var dashboardConfigSchema = z65.object({
37954
+ previewEditingEnabled: z65.boolean().optional(),
37682
37955
  navigation: dashboardNavigationConfigSchema.optional()
37683
37956
  }).strip();
37684
37957
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
37685
37958
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
37686
- var sdkLoaderEndpointSchema = z64.enum(SUPPORTED_LOADER_ENDPOINTS);
37687
- var loaderFallbackScalarSchema = z64.union([
37688
- z64.string(),
37689
- z64.number(),
37690
- z64.boolean(),
37691
- z64.null()
37959
+ var sdkLoaderEndpointSchema = z65.enum(SUPPORTED_LOADER_ENDPOINTS);
37960
+ var loaderFallbackScalarSchema = z65.union([
37961
+ z65.string(),
37962
+ z65.number(),
37963
+ z65.boolean(),
37964
+ z65.null()
37692
37965
  ]);
37693
- var loaderParamBindingSchema = z64.object({
37694
- $bind: z64.object({
37695
- from: z64.string().min(1, "Binding path is required"),
37966
+ var loaderParamBindingSchema = z65.object({
37967
+ $bind: z65.object({
37968
+ from: z65.string().min(1, "Binding path is required"),
37696
37969
  fallback: loaderFallbackScalarSchema.optional()
37697
37970
  })
37698
37971
  });
37699
- var loaderParamValueSchema = z64.union([
37700
- z64.string(),
37701
- z64.number(),
37702
- z64.boolean(),
37972
+ var loaderParamValueSchema = z65.union([
37973
+ z65.string(),
37974
+ z65.number(),
37975
+ z65.boolean(),
37703
37976
  loaderParamBindingSchema
37704
37977
  ]);
37705
- var sdkConfigLoaderSchema = z64.object({
37978
+ var sdkConfigLoaderSchema = z65.object({
37706
37979
  endpoint: sdkLoaderEndpointSchema,
37707
- params: z64.record(z64.string(), loaderParamValueSchema),
37708
- mode: z64.enum(["server", "client"]).default("server")
37980
+ params: z65.record(z65.string(), loaderParamValueSchema),
37981
+ mode: z65.enum(["server", "client"]).default("server")
37709
37982
  });
37710
- var sdkDataLoadersSchema = z64.record(z64.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
37711
- var sdkCustomBlockIdSchema = z64.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
37983
+ var sdkDataLoadersSchema = z65.record(z65.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
37984
+ var sdkCustomBlockIdSchema = z65.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
37712
37985
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
37713
37986
  }).transform((value) => value);
37714
- var sdkCustomBlockInputSchema = z64.object({
37987
+ var sdkCustomBlockInputSchema = z65.object({
37715
37988
  id: sdkCustomBlockIdSchema,
37716
- title: z64.string().min(1),
37717
- titleSource: z64.union([z64.string().min(1), z64.array(z64.string().min(1)).min(1)]).optional(),
37718
- description: z64.string().optional(),
37989
+ title: z65.string().min(1),
37990
+ titleSource: z65.union([z65.string().min(1), z65.array(z65.string().min(1)).min(1)]).optional(),
37991
+ description: z65.string().optional(),
37719
37992
  category: blockCategoryEnum,
37720
- icon: z64.string().optional(),
37721
- tags: z64.array(z64.string()).optional(),
37993
+ icon: z65.string().optional(),
37994
+ tags: z65.array(z65.string()).optional(),
37722
37995
  fields: fieldDefinitionInputSchema.array().min(1),
37723
37996
  dataLoaders: sdkDataLoadersSchema,
37724
37997
  layout: NodeSchema.optional(),
37725
- variants: z64.record(z64.string().min(1), NodeSchema).optional(),
37726
- defaultVariant: z64.string().min(1).optional(),
37727
- variantOptions: z64.record(
37728
- z64.string().min(1),
37729
- z64.object({
37730
- label: z64.string().min(1).optional(),
37731
- description: z64.string().min(1).optional(),
37732
- icon: z64.string().min(1).optional()
37998
+ variants: z65.record(z65.string().min(1), NodeSchema).optional(),
37999
+ defaultVariant: z65.string().min(1).optional(),
38000
+ variantOptions: z65.record(
38001
+ z65.string().min(1),
38002
+ z65.object({
38003
+ label: z65.string().min(1).optional(),
38004
+ description: z65.string().min(1).optional(),
38005
+ icon: z65.string().min(1).optional()
37733
38006
  })
37734
38007
  ).optional(),
37735
38008
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -37740,7 +38013,7 @@ var sdkCustomBlockInputSchema = z64.object({
37740
38013
  const exists = data.fields.some((field) => field.id === source);
37741
38014
  if (!exists) {
37742
38015
  ctx.addIssue({
37743
- code: z64.ZodIssueCode.custom,
38016
+ code: z65.ZodIssueCode.custom,
37744
38017
  message: `titleSource must reference a valid field ID (got "${source}")`,
37745
38018
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
37746
38019
  });
@@ -37749,7 +38022,7 @@ var sdkCustomBlockInputSchema = z64.object({
37749
38022
  }
37750
38023
  if (data.layout && data.variants) {
37751
38024
  ctx.addIssue({
37752
- code: z64.ZodIssueCode.custom,
38025
+ code: z65.ZodIssueCode.custom,
37753
38026
  message: "Custom block must define either `layout` or `variants`, not both",
37754
38027
  path: ["variants"]
37755
38028
  });
@@ -37758,14 +38031,14 @@ var sdkCustomBlockInputSchema = z64.object({
37758
38031
  const keys = Object.keys(data.variants);
37759
38032
  if (keys.length === 0) {
37760
38033
  ctx.addIssue({
37761
- code: z64.ZodIssueCode.custom,
38034
+ code: z65.ZodIssueCode.custom,
37762
38035
  message: "`variants` must contain at least one variant key",
37763
38036
  path: ["variants"]
37764
38037
  });
37765
38038
  }
37766
38039
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
37767
38040
  ctx.addIssue({
37768
- code: z64.ZodIssueCode.custom,
38041
+ code: z65.ZodIssueCode.custom,
37769
38042
  message: "`defaultVariant` must be a key present in `variants`",
37770
38043
  path: ["defaultVariant"]
37771
38044
  });
@@ -37774,7 +38047,7 @@ var sdkCustomBlockInputSchema = z64.object({
37774
38047
  for (const key of Object.keys(data.variantOptions)) {
37775
38048
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
37776
38049
  ctx.addIssue({
37777
- code: z64.ZodIssueCode.custom,
38050
+ code: z65.ZodIssueCode.custom,
37778
38051
  message: "`variantOptions` key must exist in `variants`",
37779
38052
  path: ["variantOptions", key]
37780
38053
  });
@@ -37783,78 +38056,78 @@ var sdkCustomBlockInputSchema = z64.object({
37783
38056
  }
37784
38057
  }
37785
38058
  });
37786
- var sdkBlockFieldExtensionInputSchema = z64.object({
38059
+ var sdkBlockFieldExtensionInputSchema = z65.object({
37787
38060
  fields: fieldDefinitionInputSchema.array().min(1)
37788
38061
  });
37789
- var sdkBlockFieldExtensionsInputSchema = z64.record(
37790
- z64.string().min(1),
38062
+ var sdkBlockFieldExtensionsInputSchema = z65.record(
38063
+ z65.string().min(1),
37791
38064
  sdkBlockFieldExtensionInputSchema
37792
38065
  );
37793
- var sdkThemePaletteSchema = z64.record(z64.string(), z64.string());
37794
- var sdkThemeConfigSchema = z64.object({
38066
+ var sdkThemePaletteSchema = z65.record(z65.string(), z65.string());
38067
+ var sdkThemeConfigSchema = z65.object({
37795
38068
  palette: sdkThemePaletteSchema
37796
38069
  });
37797
- var sdkSectionBackgroundSchema = z64.object({
37798
- id: z64.string().min(1),
37799
- label: z64.string().min(1),
37800
- token: z64.string().min(1)
38070
+ var sdkSectionBackgroundSchema = z65.object({
38071
+ id: z65.string().min(1),
38072
+ label: z65.string().min(1),
38073
+ token: z65.string().min(1)
37801
38074
  });
37802
- var sdkSectionOptionsConfigSchema = z64.object({
37803
- backgroundColor: z64.boolean().optional(),
37804
- backgroundImage: z64.boolean().optional(),
37805
- backgroundGradient: z64.boolean().optional(),
37806
- spacing: z64.union([z64.array(z64.enum(["compact", "default", "spacious"])), z64.boolean()]).optional(),
37807
- textColor: z64.boolean().optional()
38075
+ var sdkSectionOptionsConfigSchema = z65.object({
38076
+ backgroundColor: z65.boolean().optional(),
38077
+ backgroundImage: z65.boolean().optional(),
38078
+ backgroundGradient: z65.boolean().optional(),
38079
+ spacing: z65.union([z65.array(z65.enum(["compact", "default", "spacious"])), z65.boolean()]).optional(),
38080
+ textColor: z65.boolean().optional()
37808
38081
  });
37809
- var sdkContainerOptionsConfigSchema = z64.object({
37810
- maxWidth: z64.union([z64.array(z64.enum(["narrow", "default", "wide", "full"])), z64.boolean()]).optional(),
37811
- alignment: z64.union([z64.array(z64.enum(["left", "center", "right"])), z64.boolean()]).optional()
38082
+ var sdkContainerOptionsConfigSchema = z65.object({
38083
+ maxWidth: z65.union([z65.array(z65.enum(["narrow", "default", "wide", "full"])), z65.boolean()]).optional(),
38084
+ alignment: z65.union([z65.array(z65.enum(["left", "center", "right"])), z65.boolean()]).optional()
37812
38085
  });
37813
- var sdkSiteStyleConfigSchema = z64.object({
37814
- sectionBackgrounds: z64.array(sdkSectionBackgroundSchema).optional(),
38086
+ var sdkSiteStyleConfigSchema = z65.object({
38087
+ sectionBackgrounds: z65.array(sdkSectionBackgroundSchema).optional(),
37815
38088
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
37816
38089
  containerOptions: sdkContainerOptionsConfigSchema.optional()
37817
38090
  });
37818
- var sdkSiteLayoutConfigSchema = z64.object({
37819
- footerBlocks: z64.array(
37820
- z64.object({
37821
- id: z64.string().min(1).optional(),
37822
- kind: z64.string().min(1),
37823
- content: z64.record(z64.string(), z64.unknown()).optional()
38091
+ var sdkSiteLayoutConfigSchema = z65.object({
38092
+ footerBlocks: z65.array(
38093
+ z65.object({
38094
+ id: z65.string().min(1).optional(),
38095
+ kind: z65.string().min(1),
38096
+ content: z65.record(z65.string(), z65.unknown()).optional()
37824
38097
  })
37825
38098
  ).optional()
37826
38099
  });
37827
- var sdkFieldSelectOptionSchema = z64.object({
37828
- value: z64.string(),
37829
- label: z64.string()
38100
+ var sdkFieldSelectOptionSchema = z65.object({
38101
+ value: z65.string(),
38102
+ label: z65.string()
37830
38103
  });
37831
- var sdkBlockFieldConfigSchema = z64.object({
37832
- options: z64.array(sdkFieldSelectOptionSchema).optional()
38104
+ var sdkBlockFieldConfigSchema = z65.object({
38105
+ options: z65.array(sdkFieldSelectOptionSchema).optional()
37833
38106
  });
37834
- var sdkBlockFieldOptionsMapSchema = z64.record(
37835
- z64.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38107
+ var sdkBlockFieldOptionsMapSchema = z65.record(
38108
+ z65.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
37836
38109
  message: "Block ID must be 'block.*' or 'custom.*' format"
37837
38110
  }),
37838
- z64.record(z64.string().min(1), sdkBlockFieldConfigSchema)
38111
+ z65.record(z65.string().min(1), sdkBlockFieldConfigSchema)
37839
38112
  ).optional();
37840
- var sdkContentTypeTemplateConfigSchema = z64.object({
37841
- blocks: z64.array(z64.unknown())
38113
+ var sdkContentTypeTemplateConfigSchema = z65.object({
38114
+ blocks: z65.array(z65.unknown())
37842
38115
  }).passthrough();
37843
- var sdkContentTypeOrderingConfigSchema = z64.object({
37844
- mode: z64.enum(["default", "manual"]).optional()
38116
+ var sdkContentTypeOrderingConfigSchema = z65.object({
38117
+ mode: z65.enum(["default", "manual"]).optional()
37845
38118
  }).optional();
37846
- var sdkContentTypeConfigSchema = z64.object({
37847
- key: z64.string().min(1),
37848
- fields: z64.array(z64.unknown()),
38119
+ var sdkContentTypeConfigSchema = z65.object({
38120
+ key: z65.string().min(1),
38121
+ fields: z65.array(z65.unknown()),
37849
38122
  ordering: sdkContentTypeOrderingConfigSchema,
37850
38123
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
37851
38124
  }).passthrough();
37852
- var sdkContentConfigSchema = z64.object({
37853
- contentTypes: z64.array(sdkContentTypeConfigSchema).optional(),
37854
- pages: z64.array(z64.unknown()).optional(),
37855
- entries: z64.array(z64.unknown()).optional(),
37856
- navigationMenus: z64.array(z64.unknown()).optional(),
37857
- settings: z64.unknown().optional()
38125
+ var sdkContentConfigSchema = z65.object({
38126
+ contentTypes: z65.array(sdkContentTypeConfigSchema).optional(),
38127
+ pages: z65.array(z65.unknown()).optional(),
38128
+ entries: z65.array(z65.unknown()).optional(),
38129
+ navigationMenus: z65.array(z65.unknown()).optional(),
38130
+ settings: z65.unknown().optional()
37858
38131
  }).passthrough();
37859
38132
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
37860
38133
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -37869,62 +38142,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
37869
38142
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
37870
38143
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
37871
38144
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
37872
- var sdkWorkflowIdSchema = z64.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38145
+ var sdkWorkflowIdSchema = z65.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
37873
38146
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
37874
38147
  });
37875
- var sdkWorkflowEndpointSchema = z64.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
37876
- var sdkWorkflowManualTriggerSchema = z64.object({
37877
- type: z64.literal("manual")
38148
+ var sdkWorkflowEndpointSchema = z65.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
38149
+ var sdkWorkflowManualTriggerSchema = z65.object({
38150
+ type: z65.literal("manual")
37878
38151
  }).strict();
37879
- var sdkWorkflowTriggerFieldSchema = z64.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38152
+ var sdkWorkflowTriggerFieldSchema = z65.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
37880
38153
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
37881
38154
  });
37882
- var sdkWorkflowFieldChangedConditionSchema = z64.object({
38155
+ var sdkWorkflowFieldChangedConditionSchema = z65.object({
37883
38156
  field: sdkWorkflowTriggerFieldSchema,
37884
- changed: z64.literal(true)
38157
+ changed: z65.literal(true)
37885
38158
  }).strict();
37886
- var sdkWorkflowFieldEmptyConditionSchema = z64.object({
38159
+ var sdkWorkflowFieldEmptyConditionSchema = z65.object({
37887
38160
  field: sdkWorkflowTriggerFieldSchema,
37888
- isEmpty: z64.boolean()
38161
+ isEmpty: z65.boolean()
37889
38162
  }).strict();
37890
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z64.object({
37891
- type: z64.literal("entry.draft.updated"),
37892
- when: z64.array(
37893
- z64.union([
38163
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z65.object({
38164
+ type: z65.literal("entry.draft.updated"),
38165
+ when: z65.array(
38166
+ z65.union([
37894
38167
  sdkWorkflowFieldChangedConditionSchema,
37895
38168
  sdkWorkflowFieldEmptyConditionSchema
37896
38169
  ])
37897
38170
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
37898
38171
  }).strict();
37899
- var sdkWorkflowTriggerSchema = z64.discriminatedUnion("type", [
38172
+ var sdkWorkflowTriggerSchema = z65.discriminatedUnion("type", [
37900
38173
  sdkWorkflowManualTriggerSchema,
37901
38174
  sdkWorkflowEntryDraftUpdatedTriggerSchema
37902
38175
  ]);
37903
- var sdkWorkflowConfirmationSchema = z64.object({
37904
- title: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
37905
- body: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38176
+ var sdkWorkflowConfirmationSchema = z65.object({
38177
+ title: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38178
+ body: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
37906
38179
  }).strict();
37907
- var sdkWorkflowConfigSchema = z64.object({
38180
+ var sdkWorkflowConfigSchema = z65.object({
37908
38181
  id: sdkWorkflowIdSchema,
37909
- title: z64.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
37910
- description: z64.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
37911
- contentType: z64.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38182
+ title: z65.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38183
+ description: z65.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38184
+ contentType: z65.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
37912
38185
  endpoint: sdkWorkflowEndpointSchema,
37913
- triggers: z64.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38186
+ triggers: z65.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
37914
38187
  confirmation: sdkWorkflowConfirmationSchema.optional()
37915
38188
  }).strict();
37916
- var sdkWorkflowsSchema = z64.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38189
+ var sdkWorkflowsSchema = z65.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
37917
38190
  const ids = workflows.map((workflow) => workflow.id);
37918
38191
  return ids.length === new Set(ids).size;
37919
38192
  }, { message: "Workflow IDs must be unique" }).optional();
37920
- var riverbankSiteConfigInputSchema = z64.object({
37921
- siteId: z64.string().uuid(),
37922
- previewUrl: z64.string().url().optional(),
37923
- liveUrl: z64.string().url().optional(),
38193
+ var riverbankSiteConfigInputSchema = z65.object({
38194
+ siteId: z65.string().uuid(),
38195
+ previewUrl: z65.string().url().optional(),
38196
+ liveUrl: z65.string().url().optional(),
37924
38197
  theme: sdkThemeConfigSchema.optional(),
37925
38198
  styles: sdkSiteStyleConfigSchema.optional(),
37926
38199
  layout: sdkSiteLayoutConfigSchema.optional(),
37927
- customBlocks: z64.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38200
+ customBlocks: z65.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
37928
38201
  const ids = blocks.map((b) => b.id);
37929
38202
  return ids.length === new Set(ids).size;
37930
38203
  }, { message: "Block IDs must be unique" }).optional(),
@@ -37932,50 +38205,50 @@ var riverbankSiteConfigInputSchema = z64.object({
37932
38205
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
37933
38206
  workflows: sdkWorkflowsSchema,
37934
38207
  content: sdkContentConfigSchema.optional(),
37935
- contentDir: z64.string().optional(),
37936
- sync: z64.object({
37937
- existingEntries: z64.enum(["skip", "update"]).optional()
38208
+ contentDir: z65.string().optional(),
38209
+ sync: z65.object({
38210
+ existingEntries: z65.enum(["skip", "update"]).optional()
37938
38211
  }).optional(),
37939
- deploy: z64.object({
37940
- verifyCommand: z64.string().optional(),
37941
- prebuildOutput: z64.string().optional()
38212
+ deploy: z65.object({
38213
+ verifyCommand: z65.string().optional(),
38214
+ prebuildOutput: z65.string().optional()
37942
38215
  }).optional(),
37943
- themeSource: z64.enum(["local", "cms"]).optional(),
37944
- activeTheme: z64.string().optional(),
37945
- enablePortal: z64.boolean().optional(),
38216
+ themeSource: z65.enum(["local", "cms"]).optional(),
38217
+ activeTheme: z65.string().optional(),
38218
+ enablePortal: z65.boolean().optional(),
37946
38219
  dashboard: dashboardConfigSchema.optional()
37947
38220
  }).strict();
37948
- var pushSdkConfigBodySchema = z64.object({
38221
+ var pushSdkConfigBodySchema = z65.object({
37949
38222
  config: riverbankSiteConfigInputSchema,
37950
- forceContentTypes: z64.boolean().optional()
38223
+ forceContentTypes: z65.boolean().optional()
37951
38224
  }).strict();
37952
38225
 
37953
38226
  // ../api/src/siteOnboarding.ts
37954
- import { z as z65 } from "zod";
38227
+ import { z as z66 } from "zod";
37955
38228
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
37956
38229
  configure_appointments: {
37957
38230
  requirementId: "configure_appointments",
37958
38231
  reason: "launch_anyway"
37959
38232
  }
37960
38233
  };
37961
- var acknowledgeLaunchRequirementRequestSchema = z65.discriminatedUnion(
38234
+ var acknowledgeLaunchRequirementRequestSchema = z66.discriminatedUnion(
37962
38235
  "requirementId",
37963
38236
  [
37964
- z65.object({
37965
- requirementId: z65.literal("review_generated_site")
38237
+ z66.object({
38238
+ requirementId: z66.literal("review_generated_site")
37966
38239
  }),
37967
- z65.object({
37968
- requirementId: z65.literal(
38240
+ z66.object({
38241
+ requirementId: z66.literal(
37969
38242
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
37970
38243
  ),
37971
- overrideReason: z65.literal(
38244
+ overrideReason: z66.literal(
37972
38245
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
37973
38246
  )
37974
38247
  })
37975
38248
  ]
37976
38249
  );
37977
- var goLiveSiteRequestSchema = z65.object({
37978
- acceptExtraSiteCharge: z65.boolean().optional()
38250
+ var goLiveSiteRequestSchema = z66.object({
38251
+ acceptExtraSiteCharge: z66.boolean().optional()
37979
38252
  });
37980
38253
 
37981
38254
  // ../surfaces/src/index.ts
@@ -38059,7 +38332,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
38059
38332
  ];
38060
38333
 
38061
38334
  // ../api/src/bookingVerticals.ts
38062
- import { z as z66 } from "zod";
38335
+ import { z as z67 } from "zod";
38063
38336
  var VERTICAL_IDS = [
38064
38337
  "yoga_wellness",
38065
38338
  "fitness_pt",
@@ -38224,39 +38497,39 @@ function getSiteVerticalConfigIssues(rawConfig, config) {
38224
38497
  }
38225
38498
  return [...issues];
38226
38499
  }
38227
- var VerticalIdSchema = z66.string().trim().transform((value, ctx) => {
38500
+ var VerticalIdSchema = z67.string().trim().transform((value, ctx) => {
38228
38501
  const parsed = parseVerticalId(value);
38229
38502
  if (!parsed) {
38230
38503
  ctx.addIssue({
38231
- code: z66.ZodIssueCode.custom,
38504
+ code: z67.ZodIssueCode.custom,
38232
38505
  message: "Unknown booking vertical"
38233
38506
  });
38234
- return z66.NEVER;
38507
+ return z67.NEVER;
38235
38508
  }
38236
38509
  return parsed;
38237
38510
  });
38238
- var VerticalPresetIdSchema = z66.string().trim().transform((value, ctx) => {
38511
+ var VerticalPresetIdSchema = z67.string().trim().transform((value, ctx) => {
38239
38512
  const parsed = parseVerticalPresetId(value);
38240
38513
  if (!parsed) {
38241
38514
  ctx.addIssue({
38242
- code: z66.ZodIssueCode.custom,
38515
+ code: z67.ZodIssueCode.custom,
38243
38516
  message: "Unknown booking preset"
38244
38517
  });
38245
- return z66.NEVER;
38518
+ return z67.NEVER;
38246
38519
  }
38247
38520
  return parsed;
38248
38521
  });
38249
- var BookingVerticalConfigSchema = z66.object({
38522
+ var BookingVerticalConfigSchema = z67.object({
38250
38523
  verticalId: VerticalIdSchema.nullable(),
38251
- selectedPresetIds: z66.array(VerticalPresetIdSchema).max(20)
38524
+ selectedPresetIds: z67.array(VerticalPresetIdSchema).max(20)
38252
38525
  }).transform((value, ctx) => {
38253
38526
  const resolved = resolveSiteVerticalBookingConfig(value);
38254
38527
  if (resolved.kind === "invalid") {
38255
38528
  ctx.addIssue({
38256
- code: z66.ZodIssueCode.custom,
38529
+ code: z67.ZodIssueCode.custom,
38257
38530
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
38258
38531
  });
38259
- return z66.NEVER;
38532
+ return z67.NEVER;
38260
38533
  }
38261
38534
  return resolved.config;
38262
38535
  });
@@ -38283,51 +38556,51 @@ function isRecord7(value) {
38283
38556
  }
38284
38557
 
38285
38558
  // ../api/src/appointmentSetup.ts
38286
- import { z as z67 } from "zod";
38559
+ import { z as z68 } from "zod";
38287
38560
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
38288
- var appointmentSetupRefSchema = z67.discriminatedUnion("kind", [
38289
- z67.object({ kind: z67.literal("existing"), id: z67.string().min(1) }),
38290
- z67.object({ kind: z67.literal("new"), draftId: z67.string().min(1) })
38561
+ var appointmentSetupRefSchema = z68.discriminatedUnion("kind", [
38562
+ z68.object({ kind: z68.literal("existing"), id: z68.string().min(1) }),
38563
+ z68.object({ kind: z68.literal("new"), draftId: z68.string().min(1) })
38291
38564
  ]);
38292
- var appointmentSetupVenueChoiceSchema = z67.discriminatedUnion("kind", [
38293
- z67.object({ kind: z67.literal("none") }),
38294
- z67.object({ kind: z67.literal("existing"), venueId: z67.string().min(1) }),
38295
- z67.object({
38296
- kind: z67.literal("create"),
38297
- draftId: z67.string().min(1),
38298
- title: z67.string().trim().min(1),
38299
- description: z67.string().nullable(),
38300
- timezone: z67.string().trim().min(1).nullable(),
38301
- addressJson: z67.record(z67.string(), z67.unknown()),
38302
- locationJson: z67.object({ lat: z67.number(), lng: z67.number() }).nullable()
38565
+ var appointmentSetupVenueChoiceSchema = z68.discriminatedUnion("kind", [
38566
+ z68.object({ kind: z68.literal("none") }),
38567
+ z68.object({ kind: z68.literal("existing"), venueId: z68.string().min(1) }),
38568
+ z68.object({
38569
+ kind: z68.literal("create"),
38570
+ draftId: z68.string().min(1),
38571
+ title: z68.string().trim().min(1),
38572
+ description: z68.string().nullable(),
38573
+ timezone: z68.string().trim().min(1).nullable(),
38574
+ addressJson: z68.record(z68.string(), z68.unknown()),
38575
+ locationJson: z68.object({ lat: z68.number(), lng: z68.number() }).nullable()
38303
38576
  })
38304
38577
  ]);
38305
- var appointmentSetupPaymentDraftSchema = z67.object({
38306
- priceType: z67.union([z67.literal("free"), z67.literal("paid")])
38307
- });
38308
- var appointmentSetupServiceAssignmentDraftSchema = z67.discriminatedUnion("kind", [
38309
- z67.object({ kind: z67.literal("all_practitioners") }),
38310
- z67.object({
38311
- kind: z67.literal("selected_practitioners"),
38312
- resourceRefs: z67.array(appointmentSetupRefSchema)
38578
+ var appointmentSetupPaymentDraftSchema = z68.object({
38579
+ priceType: z68.union([z68.literal("free"), z68.literal("paid")])
38580
+ });
38581
+ var appointmentSetupServiceAssignmentDraftSchema = z68.discriminatedUnion("kind", [
38582
+ z68.object({ kind: z68.literal("all_practitioners") }),
38583
+ z68.object({
38584
+ kind: z68.literal("selected_practitioners"),
38585
+ resourceRefs: z68.array(appointmentSetupRefSchema)
38313
38586
  })
38314
38587
  ]);
38315
- var appointmentSetupServiceDraftSchema = z67.object({
38588
+ var appointmentSetupServiceDraftSchema = z68.object({
38316
38589
  ref: appointmentSetupRefSchema,
38317
- title: z67.string().trim().min(1),
38318
- description: z67.string().nullable(),
38319
- durationMinutes: z67.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38320
- prepMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38321
- cleanupMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38322
- priceAmount: z67.number().int().nonnegative().nullable(),
38323
- isActive: z67.boolean(),
38324
- locationType: z67.union([
38325
- z67.literal("virtual"),
38326
- z67.literal("in_person"),
38327
- z67.literal("hybrid")
38590
+ title: z68.string().trim().min(1),
38591
+ description: z68.string().nullable(),
38592
+ durationMinutes: z68.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38593
+ prepMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38594
+ cleanupMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38595
+ priceAmount: z68.number().int().nonnegative().nullable(),
38596
+ isActive: z68.boolean(),
38597
+ locationType: z68.union([
38598
+ z68.literal("virtual"),
38599
+ z68.literal("in_person"),
38600
+ z68.literal("hybrid")
38328
38601
  ]),
38329
38602
  venue: appointmentSetupVenueChoiceSchema,
38330
- timezone: z67.string().trim().min(1).nullable(),
38603
+ timezone: z68.string().trim().min(1).nullable(),
38331
38604
  payment: appointmentSetupPaymentDraftSchema,
38332
38605
  assignment: appointmentSetupServiceAssignmentDraftSchema
38333
38606
  }).superRefine((service, ctx) => {
@@ -38346,49 +38619,49 @@ var appointmentSetupServiceDraftSchema = z67.object({
38346
38619
  });
38347
38620
  }
38348
38621
  });
38349
- var appointmentSetupPractitionerDraftSchema = z67.object({
38622
+ var appointmentSetupPractitionerDraftSchema = z68.object({
38350
38623
  ref: appointmentSetupRefSchema,
38351
- displayName: z67.string().trim().min(1),
38352
- bio: z67.string().nullable(),
38353
- timezone: z67.string().trim().min(1),
38354
- colorHex: z67.string().nullable()
38355
- });
38356
- var appointmentSetupWeeklyWindowDraftSchema = z67.object({
38357
- weekday: z67.number().int().min(0).max(6),
38358
- startTime: z67.string(),
38359
- endTime: z67.string()
38360
- });
38361
- var appointmentSetupStartTimePolicyDraftSchema = z67.discriminatedUnion("kind", [
38362
- z67.object({ kind: z67.literal("automatic_spacing") }),
38363
- z67.object({
38364
- kind: z67.literal("regular_interval"),
38365
- intervalMinutes: z67.union([
38366
- z67.literal(10),
38367
- z67.literal(15),
38368
- z67.literal(20),
38369
- z67.literal(30),
38370
- z67.literal(45),
38371
- z67.literal(60)
38624
+ displayName: z68.string().trim().min(1),
38625
+ bio: z68.string().nullable(),
38626
+ timezone: z68.string().trim().min(1),
38627
+ colorHex: z68.string().nullable()
38628
+ });
38629
+ var appointmentSetupWeeklyWindowDraftSchema = z68.object({
38630
+ weekday: z68.number().int().min(0).max(6),
38631
+ startTime: z68.string(),
38632
+ endTime: z68.string()
38633
+ });
38634
+ var appointmentSetupStartTimePolicyDraftSchema = z68.discriminatedUnion("kind", [
38635
+ z68.object({ kind: z68.literal("automatic_spacing") }),
38636
+ z68.object({
38637
+ kind: z68.literal("regular_interval"),
38638
+ intervalMinutes: z68.union([
38639
+ z68.literal(10),
38640
+ z68.literal(15),
38641
+ z68.literal(20),
38642
+ z68.literal(30),
38643
+ z68.literal(45),
38644
+ z68.literal(60)
38372
38645
  ])
38373
38646
  })
38374
38647
  ]);
38375
- var appointmentSetupAvailabilityDraftSchema = z67.object({
38376
- kind: z67.literal("weekly_windows"),
38648
+ var appointmentSetupAvailabilityDraftSchema = z68.object({
38649
+ kind: z68.literal("weekly_windows"),
38377
38650
  resourceRef: appointmentSetupRefSchema,
38378
38651
  serviceRef: appointmentSetupRefSchema.nullable(),
38379
- windows: z67.array(appointmentSetupWeeklyWindowDraftSchema),
38652
+ windows: z68.array(appointmentSetupWeeklyWindowDraftSchema),
38380
38653
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
38381
38654
  });
38382
38655
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
38383
38656
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
38384
- var appointmentSetupBookingNoticeSchema = z67.object({
38385
- minLeadMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38386
- maxBookingNoticeMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38387
- });
38388
- var applyAppointmentSetupRequestSchema = z67.object({
38389
- services: z67.array(appointmentSetupServiceDraftSchema),
38390
- practitioners: z67.array(appointmentSetupPractitionerDraftSchema),
38391
- availability: z67.array(appointmentSetupAvailabilityDraftSchema),
38657
+ var appointmentSetupBookingNoticeSchema = z68.object({
38658
+ minLeadMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38659
+ maxBookingNoticeMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38660
+ });
38661
+ var applyAppointmentSetupRequestSchema = z68.object({
38662
+ services: z68.array(appointmentSetupServiceDraftSchema),
38663
+ practitioners: z68.array(appointmentSetupPractitionerDraftSchema),
38664
+ availability: z68.array(appointmentSetupAvailabilityDraftSchema),
38392
38665
  bookingNotice: appointmentSetupBookingNoticeSchema
38393
38666
  });
38394
38667
 
@@ -38421,24 +38694,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
38421
38694
  ];
38422
38695
 
38423
38696
  // ../api/src/siteBanner.ts
38424
- import { z as z68 } from "zod";
38697
+ import { z as z69 } from "zod";
38425
38698
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
38426
38699
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
38427
38700
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
38428
38701
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
38429
- var siteBannerScopeSchema = z68.enum(SITE_BANNER_SCOPE_VALUES);
38430
- var siteBannerToneSchema = z68.enum(SITE_BANNER_TONE_VALUES);
38431
- var siteBannerBodySchema = z68.unknown().transform(unwrapRichTextValue);
38432
- var siteBannerCtaSchema = z68.object({
38433
- label: z68.string().trim().min(1),
38702
+ var siteBannerScopeSchema = z69.enum(SITE_BANNER_SCOPE_VALUES);
38703
+ var siteBannerToneSchema = z69.enum(SITE_BANNER_TONE_VALUES);
38704
+ var siteBannerBodySchema = z69.unknown().transform(unwrapRichTextValue);
38705
+ var siteBannerCtaSchema = z69.object({
38706
+ label: z69.string().trim().min(1),
38434
38707
  link: linkPayloadSchema
38435
38708
  });
38436
- var siteBannerSettingsSchema = z68.discriminatedUnion("enabled", [
38437
- z68.object({
38438
- enabled: z68.literal(false)
38709
+ var siteBannerSettingsSchema = z69.discriminatedUnion("enabled", [
38710
+ z69.object({
38711
+ enabled: z69.literal(false)
38439
38712
  }),
38440
- z68.object({
38441
- enabled: z68.literal(true),
38713
+ z69.object({
38714
+ enabled: z69.literal(true),
38442
38715
  scope: siteBannerScopeSchema,
38443
38716
  tone: siteBannerToneSchema,
38444
38717
  body: siteBannerBodySchema,
@@ -38452,7 +38725,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
38452
38725
  const analysis = analyzeSiteBannerBody(value.body);
38453
38726
  for (const issue of analysis.issues) {
38454
38727
  ctx.addIssue({
38455
- code: z68.ZodIssueCode.custom,
38728
+ code: z69.ZodIssueCode.custom,
38456
38729
  path: ["body"],
38457
38730
  message: siteBannerBodyIssueMessage(issue)
38458
38731
  });
@@ -38759,75 +39032,75 @@ function unsafeAsNavigationMenuIdentifier(identifier) {
38759
39032
  var MAIN_NAVIGATION_MENU_IDENTIFIER = unsafeAsNavigationMenuIdentifier("main");
38760
39033
 
38761
39034
  // ../api/src/aiPlayground.ts
38762
- import { z as z69 } from "zod";
38763
- var Rfc6902PatchOp = z69.discriminatedUnion("op", [
39035
+ import { z as z70 } from "zod";
39036
+ var Rfc6902PatchOp = z70.discriminatedUnion("op", [
38764
39037
  // Standard RFC-6902 operations
38765
- z69.object({
38766
- op: z69.literal("add"),
38767
- path: z69.string(),
38768
- value: z69.unknown()
39038
+ z70.object({
39039
+ op: z70.literal("add"),
39040
+ path: z70.string(),
39041
+ value: z70.unknown()
38769
39042
  }),
38770
- z69.object({
38771
- op: z69.literal("remove"),
38772
- path: z69.string()
39043
+ z70.object({
39044
+ op: z70.literal("remove"),
39045
+ path: z70.string()
38773
39046
  }),
38774
- z69.object({
38775
- op: z69.literal("replace"),
38776
- path: z69.string(),
38777
- value: z69.unknown()
39047
+ z70.object({
39048
+ op: z70.literal("replace"),
39049
+ path: z70.string(),
39050
+ value: z70.unknown()
38778
39051
  }),
38779
- z69.object({
38780
- op: z69.literal("move"),
38781
- from: z69.string(),
38782
- path: z69.string()
39052
+ z70.object({
39053
+ op: z70.literal("move"),
39054
+ from: z70.string(),
39055
+ path: z70.string()
38783
39056
  }),
38784
- z69.object({
38785
- op: z69.literal("copy"),
38786
- from: z69.string(),
38787
- path: z69.string()
39057
+ z70.object({
39058
+ op: z70.literal("copy"),
39059
+ from: z70.string(),
39060
+ path: z70.string()
38788
39061
  }),
38789
39062
  // Block-level operations (Phase 2)
38790
- z69.object({
38791
- op: z69.literal("add_block"),
38792
- blockKind: z69.string(),
38793
- afterBlockId: z69.string().nullable(),
38794
- content: z69.record(z69.string(), z69.unknown()),
38795
- rationale: z69.string()
39063
+ z70.object({
39064
+ op: z70.literal("add_block"),
39065
+ blockKind: z70.string(),
39066
+ afterBlockId: z70.string().nullable(),
39067
+ content: z70.record(z70.string(), z70.unknown()),
39068
+ rationale: z70.string()
38796
39069
  }),
38797
- z69.object({
38798
- op: z69.literal("delete_block"),
38799
- blockId: z69.string(),
38800
- rationale: z69.string()
39070
+ z70.object({
39071
+ op: z70.literal("delete_block"),
39072
+ blockId: z70.string(),
39073
+ rationale: z70.string()
38801
39074
  }),
38802
- z69.object({
38803
- op: z69.literal("reorder_block"),
38804
- blockId: z69.string(),
38805
- afterBlockId: z69.string().nullable(),
38806
- rationale: z69.string()
39075
+ z70.object({
39076
+ op: z70.literal("reorder_block"),
39077
+ blockId: z70.string(),
39078
+ afterBlockId: z70.string().nullable(),
39079
+ rationale: z70.string()
38807
39080
  })
38808
39081
  ]);
38809
- var PlaygroundProposeRequest = z69.object({
38810
- request: z69.string().min(1).max(2e3)
39082
+ var PlaygroundProposeRequest = z70.object({
39083
+ request: z70.string().min(1).max(2e3)
38811
39084
  });
38812
- var MultiPagePatchEnvelope = z69.object({
38813
- pageId: z69.string(),
38814
- blockId: z69.string().optional(),
39085
+ var MultiPagePatchEnvelope = z70.object({
39086
+ pageId: z70.string(),
39087
+ blockId: z70.string().optional(),
38815
39088
  // Not present for page-level ops
38816
- blockKind: z69.string().optional(),
38817
- blockPurpose: z69.string().optional().nullable(),
38818
- ops: z69.array(Rfc6902PatchOp),
38819
- rationale: z69.string(),
38820
- currentContent: z69.record(z69.string(), z69.unknown()).optional()
39089
+ blockKind: z70.string().optional(),
39090
+ blockPurpose: z70.string().optional().nullable(),
39091
+ ops: z70.array(Rfc6902PatchOp),
39092
+ rationale: z70.string(),
39093
+ currentContent: z70.record(z70.string(), z70.unknown()).optional()
38821
39094
  });
38822
- var MultiPageUpdateResponse = z69.object({
38823
- patches: z69.array(MultiPagePatchEnvelope),
38824
- assistantMessage: z69.string(),
38825
- pagesModified: z69.number(),
38826
- toolCallsUsed: z69.number()
39095
+ var MultiPageUpdateResponse = z70.object({
39096
+ patches: z70.array(MultiPagePatchEnvelope),
39097
+ assistantMessage: z70.string(),
39098
+ pagesModified: z70.number(),
39099
+ toolCallsUsed: z70.number()
38827
39100
  });
38828
39101
 
38829
39102
  // src/config/content-validation.ts
38830
- import { z as z70 } from "zod";
39103
+ import { z as z71 } from "zod";
38831
39104
 
38832
39105
  // src/types/block-kinds.ts
38833
39106
  var SYSTEM_BLOCK_KINDS = [
@@ -38983,36 +39256,36 @@ function describeInvalidBindingTransform(transform) {
38983
39256
  }
38984
39257
 
38985
39258
  // src/config/content-validation.ts
38986
- var jsonDataSchema = z70.record(z70.string(), z70.any());
38987
- var contentTypeKeySchema = z70.string().min(1).regex(
39259
+ var jsonDataSchema = z71.record(z71.string(), z71.any());
39260
+ var contentTypeKeySchema = z71.string().min(1).regex(
38988
39261
  /^[a-z][a-z0-9-]*$/,
38989
39262
  "Key must be lowercase, start with a letter, and contain only letters, numbers, and hyphens"
38990
39263
  );
38991
- var templateConfigSchemaForward = z70.object({
38992
- blocks: z70.array(
38993
- z70.object({
38994
- identifier: z70.string().min(1),
38995
- kind: z70.string(),
38996
- scope: z70.enum(["entry", "template"]),
38997
- bindings: z70.record(z70.string(), z70.any()).optional(),
38998
- content: z70.record(z70.string(), z70.any()).optional()
39264
+ var templateConfigSchemaForward = z71.object({
39265
+ blocks: z71.array(
39266
+ z71.object({
39267
+ identifier: z71.string().min(1),
39268
+ kind: z71.string(),
39269
+ scope: z71.enum(["entry", "template"]),
39270
+ bindings: z71.record(z71.string(), z71.any()).optional(),
39271
+ content: z71.record(z71.string(), z71.any()).optional()
38999
39272
  })
39000
39273
  )
39001
39274
  }).optional();
39002
- var contentTypeOrderingSchema = z70.object({
39003
- mode: z70.enum(["default", "manual"]).optional()
39275
+ var contentTypeOrderingSchema = z71.object({
39276
+ mode: z71.enum(["default", "manual"]).optional()
39004
39277
  }).optional();
39005
- var contentTypeConfigSchema = z70.object({
39278
+ var contentTypeConfigSchema = z71.object({
39006
39279
  key: contentTypeKeySchema,
39007
- name: z70.string().min(1),
39008
- description: z70.string().optional(),
39009
- hasPages: z70.boolean(),
39010
- routePattern: z70.string().optional(),
39280
+ name: z71.string().min(1),
39281
+ description: z71.string().optional(),
39282
+ hasPages: z71.boolean(),
39283
+ routePattern: z71.string().optional(),
39011
39284
  // Fields are validated as unknown[] here - deep field validation happens in @riverbankcms/blocks
39012
- fields: z70.array(z70.any()).min(1, "At least one field is required"),
39013
- titleField: z70.string().optional(),
39285
+ fields: z71.array(z71.any()).min(1, "At least one field is required"),
39286
+ titleField: z71.string().optional(),
39014
39287
  ordering: contentTypeOrderingSchema,
39015
- isSingleton: z70.boolean().optional().default(false),
39288
+ isSingleton: z71.boolean().optional().default(false),
39016
39289
  template: templateConfigSchemaForward
39017
39290
  }).refine(
39018
39291
  (data) => {
@@ -39034,7 +39307,7 @@ var contentTypeConfigSchema = z70.object({
39034
39307
  }
39035
39308
  if (!data.routePattern) {
39036
39309
  ctx.addIssue({
39037
- code: z70.ZodIssueCode.custom,
39310
+ code: z71.ZodIssueCode.custom,
39038
39311
  path: ["routePattern"],
39039
39312
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39040
39313
  });
@@ -39043,7 +39316,7 @@ var contentTypeConfigSchema = z70.object({
39043
39316
  const parseResult = safeParseRouteTemplate(data.routePattern);
39044
39317
  if (!parseResult.success) {
39045
39318
  ctx.addIssue({
39046
- code: z70.ZodIssueCode.custom,
39319
+ code: z71.ZodIssueCode.custom,
39047
39320
  path: ["routePattern"],
39048
39321
  message: describeRouteTemplateParseError(parseResult.error)
39049
39322
  });
@@ -39051,44 +39324,44 @@ var contentTypeConfigSchema = z70.object({
39051
39324
  }
39052
39325
  if (!data.isSingleton && parseResult.routeTemplate.kind !== "slug-template") {
39053
39326
  ctx.addIssue({
39054
- code: z70.ZodIssueCode.custom,
39327
+ code: z71.ZodIssueCode.custom,
39055
39328
  path: ["routePattern"],
39056
39329
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39057
39330
  });
39058
39331
  }
39059
39332
  });
39060
- var fieldBindingSchema = z70.object({
39061
- source: z70.literal("field"),
39062
- path: z70.string().min(1, "Field path is required")
39333
+ var fieldBindingSchema = z71.object({
39334
+ source: z71.literal("field"),
39335
+ path: z71.string().min(1, "Field path is required")
39063
39336
  });
39064
- var metaBindingSchema = z70.object({
39065
- source: z70.literal("meta"),
39066
- path: z70.enum(TEMPLATE_BINDING_META_PATHS, {
39337
+ var metaBindingSchema = z71.object({
39338
+ source: z71.literal("meta"),
39339
+ path: z71.enum(TEMPLATE_BINDING_META_PATHS, {
39067
39340
  error: (issue) => describeInvalidTemplateBindingMetaPath(String(issue.input))
39068
39341
  })
39069
39342
  });
39070
- var literalBindingSchema = z70.object({
39071
- source: z70.literal("literal"),
39072
- value: z70.unknown()
39343
+ var literalBindingSchema = z71.object({
39344
+ source: z71.literal("literal"),
39345
+ value: z71.unknown()
39073
39346
  });
39074
- var transformBindingSchema = z70.object({
39075
- source: z70.literal("transform"),
39076
- path: z70.string().min(1, "Transform path is required"),
39077
- transform: z70.enum(BINDING_TRANSFORM_VALUES, {
39347
+ var transformBindingSchema = z71.object({
39348
+ source: z71.literal("transform"),
39349
+ path: z71.string().min(1, "Transform path is required"),
39350
+ transform: z71.enum(BINDING_TRANSFORM_VALUES, {
39078
39351
  error: (issue) => describeInvalidBindingTransform(String(issue.input))
39079
39352
  })
39080
39353
  });
39081
- var baseBindingSchema = z70.discriminatedUnion("source", [
39354
+ var baseBindingSchema = z71.discriminatedUnion("source", [
39082
39355
  fieldBindingSchema,
39083
39356
  metaBindingSchema,
39084
39357
  literalBindingSchema,
39085
39358
  transformBindingSchema
39086
39359
  ]);
39087
- var fallbackBindingSchema = z70.object({
39088
- source: z70.literal("fallback"),
39089
- sources: z70.array(z70.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39360
+ var fallbackBindingSchema = z71.object({
39361
+ source: z71.literal("fallback"),
39362
+ sources: z71.array(z71.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39090
39363
  });
39091
- var bindingSourceSchema = z70.union([
39364
+ var bindingSourceSchema = z71.union([
39092
39365
  baseBindingSchema,
39093
39366
  fallbackBindingSchema
39094
39367
  ]);
@@ -39102,12 +39375,12 @@ function isValidBlockKind(kind) {
39102
39375
  return false;
39103
39376
  }
39104
39377
  var BLOCK_KIND_ERROR_MESSAGE = 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.myBlock")';
39105
- var blockKindSchema = z70.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39106
- var templateBlockConfigSchema = z70.object({
39107
- identifier: z70.string().min(1, "Block identifier is required"),
39378
+ var blockKindSchema = z71.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39379
+ var templateBlockConfigSchema = z71.object({
39380
+ identifier: z71.string().min(1, "Block identifier is required"),
39108
39381
  kind: blockKindSchema,
39109
- scope: z70.enum(["entry", "template"]),
39110
- bindings: z70.record(z70.string(), bindingSourceSchema).optional(),
39382
+ scope: z71.enum(["entry", "template"]),
39383
+ bindings: z71.record(z71.string(), bindingSourceSchema).optional(),
39111
39384
  content: jsonDataSchema.optional()
39112
39385
  }).refine(
39113
39386
  (data) => {
@@ -39126,8 +39399,8 @@ var templateBlockConfigSchema = z70.object({
39126
39399
  },
39127
39400
  { message: "Template-scoped blocks should define static content, not bindings" }
39128
39401
  );
39129
- var templateConfigSchema = z70.object({
39130
- blocks: z70.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39402
+ var templateConfigSchema = z71.object({
39403
+ blocks: z71.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39131
39404
  }).refine(
39132
39405
  (data) => {
39133
39406
  const identifiers = data.blocks.map((b) => b.identifier);
@@ -39136,77 +39409,77 @@ var templateConfigSchema = z70.object({
39136
39409
  },
39137
39410
  { message: "Template block identifiers must be unique" }
39138
39411
  );
39139
- var blockConfigSchema = z70.object({
39412
+ var blockConfigSchema = z71.object({
39140
39413
  kind: blockKindSchema,
39141
39414
  content: jsonDataSchema,
39142
- orderIndex: z70.number().optional()
39143
- });
39144
- var pageConfigSchema = z70.object({
39145
- identifier: z70.string().min(1, "Identifier is required"),
39146
- title: z70.string().min(1, "Title is required"),
39147
- path: z70.string().regex(/^\//, "Path must start with /"),
39148
- purpose: z70.string().default("content"),
39149
- blocks: z70.array(blockConfigSchema).optional(),
39150
- status: z70.enum(["draft", "published"]).default("draft"),
39151
- metaTitle: z70.string().optional(),
39152
- metaDescription: z70.string().optional()
39153
- });
39154
- var entryConfigSchema = z70.object({
39155
- identifier: z70.string().min(1, "Identifier is required"),
39156
- contentType: z70.string().min(1, "Content type is required"),
39415
+ orderIndex: z71.number().optional()
39416
+ });
39417
+ var pageConfigSchema = z71.object({
39418
+ identifier: z71.string().min(1, "Identifier is required"),
39419
+ title: z71.string().min(1, "Title is required"),
39420
+ path: z71.string().regex(/^\//, "Path must start with /"),
39421
+ purpose: z71.string().default("content"),
39422
+ blocks: z71.array(blockConfigSchema).optional(),
39423
+ status: z71.enum(["draft", "published"]).default("draft"),
39424
+ metaTitle: z71.string().optional(),
39425
+ metaDescription: z71.string().optional()
39426
+ });
39427
+ var entryConfigSchema = z71.object({
39428
+ identifier: z71.string().min(1, "Identifier is required"),
39429
+ contentType: z71.string().min(1, "Content type is required"),
39157
39430
  data: jsonDataSchema,
39158
- status: z70.enum(["draft", "published"]).default("draft"),
39159
- slug: z70.string().optional(),
39160
- summary: z70.string().optional(),
39431
+ status: z71.enum(["draft", "published"]).default("draft"),
39432
+ slug: z71.string().optional(),
39433
+ summary: z71.string().optional(),
39161
39434
  // Hard remove legacy config-only titles: titles must live in entry `data`.
39162
- title: z70.any().optional().refine((value) => value === void 0, {
39435
+ title: z71.any().optional().refine((value) => value === void 0, {
39163
39436
  message: "Entry titles are now derived from entry data. Remove `title` and move it into `data` (e.g. `data.title`, or your configured `titleField`). Run `riverbankcms migrate entries` for guided migration."
39164
39437
  }),
39165
- metaTitle: z70.string().optional(),
39166
- metaDescription: z70.string().optional()
39438
+ metaTitle: z71.string().optional(),
39439
+ metaDescription: z71.string().optional()
39167
39440
  });
39168
- var dropdownLinkSchema = z70.object({
39169
- kind: z70.literal("dropdown")
39441
+ var dropdownLinkSchema = z71.object({
39442
+ kind: z71.literal("dropdown")
39170
39443
  });
39171
- var navigationLinkSchema = z70.discriminatedUnion("kind", [
39444
+ var navigationLinkSchema = z71.discriminatedUnion("kind", [
39172
39445
  ...navigationLinkInputSchemaOptions,
39173
39446
  dropdownLinkSchema
39174
39447
  ]);
39175
- var baseNavigationItemSchema = z70.object({
39176
- label: z70.string().min(1, "Label is required"),
39448
+ var baseNavigationItemSchema = z71.object({
39449
+ label: z71.string().min(1, "Label is required"),
39177
39450
  link: navigationLinkSchema,
39178
- isCta: z70.boolean().optional()
39451
+ isCta: z71.boolean().optional()
39179
39452
  });
39180
39453
  var navigationItemConfigSchema = baseNavigationItemSchema.extend({
39181
- children: z70.lazy(() => z70.array(navigationItemConfigSchema)).optional()
39182
- });
39183
- var navigationMenuConfigSchema = z70.object({
39184
- identifier: z70.string().min(1, "Identifier is required"),
39185
- name: z70.string().min(1, "Name is required"),
39186
- isPrimary: z70.boolean().optional(),
39187
- isFooter: z70.boolean().optional(),
39188
- items: z70.array(navigationItemConfigSchema)
39454
+ children: z71.lazy(() => z71.array(navigationItemConfigSchema)).optional()
39455
+ });
39456
+ var navigationMenuConfigSchema = z71.object({
39457
+ identifier: z71.string().min(1, "Identifier is required"),
39458
+ name: z71.string().min(1, "Name is required"),
39459
+ isPrimary: z71.boolean().optional(),
39460
+ isFooter: z71.boolean().optional(),
39461
+ items: z71.array(navigationItemConfigSchema)
39189
39462
  }).superRefine((menu, ctx) => {
39190
39463
  const portalStats = collectPortalLinkStats(
39191
39464
  menu.items
39192
39465
  );
39193
39466
  if (portalStats.count > 1) {
39194
39467
  ctx.addIssue({
39195
- code: z70.ZodIssueCode.custom,
39468
+ code: z71.ZodIssueCode.custom,
39196
39469
  message: "Only one portal link is allowed per navigation menu",
39197
39470
  path: ["items"]
39198
39471
  });
39199
39472
  }
39200
39473
  if (portalStats.nestedLabels.length > 0) {
39201
39474
  ctx.addIssue({
39202
- code: z70.ZodIssueCode.custom,
39475
+ code: z71.ZodIssueCode.custom,
39203
39476
  message: `Portal links must be root-level items: ${portalStats.nestedLabels.join(", ")}`,
39204
39477
  path: ["items"]
39205
39478
  });
39206
39479
  }
39207
39480
  if (portalStats.withChildrenLabels.length > 0) {
39208
39481
  ctx.addIssue({
39209
- code: z70.ZodIssueCode.custom,
39482
+ code: z71.ZodIssueCode.custom,
39210
39483
  message: `Portal links cannot contain child items: ${portalStats.withChildrenLabels.join(", ")}`,
39211
39484
  path: ["items"]
39212
39485
  });
@@ -39216,44 +39489,44 @@ var navigationMenuConfigSchema = z70.object({
39216
39489
  );
39217
39490
  if (cartStats.nestedLabels.length > 0) {
39218
39491
  ctx.addIssue({
39219
- code: z70.ZodIssueCode.custom,
39492
+ code: z71.ZodIssueCode.custom,
39220
39493
  message: `Cart links must be root-level items: ${cartStats.nestedLabels.join(", ")}`,
39221
39494
  path: ["items"]
39222
39495
  });
39223
39496
  }
39224
39497
  if (cartStats.withChildrenLabels.length > 0) {
39225
39498
  ctx.addIssue({
39226
- code: z70.ZodIssueCode.custom,
39499
+ code: z71.ZodIssueCode.custom,
39227
39500
  message: `Cart links cannot contain child items: ${cartStats.withChildrenLabels.join(", ")}`,
39228
39501
  path: ["items"]
39229
39502
  });
39230
39503
  }
39231
39504
  if (cartStats.ctaLabels.length > 0) {
39232
39505
  ctx.addIssue({
39233
- code: z70.ZodIssueCode.custom,
39506
+ code: z71.ZodIssueCode.custom,
39234
39507
  message: `Cart links cannot be marked as CTA: ${cartStats.ctaLabels.join(", ")}`,
39235
39508
  path: ["items"]
39236
39509
  });
39237
39510
  }
39238
39511
  if (cartStats.missingVisibleTextLabels.length > 0) {
39239
39512
  ctx.addIssue({
39240
- code: z70.ZodIssueCode.custom,
39513
+ code: z71.ZodIssueCode.custom,
39241
39514
  message: `Cart links with icon-with-label must provide a visible label: ${cartStats.missingVisibleTextLabels.join(", ")}`,
39242
39515
  path: ["items"]
39243
39516
  });
39244
39517
  }
39245
39518
  });
39246
- var siteSettingsConfigSchema = z70.object({
39247
- homepagePath: z70.string().optional(),
39248
- siteTitle: z70.string().optional(),
39249
- siteDescription: z70.string().optional(),
39250
- defaultTemplates: z70.record(z70.string(), z70.string()).optional()
39519
+ var siteSettingsConfigSchema = z71.object({
39520
+ homepagePath: z71.string().optional(),
39521
+ siteTitle: z71.string().optional(),
39522
+ siteDescription: z71.string().optional(),
39523
+ defaultTemplates: z71.record(z71.string(), z71.string()).optional()
39251
39524
  });
39252
- var contentConfigBaseSchema = z70.object({
39253
- contentTypes: z70.array(contentTypeConfigSchema).optional(),
39254
- entries: z70.array(entryConfigSchema).optional(),
39255
- pages: z70.array(pageConfigSchema).optional(),
39256
- navigationMenus: z70.array(navigationMenuConfigSchema).optional(),
39525
+ var contentConfigBaseSchema = z71.object({
39526
+ contentTypes: z71.array(contentTypeConfigSchema).optional(),
39527
+ entries: z71.array(entryConfigSchema).optional(),
39528
+ pages: z71.array(pageConfigSchema).optional(),
39529
+ navigationMenus: z71.array(navigationMenuConfigSchema).optional(),
39257
39530
  settings: siteSettingsConfigSchema.optional()
39258
39531
  });
39259
39532
  var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
@@ -39262,7 +39535,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39262
39535
  const duplicateKeys = keys.filter((key, i) => keys.indexOf(key) !== i);
39263
39536
  if (duplicateKeys.length > 0) {
39264
39537
  ctx.addIssue({
39265
- code: z70.ZodIssueCode.custom,
39538
+ code: z71.ZodIssueCode.custom,
39266
39539
  message: `Content type keys must be unique. Duplicates: ${duplicateKeys.join(", ")}`,
39267
39540
  path: ["contentTypes"]
39268
39541
  });
@@ -39273,7 +39546,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39273
39546
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39274
39547
  if (duplicateIds.length > 0) {
39275
39548
  ctx.addIssue({
39276
- code: z70.ZodIssueCode.custom,
39549
+ code: z71.ZodIssueCode.custom,
39277
39550
  message: `Page identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39278
39551
  path: ["pages"]
39279
39552
  });
@@ -39282,7 +39555,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39282
39555
  const duplicatePaths = paths.filter((path, i) => paths.indexOf(path) !== i);
39283
39556
  if (duplicatePaths.length > 0) {
39284
39557
  ctx.addIssue({
39285
- code: z70.ZodIssueCode.custom,
39558
+ code: z71.ZodIssueCode.custom,
39286
39559
  message: `Page paths must be unique. Duplicates: ${duplicatePaths.join(", ")}`,
39287
39560
  path: ["pages"]
39288
39561
  });
@@ -39293,7 +39566,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39293
39566
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39294
39567
  if (duplicateIds.length > 0) {
39295
39568
  ctx.addIssue({
39296
- code: z70.ZodIssueCode.custom,
39569
+ code: z71.ZodIssueCode.custom,
39297
39570
  message: `Entry identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39298
39571
  path: ["entries"]
39299
39572
  });
@@ -39304,7 +39577,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39304
39577
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39305
39578
  if (duplicateIds.length > 0) {
39306
39579
  ctx.addIssue({
39307
- code: z70.ZodIssueCode.custom,
39580
+ code: z71.ZodIssueCode.custom,
39308
39581
  message: `Navigation menu identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39309
39582
  path: ["navigationMenus"]
39310
39583
  });
@@ -39318,7 +39591,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39318
39591
  const entriesForType = data.entries.filter((e) => e.contentType === singletonKey);
39319
39592
  if (entriesForType.length > 1) {
39320
39593
  ctx.addIssue({
39321
- code: z70.ZodIssueCode.custom,
39594
+ code: z71.ZodIssueCode.custom,
39322
39595
  message: `Singleton content type "${singletonKey}" cannot have more than one entry. Found ${entriesForType.length} entries.`,
39323
39596
  path: ["entries"]
39324
39597
  });
@@ -39431,18 +39704,18 @@ function validateLayout(layout) {
39431
39704
  }
39432
39705
 
39433
39706
  // src/config/dashboard-validation.ts
39434
- import { z as z71 } from "zod";
39435
- var navIdListSchema2 = z71.preprocess((value) => {
39707
+ import { z as z72 } from "zod";
39708
+ var navIdListSchema2 = z72.preprocess((value) => {
39436
39709
  if (!Array.isArray(value)) return void 0;
39437
39710
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
39438
39711
  return filtered.length > 0 ? filtered : void 0;
39439
- }, z71.array(z71.string()).max(200, "Maximum 200 nav IDs").optional());
39440
- var dashboardNavVisibilityBaseSchema2 = z71.object({
39441
- mode: z71.enum(["augment", "restrict"]).optional(),
39712
+ }, z72.array(z72.string()).max(200, "Maximum 200 nav IDs").optional());
39713
+ var dashboardNavVisibilityBaseSchema2 = z72.object({
39714
+ mode: z72.enum(["augment", "restrict"]).optional(),
39442
39715
  allowIds: navIdListSchema2,
39443
39716
  denyIds: navIdListSchema2
39444
39717
  }).strip();
39445
- var dashboardNavVisibilityRolesSchema2 = z71.object({
39718
+ var dashboardNavVisibilityRolesSchema2 = z72.object({
39446
39719
  administrator: dashboardNavVisibilityBaseSchema2.optional(),
39447
39720
  editor: dashboardNavVisibilityBaseSchema2.optional(),
39448
39721
  team_member: dashboardNavVisibilityBaseSchema2.optional()
@@ -39450,43 +39723,28 @@ var dashboardNavVisibilityRolesSchema2 = z71.object({
39450
39723
  var dashboardNavVisibilitySchema2 = dashboardNavVisibilityBaseSchema2.extend({
39451
39724
  roles: dashboardNavVisibilityRolesSchema2
39452
39725
  }).strip();
39453
- var dashboardNavigationConfigSchema2 = z71.object({
39726
+ var dashboardNavigationConfigSchema2 = z72.object({
39454
39727
  siteNav: dashboardNavVisibilitySchema2.optional(),
39455
39728
  settingsNav: dashboardNavVisibilitySchema2.optional()
39456
39729
  }).strip();
39457
- var dashboardConfigSchema2 = z71.object({
39458
- previewEditingEnabled: z71.boolean().optional(),
39730
+ var dashboardConfigSchema2 = z72.object({
39731
+ previewEditingEnabled: z72.boolean().optional(),
39459
39732
  navigation: dashboardNavigationConfigSchema2.optional()
39460
39733
  }).strip();
39461
39734
 
39462
39735
  // src/zod/titleSourceSchema.ts
39463
- import { z as z72 } from "zod";
39464
- var titleSourceValueSchema = z72.union([
39465
- z72.string().min(1),
39466
- z72.array(z72.string().min(1)).min(1)
39736
+ import { z as z73 } from "zod";
39737
+ var titleSourceValueSchema = z73.union([
39738
+ z73.string().min(1),
39739
+ z73.array(z73.string().min(1)).min(1)
39467
39740
  ]);
39468
39741
 
39469
- // src/data/prefetchBlockData.ts
39470
- var SUPPORTED_LOADER_ENDPOINTS2 = [
39471
- "listPublishedEntries",
39472
- "getPublishedEntryPreview",
39473
- "listPublicEvents",
39474
- "listPublicCourses",
39475
- "listPublicTeamMembers",
39476
- "listPublicProducts",
39477
- "listPublicPasses",
39478
- "listPublicMemberships",
39479
- "getPublicFormById",
39480
- "getPublicBookingServices",
39481
- "getPublicEventDetails"
39482
- ];
39483
-
39484
39742
  // src/config/validation.ts
39485
- var sdkThemePaletteSchema2 = z73.record(z73.string(), z73.string());
39486
- var sdkThemeConfigSchema2 = z73.object({
39743
+ var sdkThemePaletteSchema2 = z74.record(z74.string(), z74.string());
39744
+ var sdkThemeConfigSchema2 = z74.object({
39487
39745
  palette: sdkThemePaletteSchema2
39488
39746
  });
39489
- var sdkSiteUrlSchema = z73.string().url("Must be a valid URL").refine((url) => {
39747
+ var sdkSiteUrlSchema = z74.string().url("Must be a valid URL").refine((url) => {
39490
39748
  try {
39491
39749
  const parsed = new URL(url);
39492
39750
  const isLocal = parsed.hostname === "localhost" || parsed.hostname.endsWith(".localhost") || parsed.hostname.endsWith(".local") || parsed.hostname.endsWith(".test");
@@ -39495,97 +39753,97 @@ var sdkSiteUrlSchema = z73.string().url("Must be a valid URL").refine((url) => {
39495
39753
  return false;
39496
39754
  }
39497
39755
  }, { message: "Production URLs must use HTTPS" }).transform((url) => url.replace(/\/$/, ""));
39498
- var sectionBackgroundSchema = z73.object({
39499
- id: z73.string(),
39500
- label: z73.string(),
39501
- token: z73.string()
39756
+ var sectionBackgroundSchema = z74.object({
39757
+ id: z74.string(),
39758
+ label: z74.string(),
39759
+ token: z74.string()
39502
39760
  // Reference to theme palette token
39503
39761
  });
39504
- var sectionSpacingSchema = z73.enum(["compact", "default", "spacious"]);
39505
- var containerMaxWidthSchema = z73.enum(["narrow", "default", "wide", "full"]);
39506
- var containerAlignmentSchema = z73.enum(["left", "center", "right"]);
39507
- var sectionOptionsSchema = z73.object({
39508
- backgroundColor: z73.boolean().optional(),
39509
- backgroundImage: z73.boolean().optional(),
39510
- backgroundGradient: z73.boolean().optional(),
39511
- spacing: z73.union([
39512
- z73.array(sectionSpacingSchema),
39513
- z73.boolean()
39762
+ var sectionSpacingSchema = z74.enum(["compact", "default", "spacious"]);
39763
+ var containerMaxWidthSchema = z74.enum(["narrow", "default", "wide", "full"]);
39764
+ var containerAlignmentSchema = z74.enum(["left", "center", "right"]);
39765
+ var sectionOptionsSchema = z74.object({
39766
+ backgroundColor: z74.boolean().optional(),
39767
+ backgroundImage: z74.boolean().optional(),
39768
+ backgroundGradient: z74.boolean().optional(),
39769
+ spacing: z74.union([
39770
+ z74.array(sectionSpacingSchema),
39771
+ z74.boolean()
39514
39772
  ]).optional(),
39515
- textColor: z73.boolean().optional()
39773
+ textColor: z74.boolean().optional()
39516
39774
  }).optional();
39517
- var containerOptionsSchema = z73.object({
39518
- maxWidth: z73.union([
39519
- z73.array(containerMaxWidthSchema),
39520
- z73.boolean()
39775
+ var containerOptionsSchema = z74.object({
39776
+ maxWidth: z74.union([
39777
+ z74.array(containerMaxWidthSchema),
39778
+ z74.boolean()
39521
39779
  ]).optional(),
39522
- alignment: z73.union([
39523
- z73.array(containerAlignmentSchema),
39524
- z73.boolean()
39780
+ alignment: z74.union([
39781
+ z74.array(containerAlignmentSchema),
39782
+ z74.boolean()
39525
39783
  ]).optional()
39526
39784
  }).optional();
39527
- var siteStyleConfigSchema = z73.object({
39528
- sectionBackgrounds: z73.array(sectionBackgroundSchema).optional(),
39785
+ var siteStyleConfigSchema = z74.object({
39786
+ sectionBackgrounds: z74.array(sectionBackgroundSchema).optional(),
39529
39787
  sectionOptions: sectionOptionsSchema,
39530
39788
  containerOptions: containerOptionsSchema
39531
39789
  }).optional();
39532
- var sdkLoaderEndpointSchema2 = z73.enum(SUPPORTED_LOADER_ENDPOINTS2);
39790
+ var sdkLoaderEndpointSchema2 = z74.enum(SUPPORTED_LOADER_ENDPOINTS);
39533
39791
  var allowedTransformIds = new Set(builtinTransformDefinitions.map((transform) => transform.id));
39534
- var loaderTransformStepSchema = z73.object({
39535
- id: z73.string().refine((id) => allowedTransformIds.has(id), {
39792
+ var loaderTransformStepSchema = z74.object({
39793
+ id: z74.string().refine((id) => allowedTransformIds.has(id), {
39536
39794
  message: "Unknown transform id"
39537
39795
  }),
39538
- options: z73.record(z73.string(), z73.unknown()).optional()
39796
+ options: z74.record(z74.string(), z74.unknown()).optional()
39539
39797
  });
39540
- var loaderParamBindingSchema2 = z73.object({
39541
- $bind: z73.object({
39542
- from: z73.string().min(1, "Binding path is required"),
39798
+ var loaderParamBindingSchema2 = z74.object({
39799
+ $bind: z74.object({
39800
+ from: z74.string().min(1, "Binding path is required"),
39543
39801
  // Loader params are ultimately string-normalized for query strings, so fallbacks should
39544
39802
  // stay scalar. Use transforms (e.g. `value.jsonArray`) when you need to serialize
39545
39803
  // more complex values into a string.
39546
39804
  fallback: loaderFallbackScalarSchema.optional(),
39547
- transforms: z73.array(loaderTransformStepSchema).default([]),
39548
- pick: z73.enum(["value", "collection", "context"]).default("value"),
39549
- coerce: z73.enum(["number", "boolean", "string"]).optional()
39805
+ transforms: z74.array(loaderTransformStepSchema).default([]),
39806
+ pick: z74.enum(["value", "collection", "context"]).default("value"),
39807
+ coerce: z74.enum(["number", "boolean", "string"]).optional()
39550
39808
  })
39551
39809
  });
39552
- var loaderParamValueSchema2 = z73.union([
39553
- z73.string(),
39554
- z73.number(),
39555
- z73.boolean(),
39810
+ var loaderParamValueSchema2 = z74.union([
39811
+ z74.string(),
39812
+ z74.number(),
39813
+ z74.boolean(),
39556
39814
  loaderParamBindingSchema2
39557
39815
  ]);
39558
- var loaderWhenValueSchema = z73.union([
39559
- z73.boolean(),
39816
+ var loaderWhenValueSchema = z74.union([
39817
+ z74.boolean(),
39560
39818
  loaderParamBindingSchema2
39561
39819
  ]);
39562
- var sdkConfigLoaderSchema2 = z73.object({
39820
+ var sdkConfigLoaderSchema2 = z74.object({
39563
39821
  endpoint: sdkLoaderEndpointSchema2,
39564
- params: z73.record(z73.string(), loaderParamValueSchema2),
39565
- mode: z73.enum(["server", "client"]).default("server"),
39822
+ params: z74.record(z74.string(), loaderParamValueSchema2),
39823
+ mode: z74.enum(["server", "client"]).default("server"),
39566
39824
  when: loaderWhenValueSchema.optional()
39567
39825
  });
39568
- var sdkDataLoadersSchema2 = z73.record(z73.string(), sdkConfigLoaderSchema2).refine(
39826
+ var sdkDataLoadersSchema2 = z74.record(z74.string(), sdkConfigLoaderSchema2).refine(
39569
39827
  (loaders) => Object.keys(loaders).length <= 5,
39570
39828
  { message: "Maximum 5 data loaders per block" }
39571
39829
  ).optional();
39572
- var fieldSelectOptionSchema = z73.object({
39573
- value: z73.string().min(1, "Option value is required"),
39574
- label: z73.string().min(1, "Option label is required")
39830
+ var fieldSelectOptionSchema = z74.object({
39831
+ value: z74.string().min(1, "Option value is required"),
39832
+ label: z74.string().min(1, "Option label is required")
39575
39833
  });
39576
- var blockFieldConfigSchema = z73.object({
39577
- options: z73.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
39834
+ var blockFieldConfigSchema = z74.object({
39835
+ options: z74.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
39578
39836
  });
39579
- var blockFieldOptionsSchema = z73.record(
39580
- z73.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
39837
+ var blockFieldOptionsSchema = z74.record(
39838
+ z74.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
39581
39839
  message: "Block ID must be 'block.*' or 'custom.*' format"
39582
39840
  }),
39583
- z73.record(
39584
- z73.string().min(1, "Field ID is required"),
39841
+ z74.record(
39842
+ z74.string().min(1, "Field ID is required"),
39585
39843
  blockFieldConfigSchema
39586
39844
  )
39587
39845
  ).optional();
39588
- var blockFieldExtensionSchema = z73.object({
39846
+ var blockFieldExtensionSchema = z74.object({
39589
39847
  fields: fieldSchema.array().min(1, "At least one field is required")
39590
39848
  }).refine(
39591
39849
  (data) => {
@@ -39599,10 +39857,10 @@ var blockFieldExtensionSchema = z73.object({
39599
39857
  message: "Required fields must have a defaultValue to support existing blocks"
39600
39858
  }
39601
39859
  );
39602
- var blockFieldExtensionsMapSchema = z73.record(
39860
+ var blockFieldExtensionsMapSchema = z74.record(
39603
39861
  // System blocks are kebab-case: block.body-text, block.event-calendar, ...
39604
39862
  // Enforce: lowercase alphanumerics with single hyphens (no trailing hyphen, no consecutive hyphens).
39605
- z73.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
39863
+ z74.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
39606
39864
  message: "Block ID must be 'block.*' format (system blocks only)"
39607
39865
  }),
39608
39866
  blockFieldExtensionSchema
@@ -39618,7 +39876,7 @@ var blockFieldExtensionsMapSchema = z73.record(
39618
39876
  (field) => field.id === collision.fieldId
39619
39877
  );
39620
39878
  ctx.addIssue({
39621
- code: z73.ZodIssueCode.custom,
39879
+ code: z74.ZodIssueCode.custom,
39622
39880
  message: collision.message,
39623
39881
  path: [
39624
39882
  APPOINTMENT_BOOKING_BLOCK_ID,
@@ -39684,24 +39942,24 @@ function validateFieldIdConflicts(blockFieldExtensions) {
39684
39942
  }
39685
39943
  return conflicts;
39686
39944
  }
39687
- var syncConfigSchema = z73.object({
39688
- existingEntries: z73.enum(["skip", "update"]).optional()
39945
+ var syncConfigSchema = z74.object({
39946
+ existingEntries: z74.enum(["skip", "update"]).optional()
39689
39947
  }).optional();
39690
- var deployConfigSchema = z73.object({
39691
- verifyCommand: z73.string().optional(),
39692
- prebuildOutput: z73.string().optional()
39948
+ var deployConfigSchema = z74.object({
39949
+ verifyCommand: z74.string().optional(),
39950
+ prebuildOutput: z74.string().optional()
39693
39951
  }).optional();
39694
- var sdkCustomBlockSchema = z73.object({
39952
+ var sdkCustomBlockSchema = z74.object({
39695
39953
  // Block ID must start with 'custom.'
39696
- id: z73.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
39954
+ id: z74.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
39697
39955
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
39698
39956
  }),
39699
- title: z73.string().min(1, "Title is required"),
39957
+ title: z74.string().min(1, "Title is required"),
39700
39958
  titleSource: titleSourceValueSchema.optional(),
39701
- description: z73.string().optional(),
39959
+ description: z74.string().optional(),
39702
39960
  category: blockCategoryEnum,
39703
- icon: z73.string().optional(),
39704
- tags: z73.array(z73.string()).optional(),
39961
+ icon: z74.string().optional(),
39962
+ tags: z74.array(z74.string()).optional(),
39705
39963
  // Reuse the exact field schema from @riverbankcms/blocks - all field types supported
39706
39964
  fields: fieldSchema.array().min(1, "Custom blocks must have at least one field"),
39707
39965
  // Data loaders for CMS endpoints
@@ -39709,14 +39967,14 @@ var sdkCustomBlockSchema = z73.object({
39709
39967
  // Optional declarative layout - when present, block can render without React override
39710
39968
  layout: NodeSchema.optional(),
39711
39969
  // Optional variants system (preferred when a block has multiple structural layouts)
39712
- variants: z73.record(z73.string().min(1), NodeSchema).optional(),
39713
- defaultVariant: z73.string().min(1).optional(),
39714
- variantOptions: z73.record(
39715
- z73.string().min(1),
39716
- z73.object({
39717
- label: z73.string().min(1).optional(),
39718
- description: z73.string().min(1).optional(),
39719
- icon: z73.string().min(1).optional()
39970
+ variants: z74.record(z74.string().min(1), NodeSchema).optional(),
39971
+ defaultVariant: z74.string().min(1).optional(),
39972
+ variantOptions: z74.record(
39973
+ z74.string().min(1),
39974
+ z74.object({
39975
+ label: z74.string().min(1).optional(),
39976
+ description: z74.string().min(1).optional(),
39977
+ icon: z74.string().min(1).optional()
39720
39978
  })
39721
39979
  ).optional(),
39722
39980
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -39728,7 +39986,7 @@ var sdkCustomBlockSchema = z73.object({
39728
39986
  const exists = fields3.some((field) => field.id === source);
39729
39987
  if (!exists) {
39730
39988
  ctx.addIssue({
39731
- code: z73.ZodIssueCode.custom,
39989
+ code: z74.ZodIssueCode.custom,
39732
39990
  message: `titleSource must reference a valid field ID (got "${source}")`,
39733
39991
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
39734
39992
  });
@@ -39737,7 +39995,7 @@ var sdkCustomBlockSchema = z73.object({
39737
39995
  }
39738
39996
  if (data.layout && data.variants) {
39739
39997
  ctx.addIssue({
39740
- code: z73.ZodIssueCode.custom,
39998
+ code: z74.ZodIssueCode.custom,
39741
39999
  message: "Custom block must define either `layout` or `variants`, not both",
39742
40000
  path: ["variants"]
39743
40001
  });
@@ -39747,7 +40005,7 @@ var sdkCustomBlockSchema = z73.object({
39747
40005
  if (!result.valid) {
39748
40006
  for (const error of result.errors) {
39749
40007
  ctx.addIssue({
39750
- code: z73.ZodIssueCode.custom,
40008
+ code: z74.ZodIssueCode.custom,
39751
40009
  message: error.message,
39752
40010
  path: ["layout"]
39753
40011
  });
@@ -39758,14 +40016,14 @@ var sdkCustomBlockSchema = z73.object({
39758
40016
  const keys = Object.keys(data.variants);
39759
40017
  if (keys.length === 0) {
39760
40018
  ctx.addIssue({
39761
- code: z73.ZodIssueCode.custom,
40019
+ code: z74.ZodIssueCode.custom,
39762
40020
  message: "`variants` must contain at least one variant key",
39763
40021
  path: ["variants"]
39764
40022
  });
39765
40023
  }
39766
40024
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
39767
40025
  ctx.addIssue({
39768
- code: z73.ZodIssueCode.custom,
40026
+ code: z74.ZodIssueCode.custom,
39769
40027
  message: "`defaultVariant` must be a key present in `variants`",
39770
40028
  path: ["defaultVariant"]
39771
40029
  });
@@ -39775,7 +40033,7 @@ var sdkCustomBlockSchema = z73.object({
39775
40033
  if (!result.valid) {
39776
40034
  for (const error of result.errors) {
39777
40035
  ctx.addIssue({
39778
- code: z73.ZodIssueCode.custom,
40036
+ code: z74.ZodIssueCode.custom,
39779
40037
  message: `${key}: ${error.message}`,
39780
40038
  path: ["variants", key]
39781
40039
  });
@@ -39786,7 +40044,7 @@ var sdkCustomBlockSchema = z73.object({
39786
40044
  for (const key of Object.keys(data.variantOptions)) {
39787
40045
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
39788
40046
  ctx.addIssue({
39789
- code: z73.ZodIssueCode.custom,
40047
+ code: z74.ZodIssueCode.custom,
39790
40048
  message: "`variantOptions` key must exist in `variants`",
39791
40049
  path: ["variantOptions", key]
39792
40050
  });
@@ -39795,58 +40053,58 @@ var sdkCustomBlockSchema = z73.object({
39795
40053
  }
39796
40054
  }
39797
40055
  });
39798
- var themeSourceSchema = z73.enum(["local", "cms"]).optional();
39799
- var activeThemeSchema = z73.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
40056
+ var themeSourceSchema = z74.enum(["local", "cms"]).optional();
40057
+ var activeThemeSchema = z74.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
39800
40058
  message: "Theme name must be lowercase alphanumeric with hyphens/underscores"
39801
40059
  }).max(64, "Theme name too long").optional();
39802
40060
  function isValidConfigBlockKind(kind) {
39803
40061
  if (getBlockDefinition(kind)) return true;
39804
40062
  return /^custom\.[a-z][a-z0-9-]*$/.test(kind);
39805
40063
  }
39806
- var layoutBlockKindSchema = z73.string().refine(isValidConfigBlockKind, {
40064
+ var layoutBlockKindSchema = z74.string().refine(isValidConfigBlockKind, {
39807
40065
  message: 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.my-block")'
39808
40066
  });
39809
- var layoutFooterBlockSchema = z73.object({
39810
- id: z73.string().min(1).optional(),
40067
+ var layoutFooterBlockSchema = z74.object({
40068
+ id: z74.string().min(1).optional(),
39811
40069
  kind: layoutBlockKindSchema,
39812
40070
  // Allow omitted content for blocks that rely on defaults.
39813
- content: z73.record(z73.string(), z73.unknown()).optional()
40071
+ content: z74.record(z74.string(), z74.unknown()).optional()
39814
40072
  }).strict();
39815
- var layoutConfigSchema = z73.object({
39816
- footerBlocks: z73.array(layoutFooterBlockSchema).optional()
40073
+ var layoutConfigSchema = z74.object({
40074
+ footerBlocks: z74.array(layoutFooterBlockSchema).optional()
39817
40075
  }).strict();
39818
- var sdkWorkflowIdSchema2 = z73.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
40076
+ var sdkWorkflowIdSchema2 = z74.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
39819
40077
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
39820
40078
  });
39821
- var sdkWorkflowEndpointSchema2 = z73.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
39822
- var sdkWorkflowTriggerSchema2 = z73.discriminatedUnion("type", [
39823
- z73.object({ type: z73.literal("manual") }).strict()
40079
+ var sdkWorkflowEndpointSchema2 = z74.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
40080
+ var sdkWorkflowTriggerSchema2 = z74.discriminatedUnion("type", [
40081
+ z74.object({ type: z74.literal("manual") }).strict()
39824
40082
  ]);
39825
- var sdkWorkflowConfirmationSchema2 = z73.object({
39826
- title: z73.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
39827
- body: z73.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
40083
+ var sdkWorkflowConfirmationSchema2 = z74.object({
40084
+ title: z74.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
40085
+ body: z74.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
39828
40086
  }).strict();
39829
- var sdkWorkflowConfigSchema2 = z73.object({
40087
+ var sdkWorkflowConfigSchema2 = z74.object({
39830
40088
  id: sdkWorkflowIdSchema2,
39831
- title: z73.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
39832
- description: z73.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
39833
- contentType: z73.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
40089
+ title: z74.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
40090
+ description: z74.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
40091
+ contentType: z74.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
39834
40092
  endpoint: sdkWorkflowEndpointSchema2,
39835
- triggers: z73.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
40093
+ triggers: z74.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
39836
40094
  confirmation: sdkWorkflowConfirmationSchema2.optional()
39837
40095
  }).strict();
39838
- var sdkWorkflowsSchema2 = z73.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
40096
+ var sdkWorkflowsSchema2 = z74.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
39839
40097
  const ids = workflows.map((workflow) => workflow.id);
39840
40098
  return ids.length === new Set(ids).size;
39841
40099
  }, { message: "Workflow IDs must be unique" }).optional();
39842
- var riverbankSiteConfigSchema = z73.object({
39843
- siteId: z73.string().uuid(),
40100
+ var riverbankSiteConfigSchema = z74.object({
40101
+ siteId: z74.string().uuid(),
39844
40102
  previewUrl: sdkSiteUrlSchema.optional(),
39845
40103
  liveUrl: sdkSiteUrlSchema.optional(),
39846
40104
  theme: sdkThemeConfigSchema2.optional(),
39847
40105
  styles: siteStyleConfigSchema,
39848
40106
  layout: layoutConfigSchema.optional(),
39849
- customBlocks: z73.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
40107
+ customBlocks: z74.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
39850
40108
  // Ensure unique block IDs
39851
40109
  (blocks) => {
39852
40110
  const ids = blocks.map((b) => b.id);
@@ -39859,7 +40117,7 @@ var riverbankSiteConfigSchema = z73.object({
39859
40117
  workflows: sdkWorkflowsSchema2,
39860
40118
  content: contentConfigSchema.optional(),
39861
40119
  // CLI-related configuration (Phase 4)
39862
- contentDir: z73.string().optional(),
40120
+ contentDir: z74.string().optional(),
39863
40121
  sync: syncConfigSchema,
39864
40122
  deploy: deployConfigSchema,
39865
40123
  // Theme sync configuration (Phase 5)