@riverbankcms/sdk 0.129.1 → 0.130.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 (229) hide show
  1. package/README.md +32 -10
  2. package/dist/{PreviewEditorSidebar-DceRseRV.mjs → PreviewEditorSidebar-DiEpbOdw.mjs} +313 -239
  3. package/dist/{PreviewEditorUI-BNunq3kk.mjs → PreviewEditorUI-C6MvxnIa.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-B1kbhaJD.mjs → PreviewQueryProvider-C2rnoPz6.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-Bt87-62u.mjs → SdkPreviewModeRuntime-DRXA_m5L.mjs} +208 -211
  6. package/dist/{SiteChromeCustomizeContext-BLl-OlL4.mjs → SiteChromeCustomizeContext-BTHdv5_-.mjs} +6204 -6239
  7. package/dist/_dts/ai/src/contracts/proposalPrimitives.d.ts +52 -0
  8. package/dist/_dts/ai/src/contracts/proposals.d.ts +4950 -29100
  9. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +32572 -0
  10. package/dist/_dts/api/src/appointmentSetup.d.ts +21 -9
  11. package/dist/_dts/api/src/bookingConfig.d.ts +4 -46
  12. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +13 -11
  13. package/dist/_dts/api/src/bookingRecords.d.ts +1 -0
  14. package/dist/_dts/api/src/contentRuntime.d.ts +3 -5
  15. package/dist/_dts/api/src/endpoints.d.ts +14 -21
  16. package/dist/_dts/api/src/eventManagementContracts.d.ts +76 -0
  17. package/dist/_dts/api/src/index.d.ts +3 -2
  18. package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +22 -47
  19. package/dist/_dts/api/src/sdk-event-schedule.d.ts +5 -0
  20. package/dist/_dts/api/src/sdk-event-upsert.d.ts +112 -20
  21. package/dist/_dts/api/src/sdkContracts.d.ts +38 -66
  22. package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +35 -0
  23. package/dist/_dts/api/src/sdkThemeWire.d.ts +2423 -501
  24. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +5 -0
  25. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +23 -37
  26. package/dist/_dts/blocks/src/contracts/index.d.ts +2 -0
  27. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +6 -8
  28. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +36 -14
  29. package/dist/_dts/blocks/src/index.d.ts +5 -3
  30. package/dist/_dts/blocks/src/lib/media.d.ts +9 -539
  31. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -2
  32. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +135 -90
  33. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -2
  34. package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +37 -4
  35. package/dist/_dts/blocks/src/system/blocks/site-footer-nav-groups-layout.d.ts +1 -1
  36. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +3 -0
  37. package/dist/_dts/blocks/src/system/componentFactory.d.ts +5 -5
  38. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +8 -6
  39. package/dist/_dts/blocks/src/system/customize/serializeBackgroundOverride.d.ts +3 -0
  40. package/dist/_dts/blocks/src/system/fields/background.d.ts +2 -20
  41. package/dist/_dts/blocks/src/system/fields/backgroundContent.d.ts +17 -0
  42. package/dist/_dts/blocks/src/system/fields/backgroundContentAudit.d.ts +20 -0
  43. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +5 -33
  44. package/dist/_dts/blocks/src/system/fragments/builder.d.ts +1 -0
  45. package/dist/_dts/blocks/src/system/fragments/types.d.ts +1 -0
  46. package/dist/_dts/blocks/src/system/helpers/index.d.ts +1 -1
  47. package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +10 -45
  48. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +7 -4
  49. package/dist/_dts/blocks/src/system/manifest/fieldValidation/writeCanonicalization.d.ts +4 -0
  50. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +123 -55
  51. package/dist/_dts/blocks/src/system/registry.d.ts +2 -0
  52. package/dist/_dts/blocks/src/system/runtime/api/types/shop.d.ts +2 -37
  53. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +61 -24
  54. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +30 -12
  55. package/dist/_dts/blocks/src/system/runtime/header/enhanceHeaderSection.d.ts +3 -5
  56. package/dist/_dts/blocks/src/system/runtime/header/headerScrollRuntime.d.ts +2 -0
  57. package/dist/_dts/blocks/src/system/runtime/header/runtimeContract.d.ts +22 -0
  58. package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/display.d.ts +9 -2
  59. package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/view.d.ts +3 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.frame.d.ts +21 -0
  62. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.server.d.ts +2 -0
  63. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +41 -12
  64. package/dist/_dts/blocks/src/system/runtime/nodes/shop.pass-contract.d.ts +3 -0
  65. package/dist/_dts/blocks/src/system/runtime/nodes/shop.state.d.ts +3 -3
  66. package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +3 -1
  67. package/dist/_dts/blocks/src/system/transforms/registry/background.d.ts +1 -1
  68. package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +3 -1
  69. package/dist/_dts/blocks/src/system/transforms/registry/core.d.ts +4 -1
  70. package/dist/_dts/blocks/src/system/transforms/registry/headerRuntime.d.ts +3 -0
  71. package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +2 -1
  72. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +0 -3
  73. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +41 -43
  74. package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +4 -2
  75. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +2 -17
  76. package/dist/_dts/content-editor/src/FooterNavigationLayoutControl.d.ts +5 -0
  77. package/dist/_dts/content-editor/src/footerComposer.d.ts +2 -1
  78. package/dist/_dts/content-editor/src/footerComposerPanelTypes.d.ts +21 -0
  79. package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +2 -1
  80. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +11 -1
  81. package/dist/_dts/content-editor/src/useFooterNavigationLayout.d.ts +26 -0
  82. package/dist/_dts/content-model/src/templates/defaults.d.ts +7 -0
  83. package/dist/_dts/core/src/booking-date-time.d.ts +2 -2
  84. package/dist/_dts/core/src/booking-time-zone.d.ts +6 -0
  85. package/dist/_dts/core/src/footer-composition-types.d.ts +4 -4
  86. package/dist/_dts/core/src/footer-navigation-layout.d.ts +4 -0
  87. package/dist/_dts/core/src/index.d.ts +1 -0
  88. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +38 -18
  89. package/dist/_dts/preview-next/src/client/preview/FooterSidebarDisclosure.d.ts +8 -0
  90. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +5 -5
  91. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +15 -17
  92. package/dist/_dts/preview-next/src/client/preview/PreviewFooterEditorPanel.d.ts +20 -0
  93. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +3 -5
  94. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +3 -5
  95. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -4
  96. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +3 -5
  97. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +6 -7
  98. package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +7 -7
  99. package/dist/_dts/preview-next/src/client/preview/siteChromeCustomizeTypes.d.ts +4 -4
  100. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +2 -2
  101. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +12 -11
  102. package/dist/_dts/preview-next/src/client/preview/siteChromeSelectionRows.d.ts +53 -0
  103. package/dist/_dts/preview-next/src/client/preview/siteStyleAccess.d.ts +1 -6
  104. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +6 -15
  105. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +4 -6
  106. package/dist/_dts/sdk/src/config/types.d.ts +1 -0
  107. package/dist/_dts/sdk/src/config/validation.d.ts +2 -0
  108. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +4 -41
  109. package/dist/_dts/sdk/src/next/catch-all-theme-admission.d.ts +23 -0
  110. package/dist/_dts/sdk/src/next/index.d.ts +8 -6
  111. package/dist/_dts/sdk/src/next/resolveTheme.d.ts +1 -2
  112. package/dist/_dts/sdk/src/next/types.d.ts +10 -0
  113. package/dist/_dts/sdk/src/public-api/contracts.d.ts +2 -16
  114. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +3 -2
  115. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +5 -3
  116. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +1 -1
  117. package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +4 -2
  118. package/dist/_dts/sdk/src/rendering/index.d.ts +2 -0
  119. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +6 -1
  120. package/dist/_dts/sdk/src/rendering/server.d.ts +2 -0
  121. package/dist/_dts/sdk/src/rendering/themeAdmission.d.ts +11 -0
  122. package/dist/_dts/sdk/src/version.d.ts +1 -1
  123. package/dist/_dts/theme-core/src/blockOverrides.d.ts +1 -1
  124. package/dist/_dts/theme-core/src/boxBackgroundSchema.d.ts +184 -0
  125. package/dist/_dts/theme-core/src/buttons/buttonColourContract.d.ts +96 -0
  126. package/dist/_dts/theme-core/src/buttons/buttonSurfaceContext.d.ts +78 -0
  127. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
  128. package/dist/_dts/theme-core/src/buttons/parseThemeForPersistence.d.ts +2 -2
  129. package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +9 -57
  130. package/dist/_dts/theme-core/src/buttons/resolvedButtonCss.d.ts +6 -3
  131. package/dist/_dts/theme-core/src/buttons/styles/domain.d.ts +8 -7
  132. package/dist/_dts/theme-core/src/buttons/styles/recipes/quietArrow.d.ts +1 -0
  133. package/dist/_dts/theme-core/src/buttons/styles/recipes/staticRecipes.d.ts +11 -0
  134. package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +12 -0
  135. package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +5 -0
  136. package/dist/_dts/theme-core/src/buttons/types.d.ts +51 -4
  137. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  138. package/dist/_dts/theme-core/src/lib/media.d.ts +583 -10
  139. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +5117 -1433
  140. package/dist/_dts/theme-core/src/schema.d.ts +5079 -2005
  141. package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +6 -14
  142. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +29 -102
  143. package/dist/_dts/theme-core/src/site-styles/customizableSurfaces.d.ts +3 -76
  144. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +4 -4
  145. package/dist/_dts/theme-core/src/site-styles/generatedDesignPipeline.d.ts +3 -7
  146. package/dist/_dts/theme-core/src/site-styles/generatedDesignPipelineHelpers.d.ts +17 -0
  147. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
  148. package/dist/_dts/theme-core/src/site-styles/headerLayoutCatalog.d.ts +281 -0
  149. package/dist/_dts/theme-core/src/site-styles/headerLayoutResolution.d.ts +13 -0
  150. package/dist/_dts/theme-core/src/site-styles/headerLayoutStyles.d.ts +6 -0
  151. package/dist/_dts/theme-core/src/site-styles/{headerLookTypes.d.ts → headerLayoutTypes.d.ts} +16 -86
  152. package/dist/_dts/theme-core/src/site-styles/headerNavStyles.d.ts +6 -0
  153. package/dist/_dts/theme-core/src/site-styles/headerOpeningForeground.d.ts +7 -4
  154. package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +2 -2
  155. package/dist/_dts/theme-core/src/site-styles/headerStyleCompiler.d.ts +2 -2
  156. package/dist/_dts/theme-core/src/site-styles/imageSurfaceBackground.d.ts +14 -0
  157. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -1
  158. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +14 -41
  159. package/dist/_dts/theme-core/src/site-styles/runtimeBackgroundResolution.d.ts +23 -0
  160. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +8 -6
  161. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +1 -1
  162. package/dist/client/{CourseRegistrationWizard-xRmA7REV.mjs → CourseRegistrationWizard-Bvtz9G9g.mjs} +5 -5
  163. package/dist/client/{DiscountCodeDisclosure-B9vriL5C.mjs → DiscountCodeDisclosure-Ur-Xx1U_.mjs} +1 -1
  164. package/dist/client/{EventCombined.client-BgVnVTlz.mjs → EventCombined.client-EhscD4U6.mjs} +2 -2
  165. package/dist/client/{EventListing.client-CqdsO7jO.mjs → EventListing.client-Bn26cFTY.mjs} +2 -2
  166. package/dist/client/{LeafletStaticMap-CKPxot9M.mjs → LeafletStaticMap-BUw9Ntzr.mjs} +1 -1
  167. package/dist/client/{StepIndicator-DGCYuBJ1.mjs → StepIndicator-BfbdiVQI.mjs} +2 -2
  168. package/dist/client/{accordion-BfN5Eqd-.mjs → accordion-CjIeof73.mjs} +1 -1
  169. package/dist/client/{bookingForm-DOvCpBFP.mjs → bookingForm-DwEeovf_.mjs} +5 -5
  170. package/dist/client/bookings.mjs +1028 -1038
  171. package/dist/client/{carousel-DPNmiH0f.mjs → carousel-BMrfgOba.mjs} +1 -1
  172. package/dist/client/{cart--egVXlrR.mjs → cart-rXEdxTdb.mjs} +3 -3
  173. package/dist/client/{checkout-DywWtMcq.mjs → checkout-D3JlSzh3.mjs} +3 -3
  174. package/dist/client/client.mjs +18345 -18311
  175. package/dist/client/{courseRegistration-Dk9qFVwt.mjs → courseRegistration-DO5XvMAA.mjs} +2 -2
  176. package/dist/client/{eventCalendar-Bkz2HjlS.mjs → eventCalendar-DO6rTqCn.mjs} +4 -4
  177. package/dist/client/{eventCombined-D4kipYWg.mjs → eventCombined-bJ3i_ovU.mjs} +2 -2
  178. package/dist/client/{eventDetails-Dz_5ix2Q.mjs → eventDetails-CCbrXE7o.mjs} +3 -3
  179. package/dist/client/{eventListing-D0vm-zST.mjs → eventListing-Bdlt9YTm.mjs} +2 -2
  180. package/dist/client/{eventRegistration-Cw1E4Q4p.mjs → eventRegistration-B02lt6iY.mjs} +6 -6
  181. package/dist/client/{form-C2Zf1n3K.mjs → form-DrUBAAox.mjs} +1 -1
  182. package/dist/client/{headerSection-CP05gzdc.mjs → headerSection-MzqvHL6T.mjs} +151 -104
  183. package/dist/client/hooks.mjs +4532 -4216
  184. package/dist/client/{locationMap-Cl3x9PYJ.mjs → locationMap-DG8BxTBm.mjs} +2 -2
  185. package/dist/client/{newsletterForm-DyEJoClm.mjs → newsletterForm-BzO-Td3p.mjs} +1 -1
  186. package/dist/client/{pricing-DGuNR1W4.mjs → pricing-NgK7ozkg.mjs} +1 -1
  187. package/dist/client/{productDetail-Cq-HrGew.mjs → productDetail-CfQ7rhVK.mjs} +3 -3
  188. package/dist/client/{productList-DbB3jwqd.mjs → productList-C23rOLUi.mjs} +3 -3
  189. package/dist/client/{propsDecoder-CiTuhUwY.mjs → propsDecoder-CAZdhwjs.mjs} +2166 -2157
  190. package/dist/client/rendering/client.mjs +3600 -4118
  191. package/dist/client/rendering/islands.mjs +18 -18
  192. package/dist/client/rendering.mjs +15950 -15890
  193. package/dist/client/{scrollToBlock-CShkRqab.mjs → scrollToBlock-DSSqVQr1.mjs} +1 -1
  194. package/dist/client/{shop-Cu4Ib-ZA.mjs → shop-BMToKLK7.mjs} +34 -23
  195. package/dist/client/{shop-commerce-BzpsOdh7.mjs → shop-commerce-DB4JRKmp.mjs} +4 -4
  196. package/dist/client/{shop-commerce-store-DaE7Fhj8.mjs → shop-commerce-store-BOqSIOuc.mjs} +1 -1
  197. package/dist/client/{shopShared-cF0c20vB.mjs → shopShared-B6SK9DZv.mjs} +9 -3
  198. package/dist/client/{useEventFilters-QZ3HMgaJ.mjs → useEventFilters-CULOa4nB.mjs} +2 -2
  199. package/dist/client/{usePolling-BKf0GcE-.mjs → usePolling-BGG_8-jl.mjs} +2 -2
  200. package/dist/preview-next/before-render.mjs +16 -27
  201. package/dist/preview-next/client/runtime.mjs +4 -4
  202. package/dist/preview-next/middleware.mjs +16 -27
  203. package/dist/{previewAuthStore-BesgU5Xu.mjs → previewAuthStore-_GXFRg2W.mjs} +16 -27
  204. package/dist/{sdk-runtime-C20CVWbb.mjs → sdk-runtime-hhSOMShR.mjs} +2 -2
  205. package/dist/{separator-BE3NCquy.mjs → separator-flRaFc14.mjs} +1 -1
  206. package/dist/server/components.mjs +17770 -17866
  207. package/dist/server/config-validation.mjs +4711 -4421
  208. package/dist/server/config.mjs +4715 -4425
  209. package/dist/server/data.mjs +4515 -4216
  210. package/dist/server/date-time.mjs +22 -13
  211. package/dist/server/index.mjs +17 -28
  212. package/dist/server/next.mjs +17586 -17650
  213. package/dist/server/page-converter.mjs +3759 -4390
  214. package/dist/server/prebuild.mjs +1 -1
  215. package/dist/server/rendering/server.mjs +18952 -19064
  216. package/dist/server/rendering.mjs +17824 -17901
  217. package/dist/server/routing.mjs +4748 -4365
  218. package/dist/server/server.mjs +4591 -4269
  219. package/dist/server/theme-bridge.mjs +1393 -1886
  220. package/dist/server/theme.mjs +736 -605
  221. package/dist/styles/index.css +22 -3
  222. package/package.json +1 -1
  223. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +0 -66
  224. package/dist/_dts/theme-core/src/site-styles/headerLayoutStyleCatalog.d.ts +0 -254
  225. package/dist/_dts/theme-core/src/site-styles/headerLegacyLooks.d.ts +0 -372
  226. package/dist/_dts/theme-core/src/site-styles/headerLookBranding.d.ts +0 -106
  227. package/dist/_dts/theme-core/src/site-styles/headerLookSelection.d.ts +0 -2
  228. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +0 -7
  229. package/dist/_dts/theme-core/src/site-styles/headerStyleCompilerPrimitives.d.ts +0 -23
