@riverbankcms/sdk 0.126.0 → 0.128.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 (212) hide show
  1. package/dist/{PreviewEditorSidebar-DcYJxTgc.mjs → PreviewEditorSidebar-Dbvb7GIr.mjs} +64 -68
  2. package/dist/{PreviewEditorUI-Ctt1yTJr.mjs → PreviewEditorUI-e9O9l20X.mjs} +3 -3
  3. package/dist/{PreviewQueryProvider-DgFDIwvK.mjs → PreviewQueryProvider-B1kbhaJD.mjs} +1 -1
  4. package/dist/SdkPreviewModeRuntime-BZHt6e9w.mjs +11006 -0
  5. package/dist/{SiteChromeCustomizeContext-C87qlKWw.mjs → SiteChromeCustomizeContext-CvuGbHJX.mjs} +51247 -20733
  6. package/dist/_dts/ai/src/contracts/proposals.d.ts +486 -36
  7. package/dist/_dts/api/src/bookingClosures.d.ts +19 -3
  8. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -3
  9. package/dist/_dts/api/src/bookingRecords.d.ts +0 -13
  10. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +2 -2
  11. package/dist/_dts/api/src/communications.d.ts +2 -1
  12. package/dist/_dts/api/src/contactFormSummary.d.ts +15 -0
  13. package/dist/_dts/api/src/contentRuntime.d.ts +3 -10
  14. package/dist/_dts/api/src/endpoints.d.ts +1 -1
  15. package/dist/_dts/api/src/footerSettings.d.ts +11 -0
  16. package/dist/_dts/api/src/index.d.ts +2 -1
  17. package/dist/_dts/api/src/occurrenceScheduling.d.ts +48 -0
  18. package/dist/_dts/api/src/participantMessaging.d.ts +5 -3
  19. package/dist/_dts/api/src/publicExperience/siteEndpoints.d.ts +7 -0
  20. package/dist/_dts/api/src/sdkContracts.d.ts +7 -5
  21. package/dist/_dts/api/src/siteOperations.d.ts +12 -3
  22. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +3 -2
  23. package/dist/_dts/block-form/src/backend/store-backend.d.ts +2 -1
  24. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +1 -0
  25. package/dist/_dts/blocks/src/client/form.d.ts +1 -0
  26. package/dist/_dts/blocks/src/client/newsletter-form.d.ts +1 -0
  27. package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -0
  28. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -8
  29. package/dist/_dts/blocks/src/index.d.ts +3 -2
  30. package/dist/_dts/blocks/src/lib/media.d.ts +267 -0
  31. package/dist/_dts/blocks/src/rendering/server.d.ts +1 -1
  32. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +41 -0
  33. package/dist/_dts/blocks/src/system/blocks/newsletter-signup-destination.d.ts +14 -23
  34. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +1 -1
  35. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +109 -23
  36. package/dist/_dts/blocks/src/system/constants/buttonRoles.d.ts +0 -13
  37. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  38. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +42 -108
  39. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +21 -54
  40. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +1 -1
  41. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +26 -0
  42. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +8 -0
  43. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +21 -0
  44. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +4 -4
  45. package/dist/_dts/blocks/src/system/runtime/nodes/mergeResolveImageUrlContexts.d.ts +7 -0
  46. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +29 -78
  47. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.server.d.ts +1 -1
  48. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +3 -6
  49. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +27 -8
  50. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +2 -2
  51. package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +21 -0
  52. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +3 -1
  53. package/dist/_dts/content-editor/src/FooterEngagementEditorFields.d.ts +31 -0
  54. package/dist/_dts/content-editor/src/FooterEngagementEditorPanel.d.ts +17 -0
  55. package/dist/_dts/content-editor/src/footerComposer.d.ts +3 -0
  56. package/dist/_dts/content-editor/src/footerEngagementDraft.d.ts +57 -0
  57. package/dist/_dts/content-editor/src/footerEngagementEditor.d.ts +11 -0
  58. package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +13 -0
  59. package/dist/_dts/content-editor/src/index.d.ts +1 -0
  60. package/dist/_dts/content-editor/src/ui/blockValidationManifestRegistry.d.ts +17 -0
  61. package/dist/_dts/content-editor/src/ui/blockValidationView.d.ts +1 -1
  62. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +4 -0
  63. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +35 -0
  64. package/dist/_dts/core/src/footer-arrangement.d.ts +2 -0
  65. package/dist/_dts/core/src/footer-composition-types.d.ts +118 -0
  66. package/dist/_dts/core/src/footer-composition.d.ts +7 -116
  67. package/dist/_dts/core/src/footer-engagement.d.ts +30 -0
  68. package/dist/_dts/core/src/index.d.ts +4 -0
  69. package/dist/_dts/core/src/newsletter-signup-destination.d.ts +38 -0
  70. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +200 -159
  71. package/dist/_dts/db/src/index.d.ts +1 -0
  72. package/dist/_dts/db/src/schemas/forms.d.ts +72 -2
  73. package/dist/_dts/db/src/schemas/standard-contact.d.ts +114 -0
  74. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +4 -0
  75. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockValidationManifests.d.ts +26 -0
  76. package/dist/_dts/editor-blocks/src/widgets/rich-text/imageInsert.d.ts +3 -3
  77. package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -2
  78. package/dist/_dts/media-editor/src/context.d.ts +1 -2
  79. package/dist/_dts/media-editor/src/index.d.ts +3 -1
  80. package/dist/_dts/media-editor/src/mediaSelection.d.ts +32 -0
  81. package/dist/_dts/media-editor/src/types.d.ts +3 -1
  82. package/dist/_dts/media-editor/src/useMediaSelection.d.ts +26 -0
  83. package/dist/_dts/preview-next/src/client/blocks/previewBatchLoaderParams.d.ts +6 -0
  84. package/dist/_dts/preview-next/src/client/index.d.ts +2 -0
  85. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +2 -5
  86. package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +2 -5
  87. package/dist/_dts/preview-next/src/client/preview/HeaderMenuControls.d.ts +12 -0
  88. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -5
  89. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -4
  90. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +13 -2
  91. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +8 -4
  92. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -49
  93. package/dist/_dts/preview-next/src/client/preview/headerInteractionPaletteSurfaceState.d.ts +8 -0
  94. package/dist/_dts/preview-next/src/client/preview/previewThemeRoles.d.ts +15 -0
  95. package/dist/_dts/preview-next/src/client/preview/siteChromeCustomizeTypes.d.ts +54 -0
  96. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +13 -3
  97. package/dist/_dts/preview-next/src/client/preview/siteChromeNavQuickControlHistory.d.ts +3 -0
  98. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +6 -3
  99. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +6 -5
  100. package/dist/_dts/sdk/src/cli/commands/push/execute/footer.d.ts +9 -0
  101. package/dist/_dts/sdk/src/cli/content/footerFile.d.ts +10 -0
  102. package/dist/_dts/sdk/src/cli/content/reader.d.ts +3 -5
  103. package/dist/_dts/sdk/src/cli/site-commands/footerCommands.d.ts +15 -3
  104. package/dist/_dts/sdk/src/client/combineAbortSignals.d.ts +2 -0
  105. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -15
  106. package/dist/_dts/sdk/src/client/types.d.ts +10 -2
  107. package/dist/_dts/sdk/src/client/wholeSeriesReadOperations.d.ts +11 -0
  108. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  109. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  110. package/dist/_dts/sdk/src/contracts/event-registration-content.d.ts +16 -0
  111. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +4 -15
  112. package/dist/_dts/sdk/src/public-api/contracts.d.ts +4 -18
  113. package/dist/_dts/sdk/src/public-api/teamMemberContracts.d.ts +17 -0
  114. package/dist/_dts/sdk/src/public-api/wholeSeriesContracts.d.ts +2 -0
  115. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +7 -0
  116. package/dist/_dts/sdk/src/rendering/index.d.ts +5 -3
  117. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +2 -2
  118. package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +8 -2
  119. package/dist/_dts/sdk/src/version.d.ts +1 -1
  120. package/dist/_dts/site-commands/src/commandContract.d.ts +8 -1
  121. package/dist/_dts/site-commands/src/commands.d.ts +16 -2
  122. package/dist/_dts/theme-core/src/buttons/effects/presets/background.d.ts +1 -1
  123. package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +0 -18
  124. package/dist/_dts/theme-core/src/buttons/types.d.ts +1 -3
  125. package/dist/_dts/theme-core/src/header/containerSchema.d.ts +20 -0
  126. package/dist/_dts/theme-core/src/header/generateHeaderCss.d.ts +1 -1
  127. package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +14 -0
  128. package/dist/_dts/theme-core/src/header/legacyNavLinkStyle.d.ts +3 -0
  129. package/dist/_dts/theme-core/src/header/paintTargets.d.ts +31 -0
  130. package/dist/_dts/theme-core/src/header/scrollTreatment.d.ts +11 -0
  131. package/dist/_dts/theme-core/src/header/surfaceRules.d.ts +8 -0
  132. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +15 -0
  133. package/dist/_dts/theme-core/src/palette/colors.d.ts +1 -1
  134. package/dist/_dts/theme-core/src/schema.d.ts +67 -19
  135. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +3 -51
  136. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +4 -11
  137. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +3 -51
  138. package/dist/_dts/theme-core/src/site-styles/headerInteractionPalette.d.ts +32 -0
  139. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +19 -106
  140. package/dist/_dts/theme-core/src/site-styles/headerOpeningForeground.d.ts +22 -0
  141. package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +2 -0
  142. package/dist/_dts/theme-core/src/site-styles/headerStyleParts.d.ts +4 -0
  143. package/dist/_dts/theme-core/src/site-styles/index.d.ts +3 -0
  144. package/dist/_dts/theme-core/src/site-styles/lookOptionGroups.d.ts +24 -0
  145. package/dist/_dts/theme-core/src/site-styles/lookResolution.d.ts +1 -2
  146. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +4 -22
  147. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorOptions.d.ts +21 -0
  148. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
  149. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +4 -1
  150. package/dist/cli/index.mjs +6272 -5706
  151. package/dist/client/{courseRegistration-BcemLAdN.mjs → CourseRegistrationWizard-xRmA7REV.mjs} +329 -49
  152. package/dist/client/{DiscountCodeDisclosure-DS0AuFWW.mjs → DiscountCodeDisclosure-B9vriL5C.mjs} +1 -1
  153. package/dist/client/{EventCombined.client-DtMxLr7q.mjs → EventCombined.client-BgVnVTlz.mjs} +2 -2
  154. package/dist/client/{EventListing.client-BdLSRNg1.mjs → EventListing.client-CqdsO7jO.mjs} +2 -2
  155. package/dist/client/{LeafletStaticMap-BrpC6vsT.mjs → LeafletStaticMap-CKPxot9M.mjs} +1 -1
  156. package/dist/client/{StepIndicator-CBYPFVoy.mjs → StepIndicator-DGCYuBJ1.mjs} +2 -2
  157. package/dist/client/{accordion-BqqwPJWM.mjs → accordion-BfN5Eqd-.mjs} +1 -1
  158. package/dist/client/{bookingForm-SneP3yxC.mjs → bookingForm-DOvCpBFP.mjs} +5 -5
  159. package/dist/client/bookings.mjs +126 -23
  160. package/dist/client/{carousel-BTIR9L3I.mjs → carousel-DPNmiH0f.mjs} +1 -1
  161. package/dist/client/{cart-bqiqd8SX.mjs → cart--egVXlrR.mjs} +3 -3
  162. package/dist/client/{checkout-WbTFV5v4.mjs → checkout-DywWtMcq.mjs} +3 -3
  163. package/dist/client/client.mjs +6111 -5794
  164. package/dist/client/courseRegistration-Dk9qFVwt.mjs +46 -0
  165. package/dist/client/{eventCalendar-CsxIw0V_.mjs → eventCalendar-Bkz2HjlS.mjs} +4 -4
  166. package/dist/client/{eventCombined-B6XMoHfa.mjs → eventCombined-D4kipYWg.mjs} +2 -2
  167. package/dist/client/{eventDetails-BJaoPPfo.mjs → eventDetails-Dz_5ix2Q.mjs} +56 -35
  168. package/dist/client/{eventListing-DgwdYHRT.mjs → eventListing-D0vm-zST.mjs} +2 -2
  169. package/dist/client/{eventRegistration-C0O3folu.mjs → eventRegistration-Cw1E4Q4p.mjs} +58 -6
  170. package/dist/client/{form-Bk9txGFt.mjs → form-C2Zf1n3K.mjs} +1 -1
  171. package/dist/client/{headerSection-yIBt0yTv.mjs → headerSection-CP05gzdc.mjs} +2 -2
  172. package/dist/client/hooks.mjs +1013 -935
  173. package/dist/client/{locationMap-C-3KIpv-.mjs → locationMap-Cl3x9PYJ.mjs} +2 -2
  174. package/dist/client/{newsletterForm-CzB8g8h2.mjs → newsletterForm-DyEJoClm.mjs} +26 -20
  175. package/dist/client/{pricing-C1QeDes_.mjs → pricing-DGuNR1W4.mjs} +1 -1
  176. package/dist/client/{productDetail-w7SBp5uc.mjs → productDetail-Cq-HrGew.mjs} +3 -3
  177. package/dist/client/{productList-D0tGKHGf.mjs → productList-DbB3jwqd.mjs} +3 -3
  178. package/dist/client/{propsDecoder-Bcin2DB3.mjs → propsDecoder-CiTuhUwY.mjs} +257 -142
  179. package/dist/client/rendering/client.mjs +1342 -1122
  180. package/dist/client/rendering/islands.mjs +18 -18
  181. package/dist/client/rendering.mjs +6622 -6321
  182. package/dist/client/{scrollToBlock-h-o_STf_.mjs → scrollToBlock-CShkRqab.mjs} +1 -1
  183. package/dist/client/{shop-BGzmL8O_.mjs → shop-Cu4Ib-ZA.mjs} +5 -5
  184. package/dist/client/{shop-commerce-lX8QxjX-.mjs → shop-commerce-BzpsOdh7.mjs} +4 -4
  185. package/dist/client/{shop-commerce-store-CEurARtu.mjs → shop-commerce-store-DaE7Fhj8.mjs} +1 -1
  186. package/dist/client/{shopShared-DXxH8xxw.mjs → shopShared-cF0c20vB.mjs} +2 -2
  187. package/dist/client/{useEventFilters-B591g9vd.mjs → useEventFilters-QZ3HMgaJ.mjs} +2 -2
  188. package/dist/client/{usePolling-BvnChV4m.mjs → usePolling-BKf0GcE-.mjs} +2 -2
  189. package/dist/preview-next/before-render.mjs +1 -1
  190. package/dist/preview-next/client/runtime.mjs +4 -4
  191. package/dist/preview-next/middleware.mjs +1 -1
  192. package/dist/{previewAuthStore-Dev9CdG9.mjs → previewAuthStore-BesgU5Xu.mjs} +1 -1
  193. package/dist/{sdk-runtime-M__i3Jce.mjs → sdk-runtime-Cn_QSCOg.mjs} +2 -2
  194. package/dist/{separator-VSlnI9bc.mjs → separator-CEoGABRc.mjs} +1 -1
  195. package/dist/server/components.mjs +1750 -1614
  196. package/dist/server/config-validation.mjs +1010 -935
  197. package/dist/server/config.mjs +1010 -935
  198. package/dist/server/data.mjs +1013 -935
  199. package/dist/server/index.mjs +40 -16
  200. package/dist/server/next.mjs +1790 -1632
  201. package/dist/server/page-converter.mjs +1012 -938
  202. package/dist/server/prebuild.mjs +1 -1
  203. package/dist/server/rendering/server.mjs +1746 -1601
  204. package/dist/server/rendering.mjs +1759 -1615
  205. package/dist/server/routing.mjs +1123 -975
  206. package/dist/server/server.mjs +1053 -951
  207. package/dist/server/theme-bridge.mjs +151 -118
  208. package/dist/server/theme.mjs +111 -23
  209. package/package.json +1 -1
  210. package/dist/SdkPreviewModeRuntime-CvW1vdQ4.mjs +0 -39468
  211. package/dist/_dts/editor-blocks/src/widgets/rich-text/ensureRichTextImageAssetIdentifier.d.ts +0 -8
  212. package/dist/client/MagicLinkForm-Bt3IuLMy.mjs +0 -327
