@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
@@ -44,7 +44,7 @@ function fallbackBinding(...sources) {
44
44
  }
45
45
 
46
46
  // src/config/validation.ts
47
- import { z as z73 } from "zod";
47
+ import { z as z74 } from "zod";
48
48
 
49
49
  // ../api/src/apiEndpointTypes.ts
50
50
  function blockedDemoMutationPolicy(classification, publicMessage) {
@@ -799,6 +799,64 @@ var ENDPOINT_DEFINITIONS = {
799
799
  auth: "user",
800
800
  responseKind: "json"
801
801
  },
802
+ listMailchimpAudiences: {
803
+ path: "/sites/{siteId}/integrations/mailchimp/audiences",
804
+ method: "GET",
805
+ tags: [TAG_TEMPLATES.site],
806
+ auth: "user",
807
+ responseKind: "json",
808
+ errors: ["auth:forbidden", "server:internal_error"]
809
+ },
810
+ getMailchimpSignupSyncHealth: {
811
+ path: "/sites/{siteId}/integrations/mailchimp/signup-sync-health",
812
+ method: "GET",
813
+ tags: [TAG_TEMPLATES.site],
814
+ auth: "user",
815
+ responseKind: "json",
816
+ errors: ["auth:forbidden", "server:internal_error"]
817
+ },
818
+ getMailchimpConnection: {
819
+ path: "/sites/{siteId}/integrations/mailchimp/connection",
820
+ method: "GET",
821
+ tags: [TAG_TEMPLATES.site],
822
+ auth: "user",
823
+ responseKind: "json",
824
+ errors: ["auth:forbidden", "server:internal_error"]
825
+ },
826
+ startMailchimpOAuth: {
827
+ path: "/sites/{siteId}/integrations/mailchimp/oauth/start",
828
+ method: "POST",
829
+ tags: [TAG_TEMPLATES.site],
830
+ auth: "user",
831
+ responseKind: "json",
832
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
833
+ errors: ["auth:forbidden", "validation:invalid_input", "server:internal_error"]
834
+ },
835
+ refreshMailchimpAudiences: {
836
+ path: "/sites/{siteId}/integrations/mailchimp/audiences/refresh",
837
+ method: "POST",
838
+ tags: [TAG_TEMPLATES.site],
839
+ auth: "user",
840
+ responseKind: "json",
841
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
842
+ errors: ["auth:forbidden", "server:internal_error"]
843
+ },
844
+ disconnectMailchimp: {
845
+ path: "/sites/{siteId}/integrations/mailchimp/disconnect",
846
+ method: "POST",
847
+ tags: [TAG_TEMPLATES.site],
848
+ auth: "user",
849
+ responseKind: "json",
850
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
851
+ errors: ["auth:forbidden", "server:internal_error"]
852
+ },
853
+ mailchimpOAuthCallback: {
854
+ path: "/auth/mailchimp/callback",
855
+ method: "GET",
856
+ auth: "public",
857
+ responseKind: "void",
858
+ errors: []
859
+ },
802
860
  createNewsletterList: {
803
861
  path: "/sites/{siteId}/newsletter/lists",
804
862
  method: "POST",
@@ -3023,20 +3081,6 @@ var ENDPOINT_DEFINITIONS = {
3023
3081
  auth: "user",
3024
3082
  responseKind: "json"
3025
3083
  },
3026
- instagramUploadZip: {
3027
- path: "/instagram/upload-zip",
3028
- method: "POST",
3029
- tags: ["instagram-import"],
3030
- auth: "user",
3031
- responseKind: "json"
3032
- },
3033
- createInstagramZipUploadUrl: {
3034
- path: "/instagram/upload-zip-url",
3035
- method: "POST",
3036
- tags: ["instagram-import"],
3037
- auth: "user",
3038
- responseKind: "json"
3039
- },
3040
3084
  getAnalyticsReport: {
3041
3085
  path: "/sites/{siteId}/analytics/report",
3042
3086
  method: "GET",
@@ -6431,6 +6475,43 @@ function err(error) {
6431
6475
  return { ok: false, error };
6432
6476
  }
6433
6477
 
6478
+ // ../core/src/currency-format.ts
6479
+ var CURRENCY_LOCALE_BY_CODE = {
6480
+ USD: "en-US",
6481
+ GBP: "en-GB",
6482
+ EUR: "de-DE",
6483
+ AUD: "en-AU",
6484
+ CAD: "en-CA",
6485
+ NZD: "en-NZ",
6486
+ JPY: "ja-JP",
6487
+ CNY: "zh-CN",
6488
+ CHF: "de-CH"
6489
+ };
6490
+ function resolveCurrencyLocale(currencyCode, override) {
6491
+ return override ?? CURRENCY_LOCALE_BY_CODE[currencyCode] ?? "en";
6492
+ }
6493
+ function formatCurrencyAmount(amountCents, currency, options) {
6494
+ const currencyCode = currency.toUpperCase();
6495
+ const locale = resolveCurrencyLocale(currencyCode, options?.locale);
6496
+ try {
6497
+ const exactFormatter = new Intl.NumberFormat(locale, {
6498
+ style: "currency",
6499
+ currency: currencyCode
6500
+ });
6501
+ const fractionDigits = options?.decimals === "auto" ? {
6502
+ minimumFractionDigits: 0,
6503
+ maximumFractionDigits: exactFormatter.resolvedOptions().maximumFractionDigits
6504
+ } : {};
6505
+ return new Intl.NumberFormat(locale, {
6506
+ style: "currency",
6507
+ currency: currencyCode,
6508
+ ...fractionDigits
6509
+ }).format(amountCents / 100);
6510
+ } catch {
6511
+ return `${(amountCents / 100).toFixed(2)} ${currencyCode}`;
6512
+ }
6513
+ }
6514
+
6434
6515
  // ../core/src/event-pricing.ts
6435
6516
  function publicEventPricingType(pricing) {
6436
6517
  switch (pricing.kind) {
@@ -6451,6 +6532,7 @@ function isFreePublicEventPriceDisplay(display) {
6451
6532
  return display.display.kind === "free";
6452
6533
  case "exact":
6453
6534
  case "from":
6535
+ case "range":
6454
6536
  case "mixed":
6455
6537
  case "unavailable":
6456
6538
  return false;
@@ -6713,7 +6795,7 @@ var navigationLinkInputSchema = z2.discriminatedUnion(
6713
6795
  );
6714
6796
 
6715
6797
  // ../api/src/sdkConfig/contracts.ts
6716
- import { z as z64 } from "zod";
6798
+ import { z as z65 } from "zod";
6717
6799
 
6718
6800
  // ../blocks/src/system/manifest/augmentManifest.ts
6719
6801
  function augmentManifest(manifest) {
@@ -21871,15 +21953,53 @@ var newsletterFormFragment = defineFragment({
21871
21953
  title: "Newsletter Form",
21872
21954
  description: "Newsletter subscription form with preset field configurations.",
21873
21955
  fields: [
21956
+ {
21957
+ id: "destinationProvider",
21958
+ type: "select",
21959
+ label: "Send signups to",
21960
+ description: "Choose where new subscribers from this form should go.",
21961
+ defaultValue: "riverbank",
21962
+ required: true,
21963
+ ui: { intent: "behavior" },
21964
+ options: [
21965
+ { value: "riverbank", label: "Riverbank newsletter" }
21966
+ ]
21967
+ },
21874
21968
  {
21875
21969
  id: "listId",
21876
21970
  type: "reference",
21877
21971
  label: "Newsletter list",
21878
21972
  description: "Select the list new subscribers should be added to.",
21879
- required: true,
21973
+ required: false,
21880
21974
  referenceKind: "newsletterList",
21881
21975
  allowManualEntry: false,
21882
- ui: { intent: "behavior" }
21976
+ ui: {
21977
+ intent: "behavior",
21978
+ visibleWhen: { field: "destinationProvider", equals: "riverbank" }
21979
+ }
21980
+ },
21981
+ {
21982
+ id: "mailchimpAudienceId",
21983
+ type: "reference",
21984
+ label: "Mailchimp audience",
21985
+ description: "Choose the Mailchimp audience for new subscribers.",
21986
+ required: false,
21987
+ referenceKind: "mailchimpAudience",
21988
+ allowManualEntry: false,
21989
+ ui: {
21990
+ intent: "behavior",
21991
+ visibleWhen: { field: "destinationProvider", equals: "mailchimp" }
21992
+ }
21993
+ },
21994
+ {
21995
+ id: "mailchimpTags",
21996
+ type: "text",
21997
+ label: "Mailchimp tags",
21998
+ description: "Optional tags to apply in Mailchimp, separated by commas or semicolons.",
21999
+ ui: {
22000
+ intent: "behavior",
22001
+ visibleWhen: { field: "destinationProvider", equals: "mailchimp" }
22002
+ }
21883
22003
  },
21884
22004
  {
21885
22005
  id: "preset",
@@ -21926,13 +22046,18 @@ var newsletterFormFragment = defineFragment({
21926
22046
  id: "tags",
21927
22047
  type: "text",
21928
22048
  label: "Tags (optional)",
21929
- description: "Optional tags to apply on subscribe (comma or semicolon separated)."
22049
+ description: "Optional tags to apply on subscribe (comma or semicolon separated).",
22050
+ ui: {
22051
+ intent: "behavior",
22052
+ visibleWhen: { field: "destinationProvider", equals: "riverbank" }
22053
+ }
21930
22054
  }
21931
22055
  ],
21932
22056
  layout: [
21933
22057
  el(
21934
22058
  "newsletter-form",
21935
22059
  withApiBindings({
22060
+ destinationProvider: { $bind: { from: "destinationProvider" } },
21936
22061
  listId: { $bind: { from: "listId" } },
21937
22062
  preset: { $bind: { from: "preset" } },
21938
22063
  includePhone: { $bind: { from: "includePhone" } },
@@ -27773,10 +27898,10 @@ var appointmentBookingBlockDefinition = {
27773
27898
  };
27774
27899
 
27775
27900
  // ../blocks/src/system/blocks/event-registration.ts
27776
- import { z as z46 } from "zod";
27901
+ import { z as z47 } from "zod";
27777
27902
 
27778
27903
  // ../blocks/src/system/blocks/events/shared/schemas.ts
27779
- import { z as z42 } from "zod";
27904
+ import { z as z43 } from "zod";
27780
27905
 
27781
27906
  // ../blocks/src/lib/media.ts
27782
27907
  import z39 from "zod";
@@ -27854,296 +27979,339 @@ var mediaSchema2 = z39.discriminatedUnion("type", [
27854
27979
  archiveMediaSchema
27855
27980
  ]);
27856
27981
 
27857
- // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
27982
+ // ../blocks/src/system/manifest/richTextSchema.ts
27858
27983
  import { z as z40 } from "zod";
27859
- var bookingDepositRefundPolicySchema = z40.enum([
27984
+ var TipTapMarkSchema = z40.object({
27985
+ type: z40.string(),
27986
+ attrs: z40.record(z40.string(), z40.unknown()).optional()
27987
+ });
27988
+ var TipTapNodeSchema = z40.lazy(
27989
+ () => z40.object({
27990
+ type: z40.string(),
27991
+ content: z40.array(TipTapNodeSchema).optional(),
27992
+ text: z40.string().optional(),
27993
+ attrs: z40.record(z40.string(), z40.unknown()).optional(),
27994
+ marks: z40.array(TipTapMarkSchema).optional()
27995
+ })
27996
+ );
27997
+ var RichTextValueSchema = z40.union([
27998
+ // Canonical: TipTap document directly
27999
+ TipTapNodeSchema,
28000
+ // Legacy (read-tolerance only): wrapped in { doc: {...} }
28001
+ z40.object({
28002
+ doc: TipTapNodeSchema
28003
+ })
28004
+ ]);
28005
+ var RichTextDocSchema = z40.object({
28006
+ type: z40.literal("doc"),
28007
+ content: z40.array(TipTapNodeSchema)
28008
+ });
28009
+
28010
+ // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
28011
+ import { z as z41 } from "zod";
28012
+ var bookingDepositRefundPolicySchema = z41.enum([
27860
28013
  "refundable",
27861
28014
  "non_refundable"
27862
28015
  ]);
27863
- var bookingInstalmentPlanSchema = z40.union([
27864
- z40.object({
27865
- kind: z40.literal("deposit_plus_one_remainder"),
27866
- depositAmountCents: z40.number().int().min(0),
28016
+ var bookingInstalmentPlanSchema = z41.union([
28017
+ z41.object({
28018
+ kind: z41.literal("deposit_plus_one_remainder"),
28019
+ depositAmountCents: z41.number().int().min(0),
27867
28020
  depositRefundability: bookingDepositRefundPolicySchema,
27868
- remainderDueCount: z40.number().int().positive(),
27869
- intervalUnit: z40.enum(["day", "week", "month"])
28021
+ remainderDueCount: z41.number().int().positive(),
28022
+ intervalUnit: z41.enum(["day", "week", "month"])
27870
28023
  }),
27871
- z40.object({
27872
- kind: z40.literal("deposit_plus_scheduled_instalments"),
27873
- depositAmountCents: z40.number().int().min(0),
28024
+ z41.object({
28025
+ kind: z41.literal("deposit_plus_scheduled_instalments"),
28026
+ depositAmountCents: z41.number().int().min(0),
27874
28027
  depositRefundability: bookingDepositRefundPolicySchema,
27875
- instalmentCount: z40.number().int().positive(),
27876
- intervalCount: z40.number().int().positive(),
27877
- intervalUnit: z40.enum(["day", "week", "month"])
28028
+ instalmentCount: z41.number().int().positive(),
28029
+ intervalCount: z41.number().int().positive(),
28030
+ intervalUnit: z41.enum(["day", "week", "month"])
27878
28031
  }),
27879
- z40.object({
27880
- kind: z40.literal("equal_scheduled_instalments"),
27881
- instalmentCount: z40.number().int().positive(),
27882
- intervalCount: z40.number().int().positive(),
27883
- intervalUnit: z40.enum(["day", "week", "month"])
28032
+ z41.object({
28033
+ kind: z41.literal("equal_scheduled_instalments"),
28034
+ instalmentCount: z41.number().int().positive(),
28035
+ intervalCount: z41.number().int().positive(),
28036
+ intervalUnit: z41.enum(["day", "week", "month"])
27884
28037
  })
27885
28038
  ]);
27886
- var bookingFlexibleBalanceDueDateRuleSchema = z40.union([
27887
- z40.object({
27888
- kind: z40.literal("relative_to_start_date"),
27889
- daysBeforeStart: z40.number().int().positive()
28039
+ var bookingFlexibleBalanceDueDateRuleSchema = z41.union([
28040
+ z41.object({
28041
+ kind: z41.literal("relative_to_start_date"),
28042
+ daysBeforeStart: z41.number().int().positive()
27890
28043
  }),
27891
- z40.object({
27892
- kind: z40.literal("fixed_calendar_date"),
27893
- dueAt: z40.string().datetime()
28044
+ z41.object({
28045
+ kind: z41.literal("fixed_calendar_date"),
28046
+ dueAt: z41.string().datetime()
27894
28047
  })
27895
28048
  ]);
27896
- var bookingFlexibleBalanceConfigSchema = z40.object({
27897
- upfrontAmountCents: z40.number().int().min(0),
28049
+ var bookingFlexibleBalanceConfigSchema = z41.object({
28050
+ upfrontAmountCents: z41.number().int().min(0),
27898
28051
  dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
27899
28052
  depositRefundability: bookingDepositRefundPolicySchema
27900
28053
  });
27901
- var blockBookingPaymentCollectionOptionSchema = z40.union([
27902
- z40.object({
27903
- kind: z40.literal("upfront")
28054
+ var blockBookingPaymentCollectionOptionSchema = z41.union([
28055
+ z41.object({
28056
+ kind: z41.literal("upfront")
27904
28057
  }),
27905
- z40.object({
27906
- kind: z40.literal("deferred_manual")
28058
+ z41.object({
28059
+ kind: z41.literal("deferred_manual")
27907
28060
  }),
27908
- z40.object({
27909
- kind: z40.literal("instalment_plan"),
28061
+ z41.object({
28062
+ kind: z41.literal("instalment_plan"),
27910
28063
  plan: bookingInstalmentPlanSchema
27911
28064
  }),
27912
- z40.object({
27913
- kind: z40.literal("flexible_balance"),
28065
+ z41.object({
28066
+ kind: z41.literal("flexible_balance"),
27914
28067
  config: bookingFlexibleBalanceConfigSchema
27915
28068
  })
27916
28069
  ]);
27917
- var blockBookingPaymentTermsSchema = z40.object({
27918
- allowedOptions: z40.array(blockBookingPaymentCollectionOptionSchema).min(1)
28070
+ var blockBookingPaymentTermsSchema = z41.object({
28071
+ allowedOptions: z41.array(blockBookingPaymentCollectionOptionSchema).min(1)
27919
28072
  });
27920
28073
 
27921
28074
  // ../blocks/src/system/blocks/courses/shared/schemas.ts
27922
- import { z as z41 } from "zod";
27923
- var courseVenueSchema = z41.object({
27924
- id: z41.string(),
27925
- name: z41.string(),
27926
- address: z41.string().nullable()
27927
- });
27928
- var courseSessionSchema = z41.object({
27929
- id: z41.string(),
27930
- startsAt: z41.string(),
27931
- endsAt: z41.string(),
27932
- timeZone: z41.string(),
27933
- capacityOverride: z41.number().nullable().optional(),
27934
- overrides: z41.record(z41.string(), z41.unknown()).nullable().optional()
27935
- });
27936
- var courseTeamMemberSummarySchema = z41.object({
27937
- id: z41.string(),
27938
- name: z41.string(),
27939
- roleLabel: z41.string().nullable(),
27940
- summary: z41.string().nullable(),
27941
- profilePath: z41.string().nullable()
27942
- });
27943
- var coursePricingOptionSchema = z41.object({
27944
- id: z41.string(),
27945
- name: z41.string(),
27946
- description: z41.string().nullable(),
27947
- priceAmount: z41.number(),
27948
- isActive: z41.boolean(),
27949
- sortOrder: z41.number(),
27950
- capacityLimit: z41.number().nullable(),
27951
- saleStartsAt: z41.string().nullable(),
27952
- saleEndsAt: z41.string().nullable(),
27953
- attendanceScope: z41.enum(["in_person", "online", "both"]).nullable().optional()
27954
- });
27955
- var coursePricingSchema = z41.object({
27956
- bookingRequirement: z41.enum(["none", "required"]),
27957
- pricingStrategy: z41.enum(["free", "single", "tiered"]),
27958
- currency: z41.string(),
27959
- singlePriceAmount: z41.number().nullable(),
28075
+ import { z as z42 } from "zod";
28076
+ var courseVenueSchema = z42.object({
28077
+ id: z42.string(),
28078
+ name: z42.string(),
28079
+ address: z42.string().nullable()
28080
+ });
28081
+ var courseSessionSchema = z42.object({
28082
+ id: z42.string(),
28083
+ startsAt: z42.string(),
28084
+ endsAt: z42.string(),
28085
+ timeZone: z42.string(),
28086
+ capacityOverride: z42.number().nullable().optional(),
28087
+ overrides: z42.record(z42.string(), z42.unknown()).nullable().optional()
28088
+ });
28089
+ var courseTeamMemberSummarySchema = z42.object({
28090
+ id: z42.string(),
28091
+ name: z42.string(),
28092
+ roleLabel: z42.string().nullable(),
28093
+ summary: z42.string().nullable(),
28094
+ profilePath: z42.string().nullable()
28095
+ });
28096
+ var coursePricingOptionSchema = z42.object({
28097
+ id: z42.string(),
28098
+ name: z42.string(),
28099
+ description: z42.string().nullable(),
28100
+ priceAmount: z42.number(),
28101
+ isActive: z42.boolean(),
28102
+ sortOrder: z42.number(),
28103
+ capacityLimit: z42.number().nullable(),
28104
+ saleStartsAt: z42.string().nullable(),
28105
+ saleEndsAt: z42.string().nullable(),
28106
+ attendanceScope: z42.enum(["in_person", "online", "both"]).nullable().optional()
28107
+ });
28108
+ var coursePricingSchema = z42.object({
28109
+ bookingRequirement: z42.enum(["none", "required"]),
28110
+ pricingStrategy: z42.enum(["free", "single", "tiered"]),
28111
+ currency: z42.string(),
28112
+ singlePriceAmount: z42.number().nullable(),
27960
28113
  paymentTerms: blockBookingPaymentTermsSchema,
27961
- options: z41.array(coursePricingOptionSchema)
27962
- });
27963
- var publicCourseSchema = z41.object({
27964
- id: z41.string(),
27965
- title: z41.string(),
27966
- slug: z41.string(),
27967
- description: z41.unknown().nullable(),
27968
- teamMembers: z41.array(courseTeamMemberSummarySchema).optional(),
27969
- enrollmentOpen: z41.boolean(),
28114
+ options: z42.array(coursePricingOptionSchema)
28115
+ });
28116
+ var publicCourseSchema = z42.object({
28117
+ id: z42.string(),
28118
+ title: z42.string(),
28119
+ slug: z42.string(),
28120
+ description: z42.unknown().nullable(),
28121
+ teamMembers: z42.array(courseTeamMemberSummarySchema).optional(),
28122
+ enrollmentOpen: z42.boolean(),
27970
28123
  pricing: coursePricingSchema.optional(),
27971
- priceCents: z41.number().nullable(),
27972
- currency: z41.string(),
28124
+ priceCents: z42.number().nullable(),
28125
+ currency: z42.string(),
27973
28126
  paymentTerms: blockBookingPaymentTermsSchema,
27974
- enrollmentCapacity: z41.number().nullable(),
27975
- acceptsMemberships: z41.boolean(),
27976
- status: z41.enum(["active", "draft", "cancelled"]),
27977
- sessionsCount: z41.number(),
27978
- enrolledCount: z41.number(),
27979
- availableSpots: z41.number().nullable(),
27980
- sessions: z41.array(courseSessionSchema),
28127
+ enrollmentCapacity: z42.number().nullable(),
28128
+ acceptsMemberships: z42.boolean(),
28129
+ status: z42.enum(["active", "draft", "cancelled"]),
28130
+ sessionsCount: z42.number(),
28131
+ enrolledCount: z42.number(),
28132
+ availableSpots: z42.number().nullable(),
28133
+ sessions: z42.array(courseSessionSchema),
27981
28134
  venue: courseVenueSchema.nullable(),
27982
- contentEntryId: z41.string().nullable()
28135
+ contentEntryId: z42.string().nullable()
27983
28136
  });
27984
- var publicCoursesArraySchema = z41.array(publicCourseSchema);
28137
+ var publicCoursesArraySchema = z42.array(publicCourseSchema);
27985
28138
 
27986
28139
  // ../blocks/src/system/blocks/events/shared/schemas.ts
27987
- var eventPresetSchema = z42.enum(["event", "class", "workshop", "retreat", "performance"]);
27988
- var eventScheduleScopeSchema = z42.enum(["recurring", "oneOff"]);
27989
- var eventDestinationModeSchema = z42.enum(["cms-managed", "system-managed"]);
27990
- var eventVenueSchema = z42.object({
27991
- id: z42.string(),
27992
- name: z42.string(),
27993
- address: z42.string().nullable(),
27994
- location: z42.object({
27995
- lat: z42.number(),
27996
- lng: z42.number()
28140
+ var eventPresetSchema = z43.enum(["event", "class", "workshop", "retreat", "performance"]);
28141
+ var eventScheduleScopeSchema = z43.enum(["recurring", "oneOff"]);
28142
+ var eventDestinationModeSchema = z43.enum(["cms-managed", "system-managed"]);
28143
+ var eventVenueSchema = z43.object({
28144
+ id: z43.string(),
28145
+ name: z43.string(),
28146
+ address: z43.string().nullable(),
28147
+ location: z43.object({
28148
+ lat: z43.number(),
28149
+ lng: z43.number()
27997
28150
  }).nullable()
27998
28151
  });
27999
- var eventCategorySchema = z42.object({
28000
- id: z42.string(),
28001
- name: z42.string(),
28002
- color: z42.string().nullable()
28003
- });
28004
- var pricingTypeSchema = z42.enum(["free", "paid"]);
28005
- var accessRestrictionSchema = z42.enum(["none", "category"]);
28006
- var eventPricingModeSchema = z42.enum(["single", "ticket_types"]);
28007
- var publicCoursePriceDisplaySchema = z42.discriminatedUnion("kind", [
28008
- z42.object({ kind: z42.literal("free"), currency: z42.string() }),
28009
- z42.object({ kind: z42.literal("exact"), amount: z42.number(), currency: z42.string() }),
28010
- z42.object({ kind: z42.literal("from"), amount: z42.number(), currency: z42.string() }),
28011
- z42.object({ kind: z42.literal("unavailable"), currency: z42.string() })
28152
+ var eventCategorySchema = z43.object({
28153
+ id: z43.string(),
28154
+ name: z43.string(),
28155
+ color: z43.string().nullable()
28156
+ });
28157
+ var pricingTypeSchema = z43.enum(["free", "paid"]);
28158
+ var accessRestrictionSchema = z43.enum(["none", "category"]);
28159
+ var eventPricingModeSchema = z43.enum(["single", "ticket_types"]);
28160
+ var publicCoursePriceDisplaySchema = z43.discriminatedUnion("kind", [
28161
+ z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28162
+ z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28163
+ z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28164
+ z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
28012
28165
  ]);
28013
- var publicEventPriceDisplaySchema = z42.discriminatedUnion("kind", [
28014
- z42.object({ kind: z42.literal("free"), currency: z42.string() }),
28015
- z42.object({ kind: z42.literal("exact"), amount: z42.number(), currency: z42.string() }),
28016
- z42.object({ kind: z42.literal("from"), amount: z42.number(), currency: z42.string() }),
28017
- z42.object({ kind: z42.literal("mixed"), paidFromAmount: z42.number(), currency: z42.string() }),
28018
- z42.object({ kind: z42.literal("unavailable"), currency: z42.string() }),
28019
- z42.object({ kind: z42.literal("course"), display: publicCoursePriceDisplaySchema })
28166
+ var publicEventPriceDisplaySchema = z43.discriminatedUnion("kind", [
28167
+ z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28168
+ z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28169
+ z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28170
+ z43.object({ kind: z43.literal("range"), minAmount: z43.number(), maxAmount: z43.number(), currency: z43.string() }),
28171
+ z43.object({
28172
+ kind: z43.literal("mixed"),
28173
+ paidFromAmount: z43.number(),
28174
+ paidToAmount: z43.number(),
28175
+ currency: z43.string()
28176
+ }),
28177
+ z43.object({ kind: z43.literal("unavailable"), currency: z43.string() }),
28178
+ z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28020
28179
  ]);
28021
- var publicEventTicketTypePriceDisplaySchema = z42.union([
28022
- z42.object({ kind: z42.literal("free"), currency: z42.string() }),
28023
- z42.object({ kind: z42.literal("exact"), amount: z42.number(), currency: z42.string() }),
28024
- z42.object({ kind: z42.literal("from"), amount: z42.number(), currency: z42.string() }),
28025
- z42.object({ kind: z42.literal("mixed"), paidFromAmount: z42.number(), currency: z42.string() }),
28026
- z42.object({ kind: z42.literal("unavailable"), currency: z42.string() })
28180
+ var publicEventTicketTypePriceDisplaySchema = z43.union([
28181
+ z43.object({ kind: z43.literal("free"), currency: z43.string() }),
28182
+ z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
28183
+ z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
28184
+ z43.object({ kind: z43.literal("range"), minAmount: z43.number(), maxAmount: z43.number(), currency: z43.string() }),
28185
+ z43.object({
28186
+ kind: z43.literal("mixed"),
28187
+ paidFromAmount: z43.number(),
28188
+ paidToAmount: z43.number(),
28189
+ currency: z43.string()
28190
+ }),
28191
+ z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
28027
28192
  ]);
28028
- var publicEventAttendanceModeSchema = z42.enum(["in_person", "online"]);
28029
- var publicEventAttendanceModeAvailabilitySchema = z42.object({
28193
+ var publicEventAttendanceModeSchema = z43.enum(["in_person", "online"]);
28194
+ var publicEventAttendanceModeAvailabilitySchema = z43.object({
28030
28195
  mode: publicEventAttendanceModeSchema,
28031
- capacity: z42.number().nullable(),
28032
- registeredCount: z42.number(),
28033
- availableSpots: z42.number().nullable(),
28034
- waitlistEnabled: z42.boolean()
28035
- });
28036
- var publicEventTicketTypeAvailabilitySchema = z42.union([
28037
- z42.object({
28038
- kind: z42.literal("available"),
28039
- remainingCapacity: z42.number().nullable()
28196
+ capacity: z43.number().nullable(),
28197
+ registeredCount: z43.number(),
28198
+ availableSpots: z43.number().nullable(),
28199
+ waitlistEnabled: z43.boolean()
28200
+ });
28201
+ var publicEventTicketTypeAvailabilitySchema = z43.union([
28202
+ z43.object({
28203
+ kind: z43.literal("available"),
28204
+ remainingCapacity: z43.number().nullable()
28040
28205
  }),
28041
- z42.object({
28042
- kind: z42.literal("unavailable"),
28043
- reason: z42.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
28044
- remainingCapacity: z42.number().nullable()
28206
+ z43.object({
28207
+ kind: z43.literal("unavailable"),
28208
+ reason: z43.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
28209
+ remainingCapacity: z43.number().nullable()
28045
28210
  })
28046
28211
  ]);
28047
- var publicEventTicketTypeSchema = z42.object({
28048
- id: z42.string(),
28049
- siteId: z42.string(),
28050
- eventSeriesId: z42.string(),
28051
- name: z42.string(),
28052
- description: z42.string().nullable(),
28053
- priceAmount: z42.number(),
28054
- isActive: z42.boolean(),
28055
- sortOrder: z42.number(),
28056
- capacityMode: z42.enum(["limited", "unlimited"]),
28057
- capacityLimit: z42.number().nullable(),
28058
- attendanceScope: z42.enum(["in_person", "online", "both"]).optional(),
28059
- saleStartsAt: z42.string().nullable(),
28060
- saleEndsAt: z42.string().nullable(),
28212
+ var publicEventTicketTypeSchema = z43.object({
28213
+ id: z43.string(),
28214
+ siteId: z43.string(),
28215
+ eventSeriesId: z43.string(),
28216
+ name: z43.string(),
28217
+ description: z43.string().nullable(),
28218
+ priceAmount: z43.number(),
28219
+ isActive: z43.boolean(),
28220
+ sortOrder: z43.number(),
28221
+ capacityMode: z43.enum(["limited", "unlimited"]),
28222
+ capacityLimit: z43.number().nullable(),
28223
+ attendanceScope: z43.enum(["in_person", "online", "both"]).optional(),
28224
+ saleStartsAt: z43.string().nullable(),
28225
+ saleEndsAt: z43.string().nullable(),
28061
28226
  availability: publicEventTicketTypeAvailabilitySchema,
28062
- createdAt: z42.string(),
28063
- updatedAt: z42.string()
28064
- });
28065
- var publicEventPricingSchema = z42.discriminatedUnion("kind", [
28066
- z42.object({
28067
- kind: z42.literal("drop_in"),
28068
- currency: z42.string(),
28069
- display: z42.object({ kind: z42.literal("free"), currency: z42.string() })
28227
+ createdAt: z43.string(),
28228
+ updatedAt: z43.string()
28229
+ });
28230
+ var publicEventPricingSchema = z43.discriminatedUnion("kind", [
28231
+ z43.object({
28232
+ kind: z43.literal("drop_in"),
28233
+ currency: z43.string(),
28234
+ display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
28070
28235
  }),
28071
- z42.object({
28072
- kind: z42.literal("free_registration"),
28073
- currency: z42.string(),
28074
- display: z42.object({ kind: z42.literal("free"), currency: z42.string() })
28236
+ z43.object({
28237
+ kind: z43.literal("free_registration"),
28238
+ currency: z43.string(),
28239
+ display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
28075
28240
  }),
28076
- z42.object({
28077
- kind: z42.literal("single_paid"),
28078
- amount: z42.number(),
28079
- currency: z42.string(),
28080
- display: z42.object({ kind: z42.literal("exact"), amount: z42.number(), currency: z42.string() })
28241
+ z43.object({
28242
+ kind: z43.literal("single_paid"),
28243
+ amount: z43.number(),
28244
+ currency: z43.string(),
28245
+ display: z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() })
28081
28246
  }),
28082
- z42.object({
28083
- kind: z42.literal("ticket_types"),
28084
- currency: z42.string(),
28085
- ticketTypes: z42.array(publicEventTicketTypeSchema),
28247
+ z43.object({
28248
+ kind: z43.literal("ticket_types"),
28249
+ currency: z43.string(),
28250
+ ticketTypes: z43.array(publicEventTicketTypeSchema),
28086
28251
  display: publicEventTicketTypePriceDisplaySchema
28087
28252
  }),
28088
- z42.object({
28089
- kind: z42.literal("course"),
28090
- display: z42.object({ kind: z42.literal("course"), display: publicCoursePriceDisplaySchema })
28253
+ z43.object({
28254
+ kind: z43.literal("course"),
28255
+ display: z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
28091
28256
  })
28092
28257
  ]);
28093
- var publicTeamMemberSummarySchema = z42.object({
28094
- id: z42.string(),
28095
- name: z42.string(),
28096
- roleLabel: z42.string().nullable(),
28097
- summary: z42.string().nullable(),
28098
- profilePath: z42.string().nullable()
28258
+ var publicTeamMemberSummarySchema = z43.object({
28259
+ id: z43.string(),
28260
+ name: z43.string(),
28261
+ roleLabel: z43.string().nullable(),
28262
+ summary: z43.string().nullable(),
28263
+ profilePath: z43.string().nullable()
28099
28264
  });
28100
- var publicEventSchema = z42.object({
28101
- kind: z42.enum(["event", "course_session"]).optional(),
28265
+ var publicEventSchema = z43.object({
28266
+ kind: z43.enum(["event", "course_session"]).optional(),
28102
28267
  eventPreset: eventPresetSchema.optional(),
28103
28268
  eventDestinationMode: eventDestinationModeSchema.optional(),
28104
28269
  scheduleScope: eventScheduleScopeSchema.optional(),
28105
- id: z42.string(),
28106
- occurrenceId: z42.string(),
28107
- seriesId: z42.string(),
28108
- title: z42.string(),
28109
- description: z42.string().nullable(),
28110
- presentation: z42.object({
28111
- cardTitleOverride: z42.string().nullable().optional(),
28112
- summary: z42.string().nullable().optional(),
28270
+ id: z43.string(),
28271
+ occurrenceId: z43.string(),
28272
+ seriesId: z43.string(),
28273
+ title: z43.string(),
28274
+ description: z43.string().nullable(),
28275
+ content: z43.object({
28276
+ body: RichTextDocSchema.nullable().optional()
28277
+ }).optional(),
28278
+ presentation: z43.object({
28279
+ cardTitleOverride: z43.string().nullable().optional(),
28280
+ summary: z43.string().nullable().optional(),
28113
28281
  image: mediaSchema2.nullable().optional()
28114
28282
  }).optional(),
28115
- slug: z42.string(),
28116
- path: z42.string(),
28117
- requiresRegistration: z42.boolean(),
28118
- deliveryMode: z42.enum(["in_person", "online", "hybrid"]),
28119
- attendanceModes: z42.array(publicEventAttendanceModeAvailabilitySchema),
28120
- startsAt: z42.string(),
28121
- endsAt: z42.string(),
28122
- capacity: z42.number().nullable(),
28123
- registeredCount: z42.number(),
28124
- availableSpots: z42.number().nullable(),
28125
- waitlistEnabled: z42.boolean(),
28283
+ slug: z43.string(),
28284
+ path: z43.string(),
28285
+ requiresRegistration: z43.boolean(),
28286
+ deliveryMode: z43.enum(["in_person", "online", "hybrid"]),
28287
+ attendanceModes: z43.array(publicEventAttendanceModeAvailabilitySchema),
28288
+ startsAt: z43.string(),
28289
+ endsAt: z43.string(),
28290
+ capacity: z43.number().nullable(),
28291
+ registeredCount: z43.number(),
28292
+ availableSpots: z43.number().nullable(),
28293
+ waitlistEnabled: z43.boolean(),
28126
28294
  venue: eventVenueSchema.nullable(),
28127
28295
  eventCategory: eventCategorySchema.nullable(),
28128
- teamMembers: z42.array(publicTeamMemberSummarySchema).optional(),
28129
- status: z42.enum(["active", "draft", "archived"]).optional(),
28130
- timeZone: z42.string(),
28296
+ teamMembers: z43.array(publicTeamMemberSummarySchema).optional(),
28297
+ status: z43.enum(["active", "draft", "archived"]).optional(),
28298
+ timeZone: z43.string(),
28131
28299
  pricing: publicEventPricingSchema,
28132
28300
  paymentTerms: blockBookingPaymentTermsSchema,
28133
28301
  accessRestriction: accessRestrictionSchema,
28134
- allowedCategoryIds: z42.array(z42.string()),
28135
- requireGuestDetails: z42.boolean().optional(),
28136
- acceptsPasses: z42.boolean().optional(),
28137
- acceptsMemberships: z42.boolean().optional(),
28138
- course: z42.object({
28139
- id: z42.string(),
28302
+ allowedCategoryIds: z43.array(z43.string()),
28303
+ requireGuestDetails: z43.boolean().optional(),
28304
+ acceptsPasses: z43.boolean().optional(),
28305
+ acceptsMemberships: z43.boolean().optional(),
28306
+ course: z43.object({
28307
+ id: z43.string(),
28140
28308
  pricing: coursePricingSchema.optional(),
28141
- priceCents: z42.number().nullable(),
28142
- currency: z42.string(),
28143
- enrollmentOpen: z42.boolean()
28309
+ priceCents: z43.number().nullable(),
28310
+ currency: z43.string(),
28311
+ enrollmentOpen: z43.boolean()
28144
28312
  }).nullable().optional()
28145
28313
  });
28146
- var publicEventsArraySchema = z42.array(publicEventSchema);
28314
+ var publicEventsArraySchema = z43.array(publicEventSchema);
28147
28315
 
28148
28316
  // ../blocks/src/system/blocks/events/shared/fields.ts
28149
28317
  var cardVariantOptions2 = cardVariantRoleValues.map((value) => ({
@@ -28347,19 +28515,19 @@ function normalizeEventStaffMemberId(value) {
28347
28515
  }
28348
28516
 
28349
28517
  // ../blocks/src/system/blocks/event-registration.shared.ts
28350
- import { z as z43 } from "zod";
28351
- var occurrenceContextSchema = z43.object({
28352
- id: z43.string(),
28353
- seriesId: z43.string(),
28354
- startsAt: z43.string(),
28355
- endsAt: z43.string(),
28356
- timeZone: z43.string(),
28357
- capacityOverride: z43.number().nullable().optional(),
28358
- overrides: z43.record(z43.string(), z43.unknown()).nullable().optional()
28518
+ import { z as z44 } from "zod";
28519
+ var occurrenceContextSchema = z44.object({
28520
+ id: z44.string(),
28521
+ seriesId: z44.string(),
28522
+ startsAt: z44.string(),
28523
+ endsAt: z44.string(),
28524
+ timeZone: z44.string(),
28525
+ capacityOverride: z44.number().nullable().optional(),
28526
+ overrides: z44.record(z44.string(), z44.unknown()).nullable().optional()
28359
28527
  }).nullable();
28360
28528
 
28361
28529
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28362
- import { z as z45 } from "zod";
28530
+ import { z as z46 } from "zod";
28363
28531
 
28364
28532
  // ../blocks/src/system/constants/events.ts
28365
28533
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
@@ -28457,10 +28625,21 @@ function readLegacyPriceDisplay(value, currency) {
28457
28625
  amount: readAmount(value.amount) ?? 0,
28458
28626
  currency: displayCurrency
28459
28627
  } : { kind: "unavailable", currency };
28628
+ case "range": {
28629
+ const minAmount = readAmount(value.minAmount);
28630
+ const maxAmount = readAmount(value.maxAmount);
28631
+ return minAmount !== null && maxAmount !== null ? {
28632
+ kind: "range",
28633
+ minAmount,
28634
+ maxAmount,
28635
+ currency: displayCurrency
28636
+ } : { kind: "unavailable", currency };
28637
+ }
28460
28638
  case "mixed":
28461
28639
  return readAmount(value.paidFromAmount) !== null ? {
28462
28640
  kind: "mixed",
28463
28641
  paidFromAmount: readAmount(value.paidFromAmount) ?? 0,
28642
+ paidToAmount: readAmount(value.paidToAmount) ?? readAmount(value.paidFromAmount) ?? 0,
28464
28643
  currency: displayCurrency
28465
28644
  } : { kind: "unavailable", currency };
28466
28645
  case "unavailable":
@@ -28502,16 +28681,16 @@ function readAmount(value) {
28502
28681
  }
28503
28682
 
28504
28683
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
28505
- import { z as z44 } from "zod";
28506
- var previewStageSchema = z44.enum(["preview", "published"]);
28507
- var registrationButtonVariantSchema = z44.enum(["primary", "secondary", "outline"]);
28508
- var eventButtonVariantSchema = z44.enum(["primary", "secondary", "outline", "link"]);
28509
- var eventLayoutSchema = z44.enum(eventCalendarListLayoutValues);
28510
- var eventCalendarDisplayModeSchema = z44.enum(eventCalendarDisplayModeValues);
28511
- var columnOptionSchema = z44.enum(["2", "3", "4"]);
28512
- var weekStartSchema = z44.enum(["sunday", "monday"]);
28513
- var filterAutoShowSchema = z44.enum(["auto", "always", "never"]);
28514
- var calendarTabViewsSchema = z44.enum(["both", "month", "week"]);
28684
+ import { z as z45 } from "zod";
28685
+ var previewStageSchema = z45.enum(["preview", "published"]);
28686
+ var registrationButtonVariantSchema = z45.enum(["primary", "secondary", "outline"]);
28687
+ var eventButtonVariantSchema = z45.enum(["primary", "secondary", "outline", "link"]);
28688
+ var eventLayoutSchema = z45.enum(eventCalendarListLayoutValues);
28689
+ var eventCalendarDisplayModeSchema = z45.enum(eventCalendarDisplayModeValues);
28690
+ var columnOptionSchema = z45.enum(["2", "3", "4"]);
28691
+ var weekStartSchema = z45.enum(["sunday", "monday"]);
28692
+ var filterAutoShowSchema = z45.enum(["auto", "always", "never"]);
28693
+ var calendarTabViewsSchema = z45.enum(["both", "month", "week"]);
28515
28694
 
28516
28695
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
28517
28696
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -28571,66 +28750,68 @@ function toRegistrationEvents(events) {
28571
28750
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28572
28751
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
28573
28752
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
28574
- var contentEntrySchema = z45.object({
28575
- id: z45.string(),
28576
- slug: z45.string(),
28577
- contentTypeSlug: z45.string()
28753
+ var contentEntrySchema = z46.object({
28754
+ id: z46.string(),
28755
+ slug: z46.string(),
28756
+ contentTypeSlug: z46.string()
28578
28757
  });
28579
- var eventRegistrationPublicEventSchema = z45.preprocess(
28758
+ var eventRegistrationPublicEventSchema = z46.preprocess(
28580
28759
  normalizeEventRegistrationEventInput,
28581
28760
  publicEventSchema
28582
28761
  );
28583
- var eventRegistrationSourceSchema = z45.object({
28584
- siteId: z45.string().optional(),
28585
- apiBaseUrl: z45.string().optional(),
28586
- portalToken: z45.string().nullable().optional(),
28587
- previewToken: z45.string().nullable().optional(),
28762
+ var eventRegistrationSourceSchema = z46.object({
28763
+ siteId: z46.string().optional(),
28764
+ apiBaseUrl: z46.string().optional(),
28765
+ portalToken: z46.string().nullable().optional(),
28766
+ previewToken: z46.string().nullable().optional(),
28588
28767
  occurrenceContext: occurrenceContextSchema.optional(),
28589
28768
  contentEntry: contentEntrySchema.nullable().optional(),
28590
- events: z45.array(eventRegistrationPublicEventSchema).nullable().optional(),
28591
- className: z45.string().nullable().optional(),
28592
- buttonText: z45.string().nullable().optional(),
28593
- maxTickets: z45.string().nullable().optional(),
28594
- showVenue: z45.boolean().optional(),
28595
- showCapacity: z45.boolean().optional(),
28596
- successMessage: z45.string().optional(),
28597
- waitlistMessage: z45.string().optional(),
28769
+ events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
28770
+ className: z46.string().nullable().optional(),
28771
+ buttonText: z46.string().nullable().optional(),
28772
+ maxTickets: z46.string().nullable().optional(),
28773
+ showVenue: z46.boolean().optional(),
28774
+ showCapacity: z46.boolean().optional(),
28775
+ successMessage: z46.string().optional(),
28776
+ waitlistMessage: z46.string().optional(),
28598
28777
  buttonVariant: registrationButtonVariantSchema.optional(),
28599
- spamProtectionEnabled: z45.boolean().optional(),
28778
+ overlayEnabled: z46.boolean().optional(),
28779
+ spamProtectionEnabled: z46.boolean().optional(),
28600
28780
  stage: previewStageSchema.optional(),
28601
- supportEmail: z45.string().optional()
28602
- });
28603
- var eventRegistrationDisplaySchema = z45.object({
28604
- kind: z45.literal("event-registration"),
28605
- state: z45.literal("generic-shell"),
28606
- className: z45.string().nullable(),
28607
- titleText: z45.string(),
28608
- bodyText: z45.string(),
28609
- stepLabels: z45.array(z45.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28610
- summaryButtonText: z45.string()
28611
- });
28612
- var eventRegistrationHydrationSchema = z45.object({
28781
+ supportEmail: z46.string().optional()
28782
+ });
28783
+ var eventRegistrationDisplaySchema = z46.object({
28784
+ kind: z46.literal("event-registration"),
28785
+ state: z46.literal("generic-shell"),
28786
+ className: z46.string().nullable(),
28787
+ titleText: z46.string(),
28788
+ bodyText: z46.string(),
28789
+ stepLabels: z46.array(z46.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28790
+ summaryButtonText: z46.string()
28791
+ });
28792
+ var eventRegistrationHydrationSchema = z46.object({
28613
28793
  occurrenceContext: occurrenceContextSchema.optional(),
28614
28794
  contentEntry: contentEntrySchema.nullable().optional(),
28615
- events: z45.array(eventRegistrationPublicEventSchema).nullable().optional(),
28616
- maxTickets: z45.string().optional(),
28617
- showVenue: z45.boolean().optional(),
28618
- showCapacity: z45.boolean().optional(),
28619
- successMessage: z45.string().optional(),
28620
- waitlistMessage: z45.string().optional(),
28795
+ events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
28796
+ maxTickets: z46.string().optional(),
28797
+ showVenue: z46.boolean().optional(),
28798
+ showCapacity: z46.boolean().optional(),
28799
+ successMessage: z46.string().optional(),
28800
+ waitlistMessage: z46.string().optional(),
28621
28801
  buttonVariant: registrationButtonVariantSchema.optional(),
28622
- spamProtectionEnabled: z45.boolean().optional(),
28623
- supportEmail: z45.string().optional()
28802
+ overlayEnabled: z46.boolean().optional(),
28803
+ spamProtectionEnabled: z46.boolean().optional(),
28804
+ supportEmail: z46.string().optional()
28624
28805
  });
28625
- var eventRegistrationRenderSchema = z45.object({
28806
+ var eventRegistrationRenderSchema = z46.object({
28626
28807
  display: eventRegistrationDisplaySchema,
28627
28808
  hydration: eventRegistrationHydrationSchema
28628
28809
  });
28629
- var eventRegistrationIslandMetaCodec = createZodCodec(z45.object({
28630
- siteId: z45.string().optional(),
28631
- apiBaseUrl: z45.string().optional(),
28632
- portalToken: z45.string().nullable().optional(),
28633
- previewToken: z45.string().nullable().optional(),
28810
+ var eventRegistrationIslandMetaCodec = createZodCodec(z46.object({
28811
+ siteId: z46.string().optional(),
28812
+ apiBaseUrl: z46.string().optional(),
28813
+ portalToken: z46.string().nullable().optional(),
28814
+ previewToken: z46.string().nullable().optional(),
28634
28815
  stage: previewStageSchema.optional()
28635
28816
  }));
28636
28817
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -28734,6 +28915,7 @@ var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
28734
28915
  successMessage: source.successMessage,
28735
28916
  waitlistMessage: source.waitlistMessage,
28736
28917
  buttonVariant: source.buttonVariant,
28918
+ overlayEnabled: source.overlayEnabled,
28737
28919
  spamProtectionEnabled: source.spamProtectionEnabled,
28738
28920
  supportEmail: source.supportEmail
28739
28921
  }
@@ -28909,6 +29091,12 @@ var eventRegistrationManifest = createBlockManifest({
28909
29091
  buttonVariant: {
28910
29092
  $bind: { from: "content.buttonVariant", fallback: "primary" }
28911
29093
  },
29094
+ overlayEnabled: {
29095
+ $bind: {
29096
+ from: "$root.eventRegistrationOverlayEnabled",
29097
+ fallback: false
29098
+ }
29099
+ },
28912
29100
  // Event data from loader
28913
29101
  events: { $bind: { from: "data.events" } },
28914
29102
  // Stage for preview mode (allows registering for draft events)
@@ -28929,7 +29117,7 @@ var eventRegistrationBlockDefinition = {
28929
29117
  manifest: eventRegistrationManifest,
28930
29118
  runtime: eventRegistrationBlockRuntime,
28931
29119
  dataSchemas: {
28932
- events: z46.array(publicEventSchema).optional(),
29120
+ events: z47.array(publicEventSchema).optional(),
28933
29121
  occurrenceContext: occurrenceContextSchema.optional()
28934
29122
  },
28935
29123
  dataLoaders: {
@@ -28953,73 +29141,73 @@ var eventRegistrationBlockDefinition = {
28953
29141
  };
28954
29142
 
28955
29143
  // ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
28956
- import { z as z47 } from "zod";
28957
- var contentEntrySchema2 = z47.object({
28958
- id: z47.string(),
28959
- slug: z47.string(),
28960
- contentTypeSlug: z47.string()
28961
- });
28962
- var courseEntrySubrouteContextSchema = z47.union([
28963
- z47.object({
28964
- kind: z47.literal("course-run"),
28965
- run: z47.object({
28966
- courseId: z47.string(),
28967
- seriesId: z47.string(),
28968
- runSlug: z47.string(),
28969
- runName: z47.string().nullable()
29144
+ import { z as z48 } from "zod";
29145
+ var contentEntrySchema2 = z48.object({
29146
+ id: z48.string(),
29147
+ slug: z48.string(),
29148
+ contentTypeSlug: z48.string()
29149
+ });
29150
+ var courseEntrySubrouteContextSchema = z48.union([
29151
+ z48.object({
29152
+ kind: z48.literal("course-run"),
29153
+ run: z48.object({
29154
+ courseId: z48.string(),
29155
+ seriesId: z48.string(),
29156
+ runSlug: z48.string(),
29157
+ runName: z48.string().nullable()
28970
29158
  })
28971
29159
  }),
28972
- z47.object({
28973
- kind: z47.literal("event-occurrence"),
29160
+ z48.object({
29161
+ kind: z48.literal("event-occurrence"),
28974
29162
  occurrence: occurrenceContextSchema
28975
29163
  })
28976
29164
  ]);
28977
- var courseRegistrationSourceSchema = z47.object({
28978
- siteId: z47.string().optional(),
28979
- apiBaseUrl: z47.string().optional(),
28980
- portalToken: z47.string().nullable().optional(),
29165
+ var courseRegistrationSourceSchema = z48.object({
29166
+ siteId: z48.string().optional(),
29167
+ apiBaseUrl: z48.string().optional(),
29168
+ portalToken: z48.string().nullable().optional(),
28981
29169
  contentEntry: contentEntrySchema2.nullable().optional(),
28982
29170
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
28983
- courses: z47.array(publicCourseSchema).nullable().optional(),
28984
- className: z47.string().nullable().optional(),
28985
- showSessions: z47.boolean().optional(),
28986
- showPrice: z47.boolean().optional(),
28987
- showCapacity: z47.boolean().optional(),
28988
- showVenue: z47.boolean().optional(),
28989
- successMessage: z47.string().optional(),
28990
- waitlistMessage: z47.string().optional(),
28991
- membershipMessage: z47.string().optional(),
28992
- buttonText: z47.string().nullable().optional(),
29171
+ courses: z48.array(publicCourseSchema).nullable().optional(),
29172
+ className: z48.string().nullable().optional(),
29173
+ showSessions: z48.boolean().optional(),
29174
+ showPrice: z48.boolean().optional(),
29175
+ showCapacity: z48.boolean().optional(),
29176
+ showVenue: z48.boolean().optional(),
29177
+ successMessage: z48.string().optional(),
29178
+ waitlistMessage: z48.string().optional(),
29179
+ membershipMessage: z48.string().optional(),
29180
+ buttonText: z48.string().nullable().optional(),
28993
29181
  buttonVariant: registrationButtonVariantSchema.optional(),
28994
29182
  stage: previewStageSchema.optional()
28995
29183
  });
28996
- var courseRegistrationDisplaySchema = z47.object({
28997
- kind: z47.literal("course-registration"),
28998
- state: z47.literal("shell"),
28999
- className: z47.string().nullable(),
29000
- summaryButtonText: z47.string()
29184
+ var courseRegistrationDisplaySchema = z48.object({
29185
+ kind: z48.literal("course-registration"),
29186
+ state: z48.literal("shell"),
29187
+ className: z48.string().nullable(),
29188
+ summaryButtonText: z48.string()
29001
29189
  });
29002
- var courseRegistrationHydrationSchema = z47.object({
29190
+ var courseRegistrationHydrationSchema = z48.object({
29003
29191
  contentEntry: contentEntrySchema2.nullable().optional(),
29004
29192
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
29005
- courses: z47.array(publicCourseSchema).nullable().optional(),
29006
- showSessions: z47.boolean().optional(),
29007
- showPrice: z47.boolean().optional(),
29008
- showCapacity: z47.boolean().optional(),
29009
- showVenue: z47.boolean().optional(),
29010
- successMessage: z47.string().optional(),
29011
- waitlistMessage: z47.string().optional(),
29012
- membershipMessage: z47.string().optional(),
29193
+ courses: z48.array(publicCourseSchema).nullable().optional(),
29194
+ showSessions: z48.boolean().optional(),
29195
+ showPrice: z48.boolean().optional(),
29196
+ showCapacity: z48.boolean().optional(),
29197
+ showVenue: z48.boolean().optional(),
29198
+ successMessage: z48.string().optional(),
29199
+ waitlistMessage: z48.string().optional(),
29200
+ membershipMessage: z48.string().optional(),
29013
29201
  buttonVariant: registrationButtonVariantSchema.optional()
29014
29202
  });
29015
- var courseRegistrationRenderSchema = z47.object({
29203
+ var courseRegistrationRenderSchema = z48.object({
29016
29204
  display: courseRegistrationDisplaySchema,
29017
29205
  hydration: courseRegistrationHydrationSchema
29018
29206
  });
29019
- var courseRegistrationIslandMetaCodec = createZodCodec(z47.object({
29020
- siteId: z47.string().optional(),
29021
- apiBaseUrl: z47.string().optional(),
29022
- portalToken: z47.string().nullable().optional(),
29207
+ var courseRegistrationIslandMetaCodec = createZodCodec(z48.object({
29208
+ siteId: z48.string().optional(),
29209
+ apiBaseUrl: z48.string().optional(),
29210
+ portalToken: z48.string().nullable().optional(),
29023
29211
  stage: previewStageSchema.optional()
29024
29212
  }));
29025
29213
  var courseRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -29279,32 +29467,32 @@ var courseRegistrationBlockDefinition = {
29279
29467
  };
29280
29468
 
29281
29469
  // ../blocks/src/system/blocks/event-details.ts
29282
- import { z as z49 } from "zod";
29470
+ import { z as z50 } from "zod";
29283
29471
 
29284
29472
  // ../blocks/src/system/blocks/shop.shared.ts
29285
- import { z as z48 } from "zod";
29286
- var publicPassProductSchema = z48.object({
29287
- id: z48.string(),
29288
- productUseCase: z48.enum(["event_pass", "appointment_package"]).default("event_pass"),
29289
- name: z48.string(),
29290
- description: z48.string().nullable(),
29291
- price: z48.number(),
29292
- currency: z48.string(),
29293
- creditsTotal: z48.number(),
29294
- pricePerCredit: z48.number(),
29295
- validDays: z48.number().nullable(),
29296
- eligibleCategoryIds: z48.array(z48.string()),
29297
- eligibleCategoryNames: z48.array(z48.string())
29298
- });
29299
- var publicMembershipProductSchema = z48.object({
29300
- id: z48.string(),
29301
- name: z48.string(),
29302
- description: z48.string().nullable(),
29303
- price: z48.number(),
29304
- currency: z48.string(),
29305
- billingInterval: z48.enum(["month", "year"]),
29306
- eligibleCategoryIds: z48.array(z48.string()),
29307
- eligibleCategoryNames: z48.array(z48.string())
29473
+ import { z as z49 } from "zod";
29474
+ var publicPassProductSchema = z49.object({
29475
+ id: z49.string(),
29476
+ productUseCase: z49.enum(["event_pass", "appointment_package"]).default("event_pass"),
29477
+ name: z49.string(),
29478
+ description: z49.string().nullable(),
29479
+ price: z49.number(),
29480
+ currency: z49.string(),
29481
+ creditsTotal: z49.number(),
29482
+ pricePerCredit: z49.number(),
29483
+ validDays: z49.number().nullable(),
29484
+ eligibleCategoryIds: z49.array(z49.string()),
29485
+ eligibleCategoryNames: z49.array(z49.string())
29486
+ });
29487
+ var publicMembershipProductSchema = z49.object({
29488
+ id: z49.string(),
29489
+ name: z49.string(),
29490
+ description: z49.string().nullable(),
29491
+ price: z49.number(),
29492
+ currency: z49.string(),
29493
+ billingInterval: z49.enum(["month", "year"]),
29494
+ eligibleCategoryIds: z49.array(z49.string()),
29495
+ eligibleCategoryNames: z49.array(z49.string())
29308
29496
  });
29309
29497
 
29310
29498
  // ../blocks/src/system/blocks/event-details.ts
@@ -29439,40 +29627,40 @@ var eventDetailsManifest = createBlockManifest({
29439
29627
  })
29440
29628
  ]
29441
29629
  });
29442
- var occurrenceContextSchema2 = z49.object({
29443
- id: z49.string(),
29444
- seriesId: z49.string(),
29445
- startsAt: z49.string(),
29446
- endsAt: z49.string(),
29447
- timeZone: z49.string(),
29448
- capacityOverride: z49.number().nullable().optional(),
29449
- overrides: z49.record(z49.string(), z49.unknown()).nullable().optional()
29630
+ var occurrenceContextSchema2 = z50.object({
29631
+ id: z50.string(),
29632
+ seriesId: z50.string(),
29633
+ startsAt: z50.string(),
29634
+ endsAt: z50.string(),
29635
+ timeZone: z50.string(),
29636
+ capacityOverride: z50.number().nullable().optional(),
29637
+ overrides: z50.record(z50.string(), z50.unknown()).nullable().optional()
29450
29638
  }).nullable();
29451
- var eventAutoApplyDiscountPreviewBaseSchema = z49.object({
29452
- id: z49.string(),
29453
- publicLabel: z49.string(),
29454
- description: z49.string().nullable(),
29455
- minTicketsRequired: z49.number().nullable()
29639
+ var eventAutoApplyDiscountPreviewBaseSchema = z50.object({
29640
+ id: z50.string(),
29641
+ publicLabel: z50.string(),
29642
+ description: z50.string().nullable(),
29643
+ minTicketsRequired: z50.number().nullable()
29456
29644
  });
29457
- var eventAutoApplyDiscountPreviewSchema = z49.discriminatedUnion("discountType", [
29645
+ var eventAutoApplyDiscountPreviewSchema = z50.discriminatedUnion("discountType", [
29458
29646
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29459
- discountType: z49.literal("percent"),
29460
- discountPercent: z49.number(),
29461
- discountAmountCents: z49.null()
29647
+ discountType: z50.literal("percent"),
29648
+ discountPercent: z50.number(),
29649
+ discountAmountCents: z50.null()
29462
29650
  }),
29463
29651
  eventAutoApplyDiscountPreviewBaseSchema.extend({
29464
- discountType: z49.literal("fixed"),
29465
- discountPercent: z49.null(),
29466
- discountAmountCents: z49.number()
29652
+ discountType: z50.literal("fixed"),
29653
+ discountPercent: z50.null(),
29654
+ discountAmountCents: z50.number()
29467
29655
  })
29468
29656
  ]);
29469
29657
  var eventDetailsBlockDefinition = {
29470
29658
  manifest: eventDetailsManifest,
29471
29659
  dataSchemas: {
29472
- eventDetailsData: z49.object({
29660
+ eventDetailsData: z50.object({
29473
29661
  events: publicEventsArraySchema,
29474
- sitePasses: z49.object({ passes: z49.array(publicPassProductSchema) }),
29475
- siteMemberships: z49.object({ memberships: z49.array(publicMembershipProductSchema) }),
29662
+ sitePasses: z50.object({ passes: z50.array(publicPassProductSchema) }),
29663
+ siteMemberships: z50.object({ memberships: z50.array(publicMembershipProductSchema) }),
29476
29664
  autoApplyDiscount: eventAutoApplyDiscountPreviewSchema.nullable().optional().default(null)
29477
29665
  }).optional(),
29478
29666
  occurrenceContext: occurrenceContextSchema2.optional()
@@ -29796,7 +29984,7 @@ var eventSpotlightBlockDefinition = {
29796
29984
  };
29797
29985
 
29798
29986
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
29799
- import { z as z51 } from "zod";
29987
+ import { z as z52 } from "zod";
29800
29988
 
29801
29989
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
29802
29990
  var COLUMN_CLASSES = {
@@ -29904,16 +30092,16 @@ function computeMediaTransformStyle(value, style, targetAspectRatio, options) {
29904
30092
  }
29905
30093
 
29906
30094
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
29907
- import { z as z50 } from "zod";
30095
+ import { z as z51 } from "zod";
29908
30096
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
29909
- var eventPageSizeSchema = z50.union([
29910
- z50.literal(3),
29911
- z50.literal(6),
29912
- z50.literal(10),
29913
- z50.literal(12),
29914
- z50.literal(20),
29915
- z50.literal(24),
29916
- z50.literal(30)
30097
+ var eventPageSizeSchema = z51.union([
30098
+ z51.literal(3),
30099
+ z51.literal(6),
30100
+ z51.literal(10),
30101
+ z51.literal(12),
30102
+ z51.literal(20),
30103
+ z51.literal(24),
30104
+ z51.literal(30)
29917
30105
  ]);
29918
30106
  var eventPageSizeSet = new Set(eventPageSizeValues);
29919
30107
  function resolveEventPageSize(value, fallback = 12) {
@@ -29923,15 +30111,15 @@ function resolveEventPageSize(value, fallback = 12) {
29923
30111
  function resolveEventCalendarListPageSize(input) {
29924
30112
  return resolveEventPageSize(input.eventsPerPage);
29925
30113
  }
29926
- var eventListPaginationActionSchema = z50.discriminatedUnion("kind", [
29927
- z50.object({
29928
- kind: z50.literal("loadMore"),
29929
- label: z50.string()
30114
+ var eventListPaginationActionSchema = z51.discriminatedUnion("kind", [
30115
+ z51.object({
30116
+ kind: z51.literal("loadMore"),
30117
+ label: z51.string()
29930
30118
  }),
29931
- z50.object({
29932
- kind: z50.literal("seeAllLink"),
29933
- label: z50.string(),
29934
- href: z50.string()
30119
+ z51.object({
30120
+ kind: z51.literal("seeAllLink"),
30121
+ label: z51.string(),
30122
+ href: z51.string()
29935
30123
  })
29936
30124
  ]);
29937
30125
  function resolveEventListPaginationAction(input) {
@@ -29944,89 +30132,89 @@ function resolveEventListPaginationAction(input) {
29944
30132
  }
29945
30133
 
29946
30134
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
29947
- var legacyEventCardVariantSchema = z51.enum(["variant1", "variant2"]);
29948
- var eventCardVariantInputSchema = z51.union([
30135
+ var legacyEventCardVariantSchema = z52.enum(["variant1", "variant2"]);
30136
+ var eventCardVariantInputSchema = z52.union([
29949
30137
  cardVariantRoleSchema,
29950
30138
  legacyEventCardVariantSchema
29951
30139
  ]);
29952
- var cardOrientationSchema = z51.enum(["vertical", "horizontal"]);
29953
- var eventBlockKindSchema = z51.enum(eventBlockKindValues);
29954
- var eventSurfaceScopeSchema = z51.enum(eventSurfaceScopeValues);
29955
- var eventScheduleScopeSchema2 = z51.enum(eventScheduleScopeValues);
29956
- var eventListingSourceSchema = z51.object({
29957
- events: z51.array(publicEventSchema).nullable().optional(),
29958
- siteId: z51.string(),
29959
- apiBaseUrl: z51.string().optional(),
30140
+ var cardOrientationSchema = z52.enum(["vertical", "horizontal"]);
30141
+ var eventBlockKindSchema = z52.enum(eventBlockKindValues);
30142
+ var eventSurfaceScopeSchema = z52.enum(eventSurfaceScopeValues);
30143
+ var eventScheduleScopeSchema2 = z52.enum(eventScheduleScopeValues);
30144
+ var eventListingSourceSchema = z52.object({
30145
+ events: z52.array(publicEventSchema).nullable().optional(),
30146
+ siteId: z52.string(),
30147
+ apiBaseUrl: z52.string().optional(),
29960
30148
  stage: previewStageSchema.optional(),
29961
30149
  layout: eventLayoutSchema.optional(),
29962
30150
  columns: columnOptionSchema.optional(),
29963
- eventsPerPage: z51.string().optional(),
29964
- paginationMode: z51.enum(["loadMore", "seeAllLink"]).optional(),
29965
- seeAllUrl: z51.string().optional(),
29966
- loadMoreText: z51.string().optional(),
30151
+ eventsPerPage: z52.string().optional(),
30152
+ paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30153
+ seeAllUrl: z52.string().optional(),
30154
+ loadMoreText: z52.string().optional(),
29967
30155
  cardVariant: eventCardVariantInputSchema.optional(),
29968
30156
  buttonVariant: eventButtonVariantSchema.optional(),
29969
- buttonText: z51.string().optional(),
29970
- showVenue: z51.boolean().optional(),
29971
- showMap: z51.boolean().optional(),
29972
- showCapacity: z51.boolean().optional(),
29973
- emptyMessage: z51.string().optional(),
29974
- className: z51.string().optional(),
29975
- showFilters: z51.boolean().nullable().optional(),
30157
+ buttonText: z52.string().optional(),
30158
+ showVenue: z52.boolean().optional(),
30159
+ showMap: z52.boolean().optional(),
30160
+ showCapacity: z52.boolean().optional(),
30161
+ emptyMessage: z52.string().optional(),
30162
+ className: z52.string().optional(),
30163
+ showFilters: z52.boolean().nullable().optional(),
29976
30164
  showCategoryFilter: filterAutoShowSchema.optional(),
29977
- showVenueFilter: z51.boolean().nullable().optional(),
29978
- showStaffFilter: z51.boolean().nullable().optional(),
30165
+ showVenueFilter: z52.boolean().nullable().optional(),
30166
+ showStaffFilter: z52.boolean().nullable().optional(),
29979
30167
  eventKind: eventBlockKindSchema.nullable().optional(),
29980
30168
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
29981
- filterEventPresets: z51.union([z51.string(), z51.array(z51.string())]).nullable().optional(),
30169
+ filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
29982
30170
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
29983
- filterCategoryIds: z51.string().nullable().optional(),
29984
- filterStaffMemberId: z51.string().nullable().optional(),
29985
- filterVenueId: z51.string().nullable().optional()
30171
+ filterCategoryIds: z52.string().nullable().optional(),
30172
+ filterStaffMemberId: z52.string().nullable().optional(),
30173
+ filterVenueId: z52.string().nullable().optional()
29986
30174
  });
29987
- var eventListingDisplaySchema = z51.object({
29988
- kind: z51.literal("event-listing"),
29989
- state: z51.enum(["loading", "empty", "ready"]),
30175
+ var eventListingDisplaySchema = z52.object({
30176
+ kind: z52.literal("event-listing"),
30177
+ state: z52.enum(["loading", "empty", "ready"]),
29990
30178
  listLayout: eventLayoutSchema,
29991
- className: z51.string().nullable(),
29992
- emptyMessage: z51.string(),
29993
- loadingMessage: z51.string(),
29994
- containerClass: z51.string(),
30179
+ className: z52.string().nullable(),
30180
+ emptyMessage: z52.string(),
30181
+ loadingMessage: z52.string(),
30182
+ containerClass: z52.string(),
29995
30183
  cardVariant: cardVariantRoleSchema,
29996
30184
  buttonVariant: eventButtonVariantSchema,
29997
- buttonText: z51.string(),
29998
- showVenue: z51.boolean(),
29999
- showMap: z51.boolean(),
30000
- showCapacity: z51.boolean(),
30185
+ buttonText: z52.string(),
30186
+ showVenue: z52.boolean(),
30187
+ showMap: z52.boolean(),
30188
+ showCapacity: z52.boolean(),
30001
30189
  orientation: cardOrientationSchema,
30002
- events: z51.array(publicEventSchema)
30190
+ events: z52.array(publicEventSchema)
30003
30191
  });
30004
- var eventListingHydrationSchema = z51.object({
30005
- siteId: z51.string(),
30192
+ var eventListingHydrationSchema = z52.object({
30193
+ siteId: z52.string(),
30006
30194
  stage: previewStageSchema.optional(),
30007
30195
  eventsPerPage: eventPageSizeSchema,
30008
30196
  paginationAction: eventListPaginationActionSchema,
30009
- showFilters: z51.boolean(),
30197
+ showFilters: z52.boolean(),
30010
30198
  showCategoryFilter: filterAutoShowSchema,
30011
- showVenueFilter: z51.boolean(),
30012
- showStaffFilter: z51.boolean(),
30199
+ showVenueFilter: z52.boolean(),
30200
+ showStaffFilter: z52.boolean(),
30013
30201
  eventKind: eventBlockKindSchema,
30014
30202
  eventSurface: eventSurfaceScopeSchema,
30015
- filterEventPresets: z51.string().nullable(),
30203
+ filterEventPresets: z52.string().nullable(),
30016
30204
  scheduleScope: eventScheduleScopeSchema2,
30017
- filterCategoryIds: z51.string().nullable().optional(),
30018
- filterStaffMemberId: z51.string().nullable().optional(),
30019
- filterVenueId: z51.string().nullable().optional(),
30020
- fetchInitialEventsOnMount: z51.boolean()
30205
+ filterCategoryIds: z52.string().nullable().optional(),
30206
+ filterStaffMemberId: z52.string().nullable().optional(),
30207
+ filterVenueId: z52.string().nullable().optional(),
30208
+ fetchInitialEventsOnMount: z52.boolean()
30021
30209
  });
30022
- var eventListingRenderSchema = z51.object({
30210
+ var eventListingRenderSchema = z52.object({
30023
30211
  display: eventListingDisplaySchema,
30024
30212
  hydration: eventListingHydrationSchema
30025
30213
  });
30026
30214
  var eventListingIslandMetaCodec = createZodCodec(
30027
- z51.object({
30028
- siteId: z51.string(),
30029
- apiBaseUrl: z51.string().optional(),
30215
+ z52.object({
30216
+ siteId: z52.string(),
30217
+ apiBaseUrl: z52.string().optional(),
30030
30218
  stage: previewStageSchema.optional()
30031
30219
  })
30032
30220
  );
@@ -30393,15 +30581,15 @@ var eventListingBlockDefinition = {
30393
30581
  };
30394
30582
 
30395
30583
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
30396
- import { z as z52 } from "zod";
30397
- var eventBlockKindSchema2 = z52.enum(eventBlockKindValues);
30398
- var eventSurfaceScopeSchema2 = z52.enum(eventSurfaceScopeValues);
30399
- var eventScheduleScopeSchema3 = z52.enum(eventScheduleScopeValues);
30400
- var eventCalendarSourceSchema = z52.object(
30584
+ import { z as z53 } from "zod";
30585
+ var eventBlockKindSchema2 = z53.enum(eventBlockKindValues);
30586
+ var eventSurfaceScopeSchema2 = z53.enum(eventSurfaceScopeValues);
30587
+ var eventScheduleScopeSchema3 = z53.enum(eventScheduleScopeValues);
30588
+ var eventCalendarSourceSchema = z53.object(
30401
30589
  {
30402
- events: z52.array(publicEventSchema).nullable().optional(),
30403
- siteId: z52.string(),
30404
- apiBaseUrl: z52.string().optional(),
30590
+ events: z53.array(publicEventSchema).nullable().optional(),
30591
+ siteId: z53.string(),
30592
+ apiBaseUrl: z53.string().optional(),
30405
30593
  stage: previewStageSchema.optional(),
30406
30594
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
30407
30595
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -30409,78 +30597,78 @@ var eventCalendarSourceSchema = z52.object(
30409
30597
  listColumns: columnOptionSchema.optional(),
30410
30598
  layout: eventLayoutSchema.optional(),
30411
30599
  columns: columnOptionSchema.optional(),
30412
- eventsPerPage: z52.string().optional(),
30413
- paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30414
- seeAllUrl: z52.string().optional(),
30415
- loadMoreText: z52.string().optional(),
30600
+ eventsPerPage: z53.string().optional(),
30601
+ paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
30602
+ seeAllUrl: z53.string().optional(),
30603
+ loadMoreText: z53.string().optional(),
30416
30604
  startOfWeek: weekStartSchema.optional(),
30417
30605
  calendarTabViews: calendarTabViewsSchema.optional(),
30418
- showFilters: z52.boolean().nullable().optional(),
30606
+ showFilters: z53.boolean().nullable().optional(),
30419
30607
  showCategoryFilter: filterAutoShowSchema.optional(),
30420
- showVenueFilter: z52.boolean().nullable().optional(),
30421
- showStaffFilter: z52.boolean().nullable().optional(),
30608
+ showVenueFilter: z53.boolean().nullable().optional(),
30609
+ showStaffFilter: z53.boolean().nullable().optional(),
30422
30610
  kind: eventBlockKindSchema2.nullable().optional(),
30423
30611
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
30424
- filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30612
+ filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30425
30613
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
30426
- filterCategoryIds: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
30427
- filterStaffMemberId: z52.string().nullable().optional(),
30428
- filterVenueId: z52.string().nullable().optional(),
30614
+ filterCategoryIds: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30615
+ filterStaffMemberId: z53.string().nullable().optional(),
30616
+ filterVenueId: z53.string().nullable().optional(),
30429
30617
  buttonVariant: eventButtonVariantSchema.optional(),
30430
- buttonText: z52.string().optional(),
30431
- showVenue: z52.boolean().nullable().optional(),
30432
- showMap: z52.boolean().nullable().optional(),
30433
- showCapacity: z52.boolean().nullable().optional(),
30434
- emptyMessage: z52.string().optional(),
30435
- className: z52.string().optional()
30618
+ buttonText: z53.string().optional(),
30619
+ showVenue: z53.boolean().nullable().optional(),
30620
+ showMap: z53.boolean().nullable().optional(),
30621
+ showCapacity: z53.boolean().nullable().optional(),
30622
+ emptyMessage: z53.string().optional(),
30623
+ className: z53.string().optional()
30436
30624
  }
30437
30625
  );
30438
- var eventCalendarDisplaySchema = z52.object({
30439
- kind: z52.literal("event-calendar"),
30626
+ var eventCalendarDisplaySchema = z53.object({
30627
+ kind: z53.literal("event-calendar"),
30440
30628
  displayMode: eventCalendarDisplayModeSchema,
30441
- className: z52.string().nullable(),
30442
- events: z52.array(publicEventSchema),
30629
+ className: z53.string().nullable(),
30630
+ events: z53.array(publicEventSchema),
30443
30631
  listLayout: eventLayoutSchema,
30444
30632
  listColumns: columnOptionSchema,
30445
30633
  eventsPerPage: eventPageSizeSchema,
30446
30634
  paginationAction: eventListPaginationActionSchema,
30447
30635
  startOfWeek: weekStartSchema,
30448
30636
  calendarTabViews: calendarTabViewsSchema,
30449
- showFilters: z52.boolean(),
30637
+ showFilters: z53.boolean(),
30450
30638
  showCategoryFilter: filterAutoShowSchema,
30451
- showVenueFilter: z52.boolean(),
30452
- showStaffFilter: z52.boolean(),
30639
+ showVenueFilter: z53.boolean(),
30640
+ showStaffFilter: z53.boolean(),
30453
30641
  eventKind: eventBlockKindSchema2,
30454
30642
  eventSurface: eventSurfaceScopeSchema2,
30455
- filterEventPresets: z52.string().nullable(),
30643
+ filterEventPresets: z53.string().nullable(),
30456
30644
  scheduleScope: eventScheduleScopeSchema3,
30457
- filterCategoryIds: z52.string().nullable(),
30458
- filterStaffMemberId: z52.string().nullable(),
30459
- filterVenueId: z52.string().nullable(),
30645
+ filterCategoryIds: z53.string().nullable(),
30646
+ filterStaffMemberId: z53.string().nullable(),
30647
+ filterVenueId: z53.string().nullable(),
30460
30648
  buttonVariant: eventButtonVariantSchema,
30461
- buttonText: z52.string(),
30462
- showVenue: z52.boolean(),
30463
- showMap: z52.boolean(),
30464
- showCapacity: z52.boolean(),
30465
- emptyMessage: z52.string()
30466
- });
30467
- var eventCalendarHydrationSchema = z52.object({
30468
- siteId: z52.string(),
30649
+ buttonText: z53.string(),
30650
+ showVenue: z53.boolean(),
30651
+ showMap: z53.boolean(),
30652
+ showCapacity: z53.boolean(),
30653
+ emptyMessage: z53.string()
30654
+ });
30655
+ var eventCalendarHydrationSchema = z53.object({
30656
+ siteId: z53.string(),
30469
30657
  stage: previewStageSchema.optional(),
30470
- prefetchedEvents: z52.boolean(),
30658
+ prefetchedEvents: z53.boolean(),
30471
30659
  eventKind: eventBlockKindSchema2,
30472
30660
  eventSurface: eventSurfaceScopeSchema2,
30473
- filterEventPresets: z52.string().nullable(),
30661
+ filterEventPresets: z53.string().nullable(),
30474
30662
  scheduleScope: eventScheduleScopeSchema3
30475
30663
  });
30476
- var eventCalendarRenderSchema = z52.object({
30664
+ var eventCalendarRenderSchema = z53.object({
30477
30665
  display: eventCalendarDisplaySchema,
30478
30666
  hydration: eventCalendarHydrationSchema
30479
30667
  });
30480
30668
  var eventCalendarIslandMetaCodec = createZodCodec(
30481
- z52.object({
30482
- siteId: z52.string(),
30483
- apiBaseUrl: z52.string().optional(),
30669
+ z53.object({
30670
+ siteId: z53.string(),
30671
+ apiBaseUrl: z53.string().optional(),
30484
30672
  stage: previewStageSchema.optional()
30485
30673
  })
30486
30674
  );
@@ -31189,7 +31377,7 @@ var eventCalendarBlockDefinition = {
31189
31377
  };
31190
31378
 
31191
31379
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31192
- import { z as z53 } from "zod";
31380
+ import { z as z54 } from "zod";
31193
31381
 
31194
31382
  // ../blocks/src/system/blocks/offerings-preview/model.ts
31195
31383
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -31281,13 +31469,13 @@ function isRecord5(value) {
31281
31469
  }
31282
31470
 
31283
31471
  // ../blocks/src/system/blocks/offerings-preview/index.ts
31284
- var publicRouteCandidatesSchema = z53.object({
31285
- routes: z53.array(z53.object({
31286
- entityId: z53.string(),
31287
- path: z53.string(),
31288
- title: z53.string(),
31289
- kind: z53.enum(["page", "content"]),
31290
- contentTypeKey: z53.string().nullable().optional()
31472
+ var publicRouteCandidatesSchema = z54.object({
31473
+ routes: z54.array(z54.object({
31474
+ entityId: z54.string(),
31475
+ path: z54.string(),
31476
+ title: z54.string(),
31477
+ kind: z54.enum(["page", "content"]),
31478
+ contentTypeKey: z54.string().nullable().optional()
31291
31479
  }))
31292
31480
  });
31293
31481
  var groupOverrideFields = [
@@ -31685,7 +31873,7 @@ function isRecord6(value) {
31685
31873
  }
31686
31874
 
31687
31875
  // ../blocks/src/system/blocks/embed.ts
31688
- import { z as z54 } from "zod";
31876
+ import { z as z55 } from "zod";
31689
31877
  var embedFields = [
31690
31878
  // Section heading
31691
31879
  parseFieldDefinition({
@@ -31916,18 +32104,18 @@ var embedManifest = createBlockManifest({
31916
32104
  spacing: "lg"
31917
32105
  }
31918
32106
  });
31919
- var embedEntrySchema = z54.object({
31920
- id: z54.string(),
31921
- identifier: z54.string(),
31922
- title: z54.string(),
31923
- slug: z54.string().nullable().optional(),
31924
- content: z54.record(z54.string(), z54.unknown()).optional(),
31925
- publishedAt: z54.string().nullable().optional()
32107
+ var embedEntrySchema = z55.object({
32108
+ id: z55.string(),
32109
+ identifier: z55.string(),
32110
+ title: z55.string(),
32111
+ slug: z55.string().nullable().optional(),
32112
+ content: z55.record(z55.string(), z55.unknown()).optional(),
32113
+ publishedAt: z55.string().nullable().optional()
31926
32114
  });
31927
32115
  var embedBlockDefinition = {
31928
32116
  manifest: embedManifest,
31929
32117
  dataSchemas: {
31930
- entries: z54.array(embedEntrySchema).optional()
32118
+ entries: z55.array(embedEntrySchema).optional()
31931
32119
  },
31932
32120
  dataLoaders: {
31933
32121
  entries: {
@@ -33111,52 +33299,52 @@ var fileDownloadBlockDefinition = {
33111
33299
  };
33112
33300
 
33113
33301
  // ../blocks/src/system/blocks/shop.ts
33114
- import { z as z58 } from "zod";
33302
+ import { z as z59 } from "zod";
33115
33303
 
33116
33304
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33117
- import { z as z57 } from "zod";
33305
+ import { z as z58 } from "zod";
33118
33306
 
33119
33307
  // ../blocks/src/system/blocks/products/shared.ts
33120
- import { z as z55 } from "zod";
33121
- var publicProductVariantSchema = z55.object({
33122
- id: z55.string(),
33123
- title: z55.string(),
33124
- sku: z55.string().nullable(),
33125
- priceCents: z55.number(),
33126
- stockQuantity: z55.number().nullable(),
33127
- soldOut: z55.boolean()
33128
- });
33129
- var publicProductSchema = z55.object({
33130
- id: z55.string(),
33131
- contentEntryId: z55.string().nullable(),
33132
- title: z55.string(),
33133
- slug: z55.string(),
33134
- path: z55.string().nullable(),
33135
- status: z55.enum(["draft", "active"]),
33136
- priceCents: z55.number(),
33137
- currency: z55.string(),
33138
- productType: z55.enum(["physical", "digital"]),
33139
- requiresShipping: z55.boolean(),
33140
- hasVariants: z55.boolean(),
33141
- trackInventory: z55.boolean(),
33142
- soldOut: z55.boolean(),
33143
- category: z55.object({
33144
- id: z55.string(),
33145
- name: z55.string(),
33146
- slug: z55.string()
33308
+ import { z as z56 } from "zod";
33309
+ var publicProductVariantSchema = z56.object({
33310
+ id: z56.string(),
33311
+ title: z56.string(),
33312
+ sku: z56.string().nullable(),
33313
+ priceCents: z56.number(),
33314
+ stockQuantity: z56.number().nullable(),
33315
+ soldOut: z56.boolean()
33316
+ });
33317
+ var publicProductSchema = z56.object({
33318
+ id: z56.string(),
33319
+ contentEntryId: z56.string().nullable(),
33320
+ title: z56.string(),
33321
+ slug: z56.string(),
33322
+ path: z56.string().nullable(),
33323
+ status: z56.enum(["draft", "active"]),
33324
+ priceCents: z56.number(),
33325
+ currency: z56.string(),
33326
+ productType: z56.enum(["physical", "digital"]),
33327
+ requiresShipping: z56.boolean(),
33328
+ hasVariants: z56.boolean(),
33329
+ trackInventory: z56.boolean(),
33330
+ soldOut: z56.boolean(),
33331
+ category: z56.object({
33332
+ id: z56.string(),
33333
+ name: z56.string(),
33334
+ slug: z56.string()
33147
33335
  }).nullable(),
33148
- summary: z55.string().nullable(),
33149
- body: z55.unknown().nullable(),
33150
- gallery: z55.array(
33151
- z55.object({
33152
- url: z55.string(),
33153
- alt: z55.string().nullable()
33336
+ summary: z56.string().nullable(),
33337
+ body: z56.unknown().nullable(),
33338
+ gallery: z56.array(
33339
+ z56.object({
33340
+ url: z56.string(),
33341
+ alt: z56.string().nullable()
33154
33342
  })
33155
33343
  ),
33156
- variants: z55.array(publicProductVariantSchema)
33344
+ variants: z56.array(publicProductVariantSchema)
33157
33345
  });
33158
- var publicProductsResponseSchema = z55.object({
33159
- products: z55.array(publicProductSchema)
33346
+ var publicProductsResponseSchema = z56.object({
33347
+ products: z56.array(publicProductSchema)
33160
33348
  });
33161
33349
 
33162
33350
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -33220,27 +33408,27 @@ function deriveCreditProductLabels(products, options = {}) {
33220
33408
  }
33221
33409
 
33222
33410
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
33223
- import { z as z56 } from "zod";
33224
- var storedProductCartItemSchema = z56.object({
33225
- kind: z56.literal("product"),
33226
- productId: z56.string().min(1),
33227
- productCategoryId: z56.string().min(1).optional().nullable(),
33228
- variantId: z56.string().min(1).optional().nullable(),
33229
- title: z56.string().min(1),
33230
- variantTitle: z56.string().optional().nullable(),
33231
- quantity: z56.number().finite(),
33232
- unitPriceCents: z56.number().finite(),
33233
- currency: z56.string().min(1),
33234
- imageUrl: z56.string().optional().nullable(),
33235
- soldOut: z56.boolean().optional()
33236
- });
33237
- var storedPassCartItemSchema = z56.object({
33238
- kind: z56.literal("pass"),
33239
- passId: z56.string().min(1),
33240
- title: z56.string().min(1),
33241
- quantity: z56.number().finite().optional(),
33242
- unitPriceCents: z56.number().finite(),
33243
- currency: z56.string().min(1)
33411
+ import { z as z57 } from "zod";
33412
+ var storedProductCartItemSchema = z57.object({
33413
+ kind: z57.literal("product"),
33414
+ productId: z57.string().min(1),
33415
+ productCategoryId: z57.string().min(1).optional().nullable(),
33416
+ variantId: z57.string().min(1).optional().nullable(),
33417
+ title: z57.string().min(1),
33418
+ variantTitle: z57.string().optional().nullable(),
33419
+ quantity: z57.number().finite(),
33420
+ unitPriceCents: z57.number().finite(),
33421
+ currency: z57.string().min(1),
33422
+ imageUrl: z57.string().optional().nullable(),
33423
+ soldOut: z57.boolean().optional()
33424
+ });
33425
+ var storedPassCartItemSchema = z57.object({
33426
+ kind: z57.literal("pass"),
33427
+ passId: z57.string().min(1),
33428
+ title: z57.string().min(1),
33429
+ quantity: z57.number().finite().optional(),
33430
+ unitPriceCents: z57.number().finite(),
33431
+ currency: z57.string().min(1)
33244
33432
  });
33245
33433
  function deriveCommerceCheckoutState(state) {
33246
33434
  if (state.items.length === 0) {
@@ -33279,10 +33467,7 @@ function resolveSelectedProduct(products, contentEntry, productSlug) {
33279
33467
 
33280
33468
  // ../blocks/src/system/runtime/nodes/commerce/shared/display.ts
33281
33469
  function formatCommercePrice(cents, currency) {
33282
- return new Intl.NumberFormat("en-US", {
33283
- style: "currency",
33284
- currency: currency.toUpperCase()
33285
- }).format(cents / 100);
33470
+ return formatCurrencyAmount(cents, currency);
33286
33471
  }
33287
33472
  function getPassesHeading(passes, explicitHeading) {
33288
33473
  if (explicitHeading) return explicitHeading;
@@ -33477,214 +33662,214 @@ function formatValidity(days) {
33477
33662
  }
33478
33663
 
33479
33664
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
33480
- var shopModeSchema = z57.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33481
- var contentEntrySchema3 = z57.object({
33482
- id: z57.string().nullable().optional(),
33483
- slug: z57.string().nullable().optional()
33665
+ var shopModeSchema = z58.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
33666
+ var contentEntrySchema3 = z58.object({
33667
+ id: z58.string().nullable().optional(),
33668
+ slug: z58.string().nullable().optional()
33484
33669
  }).nullable();
33485
- var shopSourceSchema = z57.object({
33486
- className: z57.string().nullable().optional(),
33670
+ var shopSourceSchema = z58.object({
33671
+ className: z58.string().nullable().optional(),
33487
33672
  mode: shopModeSchema.optional(),
33488
- heading: z57.string().nullable().optional(),
33489
- productSlug: z57.string().nullable().optional(),
33490
- showPasses: z57.boolean().optional(),
33491
- showMemberships: z57.boolean().optional(),
33492
- layout: z57.enum(["grid", "list"]).optional(),
33493
- columns: z57.string().optional(),
33494
- showDescriptions: z57.boolean().optional(),
33495
- showSummary: z57.boolean().optional(),
33496
- showBody: z57.boolean().optional(),
33497
- showPrices: z57.boolean().optional(),
33498
- showValidityPeriod: z57.boolean().optional(),
33499
- showPricePerCredit: z57.boolean().nullable().optional(),
33500
- passesHeading: z57.string().optional(),
33501
- membershipsHeading: z57.string().optional(),
33502
- buyButtonText: z57.string().optional(),
33503
- addButtonText: z57.string().optional(),
33504
- passPurchaseMode: z57.enum(["add_to_cart", "buy_now"]).optional(),
33505
- subscribeButtonText: z57.string().optional(),
33506
- emptyStateText: z57.string().optional(),
33507
- checkoutButtonText: z57.string().optional(),
33508
- clearButtonText: z57.string().optional(),
33509
- submitButtonText: z57.string().optional(),
33673
+ heading: z58.string().nullable().optional(),
33674
+ productSlug: z58.string().nullable().optional(),
33675
+ showPasses: z58.boolean().optional(),
33676
+ showMemberships: z58.boolean().optional(),
33677
+ layout: z58.enum(["grid", "list"]).optional(),
33678
+ columns: z58.string().optional(),
33679
+ showDescriptions: z58.boolean().optional(),
33680
+ showSummary: z58.boolean().optional(),
33681
+ showBody: z58.boolean().optional(),
33682
+ showPrices: z58.boolean().optional(),
33683
+ showValidityPeriod: z58.boolean().optional(),
33684
+ showPricePerCredit: z58.boolean().nullable().optional(),
33685
+ passesHeading: z58.string().optional(),
33686
+ membershipsHeading: z58.string().optional(),
33687
+ buyButtonText: z58.string().optional(),
33688
+ addButtonText: z58.string().optional(),
33689
+ passPurchaseMode: z58.enum(["add_to_cart", "buy_now"]).optional(),
33690
+ subscribeButtonText: z58.string().optional(),
33691
+ emptyStateText: z58.string().optional(),
33692
+ checkoutButtonText: z58.string().optional(),
33693
+ clearButtonText: z58.string().optional(),
33694
+ submitButtonText: z58.string().optional(),
33510
33695
  contentEntry: contentEntrySchema3.optional(),
33511
- passes: z57.array(publicPassProductSchema).nullable().optional(),
33512
- memberships: z57.array(publicMembershipProductSchema).nullable().optional(),
33513
- products: z57.array(publicProductSchema).nullable().optional(),
33514
- siteId: z57.string().optional(),
33515
- apiBaseUrl: z57.string().optional(),
33696
+ passes: z58.array(publicPassProductSchema).nullable().optional(),
33697
+ memberships: z58.array(publicMembershipProductSchema).nullable().optional(),
33698
+ products: z58.array(publicProductSchema).nullable().optional(),
33699
+ siteId: z58.string().optional(),
33700
+ apiBaseUrl: z58.string().optional(),
33516
33701
  stage: previewStageSchema.optional()
33517
33702
  });
33518
- var productVariantOptionDisplaySchema = z57.object({
33519
- id: z57.string(),
33520
- label: z57.string(),
33521
- soldOut: z57.boolean()
33522
- });
33523
- var productCardDisplaySchema = z57.object({
33524
- productId: z57.string(),
33525
- title: z57.string(),
33526
- path: z57.string().nullable(),
33527
- summary: z57.string().nullable(),
33528
- priceLabel: z57.string().nullable(),
33529
- image: z57.object({
33530
- url: z57.string(),
33531
- alt: z57.string().nullable()
33703
+ var productVariantOptionDisplaySchema = z58.object({
33704
+ id: z58.string(),
33705
+ label: z58.string(),
33706
+ soldOut: z58.boolean()
33707
+ });
33708
+ var productCardDisplaySchema = z58.object({
33709
+ productId: z58.string(),
33710
+ title: z58.string(),
33711
+ path: z58.string().nullable(),
33712
+ summary: z58.string().nullable(),
33713
+ priceLabel: z58.string().nullable(),
33714
+ image: z58.object({
33715
+ url: z58.string(),
33716
+ alt: z58.string().nullable()
33532
33717
  }).nullable(),
33533
- variantOptions: z57.array(productVariantOptionDisplaySchema),
33534
- selectedVariantId: z57.string().nullable(),
33535
- selectionLabel: z57.string(),
33536
- actionLabel: z57.string(),
33537
- soldOut: z57.boolean()
33538
- });
33539
- var productListDisplaySchema = z57.object({
33540
- kind: z57.literal("product-list"),
33541
- state: z57.enum(["empty", "ready"]),
33542
- heading: z57.string().nullable(),
33543
- className: z57.string().nullable(),
33544
- layout: z57.enum(["grid", "list"]),
33545
- columns: z57.string(),
33546
- emptyMessage: z57.string(),
33547
- cards: z57.array(productCardDisplaySchema)
33548
- });
33549
- var productDetailDisplaySchema = z57.discriminatedUnion("state", [
33550
- z57.object({
33551
- kind: z57.literal("product-detail"),
33552
- state: z57.literal("empty"),
33553
- heading: z57.string().nullable(),
33554
- className: z57.string().nullable(),
33555
- emptyMessage: z57.string()
33718
+ variantOptions: z58.array(productVariantOptionDisplaySchema),
33719
+ selectedVariantId: z58.string().nullable(),
33720
+ selectionLabel: z58.string(),
33721
+ actionLabel: z58.string(),
33722
+ soldOut: z58.boolean()
33723
+ });
33724
+ var productListDisplaySchema = z58.object({
33725
+ kind: z58.literal("product-list"),
33726
+ state: z58.enum(["empty", "ready"]),
33727
+ heading: z58.string().nullable(),
33728
+ className: z58.string().nullable(),
33729
+ layout: z58.enum(["grid", "list"]),
33730
+ columns: z58.string(),
33731
+ emptyMessage: z58.string(),
33732
+ cards: z58.array(productCardDisplaySchema)
33733
+ });
33734
+ var productDetailDisplaySchema = z58.discriminatedUnion("state", [
33735
+ z58.object({
33736
+ kind: z58.literal("product-detail"),
33737
+ state: z58.literal("empty"),
33738
+ heading: z58.string().nullable(),
33739
+ className: z58.string().nullable(),
33740
+ emptyMessage: z58.string()
33556
33741
  }),
33557
- z57.object({
33558
- kind: z57.literal("product-detail"),
33559
- state: z57.literal("ready"),
33560
- heading: z57.string().nullable(),
33561
- className: z57.string().nullable(),
33562
- title: z57.string(),
33563
- priceLabel: z57.string(),
33564
- summary: z57.string().nullable(),
33565
- categoryLabel: z57.string().nullable(),
33566
- gallery: z57.array(z57.object({
33567
- url: z57.string(),
33568
- alt: z57.string().nullable()
33742
+ z58.object({
33743
+ kind: z58.literal("product-detail"),
33744
+ state: z58.literal("ready"),
33745
+ heading: z58.string().nullable(),
33746
+ className: z58.string().nullable(),
33747
+ title: z58.string(),
33748
+ priceLabel: z58.string(),
33749
+ summary: z58.string().nullable(),
33750
+ categoryLabel: z58.string().nullable(),
33751
+ gallery: z58.array(z58.object({
33752
+ url: z58.string(),
33753
+ alt: z58.string().nullable()
33569
33754
  })),
33570
- variantOptions: z57.array(productVariantOptionDisplaySchema),
33571
- selectedVariantId: z57.string().nullable(),
33572
- selectionLabel: z57.string(),
33573
- actionLabel: z57.string(),
33574
- soldOut: z57.boolean(),
33575
- body: z57.unknown().nullable()
33755
+ variantOptions: z58.array(productVariantOptionDisplaySchema),
33756
+ selectedVariantId: z58.string().nullable(),
33757
+ selectionLabel: z58.string(),
33758
+ actionLabel: z58.string(),
33759
+ soldOut: z58.boolean(),
33760
+ body: z58.unknown().nullable()
33576
33761
  })
33577
33762
  ]);
33578
- var passCardDisplaySchema = z57.object({
33579
- id: z57.string(),
33580
- title: z57.string(),
33581
- description: z57.string().nullable(),
33582
- priceLabel: z57.string(),
33583
- creditsLabel: z57.string(),
33584
- perCreditLabel: z57.string().nullable(),
33585
- validityLabel: z57.string().nullable(),
33586
- actionLabel: z57.string()
33587
- });
33588
- var membershipCardDisplaySchema = z57.object({
33589
- id: z57.string(),
33590
- title: z57.string(),
33591
- description: z57.string().nullable(),
33592
- priceLabel: z57.string(),
33593
- intervalLabel: z57.string(),
33594
- actionLabel: z57.string()
33595
- });
33596
- var passesMembershipsDisplaySchema = z57.object({
33597
- kind: z57.literal("passes-memberships"),
33598
- state: z57.enum(["empty", "ready"]),
33599
- className: z57.string().nullable(),
33600
- layout: z57.enum(["grid", "list"]),
33601
- columns: z57.string(),
33602
- emptyMessage: z57.string(),
33603
- passesHeading: z57.string(),
33604
- membershipsHeading: z57.string(),
33605
- passes: z57.array(passCardDisplaySchema),
33606
- memberships: z57.array(membershipCardDisplaySchema)
33607
- });
33608
- var cartLineDisplaySchema = z57.object({
33609
- key: z57.string(),
33610
- title: z57.string(),
33611
- priceLabel: z57.string(),
33612
- quantity: z57.number(),
33613
- quantityEditable: z57.boolean()
33614
- });
33615
- var cartDisplaySchema = z57.object({
33616
- kind: z57.literal("cart"),
33617
- state: z57.enum(["empty", "ready"]),
33618
- heading: z57.string().nullable(),
33619
- className: z57.string().nullable(),
33620
- emptyMessage: z57.string(),
33621
- supportText: z57.string().nullable(),
33622
- items: z57.array(cartLineDisplaySchema),
33623
- subtotalLabel: z57.string().nullable(),
33624
- checkoutButtonText: z57.string(),
33625
- clearButtonText: z57.string()
33626
- });
33627
- var checkoutDisplaySchema = z57.object({
33628
- kind: z57.literal("checkout"),
33629
- state: z57.enum(["empty", "blocked", "ready"]),
33630
- heading: z57.string().nullable(),
33631
- className: z57.string().nullable(),
33632
- message: z57.string().nullable(),
33633
- submitButtonText: z57.string()
33634
- });
33635
- var passesMembershipsHydrationSchema = z57.object({
33636
- passes: z57.array(publicPassProductSchema),
33637
- memberships: z57.array(publicMembershipProductSchema),
33638
- passPurchaseMode: z57.enum(["add_to_cart", "buy_now"])
33639
- });
33640
- var productListHydrationSchema = z57.object({
33641
- products: z57.array(publicProductSchema),
33642
- showSummary: z57.boolean(),
33643
- showPrices: z57.boolean(),
33644
- addButtonText: z57.string()
33645
- });
33646
- var productDetailHydrationSchema = z57.object({
33647
- products: z57.array(publicProductSchema),
33648
- productId: z57.string().nullable(),
33649
- showSummary: z57.boolean(),
33650
- showBody: z57.boolean(),
33651
- addButtonText: z57.string()
33652
- });
33653
- var cartHydrationSchema = z57.object({
33654
- emptyStateText: z57.string(),
33655
- checkoutButtonText: z57.string(),
33656
- clearButtonText: z57.string()
33657
- });
33658
- var checkoutHydrationSchema = z57.object({
33659
- emptyStateText: z57.string(),
33660
- submitButtonText: z57.string()
33661
- });
33662
- var passesMembershipsRenderSchema = z57.object({
33763
+ var passCardDisplaySchema = z58.object({
33764
+ id: z58.string(),
33765
+ title: z58.string(),
33766
+ description: z58.string().nullable(),
33767
+ priceLabel: z58.string(),
33768
+ creditsLabel: z58.string(),
33769
+ perCreditLabel: z58.string().nullable(),
33770
+ validityLabel: z58.string().nullable(),
33771
+ actionLabel: z58.string()
33772
+ });
33773
+ var membershipCardDisplaySchema = z58.object({
33774
+ id: z58.string(),
33775
+ title: z58.string(),
33776
+ description: z58.string().nullable(),
33777
+ priceLabel: z58.string(),
33778
+ intervalLabel: z58.string(),
33779
+ actionLabel: z58.string()
33780
+ });
33781
+ var passesMembershipsDisplaySchema = z58.object({
33782
+ kind: z58.literal("passes-memberships"),
33783
+ state: z58.enum(["empty", "ready"]),
33784
+ className: z58.string().nullable(),
33785
+ layout: z58.enum(["grid", "list"]),
33786
+ columns: z58.string(),
33787
+ emptyMessage: z58.string(),
33788
+ passesHeading: z58.string(),
33789
+ membershipsHeading: z58.string(),
33790
+ passes: z58.array(passCardDisplaySchema),
33791
+ memberships: z58.array(membershipCardDisplaySchema)
33792
+ });
33793
+ var cartLineDisplaySchema = z58.object({
33794
+ key: z58.string(),
33795
+ title: z58.string(),
33796
+ priceLabel: z58.string(),
33797
+ quantity: z58.number(),
33798
+ quantityEditable: z58.boolean()
33799
+ });
33800
+ var cartDisplaySchema = z58.object({
33801
+ kind: z58.literal("cart"),
33802
+ state: z58.enum(["empty", "ready"]),
33803
+ heading: z58.string().nullable(),
33804
+ className: z58.string().nullable(),
33805
+ emptyMessage: z58.string(),
33806
+ supportText: z58.string().nullable(),
33807
+ items: z58.array(cartLineDisplaySchema),
33808
+ subtotalLabel: z58.string().nullable(),
33809
+ checkoutButtonText: z58.string(),
33810
+ clearButtonText: z58.string()
33811
+ });
33812
+ var checkoutDisplaySchema = z58.object({
33813
+ kind: z58.literal("checkout"),
33814
+ state: z58.enum(["empty", "blocked", "ready"]),
33815
+ heading: z58.string().nullable(),
33816
+ className: z58.string().nullable(),
33817
+ message: z58.string().nullable(),
33818
+ submitButtonText: z58.string()
33819
+ });
33820
+ var passesMembershipsHydrationSchema = z58.object({
33821
+ passes: z58.array(publicPassProductSchema),
33822
+ memberships: z58.array(publicMembershipProductSchema),
33823
+ passPurchaseMode: z58.enum(["add_to_cart", "buy_now"])
33824
+ });
33825
+ var productListHydrationSchema = z58.object({
33826
+ products: z58.array(publicProductSchema),
33827
+ showSummary: z58.boolean(),
33828
+ showPrices: z58.boolean(),
33829
+ addButtonText: z58.string()
33830
+ });
33831
+ var productDetailHydrationSchema = z58.object({
33832
+ products: z58.array(publicProductSchema),
33833
+ productId: z58.string().nullable(),
33834
+ showSummary: z58.boolean(),
33835
+ showBody: z58.boolean(),
33836
+ addButtonText: z58.string()
33837
+ });
33838
+ var cartHydrationSchema = z58.object({
33839
+ emptyStateText: z58.string(),
33840
+ checkoutButtonText: z58.string(),
33841
+ clearButtonText: z58.string()
33842
+ });
33843
+ var checkoutHydrationSchema = z58.object({
33844
+ emptyStateText: z58.string(),
33845
+ submitButtonText: z58.string()
33846
+ });
33847
+ var passesMembershipsRenderSchema = z58.object({
33663
33848
  display: passesMembershipsDisplaySchema,
33664
33849
  hydration: passesMembershipsHydrationSchema
33665
33850
  });
33666
- var productListRenderSchema = z57.object({
33851
+ var productListRenderSchema = z58.object({
33667
33852
  display: productListDisplaySchema,
33668
33853
  hydration: productListHydrationSchema
33669
33854
  });
33670
- var productDetailRenderSchema = z57.object({
33855
+ var productDetailRenderSchema = z58.object({
33671
33856
  display: productDetailDisplaySchema,
33672
33857
  hydration: productDetailHydrationSchema
33673
33858
  });
33674
- var cartRenderSchema = z57.object({
33859
+ var cartRenderSchema = z58.object({
33675
33860
  display: cartDisplaySchema,
33676
33861
  hydration: cartHydrationSchema
33677
33862
  });
33678
- var checkoutRenderSchema = z57.object({
33863
+ var checkoutRenderSchema = z58.object({
33679
33864
  display: checkoutDisplaySchema,
33680
33865
  hydration: checkoutHydrationSchema
33681
33866
  });
33682
33867
  function resolveShowPricePerCredit(source) {
33683
33868
  return source.showPricePerCredit ?? true;
33684
33869
  }
33685
- var shopIslandMetaCodec = createZodCodec(z57.object({
33686
- siteId: z57.string().optional(),
33687
- apiBaseUrl: z57.string().optional(),
33870
+ var shopIslandMetaCodec = createZodCodec(z58.object({
33871
+ siteId: z58.string().optional(),
33872
+ apiBaseUrl: z58.string().optional(),
33688
33873
  stage: previewStageSchema.optional()
33689
33874
  }));
33690
33875
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -34062,9 +34247,9 @@ var shopBlockDefinition = {
34062
34247
  runtime: shopBlockRuntime,
34063
34248
  dataSchemas: {
34064
34249
  // listPublicPasses returns { passes: [...] }
34065
- passes: z58.object({ passes: z58.array(publicPassProductSchema) }).optional(),
34250
+ passes: z59.object({ passes: z59.array(publicPassProductSchema) }).optional(),
34066
34251
  // listPublicMemberships returns { memberships: [...] }
34067
- memberships: z58.object({ memberships: z58.array(publicMembershipProductSchema) }).optional()
34252
+ memberships: z59.object({ memberships: z59.array(publicMembershipProductSchema) }).optional()
34068
34253
  },
34069
34254
  dataLoaders: {
34070
34255
  // Load passes for display
@@ -34087,7 +34272,7 @@ var shopBlockDefinition = {
34087
34272
  };
34088
34273
 
34089
34274
  // ../blocks/src/system/blocks/product-list.ts
34090
- import { z as z59 } from "zod";
34275
+ import { z as z60 } from "zod";
34091
34276
  var productListManifest = createBlockManifest({
34092
34277
  id: "block.product-list",
34093
34278
  version: "1.0.0",
@@ -34220,7 +34405,7 @@ var productListBlockDefinition = {
34220
34405
  }
34221
34406
  }
34222
34407
  };
34223
- var productListDataSchema = z59.object({
34408
+ var productListDataSchema = z60.object({
34224
34409
  products: publicProductsResponseSchema.optional()
34225
34410
  });
34226
34411
 
@@ -34481,72 +34666,72 @@ var checkoutBlockDefinition = {
34481
34666
  };
34482
34667
 
34483
34668
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
34484
- import { z as z60 } from "zod";
34485
- var publicGiftCardOfferSchema = z60.object({
34486
- id: z60.string(),
34487
- kind: z60.literal("gift_card"),
34488
- title: z60.string(),
34489
- description: z60.string().nullable(),
34490
- sortOrder: z60.number().int(),
34491
- giftCard: z60.object({
34492
- fixedDenominations: z60.array(z60.number().int().positive()),
34493
- customAmountEnabled: z60.boolean(),
34494
- customAmountMinCents: z60.number().int().positive(),
34495
- customAmountMaxCents: z60.number().int().positive()
34669
+ import { z as z61 } from "zod";
34670
+ var publicGiftCardOfferSchema = z61.object({
34671
+ id: z61.string(),
34672
+ kind: z61.literal("gift_card"),
34673
+ title: z61.string(),
34674
+ description: z61.string().nullable(),
34675
+ sortOrder: z61.number().int(),
34676
+ giftCard: z61.object({
34677
+ fixedDenominations: z61.array(z61.number().int().positive()),
34678
+ customAmountEnabled: z61.boolean(),
34679
+ customAmountMinCents: z61.number().int().positive(),
34680
+ customAmountMaxCents: z61.number().int().positive()
34496
34681
  }),
34497
- voucher: z60.null()
34498
- });
34499
- var publicVoucherOfferSchema = z60.object({
34500
- id: z60.string(),
34501
- kind: z60.literal("voucher"),
34502
- title: z60.string(),
34503
- description: z60.string().nullable(),
34504
- sortOrder: z60.number().int(),
34505
- giftCard: z60.null(),
34506
- voucher: z60.object({
34507
- purchaseAmountCents: z60.number().int().positive()
34682
+ voucher: z61.null()
34683
+ });
34684
+ var publicVoucherOfferSchema = z61.object({
34685
+ id: z61.string(),
34686
+ kind: z61.literal("voucher"),
34687
+ title: z61.string(),
34688
+ description: z61.string().nullable(),
34689
+ sortOrder: z61.number().int(),
34690
+ giftCard: z61.null(),
34691
+ voucher: z61.object({
34692
+ purchaseAmountCents: z61.number().int().positive()
34508
34693
  })
34509
34694
  });
34510
- var publicGiftingOffersResponseSchema = z60.object({
34511
- currency: z60.string(),
34512
- giftCards: z60.array(publicGiftCardOfferSchema),
34513
- vouchers: z60.array(publicVoucherOfferSchema)
34695
+ var publicGiftingOffersResponseSchema = z61.object({
34696
+ currency: z61.string(),
34697
+ giftCards: z61.array(publicGiftCardOfferSchema),
34698
+ vouchers: z61.array(publicVoucherOfferSchema)
34514
34699
  });
34515
- var giftingSourceSchema = z60.object({
34516
- siteId: z60.string().optional(),
34517
- apiBaseUrl: z60.string().optional(),
34700
+ var giftingSourceSchema = z61.object({
34701
+ siteId: z61.string().optional(),
34702
+ apiBaseUrl: z61.string().optional(),
34518
34703
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
34519
- className: z60.string().nullable().optional(),
34520
- heading: z60.string().nullable().optional(),
34521
- intro: z60.string().nullable().optional(),
34522
- giftCardsHeading: z60.string().nullable().optional(),
34523
- vouchersHeading: z60.string().nullable().optional(),
34524
- emptyStateText: z60.string().nullable().optional(),
34525
- checkoutButtonText: z60.string().nullable().optional(),
34526
- successMessage: z60.string().nullable().optional()
34527
- });
34528
- var giftingDisplaySchema = z60.object({
34529
- kind: z60.literal("gifting"),
34530
- state: z60.literal("ready"),
34531
- className: z60.string().nullable(),
34532
- heading: z60.string(),
34533
- intro: z60.string().nullable(),
34534
- giftCardsHeading: z60.string(),
34535
- vouchersHeading: z60.string(),
34536
- emptyStateText: z60.string()
34537
- });
34538
- var giftingHydrationSchema = z60.object({
34704
+ className: z61.string().nullable().optional(),
34705
+ heading: z61.string().nullable().optional(),
34706
+ intro: z61.string().nullable().optional(),
34707
+ giftCardsHeading: z61.string().nullable().optional(),
34708
+ vouchersHeading: z61.string().nullable().optional(),
34709
+ emptyStateText: z61.string().nullable().optional(),
34710
+ checkoutButtonText: z61.string().nullable().optional(),
34711
+ successMessage: z61.string().nullable().optional()
34712
+ });
34713
+ var giftingDisplaySchema = z61.object({
34714
+ kind: z61.literal("gifting"),
34715
+ state: z61.literal("ready"),
34716
+ className: z61.string().nullable(),
34717
+ heading: z61.string(),
34718
+ intro: z61.string().nullable(),
34719
+ giftCardsHeading: z61.string(),
34720
+ vouchersHeading: z61.string(),
34721
+ emptyStateText: z61.string()
34722
+ });
34723
+ var giftingHydrationSchema = z61.object({
34539
34724
  offers: publicGiftingOffersResponseSchema.nullable(),
34540
- checkoutButtonText: z60.string(),
34541
- successMessage: z60.string()
34725
+ checkoutButtonText: z61.string(),
34726
+ successMessage: z61.string()
34542
34727
  });
34543
- var giftingRenderSchema = z60.object({
34728
+ var giftingRenderSchema = z61.object({
34544
34729
  display: giftingDisplaySchema,
34545
34730
  hydration: giftingHydrationSchema
34546
34731
  });
34547
- var giftingIslandMetaCodec = createZodCodec(z60.object({
34548
- siteId: z60.string().optional(),
34549
- apiBaseUrl: z60.string().optional()
34732
+ var giftingIslandMetaCodec = createZodCodec(z61.object({
34733
+ siteId: z61.string().optional(),
34734
+ apiBaseUrl: z61.string().optional()
34550
34735
  }));
34551
34736
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
34552
34737
  "siteId",
@@ -34717,7 +34902,61 @@ var giftingBlockDefinition = {
34717
34902
  };
34718
34903
 
34719
34904
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
34720
- import { z as z61 } from "zod";
34905
+ import { z as z62 } from "zod";
34906
+
34907
+ // ../blocks/src/system/blocks/newsletter-signup-destination.ts
34908
+ function parseNewsletterSignupBlockId(value) {
34909
+ const trimmed = parseTrimmedString(value);
34910
+ return trimmed && BLOCK_ID_PATTERN.test(trimmed) ? trimmed : null;
34911
+ }
34912
+ function parseSignedNewsletterDestinationRef(value) {
34913
+ const trimmed = parseTrimmedString(value);
34914
+ return trimmed && SIGNED_DESTINATION_REF_PATTERN.test(trimmed) ? trimmed : null;
34915
+ }
34916
+ function parseNewsletterSignupDestinationProvider(value) {
34917
+ return value === "riverbank" || value === "mailchimp" ? value : null;
34918
+ }
34919
+ function buildNewsletterSignupBlockRef(blockId) {
34920
+ const parsed = parseNewsletterSignupBlockId(blockId);
34921
+ return parsed ? { tag: "block_ref", blockId: parsed } : null;
34922
+ }
34923
+ function normalizeNewsletterSignupEditorValuesForDestination(values) {
34924
+ const destinationProvider = parseNewsletterSignupDestinationProvider(values.destinationProvider) ?? "riverbank";
34925
+ if (destinationProvider === "mailchimp") {
34926
+ return {
34927
+ destinationProvider,
34928
+ mailchimpAudienceId: values.mailchimpAudienceId,
34929
+ mailchimpTags: values.mailchimpTags
34930
+ };
34931
+ }
34932
+ return {
34933
+ destinationProvider,
34934
+ listId: values.listId,
34935
+ tags: values.tags
34936
+ };
34937
+ }
34938
+ function deriveNewsletterSignupRuntimeSource(values) {
34939
+ const normalized = normalizeNewsletterSignupEditorValuesForDestination(values);
34940
+ if (normalized.destinationProvider === "mailchimp") {
34941
+ return {
34942
+ destinationProvider: "mailchimp",
34943
+ listId: null,
34944
+ tags: null
34945
+ };
34946
+ }
34947
+ return {
34948
+ destinationProvider: "riverbank",
34949
+ listId: parseTrimmedString(normalized.listId),
34950
+ tags: parseTrimmedString(normalized.tags)
34951
+ };
34952
+ }
34953
+ var BLOCK_ID_PATTERN = /^[A-Za-z0-9._:-]{1,200}$/;
34954
+ var SIGNED_DESTINATION_REF_PATTERN = /^[A-Za-z0-9._~-]{16,1000}$/;
34955
+ function parseTrimmedString(value) {
34956
+ if (typeof value !== "string") return null;
34957
+ const trimmed = value.trim();
34958
+ return trimmed.length > 0 ? trimmed : null;
34959
+ }
34721
34960
 
34722
34961
  // ../blocks/src/system/runtime/nodes/newsletter-form.types.ts
34723
34962
  function getPresetFields(preset2, options) {
@@ -34770,49 +35009,65 @@ function withOptionalPhone(fields3, includePhone) {
34770
35009
  }
34771
35010
 
34772
35011
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
34773
- var newsletterPresetSchema = z61.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
34774
- var newsletterFieldSchema = z61.object({
34775
- id: z61.string(),
34776
- type: z61.enum(["email", "text"]),
34777
- label: z61.string(),
34778
- required: z61.boolean(),
34779
- placeholder: z61.string().optional()
34780
- });
34781
- var newsletterSourceSchema = z61.object({
34782
- siteId: z61.string().optional(),
34783
- apiBaseUrl: z61.string().optional(),
34784
- listId: z61.string().nullable().optional(),
35012
+ var newsletterPresetSchema = z62.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
35013
+ var newsletterDestinationProviderSchema = z62.enum(["riverbank", "mailchimp"]);
35014
+ var newsletterFieldSchema = z62.object({
35015
+ id: z62.string(),
35016
+ type: z62.enum(["email", "text"]),
35017
+ label: z62.string(),
35018
+ required: z62.boolean(),
35019
+ placeholder: z62.string().optional()
35020
+ });
35021
+ var newsletterSignupBlockIdSchema = z62.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
35022
+ var signedNewsletterDestinationRefSchema = z62.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
35023
+ var newsletterPublicDestinationRefSchema = z62.discriminatedUnion("tag", [
35024
+ z62.object({
35025
+ tag: z62.literal("block_ref"),
35026
+ blockId: newsletterSignupBlockIdSchema
35027
+ }),
35028
+ z62.object({
35029
+ tag: z62.literal("signed_destination_ref"),
35030
+ token: signedNewsletterDestinationRefSchema
35031
+ })
35032
+ ]);
35033
+ var newsletterSourceSchema = z62.object({
35034
+ blockId: z62.string().nullable().optional(),
35035
+ siteId: z62.string().optional(),
35036
+ apiBaseUrl: z62.string().optional(),
35037
+ listId: z62.string().nullable().optional(),
35038
+ destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
34785
35039
  preset: newsletterPresetSchema.optional(),
34786
- includePhone: z61.boolean().optional(),
34787
- buttonLabel: z61.string().nullable().optional(),
34788
- successMessage: z61.string().nullable().optional(),
34789
- privacyNote: z61.string().nullable().optional(),
34790
- tags: z61.string().nullable().optional(),
34791
- spamProtectionEnabled: z61.boolean().optional(),
34792
- className: z61.string().nullable().optional()
34793
- });
34794
- var newsletterDisplaySchema = z61.object({
34795
- kind: z61.literal("newsletter-form"),
34796
- className: z61.string().nullable(),
34797
- buttonLabel: z61.string(),
34798
- successMessage: z61.string().nullable(),
34799
- privacyNote: z61.string().nullable(),
34800
- fields: z61.array(newsletterFieldSchema)
34801
- });
34802
- var newsletterHydrationSchema = z61.object({
34803
- listId: z61.string().nullable().optional(),
35040
+ includePhone: z62.boolean().optional(),
35041
+ buttonLabel: z62.string().nullable().optional(),
35042
+ successMessage: z62.string().nullable().optional(),
35043
+ privacyNote: z62.string().nullable().optional(),
35044
+ tags: z62.string().nullable().optional(),
35045
+ spamProtectionEnabled: z62.boolean().optional(),
35046
+ className: z62.string().nullable().optional()
35047
+ });
35048
+ var newsletterDisplaySchema = z62.object({
35049
+ kind: z62.literal("newsletter-form"),
35050
+ className: z62.string().nullable(),
35051
+ buttonLabel: z62.string(),
35052
+ successMessage: z62.string().nullable(),
35053
+ privacyNote: z62.string().nullable(),
35054
+ fields: z62.array(newsletterFieldSchema)
35055
+ });
35056
+ var newsletterHydrationSchema = z62.object({
35057
+ destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
35058
+ listId: z62.string().nullable().optional(),
34804
35059
  preset: newsletterPresetSchema,
34805
- includePhone: z61.boolean(),
34806
- tags: z61.string().nullable().optional(),
34807
- spamProtectionEnabled: z61.boolean().optional()
35060
+ includePhone: z62.boolean(),
35061
+ tags: z62.string().nullable().optional(),
35062
+ spamProtectionEnabled: z62.boolean().optional()
34808
35063
  });
34809
- var newsletterRenderSchema = z61.object({
35064
+ var newsletterRenderSchema = z62.object({
34810
35065
  display: newsletterDisplaySchema,
34811
35066
  hydration: newsletterHydrationSchema
34812
35067
  });
34813
- var newsletterIslandMetaCodec = createZodCodec(z61.object({
34814
- siteId: z61.string().optional(),
34815
- apiBaseUrl: z61.string().optional()
35068
+ var newsletterIslandMetaCodec = createZodCodec(z62.object({
35069
+ siteId: z62.string().optional(),
35070
+ apiBaseUrl: z62.string().optional()
34816
35071
  }));
34817
35072
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
34818
35073
  function buildNewsletterDisplay(source) {
@@ -34833,16 +35088,20 @@ var newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
34833
35088
  source: createZodCodec(newsletterSourceSchema),
34834
35089
  render: createZodCodec(newsletterRenderSchema)
34835
35090
  },
34836
- buildRender: (source) => ({
34837
- display: buildNewsletterDisplay(source),
34838
- hydration: {
34839
- listId: source.listId,
34840
- preset: source.preset ?? "emailOnly",
34841
- includePhone: source.includePhone ?? false,
34842
- tags: source.tags ?? null,
34843
- spamProtectionEnabled: source.spamProtectionEnabled
34844
- }
34845
- })
35091
+ buildRender: (source) => {
35092
+ const runtimeSource = deriveNewsletterSignupRuntimeSource(source);
35093
+ return {
35094
+ display: buildNewsletterDisplay(source),
35095
+ hydration: {
35096
+ destinationRef: buildNewsletterSignupBlockRef(source.blockId),
35097
+ listId: runtimeSource.listId,
35098
+ preset: source.preset ?? "emailOnly",
35099
+ includePhone: source.includePhone ?? false,
35100
+ tags: runtimeSource.tags,
35101
+ spamProtectionEnabled: source.spamProtectionEnabled
35102
+ }
35103
+ };
35104
+ }
34846
35105
  });
34847
35106
  var newsletterFormInteractiveIslandPropsCodec = createInteractiveIslandCodec({
34848
35107
  runtime: newsletterFormBlockRuntime,
@@ -34854,6 +35113,20 @@ var newsletterFormInteractiveIslandPropsCodec = createInteractiveIslandCodec({
34854
35113
  apiBaseUrl: value.apiBaseUrl
34855
35114
  })
34856
35115
  });
35116
+ function parseRequiredNewsletterSignupBlockId(value) {
35117
+ const parsed = parseNewsletterSignupBlockId(value);
35118
+ if (!parsed) {
35119
+ throw new Error("Newsletter signup block destination ref requires blockId");
35120
+ }
35121
+ return parsed;
35122
+ }
35123
+ function parseRequiredSignedNewsletterDestinationRef(value) {
35124
+ const parsed = parseSignedNewsletterDestinationRef(value);
35125
+ if (!parsed) {
35126
+ throw new Error("Newsletter signup signed destination ref requires token");
35127
+ }
35128
+ return parsed;
35129
+ }
34857
35130
 
34858
35131
  // ../blocks/src/system/blocks/newsletter-signup.ts
34859
35132
  var stackedComposition = composeFragments([
@@ -34933,23 +35206,23 @@ var newsletterSignupBlockDefinition = {
34933
35206
  };
34934
35207
 
34935
35208
  // ../blocks/src/system/blocks/team-members.ts
34936
- import { z as z62 } from "zod";
35209
+ import { z as z63 } from "zod";
34937
35210
  var ITEM_NAME2 = "member";
34938
35211
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
34939
35212
  message: "Team member photos must be image media"
34940
35213
  }).nullable();
34941
- var teamMemberDataSchema = z62.object({
34942
- _type: z62.literal("teamMember"),
34943
- id: z62.string(),
34944
- name: z62.string(),
34945
- role: z62.string().nullable(),
34946
- roleLabel: z62.string().nullable(),
34947
- bio: z62.string().nullable(),
34948
- summary: z62.string().nullable(),
35214
+ var teamMemberDataSchema = z63.object({
35215
+ _type: z63.literal("teamMember"),
35216
+ id: z63.string(),
35217
+ name: z63.string(),
35218
+ role: z63.string().nullable(),
35219
+ roleLabel: z63.string().nullable(),
35220
+ bio: z63.string().nullable(),
35221
+ summary: z63.string().nullable(),
34949
35222
  photo: teamMemberPhotoSchema,
34950
- profilePath: z62.string().nullable()
35223
+ profilePath: z63.string().nullable()
34951
35224
  });
34952
- var teamMembersDataSchema = z62.array(teamMemberDataSchema);
35225
+ var teamMembersDataSchema = z63.array(teamMemberDataSchema);
34953
35226
  var dynamicSourceWhen = { equals: "site_staff" };
34954
35227
  var manualSourceWhen = { equals: "site_staff", not: true };
34955
35228
  var headingNode = text(
@@ -37647,34 +37920,34 @@ import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
37647
37920
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
37648
37921
 
37649
37922
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
37650
- import { z as z63 } from "zod";
37651
- var themeBridgeConfigSchema = z63.object({
37652
- tokens: z63.record(z63.string(), z63.string()),
37653
- typography: z63.object({
37654
- headingFamily: z63.string().optional(),
37655
- bodyFamily: z63.string().optional(),
37656
- headingWeight: z63.number().optional(),
37657
- bodyWeight: z63.number().optional()
37923
+ import { z as z64 } from "zod";
37924
+ var themeBridgeConfigSchema = z64.object({
37925
+ tokens: z64.record(z64.string(), z64.string()),
37926
+ typography: z64.object({
37927
+ headingFamily: z64.string().optional(),
37928
+ bodyFamily: z64.string().optional(),
37929
+ headingWeight: z64.number().optional(),
37930
+ bodyWeight: z64.number().optional()
37658
37931
  }).optional(),
37659
- spacing: z63.enum(["comfortable", "standard", "dense"]).optional(),
37660
- corners: z63.enum(["square", "soft", "rounded", "pill"]).optional(),
37661
- shadows: z63.enum(["none", "low", "medium", "high"]).optional(),
37662
- components: z63.object({
37663
- buttons: z63.union([
37664
- z63.boolean(),
37665
- z63.object({
37666
- variants: z63.array(z63.enum(["primary", "secondary", "outline", "ghost"])).optional()
37932
+ spacing: z64.enum(["comfortable", "standard", "dense"]).optional(),
37933
+ corners: z64.enum(["square", "soft", "rounded", "pill"]).optional(),
37934
+ shadows: z64.enum(["none", "low", "medium", "high"]).optional(),
37935
+ components: z64.object({
37936
+ buttons: z64.union([
37937
+ z64.boolean(),
37938
+ z64.object({
37939
+ variants: z64.array(z64.enum(["primary", "secondary", "outline", "ghost"])).optional()
37667
37940
  })
37668
37941
  ]).optional(),
37669
- cards: z63.union([
37670
- z63.boolean(),
37671
- z63.object({
37672
- variants: z63.array(z63.enum(["default", "elevated", "outlined"])).optional()
37942
+ cards: z64.union([
37943
+ z64.boolean(),
37944
+ z64.object({
37945
+ variants: z64.array(z64.enum(["default", "elevated", "outlined"])).optional()
37673
37946
  })
37674
37947
  ]).optional(),
37675
- inputs: z63.boolean().optional()
37948
+ inputs: z64.boolean().optional()
37676
37949
  }).optional(),
37677
- overrides: z63.record(z63.string(), z63.string()).optional()
37950
+ overrides: z64.record(z64.string(), z64.string()).optional()
37678
37951
  }).passthrough();
37679
37952
 
37680
37953
  // ../theme-core/src/siteChrome.tsx
@@ -37700,17 +37973,17 @@ var SUPPORTED_LOADER_ENDPOINTS = [
37700
37973
  function unsafeRetypeZodSchema(schema) {
37701
37974
  return schema;
37702
37975
  }
37703
- var navIdListSchema = z64.preprocess((value) => {
37976
+ var navIdListSchema = z65.preprocess((value) => {
37704
37977
  if (!Array.isArray(value)) return void 0;
37705
37978
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
37706
37979
  return filtered.length > 0 ? filtered : void 0;
37707
- }, z64.array(z64.string()).max(200).optional());
37708
- var dashboardNavVisibilityBaseSchema = z64.object({
37709
- mode: z64.enum(["augment", "restrict"]).optional(),
37980
+ }, z65.array(z65.string()).max(200).optional());
37981
+ var dashboardNavVisibilityBaseSchema = z65.object({
37982
+ mode: z65.enum(["augment", "restrict"]).optional(),
37710
37983
  allowIds: navIdListSchema,
37711
37984
  denyIds: navIdListSchema
37712
37985
  }).strip();
37713
- var dashboardNavVisibilityRolesSchema = z64.object({
37986
+ var dashboardNavVisibilityRolesSchema = z65.object({
37714
37987
  administrator: dashboardNavVisibilityBaseSchema.optional(),
37715
37988
  editor: dashboardNavVisibilityBaseSchema.optional(),
37716
37989
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -37718,63 +37991,63 @@ var dashboardNavVisibilityRolesSchema = z64.object({
37718
37991
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
37719
37992
  roles: dashboardNavVisibilityRolesSchema
37720
37993
  }).strip();
37721
- var dashboardNavigationConfigSchema = z64.object({
37994
+ var dashboardNavigationConfigSchema = z65.object({
37722
37995
  siteNav: dashboardNavVisibilitySchema.optional(),
37723
37996
  settingsNav: dashboardNavVisibilitySchema.optional()
37724
37997
  }).strip();
37725
- var dashboardConfigSchema = z64.object({
37726
- previewEditingEnabled: z64.boolean().optional(),
37998
+ var dashboardConfigSchema = z65.object({
37999
+ previewEditingEnabled: z65.boolean().optional(),
37727
38000
  navigation: dashboardNavigationConfigSchema.optional()
37728
38001
  }).strip();
37729
38002
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
37730
38003
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
37731
- var sdkLoaderEndpointSchema = z64.enum(SUPPORTED_LOADER_ENDPOINTS);
37732
- var loaderFallbackScalarSchema = z64.union([
37733
- z64.string(),
37734
- z64.number(),
37735
- z64.boolean(),
37736
- z64.null()
38004
+ var sdkLoaderEndpointSchema = z65.enum(SUPPORTED_LOADER_ENDPOINTS);
38005
+ var loaderFallbackScalarSchema = z65.union([
38006
+ z65.string(),
38007
+ z65.number(),
38008
+ z65.boolean(),
38009
+ z65.null()
37737
38010
  ]);
37738
- var loaderParamBindingSchema = z64.object({
37739
- $bind: z64.object({
37740
- from: z64.string().min(1, "Binding path is required"),
38011
+ var loaderParamBindingSchema = z65.object({
38012
+ $bind: z65.object({
38013
+ from: z65.string().min(1, "Binding path is required"),
37741
38014
  fallback: loaderFallbackScalarSchema.optional()
37742
38015
  })
37743
38016
  });
37744
- var loaderParamValueSchema = z64.union([
37745
- z64.string(),
37746
- z64.number(),
37747
- z64.boolean(),
38017
+ var loaderParamValueSchema = z65.union([
38018
+ z65.string(),
38019
+ z65.number(),
38020
+ z65.boolean(),
37748
38021
  loaderParamBindingSchema
37749
38022
  ]);
37750
- var sdkConfigLoaderSchema = z64.object({
38023
+ var sdkConfigLoaderSchema = z65.object({
37751
38024
  endpoint: sdkLoaderEndpointSchema,
37752
- params: z64.record(z64.string(), loaderParamValueSchema),
37753
- mode: z64.enum(["server", "client"]).default("server")
38025
+ params: z65.record(z65.string(), loaderParamValueSchema),
38026
+ mode: z65.enum(["server", "client"]).default("server")
37754
38027
  });
37755
- var sdkDataLoadersSchema = z64.record(z64.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
37756
- var sdkCustomBlockIdSchema = z64.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
38028
+ var sdkDataLoadersSchema = z65.record(z65.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
38029
+ var sdkCustomBlockIdSchema = z65.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
37757
38030
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
37758
38031
  }).transform((value) => value);
37759
- var sdkCustomBlockInputSchema = z64.object({
38032
+ var sdkCustomBlockInputSchema = z65.object({
37760
38033
  id: sdkCustomBlockIdSchema,
37761
- title: z64.string().min(1),
37762
- titleSource: z64.union([z64.string().min(1), z64.array(z64.string().min(1)).min(1)]).optional(),
37763
- description: z64.string().optional(),
38034
+ title: z65.string().min(1),
38035
+ titleSource: z65.union([z65.string().min(1), z65.array(z65.string().min(1)).min(1)]).optional(),
38036
+ description: z65.string().optional(),
37764
38037
  category: blockCategoryEnum,
37765
- icon: z64.string().optional(),
37766
- tags: z64.array(z64.string()).optional(),
38038
+ icon: z65.string().optional(),
38039
+ tags: z65.array(z65.string()).optional(),
37767
38040
  fields: fieldDefinitionInputSchema.array().min(1),
37768
38041
  dataLoaders: sdkDataLoadersSchema,
37769
38042
  layout: NodeSchema.optional(),
37770
- variants: z64.record(z64.string().min(1), NodeSchema).optional(),
37771
- defaultVariant: z64.string().min(1).optional(),
37772
- variantOptions: z64.record(
37773
- z64.string().min(1),
37774
- z64.object({
37775
- label: z64.string().min(1).optional(),
37776
- description: z64.string().min(1).optional(),
37777
- icon: z64.string().min(1).optional()
38043
+ variants: z65.record(z65.string().min(1), NodeSchema).optional(),
38044
+ defaultVariant: z65.string().min(1).optional(),
38045
+ variantOptions: z65.record(
38046
+ z65.string().min(1),
38047
+ z65.object({
38048
+ label: z65.string().min(1).optional(),
38049
+ description: z65.string().min(1).optional(),
38050
+ icon: z65.string().min(1).optional()
37778
38051
  })
37779
38052
  ).optional(),
37780
38053
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -37785,7 +38058,7 @@ var sdkCustomBlockInputSchema = z64.object({
37785
38058
  const exists = data.fields.some((field) => field.id === source);
37786
38059
  if (!exists) {
37787
38060
  ctx.addIssue({
37788
- code: z64.ZodIssueCode.custom,
38061
+ code: z65.ZodIssueCode.custom,
37789
38062
  message: `titleSource must reference a valid field ID (got "${source}")`,
37790
38063
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
37791
38064
  });
@@ -37794,7 +38067,7 @@ var sdkCustomBlockInputSchema = z64.object({
37794
38067
  }
37795
38068
  if (data.layout && data.variants) {
37796
38069
  ctx.addIssue({
37797
- code: z64.ZodIssueCode.custom,
38070
+ code: z65.ZodIssueCode.custom,
37798
38071
  message: "Custom block must define either `layout` or `variants`, not both",
37799
38072
  path: ["variants"]
37800
38073
  });
@@ -37803,14 +38076,14 @@ var sdkCustomBlockInputSchema = z64.object({
37803
38076
  const keys = Object.keys(data.variants);
37804
38077
  if (keys.length === 0) {
37805
38078
  ctx.addIssue({
37806
- code: z64.ZodIssueCode.custom,
38079
+ code: z65.ZodIssueCode.custom,
37807
38080
  message: "`variants` must contain at least one variant key",
37808
38081
  path: ["variants"]
37809
38082
  });
37810
38083
  }
37811
38084
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
37812
38085
  ctx.addIssue({
37813
- code: z64.ZodIssueCode.custom,
38086
+ code: z65.ZodIssueCode.custom,
37814
38087
  message: "`defaultVariant` must be a key present in `variants`",
37815
38088
  path: ["defaultVariant"]
37816
38089
  });
@@ -37819,7 +38092,7 @@ var sdkCustomBlockInputSchema = z64.object({
37819
38092
  for (const key of Object.keys(data.variantOptions)) {
37820
38093
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
37821
38094
  ctx.addIssue({
37822
- code: z64.ZodIssueCode.custom,
38095
+ code: z65.ZodIssueCode.custom,
37823
38096
  message: "`variantOptions` key must exist in `variants`",
37824
38097
  path: ["variantOptions", key]
37825
38098
  });
@@ -37828,78 +38101,78 @@ var sdkCustomBlockInputSchema = z64.object({
37828
38101
  }
37829
38102
  }
37830
38103
  });
37831
- var sdkBlockFieldExtensionInputSchema = z64.object({
38104
+ var sdkBlockFieldExtensionInputSchema = z65.object({
37832
38105
  fields: fieldDefinitionInputSchema.array().min(1)
37833
38106
  });
37834
- var sdkBlockFieldExtensionsInputSchema = z64.record(
37835
- z64.string().min(1),
38107
+ var sdkBlockFieldExtensionsInputSchema = z65.record(
38108
+ z65.string().min(1),
37836
38109
  sdkBlockFieldExtensionInputSchema
37837
38110
  );
37838
- var sdkThemePaletteSchema = z64.record(z64.string(), z64.string());
37839
- var sdkThemeConfigSchema = z64.object({
38111
+ var sdkThemePaletteSchema = z65.record(z65.string(), z65.string());
38112
+ var sdkThemeConfigSchema = z65.object({
37840
38113
  palette: sdkThemePaletteSchema
37841
38114
  });
37842
- var sdkSectionBackgroundSchema = z64.object({
37843
- id: z64.string().min(1),
37844
- label: z64.string().min(1),
37845
- token: z64.string().min(1)
38115
+ var sdkSectionBackgroundSchema = z65.object({
38116
+ id: z65.string().min(1),
38117
+ label: z65.string().min(1),
38118
+ token: z65.string().min(1)
37846
38119
  });
37847
- var sdkSectionOptionsConfigSchema = z64.object({
37848
- backgroundColor: z64.boolean().optional(),
37849
- backgroundImage: z64.boolean().optional(),
37850
- backgroundGradient: z64.boolean().optional(),
37851
- spacing: z64.union([z64.array(z64.enum(["compact", "default", "spacious"])), z64.boolean()]).optional(),
37852
- textColor: z64.boolean().optional()
38120
+ var sdkSectionOptionsConfigSchema = z65.object({
38121
+ backgroundColor: z65.boolean().optional(),
38122
+ backgroundImage: z65.boolean().optional(),
38123
+ backgroundGradient: z65.boolean().optional(),
38124
+ spacing: z65.union([z65.array(z65.enum(["compact", "default", "spacious"])), z65.boolean()]).optional(),
38125
+ textColor: z65.boolean().optional()
37853
38126
  });
37854
- var sdkContainerOptionsConfigSchema = z64.object({
37855
- maxWidth: z64.union([z64.array(z64.enum(["narrow", "default", "wide", "full"])), z64.boolean()]).optional(),
37856
- alignment: z64.union([z64.array(z64.enum(["left", "center", "right"])), z64.boolean()]).optional()
38127
+ var sdkContainerOptionsConfigSchema = z65.object({
38128
+ maxWidth: z65.union([z65.array(z65.enum(["narrow", "default", "wide", "full"])), z65.boolean()]).optional(),
38129
+ alignment: z65.union([z65.array(z65.enum(["left", "center", "right"])), z65.boolean()]).optional()
37857
38130
  });
37858
- var sdkSiteStyleConfigSchema = z64.object({
37859
- sectionBackgrounds: z64.array(sdkSectionBackgroundSchema).optional(),
38131
+ var sdkSiteStyleConfigSchema = z65.object({
38132
+ sectionBackgrounds: z65.array(sdkSectionBackgroundSchema).optional(),
37860
38133
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
37861
38134
  containerOptions: sdkContainerOptionsConfigSchema.optional()
37862
38135
  });
37863
- var sdkSiteLayoutConfigSchema = z64.object({
37864
- footerBlocks: z64.array(
37865
- z64.object({
37866
- id: z64.string().min(1).optional(),
37867
- kind: z64.string().min(1),
37868
- content: z64.record(z64.string(), z64.unknown()).optional()
38136
+ var sdkSiteLayoutConfigSchema = z65.object({
38137
+ footerBlocks: z65.array(
38138
+ z65.object({
38139
+ id: z65.string().min(1).optional(),
38140
+ kind: z65.string().min(1),
38141
+ content: z65.record(z65.string(), z65.unknown()).optional()
37869
38142
  })
37870
38143
  ).optional()
37871
38144
  });
37872
- var sdkFieldSelectOptionSchema = z64.object({
37873
- value: z64.string(),
37874
- label: z64.string()
38145
+ var sdkFieldSelectOptionSchema = z65.object({
38146
+ value: z65.string(),
38147
+ label: z65.string()
37875
38148
  });
37876
- var sdkBlockFieldConfigSchema = z64.object({
37877
- options: z64.array(sdkFieldSelectOptionSchema).optional()
38149
+ var sdkBlockFieldConfigSchema = z65.object({
38150
+ options: z65.array(sdkFieldSelectOptionSchema).optional()
37878
38151
  });
37879
- var sdkBlockFieldOptionsMapSchema = z64.record(
37880
- z64.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
38152
+ var sdkBlockFieldOptionsMapSchema = z65.record(
38153
+ z65.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
37881
38154
  message: "Block ID must be 'block.*' or 'custom.*' format"
37882
38155
  }),
37883
- z64.record(z64.string().min(1), sdkBlockFieldConfigSchema)
38156
+ z65.record(z65.string().min(1), sdkBlockFieldConfigSchema)
37884
38157
  ).optional();
37885
- var sdkContentTypeTemplateConfigSchema = z64.object({
37886
- blocks: z64.array(z64.unknown())
38158
+ var sdkContentTypeTemplateConfigSchema = z65.object({
38159
+ blocks: z65.array(z65.unknown())
37887
38160
  }).passthrough();
37888
- var sdkContentTypeOrderingConfigSchema = z64.object({
37889
- mode: z64.enum(["default", "manual"]).optional()
38161
+ var sdkContentTypeOrderingConfigSchema = z65.object({
38162
+ mode: z65.enum(["default", "manual"]).optional()
37890
38163
  }).optional();
37891
- var sdkContentTypeConfigSchema = z64.object({
37892
- key: z64.string().min(1),
37893
- fields: z64.array(z64.unknown()),
38164
+ var sdkContentTypeConfigSchema = z65.object({
38165
+ key: z65.string().min(1),
38166
+ fields: z65.array(z65.unknown()),
37894
38167
  ordering: sdkContentTypeOrderingConfigSchema,
37895
38168
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
37896
38169
  }).passthrough();
37897
- var sdkContentConfigSchema = z64.object({
37898
- contentTypes: z64.array(sdkContentTypeConfigSchema).optional(),
37899
- pages: z64.array(z64.unknown()).optional(),
37900
- entries: z64.array(z64.unknown()).optional(),
37901
- navigationMenus: z64.array(z64.unknown()).optional(),
37902
- settings: z64.unknown().optional()
38170
+ var sdkContentConfigSchema = z65.object({
38171
+ contentTypes: z65.array(sdkContentTypeConfigSchema).optional(),
38172
+ pages: z65.array(z65.unknown()).optional(),
38173
+ entries: z65.array(z65.unknown()).optional(),
38174
+ navigationMenus: z65.array(z65.unknown()).optional(),
38175
+ settings: z65.unknown().optional()
37903
38176
  }).passthrough();
37904
38177
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
37905
38178
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -37914,62 +38187,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
37914
38187
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
37915
38188
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
37916
38189
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
37917
- var sdkWorkflowIdSchema = z64.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
38190
+ var sdkWorkflowIdSchema = z65.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
37918
38191
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
37919
38192
  });
37920
- var sdkWorkflowEndpointSchema = z64.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
37921
- var sdkWorkflowManualTriggerSchema = z64.object({
37922
- type: z64.literal("manual")
38193
+ 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 "/"' });
38194
+ var sdkWorkflowManualTriggerSchema = z65.object({
38195
+ type: z65.literal("manual")
37923
38196
  }).strict();
37924
- var sdkWorkflowTriggerFieldSchema = z64.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
38197
+ var sdkWorkflowTriggerFieldSchema = z65.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
37925
38198
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
37926
38199
  });
37927
- var sdkWorkflowFieldChangedConditionSchema = z64.object({
38200
+ var sdkWorkflowFieldChangedConditionSchema = z65.object({
37928
38201
  field: sdkWorkflowTriggerFieldSchema,
37929
- changed: z64.literal(true)
38202
+ changed: z65.literal(true)
37930
38203
  }).strict();
37931
- var sdkWorkflowFieldEmptyConditionSchema = z64.object({
38204
+ var sdkWorkflowFieldEmptyConditionSchema = z65.object({
37932
38205
  field: sdkWorkflowTriggerFieldSchema,
37933
- isEmpty: z64.boolean()
38206
+ isEmpty: z65.boolean()
37934
38207
  }).strict();
37935
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z64.object({
37936
- type: z64.literal("entry.draft.updated"),
37937
- when: z64.array(
37938
- z64.union([
38208
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z65.object({
38209
+ type: z65.literal("entry.draft.updated"),
38210
+ when: z65.array(
38211
+ z65.union([
37939
38212
  sdkWorkflowFieldChangedConditionSchema,
37940
38213
  sdkWorkflowFieldEmptyConditionSchema
37941
38214
  ])
37942
38215
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
37943
38216
  }).strict();
37944
- var sdkWorkflowTriggerSchema = z64.discriminatedUnion("type", [
38217
+ var sdkWorkflowTriggerSchema = z65.discriminatedUnion("type", [
37945
38218
  sdkWorkflowManualTriggerSchema,
37946
38219
  sdkWorkflowEntryDraftUpdatedTriggerSchema
37947
38220
  ]);
37948
- var sdkWorkflowConfirmationSchema = z64.object({
37949
- title: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
37950
- body: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
38221
+ var sdkWorkflowConfirmationSchema = z65.object({
38222
+ title: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
38223
+ body: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
37951
38224
  }).strict();
37952
- var sdkWorkflowConfigSchema = z64.object({
38225
+ var sdkWorkflowConfigSchema = z65.object({
37953
38226
  id: sdkWorkflowIdSchema,
37954
- title: z64.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
37955
- description: z64.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
37956
- contentType: z64.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
38227
+ title: z65.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
38228
+ description: z65.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
38229
+ contentType: z65.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
37957
38230
  endpoint: sdkWorkflowEndpointSchema,
37958
- triggers: z64.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
38231
+ triggers: z65.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
37959
38232
  confirmation: sdkWorkflowConfirmationSchema.optional()
37960
38233
  }).strict();
37961
- var sdkWorkflowsSchema = z64.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
38234
+ var sdkWorkflowsSchema = z65.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
37962
38235
  const ids = workflows.map((workflow) => workflow.id);
37963
38236
  return ids.length === new Set(ids).size;
37964
38237
  }, { message: "Workflow IDs must be unique" }).optional();
37965
- var riverbankSiteConfigInputSchema = z64.object({
37966
- siteId: z64.string().uuid(),
37967
- previewUrl: z64.string().url().optional(),
37968
- liveUrl: z64.string().url().optional(),
38238
+ var riverbankSiteConfigInputSchema = z65.object({
38239
+ siteId: z65.string().uuid(),
38240
+ previewUrl: z65.string().url().optional(),
38241
+ liveUrl: z65.string().url().optional(),
37969
38242
  theme: sdkThemeConfigSchema.optional(),
37970
38243
  styles: sdkSiteStyleConfigSchema.optional(),
37971
38244
  layout: sdkSiteLayoutConfigSchema.optional(),
37972
- customBlocks: z64.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
38245
+ customBlocks: z65.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
37973
38246
  const ids = blocks.map((b) => b.id);
37974
38247
  return ids.length === new Set(ids).size;
37975
38248
  }, { message: "Block IDs must be unique" }).optional(),
@@ -37977,50 +38250,50 @@ var riverbankSiteConfigInputSchema = z64.object({
37977
38250
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
37978
38251
  workflows: sdkWorkflowsSchema,
37979
38252
  content: sdkContentConfigSchema.optional(),
37980
- contentDir: z64.string().optional(),
37981
- sync: z64.object({
37982
- existingEntries: z64.enum(["skip", "update"]).optional()
38253
+ contentDir: z65.string().optional(),
38254
+ sync: z65.object({
38255
+ existingEntries: z65.enum(["skip", "update"]).optional()
37983
38256
  }).optional(),
37984
- deploy: z64.object({
37985
- verifyCommand: z64.string().optional(),
37986
- prebuildOutput: z64.string().optional()
38257
+ deploy: z65.object({
38258
+ verifyCommand: z65.string().optional(),
38259
+ prebuildOutput: z65.string().optional()
37987
38260
  }).optional(),
37988
- themeSource: z64.enum(["local", "cms"]).optional(),
37989
- activeTheme: z64.string().optional(),
37990
- enablePortal: z64.boolean().optional(),
38261
+ themeSource: z65.enum(["local", "cms"]).optional(),
38262
+ activeTheme: z65.string().optional(),
38263
+ enablePortal: z65.boolean().optional(),
37991
38264
  dashboard: dashboardConfigSchema.optional()
37992
38265
  }).strict();
37993
- var pushSdkConfigBodySchema = z64.object({
38266
+ var pushSdkConfigBodySchema = z65.object({
37994
38267
  config: riverbankSiteConfigInputSchema,
37995
- forceContentTypes: z64.boolean().optional()
38268
+ forceContentTypes: z65.boolean().optional()
37996
38269
  }).strict();
37997
38270
 
37998
38271
  // ../api/src/siteOnboarding.ts
37999
- import { z as z65 } from "zod";
38272
+ import { z as z66 } from "zod";
38000
38273
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
38001
38274
  configure_appointments: {
38002
38275
  requirementId: "configure_appointments",
38003
38276
  reason: "launch_anyway"
38004
38277
  }
38005
38278
  };
38006
- var acknowledgeLaunchRequirementRequestSchema = z65.discriminatedUnion(
38279
+ var acknowledgeLaunchRequirementRequestSchema = z66.discriminatedUnion(
38007
38280
  "requirementId",
38008
38281
  [
38009
- z65.object({
38010
- requirementId: z65.literal("review_generated_site")
38282
+ z66.object({
38283
+ requirementId: z66.literal("review_generated_site")
38011
38284
  }),
38012
- z65.object({
38013
- requirementId: z65.literal(
38285
+ z66.object({
38286
+ requirementId: z66.literal(
38014
38287
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
38015
38288
  ),
38016
- overrideReason: z65.literal(
38289
+ overrideReason: z66.literal(
38017
38290
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
38018
38291
  )
38019
38292
  })
38020
38293
  ]
38021
38294
  );
38022
- var goLiveSiteRequestSchema = z65.object({
38023
- acceptExtraSiteCharge: z65.boolean().optional()
38295
+ var goLiveSiteRequestSchema = z66.object({
38296
+ acceptExtraSiteCharge: z66.boolean().optional()
38024
38297
  });
38025
38298
 
38026
38299
  // ../surfaces/src/index.ts
@@ -38104,7 +38377,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
38104
38377
  ];
38105
38378
 
38106
38379
  // ../api/src/bookingVerticals.ts
38107
- import { z as z66 } from "zod";
38380
+ import { z as z67 } from "zod";
38108
38381
  var VERTICAL_IDS = [
38109
38382
  "yoga_wellness",
38110
38383
  "fitness_pt",
@@ -38269,39 +38542,39 @@ function getSiteVerticalConfigIssues(rawConfig, config) {
38269
38542
  }
38270
38543
  return [...issues];
38271
38544
  }
38272
- var VerticalIdSchema = z66.string().trim().transform((value, ctx) => {
38545
+ var VerticalIdSchema = z67.string().trim().transform((value, ctx) => {
38273
38546
  const parsed = parseVerticalId(value);
38274
38547
  if (!parsed) {
38275
38548
  ctx.addIssue({
38276
- code: z66.ZodIssueCode.custom,
38549
+ code: z67.ZodIssueCode.custom,
38277
38550
  message: "Unknown booking vertical"
38278
38551
  });
38279
- return z66.NEVER;
38552
+ return z67.NEVER;
38280
38553
  }
38281
38554
  return parsed;
38282
38555
  });
38283
- var VerticalPresetIdSchema = z66.string().trim().transform((value, ctx) => {
38556
+ var VerticalPresetIdSchema = z67.string().trim().transform((value, ctx) => {
38284
38557
  const parsed = parseVerticalPresetId(value);
38285
38558
  if (!parsed) {
38286
38559
  ctx.addIssue({
38287
- code: z66.ZodIssueCode.custom,
38560
+ code: z67.ZodIssueCode.custom,
38288
38561
  message: "Unknown booking preset"
38289
38562
  });
38290
- return z66.NEVER;
38563
+ return z67.NEVER;
38291
38564
  }
38292
38565
  return parsed;
38293
38566
  });
38294
- var BookingVerticalConfigSchema = z66.object({
38567
+ var BookingVerticalConfigSchema = z67.object({
38295
38568
  verticalId: VerticalIdSchema.nullable(),
38296
- selectedPresetIds: z66.array(VerticalPresetIdSchema).max(20)
38569
+ selectedPresetIds: z67.array(VerticalPresetIdSchema).max(20)
38297
38570
  }).transform((value, ctx) => {
38298
38571
  const resolved = resolveSiteVerticalBookingConfig(value);
38299
38572
  if (resolved.kind === "invalid") {
38300
38573
  ctx.addIssue({
38301
- code: z66.ZodIssueCode.custom,
38574
+ code: z67.ZodIssueCode.custom,
38302
38575
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
38303
38576
  });
38304
- return z66.NEVER;
38577
+ return z67.NEVER;
38305
38578
  }
38306
38579
  return resolved.config;
38307
38580
  });
@@ -38328,51 +38601,51 @@ function isRecord7(value) {
38328
38601
  }
38329
38602
 
38330
38603
  // ../api/src/appointmentSetup.ts
38331
- import { z as z67 } from "zod";
38604
+ import { z as z68 } from "zod";
38332
38605
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
38333
- var appointmentSetupRefSchema = z67.discriminatedUnion("kind", [
38334
- z67.object({ kind: z67.literal("existing"), id: z67.string().min(1) }),
38335
- z67.object({ kind: z67.literal("new"), draftId: z67.string().min(1) })
38606
+ var appointmentSetupRefSchema = z68.discriminatedUnion("kind", [
38607
+ z68.object({ kind: z68.literal("existing"), id: z68.string().min(1) }),
38608
+ z68.object({ kind: z68.literal("new"), draftId: z68.string().min(1) })
38336
38609
  ]);
38337
- var appointmentSetupVenueChoiceSchema = z67.discriminatedUnion("kind", [
38338
- z67.object({ kind: z67.literal("none") }),
38339
- z67.object({ kind: z67.literal("existing"), venueId: z67.string().min(1) }),
38340
- z67.object({
38341
- kind: z67.literal("create"),
38342
- draftId: z67.string().min(1),
38343
- title: z67.string().trim().min(1),
38344
- description: z67.string().nullable(),
38345
- timezone: z67.string().trim().min(1).nullable(),
38346
- addressJson: z67.record(z67.string(), z67.unknown()),
38347
- locationJson: z67.object({ lat: z67.number(), lng: z67.number() }).nullable()
38610
+ var appointmentSetupVenueChoiceSchema = z68.discriminatedUnion("kind", [
38611
+ z68.object({ kind: z68.literal("none") }),
38612
+ z68.object({ kind: z68.literal("existing"), venueId: z68.string().min(1) }),
38613
+ z68.object({
38614
+ kind: z68.literal("create"),
38615
+ draftId: z68.string().min(1),
38616
+ title: z68.string().trim().min(1),
38617
+ description: z68.string().nullable(),
38618
+ timezone: z68.string().trim().min(1).nullable(),
38619
+ addressJson: z68.record(z68.string(), z68.unknown()),
38620
+ locationJson: z68.object({ lat: z68.number(), lng: z68.number() }).nullable()
38348
38621
  })
38349
38622
  ]);
38350
- var appointmentSetupPaymentDraftSchema = z67.object({
38351
- priceType: z67.union([z67.literal("free"), z67.literal("paid")])
38352
- });
38353
- var appointmentSetupServiceAssignmentDraftSchema = z67.discriminatedUnion("kind", [
38354
- z67.object({ kind: z67.literal("all_practitioners") }),
38355
- z67.object({
38356
- kind: z67.literal("selected_practitioners"),
38357
- resourceRefs: z67.array(appointmentSetupRefSchema)
38623
+ var appointmentSetupPaymentDraftSchema = z68.object({
38624
+ priceType: z68.union([z68.literal("free"), z68.literal("paid")])
38625
+ });
38626
+ var appointmentSetupServiceAssignmentDraftSchema = z68.discriminatedUnion("kind", [
38627
+ z68.object({ kind: z68.literal("all_practitioners") }),
38628
+ z68.object({
38629
+ kind: z68.literal("selected_practitioners"),
38630
+ resourceRefs: z68.array(appointmentSetupRefSchema)
38358
38631
  })
38359
38632
  ]);
38360
- var appointmentSetupServiceDraftSchema = z67.object({
38633
+ var appointmentSetupServiceDraftSchema = z68.object({
38361
38634
  ref: appointmentSetupRefSchema,
38362
- title: z67.string().trim().min(1),
38363
- description: z67.string().nullable(),
38364
- durationMinutes: z67.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38365
- prepMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38366
- cleanupMinutes: z67.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38367
- priceAmount: z67.number().int().nonnegative().nullable(),
38368
- isActive: z67.boolean(),
38369
- locationType: z67.union([
38370
- z67.literal("virtual"),
38371
- z67.literal("in_person"),
38372
- z67.literal("hybrid")
38635
+ title: z68.string().trim().min(1),
38636
+ description: z68.string().nullable(),
38637
+ durationMinutes: z68.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
38638
+ prepMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38639
+ cleanupMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
38640
+ priceAmount: z68.number().int().nonnegative().nullable(),
38641
+ isActive: z68.boolean(),
38642
+ locationType: z68.union([
38643
+ z68.literal("virtual"),
38644
+ z68.literal("in_person"),
38645
+ z68.literal("hybrid")
38373
38646
  ]),
38374
38647
  venue: appointmentSetupVenueChoiceSchema,
38375
- timezone: z67.string().trim().min(1).nullable(),
38648
+ timezone: z68.string().trim().min(1).nullable(),
38376
38649
  payment: appointmentSetupPaymentDraftSchema,
38377
38650
  assignment: appointmentSetupServiceAssignmentDraftSchema
38378
38651
  }).superRefine((service, ctx) => {
@@ -38391,49 +38664,49 @@ var appointmentSetupServiceDraftSchema = z67.object({
38391
38664
  });
38392
38665
  }
38393
38666
  });
38394
- var appointmentSetupPractitionerDraftSchema = z67.object({
38667
+ var appointmentSetupPractitionerDraftSchema = z68.object({
38395
38668
  ref: appointmentSetupRefSchema,
38396
- displayName: z67.string().trim().min(1),
38397
- bio: z67.string().nullable(),
38398
- timezone: z67.string().trim().min(1),
38399
- colorHex: z67.string().nullable()
38400
- });
38401
- var appointmentSetupWeeklyWindowDraftSchema = z67.object({
38402
- weekday: z67.number().int().min(0).max(6),
38403
- startTime: z67.string(),
38404
- endTime: z67.string()
38405
- });
38406
- var appointmentSetupStartTimePolicyDraftSchema = z67.discriminatedUnion("kind", [
38407
- z67.object({ kind: z67.literal("automatic_spacing") }),
38408
- z67.object({
38409
- kind: z67.literal("regular_interval"),
38410
- intervalMinutes: z67.union([
38411
- z67.literal(10),
38412
- z67.literal(15),
38413
- z67.literal(20),
38414
- z67.literal(30),
38415
- z67.literal(45),
38416
- z67.literal(60)
38669
+ displayName: z68.string().trim().min(1),
38670
+ bio: z68.string().nullable(),
38671
+ timezone: z68.string().trim().min(1),
38672
+ colorHex: z68.string().nullable()
38673
+ });
38674
+ var appointmentSetupWeeklyWindowDraftSchema = z68.object({
38675
+ weekday: z68.number().int().min(0).max(6),
38676
+ startTime: z68.string(),
38677
+ endTime: z68.string()
38678
+ });
38679
+ var appointmentSetupStartTimePolicyDraftSchema = z68.discriminatedUnion("kind", [
38680
+ z68.object({ kind: z68.literal("automatic_spacing") }),
38681
+ z68.object({
38682
+ kind: z68.literal("regular_interval"),
38683
+ intervalMinutes: z68.union([
38684
+ z68.literal(10),
38685
+ z68.literal(15),
38686
+ z68.literal(20),
38687
+ z68.literal(30),
38688
+ z68.literal(45),
38689
+ z68.literal(60)
38417
38690
  ])
38418
38691
  })
38419
38692
  ]);
38420
- var appointmentSetupAvailabilityDraftSchema = z67.object({
38421
- kind: z67.literal("weekly_windows"),
38693
+ var appointmentSetupAvailabilityDraftSchema = z68.object({
38694
+ kind: z68.literal("weekly_windows"),
38422
38695
  resourceRef: appointmentSetupRefSchema,
38423
38696
  serviceRef: appointmentSetupRefSchema.nullable(),
38424
- windows: z67.array(appointmentSetupWeeklyWindowDraftSchema),
38697
+ windows: z68.array(appointmentSetupWeeklyWindowDraftSchema),
38425
38698
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
38426
38699
  });
38427
38700
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
38428
38701
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
38429
- var appointmentSetupBookingNoticeSchema = z67.object({
38430
- minLeadMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38431
- maxBookingNoticeMinutes: z67.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38432
- });
38433
- var applyAppointmentSetupRequestSchema = z67.object({
38434
- services: z67.array(appointmentSetupServiceDraftSchema),
38435
- practitioners: z67.array(appointmentSetupPractitionerDraftSchema),
38436
- availability: z67.array(appointmentSetupAvailabilityDraftSchema),
38702
+ var appointmentSetupBookingNoticeSchema = z68.object({
38703
+ minLeadMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
38704
+ maxBookingNoticeMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
38705
+ });
38706
+ var applyAppointmentSetupRequestSchema = z68.object({
38707
+ services: z68.array(appointmentSetupServiceDraftSchema),
38708
+ practitioners: z68.array(appointmentSetupPractitionerDraftSchema),
38709
+ availability: z68.array(appointmentSetupAvailabilityDraftSchema),
38437
38710
  bookingNotice: appointmentSetupBookingNoticeSchema
38438
38711
  });
38439
38712
 
@@ -38466,24 +38739,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
38466
38739
  ];
38467
38740
 
38468
38741
  // ../api/src/siteBanner.ts
38469
- import { z as z68 } from "zod";
38742
+ import { z as z69 } from "zod";
38470
38743
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
38471
38744
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
38472
38745
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
38473
38746
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
38474
- var siteBannerScopeSchema = z68.enum(SITE_BANNER_SCOPE_VALUES);
38475
- var siteBannerToneSchema = z68.enum(SITE_BANNER_TONE_VALUES);
38476
- var siteBannerBodySchema = z68.unknown().transform(unwrapRichTextValue);
38477
- var siteBannerCtaSchema = z68.object({
38478
- label: z68.string().trim().min(1),
38747
+ var siteBannerScopeSchema = z69.enum(SITE_BANNER_SCOPE_VALUES);
38748
+ var siteBannerToneSchema = z69.enum(SITE_BANNER_TONE_VALUES);
38749
+ var siteBannerBodySchema = z69.unknown().transform(unwrapRichTextValue);
38750
+ var siteBannerCtaSchema = z69.object({
38751
+ label: z69.string().trim().min(1),
38479
38752
  link: linkPayloadSchema
38480
38753
  });
38481
- var siteBannerSettingsSchema = z68.discriminatedUnion("enabled", [
38482
- z68.object({
38483
- enabled: z68.literal(false)
38754
+ var siteBannerSettingsSchema = z69.discriminatedUnion("enabled", [
38755
+ z69.object({
38756
+ enabled: z69.literal(false)
38484
38757
  }),
38485
- z68.object({
38486
- enabled: z68.literal(true),
38758
+ z69.object({
38759
+ enabled: z69.literal(true),
38487
38760
  scope: siteBannerScopeSchema,
38488
38761
  tone: siteBannerToneSchema,
38489
38762
  body: siteBannerBodySchema,
@@ -38497,7 +38770,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
38497
38770
  const analysis = analyzeSiteBannerBody(value.body);
38498
38771
  for (const issue of analysis.issues) {
38499
38772
  ctx.addIssue({
38500
- code: z68.ZodIssueCode.custom,
38773
+ code: z69.ZodIssueCode.custom,
38501
38774
  path: ["body"],
38502
38775
  message: siteBannerBodyIssueMessage(issue)
38503
38776
  });
@@ -38804,75 +39077,75 @@ function unsafeAsNavigationMenuIdentifier(identifier) {
38804
39077
  var MAIN_NAVIGATION_MENU_IDENTIFIER = unsafeAsNavigationMenuIdentifier("main");
38805
39078
 
38806
39079
  // ../api/src/aiPlayground.ts
38807
- import { z as z69 } from "zod";
38808
- var Rfc6902PatchOp = z69.discriminatedUnion("op", [
39080
+ import { z as z70 } from "zod";
39081
+ var Rfc6902PatchOp = z70.discriminatedUnion("op", [
38809
39082
  // Standard RFC-6902 operations
38810
- z69.object({
38811
- op: z69.literal("add"),
38812
- path: z69.string(),
38813
- value: z69.unknown()
39083
+ z70.object({
39084
+ op: z70.literal("add"),
39085
+ path: z70.string(),
39086
+ value: z70.unknown()
38814
39087
  }),
38815
- z69.object({
38816
- op: z69.literal("remove"),
38817
- path: z69.string()
39088
+ z70.object({
39089
+ op: z70.literal("remove"),
39090
+ path: z70.string()
38818
39091
  }),
38819
- z69.object({
38820
- op: z69.literal("replace"),
38821
- path: z69.string(),
38822
- value: z69.unknown()
39092
+ z70.object({
39093
+ op: z70.literal("replace"),
39094
+ path: z70.string(),
39095
+ value: z70.unknown()
38823
39096
  }),
38824
- z69.object({
38825
- op: z69.literal("move"),
38826
- from: z69.string(),
38827
- path: z69.string()
39097
+ z70.object({
39098
+ op: z70.literal("move"),
39099
+ from: z70.string(),
39100
+ path: z70.string()
38828
39101
  }),
38829
- z69.object({
38830
- op: z69.literal("copy"),
38831
- from: z69.string(),
38832
- path: z69.string()
39102
+ z70.object({
39103
+ op: z70.literal("copy"),
39104
+ from: z70.string(),
39105
+ path: z70.string()
38833
39106
  }),
38834
39107
  // Block-level operations (Phase 2)
38835
- z69.object({
38836
- op: z69.literal("add_block"),
38837
- blockKind: z69.string(),
38838
- afterBlockId: z69.string().nullable(),
38839
- content: z69.record(z69.string(), z69.unknown()),
38840
- rationale: z69.string()
39108
+ z70.object({
39109
+ op: z70.literal("add_block"),
39110
+ blockKind: z70.string(),
39111
+ afterBlockId: z70.string().nullable(),
39112
+ content: z70.record(z70.string(), z70.unknown()),
39113
+ rationale: z70.string()
38841
39114
  }),
38842
- z69.object({
38843
- op: z69.literal("delete_block"),
38844
- blockId: z69.string(),
38845
- rationale: z69.string()
39115
+ z70.object({
39116
+ op: z70.literal("delete_block"),
39117
+ blockId: z70.string(),
39118
+ rationale: z70.string()
38846
39119
  }),
38847
- z69.object({
38848
- op: z69.literal("reorder_block"),
38849
- blockId: z69.string(),
38850
- afterBlockId: z69.string().nullable(),
38851
- rationale: z69.string()
39120
+ z70.object({
39121
+ op: z70.literal("reorder_block"),
39122
+ blockId: z70.string(),
39123
+ afterBlockId: z70.string().nullable(),
39124
+ rationale: z70.string()
38852
39125
  })
38853
39126
  ]);
38854
- var PlaygroundProposeRequest = z69.object({
38855
- request: z69.string().min(1).max(2e3)
39127
+ var PlaygroundProposeRequest = z70.object({
39128
+ request: z70.string().min(1).max(2e3)
38856
39129
  });
38857
- var MultiPagePatchEnvelope = z69.object({
38858
- pageId: z69.string(),
38859
- blockId: z69.string().optional(),
39130
+ var MultiPagePatchEnvelope = z70.object({
39131
+ pageId: z70.string(),
39132
+ blockId: z70.string().optional(),
38860
39133
  // Not present for page-level ops
38861
- blockKind: z69.string().optional(),
38862
- blockPurpose: z69.string().optional().nullable(),
38863
- ops: z69.array(Rfc6902PatchOp),
38864
- rationale: z69.string(),
38865
- currentContent: z69.record(z69.string(), z69.unknown()).optional()
39134
+ blockKind: z70.string().optional(),
39135
+ blockPurpose: z70.string().optional().nullable(),
39136
+ ops: z70.array(Rfc6902PatchOp),
39137
+ rationale: z70.string(),
39138
+ currentContent: z70.record(z70.string(), z70.unknown()).optional()
38866
39139
  });
38867
- var MultiPageUpdateResponse = z69.object({
38868
- patches: z69.array(MultiPagePatchEnvelope),
38869
- assistantMessage: z69.string(),
38870
- pagesModified: z69.number(),
38871
- toolCallsUsed: z69.number()
39140
+ var MultiPageUpdateResponse = z70.object({
39141
+ patches: z70.array(MultiPagePatchEnvelope),
39142
+ assistantMessage: z70.string(),
39143
+ pagesModified: z70.number(),
39144
+ toolCallsUsed: z70.number()
38872
39145
  });
38873
39146
 
38874
39147
  // src/config/content-validation.ts
38875
- import { z as z70 } from "zod";
39148
+ import { z as z71 } from "zod";
38876
39149
 
38877
39150
  // src/types/block-kinds.ts
38878
39151
  var SYSTEM_BLOCK_KINDS = [
@@ -39016,36 +39289,36 @@ function describeInvalidBindingTransform(transform) {
39016
39289
  }
39017
39290
 
39018
39291
  // src/config/content-validation.ts
39019
- var jsonDataSchema = z70.record(z70.string(), z70.any());
39020
- var contentTypeKeySchema = z70.string().min(1).regex(
39292
+ var jsonDataSchema = z71.record(z71.string(), z71.any());
39293
+ var contentTypeKeySchema = z71.string().min(1).regex(
39021
39294
  /^[a-z][a-z0-9-]*$/,
39022
39295
  "Key must be lowercase, start with a letter, and contain only letters, numbers, and hyphens"
39023
39296
  );
39024
- var templateConfigSchemaForward = z70.object({
39025
- blocks: z70.array(
39026
- z70.object({
39027
- identifier: z70.string().min(1),
39028
- kind: z70.string(),
39029
- scope: z70.enum(["entry", "template"]),
39030
- bindings: z70.record(z70.string(), z70.any()).optional(),
39031
- content: z70.record(z70.string(), z70.any()).optional()
39297
+ var templateConfigSchemaForward = z71.object({
39298
+ blocks: z71.array(
39299
+ z71.object({
39300
+ identifier: z71.string().min(1),
39301
+ kind: z71.string(),
39302
+ scope: z71.enum(["entry", "template"]),
39303
+ bindings: z71.record(z71.string(), z71.any()).optional(),
39304
+ content: z71.record(z71.string(), z71.any()).optional()
39032
39305
  })
39033
39306
  )
39034
39307
  }).optional();
39035
- var contentTypeOrderingSchema = z70.object({
39036
- mode: z70.enum(["default", "manual"]).optional()
39308
+ var contentTypeOrderingSchema = z71.object({
39309
+ mode: z71.enum(["default", "manual"]).optional()
39037
39310
  }).optional();
39038
- var contentTypeConfigSchema = z70.object({
39311
+ var contentTypeConfigSchema = z71.object({
39039
39312
  key: contentTypeKeySchema,
39040
- name: z70.string().min(1),
39041
- description: z70.string().optional(),
39042
- hasPages: z70.boolean(),
39043
- routePattern: z70.string().optional(),
39313
+ name: z71.string().min(1),
39314
+ description: z71.string().optional(),
39315
+ hasPages: z71.boolean(),
39316
+ routePattern: z71.string().optional(),
39044
39317
  // Fields are validated as unknown[] here - deep field validation happens in @riverbankcms/blocks
39045
- fields: z70.array(z70.any()).min(1, "At least one field is required"),
39046
- titleField: z70.string().optional(),
39318
+ fields: z71.array(z71.any()).min(1, "At least one field is required"),
39319
+ titleField: z71.string().optional(),
39047
39320
  ordering: contentTypeOrderingSchema,
39048
- isSingleton: z70.boolean().optional().default(false),
39321
+ isSingleton: z71.boolean().optional().default(false),
39049
39322
  template: templateConfigSchemaForward
39050
39323
  }).refine(
39051
39324
  (data) => {
@@ -39067,7 +39340,7 @@ var contentTypeConfigSchema = z70.object({
39067
39340
  }
39068
39341
  if (!data.routePattern) {
39069
39342
  ctx.addIssue({
39070
- code: z70.ZodIssueCode.custom,
39343
+ code: z71.ZodIssueCode.custom,
39071
39344
  path: ["routePattern"],
39072
39345
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39073
39346
  });
@@ -39076,7 +39349,7 @@ var contentTypeConfigSchema = z70.object({
39076
39349
  const parseResult = safeParseRouteTemplate(data.routePattern);
39077
39350
  if (!parseResult.success) {
39078
39351
  ctx.addIssue({
39079
- code: z70.ZodIssueCode.custom,
39352
+ code: z71.ZodIssueCode.custom,
39080
39353
  path: ["routePattern"],
39081
39354
  message: describeRouteTemplateParseError(parseResult.error)
39082
39355
  });
@@ -39084,44 +39357,44 @@ var contentTypeConfigSchema = z70.object({
39084
39357
  }
39085
39358
  if (!data.isSingleton && parseResult.routeTemplate.kind !== "slug-template") {
39086
39359
  ctx.addIssue({
39087
- code: z70.ZodIssueCode.custom,
39360
+ code: z71.ZodIssueCode.custom,
39088
39361
  path: ["routePattern"],
39089
39362
  message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
39090
39363
  });
39091
39364
  }
39092
39365
  });
39093
- var fieldBindingSchema = z70.object({
39094
- source: z70.literal("field"),
39095
- path: z70.string().min(1, "Field path is required")
39366
+ var fieldBindingSchema = z71.object({
39367
+ source: z71.literal("field"),
39368
+ path: z71.string().min(1, "Field path is required")
39096
39369
  });
39097
- var metaBindingSchema = z70.object({
39098
- source: z70.literal("meta"),
39099
- path: z70.enum(TEMPLATE_BINDING_META_PATHS, {
39370
+ var metaBindingSchema = z71.object({
39371
+ source: z71.literal("meta"),
39372
+ path: z71.enum(TEMPLATE_BINDING_META_PATHS, {
39100
39373
  error: (issue) => describeInvalidTemplateBindingMetaPath(String(issue.input))
39101
39374
  })
39102
39375
  });
39103
- var literalBindingSchema = z70.object({
39104
- source: z70.literal("literal"),
39105
- value: z70.unknown()
39376
+ var literalBindingSchema = z71.object({
39377
+ source: z71.literal("literal"),
39378
+ value: z71.unknown()
39106
39379
  });
39107
- var transformBindingSchema = z70.object({
39108
- source: z70.literal("transform"),
39109
- path: z70.string().min(1, "Transform path is required"),
39110
- transform: z70.enum(BINDING_TRANSFORM_VALUES, {
39380
+ var transformBindingSchema = z71.object({
39381
+ source: z71.literal("transform"),
39382
+ path: z71.string().min(1, "Transform path is required"),
39383
+ transform: z71.enum(BINDING_TRANSFORM_VALUES, {
39111
39384
  error: (issue) => describeInvalidBindingTransform(String(issue.input))
39112
39385
  })
39113
39386
  });
39114
- var baseBindingSchema = z70.discriminatedUnion("source", [
39387
+ var baseBindingSchema = z71.discriminatedUnion("source", [
39115
39388
  fieldBindingSchema,
39116
39389
  metaBindingSchema,
39117
39390
  literalBindingSchema,
39118
39391
  transformBindingSchema
39119
39392
  ]);
39120
- var fallbackBindingSchema = z70.object({
39121
- source: z70.literal("fallback"),
39122
- sources: z70.array(z70.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39393
+ var fallbackBindingSchema = z71.object({
39394
+ source: z71.literal("fallback"),
39395
+ sources: z71.array(z71.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
39123
39396
  });
39124
- var bindingSourceSchema = z70.union([
39397
+ var bindingSourceSchema = z71.union([
39125
39398
  baseBindingSchema,
39126
39399
  fallbackBindingSchema
39127
39400
  ]);
@@ -39135,12 +39408,12 @@ function isValidBlockKind(kind) {
39135
39408
  return false;
39136
39409
  }
39137
39410
  var BLOCK_KIND_ERROR_MESSAGE = 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.myBlock")';
39138
- var blockKindSchema = z70.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39139
- var templateBlockConfigSchema = z70.object({
39140
- identifier: z70.string().min(1, "Block identifier is required"),
39411
+ var blockKindSchema = z71.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
39412
+ var templateBlockConfigSchema = z71.object({
39413
+ identifier: z71.string().min(1, "Block identifier is required"),
39141
39414
  kind: blockKindSchema,
39142
- scope: z70.enum(["entry", "template"]),
39143
- bindings: z70.record(z70.string(), bindingSourceSchema).optional(),
39415
+ scope: z71.enum(["entry", "template"]),
39416
+ bindings: z71.record(z71.string(), bindingSourceSchema).optional(),
39144
39417
  content: jsonDataSchema.optional()
39145
39418
  }).refine(
39146
39419
  (data) => {
@@ -39159,8 +39432,8 @@ var templateBlockConfigSchema = z70.object({
39159
39432
  },
39160
39433
  { message: "Template-scoped blocks should define static content, not bindings" }
39161
39434
  );
39162
- var templateConfigSchema = z70.object({
39163
- blocks: z70.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39435
+ var templateConfigSchema = z71.object({
39436
+ blocks: z71.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
39164
39437
  }).refine(
39165
39438
  (data) => {
39166
39439
  const identifiers = data.blocks.map((b) => b.identifier);
@@ -39169,77 +39442,77 @@ var templateConfigSchema = z70.object({
39169
39442
  },
39170
39443
  { message: "Template block identifiers must be unique" }
39171
39444
  );
39172
- var blockConfigSchema = z70.object({
39445
+ var blockConfigSchema = z71.object({
39173
39446
  kind: blockKindSchema,
39174
39447
  content: jsonDataSchema,
39175
- orderIndex: z70.number().optional()
39176
- });
39177
- var pageConfigSchema = z70.object({
39178
- identifier: z70.string().min(1, "Identifier is required"),
39179
- title: z70.string().min(1, "Title is required"),
39180
- path: z70.string().regex(/^\//, "Path must start with /"),
39181
- purpose: z70.string().default("content"),
39182
- blocks: z70.array(blockConfigSchema).optional(),
39183
- status: z70.enum(["draft", "published"]).default("draft"),
39184
- metaTitle: z70.string().optional(),
39185
- metaDescription: z70.string().optional()
39186
- });
39187
- var entryConfigSchema = z70.object({
39188
- identifier: z70.string().min(1, "Identifier is required"),
39189
- contentType: z70.string().min(1, "Content type is required"),
39448
+ orderIndex: z71.number().optional()
39449
+ });
39450
+ var pageConfigSchema = z71.object({
39451
+ identifier: z71.string().min(1, "Identifier is required"),
39452
+ title: z71.string().min(1, "Title is required"),
39453
+ path: z71.string().regex(/^\//, "Path must start with /"),
39454
+ purpose: z71.string().default("content"),
39455
+ blocks: z71.array(blockConfigSchema).optional(),
39456
+ status: z71.enum(["draft", "published"]).default("draft"),
39457
+ metaTitle: z71.string().optional(),
39458
+ metaDescription: z71.string().optional()
39459
+ });
39460
+ var entryConfigSchema = z71.object({
39461
+ identifier: z71.string().min(1, "Identifier is required"),
39462
+ contentType: z71.string().min(1, "Content type is required"),
39190
39463
  data: jsonDataSchema,
39191
- status: z70.enum(["draft", "published"]).default("draft"),
39192
- slug: z70.string().optional(),
39193
- summary: z70.string().optional(),
39464
+ status: z71.enum(["draft", "published"]).default("draft"),
39465
+ slug: z71.string().optional(),
39466
+ summary: z71.string().optional(),
39194
39467
  // Hard remove legacy config-only titles: titles must live in entry `data`.
39195
- title: z70.any().optional().refine((value) => value === void 0, {
39468
+ title: z71.any().optional().refine((value) => value === void 0, {
39196
39469
  message: "Entry titles are now derived from entry data. Remove `title` and move it into `data` (e.g. `data.title`, or your configured `titleField`). Run `riverbankcms migrate entries` for guided migration."
39197
39470
  }),
39198
- metaTitle: z70.string().optional(),
39199
- metaDescription: z70.string().optional()
39471
+ metaTitle: z71.string().optional(),
39472
+ metaDescription: z71.string().optional()
39200
39473
  });
39201
- var dropdownLinkSchema = z70.object({
39202
- kind: z70.literal("dropdown")
39474
+ var dropdownLinkSchema = z71.object({
39475
+ kind: z71.literal("dropdown")
39203
39476
  });
39204
- var navigationLinkSchema = z70.discriminatedUnion("kind", [
39477
+ var navigationLinkSchema = z71.discriminatedUnion("kind", [
39205
39478
  ...navigationLinkInputSchemaOptions,
39206
39479
  dropdownLinkSchema
39207
39480
  ]);
39208
- var baseNavigationItemSchema = z70.object({
39209
- label: z70.string().min(1, "Label is required"),
39481
+ var baseNavigationItemSchema = z71.object({
39482
+ label: z71.string().min(1, "Label is required"),
39210
39483
  link: navigationLinkSchema,
39211
- isCta: z70.boolean().optional()
39484
+ isCta: z71.boolean().optional()
39212
39485
  });
39213
39486
  var navigationItemConfigSchema = baseNavigationItemSchema.extend({
39214
- children: z70.lazy(() => z70.array(navigationItemConfigSchema)).optional()
39215
- });
39216
- var navigationMenuConfigSchema = z70.object({
39217
- identifier: z70.string().min(1, "Identifier is required"),
39218
- name: z70.string().min(1, "Name is required"),
39219
- isPrimary: z70.boolean().optional(),
39220
- isFooter: z70.boolean().optional(),
39221
- items: z70.array(navigationItemConfigSchema)
39487
+ children: z71.lazy(() => z71.array(navigationItemConfigSchema)).optional()
39488
+ });
39489
+ var navigationMenuConfigSchema = z71.object({
39490
+ identifier: z71.string().min(1, "Identifier is required"),
39491
+ name: z71.string().min(1, "Name is required"),
39492
+ isPrimary: z71.boolean().optional(),
39493
+ isFooter: z71.boolean().optional(),
39494
+ items: z71.array(navigationItemConfigSchema)
39222
39495
  }).superRefine((menu, ctx) => {
39223
39496
  const portalStats = collectPortalLinkStats(
39224
39497
  menu.items
39225
39498
  );
39226
39499
  if (portalStats.count > 1) {
39227
39500
  ctx.addIssue({
39228
- code: z70.ZodIssueCode.custom,
39501
+ code: z71.ZodIssueCode.custom,
39229
39502
  message: "Only one portal link is allowed per navigation menu",
39230
39503
  path: ["items"]
39231
39504
  });
39232
39505
  }
39233
39506
  if (portalStats.nestedLabels.length > 0) {
39234
39507
  ctx.addIssue({
39235
- code: z70.ZodIssueCode.custom,
39508
+ code: z71.ZodIssueCode.custom,
39236
39509
  message: `Portal links must be root-level items: ${portalStats.nestedLabels.join(", ")}`,
39237
39510
  path: ["items"]
39238
39511
  });
39239
39512
  }
39240
39513
  if (portalStats.withChildrenLabels.length > 0) {
39241
39514
  ctx.addIssue({
39242
- code: z70.ZodIssueCode.custom,
39515
+ code: z71.ZodIssueCode.custom,
39243
39516
  message: `Portal links cannot contain child items: ${portalStats.withChildrenLabels.join(", ")}`,
39244
39517
  path: ["items"]
39245
39518
  });
@@ -39249,44 +39522,44 @@ var navigationMenuConfigSchema = z70.object({
39249
39522
  );
39250
39523
  if (cartStats.nestedLabels.length > 0) {
39251
39524
  ctx.addIssue({
39252
- code: z70.ZodIssueCode.custom,
39525
+ code: z71.ZodIssueCode.custom,
39253
39526
  message: `Cart links must be root-level items: ${cartStats.nestedLabels.join(", ")}`,
39254
39527
  path: ["items"]
39255
39528
  });
39256
39529
  }
39257
39530
  if (cartStats.withChildrenLabels.length > 0) {
39258
39531
  ctx.addIssue({
39259
- code: z70.ZodIssueCode.custom,
39532
+ code: z71.ZodIssueCode.custom,
39260
39533
  message: `Cart links cannot contain child items: ${cartStats.withChildrenLabels.join(", ")}`,
39261
39534
  path: ["items"]
39262
39535
  });
39263
39536
  }
39264
39537
  if (cartStats.ctaLabels.length > 0) {
39265
39538
  ctx.addIssue({
39266
- code: z70.ZodIssueCode.custom,
39539
+ code: z71.ZodIssueCode.custom,
39267
39540
  message: `Cart links cannot be marked as CTA: ${cartStats.ctaLabels.join(", ")}`,
39268
39541
  path: ["items"]
39269
39542
  });
39270
39543
  }
39271
39544
  if (cartStats.missingVisibleTextLabels.length > 0) {
39272
39545
  ctx.addIssue({
39273
- code: z70.ZodIssueCode.custom,
39546
+ code: z71.ZodIssueCode.custom,
39274
39547
  message: `Cart links with icon-with-label must provide a visible label: ${cartStats.missingVisibleTextLabels.join(", ")}`,
39275
39548
  path: ["items"]
39276
39549
  });
39277
39550
  }
39278
39551
  });
39279
- var siteSettingsConfigSchema = z70.object({
39280
- homepagePath: z70.string().optional(),
39281
- siteTitle: z70.string().optional(),
39282
- siteDescription: z70.string().optional(),
39283
- defaultTemplates: z70.record(z70.string(), z70.string()).optional()
39552
+ var siteSettingsConfigSchema = z71.object({
39553
+ homepagePath: z71.string().optional(),
39554
+ siteTitle: z71.string().optional(),
39555
+ siteDescription: z71.string().optional(),
39556
+ defaultTemplates: z71.record(z71.string(), z71.string()).optional()
39284
39557
  });
39285
- var contentConfigBaseSchema = z70.object({
39286
- contentTypes: z70.array(contentTypeConfigSchema).optional(),
39287
- entries: z70.array(entryConfigSchema).optional(),
39288
- pages: z70.array(pageConfigSchema).optional(),
39289
- navigationMenus: z70.array(navigationMenuConfigSchema).optional(),
39558
+ var contentConfigBaseSchema = z71.object({
39559
+ contentTypes: z71.array(contentTypeConfigSchema).optional(),
39560
+ entries: z71.array(entryConfigSchema).optional(),
39561
+ pages: z71.array(pageConfigSchema).optional(),
39562
+ navigationMenus: z71.array(navigationMenuConfigSchema).optional(),
39290
39563
  settings: siteSettingsConfigSchema.optional()
39291
39564
  });
39292
39565
  var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
@@ -39295,7 +39568,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39295
39568
  const duplicateKeys = keys.filter((key, i) => keys.indexOf(key) !== i);
39296
39569
  if (duplicateKeys.length > 0) {
39297
39570
  ctx.addIssue({
39298
- code: z70.ZodIssueCode.custom,
39571
+ code: z71.ZodIssueCode.custom,
39299
39572
  message: `Content type keys must be unique. Duplicates: ${duplicateKeys.join(", ")}`,
39300
39573
  path: ["contentTypes"]
39301
39574
  });
@@ -39306,7 +39579,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39306
39579
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39307
39580
  if (duplicateIds.length > 0) {
39308
39581
  ctx.addIssue({
39309
- code: z70.ZodIssueCode.custom,
39582
+ code: z71.ZodIssueCode.custom,
39310
39583
  message: `Page identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39311
39584
  path: ["pages"]
39312
39585
  });
@@ -39315,7 +39588,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39315
39588
  const duplicatePaths = paths.filter((path, i) => paths.indexOf(path) !== i);
39316
39589
  if (duplicatePaths.length > 0) {
39317
39590
  ctx.addIssue({
39318
- code: z70.ZodIssueCode.custom,
39591
+ code: z71.ZodIssueCode.custom,
39319
39592
  message: `Page paths must be unique. Duplicates: ${duplicatePaths.join(", ")}`,
39320
39593
  path: ["pages"]
39321
39594
  });
@@ -39326,7 +39599,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39326
39599
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39327
39600
  if (duplicateIds.length > 0) {
39328
39601
  ctx.addIssue({
39329
- code: z70.ZodIssueCode.custom,
39602
+ code: z71.ZodIssueCode.custom,
39330
39603
  message: `Entry identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39331
39604
  path: ["entries"]
39332
39605
  });
@@ -39337,7 +39610,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39337
39610
  const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
39338
39611
  if (duplicateIds.length > 0) {
39339
39612
  ctx.addIssue({
39340
- code: z70.ZodIssueCode.custom,
39613
+ code: z71.ZodIssueCode.custom,
39341
39614
  message: `Navigation menu identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
39342
39615
  path: ["navigationMenus"]
39343
39616
  });
@@ -39351,7 +39624,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
39351
39624
  const entriesForType = data.entries.filter((e) => e.contentType === singletonKey);
39352
39625
  if (entriesForType.length > 1) {
39353
39626
  ctx.addIssue({
39354
- code: z70.ZodIssueCode.custom,
39627
+ code: z71.ZodIssueCode.custom,
39355
39628
  message: `Singleton content type "${singletonKey}" cannot have more than one entry. Found ${entriesForType.length} entries.`,
39356
39629
  path: ["entries"]
39357
39630
  });
@@ -39464,18 +39737,18 @@ function validateLayout(layout) {
39464
39737
  }
39465
39738
 
39466
39739
  // src/config/dashboard-validation.ts
39467
- import { z as z71 } from "zod";
39468
- var navIdListSchema2 = z71.preprocess((value) => {
39740
+ import { z as z72 } from "zod";
39741
+ var navIdListSchema2 = z72.preprocess((value) => {
39469
39742
  if (!Array.isArray(value)) return void 0;
39470
39743
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
39471
39744
  return filtered.length > 0 ? filtered : void 0;
39472
- }, z71.array(z71.string()).max(200, "Maximum 200 nav IDs").optional());
39473
- var dashboardNavVisibilityBaseSchema2 = z71.object({
39474
- mode: z71.enum(["augment", "restrict"]).optional(),
39745
+ }, z72.array(z72.string()).max(200, "Maximum 200 nav IDs").optional());
39746
+ var dashboardNavVisibilityBaseSchema2 = z72.object({
39747
+ mode: z72.enum(["augment", "restrict"]).optional(),
39475
39748
  allowIds: navIdListSchema2,
39476
39749
  denyIds: navIdListSchema2
39477
39750
  }).strip();
39478
- var dashboardNavVisibilityRolesSchema2 = z71.object({
39751
+ var dashboardNavVisibilityRolesSchema2 = z72.object({
39479
39752
  administrator: dashboardNavVisibilityBaseSchema2.optional(),
39480
39753
  editor: dashboardNavVisibilityBaseSchema2.optional(),
39481
39754
  team_member: dashboardNavVisibilityBaseSchema2.optional()
@@ -39483,43 +39756,28 @@ var dashboardNavVisibilityRolesSchema2 = z71.object({
39483
39756
  var dashboardNavVisibilitySchema2 = dashboardNavVisibilityBaseSchema2.extend({
39484
39757
  roles: dashboardNavVisibilityRolesSchema2
39485
39758
  }).strip();
39486
- var dashboardNavigationConfigSchema2 = z71.object({
39759
+ var dashboardNavigationConfigSchema2 = z72.object({
39487
39760
  siteNav: dashboardNavVisibilitySchema2.optional(),
39488
39761
  settingsNav: dashboardNavVisibilitySchema2.optional()
39489
39762
  }).strip();
39490
- var dashboardConfigSchema2 = z71.object({
39491
- previewEditingEnabled: z71.boolean().optional(),
39763
+ var dashboardConfigSchema2 = z72.object({
39764
+ previewEditingEnabled: z72.boolean().optional(),
39492
39765
  navigation: dashboardNavigationConfigSchema2.optional()
39493
39766
  }).strip();
39494
39767
 
39495
39768
  // src/zod/titleSourceSchema.ts
39496
- import { z as z72 } from "zod";
39497
- var titleSourceValueSchema = z72.union([
39498
- z72.string().min(1),
39499
- z72.array(z72.string().min(1)).min(1)
39769
+ import { z as z73 } from "zod";
39770
+ var titleSourceValueSchema = z73.union([
39771
+ z73.string().min(1),
39772
+ z73.array(z73.string().min(1)).min(1)
39500
39773
  ]);
39501
39774
 
39502
- // src/data/prefetchBlockData.ts
39503
- var SUPPORTED_LOADER_ENDPOINTS2 = [
39504
- "listPublishedEntries",
39505
- "getPublishedEntryPreview",
39506
- "listPublicEvents",
39507
- "listPublicCourses",
39508
- "listPublicTeamMembers",
39509
- "listPublicProducts",
39510
- "listPublicPasses",
39511
- "listPublicMemberships",
39512
- "getPublicFormById",
39513
- "getPublicBookingServices",
39514
- "getPublicEventDetails"
39515
- ];
39516
-
39517
39775
  // src/config/validation.ts
39518
- var sdkThemePaletteSchema2 = z73.record(z73.string(), z73.string());
39519
- var sdkThemeConfigSchema2 = z73.object({
39776
+ var sdkThemePaletteSchema2 = z74.record(z74.string(), z74.string());
39777
+ var sdkThemeConfigSchema2 = z74.object({
39520
39778
  palette: sdkThemePaletteSchema2
39521
39779
  });
39522
- var sdkSiteUrlSchema = z73.string().url("Must be a valid URL").refine((url) => {
39780
+ var sdkSiteUrlSchema = z74.string().url("Must be a valid URL").refine((url) => {
39523
39781
  try {
39524
39782
  const parsed = new URL(url);
39525
39783
  const isLocal = parsed.hostname === "localhost" || parsed.hostname.endsWith(".localhost") || parsed.hostname.endsWith(".local") || parsed.hostname.endsWith(".test");
@@ -39528,97 +39786,97 @@ var sdkSiteUrlSchema = z73.string().url("Must be a valid URL").refine((url) => {
39528
39786
  return false;
39529
39787
  }
39530
39788
  }, { message: "Production URLs must use HTTPS" }).transform((url) => url.replace(/\/$/, ""));
39531
- var sectionBackgroundSchema = z73.object({
39532
- id: z73.string(),
39533
- label: z73.string(),
39534
- token: z73.string()
39789
+ var sectionBackgroundSchema = z74.object({
39790
+ id: z74.string(),
39791
+ label: z74.string(),
39792
+ token: z74.string()
39535
39793
  // Reference to theme palette token
39536
39794
  });
39537
- var sectionSpacingSchema = z73.enum(["compact", "default", "spacious"]);
39538
- var containerMaxWidthSchema = z73.enum(["narrow", "default", "wide", "full"]);
39539
- var containerAlignmentSchema = z73.enum(["left", "center", "right"]);
39540
- var sectionOptionsSchema = z73.object({
39541
- backgroundColor: z73.boolean().optional(),
39542
- backgroundImage: z73.boolean().optional(),
39543
- backgroundGradient: z73.boolean().optional(),
39544
- spacing: z73.union([
39545
- z73.array(sectionSpacingSchema),
39546
- z73.boolean()
39795
+ var sectionSpacingSchema = z74.enum(["compact", "default", "spacious"]);
39796
+ var containerMaxWidthSchema = z74.enum(["narrow", "default", "wide", "full"]);
39797
+ var containerAlignmentSchema = z74.enum(["left", "center", "right"]);
39798
+ var sectionOptionsSchema = z74.object({
39799
+ backgroundColor: z74.boolean().optional(),
39800
+ backgroundImage: z74.boolean().optional(),
39801
+ backgroundGradient: z74.boolean().optional(),
39802
+ spacing: z74.union([
39803
+ z74.array(sectionSpacingSchema),
39804
+ z74.boolean()
39547
39805
  ]).optional(),
39548
- textColor: z73.boolean().optional()
39806
+ textColor: z74.boolean().optional()
39549
39807
  }).optional();
39550
- var containerOptionsSchema = z73.object({
39551
- maxWidth: z73.union([
39552
- z73.array(containerMaxWidthSchema),
39553
- z73.boolean()
39808
+ var containerOptionsSchema = z74.object({
39809
+ maxWidth: z74.union([
39810
+ z74.array(containerMaxWidthSchema),
39811
+ z74.boolean()
39554
39812
  ]).optional(),
39555
- alignment: z73.union([
39556
- z73.array(containerAlignmentSchema),
39557
- z73.boolean()
39813
+ alignment: z74.union([
39814
+ z74.array(containerAlignmentSchema),
39815
+ z74.boolean()
39558
39816
  ]).optional()
39559
39817
  }).optional();
39560
- var siteStyleConfigSchema = z73.object({
39561
- sectionBackgrounds: z73.array(sectionBackgroundSchema).optional(),
39818
+ var siteStyleConfigSchema = z74.object({
39819
+ sectionBackgrounds: z74.array(sectionBackgroundSchema).optional(),
39562
39820
  sectionOptions: sectionOptionsSchema,
39563
39821
  containerOptions: containerOptionsSchema
39564
39822
  }).optional();
39565
- var sdkLoaderEndpointSchema2 = z73.enum(SUPPORTED_LOADER_ENDPOINTS2);
39823
+ var sdkLoaderEndpointSchema2 = z74.enum(SUPPORTED_LOADER_ENDPOINTS);
39566
39824
  var allowedTransformIds = new Set(builtinTransformDefinitions.map((transform) => transform.id));
39567
- var loaderTransformStepSchema = z73.object({
39568
- id: z73.string().refine((id) => allowedTransformIds.has(id), {
39825
+ var loaderTransformStepSchema = z74.object({
39826
+ id: z74.string().refine((id) => allowedTransformIds.has(id), {
39569
39827
  message: "Unknown transform id"
39570
39828
  }),
39571
- options: z73.record(z73.string(), z73.unknown()).optional()
39829
+ options: z74.record(z74.string(), z74.unknown()).optional()
39572
39830
  });
39573
- var loaderParamBindingSchema2 = z73.object({
39574
- $bind: z73.object({
39575
- from: z73.string().min(1, "Binding path is required"),
39831
+ var loaderParamBindingSchema2 = z74.object({
39832
+ $bind: z74.object({
39833
+ from: z74.string().min(1, "Binding path is required"),
39576
39834
  // Loader params are ultimately string-normalized for query strings, so fallbacks should
39577
39835
  // stay scalar. Use transforms (e.g. `value.jsonArray`) when you need to serialize
39578
39836
  // more complex values into a string.
39579
39837
  fallback: loaderFallbackScalarSchema.optional(),
39580
- transforms: z73.array(loaderTransformStepSchema).default([]),
39581
- pick: z73.enum(["value", "collection", "context"]).default("value"),
39582
- coerce: z73.enum(["number", "boolean", "string"]).optional()
39838
+ transforms: z74.array(loaderTransformStepSchema).default([]),
39839
+ pick: z74.enum(["value", "collection", "context"]).default("value"),
39840
+ coerce: z74.enum(["number", "boolean", "string"]).optional()
39583
39841
  })
39584
39842
  });
39585
- var loaderParamValueSchema2 = z73.union([
39586
- z73.string(),
39587
- z73.number(),
39588
- z73.boolean(),
39843
+ var loaderParamValueSchema2 = z74.union([
39844
+ z74.string(),
39845
+ z74.number(),
39846
+ z74.boolean(),
39589
39847
  loaderParamBindingSchema2
39590
39848
  ]);
39591
- var loaderWhenValueSchema = z73.union([
39592
- z73.boolean(),
39849
+ var loaderWhenValueSchema = z74.union([
39850
+ z74.boolean(),
39593
39851
  loaderParamBindingSchema2
39594
39852
  ]);
39595
- var sdkConfigLoaderSchema2 = z73.object({
39853
+ var sdkConfigLoaderSchema2 = z74.object({
39596
39854
  endpoint: sdkLoaderEndpointSchema2,
39597
- params: z73.record(z73.string(), loaderParamValueSchema2),
39598
- mode: z73.enum(["server", "client"]).default("server"),
39855
+ params: z74.record(z74.string(), loaderParamValueSchema2),
39856
+ mode: z74.enum(["server", "client"]).default("server"),
39599
39857
  when: loaderWhenValueSchema.optional()
39600
39858
  });
39601
- var sdkDataLoadersSchema2 = z73.record(z73.string(), sdkConfigLoaderSchema2).refine(
39859
+ var sdkDataLoadersSchema2 = z74.record(z74.string(), sdkConfigLoaderSchema2).refine(
39602
39860
  (loaders) => Object.keys(loaders).length <= 5,
39603
39861
  { message: "Maximum 5 data loaders per block" }
39604
39862
  ).optional();
39605
- var fieldSelectOptionSchema = z73.object({
39606
- value: z73.string().min(1, "Option value is required"),
39607
- label: z73.string().min(1, "Option label is required")
39863
+ var fieldSelectOptionSchema = z74.object({
39864
+ value: z74.string().min(1, "Option value is required"),
39865
+ label: z74.string().min(1, "Option label is required")
39608
39866
  });
39609
- var blockFieldConfigSchema = z73.object({
39610
- options: z73.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
39867
+ var blockFieldConfigSchema = z74.object({
39868
+ options: z74.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
39611
39869
  });
39612
- var blockFieldOptionsSchema = z73.record(
39613
- z73.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
39870
+ var blockFieldOptionsSchema = z74.record(
39871
+ z74.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
39614
39872
  message: "Block ID must be 'block.*' or 'custom.*' format"
39615
39873
  }),
39616
- z73.record(
39617
- z73.string().min(1, "Field ID is required"),
39874
+ z74.record(
39875
+ z74.string().min(1, "Field ID is required"),
39618
39876
  blockFieldConfigSchema
39619
39877
  )
39620
39878
  ).optional();
39621
- var blockFieldExtensionSchema = z73.object({
39879
+ var blockFieldExtensionSchema = z74.object({
39622
39880
  fields: fieldSchema.array().min(1, "At least one field is required")
39623
39881
  }).refine(
39624
39882
  (data) => {
@@ -39632,10 +39890,10 @@ var blockFieldExtensionSchema = z73.object({
39632
39890
  message: "Required fields must have a defaultValue to support existing blocks"
39633
39891
  }
39634
39892
  );
39635
- var blockFieldExtensionsMapSchema = z73.record(
39893
+ var blockFieldExtensionsMapSchema = z74.record(
39636
39894
  // System blocks are kebab-case: block.body-text, block.event-calendar, ...
39637
39895
  // Enforce: lowercase alphanumerics with single hyphens (no trailing hyphen, no consecutive hyphens).
39638
- z73.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
39896
+ z74.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
39639
39897
  message: "Block ID must be 'block.*' format (system blocks only)"
39640
39898
  }),
39641
39899
  blockFieldExtensionSchema
@@ -39651,7 +39909,7 @@ var blockFieldExtensionsMapSchema = z73.record(
39651
39909
  (field) => field.id === collision.fieldId
39652
39910
  );
39653
39911
  ctx.addIssue({
39654
- code: z73.ZodIssueCode.custom,
39912
+ code: z74.ZodIssueCode.custom,
39655
39913
  message: collision.message,
39656
39914
  path: [
39657
39915
  APPOINTMENT_BOOKING_BLOCK_ID,
@@ -39666,24 +39924,24 @@ var blockFieldExtensionsSchema = blockFieldExtensionsMapSchema.optional();
39666
39924
  function collectAppointmentBookingExtensionReservedFieldCollisions(extension) {
39667
39925
  return collectBookingReservedFieldCollisions(extension, { type: "booking" });
39668
39926
  }
39669
- var syncConfigSchema = z73.object({
39670
- existingEntries: z73.enum(["skip", "update"]).optional()
39927
+ var syncConfigSchema = z74.object({
39928
+ existingEntries: z74.enum(["skip", "update"]).optional()
39671
39929
  }).optional();
39672
- var deployConfigSchema = z73.object({
39673
- verifyCommand: z73.string().optional(),
39674
- prebuildOutput: z73.string().optional()
39930
+ var deployConfigSchema = z74.object({
39931
+ verifyCommand: z74.string().optional(),
39932
+ prebuildOutput: z74.string().optional()
39675
39933
  }).optional();
39676
- var sdkCustomBlockSchema = z73.object({
39934
+ var sdkCustomBlockSchema = z74.object({
39677
39935
  // Block ID must start with 'custom.'
39678
- id: z73.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
39936
+ id: z74.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
39679
39937
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
39680
39938
  }),
39681
- title: z73.string().min(1, "Title is required"),
39939
+ title: z74.string().min(1, "Title is required"),
39682
39940
  titleSource: titleSourceValueSchema.optional(),
39683
- description: z73.string().optional(),
39941
+ description: z74.string().optional(),
39684
39942
  category: blockCategoryEnum,
39685
- icon: z73.string().optional(),
39686
- tags: z73.array(z73.string()).optional(),
39943
+ icon: z74.string().optional(),
39944
+ tags: z74.array(z74.string()).optional(),
39687
39945
  // Reuse the exact field schema from @riverbankcms/blocks - all field types supported
39688
39946
  fields: fieldSchema.array().min(1, "Custom blocks must have at least one field"),
39689
39947
  // Data loaders for CMS endpoints
@@ -39691,14 +39949,14 @@ var sdkCustomBlockSchema = z73.object({
39691
39949
  // Optional declarative layout - when present, block can render without React override
39692
39950
  layout: NodeSchema.optional(),
39693
39951
  // Optional variants system (preferred when a block has multiple structural layouts)
39694
- variants: z73.record(z73.string().min(1), NodeSchema).optional(),
39695
- defaultVariant: z73.string().min(1).optional(),
39696
- variantOptions: z73.record(
39697
- z73.string().min(1),
39698
- z73.object({
39699
- label: z73.string().min(1).optional(),
39700
- description: z73.string().min(1).optional(),
39701
- icon: z73.string().min(1).optional()
39952
+ variants: z74.record(z74.string().min(1), NodeSchema).optional(),
39953
+ defaultVariant: z74.string().min(1).optional(),
39954
+ variantOptions: z74.record(
39955
+ z74.string().min(1),
39956
+ z74.object({
39957
+ label: z74.string().min(1).optional(),
39958
+ description: z74.string().min(1).optional(),
39959
+ icon: z74.string().min(1).optional()
39702
39960
  })
39703
39961
  ).optional(),
39704
39962
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -39710,7 +39968,7 @@ var sdkCustomBlockSchema = z73.object({
39710
39968
  const exists = fields3.some((field) => field.id === source);
39711
39969
  if (!exists) {
39712
39970
  ctx.addIssue({
39713
- code: z73.ZodIssueCode.custom,
39971
+ code: z74.ZodIssueCode.custom,
39714
39972
  message: `titleSource must reference a valid field ID (got "${source}")`,
39715
39973
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
39716
39974
  });
@@ -39719,7 +39977,7 @@ var sdkCustomBlockSchema = z73.object({
39719
39977
  }
39720
39978
  if (data.layout && data.variants) {
39721
39979
  ctx.addIssue({
39722
- code: z73.ZodIssueCode.custom,
39980
+ code: z74.ZodIssueCode.custom,
39723
39981
  message: "Custom block must define either `layout` or `variants`, not both",
39724
39982
  path: ["variants"]
39725
39983
  });
@@ -39729,7 +39987,7 @@ var sdkCustomBlockSchema = z73.object({
39729
39987
  if (!result.valid) {
39730
39988
  for (const error of result.errors) {
39731
39989
  ctx.addIssue({
39732
- code: z73.ZodIssueCode.custom,
39990
+ code: z74.ZodIssueCode.custom,
39733
39991
  message: error.message,
39734
39992
  path: ["layout"]
39735
39993
  });
@@ -39740,14 +39998,14 @@ var sdkCustomBlockSchema = z73.object({
39740
39998
  const keys = Object.keys(data.variants);
39741
39999
  if (keys.length === 0) {
39742
40000
  ctx.addIssue({
39743
- code: z73.ZodIssueCode.custom,
40001
+ code: z74.ZodIssueCode.custom,
39744
40002
  message: "`variants` must contain at least one variant key",
39745
40003
  path: ["variants"]
39746
40004
  });
39747
40005
  }
39748
40006
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
39749
40007
  ctx.addIssue({
39750
- code: z73.ZodIssueCode.custom,
40008
+ code: z74.ZodIssueCode.custom,
39751
40009
  message: "`defaultVariant` must be a key present in `variants`",
39752
40010
  path: ["defaultVariant"]
39753
40011
  });
@@ -39757,7 +40015,7 @@ var sdkCustomBlockSchema = z73.object({
39757
40015
  if (!result.valid) {
39758
40016
  for (const error of result.errors) {
39759
40017
  ctx.addIssue({
39760
- code: z73.ZodIssueCode.custom,
40018
+ code: z74.ZodIssueCode.custom,
39761
40019
  message: `${key}: ${error.message}`,
39762
40020
  path: ["variants", key]
39763
40021
  });
@@ -39768,7 +40026,7 @@ var sdkCustomBlockSchema = z73.object({
39768
40026
  for (const key of Object.keys(data.variantOptions)) {
39769
40027
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
39770
40028
  ctx.addIssue({
39771
- code: z73.ZodIssueCode.custom,
40029
+ code: z74.ZodIssueCode.custom,
39772
40030
  message: "`variantOptions` key must exist in `variants`",
39773
40031
  path: ["variantOptions", key]
39774
40032
  });
@@ -39777,58 +40035,58 @@ var sdkCustomBlockSchema = z73.object({
39777
40035
  }
39778
40036
  }
39779
40037
  });
39780
- var themeSourceSchema = z73.enum(["local", "cms"]).optional();
39781
- var activeThemeSchema = z73.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
40038
+ var themeSourceSchema = z74.enum(["local", "cms"]).optional();
40039
+ var activeThemeSchema = z74.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
39782
40040
  message: "Theme name must be lowercase alphanumeric with hyphens/underscores"
39783
40041
  }).max(64, "Theme name too long").optional();
39784
40042
  function isValidConfigBlockKind(kind) {
39785
40043
  if (getBlockDefinition(kind)) return true;
39786
40044
  return /^custom\.[a-z][a-z0-9-]*$/.test(kind);
39787
40045
  }
39788
- var layoutBlockKindSchema = z73.string().refine(isValidConfigBlockKind, {
40046
+ var layoutBlockKindSchema = z74.string().refine(isValidConfigBlockKind, {
39789
40047
  message: 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.my-block")'
39790
40048
  });
39791
- var layoutFooterBlockSchema = z73.object({
39792
- id: z73.string().min(1).optional(),
40049
+ var layoutFooterBlockSchema = z74.object({
40050
+ id: z74.string().min(1).optional(),
39793
40051
  kind: layoutBlockKindSchema,
39794
40052
  // Allow omitted content for blocks that rely on defaults.
39795
- content: z73.record(z73.string(), z73.unknown()).optional()
40053
+ content: z74.record(z74.string(), z74.unknown()).optional()
39796
40054
  }).strict();
39797
- var layoutConfigSchema = z73.object({
39798
- footerBlocks: z73.array(layoutFooterBlockSchema).optional()
40055
+ var layoutConfigSchema = z74.object({
40056
+ footerBlocks: z74.array(layoutFooterBlockSchema).optional()
39799
40057
  }).strict();
39800
- var sdkWorkflowIdSchema2 = z73.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
40058
+ var sdkWorkflowIdSchema2 = z74.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
39801
40059
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
39802
40060
  });
39803
- var sdkWorkflowEndpointSchema2 = z73.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
39804
- var sdkWorkflowTriggerSchema2 = z73.discriminatedUnion("type", [
39805
- z73.object({ type: z73.literal("manual") }).strict()
40061
+ 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 "/"' });
40062
+ var sdkWorkflowTriggerSchema2 = z74.discriminatedUnion("type", [
40063
+ z74.object({ type: z74.literal("manual") }).strict()
39806
40064
  ]);
39807
- var sdkWorkflowConfirmationSchema2 = z73.object({
39808
- title: z73.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
39809
- body: z73.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
40065
+ var sdkWorkflowConfirmationSchema2 = z74.object({
40066
+ title: z74.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
40067
+ body: z74.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
39810
40068
  }).strict();
39811
- var sdkWorkflowConfigSchema2 = z73.object({
40069
+ var sdkWorkflowConfigSchema2 = z74.object({
39812
40070
  id: sdkWorkflowIdSchema2,
39813
- title: z73.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
39814
- description: z73.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
39815
- contentType: z73.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
40071
+ title: z74.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
40072
+ description: z74.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
40073
+ contentType: z74.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
39816
40074
  endpoint: sdkWorkflowEndpointSchema2,
39817
- triggers: z73.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
40075
+ triggers: z74.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
39818
40076
  confirmation: sdkWorkflowConfirmationSchema2.optional()
39819
40077
  }).strict();
39820
- var sdkWorkflowsSchema2 = z73.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
40078
+ var sdkWorkflowsSchema2 = z74.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
39821
40079
  const ids = workflows.map((workflow) => workflow.id);
39822
40080
  return ids.length === new Set(ids).size;
39823
40081
  }, { message: "Workflow IDs must be unique" }).optional();
39824
- var riverbankSiteConfigSchema = z73.object({
39825
- siteId: z73.string().uuid(),
40082
+ var riverbankSiteConfigSchema = z74.object({
40083
+ siteId: z74.string().uuid(),
39826
40084
  previewUrl: sdkSiteUrlSchema.optional(),
39827
40085
  liveUrl: sdkSiteUrlSchema.optional(),
39828
40086
  theme: sdkThemeConfigSchema2.optional(),
39829
40087
  styles: siteStyleConfigSchema,
39830
40088
  layout: layoutConfigSchema.optional(),
39831
- customBlocks: z73.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
40089
+ customBlocks: z74.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
39832
40090
  // Ensure unique block IDs
39833
40091
  (blocks) => {
39834
40092
  const ids = blocks.map((b) => b.id);
@@ -39841,7 +40099,7 @@ var riverbankSiteConfigSchema = z73.object({
39841
40099
  workflows: sdkWorkflowsSchema2,
39842
40100
  content: contentConfigSchema.optional(),
39843
40101
  // CLI-related configuration (Phase 4)
39844
- contentDir: z73.string().optional(),
40102
+ contentDir: z74.string().optional(),
39845
40103
  sync: syncConfigSchema,
39846
40104
  deploy: deployConfigSchema,
39847
40105
  // Theme sync configuration (Phase 5)