@riverbankcms/sdk 0.129.0 → 0.130.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/README.md +51 -266
  2. package/dist/{PreviewEditorSidebar-B43CJ0g_.mjs → PreviewEditorSidebar-DiEpbOdw.mjs} +313 -239
  3. package/dist/{PreviewEditorUI-DHirVkeM.mjs → PreviewEditorUI-C6MvxnIa.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-B1kbhaJD.mjs → PreviewQueryProvider-C2rnoPz6.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-BJumZy1B.mjs → SdkPreviewModeRuntime-DRXA_m5L.mjs} +208 -211
  6. package/dist/{SiteChromeCustomizeContext-D9SlpwEj.mjs → SiteChromeCustomizeContext-BTHdv5_-.mjs} +6222 -6190
  7. package/dist/_dts/ai/src/contracts/commandExposure.d.ts +1 -1
  8. package/dist/_dts/ai/src/contracts/proposalPrimitives.d.ts +52 -0
  9. package/dist/_dts/ai/src/contracts/proposals.d.ts +9438 -33588
  10. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +32572 -0
  11. package/dist/_dts/api/src/appointmentSetup.d.ts +21 -9
  12. package/dist/_dts/api/src/bookingConfig.d.ts +4 -46
  13. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +13 -11
  14. package/dist/_dts/api/src/bookingRecords.d.ts +1 -0
  15. package/dist/_dts/api/src/contentRuntime.d.ts +3 -5
  16. package/dist/_dts/api/src/endpoints.d.ts +14 -21
  17. package/dist/_dts/api/src/eventManagementContracts.d.ts +76 -0
  18. package/dist/_dts/api/src/index.d.ts +5 -3
  19. package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +22 -47
  20. package/dist/_dts/api/src/sdk-event-management.d.ts +53 -0
  21. package/dist/_dts/api/src/sdk-event-schedule.d.ts +8 -6
  22. package/dist/_dts/api/src/sdk-event-upsert.d.ts +112 -20
  23. package/dist/_dts/api/src/sdkContracts.d.ts +74 -115
  24. package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +35 -0
  25. package/dist/_dts/api/src/sdkThemeWire.d.ts +4517 -0
  26. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +18 -29
  27. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +23 -37
  28. package/dist/_dts/blocks/src/contracts/index.d.ts +2 -0
  29. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +6 -8
  30. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +36 -14
  31. package/dist/_dts/blocks/src/index.d.ts +5 -3
  32. package/dist/_dts/blocks/src/lib/media.d.ts +9 -539
  33. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -2
  34. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +135 -90
  35. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -2
  36. package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +37 -4
  37. package/dist/_dts/blocks/src/system/blocks/site-footer-nav-groups-layout.d.ts +1 -1
  38. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +3 -0
  39. package/dist/_dts/blocks/src/system/componentFactory.d.ts +5 -5
  40. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +8 -6
  41. package/dist/_dts/blocks/src/system/customize/serializeBackgroundOverride.d.ts +3 -0
  42. package/dist/_dts/blocks/src/system/fields/background.d.ts +2 -20
  43. package/dist/_dts/blocks/src/system/fields/backgroundContent.d.ts +17 -0
  44. package/dist/_dts/blocks/src/system/fields/backgroundContentAudit.d.ts +20 -0
  45. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +5 -33
  46. package/dist/_dts/blocks/src/system/fragments/builder.d.ts +1 -0
  47. package/dist/_dts/blocks/src/system/fragments/types.d.ts +1 -0
  48. package/dist/_dts/blocks/src/system/helpers/index.d.ts +1 -1
  49. package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +10 -45
  50. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +7 -4
  51. package/dist/_dts/blocks/src/system/manifest/fieldValidation/writeCanonicalization.d.ts +4 -0
  52. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +123 -55
  53. package/dist/_dts/blocks/src/system/registry.d.ts +2 -0
  54. package/dist/_dts/blocks/src/system/runtime/api/types/shop.d.ts +2 -37
  55. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +61 -24
  56. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +30 -12
  57. package/dist/_dts/blocks/src/system/runtime/header/enhanceHeaderSection.d.ts +3 -5
  58. package/dist/_dts/blocks/src/system/runtime/header/headerScrollRuntime.d.ts +2 -0
  59. package/dist/_dts/blocks/src/system/runtime/header/runtimeContract.d.ts +22 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/display.d.ts +9 -2
  61. package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/view.d.ts +3 -0
  62. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -0
  63. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.frame.d.ts +21 -0
  64. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.server.d.ts +2 -0
  65. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +41 -12
  66. package/dist/_dts/blocks/src/system/runtime/nodes/shop.pass-contract.d.ts +3 -0
  67. package/dist/_dts/blocks/src/system/runtime/nodes/shop.state.d.ts +3 -3
  68. package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +3 -1
  69. package/dist/_dts/blocks/src/system/transforms/registry/background.d.ts +1 -1
  70. package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +3 -1
  71. package/dist/_dts/blocks/src/system/transforms/registry/core.d.ts +4 -1
  72. package/dist/_dts/blocks/src/system/transforms/registry/headerRuntime.d.ts +3 -0
  73. package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +2 -1
  74. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +0 -3
  75. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +41 -43
  76. package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +4 -2
  77. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +2 -17
  78. package/dist/_dts/content-editor/src/FooterNavigationLayoutControl.d.ts +5 -0
  79. package/dist/_dts/content-editor/src/footerComposer.d.ts +2 -1
  80. package/dist/_dts/content-editor/src/footerComposerPanelTypes.d.ts +21 -0
  81. package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +2 -1
  82. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +11 -1
  83. package/dist/_dts/content-editor/src/useFooterNavigationLayout.d.ts +26 -0
  84. package/dist/_dts/content-model/src/templates/defaults.d.ts +7 -0
  85. package/dist/_dts/core/src/booking-date-time.d.ts +2 -2
  86. package/dist/_dts/core/src/booking-time-zone.d.ts +6 -0
  87. package/dist/_dts/core/src/footer-composition-types.d.ts +4 -4
  88. package/dist/_dts/core/src/footer-navigation-layout.d.ts +4 -0
  89. package/dist/_dts/core/src/index.d.ts +1 -0
  90. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +38 -18
  91. package/dist/_dts/media-core/src/index.d.ts +1 -0
  92. package/dist/_dts/preview-next/src/client/preview/FooterSidebarDisclosure.d.ts +8 -0
  93. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +5 -5
  94. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +15 -17
  95. package/dist/_dts/preview-next/src/client/preview/PreviewFooterEditorPanel.d.ts +20 -0
  96. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +3 -5
  97. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +3 -5
  98. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -4
  99. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +3 -5
  100. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +6 -7
  101. package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +7 -7
  102. package/dist/_dts/preview-next/src/client/preview/siteChromeCustomizeTypes.d.ts +4 -4
  103. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +2 -2
  104. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +12 -11
  105. package/dist/_dts/preview-next/src/client/preview/siteChromeSelectionRows.d.ts +53 -0
  106. package/dist/_dts/preview-next/src/client/preview/siteStyleAccess.d.ts +1 -6
  107. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +6 -15
  108. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +4 -6
  109. package/dist/_dts/sdk/src/config/types.d.ts +5 -4
  110. package/dist/_dts/sdk/src/config/validation.d.ts +2 -0
  111. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +4 -41
  112. package/dist/_dts/sdk/src/next/catch-all-theme-admission.d.ts +23 -0
  113. package/dist/_dts/sdk/src/next/index.d.ts +8 -6
  114. package/dist/_dts/sdk/src/next/resolveTheme.d.ts +1 -2
  115. package/dist/_dts/sdk/src/next/types.d.ts +10 -0
  116. package/dist/_dts/sdk/src/public-api/contracts.d.ts +2 -16
  117. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +3 -2
  118. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +5 -3
  119. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +1 -1
  120. package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +4 -2
  121. package/dist/_dts/sdk/src/rendering/index.d.ts +2 -0
  122. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +6 -1
  123. package/dist/_dts/sdk/src/rendering/server.d.ts +2 -0
  124. package/dist/_dts/sdk/src/rendering/themeAdmission.d.ts +11 -0
  125. package/dist/_dts/sdk/src/version.d.ts +1 -1
  126. package/dist/_dts/theme-core/src/blockOverrides.d.ts +1 -1
  127. package/dist/_dts/theme-core/src/boxBackgroundSchema.d.ts +184 -0
  128. package/dist/_dts/theme-core/src/buttons/buttonColourContract.d.ts +96 -0
  129. package/dist/_dts/theme-core/src/buttons/buttonSurfaceContext.d.ts +78 -0
  130. package/dist/_dts/theme-core/src/buttons/index.d.ts +2 -0
  131. package/dist/_dts/theme-core/src/buttons/parseThemeForPersistence.d.ts +2 -2
  132. package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +9 -57
  133. package/dist/_dts/theme-core/src/buttons/resolvedButtonCss.d.ts +6 -3
  134. package/dist/_dts/theme-core/src/buttons/styles/domain.d.ts +8 -7
  135. package/dist/_dts/theme-core/src/buttons/styles/recipes/quietArrow.d.ts +1 -0
  136. package/dist/_dts/theme-core/src/buttons/styles/recipes/staticRecipes.d.ts +11 -0
  137. package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +12 -0
  138. package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +5 -0
  139. package/dist/_dts/theme-core/src/buttons/types.d.ts +51 -4
  140. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  141. package/dist/_dts/theme-core/src/lib/media.d.ts +583 -10
  142. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +5117 -1433
  143. package/dist/_dts/theme-core/src/palette/index.d.ts +1 -0
  144. package/dist/_dts/theme-core/src/schema.d.ts +5079 -2005
  145. package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +6 -14
  146. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +29 -102
  147. package/dist/_dts/theme-core/src/site-styles/customizableSurfaces.d.ts +3 -76
  148. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +4 -4
  149. package/dist/_dts/theme-core/src/site-styles/generatedDesignPipeline.d.ts +3 -7
  150. package/dist/_dts/theme-core/src/site-styles/generatedDesignPipelineHelpers.d.ts +17 -0
  151. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
  152. package/dist/_dts/theme-core/src/site-styles/headerLayoutCatalog.d.ts +281 -0
  153. package/dist/_dts/theme-core/src/site-styles/headerLayoutResolution.d.ts +13 -0
  154. package/dist/_dts/theme-core/src/site-styles/headerLayoutStyles.d.ts +6 -0
  155. package/dist/_dts/theme-core/src/site-styles/headerLayoutTypes.d.ts +142 -0
  156. package/dist/_dts/theme-core/src/site-styles/headerNavStyles.d.ts +6 -0
  157. package/dist/_dts/theme-core/src/site-styles/headerOpeningForeground.d.ts +7 -4
  158. package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +2 -2
  159. package/dist/_dts/theme-core/src/site-styles/headerStyleCompiler.d.ts +3 -0
  160. package/dist/_dts/theme-core/src/site-styles/imageSurfaceBackground.d.ts +14 -0
  161. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -1
  162. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +14 -41
  163. package/dist/_dts/theme-core/src/site-styles/runtimeBackgroundResolution.d.ts +23 -0
  164. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +8 -6
  165. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +1 -1
  166. package/dist/client/{CourseRegistrationWizard-xRmA7REV.mjs → CourseRegistrationWizard-Bvtz9G9g.mjs} +5 -5
  167. package/dist/client/{DiscountCodeDisclosure-B9vriL5C.mjs → DiscountCodeDisclosure-Ur-Xx1U_.mjs} +1 -1
  168. package/dist/client/{EventCombined.client-BgVnVTlz.mjs → EventCombined.client-EhscD4U6.mjs} +2 -2
  169. package/dist/client/{EventListing.client-CqdsO7jO.mjs → EventListing.client-Bn26cFTY.mjs} +2 -2
  170. package/dist/client/{LeafletStaticMap-CKPxot9M.mjs → LeafletStaticMap-BUw9Ntzr.mjs} +1 -1
  171. package/dist/client/{StepIndicator-DGCYuBJ1.mjs → StepIndicator-BfbdiVQI.mjs} +2 -2
  172. package/dist/client/{accordion-BfN5Eqd-.mjs → accordion-CjIeof73.mjs} +1 -1
  173. package/dist/client/{bookingForm-DOvCpBFP.mjs → bookingForm-DwEeovf_.mjs} +5 -5
  174. package/dist/client/bookings.mjs +1028 -1038
  175. package/dist/client/{carousel-DPNmiH0f.mjs → carousel-BMrfgOba.mjs} +1 -1
  176. package/dist/client/{cart--egVXlrR.mjs → cart-rXEdxTdb.mjs} +3 -3
  177. package/dist/client/{checkout-DywWtMcq.mjs → checkout-D3JlSzh3.mjs} +3 -3
  178. package/dist/client/client.mjs +18324 -18224
  179. package/dist/client/{courseRegistration-Dk9qFVwt.mjs → courseRegistration-DO5XvMAA.mjs} +2 -2
  180. package/dist/client/{eventCalendar-Bkz2HjlS.mjs → eventCalendar-DO6rTqCn.mjs} +4 -4
  181. package/dist/client/{eventCombined-D4kipYWg.mjs → eventCombined-bJ3i_ovU.mjs} +2 -2
  182. package/dist/client/{eventDetails-Dz_5ix2Q.mjs → eventDetails-CCbrXE7o.mjs} +3 -3
  183. package/dist/client/{eventListing-D0vm-zST.mjs → eventListing-Bdlt9YTm.mjs} +2 -2
  184. package/dist/client/{eventRegistration-Cw1E4Q4p.mjs → eventRegistration-B02lt6iY.mjs} +6 -6
  185. package/dist/client/{form-C2Zf1n3K.mjs → form-DrUBAAox.mjs} +1 -1
  186. package/dist/client/{headerSection-CP05gzdc.mjs → headerSection-MzqvHL6T.mjs} +151 -104
  187. package/dist/client/hooks.mjs +4550 -4211
  188. package/dist/client/{locationMap-Cl3x9PYJ.mjs → locationMap-DG8BxTBm.mjs} +2 -2
  189. package/dist/client/{newsletterForm-DyEJoClm.mjs → newsletterForm-BzO-Td3p.mjs} +1 -1
  190. package/dist/client/{pricing-DGuNR1W4.mjs → pricing-NgK7ozkg.mjs} +1 -1
  191. package/dist/client/{productDetail-Cq-HrGew.mjs → productDetail-CfQ7rhVK.mjs} +3 -3
  192. package/dist/client/{productList-DbB3jwqd.mjs → productList-C23rOLUi.mjs} +3 -3
  193. package/dist/client/{propsDecoder-CiTuhUwY.mjs → propsDecoder-CAZdhwjs.mjs} +2166 -2157
  194. package/dist/client/rendering/client.mjs +3606 -4078
  195. package/dist/client/rendering/islands.mjs +18 -18
  196. package/dist/client/rendering.mjs +15969 -15843
  197. package/dist/client/{scrollToBlock-CShkRqab.mjs → scrollToBlock-DSSqVQr1.mjs} +1 -1
  198. package/dist/client/{shop-Cu4Ib-ZA.mjs → shop-BMToKLK7.mjs} +34 -23
  199. package/dist/client/{shop-commerce-BzpsOdh7.mjs → shop-commerce-DB4JRKmp.mjs} +4 -4
  200. package/dist/client/{shop-commerce-store-DaE7Fhj8.mjs → shop-commerce-store-BOqSIOuc.mjs} +1 -1
  201. package/dist/client/{shopShared-cF0c20vB.mjs → shopShared-B6SK9DZv.mjs} +9 -3
  202. package/dist/client/{useEventFilters-QZ3HMgaJ.mjs → useEventFilters-CULOa4nB.mjs} +2 -2
  203. package/dist/client/{usePolling-BKf0GcE-.mjs → usePolling-BGG_8-jl.mjs} +2 -2
  204. package/dist/preview-next/before-render.mjs +16 -27
  205. package/dist/preview-next/client/runtime.mjs +4 -4
  206. package/dist/preview-next/middleware.mjs +16 -27
  207. package/dist/{previewAuthStore-BesgU5Xu.mjs → previewAuthStore-_GXFRg2W.mjs} +16 -27
  208. package/dist/{sdk-runtime-CfZd5pAm.mjs → sdk-runtime-hhSOMShR.mjs} +2 -2
  209. package/dist/{separator-DkTe68HE.mjs → separator-flRaFc14.mjs} +1 -1
  210. package/dist/server/components.mjs +17802 -17875
  211. package/dist/server/config-validation.mjs +4729 -4416
  212. package/dist/server/config.mjs +4733 -4420
  213. package/dist/server/data.mjs +4533 -4211
  214. package/dist/server/date-time.mjs +22 -13
  215. package/dist/server/index.mjs +17 -28
  216. package/dist/server/manifest.mjs +4966 -0
  217. package/dist/server/next.mjs +17635 -17676
  218. package/dist/server/page-converter.mjs +3759 -4386
  219. package/dist/server/prebuild.mjs +1 -1
  220. package/dist/server/rendering/server.mjs +18960 -19049
  221. package/dist/server/rendering.mjs +17848 -17902
  222. package/dist/server/routing.mjs +4776 -4323
  223. package/dist/server/server.mjs +4609 -4264
  224. package/dist/server/theme-bridge.mjs +1361 -1850
  225. package/dist/server/theme.mjs +736 -605
  226. package/dist/styles/index.css +22 -3
  227. package/package.json +9 -12
  228. package/dist/_dts/api/src/event-presentation.d.ts +0 -14
  229. package/dist/_dts/blocks/src/definitions.d.ts +0 -14
  230. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +0 -66
  231. package/dist/_dts/sdk/src/cli/canonical-entry-policy.d.ts +0 -53
  232. package/dist/_dts/sdk/src/cli/commands/audit.d.ts +0 -101
  233. package/dist/_dts/sdk/src/cli/commands/block.d.ts +0 -24
  234. package/dist/_dts/sdk/src/cli/commands/compare.d.ts +0 -62
  235. package/dist/_dts/sdk/src/cli/commands/content-type.d.ts +0 -10
  236. package/dist/_dts/sdk/src/cli/commands/content.d.ts +0 -56
  237. package/dist/_dts/sdk/src/cli/commands/delete.d.ts +0 -14
  238. package/dist/_dts/sdk/src/cli/commands/deploy.d.ts +0 -43
  239. package/dist/_dts/sdk/src/cli/commands/drafts.d.ts +0 -18
  240. package/dist/_dts/sdk/src/cli/commands/entry.d.ts +0 -55
  241. package/dist/_dts/sdk/src/cli/commands/env.d.ts +0 -31
  242. package/dist/_dts/sdk/src/cli/commands/event.d.ts +0 -23
  243. package/dist/_dts/sdk/src/cli/commands/eventOccurrenceSchedule.d.ts +0 -12
  244. package/dist/_dts/sdk/src/cli/commands/identifiers.d.ts +0 -10
  245. package/dist/_dts/sdk/src/cli/commands/init-docs.d.ts +0 -13
  246. package/dist/_dts/sdk/src/cli/commands/manifest.d.ts +0 -10
  247. package/dist/_dts/sdk/src/cli/commands/media-validation.d.ts +0 -3
  248. package/dist/_dts/sdk/src/cli/commands/migrate.d.ts +0 -11
  249. package/dist/_dts/sdk/src/cli/commands/navigation.d.ts +0 -12
  250. package/dist/_dts/sdk/src/cli/commands/page.d.ts +0 -14
  251. package/dist/_dts/sdk/src/cli/commands/publish-all.d.ts +0 -50
  252. package/dist/_dts/sdk/src/cli/commands/pull-dated-offering-scope.d.ts +0 -10
  253. package/dist/_dts/sdk/src/cli/commands/pull-dry-run.d.ts +0 -70
  254. package/dist/_dts/sdk/src/cli/commands/pull-scope-diff.d.ts +0 -8
  255. package/dist/_dts/sdk/src/cli/commands/pull.d.ts +0 -43
  256. package/dist/_dts/sdk/src/cli/commands/push/consts.d.ts +0 -3
  257. package/dist/_dts/sdk/src/cli/commands/push/execute/diff.d.ts +0 -19
  258. package/dist/_dts/sdk/src/cli/commands/push/execute/footer.d.ts +0 -42
  259. package/dist/_dts/sdk/src/cli/commands/push/execute/localMediaReporting.d.ts +0 -23
  260. package/dist/_dts/sdk/src/cli/commands/push/execute/media.d.ts +0 -22
  261. package/dist/_dts/sdk/src/cli/commands/push/execute/metadata.d.ts +0 -1
  262. package/dist/_dts/sdk/src/cli/commands/push/execute/reporting.d.ts +0 -7
  263. package/dist/_dts/sdk/src/cli/commands/push/execute/theme.d.ts +0 -63
  264. package/dist/_dts/sdk/src/cli/commands/push/filter.d.ts +0 -15
  265. package/dist/_dts/sdk/src/cli/commands/push/metadata.d.ts +0 -29
  266. package/dist/_dts/sdk/src/cli/commands/push/normalizeLocalContent.d.ts +0 -2
  267. package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +0 -32
  268. package/dist/_dts/sdk/src/cli/commands/push/publishGuidance.d.ts +0 -15
  269. package/dist/_dts/sdk/src/cli/commands/push/pushAllExtras.d.ts +0 -25
  270. package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +0 -83
  271. package/dist/_dts/sdk/src/cli/commands/push/scopes/eventCategories.d.ts +0 -4
  272. package/dist/_dts/sdk/src/cli/commands/push/scopes/events.d.ts +0 -4
  273. package/dist/_dts/sdk/src/cli/commands/push/scopes/mediaPrep.d.ts +0 -14
  274. package/dist/_dts/sdk/src/cli/commands/push/scopes/pushScopeGeneric.d.ts +0 -6
  275. package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +0 -87
  276. package/dist/_dts/sdk/src/cli/commands/push/scopes/venues.d.ts +0 -4
  277. package/dist/_dts/sdk/src/cli/commands/push/stale-resolution.d.ts +0 -48
  278. package/dist/_dts/sdk/src/cli/commands/push/stale.d.ts +0 -17
  279. package/dist/_dts/sdk/src/cli/commands/push/verification.d.ts +0 -56
  280. package/dist/_dts/sdk/src/cli/commands/push/workflowPlan.d.ts +0 -34
  281. package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +0 -54
  282. package/dist/_dts/sdk/src/cli/commands/push.d.ts +0 -40
  283. package/dist/_dts/sdk/src/cli/commands/setup.d.ts +0 -3
  284. package/dist/_dts/sdk/src/cli/commands/style.d.ts +0 -60
  285. package/dist/_dts/sdk/src/cli/commands/verify.d.ts +0 -11
  286. package/dist/_dts/sdk/src/cli/commands/webhooks.d.ts +0 -44
  287. package/dist/_dts/sdk/src/cli/config-loader.d.ts +0 -47
  288. package/dist/_dts/sdk/src/cli/content/collectionWriters.d.ts +0 -23
  289. package/dist/_dts/sdk/src/cli/content/edit/format.d.ts +0 -2
  290. package/dist/_dts/sdk/src/cli/content/edit/path.d.ts +0 -14
  291. package/dist/_dts/sdk/src/cli/content/edit/planner.d.ts +0 -46
  292. package/dist/_dts/sdk/src/cli/content/entryPaths.d.ts +0 -6
  293. package/dist/_dts/sdk/src/cli/content/footerFile.d.ts +0 -10
  294. package/dist/_dts/sdk/src/cli/content/fs-utils.d.ts +0 -39
  295. package/dist/_dts/sdk/src/cli/content/legacyEventScheduleShapeError.d.ts +0 -5
  296. package/dist/_dts/sdk/src/cli/content/localEventSchedule.d.ts +0 -17
  297. package/dist/_dts/sdk/src/cli/content/media-manifest.d.ts +0 -13
  298. package/dist/_dts/sdk/src/cli/content/metadataAfterPush.d.ts +0 -25
  299. package/dist/_dts/sdk/src/cli/content/metadataStore.d.ts +0 -29
  300. package/dist/_dts/sdk/src/cli/content/reader.d.ts +0 -488
  301. package/dist/_dts/sdk/src/cli/content/writer.d.ts +0 -142
  302. package/dist/_dts/sdk/src/cli/env-scope.d.ts +0 -2
  303. package/dist/_dts/sdk/src/cli/env.d.ts +0 -71
  304. package/dist/_dts/sdk/src/cli/errors.d.ts +0 -62
  305. package/dist/_dts/sdk/src/cli/helpers/ai-runtime.d.ts +0 -2
  306. package/dist/_dts/sdk/src/cli/helpers.d.ts +0 -399
  307. package/dist/_dts/sdk/src/cli/index.d.ts +0 -11
  308. package/dist/_dts/sdk/src/cli/init-docs/constants.d.ts +0 -16
  309. package/dist/_dts/sdk/src/cli/init-docs/index.d.ts +0 -12
  310. package/dist/_dts/sdk/src/cli/init-docs/templates.d.ts +0 -18
  311. package/dist/_dts/sdk/src/cli/init-docs/zod-to-markdown.d.ts +0 -28
  312. package/dist/_dts/sdk/src/cli/load-config.d.ts +0 -14
  313. package/dist/_dts/sdk/src/cli/media/identifiers.d.ts +0 -18
  314. package/dist/_dts/sdk/src/cli/media/local-media.d.ts +0 -14
  315. package/dist/_dts/sdk/src/cli/media/local-sync.d.ts +0 -91
  316. package/dist/_dts/sdk/src/cli/media/portable.d.ts +0 -11
  317. package/dist/_dts/sdk/src/cli/media/rich-text.d.ts +0 -12
  318. package/dist/_dts/sdk/src/cli/media/value-utils.d.ts +0 -15
  319. package/dist/_dts/sdk/src/cli/media/write-guard.d.ts +0 -52
  320. package/dist/_dts/sdk/src/cli/merge-remote/entryLocal.d.ts +0 -3
  321. package/dist/_dts/sdk/src/cli/merge-remote/entryMerge.d.ts +0 -78
  322. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePlan.d.ts +0 -45
  323. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePush.d.ts +0 -24
  324. package/dist/_dts/sdk/src/cli/merge-remote/entryMergeReport.d.ts +0 -18
  325. package/dist/_dts/sdk/src/cli/merge-remote/entryRemote.d.ts +0 -9
  326. package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +0 -48
  327. package/dist/_dts/sdk/src/cli/merge-remote/mergeFieldChanges.d.ts +0 -22
  328. package/dist/_dts/sdk/src/cli/merge-remote/pageLocal.d.ts +0 -3
  329. package/dist/_dts/sdk/src/cli/merge-remote/pageMerge.d.ts +0 -78
  330. package/dist/_dts/sdk/src/cli/merge-remote/pageMergePlan.d.ts +0 -36
  331. package/dist/_dts/sdk/src/cli/merge-remote/pageMergePush.d.ts +0 -23
  332. package/dist/_dts/sdk/src/cli/merge-remote/pageMergeReport.d.ts +0 -17
  333. package/dist/_dts/sdk/src/cli/merge-remote/pageSnapshots.d.ts +0 -46
  334. package/dist/_dts/sdk/src/cli/merge-remote/sharedBaseSnapshots.d.ts +0 -32
  335. package/dist/_dts/sdk/src/cli/merge-remote/sharedMergePlan.d.ts +0 -27
  336. package/dist/_dts/sdk/src/cli/merge-remote/sharedMergeReport.d.ts +0 -63
  337. package/dist/_dts/sdk/src/cli/migrations/entries.d.ts +0 -28
  338. package/dist/_dts/sdk/src/cli/migrations/events.d.ts +0 -73
  339. package/dist/_dts/sdk/src/cli/navigationIdentity.d.ts +0 -11
  340. package/dist/_dts/sdk/src/cli/output.d.ts +0 -133
  341. package/dist/_dts/sdk/src/cli/program.d.ts +0 -29
  342. package/dist/_dts/sdk/src/cli/push-config.d.ts +0 -49
  343. package/dist/_dts/sdk/src/cli/setup/setupPlan.d.ts +0 -51
  344. package/dist/_dts/sdk/src/cli/site-commands/commandKeys.d.ts +0 -13
  345. package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +0 -170
  346. package/dist/_dts/sdk/src/cli/site-commands/commandRuntimeCompat.d.ts +0 -21
  347. package/dist/_dts/sdk/src/cli/site-commands/commandSurfaceDispatch.d.ts +0 -32
  348. package/dist/_dts/sdk/src/cli/site-commands/datedOfferingCommands.d.ts +0 -53
  349. package/dist/_dts/sdk/src/cli/site-commands/entryCommands.d.ts +0 -65
  350. package/dist/_dts/sdk/src/cli/site-commands/eventScheduleCompiler.d.ts +0 -24
  351. package/dist/_dts/sdk/src/cli/site-commands/footerCommands.d.ts +0 -68
  352. package/dist/_dts/sdk/src/cli/site-commands/formCommands.d.ts +0 -53
  353. package/dist/_dts/sdk/src/cli/site-commands/index.d.ts +0 -8
  354. package/dist/_dts/sdk/src/cli/site-commands/localBlockManifestResolver.d.ts +0 -31
  355. package/dist/_dts/sdk/src/cli/site-commands/navigationCommands.d.ts +0 -57
  356. package/dist/_dts/sdk/src/cli/site-commands/oneOffCommands.d.ts +0 -82
  357. package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +0 -84
  358. package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +0 -39
  359. package/dist/_dts/sdk/src/cli/site-commands/pushExecutionPlan.d.ts +0 -8
  360. package/dist/_dts/sdk/src/cli/site-commands/pushExecutionTypes.d.ts +0 -97
  361. package/dist/_dts/sdk/src/cli/site-commands/residualSettingsTrimming.d.ts +0 -15
  362. package/dist/_dts/sdk/src/cli/sync/diff.d.ts +0 -222
  363. package/dist/_dts/sdk/src/cli/sync/executor.d.ts +0 -84
  364. package/dist/_dts/sdk/src/cli/sync/field-diff.d.ts +0 -39
  365. package/dist/_dts/sdk/src/cli/sync/index.d.ts +0 -10
  366. package/dist/_dts/sdk/src/cli/sync/mapper.d.ts +0 -41
  367. package/dist/_dts/sdk/src/cli/sync/media-sync.d.ts +0 -15
  368. package/dist/_dts/sdk/src/cli/sync/media.d.ts +0 -158
  369. package/dist/_dts/sdk/src/cli/sync/syncResultAggregation.d.ts +0 -4
  370. package/dist/_dts/sdk/src/cli/sync/validation.d.ts +0 -68
  371. package/dist/_dts/sdk/src/cli/utils/checksum.d.ts +0 -1
  372. package/dist/_dts/sdk/src/client/management/blocks.d.ts +0 -19
  373. package/dist/_dts/sdk/src/client/management/catalog.d.ts +0 -10
  374. package/dist/_dts/sdk/src/client/management/entries.d.ts +0 -6
  375. package/dist/_dts/sdk/src/client/management/eventCategories.d.ts +0 -6
  376. package/dist/_dts/sdk/src/client/management/events.d.ts +0 -7
  377. package/dist/_dts/sdk/src/client/management/footer.d.ts +0 -9
  378. package/dist/_dts/sdk/src/client/management/forms.d.ts +0 -6
  379. package/dist/_dts/sdk/src/client/management/http.d.ts +0 -79
  380. package/dist/_dts/sdk/src/client/management/identifiers.d.ts +0 -11
  381. package/dist/_dts/sdk/src/client/management/index.d.ts +0 -41
  382. package/dist/_dts/sdk/src/client/management/media.d.ts +0 -72
  383. package/dist/_dts/sdk/src/client/management/navigation.d.ts +0 -6
  384. package/dist/_dts/sdk/src/client/management/pages.d.ts +0 -6
  385. package/dist/_dts/sdk/src/client/management/pull.d.ts +0 -6
  386. package/dist/_dts/sdk/src/client/management/settings-branding.d.ts +0 -32
  387. package/dist/_dts/sdk/src/client/management/settings.d.ts +0 -6
  388. package/dist/_dts/sdk/src/client/management/theme.d.ts +0 -8
  389. package/dist/_dts/sdk/src/client/management/types.d.ts +0 -1069
  390. package/dist/_dts/sdk/src/client/management/venues.d.ts +0 -6
  391. package/dist/_dts/sdk/src/client/management/webhooks.d.ts +0 -3
  392. package/dist/_dts/sdk/src/test/env.d.ts +0 -4
  393. package/dist/_dts/site-commands/src/adapter.d.ts +0 -23
  394. package/dist/_dts/site-commands/src/appointmentCommandSchemas.d.ts +0 -100
  395. package/dist/_dts/site-commands/src/capabilityGaps.d.ts +0 -8
  396. package/dist/_dts/site-commands/src/commandContract.d.ts +0 -1277
  397. package/dist/_dts/site-commands/src/commandDomain.d.ts +0 -20
  398. package/dist/_dts/site-commands/src/commandIdentifiers.d.ts +0 -7
  399. package/dist/_dts/site-commands/src/commandValidation.d.ts +0 -10
  400. package/dist/_dts/site-commands/src/commands.d.ts +0 -1983
  401. package/dist/_dts/site-commands/src/domain.d.ts +0 -104
  402. package/dist/_dts/site-commands/src/eventCommandContent.d.ts +0 -11
  403. package/dist/_dts/site-commands/src/exposure.d.ts +0 -41
  404. package/dist/_dts/site-commands/src/guards.d.ts +0 -1
  405. package/dist/_dts/site-commands/src/index.d.ts +0 -18
  406. package/dist/_dts/site-commands/src/metadata.d.ts +0 -555
  407. package/dist/_dts/site-commands/src/pagePaths.d.ts +0 -6
  408. package/dist/_dts/site-commands/src/planner.d.ts +0 -58
  409. package/dist/_dts/site-commands/src/refContributions.d.ts +0 -11
  410. package/dist/_dts/site-commands/src/refs.d.ts +0 -90
  411. package/dist/_dts/site-commands/src/siteStyleCommandSchema.d.ts +0 -405
  412. package/dist/_dts/site-commands/src/siteStyleSelectionSchemaBuilder.d.ts +0 -46
  413. package/dist/_dts/site-commands/src/stableJson.d.ts +0 -5
  414. package/dist/_dts/site-commands/src/staticExecutionGaps.d.ts +0 -10
  415. package/dist/_dts/site-commands/src/venueCommandMapping.d.ts +0 -21
  416. package/dist/_dts/theme-core/src/data.d.ts +0 -12
  417. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +0 -841
  418. package/dist/_dts/theme-core/src/site-styles/headerStyleParts.d.ts +0 -4
  419. package/dist/cli/index.mjs +0 -162988
  420. package/dist/cli/init-docs/content/agents-section.md +0 -67
  421. package/dist/cli/init-docs/content/cli-reference.md +0 -1238
  422. package/dist/cli/init-docs/content/content-management.md +0 -792
  423. package/dist/cli/init-docs/content/context-brand.md +0 -125
  424. package/dist/cli/init-docs/content/context-brief.md +0 -77
  425. package/dist/cli/init-docs/content/context-knowledge.md +0 -111
  426. package/dist/cli/init-docs/content/getting-started.md +0 -171
  427. package/dist/cli/init-docs/content/site-workflows-readme.md +0 -96
  428. package/dist/cli/init-docs/content/workflow-add-block.md +0 -299
  429. package/dist/cli/init-docs/content/workflow-agent-safe-sync.md +0 -83
  430. package/dist/cli/init-docs/content/workflow-block-extensions.md +0 -370
  431. package/dist/cli/init-docs/content/workflow-cmsify-page.md +0 -357
  432. package/dist/cli/init-docs/content/workflow-content-types.md +0 -330
  433. package/dist/cli/init-docs/content/workflow-create-page.md +0 -212
  434. package/dist/cli/init-docs/content/workflow-custom-block.md +0 -470
  435. package/dist/cli/init-docs/content/workflow-editor-workflows.md +0 -130
  436. package/dist/cli/init-docs/content/workflow-isr-revalidation.md +0 -158
  437. package/dist/cli/init-docs/content/workflow-preview-mode.md +0 -252
  438. package/dist/cli/init-docs/content/workflow-publish.md +0 -285
  439. package/dist/cli/init-docs/content/workflow-remote-setup.md +0 -51
  440. package/dist/cli/init-docs/content/workflow-templates.md +0 -381
  441. /package/dist/_dts/{sdk/src/cli/utils/mime.d.ts → media-core/src/mimeType.d.ts} +0 -0
