@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
@@ -1612,6 +1612,14 @@ function requireCuratedPaletteValueKey(authoringKey) {
1612
1612
  return palette.valueKey;
1613
1613
  }
1614
1614
  //#endregion
1615
+ //#region ../theme-core/src/footer/mode.ts
1616
+ const footerModeSchema = z.enum([
1617
+ "default",
1618
+ "blocks",
1619
+ "default+blocks",
1620
+ "none"
1621
+ ]);
1622
+ //#endregion
1615
1623
  //#region ../theme-core/src/lib/media.ts
1616
1624
  const hotspotSchema = z.object({
1617
1625
  x: z.number().min(0).max(1),
@@ -5905,12 +5913,6 @@ const footerVariant = z.enum([
5905
5913
  "split"
5906
5914
  ]);
5907
5915
  const footerMaxWidth = z.enum(["container", "full"]);
5908
- const footerMode = z.enum([
5909
- "default",
5910
- "blocks",
5911
- "default+blocks",
5912
- "none"
5913
- ]);
5914
5916
  const footerNavLayoutMode = z.enum([
5915
5917
  "stack",
5916
5918
  "inline",
@@ -5999,9 +6001,9 @@ const footerSchema = z.object({
5999
6001
  /**
6000
6002
  * SDK-only footer rendering mode.
6001
6003
  *
6002
- * Backwards compatible: missing/undefined behaves as 'default'.
6004
+ * Historical persisted field; SDK rendering mode now lives in layout.footerMode.
6003
6005
  */
6004
- mode: footerMode.optional(),
6006
+ mode: footerModeSchema.optional(),
6005
6007
  variant: footerVariant,
6006
6008
  maxWidth: footerMaxWidth,
6007
6009
  showLogoText: z.boolean().optional(),
@@ -12151,6 +12153,7 @@ function isDisplayMediaKind(kind) {
12151
12153
  }
12152
12154
  const siteOptionSources = [
12153
12155
  "eventCategories",
12156
+ "eventSeries",
12154
12157
  "venues",
12155
12158
  "staffMembers"
12156
12159
  ];
@@ -21252,7 +21255,8 @@ const appointmentServicesBlockDefinition = {
21252
21255
  el("appointment-services", {
21253
21256
  sectionHeading: { $bind: { from: "content.heading" } },
21254
21257
  services: { $bind: { from: "data.services" } },
21255
- pathname: { $bind: { from: "$root.pathname" } }
21258
+ pathname: { $bind: { from: "$root.pathname" } },
21259
+ servicePathPrefix: { $bind: { from: "$root.appointmentServicePathPrefix" } }
21256
21260
  })
21257
21261
  ], { gap: "lg" })
21258
21262
  })]
@@ -21960,6 +21964,15 @@ const publicEventBaseSchema = z.object({
21960
21964
  timeZone: z.string(),
21961
21965
  pricing: publicEventPricingSchema,
21962
21966
  paymentTerms: blockBookingPaymentTermsSchema,
21967
+ cancellationPolicy: z.object({ refunds: z.object({
21968
+ mode: z.enum([
21969
+ "never",
21970
+ "always",
21971
+ "cutoff"
21972
+ ]),
21973
+ cutoffHours: z.number(),
21974
+ method: z.enum(["original_payment_method", "site_credit"])
21975
+ }) }),
21963
21976
  consent: blockBookingConsentSchema.nullable(),
21964
21977
  accessRestriction: accessRestrictionSchema,
21965
21978
  allowedCategoryIds: z.array(z.string()),
@@ -23411,6 +23424,13 @@ const eventSpotlightBlockDefinition = {
23411
23424
  } }
23412
23425
  };
23413
23426
  //#endregion
23427
+ //#region ../blocks/src/system/blocks/events/shared/eventSelection.ts
23428
+ /** Undefined means discovery; an empty string is an explicitly empty selection. */
23429
+ function eventSeriesScopeCsv(value) {
23430
+ if (value == null) return void 0;
23431
+ return typeof value === "string" ? value : value.join(",");
23432
+ }
23433
+ //#endregion
23414
23434
  //#region ../blocks/src/system/runtime/nodes/events/shared/listingLayout.ts
23415
23435
  /**
23416
23436
  * Layout classes for event listing containers and cards. Presentation
@@ -23535,6 +23555,7 @@ z.object({
23535
23555
  eventSurface: z.enum(eventSurfaceScopeValues).optional(),
23536
23556
  eventPresets: z.string().optional(),
23537
23557
  scheduleScope: z.enum(eventScheduleScopeValues).optional(),
23558
+ seriesIds: z.string().optional(),
23538
23559
  categoryIds: z.string().optional(),
23539
23560
  venueId: z.string().transform(normalizeCalendarFilterId).optional(),
23540
23561
  staffMemberId: z.string().transform(normalizeCalendarFilterId).optional()
@@ -23597,6 +23618,7 @@ const eventCollectionFilterSourceSchemaShape = {
23597
23618
  eventSurface: eventSurfaceScopeSchema$1.nullable().optional(),
23598
23619
  filterEventPresets: z.union([z.string(), z.array(z.string())]).nullable().optional(),
23599
23620
  scheduleScope: eventScheduleScopeSchema$1.nullable().optional(),
23621
+ seriesIds: z.union([z.string(), z.array(z.string())]).nullable().optional(),
23600
23622
  filterCategoryIds: z.union([z.string(), z.array(z.string())]).nullable().optional(),
23601
23623
  filterStaffMemberId: z.string().nullable().optional(),
23602
23624
  filterVenueId: z.string().nullable().optional()
@@ -23643,6 +23665,7 @@ const eventCollectionDisplaySchemaShape = {
23643
23665
  eventSurface: eventSurfaceScopeSchema$1,
23644
23666
  filterEventPresets: z.string().nullable(),
23645
23667
  scheduleScope: eventScheduleScopeSchema$1,
23668
+ seriesIds: z.string().nullable().optional(),
23646
23669
  filterCategoryIds: z.string().nullable(),
23647
23670
  filterStaffMemberId: z.string().nullable(),
23648
23671
  filterVenueId: z.string().nullable(),
@@ -23690,11 +23713,15 @@ function buildEventCollectionDisplay(source) {
23690
23713
  };
23691
23714
  }
23692
23715
  function buildEventCollectionFilterDisplay(source) {
23693
- return {
23694
- showFilters: source.showFilters ?? true,
23695
- showCategoryFilter: source.showCategoryFilter ?? "auto",
23696
- showVenueFilter: source.showVenueFilter ?? false,
23697
- showStaffFilter: source.showStaffFilter ?? true,
23716
+ const selected = source.seriesIds != null;
23717
+ const matchingFilters = selected ? {
23718
+ eventSurface: "all",
23719
+ filterEventPresets: null,
23720
+ scheduleScope: "any",
23721
+ filterCategoryIds: null,
23722
+ filterStaffMemberId: null,
23723
+ filterVenueId: null
23724
+ } : {
23698
23725
  eventSurface: normalizeEventSurfaceScope(source.eventSurface),
23699
23726
  filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
23700
23727
  scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
@@ -23702,6 +23729,14 @@ function buildEventCollectionFilterDisplay(source) {
23702
23729
  filterStaffMemberId: normalizeEventStaffMemberId(source.filterStaffMemberId),
23703
23730
  filterVenueId: normalizeEventVenueId(source.filterVenueId)
23704
23731
  };
23732
+ return {
23733
+ seriesIds: eventSeriesScopeCsv(source.seriesIds),
23734
+ showFilters: selected ? false : source.showFilters ?? true,
23735
+ showCategoryFilter: source.showCategoryFilter ?? "auto",
23736
+ showVenueFilter: source.showVenueFilter ?? false,
23737
+ showStaffFilter: source.showStaffFilter ?? true,
23738
+ ...matchingFilters
23739
+ };
23705
23740
  }
23706
23741
  function buildEventCollectionPresentationDisplay(source) {
23707
23742
  return {
@@ -23716,14 +23751,15 @@ function buildEventCollectionPresentationDisplay(source) {
23716
23751
  }
23717
23752
  function buildEventCollectionHydration(source, now = /* @__PURE__ */ new Date()) {
23718
23753
  const timeZone = source.calendarWindow?.scope.timeZone ?? toBookingTimeZone(source.bookingTimeZone);
23754
+ const selected = source.seriesIds != null;
23719
23755
  return {
23720
23756
  calendarWindow: source.calendarWindow ?? void 0,
23721
23757
  siteId: source.siteId,
23722
23758
  stage: source.stage,
23723
23759
  prefetchedEvents: source.events != null,
23724
- eventSurface: normalizeEventSurfaceScope(source.eventSurface),
23725
- filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
23726
- scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
23760
+ eventSurface: selected ? "all" : normalizeEventSurfaceScope(source.eventSurface),
23761
+ filterEventPresets: selected ? null : normalizeEventSurfacePresetsCsv(source.filterEventPresets),
23762
+ scheduleScope: selected ? "any" : normalizeEventScheduleScope(source.scheduleScope),
23727
23763
  calendarContext: {
23728
23764
  timeZone,
23729
23765
  initialToday: source.calendarWindow?.initialToday ?? getLocalScheduleDate(now, timeZone)
@@ -23789,6 +23825,7 @@ const eventListingHydrationSchema = z.object({
23789
23825
  eventSurface: eventSurfaceScopeSchema,
23790
23826
  filterEventPresets: z.string().nullable(),
23791
23827
  scheduleScope: eventScheduleScopeSchema,
23828
+ seriesIds: z.string().nullable().optional(),
23792
23829
  filterCategoryIds: z.string().nullable().optional(),
23793
23830
  filterStaffMemberId: z.string().nullable().optional(),
23794
23831
  filterVenueId: z.string().nullable().optional(),
@@ -23849,6 +23886,7 @@ const eventListingBlockRuntime = defineProgressiveBlockRuntime({
23849
23886
  eventSurface: normalizeEventSurfaceScope(source.eventSurface),
23850
23887
  filterEventPresets: normalizeEventSurfacePresetsCsv(source.filterEventPresets),
23851
23888
  scheduleScope: normalizeEventScheduleScope(source.scheduleScope),
23889
+ seriesIds: eventSeriesScopeCsv(source.seriesIds),
23852
23890
  filterCategoryIds: normalizeEventCategoryIdsCsv(source.filterCategoryIds),
23853
23891
  filterStaffMemberId: normalizeEventStaffMemberId(source.filterStaffMemberId),
23854
23892
  filterVenueId: normalizeEventVenueId(source.filterVenueId),
@@ -24222,6 +24260,65 @@ const eventListingBlockDefinition = {
24222
24260
  } }
24223
24261
  };
24224
24262
  //#endregion
24263
+ //#region ../blocks/src/system/blocks/events/eventSelectionFields.ts
24264
+ const eventSelectionFields = [{
24265
+ id: "eventSelection",
24266
+ type: "select",
24267
+ label: "Events to show",
24268
+ required: false,
24269
+ multiple: false,
24270
+ defaultValue: "matching",
24271
+ options: [{
24272
+ value: "matching",
24273
+ label: "All matching events"
24274
+ }, {
24275
+ value: "selected",
24276
+ label: "Selected events"
24277
+ }],
24278
+ ui: { intent: "behavior" }
24279
+ }, createSiteOptionSelectField({
24280
+ id: "selectedEventSeriesIds",
24281
+ label: "Selected events",
24282
+ description: "Show upcoming dates for these events. Other event filters do not apply.",
24283
+ required: false,
24284
+ multiple: true,
24285
+ defaultValue: [],
24286
+ optionSource: "eventSeries",
24287
+ ui: {
24288
+ intent: "behavior",
24289
+ searchThreshold: 1,
24290
+ visibleWhen: {
24291
+ field: "eventSelection",
24292
+ equals: "selected"
24293
+ }
24294
+ }
24295
+ })];
24296
+ function withEventSelectionVisibility(field) {
24297
+ if (![
24298
+ "eventSurface",
24299
+ "filterEventPresets",
24300
+ "scheduleScope",
24301
+ "filterCategoryIds",
24302
+ "filterStaffMemberId",
24303
+ "filterVenueId",
24304
+ "showFilters",
24305
+ "showCategoryFilter",
24306
+ "showVenueFilter",
24307
+ "showStaffFilter"
24308
+ ].includes(field.id)) return field;
24309
+ const visibleWhen = field.ui?.visibleWhen;
24310
+ return {
24311
+ ...field,
24312
+ ui: {
24313
+ ...field.ui,
24314
+ visibleWhen: { allOf: [{
24315
+ field: "eventSelection",
24316
+ notEquals: "selected"
24317
+ }, ...visibleWhen ? [visibleWhen] : []] }
24318
+ }
24319
+ };
24320
+ }
24321
+ //#endregion
24225
24322
  //#region ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
24226
24323
  const eventCalendarSourceSchema = z.object({
24227
24324
  ...eventCollectionSourceSchemaShape,
@@ -24304,19 +24401,59 @@ const eventCalendarBlockRuntime = defineProgressiveBlockRuntime({
24304
24401
  //#region ../blocks/src/system/blocks/events/eventCalendarDataLoaders.ts
24305
24402
  const scopeParams = {
24306
24403
  siteId: { $bind: { from: "$root.siteId" } },
24404
+ seriesIds: { $bind: {
24405
+ from: "content",
24406
+ transforms: [{
24407
+ id: "events.calendarSelectionParam",
24408
+ options: { key: "seriesIds" }
24409
+ }]
24410
+ } },
24307
24411
  stage: { $bind: {
24308
24412
  from: "$root.previewStage",
24309
24413
  fallback: "published"
24310
24414
  } },
24311
- eventSurface: { $bind: { from: "content.eventSurface" } },
24415
+ eventSurface: { $bind: {
24416
+ from: "content",
24417
+ transforms: [{
24418
+ id: "events.calendarSelectionParam",
24419
+ options: { key: "eventSurface" }
24420
+ }, { id: "value.csv" }]
24421
+ } },
24312
24422
  eventPresets: { $bind: {
24313
- from: "content.filterEventPresets",
24314
- transforms: [{ id: "value.csv" }]
24423
+ from: "content",
24424
+ transforms: [{
24425
+ id: "events.calendarSelectionParam",
24426
+ options: { key: "filterEventPresets" }
24427
+ }, { id: "value.csv" }]
24428
+ } },
24429
+ scheduleScope: { $bind: {
24430
+ from: "content",
24431
+ transforms: [{
24432
+ id: "events.calendarSelectionParam",
24433
+ options: { key: "scheduleScope" }
24434
+ }, { id: "value.csv" }]
24315
24435
  } },
24316
- scheduleScope: { $bind: { from: "content.scheduleScope" } },
24317
- categoryIds: { $bind: { from: "content.filterCategoryIds" } },
24318
- staffMemberId: { $bind: { from: "content.filterStaffMemberId" } },
24319
- venueId: { $bind: { from: "content.filterVenueId" } }
24436
+ categoryIds: { $bind: {
24437
+ from: "content",
24438
+ transforms: [{
24439
+ id: "events.calendarSelectionParam",
24440
+ options: { key: "filterCategoryIds" }
24441
+ }, { id: "value.csv" }]
24442
+ } },
24443
+ staffMemberId: { $bind: {
24444
+ from: "content",
24445
+ transforms: [{
24446
+ id: "events.calendarSelectionParam",
24447
+ options: { key: "filterStaffMemberId" }
24448
+ }, { id: "value.csv" }]
24449
+ } },
24450
+ venueId: { $bind: {
24451
+ from: "content",
24452
+ transforms: [{
24453
+ id: "events.calendarSelectionParam",
24454
+ options: { key: "filterVenueId" }
24455
+ }, { id: "value.csv" }]
24456
+ } }
24320
24457
  };
24321
24458
  /** Combined renders two jobs; calendar-only variants never pay for the list seed. */
24322
24459
  const eventCalendarDataLoaders = {
@@ -24446,6 +24583,13 @@ const eventCalendarLayout = [styledSection({
24446
24583
  from: "content.defaultCalendarView",
24447
24584
  fallback: "month"
24448
24585
  } },
24586
+ seriesIds: { $bind: {
24587
+ from: "content",
24588
+ transforms: [{
24589
+ id: "events.calendarSelectionParam",
24590
+ options: { key: "seriesIds" }
24591
+ }]
24592
+ } },
24449
24593
  showFilters: { $bind: {
24450
24594
  from: "content.showFilters",
24451
24595
  fallback: true
@@ -24467,17 +24611,47 @@ const eventCalendarLayout = [styledSection({
24467
24611
  fallback: true
24468
24612
  } },
24469
24613
  eventSurface: { $bind: {
24470
- from: "content.eventSurface",
24471
- fallback: "all"
24614
+ from: "content",
24615
+ transforms: [{
24616
+ id: "events.calendarSelectionParam",
24617
+ options: { key: "eventSurface" }
24618
+ }]
24619
+ } },
24620
+ filterEventPresets: { $bind: {
24621
+ from: "content",
24622
+ transforms: [{
24623
+ id: "events.calendarSelectionParam",
24624
+ options: { key: "filterEventPresets" }
24625
+ }]
24472
24626
  } },
24473
- filterEventPresets: { $bind: { from: "content.filterEventPresets" } },
24474
24627
  scheduleScope: { $bind: {
24475
- from: "content.scheduleScope",
24476
- fallback: "any"
24628
+ from: "content",
24629
+ transforms: [{
24630
+ id: "events.calendarSelectionParam",
24631
+ options: { key: "scheduleScope" }
24632
+ }]
24633
+ } },
24634
+ filterCategoryIds: { $bind: {
24635
+ from: "content",
24636
+ transforms: [{
24637
+ id: "events.calendarSelectionParam",
24638
+ options: { key: "filterCategoryIds" }
24639
+ }]
24640
+ } },
24641
+ filterStaffMemberId: { $bind: {
24642
+ from: "content",
24643
+ transforms: [{
24644
+ id: "events.calendarSelectionParam",
24645
+ options: { key: "filterStaffMemberId" }
24646
+ }]
24647
+ } },
24648
+ filterVenueId: { $bind: {
24649
+ from: "content",
24650
+ transforms: [{
24651
+ id: "events.calendarSelectionParam",
24652
+ options: { key: "filterVenueId" }
24653
+ }]
24477
24654
  } },
24478
- filterCategoryIds: { $bind: { from: "content.filterCategoryIds" } },
24479
- filterStaffMemberId: { $bind: { from: "content.filterStaffMemberId" } },
24480
- filterVenueId: { $bind: { from: "content.filterVenueId" } },
24481
24655
  cardRole: { $bind: {
24482
24656
  from: "content._cardStyles.role",
24483
24657
  fallback: "default"
@@ -24981,6 +25155,7 @@ const eventCalendarAdditionalFields = [
24981
25155
  }
24982
25156
  }
24983
25157
  },
25158
+ ...eventSelectionFields,
24984
25159
  {
24985
25160
  id: "eventSurface",
24986
25161
  type: "select",
@@ -25190,7 +25365,7 @@ const eventCalendarBlockDefinition = {
25190
25365
  titleSource: "heading",
25191
25366
  description: "Display events with calendar, list, or combined views with filtering",
25192
25367
  skipSectionStyles: true,
25193
- additionalFields: eventCalendarAdditionalFields,
25368
+ additionalFields: eventCalendarAdditionalFields.map(withEventSelectionVisibility),
25194
25369
  styleTokens: {
25195
25370
  background: "surface",
25196
25371
  typography: "body",
@@ -12,7 +12,7 @@ import * as crypto from "crypto";
12
12
  * 1. This constant
13
13
  * 2. The "version" field in package.json
14
14
  */
15
- const SDK_VERSION = "0.140.0";
15
+ const SDK_VERSION = "0.142.0";
16
16
  //#endregion
17
17
  //#region src/constants.ts
18
18
  /**