@riverbankcms/sdk 0.108.0 → 0.111.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 (278) hide show
  1. package/README.md +21 -1
  2. package/dist/{PreviewEditorSidebar-BBT-kZAM.mjs → PreviewEditorSidebar-CTR6LUhN.mjs} +181 -135
  3. package/dist/{PreviewEditorUI-D69xNKT2.mjs → PreviewEditorUI-DZg15Zip.mjs} +3 -4
  4. package/dist/{PreviewQueryProvider-RRu7wyQ5.mjs → PreviewQueryProvider-kkmjklLG.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-CuDjXH6o.mjs → SdkPreviewModeRuntime-DeOTAFvR.mjs} +436 -367
  6. package/dist/{SiteChromeCustomizeContext-BQUY2dEk.mjs → SiteChromeCustomizeContext-DOSDLCiJ.mjs} +3442 -3029
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +12633 -10490
  8. package/dist/_dts/api/src/bookingAdjustments.d.ts +5 -0
  9. package/dist/_dts/api/src/bookingOperations.d.ts +4 -0
  10. package/dist/_dts/api/src/bookingRecords.d.ts +2 -17
  11. package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +6 -6
  12. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +5 -5
  13. package/dist/_dts/api/src/common/envelope.d.ts +7 -0
  14. package/dist/_dts/api/src/contentRuntime.d.ts +4 -1
  15. package/dist/_dts/api/src/courses.d.ts +31 -15
  16. package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +5 -5
  17. package/dist/_dts/api/src/endpoints.d.ts +49 -4
  18. package/dist/_dts/api/src/index.d.ts +3 -3
  19. package/dist/_dts/api/src/participantMessaging.d.ts +18 -12
  20. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +1 -0
  21. package/dist/_dts/api/src/sdkContracts.d.ts +259 -1
  22. package/dist/_dts/api/src/siteInfrastructure.d.ts +13 -0
  23. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +6 -6
  24. package/dist/_dts/api/src/siteOperations.d.ts +11 -19
  25. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +29 -1
  26. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +37 -31
  27. package/dist/_dts/api/src/webhooks.d.ts +98 -1
  28. package/dist/_dts/billing/src/site-arrangements.d.ts +3 -0
  29. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientField.d.ts +9 -0
  30. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientWidget.d.ts +3 -4
  31. package/dist/_dts/blocks/src/client/course-registration.d.ts +4 -1
  32. package/dist/_dts/blocks/src/client.d.ts +4 -1
  33. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +8 -8
  34. package/dist/_dts/blocks/src/index.d.ts +4 -2
  35. package/dist/_dts/blocks/src/system/blocks/audio-player.d.ts +3 -0
  36. package/dist/_dts/blocks/src/system/blocks/body-text.d.ts +3 -0
  37. package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +3 -0
  38. package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +3 -23
  39. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +2 -1
  40. package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +5 -4
  41. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +3 -23
  42. package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +2 -1
  43. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -1
  44. package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule.d.ts +3 -2
  45. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +2 -1
  46. package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +5 -1
  47. package/dist/_dts/blocks/src/system/blocks/form.d.ts +3 -0
  48. package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +3 -0
  49. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +3 -0
  50. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +5 -1
  51. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -1
  52. package/dist/_dts/blocks/src/system/blocks/single-button.d.ts +2 -1
  53. package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +3 -0
  54. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +3 -0
  55. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +3 -0
  56. package/dist/_dts/blocks/src/system/blocks/video-grid.d.ts +3 -0
  57. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  58. package/dist/_dts/blocks/src/system/constants/buttonRoles.d.ts +35 -0
  59. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +16 -6
  60. package/dist/_dts/blocks/src/system/defineBlock.d.ts +9 -1
  61. package/dist/_dts/blocks/src/system/fields/button.d.ts +10 -21
  62. package/dist/_dts/blocks/src/system/fields/ctas.d.ts +10 -1
  63. package/dist/_dts/blocks/src/system/fragments/library/heroCtaRow.d.ts +9 -5
  64. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +31 -0
  65. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +24 -24
  66. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +12 -12
  67. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessWholeSeriesRegistrationFlow.d.ts +29 -0
  68. package/dist/_dts/blocks/src/system/runtime/nodes/buttonAffordance.d.ts +1 -1
  69. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/ErrorStep.d.ts +2 -1
  70. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/PaymentFailedStep.d.ts +2 -1
  71. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/VerifyingTimeoutStep.d.ts +2 -1
  72. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +21 -0
  73. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +4 -4
  74. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.contract.d.ts +326 -0
  75. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.planning.d.ts +27 -0
  76. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +5 -4
  77. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +3 -2
  78. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +2 -1
  79. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +5 -4
  80. package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +2 -3
  81. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +2 -1
  82. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +7 -4
  83. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +7 -6
  84. package/dist/_dts/blocks/src/system/runtime/nodes/shop.types.d.ts +2 -1
  85. package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +2 -1
  86. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +4 -2
  87. package/dist/_dts/content-editor/src/index.d.ts +12 -12
  88. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +17 -2
  89. package/dist/_dts/content-model/src/content-types/entryValidation.d.ts +31 -0
  90. package/dist/_dts/content-model/src/content-types/scaffold.d.ts +58 -0
  91. package/dist/_dts/content-model/src/content-types/sentinels.d.ts +36 -0
  92. package/dist/_dts/content-model/src/index.d.ts +3 -0
  93. package/dist/_dts/core/src/booking-date-time.d.ts +8 -0
  94. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +3278 -3196
  95. package/dist/_dts/editor-blocks/src/widgets/button/context.d.ts +3 -2
  96. package/dist/_dts/media-core/src/fileMimeDetection.d.ts +16 -0
  97. package/dist/_dts/media-core/src/fileStorage.d.ts +8 -0
  98. package/dist/_dts/media-core/src/storagePathDomain.d.ts +2 -0
  99. package/dist/_dts/media-core/src/uploadVerificationContract.d.ts +3 -0
  100. package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +2 -0
  101. package/dist/_dts/preview-next/src/client/index.d.ts +3 -2
  102. package/dist/_dts/preview-next/src/client/preview/ButtonStylePicker.d.ts +16 -0
  103. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -3
  104. package/dist/_dts/preview-next/src/client/preview/PreviewDesignOpenRequestContext.d.ts +7 -0
  105. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +5 -11
  106. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +5 -6
  107. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +6 -7
  108. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +7 -9
  109. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +4 -11
  110. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +8 -7
  111. package/dist/_dts/preview-next/src/client/preview/sidebarTabPreference.d.ts +0 -8
  112. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +1 -11
  113. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +1 -5
  114. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +2 -3
  115. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +3 -4
  116. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -1
  117. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +3 -5
  118. package/dist/_dts/sdk/src/bookings/index.d.ts +5 -4
  119. package/dist/_dts/sdk/src/bookings/types.d.ts +3 -3
  120. package/dist/_dts/sdk/src/cli/commands/audit.d.ts +1 -1
  121. package/dist/_dts/sdk/src/cli/commands/compare.d.ts +1 -1
  122. package/dist/_dts/sdk/src/cli/commands/deploy.d.ts +1 -1
  123. package/dist/_dts/sdk/src/cli/commands/drafts.d.ts +18 -0
  124. package/dist/_dts/sdk/src/cli/commands/entry.d.ts +15 -0
  125. package/dist/_dts/sdk/src/cli/commands/init-docs.d.ts +2 -2
  126. package/dist/_dts/sdk/src/cli/commands/publish-all.d.ts +1 -1
  127. package/dist/_dts/sdk/src/cli/commands/pull.d.ts +1 -0
  128. package/dist/_dts/sdk/src/cli/commands/push/execute/diff.d.ts +1 -1
  129. package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +3 -0
  130. package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +12 -1
  131. package/dist/_dts/sdk/src/cli/commands/setup.d.ts +1 -0
  132. package/dist/_dts/sdk/src/cli/commands/style.d.ts +3 -2
  133. package/dist/_dts/sdk/src/cli/commands/verify.d.ts +1 -0
  134. package/dist/_dts/sdk/src/cli/helpers.d.ts +22 -1
  135. package/dist/_dts/sdk/src/cli/index.d.ts +4 -0
  136. package/dist/_dts/sdk/src/cli/output.d.ts +88 -0
  137. package/dist/_dts/sdk/src/cli/program.d.ts +29 -0
  138. package/dist/_dts/sdk/src/cli/push-config.d.ts +1 -1
  139. package/dist/_dts/sdk/src/client/management/catalog.d.ts +10 -0
  140. package/dist/_dts/sdk/src/client/management/http.d.ts +7 -1
  141. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
  142. package/dist/_dts/sdk/src/client/management/types.d.ts +45 -20
  143. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +12 -15
  144. package/dist/_dts/sdk/src/date-time/index.d.ts +68 -0
  145. package/dist/_dts/sdk/src/public-api/contracts.d.ts +3 -1
  146. package/dist/_dts/sdk/src/version.d.ts +1 -1
  147. package/dist/_dts/sdk/src/webhooks/index.d.ts +1 -1
  148. package/dist/_dts/sdk/src/webhooks/verify.d.ts +3 -3
  149. package/dist/_dts/site-commands/src/commands.d.ts +1010 -817
  150. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  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 +2 -1
  156. package/dist/_dts/theme-core/src/buttons/presets.d.ts +4 -25
  157. package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +100 -0
  158. package/dist/_dts/theme-core/src/buttons/resolvedButtonCss.d.ts +16 -0
  159. package/dist/_dts/theme-core/src/buttons/styles/domain.d.ts +80 -0
  160. package/dist/_dts/theme-core/src/buttons/styles/index.d.ts +3 -0
  161. package/dist/_dts/theme-core/src/buttons/styles/recipes/defineStaticButtonStyleRecipe.d.ts +49 -0
  162. package/dist/_dts/theme-core/src/buttons/styles/recipes/quietArrow.d.ts +67 -0
  163. package/dist/_dts/theme-core/src/buttons/styles/recipes/staticRecipes.d.ts +649 -0
  164. package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +753 -0
  165. package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +69 -0
  166. package/dist/_dts/theme-core/src/buttons/types.d.ts +101 -83
  167. package/dist/_dts/theme-core/src/cards/types.d.ts +16 -16
  168. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  169. package/dist/_dts/theme-core/src/gradients/presets.d.ts +200 -8
  170. package/dist/_dts/theme-core/src/gradients/utils.d.ts +6 -2
  171. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +87 -126
  172. package/dist/_dts/theme-core/src/mock-themes/modern-minimal.d.ts +1 -1
  173. package/dist/_dts/theme-core/src/navigation/types.d.ts +2 -2
  174. package/dist/_dts/theme-core/src/palette/curated/index.d.ts +2 -2
  175. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +5 -8
  176. package/dist/_dts/theme-core/src/palette/index.d.ts +0 -1
  177. package/dist/_dts/theme-core/src/schema.d.ts +112 -138
  178. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  179. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +26 -24
  180. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +10 -10
  181. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +19 -153
  182. package/dist/_dts/theme-core/src/site-styles/headerCtaVariants.d.ts +3 -1
  183. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +3 -2
  184. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +13 -6
  185. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +8 -9
  186. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +33 -12
  187. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +2 -2
  188. package/dist/_dts/ui/src/palette/hex.d.ts +3 -3
  189. package/dist/cli/index.mjs +68396 -67339
  190. package/dist/cli/init-docs/content/cli-reference.md +50 -7
  191. package/dist/cli/init-docs/content/content-management.md +7 -4
  192. package/dist/cli/init-docs/content/workflow-isr-revalidation.md +1 -1
  193. package/dist/cli/init-docs/content/workflow-publish.md +5 -1
  194. package/dist/client/{DiscountCodeDisclosure-D6TOf6Hi.mjs → DiscountCodeDisclosure-C4xvTBux.mjs} +1 -1
  195. package/dist/client/{EventCombined.client-Dao3zxRk.mjs → EventCombined.client-Cr7G131j.mjs} +2 -3
  196. package/dist/client/{EventListing.client-B2NNt4y1.mjs → EventListing.client-CAjbseNy.mjs} +2 -2
  197. package/dist/client/{LeafletStaticMap-BhwFo16w.mjs → LeafletStaticMap-BMlWfwz3.mjs} +1 -1
  198. package/dist/client/{MagicLinkForm-BWnB7cMR.mjs → MagicLinkForm-ChdFz96y.mjs} +1 -2
  199. package/dist/client/{StepIndicator-TzRiQ0BY.mjs → StepIndicator-7D3GaBeM.mjs} +2 -2
  200. package/dist/client/{accordion-BPy-AJ4_.mjs → accordion-D8JTs2Si.mjs} +1 -1
  201. package/dist/client/{bookingForm-BL4PGZds.mjs → bookingForm-H3DCRBHs.mjs} +6 -7
  202. package/dist/client/bookings.mjs +4649 -2767
  203. package/dist/client/{carousel-C2b7Cn9-.mjs → carousel-DMr_QWlz.mjs} +1 -1
  204. package/dist/client/{cart-BQcbXIVD.mjs → cart-DWMbfBdR.mjs} +3 -3
  205. package/dist/client/{checkout-DEmpGRJu.mjs → checkout-zmfdkXLx.mjs} +3 -3
  206. package/dist/client/client.mjs +3195 -2488
  207. package/dist/client/{colorStyles-jZS6KfkP.mjs → colorStyles-gcTh5yZT.mjs} +2 -41
  208. package/dist/client/{colorTokenParts-CMugwvX_.mjs → colorTokenParts-FSS3al6l.mjs} +31 -1
  209. package/dist/client/{courseRegistration-BqRZPmsq.mjs → courseRegistration-Z_mn18jy.mjs} +100 -37
  210. package/dist/client/{eventCalendar-B8N_tSl5.mjs → eventCalendar-CYp0YJGF.mjs} +4 -5
  211. package/dist/client/{eventCombined-Gjn6gtq7.mjs → eventCombined-rKyYZUa9.mjs} +2 -2
  212. package/dist/client/{eventDetails-M-VCxA-r.mjs → eventDetails-X0ZaUuMj.mjs} +3 -3
  213. package/dist/client/{eventListing-DR19hqYi.mjs → eventListing-W1SuL7EP.mjs} +2 -2
  214. package/dist/client/{eventRegistration-BR02a0k3.mjs → eventRegistration-ClWricui.mjs} +6 -7
  215. package/dist/client/{form-LY2xIbwg.mjs → form--eKPwAAD.mjs} +1 -2
  216. package/dist/client/{headerSection-CYwwXJfh.mjs → headerSection-BSeGr-FS.mjs} +2 -3
  217. package/dist/client/hooks.mjs +2169 -2093
  218. package/dist/client/{locationMap-DWnBXrFq.mjs → locationMap-BpOrtNYn.mjs} +8 -5
  219. package/dist/client/{media-DHtSxS5V.mjs → media-DoF0dcVx.mjs} +4 -3
  220. package/dist/client/{newsletterForm-D9s-fQ2P.mjs → newsletterForm-Bt7it7Dy.mjs} +1 -2
  221. package/dist/client/{pricing-DDq80oYc.mjs → pricing-BTjSDDr4.mjs} +1 -1
  222. package/dist/client/{productDetail-B0SbWd45.mjs → productDetail-ICnVTcCg.mjs} +3 -3
  223. package/dist/client/{productList-PwYlZn0y.mjs → productList-ZHr6D604.mjs} +3 -3
  224. package/dist/client/{propsDecoder-BRWBiH7i.mjs → propsDecoder-wWN0tBDF.mjs} +2484 -223
  225. package/dist/client/rendering/client.mjs +2532 -2144
  226. package/dist/client/rendering/islands.mjs +20 -20
  227. package/dist/client/rendering.mjs +3322 -2462
  228. package/dist/client/{shop-CMwZPYME.mjs → shop-C1u_BUn0.mjs} +5 -6
  229. package/dist/client/{shop-commerce-BuxsFate.mjs → shop-commerce-CleZdRha.mjs} +5 -6
  230. package/dist/client/{shop-commerce-store-boYlEJ91.mjs → shop-commerce-store-ycnoB2Ce.mjs} +1 -1
  231. package/dist/client/{shopShared-D2naaOes.mjs → shopShared-CPhByt2a.mjs} +3 -3
  232. package/dist/client/{useDiscountCodeUi-D9RHpVoj.mjs → useDiscountCodeUi-cStSQI6C.mjs} +1 -1
  233. package/dist/client/{useEventFilters-igGiK1re.mjs → useEventFilters-DKPN7hSY.mjs} +46 -70
  234. package/dist/client/{usePolling-CI7MbsFB.mjs → usePolling-BKAd6pkZ.mjs} +2 -2
  235. package/dist/preview-next/before-render.mjs +72 -6
  236. package/dist/preview-next/client/runtime.mjs +4 -4
  237. package/dist/preview-next/middleware.mjs +72 -6
  238. package/dist/{previewAuthStore-a_cBD28m.mjs → previewAuthStore-BkT1D06A.mjs} +72 -6
  239. package/dist/{sdk-runtime-MBzD-GmP.mjs → sdk-runtime-hu3wr3ng.mjs} +2 -2
  240. package/dist/{separator-5ahRBC85.mjs → separator-Bln8izQ9.mjs} +1 -1
  241. package/dist/server/components.mjs +3123 -2391
  242. package/dist/server/config-validation.mjs +2169 -2093
  243. package/dist/server/config.mjs +2169 -2093
  244. package/dist/server/data.mjs +2169 -2093
  245. package/dist/server/date-time.mjs +386 -0
  246. package/dist/server/index.mjs +73 -7
  247. package/dist/server/next/revalidate.mjs +53 -1
  248. package/dist/server/next.mjs +3195 -2397
  249. package/dist/server/page-converter.mjs +2192 -1945
  250. package/dist/server/prebuild.mjs +1 -1
  251. package/dist/server/rendering/server.mjs +2844 -2325
  252. package/dist/server/rendering.mjs +3123 -2391
  253. package/dist/server/routing.mjs +2269 -2149
  254. package/dist/server/server.mjs +2244 -2102
  255. package/dist/server/theme-bridge.mjs +2720 -1887
  256. package/dist/server/theme.mjs +1669 -1322
  257. package/dist/server/webhooks.mjs +54 -2
  258. package/dist/styles/index.css +5 -0
  259. package/package.json +7 -1
  260. package/dist/_dts/theme-core/src/buttons/personalities/brushed-wash.d.ts +0 -16
  261. package/dist/_dts/theme-core/src/buttons/personalities/confident-chip.d.ts +0 -16
  262. package/dist/_dts/theme-core/src/buttons/personalities/earth-pill.d.ts +0 -16
  263. package/dist/_dts/theme-core/src/buttons/personalities/editorial-link.d.ts +0 -16
  264. package/dist/_dts/theme-core/src/buttons/personalities/flat-ink.d.ts +0 -20
  265. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +0 -172
  266. package/dist/_dts/theme-core/src/buttons/personalities/ink-stamp.d.ts +0 -16
  267. package/dist/_dts/theme-core/src/buttons/personalities/joy-stamp.d.ts +0 -22
  268. package/dist/_dts/theme-core/src/buttons/personalities/ornate-ritual.d.ts +0 -16
  269. package/dist/_dts/theme-core/src/buttons/personalities/pebble.d.ts +0 -16
  270. package/dist/_dts/theme-core/src/buttons/personalities/quiet-arrow.d.ts +0 -17
  271. package/dist/_dts/theme-core/src/buttons/personalities/showtime-pill.d.ts +0 -17
  272. package/dist/_dts/theme-core/src/buttons/personalities/soft-pill.d.ts +0 -16
  273. package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +0 -17
  274. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +0 -273
  275. package/dist/_dts/theme-core/src/buttons/presets/types.d.ts +0 -88
  276. package/dist/_dts/theme-core/src/buttons/utils/contrast.d.ts +0 -38
  277. package/dist/_dts/theme-core/src/palette/themePaletteCompatibility.d.ts +0 -57
  278. package/dist/client/buttons-EBjyslaX.mjs +0 -1852
