@riverbankcms/sdk 0.146.0 → 0.148.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 (466) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/{PreviewEditorSidebar-kg2r2Fyi.mjs → PreviewEditorSidebar-DvEPG3Z2.mjs} +249 -172
  3. package/dist/{PreviewEditorUI-sWMLp5dT.mjs → PreviewEditorUI-D6eb6fkx.mjs} +68 -60
  4. package/dist/{PreviewQueryProvider-Cg51xq1w.mjs → PreviewQueryProvider-5znTyJuz.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-h2ti3Hch.mjs → SdkPreviewModeRuntime-DJ6utQ_R.mjs} +1180 -475
  6. package/dist/{SiteChromeCustomizeContext-DEACFH9m.mjs → SiteChromeCustomizeContext-CFJYh6vo.mjs} +199078 -193767
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +198 -33
  8. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +18 -3
  9. package/dist/_dts/api/src/accessAdmin.d.ts +0 -4
  10. package/dist/_dts/api/src/accountApi.d.ts +6 -6
  11. package/dist/_dts/api/src/admin.d.ts +22 -22
  12. package/dist/_dts/api/src/aiPatch.d.ts +2 -2
  13. package/dist/_dts/api/src/aiPlayground.d.ts +1 -0
  14. package/dist/_dts/api/src/analytics.d.ts +2 -2
  15. package/dist/_dts/api/src/apiEndpointTypes.d.ts +2 -0
  16. package/dist/_dts/api/src/appointmentSetup.d.ts +2 -2
  17. package/dist/_dts/api/src/auth.d.ts +10 -10
  18. package/dist/_dts/api/src/availability.d.ts +6 -6
  19. package/dist/_dts/api/src/billing.d.ts +42 -15
  20. package/dist/_dts/api/src/billingEndpointDefinitions.d.ts +8 -0
  21. package/dist/_dts/api/src/billingEndpointTypes.d.ts +15 -6
  22. package/dist/_dts/api/src/blocks.d.ts +15 -14
  23. package/dist/_dts/api/src/blocksKeys.d.ts +2 -0
  24. package/dist/_dts/api/src/bookingConfig.d.ts +16 -2
  25. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -13
  26. package/dist/_dts/api/src/bookingOperations.d.ts +6 -48
  27. package/dist/_dts/api/src/bookingPeople.d.ts +92 -0
  28. package/dist/_dts/api/src/bookingPeopleEndpointDefinitions.d.ts +38 -0
  29. package/dist/_dts/api/src/bookingRecords.d.ts +12 -49
  30. package/dist/_dts/api/src/bookingSettingsSections.d.ts +1 -1
  31. package/dist/_dts/api/src/bookings.d.ts +8 -7
  32. package/dist/_dts/api/src/calendar.d.ts +9 -9
  33. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +7 -6
  34. package/dist/_dts/api/src/common/envelope.d.ts +2 -2
  35. package/dist/_dts/api/src/content-editor.d.ts +2 -2
  36. package/dist/_dts/api/src/contentEntries.d.ts +17 -48
  37. package/dist/_dts/api/src/contentRuntime.d.ts +51 -37
  38. package/dist/_dts/api/src/contentTypes.d.ts +11 -11
  39. package/dist/_dts/api/src/contentVersionHistoryClient.d.ts +6 -6
  40. package/dist/_dts/api/src/documentLifecycle.d.ts +67 -0
  41. package/dist/_dts/api/src/domains.d.ts +16 -16
  42. package/dist/_dts/api/src/editLeaseEndpoints.d.ts +72 -0
  43. package/dist/_dts/api/src/emailSettings.d.ts +4 -4
  44. package/dist/_dts/api/src/endpoints.d.ts +725 -607
  45. package/dist/_dts/api/src/eventEmailTemplates.d.ts +2 -2
  46. package/dist/_dts/api/src/eventManagementContracts.d.ts +48 -8
  47. package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +1 -9
  48. package/dist/_dts/api/src/eventPageWords.d.ts +7 -12
  49. package/dist/_dts/api/src/footerSettings.d.ts +6 -6
  50. package/dist/_dts/api/src/index.d.ts +8 -6
  51. package/dist/_dts/api/src/indexCoreTypes.d.ts +2 -1
  52. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  53. package/dist/_dts/api/src/launchReadiness.d.ts +1 -6
  54. package/dist/_dts/api/src/mailingListIntegration.d.ts +6 -0
  55. package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +1 -1
  56. package/dist/_dts/api/src/navigation.d.ts +5 -5
  57. package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +15 -0
  58. package/dist/_dts/api/src/occurrenceScheduling.d.ts +19 -0
  59. package/dist/_dts/api/src/pageSurfaceEditorEndpoints.d.ts +55 -0
  60. package/dist/_dts/api/src/pageSurfaceEndpoints.d.ts +28 -7
  61. package/dist/_dts/api/src/pages.d.ts +7 -7
  62. package/dist/_dts/api/src/performance.d.ts +1 -1
  63. package/dist/_dts/api/src/public/index.d.ts +1 -1
  64. package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +50 -0
  65. package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +4 -0
  66. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +7 -0
  67. package/dist/_dts/api/src/redirects.d.ts +3 -3
  68. package/dist/_dts/api/src/request.d.ts +10 -1
  69. package/dist/_dts/api/src/resources.d.ts +4 -4
  70. package/dist/_dts/api/src/routes.d.ts +8 -3
  71. package/dist/_dts/api/src/sdk-event-upsert.d.ts +15 -1
  72. package/dist/_dts/api/src/sdkBlockUpsertContracts.d.ts +21 -0
  73. package/dist/_dts/api/src/sdkContracts.d.ts +5 -28
  74. package/dist/_dts/api/src/sdkCourseBooking.d.ts +4 -4
  75. package/dist/_dts/api/src/sdkEventEndpointDefinitions.d.ts +1 -1
  76. package/dist/_dts/api/src/sdkEventOccurrenceRequestContracts.d.ts +43 -0
  77. package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +4 -2
  78. package/dist/_dts/api/src/sdkPullEventContracts.d.ts +8 -1
  79. package/dist/_dts/api/src/seo.d.ts +4 -4
  80. package/dist/_dts/api/src/services.d.ts +4 -4
  81. package/dist/_dts/api/src/siteLifecycleEndpoints.d.ts +61 -0
  82. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +19 -25
  83. package/dist/_dts/api/src/siteMembers.d.ts +10 -10
  84. package/dist/_dts/api/src/siteOnboarding.d.ts +16 -14
  85. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +7 -3
  86. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +5 -12
  87. package/dist/_dts/api/src/siteRuntimeEntry.d.ts +31 -0
  88. package/dist/_dts/billing/src/checkout/platform.d.ts +77 -0
  89. package/dist/_dts/billing/src/components/index.d.ts +25 -40
  90. package/dist/_dts/billing/src/membership/index.d.ts +1 -3
  91. package/dist/_dts/billing/src/plans/entitlements.d.ts +80 -0
  92. package/dist/_dts/billing/src/plans/registry.d.ts +16 -16
  93. package/dist/_dts/billing/src/plans/standing.d.ts +9 -2
  94. package/dist/_dts/billing/src/plans/types.d.ts +5 -15
  95. package/dist/_dts/billing/src/site-arrangements.d.ts +2 -2
  96. package/dist/_dts/billing/src/subscriptions/standingEvidence.d.ts +2 -4
  97. package/dist/_dts/billing/src/subscriptions/store.d.ts +17 -11
  98. package/dist/_dts/block-form/src/backend/store-backend.d.ts +6 -7
  99. package/dist/_dts/block-form/src/backend/types.d.ts +7 -0
  100. package/dist/_dts/block-form/src/widgets/FieldFrame.d.ts +3 -1
  101. package/dist/_dts/blocks/src/PageRenderer.d.ts +3 -4
  102. package/dist/_dts/blocks/src/client/events.d.ts +3 -0
  103. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +24 -4
  104. package/dist/_dts/blocks/src/index.d.ts +1 -1
  105. package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +18 -9
  106. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +4 -0
  107. package/dist/_dts/blocks/src/portal/types.d.ts +0 -2
  108. package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +2 -1
  109. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +3 -1
  110. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +4 -4
  111. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +6 -1
  112. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +4 -1
  113. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -2
  114. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  115. package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +6 -0
  116. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +18 -0
  117. package/dist/_dts/blocks/src/system/runtime/api/types/portal.d.ts +6 -0
  118. package/dist/_dts/blocks/src/system/runtime/api/types/shop.d.ts +4 -0
  119. package/dist/_dts/blocks/src/system/runtime/components/booking/SuccessMessage.d.ts +4 -1
  120. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +36 -6
  121. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +18 -3
  122. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +11 -0
  123. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +2 -0
  124. package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +2 -1
  125. package/dist/_dts/blocks/src/system/runtime/hooks/usePolling.d.ts +7 -48
  126. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.checkout-return-context.d.ts +7 -0
  127. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.completion.d.ts +11 -0
  128. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +13 -0
  129. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +28 -0
  130. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-choice.d.ts +5 -0
  131. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.mailing-list-state.d.ts +9 -0
  132. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.payment-confirmation.d.ts +13 -0
  133. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.reserved-fields.d.ts +1 -1
  134. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.server.d.ts +1 -1
  135. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +17 -1
  136. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-actions.d.ts +8 -0
  137. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-handler.d.ts +9 -0
  138. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.submit-success.d.ts +9 -0
  139. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +4 -0
  140. package/dist/_dts/blocks/src/system/runtime/nodes/checkout.server.d.ts +2 -1
  141. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/AttendeeDetailsStep.d.ts +3 -0
  142. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +2 -1
  143. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizard.d.ts +5 -0
  144. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SuccessStep.d.ts +7 -1
  145. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +3 -0
  146. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/sessionStorage.d.ts +2 -0
  147. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +8 -0
  148. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +5 -5
  149. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +8 -0
  150. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +18 -5
  151. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +6 -0
  152. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +37 -3
  153. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.client.d.ts +1 -1
  154. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +16 -1
  155. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCardPresentations.d.ts +13 -0
  156. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +5 -5
  157. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.block-submission.d.ts +2 -4
  158. package/dist/_dts/blocks/src/system/runtime/nodes/shared/MagicLinkForm.d.ts +1 -14
  159. package/dist/_dts/blocks/src/system/runtime/nodes/shared/MagicLinkForm.state.d.ts +12 -0
  160. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +13 -0
  161. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +2 -0
  162. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingMailingListNote.d.ts +6 -0
  163. package/dist/_dts/blocks/src/system/runtime/shared/components/DemoBookingPortalAccess.d.ts +22 -0
  164. package/dist/_dts/blocks/src/system/runtime/shared/components/DemoPortalSignInLink.d.ts +4 -0
  165. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -0
  166. package/dist/_dts/blocks/src/system/runtime/shared/mailingListSignupCopy.d.ts +6 -0
  167. package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +1 -0
  168. package/dist/_dts/blocks/src/system/runtime/shared/utils/demoBookingPassStorage.d.ts +10 -0
  169. package/dist/_dts/blocks/src/system/runtime/shared/utils/demoPortalMagicLink.d.ts +29 -0
  170. package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +3 -2
  171. package/dist/_dts/blocks/src/system/transforms/registry/core.d.ts +2 -0
  172. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +1 -3
  173. package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +4 -0
  174. package/dist/_dts/content-editor/src/components/ContentFieldsForm.d.ts +2 -7
  175. package/dist/_dts/content-editor/src/controller/EditLeaseController.d.ts +39 -0
  176. package/dist/_dts/content-editor/src/controller/EditorWriteGate.d.ts +38 -0
  177. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +25 -61
  178. package/dist/_dts/content-editor/src/controller/LinkedEntryLeaseBanner.d.ts +7 -0
  179. package/dist/_dts/content-editor/src/controller/LinkedEntryLeaseControllers.d.ts +14 -0
  180. package/dist/_dts/content-editor/src/controller/deriveEditorUnpublishedState.d.ts +6 -0
  181. package/dist/_dts/content-editor/src/controller/documentValueBaseline.d.ts +25 -0
  182. package/dist/_dts/content-editor/src/controller/editLeaseLossSignal.d.ts +6 -0
  183. package/dist/_dts/content-editor/src/controller/editLeaseNotice.d.ts +28 -0
  184. package/dist/_dts/content-editor/src/controller/editorClientId.d.ts +2 -0
  185. package/dist/_dts/content-editor/src/controller/editorEditability.d.ts +38 -0
  186. package/dist/_dts/content-editor/src/controller/editorLeaseParticipation.d.ts +34 -0
  187. package/dist/_dts/content-editor/src/controller/normalizedMetadataBaseline.d.ts +29 -0
  188. package/dist/_dts/content-editor/src/controller/pageSurfaceDocumentBaselines.d.ts +14 -0
  189. package/dist/_dts/content-editor/src/controller/pageSurfaceLifecycle.d.ts +11 -0
  190. package/dist/_dts/content-editor/src/controller/planDocumentBaselineRefresh.d.ts +19 -0
  191. package/dist/_dts/content-editor/src/controller/readDocumentLeaseBaselines.d.ts +19 -0
  192. package/dist/_dts/content-editor/src/controller/refreshDocumentLeaseBaseline.d.ts +12 -0
  193. package/dist/_dts/content-editor/src/controller/refreshLinkedEntry.d.ts +17 -0
  194. package/dist/_dts/content-editor/src/controller/replayRestoredEditorEffects.d.ts +2 -3
  195. package/dist/_dts/content-editor/src/controller/routeWrites.d.ts +26 -0
  196. package/dist/_dts/content-editor/src/controller/useAutosaveTriggers.d.ts +16 -17
  197. package/dist/_dts/content-editor/src/controller/useBlockedPublishPlan.d.ts +6 -2
  198. package/dist/_dts/content-editor/src/controller/useBlocksList.d.ts +3 -3
  199. package/dist/_dts/content-editor/src/controller/useEntryValueAutosaves.d.ts +21 -0
  200. package/dist/_dts/content-editor/src/controller/useInitialEditorUiStore.d.ts +24 -0
  201. package/dist/_dts/content-editor/src/controller/useServerBaselineReconciliation.d.ts +17 -0
  202. package/dist/_dts/content-editor/src/footerComposerPanelTypes.d.ts +1 -1
  203. package/dist/_dts/content-editor/src/hooks/applyBlockedPublishPlan.d.ts +5 -1
  204. package/dist/_dts/content-editor/src/hooks/blockDraftLifecycle.d.ts +8 -47
  205. package/dist/_dts/content-editor/src/hooks/editLeaseMachine.d.ts +120 -0
  206. package/dist/_dts/content-editor/src/hooks/publishability.d.ts +6 -10
  207. package/dist/_dts/content-editor/src/hooks/useAutosaveStatus.d.ts +3 -0
  208. package/dist/_dts/content-editor/src/hooks/useBlockAutosave.d.ts +5 -15
  209. package/dist/_dts/content-editor/src/hooks/useDebouncedLatestSave.d.ts +7 -5
  210. package/dist/_dts/content-editor/src/hooks/useEditLease.d.ts +28 -0
  211. package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +25 -39
  212. package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +17 -19
  213. package/dist/_dts/content-editor/src/hooks/useLinkedEntryAutosave.d.ts +5 -8
  214. package/dist/_dts/content-editor/src/hooks/useValueAutosave.d.ts +64 -0
  215. package/dist/_dts/content-editor/src/hooks/validateBlocksForPublish.d.ts +0 -7
  216. package/dist/_dts/content-editor/src/index.d.ts +26 -7
  217. package/dist/_dts/content-editor/src/linkedEntries/domain.d.ts +12 -0
  218. package/dist/_dts/content-editor/src/linkedEntries/owner.d.ts +9 -0
  219. package/dist/_dts/content-editor/src/liveDrafts/draftProjection.d.ts +66 -0
  220. package/dist/_dts/content-editor/src/liveDrafts/linkedSaveHandovers.d.ts +37 -0
  221. package/dist/_dts/content-editor/src/liveDrafts/remoteDraftOverlay.d.ts +113 -0
  222. package/dist/_dts/content-editor/src/liveDrafts/useLiveDrafts.d.ts +32 -0
  223. package/dist/_dts/content-editor/src/liveDrafts/useRetentionTicks.d.ts +7 -0
  224. package/dist/_dts/content-editor/src/primitives/shared/activePreviewField.d.ts +6 -0
  225. package/dist/_dts/content-editor/src/primitives/shared/storeBinding.d.ts +1 -0
  226. package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +96 -19
  227. package/dist/_dts/content-editor/src/services/editorApiClient.d.ts +13 -0
  228. package/dist/_dts/content-editor/src/services/index.d.ts +2 -0
  229. package/dist/_dts/content-editor/src/services/pageSurfaceEditorServices.d.ts +23 -0
  230. package/dist/_dts/content-editor/src/sync/flushValues.d.ts +13 -0
  231. package/dist/_dts/content-editor/src/sync/lifecycleFailure.d.ts +51 -0
  232. package/dist/_dts/content-editor/src/sync/runLifecycle.d.ts +64 -0
  233. package/dist/_dts/content-editor/src/sync/schedulerValues.d.ts +27 -0
  234. package/dist/_dts/content-editor/src/sync/sendPlanning.d.ts +104 -0
  235. package/dist/_dts/content-editor/src/sync/valueSync.d.ts +114 -0
  236. package/dist/_dts/content-editor/src/ui/blockCollection.d.ts +8 -0
  237. package/dist/_dts/content-editor/src/ui/documentLifecycle.d.ts +18 -0
  238. package/dist/_dts/content-editor/src/ui/editorLeaseUiState.d.ts +7 -0
  239. package/dist/_dts/content-editor/src/ui/editorRefresh.d.ts +82 -0
  240. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +102 -127
  241. package/dist/_dts/content-editor/src/ui/editorTransactionState.d.ts +1 -1
  242. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +126 -72
  243. package/dist/_dts/content-editor/src/ui/editorValueSnapshot.d.ts +18 -0
  244. package/dist/_dts/content-editor/src/ui/serverBlockAdmission.d.ts +26 -0
  245. package/dist/_dts/content-editor/src/ui/stores/autosaveStore.d.ts +16 -27
  246. package/dist/_dts/content-editor/src/ui/stores/blockVersionsStore.d.ts +24 -0
  247. package/dist/_dts/content-editor/src/ui/stores/linkedEntryLeaseStore.d.ts +54 -0
  248. package/dist/_dts/content-editor/src/ui/stores/linkedSaveHandoversStore.d.ts +11 -0
  249. package/dist/_dts/content-editor/src/ui/stores/remoteDraftsStore.d.ts +10 -0
  250. package/dist/_dts/content-editor/src/ui/stores/types.d.ts +63 -3
  251. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +2 -2
  252. package/dist/_dts/content-editor/src/useFooterNavigationLayout.d.ts +1 -1
  253. package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +4 -4
  254. package/dist/_dts/content-model/src/content-types/builtins.d.ts +4 -4
  255. package/dist/_dts/content-model/src/definitions/shared.d.ts +11 -2
  256. package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
  257. package/dist/_dts/content-model/src/entry-slots/serializeAllowedBlocks.d.ts +2 -0
  258. package/dist/_dts/content-model/src/metadataConfig.d.ts +10 -38
  259. package/dist/_dts/content-model/src/templates/defaults.d.ts +0 -1
  260. package/dist/_dts/content-model/src/types.d.ts +0 -1
  261. package/dist/_dts/core/src/block-content-identity.d.ts +49 -1
  262. package/dist/_dts/core/src/branded.d.ts +12 -0
  263. package/dist/_dts/core/src/currency-format.d.ts +8 -2
  264. package/dist/_dts/core/src/demo-lifecycle-status.d.ts +2 -2
  265. package/dist/_dts/core/src/demo-warm-pool-target.d.ts +8 -0
  266. package/dist/_dts/core/src/edit-lease.d.ts +55 -0
  267. package/dist/_dts/core/src/editor-state.d.ts +38 -13
  268. package/dist/_dts/core/src/editor-value-sync.d.ts +79 -0
  269. package/dist/_dts/core/src/html-entities.d.ts +6 -0
  270. package/dist/_dts/core/src/index.d.ts +5 -1
  271. package/dist/_dts/core/src/mailing-list-runtime.d.ts +15 -0
  272. package/dist/_dts/core/src/mailing-list-setup.d.ts +2 -0
  273. package/dist/_dts/core/src/mailing-list-submission.d.ts +6 -0
  274. package/dist/_dts/core/src/navigation-portal-labels.d.ts +9 -0
  275. package/dist/_dts/core/src/participants.d.ts +0 -38
  276. package/dist/_dts/core/src/uuid.d.ts +7 -5
  277. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +261 -175
  278. package/dist/_dts/editor/src/EditorProvider.d.ts +5 -0
  279. package/dist/_dts/editor/src/chrome/EditorChrome.d.ts +14 -0
  280. package/dist/_dts/editor/src/chrome/EditorStatusBar.d.ts +1 -0
  281. package/dist/_dts/editor/src/chrome/statusBarPresentation.d.ts +0 -1
  282. package/dist/_dts/editor/src/index.d.ts +1 -1
  283. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +10 -9
  284. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +1 -1
  285. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +1 -1
  286. package/dist/_dts/editor-blocks/src/block-editor/BlockCardFrame.d.ts +1 -1
  287. package/dist/_dts/editor-blocks/src/block-editor/BlockSettingsModal.d.ts +1 -1
  288. package/dist/_dts/editor-blocks/src/block-editor/actionPresentation.d.ts +1 -0
  289. package/dist/_dts/editor-blocks/src/block-editor/applyExtendedFieldDefaults.d.ts +3 -4
  290. package/dist/_dts/editor-blocks/src/block-editor/blockDraftBaselineSeed.d.ts +4 -8
  291. package/dist/_dts/editor-blocks/src/block-editor/editorBlockItem.d.ts +23 -0
  292. package/dist/_dts/editor-blocks/src/block-editor/generatedIconApplyCoordination.d.ts +2 -7
  293. package/dist/_dts/editor-blocks/src/block-editor/hooks/applyBlockStructureChange.d.ts +4 -0
  294. package/dist/_dts/editor-blocks/src/block-editor/hooks/buildInsertBlockHistoryCommand.d.ts +14 -5
  295. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockBaselineSync.d.ts +21 -19
  296. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +2 -10
  297. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +8 -16
  298. package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +6 -16
  299. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +37 -9
  300. package/dist/_dts/editor-blocks/src/index.d.ts +2 -1
  301. package/dist/_dts/editor-blocks/src/widgets/entry-picker/loaders.d.ts +1 -1
  302. package/dist/_dts/editor-blocks/src/widgets/link/loaders.d.ts +1 -1
  303. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/loaders.d.ts +1 -1
  304. package/dist/_dts/editor-blocks/src/widgets/reference/loaders.d.ts +1 -1
  305. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +3 -2
  306. package/dist/_dts/media-core/src/fileStorage.d.ts +4 -0
  307. package/dist/_dts/media-editor/src/context.d.ts +1 -1
  308. package/dist/_dts/media-editor/src/createMediaEditorProvider.d.ts +1 -2
  309. package/dist/_dts/media-editor/src/provider.d.ts +3 -2
  310. package/dist/_dts/media-react/src/hooks/internal/classification.d.ts +1 -1
  311. package/dist/_dts/media-react/src/hooks/useApiMediaUploader.d.ts +3 -1
  312. package/dist/_dts/preview-next/src/client/blocks/EditablePageRenderer.d.ts +7 -1
  313. package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +8 -3
  314. package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +10 -6
  315. package/dist/_dts/preview-next/src/client/blocks/linkedEntryRenderOverlay.d.ts +22 -2
  316. package/dist/_dts/preview-next/src/client/blocks/previewProjection/entryFieldRebinding.d.ts +13 -0
  317. package/dist/_dts/preview-next/src/client/blocks/previewProjection/index.d.ts +2 -1
  318. package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +11 -1
  319. package/dist/_dts/preview-next/src/client/blocks/renderPrecedence.d.ts +17 -0
  320. package/dist/_dts/preview-next/src/client/blocks/useLinkedSaveHandoverRetention.d.ts +20 -0
  321. package/dist/_dts/preview-next/src/client/index.d.ts +1 -1
  322. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +2 -1
  323. package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +2 -1
  324. package/dist/_dts/preview-next/src/client/preview/PreviewAccessBanners.d.ts +7 -0
  325. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
  326. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +24 -14
  327. package/dist/_dts/preview-next/src/client/preview/PreviewLeaseEditingMode.d.ts +2 -0
  328. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +9 -2
  329. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -0
  330. package/dist/_dts/preview-next/src/client/preview/previewCustomizeAutosave.d.ts +5 -0
  331. package/dist/_dts/preview-next/src/client/preview/previewCustomizeWorkflowState.d.ts +3 -4
  332. package/dist/_dts/preview-next/src/client/preview/sdkConfig.d.ts +1 -0
  333. package/dist/_dts/preview-next/src/client/preview/usePreviewCustomizeWorkflowState.d.ts +4 -0
  334. package/dist/_dts/realtime/src/client.d.ts +3 -0
  335. package/dist/_dts/realtime/src/draftChannel.d.ts +91 -0
  336. package/dist/_dts/realtime/src/drafts.d.ts +210 -0
  337. package/dist/_dts/realtime/src/index.d.ts +3 -0
  338. package/dist/_dts/realtime/src/leaseChangeSubscriptions.d.ts +8 -0
  339. package/dist/_dts/realtime/src/types.d.ts +113 -0
  340. package/dist/_dts/realtime/src/useDraftChannel.d.ts +34 -0
  341. package/dist/_dts/realtime/src/useSiteRealtimeReload.d.ts +27 -0
  342. package/dist/_dts/sdk/src/public-api/contracts.d.ts +6 -55
  343. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -0
  344. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +2 -0
  345. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +1 -1
  346. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +4 -2
  347. package/dist/_dts/sdk/src/version.d.ts +1 -1
  348. package/dist/_dts/surfaces/src/index.d.ts +1 -0
  349. package/dist/_dts/theme-core/src/buttons/effects/types.d.ts +1 -1
  350. package/dist/_dts/theme-core/src/footer/effectiveNavLinkStyle.d.ts +13 -0
  351. package/dist/_dts/theme-core/src/footer/index.d.ts +1 -0
  352. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  353. package/dist/_dts/theme-core/src/header/effectiveNavLinkStyle.d.ts +17 -0
  354. package/dist/_dts/theme-core/src/header/generateHeaderLogoStyles.d.ts +15 -0
  355. package/dist/_dts/theme-core/src/header/generateHeaderNavLinkStyles.d.ts +4 -0
  356. package/dist/_dts/theme-core/src/header/index.d.ts +3 -0
  357. package/dist/_dts/theme-core/src/header/legacyNavLinkStyle.d.ts +1 -1
  358. package/dist/_dts/theme-core/src/header/openingForegroundProjection.d.ts +7 -0
  359. package/dist/_dts/theme-core/src/header/rootPaint.d.ts +4 -0
  360. package/dist/_dts/theme-core/src/navigation/effectPolicy.d.ts +38 -0
  361. package/dist/_dts/theme-core/src/navigation/generateNavLinkCSS.d.ts +4 -0
  362. package/dist/_dts/theme-core/src/navigation/types.d.ts +4 -0
  363. package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +1 -1
  364. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
  365. package/dist/_dts/theme-core/src/surfaces/foregroundContract.d.ts +7 -0
  366. package/dist/_dts/theme-core/src/surfaces/foregroundInteraction.d.ts +29 -22
  367. package/dist/_dts/theme-core/src/surfaces/foregroundRoles.d.ts +10 -2
  368. package/dist/_dts/theme-core/src/surfaces/resolveSurfaceForeground.d.ts +9 -0
  369. package/dist/_dts/theme-core/src/utils/cssDeclarations.d.ts +2 -0
  370. package/dist/_dts/ui/src/badge.d.ts +2 -1
  371. package/dist/_dts/ui/src/button.d.ts +1 -1
  372. package/dist/_dts/ui/src/combobox-keys.d.ts +23 -0
  373. package/dist/_dts/ui/src/combobox-rows.d.ts +34 -0
  374. package/dist/_dts/ui/src/combobox.d.ts +26 -1
  375. package/dist/_dts/ui/src/date-picker.d.ts +5 -8
  376. package/dist/_dts/ui/src/editor-item-card.d.ts +1 -0
  377. package/dist/_dts/ui/src/field-trigger.d.ts +39 -0
  378. package/dist/_dts/ui/src/fieldControl.d.ts +27 -0
  379. package/dist/_dts/ui/src/index.d.ts +4 -1
  380. package/dist/_dts/ui/src/native-select.d.ts +8 -0
  381. package/dist/_dts/ui/src/popover.d.ts +7 -1
  382. package/dist/_dts/ui/src/segmented-control.d.ts +4 -0
  383. package/dist/_dts/ui/src/surface.d.ts +1 -1
  384. package/dist/client/{BookingConsentAgreement-BQKL045f.mjs → BookingMailingListNote-CzRt2dF_.mjs} +110 -97
  385. package/dist/client/{CheckboxChoice--W2n6yKs.mjs → CheckboxChoice-B33MqoUo.mjs} +1 -1
  386. package/dist/client/DemoBookingPortalAccess-mxqwap3f.mjs +344 -0
  387. package/dist/client/{EventCombined.client-BdRjVbhH.mjs → EventCombined.client-CDb11igO.mjs} +7 -7
  388. package/dist/client/{EventListing.client-DBxC6xOU.mjs → EventListing.client-EgYhzKPa.mjs} +2 -2
  389. package/dist/client/{LeafletStaticMap-mHEJKrTs.mjs → LeafletStaticMap-gtmtaA2b.mjs} +1 -1
  390. package/dist/client/{scrollToBlock-BNgaEUpo.mjs → TerminalPanel-DvNUP5ot.mjs} +77 -77
  391. package/dist/client/{ThemedButton-CE5KYT6z.mjs → ThemedButton-C7CeUJjW.mjs} +2 -2
  392. package/dist/client/{accordion-BEQNSptH.mjs → accordion-kjvt49rA.mjs} +1 -1
  393. package/dist/client/{bookingForm-AMr-s5vw.mjs → bookingForm-pbRZordh.mjs} +411 -141
  394. package/dist/client/bookings.mjs +966 -396
  395. package/dist/client/{carousel-Bbt_QgJy.mjs → carousel-f4Zbmicv.mjs} +2 -2
  396. package/dist/client/{carousel.client-jahpU9Vz.mjs → carousel.client-A2lG-9od.mjs} +1 -1
  397. package/dist/client/{cart-CnWi30zJ.mjs → cart-DO20An50.mjs} +3 -3
  398. package/dist/client/{checkout-f3nkWgd4.mjs → checkout-Du5amDR_.mjs} +3 -3
  399. package/dist/client/{checkoutUrls-CW3-78uu.mjs → checkoutUrls-CXhko2Rv.mjs} +1 -1
  400. package/dist/client/client.mjs +3837 -2202
  401. package/dist/client/{colorStyles-CuJBiS-1.mjs → colorStyles-j5U9v5JA.mjs} +5 -1
  402. package/dist/client/{context-Bc8T6pCe.mjs → context-eW97E945.mjs} +4 -3
  403. package/dist/client/{dates-DUsCEzLb.mjs → dates-jPCirRea.mjs} +56 -11
  404. package/dist/client/{eventCalendar-CKwgXui5.mjs → eventCalendar-C2M-iE4j.mjs} +10 -10
  405. package/dist/client/{eventCombined-CBAOSTGR.mjs → eventCombined-W6ns3LHg.mjs} +4 -4
  406. package/dist/client/{eventDetails-Dh-_WiBD.mjs → eventDetails-CR-GT0f0.mjs} +4 -4
  407. package/dist/client/{eventListing-CA3frIH5.mjs → eventListing-BK8AfYZz.mjs} +4 -4
  408. package/dist/client/{eventRegistration-BHtsgdcg.mjs → eventRegistration-BJSd4KUu.mjs} +461 -266
  409. package/dist/client/{form-C2h3YAcg.mjs → form-BvpfbQaT.mjs} +5 -5
  410. package/dist/client/{headerSection-lwMuMTH9.mjs → headerSection-I5sUQ8x-.mjs} +3 -3
  411. package/dist/client/hooks.mjs +909 -163
  412. package/dist/client/{locationMap-DJ2bLODV.mjs → locationMap-BLvwf9_f.mjs} +4 -4
  413. package/dist/client/{FieldValidationMessage-AYanWFb-.mjs → mailingListSignupCopy-DZSHZrm6.mjs} +14 -1
  414. package/dist/client/{media-BtJ37tzS.mjs → media-Cl38iOMI.mjs} +11 -4
  415. package/dist/client/{newsletterForm-8Pu5K32g.mjs → newsletterForm-DrQ2weE8.mjs} +6 -6
  416. package/dist/client/{pricing-HHx3IgBz.mjs → pricing-BES87mrR.mjs} +1 -1
  417. package/dist/client/{productDetail-C_1odnAf.mjs → productDetail-Url9jcc5.mjs} +3 -3
  418. package/dist/client/{productList-CtCv-Nmx.mjs → productList-DE7ngEZJ.mjs} +3 -3
  419. package/dist/client/{propsDecoder-Dcgsncxb.mjs → propsDecoder-D1OtGXDV.mjs} +140 -22
  420. package/dist/client/rendering/client.mjs +2366 -997
  421. package/dist/client/rendering/islands.mjs +19 -19
  422. package/dist/client/rendering.mjs +4607 -2884
  423. package/dist/client/{routeIslandApiConfig-CWLP7wu3.mjs → routeIslandApiConfig-BG9Y-SHg.mjs} +1 -1
  424. package/dist/client/{shop-DQXrQ8kJ.mjs → shop-CJkuySJ3.mjs} +126 -79
  425. package/dist/client/{shop-commerce-B88zmWWo.mjs → shop-commerce-4rKj5n9h.mjs} +26 -14
  426. package/dist/client/{shop-commerce-store-DtSfkKuX.mjs → shop-commerce-store-Bxm75Pg6.mjs} +1 -1
  427. package/dist/client/{shopShared-cuaONpkJ.mjs → shopShared-DpoQDWfz.mjs} +5 -5
  428. package/dist/client/{useEventFilters-Bukew6Gb.mjs → useEventFilters-D8HliSqR.mjs} +33 -18
  429. package/dist/preview-next/before-render.mjs +314 -133
  430. package/dist/preview-next/client/runtime.mjs +4 -4
  431. package/dist/preview-next/editor-base.css +53 -2
  432. package/dist/preview-next/editor-chrome.css +7 -4
  433. package/dist/preview-next/keepAlive.mjs +314 -133
  434. package/dist/preview-next/middleware.mjs +314 -133
  435. package/dist/{previewAuthStore-h5IgbSp4.mjs → previewAuthStore-BXXF3hhW.mjs} +316 -133
  436. package/dist/{sdk-runtime-DTc1uIXn.mjs → sdk-runtime-C2a05WjL.mjs} +2 -2
  437. package/dist/{separator-BpHS1KZK.mjs → separator-CuNhBAhS.mjs} +1 -1
  438. package/dist/server/components.mjs +6888 -6157
  439. package/dist/server/config-validation.mjs +931 -199
  440. package/dist/server/config.mjs +931 -199
  441. package/dist/server/data.mjs +929 -198
  442. package/dist/server/index.mjs +317 -134
  443. package/dist/server/navigation.mjs +13 -2
  444. package/dist/server/next.mjs +5003 -4340
  445. package/dist/server/page-converter.mjs +160 -78
  446. package/dist/server/prebuild.mjs +1 -1
  447. package/dist/server/rendering/server.mjs +6421 -5687
  448. package/dist/server/rendering.mjs +7683 -6933
  449. package/dist/server/routing.mjs +1035 -338
  450. package/dist/server/server.mjs +946 -256
  451. package/dist/server/theme-bridge.mjs +66 -17
  452. package/dist/server/theme.mjs +5 -1
  453. package/dist/styles/index.css +32 -4
  454. package/package.json +1 -1
  455. package/dist/_dts/billing/src/plans/display.d.ts +0 -15
  456. package/dist/_dts/content-editor/src/controller/buildBlockPublishedBaselines.d.ts +0 -4
  457. package/dist/_dts/content-editor/src/controller/buildPublishSuccessTransition.d.ts +0 -16
  458. package/dist/_dts/content-editor/src/controller/driver.d.ts +0 -14
  459. package/dist/_dts/content-editor/src/controller/seedDraftBaselinesFromBlocks.d.ts +0 -7
  460. package/dist/_dts/content-editor/src/controller/useEntrySyncHelpers.d.ts +0 -29
  461. package/dist/_dts/content-editor/src/hooks/autosaveScopePlanning.d.ts +0 -26
  462. package/dist/_dts/content-editor/src/hooks/useSimpleAutosave.d.ts +0 -64
  463. package/dist/_dts/content-editor/src/hooks/useStoreAutosave.d.ts +0 -48
  464. package/dist/_dts/content-editor/src/types.d.ts +0 -44
  465. package/dist/_dts/core/src/participant-identity.d.ts +0 -135
  466. package/dist/client/DiscountCodeDisclosure-CsOtjFY7.mjs +0 -137
