@riverbankcms/sdk 0.140.0 → 0.141.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 (112) hide show
  1. package/dist/{PreviewEditorSidebar-CUyTzd5z.mjs → PreviewEditorSidebar-Q-fy9GYw.mjs} +3 -3
  2. package/dist/{PreviewEditorUI-Agkw4v5i.mjs → PreviewEditorUI-LYGzgk85.mjs} +2 -2
  3. package/dist/{SdkPreviewModeRuntime-DdbeAdS8.mjs → SdkPreviewModeRuntime-CoPYI5Jq.mjs} +72 -46
  4. package/dist/{SiteChromeCustomizeContext-CqGOz-Kv.mjs → SiteChromeCustomizeContext-D8LePX8x.mjs} +681 -196
  5. package/dist/_dts/api/src/contentRuntime.d.ts +12 -31
  6. package/dist/_dts/api/src/domainConnection.d.ts +4 -0
  7. package/dist/_dts/api/src/footerCompositionContracts.d.ts +25 -0
  8. package/dist/_dts/api/src/index.d.ts +1 -1
  9. package/dist/_dts/api/src/launchReadiness.d.ts +1 -0
  10. package/dist/_dts/api/src/navigation/dashboardSiteNav.d.ts +2 -1
  11. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +3 -26
  12. package/dist/_dts/api/src/siteOnboarding.d.ts +7 -0
  13. package/dist/_dts/billing/src/site-arrangements.d.ts +12 -3
  14. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -0
  15. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +2 -0
  16. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +2 -0
  17. package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +122 -0
  18. package/dist/_dts/blocks/src/system/blocks/events/shared/calendarWindow.d.ts +2 -1
  19. package/dist/_dts/blocks/src/system/blocks/events/shared/eventSelection.d.ts +11 -0
  20. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +2 -2
  21. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +47 -47
  22. package/dist/_dts/blocks/src/system/data/prefetchBlockData.d.ts +5 -0
  23. package/dist/_dts/blocks/src/system/data/utils.d.ts +1 -1
  24. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +27 -1
  25. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +12 -180
  26. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +6 -90
  27. package/dist/_dts/blocks/src/system/runtime/hooks/useEventFilters.d.ts +2 -1
  28. package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +5 -1
  29. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +4 -0
  30. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.state.d.ts +5 -0
  31. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.d.ts +3 -0
  32. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.state.d.ts +10 -3
  33. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventCheckoutHandoffRestore.d.ts +9 -0
  34. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +4 -5
  35. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useSettledCommerceView.d.ts +37 -0
  36. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +4 -3
  37. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +3 -0
  38. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +11 -101
  39. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +7 -2
  40. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listOptions.d.ts +2 -0
  41. package/dist/_dts/blocks/src/system/transforms/registry/eventCalendar.d.ts +12 -0
  42. package/dist/_dts/commerce/src/purchase/bookingInstalmentSchedule.d.ts +4 -0
  43. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +3 -0
  44. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +27 -1
  45. package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -1
  46. package/dist/_dts/sdk/src/version.d.ts +1 -1
  47. package/dist/_dts/theme-core/src/ThemeFontLoader.d.ts +17 -1
  48. package/dist/_dts/theme-core/src/buttons/affordanceSuppression.d.ts +17 -0
  49. package/dist/_dts/theme-core/src/buttons/buttonColourContract.d.ts +1 -1
  50. package/dist/_dts/theme-core/src/buttons/classNames.d.ts +16 -0
  51. package/dist/_dts/theme-core/src/buttons/generateButtonCss.d.ts +0 -6
  52. package/dist/_dts/theme-core/src/buttons/resolvedButtonCss.d.ts +4 -4
  53. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  54. package/dist/_dts/theme-core/src/hosted-booking-appearance.d.ts +54 -12
  55. package/dist/_dts/theme-core/src/index.d.ts +1 -1
  56. package/dist/client/{BookingConsentAgreement-CuKa82V4.mjs → BookingConsentAgreement-xJeYNdnb.mjs} +2 -2
  57. package/dist/client/{DiscountCodeDisclosure-BbYieKWB.mjs → DiscountCodeDisclosure-DdT6uzl9.mjs} +1 -1
  58. package/dist/client/{EventCombined.client-LTfR1Aby.mjs → EventCombined.client-Cp28uYuM.mjs} +11 -15
  59. package/dist/client/{EventListing.client-DUHpYSuo.mjs → EventListing.client-CD6AJsMr.mjs} +4 -17
  60. package/dist/client/{LeafletStaticMap-CHRupL6m.mjs → LeafletStaticMap-DBsAi9-e.mjs} +1 -1
  61. package/dist/client/{accordion-6HiIFxNL.mjs → accordion-6dwbOKYR.mjs} +1 -1
  62. package/dist/client/{bookingForm-Dlmid43H.mjs → bookingForm-CZE9_qPQ.mjs} +5 -5
  63. package/dist/client/bookings.mjs +175 -93
  64. package/dist/client/{carousel-DmkZRRq_.mjs → carousel-7VHGQARz.mjs} +1 -1
  65. package/dist/client/{cart-CIC24330.mjs → cart-Qg_mvQhh.mjs} +3 -3
  66. package/dist/client/{checkout-D1Zw9imo.mjs → checkout-D84rpgdr.mjs} +3 -3
  67. package/dist/client/client.mjs +602 -139
  68. package/dist/client/{context-Cy1OayHx.mjs → context-Ctp3T0Wr.mjs} +1 -1
  69. package/dist/client/{dates-aDcfoLHr.mjs → dates-DJKFcI_N.mjs} +2 -2
  70. package/dist/client/{eventCalendar-FQxMPAjf.mjs → eventCalendar-CK31z3vs.mjs} +11 -7
  71. package/dist/client/{eventCombined-Dr3ac6Hb.mjs → eventCombined-DiXd-ewn.mjs} +3 -3
  72. package/dist/client/{eventDetails-D-AzUHFQ.mjs → eventDetails-CTRgt2DK.mjs} +4 -4
  73. package/dist/client/{eventListing-B3XxBf3i.mjs → eventListing-Dy9vi_j_.mjs} +3 -3
  74. package/dist/client/{eventRegistration-I6EaokFD.mjs → eventRegistration-CnalYMr2.mjs} +124 -31
  75. package/dist/client/{form-BbWckVWY.mjs → form-eUiMveTT.mjs} +2 -2
  76. package/dist/client/{headerSection-C9qU4Y7x.mjs → headerSection-Dy9kQpB1.mjs} +2 -2
  77. package/dist/client/hooks.mjs +247 -32
  78. package/dist/client/{locationMap-CLCShvlG.mjs → locationMap-DalCmWU0.mjs} +2 -2
  79. package/dist/client/{newsletterForm-Briukxzi.mjs → newsletterForm-SDDPvhS0.mjs} +23 -10
  80. package/dist/client/{pricing-Copadu-2.mjs → pricing-OcMz4SnX.mjs} +1 -1
  81. package/dist/client/{productDetail-oujlRd-r.mjs → productDetail-BQrgHElM.mjs} +3 -3
  82. package/dist/client/{productList-BRiIRUcd.mjs → productList-OnPn_UJj.mjs} +3 -3
  83. package/dist/client/{propsDecoder-CB2KS_ko.mjs → propsDecoder-zBdsnS-N.mjs} +38 -8
  84. package/dist/client/rendering/client.mjs +446 -121
  85. package/dist/client/rendering/islands.mjs +17 -17
  86. package/dist/client/rendering.mjs +601 -138
  87. package/dist/client/{scrollToBlock-B1IS1_ua.mjs → scrollToBlock-BNM4Ob2Y.mjs} +28 -11
  88. package/dist/client/{shop-Vn6yNFED.mjs → shop-Bv1fPTwQ.mjs} +6 -6
  89. package/dist/client/{shop-commerce-BVTqipYp.mjs → shop-commerce-D4KNGaW8.mjs} +5 -5
  90. package/dist/client/{shop-commerce-store-BVnJVy7v.mjs → shop-commerce-store-2N5EV0Rc.mjs} +1 -1
  91. package/dist/client/{shopShared-COIeK77T.mjs → shopShared-DvJGdHTV.mjs} +3 -3
  92. package/dist/client/{useEventFilters-DzIUcS9n.mjs → useEventFilters-BBBvGDHQ.mjs} +17 -11
  93. package/dist/preview-next/client/runtime.mjs +3 -3
  94. package/dist/preview-next/editor-chrome.css +4 -8
  95. package/dist/{sdk-runtime-CnCLvZRv.mjs → sdk-runtime-Defnbfzw.mjs} +1 -1
  96. package/dist/{separator-DKDRJ1oH.mjs → separator-CZXO3Sb0.mjs} +1 -1
  97. package/dist/server/components.mjs +384 -62
  98. package/dist/server/config-validation.mjs +232 -26
  99. package/dist/server/config.mjs +232 -26
  100. package/dist/server/data.mjs +247 -32
  101. package/dist/server/index.mjs +1 -1
  102. package/dist/server/next.mjs +400 -69
  103. package/dist/server/page-converter.mjs +189 -25
  104. package/dist/server/prebuild.mjs +1 -1
  105. package/dist/server/rendering/server.mjs +399 -68
  106. package/dist/server/rendering.mjs +399 -68
  107. package/dist/server/routing.mjs +261 -33
  108. package/dist/server/server.mjs +248 -33
  109. package/dist/server/theme-bridge.mjs +47 -15
  110. package/dist/server/theme.mjs +1 -1
  111. package/dist/styles/index.css +28 -2
  112. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- import type { Theme, Corners } from "./schema";
