@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
@@ -1,27 +1,12 @@
1
1
  "use client";
2
- import { $ as FooterComposerPanel, $i as resolveSdkFooterMode, A as markApplySaving, An as ThemeScope, Ar as getCuratedSiteStyle, B as setPaletteColors, Ba as DropdownMenu, Bi as findButtonStyleRecipe, Br as curatedPalettes, C as cancelPreview, Ca as PopoverContent, D as isPreviewingChange, Da as TabsContent, E as dismissWarnings, Ea as Tabs, Eo as assertNever$1, F as previewFooterLook, Ga as DropdownMenuTrigger, H as syncStyleConfiguratorState, Ha as DropdownMenuItem, Hi as updateButtonStyleHoverPreference, I as previewHeaderLayout, Ia as Collapsible, L as previewHeaderStyle, La as CollapsibleContent, Lt as BlockEditor, M as palettePreviewProjection, Mr as findFooterLook, N as previewButtonStyle, Nr as getHeaderLayout, O as markApplyFailed, Oa as TabsList, Or as curatedSiteStyles, P as previewCuratedPalette, Pr as getHeaderStyle, Q as resolvePreviewSidebarTab, R as previewSiteStyle, Ra as CollapsibleTrigger, Ri as buttonStyleHoverPreferenceValue, S as applyTypographyDraftPatch, Sa as Popover, T as deriveStyleConfiguratorCapabilities, Ta as Input, U as toggleRow, Ua as DropdownMenuLabel, Ui as updateButtonStyleSelectionChoice, Ut as useEditorUiStore, V as styleConfiguratorHistoryEntryForPersistedSelection, Va as DropdownMenuContent, Vi as resolveButtonStyleSelection, Wa as DropdownMenuSeparator, Wi as buttonStyleSelectionKey, Wt as useEditorUiStoreInstance, X as resolveStyleConfiguratorInitialSnapshot, Xa as X$1, Xi as paletteColorEntries, Ya as cn, Yi as VARIANT_ROLES, Z as createOptimisticActionRunner, Zi as paletteColorsSchema, _ as reportPreviewDesignError, _a as SelectTrigger, _n as createStoreBackend, _o as ChevronLeft, an as isAdapterReferenceKind, at as ContentFieldsForm, b as planSiteChromeSelection, ba as CalloutDescription, c as selectionSnapshotFromApplySiteStyleSelectionResponse, cn as resolvePageRouteSlug, do as LoaderCircle, eo as Tablet, f as usePreviewDesignCoordinator, fn as ManifestForm, g as PREVIEW_DESIGN_SAVE_ERROR_MESSAGE, ga as SelectItem, go as ChevronRight, ha as SelectContent, hn as FormRenderer, j as openRow, k as markApplySaved, ka as TabsTrigger, l as deriveSiteStylePreviewUpdate, li as ThemedButtonSpecimen, ln as resolveContentTitle, lo as Monitor, lt as useEntryController, ma as Select, mn as createManifestValidation, n as useSiteChromeCustomizeOptional, no as Smartphone, ot as useUISelector, qa as Button, ro as SlidersHorizontal, s as buildApplySiteStyleSelectionBody, sn as deriveRouteMetadataPresentation, u as planConfiguratorPreview, uo as Maximize2, v as buildSiteChromeSelectionModels, va as SelectValue, vo as ChevronDown, w as createStyleConfiguratorState, wa as PopoverTrigger, wo as unsafeAsEditorBlockId, x as applyResolvedSelections, xa as SearchInput, xn as listEntryPageContentSlots, y as cycleSiteChromeSelectionId, ya as Callout, yo as Check, z as resetTypographyToSaved, za as Surface, zi as buttonStyleSelectionParameterValue } from "./SiteChromeCustomizeContext-DEACFH9m.mjs";
3
- import { d as unwrapResponse, f as getDashboardUrl, r as usePreviewAuth } from "./previewAuthStore-h5IgbSp4.mjs";
4
- import { t as Separator } from "./separator-BpHS1KZK.mjs";
5
- import { S as getSiteFontsStorageUrl, _ as usePreviewBlockCustomizeSelectionOptional, b as buildFontPreviewUrl, d as buildPreviewDashboardSetupUrl, f as resolvePreviewDashboardSetupHandoff, g as useBlockCustomizeControls, h as usePreviewSiteFontStorageUrl, m as resolvePreviewSidebarChromeModel, p as resolvePreviewEditorGuidanceModel, u as canInspectSiteStyle, v as PreviewFormProvider, x as generateFontFaceCss, y as previewWidgetOverrides } from "./SdkPreviewModeRuntime-h2ti3Hch.mjs";
2
+ import { $ as FooterComposerPanel, $i as VARIANT_ROLES, $o as valueStatus, $t as createStoreBackend, A as markApplySaving, Ai as curatedSiteStyles, An as listPageSurfaceContentSlots, B as setPaletteColors, Ba as CalloutDescription, Bn as resolvePageRouteSlug, C as cancelPreview, D as isPreviewingChange, Do as Maximize2, E as dismissWarnings, Eo as Monitor, F as previewFooterLook, Fa as SelectContent, Fn as routeLifecycleContext, Fo as ChevronDown, Ga as Input, Gi as curatedPalettes, H as syncStyleConfiguratorState, Ha as Popover, Hn as useEditorUiStore, I as previewHeaderLayout, Ia as SelectItem, Ii as resolveSdkFooterMode, Io as Check, Ja as TabsList, Ji as findButtonStyleRecipe, Jt as BlockEditor, Ka as Tabs, Ki as buttonStyleHoverPreferenceValue, L as previewHeaderStyle, La as SelectTrigger, Li as findFooterLook, Ln as isAdapterReferenceKind, Lo as Button, M as palettePreviewProjection, Mi as getCuratedSiteStyle, N as previewButtonStyle, No as ChevronRight, O as markApplyFailed, On as createManifestValidation, Oo as LoaderCircle, P as previewCuratedPalette, Pa as Select, Po as ChevronLeft, Q as resolvePreviewSidebarTab, Qi as buttonStyleSelectionKey, Qo as syncStateOf, Qt as FormRenderer, R as previewSiteStyle, Ra as SelectValue, Ri as getHeaderLayout, S as applyTypographyDraftPatch, T as deriveStyleConfiguratorCapabilities, U as toggleRow, Ua as PopoverContent, Un as useEditorUiStoreInstance, Uo as canWriteLinkedEntry, V as styleConfiguratorHistoryEntryForPersistedSelection, Va as SearchInput, Vn as resolveContentTitle, Vo as isEdited, Wa as PopoverTrigger, X as resolveStyleConfiguratorInitialSnapshot, Xi as updateButtonStyleHoverPreference, Ya as TabsTrigger, Yi as resolveButtonStyleSelection, Z as createOptimisticActionRunner, Zi as updateButtonStyleSelectionChoice, Zo as displayedValues, Zt as ManifestForm, _ as reportPreviewDesignError, _a as paletteColorEntries, _o as Tablet, ao as Surface, at as ContentFieldsForm, b as planSiteChromeSelection, bo as SlidersHorizontal, c as selectionSnapshotFromApplySiteStyleSelectionResponse, co as DropdownMenuItem, do as DropdownMenuTrigger, f as usePreviewDesignCoordinator, ft as useAutosaveStatus, g as PREVIEW_DESIGN_SAVE_ERROR_MESSAGE, io as CollapsibleTrigger, ir as toEditorBlockItem, j as openRow, jn as blocksKeys, jr as ThemedButtonSpecimen, k as markApplySaved, kn as listEntryPageContentSlots, l as deriveSiteStylePreviewUpdate, lo as DropdownMenuLabel, lt as useEntryController, n as useSiteChromeCustomizeOptional, no as Collapsible, oo as DropdownMenu, ot as useUISelector, po as X$1, qa as TabsContent, qi as buttonStyleSelectionParameterValue, ro as CollapsibleContent, s as buildApplySiteStyleSelectionBody, so as DropdownMenuContent, sr as ThemeScope, ts as assertNever$1, u as planConfiguratorPreview, uo as DropdownMenuSeparator, v as buildSiteChromeSelectionModels, va as paletteColorsSchema, vt as LinkedEntryLeaseBanner, w as createStyleConfiguratorState, x as applyResolvedSelections, y as cycleSiteChromeSelectionId, yo as Smartphone, z as resetTypographyToSaved, za as Callout, zi as getHeaderStyle, zn as deriveRouteMetadataPresentation, zo as cn } from "./SiteChromeCustomizeContext-CFJYh6vo.mjs";
3
+ import { d as unwrapResponse, f as getDashboardUrl, r as usePreviewAuth } from "./previewAuthStore-BXXF3hhW.mjs";
4
+ import { S as getSiteFontsStorageUrl, _ as usePreviewBlockCustomizeSelectionOptional, b as buildFontPreviewUrl, d as buildPreviewDashboardSetupUrl, f as resolvePreviewDashboardSetupHandoff, g as useBlockCustomizeControls, h as usePreviewSiteFontStorageUrl, m as resolvePreviewSidebarChromeModel, p as resolvePreviewEditorGuidanceModel, u as canInspectSiteStyle, v as PreviewFormProvider, x as generateFontFaceCss, y as previewWidgetOverrides } from "./SdkPreviewModeRuntime-DJ6utQ_R.mjs";
5
+ import { t as Separator } from "./separator-CuNhBAhS.mjs";
6
6
  import React, { createContext, forwardRef, useCallback, useContext, useEffect, useId, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore, useTransition } from "react";