@@ -0,0 +1,24 @@
1
+ import type { BlockFieldExtensions } from '../../../editor-blocks/src/block-editor/blockDraftBaselineSeed';
2
+ import { type ContentEntrySnapshot, type RoutingHelpers } from '../../../content-model/src/index';
3
+ import { type EditorPublishedVersionScope } from '../ui/editorUiStore';
4
+ import type { ResolveBlockManifest } from '../ui/blockValidationView';
5
+ import { type EditorLeaseParticipation } from './editorLeaseParticipation';
6
+ import type { ServerBlockItem } from '../../../editor-blocks/src/block-editor/types';
7
+ type InitialEditorUiStoreOptions = Readonly<{
8
+ entry: ContentEntrySnapshot;
9
+ routing: RoutingHelpers;
10
+ hasRoute: boolean;
11
+ isPage: boolean;
12
+ publishedVersionScope: EditorPublishedVersionScope;
13
+ initialMetadataRevision: string | null;
14
+ resolveBlockManifest?: ResolveBlockManifest;
15
+ blockFieldExtensions?: BlockFieldExtensions | null;
16
+ initialBlocks: readonly ServerBlockItem[];
17
+ editLease: EditorLeaseParticipation;
18
+ }>;
19
+ /** Own store identity and synchronous metadata hydration together. */
20
+ export declare function useInitialEditorUiStore({ entry, routing, hasRoute, isPage, publishedVersionScope, initialMetadataRevision, resolveBlockManifest, editLease, blockFieldExtensions, initialBlocks, }: InitialEditorUiStoreOptions): {
21
+ uiStore: import("zustand").StoreApi<import("..").EditorUiState>;
22
+ hasHydratedContentRef: import("react").RefObject<boolean>;
23
+ };
24
+ export {};
@@ -0,0 +1,17 @@
1
+ import { type RefObject } from 'react';
2
+ import type { ContentEntrySnapshot, RoutingHelpers } from '../../../content-model/src/index';
3
+ import type { EditorUiStoreInstance } from '../ui/editorUiStore';
4
+ export declare function useMetadataReconciliation(input: Readonly<{
5
+ initialEntry?: ContentEntrySnapshot | null;
6
+ revision?: string | null;
7
+ routing: RoutingHelpers;
8
+ uiStore: EditorUiStoreInstance;
9
+ }>): void;
10
+ export declare function useContentReconciliation(input: Readonly<{
11
+ isPage: boolean;
12
+ initialContent?: Record<string, unknown> | null;
13
+ published?: Record<string, unknown> | null;
14
+ revision?: string | null;
15
+ hydratedRef: RefObject<boolean>;
16
+ uiStore: EditorUiStoreInstance;
17
+ }>): void;
@@ -3,7 +3,7 @@ import type { ApiClient } from '../../api/src/request';
3
3
  import type { FooterEditorTarget } from './footerComposer';
