@riverbankcms/sdk 0.140.0 → 0.142.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 (145) hide show
  1. package/dist/{PreviewEditorSidebar-CUyTzd5z.mjs → PreviewEditorSidebar-Dk6Dt11f.mjs} +24 -15
  2. package/dist/{PreviewEditorUI-Agkw4v5i.mjs → PreviewEditorUI-D6EQTsCA.mjs} +3 -3
  3. package/dist/{PreviewQueryProvider-CN0ewic5.mjs → PreviewQueryProvider-CC-EPkyQ.mjs} +1 -1
  4. package/dist/{SdkPreviewModeRuntime-DdbeAdS8.mjs → SdkPreviewModeRuntime-DH1n4ytY.mjs} +85 -54
  5. package/dist/{SiteChromeCustomizeContext-CqGOz-Kv.mjs → SiteChromeCustomizeContext-DunIzY0K.mjs} +797 -216
  6. package/dist/_dts/api/src/billing.d.ts +6 -1
  7. package/dist/_dts/api/src/bookingConfig.d.ts +1 -1
  8. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +2 -2
  9. package/dist/_dts/api/src/contentRuntime.d.ts +12 -31
  10. package/dist/_dts/api/src/domainConnection.d.ts +4 -0
  11. package/dist/_dts/api/src/endpoints.d.ts +0 -27
  12. package/dist/_dts/api/src/footerCompositionContracts.d.ts +25 -0
  13. package/dist/_dts/api/src/index.d.ts +2 -2
  14. package/dist/_dts/api/src/launchReadiness.d.ts +1 -0
  15. package/dist/_dts/api/src/navigation/dashboardSiteNav.d.ts +2 -1
  16. package/dist/_dts/api/src/publicBookingService.d.ts +1 -0
  17. package/dist/_dts/api/src/sdkConfig/layout.d.ts +13 -0
  18. package/dist/_dts/api/src/sdkContracts.d.ts +3 -8
  19. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +3 -26
  20. package/dist/_dts/api/src/siteOnboarding.d.ts +7 -0
  21. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -31
  22. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +6 -1
  23. package/dist/_dts/billing/src/site-arrangements.d.ts +18 -5
  24. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -0
  25. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +2 -0
  26. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +2 -0
  27. package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +122 -0
  28. package/dist/_dts/blocks/src/system/blocks/events/shared/calendarWindow.d.ts +2 -1
  29. package/dist/_dts/blocks/src/system/blocks/events/shared/eventSelection.d.ts +11 -0
  30. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +56 -0
  31. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +8 -0
  32. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +2 -2
  33. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +47 -47
  34. package/dist/_dts/blocks/src/system/data/prefetchBlockData.d.ts +5 -0
  35. package/dist/_dts/blocks/src/system/data/utils.d.ts +1 -1
  36. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +27 -1
  37. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +12 -180
  38. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +6 -90
  39. package/dist/_dts/blocks/src/system/runtime/hooks/useEventFilters.d.ts +2 -1
  40. package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +5 -1
  41. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +4 -0
  42. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.state.d.ts +5 -0
  43. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.d.ts +3 -0
  44. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.state.d.ts +10 -3
  45. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventCheckoutHandoffRestore.d.ts +9 -0
  46. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +4 -5
  47. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useSettledCommerceView.d.ts +37 -0
  48. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +4 -3
  49. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +3 -0
  50. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +11 -101
  51. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +63 -2
  52. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listOptions.d.ts +2 -0
  53. package/dist/_dts/blocks/src/system/transforms/registry/eventCalendar.d.ts +12 -0
  54. package/dist/_dts/commerce/src/purchase/bookingInstalmentSchedule.d.ts +4 -0
  55. package/dist/_dts/commerce/src/purchase/stripeCommissionMetadata.d.ts +1 -2
  56. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +3102 -3122
  57. package/dist/_dts/editor-blocks/src/block-editor/ColourFieldOptionsProvider.d.ts +7 -0
  58. package/dist/_dts/editor-blocks/src/block-editor/colourFieldVisibility.d.ts +7 -0
  59. package/dist/_dts/editor-blocks/src/block-editor/preparedManifest.d.ts +2 -0
  60. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  61. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +27 -1
  62. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -2
  63. package/dist/_dts/preview-next/src/client/preview/PreviewFooterEditorPanel.d.ts +3 -6
  64. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -2
  65. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -2
  66. package/dist/_dts/preview-next/src/client/preview/footerInspection.d.ts +16 -0
  67. package/dist/_dts/preview-next/src/client/preview/sdkConfig.d.ts +6 -0
  68. package/dist/_dts/sdk/src/config/types.d.ts +2 -18
  69. package/dist/_dts/sdk/src/config/validation.d.ts +6 -0
  70. package/dist/_dts/sdk/src/public-api/contracts.d.ts +4 -1
  71. package/dist/_dts/sdk/src/version.d.ts +1 -1
  72. package/dist/_dts/theme-core/src/ThemeFontLoader.d.ts +17 -1
  73. package/dist/_dts/theme-core/src/buttons/affordanceSuppression.d.ts +17 -0
  74. package/dist/_dts/theme-core/src/buttons/buttonColourContract.d.ts +1 -1
  75. package/dist/_dts/theme-core/src/buttons/classNames.d.ts +16 -0
  76. package/dist/_dts/theme-core/src/buttons/generateButtonCss.d.ts +0 -6
  77. package/dist/_dts/theme-core/src/buttons/resolvedButtonCss.d.ts +4 -4
  78. package/dist/_dts/theme-core/src/footer/mode.d.ts +10 -1
  79. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  80. package/dist/_dts/theme-core/src/hosted-booking-appearance.d.ts +54 -12
  81. package/dist/_dts/theme-core/src/index.d.ts +1 -1
  82. package/dist/_dts/theme-core/src/schema.d.ts +1 -7
  83. package/dist/_dts/theme-core/src/site-styles/effectivePageDesign.d.ts +32 -0
  84. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
  85. package/dist/client/{BookingConsentAgreement-CuKa82V4.mjs → BookingConsentAgreement-CnJeq3_r.mjs} +2 -2
  86. package/dist/client/{DiscountCodeDisclosure-BbYieKWB.mjs → DiscountCodeDisclosure-BINEO6J9.mjs} +1 -1
  87. package/dist/client/{EventCombined.client-LTfR1Aby.mjs → EventCombined.client-srxNQ6sZ.mjs} +11 -15
  88. package/dist/client/{EventListing.client-DUHpYSuo.mjs → EventListing.client-DbyVyGkX.mjs} +4 -17
  89. package/dist/client/{LeafletStaticMap-CHRupL6m.mjs → LeafletStaticMap-B-wpijzL.mjs} +1 -1
  90. package/dist/client/{accordion-6HiIFxNL.mjs → accordion-B-iUXU7n.mjs} +1 -1
  91. package/dist/client/{bookingForm-Dlmid43H.mjs → bookingForm-BXYPke5q.mjs} +5 -5
  92. package/dist/client/bookings.mjs +194 -102
  93. package/dist/client/{carousel-DmkZRRq_.mjs → carousel-Cr4aj63H.mjs} +1 -1
  94. package/dist/client/{cart-CIC24330.mjs → cart-DibP9WWa.mjs} +3 -3
  95. package/dist/client/{checkout-D1Zw9imo.mjs → checkout-CrSBVnL8.mjs} +3 -3
  96. package/dist/client/client.mjs +643 -192
  97. package/dist/client/{context-Cy1OayHx.mjs → context-Ces-AgdR.mjs} +1 -1
  98. package/dist/client/{dates-aDcfoLHr.mjs → dates-BXyNeNhB.mjs} +2 -2
  99. package/dist/client/{eventCalendar-FQxMPAjf.mjs → eventCalendar-HwpPeqrH.mjs} +11 -7
  100. package/dist/client/{eventCombined-Dr3ac6Hb.mjs → eventCombined-BpFUkuEI.mjs} +3 -3
  101. package/dist/client/{eventDetails-D-AzUHFQ.mjs → eventDetails-DK_agiWy.mjs} +4 -4
  102. package/dist/client/{eventListing-B3XxBf3i.mjs → eventListing-DhzHqP1c.mjs} +3 -3
  103. package/dist/client/{eventRegistration-I6EaokFD.mjs → eventRegistration-BdQ_Dn2d.mjs} +124 -32
  104. package/dist/client/{form-BbWckVWY.mjs → form-B1frcuzy.mjs} +2 -2
  105. package/dist/client/{headerSection-C9qU4Y7x.mjs → headerSection-CT5z460s.mjs} +2 -2
  106. package/dist/client/hooks.mjs +274 -45
  107. package/dist/client/{locationMap-CLCShvlG.mjs → locationMap-CIQXB9i2.mjs} +2 -2
  108. package/dist/client/{newsletterForm-Briukxzi.mjs → newsletterForm-BYNYZSes.mjs} +23 -10
  109. package/dist/client/{pricing-Copadu-2.mjs → pricing-CbTlAsmt.mjs} +1 -1
  110. package/dist/client/{productDetail-oujlRd-r.mjs → productDetail-CR7Z3yjS.mjs} +3 -3
  111. package/dist/client/{productList-BRiIRUcd.mjs → productList-DXj00vzR.mjs} +3 -3
  112. package/dist/client/{propsDecoder-CB2KS_ko.mjs → propsDecoder-DiLiBdek.mjs} +57 -16
  113. package/dist/client/rendering/client.mjs +476 -132
  114. package/dist/client/rendering/islands.mjs +17 -17
  115. package/dist/client/rendering.mjs +686 -195
  116. package/dist/client/{scrollToBlock-B1IS1_ua.mjs → scrollToBlock-CrcbBf0h.mjs} +28 -11
  117. package/dist/client/{shop-Vn6yNFED.mjs → shop-DgqiB_1b.mjs} +6 -6
  118. package/dist/client/{shop-commerce-BVTqipYp.mjs → shop-commerce-D_J781in.mjs} +5 -5
  119. package/dist/client/{shop-commerce-store-BVnJVy7v.mjs → shop-commerce-store-PGUbDwqe.mjs} +1 -1
  120. package/dist/client/{shopShared-COIeK77T.mjs → shopShared-C_Bb2zwG.mjs} +3 -3
  121. package/dist/client/{useEventFilters-DzIUcS9n.mjs → useEventFilters-CM17Xpr1.mjs} +17 -11
  122. package/dist/preview-next/before-render.mjs +0 -37
  123. package/dist/preview-next/client/runtime.mjs +4 -4
  124. package/dist/preview-next/editor-chrome.css +4 -8
  125. package/dist/preview-next/keepAlive.mjs +0 -37
  126. package/dist/preview-next/middleware.mjs +0 -37
  127. package/dist/{previewAuthStore-Gjb6r6vz.mjs → previewAuthStore-oVttoRDO.mjs} +0 -37
  128. package/dist/{sdk-runtime-CnCLvZRv.mjs → sdk-runtime-DhmuRhIX.mjs} +2 -2
  129. package/dist/{separator-DKDRJ1oH.mjs → separator-C3hlg9LH.mjs} +1 -1
  130. package/dist/server/components.mjs +452 -111
  131. package/dist/server/config-validation.mjs +263 -40
  132. package/dist/server/config.mjs +263 -40
  133. package/dist/server/data.mjs +274 -45
  134. package/dist/server/index.mjs +1 -38
  135. package/dist/server/next.mjs +427 -119
  136. package/dist/server/page-converter.mjs +208 -33
  137. package/dist/server/prebuild.mjs +1 -1
  138. package/dist/server/rendering/server.mjs +467 -119
  139. package/dist/server/rendering.mjs +467 -117
  140. package/dist/server/routing.mjs +301 -50
  141. package/dist/server/server.mjs +275 -83
  142. package/dist/server/theme-bridge.mjs +57 -23
  143. package/dist/server/theme.mjs +11 -9
  144. package/dist/styles/index.css +28 -2
  145. package/package.json +1 -1
