@riverbankcms/sdk 0.107.0 → 0.109.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 (256) hide show
  1. package/README.md +21 -1
  2. package/dist/{PreviewEditorSidebar-DpAbAl08.mjs → PreviewEditorSidebar-DWqwfy3_.mjs} +48 -28
  3. package/dist/{PreviewEditorUI-O7cn6Xxv.mjs → PreviewEditorUI-B7OL4sfR.mjs} +10 -9
  4. package/dist/{PreviewQueryProvider-D0tnKl0t.mjs → PreviewQueryProvider-D0y2l8JN.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-CVB7urtl.mjs → SdkPreviewModeRuntime-D8Gt9Gbe.mjs} +633 -220
  6. package/dist/{SiteChromeCustomizeContext-C_sizso-.mjs → SiteChromeCustomizeContext-DUpalEdL.mjs} +5764 -1556
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +15383 -11388
  8. package/dist/_dts/api/src/blocks.d.ts +41 -7
  9. package/dist/_dts/api/src/bookingAdjustments.d.ts +5 -0
  10. package/dist/_dts/api/src/bookingOperations.d.ts +4 -0
  11. package/dist/_dts/api/src/bookingRecords.d.ts +177 -127
  12. package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +6 -6
  13. package/dist/_dts/api/src/cache-tags.d.ts +3 -0
  14. package/dist/_dts/api/src/common/envelope.d.ts +7 -0
  15. package/dist/_dts/api/src/contentRuntime.d.ts +19 -1
  16. package/dist/_dts/api/src/courses.d.ts +1 -0
  17. package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +5 -5
  18. package/dist/_dts/api/src/endpoints.d.ts +134 -0
  19. package/dist/_dts/api/src/footer-settings.d.ts +1 -0
  20. package/dist/_dts/api/src/footerSettings.d.ts +8 -0
  21. package/dist/_dts/api/src/index.d.ts +7 -4
  22. package/dist/_dts/api/src/navigation/contracts.d.ts +3 -3
  23. package/dist/_dts/api/src/participantMessaging.d.ts +18 -12
  24. package/dist/_dts/api/src/previewContentContract.d.ts +4 -0
  25. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +1 -0
  26. package/dist/_dts/api/src/sdkContracts.d.ts +309 -1
  27. package/dist/_dts/api/src/siteBanner.d.ts +2 -2
  28. package/dist/_dts/api/src/siteInfrastructure.d.ts +13 -0
  29. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +144 -60
  30. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +35 -1
  31. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +74 -28
  32. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientField.d.ts +9 -0
  33. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientWidget.d.ts +3 -4
  34. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
  35. package/dist/_dts/blocks/src/index.d.ts +1 -1
  36. package/dist/_dts/blocks/src/primitives/layout/Section.d.ts +0 -1
  37. package/dist/_dts/blocks/src/rendering/server.d.ts +1 -0
  38. package/dist/_dts/blocks/src/system/blocks/audio-player.d.ts +3 -0
  39. package/dist/_dts/blocks/src/system/blocks/body-text.d.ts +3 -0
  40. package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +3 -0
  41. package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +1 -22
  42. package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +3 -0
  43. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +1 -22
  44. package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +3 -0
  45. package/dist/_dts/blocks/src/system/blocks/form.d.ts +3 -0
  46. package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +3 -0
  47. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +3 -0
  48. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +3 -0
  49. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +50 -0
  50. package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +9 -48
  51. package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +3 -0
  52. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +3 -0
  53. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +3 -0
  54. package/dist/_dts/blocks/src/system/blocks/video-grid.d.ts +3 -0
  55. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  56. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +16 -6
  57. package/dist/_dts/blocks/src/system/defineBlock.d.ts +9 -1
  58. package/dist/_dts/blocks/src/system/fields/ctas.d.ts +8 -0
  59. package/dist/_dts/blocks/src/system/icons/registry.d.ts +2 -1
  60. package/dist/_dts/blocks/src/system/icons/social.d.ts +5 -0
  61. package/dist/_dts/blocks/src/system/icons/svg.d.ts +1 -0
  62. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +33 -2
  63. package/dist/_dts/blocks/src/system/node/fragments/backgroundLayer.d.ts +13 -0
  64. package/dist/_dts/blocks/src/system/node/fragments/footerNav.d.ts +2 -0
  65. package/dist/_dts/blocks/src/system/node/fragments/styledContainer.d.ts +4 -4
  66. package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +3 -12
  67. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  68. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -6
  69. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
  70. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +2 -2
  71. package/dist/_dts/blocks/src/system/types/link.d.ts +3 -3
  72. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +14 -0
  73. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +27 -8
  74. package/dist/_dts/content-editor/src/footerComposer.d.ts +56 -0
  75. package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +1 -1
  76. package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +5 -5
  77. package/dist/_dts/content-editor/src/index.d.ts +2 -0
  78. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +3 -1
  79. package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +20 -36
  80. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +5 -1
  81. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +11 -0
  82. package/dist/_dts/content-model/src/content-types/entryValidation.d.ts +31 -0
  83. package/dist/_dts/content-model/src/content-types/scaffold.d.ts +58 -0
  84. package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
  85. package/dist/_dts/content-model/src/content-types/sentinels.d.ts +36 -0
  86. package/dist/_dts/content-model/src/definitions/shared.d.ts +3 -0
  87. package/dist/_dts/content-model/src/index.d.ts +3 -0
  88. package/dist/_dts/core/src/booking-date-time.d.ts +8 -0
  89. package/dist/_dts/core/src/branded.d.ts +3 -0
  90. package/dist/_dts/core/src/editor-state.d.ts +4 -0
  91. package/dist/_dts/core/src/footer-composition.d.ts +143 -0
  92. package/dist/_dts/core/src/index.d.ts +2 -0
  93. package/dist/_dts/core/src/public-profile.d.ts +73 -0
  94. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +221 -205
  95. package/dist/_dts/db/src/schemas/forms.d.ts +10 -10
  96. package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +5 -0
  97. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +1 -0
  98. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +2 -1
  99. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +2 -1
  100. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +2 -1
  101. package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +10 -0
  102. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +1 -0
  103. package/dist/_dts/media-core/src/fileMimeDetection.d.ts +16 -0
  104. package/dist/_dts/media-core/src/fileStorage.d.ts +8 -0
  105. package/dist/_dts/media-core/src/storagePathDomain.d.ts +2 -0
  106. package/dist/_dts/media-core/src/uploadVerificationContract.d.ts +3 -0
  107. package/dist/_dts/path-utils/src/index.d.ts +5 -0
  108. package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +2 -0
  109. package/dist/_dts/preview-next/src/client/preview/PreviewChromeLayer.d.ts +5 -0
  110. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
  111. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -0
  112. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -1
  113. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -1
  114. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +1 -0
  115. package/dist/_dts/preview-next/src/client/preview/previewErrorMessages.d.ts +4 -0
  116. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -1
  117. package/dist/_dts/sdk/src/cli/commands/audit.d.ts +1 -1
  118. package/dist/_dts/sdk/src/cli/commands/compare.d.ts +1 -1
  119. package/dist/_dts/sdk/src/cli/commands/deploy.d.ts +1 -1
  120. package/dist/_dts/sdk/src/cli/commands/drafts.d.ts +18 -0
  121. package/dist/_dts/sdk/src/cli/commands/entry.d.ts +15 -0
  122. package/dist/_dts/sdk/src/cli/commands/init-docs.d.ts +2 -2
  123. package/dist/_dts/sdk/src/cli/commands/publish-all.d.ts +1 -1
  124. package/dist/_dts/sdk/src/cli/commands/pull.d.ts +1 -0
  125. package/dist/_dts/sdk/src/cli/commands/push/execute/diff.d.ts +1 -1
  126. package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +3 -0
  127. package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +12 -1
  128. package/dist/_dts/sdk/src/cli/commands/setup.d.ts +1 -0
  129. package/dist/_dts/sdk/src/cli/commands/verify.d.ts +1 -0
  130. package/dist/_dts/sdk/src/cli/content/reader.d.ts +1 -0
  131. package/dist/_dts/sdk/src/cli/helpers.d.ts +22 -1
  132. package/dist/_dts/sdk/src/cli/index.d.ts +4 -0
  133. package/dist/_dts/sdk/src/cli/output.d.ts +88 -0
  134. package/dist/_dts/sdk/src/cli/program.d.ts +29 -0
  135. package/dist/_dts/sdk/src/cli/push-config.d.ts +1 -1
  136. package/dist/_dts/sdk/src/client/management/blocks.d.ts +14 -1
  137. package/dist/_dts/sdk/src/client/management/catalog.d.ts +10 -0
  138. package/dist/_dts/sdk/src/client/management/http.d.ts +7 -1
  139. package/dist/_dts/sdk/src/client/management/index.d.ts +2 -1
  140. package/dist/_dts/sdk/src/client/management/types.d.ts +58 -20
  141. package/dist/_dts/sdk/src/config/content-types.d.ts +2 -0
  142. package/dist/_dts/sdk/src/config/content-validation.d.ts +4 -0
  143. package/dist/_dts/sdk/src/date-time/index.d.ts +68 -0
  144. package/dist/_dts/sdk/src/navigation/index.d.ts +2 -0
  145. package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -2
  146. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -1
  147. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +1 -1
  148. package/dist/_dts/sdk/src/version.d.ts +1 -1
  149. package/dist/_dts/site-commands/src/commands.d.ts +900 -827
  150. package/dist/_dts/theme-core/src/accordions/types.d.ts +2 -2
  151. package/dist/_dts/theme-core/src/buttons/core.d.ts +15 -46
  152. package/dist/_dts/theme-core/src/buttons/effectClassification.d.ts +147 -0
  153. package/dist/_dts/theme-core/src/buttons/effects/types.d.ts +2 -3
  154. package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +1 -1
  155. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
  156. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  157. package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +17 -0
  158. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +45 -33
  159. package/dist/_dts/theme-core/src/buttons/presets.d.ts +4 -25
  160. package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +100 -0
  161. package/dist/_dts/theme-core/src/buttons/resolvedButtonCss.d.ts +16 -0
  162. package/dist/_dts/theme-core/src/buttons/types.d.ts +104 -86
  163. package/dist/_dts/theme-core/src/cards/types.d.ts +16 -16
  164. package/dist/_dts/theme-core/src/footer/mode.d.ts +15 -0
  165. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  166. package/dist/_dts/theme-core/src/gradients/presets.d.ts +200 -8
  167. package/dist/_dts/theme-core/src/gradients/utils.d.ts +6 -2
  168. package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
  169. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +117 -150
  170. package/dist/_dts/theme-core/src/mock-themes/modern-minimal.d.ts +1 -1
  171. package/dist/_dts/theme-core/src/navigation/types.d.ts +3 -3
  172. package/dist/_dts/theme-core/src/palette/curated/index.d.ts +2 -2
  173. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +5 -8
  174. package/dist/_dts/theme-core/src/palette/index.d.ts +0 -1
  175. package/dist/_dts/theme-core/src/schema.d.ts +1264 -138
  176. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  177. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +10 -10
  178. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +12 -1
  179. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +3 -2
  180. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +13 -6
  181. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +29 -8
  182. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +15 -0
  183. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +2 -2
  184. package/dist/cli/index.mjs +68552 -66955
  185. package/dist/cli/init-docs/content/cli-reference.md +50 -7
  186. package/dist/cli/init-docs/content/content-management.md +7 -4
  187. package/dist/cli/init-docs/content/workflow-publish.md +5 -1
  188. package/dist/client/{DiscountCodeDisclosure-BwGkvmVH.mjs → DiscountCodeDisclosure-DU1ygxU2.mjs} +1 -1
  189. package/dist/client/{EventCombined.client-JnWE6Hzc.mjs → EventCombined.client-DB5zagCo.mjs} +3 -3
  190. package/dist/client/{EventListing.client-DQewc_kg.mjs → EventListing.client-CTX9JHBL.mjs} +2 -2
  191. package/dist/client/{LeafletStaticMap-DPAU3SFt.mjs → LeafletStaticMap-BYImhgiB.mjs} +1 -1
  192. package/dist/client/{MagicLinkForm-D4kpWCbW.mjs → MagicLinkForm-CRkw_M3l.mjs} +2 -2
  193. package/dist/client/{StepIndicator-CBlkb4rA.mjs → StepIndicator-BnmVBJJh.mjs} +2 -2
  194. package/dist/client/{accordion-DAIBVpTS.mjs → accordion-CeGreumd.mjs} +1 -1
  195. package/dist/client/{bookingForm-DZ-4l5_1.mjs → bookingForm-CSzFNrpN.mjs} +6 -6
  196. package/dist/client/bookings.mjs +637 -328
  197. package/dist/client/{buttons-DJgynGHQ.mjs → buttons-DoFV7KDL.mjs} +618 -306
  198. package/dist/client/{carousel-D-SLfX8r.mjs → carousel-B2jDtogf.mjs} +1 -1
  199. package/dist/client/{cart-CEgbgJhX.mjs → cart-D-jZ-vaY.mjs} +3 -3
  200. package/dist/client/{checkout-CXWrCRAA.mjs → checkout-Dza-LA7N.mjs} +3 -3
  201. package/dist/client/client.mjs +2497 -1216
  202. package/dist/client/{colorStyles-jZS6KfkP.mjs → colorStyles-CrgzoXsm.mjs} +1 -30
  203. package/dist/client/{courseRegistration-DVmLrRVz.mjs → courseRegistration-TYkNychb.mjs} +7 -7
  204. package/dist/client/{eventCalendar-DCuyPY_c.mjs → eventCalendar-BI_90SsT.mjs} +5 -5
  205. package/dist/client/{eventCombined-kP2CA2D4.mjs → eventCombined-mNrpryE9.mjs} +2 -2
  206. package/dist/client/{eventDetails-DU0LeF5e.mjs → eventDetails-D4GVlCIY.mjs} +3 -3
  207. package/dist/client/{eventListing-CcHF87BI.mjs → eventListing-YhKN018y.mjs} +2 -2
  208. package/dist/client/{eventRegistration-DJnR0yFH.mjs → eventRegistration-CdHGtilr.mjs} +7 -7
  209. package/dist/client/foregroundContract-xICPq59x.mjs +31 -0
  210. package/dist/client/{form-CH1lCusH.mjs → form-AcAL45rA.mjs} +2 -2
  211. package/dist/client/{headerSection-CBPFZoku.mjs → headerSection-uEC52ueD.mjs} +3 -3
  212. package/dist/client/hooks.mjs +1249 -841
  213. package/dist/client/{locationMap-Cx1hBg5n.mjs → locationMap-_wJDSUYe.mjs} +3 -3
  214. package/dist/client/{media-DHtSxS5V.mjs → media-BK0O3b-U.mjs} +3 -2
  215. package/dist/client/{newsletterForm-1ZL_ti9u.mjs → newsletterForm-DrArsb2B.mjs} +2 -2
  216. package/dist/client/{pricing-BIbzmV0G.mjs → pricing-BSYVghwo.mjs} +1 -1
  217. package/dist/client/{productDetail-BTh5gHBV.mjs → productDetail-Dyk90sMs.mjs} +3 -3
  218. package/dist/client/{productList-Cc7OMrqN.mjs → productList-BCKThwAI.mjs} +3 -3
  219. package/dist/client/{propsDecoder-oR-M-ISN.mjs → propsDecoder-CkXxkdSR.mjs} +96 -33
  220. package/dist/client/rendering/client.mjs +1278 -523
  221. package/dist/client/rendering/islands.mjs +19 -19
  222. package/dist/client/rendering.mjs +2308 -1028
  223. package/dist/client/{shop-CQ_YbCnn.mjs → shop-DeltVH10.mjs} +6 -6
  224. package/dist/client/{shop-commerce-BM-AoD3M.mjs → shop-commerce-BD9Jsm2Z.mjs} +6 -6
  225. package/dist/client/{shop-commerce-store-DFMQhU5p.mjs → shop-commerce-store-CmXD6FDS.mjs} +1 -1
  226. package/dist/client/{shopShared-D0SKO2Cu.mjs → shopShared-B8v-lH_F.mjs} +2 -2
  227. package/dist/client/{useDiscountCodeUi-CrG4_ARt.mjs → useDiscountCodeUi-DbWJN8ld.mjs} +1 -1
  228. package/dist/client/{useEventFilters-CxK8Fekl.mjs → useEventFilters-EJIMUnqT.mjs} +46 -69
  229. package/dist/client/{usePolling-jcVryNgZ.mjs → usePolling-Cmh14fc7.mjs} +2 -2
  230. package/dist/preview-next/before-render.mjs +213 -0
  231. package/dist/preview-next/client/runtime.mjs +4 -4
  232. package/dist/preview-next/middleware.mjs +213 -0
  233. package/dist/{previewAuthStore-BPcJPzdz.mjs → previewAuthStore-CTO7CRPk.mjs} +213 -0
  234. package/dist/{sdk-runtime-C39Rsk-x.mjs → sdk-runtime-Dou0GAav.mjs} +2 -2
  235. package/dist/{separator-BoMSQnsP.mjs → separator-CI5wZNXT.mjs} +1 -1
  236. package/dist/server/components.mjs +2370 -1132
  237. package/dist/server/config-validation.mjs +1256 -842
  238. package/dist/server/config.mjs +1256 -843
  239. package/dist/server/data.mjs +1249 -841
  240. package/dist/server/date-time.mjs +386 -0
  241. package/dist/server/index.mjs +214 -1
  242. package/dist/server/navigation.mjs +9 -3
  243. package/dist/server/next.mjs +3421 -1949
  244. package/dist/server/page-converter.mjs +1236 -659
  245. package/dist/server/prebuild.mjs +1 -1
  246. package/dist/server/rendering/server.mjs +2074 -1060
  247. package/dist/server/rendering.mjs +2370 -1132
  248. package/dist/server/routing.mjs +1543 -1062
  249. package/dist/server/server.mjs +1464 -843
  250. package/dist/server/theme-bridge.mjs +1581 -474
  251. package/dist/server/theme.mjs +614 -305
  252. package/dist/styles/index.css +12 -1
  253. package/package.json +7 -1
  254. package/dist/_dts/theme-core/src/buttons/presets/types.d.ts +0 -88
  255. package/dist/_dts/theme-core/src/buttons/utils/contrast.d.ts +0 -38
  256. package/dist/_dts/theme-core/src/palette/themePaletteCompatibility.d.ts +0 -57
