@riverbankcms/sdk 0.62.4 → 0.67.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 (349) hide show
  1. package/README.md +11 -0
  2. package/dist/_dts/api/src/accessAdmin.d.ts +64 -2
  3. package/dist/_dts/api/src/aiEndpoints.d.ts +2 -2
  4. package/dist/_dts/api/src/aiPlayground.d.ts +18 -11
  5. package/dist/_dts/api/src/apiEndpointTypes.d.ts +12 -0
  6. package/dist/_dts/api/src/billing.d.ts +46 -10
  7. package/dist/_dts/api/src/bookingConfig.d.ts +2 -0
  8. package/dist/_dts/api/src/bookingOperations.d.ts +1 -1
  9. package/dist/_dts/api/src/bookingRecords.d.ts +26 -0
  10. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +12 -1
  11. package/dist/_dts/api/src/contentRuntime.d.ts +1 -0
  12. package/dist/_dts/api/src/courses.d.ts +3 -0
  13. package/dist/_dts/api/src/endpoints.d.ts +48 -0
  14. package/dist/_dts/api/src/index.d.ts +8 -5
  15. package/dist/_dts/api/src/sdkConfig/contracts.d.ts +29 -40
  16. package/dist/_dts/api/src/sdkContracts.d.ts +14 -2
  17. package/dist/_dts/api/src/siteMembers.d.ts +1 -1
  18. package/dist/_dts/api/src/siteOnboarding.d.ts +4 -0
  19. package/dist/_dts/api/src/siteOperations.d.ts +11 -1
  20. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +29 -0
  21. package/dist/_dts/api/src/types.d.ts +2 -1
  22. package/dist/_dts/billing/src/plans/registry.d.ts +1 -0
  23. package/dist/_dts/billing/src/plans/types.d.ts +10 -1
  24. package/dist/_dts/block-form/src/FormRenderer.d.ts +38 -0
  25. package/dist/_dts/block-form/src/backend/adapter.d.ts +7 -0
  26. package/dist/_dts/block-form/src/backend/hooks/useRepeaterBackend.d.ts +34 -0
  27. package/dist/_dts/block-form/src/backend/hooks.d.ts +66 -0
  28. package/dist/_dts/block-form/src/backend/index.d.ts +12 -0
  29. package/dist/_dts/block-form/src/backend/rhf-backend.d.ts +34 -0
  30. package/dist/_dts/block-form/src/backend/store-backend.d.ts +60 -0
  31. package/dist/_dts/block-form/src/backend/types.d.ts +137 -0
  32. package/dist/_dts/block-form/src/backend/useBackendWatch.d.ts +22 -0
  33. package/dist/_dts/block-form/src/backend/utils/getErrorMessage.d.ts +1 -0
  34. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +70 -0
  35. package/dist/_dts/block-form/src/client/blockDraftSaveability.d.ts +1 -0
  36. package/dist/_dts/block-form/src/client/index.d.ts +30 -0
  37. package/dist/_dts/block-form/src/context/BlockContext.d.ts +29 -0
  38. package/dist/_dts/block-form/src/context/DisplayLabelResolverContext.d.ts +33 -0
  39. package/dist/_dts/block-form/src/context/FieldPreviewResolverContext.d.ts +30 -0
  40. package/dist/_dts/block-form/src/context/ImageResolveContext.d.ts +1 -0
  41. package/dist/_dts/block-form/src/context/index.d.ts +4 -0
  42. package/dist/_dts/block-form/src/fields/props.d.ts +48 -0
  43. package/dist/_dts/block-form/src/fields/types.d.ts +223 -0
  44. package/dist/_dts/block-form/src/index.d.ts +22 -0
  45. package/dist/_dts/block-form/src/manifest/ManifestForm.d.ts +37 -0
  46. package/dist/_dts/block-form/src/manifest/canonicalValidation.d.ts +5 -0
  47. package/dist/_dts/block-form/src/manifest/filterSdkTabs.d.ts +44 -0
  48. package/dist/_dts/block-form/src/manifest/manifestFormAdapter.d.ts +61 -0
  49. package/dist/_dts/block-form/src/manifest/mergeManifestWithSdkOptions.d.ts +24 -0
  50. package/dist/_dts/block-form/src/palette/PaletteContext.d.ts +11 -0
  51. package/dist/_dts/block-form/src/registry/schemas.d.ts +105 -0
  52. package/dist/_dts/block-form/src/registry/widgets.d.ts +59 -0
  53. package/dist/_dts/block-form/src/sdk-config/SdkConfigContext.d.ts +110 -0
  54. package/dist/_dts/block-form/src/sdk-config/hooks.d.ts +21 -0
  55. package/dist/_dts/block-form/src/sdk-config/index.d.ts +2 -0
  56. package/dist/_dts/block-form/src/shared/disclosure.d.ts +1 -0
  57. package/dist/_dts/block-form/src/shared/hooks/index.d.ts +2 -0
  58. package/dist/_dts/block-form/src/shared/hooks/useCoarsePointer.d.ts +5 -0
  59. package/dist/_dts/block-form/src/shared/hooks/useContainerWidth.d.ts +6 -0
  60. package/dist/_dts/block-form/src/utils/VisibilityWrapper.d.ts +25 -0
  61. package/dist/_dts/block-form/src/utils/computeWatchedPath.d.ts +18 -0
  62. package/dist/_dts/block-form/src/utils/evaluateVisibility.d.ts +9 -0
  63. package/dist/_dts/block-form/src/utils/fieldHelpers.d.ts +94 -0
  64. package/dist/_dts/block-form/src/utils/resolvePromotedFields.d.ts +22 -0
  65. package/dist/_dts/block-form/src/utils/slug.d.ts +3 -0
  66. package/dist/_dts/block-form/src/utils/typeGuards.d.ts +3 -0
  67. package/dist/_dts/block-form/src/widgets/BackgroundColorWidget/BackgroundColorField.d.ts +10 -0
  68. package/dist/_dts/block-form/src/widgets/BackgroundColorWidget/BackgroundColorWidget.d.ts +23 -0
  69. package/dist/_dts/block-form/src/widgets/BackgroundColorWidget/index.d.ts +2 -0
  70. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientField.d.ts +13 -0
  71. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientWidget.d.ts +17 -0
  72. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/index.d.ts +2 -0
  73. package/dist/_dts/block-form/src/widgets/BooleanField/BooleanField.d.ts +6 -0
  74. package/dist/_dts/block-form/src/widgets/BooleanField/booleanFieldDefaults.d.ts +6 -0
  75. package/dist/_dts/block-form/src/widgets/BooleanField/booleanFieldSchema.d.ts +7 -0
  76. package/dist/_dts/block-form/src/widgets/BooleanField/index.d.ts +3 -0
  77. package/dist/_dts/block-form/src/widgets/BoxStyleWidget/BoxStyleWidget.d.ts +17 -0
  78. package/dist/_dts/block-form/src/widgets/BoxStyleWidget/index.d.ts +1 -0
  79. package/dist/_dts/block-form/src/widgets/ContentTypeSelectField/contentTypeSelectFieldDefaults.d.ts +3 -0
  80. package/dist/_dts/block-form/src/widgets/ContentTypeSelectField/contentTypeSelectFieldSchema.d.ts +4 -0
  81. package/dist/_dts/block-form/src/widgets/DateField/DateField.d.ts +23 -0
  82. package/dist/_dts/block-form/src/widgets/DateField/dateFieldDefaults.d.ts +8 -0
  83. package/dist/_dts/block-form/src/widgets/DateField/dateFieldSchema.d.ts +9 -0
  84. package/dist/_dts/block-form/src/widgets/DateField/datePickerPopover.d.ts +32 -0
  85. package/dist/_dts/block-form/src/widgets/DateField/index.d.ts +4 -0
  86. package/dist/_dts/block-form/src/widgets/DateTimeField/DateTimeField.d.ts +30 -0
  87. package/dist/_dts/block-form/src/widgets/DateTimeField/dateTimeFieldDefaults.d.ts +8 -0
  88. package/dist/_dts/block-form/src/widgets/DateTimeField/dateTimeFieldSchema.d.ts +11 -0
  89. package/dist/_dts/block-form/src/widgets/DateTimeField/index.d.ts +4 -0
  90. package/dist/_dts/block-form/src/widgets/DateTimeField/utils/dateTimeUtils.d.ts +22 -0
  91. package/dist/_dts/block-form/src/widgets/DateTimeField/utils/index.d.ts +1 -0
  92. package/dist/_dts/block-form/src/widgets/EntryPickerField/entryPickerFieldDefaults.d.ts +3 -0
  93. package/dist/_dts/block-form/src/widgets/EntryPickerField/entryPickerFieldSchema.d.ts +4 -0
  94. package/dist/_dts/block-form/src/widgets/Field.d.ts +21 -0
  95. package/dist/_dts/block-form/src/widgets/FieldFrame.d.ts +32 -0
  96. package/dist/_dts/block-form/src/widgets/FieldSettingsModal/FieldSettingsModal.d.ts +34 -0
  97. package/dist/_dts/block-form/src/widgets/FieldSettingsModal/index.d.ts +2 -0
  98. package/dist/_dts/block-form/src/widgets/GroupField/GroupField.d.ts +23 -0
  99. package/dist/_dts/block-form/src/widgets/GroupField/groupFieldDefaults.d.ts +9 -0
  100. package/dist/_dts/block-form/src/widgets/GroupField/groupFieldSchema.d.ts +10 -0
  101. package/dist/_dts/block-form/src/widgets/GroupField/index.d.ts +3 -0
  102. package/dist/_dts/block-form/src/widgets/LinkField/linkFieldDefaults.d.ts +10 -0
  103. package/dist/_dts/block-form/src/widgets/LinkField/linkFieldSchema.d.ts +3 -0
  104. package/dist/_dts/block-form/src/widgets/MediaField/mediaFieldDefaults.d.ts +6 -0
  105. package/dist/_dts/block-form/src/widgets/MediaField/mediaFieldSchema.d.ts +6 -0
  106. package/dist/_dts/block-form/src/widgets/ModalGroupField/ModalGroupField.d.ts +17 -0
  107. package/dist/_dts/block-form/src/widgets/ModalGroupField/index.d.ts +3 -0
  108. package/dist/_dts/block-form/src/widgets/ModalGroupField/modalFieldDefaults.d.ts +18 -0
  109. package/dist/_dts/block-form/src/widgets/ModalGroupField/modalFieldSchema.d.ts +14 -0
  110. package/dist/_dts/block-form/src/widgets/NumberField/NumberField.d.ts +7 -0
  111. package/dist/_dts/block-form/src/widgets/NumberField/index.d.ts +3 -0
  112. package/dist/_dts/block-form/src/widgets/NumberField/numberFieldDefaults.d.ts +6 -0
  113. package/dist/_dts/block-form/src/widgets/NumberField/numberFieldSchema.d.ts +7 -0
  114. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/PresetOrCustomField.d.ts +11 -0
  115. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/index.d.ts +4 -0
  116. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/presetOrCustomFieldDefaults.d.ts +3 -0
  117. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/presetOrCustomFieldSchema.d.ts +4 -0
  118. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/types.d.ts +37 -0
  119. package/dist/_dts/block-form/src/widgets/ReferenceField/referenceFieldDefaults.d.ts +3 -0
  120. package/dist/_dts/block-form/src/widgets/ReferenceField/referenceFieldSchema.d.ts +4 -0
  121. package/dist/_dts/block-form/src/widgets/RepeaterField/RepeaterField.d.ts +26 -0
  122. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterDragHandle.d.ts +8 -0
  123. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterError.d.ts +11 -0
  124. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterHeader.d.ts +10 -0
  125. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterLayoutGrid.d.ts +27 -0
  126. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterList.d.ts +19 -0
  127. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRow.d.ts +23 -0
  128. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRowActions.d.ts +16 -0
  129. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRowContent.d.ts +19 -0
  130. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterTabbedEditDialog.d.ts +16 -0
  131. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailCard.d.ts +26 -0
  132. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailGrid.d.ts +20 -0
  133. package/dist/_dts/block-form/src/widgets/RepeaterField/components/index.d.ts +11 -0
  134. package/dist/_dts/block-form/src/widgets/RepeaterField/components/layoutGridDomain.d.ts +34 -0
  135. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/index.d.ts +6 -0
  136. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/layoutGridCapacityDecision.d.ts +22 -0
  137. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useLayoutGridCapacity.d.ts +20 -0
  138. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useLinearRepeaterDnd.d.ts +23 -0
  139. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useRepeaterPointerDragCapability.d.ts +10 -0
  140. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useRepeaterRowErrors.d.ts +12 -0
  141. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useRepeaterVisibility.d.ts +6 -0
  142. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useResolvedItemLabel.d.ts +12 -0
  143. package/dist/_dts/block-form/src/widgets/RepeaterField/index.d.ts +3 -0
  144. package/dist/_dts/block-form/src/widgets/RepeaterField/repeaterFieldDefaults.d.ts +7 -0
  145. package/dist/_dts/block-form/src/widgets/RepeaterField/repeaterFieldSchema.d.ts +8 -0
  146. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/buildItemLabel.d.ts +7 -0
  147. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/buildSummary.d.ts +7 -0
  148. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/createDefaultItem.d.ts +6 -0
  149. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/getRepeaterItemFieldGroups.d.ts +8 -0
  150. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/getRepeaterItemFields.d.ts +22 -0
  151. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/index.d.ts +10 -0
  152. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/layoutGridCapacityContext.d.ts +2 -0
  153. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterDndDomain.d.ts +43 -0
  154. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterPresentation.d.ts +24 -0
  155. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/resolveThumbnail.d.ts +12 -0
  156. package/dist/_dts/block-form/src/widgets/RichTextField/richTextFieldDefaults.d.ts +20 -0
  157. package/dist/_dts/block-form/src/widgets/RichTextField/richTextFieldSchema.d.ts +16 -0
  158. package/dist/_dts/block-form/src/widgets/SdkSelectField/SdkSelectField.d.ts +11 -0
  159. package/dist/_dts/block-form/src/widgets/SdkSelectField/index.d.ts +1 -0
  160. package/dist/_dts/block-form/src/widgets/SelectField/SelectField.d.ts +7 -0
  161. package/dist/_dts/block-form/src/widgets/SelectField/index.d.ts +3 -0
  162. package/dist/_dts/block-form/src/widgets/SelectField/selectFieldDefaults.d.ts +6 -0
  163. package/dist/_dts/block-form/src/widgets/SelectField/selectFieldSchema.d.ts +7 -0
  164. package/dist/_dts/block-form/src/widgets/SelectWidget.d.ts +34 -0
  165. package/dist/_dts/block-form/src/widgets/SettingsModal/SettingsModal.d.ts +17 -0
  166. package/dist/_dts/block-form/src/widgets/SettingsModal/index.d.ts +2 -0
  167. package/dist/_dts/block-form/src/widgets/SliderField/SliderField.d.ts +16 -0
  168. package/dist/_dts/block-form/src/widgets/SliderField/index.d.ts +1 -0
  169. package/dist/_dts/block-form/src/widgets/SlugField/SlugField.d.ts +39 -0
  170. package/dist/_dts/block-form/src/widgets/SlugField/hooks/index.d.ts +1 -0
  171. package/dist/_dts/block-form/src/widgets/SlugField/hooks/useSlugAutoGeneration.d.ts +29 -0
  172. package/dist/_dts/block-form/src/widgets/SlugField/index.d.ts +5 -0
  173. package/dist/_dts/block-form/src/widgets/SlugField/slugFieldDefaults.d.ts +8 -0
  174. package/dist/_dts/block-form/src/widgets/SlugField/slugFieldSchema.d.ts +14 -0
  175. package/dist/_dts/block-form/src/widgets/SlugField/utils/index.d.ts +2 -0
  176. package/dist/_dts/block-form/src/widgets/SlugField/utils/pathUtils.d.ts +30 -0
  177. package/dist/_dts/block-form/src/widgets/SlugField/utils/slugUtils.d.ts +17 -0
  178. package/dist/_dts/block-form/src/widgets/TabGroupField/TabGroupField.d.ts +13 -0
  179. package/dist/_dts/block-form/src/widgets/TabGroupField/index.d.ts +3 -0
  180. package/dist/_dts/block-form/src/widgets/TabGroupField/tabGroupFieldSchema.d.ts +25 -0
  181. package/dist/_dts/block-form/src/widgets/TabGroupField/types.d.ts +46 -0
  182. package/dist/_dts/block-form/src/widgets/TextField/TextField.d.ts +7 -0
  183. package/dist/_dts/block-form/src/widgets/TextField/index.d.ts +3 -0
  184. package/dist/_dts/block-form/src/widgets/TextField/textFieldDefaults.d.ts +6 -0
  185. package/dist/_dts/block-form/src/widgets/TextField/textFieldSchema.d.ts +7 -0
  186. package/dist/_dts/block-form/src/widgets/TextInputWidget.d.ts +20 -0
  187. package/dist/_dts/block-form/src/widgets/TimeField/TimeField.d.ts +23 -0
  188. package/dist/_dts/block-form/src/widgets/TimeField/index.d.ts +3 -0
  189. package/dist/_dts/block-form/src/widgets/TimeField/timeFieldDefaults.d.ts +8 -0
  190. package/dist/_dts/block-form/src/widgets/TimeField/timeFieldSchema.d.ts +9 -0
  191. package/dist/_dts/block-form/src/widgets/ToggleWidget.d.ts +16 -0
  192. package/dist/_dts/block-form/src/widgets/UrlField/UrlField.d.ts +23 -0
  193. package/dist/_dts/block-form/src/widgets/UrlField/index.d.ts +3 -0
  194. package/dist/_dts/block-form/src/widgets/UrlField/urlFieldDefaults.d.ts +8 -0
  195. package/dist/_dts/block-form/src/widgets/UrlField/urlFieldSchema.d.ts +9 -0
  196. package/dist/_dts/block-form/src/widgets/constants.d.ts +58 -0
  197. package/dist/_dts/block-form/src/widgets/groupFieldHelpers.d.ts +61 -0
  198. package/dist/_dts/block-form/src/widgets/index.d.ts +20 -0
  199. package/dist/_dts/block-form/src/widgets/selectValueMapping.d.ts +9 -0
  200. package/dist/_dts/block-form/src/widgets/types/modalConfig.d.ts +18 -0
  201. package/dist/_dts/block-form/src/widgets/utils/readNumericUiConfig.d.ts +10 -0
  202. package/dist/_dts/blocks/src/bindings/index.d.ts +1 -1
  203. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +4 -0
  204. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +2 -0
  205. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +1 -1
  206. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +2 -2
  207. package/dist/_dts/blocks/src/system/blocks/blog-post.d.ts +1 -1
  208. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +1 -1
  209. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +1 -1
  210. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +2 -2
  211. package/dist/_dts/blocks/src/system/blocks/columns.d.ts +1 -1
  212. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +2 -2
  213. package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +1 -1
  214. package/dist/_dts/blocks/src/system/blocks/event-details.d.ts +25 -0
  215. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -2
  216. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +2 -2
  217. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +1 -1
  218. package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +1 -1
  219. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +1 -1
  220. package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +1 -1
  221. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +2 -2
  222. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +6 -6
  223. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +1 -1
  224. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +2 -2
  225. package/dist/_dts/blocks/src/system/blocks/products/shared.d.ts +2 -2
  226. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +1 -1
  227. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +2 -2
  228. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +1 -1
  229. package/dist/_dts/blocks/src/system/blocks/video-grid.d.ts +1 -1
  230. package/dist/_dts/blocks/src/system/fragments/library/card.d.ts +1 -1
  231. package/dist/_dts/blocks/src/system/fragments/library/ctaRow.d.ts +1 -1
  232. package/dist/_dts/blocks/src/system/fragments/library/feedbackCallout.d.ts +1 -1
  233. package/dist/_dts/blocks/src/system/fragments/library/heroCtaRow.d.ts +1 -1
  234. package/dist/_dts/blocks/src/system/fragments/library/sectionState.d.ts +1 -1
  235. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  236. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +1 -0
  237. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/view.d.ts +4 -1
  238. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +4 -1
  239. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +4 -1
  240. package/dist/_dts/blocks/src/system/transforms/registry/formatting.d.ts +1 -0
  241. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +2 -1
  242. package/dist/_dts/calendar/src/grid.d.ts +60 -0
  243. package/dist/_dts/calendar/src/group.d.ts +14 -0
  244. package/dist/_dts/calendar/src/index.d.ts +6 -0
  245. package/dist/_dts/calendar/src/lane-packing.d.ts +28 -0
  246. package/dist/_dts/calendar/src/timetable.d.ts +90 -0
  247. package/dist/_dts/calendar/src/timezone.d.ts +19 -0
  248. package/dist/_dts/content-editor/src/index.d.ts +1 -4
  249. package/dist/_dts/core/src/booking-date-time.d.ts +1 -0
  250. package/dist/_dts/core/src/branded.d.ts +18 -0
  251. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +900 -69
  252. package/dist/_dts/editor-blocks/src/index.d.ts +1 -1
  253. package/dist/_dts/editor-blocks/src/widgets/index.d.ts +7 -7
  254. package/dist/_dts/editor-blocks/src/widgets/link/LinkWidget.d.ts +1 -2
  255. package/dist/_dts/editor-blocks/src/widgets/link/index.d.ts +1 -0
  256. package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +7 -3
  257. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
  258. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
  259. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -1
  260. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -1
  261. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeButton.d.ts +4 -0
  262. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +49 -0
  263. package/dist/_dts/preview-next/src/client/preview/SiteChromeEditableSurface.d.ts +6 -0
  264. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +3 -1
  265. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +1 -0
  266. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +18 -0
  267. package/dist/_dts/sdk/src/cli/commands/pull.d.ts +5 -0
  268. package/dist/_dts/sdk/src/cli/commands/push/execute/footer.d.ts +33 -0
  269. package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +2 -0
  270. package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +18 -0
  271. package/dist/_dts/sdk/src/cli/content/entryPaths.d.ts +6 -0
  272. package/dist/_dts/sdk/src/cli/content/writer.d.ts +2 -0
  273. package/dist/_dts/sdk/src/cli/env.d.ts +2 -1
  274. package/dist/_dts/sdk/src/cli/merge-remote/entryLocal.d.ts +3 -0
  275. package/dist/_dts/sdk/src/cli/merge-remote/entryMerge.d.ts +77 -0
  276. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePlan.d.ts +45 -0
  277. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePush.d.ts +22 -0
  278. package/dist/_dts/sdk/src/cli/merge-remote/entryMergeReport.d.ts +30 -0
  279. package/dist/_dts/sdk/src/cli/merge-remote/entryRemote.d.ts +9 -0
  280. package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +50 -0
  281. package/dist/_dts/sdk/src/cli/merge-remote/stableJson.d.ts +3 -0
  282. package/dist/_dts/sdk/src/cli/site-commands/commandKeys.d.ts +13 -0
  283. package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +114 -0
  284. package/dist/_dts/sdk/src/cli/site-commands/entryCommands.d.ts +63 -0
  285. package/dist/_dts/sdk/src/cli/site-commands/footerCommands.d.ts +50 -0
  286. package/dist/_dts/sdk/src/cli/site-commands/formCommands.d.ts +57 -0
  287. package/dist/_dts/sdk/src/cli/site-commands/index.d.ts +7 -0
  288. package/dist/_dts/sdk/src/cli/site-commands/navigationCommands.d.ts +57 -0
  289. package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +83 -0
  290. package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +83 -0
  291. package/dist/_dts/sdk/src/cli/sync/executor.d.ts +11 -28
  292. package/dist/_dts/sdk/src/cli/sync/index.d.ts +1 -1
  293. package/dist/_dts/sdk/src/config/dashboard-validation.d.ts +0 -48
  294. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  295. package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -0
  296. package/dist/_dts/sdk/src/version.d.ts +1 -1
  297. package/dist/_dts/site-commands/src/adapter.d.ts +23 -0
  298. package/dist/_dts/site-commands/src/capabilityGaps.d.ts +8 -0
  299. package/dist/_dts/site-commands/src/commands.d.ts +2341 -0
  300. package/dist/_dts/site-commands/src/domain.d.ts +104 -0
  301. package/dist/_dts/site-commands/src/exposure.d.ts +41 -0
  302. package/dist/_dts/site-commands/src/guards.d.ts +1 -0
  303. package/dist/_dts/site-commands/src/index.d.ts +10 -0
  304. package/dist/_dts/site-commands/src/metadata.d.ts +503 -0
  305. package/dist/_dts/site-commands/src/planner.d.ts +58 -0
  306. package/dist/_dts/site-commands/src/refContributions.d.ts +10 -0
  307. package/dist/_dts/site-commands/src/refs.d.ts +87 -0
  308. package/dist/_dts/site-commands/src/staticExecutionGaps.d.ts +10 -0
  309. package/dist/_dts/theme-core/src/palette/utils/index.d.ts +1 -0
  310. package/dist/_dts/theme-core/src/palette/utils/onColor.d.ts +2 -0
  311. package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +83 -0
  312. package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +2 -1
  313. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +89 -12
  314. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +8 -2
  315. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
  316. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +3 -2
  317. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +9 -6
  318. package/dist/_dts/ui/src/callout.d.ts +1 -1
  319. package/dist/cli/index.mjs +6446 -1220
  320. package/dist/cli/init-docs/content/cli-reference.md +18 -0
  321. package/dist/client/bookings.mjs +25 -25
  322. package/dist/client/client.mjs +3157 -2858
  323. package/dist/client/hooks.mjs +2608 -2326
  324. package/dist/client/rendering/client.mjs +505 -176
  325. package/dist/client/rendering/islands.mjs +18329 -13012
  326. package/dist/client/rendering.mjs +1204 -903
  327. package/dist/preview-next/before-render.mjs +84 -13
  328. package/dist/preview-next/client/runtime.mjs +3149 -2452
  329. package/dist/preview-next/middleware.mjs +84 -13
  330. package/dist/server/components.mjs +936 -631
  331. package/dist/server/config-validation.mjs +2838 -2556
  332. package/dist/server/config.mjs +2838 -2556
  333. package/dist/server/data.mjs +2608 -2326
  334. package/dist/server/index.mjs +676 -552
  335. package/dist/server/next.mjs +3043 -2738
  336. package/dist/server/page-converter.mjs +201 -51
  337. package/dist/server/prebuild.mjs +1 -1
  338. package/dist/server/rendering/server.mjs +936 -631
  339. package/dist/server/rendering.mjs +936 -631
  340. package/dist/server/routing.mjs +2701 -2426
  341. package/dist/server/server.mjs +2626 -2344
  342. package/dist/server/theme-bridge.mjs +169 -52
  343. package/package.json +2 -1
  344. package/dist/_dts/content-editor/src/ai/patch/allowed.d.ts +0 -2
  345. package/dist/_dts/content-editor/src/ai/patch/diff.d.ts +0 -17
  346. package/dist/_dts/content-editor/src/ai/patch/schema.d.ts +0 -49
  347. package/dist/_dts/path-utils/src/index.d.ts +0 -8
  348. package/dist/_dts/path-utils/src/redirectPaths.d.ts +0 -26
  349. package/dist/_dts/path-utils/src/safeAppPath.d.ts +0 -26