@@ -2242,6 +2242,13 @@ const bookingFormInteractiveIslandPropsCodec = createInteractiveIslandCodec({
2242
2242
  })
2243
2243
  });
2244
2244
  //#endregion
2245
+ //#region ../blocks/src/system/blocks/events/shared/eventSelection.ts
2246
+ /** Undefined means discovery; an empty string is an explicitly empty selection. */
2247
+ function eventSeriesScopeCsv(value) {
2248
+ if (value == null) return void 0;
2249
+ return typeof value === "string" ? value : value.join(",");
2250
+ }
2251
+ //#endregion
2245
2252
  //#region ../theme-core/src/cards/types.ts
2246
2253
  const cardVariantRoleValues = ["default", "alternative"];
2247
2254
  const boxlessCardVariantValue = "none";
@@ -2526,6 +2533,14 @@ function validateUniqueDeclaredCardVariantRoles(system, ctx) {
2526
2533
  }
2527
2534
  const cardSystemSchema = z.object({ variants: z.array(cardVariantSchema).min(1).max(3) }).superRefine(validateUniqueDeclaredCardVariantRoles).transform((system) => ({ variants: withInferredRoles(system.variants) }));
2528
2535
  //#endregion
2536
+ //#region ../theme-core/src/footer/mode.ts
2537
+ const footerModeSchema = z.enum([
2538
+ "default",
2539
+ "blocks",
2540
+ "default+blocks",
2541
+ "none"
2542
+ ]);
2543
+ //#endregion
2529
2544
  //#region ../theme-core/src/lib/media.ts
