@riverbankcms/sdk 0.104.3 → 0.108.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 (302) hide show
  1. package/README.md +84 -51
  2. package/dist/{PreviewEditorSidebar-CBMhU9p_.mjs → PreviewEditorSidebar-BBT-kZAM.mjs} +1850 -1183
  3. package/dist/{PreviewEditorUI-C5KEw4M8.mjs → PreviewEditorUI-D69xNKT2.mjs} +10 -9
  4. package/dist/{PreviewQueryProvider-CStABBUh.mjs → PreviewQueryProvider-RRu7wyQ5.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-Iq12HjL7.mjs → SdkPreviewModeRuntime-CuDjXH6o.mjs} +2562 -457
  6. package/dist/{SiteChromeCustomizeContext-Cx0NMdyv.mjs → SiteChromeCustomizeContext-BQUY2dEk.mjs} +7689 -3196
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +36493 -1395
  8. package/dist/_dts/api/src/blocks.d.ts +41 -7
  9. package/dist/_dts/api/src/bookingConfig.d.ts +2 -0
  10. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +5 -1
  11. package/dist/_dts/api/src/bookingRecords.d.ts +180 -115
  12. package/dist/_dts/api/src/cache-tags.d.ts +3 -0
  13. package/dist/_dts/api/src/contentRuntime.d.ts +25 -16
  14. package/dist/_dts/api/src/courses.d.ts +68 -10
  15. package/dist/_dts/api/src/endpoints.d.ts +128 -0
  16. package/dist/_dts/api/src/footer-settings.d.ts +1 -0
  17. package/dist/_dts/api/src/footerSettings.d.ts +8 -0
  18. package/dist/_dts/api/src/index.d.ts +127 -124
  19. package/dist/_dts/api/src/navigation/contracts.d.ts +3 -3
  20. package/dist/_dts/api/src/previewContentContract.d.ts +4 -0
  21. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +9 -0
  22. package/dist/_dts/api/src/sdkContracts.d.ts +178 -6
  23. package/dist/_dts/api/src/siteBanner.d.ts +2 -2
  24. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +143 -55
  25. package/dist/_dts/api/src/siteOperations.d.ts +1 -0
  26. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +32 -4
  27. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +72 -47
  28. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +36 -4
  29. package/dist/_dts/blocks/src/definitions.d.ts +1 -1
  30. package/dist/_dts/blocks/src/portal/types.d.ts +25 -7
  31. package/dist/_dts/blocks/src/primitives/layout/Section.d.ts +0 -1
  32. package/dist/_dts/blocks/src/rendering/server.d.ts +1 -0
  33. package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +2 -2
  34. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +2 -0
  35. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +2 -0
  36. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +4 -0
  37. package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule-projection.d.ts +52 -0
  38. package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule.d.ts +22 -0
  39. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +45 -0
  40. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +10 -0
  41. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +4 -1
  42. package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
  43. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +9 -0
  44. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +8 -2
  45. package/dist/_dts/blocks/src/system/blocks/offerings-preview/index.d.ts +8 -8
  46. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +24 -24
  47. package/dist/_dts/blocks/src/system/blocks/offerings-preview/scheduleSummary.d.ts +29 -0
  48. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -1
  49. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +50 -0
  50. package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +9 -48
  51. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  52. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  53. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +2 -5
  54. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  55. package/dist/_dts/blocks/src/system/designCapabilities.d.ts +1 -0
  56. package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +2 -2
  57. package/dist/_dts/blocks/src/system/icons/registry.d.ts +2 -1
  58. package/dist/_dts/blocks/src/system/icons/social.d.ts +5 -0
  59. package/dist/_dts/blocks/src/system/icons/svg.d.ts +1 -0
  60. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +2 -2
  61. package/dist/_dts/blocks/src/system/node/fragments/backgroundLayer.d.ts +13 -0
  62. package/dist/_dts/blocks/src/system/node/fragments/footerNav.d.ts +2 -0
  63. package/dist/_dts/blocks/src/system/node/fragments/styledCard.d.ts +3 -0
  64. package/dist/_dts/blocks/src/system/node/fragments/styledContainer.d.ts +4 -4
  65. package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +3 -12
  66. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  67. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  68. package/dist/_dts/blocks/src/system/runtime/blockComposition.d.ts +2 -0
  69. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +90 -6
  70. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +45 -3
  71. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +1 -0
  72. package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/display.d.ts +2 -2
  73. package/dist/_dts/blocks/src/system/runtime/nodes/course-details/logic.d.ts +2 -1
  74. package/dist/_dts/blocks/src/system/runtime/nodes/course-details/view.d.ts +1 -0
  75. package/dist/_dts/blocks/src/system/runtime/nodes/course-details.server.d.ts +2 -1
  76. package/dist/_dts/blocks/src/system/runtime/nodes/course-page-surface-scope.d.ts +17 -0
  77. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +3 -0
  78. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +5 -0
  79. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.server.d.ts +1 -1
  80. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventScope.d.ts +9 -18
  81. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +106 -0
  82. package/dist/_dts/blocks/src/system/runtime/nodes/events/RecurringSchedule.d.ts +11 -0
  83. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +7 -3
  84. package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +3 -0
  85. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +11 -1
  86. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.server.d.ts +1 -1
  87. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +3 -0
  88. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +6 -6
  89. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +1 -1
  90. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +11 -5
  91. package/dist/_dts/blocks/src/system/runtime/nodes/shop.types.d.ts +2 -1
  92. package/dist/_dts/blocks/src/system/runtime/nodes/svg.d.ts +7 -0
  93. package/dist/_dts/blocks/src/system/types/link.d.ts +3 -3
  94. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +14 -0
  95. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +27 -8
  96. package/dist/_dts/content-editor/src/footerComposer.d.ts +56 -0
  97. package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +1 -1
  98. package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +5 -5
  99. package/dist/_dts/content-editor/src/index.d.ts +2 -0
  100. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +3 -1
  101. package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +20 -36
  102. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +5 -1
  103. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +11 -0
  104. package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
  105. package/dist/_dts/content-model/src/definitions/shared.d.ts +3 -0
  106. package/dist/_dts/core/src/branded.d.ts +47 -0
  107. package/dist/_dts/core/src/dated-offering-settlement.d.ts +47 -0
  108. package/dist/_dts/core/src/editor-state.d.ts +4 -0
  109. package/dist/_dts/core/src/event-page-surface-subject.d.ts +44 -0
  110. package/dist/_dts/core/src/footer-composition.d.ts +143 -0
  111. package/dist/_dts/core/src/index.d.ts +51 -47
  112. package/dist/_dts/core/src/public-profile.d.ts +73 -0
  113. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +4398 -2859
  114. package/dist/_dts/db/src/schemas/forms.d.ts +10 -10
  115. package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +5 -0
  116. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +1 -0
  117. package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +1 -1
  118. package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +4 -1
  119. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +2 -1
  120. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +2 -1
  121. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +2 -1
  122. package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +10 -0
  123. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +1 -0
  124. package/dist/_dts/media-core/src/index.d.ts +2 -1
  125. package/dist/_dts/media-core/src/storagePathDomain.d.ts +47 -0
  126. package/dist/_dts/media-core/src/url.d.ts +1 -21
  127. package/dist/_dts/path-utils/src/index.d.ts +5 -0
  128. package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +4 -2
  129. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -1
  130. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -1
  131. package/dist/_dts/preview-next/src/client/preview/PreviewChromeLayer.d.ts +5 -0
  132. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +4 -9
  133. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -0
  134. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +8 -11
  135. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +4 -9
  136. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +2 -6
  137. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +5 -9
  138. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +81 -43
  139. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.typography.d.ts +61 -0
  140. package/dist/_dts/preview-next/src/client/preview/previewErrorMessages.d.ts +4 -0
  141. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +7 -17
  142. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +15 -8
  143. package/dist/_dts/preview-next/src/client/preview/typographyFontCatalog.d.ts +57 -0
  144. package/dist/_dts/sdk/src/cli/commands/pull.d.ts +1 -1
  145. package/dist/_dts/sdk/src/cli/commands/push/execute/theme.d.ts +4 -7
  146. package/dist/_dts/sdk/src/cli/commands/style.d.ts +24 -10
  147. package/dist/_dts/sdk/src/cli/content/reader.d.ts +1 -0
  148. package/dist/_dts/sdk/src/cli/site-commands/oneOffCommands.d.ts +3 -3
  149. package/dist/_dts/sdk/src/cli/sync/media.d.ts +16 -2
  150. package/dist/_dts/sdk/src/client/management/blocks.d.ts +14 -1
  151. package/dist/_dts/sdk/src/client/management/index.d.ts +2 -1
  152. package/dist/_dts/sdk/src/client/management/types.d.ts +147 -24
  153. package/dist/_dts/sdk/src/client/types.d.ts +2 -0
  154. package/dist/_dts/sdk/src/config/content-types.d.ts +2 -0
  155. package/dist/_dts/sdk/src/config/content-validation.d.ts +4 -0
  156. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  157. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  158. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  159. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +23 -3
  160. package/dist/_dts/sdk/src/data/dataLoaderContext.d.ts +17 -0
  161. package/dist/_dts/sdk/src/data/dataLoaderValue.d.ts +36 -0
  162. package/dist/_dts/sdk/src/data/defineOwnDataProperty.d.ts +2 -0
  163. package/dist/_dts/sdk/src/data/executeCodeLoaders.d.ts +36 -40
  164. package/dist/_dts/sdk/src/data/index.d.ts +3 -3
  165. package/dist/_dts/sdk/src/data/resolveBlockData.d.ts +54 -0
  166. package/dist/_dts/sdk/src/data/types.d.ts +43 -78
  167. package/dist/_dts/sdk/src/navigation/index.d.ts +2 -0
  168. package/dist/_dts/sdk/src/next/index.d.ts +1 -0
  169. package/dist/_dts/sdk/src/next/redirect-destination.d.ts +1 -1
  170. package/dist/_dts/sdk/src/next/resolveTheme.d.ts +2 -1
  171. package/dist/_dts/sdk/src/next/types.d.ts +10 -1
  172. package/dist/_dts/sdk/src/public-api/contracts.d.ts +6 -10
  173. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -1
  174. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +10 -5
  175. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +6 -10
  176. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
  177. package/dist/_dts/sdk/src/server.d.ts +4 -3
  178. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  179. package/dist/_dts/sdk/src/version.d.ts +1 -1
  180. package/dist/_dts/site-commands/src/capabilityGaps.d.ts +2 -2
  181. package/dist/_dts/site-commands/src/commands.d.ts +934 -40
  182. package/dist/_dts/theme-core/src/accordions/types.d.ts +2 -2
  183. package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +5 -1
  184. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +22 -0
  185. package/dist/_dts/theme-core/src/buttons/personalities/quiet-arrow.d.ts +17 -0
  186. package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +17 -0
  187. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +3 -3
  188. package/dist/_dts/theme-core/src/buttons/types.d.ts +12 -8
  189. package/dist/_dts/theme-core/src/cards/types.d.ts +3 -3
  190. package/dist/_dts/theme-core/src/data.d.ts +12 -0
  191. package/dist/_dts/theme-core/src/fonts/index.d.ts +1 -1
  192. package/dist/_dts/theme-core/src/fonts/types.d.ts +6 -0
  193. package/dist/_dts/theme-core/src/footer/mode.d.ts +15 -0
  194. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  195. package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
  196. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +72 -54
  197. package/dist/_dts/theme-core/src/navigation/types.d.ts +1 -1
  198. package/dist/_dts/theme-core/src/palette/colors.d.ts +12 -0
  199. package/dist/_dts/theme-core/src/palette/curated/brand-led.d.ts +10 -5
  200. package/dist/_dts/theme-core/src/palette/curated/high-contrast.d.ts +6 -3
  201. package/dist/_dts/theme-core/src/palette/curated/index.d.ts +31 -236
  202. package/dist/_dts/theme-core/src/palette/curated/soft-natural.d.ts +8 -4
  203. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +14 -12
  204. package/dist/_dts/theme-core/src/palette/curated/warm-dark.d.ts +4 -2
  205. package/dist/_dts/theme-core/src/palette/curated/warm-neutral.d.ts +8 -4
  206. package/dist/_dts/theme-core/src/palette/editorState.d.ts +33 -3
  207. package/dist/_dts/theme-core/src/palette/index.d.ts +0 -4
  208. package/dist/_dts/theme-core/src/palette/libraryModel.d.ts +12 -6
  209. package/dist/_dts/theme-core/src/palette/persistenceReadSource.d.ts +20 -72
  210. package/dist/_dts/theme-core/src/palette/resolveSelection.d.ts +29 -4
  211. package/dist/_dts/theme-core/src/palette/selection.d.ts +6 -4
  212. package/dist/_dts/theme-core/src/schema.d.ts +1307 -38
  213. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +218 -158
  214. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +5 -6
  215. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +218 -158
  216. package/dist/_dts/theme-core/src/site-styles/compositionBudget.d.ts +1 -0
  217. package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +2 -1
  218. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +161 -51
  219. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +6 -0
  220. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
  221. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +12 -1
  222. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -1
  223. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +24 -1
  224. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +14 -48
  225. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +10 -23
  226. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +15 -0
  227. package/dist/_dts/theme-core/src/site-styles/siteStyleThemeCompiler.d.ts +1 -2
  228. package/dist/_dts/theme-core/src/site-styles/siteStyleTypography.d.ts +456 -0
  229. package/dist/_dts/theme-core/src/site-styles/types.d.ts +52 -3
  230. package/dist/cli/index.mjs +4118 -2278
  231. package/dist/client/{DiscountCodeDisclosure-BXM73_E5.mjs → DiscountCodeDisclosure-D6TOf6Hi.mjs} +1 -1
  232. package/dist/client/{EventCombined.client-DT5elP7j.mjs → EventCombined.client-Dao3zxRk.mjs} +3 -3
  233. package/dist/client/{EventListing.client-pTYGfV9C.mjs → EventListing.client-B2NNt4y1.mjs} +2 -2
  234. package/dist/client/{LeafletStaticMap-dQrhlUe3.mjs → LeafletStaticMap-BhwFo16w.mjs} +1 -1
  235. package/dist/client/{MagicLinkForm-u6Dul4j5.mjs → MagicLinkForm-BWnB7cMR.mjs} +2 -2
  236. package/dist/client/{StepIndicator-nWqineJ2.mjs → StepIndicator-TzRiQ0BY.mjs} +2 -2
  237. package/dist/client/{accordion-CSJcTUyH.mjs → accordion-BPy-AJ4_.mjs} +1 -1
  238. package/dist/client/{bookingForm-C73wOuVa.mjs → bookingForm-BL4PGZds.mjs} +7 -7
  239. package/dist/client/bookings.mjs +382 -204
  240. package/dist/client/{buttons-DfYyqt8C.mjs → buttons-EBjyslaX.mjs} +265 -152
  241. package/dist/client/{carousel-fMBb0JSc.mjs → carousel-C2b7Cn9-.mjs} +1 -1
  242. package/dist/client/{cart-BtaCwT3S.mjs → cart-BQcbXIVD.mjs} +3 -3
  243. package/dist/client/{checkout-DkTwZSnh.mjs → checkout-DEmpGRJu.mjs} +3 -3
  244. package/dist/client/client.mjs +5019 -1886
  245. package/dist/client/{colorStyles-Wyl6JujD.mjs → colorStyles-jZS6KfkP.mjs} +1 -1
  246. package/dist/client/{colorTokenParts-dT8MISgJ.mjs → colorTokenParts-CMugwvX_.mjs} +3 -1
  247. package/dist/client/{courseRegistration-DnLmapJu.mjs → courseRegistration-BqRZPmsq.mjs} +56 -21
  248. package/dist/client/{eventCalendar-BvLOc9KY.mjs → eventCalendar-B8N_tSl5.mjs} +29 -21
  249. package/dist/client/{eventCombined-kShgJPQr.mjs → eventCombined-Gjn6gtq7.mjs} +2 -2
  250. package/dist/client/{eventDetails-C5NTM0Vo.mjs → eventDetails-M-VCxA-r.mjs} +4 -4
  251. package/dist/client/{eventListing-B82ZdKP6.mjs → eventListing-DR19hqYi.mjs} +2 -2
  252. package/dist/client/{eventRegistration-qJVFqBWo.mjs → eventRegistration-BR02a0k3.mjs} +8 -8
  253. package/dist/client/{form-BvAcKiuu.mjs → form-LY2xIbwg.mjs} +2 -2
  254. package/dist/client/{headerSection-NvAiEHAg.mjs → headerSection-CYwwXJfh.mjs} +3 -3
  255. package/dist/client/hooks.mjs +3335 -2210
  256. package/dist/client/{locationMap-D0j52xfI.mjs → locationMap-DWnBXrFq.mjs} +3 -3
  257. package/dist/client/{media-BCW_g2cQ.mjs → media-DHtSxS5V.mjs} +61 -56
  258. package/dist/client/{newsletterForm-B8_i93qH.mjs → newsletterForm-D9s-fQ2P.mjs} +3 -3
  259. package/dist/client/{pricing-DIYnyHOk.mjs → pricing-DDq80oYc.mjs} +1 -1
  260. package/dist/client/{productDetail-w0eAHkuQ.mjs → productDetail-B0SbWd45.mjs} +3 -3
  261. package/dist/client/{productList-Vsguq5Xt.mjs → productList-PwYlZn0y.mjs} +3 -3
  262. package/dist/client/{propsDecoder-CD2pJ1WB.mjs → propsDecoder-BRWBiH7i.mjs} +225 -68
  263. package/dist/client/rendering/client.mjs +2266 -1267
  264. package/dist/client/rendering/islands.mjs +20 -20
  265. package/dist/client/rendering.mjs +5364 -1979
  266. package/dist/client/{shop-Dgxs-Q8F.mjs → shop-CMwZPYME.mjs} +8 -8
  267. package/dist/client/{shop-commerce-DJAhsTaT.mjs → shop-commerce-BuxsFate.mjs} +6 -6
  268. package/dist/client/{shop-commerce-store-CfCXltXW.mjs → shop-commerce-store-boYlEJ91.mjs} +1 -1
  269. package/dist/client/{shopShared-CmDcPXUt.mjs → shopShared-D2naaOes.mjs} +3 -3
  270. package/dist/client/{useDiscountCodeUi-CirrT2bM.mjs → useDiscountCodeUi-D9RHpVoj.mjs} +1 -1
  271. package/dist/client/{useEventFilters-CNZxlCcO.mjs → useEventFilters-igGiK1re.mjs} +6 -6
  272. package/dist/client/{usePolling-Baks_iBI.mjs → usePolling-CI7MbsFB.mjs} +2 -2
  273. package/dist/preview-next/before-render.mjs +218 -1
  274. package/dist/preview-next/client/runtime.mjs +4 -4
  275. package/dist/preview-next/middleware.mjs +218 -1
  276. package/dist/{previewAuthStore-CfquDtTh.mjs → previewAuthStore-a_cBD28m.mjs} +218 -1
  277. package/dist/{sdk-runtime-BfNiFeNJ.mjs → sdk-runtime-MBzD-GmP.mjs} +2 -2
  278. package/dist/{separator-BhAR_Xmf.mjs → separator-5ahRBC85.mjs} +1 -1
  279. package/dist/server/components.mjs +5218 -2529
  280. package/dist/server/config-validation.mjs +3112 -2210
  281. package/dist/server/config.mjs +3112 -2211
  282. package/dist/server/data.mjs +3758 -2277
  283. package/dist/server/index.mjs +224 -4
  284. package/dist/server/navigation.mjs +9 -3
  285. package/dist/server/next/middleware.mjs +1 -1
  286. package/dist/server/next.mjs +6468 -2749
  287. package/dist/server/page-converter.mjs +3524 -2635
  288. package/dist/server/prebuild.mjs +1 -1
  289. package/dist/server/rendering/server.mjs +5392 -2488
  290. package/dist/server/rendering.mjs +6241 -2851
  291. package/dist/server/routing.mjs +3414 -1826
  292. package/dist/server/server.mjs +4174 -2354
  293. package/dist/server/theme-bridge.mjs +9579 -8132
  294. package/dist/server/theme.mjs +313 -154
  295. package/dist/styles/index.css +1223 -31
  296. package/package.json +1 -1
  297. package/dist/_dts/preview-next/src/client/preview/typographySelectionInput.d.ts +0 -16
  298. package/dist/_dts/theme-core/src/palette/historicalThemePalette.d.ts +0 -44
  299. package/dist/_dts/theme-core/src/palette/legacyRuntimeProjection.d.ts +0 -55
  300. package/dist/_dts/theme-core/src/palette/legacySelection.d.ts +0 -45
  301. package/dist/_dts/theme-core/src/palette/paletteCompatibilityTransition.d.ts +0 -232
  302. package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +0 -234