@@ -18,6 +18,6 @@ export type { BlockDraftSaveability, BlockDraftValidationIssue } from '@riverban
18
18
  export { applyManifestIssuesToForm } from './manifestIssues';
19
19
  export { BlockPickerDialog } from './block-editor/BlockPickerDialog';
20
20
  export { MediaField } from './media/MediaField';
21
- export * from './widgets';
21
+ export * from './widgets/index';
22
22
  export { createBlockFormLogger, setBlockFormLoggerFactory, setBlockFormAppLogger } from './block-form/debug';
23
23
  export type { BlockFormLogger } from './block-form/debug';
@@ -1,7 +1,7 @@
1
- export * from './button';
2
- export * from './content-type-select';
3
- export * from './entry-picker';
4
- export * from './icon-picker';
5
- export * from './link';
6
- export * from './reference';
7
- export * from './rich-text';
1
+ export * from './button/index';
2
+ export * from './content-type-select/index';
3
+ export * from './entry-picker/index';
4
+ export * from './icon-picker/index';
5
+ export * from './link/index';
6
+ export * from './reference/index';
7
+ export * from './rich-text/index';
@@ -3,7 +3,7 @@ import { type LinkValue } from '@riverbankcms/blocks';
3
3
  import type { RoutableContentItem } from '@riverbankcms/api/navigation';