2530
2545
  const hotspotSchema = z.object({
2531
2546
  x: z.number().min(0).max(1),
@@ -6409,12 +6424,6 @@ const footerVariant = z.enum([
6409
6424
  "split"
6410
6425
  ]);
6411
6426
  const footerMaxWidth = z.enum(["container", "full"]);
6412
- const footerMode = z.enum([
6413
- "default",
6414
- "blocks",
6415
- "default+blocks",
6416
- "none"
6417
- ]);
6418
6427
  const footerNavLayoutMode = z.enum([
6419
6428
  "stack",
6420
6429
  "inline",
@@ -6503,9 +6512,9 @@ const footerSchema = z.object({
6503
6512
  /**
6504
6513
  * SDK-only footer rendering mode.
6505
6514
  *
6506
- * Backwards compatible: missing/undefined behaves as 'default'.
6515
+ * Historical persisted field; SDK rendering mode now lives in layout.footerMode.
6507
6516
  */
6508
- mode: footerMode.optional(),
6517
+ mode: footerModeSchema.optional(),
6509
6518
  variant: footerVariant,
6510
6519
  maxWidth: footerMaxWidth,
6511
6520
  showLogoText: z.boolean().optional(),
@@ -6921,6 +6930,15 @@ const publicEventBaseSchema = z.object({
6921
6930
  timeZone: z.string(),
6922
6931
  pricing: publicEventPricingSchema,
6923
6932
  paymentTerms: blockBookingPaymentTermsSchema,
6933
+ cancellationPolicy: z.object({ refunds: z.object({
6934
+ mode: z.enum([
6935
+ "never",
6936
+ "always",
6937
+ "cutoff"
6938
+ ]),
6939
+ cutoffHours: z.number(),
6940
+ method: z.enum(["original_payment_method", "site_credit"])
6941
+ }) }),
6924
6942
  consent: blockBookingConsentSchema.nullable(),
6925
6943
  accessRestriction: accessRestrictionSchema,
6926
6944
  allowedCategoryIds: z.array(z.string()),
@@ -7400,6 +7418,7 @@ function normalizeFilterId(value) {
7400
7418
  return id === "all" ? void 0 : id;
7401
7419
  }
7402
7420
  function buildEventRuntimeFilters(input) {
7421
+ if (input.seriesIds != null) return { seriesIds: input.seriesIds };
7403
7422
  const params = {};
7404
7423
  if (input.eventSurface && input.eventSurface !== "all") params.eventSurface = input.eventSurface;
7405
7424
  const eventPresets = normalizeCsvString(input.filterEventPresets);
@@ -7415,6 +7434,7 @@ function buildEventRuntimeFilters(input) {
7415
7434
  }
7416
7435
  function getEventRuntimeFiltersKey(filters) {
7417
7436
  return JSON.stringify({
7437
+ seriesIds: filters?.seriesIds == null ? null : [...new Set(filters.seriesIds.split(",").filter(Boolean))].sort().join(","),
7418
7438
  categoryIds: normalizeCsvString(filters?.categoryIds),
7419
7439
  staffMemberId: normalizeOptionalId(filters?.staffMemberId),
7420
7440
  venueId: normalizeOptionalId(filters?.venueId),
@@ -7467,6 +7487,7 @@ z.object({
7467
7487
  eventSurface: z.enum(eventSurfaceScopeValues).optional(),
7468
7488
  eventPresets: z.string().optional(),
7469
7489
  scheduleScope: z.enum(eventScheduleScopeValues).optional(),
7490
+ seriesIds: z.string().optional(),
7470
7491
  categoryIds: z.string().optional(),
7471
7492
  venueId: z.string().transform(normalizeCalendarFilterId).optional(),
7472
7493
  staffMemberId: z.string().transform(normalizeCalendarFilterId).optional()
@@ -7499,6 +7520,7 @@ function calendarQueryKey(siteId, stage, filters) {
7499
7520
  filters.eventSurface ?? "all",
7500
7521
  normalizedCsv(filters.eventPresets),
7501
7522
  filters.scheduleScope ?? "any",
7523
+ ...filters.seriesIds === void 0 ? [] : [normalizedCsv(filters.seriesIds)],
7502
7524
  normalizedCsv(filters.categoryIds),
7503
7525
  normalizeCalendarFilterId(filters.venueId) ?? "",
7504
7526
  normalizeCalendarFilterId(filters.staffMemberId) ?? "",
@@ -7587,6 +7609,7 @@ const eventCollectionFilterSourceSchemaShape = {
7587
7609
  eventSurface: eventSurfaceScopeSchema$1.nullable().optional(),
7588
7610
  filterEventPresets: z.union([z.string(), z.array(z.string())]).nullable().optional(),
7589
7611
  scheduleScope: eventScheduleScopeSchema$1.nullable().optional(),
7612
+ seriesIds: z.union([z.string(), z.array(z.string())]).nullable().optional(),
7590
7613
  filterCategoryIds: z.union([z.string(), z.array(z.string())]).nullable().optional(),
7591
7614
  filterStaffMemberId: z.string().nullable().optional(),
7592
7615
  filterVenueId: z.string().nullable().optional()
@@ -7633,6 +7656,7 @@ const eventCollectionDisplaySchemaShape = {
7633
7656
  eventSurface: eventSurfaceScopeSchema$1,
7634
7657
  filterEventPresets: z.string().nullable(),
7635
7658
  scheduleScope: eventScheduleScopeSchema$1,
7659
+ seriesIds: z.string().nullable().optional(),
7636
7660
  filterCategoryIds: z.string().nullable(),
7637
7661
  filterStaffMemberId: z.string().nullable(),
7638
7662
  filterVenueId: z.string().nullable(),
@@ -7680,11 +7704,15 @@ function buildEventCollectionDisplay(source) {
7680
7704
  };
7681
7705
  }
7682
7706
  function buildEventCollectionFilterDisplay(source) {
7683
- return {
7684
- showFilters: source.showFilters ?? true,
7685
- showCategoryFilter: source.showCategoryFilter ?? "auto",
7686
- showVenueFilter: source.showVenueFilter ?? false,
7687
- showStaffFilter: source.showStaffFilter ?? true,
7707
+ const selected = source.seriesIds != null;
7708
+ const matchingFilters = selected ? {
7709
+ eventSurface: "all",
7710
+ filterEventPresets: null,
7711
+ scheduleScope: "any",
7712
+ filterCategoryIds: null,
7713
+ filterStaffMemberId: null,
7714
+ filterVenueId: null
7715
+ } : {
7688
7716
  eventSurface: normalizeEventSurfaceScope(source.eventSurface),
7689
7717
  filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
7690
7718
  scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
@@ -7692,6 +7720,14 @@ function buildEventCollectionFilterDisplay(source) {
7692
7720
  filterStaffMemberId: normalizeEventStaffMemberId(source.filterStaffMemberId),
7693
7721
  filterVenueId: normalizeEventVenueId(source.filterVenueId)
7694
7722
  };
7723
+ return {
7724
+ seriesIds: eventSeriesScopeCsv(source.seriesIds),
7725
+ showFilters: selected ? false : source.showFilters ?? true,
7726
+ showCategoryFilter: source.showCategoryFilter ?? "auto",
7727
+ showVenueFilter: source.showVenueFilter ?? false,
7728
+ showStaffFilter: source.showStaffFilter ?? true,
7729
+ ...matchingFilters
7730
+ };
7695
7731
  }
7696
7732
  function buildEventCollectionPresentationDisplay(source) {
7697
7733
  return {
@@ -7706,14 +7742,15 @@ function buildEventCollectionPresentationDisplay(source) {
7706
7742
  }
7707
7743
  function buildEventCollectionHydration(source, now = /* @__PURE__ */ new Date()) {
7708
7744
  const timeZone = source.calendarWindow?.scope.timeZone ?? toBookingTimeZone(source.bookingTimeZone);
7745
+ const selected = source.seriesIds != null;
7709
7746
  return {
7710
7747
  calendarWindow: source.calendarWindow ?? void 0,
7711
7748
  siteId: source.siteId,
7712
7749
  stage: source.stage,
7713
7750
  prefetchedEvents: source.events != null,
7714
- eventSurface: normalizeEventSurfaceScope(source.eventSurface),
7715
- filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
7716
- scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
7751
+ eventSurface: selected ? "all" : normalizeEventSurfaceScope(source.eventSurface),
7752
+ filterEventPresets: selected ? null : normalizeEventSurfacePresetsCsv(source.filterEventPresets),
7753
+ scheduleScope: selected ? "any" : normalizeEventScheduleScope(source.scheduleScope),
7717
7754
  calendarContext: {
7718
7755
  timeZone,
7719
7756
  initialToday: source.calendarWindow?.initialToday ?? getLocalScheduleDate(now, timeZone)
@@ -7799,6 +7836,7 @@ const eventListingHydrationSchema = z.object({
7799
7836
  eventSurface: eventSurfaceScopeSchema,
7800
7837
  filterEventPresets: z.string().nullable(),
7801
7838
  scheduleScope: eventScheduleScopeSchema,
7839
+ seriesIds: z.string().nullable().optional(),
7802
7840
  filterCategoryIds: z.string().nullable().optional(),
7803
7841
  filterStaffMemberId: z.string().nullable().optional(),
7804
7842
  filterVenueId: z.string().nullable().optional(),
@@ -7860,6 +7898,7 @@ const eventListingInteractiveIslandPropsCodec = createInteractiveIslandCodec({
7860
7898
  eventSurface: normalizeEventSurfaceScope(source.eventSurface),
7861
7899
  filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
7862
7900
  scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
7901
+ seriesIds: eventSeriesScopeCsv(source.seriesIds),
7863
7902
  filterCategoryIds: normalizeEventCategoryIdsCsv(source.filterCategoryIds),
7864
7903
  filterStaffMemberId: normalizeEventStaffMemberId(source.filterStaffMemberId),
7865
7904
  filterVenueId: normalizeEventVenueId(source.filterVenueId),
@@ -8541,6 +8580,7 @@ function isDisplayMediaKind(kind) {
8541
8580
  }
8542
8581
  const siteOptionSources = [
8543
8582
  "eventCategories",
8583
+ "eventSeries",
8544
8584
  "venues",
8545
8585
  "staffMembers"
8546
8586
  ];
@@ -10653,6 +10693,7 @@ function buildEventCalendarListingRender(render, className = render.display.clas
10653
10693
  eventSurface: display.eventSurface,
10654
10694
  filterEventPresets: display.filterEventPresets,
10655
10695
  scheduleScope: display.scheduleScope,
10696
+ seriesIds: display.seriesIds,
10656
10697
  filterCategoryIds: display.filterCategoryIds,
10657
10698
  filterStaffMemberId: display.filterStaffMemberId,
10658
10699
  filterVenueId: display.filterVenueId,