package/README.md CHANGED
@@ -24,6 +24,20 @@ npm install @riverbankcms/sdk
24
24
  pnpm add @riverbankcms/sdk
25
25
  ```
26
26
 
27
+ The SDK is the data-plane runtime only. It does not install or expose the
28
+ `riverbankcms` command. SDK sites that use content/config management should
29
+ declare the standalone CLI explicitly:
30
+
31
+ ```bash
32
+ pnpm add @riverbankcms/sdk
33
+ pnpm add -D riverbankcms
34
+ pnpm exec riverbankcms --help
35
+ ```
36
+
37
+ The CLI and SDK are versioned independently. Keep the CLI invocation project
38
+ local (`pnpm exec`) so a site never depends on a transitive or globally
39
+ installed binary.
40
+
27
41
  ## Quick Start
28
42
 
29
43
  > **Important:** The `baseUrl` parameter must be the complete API URL including the `/api` path. For example: `https://dashboard.example.com/api`
@@ -326,7 +340,7 @@ When a path might resolve to either a page or a content entry (blog post, produc
326
340
  ### Server-Side: loadContent
327
341
 
328
342
  ```tsx
329
- import { loadContent, isPageContent, Page } from '@riverbankcms/sdk';
343
+ import { loadContent, isPageContent, MissingSdkThemeError, Page } from '@riverbankcms/sdk/rendering';
330
344
 
331
345
  export default async function DynamicRoute({ params }) {
332
346
  const path = `/${params.slug?.join('/') || ''}`;
@@ -340,6 +354,9 @@ export default async function DynamicRoute({ params }) {
340
354
 
341
355
  // Pages get rendered with the Page component
342
356
  if (isPageContent(content)) {
357
+ if (!content.theme) {
358
+ throw new MissingSdkThemeError(content.siteId, 'cms_theme_absent');
359
+ }
343
360
  return <Page {...content} />;
344
361
  }
345
362
 
@@ -372,6 +389,7 @@ export function DynamicContent({ path }: { path: string }) {
372
389
  if (content.error) return <div>Error: {content.error.message}</div>;
373
390
 
374
391
  if (isPageContentResult(content)) {
392
+ if (!content.theme) return <div>This site needs a theme before it can be displayed.</div>;
375
393
  return <Page page={content.page} theme={content.theme} siteId={content.siteId} resolvedData={content.resolvedData} />;
376
394
  }
377
395
 
@@ -391,12 +409,15 @@ export function DynamicContent({ path }: { path: string }) {
391
409
  Route entries to different components based on their content type:
392
410
 
393
411
  ```tsx
394
- import { loadContent, isPageContent, Page } from '@riverbankcms/sdk';
412
+ import { loadContent, isPageContent, MissingSdkThemeError, Page } from '@riverbankcms/sdk/rendering';
395
413
 
396
414
  export default async function DynamicRoute({ params }) {
397
415
  const content = await loadContent({ client, siteId, path: `/${params.slug?.join('/') || ''}` });
398
416
 
399
417
  if (isPageContent(content)) {
418
+ if (!content.theme) {
419
+ throw new MissingSdkThemeError(content.siteId, 'cms_theme_absent');
420
+ }
400
421
  return <Page {...content} />;
401
422
  }
402
423
 
@@ -2657,7 +2678,9 @@ In this mode the SDK does not resolve, parse, normalize, or build tokens from th
2657
2678
 
2658
2679
  The optional theme-independent wrapper belongs inside `rendering`: use `runtime: { kind: 'responsive-only' }` (the default) for Riverbank's generated responsive utility scope, or `runtime: { kind: 'none' }` when the host owns that too. Do not combine override-only rendering with top-level `themeRuntime`, `theme`, `themes`, or `getTheme`. If you use SDK `Layout` directly, its header and footer must both be custom or disabled. Preview receives the same rendering selection and registry.
2659
2680
 
2660
- The content response still carries a compatibility theme field for now; override-only rendering deliberately ignores it. Wire-level theme nullability is tracked separately in #1290.
2681
+ `SiteResponse.theme` is required but nullable: `Theme | null`. A null value means the CMS has no theme; it does not select a rendering mode. Override-only rendering deliberately ignores it. Themed catch-all rendering first prefers explicit `theme`, `themes`, or `getTheme` inputs, then uses the CMS theme. If none resolves, it throws the exported `MissingSdkThemeError` with code `missing_sdk_theme` before theme parsing or token construction.
2682
+
2683
+ The nullable contract must be published before the server stops supplying its temporary fallback. Externally pinned hosts must upgrade to this SDK contract and either opt into override-only rendering or provide a real local/CMS theme before that server cutover.
2661
2684
 
2662
2685
  Keep the `server-only` marker at the top of the registry so Next.js turns an accidental Client Component import into a build error. `generateMetadata()` never receives or runs host loaders—even with `customMetadata`—so a normal request does not repeat host queries for metadata and rendering.
2663
2686
 
@@ -3205,263 +3228,12 @@ export default defineConfig({
3205
3228
 
3206
3229
  ## CLI
3207
3230
 
3208
- The SDK includes a CLI for syncing configuration and content between your local environment and the CMS.
3209
-
3210
- ### setup plan
3211
-
3212
- Show the read-only lifecycle for site creation, management-key setup, dashboard user access, and SDK env variables:
3213
-
3214
- ```bash
3215
- npx riverbankcms setup plan --env=remote
3216
- ```
3217
-
3218
- The SDK CLI cannot create remote sites, issue keys, or grant user access from a site-scoped management key. Do those privileged operations through the dashboard/admin surface or approved CMS repo tooling, then use the setup planner and `env status` to verify the SDK repo has the right `RIVERBANK_*` variables.
3219
-
3220
- ### push-config
3221
-
3222
- Push schema/config surfaces to your CMS dashboard, including custom blocks, block field options/extensions, content type definitions/templates, SDK-managed site settings, and footer blocks:
3223
-
3224
- ```bash
3225
- npx riverbankcms push-config --dashboard <url>
3226
- ```
3227
-
3228
- Pages, content entries, navigation menus, and canonical events are content documents. Sync them with `riverbankcms push pages`, `riverbankcms push entries`, `riverbankcms push navigation`, or `riverbankcms push events`.
3229
-
3230
- Canonical event files in `content/events/*.json` include `preset`, `bookingScope`, and an explicit `occurrences` list. Each occurrence carries UTC `startsAt`/`endsAt` instants and its IANA `timeZone`; this supports one-off events and whole-series schedules without reconstructing dates from a recurrence summary. Files may also include `path` and `blocks`. `path` updates the linked event content entry route. `blocks` writes per-event entry-slot content, such as `blocks.main` for the built-in event template. Use stable block identifiers so repeat pushes update existing slot blocks; `push events` rejects duplicate event identifiers before writing. Default entry slots accept enabled SDK `custom.*` blocks, while explicit template `allowedBlocks` lists remain authoritative.
3231
-
3232
- The retired `schedule` object is not accepted. When upgrading a site with local event edits: preserve those edits, deploy the matching CMS API first, upgrade the SDK, run `riverbankcms pull events`, then reapply the edits to the canonical files. Existing occurrence schedules may be replayed exactly; changing an already-created schedule remains an explicit CMS capability gap.
3233
-
3234
- **Options:**
3235
-
3236
- | Option | Description |
3237
- |--------|-------------|
3238
- | `--api-key <key>` | Management API key (or set `RIVERBANK_*_MGMT_API_KEY`) |
3239
- | `--dashboard <url>` | Dashboard URL (or set `RIVERBANK_*_DASHBOARD_URL`) |
3240
- | `--config <path>` | Path to config file (default: `./riverbank.config.ts`) |
3241
- | `--dry-run` | Validate config and preview schema/config surfaces without mutating the dashboard |
3242
-
3243
- **Example:**
3244
-
3245
- ```bash
3246
- # Using environment variables (local)
3247
- export RIVERBANK_LOCAL_DASHBOARD_URL=https://www.riverbankcms.com
3248
- export RIVERBANK_LOCAL_MGMT_API_KEY=bld_mgmt_sk_...
3249
- npx riverbankcms push-config
3250
-
3251
- # Preview without applying
3252
- npx riverbankcms push-config --dry-run
3253
-
3254
- # Or inline (remote)
3255
- npx riverbankcms push-config \
3256
- --api-key bld_mgmt_sk_... \
3257
- --dashboard https://www.riverbankcms.com
3258
- ```
3259
-
3260
- ### pull
3261
-
3262
- Download content from the CMS to local JSON files:
3263
-
3264
- ```bash
3265
- npx riverbankcms pull [scope] [type] [identifier]
3266
- ```
3267
-
3268
- **Scopes:**
3269
-
3270
- | Scope | Description |
3271
- |-------|-------------|
3272
- | (none) / `all` | Pull all content types |
3273
- | `entries` | Pull all entries, a content type, or a single entry |
3274
- | `pages` | Pull all pages or a single page |
3275
- | `navigation` | Pull navigation menus |
3276
- | `settings` | Pull site settings |
3277
- | `forms` | Pull form definitions |
3278
- | `venues` | Pull all event venues or one venue by slug |
3279
- | `event-categories` | Pull all event categories or one category by identifier |
3280
- | `events` | Pull all event series or one event by identifier |
3281
-
3282
- **Examples:**
3283
-
3284
- ```bash
3285
- # Pull all content
3286
- npx riverbankcms pull
3231
+ The standalone `riverbankcms` package provides the CLI for syncing configuration
3232
+ and content between your SDK site and the CMS. Install it alongside
3233
+ `@riverbankcms/sdk`, then use the standalone package's
3234
+ [CLI reference](../cli/README.md) for setup, commands, environment behavior,
3235
+ and operational guidance.
3287
3236
 
3288
- # Pull only forms
3289
- npx riverbankcms pull forms
3290
-
3291
- # Pull entries for a specific content type
3292
- npx riverbankcms pull entries blog-post
3293
-
3294
- # Pull one entry
3295
- npx riverbankcms pull entries blog-post welcome
3296
-
3297
- # Pull one page
3298
- npx riverbankcms pull pages home
3299
-
3300
- # Pull one canonical event
3301
- npx riverbankcms pull events the-whole-in-your-heart
3302
-
3303
- # Pull from remote environment
3304
- npx riverbankcms pull --env=remote
3305
-
3306
- # Sync media files between environments
3307
- npx riverbankcms pull --env=remote --sync-media --yes
3308
-
3309
- # Overwrite target media on checksum mismatch (explicit / unsafe)
3310
- npx riverbankcms pull --env=remote --sync-media --overwrite-media --yes
3311
-
3312
- # Download media referenced by identifiers
3313
- npx riverbankcms pull --local-media
3314
- ```
3315
-
3316
- **Output Structure:**
3317
-
3318
- ```
3319
- content/
3320
- ├── entries/
3321
- │ └── {content-type}/
3322
- │ └── {identifier}.json
3323
- ├── pages/
3324
- │ └── {identifier}.json
3325
- ├── forms/
3326
- │ └── {slug}.json
3327
- ├── navigation.json
3328
- ├── settings.json
3329
- ├── media/
3330
- │ ├── <identifier>.<ext>
3331
- │ └── .manifest.json
3332
- └── .meta/
3333
- ├── local/
3334
- │ └── {entity}.json # Local CMS sync timestamps
3335
- └── remote/
3336
- └── {entity}.json # Remote CMS sync timestamps
3337
- ```
3338
-
3339
- Older projects with flat `content/.meta/{entity}.json` files are read as a compatibility fallback. The CLI writes new metadata into the target-specific `local/` or `remote/` directory the next time you pull or update metadata.
3340
-
3341
- Note: `content/media/` is local cache and migration working data by default. Generated SDK sites gitignore `content/media/*` so large downloaded files are not staged accidentally, while allowing intentional small fixtures under `content/media/fixtures/`. `content/media/.manifest.json` is also cache data (identifier -> checksum/filename) and intentionally does not store env-specific `assetId`s.
3342
-
3343
- ### push
3344
-
3345
- Push local content to the CMS with diff-based sync:
3346
-
3347
- ```bash
3348
- npx riverbankcms push [scope] [type] [identifier]
3349
- ```
3350
-
3351
- **Scopes:**
3352
-
3353
- | Scope | Description |
3354
- |-------|-------------|
3355
- | (none) / `all` | Push all content types |
3356
- | `entries` | Push all entries, a content type, or a single entry |
3357
- | `pages` | Push all pages or a single page with blocks |
3358
- | `navigation` | Push navigation menus |
3359
- | `settings` | Push `content/settings.json` only |
3360
- | `forms` | Push form definitions |
3361
-
3362
- **Options:**
3363
-
3364
- | Option | Description |
3365
- |--------|-------------|
3366
- | `--dry-run` | Show what would be pushed without making changes |
3367
- | `--yes` | Skip confirmation (required for `--env=remote`) |
3368
- | `--force` | Push even if remote is newer |
3369
- | `--force-update-asset` | Replace CMS media when identifiers conflict (local media sync only) |
3370
- | `--sync-media` | Sync media files from local to remote environment |
3371
- | `--overwrite-media` | When using `--sync-media`, overwrite target media on checksum mismatch |
3372
- | `--json-diff` | Output JSON diff (`summary` or `full`) |
3373
- | `--merge-remote` | Plan an entries/pages three-way merge for `--env=remote` that preserves remote edits |
3374
- | `--verify-noop` | Re-fetch after an applied push and fail if changes remain |
3375
-
3376
- **Examples:**
3377
-
3378
- ```bash
3379
- # Preview changes (dry run)
3380
- npx riverbankcms push --dry-run
3381
-
3382
- # Push all content
3383
- npx riverbankcms push
3384
-
3385
- # Push only forms
3386
- npx riverbankcms push forms
3387
-
3388
- # Push only site settings / branding
3389
- npx riverbankcms push settings
3390
-
3391
- # Push to production with confirmation bypass
3392
- npx riverbankcms push --env=remote --yes
3393
-
3394
- # Preview a production-safe merge for entries
3395
- npx riverbankcms push entries blog-post --env=remote --merge-remote
3396
-
3397
- # Preview a production-safe merge for a page
3398
- npx riverbankcms push pages home --env=remote --merge-remote
3399
-
3400
- # Apply that merge after reviewing the plan
3401
- npx riverbankcms push entries blog-post --env=remote --merge-remote --yes
3402
-
3403
- # Get JSON diff for automation
3404
- npx riverbankcms push --dry-run --json-diff=summary
3405
-
3406
- # Push to both environments and verify both are clean afterwards
3407
- npx riverbankcms push --env=both --yes --verify-noop
3408
- ```
3409
-
3410
- **Remote-aware content merge:**
3411
-
3412
- `--merge-remote` is a safer production entries/pages workflow. It compares the last pulled base snapshot, your local files, and the current remote CMS, then reports a merge plan. Remote runs still default to dry-run; add `--yes` only after reviewing the plan. In v1 this supports entries and pages, is `--env=remote` only, and cannot be combined with `--force`, `--delete-orphaned`, or `--auto-pull-stale`. Page block changes are treated conservatively as conflicts unless remote blocks are unchanged.
3413
-
3414
- **Local content edit helpers:**
3415
-
3416
- `riverbankcms content edit ...` changes local `content/**` JSON files only. It previews by default and writes only with `--write`.
3417
-
3418
- ```bash
3419
- npx riverbankcms content edit remove-page-block home old-hero
3420
- npx riverbankcms content edit move-page-block home intro --after hero --write
3421
- npx riverbankcms content edit set-page-field home title --value "New title" --write
3422
- npx riverbankcms content edit set-page-field home blocks[0].data.count --json-value 3
3423
- ```
3424
-
3425
- After editing, run `riverbankcms push --dry-run --diff`, then push with `--verify-noop` when ready.
3426
-
3427
- **Post-push verification:** `--verify-noop` re-reads local files after an applied push, fetches the target CMS, and fails if changes remain. It cannot be combined with `--dry-run`; remote targets need `--yes` so there is an applied push to verify. In JSON mode the CLI emits a `verification` object with `clean`, `dirty`, `fetch_failed`, or `unsupported_scope` status. A dirty result can also mean another actor changed remote content between push and verification.
3428
-
3429
- **Local Media (Identifiers):**
3430
-
3431
- - Add `identifier` to media fields (slug only, no extension)
3432
- - Place files at `content/media/<identifier>.<ext>`
3433
- - Use `npx riverbankcms push` to upload referenced files (default-on)
3434
- - Use `--force-update-asset` to replace a CMS asset when checksums differ
3435
- - Treat `content/media/*` as local cache/migration working data by default. For existing repos that already committed media, opt in with `git rm --cached -r content/media` after adding the generated ignore rule. Keep intentional small fixtures under `content/media/fixtures/`.
3436
-
3437
- **Site branding via `content/settings.json`:**
3438
-
3439
- ```json
3440
- {
3441
- "homepageId": null,
3442
- "seoDefaults": null,
3443
- "logoIdentifier": "positive-play-primary-logo",
3444
- "faviconIdentifier": "positive-play-primary-logo"
3445
- }
3446
- ```
3447
-
3448
- - Keep branding files in `content/media/<identifier>.<ext>`
3449
- - Run `npx riverbankcms push settings` to upload missing branding files and assign the site logo/favicon without pushing unrelated content
3450
- - Run `npx riverbankcms pull settings` to round-trip the current identifier-based branding state
3451
- - If the current CMS logo/favicon asset has no media identifier yet, pull warns and omits that field instead of writing a destructive clear
3452
- - Dashboard branding edits and CLI pushes both write the same site settings columns, so pull before pushing if someone may have changed branding in the dashboard
3453
-
3454
- **Media portability (important):**
3455
-
3456
- - Content JSON is portable across environments; media references must be **identifier-only**.
3457
- - Do not commit or hand-write `assetId`, `storagePath`, `storageBucket`, or `src` into content JSON.
3458
-
3459
- **Sync Behavior:**
3460
-
3461
- - **Creates** new content if identifier/slug doesn't exist
3462
- - **Updates** existing content based on diff
3463
- - **Never deletes** - removing from local doesn't delete from CMS
3464
- - **Stale detection** - warns if remote changed since last pull (use `--force` to override)
3465
3237
 
3466
3238
  ## Next.js Catch-All Page Factory
3467
3239
 
@@ -3489,27 +3261,32 @@ export { generateMetadata };
3489
3261
 
3490
3262
  ### Production ISR Setup
3491
3263
 
3492
- For production SDK sites, wire the catch-all route to Next ISR and let Riverbank discover published routes at build time. Preview deployments should set `RIVERBANK_PREVIEW_MODE=true`; `getISRConfig()` then returns `revalidate: 0` so draft previews stay dynamic.
3264
+ For production SDK sites, wire the catch-all route to Next ISR and let Riverbank discover published routes at build time. Next.js statically analyzes route configuration, so `revalidate` must be a literal rather than a function call or imported constant. Preview deployments should set `RIVERBANK_PREVIEW_MODE=true` and use the SDK preview integration, whose request-bound session handling keeps draft previews dynamic.
3493
3265
 
3494
3266
  ```tsx
3495
3267
  // src/app/[[...slug]]/page.tsx
3496
3268
  import {
3497
3269
  createCatchAllPage,
3498
- generateAllStaticParams,
3499
- getISRConfig,
3270
+ createGenerateStaticParams,
3500
3271
  } from '@riverbankcms/sdk/next';
3501
3272
 
3502
3273
  import config from '@/riverbank.config';
3503
3274
  import { blockOverrides } from '@/lib/block-overrides';
3504
3275
  import { getRiverbankClient } from '@/lib/riverbank-client';
3505
3276
 
3506
- export const revalidate = getISRConfig().revalidate;
3277
+ // Next.js route config values must remain statically analyzable literals.
3278
+ export const revalidate = 300;
3507
3279
  export const dynamicParams = true;
3508
- export { generateAllStaticParams as generateStaticParams };
3280
+ export const generateStaticParams = createGenerateStaticParams({
3281
+ getClient: getRiverbankClient,
3282
+ siteId: config.siteId,
3283
+ failureMode: 'throw',
3284
+ });
3509
3285
 
3510
3286
  const { Page, generateMetadata } = createCatchAllPage({
3511
3287
  getClient: getRiverbankClient,
3512
3288
  config,
3289
+ searchParamsMode: 'ignore',
3513
3290
  blockOverrides,
3514
3291
  });
3515
3292
 
@@ -3517,7 +3294,12 @@ export default Page;
3517
3294
  export { generateMetadata };
3518
3295
  ```
3519
3296
 
3520
- `generateAllStaticParams()` reads `RIVERBANK_API_KEY`, `RIVERBANK_SITE_ID`, and `NEXT_PUBLIC_DASHBOARD_URL`. By default it falls back to the homepage when route discovery fails, which keeps deploys from publishing an empty static route set silently. For strict production CI, fail the build instead:
3297
+ `searchParamsMode: 'ignore'` is required for this ISR shape because Next.js treats
3298
+ the page `searchParams` prop as a Dynamic API. Keep the default `dynamic` mode only
3299
+ when server-rendered themes, data loaders, redirects, or metadata genuinely depend
3300
+ on URL query parameters.
3301
+
3302
+ If a site uses the SDK's generic environment variable names, `generateAllStaticParams()` is also available. It reads `RIVERBANK_API_KEY`, `RIVERBANK_SITE_ID`, and `NEXT_PUBLIC_DASHBOARD_URL`. By default it falls back to the homepage when route discovery fails. For strict production CI, fail the build instead:
3521
3303
 
3522
3304
  ```tsx
3523
3305
  import { generateAllStaticParams } from '@riverbankcms/sdk/next';
@@ -3864,7 +3646,7 @@ type CatchAllContext = {
3864
3646
  For maximum customization, skip `createCatchAllPage` and use the underlying helpers:
3865
3647
 
3866
3648
  ```tsx
3867
- import { loadContent, isPageContent, Page } from '@riverbankcms/sdk/rendering';
3649
+ import { loadContent, isPageContent, MissingSdkThemeError, Page } from '@riverbankcms/sdk/rendering';
3868
3650
  import { generatePageMetadata } from '@riverbankcms/sdk/metadata';
3869
3651
 
3870
3652
  export default async function CustomPage({ params }) {
@@ -3879,6 +3661,9 @@ export default async function CustomPage({ params }) {
3879
3661
  });
3880
3662
 
3881
3663
  if (isPageContent(content)) {
3664
+ if (!content.theme) {
3665
+ throw new MissingSdkThemeError(content.siteId, 'cms_theme_absent');
3666
+ }
3882
3667
  return <Page {...content} />;
3883
3668
  }
3884
3669