@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,59 @@
1
+ /**
2
+ * Widget Component Registry
3
+ *
4
+ * Maps field types to their React components.
5
+ *
6
+ * ## Type Assertions Rationale
7
+ *
8
+ * Each widget is cast to `FieldWidgetComponent` (the base type) to allow storage in a
9
+ * homogeneous collection, even though each widget has a more specific type signature:
10
+ *
11
+ * - TextField: FieldWidgetComponent<string, TextFieldConfig>
12
+ * - NumberField: FieldWidgetComponent<number, TextFieldConfig>
13
+ * - GroupField: FieldWidgetComponent<Record<string, any>, GroupFieldConfig>
14
+ * etc.
15
+ *
16
+ * This is a standard TypeScript pattern for heterogeneous registries accessed via
17
+ * discriminated unions (field.type). The type assertions are safe because:
18
+ *
19
+ * 1. **Runtime Correctness**: FormRenderer looks up widgets by field.type, ensuring
20
+ * TextField receives TextFieldConfig, GroupField receives GroupFieldConfig, etc.
21
+ *
22
+ * 2. **Structural Compatibility**: All field configs extend BaseFieldConfig, so widgets
23
+ * can safely access common properties (id, label, description, required, etc.)
24
+ *
25
+ * 3. **Widget-Internal Type Safety**: Each widget's implementation is fully typed and
26
+ * type-checked against its specific config type.
27
+ *
28
+ * ## Context-Dependent Widgets (Not in Registry)
29
+ *
30
+ * Some widgets require application-level context and are provided as overrides:
31
+ *
32
+ * - MediaField: requires MediaEditorProvider context
33
+ * - LinkField: requires LinkWidgetContext (siteId, adapters)
34
+ * - RichTextField: requires RichTextWidgetContext (theme, onPickImage)
35
+ * - ReferenceField: requires siteId and adapters
36
+ *
37
+ * These live in @riverbankcms/editor-blocks and are passed via FormRenderer.widgetOverrides.
38
+ */
39
+ import type { FieldWidgetComponent } from '../fields/props';
40
+ export declare const WIDGET_COMPONENTS: {
41
+ readonly text: FieldWidgetComponent;
42
+ readonly number: FieldWidgetComponent;
43
+ readonly select: FieldWidgetComponent;
44
+ readonly sdkSelect: FieldWidgetComponent;
45
+ readonly boolean: FieldWidgetComponent;
46
+ readonly group: FieldWidgetComponent;
47
+ readonly modal: FieldWidgetComponent;
48
+ readonly tabGroup: FieldWidgetComponent;
49
+ readonly presetOrCustom: FieldWidgetComponent;
50
+ readonly repeater: FieldWidgetComponent;
51
+ readonly url: FieldWidgetComponent;
52
+ readonly time: FieldWidgetComponent;
53
+ readonly date: FieldWidgetComponent;
54
+ readonly datetime: FieldWidgetComponent;
55
+ readonly slug: FieldWidgetComponent;
56
+ readonly slider: FieldWidgetComponent;
57
+ };
58
+ export type WidgetType = keyof typeof WIDGET_COMPONENTS;
59
+ export declare function getWidget(type: string): FieldWidgetComponent | undefined;
@@ -0,0 +1,110 @@
1
+ import React from 'react';
2
+ import type { FieldDefinition, BlockCategory } from '@riverbankcms/blocks';
3
+ /**
4
+ * SDK Site Configuration for form widgets
5
+ *
6
+ * This context provides SDK config to widgets like BackgroundColorWidget
7
+ * that need to display SDK-specific options (e.g., curated section backgrounds).
8
+ */
9
+ export type SdkThemePalette = Record<string, string>;
10
+ export type SdkSectionBackground = {
11
+ id: string;
12
+ label: string;
13
+ token: string;
14
+ };
15
+ export type SdkSectionOptions = {
16
+ backgroundColor?: boolean;
17
+ backgroundGradient?: boolean;
18
+ backgroundImage?: boolean;
19
+ spacing?: string[] | boolean;
20
+ textColor?: boolean;
21
+ };
22
+ export type SdkSiteStyleConfig = {
23
+ sectionBackgrounds?: SdkSectionBackground[];
24
+ sectionOptions?: SdkSectionOptions;
25
+ };
26
+ /**
27
+ * SDK Custom Block definition (subset of @riverbankcms/sdk/config types for block-form use)
28
+ */
29
+ export type SdkCustomBlock = {
30
+ id: `custom.${string}`;
31
+ title: string;
32
+ titleSource?: string | string[];
33
+ description?: string;
34
+ category: BlockCategory;
35
+ icon?: string;
36
+ tags?: string[];
37
+ fields: FieldDefinition[];
38
+ };
39
+ /**
40
+ * Field select option for SDK-provided field options.
41
+ *
42
+ * Note: This mirrors FieldSelectOption from @riverbankcms/sdk/config.
43
+ * block-form is a lightweight package that doesn't depend on SDK,
44
+ * so these types are defined locally.
45
+ */
46
+ export type SdkFieldSelectOption = {
47
+ value: string;
48
+ label: string;
49
+ };
50
+ /**
51
+ * Per-field configuration within a block.
52
+ *
53
+ * Note: This mirrors BlockFieldConfig from @riverbankcms/sdk/config.
54
+ */
55
+ export type SdkBlockFieldConfig = {
56
+ options?: SdkFieldSelectOption[];
57
+ };
58
+ /**
59
+ * Per-block field options map.
60
+ *
61
+ * Note: This mirrors BlockFieldOptionsMap from @riverbankcms/sdk/config.
62
+ */
63
+ export type SdkBlockFieldOptionsMap = Record<string, Record<string, SdkBlockFieldConfig>>;
64
+ /**
65
+ * Block field extension configuration.
66
+ *
67
+ * Note: This mirrors BlockFieldExtension from @riverbankcms/sdk/config.
68
+ */
69
+ export type SdkBlockFieldExtension = {
70
+ fields: FieldDefinition[];
71
+ };
72
+ /**
73
+ * Per-block field extensions map.
74
+ *
75
+ * Note: This mirrors BlockFieldExtensionsMap from @riverbankcms/sdk/config.
76
+ */
77
+ export type SdkBlockFieldExtensionsMap = Record<string, SdkBlockFieldExtension>;
78
+ export type SdkConfig = {
79
+ theme?: {
80
+ palette: SdkThemePalette;
81
+ };
82
+ styles?: SdkSiteStyleConfig;
83
+ customBlocks?: SdkCustomBlock[];
84
+ blockFieldOptions?: SdkBlockFieldOptionsMap;
85
+ blockFieldExtensions?: SdkBlockFieldExtensionsMap;
86
+ };
87
+ type SdkConfigContextValue = {
88
+ sdkConfig: SdkConfig | null;
89
+ /** Section backgrounds from SDK config */
90
+ sectionBackgrounds: SdkSectionBackground[] | null;
91
+ /** Section options from SDK config */
92
+ sectionOptions: SdkSectionOptions | null;
93
+ /** Theme palette for resolving tokens to hex values */
94
+ themePalette: SdkThemePalette | null;
95
+ /** SDK custom block definitions */
96
+ customBlocks: SdkCustomBlock[] | null;
97
+ /** Per-block field options */
98
+ blockFieldOptions: SdkBlockFieldOptionsMap | null;
99
+ /** Per-block field extensions (additional fields for built-in blocks) */
100
+ blockFieldExtensions: SdkBlockFieldExtensionsMap | null;
101
+ /** Whether this is an SDK site with style config */
102
+ isSdkSite: boolean;
103
+ };
104
+ export type SdkConfigProviderProps = {
105
+ sdkConfig: SdkConfig | null | undefined;
106
+ children: React.ReactNode;
107
+ };
108
+ export declare function SdkConfigProvider({ sdkConfig, children }: SdkConfigProviderProps): import("react/jsx-runtime").JSX.Element;
109
+ export declare function useSdkConfig(): SdkConfigContextValue;
110
+ export {};
@@ -0,0 +1,21 @@
1
+ import type { SdkBlockFieldConfig } from './SdkConfigContext';
2
+ /**
3
+ * useBlockFieldOptions
4
+ *
5
+ * Hook to get SDK-provided field options for the current block context.
6
+ * Returns the field config from SDK blockFieldOptions if available.
7
+ *
8
+ * @param fieldId - The field ID to look up options for
9
+ * @returns Field config with options, or null if not found
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * function LayoutField({ config }: { config: SelectFieldConfig }) {
14
+ * const sdkFieldConfig = useBlockFieldOptions(config.id)
15
+ * const options = sdkFieldConfig?.options ?? config.options
16
+ *
17
+ * return <Select options={options} />
18
+ * }
19
+ * ```
20
+ */
21
+ export declare function useBlockFieldOptions(fieldId: string): SdkBlockFieldConfig | null;
@@ -0,0 +1,2 @@
1
+ export { SdkConfigProvider, useSdkConfig, type SdkConfig, type SdkConfigProviderProps, type SdkThemePalette, type SdkSectionBackground, type SdkSectionOptions, type SdkSiteStyleConfig, type SdkFieldSelectOption, type SdkBlockFieldConfig, type SdkBlockFieldOptionsMap, type SdkBlockFieldExtensionsMap, } from './SdkConfigContext';
2
+ export { useBlockFieldOptions } from './hooks';
@@ -0,0 +1 @@
1
+ export { Collapsible as Disclosure, CollapsibleTrigger as DisclosureTrigger, CollapsibleContent as DisclosureContent, } from '@riverbankcms/ui';
@@ -0,0 +1,2 @@
1
+ export { useCoarsePointer } from './useCoarsePointer';
2
+ export { useContainerWidth } from './useContainerWidth';
@@ -0,0 +1,5 @@
1
+ type UseCoarsePointerOptions = {
2
+ mediaQuery?: string;
3
+ };
4
+ export declare function useCoarsePointer(options?: UseCoarsePointerOptions): boolean;
5
+ export {};
@@ -0,0 +1,6 @@
1
+ import { type RefObject } from 'react';
2
+ type UseContainerWidthOptions = {
3
+ defaultWidth?: number;
4
+ };
5
+ export declare function useContainerWidth(ref: RefObject<HTMLElement | null>, options?: UseContainerWidthOptions): number;
6
+ export {};
@@ -0,0 +1,25 @@
1
+ /**
2
+ * VisibilityWrapper - Reactively shows/hides fields based on visibility conditions
3
+ *
4
+ * Uses useBackendWatch to efficiently track only the specific watched field,
5
+ * avoiding unnecessary re-renders when unrelated fields change.
6
+ */
7
+ import type { ReactNode } from 'react';
8
+ import type { BaseFieldConfig } from '../fields/types';
9
+ import type { FormBackend } from '../backend/types';
10
+ interface VisibilityWrapperProps {
11
+ field: BaseFieldConfig;
12
+ path: string;
13
+ backend: FormBackend;
14
+ children: ReactNode;
15
+ }
16
+ /**
17
+ * Wrapper component that reactively updates visibility
18
+ *
19
+ * When a field has ui.visibleWhen:
20
+ * 1. Uses useBackendWatch to track the watched field (optimized, field-specific)
21
+ * 2. Re-evaluates visibility when watched value changes
22
+ * 3. Shows/hides field accordingly
23
+ */
24
+ export declare function VisibilityWrapper({ field, path, backend, children, }: VisibilityWrapperProps): ReactNode;
25
+ export {};
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Builds the absolute path for a watched field from a relative reference
3
+ *
4
+ * @param currentPath - Current field's absolute path (e.g., "background.scale")
5
+ * @param relativeField - Relative field reference from visibleWhen (e.g., "objectFit")
6
+ * @returns Absolute path to watched field (e.g., "background.objectFit")
7
+ *
8
+ * @example
9
+ * computeWatchedPath('background.scale', 'objectFit')
10
+ * // => 'background.objectFit' (sibling field)
11
+ *
12
+ * computeWatchedPath('items.0.settings.customColor', 'useCustom')
13
+ * // => 'items.0.settings.useCustom' (sibling in nested structure)
14
+ *
15
+ * computeWatchedPath('subtitle', 'showSubtitle')
16
+ * // => 'showSubtitle' (top-level sibling)
17
+ */
18
+ export declare function computeWatchedPath(currentPath: string, relativeField: string | undefined): string | null;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Utility for evaluating field visibility based on ui.visibleWhen conditions
3
+ *
4
+ * This is a pure function with no React dependencies - can be used in any context.
5
+ * Handles both ui.hidden flag and conditional visibility based on other field values.
6
+ */
7
+ import type { BaseFieldConfig } from '../fields/types';
8
+ import type { FormBackend } from '../backend/types';
9
+ export declare function evaluateVisibility(field: BaseFieldConfig, backend: FormBackend, path: string): boolean;
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Field UI Helper Functions
3
+ *
4
+ * Type-safe helpers for accessing field.ui properties.
5
+ * Reduces repetitive type casting throughout the codebase.
6
+ */
7
+ import type { FieldConfig } from '../fields/types';
8
+ /**
9
+ * UI properties that can be set on fields.
10
+ * This type covers common ui properties used across different field types.
11
+ */
12
+ export type FieldUiProps = {
13
+ renderInHeader?: boolean;
14
+ intent?: FieldIntent;
15
+ hidden?: boolean;
16
+ visibleWhen?: unknown;
17
+ widget?: string;
18
+ preset?: 'disclosure';
19
+ modalConfig?: {
20
+ buttonLabel?: string;
21
+ description?: string;
22
+ buttonVariant?: 'outline' | 'default' | 'ghost' | 'secondary';
23
+ showCustomizedIndicator?: boolean;
24
+ };
25
+ };
26
+ export type FieldIntent = 'content' | 'display' | 'behavior' | 'style';
27
+ /**
28
+ * Check if a field should render in the block header.
29
+ * Header fields are rendered in the collapsed block header area.
30
+ */
31
+ export declare function isHeaderField(field: FieldConfig): boolean;
32
+ /**
33
+ * Check if a field is hidden.
34
+ */
35
+ export declare function isHiddenField(field: FieldConfig): boolean;
36
+ /**
37
+ * Check if a field has visibility conditions.
38
+ */
39
+ export declare function hasVisibilityConditions(field: FieldConfig): boolean;
40
+ /**
41
+ * Get the modal config from a field, if present.
42
+ */
43
+ export declare function getModalConfig(field: FieldConfig): FieldUiProps['modalConfig'] | undefined;
44
+ /**
45
+ * Get the widget hint from a field, if present.
46
+ * Falls back to field.type if no widget is specified.
47
+ */
48
+ export declare function getWidgetKey(field: FieldConfig): string;
49
+ /**
50
+ * Resolve semantic intent for top-level form routing.
51
+ * Priority:
52
+ * 1) ui.intent (if valid)
53
+ * 2) default content
54
+ */
55
+ export declare function getFieldIntent(field: FieldConfig): FieldIntent;
56
+ export declare function partitionFieldsByIntent(fields: FieldConfig[]): {
57
+ content: FieldConfig[];
58
+ display: FieldConfig[];
59
+ behavior: FieldConfig[];
60
+ style: FieldConfig[];
61
+ };
62
+ /**
63
+ * Filter out fields that should render in header.
64
+ * Returns fields that should be rendered in the form body.
65
+ */
66
+ export declare function filterBodyFields(fields: FieldConfig[]): FieldConfig[];
67
+ /**
68
+ * Check if a single value is "non-empty" (meaningful).
69
+ * Returns false for null, undefined, empty string, false, and empty objects/arrays.
70
+ */
71
+ export declare function isNonEmptyValue(value: unknown): boolean;
72
+ /**
73
+ * Check if a record has any non-empty values.
74
+ * Used to determine if a group/modal field has been customized.
75
+ */
76
+ export declare function hasNonEmptyValues(values: Record<string, unknown> | null | undefined): boolean;
77
+ /**
78
+ * Type for fields that have nested schema fields (group, modal, repeater).
79
+ */
80
+ export type FieldWithSchema = FieldConfig & {
81
+ schema: {
82
+ fields: FieldConfig[];
83
+ };
84
+ };
85
+ /**
86
+ * Check if a field has a nested schema with fields.
87
+ * Works for group, modal, and monomorphic repeater fields.
88
+ */
89
+ export declare function hasNestedFields(field: FieldConfig): field is FieldWithSchema;
90
+ /**
91
+ * Get nested fields from a field config, if present.
92
+ * Returns empty array if field doesn't have nested fields.
93
+ */
94
+ export declare function getNestedFields(field: FieldConfig): FieldConfig[];
@@ -0,0 +1,22 @@
1
+ import type { FieldConfig } from '../fields/types';
2
+ import type { TabDefinition } from '../widgets/TabGroupField/types';
3
+ export type ResolvedPromotedField = {
4
+ /** Absolute backend path to read/write (e.g. `_sectionStyles.background.image`) */
5
+ path: string;
6
+ /** Field config to render at the path */
7
+ field: FieldConfig;
8
+ /** Optional SDK section option gating for the field (derived from TabGroup tabs). */
9
+ sdkSectionOption?: TabDefinition['sdkSectionOption'];
10
+ };
11
+ /**
12
+ * Resolve a list of promoted field paths into renderable field configs.
13
+ *
14
+ * Notes:
15
+ * - This is a render-only shortcut. The returned `field` is *not* added to the
16
+ * manifest/schema; it should be rendered at `path` while continuing to store
17
+ * data within the existing nested object shape.
18
+ * - Field IDs in manifests can contain dots (e.g. `overlay.color`). This resolver
19
+ * uses greedy matching against child IDs to support those paths.
20
+ * - Array indexes in paths (e.g. `items.0.title`) are ignored for matching.
21
+ */
22
+ export declare function resolvePromotedFields(fields: FieldConfig[], promotedPaths: string[] | undefined): ResolvedPromotedField[];
@@ -0,0 +1,3 @@
1
+ export declare function slugify(input: string): string;
2
+ export declare function limitSlugLength(value: string, maxLength?: number): string;
3
+ export declare function sanitizeSlugInput(value: string, maxLength?: number): string;
@@ -0,0 +1,3 @@
1
+ export type UnknownRecord = Record<string, unknown>;
2
+ export declare function isRecord(value: unknown): value is UnknownRecord;
3
+ export declare function isObjectRecord(value: unknown): value is UnknownRecord;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * BackgroundColorField - Field widget wrapper for BackgroundColorWidget
3
+ *
4
+ * Wraps BackgroundColorWidget to work as a standard FieldWidgetComponent.
5
+ * Reads/writes string values via the form backend.
6
+ */
7
+ import type { ReactNode } from 'react';
8
+ import type { FieldWidgetProps } from '../../fields/props';
9
+ import type { TextFieldConfig } from '../../fields/types';
10
+ export declare function BackgroundColorField({ path, backend, config, }: FieldWidgetProps<string | null, TextFieldConfig>): ReactNode;
@@ -0,0 +1,23 @@
1
+ import type { ReactNode } from 'react';
2
+ export type BackgroundColorMode = 'limited' | 'full';
3
+ export type BackgroundColorWidgetProps = {
4
+ label: string;
5
+ value: string | null;
6
+ onChange: (token: string) => void;
7
+ mode?: BackgroundColorMode;
8
+ filterTokens?: string[] | null;
9
+ className?: string;
10
+ triggerClassName?: string;
11
+ description?: ReactNode;
12
+ error?: ReactNode;
13
+ dataPath?: string;
14
+ };
15
+ /**
16
+ * BackgroundColorWidget
17
+ *
18
+ * Select a background color from the site's theme palette or SDK config.
19
+ * Automatically uses SDK section backgrounds from context when available.
20
+ * Otherwise supports 'limited' mode (key shades only) or 'full' mode (all shades).
21
+ * Optionally filters to only show legible colors via filterTokens prop.
22
+ */
23
+ export declare function BackgroundColorWidget(props: BackgroundColorWidgetProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { BackgroundColorWidget, type BackgroundColorWidgetProps, type BackgroundColorMode } from './BackgroundColorWidget';
2
+ export { BackgroundColorField } from './BackgroundColorField';
@@ -0,0 +1,13 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { FieldWidgetProps } from '../../fields/props';
3
+ import type { TextFieldConfig } from '../../fields/types';
4
+ /**
5
+ * BackgroundGradientField
6
+ *
7
+ * Field wrapper for BackgroundGradientWidget that integrates with the form system.
8
+ * Converts between GradientConfig objects (used by the widget) and CSS strings
9
+ * (stored in the form data).
10
+ *
11
+ * This is registered as a widget override with key 'backgroundGradient'.
12
+ */
13
+ export declare function BackgroundGradientField({ path, backend, config, }: FieldWidgetProps<string | null, TextFieldConfig>): ReactNode;
@@ -0,0 +1,17 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { GradientConfig } from '@riverbankcms/blocks';
3
+ export type BackgroundGradientWidgetProps = {
4
+ label: string;
5
+ value: GradientConfig | null;
6
+ onChange: (config: GradientConfig) => void;
7
+ description?: ReactNode;
8
+ error?: ReactNode;
9
+ dataPath?: string;
10
+ };
11
+ /**
12
+ * BackgroundGradientWidget
13
+ *
14
+ * Select a curated gradient from the theme-based library.
15
+ * Gradients use theme color tokens, so they adapt to the site's palette.
16
+ */
17
+ export declare function BackgroundGradientWidget(props: BackgroundGradientWidgetProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { BackgroundGradientWidget, type BackgroundGradientWidgetProps } from './BackgroundGradientWidget';
2
+ export { BackgroundGradientField } from './BackgroundGradientField';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * BooleanField - Boolean switch widget using new FieldWidgetProps pattern with @riverbankcms/ui components
3
+ */
4
+ import type { FieldWidgetProps } from '../../fields/props';
5
+ import type { BooleanFieldConfig } from '../../fields/types';
6
+ export declare function BooleanField({ path, backend, config }: FieldWidgetProps<boolean, BooleanFieldConfig>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * BooleanField default value builder
3
+ * Server-safe - no React, no browser APIs
4
+ */
5
+ import type { BooleanFieldConfig } from '../../fields/types';
6
+ export declare function getBooleanFieldDefault(field: BooleanFieldConfig): boolean;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * BooleanField validation schema builder
3
+ * Server-safe - no React, no browser APIs
4
+ */
5
+ import { z } from 'zod';
6
+ import type { BooleanFieldConfig } from '../../fields/types';
7
+ export declare function buildBooleanFieldSchema(field: BooleanFieldConfig): z.ZodTypeAny;
@@ -0,0 +1,3 @@
1
+ export { BooleanField } from './BooleanField';
2
+ export { buildBooleanFieldSchema } from './booleanFieldSchema';
3
+ export { getBooleanFieldDefault } from './booleanFieldDefaults';
@@ -0,0 +1,17 @@
1
+ /**
2
+ * BoxStyleWidget - Modal dialog for section/container/card styling
3
+ *
4
+ * Similar to ModalGroupField but specialized for box styling contexts.
5
+ * Supports future enhancement for tabs when both section and container styles exist.
6
+ *
7
+ * Configuration via config.ui.modalConfig:
8
+ * - buttonLabel: Text for trigger button (default: based on config.label)
9
+ * - description: Helper text in dialog header
10
+ * - buttonVariant: 'default' | 'outline' (default: 'outline')
11
+ * - showCustomizedIndicator: Show "(customized)" badge (default: true)
12
+ * - maxWidth: Dialog max width class (default: 'max-w-3xl')
13
+ */
14
+ import type { ReactNode } from 'react';
15
+ import type { FieldWidgetProps } from '../../fields/props';
16
+ import type { GroupFieldConfig } from '../../fields/types';
17
+ export declare function BoxStyleWidget({ path, backend, config, renderChild, }: FieldWidgetProps<Record<string, unknown>, GroupFieldConfig>): ReactNode;
@@ -0,0 +1 @@
1
+ export { BoxStyleWidget } from './BoxStyleWidget';
@@ -0,0 +1,3 @@
1
+ import type { ContentTypeSelectFieldConfig } from '../../fields/types';
2
+ import type { DefaultValueContext } from '../GroupField';
3
+ export declare function getContentTypeSelectFieldDefault(field: ContentTypeSelectFieldConfig, _ctx: DefaultValueContext): string;
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ import type { ContentTypeSelectFieldConfig } from '../../fields/types';
3
+ import type { SchemaContext } from '../GroupField';
4
+ export declare function buildContentTypeSelectFieldSchema(field: ContentTypeSelectFieldConfig, _ctx: SchemaContext): z.ZodTypeAny;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * DateField - Date picker input widget
3
+ *
4
+ * Uses DatePickerPopover for calendar-based date selection.
5
+ */
6
+ import type { ReactNode } from 'react';
7
+ import type { FieldWidgetProps } from '../../fields/props';
8
+ import type { DateFieldConfig } from '../../fields/types';
9
+ export interface DateFieldProps extends FieldWidgetProps<string | null, DateFieldConfig> {
10
+ }
11
+ /**
12
+ * DateField - Renders a date picker field
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * <DateField
17
+ * path="publishDate"
18
+ * backend={backend}
19
+ * config={{ id: 'publishDate', type: 'date', label: 'Publish Date' }}
20
+ * />
21
+ * ```
22
+ */
23
+ export declare function DateField({ path, backend, config }: DateFieldProps): ReactNode;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Date Field - Default Values
3
+ */
4
+ import type { DateFieldConfig } from '../../fields/types';
5
+ /**
6
+ * Get default value for Date field
7
+ */
8
+ export declare function getDateFieldDefault(field: DateFieldConfig): string | null;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Date Field - Validation Schema
3
+ */
4
+ import { z } from 'zod';
5
+ import type { DateFieldConfig } from '../../fields/types';
6
+ /**
7
+ * Build Zod validation schema for Date field
8
+ */
9
+ export declare function buildDateFieldSchema(field: DateFieldConfig): z.ZodTypeAny;
@@ -0,0 +1,32 @@
1
+ import { type ReactNode } from 'react';
2
+ import { Calendar } from '@riverbankcms/ui';
3
+ export type DateParseResult = Date | null;
4
+ export declare function parseDateValue(value: unknown): DateParseResult;
5
+ export type DatePickerPopoverRenderArgs = {
6
+ selectedDate: DateParseResult;
7
+ setDate: (date: DateParseResult) => void;
8
+ close: () => void;
9
+ };
10
+ export type DatePickerTriggerRenderArgs = {
11
+ selectedDate: DateParseResult;
12
+ open: boolean;
13
+ openPopover: () => void;
14
+ closePopover: () => void;
15
+ togglePopover: () => void;
16
+ buttonLabel: string;
17
+ placeholder: string;
18
+ };
19
+ export type DatePickerPopoverProps = {
20
+ selectedDate: DateParseResult;
21
+ onSelectDate: (date: DateParseResult) => void;
22
+ onOpenChange?: (open: boolean) => void;
23
+ placeholder: string;
24
+ formatButtonLabel: (date: Date) => string;
25
+ closeOnSelect?: boolean;
26
+ renderExtras?: (args: DatePickerPopoverRenderArgs) => ReactNode;
27
+ renderFooter?: (args: DatePickerPopoverRenderArgs) => ReactNode;
28
+ renderTrigger?: (args: DatePickerTriggerRenderArgs) => ReactNode;
29
+ open?: boolean;
30
+ disabled?: React.ComponentProps<typeof Calendar>['disabled'];
31
+ };
32
+ export declare function DatePickerPopover({ selectedDate, onSelectDate, onOpenChange, placeholder, formatButtonLabel, closeOnSelect, renderExtras, renderFooter, renderTrigger, open: controlledOpen, disabled, }: DatePickerPopoverProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export { DateField } from './DateField';
2
+ export { buildDateFieldSchema } from './dateFieldSchema';
3
+ export { getDateFieldDefault } from './dateFieldDefaults';
4
+ export { DatePickerPopover, parseDateValue, type DateParseResult, type DatePickerPopoverProps, } from './datePickerPopover';