2
- import { type PaletteColors, type PaletteMode } from "./palette/colors";
1
+ import { z } from "zod";
2
+ import { type Theme } from "./schema";
3
3
  import { type ThemeBridgeRuntime } from "./runtime/buildThemeRuntimeFromBridge";
4
4
  import { type ThemeTokens } from "./tokens";
5
5
  /**
@@ -7,15 +7,56 @@ import { type ThemeTokens } from "./tokens";
7
7
  * It deliberately contains only the simplified theme choices: semantic
8
8
  * palette, palette mode, two font roles, and the canonical corner shape.
9
9
  */
10
- export type HostedBookingAppearance = Readonly<{
11
- palette: PaletteColors;
12
- paletteMode: PaletteMode;
13
- typography: Readonly<{
14
- headingFamily: string;
15
- bodyFamily: string;
10
+ export declare const hostedBookingAppearanceSchema: z.ZodObject<{
11
+ palette: z.ZodPipe<z.ZodObject<{
12
+ primary: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").HexColor, string>>;
13
+ primaryForeground: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").HexColor, string>>;
14
+ secondary: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").HexColor, string>>;
15
+ accent: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").HexColor, string>>;
16
+ success: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").HexColor, string>>;
17
+ warning: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").HexColor, string>>;
18
+ destructive: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").HexColor, string>>;
19
+ background: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").HexColor, string>>;
20
+ surface: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").HexColor, string>>;
21
+ surfaceAlt: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").HexColor, string>>;
22
+ muted: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").HexColor, string>>;
23
+ text: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").HexColor, string>>;
24
+ border: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../blocks/src/index").HexColor, string>>;
25
+ }, z.core.$strict>, z.ZodTransform<Readonly<Record<"surface" | "text" | "success" | "warning" | "background" | "primary" | "secondary" | "accent" | "destructive" | "surfaceAlt" | "muted" | "primaryForeground" | "border", import("../../blocks/src/index").HexColor>>, {
26
+ primary: import("../../blocks/src/index").HexColor;
27
+ primaryForeground: import("../../blocks/src/index").HexColor;
28
+ secondary: import("../../blocks/src/index").HexColor;
29
+ accent: import("../../blocks/src/index").HexColor;
30
+ success: import("../../blocks/src/index").HexColor;
31
+ warning: import("../../blocks/src/index").HexColor;
32
+ destructive: import("../../blocks/src/index").HexColor;
33
+ background: import("../../blocks/src/index").HexColor;
34
+ surface: import("../../blocks/src/index").HexColor;
35
+ surfaceAlt: import("../../blocks/src/index").HexColor;
36
+ muted: import("../../blocks/src/index").HexColor;
37
+ text: import("../../blocks/src/index").HexColor;
38
+ border: import("../../blocks/src/index").HexColor;
39
+ }>>;
40
+ paletteMode: z.ZodEnum<{
41
+ light: "light";
42
+ dark: "dark";
16
43
  }>;
17
- corners: Corners;
18
- }>;
44
+ typography: z.ZodObject<{
45
+ headingFamily: z.ZodString;
46
+ bodyFamily: z.ZodString;
47
+ }, z.core.$strict>;
48
+ corners: z.ZodEnum<{
49
+ soft: "soft";
50
+ square: "square";
51
+ rounded: "rounded";
52
+ pill: "pill";
53
+ }>;
54
+ }, z.core.$strict>;
55
+ export type HostedBookingAppearance = Readonly<z.infer<typeof hostedBookingAppearanceSchema>>;
56
+ export declare function parseHostedBookingAppearance(value: unknown): HostedBookingAppearance | null;
57
+ type HostedBookingPaletteSeed = Readonly<Record<"primary" | "secondary" | "accent" | "background" | "surface" | "text", string>>;
58
+ /** Build a directly valid hosted appearance from the onboarding palette. */
59
+ export declare function buildHostedBookingAppearanceFromPalette(palette: HostedBookingPaletteSeed): HostedBookingAppearance;
19
60
  /**
20
61
  * Shared runtime output for tokens-only hosted-booking rendering. The CSS
21
62
  * buckets come from the existing bridge generator; semantic palette values
@@ -26,8 +67,8 @@ export type HostedBookingAppearanceRuntime = Readonly<ThemeBridgeRuntime & {
26
67
  }>;
27
68
  /**
28
69
  * Derive the narrow hosted-booking appearance from a persisted full theme.
29
- * Font families use the same CSS normalization as the full theme runtime;
30
- * loading remains the caller's responsibility.
70
+ * Font families use the same CSS normalization as the full theme runtime.
71
+ * The frontend's appearance-aware font head loads these families directly.
31
72
  */
32
73
  export declare function deriveHostedBookingAppearance(theme: Theme): HostedBookingAppearance;
33
74
  /**
@@ -39,3 +80,4 @@ export declare function deriveHostedBookingAppearance(theme: Theme): HostedBooki
39
80
  * input in this contract.
40
81
  */
41
82
  export declare function buildHostedBookingAppearanceRuntime(appearance: HostedBookingAppearance): HostedBookingAppearanceRuntime;
83
+ export {};
@@ -17,7 +17,7 @@ export { type ThemeDataAttrs } from "./themeScopeUtils";
17
17
  export { SITE_CHROME_CLASS_NAMES, getStandaloneHeaderShellClassName, planSiteDocument, planSiteTopShell, renderSiteTopChrome, SITE_CHROME_VISIBLE_HEADER_ATTR, SITE_CHROME_VISIBLE_HEADER_SELECTOR, SITE_OVERLAY_HEADER_CLEARANCE_CSS_VAR, SITE_OVERLAY_HEADER_CLEARANCE_FALLBACK, visibleHeaderClearancePx, type HeaderMeasurementBox, type SiteChromeLayoutNodes, type SiteDocumentLayoutMode, type SiteDocumentPlan, type SiteDocumentPlanInput, type SiteTopShellPlan, type SiteTopShellBehavior, type SiteOverlayHeaderClearancePlan, } from "./siteChrome";
18
18
  export { SITE_CHROME_PLACEMENT_CLASSES, isHeaderPositioning, parseHeaderPositioning, planSiteChromePlacement, splitSiteChromePlacementClasses, type SiteChromePlacementPlan, } from "./siteChromePlacement";
19
19
  export { buildThemeRuntime } from "./runtime/buildThemeRuntime";
20
- export { buildHostedBookingAppearanceRuntime, deriveHostedBookingAppearance, type HostedBookingAppearance, type HostedBookingAppearanceRuntime, } from "./hosted-booking-appearance";
20
+ export { buildHostedBookingAppearanceFromPalette, buildHostedBookingAppearanceRuntime, deriveHostedBookingAppearance, hostedBookingAppearanceSchema, parseHostedBookingAppearance, type HostedBookingAppearance, type HostedBookingAppearanceRuntime, } from "./hosted-booking-appearance";
21
21
  export { THEME_RADIUS_CSS_VARS } from "./runtime/themeCssVarNames";
22
22
  export { buildThemeBridgeRuntime, buildThemeRuntimeFromBridge, THEME_BRIDGE_SCOPE_ID, type ThemeBridgeRuntime, type ThemeBridgeConfigMinimal, } from "./runtime/buildThemeRuntimeFromBridge";
23
23
  export type { CornerStyle, ShadowSize, TextTransform, FontWeight, HoverTransform, HoverColor, GradientStyle, GradientSharpness, GradientDirection, ButtonVariant, ButtonSystem, } from "./buttons/types";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { O as clsx } from "./colorStyles-3013aRAY.mjs";
3
- import { Pt as assertNever$2, fn as formatCurrencyAmount } from "./propsDecoder-CB2KS_ko.mjs";
4
- import { a as CheckIcon } from "./scrollToBlock-B1IS1_ua.mjs";
3
+ import { Pt as assertNever$2, fn as formatCurrencyAmount } from "./propsDecoder-zBdsnS-N.mjs";
4
+ import { a as CheckIcon } from "./scrollToBlock-BNM4Ob2Y.mjs";
5
5
  import { n as RichText } from "./checkoutUrls-FL6lRkrt.mjs";
6
6
  import { useCallback, useEffect, useReducer, useRef } from "react";
7
7
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { dt as themeButtonClassName } from "./propsDecoder-CB2KS_ko.mjs";
2
+ import { dt as themeButtonClassName } from "./propsDecoder-zBdsnS-N.mjs";
3
3
  import { useId } from "react";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  //#region ../blocks/src/system/runtime/api/types/discounts.ts
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import { O as clsx } from "./colorStyles-3013aRAY.mjs";
3
- import { $ as getDayOfWeek, F as calendarQueryKey, H as getEventRuntimeFiltersKey, I as calendarWindowBounds, J as MONTH_NAMES, K as getCardOrientation, L as calendarWindowMonths$1, N as calendarMonthDate, P as calendarPageResponseError, Q as formatDateKey, Qt as getLocalScheduleDate, V as buildEventRuntimeFilters, X as addMonths, Xt as formatLocalScheduleDate, Z as buildCalendarViewport, dt as themeButtonClassName, et as getOrderedDayNames, it as shiftCalendarAnchorDate, nt as isSameCalendarDay, q as getContainerClass, rt as isToday, z as planCalendarMonthRanges } from "./propsDecoder-CB2KS_ko.mjs";
4
- import { a as EventCardClient, i as EventPaginatedListView, n as useEventPagination, o as EventFilters, r as toError, s as formatEventTeacherLine, t as useEventFilters } from "./useEventFilters-DzIUcS9n.mjs";
5
- import { o as formatEventRemainingPlaces, p as isEventFull, t as formatEventPrice } from "./pricing-Copadu-2.mjs";
6
- import { a as formatTime, d as resolveEventLinkProps, o as groupEventsByDate, s as resolveEventTimeZone, t as formatDate, u as resolveEventCta } from "./dates-aDcfoLHr.mjs";
7
- import { n as useBlockApi } from "./context-Cy1OayHx.mjs";
3
+ import { $ as getDayOfWeek, F as calendarQueryKey, H as getEventRuntimeFiltersKey, I as calendarWindowBounds, J as MONTH_NAMES, K as getCardOrientation, L as calendarWindowMonths$1, N as calendarMonthDate, P as calendarPageResponseError, Q as formatDateKey, Qt as getLocalScheduleDate, V as buildEventRuntimeFilters, X as addMonths, Xt as formatLocalScheduleDate, Z as buildCalendarViewport, dt as themeButtonClassName, et as getOrderedDayNames, it as shiftCalendarAnchorDate, nt as isSameCalendarDay, q as getContainerClass, rt as isToday, z as planCalendarMonthRanges } from "./propsDecoder-zBdsnS-N.mjs";
4
+ import { a as EventCardClient, i as EventPaginatedListView, n as useEventPagination, o as EventFilters, r as toError, s as formatEventTeacherLine, t as useEventFilters } from "./useEventFilters-BBBvGDHQ.mjs";
5
+ import { o as formatEventRemainingPlaces, p as isEventFull, t as formatEventPrice } from "./pricing-OcMz4SnX.mjs";
6
+ import { a as formatTime, d as resolveEventLinkProps, o as groupEventsByDate, s as resolveEventTimeZone, t as formatDate, u as resolveEventCta } from "./dates-DJKFcI_N.mjs";
7
+ import { n as useBlockApi } from "./context-Ctp3T0Wr.mjs";
8
8
  import { t as createBodyThemePortalRoot } from "./themePortalRoot-AGs4cE7t.mjs";
9
9
  import { t as ModalShell } from "./ModalShell-CqkBvBIC.mjs";
10
10
  import React, { createContext, useCallback, useContext, useEffect, useId, useMemo, useRef, useState } from "react";
@@ -1079,6 +1079,7 @@ function toEventCombinedControllerProps(props) {
1079
1079
  eventSurface: props.render.display.eventSurface,
1080
1080
  filterEventPresets: props.render.display.filterEventPresets,
1081
1081
  scheduleScope: props.render.display.scheduleScope,
1082
+ seriesIds: props.render.display.seriesIds,
1082
1083
  filterCategoryIds: props.render.display.filterCategoryIds,
1083
1084
  filterStaffMemberId: props.render.display.filterStaffMemberId,
1084
1085
  filterVenueId: props.render.display.filterVenueId,
@@ -1200,7 +1201,7 @@ const EventCombinedCalendarTab = ({ calendarTabViews, calendarView, calendarView
1200
1201
  const EventCombinedClient = ({ events: initialEvents, siteId, stage, listLayout = "stack", listColumns = "3", eventsPerPage = 12, paginationAction = {
1201
1202
  kind: "loadMore",
1202
1203
  label: "Load more events"
1203
- }, startOfWeek = "monday", calendarTabViews = "both", defaultCalendarView, showFilters, showCategoryFilter = "auto", showVenueFilter, showStaffFilter, eventSurface, filterEventPresets, scheduleScope, filterCategoryIds, filterStaffMemberId, filterVenueId, showVenue, showMap, showCapacity, cardRole, buttonVariant = "primary", buttonText = "Book", emptyMessage = "No upcoming events scheduled.", className, calendarContext, calendarWindow }) => {
1204
+ }, startOfWeek = "monday", calendarTabViews = "both", defaultCalendarView, showFilters, showCategoryFilter = "auto", showVenueFilter, showStaffFilter, eventSurface, filterEventPresets, scheduleScope, seriesIds, filterCategoryIds, filterStaffMemberId, filterVenueId, showVenue, showMap, showCapacity, cardRole, buttonVariant = "primary", buttonText = "Book", emptyMessage = "No upcoming events scheduled.", className, calendarContext, calendarWindow }) => {
1204
1205
  const hydrationReady = useHydrationReady();
1205
1206
  const fetchInitialEventsOnMount = initialEvents == null;
1206
1207
  const resolvedShowFilters = showFilters ?? true;
@@ -1226,6 +1227,7 @@ const EventCombinedClient = ({ events: initialEvents, siteId, stage, listLayout
1226
1227
  showCategoryFilter: resolvedShowFilters ? showCategoryFilter : "never",
1227
1228
  showVenueFilter: resolvedShowFilters ? resolvedShowVenueFilter : false,
1228
1229
  showStaffFilter: resolvedShowFilters ? resolvedShowStaffFilter : false,
1230
+ preFilterSeriesIds: seriesIds,
1229
1231
  preFilterCategoryIds: filterCategoryIds,
1230
1232
  preFilterStaffMemberId: filterStaffMemberId,
1231
1233
  preFilterVenueId: filterVenueId,
@@ -1233,21 +1235,15 @@ const EventCombinedClient = ({ events: initialEvents, siteId, stage, listLayout
1233
1235
  preFilterEventPresets: filterEventPresets,
1234
1236
  preFilterScheduleScope: resolvedScheduleScope
1235
1237
  });
1236
- const initialListFilters = useMemo(() => buildEventRuntimeFilters({
1238
+ const initialListFilters = buildEventRuntimeFilters({
1237
1239
  eventSurface: resolvedEventSurface,
1238
1240
  filterEventPresets,
1239
1241
  scheduleScope: resolvedScheduleScope,
1242
+ seriesIds,
1240
1243
  filterCategoryIds,
1241
1244
  filterStaffMemberId,
1242
1245
  filterVenueId
1243
- }), [
1244
- resolvedEventSurface,
1245
- filterCategoryIds,
1246
- filterEventPresets,
1247
- filterStaffMemberId,
1248
- filterVenueId,
1249
- resolvedScheduleScope
1250
- ]);
1246
+ });
1251
1247
  const listFilters = useMemo(() => getFilterParams(), [getFilterParams]);
1252
1248
  const pageSize = eventsPerPage;
1253
1249
  const { events: paginatedEvents, loading: eventsLoading, error: eventsError, hasMore, loadMore } = useEventPagination({
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { V as buildEventRuntimeFilters } from "./propsDecoder-CB2KS_ko.mjs";
3
- import { i as EventPaginatedListView, n as useEventPagination, o as EventFilters, t as useEventFilters } from "./useEventFilters-DzIUcS9n.mjs";
2
+ import { V as buildEventRuntimeFilters } from "./propsDecoder-zBdsnS-N.mjs";
3
+ import { i as EventPaginatedListView, n as useEventPagination, o as EventFilters, t as useEventFilters } from "./useEventFilters-BBBvGDHQ.mjs";
4
4
  import { useId, useMemo } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region ../blocks/src/system/runtime/nodes/events/EventListing.client.tsx
@@ -12,25 +12,12 @@ const EventListingController = ({ render }) => {
12
12
  const hydration = render.hydration;
13
13
  const filtersIdBase = useId();
14
14
  const initialListEvents = useMemo(() => [...display.events], [display.events]);
15
- const initialListFilters = useMemo(() => buildEventRuntimeFilters({
16
- eventSurface: hydration.eventSurface,
17
- filterEventPresets: hydration.filterEventPresets,
18
- scheduleScope: hydration.scheduleScope,
19
- filterCategoryIds: hydration.filterCategoryIds,
20
- filterStaffMemberId: hydration.filterStaffMemberId,
21
- filterVenueId: hydration.filterVenueId
22
- }), [
23
- hydration.eventSurface,
24
- hydration.filterEventPresets,
25
- hydration.scheduleScope,
26
- hydration.filterCategoryIds,
27
- hydration.filterStaffMemberId,
28
- hydration.filterVenueId
29
- ]);
15
+ const initialListFilters = buildEventRuntimeFilters(hydration);
30
16
  const { categories, venues, staffMembers, selectedCategoryId, selectedStaffMemberId, selectedVenueId, loading: filtersLoading, shouldShowCategoryFilter, shouldShowVenueFilter, shouldShowStaffFilter, hasActiveFilters, setSelectedCategoryId, setSelectedStaffMemberId, setSelectedVenueId, resetFilters, getFilterParams } = useEventFilters({
31
17
  showCategoryFilter: hydration.showFilters ? hydration.showCategoryFilter : "never",
32
18
  showVenueFilter: hydration.showFilters ? hydration.showVenueFilter : false,
33
19
  showStaffFilter: hydration.showFilters ? hydration.showStaffFilter : false,
20
+ preFilterSeriesIds: hydration.seriesIds,
34
21
  preFilterCategoryIds: hydration.filterCategoryIds ?? void 0,
35
22
  preFilterStaffMemberId: hydration.filterStaffMemberId ?? void 0,
36
23
  preFilterVenueId: hydration.filterVenueId ?? void 0,
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { Nt as isRecord } from "./propsDecoder-CB2KS_ko.mjs";
2
+ import { Nt as isRecord } from "./propsDecoder-zBdsnS-N.mjs";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  //#region ../blocks/src/system/runtime/nodes/shared/LeafletStaticMap.tsx
@@ -1,4 +1,4 @@
1
- import { t as defineIslandPropsDecoder } from "./propsDecoder-CB2KS_ko.mjs";
1
+ import { t as defineIslandPropsDecoder } from "./propsDecoder-zBdsnS-N.mjs";
2
2
  //#region src/rendering/islands/enhancers/accordion.ts
3
3
  const decode = defineIslandPropsDecoder("accordion");
4
4
  function parseDefaultValues(value) {
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import { C as unsafeAsPassId, b as unsafeAsCustomerPassId, v as unsafeAsAppointmentResourceId, x as unsafeAsFormId, y as unsafeAsAppointmentServiceId } from "./colorStyles-3013aRAY.mjs";
3
- import { a as buildBookingPaymentSelectionViewModel, i as usePolling, n as StepIndicator, r as SpinnerNode, t as BookingConsentAgreement } from "./BookingConsentAgreement-CuKa82V4.mjs";
4
- import { $t as parseBookingLocalDate, At as BOOKING_FORM_DATA_RESERVED_KEYS, Bt as reportWorkflowSuccess, Ct as resolveAppointmentCheckoutVerificationState, Dt as toSelectedCollectionOptionKind, Et as resolveDefaultBookingServiceId, Ft as clearWorkflowFeedback, It as err, Jt as formatBookingInstant, Ot as projectSelectedAppointmentConsentIntoForm, Pt as assertNever, Rt as okWith, St as prepareBookingSubmission, Tt as resolveBookingSiteId, Wt as addLocalScheduleDays, Xt as formatLocalScheduleDate, _t as getBookingRedirectStateFromLocation, bt as isBookingServiceSlidingAmountInRange, dt as themeButtonClassName, en as resolveBookingTimeZoneId, fn as formatCurrencyAmount, gt as formatBookingSubmissionPreparationError, ht as formatBookingCentsAsCurrencyInput, jt as isBookingRequirementConsentFieldId, kt as resolveSelectedAppointmentConsent, mt as deriveBookingFormViewState, pt as logger, t as defineIslandPropsDecoder, vt as getBookingServiceSlidingScale, wt as resolveBookingPaymentStep, xt as parseBookingCurrencyInputToCents, yt as getBookingSuccessMessage, zt as reportWorkflowError } from "./propsDecoder-CB2KS_ko.mjs";
5
- import { n as useBlockApi, t as BlockApiProvider } from "./context-Cy1OayHx.mjs";
3
+ import { a as buildBookingPaymentSelectionViewModel, i as usePolling, n as StepIndicator, r as SpinnerNode, t as BookingConsentAgreement } from "./BookingConsentAgreement-xJeYNdnb.mjs";
4
+ import { $t as parseBookingLocalDate, At as BOOKING_FORM_DATA_RESERVED_KEYS, Bt as reportWorkflowSuccess, Ct as resolveAppointmentCheckoutVerificationState, Dt as toSelectedCollectionOptionKind, Et as resolveDefaultBookingServiceId, Ft as clearWorkflowFeedback, It as err, Jt as formatBookingInstant, Ot as projectSelectedAppointmentConsentIntoForm, Pt as assertNever, Rt as okWith, St as prepareBookingSubmission, Tt as resolveBookingSiteId, Wt as addLocalScheduleDays, Xt as formatLocalScheduleDate, _t as getBookingRedirectStateFromLocation, bt as isBookingServiceSlidingAmountInRange, dt as themeButtonClassName, en as resolveBookingTimeZoneId, fn as formatCurrencyAmount, gt as formatBookingSubmissionPreparationError, ht as formatBookingCentsAsCurrencyInput, jt as isBookingRequirementConsentFieldId, kt as resolveSelectedAppointmentConsent, mt as deriveBookingFormViewState, pt as logger, t as defineIslandPropsDecoder, vt as getBookingServiceSlidingScale, wt as resolveBookingPaymentStep, xt as parseBookingCurrencyInputToCents, yt as getBookingSuccessMessage, zt as reportWorkflowError } from "./propsDecoder-zBdsnS-N.mjs";
5
+ import { n as useBlockApi, t as BlockApiProvider } from "./context-Ctp3T0Wr.mjs";
6
6
  import { n as isSpamProtectionEnabled, r as AltchaWidget, t as getChallengeUrl } from "./src-B833rYRr.mjs";
7
- import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-B1IS1_ua.mjs";
8
- import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-BbYieKWB.mjs";
7
+ import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-BNM4Ob2Y.mjs";
8
+ import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-DdT6uzl9.mjs";
9
9
  import { t as FeedbackMessage } from "./FeedbackMessage-CtLvvS_d.mjs";
10
10
  import { n as getFieldValidationControlProps, t as FieldValidationMessage } from "./FieldValidationMessage-AYanWFb-.mjs";
11
11
  import { t as buildCheckoutReturnUrls } from "./checkoutUrls-FL6lRkrt.mjs";