4
4
  import type { SiteId } from '@riverbankcms/core';
5
5
  import type { LinkWidgetAdapters } from './types';
6
- type LinkWidgetProps = {
6
+ export type LinkWidgetProps = {
7
7
  siteId?: SiteId;
8
8
  value: LinkValue | null;
9
9
  onChange: (value: LinkValue | null) => void;
@@ -16,4 +16,3 @@ type LinkWidgetProps = {
16
16
  mode?: 'inline' | 'dialog';
17
17
  };
18
18
  export declare function LinkWidget({ siteId, value, onChange, disabled, initialItems, adapters, label, description, fieldPath, mode, }: LinkWidgetProps): import("react/jsx-runtime").JSX.Element;
19
- export {};
@@ -1,4 +1,5 @@
1
1
  export { LinkWidget } from './LinkWidget';
2
+ export type { LinkWidgetProps } from './LinkWidget';
2
3
  export { LinkPicker } from './LinkPicker';
3
4
  export { LinkPickerDialog } from './LinkPickerDialog';
4
5
  export { LinkSummary } from './LinkSummary';
@@ -1,5 +1,5 @@
1
1
  import type { BlockItem } from '@riverbankcms/editor-blocks';
2
- import type { PageDesignEditorReadModel } from '@riverbankcms/theme-core/site-styles/previewCompiler';
2
+ import type { PageDesignEditorReadModel, SurfaceResolutionContext } from '@riverbankcms/theme-core/site-styles/previewCompiler';
3
3
  import type { PreviewPageDesignEditorState } from '../preview/PageDesignEditorStateContext';
4
4
  import { type RuntimeContentDecorationProjection } from './previewProjection';
5
5
  export type RuntimePreviewSource = Readonly<{
@@ -7,9 +7,13 @@ export type RuntimePreviewSource = Readonly<{
7
7
  }> | Readonly<{
8
8
  kind: 'apply-editor-model';
9
9
  editorModel: PageDesignEditorReadModel;
10
+ surfaceResolutionContext: SurfaceResolutionContext;
10
11
  }>;
11
12
  export declare function applyPageDesignRuntimeFieldsToBlockItems(blockItems: readonly BlockItem[], source: RuntimePreviewSource): BlockItem[];
12
13
  export declare function applyPageDesignRuntimeFieldsToBlockContent(block: BlockItem, content: Record<string, unknown> | null, source: RuntimePreviewSource): Record<string, unknown> | null;
13
- export declare function buildPageDesignRuntimeFieldsByBlockId(editorModel: PageDesignEditorReadModel): RuntimeContentDecorationProjection['fieldsByBlockId'];
14
+ export declare function buildPageDesignRuntimeFieldsByBlockId(editorModel: PageDesignEditorReadModel, surfaceResolutionContext: SurfaceResolutionContext): RuntimeContentDecorationProjection['fieldsByBlockId'];
14
15
  export declare function pageDesignRuntimeProjectionFromSource(source: RuntimePreviewSource): RuntimeContentDecorationProjection | null;
15
- export declare function resolveRuntimePreviewSource(pageDesignState: PreviewPageDesignEditorState): RuntimePreviewSource;
16
+ export declare function resolveRuntimePreviewSource(input: Readonly<{
17
+ pageDesignState: PreviewPageDesignEditorState;
18
+ surfaceResolutionContext: SurfaceResolutionContext | null;
19
+ }>): RuntimePreviewSource;
@@ -1,5 +1,5 @@
1
1
  import type { BlockItem } from '@riverbankcms/editor-blocks';
2
- import { type PageDesignEditorReadModel } from '@riverbankcms/theme-core/site-styles/previewCompiler';
2
+ import { type PageDesignEditorReadModel, type SurfaceResolutionContext } from '@riverbankcms/theme-core/site-styles/previewCompiler';
3
3
  import type { CanonicalBlockContent, PreviewRenderContent, RuntimeContentDecorationProjection } from './types';
4
- export declare function runtimeContentDecorationProjectionFromEditorModel(editorModel: PageDesignEditorReadModel): RuntimeContentDecorationProjection;
4
+ export declare function runtimeContentDecorationProjectionFromEditorModel(editorModel: PageDesignEditorReadModel, surfaceResolutionContext: SurfaceResolutionContext): RuntimeContentDecorationProjection;
5
5
  export declare function applyRuntimeContentDecorationProjection(block: BlockItem, content: CanonicalBlockContent | PreviewRenderContent | null, projection: RuntimeContentDecorationProjection): PreviewRenderContent;
@@ -33,6 +33,7 @@ export type PreviewEditorSidebarProps = {
33
33
  theme?: Theme | null;
34
34
  themeId?: string | null;
35
35
  themeSelectionId?: string | null;
36
+ themeSelectionUpdatedAt?: string | null;
36
37
  /** Persisted Style configurator selections (Phase C / E). */
37
38
  themeSelectionButtonPersonalityId?: ButtonPersonalityId | null;
38
39
  themeSelectionPaletteVariantId?: PaletteVariantId | null;
@@ -63,4 +64,4 @@ export type PreviewEditorSidebarProps = {
63
64
  onViewportWidthChange: (width: ViewportWidth) => void;
64
65
  onZoomChange: (zoom: ZoomLevel) => void;
65
66
  };
66
- export declare function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, theme, themeId, themeSelectionId, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, designRowRequest, apiClient, bearerToken, supabaseUrl, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, siteStyleAccess, activeTab, onTabChange, onClose, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: PreviewEditorSidebarProps): import("react/jsx-runtime").JSX.Element;
67
+ export declare function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, theme, themeId, themeSelectionId, themeSelectionUpdatedAt, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, designRowRequest, apiClient, bearerToken, supabaseUrl, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, siteStyleAccess, activeTab, onTabChange, onClose, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: PreviewEditorSidebarProps): import("react/jsx-runtime").JSX.Element;
@@ -34,6 +34,7 @@ export type PreviewShellProps = {
34
34
  theme: Theme;
35
35
  themeId?: string | null;
36
36
  themeSelectionId?: string | null;
37
+ themeSelectionUpdatedAt?: string | null;
37
38
  /**
38
39
  * Persisted Style configurator selections. Forwarded into StyleConfigurator
39
40
  * so reload renders the user's saved button personality, palette variant,
@@ -67,7 +68,7 @@ export type PreviewShellProps = {
67
68
  designEditorEligibility?: PreviewDesignEditorEligibility;
68
69
  baseFetch?: BaseFetch;
69
70
  };
70
- export declare function PreviewShell({ children, apiBaseUrl, blockApiConfig, siteId, siteSlug, editableId, previewSession, previewToken, dashboardBaseUrl, surfaceId, theme, themeId, themeSelectionId, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, pageId, routeId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, initialStatus, initialBlocks, pageMetadata, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, supabaseUrl, useThemeScope, designEditorEligibility, baseFetch, }: PreviewShellProps): import("react/jsx-runtime").JSX.Element;
71
+ export declare function PreviewShell({ children, apiBaseUrl, blockApiConfig, siteId, siteSlug, editableId, previewSession, previewToken, dashboardBaseUrl, surfaceId, theme, themeId, themeSelectionId, themeSelectionUpdatedAt, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, pageId, routeId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, initialStatus, initialBlocks, pageMetadata, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, supabaseUrl, useThemeScope, designEditorEligibility, baseFetch, }: PreviewShellProps): import("react/jsx-runtime").JSX.Element;
71
72
  export declare function defaultDesignEditorEligibility(input: Readonly<{
72
73
  pageId: string | null;
73
74
  entryData?: PreviewContentEntryData | null;
@@ -25,6 +25,7 @@ export type PreviewShellLayoutProps = {
25
25
  bearerToken?: string | null;
26
26
  themeId?: string | null;
27
27
  themeSelectionId?: string | null;
28
+ themeSelectionUpdatedAt?: string | null;
28
29
  themeSelectionButtonPersonalityId?: ButtonPersonalityId | null;
29
30
  themeSelectionPaletteVariantId?: PaletteVariantId | null;
30
31
  themeSelectionPaletteOverrides?: PaletteOverrides | null;
@@ -42,4 +43,4 @@ export type PreviewShellLayoutProps = {
42
43
  useThemeScope?: boolean;
43
44
  siteStyleAccess?: SiteStyleAccess;
44
45
  };
45
- export declare function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, apiClient, bearerToken, themeId, themeSelectionId, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, supabaseUrl, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, useThemeScope, siteStyleAccess, }: PreviewShellLayoutProps): import("react/jsx-runtime").JSX.Element;
46
+ export declare function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, apiClient, bearerToken, themeId, themeSelectionId, themeSelectionUpdatedAt, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, supabaseUrl, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, useThemeScope, siteStyleAccess, }: PreviewShellLayoutProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ import type { SiteChromeEditableSurfaceKind } from './SiteChromeEditableSurface';
2
+ export declare function SiteChromeCustomizeButton({ surface, }: {
3
+ surface: SiteChromeEditableSurfaceKind;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,49 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { ApiClient } from '@riverbankcms/api/request';
3
+ import type { Theme } from '@riverbankcms/blocks';
4
+ import type { ButtonPersonalityId } from '@riverbankcms/theme-core/buttons';
5
+ import type { PaletteOverrides, PaletteVariantId } from '@riverbankcms/theme-core/palette';
6
+ import type { FooterLookId, FooterSelectionContext, HeaderLookId, HeaderSelectionContext } from '@riverbankcms/theme-core/site-styles';
7
+ import type { SiteStyleAccess } from './siteStyleAccess';
8
+ import { type SiteChromeLookOption } from './siteChromeLookRows';
9
+ import type { SiteChromeEditableSurfaceKind } from './SiteChromeEditableSurface';
10
+ type SiteChromeCustomizeSurfaceState = Readonly<{
11
+ kind: 'unavailable';
12
+ }> | Readonly<{
13
+ kind: 'available';
14
+ label: string;
15
+ currentId: HeaderLookId | FooterLookId | null;
16
+ currentLabel: string;
17
+ options: readonly SiteChromeLookOption<HeaderLookId | FooterLookId | null>[];
18
+ diagnostics: readonly string[];
19
+ saving: boolean;
20
+ failure: string | null;
21
+ applyAllowed: boolean;
22
+ }>;
23
+ type SiteChromeCustomizeContextValue = Readonly<{
24
+ getSurfaceState: (surface: SiteChromeEditableSurfaceKind) => SiteChromeCustomizeSurfaceState;
25
+ cycleSurfaceLook: (surface: SiteChromeEditableSurfaceKind, direction: 'prev' | 'next') => void;
26
+ }>;
27
+ export type SiteChromeCustomizeProviderProps = Readonly<{
28
+ children: ReactNode;
29
+ siteId: string;
30
+ apiClient: ApiClient;
31
+ theme?: Theme | null;
32
+ themeId?: string | null;
33
+ selectionId?: string | null;
34
+ selectionUpdatedAt?: string | null;
35
+ initialSelections: Readonly<{
36
+ selectionUpdatedAt?: string | null;
37
+ buttonPersonalityId: ButtonPersonalityId | null;
38
+ paletteVariantId: PaletteVariantId | null;
39
+ paletteOverrides: PaletteOverrides | null;
40
+ headerLookId?: HeaderLookId | null;
41
+ footerLookId?: FooterLookId | null;
42
+ }>;
43
+ headerSelectionContext?: Partial<HeaderSelectionContext>;
44
+ footerSelectionContext?: Partial<FooterSelectionContext>;
45
+ siteStyleAccess?: SiteStyleAccess;
46
+ }>;
47
+ export declare function SiteChromeCustomizeProvider({ children, siteId, apiClient, theme, themeId, selectionId, selectionUpdatedAt, initialSelections, headerSelectionContext, footerSelectionContext, siteStyleAccess, }: SiteChromeCustomizeProviderProps): import("react/jsx-runtime").JSX.Element;
48
+ export declare function useSiteChromeCustomizeOptional(): SiteChromeCustomizeContextValue | null;
49
+ export {};
@@ -0,0 +1,6 @@
1
+ import { default as React, type ReactNode } from 'react';
2
+ export type SiteChromeEditableSurfaceKind = 'header' | 'footer';
3
+ export declare function SiteChromeEditableSurface({ surface, children, }: {
4
+ surface: SiteChromeEditableSurfaceKind;
5
+ children: ReactNode;
6
+ }): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
@@ -11,8 +11,10 @@ export type StyleConfiguratorProps = Readonly<{
11
11
  theme?: Theme | null;
12
12
  themeId?: string | null;
13
13
  selectionId?: string | null;
14
+ selectionUpdatedAt?: string | null;
14
15
  /** Server-persisted design selections. */
15
16
  initialSelections: Readonly<{
17
+ selectionUpdatedAt?: string | null;
16
18
  buttonPersonalityId: ButtonPersonalityId | null;
17
19
  paletteVariantId: PaletteVariantId | null;
18
20
  paletteOverrides: PaletteOverrides | null;
@@ -28,4 +30,4 @@ export type StyleConfiguratorProps = Readonly<{
28
30
  }> | null;
29
31
  siteStyleAccess: VisibleSiteStyleAccess;
30
32
  }>;
31
- export declare function StyleConfigurator({ siteId, apiClient, theme, themeId, selectionId, initialSelections, headerSelectionContext, footerSelectionContext, expandedRowRequest, siteStyleAccess, }: StyleConfiguratorProps): import("react/jsx-runtime").JSX.Element;
33
+ export declare function StyleConfigurator({ siteId, apiClient, theme, themeId, selectionId, selectionUpdatedAt, initialSelections, headerSelectionContext, footerSelectionContext, expandedRowRequest, siteStyleAccess, }: StyleConfiguratorProps): import("react/jsx-runtime").JSX.Element;
@@ -38,6 +38,7 @@ export type StyleConfiguratorNotice = Readonly<{
38
38
  }>;
39
39
  export type SelectionSnapshot = Readonly<{
40
40
  siteStyleId: SiteStyleId;
41
+ selectionUpdatedAt?: string | null;
41
42
  headerLookId: HeaderLookId | null;
42
43
  footerLookId: FooterLookId | null;
43
44
  buttonPersonalityId: ButtonPersonalityId;
@@ -0,0 +1,18 @@
1
+ import type { Theme } from '@riverbankcms/blocks';
2
+ import type { ButtonPersonalityId } from '@riverbankcms/theme-core/buttons';
3
+ import type { PaletteOverrides, PaletteVariantId } from '@riverbankcms/theme-core/palette';
4
+ import type { FooterLookId, FooterSelectionContext, HeaderLookId, HeaderSelectionContext } from '@riverbankcms/theme-core/site-styles';
5
+ import type { SelectionSnapshot } from './StyleConfigurator.state';
6
+ export declare function resolveStyleConfiguratorInitialSnapshot(input: Readonly<{
7
+ theme?: Theme | null;
8
+ initialSelections: Readonly<{
9
+ selectionUpdatedAt?: string | null;
10
+ buttonPersonalityId: ButtonPersonalityId | null;
11
+ paletteVariantId: PaletteVariantId | null;
12
+ paletteOverrides: PaletteOverrides | null;
13
+ headerLookId?: HeaderLookId | null;
14
+ footerLookId?: FooterLookId | null;
15
+ }>;
16
+ headerSelectionContext?: Partial<HeaderSelectionContext>;
17
+ footerSelectionContext?: Partial<FooterSelectionContext>;
18
+ }>): SelectionSnapshot | null;
@@ -16,6 +16,11 @@
16
16
  */
17
17
  import { Command } from 'commander';
18
18
  import type { PulledContent } from '../../client/management';
19
+ import type { EntryBaseSnapshotTarget } from '../merge-remote/entrySnapshots';
20
+ export declare function entryBaseSnapshotTargetForPull(input: Readonly<{
21
+ isRemote: boolean;
22
+ siteId: string;
23
+ }>): EntryBaseSnapshotTarget;
19
24
  export declare function createScopedPullContent(meta: PulledContent['meta'], overrides: Partial<Omit<PulledContent, 'meta'>>): PulledContent;
20
25
  /**
21
26
  * Determines whether the pull command should prompt for overwrite confirmation.
@@ -0,0 +1,33 @@
1
+ import type { EnvTarget } from '../../../helpers';
2
+ import type { OutputContext } from '../../../output';
3
+ import { type FooterDiff } from '../../../sync/diff';
4
+ import type { PushOptions } from '../options';
5
+ export type FooterPushExecutionResult = Readonly<{
6
+ success: boolean;
7
+ }>;
8
+ type FooterPushDecision = Readonly<{
9
+ kind: 'unchanged';
10
+ }> | Readonly<{
11
+ kind: 'dry-run';
12
+ diff: FooterDiff;
13
+ }> | Readonly<{
14
+ kind: 'apply';
15
+ diff: FooterDiff;
16
+ }>;
17
+ export declare function footerPushDecision(diff: FooterDiff | null, dryRun: boolean): FooterPushDecision;
18
+ export declare function footerDryRunPayload(diff: FooterDiff): Readonly<{
19
+ kind: 'push';
20
+ scope: 'footer';
21
+ dryRun: true;
22
+ changes: readonly string[];
23
+ }>;
24
+ export declare function executeFooterPush(input: Readonly<{
25
+ output: OutputContext;
26
+ target: EnvTarget;
27
+ options: PushOptions & {
28
+ dryRun: boolean;
29
+ };
30
+ jsonOutput: boolean;
31
+ skipMeta: boolean;
32
+ }>): Promise<FooterPushExecutionResult>;
33
+ export {};
@@ -16,6 +16,8 @@ export interface PushOptions {
16
16
  deleteOrphaned?: boolean;
17
17
  /** Automatically pull stale content and retry push instead of aborting */
18
18
  autoPullStale?: boolean;
19
+ /** Use three-way merge bases to preserve remote entry edits during entries pushes */
20
+ mergeRemote?: boolean;
19
21
  /** Skip writing .meta/*.json and media/.manifest.json (Commander --no-meta sets this to false) */
20
22
  meta?: boolean;
21
23
  /** Show human-readable field-level diff (requires --dry-run) */
@@ -2,9 +2,26 @@ import { type EnvTarget } from '../helpers';
2
2
  import type { OutputContext } from '../output';
3
3
  import { type JsonDiffMode } from '../sync';
4
4
  import type { PushOptions } from './push/options';
5
+ import { type PushScope } from './push/consts';
5
6
  export interface PushExecutionResult {
6
7
  success: boolean;
7
8
  }
9
+ type MergeRemoteValidationInput = Readonly<{
10
+ target: EnvTarget;
11
+ pushScope: PushScope;
12
+ contentType?: string;
13
+ identifier?: string;
14
+ force: boolean;
15
+ deleteOrphaned: boolean;
16
+ autoPullStale: boolean;
17
+ }>;
18
+ type MergeRemoteValidationError = Readonly<{
19
+ message: string;
20
+ details: Readonly<{
21
+ suggestion: string;
22
+ }>;
23
+ }>;
24
+ export declare function validateMergeRemoteEntryPushOptions(input: MergeRemoteValidationInput): MergeRemoteValidationError | null;
8
25
  /**
9
26
  * Execute push for a single environment.
10
27
  * Extracted to support --env=both multi-environment operations.
@@ -15,3 +32,4 @@ export declare function executePushForEnv(output: OutputContext, target: EnvTarg
15
32
  }, globalOpts: {
16
33
  json?: boolean;
17
34
  }): Promise<PushExecutionResult>;
35
+ export {};
@@ -0,0 +1,6 @@
1
+ export declare function entryTypeDirPath(contentDir: string, contentType: string): string;
2
+ export declare function entryFilePath(input: Readonly<{
3
+ contentDir: string;
4
+ contentType: string;
5
+ identifier: string;
6
+ }>): string;
@@ -5,9 +5,11 @@
5
5
  */
6
6
  import type { PulledEntries, PulledPages, PulledNavigation, PulledSettings, PulledForms, PulledTheme, PulledFooter, PulledVenues, PulledEventCategories, PulledEvents, PulledCourses } from '../../client/management/types';
7
7
  import type { Theme } from '../../contracts';
8
+ import type { EntryBaseSnapshotTarget } from '../merge-remote/entrySnapshots';
8
9
  export interface WriterOptions {
9
10
  skipMeta?: boolean;
10
11
  cleanupMissing?: boolean;
12
+ entryBaseSnapshot?: EntryBaseSnapshotTarget;
11
13
  }
12
14
  /**
13
15
  * Write entries to content directory
@@ -3,12 +3,13 @@
3
3
  *
4
4
  * Loads and validates environment variables for SDK CLI commands.
5
5
  */
6
+ import { type SiteId } from '@riverbankcms/core';
6
7
  /**
7
8
  * SDK environment configuration
8
9
  */
9
10
  export interface SdkEnvironment {
10
11
  /** Site ID to operate on */
11
- siteId: string;
12
+ siteId: SiteId;
12
13
  /** Dashboard URL (e.g., http://localhost:4000) */
13
14
  dashboardUrl: string;
14
15
  /** Management API key (bld_mgmt_sk_...) */
@@ -0,0 +1,3 @@
1
+ import type { PulledEntries } from '../../client/management/types';
2
+ import type { LocalEntry } from '../content/reader';
3
+ export declare function pulledEntryToLocalEntry(entry: PulledEntries['entries'][number]): LocalEntry;
@@ -0,0 +1,77 @@
1
+ import type { LocalEntry } from '../content/reader';
2
+ export type EntryMergeSubject = Readonly<{
3
+ contentType: string;
4
+ identifier: string;
5
+ }>;
6
+ export type EntryMergeInputs = Readonly<{
7
+ subject: EntryMergeSubject;
8
+ base: LocalEntry | null;
9
+ local: LocalEntry | null;
10
+ remote: LocalEntry | null;
11
+ }>;
12
+ export type EntryMergeConflict = Readonly<{
13
+ code: 'missing_base';
14
+ subject: EntryMergeSubject;
15
+ message: string;
16
+ }> | Readonly<{
17
+ code: 'same_field_changed';
18
+ subject: EntryMergeSubject;
19
+ fieldPath: string;
20
+ message: string;
21
+ }> | Readonly<{
22
+ code: 'local_delete_remote_edit';
23
+ subject: EntryMergeSubject;
24
+ message: string;
25
+ }> | Readonly<{
26
+ code: 'remote_delete_local_edit';
27
+ subject: EntryMergeSubject;
28
+ message: string;
29
+ }> | Readonly<{
30
+ code: 'unsupported_nested_merge';
31
+ subject: EntryMergeSubject;
32
+ fieldPath: string;
33
+ message: string;
34
+ }>;
35
+ export type EntryMergeDecision = Readonly<{
36
+ kind: 'unchanged';
37
+ subject: EntryMergeSubject;
38
+ desired: LocalEntry | null;
39
+ }> | Readonly<{
40
+ kind: 'bootstrap_base';
41
+ subject: EntryMergeSubject;
42
+ desired: LocalEntry;
43
+ }> | Readonly<{
44
+ kind: 'preserve_remote';
45
+ subject: EntryMergeSubject;
46
+ desired: LocalEntry | null;
47
+ }> | Readonly<{
48
+ kind: 'apply_local_create' | 'apply_local_update';
49
+ subject: EntryMergeSubject;
50
+ desired: LocalEntry;
51
+ }> | Readonly<{
52
+ kind: 'apply_local_delete';
53
+ subject: EntryMergeSubject;
54
+ desired: null;
55
+ }> | Readonly<{
56
+ kind: 'auto_merge';
57
+ subject: EntryMergeSubject;
58
+ desired: LocalEntry;
59
+ localFieldPaths: readonly string[];
60
+ remoteFieldPaths: readonly string[];
61
+ }> | Readonly<{
62
+ kind: 'conflict';
63
+ subject: EntryMergeSubject;
64
+ conflict: EntryMergeConflict;
65
+ }>;
66
+ export type ComparableEntry = Readonly<{
67
+ identifier: string;
68
+ slug?: string;
69
+ status?: LocalEntry['status'];
70
+ hasUnpublishedChanges?: boolean;
71
+ data: Readonly<Record<string, unknown>>;
72
+ }>;
73
+ export type ComparableEntryContent = Pick<ComparableEntry, 'identifier' | 'slug' | 'data'>;
74
+ export declare function planEntryMerge(input: EntryMergeInputs): EntryMergeDecision;
75
+ export declare function comparableEntry(entry: LocalEntry | null): ComparableEntry | null;
76
+ export declare function comparableEntryContent(entry: LocalEntry | null): ComparableEntryContent | null;
77
+ export declare function entryContentsEqual(left: LocalEntry | null, right: LocalEntry | null): boolean;
@@ -0,0 +1,45 @@
1
+ import type { PulledEntries } from '../../client/management/types';
2
+ import type { LocalEntry } from '../content/reader';
3
+ import { type EntryBaseSnapshotTarget } from './entrySnapshots';
4
+ import { type EntryMergeDecision } from './entryMerge';
5
+ export type EntryMergePushScope = Readonly<{
6
+ kind: 'all_entries';
7
+ }> | Readonly<{
8
+ kind: 'content_type';
9
+ contentType: string;
10
+ }> | Readonly<{
11
+ kind: 'single_entry';
12
+ contentType: string;
13
+ identifier: string;
14
+ }>;
15
+ export type RemoteEntryMergePlan = Readonly<{
16
+ scope: EntryMergePushScope;
17
+ decisions: readonly EntryMergeDecision[];
18
+ summary: RemoteEntryMergePlanSummary;
19
+ }>;
20
+ export type RemoteEntryMergePlanSummary = Readonly<{
21
+ unchanged: number;
22
+ bootstrapBase: number;
23
+ preserveRemote: number;
24
+ applyLocalCreate: number;
25
+ applyLocalUpdate: number;
26
+ applyLocalDelete: number;
27
+ autoMerge: number;
28
+ conflicts: number;
29
+ }>;
30
+ export type RemoteEntryMergePlanInput = Readonly<{
31
+ contentDir: string;
32
+ target: EntryBaseSnapshotTarget;
33
+ scope: EntryMergePushScope;
34
+ localEntries: ReadonlyMap<string, readonly LocalEntry[]>;
35
+ remoteEntries: RemoteEntriesByType;
36
+ }>;
37
+ export type RemoteEntriesByType = ReadonlyMap<string, ReadonlyArray<PulledEntries['entries'][number]>>;
38
+ export declare function buildRemoteEntryMergePlan(input: RemoteEntryMergePlanInput): Promise<RemoteEntryMergePlan>;
39
+ export declare function summarizeEntryMergeDecisions(decisions: readonly EntryMergeDecision[]): RemoteEntryMergePlanSummary;
40
+ export declare function entryMergePushScope(input: Readonly<{
41
+ contentType?: string;
42
+ identifier?: string;
43
+ }>): EntryMergePushScope;
44
+ export declare function remotePulledEntriesByType(entries: Readonly<Record<string, PulledEntries['entries']>>): RemoteEntriesByType;
45
+ export declare function pulledEntriesToRemoteByType(contentType: string, entries: PulledEntries['entries']): RemoteEntriesByType;
@@ -0,0 +1,22 @@
1
+ import { type SiteId } from '@riverbankcms/core';
2
+ import type { ManagementClient } from '../../client/management/types';
3
+ import type { LocalEntry } from '../content/reader';
4
+ import type { EnvTarget } from '../helpers';
5
+ import type { OutputContext } from '../output';
6
+ export type RemoteEntryMergePushResult = Readonly<{
7
+ success: boolean;
8
+ }>;
9
+ export declare function planAndReportRemoteEntryMerge(input: Readonly<{
10
+ output: OutputContext;
11
+ client: Pick<ManagementClient, 'entries' | 'pull'>;
12
+ contentDir: string;
13
+ target: EnvTarget;
14
+ siteId: SiteId;
15
+ contentType?: string;
16
+ identifier?: string;
17
+ localEntries: ReadonlyMap<string, readonly LocalEntry[]>;
18
+ dryRun: boolean;
19
+ jsonOutput: boolean;
20
+ jsonDiff: boolean;
21
+ skipMeta: boolean;
22
+ }>): Promise<RemoteEntryMergePushResult>;
@@ -0,0 +1,30 @@
1
+ import type { OutputContext } from '../output';
2
+ import type { EntryMergeConflict, EntryMergeDecision } from './entryMerge';
3
+ import type { RemoteEntryMergePlan } from './entryMergePlan';
4
+ export type RemoteEntryMergeJsonReport = Readonly<{
5
+ kind: 'push';
6
+ scope: 'entries';
7
+ mergeRemote: true;
8
+ dryRun: boolean;
9
+ summary: RemoteEntryMergePlan['summary'];
10
+ decisions: readonly RemoteEntryMergeDecisionReport[];
11
+ }>;
12
+ export type RemoteEntryMergeDecisionReport = Readonly<{
13
+ kind: EntryMergeDecision['kind'];
14
+ contentType: string;
15
+ identifier: string;
16
+ localFieldPaths?: readonly string[];
17
+ remoteFieldPaths?: readonly string[];
18
+ conflict?: Readonly<{
19
+ code: EntryMergeConflict['code'];
20
+ fieldPath?: string;
21
+ message: string;
22
+ }>;
23
+ }>;
24
+ export declare function remoteEntryMergeJsonReport(input: Readonly<{
25
+ plan: RemoteEntryMergePlan;
26
+ dryRun: boolean;
27
+ }>): RemoteEntryMergeJsonReport;
28
+ export declare function writeRemoteEntryMergeHumanReport(output: Pick<OutputContext, 'info'>, plan: RemoteEntryMergePlan, options: Readonly<{
29
+ dryRun: boolean;
30
+ }>): void;
@@ -0,0 +1,9 @@
1
+ import type { ManagementClient, PulledEntries } from '../../client/management/types';
2
+ import type { OutputContext } from '../output';
3
+ import { type EntryMergePushScope, type RemoteEntriesByType } from './entryMergePlan';
4
+ export declare function fetchRemoteEntriesForMerge(input: Readonly<{
5
+ client: Pick<ManagementClient, 'pull'>;
6
+ scope: EntryMergePushScope;
7
+ output: Pick<OutputContext, 'info' | 'warn'>;
8
+ }>): Promise<RemoteEntriesByType>;
9
+ export declare function fetchRemotePulledEntriesForContentType(client: Pick<ManagementClient, 'pull'>, contentType: string, output: Pick<OutputContext, 'info'>): Promise<PulledEntries>;
@@ -0,0 +1,50 @@
1
+ import type { PulledEntries } from '../../client/management/types';
2
+ import type { EnvTarget } from '../helpers';
3
+ import type { LocalEntry } from '../content/reader';
4
+ export type EntryBaseSnapshotTarget = Readonly<{
5
+ env: EnvTarget;
6
+ siteId: string;
7
+ }>;
8
+ export type EntryBaseSnapshotSubject = Readonly<{
9
+ contentType: string;
10
+ identifier: string;
11
+ }>;
12
+ export type EntryBaseSnapshot = Readonly<{
13
+ version: 'entry-base.v1';
14
+ target: Readonly<{
15
+ env: EnvTarget;
16
+ siteIdHash: string;
17
+ }>;
18
+ subject: EntryBaseSnapshotSubject;
19
+ pulledAt: string;
20
+ remoteVersion: Readonly<{
21
+ createdAt?: string;
22
+ updatedAt?: string;
23
+ publishedAt?: string | null;
24
+ }>;
25
+ entry: LocalEntry;
26
+ }>;
27
+ export type WriteEntryBaseSnapshotsInput = Readonly<{
28
+ contentDir: string;
29
+ target: EntryBaseSnapshotTarget;
30
+ contentType: string;
31
+ entries: PulledEntries['entries'];
32
+ meta: PulledEntries['meta'];
33
+ cleanupMissing?: boolean;
34
+ }>;
35
+ export type WriteEntryBaseSnapshotsResult = Readonly<{
36
+ rootDir: string;
37
+ count: number;
38
+ }>;
39
+ export declare function entryBaseSnapshotRoot(contentDir: string): string;
40
+ export declare function entryBaseSnapshotPath(input: Readonly<{
41
+ contentDir: string;
42
+ target: EntryBaseSnapshotTarget;
43
+ subject: EntryBaseSnapshotSubject;
44
+ }>): string;
45
+ export declare function writeEntryBaseSnapshots(input: WriteEntryBaseSnapshotsInput): Promise<WriteEntryBaseSnapshotsResult>;
46
+ export declare function readEntryBaseSnapshot(input: Readonly<{
47
+ contentDir: string;
48
+ target: EntryBaseSnapshotTarget;
49
+ subject: EntryBaseSnapshotSubject;
50
+ }>): Promise<EntryBaseSnapshot | null>;
@@ -0,0 +1,3 @@
1
+ export declare function stableStringify(value: unknown): string;
2
+ export declare function sortValue(value: unknown): unknown;
3
+ export declare function sortRecord(record: Record<string, unknown>): Record<string, unknown>;
@@ -0,0 +1,13 @@
1
+ import type { Brand } from '@riverbankcms/core';
2
+ export type CliContentTypeKey = Brand<string, 'SdkCliContentTypeKey'>;
3
+ export type CliEntryIdentifier = Brand<string, 'SdkCliEntryIdentifier'>;
4
+ export type CliPageIdentifier = Brand<string, 'SdkCliPageIdentifier'>;
5
+ export type CliBlockIdentifier = Brand<string, 'SdkCliBlockIdentifier'>;
6
+ export type CliFormSlug = Brand<string, 'SdkCliFormSlug'>;
7
+ export type CliNavigationMenuName = Brand<string, 'SdkCliNavigationMenuName'>;
8
+ export declare const asCliContentTypeKey: (value: string) => CliContentTypeKey;
9
+ export declare const asCliEntryIdentifier: (value: string) => CliEntryIdentifier;
10
+ export declare const asCliPageIdentifier: (value: string) => CliPageIdentifier;
11
+ export declare const asCliBlockIdentifier: (value: string) => CliBlockIdentifier;
12
+ export declare const asCliFormSlug: (value: string) => CliFormSlug;
13
+ export declare const asCliNavigationMenuName: (value: string) => CliNavigationMenuName;