4
4
  import type { FooterNavigationLayoutAccess } from './useFooterNavigationLayout';
5
5
  export type FooterComposerPanelProps = Readonly<{
6
- apiClient: ApiClient;
6
+ apiClient: ApiClient<'getFooterComposition' | 'updateFooterComposition' | 'getPublicProfile' | 'updatePublicProfile' | 'getNavigationMenus' | 'getMailingListAuthoringContext' | 'listForms' | 'applySiteStyleSelection'>;
7
7
  siteId: string;
8
8
  customFooterMode: 'default' | 'blocks' | 'default+blocks' | 'none';
9
9
  manageLinksHref: string;
@@ -1,5 +1,9 @@
1
1
  import type { EditorUiStoreInstance } from '../ui/editorUiStore';
2
2
  import { type BlockedPublishPlan } from "./blockedPublishPlan";
3
+ /**
4
+ * Reveals and focuses what blocks publishing. The banner's message isn't set here: it
5
+ * derives from the recorded `invalid-blocks` failure and the current validation.
6
+ */
3
7
  export declare function applyBlockedPublishPlan(uiStore: EditorUiStoreInstance, plan: Extract<BlockedPublishPlan, {
4
8
  type: "blocked";
5
- }>, setErrorMessage: (message: string | null) => void): void;
9
+ }>): void;
@@ -1,48 +1,9 @@
1
1
  import type { BlockDraftSaveability } from "../../../block-form/src/blockDraftSaveability";