@@ -1,7 +1,7 @@
1
1
  import type { Theme } from '../../../../blocks/src/index';
2
- import type { ButtonPersonalityId } from '../../../../theme-core/src/buttons/index';
2
+ import type { ButtonStyleSelection } from '../../../../theme-core/src/buttons/index';
3
3
  import { type RuntimePaletteState } from '../../../../theme-core/src/palette/index';
4
- import type { FooterLookId, FooterSelectionContext, HeaderLayoutId, HeaderLookId, HeaderSelectionContext, HeaderStyleId } from '../../../../theme-core/src/site-styles/index';
4
+ import type { FooterLookId, HeaderLayoutId, HeaderLookId, HeaderSelectionContext, HeaderStyleId } from '../../../../theme-core/src/site-styles/index';
5
5
  import type { SelectionSnapshot } from './StyleConfigurator.state';
6
6
  export type PreviewRuntimePaletteState = Extract<RuntimePaletteState, Readonly<{
7
7
  authority: 'curated';
@@ -15,7 +15,7 @@ type StyleConfiguratorSnapshotInput = Readonly<{
15
15
  initialSelections: Readonly<{
16
16
  selectionVersion?: number | null;
17
17
  selectionUpdatedAt?: string | null;
18
- buttonPersonalityId: ButtonPersonalityId | null;
18
+ buttonStyleSelection: ButtonStyleSelection | null;
19
19
  runtimePaletteState: PreviewRuntimePaletteState;
20
20
  headerLayoutId?: HeaderLayoutId | null;
21
21
  headerStyleId?: HeaderStyleId | null;
@@ -23,7 +23,6 @@ type StyleConfiguratorSnapshotInput = Readonly<{
23
23
  footerLookId?: FooterLookId | null;
24
24
  }>;
25
25
  headerSelectionContext?: Partial<HeaderSelectionContext>;
26
- footerSelectionContext?: Partial<FooterSelectionContext>;
27
26
  }>;
28
27
  /**
29
28
  * Preview only accepts the modern, server-resolved palette runtime state. The
@@ -34,6 +33,5 @@ export declare function resolveStyleConfiguratorInitialSnapshot(input: Readonly<
34
33
  theme?: Theme | null;
35
34
  initialSelections: StyleConfiguratorSnapshotInput['initialSelections'];
36
35
  headerSelectionContext?: Partial<HeaderSelectionContext>;
37
- footerSelectionContext?: Partial<FooterSelectionContext>;
38
36
  }>): SelectionSnapshot | null;
39
37
  export {};
@@ -25,14 +25,15 @@
25
25
  * @packageDocumentation
26
26
  */
27
27
  import * as React from 'react';
28
- import { HeadlessBookingAltchaWidget, HeadlessEventRegistrationAltchaWidget, createBookingBlockApiConfig, createEventRegistrationBlockApiConfig, getAppointmentBookingOverrideInput, getEventRegistrationOverrideInput, useHeadlessBookingFlow, useHeadlessEventRegistrationFlow } from '../../../blocks/src/client';
29
- import type { BookingFormClientProps, HeadlessEventRegistrationProviderProps, HeadlessBookingPaymentSelectionStepProps, HeadlessBookingProviderProps, UseBookingFormConfigResult } from './types';
28
+ import { HeadlessBookingAltchaWidget, HeadlessEventRegistrationAltchaWidget, HeadlessWholeSeriesRegistrationAltchaWidget, createBookingBlockApiConfig, createEventRegistrationBlockApiConfig, createWholeSeriesRegistrationBlockApiConfig, getAppointmentBookingOverrideInput, getEventRegistrationOverrideInput, useHeadlessBookingFlow, useHeadlessEventRegistrationFlow, useHeadlessWholeSeriesRegistrationFlow } from '../../../blocks/src/client';
29
+ import type { BookingFormClientProps, HeadlessEventRegistrationProviderProps, HeadlessWholeSeriesRegistrationProviderProps, HeadlessBookingPaymentSelectionStepProps, HeadlessBookingProviderProps, UseBookingFormConfigResult } from './types';
30
30
  export declare const BookingFormClient: React.FC<BookingFormClientProps>;
31
31
  export declare function useBookingFormConfig(siteId: string, formId: string): UseBookingFormConfigResult;
32
32
  export declare const HeadlessBookingProvider: React.FC<HeadlessBookingProviderProps>;
33
33
  export declare const HeadlessEventRegistrationProvider: React.FC<HeadlessEventRegistrationProviderProps>;
34
+ export declare const HeadlessWholeSeriesRegistrationProvider: React.FC<HeadlessWholeSeriesRegistrationProviderProps>;
34
35
  export declare const HeadlessBookingPaymentSelectionStep: React.FC<HeadlessBookingPaymentSelectionStepProps>;
35
36
  export { BOOKING_FORM_DATA_RESERVED_KEY_VALUES } from '../../../blocks/src/client';
36
- export { HeadlessBookingAltchaWidget, HeadlessEventRegistrationAltchaWidget, createBookingBlockApiConfig, createEventRegistrationBlockApiConfig, getAppointmentBookingOverrideInput, getEventRegistrationOverrideInput, useHeadlessBookingFlow, useHeadlessEventRegistrationFlow, };
37
+ export { HeadlessBookingAltchaWidget, HeadlessEventRegistrationAltchaWidget, HeadlessWholeSeriesRegistrationAltchaWidget, createBookingBlockApiConfig, createEventRegistrationBlockApiConfig, createWholeSeriesRegistrationBlockApiConfig, getAppointmentBookingOverrideInput, getEventRegistrationOverrideInput, useHeadlessBookingFlow, useHeadlessEventRegistrationFlow, useHeadlessWholeSeriesRegistrationFlow, };
37
38
  export type { BookingService, BookingFormConfig } from './types';
38
- export type { Service, TimeSlot, BookingFormSettings, BookingFormSchema, BookingFormField, BookingFormData, BookingSelectedCollectionOptionKind, BookingSubmissionData, BookingSubmissionResult, BookingFormClientProps, BookingFormClientForm, BookingFormClientService, HeadlessBookingPaymentSelectionStepProps, HeadlessBookingFlow, HeadlessBookingFlowOptions, HeadlessBookingProviderProps, HeadlessEventRegistrationFlow, HeadlessEventRegistrationFlowOptions, HeadlessEventRegistrationProviderProps, EventRegistrationAttendeeModel, EventRegistrationDiscountModel, EventRegistrationEventsModel, EventRegistrationFlowActionResult, EventRegistrationFlowActions, EventRegistrationFlowStatus, EventRegistrationFlowStep, EventRegistrationFlowStepId, EventRegistrationFlowView, EventRegistrationGuestsModel, EventRegistrationLoadState, EventRegistrationOverrideData, EventRegistrationOverrideInput, EventRegistrationOverrideInputResult, EventRegistrationOverridePropsLike, EventRegistrationPaymentModel, EventRegistrationPaymentSelection, EventRegistrationPortalAuthModel, EventRegistrationSpamProtectionModel, EventRegistrationSubmitOptions, EventRegistrationSubmitResult, EventRegistrationTerminalModel, EventRegistrationTicketsModel, AppointmentBookingOverrideData, AppointmentBookingOverrideInput, AppointmentBookingOverrideInputResult, BookingAvailabilityQuery, BookingAppointmentPackagesModel, BookingAppointmentPackagesUnavailableReason, BookingPaymentOptionViewModel, BookingPaymentSelectionViewModel, BookingFieldValue, BookingFieldView, BookingFlowActionResult, BookingFlowFeedback, BookingFlowStatus, BookingResourceView, BookingResourcesModel, BookingFlowStep, BookingFlowStepId, BookingFlowView, BookingSlotView, BookingSubmitActionResult, BookingSubmitOptions, BookingValidationErrors, DerivedBookingFlowSteps, DeriveBookingFlowStepsInput, UseBookingFormConfigResult, } from './types';
39
+ export type { Service, TimeSlot, BookingFormSettings, BookingFormSchema, BookingFormField, BookingFormData, BookingSelectedCollectionOptionKind, BookingSubmissionData, BookingSubmissionResult, BookingFormClientProps, BookingFormClientForm, BookingFormClientService, HeadlessBookingPaymentSelectionStepProps, HeadlessBookingFlow, HeadlessBookingFlowOptions, HeadlessBookingProviderProps, HeadlessEventRegistrationFlow, HeadlessEventRegistrationFlowOptions, HeadlessEventRegistrationProviderProps, HeadlessWholeSeriesRegistrationFlow, HeadlessWholeSeriesRegistrationFlowOptions, HeadlessWholeSeriesRegistrationProviderProps, WholeSeriesRegistrationAvailabilityModel, WholeSeriesRegistrationFlowActionResult, WholeSeriesRegistrationFlowActions, WholeSeriesRegistrationFlowStatus, WholeSeriesRegistrationFlowStep, WholeSeriesRegistrationFlowStepId, WholeSeriesRegistrationFlowView, WholeSeriesRegistrationPaymentModel, WholeSeriesRegistrationPaymentSelection, WholeSeriesRegistrationPricingInput, WholeSeriesRegistrationPricingModel, WholeSeriesRegistrationPricingOptionInput, WholeSeriesRegistrationRun, WholeSeriesRegistrationRunInput, WholeSeriesRegistrationRunsModel, WholeSeriesRegistrationSpamProtectionModel, WholeSeriesRegistrationWaitlistClaimModel, EventRegistrationAttendeeModel, EventRegistrationDiscountModel, EventRegistrationEventsModel, EventRegistrationFlowActionResult, EventRegistrationFlowActions, EventRegistrationFlowStatus, EventRegistrationFlowStep, EventRegistrationFlowStepId, EventRegistrationFlowView, EventRegistrationGuestsModel, EventRegistrationLoadState, EventRegistrationOverrideData, EventRegistrationOverrideInput, EventRegistrationOverrideInputResult, EventRegistrationOverridePropsLike, EventRegistrationPaymentModel, EventRegistrationPaymentSelection, EventRegistrationPortalAuthModel, EventRegistrationSpamProtectionModel, EventRegistrationSubmitOptions, EventRegistrationSubmitResult, EventRegistrationTerminalModel, EventRegistrationTicketsModel, AppointmentBookingOverrideData, AppointmentBookingOverrideInput, AppointmentBookingOverrideInputResult, BookingAvailabilityQuery, BookingAppointmentPackagesModel, BookingAppointmentPackagesUnavailableReason, BookingPaymentOptionViewModel, BookingPaymentSelectionViewModel, BookingFieldValue, BookingFieldView, BookingFlowActionResult, BookingFlowFeedback, BookingFlowStatus, BookingResourceView, BookingResourcesModel, BookingFlowStep, BookingFlowStepId, BookingFlowView, BookingSlotView, BookingSubmitActionResult, BookingSubmitOptions, BookingValidationErrors, DerivedBookingFlowSteps, DeriveBookingFlowStepsInput, UseBookingFormConfigResult, } from './types';
@@ -8,10 +8,10 @@
8
8
  * responses.
9
9
  */
10
10
  import type { BookingFlexibleBalanceConfig, BookingInstalmentPlanConfig } from '../../../core/src/index';
11
- import type { AppointmentBookingOverrideData, AppointmentBookingOverrideInput, AppointmentBookingOverrideInputResult, BookingAvailabilityQuery, BookingAppointmentPackagesModel, BookingAppointmentPackagesUnavailableReason, BookingPaymentOptionViewModel, BookingPaymentSelectionViewModel, BookingFieldValue, BookingFieldView, BookingFlowActionResult, BookingFlowFeedback, BookingFlowStatus, BookingResourceView, BookingFlowStep, BookingFlowStepId, BookingFlowView, BookingResourcesModel, BookingSlotView, BookingSubmitActionResult, BookingSubmitOptions, BookingValidationErrors, DerivedBookingFlowSteps, DeriveBookingFlowStepsInput, EventRegistrationAttendeeModel, EventRegistrationDiscountModel, EventRegistrationEventsModel, EventRegistrationFlowActionResult, EventRegistrationFlowActions, EventRegistrationFlowStatus, EventRegistrationFlowStep, EventRegistrationFlowStepId, EventRegistrationFlowView, EventRegistrationGuestsModel, EventRegistrationLoadState, EventRegistrationOverrideData, EventRegistrationOverrideInput, EventRegistrationOverrideInputResult, EventRegistrationOverridePropsLike, EventRegistrationPaymentModel, EventRegistrationPaymentSelection, EventRegistrationPortalAuthModel, EventRegistrationSpamProtectionModel, EventRegistrationSubmitOptions, EventRegistrationSubmitResult, EventRegistrationTerminalModel, EventRegistrationTicketsModel, HeadlessBookingFlow, HeadlessBookingFlowOptions, HeadlessBookingPaymentSelectionStepProps, HeadlessBookingProviderProps, HeadlessEventRegistrationFlow, HeadlessEventRegistrationFlowOptions, HeadlessEventRegistrationProviderProps } from '../../../blocks/src/client';
11
+ import type { AppointmentBookingOverrideData, AppointmentBookingOverrideInput, AppointmentBookingOverrideInputResult, BookingAvailabilityQuery, BookingAppointmentPackagesModel, BookingAppointmentPackagesUnavailableReason, BookingPaymentOptionViewModel, BookingPaymentSelectionViewModel, BookingFieldValue, BookingFieldView, BookingFlowActionResult, BookingFlowFeedback, BookingFlowStatus, BookingResourceView, BookingFlowStep, BookingFlowStepId, BookingFlowView, BookingResourcesModel, BookingSlotView, BookingSubmitActionResult, BookingSubmitOptions, BookingValidationErrors, DerivedBookingFlowSteps, DeriveBookingFlowStepsInput, EventRegistrationAttendeeModel, EventRegistrationDiscountModel, EventRegistrationEventsModel, EventRegistrationFlowActionResult, EventRegistrationFlowActions, EventRegistrationFlowStatus, EventRegistrationFlowStep, EventRegistrationFlowStepId, EventRegistrationFlowView, EventRegistrationGuestsModel, EventRegistrationLoadState, EventRegistrationOverrideData, EventRegistrationOverrideInput, EventRegistrationOverrideInputResult, EventRegistrationOverridePropsLike, EventRegistrationPaymentModel, EventRegistrationPaymentSelection, EventRegistrationPortalAuthModel, EventRegistrationSpamProtectionModel, EventRegistrationSubmitOptions, EventRegistrationSubmitResult, EventRegistrationTerminalModel, EventRegistrationTicketsModel, HeadlessBookingFlow, HeadlessBookingFlowOptions, HeadlessBookingPaymentSelectionStepProps, HeadlessBookingProviderProps, HeadlessEventRegistrationFlow, HeadlessEventRegistrationFlowOptions, HeadlessEventRegistrationProviderProps, HeadlessWholeSeriesRegistrationFlow, HeadlessWholeSeriesRegistrationFlowOptions, HeadlessWholeSeriesRegistrationProviderProps, WholeSeriesRegistrationAvailabilityModel, WholeSeriesRegistrationFlowActionResult, WholeSeriesRegistrationFlowActions, WholeSeriesRegistrationFlowStatus, WholeSeriesRegistrationFlowStep, WholeSeriesRegistrationFlowStepId, WholeSeriesRegistrationFlowView, WholeSeriesRegistrationPaymentModel, WholeSeriesRegistrationPaymentSelection, WholeSeriesRegistrationPricingInput, WholeSeriesRegistrationPricingModel, WholeSeriesRegistrationPricingOptionInput, WholeSeriesRegistrationRun, WholeSeriesRegistrationRunInput, WholeSeriesRegistrationRunsModel, WholeSeriesRegistrationSpamProtectionModel, WholeSeriesRegistrationWaitlistClaimModel } from '../../../blocks/src/client';
12
12
  import type { BookingFormData as BlocksBookingFormData, BookingSelectedCollectionOptionKind } from '../../../blocks/src/client';
13
- export { BOOKING_FORM_DATA_RESERVED_KEY_VALUES, } from '../../../blocks/src/client';
14
- export type { AppointmentBookingOverrideData, AppointmentBookingOverrideInput, AppointmentBookingOverrideInputResult, BookingAvailabilityQuery, BookingAppointmentPackagesModel, BookingAppointmentPackagesUnavailableReason, BookingPaymentOptionViewModel, BookingPaymentSelectionViewModel, BookingFieldValue, BookingFieldView, BookingFlowActionResult, BookingFlowFeedback, BookingFlowStatus, BookingResourceView, BookingFlowStep, BookingFlowStepId, BookingFlowView, BookingResourcesModel, BookingSlotView, BookingSubmitActionResult, BookingSubmitOptions, BookingValidationErrors, DerivedBookingFlowSteps, DeriveBookingFlowStepsInput, EventRegistrationAttendeeModel, EventRegistrationDiscountModel, EventRegistrationEventsModel, EventRegistrationFlowActionResult, EventRegistrationFlowActions, EventRegistrationFlowStatus, EventRegistrationFlowStep, EventRegistrationFlowStepId, EventRegistrationFlowView, EventRegistrationGuestsModel, EventRegistrationLoadState, EventRegistrationOverrideData, EventRegistrationOverrideInput, EventRegistrationOverrideInputResult, EventRegistrationOverridePropsLike, EventRegistrationPaymentModel, EventRegistrationPaymentSelection, EventRegistrationPortalAuthModel, EventRegistrationSpamProtectionModel, EventRegistrationSubmitOptions, EventRegistrationSubmitResult, EventRegistrationTerminalModel, EventRegistrationTicketsModel, HeadlessBookingFlow, HeadlessBookingFlowOptions, HeadlessBookingPaymentSelectionStepProps, HeadlessBookingProviderProps, HeadlessEventRegistrationFlow, HeadlessEventRegistrationFlowOptions, HeadlessEventRegistrationProviderProps, BookingSelectedCollectionOptionKind, };
13
+ export { BOOKING_FORM_DATA_RESERVED_KEY_VALUES } from '../../../blocks/src/client';
14
+ export type { AppointmentBookingOverrideData, AppointmentBookingOverrideInput, AppointmentBookingOverrideInputResult, BookingAvailabilityQuery, BookingAppointmentPackagesModel, BookingAppointmentPackagesUnavailableReason, BookingPaymentOptionViewModel, BookingPaymentSelectionViewModel, BookingFieldValue, BookingFieldView, BookingFlowActionResult, BookingFlowFeedback, BookingFlowStatus, BookingResourceView, BookingFlowStep, BookingFlowStepId, BookingFlowView, BookingResourcesModel, BookingSlotView, BookingSubmitActionResult, BookingSubmitOptions, BookingValidationErrors, DerivedBookingFlowSteps, DeriveBookingFlowStepsInput, EventRegistrationAttendeeModel, EventRegistrationDiscountModel, EventRegistrationEventsModel, EventRegistrationFlowActionResult, EventRegistrationFlowActions, EventRegistrationFlowStatus, EventRegistrationFlowStep, EventRegistrationFlowStepId, EventRegistrationFlowView, EventRegistrationGuestsModel, EventRegistrationLoadState, EventRegistrationOverrideData, EventRegistrationOverrideInput, EventRegistrationOverrideInputResult, EventRegistrationOverridePropsLike, EventRegistrationPaymentModel, EventRegistrationPaymentSelection, EventRegistrationPortalAuthModel, EventRegistrationSpamProtectionModel, EventRegistrationSubmitOptions, EventRegistrationSubmitResult, EventRegistrationTerminalModel, EventRegistrationTicketsModel, HeadlessBookingFlow, HeadlessBookingFlowOptions, HeadlessBookingPaymentSelectionStepProps, HeadlessBookingProviderProps, HeadlessEventRegistrationFlow, HeadlessEventRegistrationFlowOptions, HeadlessEventRegistrationProviderProps, HeadlessWholeSeriesRegistrationFlow, HeadlessWholeSeriesRegistrationFlowOptions, HeadlessWholeSeriesRegistrationProviderProps, WholeSeriesRegistrationAvailabilityModel, WholeSeriesRegistrationFlowActionResult, WholeSeriesRegistrationFlowActions, WholeSeriesRegistrationFlowStatus, WholeSeriesRegistrationFlowStep, WholeSeriesRegistrationFlowStepId, WholeSeriesRegistrationFlowView, WholeSeriesRegistrationPaymentModel, WholeSeriesRegistrationPaymentSelection, WholeSeriesRegistrationPricingInput, WholeSeriesRegistrationPricingModel, WholeSeriesRegistrationPricingOptionInput, WholeSeriesRegistrationRun, WholeSeriesRegistrationRunInput, WholeSeriesRegistrationRunsModel, WholeSeriesRegistrationSpamProtectionModel, WholeSeriesRegistrationWaitlistClaimModel, BookingSelectedCollectionOptionKind, };
15
15
  /**
16
16
  * A bookable service (e.g., "30-minute consultation", "Hair cut")
17
17
  *
@@ -99,4 +99,4 @@ export declare function auditOrphanedEntries(ctx: Pick<AuditContext, 'localEntry
99
99
  export declare function auditContentTypes(localContentTypes: Set<string>, validContentTypes: Set<string>): AuditIssue[];
100
100
  export declare function auditEventReferences(events: LocalEvent[], ctx: Pick<AuditContext, 'localVenueRefs' | 'remoteVenueRefs' | 'localCategoryRefs' | 'remoteCategoryRefs' | 'localFormRefs' | 'remoteFormRefs'>): AuditIssue[];
101
101
  export declare function auditCourseReferences(courses: LocalCourse[], ctx: Pick<AuditContext, 'localVenueRefs' | 'remoteVenueRefs' | 'localCategoryRefs' | 'remoteCategoryRefs' | 'localFormRefs' | 'remoteFormRefs'>): AuditIssue[];
102
- export declare const auditCommand: Command;
102
+ export declare const createAuditCommand: () => Command;
@@ -58,5 +58,5 @@ export declare function compareLocalVsCms(localEntries: LocalEntry[], remoteEntr
58
58
  data: Record<string, unknown>;
59
59
  status: string;
60
60
  }>, contentType: string): ComparisonResult;
61
- export declare const compareCommand: Command;
61
+ export declare const createCompareCommand: () => Command;
62
62
  export {};
@@ -39,5 +39,5 @@ export declare function checkWorkingDirectoryClean(git: SimpleGit, prebuildOutpu
39
39
  * @internal Exported for testing
40
40
  */
41
41
  export declare function commitCacheIfChanged(git: SimpleGit, prebuildOutput: string): Promise<boolean>;
42
- export declare const deployCommand: Command;
42
+ export declare const createDeployCommand: () => Command;
43
43
  export {};
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Drafts Command (Phase 7.3)
3
+ *
4
+ * Cross-type overview of pages and entries with pending (unpublished) changes.
5
+ * Consumes the SDK `pull.drafts()` operation (server-side `GET pull/drafts`),
6
+ * which is correctly server-filtered and fully enumerated — replacing the
7
+ * post-pagination `entry list --status draft` trap.
8
+ *
9
+ * Usage:
10
+ * riverbankcms drafts
11
+ * riverbankcms drafts --json
12
+ */
13
+ import { Command } from 'commander';
14
+ import type { PulledDrafts } from '../../client/management/types';
15
+ /** Flatten the drafts overview into unified table rows for human display. */
16
+ export declare function draftsToTableRows(drafts: PulledDrafts): string[][];
17
+ export declare const createDraftsCommand: () => Command;
18
+ export declare const draftsCommand: Command;
@@ -12,6 +12,7 @@
12
12
  * riverbankcms entry list <type> [--limit N] [--page N]
13
13
  */
14
14
  import { Command } from 'commander';
15
+ import { type EntryScaffold } from '../../../../content-model/src/index';
15
16
  import type { ManagementClient, ManagementEntry } from '../../client/management/types';
16
17
  import { type MediaValidationResult } from '../media/write-guard';
17
18
  export declare const ENTRY_LIST_COLUMNS: readonly ["id", "identifier", "slug", "status", "hasUnpublishedChanges", "updatedAt", "createdAt", "publishedAt", "title", "contentType"];
@@ -37,4 +38,18 @@ export declare function findEntryById(client: ManagementClient, contentType: str
37
38
  limit?: number;
38
39
  maxPages?: number;
39
40
  }): Promise<ManagementEntry | null>;
41
+ /**
42
+ * Resolve a scaffold for a content type from the discovery catalog (the field
43
+ * DSL), or an error listing the available keys. Sourced from
44
+ * `client.catalog.contentTypes()`, matching how `content-type list` resolves its
45
+ * source from the client. (An offline local-config fallback is not implemented:
46
+ * the normalized field DSL is only exposed over the catalog API, and
47
+ * `content-type list` likewise has no local fallback.)
48
+ */
49
+ export declare function resolveEntryScaffold(client: ManagementClient, contentType: string): Promise<{
50
+ scaffold: EntryScaffold;
51
+ } | {
52
+ error: string;
53
+ availableKeys: string[];
54
+ }>;
40
55
  export declare const entryCommand: Command;
@@ -9,5 +9,5 @@ interface InitDocsOptions {
9
9
  config?: string;
10
10
  }
11
11
  export declare function runInitDocs(options: InitDocsOptions, command: Command): Promise<void>;
12
- declare const initDocsCommand: Command;
13
- export { initDocsCommand };
12
+ export declare const createInitDocsCommand: () => Command;
13
+ export {};
@@ -47,4 +47,4 @@ export declare function categorizeEntries(entries: ManagementEntry[]): {
47
47
  * Exported for testing.
48
48
  */
49
49
  export declare function aggregateResults(results: PublishResult[]): Omit<PublishAllSummary, 'total'>;
50
- export declare const publishAllCommand: Command;
50
+ export declare const createPublishAllCommand: () => Command;
@@ -39,4 +39,5 @@ export declare function shouldPromptForOverwrite(opts: {
39
39
  force: boolean;
40
40
  yes: boolean;
41
41
  }): boolean;
42
+ export declare const createPullCommand: () => Command;
42
43
  export declare const pullCommand: Command;
@@ -16,4 +16,4 @@ export declare function displayDiff(params: {
16
16
  remoteContent: PulledContent;
17
17
  humanDiff?: boolean;
18
18
  mediaReport?: LocalMediaPushReport;
19
- }): void;
19
+ }): unknown;
@@ -5,7 +5,10 @@ export interface PushOptions {
5
5
  force?: boolean;
6
6
  forceUpdateAsset?: boolean;
7
7
  allowTruncated?: boolean;
8
+ /** @deprecated Use `--diff-detail` instead; folded into the `--json` envelope. */
8
9
  jsonDiff?: string;
10
+ /** Diff verbosity carried in the `--json` envelope: 'summary' (default) or 'full'. */
11
+ diffDetail?: string;
9
12
  withConfig?: boolean;
10
13
  withTheme?: boolean;
11
14
  syncMedia?: boolean;
@@ -7,6 +7,17 @@ import { type PushScope } from './push/consts';
7
7
  export interface PushExecutionResult {
8
8
  success: boolean;
9
9
  }
10
+ /**
11
+ * Single command-owned result for a push, assembled once at the end of the push
12
+ * command (finding 4). `executePushForEnv` writes the diff into `detail` and the
13
+ * sync outcome into `execution`; the command adds `verification` and emits the
14
+ * whole object exactly once, so no stage's result clobbers another's.
15
+ */
16
+ export interface PushResultAccumulator {
17
+ detail?: unknown;
18
+ execution?: unknown;
19
+ verification?: unknown;
20
+ }
10
21
  export declare function noContentFoundWarningDetails(contentDir: string): Readonly<{
11
22
  contentDir: string;
12
23
  expectedFiles: readonly string[];
@@ -39,5 +50,5 @@ export declare function executePushForEnv(output: OutputContext, target: EnvTarg
39
50
  jsonDiffMode?: JsonDiffMode | null;
40
51
  }, globalOpts: {
41
52
  json?: boolean;
42
- }): Promise<PushExecutionResult>;
53
+ }, resultSink?: PushResultAccumulator): Promise<PushExecutionResult>;
43
54
  export {};