@@ -0,0 +1,4 @@
1
+ export declare const footerNavigationLayouts: readonly ["stack", "inline-wrap"];
2
+ export type FooterNavigationLayout = (typeof footerNavigationLayouts)[number];
3
+ export declare const defaultFooterNavigationLayout: FooterNavigationLayout;
4
+ export declare function normalizeFooterNavigationLayout(value: 'stack' | 'inline' | 'inline-wrap' | null | undefined): FooterNavigationLayout;
@@ -32,6 +32,7 @@ export * from './public-url-validation';
32
32
  export * from './public-profile';
33
33
  export * from './rich-text';
34
34
  export * from './footer-composition';
35
+ export * from './footer-navigation-layout';
35
36
  export * from './footer-arrangement';
36
37
  export * from './footer-composition-types';
37
38
  export * from './footer-engagement';
@@ -16214,9 +16214,8 @@ export type Database = {
16214
16214
  button_style_options: Json;
16215
16215
  created_at: string;
16216
16216
  footer_look_id: string | null;
16217
- header_layout_id: string | null;
16218
- header_look_id: string | null;
16219
- header_style_id: string | null;
16217
+ header_layout_id: string;
16218
+ header_style_id: string;
16220
16219
  id: string;
16221
16220
  is_current: boolean;
16222
16221
  overrides: Json;
@@ -16231,9 +16230,8 @@ export type Database = {
16231
16230
  button_style_options?: Json;
16232
16231
  created_at?: string;
16233
16232
  footer_look_id?: string | null;
16234
- header_layout_id?: string | null;
16235
- header_look_id?: string | null;
16236
- header_style_id?: string | null;
16233
+ header_layout_id: string;
16234
+ header_style_id: string;
16237
16235
  id?: string;
16238
16236
  is_current?: boolean;
16239
16237
  overrides?: Json;
@@ -16248,9 +16246,8 @@ export type Database = {
16248
16246
  button_style_options?: Json;
16249
16247
  created_at?: string;
16250
16248
  footer_look_id?: string | null;
16251
- header_layout_id?: string | null;
16252
- header_look_id?: string | null;
16253
- header_style_id?: string | null;
16249
+ header_layout_id?: string;
16250
+ header_style_id?: string;
16254
16251
  id?: string;
16255
16252
  is_current?: boolean;
16256
16253
  overrides?: Json;
@@ -18791,9 +18788,8 @@ export type Database = {
18791
18788
  p_button_style_id: string;
18792
18789
  p_button_style_options: Json;
18793
18790
  p_footer_look_id?: string;
18794
- p_header_layout_id?: string;
18795
- p_header_look_id?: string;
18796
- p_header_style_id?: string;
18791
+ p_header_layout_id: string;
18792
+ p_header_style_id: string;
18797
18793
  p_selection_id?: string;
18798
18794
  p_site_id: string;
18799
18795
  p_theme: Json;
@@ -19723,6 +19719,14 @@ export type Database = {
19723
19719
  status: string;
19724
19720
  }[];
19725
19721
  };
19722
+ create_managed_event: {
19723
+ Args: {
19724
+ p_command: Json;
19725
+ p_site_id: string;
19726
+ p_user_id: string;
19727
+ };
19728
+ Returns: Json;
19729
+ };
19726
19730
  create_media_asset_with_storage_quota: {
19727
19731
  Args: {
19728
19732
  p_asset: Json;
@@ -19867,6 +19871,18 @@ export type Database = {
19867
19871
  };
19868
19872
  Returns: string;
19869
19873
  };
19874
+ delete_managed_event_v1_atomic: {
19875
+ Args: {
19876
+ p_actor_user_id: string;
19877
+ p_event_offering_id: string;
19878
+ p_now: string;
19879
+ p_site_id: string;
19880
+ };
19881
+ Returns: {
19882
+ outcome: string;
19883
+ runs_count: number;
19884
+ }[];
19885
+ };
19870
19886
  delete_native_event_series_page_v1_atomic: {
19871
19887
  Args: {
19872
19888
  p_actor_user_id: string;
@@ -20887,9 +20903,8 @@ export type Database = {
20887
20903
  p_button_style_id: string;
20888
20904
  p_button_style_options: Json;
20889
20905
  p_footer_look_id?: string;
20890
- p_header_layout_id?: string;
20891
- p_header_look_id?: string;
20892
- p_header_style_id?: string;
20906
+ p_header_layout_id: string;
20907
+ p_header_style_id: string;
20893
20908
  p_site_id: string;
20894
20909
  p_theme: Json;
20895
20910
  p_user_id: string;
@@ -20971,6 +20986,12 @@ export type Database = {
20971
20986
  replayed: boolean;
20972
20987
  }[];
20973
20988
  };
20989
+ read_managed_event_inventory_snapshot_v1: {
20990
+ Args: {
20991
+ p_site_id: string;
20992
+ };
20993
+ Returns: Json;
20994
+ };
20974
20995
  read_published_runtime_cache_entry: {
20975
20996
  Args: {
20976
20997
  p_cache_key: string;
@@ -21375,9 +21396,8 @@ export type Database = {
21375
21396
  p_button_style_options: Json;
21376
21397
  p_expected_selection_version: number;
21377
21398
  p_footer_look_id?: string;
21378
- p_header_layout_id?: string;
21379
- p_header_look_id?: string;
21380
- p_header_style_id?: string;
21399
+ p_header_layout_id: string;
21400
+ p_header_style_id: string;
21381
21401
  p_selection_id?: string;
21382
21402
  p_selection_overrides: Json;
21383
21403
  p_selection_overrides_mode: string;
@@ -0,0 +1,8 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type EditorUiState } from '../../../../content-editor/src/index';
3
+ import type { PreviewZustandStoreApi } from './storeTypes';
4
+ export declare function FooterSidebarDisclosure({ editorStore, hidden, children, }: {
5
+ editorStore: PreviewZustandStoreApi<EditorUiState>;
6
+ hidden: boolean;
7
+ children: ReactNode;
8
+ }): import("react").JSX.Element;
@@ -4,10 +4,10 @@ import type { SdkConfigForBlockPicker } from '../../../../editor-blocks/src/bloc
4
4
  import type { BlockEditorHandle, BlockItem } from '../../../../editor-blocks/src/block-editor/types';
5
5
  import type { BookingOfferingPresetSummary, Theme } from '../../../../blocks/src/index';
6
6
  import { type EditorUiState, type ZoomLevel } from '../../../../content-editor/src/index';
7
- import { type ViewportMode, type ViewportWidth } from './PreviewViewportControls';
7
+ import type { ViewportMode, ViewportWidth } from './PreviewViewportControls';
8
8
  import type { PreviewZustandStoreApi } from './storeTypes';
9
- import { type PreviewLinkedEntrySidebarSection } from './PreviewSidebarSection';
10
- type PageBlockEditorPanelProps = {
9
+ import type { PreviewLinkedEntrySidebarSection } from './PreviewSidebarSection';
10
+ export type PageBlockEditorPanelProps = {
11
11
  siteId: string;
12
12
  pageId: string;
13
13
  dashboardBaseUrl?: string | null;
@@ -21,6 +21,7 @@ type PageBlockEditorPanelProps = {
21
21
  linkedEntrySection?: PreviewLinkedEntrySidebarSection | null;
22
22
  designPanel?: ReactNode;
23
23
  designTakeoverActive?: boolean;
24
+ footerPanel?: ReactNode;
24
25
  sdkConfig?: SdkConfigForBlockPicker | null;
25
26
  bookingOfferingPresets?: readonly BookingOfferingPresetSummary[] | null;
26
27
  viewportMode: ViewportMode;
@@ -30,5 +31,4 @@ type PageBlockEditorPanelProps = {
30
31
  onViewportWidthChange: (width: ViewportWidth) => void;
31
32
  onZoomChange: (zoom: ZoomLevel) => void;
32
33
  };
33
- export declare function PageBlockEditorPanel({ siteId, pageId, dashboardBaseUrl, theme, apiClient, blockItems, uiStoreForBlockEditor, blockEditorRef, onBlocksChange, metadataPanel, linkedEntrySection, designPanel, designTakeoverActive, sdkConfig, bookingOfferingPresets, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: PageBlockEditorPanelProps): React.JSX.Element;
34
- export {};
34
+ export declare function PageBlockEditorPanel(props: PageBlockEditorPanelProps): React.JSX.Element;
@@ -1,15 +1,15 @@
1
- import React, { type ReactNode } from "react";
2
- import type { ApiClient } from "../../../../api/src/request";
3
- import type { SdkConfigForBlockPicker } from "../../../../editor-blocks/src/index";
4
- import type { SurfaceId } from "../../../../surfaces/src/index";
5
- import type { EntrySubrouteContextData, BookingOfferingPresetSummary, Theme } from "../../../../blocks/src/index";
6
- import { type ContentTypeSchema } from "../../../../content-model/src/index";
7
- import { type ZoomLevel } from "../../../../content-editor/src/index";
8
- import type { ButtonStyleSelection } from "../../../../theme-core/src/buttons/index";
9
- import type { FooterLookId, HeaderLayoutId, HeaderSelectionContext, HeaderLookId, HeaderStyleId } from "../../../../theme-core/src/site-styles/index";
10
- import type { ViewportMode, ViewportWidth } from "./PreviewViewportControls";
11
- import { type SiteStyleAccess } from "./siteStyleAccess";
12
- export type PreviewEditorSidebarTab = "editor" | "assistant";
1
+ import React, { type ReactNode } from 'react';
2
+ import type { ApiClient } from '../../../../api/src/request';
3
+ import type { SdkConfigForBlockPicker } from '../../../../editor-blocks/src/index';
4
+ import type { SurfaceId } from '../../../../surfaces/src/index';
5
+ import type { EntrySubrouteContextData, BookingOfferingPresetSummary, Theme } from '../../../../blocks/src/index';
6
+ import { type ContentTypeSchema } from '../../../../content-model/src/index';
7
+ import { type ZoomLevel } from '../../../../content-editor/src/index';
8
+ import type { ButtonStyleSelection } from '../../../../theme-core/src/buttons/index';
9
+ import type { FooterLookId, HeaderLayoutStyleSelection, HeaderLogoContext } from '../../../../theme-core/src/site-styles/index';
10
+ import type { ViewportMode, ViewportWidth } from './PreviewViewportControls';
11
+ import { type SiteStyleAccess } from './siteStyleAccess';
12
+ export type PreviewEditorSidebarTab = 'editor' | 'assistant';
13
13
  export type PreviewTemplateData = {
14
14
  name: string;
15
15
  description?: string | null;
@@ -35,11 +35,9 @@ export type PreviewEditorSidebarProps = {
35
35
  themeSelectionUpdatedAt?: string | null;
36
36
  /** Persisted Style configurator selections (Phase C / E). */
37
37
  themeSelectionButtonStyleSelection?: ButtonStyleSelection | null;
38
- themeSelectionHeaderLayoutId?: HeaderLayoutId | null;
39
- themeSelectionHeaderStyleId?: HeaderStyleId | null;
40
- themeSelectionHeaderLookId?: HeaderLookId | null;
38
+ themeSelectionHeaderSelection?: HeaderLayoutStyleSelection | null;
41
39
  themeSelectionFooterLookId?: FooterLookId | null;
42
- themeSelectionHeaderContext?: Partial<HeaderSelectionContext>;
40
+ themeSelectionHeaderLogo?: HeaderLogoContext;
43
41
  apiClient: ApiClient;
44
42
  bearerToken?: string | null;
45
43
  entrySubrouteContext?: EntrySubrouteContextData | null;
@@ -58,4 +56,4 @@ export type PreviewEditorSidebarProps = {
58
56
  onViewportWidthChange: (width: ViewportWidth) => void;
59
57
  onZoomChange: (zoom: ZoomLevel) => void;
60
58
  };
61
- export declare function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, theme, themeId, themeSelectionId, themeSelectionVersion, themeSelectionUpdatedAt, themeSelectionButtonStyleSelection, themeSelectionHeaderLayoutId, themeSelectionHeaderStyleId, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, apiClient, bearerToken, entrySubrouteContext, assistantPanel, sdkConfig, bookingOfferingPresets, siteStyleAccess, activeTab, onTabChange, onClose, onFooterSaved, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: PreviewEditorSidebarProps): React.JSX.Element;
59
+ export declare function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, theme, themeId, themeSelectionId, themeSelectionVersion, themeSelectionUpdatedAt, themeSelectionButtonStyleSelection, themeSelectionHeaderSelection, themeSelectionFooterLookId, themeSelectionHeaderLogo, apiClient, bearerToken, entrySubrouteContext, assistantPanel, sdkConfig, bookingOfferingPresets, siteStyleAccess, activeTab, onTabChange, onClose, onFooterSaved, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: PreviewEditorSidebarProps): React.JSX.Element;
@@ -0,0 +1,20 @@
1
+ import type { ApiClient } from '../../../../api/src/request';
2
+ import type { Theme } from '../../../../blocks/src/index';
3
+ import { type PreviewInspection } from '../../../../content-editor/src/index';
4
+ import type { SiteStyleAccess } from './siteStyleAccess';
5
+ type FooterInspection = Extract<PreviewInspection, Readonly<{
6
+ kind: 'footer' | 'footer-module';
7
+ }>>;
8
+ export declare function PreviewFooterEditorPanel({ apiClient, siteId, dashboardBaseUrl, theme, selectionId, selectionVersion, siteStyleAccess, inspection, canEdit, onSaved, }: Readonly<{
9
+ apiClient: ApiClient;
10
+ siteId: string;
11
+ dashboardBaseUrl: string | null;
12
+ theme: Theme | null;
13
+ selectionId: string | null;
14
+ selectionVersion: number | null;
15
+ siteStyleAccess: SiteStyleAccess;
16
+ inspection: FooterInspection | null;
17
+ canEdit: boolean;
18
+ onSaved?: () => void;
19
+ }>): import("react").JSX.Element;
20
+ export {};
@@ -1,7 +1,7 @@
1
1
  import React, { type ComponentProps, type ReactNode } from 'react';
2
2
  import { BlockApiProvider } from '../../../../blocks/src/client';
3
3
  import type { ButtonStyleSelection } from '../../../../theme-core/src/buttons/index';
4
- import type { FooterLookId, HeaderLayoutId, HeaderSelectionContext, HeaderLookId, HeaderStyleId } from '../../../../theme-core/src/site-styles/index';
4
+ import type { FooterLookId, HeaderLayoutStyleSelection, HeaderLogoContext } from '../../../../theme-core/src/site-styles/index';
5
5
  import type { EntrySubrouteContextData, BookingOfferingPresetSummary, MediaAssetIndexItem, Theme } from '../../../../blocks/src/index';
6
6
  import type { ContentTypeSchema } from '../../../../content-model/src/index';
7
7
  import type { SdkConfigForBlockPicker } from '../../../../editor-blocks/src/index';
@@ -51,11 +51,9 @@ type PreviewShellCommonProps = {
51
51
  * complete palette state.
52
52
  */
53
53
  themeSelectionButtonStyleSelection?: ButtonStyleSelection | null;
54
- themeSelectionHeaderLayoutId?: HeaderLayoutId | null;
55
- themeSelectionHeaderStyleId?: HeaderStyleId | null;
56
- themeSelectionHeaderLookId?: HeaderLookId | null;
54
+ themeSelectionHeaderSelection?: HeaderLayoutStyleSelection | null;
57
55
  themeSelectionFooterLookId?: FooterLookId | null;
58
- themeSelectionHeaderContext?: Partial<HeaderSelectionContext>;
56
+ themeSelectionHeaderLogo?: HeaderLogoContext;
59
57
  pageId: string | null;
60
58
  routeId: string | null;
61
59
  entryData?: PreviewContentEntryData | null;
@@ -1,7 +1,7 @@
1
1
  import React, { type ReactNode } from 'react';
2
2
  import { type EntrySubrouteContextData, type BookingOfferingPresetSummary, type Theme } from '../../../../blocks/src/index';
3
3
  import type { ButtonStyleSelection } from '../../../../theme-core/src/buttons/index';
4
- import type { HeaderSelectionContext, FooterLookId, HeaderLayoutId, HeaderLookId, HeaderStyleId } from '../../../../theme-core/src/site-styles/index';
4
+ import type { HeaderLogoContext, FooterLookId, HeaderLayoutStyleSelection } from '../../../../theme-core/src/site-styles/index';
5
5
  import type { ContentTypeSchema } from '../../../../content-model/src/index';
6
6
  import type { ApiClient } from '../../../../api/src/request';
7
7
  import type { SdkConfigForBlockPicker } from '../../../../editor-blocks/src/index';
@@ -27,11 +27,9 @@ type PreviewShellLayoutCommonProps = {
27
27
  themeSelectionVersion?: number | null;
28
28
  themeSelectionUpdatedAt?: string | null;
29
29
  themeSelectionButtonStyleSelection?: ButtonStyleSelection | null;
30
- themeSelectionHeaderLayoutId?: HeaderLayoutId | null;
31
- themeSelectionHeaderStyleId?: HeaderStyleId | null;
32
- themeSelectionHeaderLookId?: HeaderLookId | null;
30
+ themeSelectionHeaderSelection?: HeaderLayoutStyleSelection | null;
33
31
  themeSelectionFooterLookId?: FooterLookId | null;
34
- themeSelectionHeaderContext?: Partial<HeaderSelectionContext>;
32
+ themeSelectionHeaderLogo?: HeaderLogoContext;
35
33
  isSiteLaunched: boolean;
36
34
  maintenanceModeEnabled: boolean;
37
35
  entrySubrouteContext?: EntrySubrouteContextData | null;
@@ -1,7 +1,7 @@
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, HeaderNavFontSizePreference, HeaderNavTypographyPreference, HeaderInteractionPalettePreference, HeaderSelectionContext, LogoSizePolicy, SiteChromeBackgroundOverride } from '../../../../theme-core/src/site-styles/index';
4
+ import type { BrandDisplayMode, HeaderNavFontSizePreference, HeaderNavTypographyPreference, HeaderInteractionPalettePreference, HeaderLogoContext, LogoSizePolicy, SiteChromeBackgroundOverride } from '../../../../theme-core/src/site-styles/index';
5
5
  import { type StyleConfiguratorHistoryEntry } from './StyleConfigurator.state';
6
6
  import type { SiteStyleAccess } from './siteStyleAccess';
7
7
  import { type StyleConfiguratorInitialSelections } from './styleConfiguratorSnapshot';
@@ -46,7 +46,7 @@ type SiteChromeQuickControlApplyOutcome = Readonly<{
46
46
  type SiteChromeCustomizeContextValue = Readonly<{
47
47
  canOpenDesignEditor: boolean;
48
48
  getSurfaceState: (surface: SiteChromeEditableSurfaceKind) => SiteChromeCustomizeSurfaceState;
49
- cycleSurfaceLook: (surface: SiteChromeEditableSurfaceKind, direction: 'prev' | 'next') => void;
49
+ cycleChromeSelection: (surface: SiteChromeEditableSurfaceKind, direction: 'prev' | 'next') => void;
50
50
  cycleHeaderLayout: (direction: 'prev' | 'next') => void;
51
51
  setHeaderBrandDisplay: (value: BrandDisplayMode) => void;
52
52
  setHeaderLogoSize: (value: LogoSizePolicy) => void;
@@ -68,9 +68,9 @@ export type SiteChromeCustomizeProviderProps = Readonly<{
68
68
  selectionVersion?: number | null;
69
69
  selectionUpdatedAt?: string | null;
70
70
  initialSelections: StyleConfiguratorInitialSelections & Readonly<Record<string, unknown>>;
71
- headerSelectionContext?: Partial<HeaderSelectionContext>;
71
+ headerLogoContext?: HeaderLogoContext;
72
72
  siteStyleAccess?: SiteStyleAccess;
73
73
  canOpenDesignEditor?: boolean;
74
74
  }>;
75
- export declare function SiteChromeCustomizeProvider({ children, siteId, apiClient, theme, themeId, selectionId, selectionVersion, selectionUpdatedAt, initialSelections, headerSelectionContext, siteStyleAccess, canOpenDesignEditor, }: SiteChromeCustomizeProviderProps): React.JSX.Element;
75
+ export declare function SiteChromeCustomizeProvider({ children, siteId, apiClient, theme, themeId, selectionId, selectionVersion, selectionUpdatedAt, initialSelections, headerLogoContext, siteStyleAccess, canOpenDesignEditor, }: SiteChromeCustomizeProviderProps): React.JSX.Element;
76
76
  export declare function useSiteChromeCustomizeOptional(): SiteChromeCustomizeContextValue | null;
@@ -1,8 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { ApiClient } from '../../../../api/src/request';
3
3
  import type { Theme } from '../../../../blocks/src/index';
4
- import { type HeaderSelectionContext } from '../../../../theme-core/src/site-styles/index';
5
- import { type VisibleSiteStyleAccess } from './siteStyleAccess';
4
+ import { type HeaderLogoContext } from '../../../../theme-core/src/site-styles/index';
6
5
  import { type StyleConfiguratorInitialSelections } from './styleConfiguratorSnapshot';
7
6
  export type StyleConfiguratorProps = Readonly<{
8
7
  siteId: string;
@@ -14,8 +13,7 @@ export type StyleConfiguratorProps = Readonly<{
14
13
  selectionUpdatedAt?: string | null;
15
14
  /** Server-persisted design selections. */
16
15
  initialSelections: StyleConfiguratorInitialSelections & Readonly<Record<string, unknown>>;
17
- headerSelectionContext?: Partial<HeaderSelectionContext>;
16
+ headerLogoContext?: HeaderLogoContext;
18
17
  onFocusedSurfaceChange?: (focused: boolean) => void;
19
- siteStyleAccess: VisibleSiteStyleAccess;
20
18
  }>;
21
- export declare function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVersion, selectionUpdatedAt, initialSelections, headerSelectionContext, onFocusedSurfaceChange, siteStyleAccess, }: StyleConfiguratorProps): React.JSX.Element;
19
+ export declare function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVersion, selectionUpdatedAt, initialSelections, headerLogoContext, onFocusedSurfaceChange, }: StyleConfiguratorProps): React.JSX.Element;
@@ -13,7 +13,7 @@
13
13
  import { type ButtonStyleSelection } from '../../../../theme-core/src/buttons/index';
14
14
  import type { Theme } from '../../../../blocks/src/index';
15
15
  import type { PaletteColors, KnownCuratedPaletteValueKey } from '../../../../theme-core/src/palette/index';
16
- import { type FooterLookId, type HeaderLayoutId, type HeaderLookId, type HeaderStyleId } from '../../../../theme-core/src/site-styles/index';
16
+ import { type CuratedSiteStyle, type FooterLookId, type HeaderLayoutId, type HeaderStyleId } from '../../../../theme-core/src/site-styles/index';
17
17
  import type { SelectionFallbackWarning, SiteStyleId } from '../../../../theme-core/src/site-styles/previewCompiler';
18
18
  import { type EditorStagedSessionCapabilities, type EditorStagedSessionState } from '../../../../content-editor/src/editorTransactionState';
19
19
  export type StyleConfiguratorSaveStatus = Readonly<{
@@ -31,7 +31,7 @@ export type StyleConfiguratorExpandedRow = 'style' | 'header-layout' | 'header-s
31
31
  /**
32
32
  * Configurator-level notices that aren't compiler selection fallback warnings.
33
33
  * Kept separate from `SelectionFallbackWarning` (which comes from
34
- * `compileSiteThemeFromSelections`) so the layers stay clean: warnings are
34
+ * `compileReplacementSiteThemeFromSelections`) so the layers stay clean: warnings are
35
35
  * compiler-emitted, notices are UI-level decisions the configurator makes.
36
36
  */
37
37
  export type StyleConfiguratorNotice = never;
@@ -60,7 +60,6 @@ export type SelectionSnapshot = Readonly<{
60
60
  selectionUpdatedAt?: string | null;
61
61
  headerLayoutId: HeaderLayoutId;
62
62
  headerStyleId: HeaderStyleId;
63
- headerLookId: HeaderLookId | null;
64
63
  footerLookId: FooterLookId | null;
65
64
  buttonStyleSelection: ButtonStyleSelection;
66
65
  palette: Theme['palette'];
@@ -103,7 +102,7 @@ export declare function deriveStyleConfiguratorCapabilities(state: StyleConfigur
103
102
  export declare function styleConfiguratorHistoryEntryForPersistedSelection(state: StyleConfiguratorState, persisted: SelectionSnapshot): StyleConfiguratorHistoryEntry | null;
104
103
  export declare function previewSiteStyle(state: StyleConfiguratorState, siteStyleId: SiteStyleId): StyleConfiguratorState;
105
104
  export declare function previewButtonStyle(state: StyleConfiguratorState, buttonStyleSelection: ButtonStyleSelection): StyleConfiguratorState;
106
- export declare function previewHeaderLayout(state: StyleConfiguratorState, headerLayoutId: HeaderLayoutId): StyleConfiguratorState;
105
+ export declare function previewHeaderLayout(state: StyleConfiguratorState, siteStyle: CuratedSiteStyle, headerLayoutId: HeaderLayoutId): StyleConfiguratorState;
107
106
  export declare function previewHeaderStyle(state: StyleConfiguratorState, headerStyleId: HeaderStyleId): StyleConfiguratorState;
108
107
  export declare function previewFooterLook(state: StyleConfiguratorState, footerLookId: FooterLookId | null): StyleConfiguratorState;
109
108
  export declare function previewTypography(state: StyleConfiguratorState, typography: ThemeTypography): StyleConfiguratorState;
@@ -113,14 +112,14 @@ export declare function previewCuratedPalette(state: StyleConfiguratorState, val
113
112
  export declare function setPaletteColors(state: StyleConfiguratorState, colors: PaletteColors): StyleConfiguratorState;
114
113
  /**
115
114
  * Records the post-compile resolved selection + any fallback warnings.
116
- * Used after `compileSiteThemeFromSelections` runs against a new site style:
117
- * the resolver may have auto-picked a different button style or chrome look
115
+ * Used after `compileReplacementSiteThemeFromSelections` runs against a new site style:
116
+ * the resolver may have auto-picked a different button or chrome selection
118
117
  * when the user's previous selection is not offered for the new style. The
119
118
  * concrete palette is carried independently in the compiled Theme.
120
119
  *
121
120
  */
122
121
  export declare function applyResolvedSelections(state: StyleConfiguratorState, input: Readonly<{
123
- resolved: Pick<SelectionSnapshot, 'buttonStyleSelection' | 'headerLayoutId' | 'headerStyleId' | 'headerLookId' | 'typography'>;
122
+ resolved: Pick<SelectionSnapshot, 'buttonStyleSelection' | 'headerLayoutId' | 'headerStyleId' | 'typography'>;
124
123
  warnings: ReadonlyArray<SelectionFallbackWarning>;
125
124
  }>): StyleConfiguratorState;
126
125
  export declare function cancelPreview(state: StyleConfiguratorState): StyleConfiguratorState;
@@ -1,5 +1,5 @@
1
1
  import type { Theme } from '../../../../blocks/src/index';
2
- import type { BrandDisplayMode, HeaderBrandPreferences, HeaderSelectionContext, LogoSizePolicy } from '../../../../theme-core/src/site-styles/index';
2
+ import type { BrandDisplayMode, HeaderBrandPreferences, HeaderLogoContext, LogoSizePolicy } from '../../../../theme-core/src/site-styles/index';
3
3
  export type { HeaderBrandPreferences } from '../../../../theme-core/src/site-styles/index';
4
4
  export type HeaderBrandDisplayOption = Readonly<{
5
5
  value: BrandDisplayMode;
@@ -26,16 +26,16 @@ export declare const DEFAULT_HEADER_BRAND_PREFERENCES: Readonly<{
26
26
  logoSize: LogoSizePolicy;
27
27
  }>;
28
28
  export declare const HEADER_LOGO_SIZE_OPTIONS: readonly HeaderLogoSizeOption[];
29
- export declare function createHeaderBrandControlState({ theme, headerSelectionContext, }: {
29
+ export declare function createHeaderBrandControlState({ theme, headerLogoContext, }: {
30
30
  theme: Theme | null;
31
- headerSelectionContext: Partial<HeaderSelectionContext> | undefined;
31
+ headerLogoContext: HeaderLogoContext | undefined;
32
32
  }): HeaderBrandControlState;
33
- export declare function createHeaderBrandControlStateFromPreferences({ preferences, headerSelectionContext, }: {
33
+ export declare function createHeaderBrandControlStateFromPreferences({ preferences, headerLogoContext, }: {
34
34
  preferences: HeaderBrandPreferences;
35
- headerSelectionContext: Partial<HeaderSelectionContext> | undefined;
35
+ headerLogoContext: HeaderLogoContext | undefined;
36
36
  }): HeaderBrandControlState;
37
37
  export declare function readHeaderBrandPreferences(theme: Theme | null): HeaderBrandPreferences;
38
38
  export declare function normalizeHeaderBrandPreferences(preferences: HeaderBrandPreferences, hasLogo: boolean): HeaderBrandPreferences;
39
39
  export declare function withHeaderBrandThemePreferences(theme: Theme, preferences: HeaderBrandPreferences): Theme;
40
- export declare function withHeaderBrandPreferences(context: Partial<HeaderSelectionContext> | undefined, preferences: HeaderBrandPreferences): Partial<HeaderSelectionContext> | undefined;
41
- export declare function hasLogoInHeaderSelectionContext(context: Partial<HeaderSelectionContext> | undefined): boolean;
40
+ export declare function withHeaderBrandPreferences(context: HeaderLogoContext | undefined, preferences: HeaderBrandPreferences): HeaderLogoContext | undefined;
41
+ export declare function hasLogoInHeaderLogoContext(context: HeaderLogoContext | undefined): boolean;
@@ -1,6 +1,6 @@
1
1
  import type { BrandDisplayMode, FooterLookId, HeaderInteractionPaletteControlState, HeaderLayoutId, HeaderNavFontSizePreference, HeaderNavTypographyPreference, HeaderStyleId, LogoSizePolicy, SiteChromeBackgroundColorToken, SiteChromeBackgroundOverride } from '../../../../theme-core/src/site-styles/index';
2
2
  import type { HeaderBrandDisplayOption, HeaderLogoSizeOption } from './siteChromeBrandPreferences';
3
- import type { SiteChromeLookOption } from './siteChromeLookRows';
3
+ import type { SiteChromeSelectionOption } from './siteChromeSelectionRows';
4
4
  export type SiteChromeBackgroundControlState = Readonly<{
5
5
  available: boolean;
6
6
  current: SiteChromeBackgroundOverride;
@@ -16,10 +16,10 @@ export type SiteChromeCustomizeSurfaceState = Readonly<{
16
16
  label: string;
17
17
  currentLayoutId: HeaderLayoutId;
18
18
  currentLayoutLabel: string;
19
- layoutOptions: readonly SiteChromeLookOption<HeaderLayoutId>[];
19
+ layoutOptions: readonly SiteChromeSelectionOption<HeaderLayoutId>[];
20
20
  currentId: HeaderStyleId;
21
21
  currentLabel: string;
22
- options: readonly SiteChromeLookOption<HeaderStyleId>[];
22
+ options: readonly SiteChromeSelectionOption<HeaderStyleId>[];
23
23
  brandDisplay: BrandDisplayMode;
24
24
  brandDisplayOptions: readonly HeaderBrandDisplayOption[];
25
25
  brandSizeLabel: string;
@@ -46,7 +46,7 @@ export type SiteChromeCustomizeSurfaceState = Readonly<{
46
46
  label: string;
47
47
  currentId: FooterLookId | null;
48
48
  currentLabel: string;
49
- options: readonly SiteChromeLookOption<FooterLookId | null>[];
49
+ options: readonly SiteChromeSelectionOption<FooterLookId | null>[];
50
50
  diagnostics: readonly string[];
51
51
  background: SiteChromeBackgroundControlState;
52
52
  failure: string | null;
@@ -2,8 +2,8 @@ import { type HistoryState } from '../../../../content-editor/src/index';
2
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
- type HeaderLayoutSelection = Pick<SelectionSnapshot, 'headerLayoutId' | 'headerStyleId' | 'headerLookId'>;
6
- type HeaderStyleSelection = Pick<SelectionSnapshot, 'headerStyleId' | 'headerLookId'>;
5
+ type HeaderLayoutSelection = Pick<SelectionSnapshot, 'headerLayoutId' | 'headerStyleId'>;
6
+ type HeaderStyleSelection = Pick<SelectionSnapshot, 'headerStyleId'>;
7
7
  export type SiteChromeQuickControlHistoryEntry = Readonly<{
8
8
  kind: 'header-layout';
9
9
  previous: HeaderLayoutSelection;
@@ -1,28 +1,24 @@
1
1
  import type { APIEndpoints } from '../../../../api/src/index';
2
2
  import type { Theme } from '../../../../blocks/src/index';
3
- import type { HeaderNavPreferences, HeaderSelectionContext, SiteChromeBackgroundPreferences } from '../../../../theme-core/src/site-styles/index';
3
+ import type { HeaderNavPreferences, HeaderLogoContext, SiteChromeBackgroundPreferences } from '../../../../theme-core/src/site-styles/index';
4
4
  import type { CuratedSiteStyle } from '../../../../theme-core/src/site-styles/previewCompiler';
5
5
  import type { SelectionSnapshot } from './StyleConfigurator.state';
6
6
  import { type SiteStylePreviewPlan } from './siteStylePreviewPlanner';
7
7
  import type { SiteChromeEditableSurfaceKind } from './SiteChromeEditableSurface';
8
8
  import { type HeaderBrandPreferences } from './siteChromeBrandPreferences';
9
- type SaveSiteChromeLookSelectionBody = NonNullable<APIEndpoints['saveSiteChromeLookSelection']['body']>;
9
+ type SaveSiteChromeSelectionBody = NonNullable<APIEndpoints['saveSiteChromeSelection']['body']>;
10
+ export type SaveSiteChromeSelectionResponse = NonNullable<APIEndpoints['saveSiteChromeSelection']['response']>;
10
11
  export type SiteChromeSavePlan = Readonly<{
11
12
  compiled: SiteStylePreviewPlan;
12
13
  themeOverlay: Theme;
13
- body: SaveSiteChromeLookSelectionBody;
14
+ body: SaveSiteChromeSelectionBody;
14
15
  }>;
15
16
  export type BuildSiteChromeSavePlanInput = Readonly<{
16
17
  surface: SiteChromeEditableSurfaceKind;
17
- selectionPersistence: Readonly<{
18
- kind: 'preserve';
19
- }> | Readonly<{
20
- kind: 'write';
21
- }>;
22
18
  siteStyle: CuratedSiteStyle;
23
19
  selection: SelectionSnapshot;
24
20
  baseTheme: Theme | null | undefined;
25
- headerSelectionContext: Partial<HeaderSelectionContext> | undefined;
21
+ headerLogoContext: HeaderLogoContext | undefined;
26
22
  headerBrandPreferences: HeaderBrandPreferences;
27
23
  headerNavPreferences: HeaderNavPreferences;
28
24
  backgroundPreferences: SiteChromeBackgroundPreferences;
@@ -30,6 +26,11 @@ export type BuildSiteChromeSavePlanInput = Readonly<{
30
26
  selectionId: string | null;
31
27
  baseSelectionUpdatedAt: string | null;
32
28
  }>;
33
- export declare function buildSiteChromeSavePlan({ surface, selectionPersistence, siteStyle, selection, baseTheme, headerSelectionContext, headerBrandPreferences, headerNavPreferences, backgroundPreferences, themeId, selectionId, baseSelectionUpdatedAt, }: BuildSiteChromeSavePlanInput): SiteChromeSavePlan;
34
- export declare function siteChromeSavePlanBodyForBaseRevision(plan: SiteChromeSavePlan, baseSelectionUpdatedAt: string | null): SaveSiteChromeLookSelectionBody;
29
+ export declare function buildSiteChromeSavePlan({ surface, siteStyle, selection, baseTheme, headerLogoContext, headerBrandPreferences, headerNavPreferences, backgroundPreferences, themeId, selectionId, baseSelectionUpdatedAt, }: BuildSiteChromeSavePlanInput): SiteChromeSavePlan;
30
+ export declare function siteChromeSavePlanBodyForBaseRevision(plan: SiteChromeSavePlan, baseSelectionUpdatedAt: string | null): SaveSiteChromeSelectionBody;
31
+ export declare function selectionSnapshotFromSiteChromeSaveResponse({ saved, fallback, savePlan, }: Readonly<{
32
+ saved: SaveSiteChromeSelectionResponse;
33
+ fallback: SelectionSnapshot;
34
+ savePlan: SiteChromeSavePlan;
35
+ }>): SelectionSnapshot;
35
36
  export {};
@@ -0,0 +1,53 @@
1
+ import { type CuratedSiteStyle } from '../../../../theme-core/src/site-styles/previewCompiler';
2
+ import { type FooterLookId, type HeaderLayoutId, type HeaderLogoContext, type HeaderStyleId, type FooterLookCustomizationWritePlan } from '../../../../theme-core/src/site-styles/index';
3
+ import type { SelectionSnapshot, StyleConfiguratorState } from './StyleConfigurator.state';
4
+ export type SiteChromeSelectionOption<TId extends string | null> = Readonly<{
5
+ id: TId;
6
+ label: string;
7
+ description?: string;
8
+ }>;
9
+ export type SiteChromeSelectionCatalogOption<TId extends string> = Readonly<{
10
+ id: TId;
11
+ label: string;
12
+ }>;
13
+ export type SiteChromeFooterSelectionRowModel<TId extends string> = Readonly<{
14
+ options: readonly SiteChromeSelectionOption<TId | null>[];
15
+ diagnostics: readonly string[];
16
+ renderedLookId: TId;
17
+ }>;
18
+ export type SiteChromeSelectionModels = Readonly<{
19
+ headerLayout: Readonly<{
20
+ options: readonly SiteChromeSelectionOption<HeaderLayoutId>[];
21
+ renderedLayoutId: HeaderLayoutId;
22
+ }>;
23
+ headerStyle: Readonly<{
24
+ options: readonly SiteChromeSelectionOption<HeaderStyleId>[];
25
+ renderedStyleId: HeaderStyleId;
26
+ }>;
27
+ footer: SiteChromeFooterSelectionRowModel<FooterLookId>;
28
+ }>;
29
+ type SiteChromeSelectionModelInput = Readonly<{
30
+ state: StyleConfiguratorState;
31
+ siteStyle: CuratedSiteStyle;
32
+ headerLogoContext?: HeaderLogoContext;
33
+ }>;
34
+ export declare function buildSiteChromeSelectionModels(input: SiteChromeSelectionModelInput): SiteChromeSelectionModels;
35
+ export declare function cycleSiteChromeSelectionId<TId extends string>(options: readonly SiteChromeSelectionOption<TId | null>[], currentId: TId | null, direction: 'prev' | 'next'): TId | null | undefined;
36
+ export type SiteChromeSelectionCommand = Readonly<{
37
+ surface: 'header';
38
+ layoutId: HeaderLayoutId;
39
+ styleId: HeaderStyleId;
40
+ }> | Readonly<{
41
+ surface: 'footer';
42
+ lookId: FooterLookId | null;
43
+ }>;
44
+ export type SiteChromeSelectionPlan = Readonly<{
45
+ kind: 'header';
46
+ next: Pick<SelectionSnapshot, 'headerLayoutId' | 'headerStyleId'>;
47
+ }> | Readonly<{
48
+ kind: 'footer';
49
+ writePlan: FooterLookCustomizationWritePlan<FooterLookId>;
50
+ next: Pick<SelectionSnapshot, 'footerLookId'>;
51
+ }>;
52
+ export declare function planSiteChromeSelection(command: SiteChromeSelectionCommand): SiteChromeSelectionPlan;
53
+ export {};
@@ -1,16 +1,11 @@
1
1
  import type { PreviewRuntimeSession } from "../../auth-contract";
2
2
  export type SiteStyleAccess = Readonly<{
3
3
  kind: "hidden";
4
- }> | Readonly<{
5
- kind: "preview-only";
6
4
  }> | Readonly<{
7
5
  kind: "apply-allowed";
8
6
  }>;
9
7
  export type VisibleSiteStyleAccess = Extract<SiteStyleAccess, Readonly<{
10
- kind: "preview-only" | "apply-allowed";
8
+ kind: "apply-allowed";
11
9
  }>>;
12
10
  export declare function resolveSiteStyleAccess(session: PreviewRuntimeSession | null): SiteStyleAccess;
13
11
  export declare function canInspectSiteStyle(access: SiteStyleAccess): access is VisibleSiteStyleAccess;
14
- export declare function canApplySiteStyle(access: VisibleSiteStyleAccess): access is Extract<VisibleSiteStyleAccess, Readonly<{
15
- kind: "apply-allowed";
16
- }>>;