@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
@@ -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";
@@ -3486,12 +3486,6 @@ declare const footerMaxWidth: z.ZodEnum<{
3486
3486
  full: "full";
3487
3487
  container: "container";
3488
3488
  }>;
3489
- declare const footerMode: z.ZodEnum<{
3490
- none: "none";
3491
- default: "default";
3492
- blocks: "blocks";
3493
- "default+blocks": "default+blocks";
3494
- }>;
3495
3489
  export declare const footerSchema: z.ZodObject<{
3496
3490
  mode: z.ZodOptional<z.ZodEnum<{
3497
3491
  none: "none";
@@ -12336,7 +12330,7 @@ export type HeaderCtaGap = z.infer<typeof headerCtaGapSchema>;
12336
12330
  export type ThemeHeader = z.infer<typeof headerSchema>;
12337
12331
  export type FooterVariant = z.infer<typeof footerVariant>;
12338
12332
  export type FooterMaxWidth = z.infer<typeof footerMaxWidth>;
12339
- export type FooterMode = z.infer<typeof footerMode>;
12333
+ export type { FooterMode } from './footer/mode';
12340
12334
  export type ThemeFooter = z.infer<typeof footerSchema>;
12341
12335
  export type ThemeLayout = z.infer<typeof layoutSchema>;
12342
12336
  export type ThemeHero = z.infer<typeof heroSchema>;
@@ -0,0 +1,32 @@
1
+ import { type PageDesignIntent } from './pageDesignIntent';
2
+ import type { SiteStyleId } from './types';
3
+ /**
4
+ * Where an effective page design intent came from. `stored` means a persisted
5
+ * intent was found (and rebased onto the current site style); `default` means
6
+ * nothing was persisted and the site style's own defaults were used.
7
+ */
8
+ export type EffectivePageDesignIntentSource = 'stored' | 'default';
9
+ /**
10
+ * Resolution outcome for a page's effective design intent.
11
+ *
12
+ * `no-site-style` is not an error in this layer: it only says that there is no
13
+ * style to resolve against. Whether that is an invariant violation depends on
14
+ * whether the site is managed, which is a concept this layer does not know
15
+ * about. See issue 1462.
16
+ */
17
+ export type EffectivePageDesignIntentResolution = Readonly<{
18
+ kind: 'resolved';
19
+ intent: PageDesignIntent;
20
+ source: EffectivePageDesignIntentSource;
21
+ }> | Readonly<{
22
+ kind: 'no-site-style';
23
+ }>;
24
+ /**
25
+ * Every page with an applicable site style has an effective design, whether or
26
+ * not a design version was ever persisted. Missing persistence is ordinary
27
+ * default resolution, not a failure.
28
+ *
29
+ * Corrupt persisted state never reaches this function: callers keep their own
30
+ * invalid state untouched and only resolve `stored` values they could parse.
31
+ */
32
+ export declare function resolveEffectivePageDesignIntent(stored: PageDesignIntent | null, currentSiteStyleId: SiteStyleId | null): EffectivePageDesignIntentResolution;
@@ -26,6 +26,7 @@ export * from './headerOpeningSection';
26
26
  export * from './lookResolution';
27
27
  export * from './lookOptionGroups';
28
28
  export * from './logoBranding';
29
+ export * from './effectivePageDesign';
29
30
  export * from './pageDesignAuthority';
30
31
  export * from './pageDesignEditorErrors';
31
32
  export * from './pageDesignEditorCapabilities';
@@ -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-DiLiBdek.mjs";
4
+ import { a as CheckIcon } from "./scrollToBlock-CrcbBf0h.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-DiLiBdek.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-DiLiBdek.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-CM17Xpr1.mjs";
5
+ import { o as formatEventRemainingPlaces, p as isEventFull, t as formatEventPrice } from "./pricing-CbTlAsmt.mjs";
6
+ import { a as formatTime, d as resolveEventLinkProps, o as groupEventsByDate, s as resolveEventTimeZone, t as formatDate, u as resolveEventCta } from "./dates-BXyNeNhB.mjs";
7
+ import { n as useBlockApi } from "./context-Ces-AgdR.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-DiLiBdek.mjs";
3
+ import { i as EventPaginatedListView, n as useEventPagination, o as EventFilters, t as useEventFilters } from "./useEventFilters-CM17Xpr1.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-DiLiBdek.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-DiLiBdek.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-CnJeq3_r.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-DiLiBdek.mjs";
5
+ import { n as useBlockApi, t as BlockApiProvider } from "./context-Ces-AgdR.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-CrcbBf0h.mjs";
8
+ import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-BINEO6J9.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";