7
7
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
8
8
  import { useQuery, useQueryClient } from "@tanstack/react-query";
9
9
  import { useRouter } from "next/navigation.js";
10
- //#region ../preview-next/src/client/preview/footerInspection.ts
11
- /** Shared by sidebar routing and the footer panel's initial editing target. */
12
- function resolveFooterInspection(inspection) {
13
- return inspection?.kind === "footer" || inspection?.kind === "footer-module" ? inspection : null;
14
- }
15
- function footerComposerInspectionProps(inspection) {
16
- return {
17
- initialTarget: inspection?.kind === "footer-module" ? {
18
- kind: "module",
19
- moduleId: inspection.moduleId
20
- } : { kind: "overview" },
21
- initialTargetRequestId: inspection?.requestId
22
- };
23
- }
24
- //#endregion
25
10
  //#region ../../node_modules/.pnpm/react-colorful@5.7.0_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/react-colorful/dist/index.mjs
26
11
  function u() {
27
12
  return (u = Object.assign || function(e) {
@@ -818,6 +803,21 @@ function normalizeFieldUi(value) {
818
803
  return value;
819
804
  }
820
805
  //#endregion
806
+ //#region ../preview-next/src/client/preview/footerInspection.ts
807
+ /** Shared by sidebar routing and the footer panel's initial editing target. */
808
+ function resolveFooterInspection(inspection) {
809
+ return inspection?.kind === "footer" || inspection?.kind === "footer-module" ? inspection : null;
810
+ }
811
+ function footerComposerInspectionProps(inspection) {
812
+ return {
813
+ initialTarget: inspection?.kind === "footer-module" ? {
814
+ kind: "module",
815
+ moduleId: inspection.moduleId
816
+ } : { kind: "overview" },
817
+ initialTargetRequestId: inspection?.requestId
818
+ };
819
+ }
820
+ //#endregion
821
821
  //#region ../preview-next/src/client/preview/PreviewZoomControls.tsx
822
822
  function PreviewZoomControls({ zoom, onZoomChange, disabled }) {
823
823
  return /* @__PURE__ */ jsxs(Select, {
@@ -1075,13 +1075,37 @@ function resolveSubrouteNotice(ctx, args) {
1075
1075
  const EMPTY_BLOCKS = [];
1076
1076
  const EMPTY_SLOTS = [];
1077
1077
  const EMPTY_SELECTION = { kind: "none" };
1078
- function entryPageContentSlotsKey(siteId, typeKey, entryId) {
1079
- return [
1080
- "preview-entry-page-content-slots",
1078
+ /**
1079
+ * The shared slot-list keys, so the controller's refreshes (a lease grant, a
1080
+ * discard that reverts sections) re-read this panel's slots.
1081
+ */
1082
+ function pageContentSlotsKey(siteId, typeKey, entryId, pageSurfaceId) {
1083
+ return pageSurfaceId ? blocksKeys.surfaceSlots(siteId, pageSurfaceId) : blocksKeys.entrySlots(siteId, typeKey, entryId);
1084
+ }
1085
+ function loadContentSlots(apiClient, siteId, typeKey, entryId, pageSurfaceId) {
1086
+ return pageSurfaceId ? listPageSurfaceContentSlots(apiClient, {
1081
1087
  siteId,
1082
- typeKey,
1088
+ pageSurfaceId
1089
+ }) : listEntryPageContentSlots(apiClient, {
1090
+ siteId,
1091
+ type: typeKey,
1083
1092
  entryId
1084
- ];
1093
+ });
1094
+ }
1095
+ function slotOwner(slot, typeKey, entryId, pageSurfaceId) {
1096
+ if (!pageSurfaceId) return {
1097
+ kind: "entry-slot",
1098
+ type: typeKey,
1099
+ entryId,
1100
+ slotKey: slot.slotKey
1101
+ };
1102
+ if (!("compositionHash" in slot)) throw new Error("Page surface slot is missing its revision");
1103
+ return {
1104
+ kind: "surface-slot",
1105
+ pageSurfaceId,
1106
+ slotKey: slot.slotKey,
1107
+ compositionHash: slot.compositionHash
1108
+ };
1085
1109
  }
1086
1110
  function getAllowedBlockKinds(slot) {
1087
1111
  return slot.allowedBlocks.blockKinds;
@@ -1126,26 +1150,23 @@ function updateBlocksWithSavedContent(blocks, blockId, content) {
1126
1150
  function getErrorMessage(error) {
1127
1151
  return error instanceof Error ? error.message : "Unable to load Page Content.";
1128
1152
  }
1129
- function EntrySlotBlockEditorPanel({ siteId, dashboardBaseUrl, typeKey, entryId, theme = null, apiClient, sdkConfig = null, widgets }) {
1153
+ function EntrySlotBlockEditorPanel({ siteId, dashboardBaseUrl, typeKey, entryId, pageSurfaceId, theme = null, apiClient, sdkConfig = null, widgets }) {
1130
1154
  const router = useRouter();
1131
1155
  const queryClient = useQueryClient();
1132
1156
  const uiStore = useEditorUiStoreInstance();
1133
1157
  const blockEditorRef = useRef(null);
1134
1158
  const focusRequest = useEditorUiStore((state) => state.focusRequest);
1135
- const blockAutosaveStatus = useEditorUiStore((state) => state.autosave.blocks.status);
1159
+ const blockAutosaveStatus = useAutosaveStatus("blocks").status;
1136
1160
  const [slotSelection, setSlotSelection] = useState(EMPTY_SELECTION);
1137
- const queryKey = useMemo(() => entryPageContentSlotsKey(siteId, typeKey, entryId), [
1161
+ const queryKey = useMemo(() => pageContentSlotsKey(siteId, typeKey, entryId, pageSurfaceId), [
1138
1162
  entryId,
1163
+ pageSurfaceId,
1139
1164
  siteId,
1140
1165
  typeKey
1141
1166
  ]);
1142
1167
  const slotsQuery = useQuery({
1143
1168
  queryKey,
1144
- queryFn: () => listEntryPageContentSlots(apiClient, {
1145
- siteId,
1146
- type: typeKey,
1147
- entryId
1148
- }),
1169
+ queryFn: () => loadContentSlots(apiClient, siteId, typeKey, entryId, pageSurfaceId),
1149
1170
  staleTime: 3e4
1150
1171
  });
1151
1172
  const handleBlockSave = useCallback((blockId, content) => {
@@ -1175,7 +1196,17 @@ function EntrySlotBlockEditorPanel({ siteId, dashboardBaseUrl, typeKey, entryId,
1175
1196
  const warnings = slotsQuery.data?.warnings ?? [];
1176
1197
  const selection = useMemo(() => resolveSlotSelection(slotSelection, slots), [slotSelection, slots]);
1177
1198
  const selectedSlot = useMemo(() => findSelectedSlot(selection, slots), [selection, slots]);
1178
- const selectedBlocks = selectedSlot?.blocks ?? EMPTY_BLOCKS;
1199
+ const selectedBlocks = useMemo(() => (selectedSlot?.blocks ?? EMPTY_BLOCKS).map(toEditorBlockItem), [selectedSlot]);
1200
+ const collectionReads = useMemo(() => slots.map((slot) => ({
1201
+ owner: slotOwner(slot, typeKey, entryId, pageSurfaceId),
1202
+ currentBlockIds: slot.blocks.map((block) => block.id),
1203
+ publishedBlockIds: slot.publishedBlockIds
1204
+ })), [
1205
+ slots,
1206
+ typeKey,
1207
+ entryId,
1208
+ pageSurfaceId
1209
+ ]);
1179
1210
  const focusRequestedBlockField = useCallback((editor) => {
1180
1211
  if (!editor) return false;
1181
1212
  if (!focusRequest?.blockId) return false;
@@ -1227,13 +1258,12 @@ function EntrySlotBlockEditorPanel({ siteId, dashboardBaseUrl, typeKey, entryId,
1227
1258
  ref: handleBlockEditorRef,
1228
1259
  siteId,
1229
1260
  dashboardBaseUrl,
1230
- owner: {
1231
- kind: "entry-slot",
1232
- type: typeKey,
1233
- entryId,
1234
- slotKey: selectedSlot.slotKey
1261
+ owner: slotOwner(selectedSlot, typeKey, entryId, pageSurfaceId),
1262
+ source: {
1263
+ kind: "server",
1264
+ blocks: selectedBlocks
1235
1265
  },
1236
- blocks: [...selectedBlocks],
1266
+ collectionReads,
1237
1267
  apiClient,
1238
1268
  uiStore,
1239
1269
  theme,
@@ -1263,7 +1293,11 @@ function EntrySlotBlockEditorPanel({ siteId, dashboardBaseUrl, typeKey, entryId,
1263
1293
  value: selectedSlot.slotKey,
1264
1294
  onValueChange: async (nextSlotKey) => {
1265
1295
  if (blockAutosaveStatus === "saving") return;
1266
- await uiStore.getState().autosave.saveNow(["blocks"]);
1296
+ const blockKeys = uiStore.getState().drafts.inspect().map((draft) => ({
1297
+ kind: "block",
1298
+ blockId: draft.id
1299
+ }));
1300
+ await uiStore.getState().autosave.flushValues("save-draft", { keys: blockKeys }).catch(() => null);
1267
1301
  setSlotSelection({
1268
1302
  kind: "selected",
1269
1303
  slotKey: nextSlotKey
@@ -1285,7 +1319,7 @@ function EntrySlotBlockEditorPanel({ siteId, dashboardBaseUrl, typeKey, entryId,
1285
1319
  }
1286
1320
  //#endregion
1287
1321
  //#region ../preview-next/src/client/preview/EntryEditorPanel.tsx
1288
- function EntryEditorPanel({ siteId, dashboardBaseUrl, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, theme, apiClient, entrySubrouteContext, metadataPanel, linkedEntrySection, widgets, sdkConfig, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange }) {
1322
+ function EntryEditorPanel({ siteId, dashboardBaseUrl, entryData, pageSurfaceId, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, theme, apiClient, entrySubrouteContext, metadataPanel, linkedEntrySection, widgets, sdkConfig, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange }) {
1289
1323
  const [contentOpen, setContentOpen] = useState(true);
1290
1324
  const [pageContentOpen, setPageContentOpen] = useState(false);
1291
1325
  const [templateOpen, setTemplateOpen] = useState(false);
@@ -1350,7 +1384,6 @@ function EntryEditorPanel({ siteId, dashboardBaseUrl, entryData, contentTypeSche
1350
1384
  theme: theme ?? null,
1351
1385
  previewClient: apiClient,
1352
1386
  children: /* @__PURE__ */ jsx(ContentFieldsForm, {
1353
- siteId,
1354
1387
  form: contentFormSpec,
1355
1388
  initialValues: contentInitialValues,
1356
1389
  widgets
@@ -1387,6 +1420,7 @@ function EntryEditorPanel({ siteId, dashboardBaseUrl, entryData, contentTypeSche
1387
1420
  dashboardBaseUrl,
1388
1421
  typeKey: entryData.type,
1389
1422
  entryId: entryData.id,
1423
+ pageSurfaceId,
1390
1424
  theme,
1391
1425
  apiClient,
1392
1426
  sdkConfig: sdkConfig ?? null,
@@ -1617,14 +1651,38 @@ function formatBlockKindLabel(blockKind) {
1617
1651
  //#endregion
1618
1652
  //#region ../preview-next/src/client/preview/PageBlockEditorPanel.tsx
1619
1653
  function usePageBlockEditorPanelControls(uiStoreForBlockEditor) {
1620
- const customizeSelection = usePreviewBlockCustomizeSelectionOptional();
1654
+ const customize = useBlockCustomizeNavigation();
1621
1655
  const [designOpen, setDesignOpen] = useState(false);
1622
- const [customizeOpen, setCustomizeOpen] = useState(false);
1623
1656
  const [contentOpen, setContentOpen] = useState(true);
1624
1657
  const [detailsOpen, setDetailsOpen] = useState(false);
1625
1658
  const pendingDesignOpenRequest = useUISelector(uiStoreForBlockEditor, (state) => state.previewDesignOpenRequest);
1626
1659
  const [designOpenRequest, setDesignOpenRequest] = useState(null);
1627
1660
  const designSectionRef = useRef(null);
1661
+ useEffect(() => {
1662
+ if (!pendingDesignOpenRequest) return;
1663
+ setDesignOpenRequest(pendingDesignOpenRequest);
1664
+ setDesignOpen(true);
1665
+ designSectionRef.current?.scrollIntoView({
1666
+ block: "start",
1667
+ behavior: "smooth"
1668
+ });
1669
+ uiStoreForBlockEditor.getState().consumePreviewDesignOpenRequest(pendingDesignOpenRequest.requestId);
1670
+ }, [pendingDesignOpenRequest, uiStoreForBlockEditor]);
1671
+ return {
1672
+ ...customize,
1673
+ designOpen,
1674
+ setDesignOpen,
1675
+ contentOpen,
1676
+ setContentOpen,
1677
+ detailsOpen,
1678
+ setDetailsOpen,
1679
+ designOpenRequest,
1680
+ designSectionRef
1681
+ };
1682
+ }
1683
+ function useBlockCustomizeNavigation() {
1684
+ const customizeSelection = usePreviewBlockCustomizeSelectionOptional();
1685
+ const [customizeOpen, setCustomizeOpen] = useState(false);
1628
1686
  const customizeSectionRef = useRef(null);
1629
1687
  const selectionKind = customizeSelection?.selection.kind;
1630
1688
  const selectionRequestId = customizeSelection?.selection.kind === "selected" ? customizeSelection.selection.requestId : 0;
@@ -1632,46 +1690,39 @@ function usePageBlockEditorPanelControls(uiStoreForBlockEditor) {
1632
1690
  customizeSelection?.inspectBlock(blockId);
1633
1691
  setCustomizeOpen(true);
1634
1692
  }, [customizeSelection]);
1693
+ const handleCustomizeMenuClose = useCallback(() => {
1694
+ customizeSectionRef.current?.focus({ preventScroll: true });
1695
+ customizeSectionRef.current?.scrollIntoView({
1696
+ block: "start",
1697
+ behavior: "smooth"
1698
+ });
1699
+ }, []);
1635
1700
  const blockActionPresentation = useMemo(() => customizeSelection ? {
1636
1701
  kind: "menu",
1637
1702
  customize: {
1638
1703
  kind: "external",
1639
- onSelect: handleCustomizeBlock
1704
+ onSelect: handleCustomizeBlock,
1705
+ onAfterMenuClose: handleCustomizeMenuClose
1640
1706
  }
1641
1707
  } : {
1642
1708
  kind: "menu",
1643
1709
  customize: { kind: "modal" }
1644
- }, [customizeSelection, handleCustomizeBlock]);
1645
- useEffect(() => {
1646
- if (selectionKind === "selected") {
1647
- setCustomizeOpen(true);
1648
- customizeSectionRef.current?.scrollIntoView({
1649
- block: "start",
1650
- behavior: "smooth"
1651
- });
1652
- }
1653
- }, [selectionKind, selectionRequestId]);
1710
+ }, [
1711
+ customizeSelection,
1712
+ handleCustomizeBlock,
1713
+ handleCustomizeMenuClose
1714
+ ]);
1654
1715
  useEffect(() => {
1655
- if (!pendingDesignOpenRequest) return;
1656
- setDesignOpenRequest(pendingDesignOpenRequest);
1657
- setDesignOpen(true);
1658
- designSectionRef.current?.scrollIntoView({
1716
+ if (selectionKind !== "selected") return;
1717
+ setCustomizeOpen(true);
1718
+ customizeSectionRef.current?.scrollIntoView({
1659
1719
  block: "start",
1660
1720
  behavior: "smooth"
1661
1721
  });
1662
- uiStoreForBlockEditor.getState().consumePreviewDesignOpenRequest(pendingDesignOpenRequest.requestId);
1663
- }, [pendingDesignOpenRequest, uiStoreForBlockEditor]);
1722
+ }, [selectionKind, selectionRequestId]);
1664
1723
  return {
1665
- designOpen,
1666
- setDesignOpen,
1667
1724
  customizeOpen,
1668
1725
  setCustomizeOpen,
1669
- contentOpen,
1670
- setContentOpen,
1671
- detailsOpen,
1672
- setDetailsOpen,
1673
- designOpenRequest,
1674
- designSectionRef,
1675
1726
  customizeSectionRef,
1676
1727
  blockActionPresentation
1677
1728
  };
@@ -1698,7 +1749,7 @@ function PageBlockEditorPanel(props) {
1698
1749
  bookingOfferingPresets: props.bookingOfferingPresets,
1699
1750
  sdkConfig: props.sdkConfig ?? null,
1700
1751
  children: /* @__PURE__ */ jsxs("div", {
1701
- className: `min-h-0 flex-1 space-y-0 ${takeover ? "flex flex-col overflow-hidden" : "overflow-auto"}`,
1752
+ className: `min-h-0 flex-1 space-y-0 ${takeover ? "flex flex-col overflow-hidden" : "overflow-x-hidden overflow-y-auto"}`,
1702
1753
  "data-design-takeover-active": takeover ? "true" : "false",
1703
1754
  children: [
1704
1755
  /* @__PURE__ */ jsx(LinkedEntrySection, {
@@ -1736,7 +1787,7 @@ function PageBlockEditorPanel(props) {
1736
1787
  kind: "page",
1737
1788
  pageId: props.pageId
1738
1789
  },
1739
- blocks: props.blockItems,
1790
+ source: { kind: "mounted" },
1740
1791
  uiStore: props.uiStoreForBlockEditor,
1741
1792
  apiClient: props.apiClient,
1742
1793
  onBlocksChange: props.onBlocksChange,
@@ -1770,11 +1821,12 @@ function StandardSection({ label, open, onOpenChange, hidden, sectionRef, childr
1770
1821
  open,
1771
1822
  onOpenChange,
1772
1823
  children: /* @__PURE__ */ jsxs("div", {
1773
- ref: sectionRef,
1774
1824
  className: "border-b",
1775
1825
  children: [/* @__PURE__ */ jsx(CollapsibleTrigger, {
1776
1826
  asChild: true,
1777
1827
  children: /* @__PURE__ */ jsxs("div", {
1828
+ ref: sectionRef,
1829
+ tabIndex: sectionRef ? 0 : void 0,
1778
1830
  className: "flex cursor-pointer items-center gap-2 px-4 py-3 hover:bg-accent/40",
1779
1831
  children: [/* @__PURE__ */ jsx(ChevronRight, { className: `h-4 w-4 transition ${open ? "rotate-90" : ""}` }), /* @__PURE__ */ jsx("span", {
1780
1832
  className: "text-sm font-semibold",
@@ -4423,7 +4475,10 @@ function isRecord(value) {
4423
4475
  }
4424
4476
  //#endregion
4425
4477
  //#region ../preview-next/src/client/preview/PreviewEditorSidebar.tsx
4426
- function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl = null, pageId, entryData, contentTypeSchema, referenceContentTypeKeys = [], draftContent, currentTemplate, theme, themeId = null, themeSelectionId = null, themeSelectionVersion = null, themeSelectionUpdatedAt = null, themeSelectionButtonStyleSelection = null, themeSelectionButtonStyleRepairs, themeSelectionHeaderSelection = null, themeSelectionFooterLookId = null, themeSelectionHeaderLogo, apiClient, bearerToken, entrySubrouteContext, assistantPanel, sdkConfig, bookingOfferingPresets, siteStyleAccess = { kind: "hidden" }, activeTab, onTabChange, onClose, onFooterSaved, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange }) {
4478
+ function assistantTabAvailable(input) {
4479
+ return input.enabled && Boolean(input.pageId && input.bearerToken && input.canEdit);
4480
+ }
4481
+ function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl = null, pageId, pageNodeType, entryData, contentTypeSchema, referenceContentTypeKeys = [], draftContent, currentTemplate, theme, themeId = null, themeSelectionId = null, themeSelectionVersion = null, themeSelectionUpdatedAt = null, themeSelectionButtonStyleSelection = null, themeSelectionButtonStyleRepairs, themeSelectionHeaderSelection = null, themeSelectionFooterLookId = null, themeSelectionHeaderLogo, apiClient, bearerToken, entrySubrouteContext, assistantPanel, sdkConfig, bookingOfferingPresets, siteStyleAccess = { kind: "hidden" }, activeTab, onTabChange, onClose, onFooterSaved, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange }) {
4427
4482
  const controller = useEntryController();
4428
4483
  const controllerBlocks = controller.blocks;
4429
4484
  const uiStore = useEditorUiStoreInstance();
@@ -4449,28 +4504,16 @@ function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl = null, page
4449
4504
  surfaceId
4450
4505
  ]);
4451
4506
  const showAssistantTab = Boolean(assistantPanel);
4452
- const assistantAvailable = showAssistantTab && Boolean(pageId && bearerToken && canEdit);
4507
+ const assistantAvailable = assistantTabAvailable({
4508
+ enabled: showAssistantTab,
4509
+ pageId,
4510
+ bearerToken,
4511
+ canEdit
4512
+ });
4453
4513
  const effectiveActiveTab = showAssistantTab ? resolvePreviewSidebarTab(activeTab) : "editor";
4454
4514
  const blockItems = useMemo(() => controllerBlocks.list, [controllerBlocks.list]);
4455
4515
  const blockEditorRef = useRef(null);
4456
4516
  const contentFormWidgets = useMemo(() => previewWidgetOverrides, []);
4457
- const handleBlocksChange = useCallback((nextItems) => {
4458
- controllerBlocks.actions.setList(nextItems);
4459
- const drafts = uiStore.getState().drafts;
4460
- const extractData = (content) => {
4461
- if (!content || typeof content !== "object") return null;
4462
- const obj = content;
4463
- if ("data" in obj && obj.data && typeof obj.data === "object") return obj.data;
4464
- return obj;
4465
- };
4466
- for (const block of nextItems) {
4467
- if (!block.id) continue;
4468
- const baseline = extractData(block.content ?? block.draftContent ?? block.publishedContent ?? null);
4469
- const blockId = unsafeAsEditorBlockId(block.id);
4470
- if (drafts.getBlockSnapshot(blockId)) drafts.updateBlockBaseline(blockId, baseline, { kind: block.kind });
4471
- else drafts.initNewBlock(blockId, baseline, { kind: block.kind });
4472
- }
4473
- }, [controllerBlocks.actions, uiStore]);
4474
4517
  useEffect(() => {
4475
4518
  if (entryData) return;
4476
4519
  const req = focusRequest;
@@ -4488,10 +4531,12 @@ function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl = null, page
4488
4531
  return /* @__PURE__ */ jsx(PreviewMetadataPanel, {
4489
4532
  ownerKind: entryData ? "content" : "page",
4490
4533
  contentTypeKey: entryData?.type ?? null,
4491
- entry: controller.entry
4534
+ entry: controller.entry,
4535
+ statusMessage: controller.toolbar.publishedMessage ?? null
4492
4536
  });
4493
4537
  }, [
4494
4538
  controller.entry,
4539
+ controller.toolbar.publishedMessage,
4495
4540
  entryData,
4496
4541
  pageId
4497
4542
  ]);
@@ -4525,6 +4570,7 @@ function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl = null, page
4525
4570
  siteId,
4526
4571
  dashboardBaseUrl,
4527
4572
  entryData,
4573
+ pageSurfaceId: pageNodeType === "page_surface" ? pageId : null,
4528
4574
  contentTypeSchema,
4529
4575
  referenceContentTypeKeys,
4530
4576
  draftContent,
@@ -4551,7 +4597,7 @@ function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl = null, page
4551
4597
  blockItems,
4552
4598
  uiStoreForBlockEditor,
4553
4599
  blockEditorRef,
4554
- onBlocksChange: handleBlocksChange,
4600
+ onBlocksChange: controllerBlocks.actions.setList,
4555
4601
  metadataPanel: metadataSectionContent,
4556
4602
  designTakeoverActive,
4557
4603
  designPanel: canInspectSiteStyle(siteStyleAccess) ? /* @__PURE__ */ jsx(StyleConfigurator, {
@@ -4651,10 +4697,33 @@ function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl = null, page
4651
4697
  })
4652
4698
  });
4653
4699
  }
4654
- function PreviewMetadataPanel({ ownerKind, contentTypeKey, entry }) {
4655
- const uiStore = useEditorUiStoreInstance();
4700
+ function PreviewMetadataPanel({ ownerKind, contentTypeKey, entry, statusMessage }) {
4701
+ const metadataPresentation = usePreviewMetadataPresentation(ownerKind, contentTypeKey, entry);
4702
+ const manifest = metadataPresentation.manifest;
4703
+ const backend = usePreviewMetadataBackend(manifest, routeLifecycleContext(entry)?.draftStatus ?? "draft");
4704
+ return /* @__PURE__ */ jsxs("div", {
4705
+ className: "space-y-4",
4706
+ children: [
4707
+ metadataPresentation.kind === "page-homepage" ? /* @__PURE__ */ jsx("div", {
4708
+ className: "inline-flex rounded-md bg-muted px-2 py-1 text-xs font-medium text-muted-foreground",
4709
+ children: "Homepage"
4710
+ }) : null,
4711
+ statusMessage ? /* @__PURE__ */ jsx("p", {
4712
+ className: "text-xs text-muted-foreground",
4713
+ "data-testid": "preview-metadata-status",
4714
+ children: statusMessage
4715
+ }) : null,
4716
+ /* @__PURE__ */ jsx(ManifestForm, {
4717
+ manifest,
4718
+ backend,
4719
+ className: "space-y-4"
4720
+ })
4721
+ ]
4722
+ });
4723
+ }
4724
+ function usePreviewMetadataPresentation(ownerKind, contentTypeKey, entry) {
4656
4725
  const currentSlug = useEditorUiStore((state) => state.metadata.getAtPath("draftSlug")) ?? void 0;
4657
- const metadataPresentation = useMemo(() => {
4726
+ return useMemo(() => {
4658
4727
  if (ownerKind === "content") return deriveRouteMetadataPresentation({
4659
4728
  kind: "content",
4660
4729
  typeKey: contentTypeKey
@@ -4671,33 +4740,89 @@ function PreviewMetadataPanel({ ownerKind, contentTypeKey, entry }) {
4671
4740
  entry,
4672
4741
  ownerKind
4673
4742
  ]);
4674
- const manifest = metadataPresentation.manifest;
4675
- const isHomepage = metadataPresentation.kind === "page-homepage";
4743
+ }
4744
+ /** The metadata form's backend; slug auto-generation reads the snapshot's status from its read-only context (row SL1). */
4745
+ function usePreviewMetadataBackend(manifest, draftStatus) {
4746
+ const uiStore = useEditorUiStoreInstance();
4676
4747
  const validation = useMemo(() => createManifestValidation(manifest), [manifest]);
4677
- const backend = useMemo(() => createStoreBackend({
4748
+ return useMemo(() => createStoreBackend({
4678
4749
  scope: "metadata",
4679
4750
  store: uiStore,
4751
+ context: { draftStatus },
4680
4752
  validateFn: (values) => {
4681
4753
  const result = validation.schema.safeParse(values);
4682
- if (!result.success) return result.error.issues;
4683
- return [];
4754
+ return result.success ? [] : result.error.issues;
4684
4755
  }
4685
- }), [uiStore, validation]);
4756
+ }), [
4757
+ draftStatus,
4758
+ uiStore,
4759
+ validation
4760
+ ]);
4761
+ }
4762
+ function LinkedEntryEditorPanel({ siteId, apiClient, theme, widgets, entry, fields }) {
4763
+ const uiStore = useEditorUiStoreInstance();
4764
+ const canWrite = useUISelector(uiStore, (state) => canWriteLinkedEntry(state, entry.meta.entryId));
4765
+ const { manifest, backend } = useLinkedEntryForm(entry, fields, widgets);
4766
+ const syncState = syncStateOf(entry.sync);
4767
+ const errorMessage = syncState.kind === "failed" ? syncState.error : null;
4768
+ const dirty = isEdited(entry.sync);
4769
+ const isSaving = valueStatus(entry.sync) === "saving";
4770
+ const displayTitle = resolveContentTitle(displayedValues(entry.sync), entry.meta.titleField, entry.meta.title);
4686
4771
  return /* @__PURE__ */ jsxs("div", {
4687
- className: "space-y-4",
4688
- children: [isHomepage ? /* @__PURE__ */ jsx("div", {
4689
- className: "inline-flex rounded-md bg-muted px-2 py-1 text-xs font-medium text-muted-foreground",
4690
- children: "Homepage"
4691
- }) : null, /* @__PURE__ */ jsx(ManifestForm, {
4692
- manifest,
4693
- backend,
4694
- className: "space-y-4"
4695
- })]
4772
+ className: "bg-muted/20",
4773
+ children: [
4774
+ /* @__PURE__ */ jsx(LinkedEntryLeaseBanner, { entryId: entry.meta.entryId }),
4775
+ /* @__PURE__ */ jsxs("div", {
4776
+ className: "flex items-start justify-between gap-3 px-4 py-3",
4777
+ children: [/* @__PURE__ */ jsxs("div", {
4778
+ className: "min-w-0",
4779
+ children: [/* @__PURE__ */ jsx("div", {
4780
+ className: "truncate text-sm font-medium",
4781
+ children: displayTitle
4782
+ }), /* @__PURE__ */ jsx("p", {
4783
+ className: "mt-1 text-xs leading-5 text-muted-foreground",
4784
+ children: "Changes update this linked entry wherever it appears."
4785
+ })]
4786
+ }), /* @__PURE__ */ jsx("div", {
4787
+ className: "flex shrink-0 items-center gap-2",
4788
+ children: /* @__PURE__ */ jsx(Button, {
4789
+ type: "button",
4790
+ variant: "outline",
4791
+ size: "sm",
4792
+ onClick: () => {
4793
+ if (dirty) uiStore.getState().linkedEntries.discard(entry.meta.entryId);
4794
+ else uiStore.getState().linkedEntries.close();
4795
+ },
4796
+ children: dirty ? "Discard" : "Close"
4797
+ })
4798
+ })]
4799
+ }),
4800
+ /* @__PURE__ */ jsxs("div", {
4801
+ className: "px-4 pb-4",
4802
+ inert: !canWrite,
4803
+ children: [errorMessage ? /* @__PURE__ */ jsx("div", {
4804
+ className: "mb-3 rounded-md border border-red-500 bg-red-50 px-3 py-2 text-sm text-red-700",
4805
+ children: errorMessage
4806
+ }) : isSaving ? /* @__PURE__ */ jsx("div", {
4807
+ className: "mb-3 rounded-md border border-sky-500 bg-sky-50 px-3 py-2 text-sm text-sky-700",
4808
+ children: "Saving changes"
4809
+ }) : null, /* @__PURE__ */ jsx(PreviewFormProvider, {
4810
+ siteId,
4811
+ theme: theme ?? null,
4812
+ previewClient: apiClient,
4813
+ children: /* @__PURE__ */ jsx(ManifestForm, {
4814
+ manifest,
4815
+ backend,
4816
+ widgetOverrides: widgets,
4817
+ className: "space-y-4"
4818
+ })
4819
+ })]
4820
+ })
4821
+ ]
4696
4822
  });
4697
4823
  }
4698
- function LinkedEntryEditorPanel({ siteId, apiClient, theme, widgets, entry, fields }) {
4824
+ function useLinkedEntryForm(entry, fields, widgets) {
4699
4825
  const uiStore = useEditorUiStoreInstance();
4700
- const linkedEntriesAutosave = useUISelector(uiStore, (state) => state.autosave.linkedEntries);
4701
4826
  const manifest = useMemo(() => ({
4702
4827
  name: `linked-content-${entry.meta.contentTypeKey}`,
4703
4828
  version: "1.0",
@@ -4712,65 +4837,17 @@ function LinkedEntryEditorPanel({ siteId, apiClient, theme, widgets, entry, fiel
4712
4837
  fields
4713
4838
  ]);
4714
4839
  const validation = useMemo(() => createManifestValidation(manifest, { widgets }), [manifest, widgets]);
4715
- const backend = useMemo(() => createStoreBackend({
4716
- scope: "linkedContent",
4717
- store: uiStore,
4718
- validateFn: (values) => {
4719
- const result = validation.schema.safeParse(values);
4720
- return result.success ? [] : result.error.issues;
4721
- }
4722
- }), [uiStore, validation]);
4723
- const syncState = entry.syncState;
4724
- const errorMessage = syncState.kind === "failed" ? syncState.error : null;
4725
- const dirty = syncState.kind === "pending" || syncState.kind === "failed";
4726
- const isSaving = linkedEntriesAutosave.status === "saving" && dirty;
4727
- return /* @__PURE__ */ jsxs("div", {
4728
- className: "bg-muted/20",
4729
- children: [/* @__PURE__ */ jsxs("div", {
4730
- className: "flex items-start justify-between gap-3 px-4 py-3",
4731
- children: [/* @__PURE__ */ jsxs("div", {
4732
- className: "min-w-0",
4733
- children: [/* @__PURE__ */ jsx("div", {
4734
- className: "truncate text-sm font-medium",
4735
- children: resolveContentTitle(entry.current ?? entry.baseline ?? null, entry.meta.titleField, entry.meta.title)
4736
- }), /* @__PURE__ */ jsx("p", {
4737
- className: "mt-1 text-xs leading-5 text-muted-foreground",
4738
- children: "Changes update this linked entry wherever it appears."
4739
- })]
4740
- }), /* @__PURE__ */ jsx("div", {
4741
- className: "flex shrink-0 items-center gap-2",
4742
- children: /* @__PURE__ */ jsx(Button, {
4743
- type: "button",
4744
- variant: "outline",
4745
- size: "sm",
4746
- onClick: () => {
4747
- if (dirty) uiStore.getState().linkedEntries.discard(entry.meta.entryId);
4748
- else uiStore.getState().linkedEntries.close();
4749
- },
4750
- children: dirty ? "Discard" : "Close"
4751
- })
4752
- })]
4753
- }), /* @__PURE__ */ jsxs("div", {
4754
- className: "px-4 pb-4",
4755
- children: [errorMessage ? /* @__PURE__ */ jsx("div", {
4756
- className: "mb-3 rounded-md border border-red-500 bg-red-50 px-3 py-2 text-sm text-red-700",
4757
- children: errorMessage
4758
- }) : isSaving ? /* @__PURE__ */ jsx("div", {
4759
- className: "mb-3 rounded-md border border-sky-500 bg-sky-50 px-3 py-2 text-sm text-sky-700",
4760
- children: "Saving changes"
4761
- }) : null, /* @__PURE__ */ jsx(PreviewFormProvider, {
4762
- siteId,
4763
- theme: theme ?? null,
4764
- previewClient: apiClient,
4765
- children: /* @__PURE__ */ jsx(ManifestForm, {
4766
- manifest,
4767
- backend,
4768
- widgetOverrides: widgets,
4769
- className: "space-y-4"
4770
- })
4771
- })]
4772
- })]
4773
- });
4840
+ return {
4841
+ manifest,
4842
+ backend: useMemo(() => createStoreBackend({
4843
+ scope: "linkedContent",
4844
+ store: uiStore,
4845
+ validateFn: (values) => {
4846
+ const result = validation.schema.safeParse(values);
4847
+ return result.success ? [] : result.error.issues;
4848
+ }
4849
+ }), [uiStore, validation])
4850
+ };
4774
4851
  }
4775
4852
  function buildLinkedEntrySidebarSection(input) {
4776
4853
  const { snapshot, inspection, renderContent } = input;