@@ -1,14 +1,13 @@
1
1
  import React, { type ReactNode } from 'react';
2
2
  import { type ApiClient } from '../../../../api/src/request';
3
3
  import type { Theme } from '../../../../blocks/src/index';
4
- import type { BrandDisplayMode, FooterLookId, HeaderNavFontSizePreference, HeaderNavTypographyPreference, HeaderLayoutId, HeaderSelectionContext, HeaderStyleId, LogoSizePolicy, SiteChromeBackgroundColorToken, SiteChromeBackgroundOverride } from '../../../../theme-core/src/site-styles/index';
5
- import { headerNavFontSizeOptions, headerNavTypographyOptions } from '../../../../theme-core/src/site-styles/index';
4
+ import type { BrandDisplayMode, HeaderNavFontSizePreference, HeaderNavTypographyPreference, HeaderInteractionPalettePreference, HeaderSelectionContext, LogoSizePolicy, SiteChromeBackgroundOverride } from '../../../../theme-core/src/site-styles/index';
6
5
  import { type StyleConfiguratorHistoryEntry } from './StyleConfigurator.state';
7
6
  import type { SiteStyleAccess } from './siteStyleAccess';
8
- import { type SiteChromeLookOption } from './siteChromeLookRows';
9
7
  import { type StyleConfiguratorInitialSelections } from './styleConfiguratorSnapshot';