@@ -1,6 +1,19 @@
1
1
  /**
2
2
  * Block Operations for Management Client
3
3
  */
4
+ import { ManagementApiError, type HttpClient } from './http';
4
5
  import type { BlockOperations } from './types';
5
- import type { HttpClient } from './http';
6
+ /**
7
+ * Discriminated stale-conflict error for `blocks.patch`: the block's draft
8
+ * changed since the caller's read. `currentHash` is the server's current
9
+ * draft content hash — retry the patch with it as `baseContentHash`.
10
+ * Extracted from the typed `SdkPatchPageBlockStaleContentFieldError` wire
11
+ * contract, so callers never parse prose.
12
+ */
13
+ export declare class BlockPatchStaleContentError extends ManagementApiError {
14
+ readonly kind = "stale-content";
15
+ readonly currentHash: string;
16
+ constructor(source: ManagementApiError, currentHash: string);
17
+ }
18
+ export declare function isBlockPatchStaleContentError(error: unknown): error is BlockPatchStaleContentError;
6
19
  export declare function createBlockOperations(http: HttpClient): BlockOperations;
@@ -36,7 +36,8 @@ 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, PageUpsertInput, BlockUpsertInput, NavigationMenuUpsertInput, NavigationItemInput, FormUpsertInput, SiteStyleSelectionApplyCommand, SiteStyleSelectionApplyCommandInput, ThemeUpsertInput, ThemeUpsertResult, ThemeStyleSelectionApplyInput, ThemeStyleSelectionApplyResult, FooterContent, ManagementFooterContent, FooterContentUpsertInput, FooterOperations, PulledFooter, PulledEntries, PulledPages, 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, IdentifiersOperations, BackfillResult, BackfillPageResult, BackfillBlockResult, BackfillEntryResult, MediaOperations, MediaUploadResult, } from './types';
40
40
  export { ManagementApiError, type ManagementApiErrorRequest } from './http';