@@ -1,32 +1,81 @@
1
- import type { RectificationHistoryPropagationPlan, RectificationIdentityBoundary, RectificationIssueUrl, RectificationSurface } from "../../core/src/index";
2
- import type { CamelizeKeys, DbRow, DbJson } from "../../db/src/index";
3
- import type { APIEndpoint } from "./apiEndpointTypes";
4
- import type { AcceptAdminInviteRequest, AcceptAdminInviteResponse, AcceptSiteInvitationRequest, AcceptSiteInvitationResponse, AddCustomDomainRequest, AddCustomDomainResponse, AdminChangePlanRequest, AdminChangePlanResponse, AdminDeleteUserResponse, AuthInviteContinueRequest, AuthInviteContinueResponse, AuthInviteRegisterRequest, AuthInviteRegisterResponse, AuthResetCompleteRequest, AuthResetCompleteResponse, AuthSubmissionResult, BulkOperationResult, ChangePlanRequest, ChangePlanResponse, CreateAdminInviteRequest, CreateAdminInviteResponse, CreateAdminUserRequest, CreateAdminUserResponse, CreateAllowedDomainRequest, CreateAllowedDomainResponse, DeleteAllowedDomainResponse, DomainConfigResult, DomainSearchResultResponse, CurrentUserPractitionerLinkResponse, InviteSiteMemberRequest, InviteSiteMemberResponse, LinkCurrentUserPractitionerRequest, ListAdminInvitesResponse, ListAllowedDomainsResponse, ListSiteMembersResponse, LookupSiteDomainRequest, LookupSiteDomainResponse, MfaBackupCodesOverviewResponse, MfaBackupCodesRotateResponse, MfaOverviewResponse, MfaPhoneChallengeRequest, MfaPhoneChallengeResponse, MfaPhoneEnrollRequest, MfaPhoneEnrollResponse, MfaPhoneVerifyRequest, MfaTotpActivateRequest, MfaTotpEnrollResponse, MfaTotpVerifyRequest, MfaTotpVerifyResponse, ReauthSubmissionResult, RegisterDomainRequestPayload, RegisterDomainResponse, RegistrarBooleanMutationRequest, RegistrarLifecycleResponse, RegistrarRenewalPostureResponse, RegisterSiteDomainRequest, RegisterSiteDomainResponse, RemoveSiteMemberResponse, RevokeAdminInviteResponse, RevokeSiteInvitationResponse, ResendSiteInvitationResponse, SetHomepageRequest, SetHomepageResponse, SiteDomainContactPayload, SiteDomainRecord, TransferSiteOwnershipRequest, TransferSiteOwnershipResponse, UpdateSiteMemberRoleRequest, UpdateSiteMemberRoleResponse } from "./accessAdmin";
5
- import type { AdminRoleMutationResponse, RevokeAdminRoleRequest, StartImpersonationRequest, StartImpersonationResponse, StopImpersonationRequest, StopImpersonationResponse, UpsertAdminRoleRequest } from "./admin/types";
6
- import type { AccountRevokeSessionsBody, AccountRevokeSessionsResponse, AccountUpdatePasswordBody, AccountUpdatePasswordResponse, CreateManualSiteRequest, CreateManualSiteResponse } from "./siteOperations";
7
- import type { BookingSessionCancelAppointmentRequest, BookingSessionCancelAppointmentResponse, BookingSessionCreateAppointmentRequest, BookingSessionCreateAppointmentResponse, BookingSessionGetAppointmentResponse, BookingSessionListEligibleAppointmentPackagesResponse, BookingSessionGetEventResponse, BookingSessionListAppointmentsResponse, BookingSessionListEventsResponse, BookingSessionListMembershipsResponse, BookingSessionListPassesResponse, BookingSessionMeResponse, BookingSessionUpdateMeRequest, BookingSessionUpdateMeResponse, PublicBookingAppointmentStatusResponse, PublicBookingAvailabilityQuery, PublicBookingAvailableDatesResponse, PublicBookingAvailableSlotsResponse, PublicBookingService, PublicWeeklySlotAvailabilityQuery, PublicWeeklySlotAvailabilityResponse, PublicCreateBookingAppointmentRequest, PublicCreateBookingAppointmentResponse, ReferenceOptionsResponse } from "./bookingOperations";
8
- import type { ContentEntryOrPageResponse, ContentEntrySummary, ExportFormSubmissionsCsvQuery, ExportFormSubmissionsCsvResponse, CreateFormSubmissionRectificationAnnotationRequest, CreateFormSubmissionRectificationAnnotationResponse, FormRecord, FormSubmissionWithRectificationAnnotations, FormSummary, NavigationItemRecord, NavigationMenuWithItems, PublicFormRecord, PublishedContentEntryOrPageResponse, RunSdkWorkflowResponse, ScheduledContentEntryOrPageResponse, WorkflowRunStatusResponse } from "./contentRuntime";
9
- import type { GetVersionHistoryResponse, ListVersionHistoryResponse, RestoreVersionHistoryRequest, RestoreVersionHistoryResponse, VersionHistoryListQuery } from "./contentVersionHistory";
10
- import type { ApplyContentTemplateAddonRequest, ContentTemplateDetailsResponse, CreateTemplateBlockRequest, GetTransformsResponse, ReorderTemplateBlocksRequest, SerializedContentTypeSummary, UpdateContentTemplateBlockBindingsRequest, UpdateContentTemplateBlockRequest } from "./contentTypes";
11
- import type { LinkPayload, RoutableContentItem, SitemapRouteItem } from "./navigation/types";
12
- import type { RouteMetadataPayload, RouteMetadataResponse } from "./routes";
13
- import type { SiteAnalyticsSettingsPayload, SiteAnalyticsSettingsResponse } from "./siteAnalytics";
14
- import type { SiteBannerSettingsPayload, SiteBannerSettingsResponse } from "./siteBanner";
15
- import type { GeneratedIconSetGenerateRequest, GeneratedIconSetGenerateResponse, GeneratedIconSetListRequest, GeneratedIconSetListResponse, SiteIconStyleGuideResponse, SiteIconStyleGuideUpdateRequest } from "./siteIcons";
16
- import type { AiBrandGuidelinesGenerateRequest, AiBrandGuidelinesGenerateResponse, AiBrandGuidelinesGenerationContextResponse, SiteAiBrandGuidelinesPayload, SiteAiBrandGuidelinesResponse, SiteAiProfilePayload, SiteAiProfileResponse, SiteGenerationIntakePayload, SiteGenerationIntakeResponse } from "./siteOnboarding";
17
- import type { SitePrivacySettingsPayload, SitePrivacySettingsResponse } from "./privacyPolicy";
18
- import type { MaintenanceSettingsPayload, MaintenanceSettingsResponse, SiteBusinessAddressPayload, SiteBusinessAddressResponse, SiteFooterBlocksEditorResponse, SiteGeneralSettingsPayload, SiteGeneralSettingsResponse, SiteLayoutSettingsPayload, SiteLayoutSettingsResponse, UpdateSiteDeploymentModePayload, UpdateSiteDeploymentModeResponse, UpdateSiteFooterBlocksPayload, UpdateSiteFooterBlocksResponse } from "./siteSettings";
1
+ import type { FooterCompositionV1, PublicProfile, RectificationHistoryPropagationPlan, RectificationIdentityBoundary, RectificationIssueUrl, RectificationSurface } from '../../core/src/index';
2
+ import type { CamelizeKeys, DbRow, DbJson } from '../../db/src/index';
3
+ import type { APIEndpoint } from './apiEndpointTypes';
4
+ import type { AcceptAdminInviteRequest, AcceptAdminInviteResponse, AcceptSiteInvitationRequest, AcceptSiteInvitationResponse, AddCustomDomainRequest, AddCustomDomainResponse, AdminChangePlanRequest, AdminChangePlanResponse, AdminDeleteUserResponse, AuthInviteContinueRequest, AuthInviteContinueResponse, AuthInviteRegisterRequest, AuthInviteRegisterResponse, AuthResetCompleteRequest, AuthResetCompleteResponse, AuthSubmissionResult, BulkOperationResult, ChangePlanRequest, ChangePlanResponse, CreateAdminInviteRequest, CreateAdminInviteResponse, CreateAdminUserRequest, CreateAdminUserResponse, CreateAllowedDomainRequest, CreateAllowedDomainResponse, DeleteAllowedDomainResponse, DomainConfigResult, DomainSearchResultResponse, CurrentUserPractitionerLinkResponse, InviteSiteMemberRequest, InviteSiteMemberResponse, LinkCurrentUserPractitionerRequest, ListAdminInvitesResponse, ListAllowedDomainsResponse, ListSiteMembersResponse, LookupSiteDomainRequest, LookupSiteDomainResponse, MfaBackupCodesOverviewResponse, MfaBackupCodesRotateResponse, MfaOverviewResponse, MfaPhoneChallengeRequest, MfaPhoneChallengeResponse, MfaPhoneEnrollRequest, MfaPhoneEnrollResponse, MfaPhoneVerifyRequest, MfaTotpActivateRequest, MfaTotpEnrollResponse, MfaTotpVerifyRequest, MfaTotpVerifyResponse, ReauthSubmissionResult, RegisterDomainRequestPayload, RegisterDomainResponse, RegistrarBooleanMutationRequest, RegistrarLifecycleResponse, RegistrarRenewalPostureResponse, RegisterSiteDomainRequest, RegisterSiteDomainResponse, RemoveSiteMemberResponse, RevokeAdminInviteResponse, RevokeSiteInvitationResponse, ResendSiteInvitationResponse, SetHomepageRequest, SetHomepageResponse, SiteDomainContactPayload, SiteDomainRecord, TransferSiteOwnershipRequest, TransferSiteOwnershipResponse, UpdateSiteMemberRoleRequest, UpdateSiteMemberRoleResponse } from './accessAdmin';
5
+ import type { AdminRoleMutationResponse, RevokeAdminRoleRequest, StartImpersonationRequest, StartImpersonationResponse, StopImpersonationRequest, StopImpersonationResponse, UpsertAdminRoleRequest } from './admin/types';
6
+ import type { AccountRevokeSessionsBody, AccountRevokeSessionsResponse, AccountUpdatePasswordBody, AccountUpdatePasswordResponse, CreateManualSiteRequest, CreateManualSiteResponse } from './siteOperations';
7
+ import type { BookingSessionCancelAppointmentRequest, BookingSessionCancelAppointmentResponse, BookingSessionCreateAppointmentRequest, BookingSessionCreateAppointmentResponse, BookingSessionGetAppointmentResponse, BookingSessionListEligibleAppointmentPackagesResponse, BookingSessionGetEventResponse, BookingSessionListAppointmentsResponse, BookingSessionListEventsResponse, BookingSessionListMembershipsResponse, BookingSessionListPassesResponse, BookingSessionMeResponse, BookingSessionUpdateMeRequest, BookingSessionUpdateMeResponse, PublicBookingAppointmentStatusResponse, PublicBookingAvailabilityQuery, PublicBookingAvailableDatesResponse, PublicBookingAvailableSlotsResponse, PublicBookingService, PublicWeeklySlotAvailabilityQuery, PublicWeeklySlotAvailabilityResponse, PublicCreateBookingAppointmentRequest, PublicCreateBookingAppointmentResponse, ReferenceOptionsResponse } from './bookingOperations';
8
+ import type { ContentEntryOrPageResponse, ContentEntrySummary, ExportFormSubmissionsCsvQuery, ExportFormSubmissionsCsvResponse, CreateFormSubmissionRectificationAnnotationRequest, CreateFormSubmissionRectificationAnnotationResponse, FormRecord, FormSubmissionWithRectificationAnnotations, FormSummary, NavigationItemRecord, NavigationMenuWithItems, PublicFormRecord, PublishedContentEntryOrPageResponse, RunSdkWorkflowResponse, ScheduledContentEntryOrPageResponse, WorkflowRunStatusResponse } from './contentRuntime';
9
+ import type { GetVersionHistoryResponse, ListVersionHistoryResponse, RestoreVersionHistoryRequest, RestoreVersionHistoryResponse, VersionHistoryListQuery } from './contentVersionHistory';
10
+ import type { ApplyContentTemplateAddonRequest, ContentTemplateDetailsResponse, CreateTemplateBlockRequest, GetTransformsResponse, ReorderTemplateBlocksRequest, SerializedContentTypeSummary, UpdateContentTemplateBlockBindingsRequest, UpdateContentTemplateBlockRequest } from './contentTypes';
11
+ import type { LinkPayload, RoutableContentItem, SitemapRouteItem } from './navigation/types';
12
+ import type { RouteMetadataPayload, RouteMetadataResponse } from './routes';
13
+ import type { PageSurfaceEditorDocument } from './contentRuntime';
14
+ import type { ContentRouteRecord } from './types';
15
+ import type { SiteAnalyticsSettingsPayload, SiteAnalyticsSettingsResponse } from './siteAnalytics';
16
+ import type { SiteBannerSettingsPayload, SiteBannerSettingsResponse } from './siteBanner';
17
+ import type { GeneratedIconSetGenerateRequest, GeneratedIconSetGenerateResponse, GeneratedIconSetListRequest, GeneratedIconSetListResponse, SiteIconStyleGuideResponse, SiteIconStyleGuideUpdateRequest } from './siteIcons';
18
+ import type { AiBrandGuidelinesGenerateRequest, AiBrandGuidelinesGenerateResponse, AiBrandGuidelinesGenerationContextResponse, SiteAiBrandGuidelinesPayload, SiteAiBrandGuidelinesResponse, SiteAiProfilePayload, SiteAiProfileResponse, SiteGenerationIntakePayload, SiteGenerationIntakeResponse } from './siteOnboarding';
19
+ import type { SitePrivacySettingsPayload, SitePrivacySettingsResponse } from './privacyPolicy';
20
+ import type { MaintenanceSettingsPayload, MaintenanceSettingsResponse, SiteBusinessAddressPayload, SiteBusinessAddressResponse, SiteFooterBlocksEditorResponse, SiteGeneralSettingsPayload, SiteGeneralSettingsResponse, SiteLayoutSettingsPayload, SiteLayoutSettingsResponse, UpdateSiteDeploymentModePayload, UpdateSiteDeploymentModeResponse, UpdateSiteFooterBlocksPayload, UpdateSiteFooterBlocksResponse } from './siteSettings';
19
21
  /**
20
22
  * Site-management endpoints collect dashboard/admin/auth/content-management API shapes
21
23
  * that still belong to the aggregate contract layer but no longer need to live inline in
22
24
  * `types.ts`.
23
25
  */