10
8
  import type { SiteChromeEditableSurfaceKind } from './SiteChromeEditableSurface';
11
- import { type HeaderBrandDisplayOption, type HeaderLogoSizeOption } from './siteChromeBrandPreferences';
9
+ import type { SiteChromeCustomizeSurfaceState } from './siteChromeCustomizeTypes';
10
+ export type { SiteChromeBackgroundControlState, SiteChromeCustomizeSurfaceState, } from './siteChromeCustomizeTypes';
12
11
  import { type SiteStyleHistoryFailure, type SiteStyleHistorySkipReason } from './siteStyleHistoryState';
13
12
  import { type SiteChromeQuickControlHistoryFailure, type SiteChromeQuickControlHistorySkipReason } from './siteChromeQuickControlHistoryState';
14
13
  type SiteStyleHistoryController = Readonly<{
@@ -44,50 +43,6 @@ type SiteChromeQuickControlApplyOutcome = Readonly<{
44
43
  kind: 'skipped';
45
44
  reason: SiteChromeQuickControlHistorySkipReason | 'superseded';
46
45
  }> | SiteChromeQuickControlHistoryFailure;
47
- export type SiteChromeBackgroundControlState = Readonly<{
48
- available: boolean;
49
- current: SiteChromeBackgroundOverride;
50
- currentLabel: string;
51
- quickTokens: readonly SiteChromeBackgroundColorToken[];
52
- advancedTokens: readonly SiteChromeBackgroundColorToken[];
53
- }>;
54
- export type SiteChromeCustomizeSurfaceState = Readonly<{
55
- kind: 'unavailable';
56
- }> | Readonly<{
57
- kind: 'available';
58
- surface: 'header';
59
- label: string;
60
- currentLayoutId: HeaderLayoutId;
61
- currentLayoutLabel: string;
62
- layoutOptions: readonly SiteChromeLookOption<HeaderLayoutId>[];
63
- currentId: HeaderStyleId;
64
- currentLabel: string;
65
- options: readonly SiteChromeLookOption<HeaderStyleId>[];
66
- brandDisplay: BrandDisplayMode;
67
- brandDisplayOptions: readonly HeaderBrandDisplayOption[];
68
- brandSizeLabel: string;
69
- logoSize: LogoSizePolicy;
70
- logoSizeOptions: readonly HeaderLogoSizeOption[];
71
- menuFont: HeaderNavTypographyPreference;
72
- menuFontOptions: typeof headerNavTypographyOptions;
73
- menuFontSize: HeaderNavFontSizePreference;
74
- menuFontSizeOptions: typeof headerNavFontSizeOptions;
75
- diagnostics: readonly string[];
76
- background: SiteChromeBackgroundControlState;
77
- failure: string | null;
78
- applyAllowed: boolean;
79
- }> | Readonly<{
80
- kind: 'available';
81
- surface: 'footer';
82
- label: string;
83
- currentId: FooterLookId | null;
84
- currentLabel: string;
85
- options: readonly SiteChromeLookOption<FooterLookId | null>[];
86
- diagnostics: readonly string[];
87
- background: SiteChromeBackgroundControlState;
88
- failure: string | null;
89
- applyAllowed: boolean;
90
- }>;
91
46
  type SiteChromeCustomizeContextValue = Readonly<{
92
47
  canOpenDesignEditor: boolean;
93
48
  getSurfaceState: (surface: SiteChromeEditableSurfaceKind) => SiteChromeCustomizeSurfaceState;
@@ -97,6 +52,7 @@ type SiteChromeCustomizeContextValue = Readonly<{
97
52
  setHeaderLogoSize: (value: LogoSizePolicy) => void;
98
53
  setHeaderMenuFont: (value: HeaderNavTypographyPreference) => void;
99
54
  setHeaderMenuFontSize: (value: HeaderNavFontSizePreference) => void;
55
+ setHeaderInteractionPalette: (value: HeaderInteractionPalettePreference) => void;
100
56
  cycleSurfaceBackground: (surface: SiteChromeEditableSurfaceKind, direction: 'prev' | 'next') => void;
101
57
  chooseSurfaceBackground: (surface: SiteChromeEditableSurfaceKind, override: SiteChromeBackgroundOverride) => void;
102
58
  siteStyleHistory: SiteStyleHistoryController;
@@ -118,4 +74,3 @@ export type SiteChromeCustomizeProviderProps = Readonly<{
118
74
  }>;
119
75
  export declare function SiteChromeCustomizeProvider({ children, siteId, apiClient, theme, themeId, selectionId, selectionVersion, selectionUpdatedAt, initialSelections, headerSelectionContext, siteStyleAccess, canOpenDesignEditor, }: SiteChromeCustomizeProviderProps): React.JSX.Element;
120
76
  export declare function useSiteChromeCustomizeOptional(): SiteChromeCustomizeContextValue | null;
121
- export {};
@@ -0,0 +1,8 @@
1
+ import type { HeaderInteractionPalettePreference, HeaderStyleId } from '../../../../theme-core/src/site-styles/index';
2
+ import { resolveHeaderInteractionPaletteControl } from '../../../../theme-core/src/site-styles/index';
3
+ type HeaderInteractionPaletteSurfaceState = Readonly<{
4
+ interactionPalette: ReturnType<typeof resolveHeaderInteractionPaletteControl>;
5
+ diagnostics: readonly string[];
6
+ }>;
7
+ export declare function headerInteractionPaletteSurfaceState(styleId: HeaderStyleId, preference: HeaderInteractionPalettePreference): HeaderInteractionPaletteSurfaceState;
8
+ export {};
@@ -0,0 +1,15 @@
1
+ import type { Theme } from "../../../../theme-core/src/index";
2
+ export type PreviewThemeRoles = Readonly<{
3
+ /** Base theme for site-style saves and configurator state. */
4
+ persistenceTheme: Theme;
5
+ /** Theme the preview document renders with (may be page-adapted). */
6
+ documentTheme: Theme;
7
+ }>;
8
+ /**
9
+ * Splits the preview theme inputs into their two distinct roles so the
10
+ * page-adapted render theme can never reach the persistence path.
11
+ */
12
+ export declare function resolvePreviewThemeRoles(input: {
13
+ theme: Theme;
14
+ renderTheme?: Theme | null;
15
+ }): PreviewThemeRoles;
@@ -0,0 +1,54 @@
1
+ import type { BrandDisplayMode, FooterLookId, HeaderInteractionPaletteControlState, HeaderLayoutId, HeaderNavFontSizePreference, HeaderNavTypographyPreference, HeaderStyleId, LogoSizePolicy, SiteChromeBackgroundColorToken, SiteChromeBackgroundOverride } from '../../../../theme-core/src/site-styles/index';
2
+ import type { HeaderBrandDisplayOption, HeaderLogoSizeOption } from './siteChromeBrandPreferences';
3
+ import type { SiteChromeLookOption } from './siteChromeLookRows';
4
+ export type SiteChromeBackgroundControlState = Readonly<{
5
+ available: boolean;
6
+ current: SiteChromeBackgroundOverride;
7
+ currentLabel: string;
8
+ quickTokens: readonly SiteChromeBackgroundColorToken[];
9
+ advancedTokens: readonly SiteChromeBackgroundColorToken[];
10
+ }>;
11
+ export type SiteChromeCustomizeSurfaceState = Readonly<{
12
+ kind: 'unavailable';
13
+ }> | Readonly<{
14
+ kind: 'available';
15
+ surface: 'header';
16
+ label: string;
17
+ currentLayoutId: HeaderLayoutId;
18
+ currentLayoutLabel: string;
19
+ layoutOptions: readonly SiteChromeLookOption<HeaderLayoutId>[];
20
+ currentId: HeaderStyleId;
21
+ currentLabel: string;
22
+ options: readonly SiteChromeLookOption<HeaderStyleId>[];
23
+ brandDisplay: BrandDisplayMode;
24
+ brandDisplayOptions: readonly HeaderBrandDisplayOption[];
25
+ brandSizeLabel: string;
26
+ logoSize: LogoSizePolicy;
27
+ logoSizeOptions: readonly HeaderLogoSizeOption[];
28
+ menuFont: HeaderNavTypographyPreference;
29
+ menuFontOptions: readonly Readonly<{
30
+ value: HeaderNavTypographyPreference;
31
+ label: string;
32
+ }>[];
33
+ menuFontSize: HeaderNavFontSizePreference;
34
+ menuFontSizeOptions: readonly Readonly<{
35
+ value: HeaderNavFontSizePreference;
36
+ label: string;
37
+ }>[];
38
+ interactionPalette: HeaderInteractionPaletteControlState;
39
+ diagnostics: readonly string[];
40
+ background: SiteChromeBackgroundControlState;
41
+ failure: string | null;
42
+ applyAllowed: boolean;
43
+ }> | Readonly<{
44
+ kind: 'available';
45
+ surface: 'footer';
46
+ label: string;
47
+ currentId: FooterLookId | null;
48
+ currentLabel: string;
49
+ options: readonly SiteChromeLookOption<FooterLookId | null>[];
50
+ diagnostics: readonly string[];
51
+ background: SiteChromeBackgroundControlState;
52
+ failure: string | null;
53
+ applyAllowed: boolean;
54
+ }>;
@@ -1,12 +1,21 @@
1
1
  import { type CuratedSiteStyle } from '../../../../theme-core/src/site-styles/previewCompiler';
2
- import { type FooterLookId, type HeaderLayoutId, type HeaderLookId, type HeaderSelectionContext, type HeaderStyleId, type LookCustomizationWritePlan } from '../../../../theme-core/src/site-styles/index';
2
+ import { type FooterLookId, type HeaderLayoutId, type HeaderLookId, type HeaderSelectionContext, type HeaderStyleAvailability, type HeaderStyleId, type LookCustomizationWritePlan } from '../../../../theme-core/src/site-styles/index';
3
3
  import type { SelectionSnapshot, StyleConfiguratorState } from './StyleConfigurator.state';
4
- export type SiteChromeLookOption<TId extends string | null> = Readonly<{
4
+ export type SiteChromeLookUnavailableReason = Extract<HeaderStyleAvailability, {
5
+ kind: 'unavailable';
6
+ }>['reason'] | 'unknown-header-style';
7
+ type SiteChromeLookOptionBase<TId extends string | null> = Readonly<{
5
8
  id: TId;
6
9
  label: string;
7
10
  description?: string;
8
- available: boolean;
9
11
  }>;
12
+ export type SiteChromeLookOption<TId extends string | null> = SiteChromeLookOptionBase<TId> & (Readonly<{
13
+ available: true;
14
+ unavailableReason?: never;
15
+ }> | Readonly<{
16
+ available: false;
17
+ unavailableReason: SiteChromeLookUnavailableReason;
18
+ }>);
10
19
  export type SiteChromeLookCatalogOption<TId extends string> = Readonly<{
11
20
  id: TId;
12
21
  label: string;
@@ -33,6 +42,7 @@ type SiteChromeLookModelInput = Readonly<{
33
42
  headerSelectionContext?: Partial<HeaderSelectionContext>;
34
43
  }>;
35
44
  export declare function buildSiteChromeLookModels(input: SiteChromeLookModelInput): SiteChromeLookModels;
45
+ export declare function siteChromeLookUnavailableReasonLabel(reason: SiteChromeLookUnavailableReason): string;
36
46
  export declare function cycleSiteChromeLookId<TId extends string>(options: readonly SiteChromeLookOption<TId | null>[], currentId: TId | null, direction: 'prev' | 'next'): TId | null | undefined;
37
47
  export declare function cycleableSiteChromeOptions<TId extends string>(options: readonly SiteChromeLookOption<TId | null>[]): readonly SiteChromeLookOption<TId | null>[];
38
48
  export type SiteChromeLookSelectionCommand = Readonly<{
@@ -0,0 +1,3 @@
1
+ import { type HeaderNavPreferences } from '../../../../theme-core/src/site-styles/index';
2
+ import type { SiteChromeQuickControlHistoryEntry, SiteChromeQuickControlNavTarget } from './siteChromeQuickControlHistoryState';
3
+ export declare function quickControlHistoryEntryFromNavPreferenceChange(previous: HeaderNavPreferences, next: HeaderNavPreferences, target: SiteChromeQuickControlNavTarget): SiteChromeQuickControlHistoryEntry | null;
@@ -1,5 +1,5 @@
1
1
  import { type HistoryState } from '../../../../content-editor/src/index';
2
- import { type BrandDisplayMode, type FooterLookId, type HeaderNavFontSizePreference, type HeaderNavPreferences, type HeaderNavTypographyPreference, type LogoSizePolicy, type SiteChromeBackgroundOverride, type SiteChromeBackgroundPreferences } from '../../../../theme-core/src/site-styles/index';
2
+ import { type BrandDisplayMode, type FooterLookId, type HeaderNavFontSizePreference, type HeaderNavPreferences, type HeaderNavTypographyPreference, type HeaderInteractionPalettePreference, type LogoSizePolicy, type SiteChromeBackgroundOverride, type SiteChromeBackgroundPreferences } from '../../../../theme-core/src/site-styles/index';
3
3
  import type { SelectionSnapshot } from './StyleConfigurator.state';
4
4
  import type { HeaderBrandPreferences } from './siteChromeBrandPreferences';
5
5
  type HeaderLayoutSelection = Pick<SelectionSnapshot, 'headerLayoutId' | 'headerStyleId' | 'headerLookId'>;
@@ -40,6 +40,10 @@ export type SiteChromeQuickControlHistoryEntry = Readonly<{
40
40
  kind: 'header-menu-font-size';
41
41
  previous: HeaderNavFontSizePreference;
42
42
  next: HeaderNavFontSizePreference;
43
+ }> | Readonly<{
44
+ kind: 'header-interaction-palette';
45
+ previous: HeaderInteractionPalettePreference;
46
+ next: HeaderInteractionPalettePreference;
43
47
  }>;
44
48
  export type SiteChromeQuickControlHistoryPresent = Readonly<{
45
49
  selection: SelectionSnapshot;
@@ -108,7 +112,7 @@ export type SiteChromeQuickControlHistoryFailure = Readonly<{
108
112
  }>;
109
113
  export type SiteChromeQuickControlSelectionTarget = 'header-layout' | 'header-style' | 'footer-look';
110
114
  export type SiteChromeQuickControlBrandTarget = 'header-brand-display' | 'header-logo-size';
111
- export type SiteChromeQuickControlNavTarget = 'header-menu-font' | 'header-menu-font-size';
115
+ export type SiteChromeQuickControlNavTarget = 'header-menu-font' | 'header-menu-font-size' | 'header-interaction-palette';
112
116
  export type SiteChromeQuickControlBackgroundTarget = 'header-background' | 'footer-background';
113
117
  export declare function createSiteChromeQuickControlHistoryState(present: SiteChromeQuickControlHistoryPresentInput): SiteChromeQuickControlHistoryState;
114
118
  export declare function recordSiteChromeQuickControlHistoryEntry(state: SiteChromeQuickControlHistoryState, input: Readonly<{
@@ -119,7 +123,6 @@ export declare function recordSiteChromeQuickControlHistoryEntry(state: SiteChro
119
123
  export declare function quickControlHistoryEntryFromSelectionChange(previous: SelectionSnapshot, next: SelectionSnapshot, target: SiteChromeQuickControlSelectionTarget): SiteChromeQuickControlHistoryEntry | null;
120
124
  export declare function quickControlHistoryEntryFromBrandPreferenceChange(previous: HeaderBrandPreferences, next: HeaderBrandPreferences, target: SiteChromeQuickControlBrandTarget): SiteChromeQuickControlHistoryEntry | null;
121
125
  export declare function quickControlHistoryEntryFromBackgroundPreferenceChange(previous: SiteChromeBackgroundPreferences, next: SiteChromeBackgroundPreferences, target: SiteChromeQuickControlBackgroundTarget): SiteChromeQuickControlHistoryEntry | null;
122
- export declare function quickControlHistoryEntryFromNavPreferenceChange(previous: HeaderNavPreferences, next: HeaderNavPreferences, target: SiteChromeQuickControlNavTarget): SiteChromeQuickControlHistoryEntry | null;
123
126
  export declare function beginSiteChromeQuickControlHistoryUndo(state: SiteChromeQuickControlHistoryState): SiteChromeQuickControlHistoryBeginResult;
124
127
  export declare function beginSiteChromeQuickControlHistoryRedo(state: SiteChromeQuickControlHistoryState): SiteChromeQuickControlHistoryBeginResult;
125
128
  export declare function confirmSiteChromeQuickControlHistoryMutation(state: SiteChromeQuickControlHistoryState, persisted: SiteChromeQuickControlHistoryPresentInput): SiteChromeQuickControlHistoryState;
@@ -1,16 +1,17 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import type { ApiClient } from '../../../../api/src/request';
3
- import { type BookingOfferingPresetSummary, type MediaAssetIndexItem, type Theme } from '../../../../blocks/src/index';
3
+ import { type BookingOfferingPresetSummary, type Theme } from '../../../../blocks/src/index';
4
4
  import type { FieldWidgetComponent } from '../../../../block-form/src/client/index';
5
5
  import type { SdkConfigForBlockPicker } from '../../../../editor-blocks/src/index';
6
6
  import { __testUtils, createPreviewEntryPickerAdapter, createPreviewLinkAdapters, createPreviewReferenceAdapters, createPreviewSiteOptionAdapters } from './widgetAdapters';
7
- export declare function PreviewFormProvider({ siteId: rawSiteId, theme, previewClient, bearerToken, supabaseUrl, mediaAssets, bookingOfferingPresets, sdkConfig, children, }: {
7
+ /**
8
+ * Composes preview form widget providers beneath PreviewShell's media authority.
9
+ * Consumers rendering this directly must provide an ancestor MediaEditorProvider.
10
+ */
11
+ export declare function PreviewFormProvider({ siteId: rawSiteId, theme, previewClient, bookingOfferingPresets, sdkConfig, children, }: {
8
12
  siteId: string;
9
13
  theme?: Theme | null;
10
14
  previewClient: ApiClient;
11
- bearerToken?: string | null;
12
- supabaseUrl?: string;
13
- mediaAssets?: MediaAssetIndexItem[];
14
15
  bookingOfferingPresets?: readonly BookingOfferingPresetSummary[] | null;
15
16
  sdkConfig?: SdkConfigForBlockPicker | null;
16
17
  children: ReactNode;
@@ -1,3 +1,5 @@
1
+ import type { ManagementFooterContent } from '../../../../client/management/types';
2
+ import { writeFooterContentAfterPush } from '../../../content/footerFile';
1
3
  import type { EnvTarget } from '../../../helpers';
2
4
  import type { OutputContext } from '../../../output';
3
5
  import { type FooterDiff } from '../../../sync/diff';
@@ -5,6 +7,12 @@ import type { PushOptions } from '../options';
5
7
  export type FooterPushExecutionResult = Readonly<{
6
8
  success: boolean;
7
9
  }>;
10
+ export type FooterLocalRefreshResult = Readonly<{
11
+ kind: 'refreshed';
12
+ }> | Readonly<{
13
+ kind: 'failed';
14
+ cause: unknown;
15
+ }>;
8
16
  type FooterPushDecision = Readonly<{
9
17
  kind: 'unchanged';
10
18
  }> | Readonly<{
@@ -21,6 +29,7 @@ export declare function footerDryRunPayload(diff: FooterDiff): Readonly<{
21
29
  dryRun: true;
22
30
  changes: readonly string[];
23
31
  }>;
32
+ export declare function refreshLocalFooterAfterPush(contentDir: string, footer: ManagementFooterContent, writeFooter?: typeof writeFooterContentAfterPush): Promise<FooterLocalRefreshResult>;
24
33
  export declare function executeFooterPush(input: Readonly<{
25
34
  output: OutputContext;
26
35
  target: EnvTarget;
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ export type LocalFooterContent = import('../../../../api/src/sdkContracts').SdkFooterContent;
3
+ export declare const localFooterContentSchema: z.ZodObject<{
4
+ composition: z.ZodPipe<z.ZodUnknown, z.ZodTransform<Readonly<{
5
+ schemaVersion: 1;
6
+ sections: readonly import("../../../../core/src/index").FooterSection[];
7
+ }>, unknown>>;
8
+ revision: z.ZodNumber;
9
+ }, z.core.$strict>;
10
+ export declare function writeFooterContentAfterPush(contentDir: string, footer: LocalFooterContent): Promise<string>;
@@ -12,8 +12,9 @@ import { type LocalEventScheduleIdentity } from './localEventSchedule';
12
12
  export type { LocalEventOccurrence, LocalEventScheduleIdentity } from './localEventSchedule';
13
13
  export { InvalidLocalEventScheduleIdentityError } from './localEventSchedule';
14
14
  import { type ValidatedThemeForPersistence } from '../../../../blocks/src/index';
15
+ import type { RichTextDoc } from '../../../../core/src/index';
15
16
  import type { EventPaymentTermsInput } from '../../client/management/types';
16
- import { type RichTextDoc } from '../../../../core/src/index';
17
+ import { type LocalFooterContent } from './footerFile';
17
18
  export interface LocalEntry {
18
19
  identifier: string;
19
20
  data: Record<string, unknown>;
@@ -125,10 +126,7 @@ export interface LocalTheme {
125
126
  *
126
127
  * Footer links are managed via navigation (footer menu), not this file.
127
128
  */
128
- export interface LocalFooterContent {
129
- /** Rich text content in ProseMirror JSON format. Set to null to clear. */
130
- bottomText?: RichTextDoc | null;
131
- }
129
+ export type { LocalFooterContent } from './footerFile';
132
130
  export interface LocalVenueAddress {
133
131
  line1?: string | null;
134
132
  line2?: string | null;
@@ -1,6 +1,6 @@
1
1
  import { type Result, type SiteId } from '../../../../core/src/index';
2
2
  import { type SiteCommandOf } from '../../../../site-commands/src/index';
3
- import type { ManagementClient } from '../../client/management/types';
3
+ import type { ManagementClient, ManagementFooterContent } from '../../client/management/types';
4
4
  import type { LocalFooterContent } from '../content/reader';
5
5
  import type { EnvTarget } from '../helpers';
6
6
  import type { FooterDiff } from '../sync/diff';
@@ -20,7 +20,16 @@ export type FooterSiteCommandType = 'upsertFooterContent';
20
20
  export type FooterSiteCommand = SiteCommandOf<FooterSiteCommandType>;
21
21
  export type FooterSiteCommandPlan = CliFooterCommandCompileSuccess['plan'];
22
22
  export type CliFooterCommandExecutionError = CliCommandExecutionError<FooterSiteCommandType>;
23
- export type CliFooterCommandExecutionResult = CliCommandExecutionResult<FooterSiteCommandType>;
23
+ export type CliFooterCommandApplication = Readonly<{
24
+ kind: 'not-applied';
25
+ }> | Readonly<{
26
+ kind: 'applied';
27
+ authoritativeFooter: ManagementFooterContent | null;
28
+ }>;
29
+ export type CliFooterCommandExecutionResult = Readonly<{
30
+ execution: CliCommandExecutionResult<FooterSiteCommandType>;
31
+ application: CliFooterCommandApplication;
32
+ }>;
24
33
  export declare const footerSiteCommandTypes: readonly ["upsertFooterContent"];
25
34
  export type FooterCommandReportSubject = Readonly<{
26
35
  identifier: 'footer';
@@ -36,7 +45,10 @@ export declare function executeFooterCommandPlanAsSyncResult(input: Readonly<{
36
45
  client: Pick<ManagementClient, 'footer'>;
37
46
  compiledPlan: FooterCommandCompiledPlan;
38
47
  onBeforeExecute?: (commandCount: number) => void;
39
- }>): Promise<SyncResult>;
48
+ }>): Promise<Readonly<{
49
+ syncResult: SyncResult;
50
+ application: CliFooterCommandApplication;
51
+ }>>;
40
52
  export declare function executeFooterCommandPlanAsReport(input: Readonly<{
41
53
  client: Pick<ManagementClient, 'footer'>;
42
54
  compiledPlan: FooterCommandCompiledPlan;
@@ -0,0 +1,2 @@
1
+ /** Combine signals into one that aborts when any input aborts. */
2
+ export declare function combineAbortSignals(...signals: AbortSignal[]): AbortSignal;
@@ -9,7 +9,7 @@ import type { SiteCommandOf } from '../../../../site-commands/src/index';
9
9
  import type { SdkEventPricing, SdkEventPricingInput, SdkEventTicketTypeInput } from '../../../../api/src/sdk-event-pricing';
10
10
  import type { SdkEventPaymentTerms, SdkEventPaymentTermsInput } from '../../../../api/src/sdk-event-payment-terms';
11
11
  import type { SdkEventUpsertBody } from '../../../../api/src/sdk-event-upsert';
12
- import type { SdkAddEventOccurrenceRequest, SdkEventOccurrenceCapacityIntent, SdkEventOccurrenceScheduleInput, SdkManagementEventOccurrence, SdkManagementEventSeries, SdkPullEventSeries } from '../../../../api/src/sdkContracts';
12
+ import type { SdkAddEventOccurrenceRequest, SdkEventOccurrenceCapacityIntent, SdkEventOccurrenceScheduleInput, SdkManagementEventOccurrence, SdkManagementEventSeries, SdkFooterContent, SdkPullEventSeries } from '../../../../api/src/sdkContracts';
13
13
  import type { SdkPullTruncationMeta } from '../../../../api/src/sdkContracts';
14
14
  import type { SdkCapabilitiesResponse, SdkCatalogBlocksResponse, SdkCatalogContentTypesResponse, SdkCatalogThemeResponse, SdkDemoContentResponse } from '../../../../api/src/sdkContracts';
15
15
  import type { SdkEntryPublishErrorCode, SdkPagePublishErrorCode, SdkPublicationOutcome } from '../../../../api/src/sdkContracts';
@@ -542,27 +542,18 @@ export interface ThemeStyleSelectionApplyResult {
542
542
  }
543
543
  /**
544
544
  * Footer content for SDK management operations.
545
- * A narrow legal-text command. The CMS maps this onto the V1 footer composition's
546
- * legal module without exposing or replacing the aggregate.
545
+ * The footer sync boundary carries the complete composition and its optimistic
546
+ * concurrency revision.
547
547
  */
548
- export interface FooterContent {
549
- /** Rich text content in ProseMirror JSON format */
550
- bottomText?: RichTextDoc;
551
- }
548
+ export type FooterContent = ManagementFooterContent;
552
549
  /**
553
550
  * Footer content as returned from CMS.
554
551
  */
555
- export interface ManagementFooterContent {
556
- /** Rich text content in ProseMirror JSON format */
557
- bottomText: RichTextDoc;
558
- }
552
+ export type ManagementFooterContent = SdkFooterContent;
559
553
  /**
560
554
  * Input for upserting footer content.
561
555
  */
562
- export interface FooterContentUpsertInput {
563
- /** Set to null to clear. */
564
- bottomText?: RichTextDoc | null;
565
- }
556
+ export type FooterContentUpsertInput = NonNullable<APIEndpoints['sdkUpsertFooter']['body']>;
566
557
  export interface PulledFooter {
567
558
  footer: ManagementFooterContent | null;
568
559
  meta: {
@@ -1,6 +1,6 @@
1
- import type { CheckRedirectResponse, EntriesResponse, EntryResponse, PageResponse, PublicBookingServicesResponse, PublicWeeklySlotAvailabilityResponse, PublicFormResponse, PublicFormsResponse, PublicProductsResponse, PublicTeamMembersResponse, PublicMembershipsResponse, PublicPassesResponse, PublicEventDetailsResponse, PublicEventsResponse, ResolveEventOccurrenceResponse, RouteDecisionResponse, RouteOutcomeResponse, RoutableContentResponse, SiteResponse, SitemapRoutesResponse, PublicProductCategorySelector } from '../public-api/contracts';
1
+ import type { CheckRedirectResponse, EntriesResponse, EntryResponse, PageResponse, PublicBookingServicesResponse, PublicWeeklySlotAvailabilityResponse, PublicFormResponse, PublicFormsResponse, PublicProductsResponse, PublicTeamMembersResponse, PublicMembershipsResponse, PublicPassesResponse, PublicEventDetailsResponse, PublicEventsResponse, PublicWholeSeriesOfferingResponse, ResolveEventOccurrenceResponse, RouteDecisionResponse, RouteOutcomeResponse, RoutableContentResponse, SiteResponse, SitemapRoutesResponse, PublicProductCategorySelector } from '../public-api/contracts';
2
2
  import type { PublishedRuntimeCacheAdapter, PublishedRuntimeCacheAdapterErrorKind } from './runtimeCachePolicy';
3
- export type { CheckRedirectResponse, EntriesResponse, EntryResponse, PageResponse, PublicBookingServicesResponse, PublicWeeklySlotAvailabilityResponse, PublicEventsResponse, PublicFormResponse, PublicFormsResponse, PublicProductsResponse, PublicTeamMembersResponse, PublicMembershipsResponse, PublicPassesResponse, PublicEventDetailsResponse, ResolveEventOccurrenceResponse, RouteDecisionResponse, RouteOutcomeResponse, RoutableContentResponse, SiteResponse, SitemapRoutesResponse, } from '../public-api/contracts';
3
+ export type { CheckRedirectResponse, EntriesResponse, EntryResponse, PageResponse, PublicBookingServicesResponse, PublicWeeklySlotAvailabilityResponse, PublicEventsResponse, PublicFormResponse, PublicFormsResponse, PublicProductsResponse, PublicTeamMembersResponse, PublicMembershipsResponse, PublicPassesResponse, PublicEventDetailsResponse, PublicWholeSeriesOfferingResponse, ResolveEventOccurrenceResponse, RouteDecisionResponse, RouteOutcomeResponse, RoutableContentResponse, SiteResponse, SitemapRoutesResponse, } from '../public-api/contracts';
4
4
  /**
5
5
  * Pagination metadata returned when `includeMeta: true`
6
6
  */
@@ -512,6 +512,14 @@ export interface RiverbankClient {
512
512
  seriesId?: string;
513
513
  includeOccurrenceId?: string;
514
514
  } & SdkMethodOptions): Promise<PublicEventDetailsResponse>;
515
+ /**
516
+ * Fetch one whole-series offering for a registration surface.
517
+ */
518
+ getPublicWholeSeriesOffering(params: {
519
+ siteId: string;
520
+ eventSeriesId: string;
521
+ stage?: string;
522
+ } & SdkMethodOptions): Promise<PublicWholeSeriesOfferingResponse>;
515
523
  /**
516
524
  * List public team members for a site (for Team Members block)
517
525
  */
@@ -0,0 +1,11 @@
1
+ import type { ApiClient, ApiResult } from '../../../api/src/public/index';
2
+ import type { RiverbankClient } from './types';
3
+ type WholeSeriesReadDeps = Readonly<{
4
+ apiClient: ApiClient;
5
+ resilientFetchData: <T>(cacheKey: string, fetcher: (signal: AbortSignal) => Promise<ApiResult<T>>, options: Readonly<{
6
+ signal?: AbortSignal;
7
+ }>) => Promise<T>;
8
+ }>;
9
+ type WholeSeriesReadOperations = Pick<RiverbankClient, 'getPublicWholeSeriesOffering'>;
10
+ export declare function createWholeSeriesReadOperations(deps: WholeSeriesReadDeps): WholeSeriesReadOperations;
11
+ export {};
@@ -45,7 +45,7 @@ export type BlockCategory = 'marketing' | 'content' | 'blog' | 'media' | 'layout
45
45
  *
46
46
  * Re-exported from `@riverbankcms/blocks` (single source of truth).
47
47
  */
48
- export declare const SUPPORTED_LOADER_ENDPOINTS: readonly ["listPublishedEntries", "getPublishedEntryPreview", "listPublicEvents", "listPublicRecurringSchedule", "getPublicEventDetails", "listPublicWholeSeriesOfferings", "listPublicRouteCandidates", "listPublicTeamMembers", "listPublicProducts", "listPublicPasses", "listPublicMemberships", "getPublicFormById", "getPublicBookingServices", "getPublicWeeklySlotAvailability"];
48
+ export declare const SUPPORTED_LOADER_ENDPOINTS: readonly ["listPublishedEntries", "getPublishedEntryPreview", "listPublicEvents", "listPublicRecurringSchedule", "getPublicEventDetails", "listPublicWholeSeriesOfferings", "getPublicWholeSeriesOffering", "listPublicRouteCandidates", "listPublicTeamMembers", "listPublicProducts", "listPublicPasses", "listPublicMemberships", "getPublicFormById", "getPublicBookingServices", "getPublicWeeklySlotAvailability"];
49
49
  export type SdkLoaderEndpoint = (typeof SUPPORTED_LOADER_ENDPOINTS)[number];
50
50
  export type LoaderParamBinding = {
51
51
  $bind: {
@@ -137,6 +137,7 @@ export declare const sdkLoaderEndpointSchema: z.ZodEnum<{
137
137
  getPublicBookingServices: "getPublicBookingServices";
138
138
  getPublicWeeklySlotAvailability: "getPublicWeeklySlotAvailability";
139
139
  listPublicEvents: "listPublicEvents";
140
+ getPublicWholeSeriesOffering: "getPublicWholeSeriesOffering";
140
141
  listPublicPasses: "listPublicPasses";
141
142
  listPublicMemberships: "listPublicMemberships";
142
143
  listPublicProducts: "listPublicProducts";
@@ -226,6 +227,7 @@ export declare const sdkConfigLoaderSchema: z.ZodObject<{
226
227
  getPublicBookingServices: "getPublicBookingServices";
227
228
  getPublicWeeklySlotAvailability: "getPublicWeeklySlotAvailability";
228
229
  listPublicEvents: "listPublicEvents";
230
+ getPublicWholeSeriesOffering: "getPublicWholeSeriesOffering";
229
231
  listPublicPasses: "listPublicPasses";
230
232
  listPublicMemberships: "listPublicMemberships";
231
233
  listPublicProducts: "listPublicProducts";
@@ -291,6 +293,7 @@ export declare const sdkDataLoadersSchema: z.ZodOptional<z.ZodRecord<z.ZodString
291
293
  getPublicBookingServices: "getPublicBookingServices";
292
294
  getPublicWeeklySlotAvailability: "getPublicWeeklySlotAvailability";
293
295
  listPublicEvents: "listPublicEvents";
296
+ getPublicWholeSeriesOffering: "getPublicWholeSeriesOffering";
294
297
  listPublicPasses: "listPublicPasses";
295
298
  listPublicMemberships: "listPublicMemberships";
296
299
  listPublicProducts: "listPublicProducts";
@@ -0,0 +1,16 @@
1
+ import type { ButtonVariant, SectionStylesContent } from './system-block-content';
2
+ export type EventRegistrationContent = {
3
+ heading?: string | null;
4
+ showSessions?: boolean | null;
5
+ description?: unknown;
6
+ showPrice?: boolean | null;
7
+ maxTickets?: '1' | '2' | '3' | '5' | '10' | null;
8
+ showCapacity?: boolean | null;
9
+ successMessage?: string | null;
10
+ showVenue?: boolean | null;
11
+ membershipMessage?: string | null;
12
+ waitlistMessage?: string | null;
13
+ buttonText?: string | null;
14
+ buttonVariant?: ButtonVariant | null;
15
+ _sectionStyles?: SectionStylesContent;
16
+ };
@@ -5,7 +5,10 @@
5
5
  * require importing internal blocks package types.
6
6
  */
7
7
  import type { InlineText, LinkValue, Media } from './content';
8
+ import type { EventRegistrationContent } from './event-registration-content';
9
+ export type { EventRegistrationContent } from './event-registration-content';
8
10
  import type { Brand, EventCategoryId, RichTextDoc, VenueId } from '../../../core/src/index';
11
+ import type { SiteFooterContent as BlocksSiteFooterContent } from '../../../blocks/src/system/blocks/site-footer';
9
12
  type UnknownRecord = Record<string, unknown>;
10
13
  type ImageMedia = Omit<Media, 'type'> & {
11
14
  type: 'image';
@@ -246,18 +249,6 @@ export type EventListingContent = {
246
249
  emptyMessage?: string | null;
247
250
  _sectionStyles?: SectionStylesContent;
248
251
  };
249
- export type EventRegistrationContent = {
250
- heading?: string | null;
251
- description?: unknown;
252
- maxTickets?: '1' | '2' | '3' | '5' | '10' | null;
253
- showVenue?: boolean | null;
254
- showCapacity?: boolean | null;
255
- successMessage?: string | null;
256
- waitlistMessage?: string | null;
257
- buttonText?: string | null;
258
- buttonVariant?: ButtonVariant | null;
259
- _sectionStyles?: SectionStylesContent;
260
- };
261
252
  export type EventSpotlightContent = {
262
253
  heading?: string | null;
263
254
  description?: unknown;
@@ -505,9 +496,7 @@ export type CheckoutContent = {
505
496
  emptyStateText?: string | null;
506
497
  _sectionStyles?: SectionStylesContent;
507
498
  };
508
- export type SiteFooterContent = Readonly<{
509
- showBusinessAddress?: boolean | null;
510
- }>;
499
+ export type SiteFooterContent = BlocksSiteFooterContent;
511
500
  export type SiteHeaderMode = 'default' | 'hidden';
512
501
  export type SiteHeaderContent = Readonly<{
513
502
  mode?: SiteHeaderMode | null;
@@ -1,24 +1,11 @@
1
1
  import type { AddressedLocationValue, BusinessAddress } from '../../../core/src/index';
2
2
  import type { APIEndpoints, SdkRuntimePageSurfaceSubject as ApiSdkRuntimePageSurfaceSubject, SiteBySlugResponse as ApiSiteBySlugResponse, SiteBookingOfferingPresetSummary as ApiSiteBookingOfferingPresetSummary } from '../../../api/src/index';
3
- import type { Media, MediaAssetIndexItem, SiteFooterContent, SiteHeaderContent } from '../contracts';
3
+ import type { MediaAssetIndexItem, SiteFooterContent, SiteHeaderContent } from '../contracts';
4
4
  import type { CompiledBoundaryRuntime } from '../../../theme-core/src/site-styles/index';
5
5
  import type { BlockFieldConfig as SdkBlockFieldConfig, BlockFieldOptionsMap as SdkBlockFieldOptionsMap, ContentConfig as SdkContentConfig, ContainerOptionsConfig as SdkContainerOptionsConfig, FieldSelectOption as SdkFieldSelectOption, SdkCustomBlock, SdkThemeConfig, SdkThemePalette, SectionBackground as SdkSectionBackground, SectionOptionsConfig as SdkSectionOptionsConfig, SiteStyleConfig as SdkSiteStyleConfig } from '../config/types';
6
- export type PublicTeamMemberSummary = {
7
- id: string;
8
- name: string;
9
- roleLabel: string | null;
10
- summary: string | null;
11
- profilePath: string | null;
12
- };
13
- export type PublicTeamMemberPhoto = (Omit<Media, 'type'> & {
14
- type: 'image';
15
- }) | null;
16
- export type PublicTeamMemberBlockItem = PublicTeamMemberSummary & {
17
- _type: 'teamMember';
18
- role: string | null;
19
- bio: string | null;
20
- photo: PublicTeamMemberPhoto;
21
- };
6
+ import type { PublicTeamMemberBlockItem } from './teamMemberContracts';
7
+ export type { PublicTeamMemberBlockItem, PublicTeamMemberPhoto, PublicTeamMemberSummary, } from './teamMemberContracts';
8
+ export type { PublicWholeSeriesOfferingResponse } from './wholeSeriesContracts';
22
9
  export type RuntimeSiteSdkConfig = {
23
10
  theme?: SdkThemeConfig;
24
11
  customBlocks?: SdkCustomBlock[];
@@ -900,4 +887,3 @@ export type PublicSdkContainerOptionsConfig = SdkContainerOptionsConfig;
900
887
  export type PublicSdkBlockFieldConfig = SdkBlockFieldConfig;
901
888
  export type PublicSdkBlockFieldOptionsMap = SdkBlockFieldOptionsMap;
902
889
  export type PublicSdkFieldSelectOption = SdkFieldSelectOption;
903
- export {};
@@ -0,0 +1,17 @@
1
+ import type { Media } from '../contracts';
2
+ export type PublicTeamMemberSummary = {
3
+ id: string;
4
+ name: string;
5
+ roleLabel: string | null;
6
+ summary: string | null;
7
+ profilePath: string | null;
8
+ };
9
+ export type PublicTeamMemberPhoto = (Omit<Media, 'type'> & {
10
+ type: 'image';
11
+ }) | null;
12
+ export type PublicTeamMemberBlockItem = PublicTeamMemberSummary & {
13
+ _type: 'teamMember';
14
+ role: string | null;
15
+ bio: string | null;
16
+ photo: PublicTeamMemberPhoto;
17
+ };
@@ -0,0 +1,2 @@
1
+ import type { APIEndpoints } from '../../../api/src/index';
2
+ export type PublicWholeSeriesOfferingResponse = NonNullable<APIEndpoints['getPublicWholeSeriesOffering']['response']>;
@@ -3,6 +3,7 @@ import type { EntrySubrouteContextData, MediaAssetIndexItem, OccurrenceContextDa
3
3
  import type { SdkCustomBlock } from '../config/types';
4
4
  import type { BlockOverrides } from './overrides';
5
5
  import type { SiteBookingOfferingPresetSummary } from '../public-api/contracts';
6
+ import { type BlocksImageResolveContextInput, type BlocksMediaAssetIndexItem } from './mediaAssets';
6
7
  import type { EventPageSurfaceSubjectWire } from '../../../core/src/index';
7
8
  export type ComponentRegistry = Record<string, React.ElementType>;
8
9
  export type PageRendererDataContext = {
@@ -26,6 +27,11 @@ export type PageRendererDataContext = {
26
27
  apiBaseUrl?: string;
27
28
  portalToken?: string | null;
28
29
  previewToken?: string | null;
30
+ eventRegistrationOverlayEnabled?: boolean;
31
+ };
32
+ export type BlocksPageRendererDataContext = Omit<PageRendererDataContext, 'mediaAssets' | 'imageResolveContext'> & {
33
+ mediaAssets?: readonly BlocksMediaAssetIndexItem[];
34
+ imageResolveContext?: BlocksImageResolveContextInput;
29
35
  };
30
36
  export type SdkConfigForRenderer = {
31
37
  customBlocks?: SdkCustomBlock[];
@@ -44,4 +50,5 @@ export type PageRendererProps = {
44
50
  sdkConfig?: SdkConfigForRenderer | null;
45
51
  customBlocks?: SdkCustomBlock[];
46
52
  };
53
+ export declare function toBlocksPageRendererDataContext(dataContext: PageRendererDataContext): BlocksPageRendererDataContext;
47
54
  export declare function PageRenderer(props: PageRendererProps): React.ReactElement;