41
+ export { BlockPatchStaleContentError, isBlockPatchStaleContentError, } from './blocks';
41
42
  export { applySiteStyleSelectionBodyFromCommand, buildApplySiteStyleSelectionCommand, } from './theme';
42
43
  export { CourseSessionConflictError };
@@ -4,13 +4,23 @@
4
4
  * Type definitions for the SDK management client used for write operations.
5
5
  */
6
6
  import type { LinkPayload, NavigationLinkInput } from '../../public-api/contracts';
7
+ import type { APIEndpoints } from '../../../../api/src/index';
7
8
  import type { SiteCommandOf } from '../../../../site-commands/src/index';
8
9
  import type { SdkEventPricing, SdkEventPricingInput, SdkEventTicketTypeInput } from '../../../../api/src/sdk-event-pricing';
9
10
  import type { SdkEventPaymentTerms, SdkEventPaymentTermsInput } from '../../../../api/src/sdk-event-payment-terms';
10
11
  import type { SdkEventUpsertBody } from '../../../../api/src/sdk-event-upsert';
11
12
  import type { SdkManagementEventSeries } from '../../../../api/src/sdkContracts';
13
+ import type { SdkPullTruncationMeta } from '../../../../api/src/sdkContracts';
14
+ import type { SdkEntryPublishErrorCode, SdkPagePublishErrorCode, SdkPublicationOutcome } from '../../../../api/src/sdkContracts';
12
15
  import type { PaletteSelection } from '../../../../theme-core/src/palette/index';
