@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
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import type { FieldConfig } from '../fields/types';
3
+ /**
4
+ * Context passed to a field preview resolver, providing access to sibling field values.
5
+ */
6
+ export type FieldPreviewResolverCallContext = {
7
+ getSiblingValue: (fieldId: string) => unknown;
8
+ };
9
+ /**
10
+ * Resolve a stored field value to a preview value consumable by UI widgets.
11
+ *
12
+ * For repeater thumbnails, resolvers can return media-like objects
13
+ * (e.g. `{ type: 'image', src: '...' }`) for field types that do not store media directly.
14
+ */
15
+ export type FieldPreviewResolver = (value: unknown, fieldConfig: FieldConfig, context: FieldPreviewResolverCallContext) => Promise<unknown | null>;
16
+ /**
17
+ * Map of field type to preview resolver.
18
+ */
19
+ export type FieldPreviewResolverMap = Partial<Record<FieldConfig['type'], FieldPreviewResolver>>;
20
+ /**
21
+ * Provides field preview resolvers to descendant components.
22
+ */
23
+ export declare function FieldPreviewResolverProvider({ resolvers, children, }: {
24
+ resolvers: FieldPreviewResolverMap;
25
+ children: React.ReactNode;
26
+ }): import("react/jsx-runtime").JSX.Element;
27
+ /**
28
+ * Access the field preview resolver map.
29
+ */
30
+ export declare function useFieldPreviewResolvers(): FieldPreviewResolverMap;
@@ -0,0 +1 @@
1
+ export { ImageResolveContextProvider, useImageResolveContextOptional, } from '@riverbankcms/blocks/client';
@@ -0,0 +1,4 @@
1
+ export { BlockContextProvider, useBlockContext, type BlockContextValue, type BlockContextProviderProps, } from './BlockContext';
2
+ export { DisplayLabelResolverProvider, useDisplayLabelResolvers, type DisplayLabelResolver, type DisplayLabelResolverMap, type ResolverCallContext, } from './DisplayLabelResolverContext';
3
+ export { FieldPreviewResolverProvider, useFieldPreviewResolvers, type FieldPreviewResolver, type FieldPreviewResolverMap, type FieldPreviewResolverCallContext, } from './FieldPreviewResolverContext';
4
+ export { ImageResolveContextProvider, useImageResolveContextOptional, } from './ImageResolveContext';
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Widget Props Types
3
+ *
4
+ * Runtime props for field widgets - combines field config with runtime context
5
+ */
6
+ import type { ComponentType, ReactNode } from 'react';
7
+ import type { FormBackend } from '../backend/types';
8
+ import type { FieldConfig } from './types';
9
+ /**
10
+ * Function for rendering child fields (used by container widgets like GroupField/RepeaterField)
11
+ */
12
+ export type RenderChildField = (childConfig: FieldConfig, childPath: string) => ReactNode;
13
+ /**
14
+ * Props for field widget components
15
+ *
16
+ * @template TValue - The type of value this field manages
17
+ * @template TConfig - The specific field config type (e.g., TextFieldConfig, GroupFieldConfig)
18
+ */
19
+ export interface FieldWidgetProps<TValue = unknown, TConfig extends FieldConfig = FieldConfig> {
20
+ /** Runtime path to this field (e.g., 'title', 'items.0.name') */
21
+ path: string;
22
+ /** Form backend for reading/writing values */
23
+ backend: FormBackend;
24
+ /** Field configuration (pure definition) */
25
+ config: TConfig;
26
+ /** Function to render child fields (required for container widgets like group/repeater) */
27
+ renderChild?: RenderChildField;
28
+ }
29
+ /**
30
+ * Type for field widget components
31
+ *
32
+ * Widgets are strongly typed with specific config types (TextFieldConfig, etc.) for
33
+ * type safety within their implementation. At the registry boundary, type assertions
34
+ * are used to store them in a homogeneous collection (see registry/widgets.ts).
35
+ *
36
+ * This is safe because:
37
+ * 1. The field.type discriminant ensures the correct widget is selected
38
+ * 2. Each widget receives its expected config subtype at runtime
39
+ * 3. The type system prevents accessing properties that don't exist on BaseFieldConfig
40
+ */
41
+ export type FieldWidgetComponent<TValue = unknown, TConfig extends FieldConfig = FieldConfig> = ComponentType<FieldWidgetProps<TValue, TConfig>>;
42
+ /**
43
+ * Widget registry - maps field type strings to their components
44
+ *
45
+ * This is a heterogeneous collection where each widget has different type parameters,
46
+ * stored with a common base type for lookup. See registry/widgets.ts for implementation.
47
+ */
48
+ export type WidgetRegistry = Record<string, FieldWidgetComponent>;
@@ -0,0 +1,223 @@
1
+ /**
2
+ * Field Configuration Types
3
+ *
4
+ * Pure field definitions independent of how they're created (manifest, manual, etc.)
5
+ * These types describe what a field IS, not where it came from.
6
+ *
7
+ * FieldConfig types are structurally compatible with FieldDefinition from @riverbankcms/blocks,
8
+ * allowing manifest fields to be passed through with minimal transformation.
9
+ */
10
+ import type { FieldDefinition } from '@riverbankcms/blocks';
11
+ import type { ZodTypeAny } from 'zod';
12
+ import type { TabGroupFieldConfig } from '../widgets/TabGroupField/types';
13
+ import type { PresetOrCustomFieldConfig } from '../widgets/PresetOrCustomField/types';
14
+ /**
15
+ * Base configuration for all field types
16
+ */
17
+ export interface BaseFieldConfig {
18
+ /** Unique identifier for this field */
19
+ id: string;
20
+ /** Field type discriminator */
21
+ type: string;
22
+ /** Human-readable label */
23
+ label: string;
24
+ /** Optional description/help text */
25
+ description?: string;
26
+ /** Whether this field is required (defaults to false if not specified) */
27
+ required?: boolean;
28
+ /** Default value for this field */
29
+ defaultValue?: unknown;
30
+ /** UI-specific configuration - uses same type as FieldDefinition for compatibility */
31
+ ui?: FieldDefinition['ui'];
32
+ }
33
+ /**
34
+ * Text field configuration
35
+ */
36
+ export interface TextFieldConfig extends BaseFieldConfig {
37
+ type: 'text';
38
+ multiline?: boolean;
39
+ maxLength?: number;
40
+ }
41
+ /**
42
+ * Number field configuration
43
+ */
44
+ export interface NumberFieldConfig extends BaseFieldConfig {
45
+ type: 'number';
46
+ min?: number;
47
+ max?: number;
48
+ step?: number;
49
+ }
50
+ /**
51
+ * Rich text field configuration
52
+ */
53
+ export interface RichTextFieldConfig extends BaseFieldConfig {
54
+ type: 'richText';
55
+ }
56
+ /**
57
+ * Media field configuration
58
+ */
59
+ export interface MediaFieldConfig extends BaseFieldConfig {
60
+ type: 'media';
61
+ mediaKinds?: ('image' | 'video' | 'audio' | 'document' | 'spreadsheet' | 'archive')[];
62
+ aspectRatio?: string;
63
+ }
64
+ /**
65
+ * Boolean field configuration
66
+ */
67
+ export interface BooleanFieldConfig extends BaseFieldConfig {
68
+ type: 'boolean';
69
+ }
70
+ /**
71
+ * Date field configuration
72
+ */
73
+ export interface DateFieldConfig extends BaseFieldConfig {
74
+ type: 'date';
75
+ }
76
+ /**
77
+ * Time field configuration
78
+ */
79
+ export interface TimeFieldConfig extends BaseFieldConfig {
80
+ type: 'time';
81
+ }
82
+ /**
83
+ * DateTime field configuration
84
+ */
85
+ export interface DateTimeFieldConfig extends BaseFieldConfig {
86
+ type: 'datetime';
87
+ }
88
+ /**
89
+ * Slug field configuration
90
+ */
91
+ export interface SlugFieldConfig extends BaseFieldConfig {
92
+ type: 'slug';
93
+ sourceFieldId?: string;
94
+ statusFieldId?: string;
95
+ maxLength?: number;
96
+ }
97
+ /**
98
+ * URL field configuration
99
+ */
100
+ export interface UrlFieldConfig extends BaseFieldConfig {
101
+ type: 'url';
102
+ allowRelative?: boolean;
103
+ }
104
+ /**
105
+ * Link field configuration
106
+ */
107
+ export interface LinkFieldConfig extends BaseFieldConfig {
108
+ type: 'link';
109
+ }
110
+ /**
111
+ * Select field configuration
112
+ */
113
+ export interface SelectFieldConfig extends BaseFieldConfig {
114
+ type: 'select';
115
+ options: Array<{
116
+ value: string;
117
+ label: string;
118
+ }>;
119
+ multiple?: boolean;
120
+ }
121
+ /**
122
+ * Reference field configuration
123
+ */
124
+ export interface ReferenceFieldConfig extends BaseFieldConfig {
125
+ type: 'reference';
126
+ referenceKind: string;
127
+ allowManualEntry?: boolean;
128
+ }
129
+ /**
130
+ * Group field configuration (nested object)
131
+ */
132
+ export interface GroupFieldConfig extends BaseFieldConfig {
133
+ type: 'group';
134
+ fields: FieldConfig[];
135
+ /** Optional nested schema shape for compatibility with manifest FieldDefinition */
136
+ schema?: {
137
+ fields?: FieldConfig[];
138
+ };
139
+ }
140
+ /**
141
+ * Modal field configuration (nested object shown in a dialog)
142
+ *
143
+ * Modal fields are structurally similar to group fields, but store children under
144
+ * `schema.fields` in the block manifest.
145
+ */
146
+ export interface ModalFieldConfig extends BaseFieldConfig {
147
+ type: 'modal';
148
+ schema: {
149
+ fields: FieldConfig[];
150
+ };
151
+ }
152
+ /**
153
+ * Repeater field configuration (array)
154
+ */
155
+ export type RepeaterFieldConfig = BaseFieldConfig & ({
156
+ /**
157
+ * Optional custom validation schema for the entire repeater field.
158
+ * Useful for complex constraints that aren't expressible via field-level config.
159
+ */
160
+ validation?: ZodTypeAny;
161
+ } & ({
162
+ type: 'repeater';
163
+ itemLabel?: string;
164
+ itemLabelSource?: string;
165
+ minItems?: number;
166
+ maxItems?: number;
167
+ polymorphic?: false;
168
+ fields: FieldConfig[];
169
+ /** Optional nested schema shape for compatibility with manifest FieldDefinition */
170
+ schema?: {
171
+ fields?: FieldConfig[];
172
+ };
173
+ itemTypes?: never;
174
+ allowConversion?: boolean;
175
+ } | {
176
+ type: 'repeater';
177
+ itemLabel?: string;
178
+ itemLabelSource?: string;
179
+ minItems?: number;
180
+ maxItems?: number;
181
+ polymorphic: true;
182
+ fields?: never;
183
+ /** Polymorphic repeaters do not use schema.fields */
184
+ schema?: never;
185
+ itemTypes: Record<string, {
186
+ label: string;
187
+ icon?: string;
188
+ fields: FieldConfig[];
189
+ }>;
190
+ allowConversion?: boolean;
191
+ }));
192
+ /**
193
+ * Button field configuration
194
+ */
195
+ export interface ButtonFieldConfig extends BaseFieldConfig {
196
+ type: 'button';
197
+ allowedSizes?: Array<'sm' | 'md' | 'lg' | 'xl'>;
198
+ defaultSize?: 'sm' | 'md' | 'lg' | 'xl';
199
+ }
200
+ /**
201
+ * Content type select field configuration
202
+ */
203
+ export interface ContentTypeSelectFieldConfig extends BaseFieldConfig {
204
+ type: 'contentTypeSelect';
205
+ /** Filter: all, routable (hasPages=true), nonRoutable (hasPages=false) */
206
+ filter?: 'all' | 'routable' | 'nonRoutable';
207
+ }
208
+ /**
209
+ * Entry picker field configuration
210
+ */
211
+ export interface EntryPickerFieldConfig extends BaseFieldConfig {
212
+ type: 'entryPicker';
213
+ /** Fixed content type to filter entries by (no sibling contentType field required) */
214
+ fixedContentType?: string;
215
+ /** Field ID that contains the content type to filter entries by */
216
+ contentTypeField?: string;
217
+ /** What value should be stored when an entry is selected */
218
+ valueFrom?: 'id' | 'identifier' | 'slug';
219
+ }
220
+ /**
221
+ * Union of all field configuration types
222
+ */
223
+ export type FieldConfig = TextFieldConfig | NumberFieldConfig | RichTextFieldConfig | MediaFieldConfig | BooleanFieldConfig | DateFieldConfig | TimeFieldConfig | DateTimeFieldConfig | SlugFieldConfig | UrlFieldConfig | LinkFieldConfig | SelectFieldConfig | ReferenceFieldConfig | GroupFieldConfig | ModalFieldConfig | RepeaterFieldConfig | ButtonFieldConfig | TabGroupFieldConfig | PresetOrCustomFieldConfig | ContentTypeSelectFieldConfig | EntryPickerFieldConfig;
@@ -0,0 +1,22 @@
1
+ export * from './client/index';
2
+ export { formatPublishBlockedMessage, formatRecoveryConflictSummary, formatRecoveryConflictTitle, formatUnfinishedBlocksSummary, recoveryConflictCopy, unfinishedBlockCopy, } from './blockDraftSaveability';
3
+ export { WIDGET_NAMES, type WidgetName } from './widgets';
4
+ export { WidgetField, WidgetFieldMessage } from './widgets';
5
+ export type { WidgetFieldProps, WidgetFieldMessageProps } from './widgets';
6
+ export { SelectWidget } from './widgets';
7
+ export type { SelectWidgetProps, SelectWidgetOption } from './widgets';
8
+ export { ToggleWidget } from './widgets';
9
+ export type { ToggleWidgetProps } from './widgets';
10
+ export { TextInputWidget } from './widgets';
11
+ export type { TextInputWidgetProps } from './widgets';
12
+ export { BackgroundColorWidget } from './widgets';
13
+ export type { BackgroundColorWidgetProps, BackgroundColorMode } from './widgets';
14
+ export { BackgroundGradientWidget } from './widgets';
15
+ export type { BackgroundGradientWidgetProps } from './widgets';
16
+ export { BoxStyleWidget } from './widgets';
17
+ export { DatePickerPopover, parseDateValue, type DateParseResult, type DatePickerPopoverProps, } from './widgets';
18
+ export { FieldSettingsModal } from './widgets';
19
+ export type { FieldSettingsModalProps } from './widgets';
20
+ export { SettingsModal } from './widgets';
21
+ export type { SettingsModalProps, SettingsTab, SettingsTabId } from './widgets';
22
+ export * from './utils/fieldHelpers';
@@ -0,0 +1,37 @@
1
+ /**
2
+ * ManifestForm - Thin wrapper around FormRenderer for manifest-based forms
3
+ *
4
+ * Responsibilities:
5
+ * 1. Transform manifest FieldDefinitions → FieldConfigs (via adapter)
6
+ * 2. Pass transformed fields to generic FormRenderer
7
+ * 3. Handle manifest-specific options (role visibility, etc.)
8
+ */
9
+ import type { BlockManifest, VisibilityLevel } from '@riverbankcms/blocks';
10
+ import { type FormRendererProps } from '../FormRenderer';
11
+ import type { FormBackend } from '../backend/types';
12
+ export interface ManifestFormProps {
13
+ manifest: BlockManifest;
14
+ className?: string;
15
+ role?: VisibilityLevel;
16
+ backend: FormBackend;
17
+ /** Optional widget overrides - allows replacing widgets at runtime */
18
+ widgetOverrides?: FormRendererProps['widgetOverrides'];
19
+ /** Optional block kind for SDK field options lookup (e.g., 'block.embed', 'custom.hero') */
20
+ blockKind?: string;
21
+ /** Show inline settings trigger for non-content intents (default: true) */
22
+ showSettingsTrigger?: boolean;
23
+ }
24
+ /**
25
+ * ManifestForm - Renders form fields from a block manifest
26
+ *
27
+ * This is a thin adapter that:
28
+ * 1. Converts manifest FieldDefinitions to FieldConfigs (via adapter)
29
+ * 2. Delegates rendering to FormRenderer
30
+ *
31
+ * @example
32
+ * ```tsx
33
+ * const backend = createRHFBackend(form)
34
+ * <ManifestForm manifest={blockManifest} backend={backend} />
35
+ * ```
36
+ */
37
+ export declare function ManifestForm({ manifest, className, role, backend, widgetOverrides, blockKind, showSettingsTrigger, }: ManifestFormProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,5 @@
1
+ import { type NativeInputValidationProps } from '@riverbankcms/blocks/system/manifest/fieldValidation';
2
+ import type { z } from 'zod';
3
+ import type { FieldConfig } from '../fields/types';
4
+ export declare function buildCanonicalFieldSchema(field: FieldConfig): z.ZodTypeAny;
5
+ export declare function getCanonicalNativeInputProps(field: FieldConfig): NativeInputValidationProps;
@@ -0,0 +1,44 @@
1
+ /**
2
+ * SDK Tab Filtering
3
+ *
4
+ * Pure function for filtering tab group tabs based on SDK section options.
5
+ * This is used by TabGroupField to respect SDK site configuration.
6
+ */
7
+ import type { SdkSectionOptions } from '../sdk-config';
8
+ /**
9
+ * Tab definition with optional SDK section option.
10
+ * This is a minimal interface that matches what TabGroupField receives.
11
+ */
12
+ export interface FilterableTab {
13
+ id: string;
14
+ sdkSectionOption?: 'backgroundColor' | 'backgroundGradient' | 'backgroundImage';
15
+ }
16
+ export declare function isSdkSectionOptionEnabled(sdkSectionOption: FilterableTab['sdkSectionOption'] | undefined, isSdkSite: boolean, sectionOptions: SdkSectionOptions | null): boolean;
17
+ /**
18
+ * Filters tabs based on SDK section options.
19
+ *
20
+ * This pure function handles the filtering logic that was previously embedded
21
+ * in TabGroupField. It's designed to be testable and reusable.
22
+ *
23
+ * ## Filtering Rules
24
+ *
25
+ * - If not an SDK site or no sectionOptions exist, all tabs are returned
26
+ * - Tabs without `sdkSectionOption` are always visible
27
+ * - Tabs with `sdkSectionOption` are visible unless explicitly disabled
28
+ * - A disabled option is when `sectionOptions[key] === false`
29
+ *
30
+ * @param tabs - Array of tabs to filter
31
+ * @param isSdkSite - Whether this is an SDK-configured site
32
+ * @param sectionOptions - SDK section options (may be null)
33
+ * @returns Filtered array of visible tabs
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * const visibleTabs = filterTabsBySdkOptions(
38
+ * config.tabs,
39
+ * isSdkSite,
40
+ * sectionOptions
41
+ * )
42
+ * ```
43
+ */
44
+ export declare function filterTabsBySdkOptions<T extends FilterableTab>(tabs: T[], isSdkSite: boolean, sectionOptions: SdkSectionOptions | null): T[];
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Manifest Form Adapter
3
+ *
4
+ * Transforms BlockManifest field definitions into FieldConfigs for form rendering.
5
+ * Handles role-based visibility filtering and structure normalization.
6
+ *
7
+ * This adapter is intentionally minimal - it only does what's truly manifest-specific:
8
+ * 1. Filter fields by role visibility
9
+ * 2. Flatten nested structure (schema.fields → fields)
10
+ *
11
+ * Everything else (validation, defaults, UI) is handled by the generic form system.
12
+ */
13
+ import type { VisibilityLevel, BlockManifest } from '@riverbankcms/blocks';
14
+ import type { ZodType } from 'zod';
15
+ import type { FieldConfig } from '../fields/types';
16
+ export interface ManifestAdapterOptions {
17
+ role?: VisibilityLevel;
18
+ }
19
+ export interface ManifestAdapterResult {
20
+ fields: FieldConfig[];
21
+ schema: ZodType<Record<string, unknown>, Record<string, unknown>>;
22
+ }
23
+ /**
24
+ * Union type for manifest form sources
25
+ * Can be either a BlockManifest or null
26
+ */
27
+ export type ManifestFormSource = BlockManifest | null;
28
+ /**
29
+ * Options for manifest validation schema creation
30
+ */
31
+ export interface ManifestSchemaOptions {
32
+ role?: VisibilityLevel;
33
+ widgets?: unknown;
34
+ }
35
+ /**
36
+ * Result of createManifestValidation
37
+ */
38
+ export interface ManifestValidationResult {
39
+ schema: ZodType<Record<string, unknown>, Record<string, unknown>>;
40
+ fields: FieldConfig[];
41
+ }
42
+ /**
43
+ * Transform a BlockManifest into form fields and validation schema
44
+ */
45
+ export declare function createManifestFormAdapter(manifest: BlockManifest, options?: ManifestAdapterOptions): ManifestAdapterResult;
46
+ /**
47
+ * Create validation schema from a block manifest
48
+ *
49
+ * This is a convenience wrapper around createManifestFormAdapter for RHF validation.
50
+ * Use this when you need a Zod schema for form validation (e.g., with zodResolver).
51
+ *
52
+ * @example
53
+ * ```tsx
54
+ * const validation = createManifestValidation(manifest, { role: 'author' })
55
+ * const form = useForm({
56
+ * resolver: zodResolver(validation.schema),
57
+ * defaultValues: ...
58
+ * })
59
+ * ```
60
+ */
61
+ export declare function createManifestValidation(manifest: BlockManifest, options?: ManifestSchemaOptions): ManifestValidationResult;
@@ -0,0 +1,24 @@
1
+ import type { BlockManifest } from '@riverbankcms/blocks';
2
+ import type { SdkBlockFieldOptionsMap, SdkBlockFieldExtensionsMap } from '../sdk-config/SdkConfigContext';
3
+ /**
4
+ * Merges SDK-provided field options AND field extensions into a block manifest.
5
+ *
6
+ * This creates a single source of truth for validation and rendering:
7
+ * 1. Field options: Replaces select options for fields with `ui.widget: 'sdkSelect'`
8
+ * 2. Field extensions: Appends additional fields to the end of the manifest
9
+ *
10
+ * Without this merge, the Zod validation schema is built from manifest's
11
+ * hardcoded options, but SdkSelectField renders SDK options - causing
12
+ * validation errors when users select SDK-provided values.
13
+ *
14
+ * @example
15
+ * // Field options: Embed block manifest has options [list, grid, carousel]
16
+ * // SDK config provides options [showcase, list]
17
+ * // After merge, manifest.fields[layoutField].options = [showcase, list]
18
+ *
19
+ * @example
20
+ * // Field extensions: Body text block has [body] field
21
+ * // SDK config extends with [layout] field
22
+ * // After merge, manifest.fields = [body, layout]
23
+ */
24
+ export declare function mergeManifestWithSdkOptions(manifest: BlockManifest, blockKind: string, sdkBlockFieldOptions?: SdkBlockFieldOptionsMap | null, sdkBlockFieldExtensions?: SdkBlockFieldExtensionsMap | null): BlockManifest;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ export type PaletteTokens = Record<string, string>;
3
+ type PaletteContextValue = {
4
+ tokens: PaletteTokens;
5
+ };
6
+ export declare function PaletteProvider({ tokens, children }: {
7
+ tokens: PaletteTokens | undefined;
8
+ children: React.ReactNode;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ export declare function usePalette(): PaletteContextValue;
11
+ export {};
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Schema and Default Value Registry
3
+ * Maps field types to validation schemas and default value builders
4
+ *
5
+ * Server-safe - no React, no browser APIs
6
+ * Can be used in API routes, server components, and validation
7
+ */
8
+ import { buildTextFieldSchema } from '../widgets/TextField/textFieldSchema';
9
+ import { getTextFieldDefault } from '../widgets/TextField/textFieldDefaults';
10
+ import { buildNumberFieldSchema } from '../widgets/NumberField/numberFieldSchema';
11
+ import { getNumberFieldDefault } from '../widgets/NumberField/numberFieldDefaults';
12
+ import { buildSelectFieldSchema } from '../widgets/SelectField/selectFieldSchema';
13
+ import { getSelectFieldDefault } from '../widgets/SelectField/selectFieldDefaults';
14
+ import { buildBooleanFieldSchema } from '../widgets/BooleanField/booleanFieldSchema';
15
+ import { getBooleanFieldDefault } from '../widgets/BooleanField/booleanFieldDefaults';
16
+ import { buildGroupFieldSchema, type SchemaContext } from '../widgets/GroupField/groupFieldSchema';
17
+ import { getGroupFieldDefault, type DefaultValueContext } from '../widgets/GroupField/groupFieldDefaults';
18
+ import { buildModalFieldSchema } from '../widgets/ModalGroupField/modalFieldSchema';
19
+ import { getModalFieldDefault } from '../widgets/ModalGroupField/modalFieldDefaults';
20
+ import { buildRepeaterFieldSchema } from '../widgets/RepeaterField/repeaterFieldSchema';
21
+ import { getRepeaterFieldDefault } from '../widgets/RepeaterField/repeaterFieldDefaults';
22
+ import { buildUrlFieldSchema } from '../widgets/UrlField/urlFieldSchema';
23
+ import { getUrlFieldDefault } from '../widgets/UrlField/urlFieldDefaults';
24
+ import { buildTimeFieldSchema } from '../widgets/TimeField/timeFieldSchema';
25
+ import { getTimeFieldDefault } from '../widgets/TimeField/timeFieldDefaults';
26
+ import { buildDateFieldSchema } from '../widgets/DateField/dateFieldSchema';
27
+ import { getDateFieldDefault } from '../widgets/DateField/dateFieldDefaults';
28
+ import { buildDateTimeFieldSchema } from '../widgets/DateTimeField/dateTimeFieldSchema';
29
+ import { getDateTimeFieldDefault } from '../widgets/DateTimeField/dateTimeFieldDefaults';
30
+ import { buildSlugFieldSchema } from '../widgets/SlugField/slugFieldSchema';
31
+ import { getSlugFieldDefault } from '../widgets/SlugField/slugFieldDefaults';
32
+ import { buildLinkFieldSchema } from '../widgets/LinkField/linkFieldSchema';
33
+ import { getLinkFieldDefault } from '../widgets/LinkField/linkFieldDefaults';
34
+ import { buildRichTextFieldSchema } from '../widgets/RichTextField/richTextFieldSchema';
35
+ import { getRichTextFieldDefaultValue } from '../widgets/RichTextField/richTextFieldDefaults';
36
+ import { buildMediaFieldSchema } from '../widgets/MediaField/mediaFieldSchema';
37
+ import { getMediaFieldDefaultValue } from '../widgets/MediaField/mediaFieldDefaults';
38
+ import { buildTabGroupFieldSchema, getTabGroupFieldDefault } from '../widgets/TabGroupField/tabGroupFieldSchema';
39
+ import { buildPresetOrCustomFieldSchema } from '../widgets/PresetOrCustomField/presetOrCustomFieldSchema';
40
+ import { getPresetOrCustomFieldDefault } from '../widgets/PresetOrCustomField/presetOrCustomFieldDefaults';
41
+ import { buildReferenceFieldSchema } from '../widgets/ReferenceField/referenceFieldSchema';
42
+ import { getReferenceFieldDefault } from '../widgets/ReferenceField/referenceFieldDefaults';
43
+ import { buildContentTypeSelectFieldSchema } from '../widgets/ContentTypeSelectField/contentTypeSelectFieldSchema';
44
+ import { getContentTypeSelectFieldDefault } from '../widgets/ContentTypeSelectField/contentTypeSelectFieldDefaults';
45
+ import { buildEntryPickerFieldSchema } from '../widgets/EntryPickerField/entryPickerFieldSchema';
46
+ import { getEntryPickerFieldDefault } from '../widgets/EntryPickerField/entryPickerFieldDefaults';
47
+ import type { FieldConfig } from '../fields/types';
48
+ import type { ZodTypeAny } from 'zod';
49
+ export type { SchemaContext, DefaultValueContext };
50
+ export declare const SCHEMA_BUILDERS: {
51
+ readonly text: typeof buildTextFieldSchema;
52
+ readonly number: typeof buildNumberFieldSchema;
53
+ readonly select: typeof buildSelectFieldSchema;
54
+ readonly boolean: typeof buildBooleanFieldSchema;
55
+ readonly group: typeof buildGroupFieldSchema;
56
+ readonly modal: typeof buildModalFieldSchema;
57
+ readonly repeater: typeof buildRepeaterFieldSchema;
58
+ readonly url: typeof buildUrlFieldSchema;
59
+ readonly time: typeof buildTimeFieldSchema;
60
+ readonly date: typeof buildDateFieldSchema;
61
+ readonly datetime: typeof buildDateTimeFieldSchema;
62
+ readonly slug: typeof buildSlugFieldSchema;
63
+ readonly link: typeof buildLinkFieldSchema;
64
+ readonly richText: typeof buildRichTextFieldSchema;
65
+ readonly media: typeof buildMediaFieldSchema;
66
+ readonly tabGroup: typeof buildTabGroupFieldSchema;
67
+ readonly presetOrCustom: typeof buildPresetOrCustomFieldSchema;
68
+ readonly reference: typeof buildReferenceFieldSchema;
69
+ readonly contentTypeSelect: typeof buildContentTypeSelectFieldSchema;
70
+ readonly entryPicker: typeof buildEntryPickerFieldSchema;
71
+ };
72
+ export declare const DEFAULT_VALUE_BUILDERS: {
73
+ readonly text: typeof getTextFieldDefault;
74
+ readonly number: typeof getNumberFieldDefault;
75
+ readonly select: typeof getSelectFieldDefault;
76
+ readonly boolean: typeof getBooleanFieldDefault;
77
+ readonly group: typeof getGroupFieldDefault;
78
+ readonly modal: typeof getModalFieldDefault;
79
+ readonly repeater: typeof getRepeaterFieldDefault;
80
+ readonly url: typeof getUrlFieldDefault;
81
+ readonly time: typeof getTimeFieldDefault;
82
+ readonly date: typeof getDateFieldDefault;
83
+ readonly datetime: typeof getDateTimeFieldDefault;
84
+ readonly slug: typeof getSlugFieldDefault;
85
+ readonly link: typeof getLinkFieldDefault;
86
+ readonly richText: typeof getRichTextFieldDefaultValue;
87
+ readonly media: typeof getMediaFieldDefaultValue;
88
+ readonly tabGroup: typeof getTabGroupFieldDefault;
89
+ readonly presetOrCustom: typeof getPresetOrCustomFieldDefault;
90
+ readonly reference: typeof getReferenceFieldDefault;
91
+ readonly contentTypeSelect: typeof getContentTypeSelectFieldDefault;
92
+ readonly entryPicker: typeof getEntryPickerFieldDefault;
93
+ };
94
+ export type SchemaBuilderType = keyof typeof SCHEMA_BUILDERS;
95
+ export type DefaultValueBuilderType = keyof typeof DEFAULT_VALUE_BUILDERS;
96
+ /**
97
+ * Helper to build a validation schema for a single field
98
+ * Recursively handles nested fields (group, repeater)
99
+ */
100
+ export declare function buildFieldSchema(field: FieldConfig, ctx: SchemaContext): ZodTypeAny;
101
+ /**
102
+ * Helper to get default value for a single field
103
+ * Recursively handles nested fields (group, repeater)
104
+ */
105
+ export declare function getFieldDefault(field: FieldConfig, ctx: DefaultValueContext): unknown;