@riverbankcms/sdk 0.85.0 → 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 (135) 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/api/src/endpoints.d.ts +58 -14
  5. package/dist/_dts/api/src/index.d.ts +3 -0
  6. package/dist/_dts/api/src/launchReadiness.d.ts +3 -3
  7. package/dist/_dts/api/src/mailchimpIntegration.d.ts +215 -0
  8. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +35 -15
  9. package/dist/_dts/api/src/siteInfrastructure.d.ts +0 -14
  10. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +1 -13
  11. package/dist/_dts/api/src/types.d.ts +6 -3
  12. package/dist/_dts/blocks/src/PageRenderer.d.ts +1 -0
  13. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -0
  14. package/dist/_dts/blocks/src/index.d.ts +2 -1
  15. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +288 -288
  16. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +288 -288
  17. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +288 -288
  18. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +288 -288
  19. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +288 -288
  20. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +42 -0
  21. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -0
  22. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +288 -288
  23. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +288 -288
  24. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
  25. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +42 -42
  26. package/dist/_dts/blocks/src/system/blocks/newsletter-signup-destination.d.ts +300 -0
  27. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +63 -3
  28. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +288 -288
  29. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +288 -288
  30. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +288 -288
  31. package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +53 -1
  32. package/dist/_dts/blocks/src/system/manifest/richTextSchema.d.ts +27 -0
  33. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +23 -23
  34. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +10 -2
  35. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +24 -0
  36. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +12 -0
  37. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +1 -0
  38. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +4 -0
  39. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
  40. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +11 -1
  41. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +15 -0
  42. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.server.d.ts +1 -1
  43. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +32 -0
  44. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +5 -1
  45. package/dist/_dts/blocks/src/system/runtime/shared/components/ModalShell.d.ts +5 -1
  46. package/dist/_dts/blocks/src/system/runtime/shared/utils/formatting.d.ts +1 -1
  47. package/dist/_dts/content-model/src/referenceFields.d.ts +1 -1
  48. package/dist/_dts/core/src/currency-format.d.ts +37 -2
  49. package/dist/_dts/core/src/event-pricing.d.ts +24 -0
  50. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +549 -18
  51. package/dist/_dts/editor-blocks/src/widgets/reference/loaders.d.ts +3 -1
  52. package/dist/_dts/sdk/src/client/types.d.ts +9 -0
  53. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  54. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +3 -0
  55. package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +3 -9
  56. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +1 -1
  57. package/dist/_dts/sdk/src/manifest/three-pass-converter.d.ts +7 -18
  58. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -0
  59. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +3 -1
  60. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +7 -3
  61. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +4 -24
  62. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +45 -0
  63. package/dist/_dts/sdk/src/version.d.ts +1 -1
  64. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  65. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +9 -9
  66. package/dist/_dts/theme-core/src/schema.d.ts +11 -11
  67. package/dist/{chunk-ZR2GQK2A.mjs → chunk-7KOO7RPP.mjs} +953 -315
  68. package/dist/{chunk-OCGTXHSO.mjs → chunk-ER4UIW4X.mjs} +7 -7
  69. package/dist/{chunk-WFPYN7KA.mjs → chunk-HVOBXA3Y.mjs} +2 -2
  70. package/dist/{chunk-NFWGLRZZ.mjs → chunk-K3JWH6HE.mjs} +37 -3
  71. package/dist/{chunk-4QNLOTES.mjs → chunk-O4LVYUVH.mjs} +58 -14
  72. package/dist/{chunk-PYDHOMEO.mjs → chunk-YDMBIIS5.mjs} +1 -1
  73. package/dist/cli/index.mjs +408 -109
  74. package/dist/client/{accordion-2UZPBMYM.mjs → accordion-PT5CGW5N.mjs} +2 -2
  75. package/dist/client/{bookingForm-36CWQUMV.mjs → bookingForm-2HLRTEYS.mjs} +7 -7
  76. package/dist/client/bookings.mjs +51 -6
  77. package/dist/client/{carousel-QH77HR6X.mjs → carousel-Z2LKYSWA.mjs} +3 -3
  78. package/dist/client/cart-ND5IK4A6.mjs +18 -0
  79. package/dist/client/checkout-EYUSGAY7.mjs +18 -0
  80. package/dist/client/{chunk-SYIJ5JO2.mjs → chunk-6DVPO44G.mjs} +1 -1
  81. package/dist/client/{chunk-3C2VTPWI.mjs → chunk-BAWHZ5GM.mjs} +176 -13
  82. package/dist/client/{chunk-52CGCQ7B.mjs → chunk-BL66UWGD.mjs} +10 -80
  83. package/dist/client/{chunk-VGDBVNOO.mjs → chunk-DIRW2LNG.mjs} +241 -210
  84. package/dist/client/{chunk-UDNSI5PY.mjs → chunk-GOFO7HRH.mjs} +1 -2
  85. package/dist/client/{chunk-ZKUO52W3.mjs → chunk-H4MHEXYS.mjs} +1 -1
  86. package/dist/client/{chunk-ZE5G642V.mjs → chunk-LI2C6M5O.mjs} +75 -1
  87. package/dist/client/{chunk-3DTWLTXM.mjs → chunk-MHBEWDT7.mjs} +117 -3
  88. package/dist/client/{chunk-4OXKTA3D.mjs → chunk-O5JNI3E4.mjs} +2 -2
  89. package/dist/client/{chunk-XSV6KW4D.mjs → chunk-S4G65LGR.mjs} +1 -1
  90. package/dist/client/{chunk-DVNUDUVT.mjs → chunk-WBQG7VJA.mjs} +4 -1
  91. package/dist/client/{chunk-F5VRX5Y6.mjs → chunk-WCVK4MBJ.mjs} +1 -1
  92. package/dist/client/{chunk-7UCLJ5SP.mjs → chunk-X7GVFB7Y.mjs} +4 -7
  93. package/dist/client/client.mjs +2125 -1403
  94. package/dist/client/{courseRegistration-TMKU6ABO.mjs → courseRegistration-H3AZBUEG.mjs} +7 -7
  95. package/dist/client/{eventCalendar-G6TI32X6.mjs → eventCalendar-FPKJGLGS.mjs} +10 -11
  96. package/dist/client/{eventCombined-SCKEMNAR.mjs → eventCombined-QCGIZBUY.mjs} +10 -11
  97. package/dist/client/{eventDetails-XPIFXXPK.mjs → eventDetails-HIT3BJWU.mjs} +10 -11
  98. package/dist/client/{eventListing-7QFMEMGT.mjs → eventListing-R4HNWJDN.mjs} +10 -11
  99. package/dist/client/{eventRegistration-TOODSZUI.mjs → eventRegistration-Q7BYY5HF.mjs} +10 -11
  100. package/dist/client/{form-MTCMVCZT.mjs → form-NI6YOG6S.mjs} +3 -3
  101. package/dist/client/{headerSection-Y5TMR3TW.mjs → headerSection-SDYGII36.mjs} +4 -4
  102. package/dist/client/hooks.mjs +1682 -1412
  103. package/dist/client/{locationMap-RH2LG7FZ.mjs → locationMap-BDETEUQD.mjs} +3 -4
  104. package/dist/client/{newsletterForm-PCAIPFMA.mjs → newsletterForm-EKYIU67X.mjs} +70 -22
  105. package/dist/client/{productDetail-OIGDR4YE.mjs → productDetail-5UTGNN76.mjs} +8 -9
  106. package/dist/client/{productList-4MA5S2CX.mjs → productList-7YA5KXZQ.mjs} +8 -9
  107. package/dist/client/rendering/client.mjs +753 -329
  108. package/dist/client/rendering/islands.mjs +19 -19
  109. package/dist/client/rendering.mjs +3786 -3034
  110. package/dist/client/shop-AIMUMZYC.mjs +20 -0
  111. package/dist/preview-next/before-render.mjs +58 -14
  112. package/dist/preview-next/client/runtime.mjs +5 -5
  113. package/dist/preview-next/editor-chrome.css +56 -9
  114. package/dist/preview-next/middleware.mjs +58 -14
  115. package/dist/{sdk-runtime-QLOCYKVU.mjs → sdk-runtime-NW472WNT.mjs} +6 -6
  116. package/dist/server/components.mjs +1518 -1015
  117. package/dist/server/config-validation.mjs +1719 -1461
  118. package/dist/server/config.mjs +1719 -1461
  119. package/dist/server/data.mjs +1683 -1413
  120. package/dist/server/index.mjs +79 -17
  121. package/dist/server/next.mjs +1902 -1311
  122. package/dist/server/page-converter.mjs +2193 -1169
  123. package/dist/server/prebuild.mjs +1 -1
  124. package/dist/server/rendering/server.mjs +1709 -1209
  125. package/dist/server/rendering.mjs +1894 -1347
  126. package/dist/server/routing.mjs +1872 -1499
  127. package/dist/server/server.mjs +1571 -1264
  128. package/dist/server/theme-bridge.mjs +234 -0
  129. package/dist/styles/index.css +232 -0
  130. package/package.json +1 -1
  131. package/dist/SdkPreviewModeRuntime-4FGSVUYI.mjs +0 -8
  132. package/dist/client/cart-X4YK4FTW.mjs +0 -19
  133. package/dist/client/checkout-OM2BEPWD.mjs +0 -19
  134. package/dist/client/chunk-I2MMZO53.mjs +0 -6
  135. package/dist/client/shop-WXSYV5QO.mjs +0 -21
@@ -127,6 +127,48 @@ function err(error) {
127
127
  // ../core/src/branded.ts
128
128
  var unsafeAsMediaAssetId = (id) => id;
129
129
 
130
+ // ../core/src/assert-never.ts
131
+ function assertNever(value, message = "Unexpected variant") {
132
+ throw new Error(`${message}: ${String(value)}`);
133
+ }
134
+
135
+ // ../core/src/currency-format.ts
136
+ var CURRENCY_LOCALE_BY_CODE = {
137
+ USD: "en-US",
138
+ GBP: "en-GB",
139
+ EUR: "de-DE",
140
+ AUD: "en-AU",
141
+ CAD: "en-CA",
142
+ NZD: "en-NZ",
143
+ JPY: "ja-JP",
144
+ CNY: "zh-CN",
145
+ CHF: "de-CH"
146
+ };
147
+ function resolveCurrencyLocale(currencyCode, override) {
148
+ return override ?? CURRENCY_LOCALE_BY_CODE[currencyCode] ?? "en";
149
+ }
150
+ function formatCurrencyAmount(amountCents, currency, options) {
151
+ const currencyCode = currency.toUpperCase();
152
+ const locale = resolveCurrencyLocale(currencyCode, options?.locale);
153
+ try {
154
+ const exactFormatter = new Intl.NumberFormat(locale, {
155
+ style: "currency",
156
+ currency: currencyCode
157
+ });
158
+ const fractionDigits = options?.decimals === "auto" ? {
159
+ minimumFractionDigits: 0,
160
+ maximumFractionDigits: exactFormatter.resolvedOptions().maximumFractionDigits
161
+ } : {};
162
+ return new Intl.NumberFormat(locale, {
163
+ style: "currency",
164
+ currency: currencyCode,
165
+ ...fractionDigits
166
+ }).format(amountCents / 100);
167
+ } catch {
168
+ return `${(amountCents / 100).toFixed(2)} ${currencyCode}`;
169
+ }
170
+ }
171
+
130
172
  // ../core/src/event-pricing.ts
131
173
  function publicEventPricingDisplay(pricing) {
132
174
  return pricing.display;
@@ -161,11 +203,48 @@ function isFreePublicEventPriceDisplay(display) {
161
203
  return display.display.kind === "free";
162
204
  case "exact":
163
205
  case "from":
206
+ case "range":
164
207
  case "mixed":
165
208
  case "unavailable":
166
209
  return false;
167
210
  }
168
211
  }
212
+ function formatCoursePriceDisplayLabel(display, options) {
213
+ switch (display.kind) {
214
+ case "free":
215
+ case "unavailable":
216
+ return "Course";
217
+ case "exact":
218
+ return `Course (${formatCurrencyAmount(display.amount, display.currency, options)})`;
219
+ case "from":
220
+ return `Course (From ${formatCurrencyAmount(display.amount, display.currency, options)})`;
221
+ default:
222
+ return assertNever(display);
223
+ }
224
+ }
225
+ function formatBookingPriceDisplay(display, options = {}) {
226
+ switch (display.kind) {
227
+ case "free":
228
+ return "Free";
229
+ case "exact":
230
+ return formatCurrencyAmount(display.amount, display.currency, options);
231
+ case "from":
232
+ return `From ${formatCurrencyAmount(display.amount, display.currency, options)}`;
233
+ case "range":
234
+ return `${formatCurrencyAmount(display.minAmount, display.currency, options)} - ${formatCurrencyAmount(display.maxAmount, display.currency, options)}`;
235
+ case "mixed":
236
+ return display.paidToAmount > display.paidFromAmount ? `Free / ${formatCurrencyAmount(display.paidFromAmount, display.currency, options)} - ${formatCurrencyAmount(display.paidToAmount, display.currency, options)}` : `Free / ${formatCurrencyAmount(display.paidFromAmount, display.currency, options)}`;
237
+ case "unavailable":
238
+ return "Pricing unavailable";
239
+ case "course":
240
+ return formatCoursePriceDisplayLabel(display.display, options);
241
+ default:
242
+ return assertNever(display);
243
+ }
244
+ }
245
+ function formatEventPricing(pricing, options = {}) {
246
+ return formatBookingPriceDisplay(publicEventPricingDisplay(pricing), options);
247
+ }
169
248
 
170
249
  // ../core/src/booking-date-time.ts
171
250
  var DEFAULT_LOCALE = "en-US";
@@ -411,11 +490,6 @@ function toLocationCoordinates(value) {
411
490
  };
412
491
  }
413
492
 
414
- // ../core/src/assert-never.ts
415
- function assertNever(value, message = "Unexpected variant") {
416
- throw new Error(`${message}: ${String(value)}`);
417
- }
418
-
419
493
  // ../core/src/planner.ts