13
16
  import type { Theme } from '../../contracts';
17
+ export type SdkDeletePageResponse = NonNullable<APIEndpoints['sdkDeletePage']['response']>;
18
+ export type SdkGetPageBlockResponse = NonNullable<APIEndpoints['sdkGetPageBlock']['response']>;
19
+ export type SdkPatchPageBlockBody = NonNullable<APIEndpoints['sdkPatchPageBlock']['body']>;
20
+ export type SdkPatchPageBlockResponse = NonNullable<APIEndpoints['sdkPatchPageBlock']['response']>;
21
+ export type SdkPullEntriesAllResponse = NonNullable<APIEndpoints['sdkPullEntriesAll']['response']>;
22
+ export type SdkUpsertEntryResponse = NonNullable<APIEndpoints['sdkUpsertEntry']['response']>;
23
+ export type SdkUpsertPageResponse = NonNullable<APIEndpoints['sdkUpsertPage']['response']>;
14
24
  export interface ManagementClientConfig {
15
25
  /**
16
26
  * Dashboard URL (e.g., http://localhost:4000 or https://dashboard.riverbankcms.com)
@@ -66,6 +76,28 @@ export interface EntryUpsertInput {
66
76
  slug?: string;
67
77
  manualOrder?: number;
68
78
  blocks?: EntrySlotBlocksInput;
79
+ /**
80
+ * Publication intent. 'draft' (default) writes a draft only; 'publish' runs
81
+ * the publish operation after a successful save. Save and publish are not
82
+ * atomic — a publish that fails after a successful save is reported in-band on
83
+ * the response, not as an error.
84
+ */
85
+ publication?: 'draft' | 'publish';
86
+ }
87
+ /**
88
+ * The entry shape upsert responses carry — the wire envelope omits
89
+ * `publishedData` (the caller just wrote the draft; fetch with `get` when the
90
+ * published side is needed).
91
+ */
92
+ export type UpsertedManagementEntry = Omit<ManagementEntry, 'publishedData'>;
93
+ /**
94
+ * Result of an entry upsert with `publication: 'publish'`. The promise resolves
95
+ * even when the publish stage failed — the save succeeded and the entry exists
96
+ * as a draft; branch on `publication.published`.
97
+ */
98
+ export interface EntryPublishUpsertResult {
99
+ entry: UpsertedManagementEntry;
100
+ publication: SdkPublicationOutcome<SdkEntryPublishErrorCode>;
69
101
  }