24
- type Site = CamelizeKeys<DbRow<"sites">>;
25
- type DsarRunKindApi = "preview_export" | "execute_actions";
26
- type DsarExecutionModeApi = "preview_only" | "confirmed_execute";
27
- type DsarRunStatusApi = "running" | "previewed" | "completed" | "partially_failed" | "failed";
28
- type DsarSurfaceNameApi = "booking_customer" | "person_record" | "appointment" | "event_registration" | "order" | "form_submission" | "portal_session" | "email_audit" | "newsletter_subscriber";
29
- type DsarExecutableSurfaceNameApi = "portal_session" | "newsletter_subscriber" | "form_submission";
26
+ type Site = CamelizeKeys<DbRow<'sites'>>;
27
+ export type FooterCompositionSnapshot = Readonly<{
28
+ kind: 'ready';
29
+ composition: FooterCompositionV1;
30
+ revision: number;
31
+ }> | Readonly<{
32
+ kind: 'missing';
33
+ }> | Readonly<{
34
+ kind: 'invalid';
35
+ message: string;
36
+ }>;
37
+ export type FooterCompositionUpdateRequest = Readonly<{
38
+ composition: FooterCompositionV1;
39
+ baseRevision: number;
40
+ }>;
41
+ export type FooterCompositionUpdateResponse = Readonly<{
42
+ kind: 'updated';
43
+ snapshot: Extract<FooterCompositionSnapshot, {
44
+ kind: 'ready';
45
+ }>;
46
+ }> | Readonly<{
47
+ kind: 'conflict';
48
+ authoritative: FooterCompositionSnapshot;
49
+ }>;
50
+ export type PublicProfileSnapshot = Readonly<{
51
+ kind: 'ready';
52
+ profile: PublicProfile;
53
+ revision: number;
54
+ canonicalTimeZone: string;
55
+ hasBusinessAddress: boolean;
56
+ hasLogo: boolean;
57
+ }> | Readonly<{
58
+ kind: 'invalid';
59
+ message: string;
60
+ }>;
61
+ export type PublicProfileUpdateRequest = Readonly<{
62
+ profile: PublicProfile;
63
+ baseRevision: number;
64
+ }>;
65
+ export type PublicProfileUpdateResponse = Readonly<{
66
+ kind: 'updated';
67
+ snapshot: Extract<PublicProfileSnapshot, {
68
+ kind: 'ready';
69
+ }>;
70
+ }> | Readonly<{
71
+ kind: 'conflict';
72
+ authoritative: PublicProfileSnapshot;
73
+ }>;
74
+ type DsarRunKindApi = 'preview_export' | 'execute_actions';
75
+ type DsarExecutionModeApi = 'preview_only' | 'confirmed_execute';
76
+ type DsarRunStatusApi = 'running' | 'previewed' | 'completed' | 'partially_failed' | 'failed';
77
+ type DsarSurfaceNameApi = 'booking_customer' | 'person_record' | 'appointment' | 'event_registration' | 'order' | 'form_submission' | 'portal_session' | 'email_audit' | 'newsletter_subscriber';
78
+ type DsarExecutableSurfaceNameApi = 'portal_session' | 'newsletter_subscriber' | 'form_submission';
30
79
  type DsarRunCountsApi = {
31
80
  matchedSurfaces: number;
32
81
  includedSurfaces: number;
@@ -35,25 +84,25 @@ type DsarRunCountsApi = {
35
84
  failedActions: number;
36
85
  };
37
86
  type DsarPreviewExecutableDecisionApi = {
38
- kind: "executable";
87
+ kind: 'executable';
39
88
  surface: DsarSurfaceNameApi;
40
- action: "revoke_sessions" | "anonymize" | "hard_delete";
89
+ action: 'revoke_sessions' | 'anonymize' | 'hard_delete';
41
90
  rationale: string;
42
- exportRepresentation: "raw_record" | "summary_record" | "metadata_only";
91
+ exportRepresentation: 'raw_record' | 'summary_record' | 'metadata_only';
43
92
  requiresConfirmation: true;
44
93
  };
45
94
  type DsarPreviewReportOnlyDecisionApi = {
46
- kind: "report_only";
95
+ kind: 'report_only';
47
96
  surface: DsarSurfaceNameApi;
48
- action: "retain_with_reason" | "manual_follow_up";
97
+ action: 'retain_with_reason' | 'manual_follow_up';
49
98
  rationale: string;
50
- exportRepresentation: "raw_record" | "summary_record" | "metadata_only";
99
+ exportRepresentation: 'raw_record' | 'summary_record' | 'metadata_only';
51
100
  policySource?: string;
52
101
  };
53
102
  type DsarPreviewExcludedDecisionApi = {
54
- kind: "excluded";
103
+ kind: 'excluded';
55
104
  surface: DsarSurfaceNameApi;
56
- reason: "not_found" | "not_in_scope" | "not_yet_supported" | "insufficient_linkage";
105
+ reason: 'not_found' | 'not_in_scope' | 'not_yet_supported' | 'insufficient_linkage';
57
106
  rationale: string;
58
107
  };
59
108
  type DsarPreviewDecisionApi = DsarPreviewExecutableDecisionApi | DsarPreviewReportOnlyDecisionApi | DsarPreviewExcludedDecisionApi;
@@ -97,20 +146,20 @@ type DsarPreviewBundleApi = {
97
146
  };
98
147
  type DsarExecutionOutcomeApi = {
99
148
  surface: DsarExecutableSurfaceNameApi;
100
- action: "revoke_sessions" | "anonymize";
101
- status: "executed";
149
+ action: 'revoke_sessions' | 'anonymize';
150
+ status: 'executed';
102
151
  detail: string;
103
152
  changedCount: number;
104
153
  } | {
105
154
  surface: DsarExecutableSurfaceNameApi;
106
- action: "revoke_sessions" | "anonymize";
107
- status: "skipped";
155
+ action: 'revoke_sessions' | 'anonymize';
156
+ status: 'skipped';
108
157
  detail: string;
109
- reason: "not_currently_executable" | "already_handled" | "not_found";
158
+ reason: 'not_currently_executable' | 'already_handled' | 'not_found';
110
159
  } | {
111
160
  surface: DsarExecutableSurfaceNameApi;
112
- action: "revoke_sessions" | "anonymize";
113
- status: "failed";
161
+ action: 'revoke_sessions' | 'anonymize';
162
+ status: 'failed';
114
163
  detail: string;
115
164
  message: string;
116
165
  };
@@ -215,6 +264,31 @@ export type SiteManagementAPIEndpoints = {
215
264
  type: string;
216
265
  entryId: string;
217
266
  }, ContentEntryOrPageResponse>;
267
+ updatePageSurfaceDraftContent: APIEndpoint<{
268
+ data: Record<string, unknown>;
269
+ optimisticHash: string;
270
+ }, {
271
+ siteId: string;
272
+ pageSurfaceId: string;
273
+ }, {
274
+ document: PageSurfaceEditorDocument;
275
+ }>;
276
+ discardPageSurfaceDraftContent: APIEndpoint<{
277
+ optimisticHash: string;
278
+ }, {
279
+ siteId: string;
280
+ pageSurfaceId: string;
281
+ }, {
282
+ document: PageSurfaceEditorDocument;
283
+ }>;
284
+ updatePageSurfaceRouteMetadata: APIEndpoint<Pick<RouteMetadataPayload, 'draftSlug' | 'draftMetaTitle' | 'draftMetaDescription' | 'ogImageId'> & {
285
+ expectedDraftUpdatedAt: string | null;
286
+ }, {
287
+ siteId: string;
288
+ pageSurfaceId: string;
289
+ }, {
290
+ route: ContentRouteRecord;
291
+ }>;
218
292
  runSdkWorkflow: APIEndpoint<never, {
219
293
  siteId: string;
220
294
  type: string;
@@ -345,7 +419,7 @@ export type SiteManagementAPIEndpoints = {
345
419
  domainId: string;
346
420
  }, {
347
421
  domain: string;
348
- domainType: "registered" | "custom";
422
+ domainType: 'registered' | 'custom';
349
423
  configStatus: string | null;
350
424
  nameservers: {
351
425
  expected: string[];
@@ -545,6 +619,18 @@ export type SiteManagementAPIEndpoints = {
545
619
  updateSiteLayoutSettings: APIEndpoint<SiteLayoutSettingsPayload, {
546
620
  siteId: string;
547
621
  }, SiteLayoutSettingsResponse>;
622
+ getFooterComposition: APIEndpoint<never, {
623
+ siteId: string;
624
+ }, FooterCompositionSnapshot>;
625
+ updateFooterComposition: APIEndpoint<FooterCompositionUpdateRequest, {
626
+ siteId: string;
627
+ }, FooterCompositionUpdateResponse>;
628
+ getPublicProfile: APIEndpoint<never, {
629
+ siteId: string;
630
+ }, PublicProfileSnapshot>;
631
+ updatePublicProfile: APIEndpoint<PublicProfileUpdateRequest, {
632
+ siteId: string;
633
+ }, PublicProfileUpdateResponse>;
548
634
  updateSiteBannerSettings: APIEndpoint<SiteBannerSettingsPayload, {
549
635
  siteId: string;
550
636
  }, SiteBannerSettingsResponse>;
@@ -619,7 +705,7 @@ export type SiteManagementAPIEndpoints = {
619
705
  }, AdminDeleteUserResponse>;
620
706
  adminListAxiomLogs: APIEndpoint<never, {
621
707
  tail?: number;
622
- mode?: "all" | "errors" | "warnings";
708
+ mode?: 'all' | 'errors' | 'warnings';
623
709
  since?: string;
624
710
  until?: string;
625
711
  search?: string;
@@ -629,7 +715,7 @@ export type SiteManagementAPIEndpoints = {
629
715
  }>;
630
716
  adminListErrorLogs: APIEndpoint<never, {
631
717
  tail?: number;
632
- mode?: "errors" | "warnings";
718
+ mode?: 'errors' | 'warnings';
633
719
  since?: string;
634
720
  until?: string;
635
721
  search?: string;
@@ -639,15 +725,15 @@ export type SiteManagementAPIEndpoints = {
639
725
  }>;
640
726
  adminListRetentionJobRuns: APIEndpoint<never, {
641
727
  limit?: number;
642
- jobKind?: "portal_session_cleanup" | "portal_exchange_code_cleanup" | "analytics_transition" | "webhook_delivery_log_cleanup" | "email_audit_body_cleanup" | "request_log_cleanup" | "newsletter_subscriber_minimization" | "form_submission_anonymization" | "booking_operational_retention_review" | "appointment_operational_retention_review" | "event_registration_retention_review" | "order_operational_minimization_review";
643
- status?: "running" | "completed" | "partially_failed" | "failed";
644
- executionMode?: "scheduled" | "manual" | "dry_run";
728
+ jobKind?: 'portal_session_cleanup' | 'portal_exchange_code_cleanup' | 'analytics_transition' | 'webhook_delivery_log_cleanup' | 'email_audit_body_cleanup' | 'request_log_cleanup' | 'newsletter_subscriber_minimization' | 'form_submission_anonymization' | 'booking_operational_retention_review' | 'appointment_operational_retention_review' | 'event_registration_retention_review' | 'order_operational_minimization_review';
729
+ status?: 'running' | 'completed' | 'partially_failed' | 'failed';
730
+ executionMode?: 'scheduled' | 'manual' | 'dry_run';
645
731
  }, {
646
732
  runs: Array<{
647
733
  id: string;
648
- jobKind: "portal_session_cleanup" | "portal_exchange_code_cleanup" | "analytics_transition" | "webhook_delivery_log_cleanup" | "email_audit_body_cleanup" | "request_log_cleanup" | "newsletter_subscriber_minimization" | "form_submission_anonymization" | "booking_operational_retention_review" | "appointment_operational_retention_review" | "event_registration_retention_review" | "order_operational_minimization_review";
649
- executionMode: "scheduled" | "manual" | "dry_run";
650
- status: "running" | "completed" | "partially_failed" | "failed";
734
+ jobKind: 'portal_session_cleanup' | 'portal_exchange_code_cleanup' | 'analytics_transition' | 'webhook_delivery_log_cleanup' | 'email_audit_body_cleanup' | 'request_log_cleanup' | 'newsletter_subscriber_minimization' | 'form_submission_anonymization' | 'booking_operational_retention_review' | 'appointment_operational_retention_review' | 'event_registration_retention_review' | 'order_operational_minimization_review';
735
+ executionMode: 'scheduled' | 'manual' | 'dry_run';
736
+ status: 'running' | 'completed' | 'partially_failed' | 'failed';
651
737
  triggerSource: string;
652
738
  dataClasses: string[];
653
739
  startedAt: string;
@@ -710,11 +796,11 @@ export type SiteManagementAPIEndpoints = {
710
796
  counts: DsarRunCountsApi;
711
797
  }>;
712
798
  adminRunFormSubmissionRetention: APIEndpoint<{
713
- executionMode: "dry_run" | "manual";
799
+ executionMode: 'dry_run' | 'manual';
714
800
  siteId?: string;
715
801
  limit?: number;
716
802
  }, never, {
717
- outcome: "executed" | "already_running";
803
+ outcome: 'executed' | 'already_running';
718
804
  runId: string;
719
805
  beforeIso: string;
720
806
  candidateCount: number;
@@ -728,7 +814,7 @@ export type SiteManagementAPIEndpoints = {
728
814
  }>;
729
815
  adminListSupabaseLogs: APIEndpoint<never, {
730
816
  tail?: number;
731
- mode?: "all" | "errors" | "warnings";
817
+ mode?: 'all' | 'errors' | 'warnings';
732
818
  since?: string;
733
819
  until?: string;
734
820
  search?: string;
@@ -738,7 +824,7 @@ export type SiteManagementAPIEndpoints = {
738
824
  }>;
739
825
  adminListVercelLogs: APIEndpoint<never, {
740
826
  tail?: number;
741
- mode?: "all" | "errors" | "warnings";
827
+ mode?: 'all' | 'errors' | 'warnings';
742
828
  since?: string;
743
829
  until?: string;
744
830
  search?: string;
@@ -767,6 +853,7 @@ export type SiteManagementAPIEndpoints = {
767
853
  name: string;
768
854
  isPrimary?: boolean;
769
855
  isFooter?: boolean;
856
+ footerRole?: 'main' | 'legal-policy' | null;
770
857
  position?: number;
771
858
  }, {
772
859
  siteId: string;
@@ -783,6 +870,7 @@ export type SiteManagementAPIEndpoints = {
783
870
  name?: string;
784
871
  isPrimary?: boolean;
785
872
  isFooter?: boolean;
873
+ footerRole?: 'main' | 'legal-policy' | null;
786
874
  position?: number;
787
875
  }, {
788
876
  siteId: string;
@@ -798,7 +886,7 @@ export type SiteManagementAPIEndpoints = {
798
886
  }>;
799
887
  createNavigationItem: APIEndpoint<{
800
888
  label: string;
801
- type: "link" | "dropdown";
889
+ type: 'link' | 'dropdown';
802
890
  link?: LinkPayload;
803
891
  parentId?: string | null;
804
892
  orderIndex?: number;
@@ -811,7 +899,7 @@ export type SiteManagementAPIEndpoints = {
811
899
  }>;
812
900
  updateNavigationItem: APIEndpoint<{
813
901
  label?: string;
814
- type?: "link" | "dropdown";
902
+ type?: 'link' | 'dropdown';
815
903
  link?: LinkPayload;
816
904
  parentId?: string | null;
817
905
  orderIndex?: number;
@@ -966,12 +1054,8 @@ export type SiteManagementAPIEndpoints = {
966
1054
  siteId: string;
967
1055
  ids?: string;
968
1056
  }, {
969
- services: Array<{
970
- id: string;
971
- siteId: string;
972
- title: string;
1057
+ services: Array<Omit<PublicBookingService, 'description'> & {
973
1058
  description?: string;
974
- durationMinutes?: number;
975
1059
  }>;
976
1060
  }>;
977
1061
  getPublicBookingService: APIEndpoint<never, {
@@ -1012,7 +1096,7 @@ export type SiteManagementAPIEndpoints = {
1012
1096
  appointmentId: string;
1013
1097
  }, BookingSessionCancelAppointmentResponse>;
1014
1098
  bookingSessionListEvents: APIEndpoint<never, {
1015
- status?: "confirmed" | "waitlist" | "cancelled";
1099
+ status?: 'confirmed' | 'waitlist' | 'cancelled';
1016
1100
  upcoming?: string;
1017
1101
  occurrenceId?: string;
1018
1102
  limit?: string;
@@ -10,7 +10,7 @@ import type { CreateManagementKeyRequest, CreateManagementKeyResponse, CreateSit
10
10
  import type { GetSiteInspirationAnalysisResponse, ListSiteInspirationAnalysesResponse } from './siteGeneration';
11
11
  import type { ListGscPropertiesAdminResponse, AuthStatusResponse, CronAppointmentRemindersResponse, CronBillingStatusResponse, CronEventFeedbackEmailsResponse, CronEventOccurrencesResponse, CronEventRemindersResponse, CronMediaJobsQuery, CronMediaJobsResponse, CronNewsletterSendResponse, CronPaymentReconciliationResponse, CronSeoIngestResponse, CronWaitlistExpiryResponse } from './siteOperations';
12
12
  import type { ApplySiteStyleSelectionBody, ApplySiteStyleSelectionResponse } from './siteRuntimeEndpoints';
13
- import type { ManagementMediaAsset, MediaResolveResponse, PushSdkConfigRequest, PushSdkConfigResponse, SdkBackfillIdentifiersResult, SdkGetCourseResponse, SdkGetEntryResponse, SdkGetEventCategoryResponse, SdkGetEventResponse, SdkGetFormResponse, SdkGetPageBlockResponse, SdkGetVenueResponse, SdkListCoursesResponse, SdkListEntriesResponse, SdkListEventCategoriesResponse, SdkListEventsResponse, SdkListFormsResponse, SdkListVenuesResponse, SdkMediaFinalizeUploadResponse, SdkMediaUploadUrlResponse, SdkPageResponse, SdkEntryUpsertSlotBlock, SdkPublishOrUnpublishEntryResponse, SdkPullContentTypesResponse, SdkPullCourseProgram, SdkPullCourseSession, SdkPullCoursesResponse, SdkPullEntriesAllResponse, SdkPullEntriesByTypeResponse, SdkPullEntriesResponse, SdkPullEventCategoriesResponse, SdkPullEventsResponse, SdkPullFooterResponse, SdkPullFormSchema, SdkPullFormsResponse, SdkPullFormSettings, SdkPullDraftsResponse, SdkPullNavigationResponse, SdkPullPagesResponse, SdkPullSettings, SdkPullSettingsResponse, SdkPullSiteInfoResponse, SdkPullThemeResponse, SdkPullVenue, SdkPullVenuesResponse, SdkUpdateSettingsResponse, SdkUpsertBlockResponse, SdkUpsertCourseResponse, SdkUpsertEntryResponse, SdkUpsertPageResponse, SdkUpsertEventCategoryResponse, SdkUpsertEventResponse, SdkUpsertFooterResponse, SdkUpsertFormResponse, SdkUpsertNavigationMenuResponse, SdkUpsertThemeResponse, SdkUpsertVenueResponse } from './sdkContracts';
13
+ import type { ManagementMediaAsset, MediaResolveResponse, PushSdkConfigRequest, PushSdkConfigResponse, SdkBackfillIdentifiersResult, SdkGetCourseResponse, SdkGetEntryResponse, SdkGetEventCategoryResponse, SdkGetEventResponse, SdkGetFormResponse, SdkGetPageBlockResponse, SdkPatchPageBlockBody, SdkPatchPageBlockResponse, SdkGetVenueResponse, SdkListCoursesResponse, SdkListEntriesResponse, SdkListEventCategoriesResponse, SdkListEventsResponse, SdkListFormsResponse, SdkListVenuesResponse, SdkMediaFinalizeUploadResponse, SdkMediaUploadUrlResponse, SdkPageResponse, SdkEntryUpsertSlotBlock, SdkPublishOrUnpublishEntryResponse, SdkPullContentTypesResponse, SdkCatalogThemeResponse, SdkCatalogBlocksResponse, SdkCatalogContentTypesResponse, SdkCapabilitiesResponse, SdkDemoContentResponse, SdkPullCourseProgram, SdkPullCourseSession, SdkPullCoursesResponse, SdkPullEntriesAllResponse, SdkPullEntriesByTypeResponse, SdkPullEntriesResponse, SdkPullEventCategoriesResponse, SdkPullEventsResponse, SdkPullFooterResponse, SdkPullFormSchema, SdkPullFormsResponse, SdkPullFormSettings, SdkPullDraftsResponse, SdkPullNavigationResponse, SdkPullPagesResponse, SdkPullSettings, SdkPullSettingsResponse, SdkPullSiteInfoResponse, SdkPullThemeResponse, SdkPullVenue, SdkPullVenuesResponse, SdkUpdateSettingsResponse, SdkUpsertBlockResponse, SdkUpsertCourseResponse, SdkUpsertEntryResponse, SdkUpsertPageResponse, SdkUpsertEventCategoryResponse, SdkUpsertEventResponse, SdkUpsertFooterResponse, SdkUpsertFormResponse, SdkUpsertNavigationMenuResponse, SdkUpsertThemeResponse, SdkUpsertVenueResponse } from './sdkContracts';
14
14
  import type { SdkEventUpsertBody } from './sdk-event-upsert';
15
15
  import type { StripeConnectDisconnectResponse, StripeConnectStartResponse, StripeConnectStatusResponse, UpdateStripeAutomaticTaxRequest } from './billing';
16
16
  import type { NavigationLinkInput } from './navigation/types';
@@ -186,6 +186,21 @@ export type SitePlatformAPIEndpoints = {
186
186
  sdkPullContentTypes: APIEndpoint<never, {
187
187
  siteId: string;
188
188
  }, SdkPullContentTypesResponse>;
189
+ sdkCatalogTheme: APIEndpoint<never, {
190
+ siteId: string;
191
+ }, SdkCatalogThemeResponse>;
192
+ sdkCatalogBlocks: APIEndpoint<never, {
193
+ siteId: string;
194
+ }, SdkCatalogBlocksResponse>;
195
+ sdkCatalogContentTypes: APIEndpoint<never, {
196
+ siteId: string;
197
+ }, SdkCatalogContentTypesResponse>;
198
+ sdkCapabilities: APIEndpoint<never, {
199
+ siteId: string;
200
+ }, SdkCapabilitiesResponse>;
201
+ sdkListDemoContent: APIEndpoint<never, {
202
+ siteId: string;
203
+ }, SdkDemoContentResponse>;
189
204
  sdkPullPages: APIEndpoint<never, {
190
205
  siteId: string;
191
206
  }, SdkPullPagesResponse>;
@@ -262,6 +277,11 @@ export type SitePlatformAPIEndpoints = {
262
277
  kind: string;
263
278
  data: Record<string, unknown>;
264
279
  position?: number;
280
+ /**
281
+ * Optional catalog-coherence precondition (`catalog/blocks`
282
+ * `activeTheme.selectionVersion`); mismatch → 409 tag `STALE_CATALOG`.
283
+ */
284
+ baseSelectionVersion?: number;
265
285
  }, {
266
286
  siteId: string;
267
287
  identifier: string;
@@ -278,6 +298,11 @@ export type SitePlatformAPIEndpoints = {
278
298
  identifier: string;
279
299
  blockIdentifier: string;
280
300
  }, SdkGetPageBlockResponse>;
301
+ sdkPatchPageBlock: APIEndpoint<SdkPatchPageBlockBody, {
302
+ siteId: string;
303
+ identifier: string;
304
+ blockIdentifier: string;
305
+ }, SdkPatchPageBlockResponse>;
281
306
  sdkReorderPageBlocks: APIEndpoint<{
282
307
  identifiers: string[];
283
308
  }, {
@@ -291,6 +316,7 @@ export type SitePlatformAPIEndpoints = {
291
316
  name: string;
292
317
  isPrimary?: boolean;
293
318
  isFooter?: boolean;
319
+ footerRole?: 'main' | 'legal-policy' | null;
294
320
  items: readonly SdkUpsertNavigationItemInput[];
295
321
  }, {
296
322
  siteId: string;
@@ -443,6 +469,13 @@ export type SitePlatformAPIEndpoints = {
443
469
  contentType: string;
444
470
  data: Record<string, unknown>;
445
471
  slug?: string;
472
+ /**
473
+ * Raw display ordinal, only accepted for content types with
474
+ * `ordering.mode: 'manual'` (400 fieldError otherwise). The server never
475
+ * displaces other entries; equal ordinals resolve deterministically by
476
+ * (manualOrder ASC, createdAt ASC, id ASC). Callers wanting insert-at-
477
+ * position semantics reassign ordinals for the affected entries.
478
+ */
446
479
  manualOrder?: number;
447
480
  blocks?: Record<string, SdkEntryUpsertSlotBlock[]>;
448
481
  publication?: 'draft' | 'publish';
@@ -478,6 +511,7 @@ export type SitePlatformAPIEndpoints = {
478
511
  identifier: string;
479
512
  }, SdkPublishOrUnpublishEntryResponse>;
480
513
  sdkUpdateSettings: APIEndpoint<{
514
+ siteTitle?: string;
481
515
  homepageId?: string | null;
482
516
  seoDefaults?: SdkPullSettings['seoDefaults'];
483
517
  logoIdentifier?: string | null;
@@ -8,7 +8,7 @@ import type { APIEndpoint } from './apiEndpointTypes';
8
8
  import type { AnalyticsReportQuery, AnalyticsReportResponse } from './analytics';
9
9
  import type { CreateMediaAssetBody, MediaAssetResponse, MediaAssetFileFilterContract, MediaBulkDeleteResponse, MediaClassifyJobResponse, MediaJobSummaryResponse, MediaLabelSummary, MediaSettingsResponse } from './media';
10
10
  import type { MediaUsageCheckResponse } from './shared-contracts';
11
- import type { BlockWithContentResponse, BlockListItem, ContentEntryListStage, EntryPageContentSlotsResponse, ListPublishedEntriesResponse, PageDraftRecord, PublishedBlockBaseline, PublishedContentEntryPreviewResponse, PublishedPostPreviewResponse, SdkBlockContent, SdkRuntimeContentByPathResponse, SdkRouteDecisionResponse, SdkRouteOutcomeResponse, SdkTemplate, SiteBySlugResponse, ThemeGenerationTurn, ThemePreferencesRecord, ThemeRow } from './contentRuntime';
11
+ import type { BlockWithContentResponse, BlockListItem, ContentEntryListStage, EntryPageContentSlotsResponse, PageSurfaceContentSlotsResponse, ListPublishedEntriesResponse, PageDraftRecord, PublishedBlockBaseline, PublishedContentEntryPreviewResponse, PublishedPostPreviewResponse, SdkBlockContent, SdkRuntimeContentByPathResponse, SdkRouteDecisionResponse, SdkRouteOutcomeResponse, SdkTemplate, SiteBySlugResponse, ThemeGenerationTurn, ThemePreferencesRecord, ThemeRow } from './contentRuntime';
12
12
  import type { GetVersionHistoryResponse, ListVersionHistoryResponse, RestoreVersionHistoryRequest, RestoreVersionHistoryResponse, VersionHistoryListQuery } from './contentVersionHistory';
13
13
  import type { CreateMediaUploadUrlRequest, CreateMediaUploadUrlResponse, CreateSiteLogoUploadUrlRequest, CreateSiteLogoUploadUrlResponse, MediaUploadFinalizeRequest, UploadSiteLogoRequest } from './siteInfrastructure';
14
14
  import type { DevToolsGetSiteRoleDowngradeQuery, DevToolsImpersonationResponse, DevToolsSeedResponse, DevToolsSetSiteRoleDowngradeRequest, SiteRoleDowngradeState } from './siteOperations';
@@ -26,37 +26,43 @@ export type SiteThemeSelectionsPayload = {
26
26
  headerLookId?: HeaderLookId | null;
27
27
  footerLookId?: FooterLookId | null;
28
28
  };
29
- export type ApplySiteStyleSelectionCommonBody = Readonly<{
30
- siteStyleId: SiteStyleId;
31
- /** Omitted or `null` selects the first button personality recommended by the site style; a value selects that personality. */
32
- buttonPersonalityId?: ButtonPersonalityId | null;
33
- /** Omitted selects the site style's authoritative concrete typography; a value applies submitted concrete typography. */
34
- typography?: Theme['typography'];
35
- /** Omitted or `null` selects the first header Look recommended by the site style; a value selects that Look. When both header pair fields are omitted, a supplied Look derives the canonical pair when it has one. */
36
- headerLookId?: HeaderLookId | null;
37
- /** Omitted or `null` selects the first footer Look recommended by the site style; a value selects that Look. */
38
- footerLookId?: FooterLookId | null;
39
- baseSelectionVersion: number;
40
- /** Omitted or `null` lets the server target the current selection; a value targets that selection row. */
41
- selectionId?: string | null;
29
+ export type SiteStyleHeaderSelectionChange = Readonly<{
30
+ kind: 'default';
31
+ }> | Readonly<{
32
+ kind: 'legacy';
33
+ headerLookId: HeaderLookId | null;
34
+ }> | Readonly<{
35
+ kind: 'canonical';
36
+ headerLookId: HeaderLookId | null;
37
+ layoutId: HeaderLayoutId;
38
+ styleId: HeaderStyleId;
42
39
  }>;
43
- export type ApplySiteStyleSelectionHeaderBody = Readonly<{
44
- /** Omit both fields to use the curated site style's canonical header default; when `headerLookId` is supplied, derive the pair from that Look when it has a canonical alias. */
45
- headerLayoutId?: undefined;
46
- headerStyleId?: undefined;
40
+ export type SiteStyleSelectionChange = Readonly<{
41
+ kind: 'set-site-style';
42
+ siteStyleId: SiteStyleId;
47
43
  }> | Readonly<{
48
- /** Send both fields as `null` to use the legacy header default. */
49
- headerLayoutId: null;
50
- headerStyleId: null;
44
+ kind: 'set-button-personality';
45
+ buttonPersonalityId: ButtonPersonalityId | null;
51
46
  }> | Readonly<{
52
- /** Canonical header selections are atomic: layout and style must be supplied together. */
53
- headerLayoutId: HeaderLayoutId;
54
- headerStyleId: HeaderStyleId;
47
+ kind: 'set-palette';
48
+ command: PaletteCommand;
49
+ }> | Readonly<{
50
+ kind: 'set-typography';
51
+ typography: Theme['typography'] | null;
52
+ }> | Readonly<{
53
+ kind: 'set-header';
54
+ selection: SiteStyleHeaderSelectionChange;
55
+ }> | Readonly<{
56
+ kind: 'set-footer-look';
57
+ footerLookId: FooterLookId | null;
58
+ }>;
59
+ export type ApplySiteStyleSelectionBody = Readonly<{
60
+ baseSelectionVersion: number;
61
+ /** Omitted or `null` lets the server target the current selection. */
62
+ selectionId?: string | null;
63
+ /** A non-empty, unique-axis batch. Unmentioned axes are preserved. */
64
+ changes: readonly [SiteStyleSelectionChange, ...SiteStyleSelectionChange[]];
55
65
  }>;
56
- export type ApplySiteStyleSelectionBody = ApplySiteStyleSelectionCommonBody & Readonly<{
57
- /** Omitted selects the site style's recommended curated palette; a command applies that palette operation. */
58
- paletteCommand?: PaletteCommand;
59
- }> & ApplySiteStyleSelectionHeaderBody;
60
66
  export type ApplySiteStyleSelectionResponse = Readonly<{
61
67
  success: boolean;
62
68
  themeId: string;
@@ -486,6 +492,46 @@ export type SiteRuntimeAPIEndpoints = {
486
492
  }, {
487
493
  ok: boolean;
488
494
  }>;
495
+ listPageSurfaceContentSlots: APIEndpoint<never, {
496
+ siteId: string;
497
+ pageSurfaceId: string;
498
+ }, PageSurfaceContentSlotsResponse>;
499
+ createPageSurfaceSlotBlock: APIEndpoint<{
500
+ kind: string;
501
+ position?: number;
502
+ purpose?: string;
503
+ expectedCompositionHash: string;
504
+ }, {
505
+ siteId: string;
506
+ pageSurfaceId: string;
507
+ slotKey: string;
508
+ }, {
509
+ ok: boolean;
510
+ block: BlockListItem;
511
+ compositionHash: string;
512
+ }>;
513
+ reorderPageSurfaceSlotBlocks: APIEndpoint<{
514
+ blockIds: string[];
515
+ expectedCompositionHash: string;
516
+ }, {
517
+ siteId: string;
518
+ pageSurfaceId: string;
519
+ slotKey: string;
520
+ }, {
521
+ ok: boolean;
522
+ compositionHash: string;
523
+ }>;
524
+ deletePageSurfaceSlotBlock: APIEndpoint<{
525
+ expectedCompositionHash: string;
526
+ }, {
527
+ siteId: string;
528
+ pageSurfaceId: string;
529
+ slotKey: string;
530
+ blockId: string;
531
+ }, {
532
+ ok: boolean;
533
+ compositionHash: string;
534
+ }>;
489
535
  createBlock: APIEndpoint<{
490
536
  kind: string;
491
537
  position?: number;
@@ -1,6 +1,7 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import type { FieldWidgetProps } from '../../fields/props';
3
3
  import type { TextFieldConfig } from '../../fields/types';
4
+ import { type GradientConfig } from '../../../../blocks/src/index';
4
5
  /**
5
6
  * BackgroundGradientField
6
7
  *
@@ -11,3 +12,11 @@ import type { TextFieldConfig } from '../../fields/types';
11
12
  * This is registered as a widget override with key 'backgroundGradient'.
12
13
  */
13
14
  export declare function BackgroundGradientField({ path, backend, config, }: FieldWidgetProps<string | null, TextFieldConfig>): ReactNode;
15
+ /**
16
+ * Attempts to find a preset that matches the given CSS gradient string.
17
+ *
18
+ * This is a best-effort reverse lookup - if the CSS was generated from a preset,
19
+ * we can find and highlight that preset. If it's custom CSS, we return null
20
+ * and the widget shows no selection.
21
+ */
22
+ export declare function findPresetFromCss(css: string | null, tokens: Record<string, string>): GradientConfig | null;
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
- import type { GradientConfig } from '../../../../blocks/src/index';
2
+ import { type GradientConfig, type GradientPreset } from '../../../../blocks/src/index';
3
3
  export type BackgroundGradientWidgetProps = {
4
4
  label: string;
5
5
  value: GradientConfig | null;
@@ -9,9 +9,8 @@ export type BackgroundGradientWidgetProps = {
9
9
  dataPath?: string;
10
10
  };
11
11
  /**
12
- * BackgroundGradientWidget
13
- *
14
12
  * Select a curated gradient from the theme-based library.
15
13
  * Gradients use theme color tokens, so they adapt to the site's palette.
16
14
  */
17
- export declare function BackgroundGradientWidget(props: BackgroundGradientWidgetProps): import("react").JSX.Element;
15
+ export declare function BackgroundGradientWidget({ label, value, onChange, description, error, dataPath, }: BackgroundGradientWidgetProps): import("react").JSX.Element;
16
+ export declare function gradientConfigFromPreset(preset: GradientPreset): GradientConfig;