420
494
  var systemPlanningClock = {
421
495
  now: () => Date.now()
@@ -20421,15 +20495,53 @@ var newsletterFormFragment = defineFragment({
20421
20495
  title: "Newsletter Form",
20422
20496
  description: "Newsletter subscription form with preset field configurations.",
20423
20497
  fields: [
20498
+ {
20499
+ id: "destinationProvider",
20500
+ type: "select",
20501
+ label: "Send signups to",
20502
+ description: "Choose where new subscribers from this form should go.",
20503
+ defaultValue: "riverbank",
20504
+ required: true,
20505
+ ui: { intent: "behavior" },
20506
+ options: [
20507
+ { value: "riverbank", label: "Riverbank newsletter" }
20508
+ ]
20509
+ },
20424
20510
  {
20425
20511
  id: "listId",
20426
20512
  type: "reference",
20427
20513
  label: "Newsletter list",
20428
20514
  description: "Select the list new subscribers should be added to.",
20429
- required: true,
20515
+ required: false,
20430
20516
  referenceKind: "newsletterList",
20431
20517
  allowManualEntry: false,
20432
- ui: { intent: "behavior" }
20518
+ ui: {
20519
+ intent: "behavior",
20520
+ visibleWhen: { field: "destinationProvider", equals: "riverbank" }
20521
+ }
20522
+ },
20523
+ {
20524
+ id: "mailchimpAudienceId",
20525
+ type: "reference",
20526
+ label: "Mailchimp audience",
20527
+ description: "Choose the Mailchimp audience for new subscribers.",
20528
+ required: false,
20529
+ referenceKind: "mailchimpAudience",
20530
+ allowManualEntry: false,
20531
+ ui: {
20532
+ intent: "behavior",
20533
+ visibleWhen: { field: "destinationProvider", equals: "mailchimp" }
20534
+ }
20535
+ },
20536
+ {
20537
+ id: "mailchimpTags",
20538
+ type: "text",
20539
+ label: "Mailchimp tags",
20540
+ description: "Optional tags to apply in Mailchimp, separated by commas or semicolons.",
20541
+ ui: {
20542
+ intent: "behavior",
20543
+ visibleWhen: { field: "destinationProvider", equals: "mailchimp" }
20544
+ }
20433
20545
  },
20434
20546
  {
20435
20547
  id: "preset",
@@ -20476,13 +20588,18 @@ var newsletterFormFragment = defineFragment({
20476
20588
  id: "tags",
20477
20589
  type: "text",
20478
20590
  label: "Tags (optional)",
20479
- description: "Optional tags to apply on subscribe (comma or semicolon separated)."
20591
+ description: "Optional tags to apply on subscribe (comma or semicolon separated).",
20592
+ ui: {
20593
+ intent: "behavior",
20594
+ visibleWhen: { field: "destinationProvider", equals: "riverbank" }
20595
+ }
20480
20596
  }
20481
20597
  ],
20482
20598
  layout: [
20483
20599
  el(
20484
20600
  "newsletter-form",
20485
20601
  withApiBindings({
20602
+ destinationProvider: { $bind: { from: "destinationProvider" } },
20486
20603
  listId: { $bind: { from: "listId" } },
20487
20604
  preset: { $bind: { from: "preset" } },
20488
20605
  includePhone: { $bind: { from: "includePhone" } },
@@ -26405,10 +26522,10 @@ var appointmentBookingBlockDefinition = {
26405
26522
  };
26406
26523
 
26407
26524
  // ../blocks/src/system/blocks/event-registration.ts
26408
- import { z as z47 } from "zod";
26525
+ import { z as z48 } from "zod";
26409
26526
 
26410
26527
  // ../blocks/src/system/blocks/events/shared/schemas.ts
26411
- import { z as z43 } from "zod";
26528
+ import { z as z44 } from "zod";
26412
26529
 
26413
26530
  // ../blocks/src/lib/media.ts
26414
26531
  import z40 from "zod";
@@ -26486,296 +26603,393 @@ var mediaSchema2 = z40.discriminatedUnion("type", [
26486
26603
  archiveMediaSchema
26487
26604
  ]);
26488
26605
 
26489
- // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
26606
+ // ../blocks/src/system/manifest/richTextSchema.ts
26490
26607
  import { z as z41 } from "zod";
26491
- var bookingDepositRefundPolicySchema = z41.enum([
26608
+ var TipTapMarkSchema = z41.object({
26609
+ type: z41.string(),
26610
+ attrs: z41.record(z41.string(), z41.unknown()).optional()
26611
+ });
26612
+ var TipTapNodeSchema = z41.lazy(
26613
+ () => z41.object({
26614
+ type: z41.string(),
26615
+ content: z41.array(TipTapNodeSchema).optional(),
26616
+ text: z41.string().optional(),
26617
+ attrs: z41.record(z41.string(), z41.unknown()).optional(),
26618
+ marks: z41.array(TipTapMarkSchema).optional()
26619
+ })
26620
+ );
26621
+ var RichTextValueSchema = z41.union([
26622
+ // Canonical: TipTap document directly
26623
+ TipTapNodeSchema,
26624
+ // Legacy (read-tolerance only): wrapped in { doc: {...} }
26625
+ z41.object({
26626
+ doc: TipTapNodeSchema
26627
+ })
26628
+ ]);
26629
+ var RichTextDocSchema = z41.object({
26630
+ type: z41.literal("doc"),
26631
+ content: z41.array(TipTapNodeSchema)
26632
+ });
26633
+ function unwrapRichTextRoot(value) {
26634
+ if (!isRecord4(value)) return value;
26635
+ if (!("doc" in value)) return value;
26636
+ const inner = value.doc;
26637
+ if (isRecord4(inner) && inner.type === "doc") return inner;
26638
+ return value;
26639
+ }
26640
+ function createHardBreakNode() {
26641
+ return { type: "hardBreak" };
26642
+ }
26643
+ function parseRichTextInlineMarkdown(text2) {
26644
+ const out = [];
26645
+ const pushText = (value, marks) => {
26646
+ if (!value) return;
26647
+ out.push(
26648
+ marks && marks.length > 0 ? { type: "text", text: value, marks } : { type: "text", text: value }
26649
+ );
26650
+ };
26651
+ let rest = text2;
26652
+ while (rest.length > 0) {
26653
+ const start = rest.indexOf("**");
26654
+ if (start === -1) {
26655
+ pushText(rest);
26656
+ break;
26657
+ }
26658
+ const end = rest.indexOf("**", start + 2);
26659
+ if (end === -1) {
26660
+ pushText(rest);
26661
+ break;
26662
+ }
26663
+ pushText(rest.slice(0, start));
26664
+ pushText(rest.slice(start + 2, end), [{ type: "bold" }]);
26665
+ rest = rest.slice(end + 2);
26666
+ }
26667
+ return out;
26668
+ }
26669
+ function parseRichTextParagraphInlineMarkdown(text2) {
26670
+ return text2.split("\n").flatMap((line, index) => {
26671
+ const lineNodes = parseRichTextInlineMarkdown(line.trim());
26672
+ return index === 0 ? lineNodes : [createHardBreakNode(), ...lineNodes];
26673
+ });
26674
+ }
26675
+ function createRichTextDocFromMarkdown(markdown) {
26676
+ const normalized = markdown.replace(/\r\n/g, "\n").trim();
26677
+ if (!normalized) return { type: "doc", content: [] };
26678
+ const paragraphs = normalized.split(/\n{2,}/).map((paragraph) => paragraph.trim()).filter(Boolean);
26679
+ return {
26680
+ type: "doc",
26681
+ content: paragraphs.map((paragraph) => {
26682
+ const inline2 = parseRichTextParagraphInlineMarkdown(paragraph);
26683
+ return inline2.length > 0 ? { type: "paragraph", content: inline2 } : { type: "paragraph" };
26684
+ })
26685
+ };
26686
+ }
26687
+
26688
+ // ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
26689
+ import { z as z42 } from "zod";
26690
+ var bookingDepositRefundPolicySchema = z42.enum([
26492
26691
  "refundable",
26493
26692
  "non_refundable"
26494
26693
  ]);
26495
- var bookingInstalmentPlanSchema = z41.union([
26496
- z41.object({
26497
- kind: z41.literal("deposit_plus_one_remainder"),
26498
- depositAmountCents: z41.number().int().min(0),
26694
+ var bookingInstalmentPlanSchema = z42.union([
26695
+ z42.object({
26696
+ kind: z42.literal("deposit_plus_one_remainder"),
26697
+ depositAmountCents: z42.number().int().min(0),
26499
26698
  depositRefundability: bookingDepositRefundPolicySchema,
26500
- remainderDueCount: z41.number().int().positive(),
26501
- intervalUnit: z41.enum(["day", "week", "month"])
26699
+ remainderDueCount: z42.number().int().positive(),
26700
+ intervalUnit: z42.enum(["day", "week", "month"])
26502
26701
  }),
26503
- z41.object({
26504
- kind: z41.literal("deposit_plus_scheduled_instalments"),
26505
- depositAmountCents: z41.number().int().min(0),
26702
+ z42.object({
26703
+ kind: z42.literal("deposit_plus_scheduled_instalments"),
26704
+ depositAmountCents: z42.number().int().min(0),
26506
26705
  depositRefundability: bookingDepositRefundPolicySchema,
26507
- instalmentCount: z41.number().int().positive(),
26508
- intervalCount: z41.number().int().positive(),
26509
- intervalUnit: z41.enum(["day", "week", "month"])
26706
+ instalmentCount: z42.number().int().positive(),
26707
+ intervalCount: z42.number().int().positive(),
26708
+ intervalUnit: z42.enum(["day", "week", "month"])
26510
26709
  }),
26511
- z41.object({
26512
- kind: z41.literal("equal_scheduled_instalments"),
26513
- instalmentCount: z41.number().int().positive(),
26514
- intervalCount: z41.number().int().positive(),
26515
- intervalUnit: z41.enum(["day", "week", "month"])
26710
+ z42.object({
26711
+ kind: z42.literal("equal_scheduled_instalments"),
26712
+ instalmentCount: z42.number().int().positive(),
26713
+ intervalCount: z42.number().int().positive(),
26714
+ intervalUnit: z42.enum(["day", "week", "month"])
26516
26715
  })
26517
26716
  ]);
26518
- var bookingFlexibleBalanceDueDateRuleSchema = z41.union([
26519
- z41.object({
26520
- kind: z41.literal("relative_to_start_date"),
26521
- daysBeforeStart: z41.number().int().positive()
26717
+ var bookingFlexibleBalanceDueDateRuleSchema = z42.union([
26718
+ z42.object({
26719
+ kind: z42.literal("relative_to_start_date"),
26720
+ daysBeforeStart: z42.number().int().positive()
26522
26721
  }),
26523
- z41.object({
26524
- kind: z41.literal("fixed_calendar_date"),
26525
- dueAt: z41.string().datetime()
26722
+ z42.object({
26723
+ kind: z42.literal("fixed_calendar_date"),
26724
+ dueAt: z42.string().datetime()
26526
26725
  })
26527
26726
  ]);
26528
- var bookingFlexibleBalanceConfigSchema = z41.object({
26529
- upfrontAmountCents: z41.number().int().min(0),
26727
+ var bookingFlexibleBalanceConfigSchema = z42.object({
26728
+ upfrontAmountCents: z42.number().int().min(0),
26530
26729
  dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
26531
26730
  depositRefundability: bookingDepositRefundPolicySchema
26532
26731
  });
26533
- var blockBookingPaymentCollectionOptionSchema = z41.union([
26534
- z41.object({
26535
- kind: z41.literal("upfront")
26732
+ var blockBookingPaymentCollectionOptionSchema = z42.union([
26733
+ z42.object({
26734
+ kind: z42.literal("upfront")
26536
26735
  }),
26537
- z41.object({
26538
- kind: z41.literal("deferred_manual")
26736
+ z42.object({
26737
+ kind: z42.literal("deferred_manual")
26539
26738
  }),
26540
- z41.object({
26541
- kind: z41.literal("instalment_plan"),
26739
+ z42.object({
26740
+ kind: z42.literal("instalment_plan"),
26542
26741
  plan: bookingInstalmentPlanSchema
26543
26742
  }),
26544
- z41.object({
26545
- kind: z41.literal("flexible_balance"),
26743
+ z42.object({
26744
+ kind: z42.literal("flexible_balance"),
26546
26745
  config: bookingFlexibleBalanceConfigSchema
26547
26746
  })
26548
26747
  ]);
26549
- var blockBookingPaymentTermsSchema = z41.object({
26550
- allowedOptions: z41.array(blockBookingPaymentCollectionOptionSchema).min(1)
26748
+ var blockBookingPaymentTermsSchema = z42.object({
26749
+ allowedOptions: z42.array(blockBookingPaymentCollectionOptionSchema).min(1)
26551
26750
  });
26552
26751
 
26553
26752
  // ../blocks/src/system/blocks/courses/shared/schemas.ts
26554
- import { z as z42 } from "zod";
26555
- var courseVenueSchema = z42.object({
26556
- id: z42.string(),
26557
- name: z42.string(),
26558
- address: z42.string().nullable()
26753
+ import { z as z43 } from "zod";
26754
+ var courseVenueSchema = z43.object({
26755
+ id: z43.string(),
26756
+ name: z43.string(),
26757
+ address: z43.string().nullable()
26559
26758
  });
26560
- var courseSessionSchema = z42.object({
26561
- id: z42.string(),
26562
- startsAt: z42.string(),
26563
- endsAt: z42.string(),
26564
- timeZone: z42.string(),
26565
- capacityOverride: z42.number().nullable().optional(),
26566
- overrides: z42.record(z42.string(), z42.unknown()).nullable().optional()
26759
+ var courseSessionSchema = z43.object({
26760
+ id: z43.string(),
26761
+ startsAt: z43.string(),
26762
+ endsAt: z43.string(),
26763
+ timeZone: z43.string(),
26764
+ capacityOverride: z43.number().nullable().optional(),
26765
+ overrides: z43.record(z43.string(), z43.unknown()).nullable().optional()
26567
26766
  });
26568
- var courseTeamMemberSummarySchema = z42.object({
26569
- id: z42.string(),
26570
- name: z42.string(),
26571
- roleLabel: z42.string().nullable(),
26572
- summary: z42.string().nullable(),
26573
- profilePath: z42.string().nullable()
26767
+ var courseTeamMemberSummarySchema = z43.object({
26768
+ id: z43.string(),
26769
+ name: z43.string(),
26770
+ roleLabel: z43.string().nullable(),
26771
+ summary: z43.string().nullable(),
26772
+ profilePath: z43.string().nullable()
26574
26773
  });
26575
- var coursePricingOptionSchema = z42.object({
26576
- id: z42.string(),
26577
- name: z42.string(),
26578
- description: z42.string().nullable(),
26579
- priceAmount: z42.number(),
26580
- isActive: z42.boolean(),
26581
- sortOrder: z42.number(),
26582
- capacityLimit: z42.number().nullable(),
26583
- saleStartsAt: z42.string().nullable(),
26584
- saleEndsAt: z42.string().nullable(),
26585
- attendanceScope: z42.enum(["in_person", "online", "both"]).nullable().optional()
26774
+ var coursePricingOptionSchema = z43.object({
26775
+ id: z43.string(),
26776
+ name: z43.string(),
26777
+ description: z43.string().nullable(),
26778
+ priceAmount: z43.number(),
26779
+ isActive: z43.boolean(),
26780
+ sortOrder: z43.number(),
26781
+ capacityLimit: z43.number().nullable(),
26782
+ saleStartsAt: z43.string().nullable(),
26783
+ saleEndsAt: z43.string().nullable(),
26784
+ attendanceScope: z43.enum(["in_person", "online", "both"]).nullable().optional()
26586
26785
  });
26587
- var coursePricingSchema = z42.object({
26588
- bookingRequirement: z42.enum(["none", "required"]),
26589
- pricingStrategy: z42.enum(["free", "single", "tiered"]),
26590
- currency: z42.string(),
26591
- singlePriceAmount: z42.number().nullable(),
26786
+ var coursePricingSchema = z43.object({
26787
+ bookingRequirement: z43.enum(["none", "required"]),
26788
+ pricingStrategy: z43.enum(["free", "single", "tiered"]),
26789
+ currency: z43.string(),
26790
+ singlePriceAmount: z43.number().nullable(),
26592
26791
  paymentTerms: blockBookingPaymentTermsSchema,
26593
- options: z42.array(coursePricingOptionSchema)
26792
+ options: z43.array(coursePricingOptionSchema)
26594
26793
  });
26595
- var publicCourseSchema = z42.object({
26596
- id: z42.string(),
26597
- title: z42.string(),
26598
- slug: z42.string(),
26599
- description: z42.unknown().nullable(),
26600
- teamMembers: z42.array(courseTeamMemberSummarySchema).optional(),
26601
- enrollmentOpen: z42.boolean(),
26794
+ var publicCourseSchema = z43.object({
26795
+ id: z43.string(),
26796
+ title: z43.string(),
26797
+ slug: z43.string(),
26798
+ description: z43.unknown().nullable(),
26799
+ teamMembers: z43.array(courseTeamMemberSummarySchema).optional(),
26800
+ enrollmentOpen: z43.boolean(),
26602
26801
  pricing: coursePricingSchema.optional(),
26603
- priceCents: z42.number().nullable(),
26604
- currency: z42.string(),
26802
+ priceCents: z43.number().nullable(),
26803
+ currency: z43.string(),
26605
26804
  paymentTerms: blockBookingPaymentTermsSchema,
26606
- enrollmentCapacity: z42.number().nullable(),
26607
- acceptsMemberships: z42.boolean(),
26608
- status: z42.enum(["active", "draft", "cancelled"]),
26609
- sessionsCount: z42.number(),
26610
- enrolledCount: z42.number(),
26611
- availableSpots: z42.number().nullable(),
26612
- sessions: z42.array(courseSessionSchema),
26805
+ enrollmentCapacity: z43.number().nullable(),
26806
+ acceptsMemberships: z43.boolean(),
26807
+ status: z43.enum(["active", "draft", "cancelled"]),
26808
+ sessionsCount: z43.number(),
26809
+ enrolledCount: z43.number(),
26810
+ availableSpots: z43.number().nullable(),
26811
+ sessions: z43.array(courseSessionSchema),
26613
26812
  venue: courseVenueSchema.nullable(),
26614
- contentEntryId: z42.string().nullable()
26813
+ contentEntryId: z43.string().nullable()
26615
26814
  });
26616
- var publicCoursesArraySchema = z42.array(publicCourseSchema);
26815
+ var publicCoursesArraySchema = z43.array(publicCourseSchema);
26617
26816
 
26618
26817
  // ../blocks/src/system/blocks/events/shared/schemas.ts
26619
- var eventPresetSchema = z43.enum(["event", "class", "workshop", "retreat", "performance"]);
26620
- var eventScheduleScopeSchema = z43.enum(["recurring", "oneOff"]);
26621
- var eventDestinationModeSchema = z43.enum(["cms-managed", "system-managed"]);
26622
- var eventVenueSchema = z43.object({
26623
- id: z43.string(),
26624
- name: z43.string(),
26625
- address: z43.string().nullable(),
26626
- location: z43.object({
26627
- lat: z43.number(),
26628
- lng: z43.number()
26818
+ var eventPresetSchema = z44.enum(["event", "class", "workshop", "retreat", "performance"]);
26819
+ var eventScheduleScopeSchema = z44.enum(["recurring", "oneOff"]);
26820
+ var eventDestinationModeSchema = z44.enum(["cms-managed", "system-managed"]);
26821
+ var eventVenueSchema = z44.object({
26822
+ id: z44.string(),
26823
+ name: z44.string(),
26824
+ address: z44.string().nullable(),
26825
+ location: z44.object({
26826
+ lat: z44.number(),
26827
+ lng: z44.number()
26629
26828
  }).nullable()
26630
26829
  });
26631
- var eventCategorySchema = z43.object({
26632
- id: z43.string(),
26633
- name: z43.string(),
26634
- color: z43.string().nullable()
26830
+ var eventCategorySchema = z44.object({
26831
+ id: z44.string(),
26832
+ name: z44.string(),
26833
+ color: z44.string().nullable()
26635
26834
  });
26636
- var pricingTypeSchema = z43.enum(["free", "paid"]);
26637
- var accessRestrictionSchema = z43.enum(["none", "category"]);
26638
- var eventPricingModeSchema = z43.enum(["single", "ticket_types"]);
26639
- var publicCoursePriceDisplaySchema = z43.discriminatedUnion("kind", [
26640
- z43.object({ kind: z43.literal("free"), currency: z43.string() }),
26641
- z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
26642
- z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
26643
- z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
26835
+ var pricingTypeSchema = z44.enum(["free", "paid"]);
26836
+ var accessRestrictionSchema = z44.enum(["none", "category"]);
26837
+ var eventPricingModeSchema = z44.enum(["single", "ticket_types"]);
26838
+ var publicCoursePriceDisplaySchema = z44.discriminatedUnion("kind", [
26839
+ z44.object({ kind: z44.literal("free"), currency: z44.string() }),
26840
+ z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
26841
+ z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
26842
+ z44.object({ kind: z44.literal("unavailable"), currency: z44.string() })
26644
26843
  ]);
26645
- var publicEventPriceDisplaySchema = z43.discriminatedUnion("kind", [
26646
- z43.object({ kind: z43.literal("free"), currency: z43.string() }),
26647
- z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
26648
- z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
26649
- z43.object({ kind: z43.literal("mixed"), paidFromAmount: z43.number(), currency: z43.string() }),
26650
- z43.object({ kind: z43.literal("unavailable"), currency: z43.string() }),
26651
- z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
26844
+ var publicEventPriceDisplaySchema = z44.discriminatedUnion("kind", [
26845
+ z44.object({ kind: z44.literal("free"), currency: z44.string() }),
26846
+ z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
26847
+ z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
26848
+ z44.object({ kind: z44.literal("range"), minAmount: z44.number(), maxAmount: z44.number(), currency: z44.string() }),
26849
+ z44.object({
26850
+ kind: z44.literal("mixed"),
26851
+ paidFromAmount: z44.number(),
26852
+ paidToAmount: z44.number(),
26853
+ currency: z44.string()
26854
+ }),
26855
+ z44.object({ kind: z44.literal("unavailable"), currency: z44.string() }),
26856
+ z44.object({ kind: z44.literal("course"), display: publicCoursePriceDisplaySchema })
26652
26857
  ]);
26653
- var publicEventTicketTypePriceDisplaySchema = z43.union([
26654
- z43.object({ kind: z43.literal("free"), currency: z43.string() }),
26655
- z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() }),
26656
- z43.object({ kind: z43.literal("from"), amount: z43.number(), currency: z43.string() }),
26657
- z43.object({ kind: z43.literal("mixed"), paidFromAmount: z43.number(), currency: z43.string() }),
26658
- z43.object({ kind: z43.literal("unavailable"), currency: z43.string() })
26858
+ var publicEventTicketTypePriceDisplaySchema = z44.union([
26859
+ z44.object({ kind: z44.literal("free"), currency: z44.string() }),
26860
+ z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() }),
26861
+ z44.object({ kind: z44.literal("from"), amount: z44.number(), currency: z44.string() }),
26862
+ z44.object({ kind: z44.literal("range"), minAmount: z44.number(), maxAmount: z44.number(), currency: z44.string() }),
26863
+ z44.object({
26864
+ kind: z44.literal("mixed"),
26865
+ paidFromAmount: z44.number(),
26866
+ paidToAmount: z44.number(),
26867
+ currency: z44.string()
26868
+ }),
26869
+ z44.object({ kind: z44.literal("unavailable"), currency: z44.string() })
26659
26870
  ]);
26660
- var publicEventAttendanceModeSchema = z43.enum(["in_person", "online"]);
26661
- var publicEventAttendanceModeAvailabilitySchema = z43.object({
26871
+ var publicEventAttendanceModeSchema = z44.enum(["in_person", "online"]);
26872
+ var publicEventAttendanceModeAvailabilitySchema = z44.object({
26662
26873
  mode: publicEventAttendanceModeSchema,
26663
- capacity: z43.number().nullable(),
26664
- registeredCount: z43.number(),
26665
- availableSpots: z43.number().nullable(),
26666
- waitlistEnabled: z43.boolean()
26874
+ capacity: z44.number().nullable(),
26875
+ registeredCount: z44.number(),
26876
+ availableSpots: z44.number().nullable(),
26877
+ waitlistEnabled: z44.boolean()
26667
26878
  });
26668
- var publicEventTicketTypeAvailabilitySchema = z43.union([
26669
- z43.object({
26670
- kind: z43.literal("available"),
26671
- remainingCapacity: z43.number().nullable()
26879
+ var publicEventTicketTypeAvailabilitySchema = z44.union([
26880
+ z44.object({
26881
+ kind: z44.literal("available"),
26882
+ remainingCapacity: z44.number().nullable()
26672
26883
  }),
26673
- z43.object({
26674
- kind: z43.literal("unavailable"),
26675
- reason: z43.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
26676
- remainingCapacity: z43.number().nullable()
26884
+ z44.object({
26885
+ kind: z44.literal("unavailable"),
26886
+ reason: z44.enum(["inactive", "not_on_sale_yet", "sale_ended", "sold_out", "event_sold_out"]),
26887
+ remainingCapacity: z44.number().nullable()
26677
26888
  })
26678
26889
  ]);
26679
- var publicEventTicketTypeSchema = z43.object({
26680
- id: z43.string(),
26681
- siteId: z43.string(),
26682
- eventSeriesId: z43.string(),
26683
- name: z43.string(),
26684
- description: z43.string().nullable(),
26685
- priceAmount: z43.number(),
26686
- isActive: z43.boolean(),
26687
- sortOrder: z43.number(),
26688
- capacityMode: z43.enum(["limited", "unlimited"]),
26689
- capacityLimit: z43.number().nullable(),
26690
- attendanceScope: z43.enum(["in_person", "online", "both"]).optional(),
26691
- saleStartsAt: z43.string().nullable(),
26692
- saleEndsAt: z43.string().nullable(),
26890
+ var publicEventTicketTypeSchema = z44.object({
26891
+ id: z44.string(),
26892
+ siteId: z44.string(),
26893
+ eventSeriesId: z44.string(),
26894
+ name: z44.string(),
26895
+ description: z44.string().nullable(),
26896
+ priceAmount: z44.number(),
26897
+ isActive: z44.boolean(),
26898
+ sortOrder: z44.number(),
26899
+ capacityMode: z44.enum(["limited", "unlimited"]),
26900
+ capacityLimit: z44.number().nullable(),
26901
+ attendanceScope: z44.enum(["in_person", "online", "both"]).optional(),
26902
+ saleStartsAt: z44.string().nullable(),
26903
+ saleEndsAt: z44.string().nullable(),
26693
26904
  availability: publicEventTicketTypeAvailabilitySchema,
26694
- createdAt: z43.string(),
26695
- updatedAt: z43.string()
26905
+ createdAt: z44.string(),
26906
+ updatedAt: z44.string()
26696
26907
  });
26697
- var publicEventPricingSchema = z43.discriminatedUnion("kind", [
26698
- z43.object({
26699
- kind: z43.literal("drop_in"),
26700
- currency: z43.string(),
26701
- display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
26908
+ var publicEventPricingSchema = z44.discriminatedUnion("kind", [
26909
+ z44.object({
26910
+ kind: z44.literal("drop_in"),
26911
+ currency: z44.string(),
26912
+ display: z44.object({ kind: z44.literal("free"), currency: z44.string() })
26702
26913
  }),
26703
- z43.object({
26704
- kind: z43.literal("free_registration"),
26705
- currency: z43.string(),
26706
- display: z43.object({ kind: z43.literal("free"), currency: z43.string() })
26914
+ z44.object({
26915
+ kind: z44.literal("free_registration"),
26916
+ currency: z44.string(),
26917
+ display: z44.object({ kind: z44.literal("free"), currency: z44.string() })
26707
26918
  }),
26708
- z43.object({
26709
- kind: z43.literal("single_paid"),
26710
- amount: z43.number(),
26711
- currency: z43.string(),
26712
- display: z43.object({ kind: z43.literal("exact"), amount: z43.number(), currency: z43.string() })
26919
+ z44.object({
26920
+ kind: z44.literal("single_paid"),
26921
+ amount: z44.number(),
26922
+ currency: z44.string(),
26923
+ display: z44.object({ kind: z44.literal("exact"), amount: z44.number(), currency: z44.string() })
26713
26924
  }),
26714
- z43.object({
26715
- kind: z43.literal("ticket_types"),
26716
- currency: z43.string(),
26717
- ticketTypes: z43.array(publicEventTicketTypeSchema),
26925
+ z44.object({
26926
+ kind: z44.literal("ticket_types"),
26927
+ currency: z44.string(),
26928
+ ticketTypes: z44.array(publicEventTicketTypeSchema),
26718
26929
  display: publicEventTicketTypePriceDisplaySchema
26719
26930
  }),
26720
- z43.object({
26721
- kind: z43.literal("course"),
26722
- display: z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
26931
+ z44.object({
26932
+ kind: z44.literal("course"),
26933
+ display: z44.object({ kind: z44.literal("course"), display: publicCoursePriceDisplaySchema })
26723
26934
  })
26724
26935
  ]);
26725
- var publicTeamMemberSummarySchema = z43.object({
26726
- id: z43.string(),
26727
- name: z43.string(),
26728
- roleLabel: z43.string().nullable(),
26729
- summary: z43.string().nullable(),
26730
- profilePath: z43.string().nullable()
26936
+ var publicTeamMemberSummarySchema = z44.object({
26937
+ id: z44.string(),
26938
+ name: z44.string(),
26939
+ roleLabel: z44.string().nullable(),
26940
+ summary: z44.string().nullable(),
26941
+ profilePath: z44.string().nullable()
26731
26942
  });
26732
- var publicEventSchema = z43.object({
26733
- kind: z43.enum(["event", "course_session"]).optional(),
26943
+ var publicEventSchema = z44.object({
26944
+ kind: z44.enum(["event", "course_session"]).optional(),
26734
26945
  eventPreset: eventPresetSchema.optional(),
26735
26946
  eventDestinationMode: eventDestinationModeSchema.optional(),
26736
26947
  scheduleScope: eventScheduleScopeSchema.optional(),
26737
- id: z43.string(),
26738
- occurrenceId: z43.string(),
26739
- seriesId: z43.string(),
26740
- title: z43.string(),
26741
- description: z43.string().nullable(),
26742
- presentation: z43.object({
26743
- cardTitleOverride: z43.string().nullable().optional(),
26744
- summary: z43.string().nullable().optional(),
26948
+ id: z44.string(),
26949
+ occurrenceId: z44.string(),
26950
+ seriesId: z44.string(),
26951
+ title: z44.string(),
26952
+ description: z44.string().nullable(),
26953
+ content: z44.object({
26954
+ body: RichTextDocSchema.nullable().optional()
26955
+ }).optional(),
26956
+ presentation: z44.object({
26957
+ cardTitleOverride: z44.string().nullable().optional(),
26958
+ summary: z44.string().nullable().optional(),
26745
26959
  image: mediaSchema2.nullable().optional()
26746
26960
  }).optional(),
26747
- slug: z43.string(),
26748
- path: z43.string(),
26749
- requiresRegistration: z43.boolean(),
26750
- deliveryMode: z43.enum(["in_person", "online", "hybrid"]),
26751
- attendanceModes: z43.array(publicEventAttendanceModeAvailabilitySchema),
26752
- startsAt: z43.string(),
26753
- endsAt: z43.string(),
26754
- capacity: z43.number().nullable(),
26755
- registeredCount: z43.number(),
26756
- availableSpots: z43.number().nullable(),
26757
- waitlistEnabled: z43.boolean(),
26961
+ slug: z44.string(),
26962
+ path: z44.string(),
26963
+ requiresRegistration: z44.boolean(),
26964
+ deliveryMode: z44.enum(["in_person", "online", "hybrid"]),
26965
+ attendanceModes: z44.array(publicEventAttendanceModeAvailabilitySchema),
26966
+ startsAt: z44.string(),
26967
+ endsAt: z44.string(),
26968
+ capacity: z44.number().nullable(),
26969
+ registeredCount: z44.number(),
26970
+ availableSpots: z44.number().nullable(),
26971
+ waitlistEnabled: z44.boolean(),
26758
26972
  venue: eventVenueSchema.nullable(),
26759
26973
  eventCategory: eventCategorySchema.nullable(),
26760
- teamMembers: z43.array(publicTeamMemberSummarySchema).optional(),
26761
- status: z43.enum(["active", "draft", "archived"]).optional(),
26762
- timeZone: z43.string(),
26974
+ teamMembers: z44.array(publicTeamMemberSummarySchema).optional(),
26975
+ status: z44.enum(["active", "draft", "archived"]).optional(),
26976
+ timeZone: z44.string(),
26763
26977
  pricing: publicEventPricingSchema,
26764
26978
  paymentTerms: blockBookingPaymentTermsSchema,
26765
26979
  accessRestriction: accessRestrictionSchema,
26766
- allowedCategoryIds: z43.array(z43.string()),
26767
- requireGuestDetails: z43.boolean().optional(),
26768
- acceptsPasses: z43.boolean().optional(),
26769
- acceptsMemberships: z43.boolean().optional(),
26770
- course: z43.object({
26771
- id: z43.string(),
26980
+ allowedCategoryIds: z44.array(z44.string()),
26981
+ requireGuestDetails: z44.boolean().optional(),
26982
+ acceptsPasses: z44.boolean().optional(),
26983
+ acceptsMemberships: z44.boolean().optional(),
26984
+ course: z44.object({
26985
+ id: z44.string(),
26772
26986
  pricing: coursePricingSchema.optional(),
26773
- priceCents: z43.number().nullable(),
26774
- currency: z43.string(),
26775
- enrollmentOpen: z43.boolean()
26987
+ priceCents: z44.number().nullable(),
26988
+ currency: z44.string(),
26989
+ enrollmentOpen: z44.boolean()
26776
26990
  }).nullable().optional()
26777
26991
  });
26778
- var publicEventsArraySchema = z43.array(publicEventSchema);
26992
+ var publicEventsArraySchema = z44.array(publicEventSchema);
26779
26993
 
26780
26994
  // ../blocks/src/system/blocks/events/shared/fields.ts
26781
26995
  var cardVariantOptions2 = cardVariantRoleValues.map((value) => ({
@@ -26979,19 +27193,19 @@ function normalizeEventStaffMemberId(value) {
26979
27193
  }
26980
27194
 
26981
27195
  // ../blocks/src/system/blocks/event-registration.shared.ts
26982
- import { z as z44 } from "zod";
26983
- var occurrenceContextSchema = z44.object({
26984
- id: z44.string(),
26985
- seriesId: z44.string(),
26986
- startsAt: z44.string(),
26987
- endsAt: z44.string(),
26988
- timeZone: z44.string(),
26989
- capacityOverride: z44.number().nullable().optional(),
26990
- overrides: z44.record(z44.string(), z44.unknown()).nullable().optional()
27196
+ import { z as z45 } from "zod";
27197
+ var occurrenceContextSchema = z45.object({
27198
+ id: z45.string(),
27199
+ seriesId: z45.string(),
27200
+ startsAt: z45.string(),
27201
+ endsAt: z45.string(),
27202
+ timeZone: z45.string(),
27203
+ capacityOverride: z45.number().nullable().optional(),
27204
+ overrides: z45.record(z45.string(), z45.unknown()).nullable().optional()
26991
27205
  }).nullable();
26992
27206
 
26993
27207
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
26994
- import { z as z46 } from "zod";
27208
+ import { z as z47 } from "zod";
26995
27209
 
26996
27210
  // ../blocks/src/system/constants/events.ts
26997
27211
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
@@ -27089,10 +27303,21 @@ function readLegacyPriceDisplay(value, currency) {
27089
27303
  amount: readAmount(value.amount) ?? 0,
27090
27304
  currency: displayCurrency
27091
27305
  } : { kind: "unavailable", currency };
27306
+ case "range": {
27307
+ const minAmount = readAmount(value.minAmount);
27308
+ const maxAmount = readAmount(value.maxAmount);
27309
+ return minAmount !== null && maxAmount !== null ? {
27310
+ kind: "range",
27311
+ minAmount,
27312
+ maxAmount,
27313
+ currency: displayCurrency
27314
+ } : { kind: "unavailable", currency };
27315
+ }
27092
27316
  case "mixed":
27093
27317
  return readAmount(value.paidFromAmount) !== null ? {
27094
27318
  kind: "mixed",
27095
27319
  paidFromAmount: readAmount(value.paidFromAmount) ?? 0,
27320
+ paidToAmount: readAmount(value.paidToAmount) ?? readAmount(value.paidFromAmount) ?? 0,
27096
27321
  currency: displayCurrency
27097
27322
  } : { kind: "unavailable", currency };
27098
27323
  case "unavailable":
@@ -27134,16 +27359,16 @@ function readAmount(value) {
27134
27359
  }
27135
27360
 
27136
27361
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
27137
- import { z as z45 } from "zod";
27138
- var previewStageSchema = z45.enum(["preview", "published"]);
27139
- var registrationButtonVariantSchema = z45.enum(["primary", "secondary", "outline"]);
27140
- var eventButtonVariantSchema = z45.enum(["primary", "secondary", "outline", "link"]);
27141
- var eventLayoutSchema = z45.enum(eventCalendarListLayoutValues);
27142
- var eventCalendarDisplayModeSchema = z45.enum(eventCalendarDisplayModeValues);
27143
- var columnOptionSchema = z45.enum(["2", "3", "4"]);
27144
- var weekStartSchema = z45.enum(["sunday", "monday"]);
27145
- var filterAutoShowSchema = z45.enum(["auto", "always", "never"]);
27146
- var calendarTabViewsSchema = z45.enum(["both", "month", "week"]);
27362
+ import { z as z46 } from "zod";
27363
+ var previewStageSchema = z46.enum(["preview", "published"]);
27364
+ var registrationButtonVariantSchema = z46.enum(["primary", "secondary", "outline"]);
27365
+ var eventButtonVariantSchema = z46.enum(["primary", "secondary", "outline", "link"]);
27366
+ var eventLayoutSchema = z46.enum(eventCalendarListLayoutValues);
27367
+ var eventCalendarDisplayModeSchema = z46.enum(eventCalendarDisplayModeValues);
27368
+ var columnOptionSchema = z46.enum(["2", "3", "4"]);
27369
+ var weekStartSchema = z46.enum(["sunday", "monday"]);
27370
+ var filterAutoShowSchema = z46.enum(["auto", "always", "never"]);
27371
+ var calendarTabViewsSchema = z46.enum(["both", "month", "week"]);
27147
27372
 
27148
27373
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
27149
27374
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -27203,66 +27428,68 @@ function toRegistrationEvents(events) {
27203
27428
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
27204
27429
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
27205
27430
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
27206
- var contentEntrySchema = z46.object({
27207
- id: z46.string(),
27208
- slug: z46.string(),
27209
- contentTypeSlug: z46.string()
27431
+ var contentEntrySchema = z47.object({
27432
+ id: z47.string(),
27433
+ slug: z47.string(),
27434
+ contentTypeSlug: z47.string()
27210
27435
  });
27211
- var eventRegistrationPublicEventSchema = z46.preprocess(
27436
+ var eventRegistrationPublicEventSchema = z47.preprocess(
27212
27437
  normalizeEventRegistrationEventInput,
27213
27438
  publicEventSchema
27214
27439
  );
27215
- var eventRegistrationSourceSchema = z46.object({
27216
- siteId: z46.string().optional(),
27217
- apiBaseUrl: z46.string().optional(),
27218
- portalToken: z46.string().nullable().optional(),
27219
- previewToken: z46.string().nullable().optional(),
27440
+ var eventRegistrationSourceSchema = z47.object({
27441
+ siteId: z47.string().optional(),
27442
+ apiBaseUrl: z47.string().optional(),
27443
+ portalToken: z47.string().nullable().optional(),
27444
+ previewToken: z47.string().nullable().optional(),
27220
27445
  occurrenceContext: occurrenceContextSchema.optional(),
27221
27446
  contentEntry: contentEntrySchema.nullable().optional(),
27222
- events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
27223
- className: z46.string().nullable().optional(),
27224
- buttonText: z46.string().nullable().optional(),
27225
- maxTickets: z46.string().nullable().optional(),
27226
- showVenue: z46.boolean().optional(),
27227
- showCapacity: z46.boolean().optional(),
27228
- successMessage: z46.string().optional(),
27229
- waitlistMessage: z46.string().optional(),
27447
+ events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
27448
+ className: z47.string().nullable().optional(),
27449
+ buttonText: z47.string().nullable().optional(),
27450
+ maxTickets: z47.string().nullable().optional(),
27451
+ showVenue: z47.boolean().optional(),
27452
+ showCapacity: z47.boolean().optional(),
27453
+ successMessage: z47.string().optional(),
27454
+ waitlistMessage: z47.string().optional(),
27230
27455
  buttonVariant: registrationButtonVariantSchema.optional(),
27231
- spamProtectionEnabled: z46.boolean().optional(),
27456
+ overlayEnabled: z47.boolean().optional(),
27457
+ spamProtectionEnabled: z47.boolean().optional(),
27232
27458
  stage: previewStageSchema.optional(),
27233
- supportEmail: z46.string().optional()
27459
+ supportEmail: z47.string().optional()
27234
27460
  });
27235
- var eventRegistrationDisplaySchema = z46.object({
27236
- kind: z46.literal("event-registration"),
27237
- state: z46.literal("generic-shell"),
27238
- className: z46.string().nullable(),
27239
- titleText: z46.string(),
27240
- bodyText: z46.string(),
27241
- stepLabels: z46.array(z46.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
27242
- summaryButtonText: z46.string()
27461
+ var eventRegistrationDisplaySchema = z47.object({
27462
+ kind: z47.literal("event-registration"),
27463
+ state: z47.literal("generic-shell"),
27464
+ className: z47.string().nullable(),
27465
+ titleText: z47.string(),
27466
+ bodyText: z47.string(),
27467
+ stepLabels: z47.array(z47.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
27468
+ summaryButtonText: z47.string()
27243
27469
  });
27244
- var eventRegistrationHydrationSchema = z46.object({
27470
+ var eventRegistrationHydrationSchema = z47.object({
27245
27471
  occurrenceContext: occurrenceContextSchema.optional(),
27246
27472
  contentEntry: contentEntrySchema.nullable().optional(),
27247
- events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
27248
- maxTickets: z46.string().optional(),
27249
- showVenue: z46.boolean().optional(),
27250
- showCapacity: z46.boolean().optional(),
27251
- successMessage: z46.string().optional(),
27252
- waitlistMessage: z46.string().optional(),
27473
+ events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
27474
+ maxTickets: z47.string().optional(),
27475
+ showVenue: z47.boolean().optional(),
27476
+ showCapacity: z47.boolean().optional(),
27477
+ successMessage: z47.string().optional(),
27478
+ waitlistMessage: z47.string().optional(),
27253
27479
  buttonVariant: registrationButtonVariantSchema.optional(),
27254
- spamProtectionEnabled: z46.boolean().optional(),
27255
- supportEmail: z46.string().optional()
27480
+ overlayEnabled: z47.boolean().optional(),
27481
+ spamProtectionEnabled: z47.boolean().optional(),
27482
+ supportEmail: z47.string().optional()
27256
27483
  });
27257
- var eventRegistrationRenderSchema = z46.object({
27484
+ var eventRegistrationRenderSchema = z47.object({
27258
27485
  display: eventRegistrationDisplaySchema,
27259
27486
  hydration: eventRegistrationHydrationSchema
27260
27487
  });
27261
- var eventRegistrationIslandMetaCodec = createZodCodec(z46.object({
27262
- siteId: z46.string().optional(),
27263
- apiBaseUrl: z46.string().optional(),
27264
- portalToken: z46.string().nullable().optional(),
27265
- previewToken: z46.string().nullable().optional(),
27488
+ var eventRegistrationIslandMetaCodec = createZodCodec(z47.object({
27489
+ siteId: z47.string().optional(),
27490
+ apiBaseUrl: z47.string().optional(),
27491
+ portalToken: z47.string().nullable().optional(),
27492
+ previewToken: z47.string().nullable().optional(),
27266
27493
  stage: previewStageSchema.optional()
27267
27494
  }));
27268
27495
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -27366,6 +27593,7 @@ var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
27366
27593
  successMessage: source.successMessage,
27367
27594
  waitlistMessage: source.waitlistMessage,
27368
27595
  buttonVariant: source.buttonVariant,
27596
+ overlayEnabled: source.overlayEnabled,
27369
27597
  spamProtectionEnabled: source.spamProtectionEnabled,
27370
27598
  supportEmail: source.supportEmail
27371
27599
  }
@@ -27555,6 +27783,12 @@ var eventRegistrationManifest = createBlockManifest({
27555
27783
  buttonVariant: {
27556
27784
  $bind: { from: "content.buttonVariant", fallback: "primary" }
27557
27785
  },
27786
+ overlayEnabled: {
27787
+ $bind: {
27788
+ from: "$root.eventRegistrationOverlayEnabled",
27789
+ fallback: false
27790
+ }
27791
+ },
27558
27792
  // Event data from loader
27559
27793
  events: { $bind: { from: "data.events" } },
27560
27794
  // Stage for preview mode (allows registering for draft events)
@@ -27575,7 +27809,7 @@ var eventRegistrationBlockDefinition = {
27575
27809
  manifest: eventRegistrationManifest,
27576
27810
  runtime: eventRegistrationBlockRuntime,
27577
27811
  dataSchemas: {
27578
- events: z47.array(publicEventSchema).optional(),
27812
+ events: z48.array(publicEventSchema).optional(),
27579
27813
  occurrenceContext: occurrenceContextSchema.optional()
27580
27814
  },
27581
27815
  dataLoaders: {
@@ -27702,29 +27936,7 @@ function resolveCoursePricingState(course, selectedPricingOptionId, nowInput = {
27702
27936
  }
27703
27937
  }
27704
27938
  function formatCoursePriceDisplay(display, locale) {
27705
- switch (display.kind) {
27706
- case "free":
27707
- return "Free";
27708
- case "unavailable":
27709
- return "Pricing unavailable";
27710
- case "exact":
27711
- return formatCourseCurrencyAmount(display.amount, display.currency, { locale });
27712
- case "from":
27713
- return `From ${formatCourseCurrencyAmount(display.amount, display.currency, { locale })}`;
27714
- }
27715
- }
27716
- function formatCourseCurrencyAmount(amount, currency, options) {
27717
- const {
27718
- locale = "en-US",
27719
- minimumFractionDigits,
27720
- maximumFractionDigits
27721
- } = options ?? {};
27722
- return new Intl.NumberFormat(locale, {
27723
- style: "currency",
27724
- currency: currency.toUpperCase(),
27725
- ...minimumFractionDigits === void 0 ? {} : { minimumFractionDigits },
27726
- ...maximumFractionDigits === void 0 ? {} : { maximumFractionDigits }
27727
- }).format(amount / 100);
27939
+ return formatBookingPriceDisplay(display, { decimals: "exact", locale });
27728
27940
  }
27729
27941
  function formatCoursePriceAmount(amount, currency, locale) {
27730
27942
  return formatCoursePriceDisplay(
@@ -27734,73 +27946,73 @@ function formatCoursePriceAmount(amount, currency, locale) {
27734
27946
  }
27735
27947
 
27736
27948
  // ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
27737
- import { z as z48 } from "zod";
27738
- var contentEntrySchema2 = z48.object({
27739
- id: z48.string(),
27740
- slug: z48.string(),
27741
- contentTypeSlug: z48.string()
27949
+ import { z as z49 } from "zod";
27950
+ var contentEntrySchema2 = z49.object({
27951
+ id: z49.string(),
27952
+ slug: z49.string(),
27953
+ contentTypeSlug: z49.string()
27742
27954
  });
27743
- var courseEntrySubrouteContextSchema = z48.union([
27744
- z48.object({
27745
- kind: z48.literal("course-run"),
27746
- run: z48.object({
27747
- courseId: z48.string(),
27748
- seriesId: z48.string(),
27749
- runSlug: z48.string(),
27750
- runName: z48.string().nullable()
27955
+ var courseEntrySubrouteContextSchema = z49.union([
27956
+ z49.object({
27957
+ kind: z49.literal("course-run"),
27958
+ run: z49.object({
27959
+ courseId: z49.string(),
27960
+ seriesId: z49.string(),
27961
+ runSlug: z49.string(),
27962
+ runName: z49.string().nullable()
27751
27963
  })
27752
27964
  }),
27753
- z48.object({
27754
- kind: z48.literal("event-occurrence"),
27965
+ z49.object({
27966
+ kind: z49.literal("event-occurrence"),
27755
27967
  occurrence: occurrenceContextSchema
27756
27968
  })
27757
27969
  ]);
27758
- var courseRegistrationSourceSchema = z48.object({
27759
- siteId: z48.string().optional(),
27760
- apiBaseUrl: z48.string().optional(),
27761
- portalToken: z48.string().nullable().optional(),
27970
+ var courseRegistrationSourceSchema = z49.object({
27971
+ siteId: z49.string().optional(),
27972
+ apiBaseUrl: z49.string().optional(),
27973
+ portalToken: z49.string().nullable().optional(),
27762
27974
  contentEntry: contentEntrySchema2.nullable().optional(),
27763
27975
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
27764
- courses: z48.array(publicCourseSchema).nullable().optional(),
27765
- className: z48.string().nullable().optional(),
27766
- showSessions: z48.boolean().optional(),
27767
- showPrice: z48.boolean().optional(),
27768
- showCapacity: z48.boolean().optional(),
27769
- showVenue: z48.boolean().optional(),
27770
- successMessage: z48.string().optional(),
27771
- waitlistMessage: z48.string().optional(),
27772
- membershipMessage: z48.string().optional(),
27773
- buttonText: z48.string().nullable().optional(),
27976
+ courses: z49.array(publicCourseSchema).nullable().optional(),
27977
+ className: z49.string().nullable().optional(),
27978
+ showSessions: z49.boolean().optional(),
27979
+ showPrice: z49.boolean().optional(),
27980
+ showCapacity: z49.boolean().optional(),
27981
+ showVenue: z49.boolean().optional(),
27982
+ successMessage: z49.string().optional(),
27983
+ waitlistMessage: z49.string().optional(),
27984
+ membershipMessage: z49.string().optional(),
27985
+ buttonText: z49.string().nullable().optional(),
27774
27986
  buttonVariant: registrationButtonVariantSchema.optional(),
27775
27987
  stage: previewStageSchema.optional()
27776
27988
  });
27777
- var courseRegistrationDisplaySchema = z48.object({
27778
- kind: z48.literal("course-registration"),
27779
- state: z48.literal("shell"),
27780
- className: z48.string().nullable(),
27781
- summaryButtonText: z48.string()
27989
+ var courseRegistrationDisplaySchema = z49.object({
27990
+ kind: z49.literal("course-registration"),
27991
+ state: z49.literal("shell"),
27992
+ className: z49.string().nullable(),
27993
+ summaryButtonText: z49.string()
27782
27994
  });
27783
- var courseRegistrationHydrationSchema = z48.object({
27995
+ var courseRegistrationHydrationSchema = z49.object({
27784
27996
  contentEntry: contentEntrySchema2.nullable().optional(),
27785
27997
  entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
27786
- courses: z48.array(publicCourseSchema).nullable().optional(),
27787
- showSessions: z48.boolean().optional(),
27788
- showPrice: z48.boolean().optional(),
27789
- showCapacity: z48.boolean().optional(),
27790
- showVenue: z48.boolean().optional(),
27791
- successMessage: z48.string().optional(),
27792
- waitlistMessage: z48.string().optional(),
27793
- membershipMessage: z48.string().optional(),
27998
+ courses: z49.array(publicCourseSchema).nullable().optional(),
27999
+ showSessions: z49.boolean().optional(),
28000
+ showPrice: z49.boolean().optional(),
28001
+ showCapacity: z49.boolean().optional(),
28002
+ showVenue: z49.boolean().optional(),
28003
+ successMessage: z49.string().optional(),
28004
+ waitlistMessage: z49.string().optional(),
28005
+ membershipMessage: z49.string().optional(),
27794
28006
  buttonVariant: registrationButtonVariantSchema.optional()
27795
28007
  });
27796
- var courseRegistrationRenderSchema = z48.object({
28008
+ var courseRegistrationRenderSchema = z49.object({
27797
28009
  display: courseRegistrationDisplaySchema,
27798
28010
  hydration: courseRegistrationHydrationSchema
27799
28011
  });
27800
- var courseRegistrationIslandMetaCodec = createZodCodec(z48.object({
27801
- siteId: z48.string().optional(),
27802
- apiBaseUrl: z48.string().optional(),
27803
- portalToken: z48.string().nullable().optional(),
28012
+ var courseRegistrationIslandMetaCodec = createZodCodec(z49.object({
28013
+ siteId: z49.string().optional(),
28014
+ apiBaseUrl: z49.string().optional(),
28015
+ portalToken: z49.string().nullable().optional(),
27804
28016
  stage: previewStageSchema.optional()
27805
28017
  }));
27806
28018
  var courseRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -28073,32 +28285,32 @@ var courseRegistrationBlockDefinition = {
28073
28285
  };
28074
28286
 
28075
28287
  // ../blocks/src/system/blocks/event-details.ts
28076
- import { z as z50 } from "zod";
28288
+ import { z as z51 } from "zod";
28077
28289
 
28078
28290
  // ../blocks/src/system/blocks/shop.shared.ts
28079
- import { z as z49 } from "zod";
28080
- var publicPassProductSchema = z49.object({
28081
- id: z49.string(),
28082
- productUseCase: z49.enum(["event_pass", "appointment_package"]).default("event_pass"),
28083
- name: z49.string(),
28084
- description: z49.string().nullable(),
28085
- price: z49.number(),
28086
- currency: z49.string(),
28087
- creditsTotal: z49.number(),
28088
- pricePerCredit: z49.number(),
28089
- validDays: z49.number().nullable(),
28090
- eligibleCategoryIds: z49.array(z49.string()),
28091
- eligibleCategoryNames: z49.array(z49.string())
28291
+ import { z as z50 } from "zod";
28292
+ var publicPassProductSchema = z50.object({
28293
+ id: z50.string(),
28294
+ productUseCase: z50.enum(["event_pass", "appointment_package"]).default("event_pass"),
28295
+ name: z50.string(),
28296
+ description: z50.string().nullable(),
28297
+ price: z50.number(),
28298
+ currency: z50.string(),
28299
+ creditsTotal: z50.number(),
28300
+ pricePerCredit: z50.number(),
28301
+ validDays: z50.number().nullable(),
28302
+ eligibleCategoryIds: z50.array(z50.string()),
28303
+ eligibleCategoryNames: z50.array(z50.string())
28092
28304
  });
28093
- var publicMembershipProductSchema = z49.object({
28094
- id: z49.string(),
28095
- name: z49.string(),
28096
- description: z49.string().nullable(),
28097
- price: z49.number(),
28098
- currency: z49.string(),
28099
- billingInterval: z49.enum(["month", "year"]),
28100
- eligibleCategoryIds: z49.array(z49.string()),
28101
- eligibleCategoryNames: z49.array(z49.string())
28305
+ var publicMembershipProductSchema = z50.object({
28306
+ id: z50.string(),
28307
+ name: z50.string(),
28308
+ description: z50.string().nullable(),
28309
+ price: z50.number(),
28310
+ currency: z50.string(),
28311
+ billingInterval: z50.enum(["month", "year"]),
28312
+ eligibleCategoryIds: z50.array(z50.string()),
28313
+ eligibleCategoryNames: z50.array(z50.string())
28102
28314
  });
28103
28315
 
28104
28316
  // ../blocks/src/system/blocks/event-details.ts
@@ -28233,40 +28445,40 @@ var eventDetailsManifest = createBlockManifest({
28233
28445
  })
28234
28446
  ]
28235
28447
  });
28236
- var occurrenceContextSchema2 = z50.object({
28237
- id: z50.string(),
28238
- seriesId: z50.string(),
28239
- startsAt: z50.string(),
28240
- endsAt: z50.string(),
28241
- timeZone: z50.string(),
28242
- capacityOverride: z50.number().nullable().optional(),
28243
- overrides: z50.record(z50.string(), z50.unknown()).nullable().optional()
28448
+ var occurrenceContextSchema2 = z51.object({
28449
+ id: z51.string(),
28450
+ seriesId: z51.string(),
28451
+ startsAt: z51.string(),
28452
+ endsAt: z51.string(),
28453
+ timeZone: z51.string(),
28454
+ capacityOverride: z51.number().nullable().optional(),
28455
+ overrides: z51.record(z51.string(), z51.unknown()).nullable().optional()
28244
28456
  }).nullable();
28245
- var eventAutoApplyDiscountPreviewBaseSchema = z50.object({
28246
- id: z50.string(),
28247
- publicLabel: z50.string(),
28248
- description: z50.string().nullable(),
28249
- minTicketsRequired: z50.number().nullable()
28457
+ var eventAutoApplyDiscountPreviewBaseSchema = z51.object({
28458
+ id: z51.string(),
28459
+ publicLabel: z51.string(),
28460
+ description: z51.string().nullable(),
28461
+ minTicketsRequired: z51.number().nullable()
28250
28462
  });
28251
- var eventAutoApplyDiscountPreviewSchema = z50.discriminatedUnion("discountType", [
28463
+ var eventAutoApplyDiscountPreviewSchema = z51.discriminatedUnion("discountType", [
28252
28464
  eventAutoApplyDiscountPreviewBaseSchema.extend({
28253
- discountType: z50.literal("percent"),
28254
- discountPercent: z50.number(),
28255
- discountAmountCents: z50.null()
28465
+ discountType: z51.literal("percent"),
28466
+ discountPercent: z51.number(),
28467
+ discountAmountCents: z51.null()
28256
28468
  }),
28257
28469
  eventAutoApplyDiscountPreviewBaseSchema.extend({
28258
- discountType: z50.literal("fixed"),
28259
- discountPercent: z50.null(),
28260
- discountAmountCents: z50.number()
28470
+ discountType: z51.literal("fixed"),
28471
+ discountPercent: z51.null(),
28472
+ discountAmountCents: z51.number()
28261
28473
  })
28262
28474
  ]);
28263
28475
  var eventDetailsBlockDefinition = {
28264
28476
  manifest: eventDetailsManifest,
28265
28477
  dataSchemas: {
28266
- eventDetailsData: z50.object({
28478
+ eventDetailsData: z51.object({
28267
28479
  events: publicEventsArraySchema,
28268
- sitePasses: z50.object({ passes: z50.array(publicPassProductSchema) }),
28269
- siteMemberships: z50.object({ memberships: z50.array(publicMembershipProductSchema) }),
28480
+ sitePasses: z51.object({ passes: z51.array(publicPassProductSchema) }),
28481
+ siteMemberships: z51.object({ memberships: z51.array(publicMembershipProductSchema) }),
28270
28482
  autoApplyDiscount: eventAutoApplyDiscountPreviewSchema.nullable().optional().default(null)
28271
28483
  }).optional(),
28272
28484
  occurrenceContext: occurrenceContextSchema2.optional()
@@ -28590,7 +28802,7 @@ var eventSpotlightBlockDefinition = {
28590
28802
  };
28591
28803
 
28592
28804
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
28593
- import { z as z52 } from "zod";
28805
+ import { z as z53 } from "zod";
28594
28806
 
28595
28807
  // ../calendar/src/grid.ts
28596
28808
  var DAY_NAMES = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
@@ -28756,15 +28968,15 @@ function getLocalMinuteOfDay(isoTimestamp, timeZone) {
28756
28968
  const date = new Date(isoTimestamp);
28757
28969
  if (Number.isNaN(date.getTime())) return NaN;
28758
28970
  if (!isValidTimeZone2(timeZone)) return NaN;
28759
- const parts = new Intl.DateTimeFormat("en-US", {
28971
+ const parts = new Intl.DateTimeFormat("en-GB", {
28760
28972
  timeZone,
28761
28973
  hour: "2-digit",
28762
28974
  minute: "2-digit",
28763
- hour12: false,
28764
28975
  hourCycle: "h23"
28765
28976
  }).formatToParts(date);
28766
- const hour = Number(parts.find((part) => part.type === "hour")?.value);
28977
+ const hourPart = Number(parts.find((part) => part.type === "hour")?.value);
28767
28978
  const minute = Number(parts.find((part) => part.type === "minute")?.value);
28979
+ const hour = hourPart === 24 ? 0 : hourPart;
28768
28980
  if (Number.isNaN(hour) || Number.isNaN(minute)) return NaN;
28769
28981
  return hour * MINUTES_PER_HOUR + minute;
28770
28982
  }
@@ -29196,45 +29408,8 @@ function groupEventsByDate(events) {
29196
29408
  }
29197
29409
  return map;
29198
29410
  }
29199
- function formatCompactCurrencyAmount(amount, currency) {
29200
- return formatCourseCurrencyAmount(amount, currency, {
29201
- minimumFractionDigits: 0,
29202
- maximumFractionDigits: 2
29203
- });
29204
- }
29205
- function formatCourseEventPriceDisplay(display) {
29206
- if (display.kind !== "course") {
29207
- return "Course";
29208
- }
29209
- if (display.display.kind === "exact" || display.display.kind === "from") {
29210
- const amountLabel = formatCompactCurrencyAmount(
29211
- display.display.amount,
29212
- display.display.currency
29213
- );
29214
- return display.display.kind === "from" ? `Course (From ${amountLabel})` : `Course (${amountLabel})`;
29215
- }
29216
- return "Course";
29217
- }
29218
- function formatPublicEventPriceDisplay(display) {
29219
- switch (display.kind) {
29220
- case "free":
29221
- return "Free";
29222
- case "exact":
29223
- return formatCompactCurrencyAmount(display.amount, display.currency);
29224
- case "from":
29225
- return `From ${formatCompactCurrencyAmount(display.amount, display.currency)}`;
29226
- case "mixed":
29227
- return `Free / From ${formatCompactCurrencyAmount(display.paidFromAmount, display.currency)}`;
29228
- case "unavailable":
29229
- return "Pricing unavailable";
29230
- case "course":
29231
- return formatCourseEventPriceDisplay(display);
29232
- }
29233
- }
29234
29411
  function formatEventPrice(event) {
29235
- return formatPublicEventPriceDisplay(
29236
- publicEventPricingDisplay(resolveRuntimeEventPricing(event))
29237
- );
29412
+ return formatEventPricing(resolveRuntimeEventPricing(event), { decimals: "auto" });
29238
29413
  }
29239
29414
  function resolveEventCta(event, buttonText) {
29240
29415
  const { isFull: isSoldOut } = getEventAvailability(event);
@@ -30815,16 +30990,16 @@ function DateTimeTile({ startsAt, endsAt, timeZone }) {
30815
30990
  }
30816
30991
 
30817
30992
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
30818
- import { z as z51 } from "zod";
30993
+ import { z as z52 } from "zod";
30819
30994
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
30820
- var eventPageSizeSchema = z51.union([
30821
- z51.literal(3),
30822
- z51.literal(6),
30823
- z51.literal(10),
30824
- z51.literal(12),
30825
- z51.literal(20),
30826
- z51.literal(24),
30827
- z51.literal(30)
30995
+ var eventPageSizeSchema = z52.union([
30996
+ z52.literal(3),
30997
+ z52.literal(6),
30998
+ z52.literal(10),
30999
+ z52.literal(12),
31000
+ z52.literal(20),
31001
+ z52.literal(24),
31002
+ z52.literal(30)
30828
31003
  ]);
30829
31004
  var eventPageSizeSet = new Set(eventPageSizeValues);
30830
31005
  function resolveEventPageSize(value, fallback2 = 12) {
@@ -30834,15 +31009,15 @@ function resolveEventPageSize(value, fallback2 = 12) {
30834
31009
  function resolveEventCalendarListPageSize(input) {
30835
31010
  return resolveEventPageSize(input.eventsPerPage);
30836
31011
  }
30837
- var eventListPaginationActionSchema = z51.discriminatedUnion("kind", [
30838
- z51.object({
30839
- kind: z51.literal("loadMore"),
30840
- label: z51.string()
31012
+ var eventListPaginationActionSchema = z52.discriminatedUnion("kind", [
31013
+ z52.object({
31014
+ kind: z52.literal("loadMore"),
31015
+ label: z52.string()
30841
31016
  }),
30842
- z51.object({
30843
- kind: z51.literal("seeAllLink"),
30844
- label: z51.string(),
30845
- href: z51.string()
31017
+ z52.object({
31018
+ kind: z52.literal("seeAllLink"),
31019
+ label: z52.string(),
31020
+ href: z52.string()
30846
31021
  })
30847
31022
  ]);
30848
31023
  function resolveEventListPaginationAction(input) {
@@ -30855,89 +31030,89 @@ function resolveEventListPaginationAction(input) {
30855
31030
  }
30856
31031
 
30857
31032
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
30858
- var legacyEventCardVariantSchema = z52.enum(["variant1", "variant2"]);
30859
- var eventCardVariantInputSchema = z52.union([
31033
+ var legacyEventCardVariantSchema = z53.enum(["variant1", "variant2"]);
31034
+ var eventCardVariantInputSchema = z53.union([
30860
31035
  cardVariantRoleSchema,
30861
31036
  legacyEventCardVariantSchema
30862
31037
  ]);
30863
- var cardOrientationSchema = z52.enum(["vertical", "horizontal"]);
30864
- var eventBlockKindSchema = z52.enum(eventBlockKindValues);
30865
- var eventSurfaceScopeSchema = z52.enum(eventSurfaceScopeValues);
30866
- var eventScheduleScopeSchema2 = z52.enum(eventScheduleScopeValues);
30867
- var eventListingSourceSchema = z52.object({
30868
- events: z52.array(publicEventSchema).nullable().optional(),
30869
- siteId: z52.string(),
30870
- apiBaseUrl: z52.string().optional(),
31038
+ var cardOrientationSchema = z53.enum(["vertical", "horizontal"]);
31039
+ var eventBlockKindSchema = z53.enum(eventBlockKindValues);
31040
+ var eventSurfaceScopeSchema = z53.enum(eventSurfaceScopeValues);
31041
+ var eventScheduleScopeSchema2 = z53.enum(eventScheduleScopeValues);
31042
+ var eventListingSourceSchema = z53.object({
31043
+ events: z53.array(publicEventSchema).nullable().optional(),
31044
+ siteId: z53.string(),
31045
+ apiBaseUrl: z53.string().optional(),
30871
31046
  stage: previewStageSchema.optional(),
30872
31047
  layout: eventLayoutSchema.optional(),
30873
31048
  columns: columnOptionSchema.optional(),
30874
- eventsPerPage: z52.string().optional(),
30875
- paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
30876
- seeAllUrl: z52.string().optional(),
30877
- loadMoreText: z52.string().optional(),
31049
+ eventsPerPage: z53.string().optional(),
31050
+ paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
31051
+ seeAllUrl: z53.string().optional(),
31052
+ loadMoreText: z53.string().optional(),
30878
31053
  cardVariant: eventCardVariantInputSchema.optional(),
30879
31054
  buttonVariant: eventButtonVariantSchema.optional(),
30880
- buttonText: z52.string().optional(),
30881
- showVenue: z52.boolean().optional(),
30882
- showMap: z52.boolean().optional(),
30883
- showCapacity: z52.boolean().optional(),
30884
- emptyMessage: z52.string().optional(),
30885
- className: z52.string().optional(),
30886
- showFilters: z52.boolean().nullable().optional(),
31055
+ buttonText: z53.string().optional(),
31056
+ showVenue: z53.boolean().optional(),
31057
+ showMap: z53.boolean().optional(),
31058
+ showCapacity: z53.boolean().optional(),
31059
+ emptyMessage: z53.string().optional(),
31060
+ className: z53.string().optional(),
31061
+ showFilters: z53.boolean().nullable().optional(),
30887
31062
  showCategoryFilter: filterAutoShowSchema.optional(),
30888
- showVenueFilter: z52.boolean().nullable().optional(),
30889
- showStaffFilter: z52.boolean().nullable().optional(),
31063
+ showVenueFilter: z53.boolean().nullable().optional(),
31064
+ showStaffFilter: z53.boolean().nullable().optional(),
30890
31065
  eventKind: eventBlockKindSchema.nullable().optional(),
30891
31066
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
30892
- filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
31067
+ filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
30893
31068
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
30894
- filterCategoryIds: z52.string().nullable().optional(),
30895
- filterStaffMemberId: z52.string().nullable().optional(),
30896
- filterVenueId: z52.string().nullable().optional()
31069
+ filterCategoryIds: z53.string().nullable().optional(),
31070
+ filterStaffMemberId: z53.string().nullable().optional(),
31071
+ filterVenueId: z53.string().nullable().optional()
30897
31072
  });
30898
- var eventListingDisplaySchema = z52.object({
30899
- kind: z52.literal("event-listing"),
30900
- state: z52.enum(["loading", "empty", "ready"]),
31073
+ var eventListingDisplaySchema = z53.object({
31074
+ kind: z53.literal("event-listing"),
31075
+ state: z53.enum(["loading", "empty", "ready"]),
30901
31076
  listLayout: eventLayoutSchema,
30902
- className: z52.string().nullable(),
30903
- emptyMessage: z52.string(),
30904
- loadingMessage: z52.string(),
30905
- containerClass: z52.string(),
31077
+ className: z53.string().nullable(),
31078
+ emptyMessage: z53.string(),
31079
+ loadingMessage: z53.string(),
31080
+ containerClass: z53.string(),
30906
31081
  cardVariant: cardVariantRoleSchema,
30907
31082
  buttonVariant: eventButtonVariantSchema,
30908
- buttonText: z52.string(),
30909
- showVenue: z52.boolean(),
30910
- showMap: z52.boolean(),
30911
- showCapacity: z52.boolean(),
31083
+ buttonText: z53.string(),
31084
+ showVenue: z53.boolean(),
31085
+ showMap: z53.boolean(),
31086
+ showCapacity: z53.boolean(),
30912
31087
  orientation: cardOrientationSchema,
30913
- events: z52.array(publicEventSchema)
31088
+ events: z53.array(publicEventSchema)
30914
31089
  });
30915
- var eventListingHydrationSchema = z52.object({
30916
- siteId: z52.string(),
31090
+ var eventListingHydrationSchema = z53.object({
31091
+ siteId: z53.string(),
30917
31092
  stage: previewStageSchema.optional(),
30918
31093
  eventsPerPage: eventPageSizeSchema,
30919
31094
  paginationAction: eventListPaginationActionSchema,
30920
- showFilters: z52.boolean(),
31095
+ showFilters: z53.boolean(),
30921
31096
  showCategoryFilter: filterAutoShowSchema,
30922
- showVenueFilter: z52.boolean(),
30923
- showStaffFilter: z52.boolean(),
31097
+ showVenueFilter: z53.boolean(),
31098
+ showStaffFilter: z53.boolean(),
30924
31099
  eventKind: eventBlockKindSchema,
30925
31100
  eventSurface: eventSurfaceScopeSchema,
30926
- filterEventPresets: z52.string().nullable(),
31101
+ filterEventPresets: z53.string().nullable(),
30927
31102
  scheduleScope: eventScheduleScopeSchema2,
30928
- filterCategoryIds: z52.string().nullable().optional(),
30929
- filterStaffMemberId: z52.string().nullable().optional(),
30930
- filterVenueId: z52.string().nullable().optional(),
30931
- fetchInitialEventsOnMount: z52.boolean()
31103
+ filterCategoryIds: z53.string().nullable().optional(),
31104
+ filterStaffMemberId: z53.string().nullable().optional(),
31105
+ filterVenueId: z53.string().nullable().optional(),
31106
+ fetchInitialEventsOnMount: z53.boolean()
30932
31107
  });
30933
- var eventListingRenderSchema = z52.object({
31108
+ var eventListingRenderSchema = z53.object({
30934
31109
  display: eventListingDisplaySchema,
30935
31110
  hydration: eventListingHydrationSchema
30936
31111
  });
30937
31112
  var eventListingIslandMetaCodec = createZodCodec(
30938
- z52.object({
30939
- siteId: z52.string(),
30940
- apiBaseUrl: z52.string().optional(),
31113
+ z53.object({
31114
+ siteId: z53.string(),
31115
+ apiBaseUrl: z53.string().optional(),
30941
31116
  stage: previewStageSchema.optional()
30942
31117
  })
30943
31118
  );
@@ -31316,15 +31491,15 @@ var eventListingBlockDefinition = {
31316
31491
  };
31317
31492
 
31318
31493
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
31319
- import { z as z53 } from "zod";
31320
- var eventBlockKindSchema2 = z53.enum(eventBlockKindValues);
31321
- var eventSurfaceScopeSchema2 = z53.enum(eventSurfaceScopeValues);
31322
- var eventScheduleScopeSchema3 = z53.enum(eventScheduleScopeValues);
31323
- var eventCalendarSourceSchema = z53.object(
31494
+ import { z as z54 } from "zod";
31495
+ var eventBlockKindSchema2 = z54.enum(eventBlockKindValues);
31496
+ var eventSurfaceScopeSchema2 = z54.enum(eventSurfaceScopeValues);
31497
+ var eventScheduleScopeSchema3 = z54.enum(eventScheduleScopeValues);
31498
+ var eventCalendarSourceSchema = z54.object(
31324
31499
  {
31325
- events: z53.array(publicEventSchema).nullable().optional(),
31326
- siteId: z53.string(),
31327
- apiBaseUrl: z53.string().optional(),
31500
+ events: z54.array(publicEventSchema).nullable().optional(),
31501
+ siteId: z54.string(),
31502
+ apiBaseUrl: z54.string().optional(),
31328
31503
  stage: previewStageSchema.optional(),
31329
31504
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
31330
31505
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -31332,78 +31507,78 @@ var eventCalendarSourceSchema = z53.object(
31332
31507
  listColumns: columnOptionSchema.optional(),
31333
31508
  layout: eventLayoutSchema.optional(),
31334
31509
  columns: columnOptionSchema.optional(),
31335
- eventsPerPage: z53.string().optional(),
31336
- paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
31337
- seeAllUrl: z53.string().optional(),
31338
- loadMoreText: z53.string().optional(),
31510
+ eventsPerPage: z54.string().optional(),
31511
+ paginationMode: z54.enum(["loadMore", "seeAllLink"]).optional(),
31512
+ seeAllUrl: z54.string().optional(),
31513
+ loadMoreText: z54.string().optional(),
31339
31514
  startOfWeek: weekStartSchema.optional(),
31340
31515
  calendarTabViews: calendarTabViewsSchema.optional(),
31341
- showFilters: z53.boolean().nullable().optional(),
31516
+ showFilters: z54.boolean().nullable().optional(),
31342
31517
  showCategoryFilter: filterAutoShowSchema.optional(),
31343
- showVenueFilter: z53.boolean().nullable().optional(),
31344
- showStaffFilter: z53.boolean().nullable().optional(),
31518
+ showVenueFilter: z54.boolean().nullable().optional(),
31519
+ showStaffFilter: z54.boolean().nullable().optional(),
31345
31520
  kind: eventBlockKindSchema2.nullable().optional(),
31346
31521
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
31347
- filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
31522
+ filterEventPresets: z54.union([z54.string(), z54.array(z54.string())]).nullable().optional(),
31348
31523
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
31349
- filterCategoryIds: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
31350
- filterStaffMemberId: z53.string().nullable().optional(),
31351
- filterVenueId: z53.string().nullable().optional(),
31524
+ filterCategoryIds: z54.union([z54.string(), z54.array(z54.string())]).nullable().optional(),
31525
+ filterStaffMemberId: z54.string().nullable().optional(),
31526
+ filterVenueId: z54.string().nullable().optional(),
31352
31527
  buttonVariant: eventButtonVariantSchema.optional(),
31353
- buttonText: z53.string().optional(),
31354
- showVenue: z53.boolean().nullable().optional(),
31355
- showMap: z53.boolean().nullable().optional(),
31356
- showCapacity: z53.boolean().nullable().optional(),
31357
- emptyMessage: z53.string().optional(),
31358
- className: z53.string().optional()
31528
+ buttonText: z54.string().optional(),
31529
+ showVenue: z54.boolean().nullable().optional(),
31530
+ showMap: z54.boolean().nullable().optional(),
31531
+ showCapacity: z54.boolean().nullable().optional(),
31532
+ emptyMessage: z54.string().optional(),
31533
+ className: z54.string().optional()
31359
31534
  }
31360
31535
  );
31361
- var eventCalendarDisplaySchema = z53.object({
31362
- kind: z53.literal("event-calendar"),
31536
+ var eventCalendarDisplaySchema = z54.object({
31537
+ kind: z54.literal("event-calendar"),
31363
31538
  displayMode: eventCalendarDisplayModeSchema,
31364
- className: z53.string().nullable(),
31365
- events: z53.array(publicEventSchema),
31539
+ className: z54.string().nullable(),
31540
+ events: z54.array(publicEventSchema),
31366
31541
  listLayout: eventLayoutSchema,
31367
31542
  listColumns: columnOptionSchema,
31368
31543
  eventsPerPage: eventPageSizeSchema,
31369
31544
  paginationAction: eventListPaginationActionSchema,
31370
31545
  startOfWeek: weekStartSchema,
31371
31546
  calendarTabViews: calendarTabViewsSchema,
31372
- showFilters: z53.boolean(),
31547
+ showFilters: z54.boolean(),
31373
31548
  showCategoryFilter: filterAutoShowSchema,
31374
- showVenueFilter: z53.boolean(),
31375
- showStaffFilter: z53.boolean(),
31549
+ showVenueFilter: z54.boolean(),
31550
+ showStaffFilter: z54.boolean(),
31376
31551
  eventKind: eventBlockKindSchema2,
31377
31552
  eventSurface: eventSurfaceScopeSchema2,
31378
- filterEventPresets: z53.string().nullable(),
31553
+ filterEventPresets: z54.string().nullable(),
31379
31554
  scheduleScope: eventScheduleScopeSchema3,
31380
- filterCategoryIds: z53.string().nullable(),
31381
- filterStaffMemberId: z53.string().nullable(),
31382
- filterVenueId: z53.string().nullable(),
31555
+ filterCategoryIds: z54.string().nullable(),
31556
+ filterStaffMemberId: z54.string().nullable(),
31557
+ filterVenueId: z54.string().nullable(),
31383
31558
  buttonVariant: eventButtonVariantSchema,
31384
- buttonText: z53.string(),
31385
- showVenue: z53.boolean(),
31386
- showMap: z53.boolean(),
31387
- showCapacity: z53.boolean(),
31388
- emptyMessage: z53.string()
31559
+ buttonText: z54.string(),
31560
+ showVenue: z54.boolean(),
31561
+ showMap: z54.boolean(),
31562
+ showCapacity: z54.boolean(),
31563
+ emptyMessage: z54.string()
31389
31564
  });
31390
- var eventCalendarHydrationSchema = z53.object({
31391
- siteId: z53.string(),
31565
+ var eventCalendarHydrationSchema = z54.object({
31566
+ siteId: z54.string(),
31392
31567
  stage: previewStageSchema.optional(),
31393
- prefetchedEvents: z53.boolean(),
31568
+ prefetchedEvents: z54.boolean(),
31394
31569
  eventKind: eventBlockKindSchema2,
31395
31570
  eventSurface: eventSurfaceScopeSchema2,
31396
- filterEventPresets: z53.string().nullable(),
31571
+ filterEventPresets: z54.string().nullable(),
31397
31572
  scheduleScope: eventScheduleScopeSchema3
31398
31573
  });
31399
- var eventCalendarRenderSchema = z53.object({
31574
+ var eventCalendarRenderSchema = z54.object({
31400
31575
  display: eventCalendarDisplaySchema,
31401
31576
  hydration: eventCalendarHydrationSchema
31402
31577
  });
31403
31578
  var eventCalendarIslandMetaCodec = createZodCodec(
31404
- z53.object({
31405
- siteId: z53.string(),
31406
- apiBaseUrl: z53.string().optional(),
31579
+ z54.object({
31580
+ siteId: z54.string(),
31581
+ apiBaseUrl: z54.string().optional(),
31407
31582
  stage: previewStageSchema.optional()
31408
31583
  })
31409
31584
  );
@@ -32145,7 +32320,7 @@ var eventCalendarBlockDefinition = {
32145
32320
  };
32146
32321
 
32147
32322
  // ../blocks/src/system/blocks/offerings-preview/index.ts
32148
- import { z as z54 } from "zod";
32323
+ import { z as z55 } from "zod";
32149
32324
 
32150
32325
  // ../blocks/src/system/blocks/offerings-preview/model.ts
32151
32326
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -32467,13 +32642,13 @@ function normalizeTextOverride(value) {
32467
32642
  }
32468
32643
 
32469
32644
  // ../blocks/src/system/blocks/offerings-preview/index.ts
32470
- var publicRouteCandidatesSchema = z54.object({
32471
- routes: z54.array(z54.object({
32472
- entityId: z54.string(),
32473
- path: z54.string(),
32474
- title: z54.string(),
32475
- kind: z54.enum(["page", "content"]),
32476
- contentTypeKey: z54.string().nullable().optional()
32645
+ var publicRouteCandidatesSchema = z55.object({
32646
+ routes: z55.array(z55.object({
32647
+ entityId: z55.string(),
32648
+ path: z55.string(),
32649
+ title: z55.string(),
32650
+ kind: z55.enum(["page", "content"]),
32651
+ contentTypeKey: z55.string().nullable().optional()
32477
32652
  }))
32478
32653
  });
32479
32654
  var groupOverrideFields = [
@@ -32871,7 +33046,7 @@ function isRecord8(value) {
32871
33046
  }
32872
33047
 
32873
33048
  // ../blocks/src/system/blocks/embed.ts
32874
- import { z as z55 } from "zod";
33049
+ import { z as z56 } from "zod";
32875
33050
  var embedFields = [
32876
33051
  // Section heading
32877
33052
  parseFieldDefinition({
@@ -33102,18 +33277,18 @@ var embedManifest = createBlockManifest({
33102
33277
  spacing: "lg"
33103
33278
  }
33104
33279
  });
33105
- var embedEntrySchema = z55.object({
33106
- id: z55.string(),
33107
- identifier: z55.string(),
33108
- title: z55.string(),
33109
- slug: z55.string().nullable().optional(),
33110
- content: z55.record(z55.string(), z55.unknown()).optional(),
33111
- publishedAt: z55.string().nullable().optional()
33280
+ var embedEntrySchema = z56.object({
33281
+ id: z56.string(),
33282
+ identifier: z56.string(),
33283
+ title: z56.string(),
33284
+ slug: z56.string().nullable().optional(),
33285
+ content: z56.record(z56.string(), z56.unknown()).optional(),
33286
+ publishedAt: z56.string().nullable().optional()
33112
33287
  });
33113
33288
  var embedBlockDefinition = {
33114
33289
  manifest: embedManifest,
33115
33290
  dataSchemas: {
33116
- entries: z55.array(embedEntrySchema).optional()
33291
+ entries: z56.array(embedEntrySchema).optional()
33117
33292
  },
33118
33293
  dataLoaders: {
33119
33294
  entries: {
@@ -34297,52 +34472,52 @@ var fileDownloadBlockDefinition = {
34297
34472
  };
34298
34473
 
34299
34474
  // ../blocks/src/system/blocks/shop.ts
34300
- import { z as z59 } from "zod";
34475
+ import { z as z60 } from "zod";
34301
34476
 
34302
34477
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
34303
- import { z as z58 } from "zod";
34478
+ import { z as z59 } from "zod";
34304
34479
 
34305
34480
  // ../blocks/src/system/blocks/products/shared.ts
34306
- import { z as z56 } from "zod";
34307
- var publicProductVariantSchema = z56.object({
34308
- id: z56.string(),
34309
- title: z56.string(),
34310
- sku: z56.string().nullable(),
34311
- priceCents: z56.number(),
34312
- stockQuantity: z56.number().nullable(),
34313
- soldOut: z56.boolean()
34481
+ import { z as z57 } from "zod";
34482
+ var publicProductVariantSchema = z57.object({
34483
+ id: z57.string(),
34484
+ title: z57.string(),
34485
+ sku: z57.string().nullable(),
34486
+ priceCents: z57.number(),
34487
+ stockQuantity: z57.number().nullable(),
34488
+ soldOut: z57.boolean()
34314
34489
  });
34315
- var publicProductSchema = z56.object({
34316
- id: z56.string(),
34317
- contentEntryId: z56.string().nullable(),
34318
- title: z56.string(),
34319
- slug: z56.string(),
34320
- path: z56.string().nullable(),
34321
- status: z56.enum(["draft", "active"]),
34322
- priceCents: z56.number(),
34323
- currency: z56.string(),
34324
- productType: z56.enum(["physical", "digital"]),
34325
- requiresShipping: z56.boolean(),
34326
- hasVariants: z56.boolean(),
34327
- trackInventory: z56.boolean(),
34328
- soldOut: z56.boolean(),
34329
- category: z56.object({
34330
- id: z56.string(),
34331
- name: z56.string(),
34332
- slug: z56.string()
34490
+ var publicProductSchema = z57.object({
34491
+ id: z57.string(),
34492
+ contentEntryId: z57.string().nullable(),
34493
+ title: z57.string(),
34494
+ slug: z57.string(),
34495
+ path: z57.string().nullable(),
34496
+ status: z57.enum(["draft", "active"]),
34497
+ priceCents: z57.number(),
34498
+ currency: z57.string(),
34499
+ productType: z57.enum(["physical", "digital"]),
34500
+ requiresShipping: z57.boolean(),
34501
+ hasVariants: z57.boolean(),
34502
+ trackInventory: z57.boolean(),
34503
+ soldOut: z57.boolean(),
34504
+ category: z57.object({
34505
+ id: z57.string(),
34506
+ name: z57.string(),
34507
+ slug: z57.string()
34333
34508
  }).nullable(),
34334
- summary: z56.string().nullable(),
34335
- body: z56.unknown().nullable(),
34336
- gallery: z56.array(
34337
- z56.object({
34338
- url: z56.string(),
34339
- alt: z56.string().nullable()
34509
+ summary: z57.string().nullable(),
34510
+ body: z57.unknown().nullable(),
34511
+ gallery: z57.array(
34512
+ z57.object({
34513
+ url: z57.string(),
34514
+ alt: z57.string().nullable()
34340
34515
  })
34341
34516
  ),
34342
- variants: z56.array(publicProductVariantSchema)
34517
+ variants: z57.array(publicProductVariantSchema)
34343
34518
  });
34344
- var publicProductsResponseSchema = z56.object({
34345
- products: z56.array(publicProductSchema)
34519
+ var publicProductsResponseSchema = z57.object({
34520
+ products: z57.array(publicProductSchema)
34346
34521
  });
34347
34522
 
34348
34523
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -34406,27 +34581,27 @@ function deriveCreditProductLabels(products, options = {}) {
34406
34581
  }
34407
34582
 
34408
34583
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
34409
- import { z as z57 } from "zod";
34410
- var storedProductCartItemSchema = z57.object({
34411
- kind: z57.literal("product"),
34412
- productId: z57.string().min(1),
34413
- productCategoryId: z57.string().min(1).optional().nullable(),
34414
- variantId: z57.string().min(1).optional().nullable(),
34415
- title: z57.string().min(1),
34416
- variantTitle: z57.string().optional().nullable(),
34417
- quantity: z57.number().finite(),
34418
- unitPriceCents: z57.number().finite(),
34419
- currency: z57.string().min(1),
34420
- imageUrl: z57.string().optional().nullable(),
34421
- soldOut: z57.boolean().optional()
34584
+ import { z as z58 } from "zod";
34585
+ var storedProductCartItemSchema = z58.object({
34586
+ kind: z58.literal("product"),
34587
+ productId: z58.string().min(1),
34588
+ productCategoryId: z58.string().min(1).optional().nullable(),
34589
+ variantId: z58.string().min(1).optional().nullable(),
34590
+ title: z58.string().min(1),
34591
+ variantTitle: z58.string().optional().nullable(),
34592
+ quantity: z58.number().finite(),
34593
+ unitPriceCents: z58.number().finite(),
34594
+ currency: z58.string().min(1),
34595
+ imageUrl: z58.string().optional().nullable(),
34596
+ soldOut: z58.boolean().optional()
34422
34597
  });
34423
- var storedPassCartItemSchema = z57.object({
34424
- kind: z57.literal("pass"),
34425
- passId: z57.string().min(1),
34426
- title: z57.string().min(1),
34427
- quantity: z57.number().finite().optional(),
34428
- unitPriceCents: z57.number().finite(),
34429
- currency: z57.string().min(1)
34598
+ var storedPassCartItemSchema = z58.object({
34599
+ kind: z58.literal("pass"),
34600
+ passId: z58.string().min(1),
34601
+ title: z58.string().min(1),
34602
+ quantity: z58.number().finite().optional(),
34603
+ unitPriceCents: z58.number().finite(),
34604
+ currency: z58.string().min(1)
34430
34605
  });
34431
34606
  function deriveCommerceCheckoutState(state) {
34432
34607
  if (state.items.length === 0) {
@@ -34465,10 +34640,7 @@ function resolveSelectedProduct(products, contentEntry, productSlug) {
34465
34640
 
34466
34641
  // ../blocks/src/system/runtime/nodes/commerce/shared/display.ts
34467
34642
  function formatCommercePrice(cents, currency) {
34468
- return new Intl.NumberFormat("en-US", {
34469
- style: "currency",
34470
- currency: currency.toUpperCase()
34471
- }).format(cents / 100);
34643
+ return formatCurrencyAmount(cents, currency);
34472
34644
  }
34473
34645
  function getPassesHeading(passes, explicitHeading) {
34474
34646
  if (explicitHeading) return explicitHeading;
@@ -34663,214 +34835,214 @@ function formatValidity(days) {
34663
34835
  }
34664
34836
 
34665
34837
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
34666
- var shopModeSchema = z58.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
34667
- var contentEntrySchema3 = z58.object({
34668
- id: z58.string().nullable().optional(),
34669
- slug: z58.string().nullable().optional()
34838
+ var shopModeSchema = z59.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
34839
+ var contentEntrySchema3 = z59.object({
34840
+ id: z59.string().nullable().optional(),
34841
+ slug: z59.string().nullable().optional()
34670
34842
  }).nullable();
34671
- var shopSourceSchema = z58.object({
34672
- className: z58.string().nullable().optional(),
34843
+ var shopSourceSchema = z59.object({
34844
+ className: z59.string().nullable().optional(),
34673
34845
  mode: shopModeSchema.optional(),
34674
- heading: z58.string().nullable().optional(),
34675
- productSlug: z58.string().nullable().optional(),
34676
- showPasses: z58.boolean().optional(),
34677
- showMemberships: z58.boolean().optional(),
34678
- layout: z58.enum(["grid", "list"]).optional(),
34679
- columns: z58.string().optional(),
34680
- showDescriptions: z58.boolean().optional(),
34681
- showSummary: z58.boolean().optional(),
34682
- showBody: z58.boolean().optional(),
34683
- showPrices: z58.boolean().optional(),
34684
- showValidityPeriod: z58.boolean().optional(),
34685
- showPricePerCredit: z58.boolean().nullable().optional(),
34686
- passesHeading: z58.string().optional(),
34687
- membershipsHeading: z58.string().optional(),
34688
- buyButtonText: z58.string().optional(),
34689
- addButtonText: z58.string().optional(),
34690
- passPurchaseMode: z58.enum(["add_to_cart", "buy_now"]).optional(),
34691
- subscribeButtonText: z58.string().optional(),
34692
- emptyStateText: z58.string().optional(),
34693
- checkoutButtonText: z58.string().optional(),
34694
- clearButtonText: z58.string().optional(),
34695
- submitButtonText: z58.string().optional(),
34846
+ heading: z59.string().nullable().optional(),
34847
+ productSlug: z59.string().nullable().optional(),
34848
+ showPasses: z59.boolean().optional(),
34849
+ showMemberships: z59.boolean().optional(),
34850
+ layout: z59.enum(["grid", "list"]).optional(),
34851
+ columns: z59.string().optional(),
34852
+ showDescriptions: z59.boolean().optional(),
34853
+ showSummary: z59.boolean().optional(),
34854
+ showBody: z59.boolean().optional(),
34855
+ showPrices: z59.boolean().optional(),
34856
+ showValidityPeriod: z59.boolean().optional(),
34857
+ showPricePerCredit: z59.boolean().nullable().optional(),
34858
+ passesHeading: z59.string().optional(),
34859
+ membershipsHeading: z59.string().optional(),
34860
+ buyButtonText: z59.string().optional(),
34861
+ addButtonText: z59.string().optional(),
34862
+ passPurchaseMode: z59.enum(["add_to_cart", "buy_now"]).optional(),
34863
+ subscribeButtonText: z59.string().optional(),
34864
+ emptyStateText: z59.string().optional(),
34865
+ checkoutButtonText: z59.string().optional(),
34866
+ clearButtonText: z59.string().optional(),
34867
+ submitButtonText: z59.string().optional(),
34696
34868
  contentEntry: contentEntrySchema3.optional(),
34697
- passes: z58.array(publicPassProductSchema).nullable().optional(),
34698
- memberships: z58.array(publicMembershipProductSchema).nullable().optional(),
34699
- products: z58.array(publicProductSchema).nullable().optional(),
34700
- siteId: z58.string().optional(),
34701
- apiBaseUrl: z58.string().optional(),
34869
+ passes: z59.array(publicPassProductSchema).nullable().optional(),
34870
+ memberships: z59.array(publicMembershipProductSchema).nullable().optional(),
34871
+ products: z59.array(publicProductSchema).nullable().optional(),
34872
+ siteId: z59.string().optional(),
34873
+ apiBaseUrl: z59.string().optional(),
34702
34874
  stage: previewStageSchema.optional()
34703
34875
  });
34704
- var productVariantOptionDisplaySchema = z58.object({
34705
- id: z58.string(),
34706
- label: z58.string(),
34707
- soldOut: z58.boolean()
34876
+ var productVariantOptionDisplaySchema = z59.object({
34877
+ id: z59.string(),
34878
+ label: z59.string(),
34879
+ soldOut: z59.boolean()
34708
34880
  });
34709
- var productCardDisplaySchema = z58.object({
34710
- productId: z58.string(),
34711
- title: z58.string(),
34712
- path: z58.string().nullable(),
34713
- summary: z58.string().nullable(),
34714
- priceLabel: z58.string().nullable(),
34715
- image: z58.object({
34716
- url: z58.string(),
34717
- alt: z58.string().nullable()
34881
+ var productCardDisplaySchema = z59.object({
34882
+ productId: z59.string(),
34883
+ title: z59.string(),
34884
+ path: z59.string().nullable(),
34885
+ summary: z59.string().nullable(),
34886
+ priceLabel: z59.string().nullable(),
34887
+ image: z59.object({
34888
+ url: z59.string(),
34889
+ alt: z59.string().nullable()
34718
34890
  }).nullable(),
34719
- variantOptions: z58.array(productVariantOptionDisplaySchema),
34720
- selectedVariantId: z58.string().nullable(),
34721
- selectionLabel: z58.string(),
34722
- actionLabel: z58.string(),
34723
- soldOut: z58.boolean()
34891
+ variantOptions: z59.array(productVariantOptionDisplaySchema),
34892
+ selectedVariantId: z59.string().nullable(),
34893
+ selectionLabel: z59.string(),
34894
+ actionLabel: z59.string(),
34895
+ soldOut: z59.boolean()
34724
34896
  });
34725
- var productListDisplaySchema = z58.object({
34726
- kind: z58.literal("product-list"),
34727
- state: z58.enum(["empty", "ready"]),
34728
- heading: z58.string().nullable(),
34729
- className: z58.string().nullable(),
34730
- layout: z58.enum(["grid", "list"]),
34731
- columns: z58.string(),
34732
- emptyMessage: z58.string(),
34733
- cards: z58.array(productCardDisplaySchema)
34897
+ var productListDisplaySchema = z59.object({
34898
+ kind: z59.literal("product-list"),
34899
+ state: z59.enum(["empty", "ready"]),
34900
+ heading: z59.string().nullable(),
34901
+ className: z59.string().nullable(),
34902
+ layout: z59.enum(["grid", "list"]),
34903
+ columns: z59.string(),
34904
+ emptyMessage: z59.string(),
34905
+ cards: z59.array(productCardDisplaySchema)
34734
34906
  });
34735
- var productDetailDisplaySchema = z58.discriminatedUnion("state", [
34736
- z58.object({
34737
- kind: z58.literal("product-detail"),
34738
- state: z58.literal("empty"),
34739
- heading: z58.string().nullable(),
34740
- className: z58.string().nullable(),
34741
- emptyMessage: z58.string()
34907
+ var productDetailDisplaySchema = z59.discriminatedUnion("state", [
34908
+ z59.object({
34909
+ kind: z59.literal("product-detail"),
34910
+ state: z59.literal("empty"),
34911
+ heading: z59.string().nullable(),
34912
+ className: z59.string().nullable(),
34913
+ emptyMessage: z59.string()
34742
34914
  }),
34743
- z58.object({
34744
- kind: z58.literal("product-detail"),
34745
- state: z58.literal("ready"),
34746
- heading: z58.string().nullable(),
34747
- className: z58.string().nullable(),
34748
- title: z58.string(),
34749
- priceLabel: z58.string(),
34750
- summary: z58.string().nullable(),
34751
- categoryLabel: z58.string().nullable(),
34752
- gallery: z58.array(z58.object({
34753
- url: z58.string(),
34754
- alt: z58.string().nullable()
34915
+ z59.object({
34916
+ kind: z59.literal("product-detail"),
34917
+ state: z59.literal("ready"),
34918
+ heading: z59.string().nullable(),
34919
+ className: z59.string().nullable(),
34920
+ title: z59.string(),
34921
+ priceLabel: z59.string(),
34922
+ summary: z59.string().nullable(),
34923
+ categoryLabel: z59.string().nullable(),
34924
+ gallery: z59.array(z59.object({
34925
+ url: z59.string(),
34926
+ alt: z59.string().nullable()
34755
34927
  })),
34756
- variantOptions: z58.array(productVariantOptionDisplaySchema),
34757
- selectedVariantId: z58.string().nullable(),
34758
- selectionLabel: z58.string(),
34759
- actionLabel: z58.string(),
34760
- soldOut: z58.boolean(),
34761
- body: z58.unknown().nullable()
34928
+ variantOptions: z59.array(productVariantOptionDisplaySchema),
34929
+ selectedVariantId: z59.string().nullable(),
34930
+ selectionLabel: z59.string(),
34931
+ actionLabel: z59.string(),
34932
+ soldOut: z59.boolean(),
34933
+ body: z59.unknown().nullable()
34762
34934
  })
34763
34935
  ]);
34764
- var passCardDisplaySchema = z58.object({
34765
- id: z58.string(),
34766
- title: z58.string(),
34767
- description: z58.string().nullable(),
34768
- priceLabel: z58.string(),
34769
- creditsLabel: z58.string(),
34770
- perCreditLabel: z58.string().nullable(),
34771
- validityLabel: z58.string().nullable(),
34772
- actionLabel: z58.string()
34936
+ var passCardDisplaySchema = z59.object({
34937
+ id: z59.string(),
34938
+ title: z59.string(),
34939
+ description: z59.string().nullable(),
34940
+ priceLabel: z59.string(),
34941
+ creditsLabel: z59.string(),
34942
+ perCreditLabel: z59.string().nullable(),
34943
+ validityLabel: z59.string().nullable(),
34944
+ actionLabel: z59.string()
34773
34945
  });
34774
- var membershipCardDisplaySchema = z58.object({
34775
- id: z58.string(),
34776
- title: z58.string(),
34777
- description: z58.string().nullable(),
34778
- priceLabel: z58.string(),
34779
- intervalLabel: z58.string(),
34780
- actionLabel: z58.string()
34946
+ var membershipCardDisplaySchema = z59.object({
34947
+ id: z59.string(),
34948
+ title: z59.string(),
34949
+ description: z59.string().nullable(),
34950
+ priceLabel: z59.string(),
34951
+ intervalLabel: z59.string(),
34952
+ actionLabel: z59.string()
34781
34953
  });
34782
- var passesMembershipsDisplaySchema = z58.object({
34783
- kind: z58.literal("passes-memberships"),
34784
- state: z58.enum(["empty", "ready"]),
34785
- className: z58.string().nullable(),
34786
- layout: z58.enum(["grid", "list"]),
34787
- columns: z58.string(),
34788
- emptyMessage: z58.string(),
34789
- passesHeading: z58.string(),
34790
- membershipsHeading: z58.string(),
34791
- passes: z58.array(passCardDisplaySchema),
34792
- memberships: z58.array(membershipCardDisplaySchema)
34954
+ var passesMembershipsDisplaySchema = z59.object({
34955
+ kind: z59.literal("passes-memberships"),
34956
+ state: z59.enum(["empty", "ready"]),
34957
+ className: z59.string().nullable(),
34958
+ layout: z59.enum(["grid", "list"]),
34959
+ columns: z59.string(),
34960
+ emptyMessage: z59.string(),
34961
+ passesHeading: z59.string(),
34962
+ membershipsHeading: z59.string(),
34963
+ passes: z59.array(passCardDisplaySchema),
34964
+ memberships: z59.array(membershipCardDisplaySchema)
34793
34965
  });
34794
- var cartLineDisplaySchema = z58.object({
34795
- key: z58.string(),
34796
- title: z58.string(),
34797
- priceLabel: z58.string(),
34798
- quantity: z58.number(),
34799
- quantityEditable: z58.boolean()
34966
+ var cartLineDisplaySchema = z59.object({
34967
+ key: z59.string(),
34968
+ title: z59.string(),
34969
+ priceLabel: z59.string(),
34970
+ quantity: z59.number(),
34971
+ quantityEditable: z59.boolean()
34800
34972
  });
34801
- var cartDisplaySchema = z58.object({
34802
- kind: z58.literal("cart"),
34803
- state: z58.enum(["empty", "ready"]),
34804
- heading: z58.string().nullable(),
34805
- className: z58.string().nullable(),
34806
- emptyMessage: z58.string(),
34807
- supportText: z58.string().nullable(),
34808
- items: z58.array(cartLineDisplaySchema),
34809
- subtotalLabel: z58.string().nullable(),
34810
- checkoutButtonText: z58.string(),
34811
- clearButtonText: z58.string()
34973
+ var cartDisplaySchema = z59.object({
34974
+ kind: z59.literal("cart"),
34975
+ state: z59.enum(["empty", "ready"]),
34976
+ heading: z59.string().nullable(),
34977
+ className: z59.string().nullable(),
34978
+ emptyMessage: z59.string(),
34979
+ supportText: z59.string().nullable(),
34980
+ items: z59.array(cartLineDisplaySchema),
34981
+ subtotalLabel: z59.string().nullable(),
34982
+ checkoutButtonText: z59.string(),
34983
+ clearButtonText: z59.string()
34812
34984
  });
34813
- var checkoutDisplaySchema = z58.object({
34814
- kind: z58.literal("checkout"),
34815
- state: z58.enum(["empty", "blocked", "ready"]),
34816
- heading: z58.string().nullable(),
34817
- className: z58.string().nullable(),
34818
- message: z58.string().nullable(),
34819
- submitButtonText: z58.string()
34985
+ var checkoutDisplaySchema = z59.object({
34986
+ kind: z59.literal("checkout"),
34987
+ state: z59.enum(["empty", "blocked", "ready"]),
34988
+ heading: z59.string().nullable(),
34989
+ className: z59.string().nullable(),
34990
+ message: z59.string().nullable(),
34991
+ submitButtonText: z59.string()
34820
34992
  });
34821
- var passesMembershipsHydrationSchema = z58.object({
34822
- passes: z58.array(publicPassProductSchema),
34823
- memberships: z58.array(publicMembershipProductSchema),
34824
- passPurchaseMode: z58.enum(["add_to_cart", "buy_now"])
34993
+ var passesMembershipsHydrationSchema = z59.object({
34994
+ passes: z59.array(publicPassProductSchema),
34995
+ memberships: z59.array(publicMembershipProductSchema),
34996
+ passPurchaseMode: z59.enum(["add_to_cart", "buy_now"])
34825
34997
  });
34826
- var productListHydrationSchema = z58.object({
34827
- products: z58.array(publicProductSchema),
34828
- showSummary: z58.boolean(),
34829
- showPrices: z58.boolean(),
34830
- addButtonText: z58.string()
34998
+ var productListHydrationSchema = z59.object({
34999
+ products: z59.array(publicProductSchema),
35000
+ showSummary: z59.boolean(),
35001
+ showPrices: z59.boolean(),
35002
+ addButtonText: z59.string()
34831
35003
  });
34832
- var productDetailHydrationSchema = z58.object({
34833
- products: z58.array(publicProductSchema),
34834
- productId: z58.string().nullable(),
34835
- showSummary: z58.boolean(),
34836
- showBody: z58.boolean(),
34837
- addButtonText: z58.string()
35004
+ var productDetailHydrationSchema = z59.object({
35005
+ products: z59.array(publicProductSchema),
35006
+ productId: z59.string().nullable(),
35007
+ showSummary: z59.boolean(),
35008
+ showBody: z59.boolean(),
35009
+ addButtonText: z59.string()
34838
35010
  });
34839
- var cartHydrationSchema = z58.object({
34840
- emptyStateText: z58.string(),
34841
- checkoutButtonText: z58.string(),
34842
- clearButtonText: z58.string()
35011
+ var cartHydrationSchema = z59.object({
35012
+ emptyStateText: z59.string(),
35013
+ checkoutButtonText: z59.string(),
35014
+ clearButtonText: z59.string()
34843
35015
  });
34844
- var checkoutHydrationSchema = z58.object({
34845
- emptyStateText: z58.string(),
34846
- submitButtonText: z58.string()
35016
+ var checkoutHydrationSchema = z59.object({
35017
+ emptyStateText: z59.string(),
35018
+ submitButtonText: z59.string()
34847
35019
  });
34848
- var passesMembershipsRenderSchema = z58.object({
35020
+ var passesMembershipsRenderSchema = z59.object({
34849
35021
  display: passesMembershipsDisplaySchema,
34850
35022
  hydration: passesMembershipsHydrationSchema
34851
35023
  });
34852
- var productListRenderSchema = z58.object({
35024
+ var productListRenderSchema = z59.object({
34853
35025
  display: productListDisplaySchema,
34854
35026
  hydration: productListHydrationSchema
34855
35027
  });
34856
- var productDetailRenderSchema = z58.object({
35028
+ var productDetailRenderSchema = z59.object({
34857
35029
  display: productDetailDisplaySchema,
34858
35030
  hydration: productDetailHydrationSchema
34859
35031
  });
34860
- var cartRenderSchema = z58.object({
35032
+ var cartRenderSchema = z59.object({
34861
35033
  display: cartDisplaySchema,
34862
35034
  hydration: cartHydrationSchema
34863
35035
  });
34864
- var checkoutRenderSchema = z58.object({
35036
+ var checkoutRenderSchema = z59.object({
34865
35037
  display: checkoutDisplaySchema,
34866
35038
  hydration: checkoutHydrationSchema
34867
35039
  });
34868
35040
  function resolveShowPricePerCredit(source) {
34869
35041
  return source.showPricePerCredit ?? true;
34870
35042
  }
34871
- var shopIslandMetaCodec = createZodCodec(z58.object({
34872
- siteId: z58.string().optional(),
34873
- apiBaseUrl: z58.string().optional(),
35043
+ var shopIslandMetaCodec = createZodCodec(z59.object({
35044
+ siteId: z59.string().optional(),
35045
+ apiBaseUrl: z59.string().optional(),
34874
35046
  stage: previewStageSchema.optional()
34875
35047
  }));
34876
35048
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -35323,9 +35495,9 @@ var shopBlockDefinition = {
35323
35495
  runtime: shopBlockRuntime,
35324
35496
  dataSchemas: {
35325
35497
  // listPublicPasses returns { passes: [...] }
35326
- passes: z59.object({ passes: z59.array(publicPassProductSchema) }).optional(),
35498
+ passes: z60.object({ passes: z60.array(publicPassProductSchema) }).optional(),
35327
35499
  // listPublicMemberships returns { memberships: [...] }
35328
- memberships: z59.object({ memberships: z59.array(publicMembershipProductSchema) }).optional()
35500
+ memberships: z60.object({ memberships: z60.array(publicMembershipProductSchema) }).optional()
35329
35501
  },
35330
35502
  dataLoaders: {
35331
35503
  // Load passes for display
@@ -35348,7 +35520,7 @@ var shopBlockDefinition = {
35348
35520
  };
35349
35521
 
35350
35522
  // ../blocks/src/system/blocks/product-list.ts
35351
- import { z as z60 } from "zod";
35523
+ import { z as z61 } from "zod";
35352
35524
  var productListManifest = createBlockManifest({
35353
35525
  id: "block.product-list",
35354
35526
  version: "1.0.0",
@@ -35481,7 +35653,7 @@ var productListBlockDefinition = {
35481
35653
  }
35482
35654
  }
35483
35655
  };
35484
- var productListDataSchema = z60.object({
35656
+ var productListDataSchema = z61.object({
35485
35657
  products: publicProductsResponseSchema.optional()
35486
35658
  });
35487
35659
 
@@ -35742,72 +35914,72 @@ var checkoutBlockDefinition = {
35742
35914
  };
35743
35915
 
35744
35916
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
35745
- import { z as z61 } from "zod";
35746
- var publicGiftCardOfferSchema = z61.object({
35747
- id: z61.string(),
35748
- kind: z61.literal("gift_card"),
35749
- title: z61.string(),
35750
- description: z61.string().nullable(),
35751
- sortOrder: z61.number().int(),
35752
- giftCard: z61.object({
35753
- fixedDenominations: z61.array(z61.number().int().positive()),
35754
- customAmountEnabled: z61.boolean(),
35755
- customAmountMinCents: z61.number().int().positive(),
35756
- customAmountMaxCents: z61.number().int().positive()
35917
+ import { z as z62 } from "zod";
35918
+ var publicGiftCardOfferSchema = z62.object({
35919
+ id: z62.string(),
35920
+ kind: z62.literal("gift_card"),
35921
+ title: z62.string(),
35922
+ description: z62.string().nullable(),
35923
+ sortOrder: z62.number().int(),
35924
+ giftCard: z62.object({
35925
+ fixedDenominations: z62.array(z62.number().int().positive()),
35926
+ customAmountEnabled: z62.boolean(),
35927
+ customAmountMinCents: z62.number().int().positive(),
35928
+ customAmountMaxCents: z62.number().int().positive()
35757
35929
  }),
35758
- voucher: z61.null()
35930
+ voucher: z62.null()
35759
35931
  });
35760
- var publicVoucherOfferSchema = z61.object({
35761
- id: z61.string(),
35762
- kind: z61.literal("voucher"),
35763
- title: z61.string(),
35764
- description: z61.string().nullable(),
35765
- sortOrder: z61.number().int(),
35766
- giftCard: z61.null(),
35767
- voucher: z61.object({
35768
- purchaseAmountCents: z61.number().int().positive()
35932
+ var publicVoucherOfferSchema = z62.object({
35933
+ id: z62.string(),
35934
+ kind: z62.literal("voucher"),
35935
+ title: z62.string(),
35936
+ description: z62.string().nullable(),
35937
+ sortOrder: z62.number().int(),
35938
+ giftCard: z62.null(),
35939
+ voucher: z62.object({
35940
+ purchaseAmountCents: z62.number().int().positive()
35769
35941
  })
35770
35942
  });
35771
- var publicGiftingOffersResponseSchema = z61.object({
35772
- currency: z61.string(),
35773
- giftCards: z61.array(publicGiftCardOfferSchema),
35774
- vouchers: z61.array(publicVoucherOfferSchema)
35943
+ var publicGiftingOffersResponseSchema = z62.object({
35944
+ currency: z62.string(),
35945
+ giftCards: z62.array(publicGiftCardOfferSchema),
35946
+ vouchers: z62.array(publicVoucherOfferSchema)
35775
35947
  });
35776
- var giftingSourceSchema = z61.object({
35777
- siteId: z61.string().optional(),
35778
- apiBaseUrl: z61.string().optional(),
35948
+ var giftingSourceSchema = z62.object({
35949
+ siteId: z62.string().optional(),
35950
+ apiBaseUrl: z62.string().optional(),
35779
35951
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
35780
- className: z61.string().nullable().optional(),
35781
- heading: z61.string().nullable().optional(),
35782
- intro: z61.string().nullable().optional(),
35783
- giftCardsHeading: z61.string().nullable().optional(),
35784
- vouchersHeading: z61.string().nullable().optional(),
35785
- emptyStateText: z61.string().nullable().optional(),
35786
- checkoutButtonText: z61.string().nullable().optional(),
35787
- successMessage: z61.string().nullable().optional()
35952
+ className: z62.string().nullable().optional(),
35953
+ heading: z62.string().nullable().optional(),
35954
+ intro: z62.string().nullable().optional(),
35955
+ giftCardsHeading: z62.string().nullable().optional(),
35956
+ vouchersHeading: z62.string().nullable().optional(),
35957
+ emptyStateText: z62.string().nullable().optional(),
35958
+ checkoutButtonText: z62.string().nullable().optional(),
35959
+ successMessage: z62.string().nullable().optional()
35788
35960
  });
35789
- var giftingDisplaySchema = z61.object({
35790
- kind: z61.literal("gifting"),
35791
- state: z61.literal("ready"),
35792
- className: z61.string().nullable(),
35793
- heading: z61.string(),
35794
- intro: z61.string().nullable(),
35795
- giftCardsHeading: z61.string(),
35796
- vouchersHeading: z61.string(),
35797
- emptyStateText: z61.string()
35961
+ var giftingDisplaySchema = z62.object({
35962
+ kind: z62.literal("gifting"),
35963
+ state: z62.literal("ready"),
35964
+ className: z62.string().nullable(),
35965
+ heading: z62.string(),
35966
+ intro: z62.string().nullable(),
35967
+ giftCardsHeading: z62.string(),
35968
+ vouchersHeading: z62.string(),
35969
+ emptyStateText: z62.string()
35798
35970
  });
35799
- var giftingHydrationSchema = z61.object({
35971
+ var giftingHydrationSchema = z62.object({
35800
35972
  offers: publicGiftingOffersResponseSchema.nullable(),
35801
- checkoutButtonText: z61.string(),
35802
- successMessage: z61.string()
35973
+ checkoutButtonText: z62.string(),
35974
+ successMessage: z62.string()
35803
35975
  });
35804
- var giftingRenderSchema = z61.object({
35976
+ var giftingRenderSchema = z62.object({
35805
35977
  display: giftingDisplaySchema,
35806
35978
  hydration: giftingHydrationSchema
35807
35979
  });
35808
- var giftingIslandMetaCodec = createZodCodec(z61.object({
35809
- siteId: z61.string().optional(),
35810
- apiBaseUrl: z61.string().optional()
35980
+ var giftingIslandMetaCodec = createZodCodec(z62.object({
35981
+ siteId: z62.string().optional(),
35982
+ apiBaseUrl: z62.string().optional()
35811
35983
  }));
35812
35984
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
35813
35985
  "siteId",
@@ -35989,7 +36161,61 @@ var giftingBlockDefinition = {
35989
36161
  };
35990
36162
 
35991
36163
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
35992
- import { z as z62 } from "zod";
36164
+ import { z as z63 } from "zod";
36165
+
36166
+ // ../blocks/src/system/blocks/newsletter-signup-destination.ts
36167
+ function parseNewsletterSignupBlockId(value) {
36168
+ const trimmed = parseTrimmedString(value);
36169
+ return trimmed && BLOCK_ID_PATTERN.test(trimmed) ? trimmed : null;
36170
+ }
36171
+ function parseSignedNewsletterDestinationRef(value) {
36172
+ const trimmed = parseTrimmedString(value);
36173
+ return trimmed && SIGNED_DESTINATION_REF_PATTERN.test(trimmed) ? trimmed : null;
36174
+ }
36175
+ function parseNewsletterSignupDestinationProvider(value) {
36176
+ return value === "riverbank" || value === "mailchimp" ? value : null;
36177
+ }
36178
+ function buildNewsletterSignupBlockRef(blockId) {
36179
+ const parsed = parseNewsletterSignupBlockId(blockId);
36180
+ return parsed ? { tag: "block_ref", blockId: parsed } : null;
36181
+ }
36182
+ function normalizeNewsletterSignupEditorValuesForDestination(values) {
36183
+ const destinationProvider = parseNewsletterSignupDestinationProvider(values.destinationProvider) ?? "riverbank";
36184
+ if (destinationProvider === "mailchimp") {
36185
+ return {
36186
+ destinationProvider,
36187
+ mailchimpAudienceId: values.mailchimpAudienceId,
36188
+ mailchimpTags: values.mailchimpTags
36189
+ };
36190
+ }
36191
+ return {
36192
+ destinationProvider,
36193
+ listId: values.listId,
36194
+ tags: values.tags
36195
+ };
36196
+ }
36197
+ function deriveNewsletterSignupRuntimeSource(values) {
36198
+ const normalized = normalizeNewsletterSignupEditorValuesForDestination(values);
36199
+ if (normalized.destinationProvider === "mailchimp") {
36200
+ return {
36201
+ destinationProvider: "mailchimp",
36202
+ listId: null,
36203
+ tags: null
36204
+ };
36205
+ }
36206
+ return {
36207
+ destinationProvider: "riverbank",
36208
+ listId: parseTrimmedString(normalized.listId),
36209
+ tags: parseTrimmedString(normalized.tags)
36210
+ };
36211
+ }
36212
+ var BLOCK_ID_PATTERN = /^[A-Za-z0-9._:-]{1,200}$/;
36213
+ var SIGNED_DESTINATION_REF_PATTERN = /^[A-Za-z0-9._~-]{16,1000}$/;
36214
+ function parseTrimmedString(value) {
36215
+ if (typeof value !== "string") return null;
36216
+ const trimmed = value.trim();
36217
+ return trimmed.length > 0 ? trimmed : null;
36218
+ }
35993
36219
 
35994
36220
  // ../blocks/src/system/runtime/nodes/newsletter-form.types.ts
35995
36221
  function getPresetFields(preset2, options) {
@@ -36042,49 +36268,65 @@ function withOptionalPhone(fields3, includePhone) {
36042
36268
  }
36043
36269
 
36044
36270
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
36045
- var newsletterPresetSchema = z62.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
36046
- var newsletterFieldSchema = z62.object({
36047
- id: z62.string(),
36048
- type: z62.enum(["email", "text"]),
36049
- label: z62.string(),
36050
- required: z62.boolean(),
36051
- placeholder: z62.string().optional()
36271
+ var newsletterPresetSchema = z63.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
36272
+ var newsletterDestinationProviderSchema = z63.enum(["riverbank", "mailchimp"]);
36273
+ var newsletterFieldSchema = z63.object({
36274
+ id: z63.string(),
36275
+ type: z63.enum(["email", "text"]),
36276
+ label: z63.string(),
36277
+ required: z63.boolean(),
36278
+ placeholder: z63.string().optional()
36052
36279
  });
36053
- var newsletterSourceSchema = z62.object({
36054
- siteId: z62.string().optional(),
36055
- apiBaseUrl: z62.string().optional(),
36056
- listId: z62.string().nullable().optional(),
36280
+ var newsletterSignupBlockIdSchema = z63.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
36281
+ var signedNewsletterDestinationRefSchema = z63.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
36282
+ var newsletterPublicDestinationRefSchema = z63.discriminatedUnion("tag", [
36283
+ z63.object({
36284
+ tag: z63.literal("block_ref"),
36285
+ blockId: newsletterSignupBlockIdSchema
36286
+ }),
36287
+ z63.object({
36288
+ tag: z63.literal("signed_destination_ref"),
36289
+ token: signedNewsletterDestinationRefSchema
36290
+ })
36291
+ ]);
36292
+ var newsletterSourceSchema = z63.object({
36293
+ blockId: z63.string().nullable().optional(),
36294
+ siteId: z63.string().optional(),
36295
+ apiBaseUrl: z63.string().optional(),
36296
+ listId: z63.string().nullable().optional(),
36297
+ destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
36057
36298
  preset: newsletterPresetSchema.optional(),
36058
- includePhone: z62.boolean().optional(),
36059
- buttonLabel: z62.string().nullable().optional(),
36060
- successMessage: z62.string().nullable().optional(),
36061
- privacyNote: z62.string().nullable().optional(),
36062
- tags: z62.string().nullable().optional(),
36063
- spamProtectionEnabled: z62.boolean().optional(),
36064
- className: z62.string().nullable().optional()
36299
+ includePhone: z63.boolean().optional(),
36300
+ buttonLabel: z63.string().nullable().optional(),
36301
+ successMessage: z63.string().nullable().optional(),
36302
+ privacyNote: z63.string().nullable().optional(),
36303
+ tags: z63.string().nullable().optional(),
36304
+ spamProtectionEnabled: z63.boolean().optional(),
36305
+ className: z63.string().nullable().optional()
36065
36306
  });
36066
- var newsletterDisplaySchema = z62.object({
36067
- kind: z62.literal("newsletter-form"),
36068
- className: z62.string().nullable(),
36069
- buttonLabel: z62.string(),
36070
- successMessage: z62.string().nullable(),
36071
- privacyNote: z62.string().nullable(),
36072
- fields: z62.array(newsletterFieldSchema)
36307
+ var newsletterDisplaySchema = z63.object({
36308
+ kind: z63.literal("newsletter-form"),
36309
+ className: z63.string().nullable(),
36310
+ buttonLabel: z63.string(),
36311
+ successMessage: z63.string().nullable(),
36312
+ privacyNote: z63.string().nullable(),
36313
+ fields: z63.array(newsletterFieldSchema)
36073
36314
  });
36074
- var newsletterHydrationSchema = z62.object({
36075
- listId: z62.string().nullable().optional(),
36315
+ var newsletterHydrationSchema = z63.object({
36316
+ destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
36317
+ listId: z63.string().nullable().optional(),
36076
36318
  preset: newsletterPresetSchema,
36077
- includePhone: z62.boolean(),
36078
- tags: z62.string().nullable().optional(),
36079
- spamProtectionEnabled: z62.boolean().optional()
36319
+ includePhone: z63.boolean(),
36320
+ tags: z63.string().nullable().optional(),
36321
+ spamProtectionEnabled: z63.boolean().optional()
36080
36322
  });
36081
- var newsletterRenderSchema = z62.object({
36323
+ var newsletterRenderSchema = z63.object({
36082
36324
  display: newsletterDisplaySchema,
36083
36325
  hydration: newsletterHydrationSchema
36084
36326
  });
36085
- var newsletterIslandMetaCodec = createZodCodec(z62.object({
36086
- siteId: z62.string().optional(),
36087
- apiBaseUrl: z62.string().optional()
36327
+ var newsletterIslandMetaCodec = createZodCodec(z63.object({
36328
+ siteId: z63.string().optional(),
36329
+ apiBaseUrl: z63.string().optional()
36088
36330
  }));
36089
36331
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
36090
36332
  function buildNewsletterDisplay(source) {
@@ -36105,16 +36347,20 @@ var newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
36105
36347
  source: createZodCodec(newsletterSourceSchema),
36106
36348
  render: createZodCodec(newsletterRenderSchema)
36107
36349
  },
36108
- buildRender: (source) => ({
36109
- display: buildNewsletterDisplay(source),
36110
- hydration: {
36111
- listId: source.listId,
36112
- preset: source.preset ?? "emailOnly",
36113
- includePhone: source.includePhone ?? false,
36114
- tags: source.tags ?? null,
36115
- spamProtectionEnabled: source.spamProtectionEnabled
36116
- }
36117
- })
36350
+ buildRender: (source) => {
36351
+ const runtimeSource = deriveNewsletterSignupRuntimeSource(source);
36352
+ return {
36353
+ display: buildNewsletterDisplay(source),
36354
+ hydration: {
36355
+ destinationRef: buildNewsletterSignupBlockRef(source.blockId),
36356
+ listId: runtimeSource.listId,
36357
+ preset: source.preset ?? "emailOnly",
36358
+ includePhone: source.includePhone ?? false,
36359
+ tags: runtimeSource.tags,
36360
+ spamProtectionEnabled: source.spamProtectionEnabled
36361
+ }
36362
+ };
36363
+ }
36118
36364
  });
36119
36365
  var newsletterFormInteractiveIslandPropsCodec = createInteractiveIslandCodec({
36120
36366
  runtime: newsletterFormBlockRuntime,
@@ -36137,6 +36383,20 @@ function buildNewsletterFormInteractiveIslandProps(props2) {
36137
36383
  source: props2
36138
36384
  });
36139
36385
  }
36386
+ function parseRequiredNewsletterSignupBlockId(value) {
36387
+ const parsed = parseNewsletterSignupBlockId(value);
36388
+ if (!parsed) {
36389
+ throw new Error("Newsletter signup block destination ref requires blockId");
36390
+ }
36391
+ return parsed;
36392
+ }
36393
+ function parseRequiredSignedNewsletterDestinationRef(value) {
36394
+ const parsed = parseSignedNewsletterDestinationRef(value);
36395
+ if (!parsed) {
36396
+ throw new Error("Newsletter signup signed destination ref requires token");
36397
+ }
36398
+ return parsed;
36399
+ }
36140
36400
 
36141
36401
  // ../blocks/src/system/blocks/newsletter-signup.ts
36142
36402
  var stackedComposition = composeFragments([
@@ -36216,23 +36476,23 @@ var newsletterSignupBlockDefinition = {
36216
36476
  };
36217
36477
 
36218
36478
  // ../blocks/src/system/blocks/team-members.ts
36219
- import { z as z63 } from "zod";
36479
+ import { z as z64 } from "zod";
36220
36480
  var ITEM_NAME2 = "member";
36221
36481
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
36222
36482
  message: "Team member photos must be image media"
36223
36483
  }).nullable();
36224
- var teamMemberDataSchema = z63.object({
36225
- _type: z63.literal("teamMember"),
36226
- id: z63.string(),
36227
- name: z63.string(),
36228
- role: z63.string().nullable(),
36229
- roleLabel: z63.string().nullable(),
36230
- bio: z63.string().nullable(),
36231
- summary: z63.string().nullable(),
36484
+ var teamMemberDataSchema = z64.object({
36485
+ _type: z64.literal("teamMember"),
36486
+ id: z64.string(),
36487
+ name: z64.string(),
36488
+ role: z64.string().nullable(),
36489
+ roleLabel: z64.string().nullable(),
36490
+ bio: z64.string().nullable(),
36491
+ summary: z64.string().nullable(),
36232
36492
  photo: teamMemberPhotoSchema,
36233
- profilePath: z63.string().nullable()
36493
+ profilePath: z64.string().nullable()
36234
36494
  });
36235
- var teamMembersDataSchema = z63.array(teamMemberDataSchema);
36495
+ var teamMembersDataSchema = z64.array(teamMemberDataSchema);
36236
36496
  var dynamicSourceWhen = { equals: "site_staff" };
36237
36497
  var manualSourceWhen = { equals: "site_staff", not: true };
36238
36498
  var headingNode = text(
@@ -38622,6 +38882,8 @@ function renderDoc(node, key, imageResolveContext) {
38622
38882
  return /* @__PURE__ */ jsx15("blockquote", { children }, key);
38623
38883
  case "horizontalRule":
38624
38884
  return /* @__PURE__ */ jsx15("hr", {}, key);
38885
+ case "hardBreak":
38886
+ return /* @__PURE__ */ jsx15("br", {}, key);
38625
38887
  case "image": {
38626
38888
  const attrs = node.attrs ?? {};
38627
38889
  const src = typeof attrs.src === "string" ? attrs.src.trim() : "";
@@ -38678,84 +38940,11 @@ function Text({
38678
38940
  return /* @__PURE__ */ jsx16(Comp, { className, ...dataAttributes, children });
38679
38941
  }
38680
38942
 
38681
- // ../blocks/src/system/manifest/richTextSchema.ts
38682
- import { z as z64 } from "zod";
38683
- var TipTapMarkSchema = z64.object({
38684
- type: z64.string(),
38685
- attrs: z64.record(z64.string(), z64.unknown()).optional()
38686
- });
38687
- var TipTapNodeSchema = z64.lazy(
38688
- () => z64.object({
38689
- type: z64.string(),
38690
- content: z64.array(TipTapNodeSchema).optional(),
38691
- text: z64.string().optional(),
38692
- attrs: z64.record(z64.string(), z64.unknown()).optional(),
38693
- marks: z64.array(TipTapMarkSchema).optional()
38694
- })
38695
- );
38696
- var RichTextValueSchema = z64.union([
38697
- // Canonical: TipTap document directly
38698
- TipTapNodeSchema,
38699
- // Legacy (read-tolerance only): wrapped in { doc: {...} }
38700
- z64.object({
38701
- doc: TipTapNodeSchema
38702
- })
38703
- ]);
38704
- var RichTextDocSchema = z64.object({
38705
- type: z64.literal("doc"),
38706
- content: z64.array(TipTapNodeSchema)
38707
- });
38708
- function unwrapRichTextRoot(value) {
38709
- if (!isRecord4(value)) return value;
38710
- if (!("doc" in value)) return value;
38711
- const inner = value.doc;
38712
- if (isRecord4(inner) && inner.type === "doc") return inner;
38713
- return value;
38714
- }
38715
-
38716
38943
  // ../blocks/src/system/runtime/nodes/richText-coerce.ts
38717
- function parseInlineMarkdown(text2) {
38718
- const out = [];
38719
- const pushText = (value, marks) => {
38720
- if (!value) return;
38721
- out.push(
38722
- marks && marks.length > 0 ? { type: "text", text: value, marks } : { type: "text", text: value }
38723
- );
38724
- };
38725
- let rest = text2;
38726
- while (rest.length > 0) {
38727
- const start = rest.indexOf("**");
38728
- if (start === -1) {
38729
- pushText(rest);
38730
- break;
38731
- }
38732
- const end = rest.indexOf("**", start + 2);
38733
- if (end === -1) {
38734
- pushText(rest);
38735
- break;
38736
- }
38737
- pushText(rest.slice(0, start));
38738
- pushText(rest.slice(start + 2, end), [{ type: "bold" }]);
38739
- rest = rest.slice(end + 2);
38740
- }
38741
- return out;
38742
- }
38743
- function markdownToTipTapDoc(markdown) {
38744
- const normalized = markdown.replace(/\r\n/g, "\n").trim();
38745
- if (!normalized) return { type: "doc", content: [] };
38746
- const paragraphs = normalized.split(/\n{2,}/).map((p) => p.trim()).filter(Boolean);
38747
- return {
38748
- type: "doc",
38749
- content: paragraphs.map((p) => {
38750
- const inline2 = parseInlineMarkdown(p);
38751
- return inline2.length > 0 ? { type: "paragraph", content: inline2 } : { type: "paragraph" };
38752
- })
38753
- };
38754
- }
38755
38944
  function coerceRichTextDoc(value) {
38756
38945
  const raw = unwrapRichTextRoot(value);
38757
38946
  if (typeof raw === "string") {
38758
- return markdownToTipTapDoc(raw);
38947
+ return createRichTextDocFromMarkdown(raw);
38759
38948
  }
38760
38949
  if (isRecord4(raw) && typeof raw.type === "string") {
38761
38950
  return raw;
@@ -40363,6 +40552,32 @@ function TeamMemberName({
40363
40552
  }) {
40364
40553
  return profilePath ? /* @__PURE__ */ jsx29("a", { href: profilePath, className: "rb-hover-opacity-80", children: /* @__PURE__ */ jsx29("strong", { children: name }) }) : /* @__PURE__ */ jsx29("strong", { children: name });
40365
40554
  }
40555
+ function formatTicketTypePrice(ticketType, currency) {
40556
+ return formatCurrencyAmount(ticketType.priceAmount, currency, { decimals: "auto" });
40557
+ }
40558
+ function getActiveTicketTypes(event) {
40559
+ return event.pricing.kind === "ticket_types" ? event.pricing.ticketTypes.filter((ticketType) => ticketType.isActive).sort((left, right) => left.sortOrder - right.sortOrder) : [];
40560
+ }
40561
+ function TicketTypePriceList({
40562
+ ticketTypes,
40563
+ currency
40564
+ }) {
40565
+ if (ticketTypes.length === 0) return null;
40566
+ return /* @__PURE__ */ jsx29("div", { className: "rb-mt-3 rb-flex rb-flex-col rb-gap-2", children: ticketTypes.map((ticketType) => /* @__PURE__ */ jsxs16(
40567
+ "div",
40568
+ {
40569
+ className: "rb-flex rb-items-start rb-justify-between rb-gap-4",
40570
+ children: [
40571
+ /* @__PURE__ */ jsxs16("div", { children: [
40572
+ /* @__PURE__ */ jsx29("p", { children: ticketType.name }),
40573
+ ticketType.description ? /* @__PURE__ */ jsx29("p", { className: "rb-caption status-muted", children: ticketType.description }) : null
40574
+ ] }),
40575
+ /* @__PURE__ */ jsx29("p", { children: /* @__PURE__ */ jsx29("strong", { children: formatTicketTypePrice(ticketType, currency) }) })
40576
+ ]
40577
+ },
40578
+ ticketType.id
40579
+ )) });
40580
+ }
40366
40581
  function EventDetailsView({
40367
40582
  selection,
40368
40583
  showVenue,
@@ -40397,6 +40612,7 @@ function EventDetailsView({
40397
40612
  const shouldShowCoursePricing = showCost && !isDropIn && coursePricing !== null;
40398
40613
  const shouldShowEventCost = showCost && isPaid && !isDropIn && coursePricing === null;
40399
40614
  const eventCostLabel = shouldShowEventCost ? formatEventPrice(selected) : null;
40615
+ const ticketTypes = shouldShowEventCost ? getActiveTicketTypes(selected) : [];
40400
40616
  const acceptedItems = [];
40401
40617
  if (showAcceptedPasses) {
40402
40618
  acceptedItems.push(...applicablePasses.map((p) => p.name));
@@ -40453,6 +40669,7 @@ function EventDetailsView({
40453
40669
  /* @__PURE__ */ jsx29("div", { className: "rb-label rb-mb-2", children: "Cost" }),
40454
40670
  /* @__PURE__ */ jsx29("p", { children: /* @__PURE__ */ jsx29("strong", { children: eventCostLabel }) }),
40455
40671
  autoApplyDiscount ? /* @__PURE__ */ jsx29("p", { className: "rb-caption rb-mt-1", children: formatAutoApplyDiscountLine(autoApplyDiscount, eventPricingCurrency) }) : null,
40672
+ /* @__PURE__ */ jsx29(TicketTypePriceList, { ticketTypes, currency: eventPricingCurrency }),
40456
40673
  hasAcceptedItems ? /* @__PURE__ */ jsxs16("p", { className: "rb-caption rb-mt-1", children: [
40457
40674
  "You can also attend with: ",
40458
40675
  acceptedItems.join(", ")
@@ -42583,6 +42800,7 @@ function EventRegistrationSSR({
42583
42800
  successMessage,
42584
42801
  waitlistMessage,
42585
42802
  buttonVariant,
42803
+ overlayEnabled,
42586
42804
  spamProtectionEnabled,
42587
42805
  stage,
42588
42806
  supportEmail,
@@ -42604,6 +42822,7 @@ function EventRegistrationSSR({
42604
42822
  successMessage,
42605
42823
  waitlistMessage,
42606
42824
  buttonVariant,
42825
+ overlayEnabled,
42607
42826
  spamProtectionEnabled,
42608
42827
  stage,
42609
42828
  supportEmail
@@ -42868,6 +43087,7 @@ function NewsletterFormSSR({
42868
43087
  siteId,
42869
43088
  apiBaseUrl,
42870
43089
  listId,
43090
+ destinationProvider,
42871
43091
  preset: preset2 = "emailOnly",
42872
43092
  includePhone,
42873
43093
  buttonLabel = "Subscribe",
@@ -42878,9 +43098,11 @@ function NewsletterFormSSR({
42878
43098
  className
42879
43099
  }) {
42880
43100
  const islandProps = buildNewsletterFormInteractiveIslandProps({
43101
+ blockId,
42881
43102
  siteId,
42882
43103
  apiBaseUrl,
42883
43104
  listId,
43105
+ destinationProvider,
42884
43106
  preset: preset2,
42885
43107
  includePhone,
42886
43108
  buttonLabel,
@@ -48688,6 +48910,7 @@ var MemoBlockSection = React6.memo(
48688
48910
  apiBaseUrl: dataContext?.apiBaseUrl ?? null,
48689
48911
  portalToken: dataContext?.portalToken ?? null,
48690
48912
  bookingOfferingPresets: dataContext?.bookingOfferingPresets ?? [],
48913
+ eventRegistrationOverlayEnabled: dataContext?.eventRegistrationOverlayEnabled ?? false,
48691
48914
  ...routes ? { routes } : {},
48692
48915
  // Identifier maps for CTA link resolution at render time
48693
48916
  ...dataContext?.pagesByIdentifier ? { pagesByIdentifier: dataContext.pagesByIdentifier } : {},
@@ -52068,6 +52291,7 @@ var containerResponsiveThemeCss = `/*
52068
52291
  */
52069
52292
 
52070
52293
  :where(.theme-scope) :where([data-block="event-registration"]) {
52294
+ --rb-modal-overlay-bg: rgb(var(--tb-text, 0 0 0) / 0.6);
52071
52295
  --rb-event-tile-bg: var(--er-event-card-bg);
52072
52296
  --rb-event-tile-border: var(--er-border);
52073
52297
  --rb-event-tile-border-width: var(--er-event-card-border-width);
@@ -53737,6 +53961,239 @@ var containerResponsiveThemeCss = `/*
53737
53961
  background: rgba(var(--tb-text), 0.05);
53738
53962
  }
53739
53963
 
53964
+ /* In-flow booking teaser (sits at the block's position in the page) */
53965
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-teaser {
53966
+ display: flex;
53967
+ flex-wrap: wrap;
53968
+ align-items: center;
53969
+ justify-content: space-between;
53970
+ gap: 1rem 1.5rem;
53971
+ padding: 1.25rem 1.5rem;
53972
+ border: 1px solid var(--er-border);
53973
+ border-radius: var(--rb-block-radius);
53974
+ background: var(--er-event-card-bg);
53975
+ color: var(--er-on-surface);
53976
+ }
53977
+
53978
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-teaser__info {
53979
+ display: flex;
53980
+ flex-direction: column;
53981
+ gap: 0.25rem;
53982
+ min-width: 0;
53983
+ }
53984
+
53985
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-teaser__title {
53986
+ font-size: 1.0625rem;
53987
+ font-weight: 700;
53988
+ line-height: 1.2;
53989
+ }
53990
+
53991
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-teaser__meta {
53992
+ font-size: 0.9375rem;
53993
+ line-height: 1.3;
53994
+ opacity: 0.75;
53995
+ }
53996
+
53997
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-teaser__tickets {
53998
+ display: flex;
53999
+ flex-direction: column;
54000
+ gap: 0.375rem;
54001
+ margin-top: 0.5rem;
54002
+ padding-top: 0.625rem;
54003
+ border-top: 1px solid var(--er-border);
54004
+ }
54005
+
54006
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-teaser__ticket {
54007
+ display: flex;
54008
+ align-items: baseline;
54009
+ justify-content: space-between;
54010
+ gap: 1rem;
54011
+ font-size: 0.9375rem;
54012
+ line-height: 1.35;
54013
+ }
54014
+
54015
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-teaser__ticket-name {
54016
+ min-width: 0;
54017
+ }
54018
+
54019
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-teaser__cta {
54020
+ flex: 0 0 auto;
54021
+ }
54022
+
54023
+ /* Fixed, full-width sticky booking bar (content-agnostic; sits above page flow) */
54024
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-bar {
54025
+ position: fixed;
54026
+ left: 0;
54027
+ right: 0;
54028
+ bottom: 0;
54029
+ z-index: 12000;
54030
+ padding: 0.75rem max(1rem, env(safe-area-inset-right)) max(0.75rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
54031
+ background: rgb(var(--tb-background));
54032
+ border-top: 1px solid var(--er-border);
54033
+ box-shadow: 0 -10px 30px rgba(var(--tb-shadow), 0.16);
54034
+ }
54035
+
54036
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-bar__inner {
54037
+ display: flex;
54038
+ align-items: center;
54039
+ justify-content: space-between;
54040
+ gap: 1rem;
54041
+ width: 100%;
54042
+ max-width: 72rem;
54043
+ margin-inline: auto;
54044
+ }
54045
+
54046
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-bar__info {
54047
+ display: flex;
54048
+ flex-direction: column;
54049
+ gap: 0.125rem;
54050
+ min-width: 0;
54051
+ }
54052
+
54053
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-bar__title {
54054
+ font-size: 0.95rem;
54055
+ font-weight: 700;
54056
+ line-height: 1.2;
54057
+ white-space: nowrap;
54058
+ overflow: hidden;
54059
+ text-overflow: ellipsis;
54060
+ }
54061
+
54062
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-bar__meta {
54063
+ font-size: 0.8125rem;
54064
+ line-height: 1.25;
54065
+ opacity: 0.75;
54066
+ white-space: nowrap;
54067
+ overflow: hidden;
54068
+ text-overflow: ellipsis;
54069
+ }
54070
+
54071
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-bar__cta {
54072
+ flex: 0 0 auto;
54073
+ }
54074
+
54075
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-overlay {
54076
+ position: fixed;
54077
+ inset: 0;
54078
+ height: 100dvh;
54079
+ z-index: 14000;
54080
+ display: flex;
54081
+ align-items: stretch;
54082
+ justify-content: stretch;
54083
+ background: var(--rb-modal-overlay-bg);
54084
+ }
54085
+
54086
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-overlay__panel {
54087
+ position: relative;
54088
+ z-index: 1;
54089
+ display: flex;
54090
+ flex-direction: column;
54091
+ width: 100%;
54092
+ height: 100dvh;
54093
+ min-height: 0;
54094
+ overflow: hidden;
54095
+ background: rgb(var(--tb-background));
54096
+ color: var(--er-on-surface);
54097
+ }
54098
+
54099
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-overlay__header {
54100
+ flex: 0 0 auto;
54101
+ z-index: 2;
54102
+ display: flex;
54103
+ align-items: center;
54104
+ justify-content: space-between;
54105
+ gap: 1rem;
54106
+ padding: 1rem;
54107
+ background: rgb(var(--tb-background));
54108
+ border-bottom: 1px solid var(--er-border);
54109
+ }
54110
+
54111
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-overlay__title {
54112
+ margin: 0;
54113
+ font-size: 1rem;
54114
+ line-height: 1.25;
54115
+ font-weight: 700;
54116
+ }
54117
+
54118
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-overlay__close {
54119
+ width: 2rem;
54120
+ height: 2rem;
54121
+ display: inline-flex;
54122
+ align-items: center;
54123
+ justify-content: center;
54124
+ border: 1px solid var(--er-border);
54125
+ border-radius: 999px;
54126
+ background: transparent;
54127
+ color: rgb(var(--tb-text));
54128
+ font-size: 1.25rem;
54129
+ line-height: 1;
54130
+ cursor: pointer;
54131
+ }
54132
+
54133
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-container--overlay {
54134
+ max-width: none;
54135
+ border: 0;
54136
+ border-radius: 0;
54137
+ padding: 0;
54138
+ background: transparent;
54139
+ display: flex;
54140
+ flex: 1 1 auto;
54141
+ min-height: 0;
54142
+ overflow: hidden;
54143
+ }
54144
+
54145
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-container--overlay .er-payment-layout {
54146
+ flex: 1 1 auto;
54147
+ min-height: 0;
54148
+ height: 100%;
54149
+ gap: 0;
54150
+ grid-template-rows: minmax(0, 1fr) auto;
54151
+ grid-template-areas:
54152
+ "main"
54153
+ "footer";
54154
+ }
54155
+
54156
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-container--overlay .er-payment-layout-main {
54157
+ min-height: 0;
54158
+ overflow: auto;
54159
+ padding: 1rem;
54160
+ }
54161
+
54162
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-container--overlay .er-payment-layout-footer {
54163
+ position: relative;
54164
+ z-index: 3;
54165
+ padding: 0.875rem 1rem max(0.875rem, env(safe-area-inset-bottom));
54166
+ background: rgb(var(--tb-background));
54167
+ border-top: 1px solid var(--er-border);
54168
+ box-shadow: 0 -12px 26px rgba(var(--tb-shadow), 0.12);
54169
+ }
54170
+
54171
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-container--overlay .er-actions {
54172
+ margin-top: 0;
54173
+ }
54174
+
54175
+ @container rb-site (min-width: 768px) {
54176
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
54177
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-overlay {
54178
+ justify-content: flex-end;
54179
+ }
54180
+
54181
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-booking-overlay__panel {
54182
+ width: min(32rem, 100vw);
54183
+ min-height: 100%;
54184
+ box-shadow: -16px 0 40px rgba(var(--tb-shadow), 0.22);
54185
+ }
54186
+
54187
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-container--overlay .er-payment-layout-main {
54188
+ padding: 1.25rem;
54189
+ }
54190
+
54191
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-container--overlay .er-payment-layout-footer {
54192
+ padding: 0.875rem 1.25rem max(0.875rem, env(safe-area-inset-bottom));
54193
+ }
54194
+ }
54195
+ }
54196
+
53740
54197
  /* Magic Link Form */
53741
54198
  :where(.theme-scope) :where([data-block="event-registration"]) .er-magic-link-form {
53742
54199
  display: flex;
@@ -59750,6 +60207,7 @@ function PageContent({
59750
60207
  themeTokens: providedTokens,
59751
60208
  siteId,
59752
60209
  resolvedData,
60210
+ bookingOfferingPresets,
59753
60211
  routeMap,
59754
60212
  pagesByIdentifier,
59755
60213
  entriesByIdentifier,
@@ -59782,6 +60240,7 @@ function PageContent({
59782
60240
  portalToken,
59783
60241
  previewToken,
59784
60242
  resolvedData,
60243
+ bookingOfferingPresets: bookingOfferingPresets ?? [],
59785
60244
  routes: routeMap,
59786
60245
  pagesByIdentifier,
59787
60246
  entriesByIdentifier,
@@ -61187,6 +61646,64 @@ var ENDPOINT_DEFINITIONS = {
61187
61646
  auth: "user",
61188
61647
  responseKind: "json"
61189
61648
  },
61649
+ listMailchimpAudiences: {
61650
+ path: "/sites/{siteId}/integrations/mailchimp/audiences",
61651
+ method: "GET",
61652
+ tags: [TAG_TEMPLATES.site],
61653
+ auth: "user",
61654
+ responseKind: "json",
61655
+ errors: ["auth:forbidden", "server:internal_error"]
61656
+ },
61657
+ getMailchimpSignupSyncHealth: {
61658
+ path: "/sites/{siteId}/integrations/mailchimp/signup-sync-health",
61659
+ method: "GET",
61660
+ tags: [TAG_TEMPLATES.site],
61661
+ auth: "user",
61662
+ responseKind: "json",
61663
+ errors: ["auth:forbidden", "server:internal_error"]
61664
+ },
61665
+ getMailchimpConnection: {
61666
+ path: "/sites/{siteId}/integrations/mailchimp/connection",
61667
+ method: "GET",
61668
+ tags: [TAG_TEMPLATES.site],
61669
+ auth: "user",
61670
+ responseKind: "json",
61671
+ errors: ["auth:forbidden", "server:internal_error"]
61672
+ },
61673
+ startMailchimpOAuth: {
61674
+ path: "/sites/{siteId}/integrations/mailchimp/oauth/start",
61675
+ method: "POST",
61676
+ tags: [TAG_TEMPLATES.site],
61677
+ auth: "user",
61678
+ responseKind: "json",
61679
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
61680
+ errors: ["auth:forbidden", "validation:invalid_input", "server:internal_error"]
61681
+ },
61682
+ refreshMailchimpAudiences: {
61683
+ path: "/sites/{siteId}/integrations/mailchimp/audiences/refresh",
61684
+ method: "POST",
61685
+ tags: [TAG_TEMPLATES.site],
61686
+ auth: "user",
61687
+ responseKind: "json",
61688
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
61689
+ errors: ["auth:forbidden", "server:internal_error"]
61690
+ },
61691
+ disconnectMailchimp: {
61692
+ path: "/sites/{siteId}/integrations/mailchimp/disconnect",
61693
+ method: "POST",
61694
+ tags: [TAG_TEMPLATES.site],
61695
+ auth: "user",
61696
+ responseKind: "json",
61697
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
61698
+ errors: ["auth:forbidden", "server:internal_error"]
61699
+ },
61700
+ mailchimpOAuthCallback: {
61701
+ path: "/auth/mailchimp/callback",
61702
+ method: "GET",
61703
+ auth: "public",
61704
+ responseKind: "void",
61705
+ errors: []
61706
+ },
61190
61707
  createNewsletterList: {
61191
61708
  path: "/sites/{siteId}/newsletter/lists",
61192
61709
  method: "POST",
@@ -63411,20 +63928,6 @@ var ENDPOINT_DEFINITIONS = {
63411
63928
  auth: "user",
63412
63929
  responseKind: "json"
63413
63930
  },
63414
- instagramUploadZip: {
63415
- path: "/instagram/upload-zip",
63416
- method: "POST",
63417
- tags: ["instagram-import"],
63418
- auth: "user",
63419
- responseKind: "json"
63420
- },
63421
- createInstagramZipUploadUrl: {
63422
- path: "/instagram/upload-zip-url",
63423
- method: "POST",
63424
- tags: ["instagram-import"],
63425
- auth: "user",
63426
- responseKind: "json"
63427
- },
63428
63931
  getAnalyticsReport: {
63429
63932
  path: "/sites/{siteId}/analytics/report",
63430
63933
  method: "GET",