@@ -1,2 +1,3 @@
1
1
  import { Command } from 'commander';
2
+ export declare function createSetupCommand(): Command;
2
3
  export declare const setupCommand: Command;
@@ -10,7 +10,8 @@ import { type SiteStyleSelectionApplyCommand } from '../../client/management';
10
10
  import type { OutputContext } from '../output';
11
11
  type StyleSelectionOptions = Readonly<{
12
12
  siteStyleId: string;
13
- buttonPersonalityId?: string;
13
+ buttonStyleId?: string;
14
+ buttonStyleParameters?: string;
14
15
  paletteCommand?: string;
15
16
  typography?: string;
16
17
  headerLookId?: string;
@@ -39,7 +40,7 @@ export type StyleCatalogListRow = Readonly<{
39
40
  siteStyleId: string;
40
41
  name: string;
41
42
  palettes: readonly StyleCatalogChoice[];
42
- buttonPersonalities: readonly StyleCatalogChoice[];
43
+ buttonStyles: readonly StyleCatalogChoice[];
43
44
  typography: Readonly<{
44
45
  body: string;
45
46
  heading: string;
@@ -7,4 +7,5 @@
7
7
  * riverbankcms verify [--env=remote] [--config <path>]
8
8
  */
9
9
  import { Command } from 'commander';
10
+ export declare const createVerifyCommand: () => Command;
10
11
  export declare const verifyCommand: Command;
@@ -7,8 +7,29 @@
7
7
  import { Command } from 'commander';
8
8
  import type { SiteId } from '../../../core/src/index';
9
9
  import type { ManagementClient } from '../client/management/types';
10
- import { type OutputContext } from './output';
10
+ import { InvocationEnvelope, type OutputContext } from './output';
11
11
  import { type CliErrorContext } from './errors';
12
+ /**
13
+ * Run `fn` within a fresh invocation envelope. Returns the envelope so `runCli`
14
+ * can flush it and derive the exit code after the run completes (or fails).
15
+ */
16
+ export declare function runWithInvocation<T>(fn: (envelope: InvocationEnvelope) => Promise<T>): {
17
+ envelope: InvocationEnvelope;
18
+ done: Promise<T>;
19
+ };
20
+ /** The current invocation's envelope, if output is running inside `runCli`. */
21
+ export declare function currentInvocationEnvelope(): InvocationEnvelope | undefined;
22
+ /**
23
+ * Build the space-separated command path for the envelope's `command` field,
24
+ * excluding the root program name (e.g. `entry upsert`, `drafts`).
25
+ */
26
+ export declare function resolveCommandPath(command: Command): string;
27
+ /**
28
+ * Create an OutputContext bound to a command. In JSON mode it resolves the
29
+ * current invocation's envelope from the async context, so all output funnels
30
+ * into one document.
31
+ */
32
+ export declare function createOutputForCommand(command: Command): OutputContext;
12
33
  /**
13
34
  * Environment target for CLI operations.
14
35
  */
@@ -3,5 +3,9 @@
3
3
  *
4
4
  * CLI tools for SDK site developers.
5
5
  * Supports bidirectional content management: pull content from CMS and push content back.
6
+ *
7
+ * This module is the bin entry point: it loads env files, then runs the CLI via
8
+ * `runCli`, which owns the process exit code and guarantees exactly one JSON
9
+ * envelope per invocation under `--json`. The command tree lives in `program.ts`.
6
10
  */
7
11
  export {};
@@ -2,12 +2,100 @@
2
2
  * CLI Output Formatting
3
3
  *
4
4
  * Provides consistent output formatting for CLI commands.
5
+ *
6
+ * ## Single JSON envelope contract (Phase 7.1)
7
+ *
8
+ * Under `--json`, EVERY command emits EXACTLY ONE JSON document on stdout:
9
+ *
10
+ * { ok: boolean, command: string, result: <command-specific>, warnings: [...], errors: [...] }
11
+ *
12
+ * This is enforced structurally: in JSON mode the terminal output methods
13
+ * (`success`/`result`/`json`/`table`) do NOT print — they buffer their payload
14
+ * into the invocation's {@link InvocationEnvelope}. `warn` appends to `warnings`,
15
+ * `error`/`fail` append to `errors`. A single writer (`InvocationEnvelope.flush`)
16
+ * emits the one envelope: on success via the program's `postAction` hook, on
17
+ * failure via `error()` (which throws `CliExit` so `runCli` owns the exit code),
18
+ * and for parse/help/version via `runCli` itself. Commands can therefore never
19
+ * double-print a JSON document, no matter how many output calls they make.
20
+ *
21
+ * Human (non-`--json`) output is unchanged.
22
+ */
23
+ /** A structured warning or error entry inside the JSON envelope. */
24
+ export interface EnvelopeMessage {
25
+ message: string;
26
+ code?: string;
27
+ details?: unknown;
28
+ suggestion?: unknown;
29
+ }
30
+ /**
31
+ * The single machine-readable document emitted per invocation under `--json`.
32
+ *
33
+ * Closed discriminated final state: an `ok: false` envelope ALWAYS carries at
34
+ * least one typed error (`errors` is a non-empty tuple), and an `ok: true`
35
+ * envelope never carries errors. The invariant is enforced by
36
+ * {@link InvocationEnvelope.flush}, so `{ ok: false, errors: [] }` is
37
+ * unrepresentable in the emitted output.
5
38
  */
39
+ export type JsonEnvelope = {
40
+ ok: true;
41
+ command: string;
42
+ result: unknown;
43
+ warnings: EnvelopeMessage[];
44
+ errors: [];
45
+ } | {
46
+ ok: false;
47
+ command: string;
48
+ result: unknown;
49
+ warnings: EnvelopeMessage[];
50
+ errors: [EnvelopeMessage, ...EnvelopeMessage[]];
51
+ };
52
+ /**
53
+ * Raised by `output.error` (and mapped by `runCli`) to terminate a command with a
54
+ * non-zero exit code WITHOUT calling `process.exit` inside command code — so the
55
+ * single envelope is always flushed first and the exit code is owned in one place.
56
+ */
57
+ export declare class CliExit extends Error {
58
+ readonly code: number;
59
+ constructor(code: number);
60
+ }
61
+ /**
62
+ * Accumulates the single JSON envelope for ONE CLI invocation. Created once per
63
+ * invocation (owned by the fresh root program) and threaded to every command's
64
+ * output, so all output — success, warnings, errors, and even parse/help/version
65
+ * handled by `runCli` — funnels into one document. `flush()` is idempotent and is
66
+ * the ONLY writer of the stdout JSON.
67
+ */
68
+ export declare class InvocationEnvelope {
69
+ private resultValue;
70
+ private failed;
71
+ private readonly warnings;
72
+ private readonly errors;
73
+ private flushed;
74
+ setResult(value: unknown): void;
75
+ addWarning(warning: EnvelopeMessage): void;
76
+ addError(error: EnvelopeMessage): void;
77
+ markFailed(): void;
78
+ hasFlushed(): boolean;
79
+ /** True once at least one error has been recorded or a failure marked. */
80
+ isFailed(): boolean;
81
+ private finalState;
82
+ /** Emit the single envelope. Idempotent: subsequent calls are no-ops. */
83
+ flush(command: string): void;
84
+ }
6
85
  export interface OutputOptions {
7
86
  /** Output in JSON format for machine parsing */
8
87
  json?: boolean;
9
88
  /** Minimal output (suppress non-essential messages) */
10
89
  quiet?: boolean;
90
+ /**
91
+ * In JSON mode, the invocation-scoped envelope all terminal output funnels into
92
+ * so exactly one document is emitted. Always supplied by `createOutputForCommand`
93
+ * in JSON mode; if absent, JSON-mode terminal writes are dropped (never a stray
94
+ * second document).
95
+ */
96
+ envelope?: InvocationEnvelope;
97
+ /** Full command path (e.g. "entry upsert") for the envelope's `command` field. */
98
+ command?: string;
11
99
  }
12
100
  export interface OutputContext {
13
101
  success(message: string, data?: unknown): void;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Riverbank CMS SDK CLI — program construction and invocation.
3
+ *
4
+ * `createProgram()` builds the full Commander command tree; `runCli()` drives it
5
+ * so that under `--json` EXACTLY ONE envelope reaches stdout for EVERY outcome,
6
+ * including the paths Commander itself owns — parse errors, `--help`, and
7
+ * `--version` (which would otherwise bypass command actions entirely).
8
+ *
9
+ * `runCli`:
10
+ * - runs `parseAsync` inside an AsyncLocalStorage invocation scope so all output
11
+ * (actions, and the parse/help/version handling below) funnels into ONE
12
+ * envelope, isolated per concurrent invocation;
13
+ * - installs `exitOverride` + `configureOutput` on every command so Commander's
14
+ * exits and its help/version/error text are intercepted rather than written
15
+ * raw or exiting the process; and
16
+ * - owns the process exit code (commands never call `process.exit`).
17
+ */
18
+ import { Command } from 'commander';
19
+ export declare function createProgram(): Command;
20
+ /**
21
+ * Parse and run the CLI. Returns the process exit code (the caller sets
22
+ * `process.exitCode`); it never calls `process.exit` itself, so it is safe to
23
+ * drive from tests. Under `--json`, exactly one envelope is written to stdout for
24
+ * every outcome — success, non-fatal failure, thrown error, parse error, `--help`,
25
+ * and `--version`.
26
+ */
27
+ export declare function runCli(argv: string[], options?: {
28
+ program?: Command;
29
+ }): Promise<number>;
@@ -45,5 +45,5 @@ export declare function pushConfigAction(output: OutputContext, options: PushCon
45
45
  /**
46
46
  * push-config command definition
47
47
  */
48
- export declare const pushConfigCommand: Command;
48
+ export declare const createPushConfigCommand: () => Command;
49
49
  export {};
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Catalog (discovery surface) operations for the Management Client.
3
+ *
4
+ * Read-only catalogs an agent enumerates to act without reading repo source.
5
+ */
6
+ import type { HttpClient } from './http';
7
+ import type { Capabilities, CatalogOperations, DemoContent } from './types';
8
+ export declare function createCatalogOperations(http: HttpClient): CatalogOperations;
9
+ export declare function createCapabilitiesOperation(http: HttpClient): () => Promise<Capabilities>;
10
+ export declare function createDemoContentOperation(http: HttpClient): () => Promise<DemoContent>;
@@ -25,7 +25,13 @@ export declare class ManagementApiError extends Error {
25
25
  readonly details?: unknown;
26
26
  readonly statusCode?: number;
27
27
  readonly request?: ManagementApiErrorRequest;
28
- constructor(message: string, code: string, details?: unknown, statusCode?: number, request?: ManagementApiErrorRequest);
28
+ /**
29
+ * Precise failure tag from the server's `DomainServiceError` (e.g. `STALE_BASE`,
30
+ * `PALETTE_CAP_REACHED`). Branch on this when the coarse `code`/`statusCode`
31
+ * collapses several failures into one.
32
+ */
33
+ readonly tag?: string;
34
+ constructor(message: string, code: string, details?: unknown, statusCode?: number, request?: ManagementApiErrorRequest, tag?: string);
29
35
  }
30
36
  /**
31
37
  * Type guard to check if an error is a 404 Not Found response.
@@ -36,7 +36,7 @@ import { CourseSessionConflictError } from './courses';
36
36
  * @returns ManagementClient instance
37
37
  */
38
38
  export declare function createManagementClient(config: ManagementClientConfig): ManagementClient;
39
- export type { ManagementClient, ManagementClientConfig, ManagementEntry, ManagementPage, ManagementBlock, ManagementNavigationMenu, ManagementNavigationItem, ManagementSettings, ManagementForm, ManagementFormField, ManagementFormSchema, ManagementFormSettings, ManagementVenue, VenueAddress, VenueLocation, VenueUpsertInput, ManagementEventCategory, EventCategoryUpsertInput, ManagementEventSeries, EventSchedule, EventScheduleUpsertInput, EventStartDurationSchedule, EventStartEndSchedule, EventPricing, EventPaymentTerms, EventPaymentTermsInput, EventContent, EventSeriesUpsertInput, ManagementCourseRun, CourseRunUpsertInput, CourseSession, CourseProgramContent, CourseSessionConflict, EntryUpsertInput, EntryPublishUpsertResult, UpsertedManagementEntry, PageUpsertInput, PagePublishUpsertResult, BlockUpsertInput, NavigationMenuUpsertInput, NavigationItemInput, FormUpsertInput, SiteStyleSelectionApplyCommand, SiteStyleSelectionApplyCommandInput, ThemeUpsertInitializeInput, ThemeUpsertInput, ThemeUpsertResult, ThemeUpsertUpdateInput, ThemeStyleSelectionApplyInput, ThemeStyleSelectionApplyResult, FooterContent, ManagementFooterContent, FooterContentUpsertInput, FooterOperations, PulledFooter, PulledEntries, PulledPages, PulledDrafts, PulledNavigation, PulledSettings, PulledForms, PulledTheme, PulledVenues, PulledEventCategories, PulledEvents, PulledCourses, PulledSiteInfo, PulledContentType, PulledContentTypes, PulledContent, PaginationOptions, PaginatedResult, EntryOperations, PageOperations, BlockOperations, NavigationOperations, SettingsOperations, SettingsUpdateInput, WebhookOperations, SetupRevalidationWebhookInput, SetupRevalidationWebhookResult, ManagementWebhookEndpoint, RevalidationWebhookPlannedEndpoint, FormOperations, ThemeOperations, VenueOperations, EventCategoryOperations, EventOperations, CourseOperations, PullOperations, IdentifiersOperations, BackfillResult, BackfillPageResult, BackfillBlockResult, BackfillEntryResult, MediaOperations, MediaUploadResult, } from './types';
39
+ export type { ManagementClient, ManagementClientConfig, ManagementEntry, ManagementPage, ManagementBlock, ManagementNavigationMenu, ManagementNavigationItem, ManagementSettings, ManagementForm, ManagementFormField, ManagementFormSchema, ManagementFormSettings, ManagementVenue, VenueAddress, VenueLocation, VenueUpsertInput, ManagementEventCategory, EventCategoryUpsertInput, ManagementEventSeries, EventSchedule, EventScheduleUpsertInput, EventStartDurationSchedule, EventStartEndSchedule, EventPricing, EventPaymentTerms, EventPaymentTermsInput, EventContent, EventSeriesUpsertInput, ManagementCourseRun, CourseRunUpsertInput, CourseSession, CourseProgramContent, CourseSessionConflict, EntryUpsertInput, EntryPublishUpsertResult, UpsertedManagementEntry, PageUpsertInput, PagePublishUpsertResult, BlockUpsertInput, NavigationMenuUpsertInput, NavigationItemInput, FormUpsertInput, SiteStyleSelectionApplyCommand, SiteStyleSelectionApplyCommandInput, ThemeUpsertInitializeInput, ThemeUpsertInput, ThemeUpsertResult, ThemeUpsertUpdateInput, ThemeStyleSelectionApplyInput, ThemeStyleSelectionApplyResult, FooterContent, ManagementFooterContent, FooterContentUpsertInput, FooterOperations, PulledFooter, PulledEntries, PulledPages, PulledDrafts, PulledNavigation, PulledSettings, PulledForms, PulledTheme, PulledVenues, PulledEventCategories, PulledEvents, PulledCourses, PulledSiteInfo, PulledContentType, PulledContentTypes, PulledContent, PaginationOptions, PaginatedResult, EntryOperations, PageOperations, BlockOperations, NavigationOperations, SettingsOperations, SettingsUpdateInput, WebhookOperations, SetupRevalidationWebhookInput, SetupRevalidationWebhookResult, ManagementWebhookEndpoint, RevalidationWebhookPlannedEndpoint, FormOperations, ThemeOperations, VenueOperations, EventCategoryOperations, EventOperations, CourseOperations, PullOperations, CatalogOperations, PulledCatalogTheme, PulledCatalogBlocks, PulledCatalogContentTypes, Capabilities, DemoContent, IdentifiersOperations, BackfillResult, BackfillPageResult, BackfillBlockResult, BackfillEntryResult, MediaOperations, MediaUploadResult, } from './types';
40
40
  export { ManagementApiError, type ManagementApiErrorRequest } from './http';
41
41
  export { BlockPatchStaleContentError, isBlockPatchStaleContentError, } from './blocks';
42
42
  export { applySiteStyleSelectionBodyFromCommand, buildApplySiteStyleSelectionCommand, } from './theme';
@@ -11,8 +11,10 @@ import type { SdkEventPaymentTerms, SdkEventPaymentTermsInput } from '../../../.
11
11
  import type { SdkEventUpsertBody } from '../../../../api/src/sdk-event-upsert';
12
12
  import type { SdkManagementEventSeries } from '../../../../api/src/sdkContracts';
13
13
  import type { SdkPullTruncationMeta } from '../../../../api/src/sdkContracts';
14
+ import type { SdkCapabilitiesResponse, SdkCatalogBlocksResponse, SdkCatalogContentTypesResponse, SdkCatalogThemeResponse, SdkDemoContentResponse } from '../../../../api/src/sdkContracts';
14
15
  import type { SdkEntryPublishErrorCode, SdkPagePublishErrorCode, SdkPublicationOutcome } from '../../../../api/src/sdkContracts';
15
16
  import type { PaletteSelection } from '../../../../theme-core/src/palette/index';
17
+ import type { ButtonStyleSelection } from '../../../../theme-core/src/buttons/index';
16
18
  import type { Theme } from '../../contracts';
17
19
  export type SdkDeletePageResponse = NonNullable<APIEndpoints['sdkDeletePage']['response']>;
18
20
  export type SdkGetPageBlockResponse = NonNullable<APIEndpoints['sdkGetPageBlock']['response']>;
@@ -559,28 +561,18 @@ export interface ThemeUpsertResult {
559
561
  export type SiteStyleSelectionApplyCommand = SiteCommandOf<'applySiteStyleSelection'>;
560
562
  export type SiteStyleSelectionApplyCommandInput = SiteStyleSelectionApplyCommand['input'];
561
563
  /**
562
- * Public SDK input for style-selection apply, derived from the shared command
563
- * IR so SDK, CLI, and AI proposal flows stay aligned. The IR permits the
564
- * minimal request ({siteStyleId, baseSelectionVersion}); omitted choices
565
- * default from the curated style server-side. Wire IDs are strings at this
566
- * boundary; the server schema brands and validates them. The canonical header
567
- * pair is atomic at the type level: both omitted (site-style default), both
568
- * null (legacy default), or both supplied.
564
+ * Public SDK delta contract. `siteStyleRef` is command orchestration identity;
565
+ * semantic style changes live only in the `changes` batch.
569
566
  */
570
- export type ThemeStyleSelectionApplyInput = Omit<SiteStyleSelectionApplyCommandInput, 'siteStyleId' | 'headerLayoutId' | 'headerStyleId'> & Readonly<{
571
- siteStyleId: string;
567
+ export type ThemeStyleSelectionApplyInput = Omit<SiteStyleSelectionApplyCommandInput, 'changes'> & Readonly<{
568
+ siteStyleRef: string;
572
569
  baseSelectionVersion: number;
573
570
  selectionId?: string | null;
574
- }> & (Readonly<{
575
- headerLayoutId?: undefined;
576
- headerStyleId?: undefined;
577
- }> | Readonly<{
578
- headerLayoutId: null;
579
- headerStyleId: null;
580
- }> | Readonly<{
581
- headerLayoutId: string;
582
- headerStyleId: string;
583
- }>);
571
+ changes: readonly [
572
+ SiteStyleSelectionApplyCommandInput['changes'][number],
573
+ ...SiteStyleSelectionApplyCommandInput['changes'][number][]
574
+ ];
575
+ }>;
584
576
  export interface ThemeStyleSelectionApplyResult {
585
577
  success: boolean;
586
578
  themeId: string;
@@ -590,7 +582,7 @@ export interface ThemeStyleSelectionApplyResult {
590
582
  savedAt: string;
591
583
  theme: Theme;
592
584
  siteStyleId: string;
593
- buttonPersonalityId: string;
585
+ buttonStyleSelection: ButtonStyleSelection;
594
586
  activePaletteSelection: PaletteSelection;
595
587
  activeSitePaletteVersion: number | null;
596
588
  headerLookId: string | null;
@@ -911,6 +903,12 @@ export interface ApiErrorResponse {
911
903
  code: string;
912
904
  message: string;
913
905
  }>;
906
+ /**
907
+ * Precise failure tag from the originating server `DomainServiceError`
908
+ * (e.g. `STALE_BASE`, `PALETTE_CAP_REACHED`). Optional; the coarse `code`
909
+ * collapses several tags into one HTTP status.
910
+ */
911
+ tag?: string;
914
912
  };
915
913
  }
916
914
  export type ApiResponse<T> = ApiSuccessResponse<T> | ApiErrorResponse;
@@ -1048,6 +1046,20 @@ export interface PullOperations {
1048
1046
  */
1049
1047
  contentTypes(): Promise<PulledContentTypes>;
1050
1048
  }
1049
+ export type PulledCatalogTheme = SdkCatalogThemeResponse;
1050
+ export type PulledCatalogBlocks = SdkCatalogBlocksResponse;
1051
+ export type PulledCatalogContentTypes = SdkCatalogContentTypesResponse;
1052
+ export type Capabilities = SdkCapabilitiesResponse;
1053
+ /** Demo-seed provenance listing (plan 8.2). */
1054
+ export type DemoContent = SdkDemoContentResponse;
1055
+ export interface CatalogOperations {
1056
+ /** Theme discovery catalog: styles, personalities, palettes, looks + current selection. */
1057
+ theme(): Promise<PulledCatalogTheme>;
1058
+ /** Block discovery catalog: manifest fields, content-source, theme-aware variant availability. */
1059
+ blocks(): Promise<PulledCatalogBlocks>;
1060
+ /** Content-type discovery catalog: normalized field DSL per content type. */
1061
+ contentTypes(): Promise<PulledCatalogContentTypes>;
1062
+ }
1051
1063
  export interface BackfillPageResult {
1052
1064
  pagesUpdated: number;
1053
1065
  identifiersAssigned: Record<string, string>;
@@ -1134,6 +1146,19 @@ export interface ManagementClient {
1134
1146
  events: EventOperations;
1135
1147
  courses: CourseOperations;
1136
1148
  pull: PullOperations;
1149
+ /** Discovery catalogs (theme / blocks / content-types). */
1150
+ catalog: CatalogOperations;
1137
1151
  identifiers: IdentifiersOperations;
1138
1152
  media: MediaOperations;
1153
+ /**
1154
+ * Thin capabilities index: API version, catalog links, and per-catalog content
1155
+ * hashes so agents can cache catalogs and detect drift.
1156
+ */
1157
+ capabilities(): Promise<Capabilities>;
1158
+ /**
1159
+ * Demo-seed provenance ledger: the resources demo recipe runs created on this
1160
+ * site (plan 8.2), so an agent can distinguish placeholder demo content from
1161
+ * authored content and drive cleanup.
1162
+ */
1163
+ demoContent(): Promise<DemoContent>;
1139
1164
  }