2
- import type { EditorBlockId } from "../../../core/src/index";
3
- import type { AutosaveStatusValue } from "../ui/stores/types";
4
- import type { EditorDraftSnapshot } from "../ui/editorHistory";
5
- type CurrentEditorDraftSnapshot = EditorDraftSnapshot & {
6
- current: NonNullable<EditorDraftSnapshot["current"]>;
7
- };
8
- export type BlockDraftLifecycle = Readonly<{
9
- kind: "baseline";
10
- blockId: EditorBlockId;
11
- }> | Readonly<{
12
- kind: "validPending";
13
- blockId: EditorBlockId;
14
- version: number;
15
- }> | Readonly<{
16
- kind: "invalidPending";
17
- blockId: EditorBlockId;
18
- issues: BlockDraftSaveability["issues"];
19
- }> | Readonly<{
20
- kind: "saving";
21
- blockId: EditorBlockId;
22
- version: number;
23
- }> | Readonly<{
24
- kind: "saveFailed";
25
- blockId: EditorBlockId;
26
- error: string;
27
- issues: BlockDraftSaveability["issues"];
28
- }>;
29
- export type BlockDraftAutosaveDecision = Readonly<{
30
- type: "save";
31
- blockId: EditorBlockId;
32
- data: Record<string, unknown>;
33
- acknowledgedVersion: number;
34
- }> | Readonly<{
35
- type: "skip";
36
- blockId: EditorBlockId;
37
- reason: "baseline" | "invalid" | "saving" | "saveFailed";
38
- }>;
39
- export declare function deriveBlockDraftLifecycle(input: Readonly<{
40
- snapshot: EditorDraftSnapshot;
41
- saveability: BlockDraftSaveability;
42
- autosaveStatus?: AutosaveStatusValue;
43
- }>): BlockDraftLifecycle;
44
- export declare function deriveBlockDraftAutosaveDecision(input: Readonly<{
45
- snapshot: CurrentEditorDraftSnapshot;
46
- lifecycle: BlockDraftLifecycle;
47
- }>): BlockDraftAutosaveDecision;
48
- export {};
2
+ /**
3
+ * Whether a block's values may be sent: validation found nothing blocking. A failed save
4
+ * with no validation issues is saveable again; whether it is retried now is `canSend`'s
5
+ * rule (issue 1553, rows S3 and S3b).
6
+ */
7
+ export declare function isBlockSaveable(saveability: BlockDraftSaveability): boolean;
8
+ /** The payload a block save sends: its values, unwrapped from a `data` envelope if present. */
9
+ export declare function blockSaveData(values: Record<string, unknown> | null): Record<string, unknown>;
@@ -0,0 +1,120 @@
1
+ import type { EditLeaseAcquireResult, EditLeaseToken, EditLeaseView } from '../../../core/src/index';
2
+ import type { EditorEditability } from '../controller/editorEditability';
3
+ export type LeaseFailure = 'unavailable' | 'invalid' | 'required' | 'forbidden' | 'not-found';
4
+ type Phase = Readonly<{
5
+ kind: 'idle';
6
+ }> | Readonly<{
7
+ kind: 'suspended';
8
+ }> | Readonly<{
9
+ kind: 'requesting';
10
+ id: number;
11
+ takingBack: boolean;
12
+ }> | Readonly<{
13
+ kind: 'refreshing' | 'confirming';
14
+ id: number;
15
+ takingBack: boolean;
16
+ token: EditLeaseToken;
17
+ }> | Readonly<{
18
+ kind: 'checking';
19
+ id: number;
20
+ takingBack: boolean;
21
+ priorToken: EditLeaseToken | null;
22
+ showing: Extract<EditorEditability, {
23
+ kind: 'read-only';
24
+ }> | null;
25
+ }> | Readonly<{
26
+ kind: 'editable';
27
+ id: number;
28
+ token: EditLeaseToken;
29
+ failures: number;
30
+ }> | Readonly<{
31
+ kind: 'held';
32
+ holder: Extract<EditLeaseView, {
33
+ kind: 'held-elsewhere';
34
+ }>['holder'];
35
+ }> | Readonly<{
36
+ kind: 'unavailable';
37
+ }> | Readonly<{
38
+ kind: 'fault';
39
+ reason: LeaseFailure;
40
+ }> | Readonly<{
41
+ kind: 'closed';
42
+ }>;
43
+ export type LeaseMachine = Readonly<{
44
+ phase: Phase;
45
+ nextId: number;
46
+ }>;
47
+ export type LeaseEvent = Readonly<{
48
+ kind: 'acquire';
49
+ takeover: boolean;
50
+ }> | Readonly<{
51
+ kind: 'recheck';
52
+ }> | Readonly<{
53
+ kind: 'lease-lost';
54
+ }> | Readonly<{
55
+ kind: 'grant';
56
+ id: number;
57
+ result: EditLeaseAcquireResult | LeaseFailure;
58
+ }> | Readonly<{
59
+ kind: 'view';
60
+ id: number;
61
+ result: EditLeaseView | LeaseFailure;
62
+ }> | Readonly<{
63
+ kind: 'refreshed';
64
+ id: number;
65
+ success: boolean;
66
+ }> | Readonly<{
67
+ kind: 'confirmed';
68
+ id: number;
69
+ result: 'mine' | LeaseFailure | 'lost';
70
+ }> | Readonly<{
71
+ kind: 'heartbeat';
72
+ id: number;
73
+ result: 'mine' | LeaseFailure | 'lost';
74
+ }> | Readonly<{
75
+ kind: 'tick';
76
+ }> | Readonly<{
77
+ kind: 'suspend';
78
+ }> | Readonly<{
79
+ kind: 'stop';
80
+ }>;
81
+ export type LeaseEffect = Readonly<{
82
+ kind: 'clear-discarded';
83
+ }> | Readonly<{
84
+ kind: 'request';
85
+ id: number;
86
+ takeover: boolean;
87
+ }> | Readonly<{
88
+ kind: 'read';
89
+ id: number;
90
+ }> | Readonly<{
91
+ kind: 'refresh';
92
+ id: number;
93
+ takingBack: boolean;
94
+ }> | Readonly<{
95
+ kind: 'confirm';
96
+ id: number;
97
+ token: EditLeaseToken;
98
+ }> | Readonly<{
99
+ kind: 'heartbeat';
100
+ id: number;
101
+ token: EditLeaseToken;
102
+ }> | Readonly<{
103
+ kind: 'release';
104
+ token: EditLeaseToken;
105
+ }> | Readonly<{
106
+ kind: 'fault';
107
+ reason: LeaseFailure;
108
+ }>;
109
+ export type LeaseStep = Readonly<{
110
+ state: LeaseMachine;
111
+ effects: readonly LeaseEffect[];
112
+ }>;
113
+ export declare function initialLeaseMachine(): LeaseMachine;
114
+ export declare function stepLease(state: LeaseMachine, event: LeaseEvent): LeaseStep;
115
+ /**
116
+ * The store editability a lease phase implies. A stopped session (`closed`) implies none:
117
+ * it no longer owns the store, so the host decides (preview hands it back to viewing).
118
+ */
119
+ export declare function leaseEditability(state: LeaseMachine): EditorEditability | null;
120
+ export {};
@@ -1,8 +1,7 @@
1
- import type { AutosaveStatus } from "../ui/stores/types";
2
1
  import type { EditorUnpublishedState } from "../controller/deriveEditorUnpublishedState";