70
102
  export interface ManagementPage {
71
103
  id: string;
@@ -84,6 +116,20 @@ export interface PageUpsertInput {
84
116
  path: string;
85
117
  seoTitle?: string;
86
118
  seoDescription?: string;
119
+ /**
120
+ * Publication intent. 'draft' (default) writes a draft only; 'publish' runs
121
+ * page publish after a successful save. Save and publish are non-atomic; a
122
+ * publish failure after a successful save is reported in-band, not as an error.
123
+ */
124
+ publication?: 'draft' | 'publish';
125
+ }
126
+ /**
127
+ * Result of a page upsert with `publication: 'publish'`. Resolves even when the
128
+ * publish stage failed — the save succeeded; branch on `publication.published`.
129
+ */
130
+ export interface PagePublishUpsertResult {
131
+ page: ManagementPage;
132
+ publication: SdkPublicationOutcome<SdkPagePublishErrorCode>;
87
133
  }
88
134
  export interface ManagementBlock {
89
135
  id: string;
@@ -106,6 +152,7 @@ export interface ManagementNavigationMenu {
106
152
  name: string;
107
153
  isPrimary: boolean;
108
154
  isFooter: boolean;
155
+ footerRole: 'main' | 'legal-policy' | null;
109
156
  items: ManagementNavigationItem[];
110
157
  createdAt: string;
111
158
  updatedAt: string;
@@ -145,6 +192,7 @@ export interface PulledNavigationMenu {
145
192
  name: string;
146
193
  isPrimary: boolean;
147
194
  isFooter: boolean;
195
+ footerRole: 'main' | 'legal-policy' | null;
148
196
  items: PulledNavigationItem[];
149
197
  createdAt: string;
150
198
  updatedAt: string;
@@ -154,6 +202,7 @@ export interface NavigationMenuUpsertInput {
154
202
  name: string;
155
203
  isPrimary?: boolean;
156
204
  isFooter?: boolean;
205
+ footerRole?: 'main' | 'legal-policy' | null;
157
206
  items: NavigationItemInput[];
158
207
  }
159
208
  export interface NavigationItemInput {
@@ -487,16 +536,18 @@ export interface MediaResolveResponse {
487
536
  missingAssetIds: string[];
488
537
  }
489
538
  /**
490
- * Input for creating or updating a theme.
491
- * Include themeId/selectionId for idempotent updates (push after pull).
539
+ * Explicitly separates an existing-theme update from first-theme provisioning.
540
+ * Initialization never accepts a separately authoritative Theme payload.
492
541
  */
493
- export interface ThemeUpsertInput {
494
- theme: Theme;
495
- /** Optional: update existing theme row (for idempotent push) */
496
- themeId?: string;
497
- /** Optional: update existing selection row (for idempotent push) */
498
- selectionId?: string;
499
- }
542
+ export type ThemeUpsertInput = NonNullable<APIEndpoints['sdkUpsertTheme']['body']>;
543
+ /** Updates an existing theme selection with a caller-supplied theme. */
544
+ export type ThemeUpsertUpdateInput = Extract<ThemeUpsertInput, {
545
+ kind: 'update';
546
+ }>;
547
+ /** Creates the first theme by compiling this complete style-selection command. */
548
+ export type ThemeUpsertInitializeInput = Extract<ThemeUpsertInput, {
549
+ kind: 'initialize';
550
+ }>;
500
551
  /**
501
552
  * Response from theme upsert operation.
502
553
  */
@@ -507,10 +558,29 @@ export interface ThemeUpsertResult {
507
558
  }
508
559
  export type SiteStyleSelectionApplyCommand = SiteCommandOf<'applySiteStyleSelection'>;
509
560
  export type SiteStyleSelectionApplyCommandInput = SiteStyleSelectionApplyCommand['input'];
510
- export interface ThemeStyleSelectionApplyInput extends SiteStyleSelectionApplyCommandInput {
561
+ /**
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.
569
+ */
570
+ export type ThemeStyleSelectionApplyInput = Omit<SiteStyleSelectionApplyCommandInput, 'siteStyleId' | 'headerLayoutId' | 'headerStyleId'> & Readonly<{
571
+ siteStyleId: string;
511
572
  baseSelectionVersion: number;
512
573
  selectionId?: string | null;
513
- }
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
+ }>);
514
584
  export interface ThemeStyleSelectionApplyResult {
515
585
  success: boolean;
516
586
  themeId: string;
@@ -521,21 +591,17 @@ export interface ThemeStyleSelectionApplyResult {
521
591
  theme: Theme;
522
592
  siteStyleId: string;
523
593
  buttonPersonalityId: string;
524
- paletteVariantId: string;
525
- paletteOverrides: Record<string, string> | null;
526
594
  activePaletteSelection: PaletteSelection;
527
595
  activeSitePaletteVersion: number | null;
528
596
  headerLookId: string | null;
529
597
  headerLayoutId: string;
530
598
  headerStyleId: string;
531
- typographyPresetId: string | null;
532
- typographyBodyFontOverride: string | null;
533
- typographyHeadingFontOverride: string | null;
534
599
  footerLookId: string;
535
600
  }
536
601
  /**
537
602
  * Footer content for SDK management operations.
538
- * Matches the structure stored in site_settings.footer_content_json (bottomText only).
603
+ * A narrow legal-text command. The CMS maps this onto the V1 footer composition's
604
+ * legal module without exposing or replacing the aggregate.
539
605
  */
540
606
  export interface FooterContent {
541
607
  /** Rich text content in ProseMirror JSON format */
@@ -586,6 +652,7 @@ export interface PulledEntries {
586
652
  updatedAt: string;
587
653
  publishedAt: string | null;
588
654
  }>;
655
+ truncation?: SdkPullTruncationMeta;
589
656
  };
590
657
  pagination: {
591
658
  page: number;
@@ -625,6 +692,30 @@ export interface PulledNavigation {
625
692
  pulledAt: string;
626
693
  };
627
694
  }
695
+ /**
696
+ * Cross-type overview of everything with pending (unpublished) changes.
697
+ * Mirrors `SdkPullDraftsResponse` in `@riverbankcms/api`; kept structurally in
698
+ * sync by the API↔SDK typetest.
699
+ */
700
+ export interface PulledDrafts {
701
+ pages: Array<{
702
+ identifier: string;
703
+ hasUnpublishedChanges: boolean;
704
+ status: 'draft' | 'published';
705
+ }>;
706
+ entries: Array<{
707
+ contentType: string;
708
+ identifier: string;
709
+ status: 'draft' | 'published';
710
+ }>;
711
+ summary: {
712
+ pageCount: number;
713
+ entryCount: number;
714
+ };
715
+ meta: {
716
+ pulledAt: string;
717
+ };
718
+ }
628
719
  export interface PulledSettings {
629
720
  settings: ManagementSettings;
630
721
  warnings?: string[];
@@ -783,10 +874,8 @@ export interface PulledContent {
783
874
  meta: {
784
875
  pulledAt: string;
785
876
  settingsUpdatedAt?: string | null;
786
- /** Whether the response was truncated due to size limits */
787
- truncated?: boolean;
788
- /** Message explaining what was truncated */
789
- truncationMessage?: string;
877
+ /** Whether the response was truncated due to size limits and what was returned. */
878
+ truncation: SdkPullTruncationMeta;
790
879
  entries?: Record<string, {
791
880
  createdAt: string;
792
881
  updatedAt: string;
@@ -828,7 +917,19 @@ export type ApiResponse<T> = ApiSuccessResponse<T> | ApiErrorResponse;
828
917
  export interface EntryOperations {
829
918
  list(contentType: string, options?: PaginationOptions): Promise<PaginatedResult<ManagementEntry>>;
830
919
  get(contentType: string, identifier: string): Promise<ManagementEntry | null>;
831
- upsert(input: EntryUpsertInput): Promise<ManagementEntry>;
920
+ /**
921
+ * Correlated overloads: a publish-intent upsert resolves to the entry plus
922
+ * the publication outcome (which may report a failed publish); a draft upsert
923
+ * resolves to the entry alone. Statically-unknown intent gets the honest
924
+ * union.
925
+ */
926
+ upsert(input: EntryUpsertInput & {
927
+ publication: 'publish';
928
+ }): Promise<EntryPublishUpsertResult>;
929
+ upsert(input: EntryUpsertInput & {
930
+ publication?: 'draft';
931
+ }): Promise<UpsertedManagementEntry>;
932
+ upsert(input: EntryUpsertInput): Promise<UpsertedManagementEntry | EntryPublishUpsertResult>;
832
933
  publish(contentType: string, identifier: string): Promise<void>;
833
934
  unpublish(contentType: string, identifier: string): Promise<void>;
834
935
  delete(contentType: string, identifier: string): Promise<void>;
@@ -836,14 +937,31 @@ export interface EntryOperations {
836
937
  export interface PageOperations {
837
938
  list(options?: PaginationOptions): Promise<PaginatedResult<ManagementPage>>;
838
939
  get(identifier: string): Promise<ManagementPage | null>;
839
- upsert(input: PageUpsertInput): Promise<ManagementPage>;
940
+ /** Correlated overloads — see {@link EntryOperations.upsert}. */
941
+ upsert(input: PageUpsertInput & {
942
+ publication: 'publish';
943
+ }): Promise<PagePublishUpsertResult>;
944
+ upsert(input: PageUpsertInput & {
945
+ publication?: 'draft';
946
+ }): Promise<ManagementPage>;
947
+ upsert(input: PageUpsertInput): Promise<ManagementPage | PagePublishUpsertResult>;
840
948
  publish(identifier: string): Promise<void>;
841
949
  unpublish(identifier: string): Promise<void>;
950
+ delete(identifier: string): Promise<void>;
842
951
  }
952
+ export type ManagementPageBlock = SdkGetPageBlockResponse['block'];
953
+ /**
954
+ * Input for `blocks.patch` — derived from the API contract.
955
+ * `baseContentHash` must be the `contentHash` from a prior `blocks.get`;
956
+ * a stale hash rejects with a 409 whose `fieldErrors[0].message` carries the
957
+ * current hash (field `baseContentHash`, code `STALE_CONTENT`).
958
+ */
959
+ export type BlockPatchInput = SdkPatchPageBlockBody;
843
960
  export interface BlockOperations {
844
961
  list(pageIdentifier: string): Promise<ManagementBlock[]>;
845
- get(pageIdentifier: string, blockIdentifier: string): Promise<ManagementBlock | null>;
962
+ get(pageIdentifier: string, blockIdentifier: string): Promise<ManagementPageBlock | null>;
846
963
  upsert(pageIdentifier: string, input: BlockUpsertInput): Promise<ManagementBlock>;
964
+ patch(pageIdentifier: string, blockIdentifier: string, input: BlockPatchInput): Promise<ManagementPageBlock>;
847
965
  reorder(pageIdentifier: string, blockIdentifiers: string[]): Promise<void>;
848
966
  delete(pageIdentifier: string, blockIdentifier: string): Promise<void>;
849
967
  }
@@ -903,6 +1021,11 @@ export interface CourseOperations {
903
1021
  export interface PullOperations {
904
1022
  entries(contentType?: string, options?: PaginationOptions): Promise<PulledEntries>;
905
1023
  pages(): Promise<PulledPages>;
1024
+ /**
1025
+ * Cross-type overview of pages and entries with pending (unpublished) changes.
1026
+ * Server-side filtered and fully enumerated.
1027
+ */
1028
+ drafts(): Promise<PulledDrafts>;
906
1029
  navigation(): Promise<PulledNavigation>;
907
1030
  settings(): Promise<PulledSettings>;
908
1031
  forms(): Promise<PulledForms>;
@@ -485,6 +485,8 @@ export interface RiverbankClient {
485
485
  eventSurface?: string;
486
486
  eventPresets?: string;
487
487
  scheduleScope?: string;
488
+ detailLevel?: 'full' | 'listing';
489
+ readProfile?: string;
488
490
  /** Optional: filter to a specific content entry (event series) */
489
491
  entryId?: string;
490
492
  /** Optional: filter to a specific seriesId */
@@ -300,6 +300,8 @@ export interface NavigationMenuConfig {
300
300
  isPrimary?: boolean;
301
301
  /** Is this the footer menu? */
302
302
  isFooter?: boolean;
303
+ /** Named footer destination. Prefer this for new configurations. */
304
+ footerRole?: 'main' | 'legal-policy' | null;
303
305
  /** Menu items */
304
306
  items: NavigationItemConfig[];
305
307
  }
@@ -97,6 +97,10 @@ export declare const navigationMenuConfigSchema: z.ZodObject<{
97
97
  name: z.ZodString;
98
98
  isPrimary: z.ZodOptional<z.ZodBoolean>;
99
99
  isFooter: z.ZodOptional<z.ZodBoolean>;
100
+ footerRole: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
101
+ main: "main";
102
+ "legal-policy": "legal-policy";
103
+ }>>>;
100
104
  items: z.ZodArray<z.ZodType<Readonly<{
101
105
  label: string;
102
106
  link: import("../../../api/src/index").NavigationAuthoringLinkInput;
@@ -45,7 +45,7 @@ export type BlockCategory = 'marketing' | 'content' | 'blog' | 'media' | 'layout
45
45
  *
46
46
  * Re-exported from `@riverbankcms/blocks` (single source of truth).
47
47
  */
48
- export declare const SUPPORTED_LOADER_ENDPOINTS: readonly ["listPublishedEntries", "getPublishedEntryPreview", "listPublicEvents", "getPublicEventDetails", "listPublicCourses", "listPublicRouteCandidates", "listPublicTeamMembers", "listPublicProducts", "listPublicPasses", "listPublicMemberships", "getPublicFormById", "getPublicBookingServices", "getPublicWeeklySlotAvailability"];
48
+ export declare const SUPPORTED_LOADER_ENDPOINTS: readonly ["listPublishedEntries", "getPublishedEntryPreview", "listPublicEvents", "listPublicRecurringSchedule", "getPublicEventDetails", "listPublicCourses", "listPublicRouteCandidates", "listPublicTeamMembers", "listPublicProducts", "listPublicPasses", "listPublicMemberships", "getPublicFormById", "getPublicBookingServices", "getPublicWeeklySlotAvailability"];
49
49
  export type SdkLoaderEndpoint = (typeof SUPPORTED_LOADER_ENDPOINTS)[number];
50
50
  export type LoaderParamBinding = {
51
51
  $bind: {
@@ -144,6 +144,7 @@ export declare const sdkLoaderEndpointSchema: z.ZodEnum<{
144
144
  listPublicProducts: "listPublicProducts";
145
145
  getPublishedEntryPreview: "getPublishedEntryPreview";
146
146
  listPublishedEntries: "listPublishedEntries";
147
+ listPublicRecurringSchedule: "listPublicRecurringSchedule";
147
148
  getPublicEventDetails: "getPublicEventDetails";
148
149
  listPublicRouteCandidates: "listPublicRouteCandidates";
149
150
  }>;
@@ -233,6 +234,7 @@ export declare const sdkConfigLoaderSchema: z.ZodObject<{
233
234
  listPublicProducts: "listPublicProducts";
234
235
  getPublishedEntryPreview: "getPublishedEntryPreview";
235
236
  listPublishedEntries: "listPublishedEntries";
237
+ listPublicRecurringSchedule: "listPublicRecurringSchedule";
236
238
  getPublicEventDetails: "getPublicEventDetails";
237
239
  listPublicRouteCandidates: "listPublicRouteCandidates";
238
240
  }>;
@@ -298,6 +300,7 @@ export declare const sdkDataLoadersSchema: z.ZodOptional<z.ZodRecord<z.ZodString
298
300
  listPublicProducts: "listPublicProducts";
299
301
  getPublishedEntryPreview: "getPublishedEntryPreview";
300
302
  listPublishedEntries: "listPublishedEntries";
303
+ listPublicRecurringSchedule: "listPublicRecurringSchedule";
301
304
  getPublicEventDetails: "getPublicEventDetails";
302
305
  listPublicRouteCandidates: "listPublicRouteCandidates";
303
306
  }>;
@@ -1,5 +1,5 @@
1
1
  export type { TipTapNode, TipTapMark, InlineText, InlineTextAccentTone, InlineTextHighlightTone, InlineTextMark, InlineTextRun, Media, LinkValue, InternalRouteOnlyLinkValue, InternalResolvedLinkValue, InternalLinkValue, ExternalLinkValue, CustomLinkValue, PageLinkValue, EntryLinkValue, RichTextPrimitiveProps, RichTextVariant, } from './content';
2
- export type { AppointmentBookingContent, BlogListingContent, BlogPostContent, BodyTextAlignment, BodyTextContent, ButtonVariant, CalendarTabViews, CartContent, CardStylesContent, CheckoutContent, CollectionContent, ColumnsContent, ColumnOption, ContainerStylesContent, CourseDetailsContent, CourseRegistrationContent, CtaFullContent, DisplayMode, EmbedContent, EventCalendarContent, EventDetailsContent, EventLayout, EventListingContent, EventRegistrationContent, EventSpotlightContent, FaqContent, FaqItem, FilterAutoShow, FormBlockContent, GiftingContent, HeroContent, HeroCta, HeroCtaInput, HeroMedia, ImageColSize, ImageGalleryContent, LocationMapContent, LayoutAlign, LayoutWidth, MediaTextAlignment, MediaTextAspectRatio, MediaTextContent, MediaTextImagePosition, NewsletterSignupContent, NewsletterSignupPreset, ProductDetailContent, ProductListContent, SectionStylesContent, SemanticIconId, SemanticSpacing, ShopContent, SingleButtonContent, SiteFooterContent, SiteHeaderContent, StackContentAlignment, StackImagePosition, SystemBlockContentByFullKind, SystemBlockContentByKind, SystemBlockContentFor, SystemBlockShortKind, TeamMembersContent, TestimonialEntryContent, TestimonialsBlockContent, ThumbnailPadding, ThumbnailShape, VideoGridContent, WeekStart, BlockIconValue, FeatureCardIconTreatment, } from './system-block-content';
2
+ export type { AppointmentBookingContent, BlogListingContent, BlogPostContent, BodyTextAlignment, BodyTextContent, ButtonVariant, CalendarTabViews, CartContent, CardStylesContent, CheckoutContent, CollectionContent, ColumnsContent, ColumnOption, ContainerStylesContent, CourseDetailsContent, CourseRegistrationContent, CtaFullContent, DisplayMode, EmbedContent, EventCalendarContent, EventDetailsContent, EventLayout, EventListingContent, EventRegistrationContent, EventSpotlightContent, FaqContent, FaqItem, FilterAutoShow, FormBlockContent, GiftingContent, HeroContent, HeroCta, HeroCtaInput, HeroMedia, ImageColSize, ImageGalleryContent, LocationMapContent, LayoutAlign, LayoutWidth, MediaTextAlignment, MediaTextAspectRatio, MediaTextContent, MediaTextImagePosition, NewsletterSignupContent, NewsletterSignupPreset, ProductDetailContent, ProductListContent, RecurringScheduleContent, SectionStylesContent, SemanticIconId, SemanticSpacing, ShopContent, SingleButtonContent, SiteFooterContent, SiteHeaderContent, StackContentAlignment, StackImagePosition, SystemBlockContentByFullKind, SystemBlockContentByKind, SystemBlockContentFor, SystemBlockShortKind, TeamMembersContent, TestimonialEntryContent, TestimonialsBlockContent, ThumbnailPadding, ThumbnailShape, VideoGridContent, WeekStart, BlockIconValue, FeatureCardIconTreatment, } from './system-block-content';
3
3
  export type { PageOutline, PageRuntimeBoundary, BlockOutline, RouteMap, RouteMapEntry, OccurrenceContextData, EntrySubrouteContextData, } from './page';
4
4
  export type { Theme, ThemeTokens } from './theme';
5
5
  export type { CustomCssDeclarationsInput, CustomCssRuleInput, CustomCssNestedRuleInput, CustomCssAtRuleInput, KeyframesAtRuleInput, FontFaceAtRuleInput, MediaAtRuleInput, SupportsAtRuleInput, RawAtRuleInput, } from './custom-css';
@@ -322,7 +322,7 @@ export type EventSpotlightContent = {
322
322
  };
323
323
  export type OfferingsPreviewSourceKey = 'eventPreset:class' | 'eventPreset:workshop' | 'eventPreset:retreat' | 'eventPreset:performance' | 'course';
324
324
  export type OfferingsPreviewCtaMode = 'auto' | 'custom' | 'hidden';
325
- export type OfferingsPreviewGroupPresentation = 'compact-list' | 'single-card';
325
+ export type OfferingsPreviewGroupPresentation = 'compact-list' | 'single-card' | 'featured-summary';
326
326
  export type OfferingsPreviewGroupOverride = {
327
327
  sourceKey?: OfferingsPreviewSourceKey | null;
328
328
  title?: string | null;
@@ -359,6 +359,7 @@ export type FaqContent = {
359
359
  _containerStyles?: ContainerStylesContent;
360
360
  };
361
361
  export type FeatureCard = {
362
+ surfaceRole?: 'open' | 'panel' | null;
362
363
  media?: Media | null;
363
364
  aspectRatio?: StandardAspectRatio | null;
364
365
  icon?: BlockIconValue | SemanticIconId | null;
@@ -367,11 +368,14 @@ export type FeatureCard = {
367
368
  ctas?: BlockCtaContent[] | null;
368
369
  };
369
370
  export type FeatureCardsContent = {
370
- variant?: 'cards' | null;
371
+ variant?: 'cards' | 'editorial-diptych' | 'editorial-pathways' | null;
372
+ eyebrow?: string | null;
371
373
  title?: string | null;
372
374
  description?: TipTapNode | null;
373
375
  columns?: '2' | '3' | '4' | null;
376
+ cardMarker?: 'icons' | 'numbers' | 'none' | null;
374
377
  _iconTreatment?: FeatureCardIconTreatment | null;
378
+ _generatedIconSizePx?: number | null;
375
379
  cards?: FeatureCard[] | null;
376
380
  };
377
381
  export type HeroCta = {
@@ -461,11 +465,25 @@ export type NewsletterSignupContent = {
461
465
  preset: NewsletterSignupPreset;
462
466
  includePhone?: boolean | null;
463
467
  buttonLabel?: string | null;
468
+ buttonVariant?: 'primary' | 'secondary' | 'outline' | null;
464
469
  successMessage?: string | null;
465
470
  privacyNote?: string | null;
466
471
  tags?: string | null;
467
472
  _sectionStyles?: SectionStylesContent;
468
473
  };
474
+ export type RecurringScheduleContent = {
475
+ eyebrow?: string | null;
476
+ heading?: string | null;
477
+ description?: TipTapNode | null;
478
+ showVenue?: boolean | null;
479
+ buttonVariant?: 'primary' | 'secondary' | 'outline' | 'link' | null;
480
+ buttonText?: string | null;
481
+ seeAllButtonVariant?: 'primary' | 'secondary' | 'outline' | 'link' | null;
482
+ seeAllUrl?: LinkValue | null;
483
+ seeAllLabel?: string | null;
484
+ emptyMessage?: string | null;
485
+ _sectionStyles?: SectionStylesContent;
486
+ };
469
487
  export type ContactNewsletterContent = {
470
488
  newsletterTitle?: string | null;
471
489
  newsletterSubtitle?: RichTextDoc | null;
@@ -486,11 +504,12 @@ export type ContactNewsletterContent = {
486
504
  export type ShopContent = {
487
505
  showPasses?: boolean | null;
488
506
  showMemberships?: boolean | null;
489
- layout?: 'grid' | 'list' | null;
507
+ layout?: 'grid' | 'list' | 'register' | null;
490
508
  columns?: '1' | '2' | '3' | '4' | null;
491
509
  showDescriptions?: boolean | null;
492
510
  showValidityPeriod?: boolean | null;
493
511
  showPricePerCredit?: boolean | null;
512
+ buttonVariant?: 'primary' | 'secondary' | 'outline' | 'link' | null;
494
513
  passesHeading?: string | null;
495
514
  membershipsHeading?: string | null;
496
515
  buyButtonText?: string | null;
@@ -727,6 +746,7 @@ export type SystemBlockContentByFullKind = {
727
746
  'block.event-spotlight': EventSpotlightContent;
728
747
  'block.event-listing': EventListingContent;
729
748
  'block.event-calendar': EventCalendarContent;
749
+ 'block.recurring-schedule': RecurringScheduleContent;
730
750
  'block.offerings-preview': OfferingsPreviewContent;
731
751
  'block.shop': ShopContent;
732
752
  'block.product-list': ProductListContent;
@@ -0,0 +1,17 @@
1
+ import type { BlockOutline } from '../contracts';
2
+ import type { BlockKind } from '../types';
3
+ import type { DataLoaderContext, DataLoaderPreviewStage, DataLoaderRenderTarget, DataLoaderSearchParams } from './types';
4
+ type IncomingSearchParams = Readonly<Record<string, string | readonly string[] | undefined>>;
5
+ export declare function getDataLoaderOwnerPageId(target: DataLoaderRenderTarget): string;
6
+ export declare function normalizeDataLoaderSearchParams(input: IncomingSearchParams | undefined): DataLoaderSearchParams;
7
+ export declare function resolveDataLoaderBlockContent(block: BlockOutline, previewStage: DataLoaderPreviewStage): Readonly<Record<string, unknown>>;
8
+ export declare function createDataLoaderContext(input: Readonly<{
9
+ siteId: string;
10
+ renderTarget: DataLoaderRenderTarget;
11
+ blockId: string;
12
+ blockKind: BlockKind;
13
+ content: Readonly<Record<string, unknown>>;
14
+ previewStage: DataLoaderPreviewStage;
15
+ searchParams: DataLoaderSearchParams;
16
+ }>): DataLoaderContext;
17
+ export {};
@@ -0,0 +1,36 @@
1
+ import type { DataLoaderValue } from './types';
2
+ type UnsupportedDataLoaderValueType = 'undefined' | 'bigint' | 'symbol' | 'function';
3
+ export type DataLoaderValueIssue = Readonly<{
4
+ kind: 'unsupported-type';
5
+ valueType: UnsupportedDataLoaderValueType;
6
+ }> | Readonly<{
7
+ kind: 'non-finite-number';
8
+ }> | Readonly<{
9
+ kind: 'non-plain-object';
10
+ }> | Readonly<{
11
+ kind: 'accessor-property';
12
+ }> | Readonly<{
13
+ kind: 'symbol-key';
14
+ }> | Readonly<{
15
+ kind: 'invalid-array';
16
+ }> | Readonly<{
17
+ kind: 'cycle';
18
+ }> | Readonly<{
19
+ kind: 'inspection-failed';
20
+ }> | Readonly<{
21
+ kind: 'complexity-limit-exceeded';
22
+ }>;
23
+ export type DataLoaderValueValidation = Readonly<{
24
+ ok: true;
25
+ value: DataLoaderValue;
26
+ }> | Readonly<{
27
+ ok: false;
28
+ issue: DataLoaderValueIssue;
29
+ }>;
30
+ /**
31
+ * Validates and snapshots arbitrary loader output without invoking getters,
32
+ * setters, or conversion hooks. Reflection failures are returned as data,
33
+ * never thrown, and accepted containers are detached and frozen.
34
+ */
35
+ export declare function validateDataLoaderValue(input: unknown): DataLoaderValueValidation;
36
+ export {};
@@ -0,0 +1,2 @@
1
+ /** Define a string key as ordinary data without invoking legacy prototype setters. */
2
+ export declare function defineOwnDataProperty<Value>(target: Record<string, Value>, key: string, value: Value): void;
@@ -1,44 +1,40 @@
1
- /**
2
- * Execute code-based data loaders for SDK custom blocks.
3
- *
4
- * Code loaders are user-defined async functions that can fetch data
5
- * from any API (not just whitelisted CMS endpoints). They run
6
- * server-side during loadPage().
7
- */
1
+ /** Execute server-side host data loaders for SDK blocks. */
8
2
  import type { PageOutline } from '../contracts';
9
- import type { PrefetchContext, ResolvedBlockData } from './prefetchBlockData';
10
- import type { DataLoaderOverrides } from './types';
11
- /**
12
- * Execute code-based data loaders for blocks on a page.
13
- *
14
- * Iterates through page blocks and executes any registered loader
15
- * functions for matching block kinds. Runs all loaders in parallel.
16
- *
17
- * @param page - Page outline with blocks to process
18
- * @param context - Prefetch context (siteId, pageId, previewStage)
19
- * @param overrides - Map of block kinds to loader functions
20
- * @returns Resolved data keyed by blockId, then loader key
21
- *
22
- * @example
23
- * ```typescript
24
- * const codeData = await executeCodeLoaders(page, context, {
25
- * 'custom.featured-products': {
26
- * products: async (ctx) => fetchProducts(ctx.content.categoryId),
27
- * },
28
- * });
29
- * // codeData: { 'block-123': { products: [...] } }
30
- * ```
31
- */
32
- export declare function executeCodeLoaders(page: PageOutline, context: PrefetchContext & {
33
- searchParams?: Record<string, string | string[] | undefined>;
34
- }, overrides: DataLoaderOverrides): Promise<ResolvedBlockData>;
3
+ import { type BlockKind } from '../types';
4
+ import { type DataLoaderValueIssue } from './dataLoaderValue';
5
+ import type { ResolvedBlockData } from './prefetchBlockData';
6
+ import type { DataLoaderOverrides, DataLoaderPreviewStage, DataLoaderRenderTarget, DataLoaderSearchParams } from './types';
7
+ export type CodeLoaderFailureKind = 'execution-failed' | 'invalid-result';
8
+ type CodeLoaderFailureCoordinates = Readonly<{
9
+ siteId: string;
10
+ pageId: string;
11
+ blockId: string;
12
+ blockKind: BlockKind;
13
+ loaderKey: string;
14
+ previewStage: DataLoaderPreviewStage;
15
+ renderTargetKind: DataLoaderRenderTarget['kind'];
16
+ }>;
17
+ export type CodeLoaderFailure = CodeLoaderFailureCoordinates & (Readonly<{
18
+ kind: 'execution-failed';
19
+ }> | Readonly<{
20
+ kind: 'invalid-result';
21
+ validationIssueKind: DataLoaderValueIssue['kind'];
22
+ }>);
23
+ export type ExecuteCodeLoadersResult = Readonly<{
24
+ data: ResolvedBlockData;
25
+ failures: readonly CodeLoaderFailure[];
26
+ }>;
27
+ export type ExecuteCodeLoadersContext = Readonly<{
28
+ siteId: string;
29
+ renderTarget: DataLoaderRenderTarget;
30
+ previewStage: DataLoaderPreviewStage;
31
+ searchParams: DataLoaderSearchParams;
32
+ }>;
35
33
  /**
36
- * Merge resolved data from config loaders and code loaders.
37
- *
38
- * Code loader results take precedence on key conflicts.
39
- *
40
- * @param configResults - Data from config-based loaders (CMS endpoints)
41
- * @param codeResults - Data from code-based loaders (external APIs)
42
- * @returns Merged data with code results overwriting config on conflicts
34
+ * Runs all matching host loaders concurrently. The function returns closed
35
+ * outcomes and never logs; warning ownership belongs to the shared resolver.
43
36
  */
37
+ export declare function executeCodeLoaders(page: PageOutline, context: ExecuteCodeLoadersContext, overrides: DataLoaderOverrides): Promise<ExecuteCodeLoadersResult>;
38
+ /** Successful host values take precedence on per-block loader-key collisions. */
44
39
  export declare function mergeLoaderResults(configResults: ResolvedBlockData, codeResults: ResolvedBlockData): ResolvedBlockData;
40
+ export {};
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Block data loading utilities for SDK
3
3
  */
4
- export { prefetchBlockData, SUPPORTED_LOADER_ENDPOINTS } from './prefetchBlockData';
5
- export type { PrefetchContext, ResolvedBlockData, SdkPrefetchOptions, SupportedLoaderEndpoint } from './prefetchBlockData';
4
+ export { prefetchBlockData, SUPPORTED_LOADER_ENDPOINTS, } from './prefetchBlockData';
5
+ export type { PrefetchContext, ResolvedBlockData, SdkPrefetchOptions, SupportedLoaderEndpoint, } from './prefetchBlockData';
6
6
  export { executeCodeLoaders, mergeLoaderResults } from './executeCodeLoaders';
7
- export type { DataLoaderContext, DataLoaderFn, BlockLoaderMap, DataLoaderOverrides, } from './types';
7
+ export type { BlockLoaderMap, DataLoaderContext, DataLoaderFn, DataLoaderOverrides, DataLoaderPreviewStage, DataLoaderRenderTarget, DataLoaderSearchParams, DataLoaderValue, } from './types';