3
2
  import { type BlockedPublishPlan } from "./blockedPublishPlan";
4
3
  import type { BlockValidationError } from "./validateBlocksForPublish";
5
- export type PublishDisabledReason = "noUnpublishedChanges" | "invalidBlocks" | "invalidBlockSummary" | "autosaveFailed";
4
+ export type PublishDisabledReason = "noUnpublishedChanges" | "invalidBlocks" | "invalidBlockSummary";
6
5
  export type PublishabilityPlan = Readonly<{
7
6
  kind: "allowed";
8
7
  canPublish: true;
@@ -27,12 +26,6 @@ export type PublishabilityPlan = Readonly<{
27
26
  type: "allowed";
28
27
  }>;
29
28
  }>;
30
- export type PublishabilityAutosaveState = Readonly<{
31
- metadata: AutosaveStatus;
32
- content: AutosaveStatus;
33
- blocks: AutosaveStatus;
34
- linkedEntries: AutosaveStatus;
35
- }>;
36
29
  export type DerivePublishabilityInput = Readonly<{
37
30
  unpublishedState: EditorUnpublishedState;
38
31
  validationErrors: readonly BlockValidationError[];
@@ -42,7 +35,10 @@ export type DerivePublishabilityInput = Readonly<{
42
35
  */
43
36
  hasInvalidBlockSummary?: boolean;
44
37
  drawerOpen: boolean;
45
- autosave?: PublishabilityAutosaveState;
46
- includeAutosaveFailures?: boolean;
47
38
  }>;
39
+ /**
40
+ * Block validation, focus and whether there's anything to publish. Whether the values
41
+ * can be saved first is the publish flush plan's decision (`selectPublishFlushPlan`),
42
+ * for the action and the toolbar alike (issue 1553, rows Q1–Q3).
43
+ */
48
44
  export declare function derivePublishability(input: DerivePublishabilityInput): PublishabilityPlan;
@@ -0,0 +1,3 @@
1
+ import type { AutosaveStatus, AutosaveType } from '../ui/stores/types';
2
+ /** The derived autosave status for one scheduler, or the whole document when none is given. */
3
+ export declare function useAutosaveStatus(scheduler?: AutosaveType): AutosaveStatus;
@@ -10,28 +10,18 @@ export type BlockAutosaveOptions = {
10
10
  siteId: string;
11
11
  /** Whether this entry has a route (pages have blocks, content entries don't) */
12
12
  hasRoute: boolean;
13
- owner: BlockAutosaveOwner;
14
13
  getExpectedMailingListProviderScope?: () => MailingListProviderScope | null;
15
14
  };
16
- export type BlockAutosaveOwner = Readonly<{
17
- kind: 'contentEntry';
18
- }> | Readonly<{
19
- kind: 'pageSurface';
20
- }>;
21
15
  export type BlockSaveRevisionPlan = Readonly<{
22
- kind: 'bestEffort';
23
- optimisticHash: string | null;
24
- }> | Readonly<{
25
16
  kind: 'compareAndSet';
26
17
  optimisticHash: string;
27
18
  }> | Readonly<{
28
19
  kind: 'missingRequiredRevision';
29
20
  }>;
30
- export declare function planBlockSaveRevisionForOwner(owner: BlockAutosaveOwner, optimisticHash: string | null): BlockSaveRevisionPlan;
21
+ export declare function planBlockSaveRevision(optimisticHash: string | null): BlockSaveRevisionPlan;
31
22
  /**
32
- * Hook to handle block autosave for pages.
33
- * Watches for pending block changes and debounces saves to the server.
34
- *
35
- * Only enabled for pages (hasRoute=true), as content entries don't have blocks.
23
+ * Block autosave for pages: the block family's adapter for `useValueAutosave`. Each
24
+ * block's request carries its own id, so one failure in a batch fails only that block
25
+ * (row K1). Only enabled for pages (hasRoute=true), as content entries don't have blocks.
36
26
  */
37
- export declare function useBlockAutosave({ uiStore, apiClient, siteId, hasRoute, owner, getExpectedMailingListProviderScope, }: BlockAutosaveOptions): import("./useSimpleAutosave").AutosaveHandle;
27
+ export declare function useBlockAutosave({ uiStore, apiClient, siteId, hasRoute, getExpectedMailingListProviderScope, }: BlockAutosaveOptions): import("../ui/editorUiStore").AutosaveHandle;
@@ -1,12 +1,14 @@
1
- export type DebouncedLatestSaveHandle = {
1
+ export type DebouncedLatestSaveHandle<TResult = void, TSnapshot = unknown> = {
2
2
  trigger: () => void;
3
3
  cancel: () => void;
4
- flush: () => Promise<void>;
4
+ flush: () => Promise<TResult | undefined>;
5
5
  isPending: () => boolean;
6
+ whenIdle: () => Promise<TResult | undefined>;
7
+ run: (snapshot: TSnapshot) => Promise<TResult | undefined>;
6
8
  };
7
9
  export type DebouncedLatestSaveConfig<TSnapshot, TPayload, TResult> = {
8
10
  getSnapshot: () => TSnapshot;
9
- buildPayload: (snapshot: TSnapshot) => TPayload | null | undefined;
11
+ buildPayload: (snapshot: TSnapshot, preceding?: TResult) => TPayload | null | undefined;
10
12
  save: (payload: TPayload) => Promise<TResult>;
11
13
  shouldSkip?: (snapshot: TSnapshot) => boolean;
12
14
  onSaving?: (snapshot: TSnapshot) => void;
@@ -19,6 +21,6 @@ export type DebouncedLatestSaveConfig<TSnapshot, TPayload, TResult> = {
19
21
  delay?: number;
20
22
  maxWait?: number;
21
23
  enabled?: boolean;
22
- retryDelay?: number;
23
24
  };
24
- export declare function useDebouncedLatestSave<TSnapshot, TPayload, TResult>(config: DebouncedLatestSaveConfig<TSnapshot, TPayload, TResult>): DebouncedLatestSaveHandle;
25
+ /** Timing and serial execution only. Request identity and save eligibility remain in the value store. */
26
+ export declare function useDebouncedLatestSave<TSnapshot, TPayload, TResult>(config: DebouncedLatestSaveConfig<TSnapshot, TPayload, TResult>): DebouncedLatestSaveHandle<TResult, TSnapshot>;
@@ -0,0 +1,28 @@
1
+ import type { ApiClient } from '../../../api/src/request';
2
+ import type { EditLeaseScope } from '../../../core/src/index';
3
+ import type { EditorLeaseUiState } from '../ui/editorLeaseUiState';
4
+ type LeaseUiPort = Readonly<{
5
+ getState: () => Pick<EditorLeaseUiState, 'setEditability' | 'setLeaseDiscardedChanges'>;
6
+ }>;
7
+ import type { EditLeaseLossSignal } from '../controller/editLeaseLossSignal';
8
+ type LeaseParams = Readonly<{
9
+ siteId: string;
10
+ nodeType: EditLeaseScope['nodeType'];
11
+ nodeId: string;
12
+ }>;
13
+ export type EditLeaseChangeSubscription = (scope: Pick<LeaseParams, 'nodeType' | 'nodeId'>, listener: () => void) => () => void;
14
+ export type UseEditLeaseOptions = Readonly<{
15
+ scope: LeaseParams;
16
+ apiClient: ApiClient;
17
+ uiStore: LeaseUiPort;
18
+ subscribeToLeaseChanges?: EditLeaseChangeSubscription;
19
+ onGranted?: (takingBack: boolean, isCurrent: () => boolean) => Promise<void> | void;
20
+ onAccessChanged?: () => void;
21
+ leaseLossSignal: EditLeaseLossSignal;
22
+ }>;
23
+ export declare function useEditLease({ scope, apiClient, uiStore, subscribeToLeaseChanges, onGranted, onAccessChanged, leaseLossSignal, }: UseEditLeaseOptions): {
24
+ takeOver: () => void;
25
+ retry: () => void;
26
+ recheck: () => void;
27
+ };
28
+ export {};
@@ -1,65 +1,51 @@
1
1
  import { type ContentEntrySnapshot, type RoutingHelpers } from '../../../content-model/src/index';
2
2
  import type { EditorUiStoreInstance } from '../ui/editorUiStore';
3
+ import type { LifecycleOutcome } from '../ui/stores/types';
3
4
  import type { BlockedPublishPlan } from './blockedPublishPlan';
4
- import type { PublishEntryResult } from '../services/contentEntryServices';
5
- /** Services interface for entry operations */
6
- export type EntryServices = {
7
- deleteEntry?: () => Promise<void>;
8
- };
9
- export type PublishOptions = {
10
- mode?: 'default' | 'now';
11
- };
12
- /** Definition with services */
13
- export type EntryDefinition = {
14
- services: EntryServices;
15
- publish?: {
16
- buildPayload?: (values: Record<string, unknown>, entry: ContentEntrySnapshot) => unknown;
17
- };
18
- };
5
+ import type { DiscardDraftInput, DiscardLifecycleResult, EditorDeletion, PublishLifecycleResult } from '../services/contentEntryServices';
6
+ export type PublishOptions = Readonly<{
7
+ whenUnchanged?: 'publish' | 'skip';
8
+ }>;
9
+ export type EntryActions = Readonly<{
10
+ saveDraft: () => Promise<LifecycleOutcome>;
11
+ publish: (options?: PublishOptions) => Promise<LifecycleOutcome>;
12
+ discardDraft: () => Promise<LifecycleOutcome>;
13
+ deletion: Readonly<{
14
+ kind: 'deletable';
15
+ deleteEntry: () => Promise<LifecycleOutcome>;
16
+ }> | Readonly<{
17
+ kind: 'deletedWithOwner';
18
+ }>;
19
+ }>;
19
20
  export type EntryActionsOptions<TEntry extends ContentEntrySnapshot> = {
20
21
  /** Current entry snapshot */
21
22
  entry: TEntry;
22
23
  /** UI store instance (to read latest metadata values at call time) */
23
24
  uiStore: EditorUiStoreInstance;
24
- /** Whether this entry has a route (pages vs content) */
25
- hasRoute: boolean;
26
25
  /** Routing helpers (for routable published baseline derivations). */
27
26
  routing?: RoutingHelpers;
28
27
  /** Publish mutation from react-query */
29
28
  publishMutation: {
30
- mutateAsync: (payload?: unknown) => Promise<PublishEntryResult<TEntry>>;
29
+ mutateAsync: () => Promise<PublishLifecycleResult<TEntry>>;
31
30
  };
32
31
  /** Discard draft mutation from react-query */
33
32
  discardMutation: {
34
- mutateAsync: () => Promise<TEntry>;
33
+ mutateAsync: (input: DiscardDraftInput) => Promise<DiscardLifecycleResult<TEntry>>;
35
34
  };
36
35
  /** Entry definition with services */
37
- definition: EntryDefinition;
38
- /** Function to sync entry and create snapshot */
39
- syncEntry: (nextEntry: TEntry, opts?: {
40
- clearError?: boolean;
41
- }) => {
36
+ deletion: EditorDeletion;
37
+ /** The metadata values an entry snapshot holds, as the store holds them (`normalizedMetadataBaseline`). */
38
+ metadataOf: (nextEntry: TEntry) => {
42
39
  baseline: Record<string, unknown>;
43
40
  values: Record<string, unknown>;
44
41
  };
45
- /** Function to reset form from snapshot */
46
- resetFromSnapshot: (snapshot: {
47
- baseline: Record<string, unknown>;
48
- values: Record<string, unknown>;
49
- }) => void;
50
- /** Function to set error message */
51
- setErrorMessage: (message: string | null) => void;
52
42
  setBlockedPublishPlan?: (plan: Extract<BlockedPublishPlan, {
53
43
  type: 'blocked';
54
44
  }> | null) => void;
55
45
  };
56
46
  /**
57
- * Hook to handle entry actions (publish, discard, delete).
58
- * Extracts action handler logic from the provider for better separation of concerns.
47
+ * Hook to handle entry actions (save draft, publish, discard, delete). Each returns a
48
+ * `LifecycleOutcome`; expected refusals are results, and the error banner and status
49
+ * derive from the lifecycle failure it records (issue 1553).
59
50
  */
60
- export declare function useEntryActions<TEntry extends ContentEntrySnapshot>({ entry, uiStore, hasRoute, routing, publishMutation, discardMutation, definition, syncEntry, resetFromSnapshot, setErrorMessage, setBlockedPublishPlan: setBlockedPlan, }: EntryActionsOptions<TEntry>): {
61
- saveDraft: () => Promise<void>;
62
- publish: (options?: PublishOptions) => Promise<void>;
63
- discardDraft: () => Promise<void>;
64
- deleteEntry: () => Promise<void>;
65
- };
51
+ export declare function useEntryActions<TEntry extends ContentEntrySnapshot>({ entry, uiStore, routing, publishMutation, discardMutation, deletion, metadataOf, setBlockedPublishPlan: setBlockedPlan, }: EntryActionsOptions<TEntry>): EntryActions;
@@ -1,28 +1,26 @@
1
+ import { useQueryClient } from '@tanstack/react-query';
1
2
  import type { ContentEntrySnapshot } from '../../../content-model/src/index';
2
- import type { EditorUiState } from '../ui/editorUiStore';
3
- import type { PublishEntryResult } from '../services/contentEntryServices';
4
- type StoreApi<T> = {
5
- getState: () => T;
3
+ import type { DocumentBlockState } from '@riverbankcms/api/content-entries';
4
+ import type { DiscardDraftInput, DiscardLifecycleResult, PublishLifecycleResult } from '../services/contentEntryServices';
5
+ type BlockCacheContext = {
6
+ queryClient: ReturnType<typeof useQueryClient>;
7
+ siteId: string;
8
+ type: string;
9
+ entryId: string;
6
10
  };
7
- export declare function usePublishEntryMutation<TEntry extends ContentEntrySnapshot = ContentEntrySnapshot, TPublishPayload = unknown>({ publishFn, siteId, type, entryId, isPage, pageId, uiStore, }: {
8
- publishFn?: (payload: TPublishPayload | undefined) => Promise<PublishEntryResult<TEntry>>;
11
+ export declare function reconcileBlockCache(context: BlockCacheContext, state: DocumentBlockState): void;
12
+ export declare function usePublishEntryMutation<TEntry extends ContentEntrySnapshot = ContentEntrySnapshot>({ publishFn, siteId, type, entryId, }: {
13
+ publishFn?: () => Promise<PublishLifecycleResult<TEntry>>;
9
14
  siteId: string;
10
15
  type: string;
11
16
  entryId: string;
12
- isPage?: boolean;
13
- pageId?: string;
14
- uiStore?: StoreApi<EditorUiState>;
15
- }): import("@tanstack/react-query").UseMutationResult<Readonly<{
16
- snapshot: TEntry;
17
- publishedContent?: Record<string, unknown> | null;
18
- publishedBlocks?: readonly import("../../../api/src/index").PublishedBlockBaseline[];
19
- }>, Error, TPublishPayload | undefined, unknown>;
20
- export declare function useDiscardDraftMutation<TEntry = unknown>({ discardFn, siteId, type, entryId, isPage, pageId, }: {
21
- discardFn?: () => Promise<TEntry>;
17
+ }): import("@tanstack/react-query").UseMutationResult<PublishLifecycleResult<TEntry>, Error, void, unknown>;
18
+ export declare function useDiscardDraftMutation<TEntry extends ContentEntrySnapshot>({ discardFn, siteId, type, entryId, }: {
19
+ discardFn?: (input: DiscardDraftInput) => Promise<DiscardLifecycleResult<TEntry>>;
22
20
  siteId: string;
23
21
  type: string;
24
22
  entryId: string;
25
- isPage?: boolean;
26
- pageId?: string;
27
- }): import("@tanstack/react-query").UseMutationResult<TEntry, Error, void, unknown>;
23
+ }): import("@tanstack/react-query").UseMutationResult<DiscardLifecycleResult<TEntry>, Error, Readonly<{
24
+ contentRevision: string | null;
25
+ }>, unknown>;
28
26
  export {};
@@ -1,23 +1,20 @@
1
- import type { ApiClient } from '../services';
2
- import type { LinkedContentEntryId, LinkedContentTypeKey } from '../linkedEntries/domain';
1
+ import { type LinkedContentEntryId, type LinkedContentTypeKey } from '../linkedEntries/domain';
3
2
  import type { EditorUiStoreInstance } from '../ui/editorUiStore';
4
3
  export type PendingLinkedEntrySave = Readonly<{
5
4
  entryId: LinkedContentEntryId;
6
5
  contentTypeKey: LinkedContentTypeKey;
7
6
  content: Record<string, unknown>;
8
- optimisticHash: string | null;
9
- acknowledgedVersion: number;
7
+ optimisticHash: string;
10
8
  }>;
11
9
  export type LinkedEntrySaveResult = Readonly<{
12
10
  entryId: LinkedContentEntryId;
13
11
  content: Record<string, unknown>;
14
- optimisticHash: string | null;
12
+ optimisticHash: string;
15
13
  }>;
16
14
  export type LinkedEntryAutosaveOptions = Readonly<{
17
15
  uiStore: EditorUiStoreInstance;
18
- apiClient: ApiClient;
19
16
  siteId: string;
20
17
  saveLinkedEntry?: (save: PendingLinkedEntrySave) => Promise<LinkedEntrySaveResult>;
21
18
  }>;
22
- export declare function collectPendingLinkedEntrySaves(uiStore: EditorUiStoreInstance): PendingLinkedEntrySave[];
23
- export declare function useLinkedEntryAutosave({ uiStore, apiClient, siteId, saveLinkedEntry, }: LinkedEntryAutosaveOptions): import("./useSimpleAutosave").AutosaveHandle;
19
+ /** Linked-entry autosave: the linked-entry family's adapter for `useValueAutosave`. */
20
+ export declare function useLinkedEntryAutosave(options: LinkedEntryAutosaveOptions): import("../ui/editorUiStore").AutosaveHandle;
@@ -0,0 +1,64 @@
1
+ import type { BaselineRevision, SaveFailure, SavedBlockContentVersion } from '../../../core/src/index';
2
+ import type { EditorUiState, EditorUiStoreInstance, EditorValueKey, StartedSend } from '../ui/editorUiStore';
3
+ import type { AutosaveHandle, AutosaveType } from '../ui/stores/types';
4
+ import { type FlushCheckpoint, type SendAcknowledgement } from '../sync/sendPlanning';
5
+ import type { SendMode } from '../sync/valueSync';
6
+ /** What the server stored for one request. */
7
+ export type SavedValue = Readonly<{
8
+ blockVersion?: SavedBlockContentVersion;
9
+ values: Record<string, unknown> | null;
10
+ revision: BaselineRevision;
11
+ published?: Readonly<{
12
+ kind: 'known';
13
+ values: Record<string, unknown> | null;
14
+ } | {
15
+ kind: 'unknown';
16
+ }>;
17
+ }>;
18
+ /**
19
+ * One value family's part of autosave: which scheduler it is, and how one started request
20
+ * is sent. `send` resolves with what the server stored and throws on failure.
21
+ */
22
+ export type ValueAutosaveAdapter<TSaved extends SavedValue = SavedValue> = Readonly<{
23
+ uiStore: EditorUiStoreInstance;
24
+ scheduler: AutosaveType;
25
+ send: (send: StartedSend) => Promise<TSaved>;
26
+ onSaved?: (send: StartedSend, saved: TSaved) => void;
27
+ enabled?: boolean;
28
+ delay?: number;
29
+ maxWait?: number;
30
+ }>;
31
+ /** One batch: the values to send and how a failure among them is treated (`canSend`). */
32
+ export type SendBatch = Readonly<{
33
+ keys: readonly EditorValueKey[];
34
+ mode: SendMode;
35
+ checkpoints?: readonly FlushCheckpoint[];
36
+ completed?: readonly SendAcknowledgement[];
37
+ signal?: AbortSignal;
38
+ }>;
39
+ /** A save that can't be compared-and-set: the editor never received the value's revision. */
40
+ export declare function missingRevisionError(): Error;
41
+ /** A send found the tab no longer holds the value's lease before it reached the server. */
42
+ export declare class LeaseLostError extends Error {
43
+ constructor();
44
+ }
45
+ /** Losing the lease leaves edits unsaved, not failed; they send again once writable (W1). */
46
+ export declare function saveFailureOf(error: unknown): SaveFailure;
47
+ /**
48
+ * The next batch for a scheduler: what the background would send, plus any values a
49
+ * flush asked for, which are sent explicitly so a failure is retried (row S3b). A
50
+ * requested value still has to be writable and saveable now: the lease or a block's
51
+ * validity can change between the flush's plan and this batch.
52
+ */
53
+ export declare function nextSendBatch(state: EditorUiState, scheduler: AutosaveType, requested: readonly EditorValueKey[]): SendBatch;
54
+ /**
55
+ * The whole send effect: start every planned request under its own id, send them
56
+ * together, and settle each response against its id only.
57
+ */
58
+ export declare function sendPlanned<TSaved extends SavedValue>(adapter: ValueAutosaveAdapter<TSaved>, batch: SendBatch): Promise<readonly SendAcknowledgement[]>;
59
+ /**
60
+ * The one autosave hook (issue 1553). `useDebouncedLatestSave` is the timing shell
61
+ * (debounce, max wait, one batch at a time); the store's request slots say what is
62
+ * outstanding and `planSends` says what may send.
63
+ */
64
+ export declare function useValueAutosave<TSaved extends SavedValue>(adapter: ValueAutosaveAdapter<TSaved>): AutosaveHandle;
@@ -1,10 +1,3 @@
1
- /**
2
- * Pre-publish validation for blocks.
3
- *
4
- * Validates all block content using strict mode validation before allowing publish.
5
- * This catches empty required fields and other validation errors that were allowed
6
- * during editing (draft mode) but must be fixed before publishing.
7
- */
8
1
  import type { FieldValidationDescriptor } from '../../../blocks/src/index';
9
2
  import type { EditorBlockId } from '../../../core/src/index';
10
3
  import type { EditorUiStoreInstance } from '../ui/editorUiStore';