@riverbankcms/sdk 0.135.1 → 0.137.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 (220) hide show
  1. package/CHANGELOG.md +114 -0
  2. package/README.md +4 -8
  3. package/dist/{PreviewEditorSidebar-D4p_5TdY.mjs → PreviewEditorSidebar-Bn6cONPa.mjs} +8 -8
  4. package/dist/{PreviewEditorUI-D0cRoTX1.mjs → PreviewEditorUI-LAwXZPSx.mjs} +3 -3
  5. package/dist/{PreviewQueryProvider-DcgaESkm.mjs → PreviewQueryProvider-ztQUdsNo.mjs} +1 -1
  6. package/dist/{SdkPreviewModeRuntime-BKLtM3Nz.mjs → SdkPreviewModeRuntime-BbbGsI_v.mjs} +621 -238
  7. package/dist/{SiteChromeCustomizeContext-61X2m7QV.mjs → SiteChromeCustomizeContext-BbkNSt5a.mjs} +5041 -2407
  8. package/dist/_dts/ai/src/contracts/proposals.d.ts +18 -850
  9. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +412 -2316
  10. package/dist/_dts/ai/src/designer/themePatch.d.ts +5 -10
  11. package/dist/_dts/api/src/accessAdmin.d.ts +1 -9
  12. package/dist/_dts/api/src/accountApi.d.ts +49 -2
  13. package/dist/_dts/api/src/contentRuntime.d.ts +7 -4
  14. package/dist/_dts/api/src/domainConnection.d.ts +41 -0
  15. package/dist/_dts/api/src/endpoints.d.ts +201 -181
  16. package/dist/_dts/api/src/index.d.ts +5 -3
  17. package/dist/_dts/api/src/media.d.ts +19 -2
  18. package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +7 -0
  19. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +26 -0
  20. package/dist/_dts/api/src/sdkBlockContentAdmission.d.ts +5 -0
  21. package/dist/_dts/api/src/sdkContracts.d.ts +2 -15
  22. package/dist/_dts/api/src/sdkMediaContracts.d.ts +40 -0
  23. package/dist/_dts/api/src/sdkMediaEndpointDefinitions.d.ts +61 -0
  24. package/dist/_dts/api/src/sdkThemeWire.d.ts +21 -436
  25. package/dist/_dts/api/src/siteInfrastructure.d.ts +17 -23
  26. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +7 -21
  27. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +27 -3
  28. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +37 -17
  29. package/dist/_dts/api/src/types.d.ts +1 -1
  30. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +2 -3
  31. package/dist/_dts/block-form/src/utils/slug.d.ts +6 -0
  32. package/dist/_dts/blocks/src/PageRenderer.d.ts +13 -7
  33. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +48 -0
  34. package/dist/_dts/blocks/src/definitions.d.ts +14 -0
  35. package/dist/_dts/blocks/src/index.d.ts +4 -3
  36. package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +49 -0
  37. package/dist/_dts/blocks/src/pageRendererBlockSupport.d.ts +75 -0
  38. package/dist/_dts/blocks/src/pageRendererBoundaries.d.ts +2 -0
  39. package/dist/_dts/blocks/src/server.d.ts +2 -2
  40. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +1 -1
  41. package/dist/_dts/blocks/src/system/data/index.d.ts +2 -0
  42. package/dist/_dts/blocks/src/system/data/publicLoaderCachePolicy.d.ts +78 -0
  43. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +2 -18
  44. package/dist/_dts/blocks/src/system/manifest/validation.d.ts +103 -16
  45. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  46. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +4 -2
  47. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
  48. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  49. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +19 -0
  50. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +52 -0
  51. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -0
  52. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +47 -21
  53. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +38 -9
  54. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/ErrorStep.d.ts +3 -5
  55. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/VerifyingTimeoutStep.d.ts +3 -1
  56. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -0
  57. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +1 -1
  58. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +2 -0
  59. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorPresentation.d.ts +5 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +25 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationWizardContext.d.ts +4 -0
  62. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +8 -3
  63. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +2 -0
  64. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +5 -2
  65. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useWaitlistClaimRestoration.d.ts +2 -0
  66. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.client.d.ts +2 -2
  67. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +40 -0
  68. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +2 -0
  69. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +43 -0
  70. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/capacity.d.ts +164 -0
  71. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/cta.d.ts +29 -0
  72. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +47 -0
  73. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/index.d.ts +14 -0
  74. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/people.d.ts +6 -0
  75. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/pricing.d.ts +31 -0
  76. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayCell.d.ts +3 -1
  77. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarNavigationChevron.d.ts +4 -0
  78. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DayEventsModal.d.ts +2 -1
  79. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModalContext.d.ts +3 -2
  80. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/OfferingTitle.d.ts +11 -0
  81. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +4 -1
  82. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +31 -3
  83. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekTimetableView.d.ts +3 -1
  84. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +9 -1
  85. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/index.d.ts +3 -1
  86. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listingLayout.d.ts +23 -0
  87. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/timetableModel.d.ts +4 -3
  88. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +0 -1
  89. package/dist/_dts/calendar/src/grid.d.ts +24 -66
  90. package/dist/_dts/calendar/src/index.d.ts +2 -2
  91. package/dist/_dts/calendar/src/timetable.d.ts +5 -9
  92. package/dist/_dts/commerce/src/purchase/allocation.d.ts +11 -0
  93. package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +57 -0
  94. package/dist/_dts/commerce/src/purchase/index.d.ts +3 -0
  95. package/dist/_dts/commerce/src/purchase/settlement.d.ts +33 -0
  96. package/dist/_dts/commerce/src/purchase/stripeCheckoutReturnUrl.d.ts +8 -0
  97. package/dist/_dts/content-model/src/templates/defaults.d.ts +6 -0
  98. package/dist/_dts/core/src/slug.d.ts +20 -5
  99. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +8 -40
  100. package/dist/_dts/db/src/index.d.ts +1 -0
  101. package/dist/_dts/db/src/utils/postgrestFilter.d.ts +2 -0
  102. package/dist/_dts/media-core/src/bulkDeletePlanning.d.ts +4 -0
  103. package/dist/_dts/media-core/src/fileDomain.d.ts +3 -0
  104. package/dist/_dts/preview-next/src/client/blocks/EditablePageRenderer.d.ts +1 -1
  105. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -0
  106. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -0
  107. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +3 -2
  108. package/dist/_dts/preview-next/src/client/preview/headerInteractionPaletteSurfaceState.d.ts +2 -1
  109. package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +1 -1
  110. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +2 -0
  111. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlSaveRequest.d.ts +51 -0
  112. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +24 -2
  113. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +23 -1
  114. package/dist/_dts/preview-next/src/client/preview/usePersistedHeaderPreferences.d.ts +8 -0
  115. package/dist/_dts/sdk/src/client/publicLoaderCacheAccess.d.ts +6 -0
  116. package/dist/_dts/sdk/src/public-api/contracts.d.ts +7 -2
  117. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +10 -6
  118. package/dist/_dts/sdk/src/rendering/components/Block.shared.d.ts +0 -1
  119. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -4
  120. package/dist/_dts/sdk/src/rendering/helpers/footerPageOutline.d.ts +3 -0
  121. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +3 -0
  122. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +1 -1
  123. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +17 -0
  124. package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +9 -3
  125. package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +1 -1
  126. package/dist/_dts/sdk/src/rendering/index.d.ts +2 -2
  127. package/dist/_dts/sdk/src/rendering/overrideResolution.d.ts +7 -4
  128. package/dist/_dts/sdk/src/version.d.ts +1 -1
  129. package/dist/_dts/theme-core/src/cards/types.d.ts +8 -8
  130. package/dist/_dts/theme-core/src/data.d.ts +12 -0
  131. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  132. package/dist/_dts/theme-core/src/gradients/types.d.ts +5 -0
  133. package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +25 -2
  134. package/dist/_dts/theme-core/src/header/legacyHeaderVariant.d.ts +2 -6
  135. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +9 -810
  136. package/dist/_dts/theme-core/src/schema.d.ts +460 -1285
  137. package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +43 -3
  138. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +223 -1
  139. package/dist/_dts/theme-core/src/site-styles/headerBrandPresentation.d.ts +63 -0
  140. package/dist/_dts/theme-core/src/site-styles/headerBytesComparison.d.ts +30 -0
  141. package/dist/_dts/theme-core/src/site-styles/headerInteractionPalette.d.ts +50 -1
  142. package/dist/_dts/theme-core/src/site-styles/headerLayoutCatalog.d.ts +48 -38
  143. package/dist/_dts/theme-core/src/site-styles/headerLayoutStyles.d.ts +10 -0
  144. package/dist/_dts/theme-core/src/site-styles/headerLayoutTypes.d.ts +8 -5
  145. package/dist/_dts/theme-core/src/site-styles/headerOpeningForeground.d.ts +4 -4
  146. package/dist/_dts/theme-core/src/site-styles/headerPreferences.d.ts +162 -0
  147. package/dist/_dts/theme-core/src/site-styles/headerPreferencesPersistence.d.ts +73 -0
  148. package/dist/_dts/theme-core/src/site-styles/headerRecompile.d.ts +118 -0
  149. package/dist/_dts/theme-core/src/site-styles/headerStyleCompiler.d.ts +25 -2
  150. package/dist/_dts/theme-core/src/site-styles/headerStyleDefaults.d.ts +465 -0
  151. package/dist/_dts/theme-core/src/site-styles/headerStyleRecipe.d.ts +168 -0
  152. package/dist/_dts/theme-core/src/site-styles/index.d.ts +5 -0
  153. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
  154. package/dist/_dts/theme-core/src/site-styles/siteChromeBackgrounds.d.ts +20 -1
  155. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +43 -2
  156. package/dist/client/{BookingConsentAgreement-Bz9znbpn.mjs → BookingConsentAgreement--_fUCZe-.mjs} +2 -2
  157. package/dist/client/{DiscountCodeDisclosure-35Ru8yB9.mjs → DiscountCodeDisclosure-BMipSoDJ.mjs} +1 -1
  158. package/dist/client/{EventCombined.client-BKB0ZxRR.mjs → EventCombined.client-CwJOxn7A.mjs} +274 -278
  159. package/dist/client/{EventListing.client-Dx8I21ok.mjs → EventListing.client-eVwiylPW.mjs} +2 -2
  160. package/dist/client/{LeafletStaticMap-CEWx-Bhe.mjs → LeafletStaticMap-IKenna5u.mjs} +1 -1
  161. package/dist/client/{accordion-KIDsKTwS.mjs → accordion-MGAO3PuE.mjs} +1 -1
  162. package/dist/client/{bookingForm-D96Rmp-5.mjs → bookingForm-CudlQPUu.mjs} +5 -5
  163. package/dist/client/bookings.mjs +476 -98
  164. package/dist/client/capacity-BW00PO7s.mjs +271 -0
  165. package/dist/client/{carousel-YwUgyL66.mjs → carousel-BrbGJ2Jl.mjs} +1 -1
  166. package/dist/client/{cart-BbwuNrUT.mjs → cart-Bq5eU0xZ.mjs} +3 -3
  167. package/dist/client/{checkout-hp1ucmEY.mjs → checkout-BAFVRdrK.mjs} +3 -3
  168. package/dist/client/client.mjs +4641 -2721
  169. package/dist/client/{context-DljQn8L5.mjs → context-DCkiHVdD.mjs} +20 -5
  170. package/dist/client/dates-2RPXHQy4.mjs +264 -0
  171. package/dist/client/{eventCalendar-DU4iNLpo.mjs → eventCalendar-B0O-hPF7.mjs} +261 -126
  172. package/dist/client/{eventCombined-CZuupW8m.mjs → eventCombined-DCkDaoDI.mjs} +3 -3
  173. package/dist/client/{eventDetails-DPQWwCIi.mjs → eventDetails-D8GG2dnD.mjs} +7 -4
  174. package/dist/client/{eventListing-C7oMidwS.mjs → eventListing-3ssV_bxz.mjs} +3 -3
  175. package/dist/client/{eventRegistration-zEiunlUs.mjs → eventRegistration-bPQo3kVw.mjs} +610 -313
  176. package/dist/client/{form-D2KIyCVJ.mjs → form-qMv8RDkk.mjs} +2 -2
  177. package/dist/client/{headerSection-CK5uChUK.mjs → headerSection-CH0Sc5hX.mjs} +2 -2
  178. package/dist/client/hooks.mjs +2514 -308
  179. package/dist/client/{locationMap-DLQNH1ln.mjs → locationMap-0_xlBnNI.mjs} +2 -2
  180. package/dist/client/{newsletterForm-ZuhIG7fZ.mjs → newsletterForm-NUW7m9RI.mjs} +2 -2
  181. package/dist/client/{productDetail-7hIcGeae.mjs → productDetail-FBEOM7jW.mjs} +3 -3
  182. package/dist/client/{productList-T4Cii1ot.mjs → productList-R0OSGhnn.mjs} +3 -3
  183. package/dist/client/{propsDecoder-mB0aC_Fi.mjs → propsDecoder-pYvx_Srl.mjs} +179 -401
  184. package/dist/client/rendering/client.mjs +3496 -2223
  185. package/dist/client/rendering/islands.mjs +17 -17
  186. package/dist/client/rendering.mjs +4400 -2510
  187. package/dist/client/{scrollToBlock-Du5mHgvL.mjs → scrollToBlock-ByQv96M2.mjs} +1 -1
  188. package/dist/client/{shop-B5zAcKZn.mjs → shop-RUG9DmRE.mjs} +6 -6
  189. package/dist/client/{shop-commerce-BKBZB6l5.mjs → shop-commerce-B76Jz23B.mjs} +5 -5
  190. package/dist/client/{shop-commerce-store-Cq4qlNtQ.mjs → shop-commerce-store-QuQNdDsD.mjs} +1 -1
  191. package/dist/client/{shopShared-DYGzEs9D.mjs → shopShared-vXU1omwJ.mjs} +3 -3
  192. package/dist/client/{useEventFilters-Bphkda8m.mjs → useEventFilters-ByuU6HLA.mjs} +33 -18
  193. package/dist/preview-next/before-render.mjs +86 -51
  194. package/dist/preview-next/client/runtime.mjs +4 -4
  195. package/dist/preview-next/keepAlive.mjs +86 -51
  196. package/dist/preview-next/middleware.mjs +86 -51
  197. package/dist/{previewAuthStore-C7ksxt5b.mjs → previewAuthStore-L_cKW8Sb.mjs} +86 -51
  198. package/dist/{sdk-runtime-BbIC8G4J.mjs → sdk-runtime-sUMr5d70.mjs} +2 -2
  199. package/dist/{separator-CadhAtI7.mjs → separator-BIHkie5i.mjs} +1 -1
  200. package/dist/server/components.mjs +4397 -2960
  201. package/dist/server/config-validation.mjs +354 -145
  202. package/dist/server/config.mjs +354 -145
  203. package/dist/server/data.mjs +354 -144
  204. package/dist/server/index.mjs +201 -55
  205. package/dist/server/manifest.mjs +0 -1
  206. package/dist/server/next.mjs +4046 -2611
  207. package/dist/server/page-converter.mjs +225 -122
  208. package/dist/server/prebuild.mjs +1 -1
  209. package/dist/server/rendering/server.mjs +4105 -2636
  210. package/dist/server/rendering.mjs +4522 -3087
  211. package/dist/server/routing.mjs +3289 -1637
  212. package/dist/server/server.mjs +23175 -21079
  213. package/dist/server/theme-bridge.mjs +708 -272
  214. package/dist/server/theme.mjs +29 -25
  215. package/dist/styles/index.css +624 -181
  216. package/package.json +1 -1
  217. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCapacity.d.ts +0 -48
  218. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/pricing.d.ts +0 -17
  219. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +0 -100
  220. /package/dist/_dts/blocks/src/system/runtime/nodes/events/{shared → domain}/destination.d.ts +0 -0
@@ -9,8 +9,8 @@ import type { CreateManagementKeyRequest, CreateManagementKeyResponse, CreateSit
9
9
  import type { GetSiteInspirationAnalysisResponse, ListSiteInspirationAnalysesResponse } from './siteGeneration';
10
10
  import type { ListGscPropertiesAdminResponse, AuthStatusResponse, CronAppointmentRemindersResponse, CronBillingStatusResponse, CronEventFeedbackEmailsResponse, CronEventOccurrencesResponse, CronEventRemindersResponse, CronMediaJobsQuery, CronMediaJobsResponse, CronNewsletterSendResponse, CronPaymentReconciliationResponse, CronSeoIngestResponse, CronWaitlistExpiryResponse } from './siteOperations';
11
11
  import type { ApplySiteStyleSelectionBody, ApplySiteStyleSelectionResponse } from './siteRuntimeEndpoints';
12
- import type { ManagementMediaAsset, MediaResolveResponse, PushSdkConfigRequest, PushSdkConfigResponse, SdkAddEventOccurrenceRequest, SdkBackfillIdentifiersResult, SdkEventOccurrenceResponse, SdkGetEntryResponse, SdkGetEventCategoryResponse, SdkGetEventResponse, SdkGetFormResponse, SdkGetPageBlockResponse, SdkPatchPageBlockBody, SdkPatchPageBlockResponse, SdkGetVenueResponse, SdkListEntriesResponse, SdkListEventCategoriesResponse, SdkListEventOccurrencesResponse, SdkListEventsResponse, SdkListFormsResponse, SdkListVenuesResponse, SdkMediaFinalizeUploadResponse, SdkMediaUploadUrlResponse, SdkPageResponse, SdkEntryUpsertSlotBlock, SdkPublishOrUnpublishEntryResponse, SdkPullContentTypesResponse, SdkCatalogThemeResponse, SdkCatalogBlocksResponse, SdkCatalogContentTypesResponse, SdkCapabilitiesResponse, SdkCommandApplicationResult, SdkConfigureBookingVerticalRequest, SdkConfigureBookingVerticalResponse, SdkDemoContentResponse, SdkDeleteResponse, SdkPullEntriesAllResponse, SdkPullEntriesByTypeResponse, SdkPullEntriesResponse, SdkPullEventCategoriesResponse, SdkPullEventsResponse, SdkPullFooterResponse, SdkPullFormSchema, SdkPullFormsResponse, SdkPullFormSettings, SdkPullDraftsResponse, SdkPullNavigationResponse, SdkPullPagesResponse, SdkPullSettings, SdkPullSettingsResponse, SdkPullSiteInfoResponse, SdkPullThemeResponse, SdkPullVenue, SdkPullVenuesResponse, SdkUpdateSettingsResponse, SdkUpdateEventOccurrenceRequest, SdkUpsertBlockResponse, SdkUpsertEntryResponse, SdkUpsertPageResponse, SdkUpsertEventCategoryResponse, SdkUpsertEventResponse, SdkUpsertFooterResponse, SdkUpsertFormResponse, SdkUpsertNavigationMenuResponse, SdkUpsertThemeResponse, SdkUpsertVenueResponse } from './sdkContracts';
13
- import type { SdkThemeWire } from './sdkThemeWire';
12
+ import type { ManagementMediaAsset, MediaResolveResponse, PushSdkConfigRequest, PushSdkConfigResponse, SdkAddEventOccurrenceRequest, SdkBackfillIdentifiersResult, SdkEventOccurrenceResponse, SdkGetEntryResponse, SdkGetEventCategoryResponse, SdkGetEventResponse, SdkGetFormResponse, SdkGetPageBlockResponse, SdkPatchPageBlockBody, SdkPatchPageBlockResponse, SdkGetVenueResponse, SdkListEntriesResponse, SdkListEventCategoriesResponse, SdkListEventOccurrencesResponse, SdkListEventsResponse, SdkListFormsResponse, SdkListVenuesResponse, SdkMediaFinalizeUploadResponse, SdkMediaDeleteApplyResponse, SdkMediaDeletePreviewResponse, SdkMediaDownloadResponse, SdkMediaListResponse, SdkMediaUploadUrlResponse, SdkPageResponse, SdkEntryUpsertSlotBlock, SdkPublishOrUnpublishEntryResponse, SdkPullContentTypesResponse, SdkCatalogThemeResponse, SdkCatalogBlocksResponse, SdkCatalogContentTypesResponse, SdkCapabilitiesResponse, SdkCommandApplicationResult, SdkConfigureBookingVerticalRequest, SdkConfigureBookingVerticalResponse, SdkDemoContentResponse, SdkDeleteResponse, SdkPullEntriesAllResponse, SdkPullEntriesByTypeResponse, SdkPullEntriesResponse, SdkPullEventCategoriesResponse, SdkPullEventsResponse, SdkPullFooterResponse, SdkPullFormSchema, SdkPullFormsResponse, SdkPullFormSettings, SdkPullDraftsResponse, SdkPullNavigationResponse, SdkPullPagesResponse, SdkPullSettings, SdkPullSettingsResponse, SdkPullSiteInfoResponse, SdkPullThemeResponse, SdkPullVenue, SdkPullVenuesResponse, SdkUpdateSettingsResponse, SdkUpdateEventOccurrenceRequest, SdkUpsertBlockResponse, SdkUpsertEntryResponse, SdkUpsertPageResponse, SdkUpsertEventCategoryResponse, SdkUpsertEventResponse, SdkUpsertFooterResponse, SdkUpsertFormResponse, SdkUpsertNavigationMenuResponse, SdkUpsertThemeResponse, SdkUpsertVenueResponse } from './sdkContracts';
13
+ import type { SdkThemeWireWithoutHeader } from './sdkThemeWire';
14
14
  import type { SdkEventUpsertBody } from './sdk-event-upsert';
15
15
  import type { StripeConnectDisconnectResponse, StripeConnectStartResponse, StripeConnectStatusResponse, UpdateStripeAutomaticTaxRequest } from './billing';
16
16
  import type { NavigationLinkInput } from './navigation/types';
@@ -148,6 +148,24 @@ export type SitePlatformAPIEndpoints = {
148
148
  }, {
149
149
  siteId: string;
150
150
  }, MediaResolveResponse>;
151
+ sdkMediaList: APIEndpoint<never, {
152
+ siteId: string;
153
+ search?: string;
154
+ limit?: number;
155
+ offset?: number;
156
+ }, SdkMediaListResponse>;
157
+ sdkMediaDownload: APIEndpoint<never, {
158
+ siteId: string;
159
+ identifier: string;
160
+ }, SdkMediaDownloadResponse>;
161
+ sdkMediaDeletePreview: APIEndpoint<never, {
162
+ siteId: string;
163
+ identifier: string;
164
+ }, SdkMediaDeletePreviewResponse>;
165
+ sdkMediaDeleteApply: APIEndpoint<never, {
166
+ siteId: string;
167
+ identifier: string;
168
+ }, SdkMediaDeleteApplyResponse>;
151
169
  sdkMediaUploadUrl: APIEndpoint<{
152
170
  filename: string;
153
171
  bytes: number;
@@ -317,7 +335,13 @@ export type SitePlatformAPIEndpoints = {
317
335
  }, SdkDeleteResponse>;
318
336
  sdkUpsertTheme: APIEndpoint<Readonly<{
319
337
  kind: 'update';
320
- theme: SdkThemeWire;
338
+ /**
339
+ * The theme minus its header (#1318 Phase 4d, D17). The server compiles
340
+ * `theme.header` from the site's stored selection and header
341
+ * preferences and is its only author; a body carrying header bytes is
342
+ * rejected rather than silently stripped.
343
+ */
344
+ theme: SdkThemeWireWithoutHeader;
321
345
  themeId?: string;
322
346
  selectionId?: string;
323
347
  }> | Readonly<{
@@ -2,16 +2,23 @@ import type { BackgroundOverride, SystemCustomizeFacetSelection, Theme } from '.
2
2
  import type { ListMediaAssetsResult, MediaAssetWithLabels } from '@riverbankcms/media-storage-supabase';
3
3
  import type { FooterNavigationLayout } from '../../core/src/index';
4
4
  import type { DbJson } from '../../db/src/index';
5
- import type { PageDesignEditorReadModel, PageDesignIntent, AppearancePresetId, BoundaryOptionId, DesignBlockId, FooterLookId, HeaderLayoutId, HeaderLayoutStyleSelection, HeaderStyleId, LayoutVariantKey, SiteStyleId } from '../../theme-core/src/site-styles/index';
5
+ import type { PageDesignEditorReadModel, PageDesignIntent, AppearancePresetId, BoundaryOptionId, DesignBlockId, FooterLookId, HeaderLayoutId, HeaderLayoutStyleSelection, HeaderPreferences, HeaderQuickControlPreferences, HeaderStyleId, LayoutVariantKey, SiteStyleId } from '../../theme-core/src/site-styles/index';
6
6
  import type { ButtonStyleSelection } from '../../theme-core/src/buttons/index';
7
7
  import type { APIEndpoint } from './apiEndpointTypes';
8
8
  import type { AnalyticsReportQuery, AnalyticsReportResponse } from './analytics';
9
- import type { CreateMediaAssetBody, MediaAssetResponse, MediaAssetFileFilterContract, MediaBulkDeleteResponse, MediaClassifyJobResponse, MediaJobSummaryResponse, MediaLabelSummary, MediaSettingsResponse } from './media';
9
+ import type { CreateMediaAssetBody, MediaAssetResponse, MediaAssetFileFilterContract, MediaBulkDeleteResponse, MediaDeleteResponse, MediaClassifyJobResponse, MediaJobSummaryResponse, MediaLabelSummary, MediaSettingsResponse } from './media';
10
10
  import type { MediaUsageCheckResponse } from './shared-contracts';
11
- import type { BlockWithContentResponse, BlockListItem, ContentEntryListStage, EntryPageContentSlotsResponse, PageSurfaceContentSlotsResponse, ListPublishedEntriesResponse, PageDraftRecord, PublishedBlockBaseline, PublishedContentEntryPreviewResponse, PublishedPostPreviewResponse, SdkBlockContent, SdkRuntimeContentByPathResponse, SdkRouteDecisionResponse, SdkRouteOutcomeResponse, SdkTemplate, SiteBySlugResponse, ThemeGenerationTurn, ThemePreferencesRecord, ThemeRow } from './contentRuntime';
11
+ import type { BlockWithContentResponse, BlockListItem, ContentEntryListStage, EntryPageContentSlotsResponse, PageSurfaceContentSlotsResponse, ListPublishedEntriesResponse, PageDraftRecord, PublishedBlockBaseline, PublishedContentEntryPreviewResponse, PublishedPostPreviewResponse, SdkBlockContent, SdkRuntimeContentByPathResponse, SdkRouteDecisionResponse, SdkRouteOutcomeResponse, SdkTemplate, SiteBySlugResponse, ThemePreferencesRecord } from './contentRuntime';
12
12
  import type { GetVersionHistoryResponse, ListVersionHistoryResponse, RestoreVersionHistoryRequest, RestoreVersionHistoryResponse, VersionHistoryListQuery } from './contentVersionHistory';
13
13
  import type { CreateMediaUploadUrlRequest, CreateMediaUploadUrlResponse, CreateSiteLogoUploadUrlRequest, CreateSiteLogoUploadUrlResponse, MediaUploadFinalizeRequest, UploadSiteLogoRequest } from './siteInfrastructure';
14
14
  import type { DevToolsGetSiteRoleDowngradeQuery, DevToolsImpersonationResponse, DevToolsSeedResponse, DevToolsSetSiteRoleDowngradeRequest, SiteRoleDowngradeState } from './siteOperations';
15
+ /**
16
+ * A theme body with no header. The server compiles `theme.header` from the
17
+ * row's intent and is its only author (#1318 Phase 4d).
18
+ */
19
+ export type ThemeWithoutHeader = Omit<Theme, 'header'> & Readonly<{
20
+ header?: never;
21
+ }>;
15
22
  /** Partial persisted selections for the Style configurator and site chrome. */
16
23
  export type SiteThemeSelectionsPayload = {
17
24
  buttonStyleSelection?: ButtonStyleSelection | null;
@@ -70,7 +77,17 @@ export type SaveSiteChromeSelectionBody = Readonly<{
70
77
  surface: 'header';
71
78
  layoutId: HeaderLayoutId;
72
79
  styleId: HeaderStyleId;
73
- theme: Theme;
80
+ /**
81
+ * The header intent this save expresses, and the whole of what this
82
+ * surface sends (#1318 Phase 4d).
83
+ *
84
+ * The compiled `theme` that used to ride alongside it is gone. The server
85
+ * compiles the header from `(layoutId, styleId, preferences)` against the
86
+ * persisted row and is its sole author; the rest of the theme is the
87
+ * row's own and is not the client's to restate. The save response returns
88
+ * the theme the server persisted, which is what the client reconciles to.
89
+ */
90
+ preferences: HeaderQuickControlPreferences;
74
91
  themeId?: string | null;
75
92
  selectionId?: string | null;
76
93
  baseSelectionUpdatedAt?: string | null;
@@ -92,6 +109,11 @@ export type SaveSiteChromeSelectionResponse = Readonly<{
92
109
  theme: Theme;
93
110
  headerLayoutId: HeaderLayoutId;
94
111
  headerStyleId: HeaderStyleId;
112
+ /**
113
+ * The intent as persisted. `null` while the Phase 4c backfill is outstanding
114
+ * and this save did not write one — absent, not "the defaults".
115
+ */
116
+ headerPreferences: HeaderPreferences | null;
95
117
  footerLookId: FooterLookId | null;
96
118
  }>;
97
119
  export type PageDesignRevisionToken = {
@@ -191,17 +213,6 @@ export type SiteRuntimeAPIEndpoints = {
191
213
  mode?: 'manual';
192
214
  entryIds?: string;
193
215
  }, ListPublishedEntriesResponse>;
194
- createTheme: APIEndpoint<{
195
- site_id: string;
196
- }, never, {
197
- output: ThemeGenerationTurn[];
198
- text: string[] | null;
199
- }>;
200
- generateThemes: APIEndpoint<{
201
- site_id: string;
202
- }, never, {
203
- themes: ThemeRow[];
204
- }>;
205
216
  extractThemeFromInspiration: APIEndpoint<{
206
217
  urls: string[];
207
218
  }, never, {
@@ -217,7 +228,16 @@ export type SiteRuntimeAPIEndpoints = {
217
228
  source: 'extracted' | 'fallback';
218
229
  }>;
219
230
  saveSiteTheme: APIEndpoint<{
220
- theme: Theme;
231
+ /**
232
+ * The theme minus its header (#1318 Phase 4d, D17).
233
+ *
234
+ * `header` is compiled server-side from the row's stored selection and
235
+ * `header_preferences`, so a body cannot carry header bytes at all. This
236
+ * was the last path by which hand-written header fields reached
237
+ * persistence, and leaving it open would have made the single-authority
238
+ * claim untrue. `headerSelection` still names the selection to compile.
239
+ */
240
+ theme: ThemeWithoutHeader;
221
241
  themeId?: string | null;
222
242
  selectionId?: string | null;
223
243
  overrides?: Record<string, unknown> | null;
@@ -369,7 +389,7 @@ export type SiteRuntimeAPIEndpoints = {
369
389
  cascadeLabels?: boolean;
370
390
  }, {
371
391
  assetId: string;
372
- }, void>;
392
+ }, MediaDeleteResponse>;
373
393
  mediaBulkDelete: APIEndpoint<{
374
394
  assetIds: string[];
375
395
  deleteObjects?: boolean;
@@ -1,5 +1,5 @@
1
1
  import type { CamelizeKeys, DbDatabase, DbRow } from "../../db/src/index";
2
- export type { AccessPolicyContract, AccessPolicyTag, AmbientBackgroundRole, CreateMediaAssetBody, EntitledCustomerAccessScopeContract, FileKindContract, FileKindTag, FileUseContract, FileUseTag, ImageFileFormat, MediaAssetResponse, MediaAssetFileFilterContract, MediaBulkDeleteAssetFailure, MediaBulkDeleteResponse, MediaClassifyJobResponse, MediaJobSummaryResponse, MediaLabelSummary, MediaSettingsResponse, RenderableFileKindTag, SiteBackgroundAssetUse, StorageClass, UploadIntentContract, UploadIntentTag, } from "./media";
2
+ export type { AccessPolicyContract, AccessPolicyTag, AmbientBackgroundRole, CreateMediaAssetBody, EntitledCustomerAccessScopeContract, FileKindContract, FileKindTag, FileUseContract, FileUseTag, ImageFileFormat, MediaAssetResponse, MediaAssetFileFilterContract, MediaBulkDeleteAssetFailure, MediaBulkDeleteResponse, MediaDeleteResponse, MediaDeleteWarning, MediaClassifyJobResponse, MediaJobSummaryResponse, MediaLabelSummary, MediaSettingsResponse, RenderableFileKindTag, SiteBackgroundAssetUse, StorageClass, UploadIntentContract, UploadIntentTag, } from "./media";
3
3
  export type { AnalyticsPreset, AnalyticsReferrer, AnalyticsReportFilters, AnalyticsReportQuery, AnalyticsReportResponse, AnalyticsSeriesPoint, AnalyticsTopPage, AnalyticsTotals, } from "./analytics";
4
4
  export type { AIChatMessage, AiBriefTurn, JsonPrimitive, JsonValue, MediaUsageCheckItem, MediaUsageCheckResponse, MediaUsageLocation, } from "./shared-contracts";
5
5
  export type * from "./accessAdmin";
@@ -1,7 +1,6 @@
1
- import { type BlockManifest, type FieldValidationDescriptor } from '../../blocks/src/index';
1
+ import { type BlockManifest, type FieldValidationDescriptor, type ManifestContentAdmissionIssue } from '../../blocks/src/index';
2
2
  import type { EditorSyncState } from '../../core/src/index';
3
- import type { z } from 'zod';
4
- type ManifestValidationIssue = z.core.$ZodIssue;
3
+ type ManifestValidationIssue = ManifestContentAdmissionIssue;
5
4
  export type BlockDraftValidationIssue = Readonly<{
6
5
  code: ManifestValidationIssue['code'];
7
6
  path: (string | number)[];
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Path-aware slugify for form/route inputs.
3
+ *
4
+ * Delegates to `@riverbankcms/core`'s single slug implementation with segment
5
+ * preservation, so `Blog / My Post` becomes `blog/my-post`.
6
+ */
1
7
  export declare function slugify(input: string): string;
2
8
  export declare function limitSlugLength(value: string, maxLength?: number): string;
3
9
  export declare function sanitizeSlugInput(value: string, maxLength?: number): string;
@@ -8,6 +8,8 @@ import type { RouteMap } from './system/transforms';
8
8
  import { type MediaAssetIndexItem, type ResolveImageUrlContext, type ResolveImageUrlContextInput } from './system/runtime/nodes/media';
9
9
  import type { BookingOfferingPresetSummary } from './system/blocks/offerings-preview/model';
10
10
  import { type PageBoundaryWrapper, type PageRuntimeBoundary } from './pageRendererBoundaries';
11
+ import { type RenderablePageOutline } from './pageRenderAdmission';
12
+ export type { PageBlockRenderAdmissionError, PageRenderAudience, RenderablePageBlock, RenderablePageOutline, } from './pageRenderAdmission';
11
13
  export { MissingBlockOverrideError } from './pageRenderingMode';
12
14
  export type { PageBlockPosition, PageRuntimeBoundary, } from './pageRendererBoundaries';
13
15
  /**
@@ -19,7 +21,7 @@ export type OccurrenceContextData = import('../../core/src/index').EventOccurren
19
21
  * Event-occurrence subroute context.
20
22
  */
21
23
  export type EntrySubrouteContextData = import('../../core/src/index').EventPageSubrouteContext;
22
- type PageRendererDataContext = {
24
+ export type PageRendererDataContext = {
23
25
  siteId?: string;
24
26
  pageId?: string;
25
27
  resolvedData?: Record<string, Record<string, unknown>>;
@@ -40,6 +42,7 @@ type PageRendererDataContext = {
40
42
  apiBaseUrl?: string;
41
43
  portalToken?: string | null;
42
44
  bookingOfferingPresets?: readonly BookingOfferingPresetSummary[];
45
+ bookingTimeZone?: string;
43
46
  eventRegistrationOverlayEnabled?: boolean;
44
47
  };
45
48
  /**
@@ -75,6 +78,8 @@ export type BlockOverrideProps<TContent = Record<string, unknown>> = {
75
78
  siteId?: string;
76
79
  /** Dashboard API URL for client-side block runtime calls. */
77
80
  apiBaseUrl?: string;
81
+ /** Canonical site timezone for calendar/date behavior. */
82
+ bookingTimeZone?: string;
78
83
  /** Customer portal token for Bearer-authenticated block runtime calls. */
79
84
  portalToken?: string | null;
80
85
  /** Preview bearer token for preview-aware block runtime calls. */
@@ -146,10 +151,9 @@ export type BlockOverrides = Record<string, BlockOverrideComponent>;
146
151
  export type SdkConfigForRenderer = {
147
152
  customBlocks?: SdkCustomBlock[];
148
153
  };
149
- type PageRendererCommonProps = {
150
- page: PageOutline | null;
154
+ type PageRendererCommonProps<TPage> = {
155
+ page: TPage | null;
151
156
  runtimeBoundaries?: readonly PageRuntimeBoundary[];
152
- usePlaceholders?: boolean;
153
157
  dataContext?: PageRendererDataContext;
154
158
  routeMap?: RouteMap;
155
159
  wrapBlock?: (blockId: string, rendered: React.ReactNode) => React.ReactNode;
@@ -160,12 +164,12 @@ type PageRendererCommonProps = {
160
164
  customBlocks?: SdkCustomBlock[];
161
165
  previewAuthoring?: ResolverContext['previewAuthoring'];
162
166
  };
163
- type ThemedPageRendererProps = PageRendererCommonProps & {
167
+ type ThemedPageRendererProps<TPage> = PageRendererCommonProps<TPage> & {
164
168
  rendering?: never;
165
169
  theme: Theme;
166
170
  themeTokens?: ThemeTokens;
167
171
  };
168
- type OverrideOnlyPageRendererProps = PageRendererCommonProps & {
172
+ type OverrideOnlyPageRendererProps<TPage> = PageRendererCommonProps<TPage> & {
169
173
  rendering: {
170
174
  kind: 'overrides-only';
171
175
  };
@@ -173,5 +177,7 @@ type OverrideOnlyPageRendererProps = PageRendererCommonProps & {
173
177
  themeTokens?: never;
174
178
  blockOverrides: BlockOverrides;
175
179
  };
176
- export type PageRendererProps = ThemedPageRendererProps | OverrideOnlyPageRendererProps;
180
+ export type PageRendererProps = ThemedPageRendererProps<RenderablePageOutline> | OverrideOnlyPageRendererProps<RenderablePageOutline>;
181
+ export type EditorPageRendererProps = ThemedPageRendererProps<PageOutline> | OverrideOnlyPageRendererProps<PageOutline>;
177
182
  export default function PageRenderer(props: PageRendererProps): React.JSX.Element;
183
+ export declare function EditorPageRenderer(props: EditorPageRendererProps): React.JSX.Element;
@@ -365,6 +365,14 @@ export declare const proofBlockIslandCodecs: {
365
365
  eventSurface: import("..").EventSurfaceScope;
366
366
  filterEventPresets: string | null;
367
367
  scheduleScope: import("..").EventScheduleScope;
368
+ calendarContext: Readonly<{
369
+ timeZone: import("../../../core/src/index").BookingTimeZone;
370
+ initialToday: Readonly<{
371
+ year: number;
372
+ month: number;
373
+ day: number;
374
+ }>;
375
+ }>;
368
376
  }>;
369
377
  }>>;
370
378
  }>) => unknown;
@@ -385,6 +393,14 @@ export declare const proofBlockIslandCodecs: {
385
393
  eventSurface: import("..").EventSurfaceScope;
386
394
  filterEventPresets: string | null;
387
395
  scheduleScope: import("..").EventScheduleScope;
396
+ calendarContext: Readonly<{
397
+ timeZone: import("../../../core/src/index").BookingTimeZone;
398
+ initialToday: Readonly<{
399
+ year: number;
400
+ month: number;
401
+ day: number;
402
+ }>;
403
+ }>;
388
404
  }>;
389
405
  }>>;
390
406
  }>>;
@@ -871,6 +887,14 @@ export declare const runtimeIslandCodecs: {
871
887
  eventSurface: import("..").EventSurfaceScope;
872
888
  filterEventPresets: string | null;
873
889
  scheduleScope: import("..").EventScheduleScope;
890
+ calendarContext: Readonly<{
891
+ timeZone: import("../../../core/src/index").BookingTimeZone;
892
+ initialToday: Readonly<{
893
+ year: number;
894
+ month: number;
895
+ day: number;
896
+ }>;
897
+ }>;
874
898
  }>;
875
899
  }>>;
876
900
  }>) => unknown;
@@ -891,6 +915,14 @@ export declare const runtimeIslandCodecs: {
891
915
  eventSurface: import("..").EventSurfaceScope;
892
916
  filterEventPresets: string | null;
893
917
  scheduleScope: import("..").EventScheduleScope;
918
+ calendarContext: Readonly<{
919
+ timeZone: import("../../../core/src/index").BookingTimeZone;
920
+ initialToday: Readonly<{
921
+ year: number;
922
+ month: number;
923
+ day: number;
924
+ }>;
925
+ }>;
894
926
  }>;
895
927
  }>>;
896
928
  }>>;
@@ -1251,6 +1283,14 @@ export declare const runtimeIslandCodecs: {
1251
1283
  eventSurface: import("..").EventSurfaceScope;
1252
1284
  filterEventPresets: string | null;
1253
1285
  scheduleScope: import("..").EventScheduleScope;
1286
+ calendarContext: Readonly<{
1287
+ timeZone: import("../../../core/src/index").BookingTimeZone;
1288
+ initialToday: Readonly<{
1289
+ year: number;
1290
+ month: number;
1291
+ day: number;
1292
+ }>;
1293
+ }>;
1254
1294
  }>;
1255
1295
  }>>;
1256
1296
  }>) => unknown;
@@ -1271,6 +1311,14 @@ export declare const runtimeIslandCodecs: {
1271
1311
  eventSurface: import("..").EventSurfaceScope;
1272
1312
  filterEventPresets: string | null;
1273
1313
  scheduleScope: import("..").EventScheduleScope;
1314
+ calendarContext: Readonly<{
1315
+ timeZone: import("../../../core/src/index").BookingTimeZone;
1316
+ initialToday: Readonly<{
1317
+ year: number;
1318
+ month: number;
1319
+ day: number;
1320
+ }>;
1321
+ }>;
1274
1322
  }>;
1275
1323
  }>>;
1276
1324
  }>>;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Pure server-safe definitions for Builder blocks.
3
+ * This entry point MUST NOT import any React components or client-side code.
4
+ * It is safe to use in Server Components and data fetching utilities.
5
+ */
6
+ export { getBlockDefinition, getBlockRenderKind, listBlockDefinitions, hasBlockDefinition, registerBlockDefinition, type SystemBlockDefinition, type BlockDataLoader, type BlockDescriptor, } from './system/registry';
7
+ export { blockDesignCapabilityMapFromDefinitions, blockDesignMetadataMapFromDefinitions, declareBlockDesignCapability, declareNoBlockDesignCapability, resolveDeclaredBlockDesignCapability, } from './system/designCapabilities';
8
+ export type { BlockDesignCapabilityDeclaration, NoBlockDesignCapabilityReason, } from './system/designCapabilities';
9
+ export type { AnyBlockRuntimeDefinition, BlockRenderKind, BlockRuntimeDefinition, RuntimeContractsFor, RuntimeDisplay, RuntimeHydration, RuntimeKind, RuntimeRender, RuntimeSource, } from './contracts';
10
+ export { ensureSystemBlockDefinitionsRegistered, systemBlockDefinitions, } from './system/blocks';
11
+ export { resolveVariantKey as resolveBlockVariantKey } from './system/manifest/variantKey';
12
+ export type { SystemBlockKind, } from './system/blocks';
13
+ export * from './system/data';
14
+ export type { PageOutline, Block } from './structure/schema';
@@ -1,7 +1,7 @@
1
- export { default as PageRenderer } from './PageRenderer';
1
+ export { default as PageRenderer, EditorPageRenderer } from './PageRenderer';
2
2
  export { createCustomBlockRegistry, mergeBlockDescriptorsWithRegistry, planCustomBlockRegistryResolution, transformToBlockDescriptor, } from './customBlockRegistry';
3
3
  export type { CustomBlockConflictReason, CustomBlockManifestSource, CustomBlockRegistry, CustomBlockRegistryConflict, CustomBlockRegistryEntry, CustomBlockRegistryResolutionPlan, CustomBlockSourcePolicy, ResolvedCustomBlockManifest, SdkConfigForBlockPicker, } from './customBlockRegistry';
4
- export type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, EntrySubrouteContextData, PageRendererProps, OccurrenceContextData, PageBlockPosition, PageRuntimeBoundary, SdkConfigForRenderer, } from './PageRenderer';
4
+ export type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, EntrySubrouteContextData, EditorPageRendererProps, PageBlockRenderAdmissionError, PageRenderAudience, PageRendererProps, RenderablePageBlock, RenderablePageOutline, OccurrenceContextData, PageBlockPosition, PageRuntimeBoundary, SdkConfigForRenderer, } from './PageRenderer';
5
5
  export { MissingBlockOverrideError } from './pageRenderingMode';
6
6
  export * from './subroutes';
7
7
  export * from './structure/schema';
@@ -47,7 +47,8 @@ export { createRichTextDocFromMarkdown, parseRichTextInlineMarkdown, parseRichTe
47
47
  export { applyInlineTextMarkToRange, coerceInlineTextWithFallback, inlineTextEqual, inlineTextAccentTones, inlineTextHighlightTones, inlineTextMarksEqual, inlineTextSchema, inlineTextToPlainText, isInlineTextEmpty, normalizeInlineText, normalizeInlineTextMarks, parseInlineTextFromUnknown, plainTextToInlineText, removeInlineTextMarkFromRange, replaceInlineTextRange, truncateInlineText, type InlineText, type InlineTextAccentTone, type InlineTextHighlightTone, type InlineTextMark, type InlineTextParseError, type InlineTextParseResult, type InlineTextRun, } from './system/inlineText';
48
48
  export { renderInlineText } from './system/runtime/nodes/renderInlineText';
49
49
  export type { RichTextDoc, RichTextHardBreakNode, RichTextInlineNode, RichTextTextNode, TipTapNode, } from './system/manifest/richTextSchema';
50
- export { createManifestValidator, createManifestWriteValidator, } from './system/manifest/validation';
50
+ export { admitManifestContentForWrite, admitStoredManifestContent, admitTransportedRenderableManifestContent, compileManifestContentContract, deriveContentZodFromManifest, deriveRenderableManifestContent, findNonPortableManifestMediaPaths, resolveManifestContentFieldDescriptor, validateManifestDraft, validateManifestWriteCandidate, } from './system/manifest/validation';
51
+ export type { CompiledManifestContentContract, ManifestContentAdmissionError, ManifestContentAdmissionIssue, ManifestContentAdmissionResult, ManifestDraftValidationResult, ManifestWriteCandidateValidationResult, RenderableManifestContent, StoredManifestContent, } from './system/manifest/validation';
51
52
  export { singleButtonManifest } from './system/blocks/single-button';
52
53
  export { Text, RichText } from './primitives/content/primitives';
53
54
  export type { PrimitiveAPI, RichTextPrimitiveProps, RichTextVariant, TextProps, } from './primitives/content/primitives';
@@ -0,0 +1,49 @@
1
+ import type { Block, PageOutline } from './structure/schema';
2
+ import type { ManifestContentAdmissionError, RenderableManifestContent } from './system/manifest/validation';
3
+ /**
4
+ * Who the render is for.
5
+ *
6
+ * `public` is a visitor-facing production page: a block that cannot render is
7
+ * dropped rather than replaced with developer-facing text (issue 1378).
8
+ * `authoring` is the dashboard preview and the editor renderer entrypoint,
9
+ * where the diagnostic is the useful output.
10
+ */
11
+ export type PageRenderAudience = 'public' | 'authoring';
12
+ export type PageBlockRenderAdmissionError = Readonly<{
13
+ kind: 'invalid_manifest_content';
14
+ error: ManifestContentAdmissionError;
15
+ }> | Readonly<{
16
+ kind: 'manifest_unavailable';
17
+ }>;
18
+ export type RenderablePageBlock = Readonly<{
19
+ id: Block['id'];
20
+ kind: Block['kind'];
21
+ purpose: Block['purpose'];
22
+ bindings?: Block['bindings'];
23
+ admission: Readonly<{
24
+ kind: 'renderable';
25
+ content: RenderableManifestContent;
26
+ }> | Readonly<{
27
+ kind: 'invalid';
28
+ error: PageBlockRenderAdmissionError;
29
+ }>;
30
+ }>;
31
+ export type RenderablePageOutline = Omit<PageOutline, 'blocks'> & Readonly<{
32
+ blocks: readonly RenderablePageBlock[];
33
+ }>;
34
+ export type PresentationAdmission = Readonly<{
35
+ kind: 'renderable';
36
+ }> | Readonly<{
37
+ kind: 'editor';
38
+ }> | Readonly<{
39
+ kind: 'invalid';
40
+ error: PageBlockRenderAdmissionError;
41
+ }>;
42
+ export type PresentationBlock = Block & Readonly<{
43
+ presentationAdmission: PresentationAdmission;
44
+ }>;
45
+ export type PresentationPageOutline = Omit<PageOutline, 'blocks'> & Readonly<{
46
+ blocks: readonly PresentationBlock[];
47
+ }>;
48
+ export declare function toPresentationPage(page: RenderablePageOutline | null): PresentationPageOutline | null;
49
+ export declare function toEditorPresentationPage(page: PageOutline | null): PresentationPageOutline | null;
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Support for rendering one block section: what a block that cannot render
3
+ * leaves behind, how an override is found, and the props both override paths
4
+ * hand to a component. `PageRenderer` owns the page-level composition; this
5
+ * module owns the pieces it reaches for per block.
6
+ */
7
+ import * as React from 'react';
8
+ import type { getBlockDefinition } from './system';
9
+ import type { ResolverContext, SystemBlockComponent } from './system';
10
+ import type { Block } from './structure/schema';
11
+ import type { SdkCustomBlock } from './system/manifest/schema';
12
+ import type { RouteMap } from './system/transforms';
13
+ import { type ResolveImageUrlContext } from './system/runtime/nodes/media';
14
+ import { type PageThemeResources } from './pageRenderingMode';
15
+ import type { PageBlockRenderAdmissionError, PageRenderAudience, PresentationBlock } from './pageRenderAdmission';
16
+ import type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, PageRendererDataContext, SdkConfigForRenderer } from './PageRenderer';
17
+ export type MemoSectionProps = {
18
+ audience: PageRenderAudience;
19
+ themeResources: PageThemeResources;
20
+ block: PresentationBlock;
21
+ dataContext?: PageRendererDataContext;
22
+ blockKey: string;
23
+ registry?: ResolverContext['registry'];
24
+ routeMap?: RouteMap;
25
+ wrapBlock?: (blockId: string, rendered: React.ReactNode) => React.ReactNode;
26
+ blockOverrides?: BlockOverrides;
27
+ sdkConfig?: SdkConfigForRenderer | null;
28
+ customBlocks?: SdkCustomBlock[];
29
+ imageResolveContext: ResolveImageUrlContext;
30
+ previewAuthoring?: ResolverContext['previewAuthoring'];
31
+ };
32
+ export declare function fallback(message: string): React.JSX.Element;
33
+ /**
34
+ * A page with nothing to show. Authoring surfaces get the diagnostic; a public
35
+ * page renders nothing at all rather than telling a visitor about the outline.
36
+ */
37
+ export declare function emptyPageNotice(audience: PageRenderAudience): React.ReactElement | null;
38
+ /**
39
+ * A public page dropped a block, so nothing in the rendered HTML says the
40
+ * content is missing. Say it in the logs instead.
41
+ */
42
+ export declare function warnOmittedFromPublicPage(input: Readonly<{
43
+ block: PresentationBlock;
44
+ outcome: string;
45
+ admissionError?: PageBlockRenderAdmissionError;
46
+ }>): void;
47
+ export declare function shouldDebugCustomBlocks(): boolean;
48
+ /**
49
+ * Look up a block override component by block kind.
50
+ * Supports both full ("block.hero") and short ("hero") keys.
51
+ */
52
+ export declare function getBlockOverride(blockKind: string, overrides?: BlockOverrides): BlockOverrideComponent | undefined;
53
+ /**
54
+ * Resolves block content based on stage priority.
55
+ * For draft/preview: draftContent takes priority over content.
56
+ * For published: content is the source of truth.
57
+ * Returns empty object if no content exists (validator will handle placeholders if needed).
58
+ */
59
+ export declare function getRenderableContent(block: Block, previewStage?: 'published' | 'preview'): Record<string, unknown>;
60
+ export declare function resolveBookingTimeZone(dataContext: PageRendererDataContext | undefined): string | undefined;
61
+ export declare function resolvePageRendererImageResolveContext(dataContext: PageRendererDataContext | undefined): ResolveImageUrlContext;
62
+ /**
63
+ * The RSC-safe props every override component receives, whether the block
64
+ * resolved a manifest or is being rendered from an override alone.
65
+ */
66
+ export declare function buildBlockOverrideProps(input: Readonly<{
67
+ block: PresentationBlock;
68
+ content: Record<string, unknown>;
69
+ data: BlockOverrideProps['data'];
70
+ themeResources: PageThemeResources;
71
+ dataContext: PageRendererDataContext | undefined;
72
+ imageResolveContext: ResolveImageUrlContext;
73
+ }>): BlockOverrideProps;
74
+ export declare function getPerfSlowBlockRenderThresholdMs(): number;
75
+ export declare function getCachedBlockComponent(manifest: NonNullable<ReturnType<typeof getBlockDefinition>>['manifest']): SystemBlockComponent<Record<string, unknown>>;
@@ -6,6 +6,8 @@ export type PageRuntimeBoundary = CompiledBoundaryRuntime<string>;
6
6
  export type PageBoundaryWrapper = (boundary: PageRuntimeBoundary, rendered: React.ReactNode) => React.ReactNode;
7
7
  export declare function isSiteStyleTransitionStyleGroup(value: string | undefined): value is string;
8
8
  export declare function boundaryMapForAdjacentBlockIds(boundaries: readonly PageRuntimeBoundary[]): ReadonlyMap<string, PageRuntimeBoundary>;
9
+ /** Keep a surviving block's outgoing treatment when omitted blocks change its neighbor. */
10
+ export declare function boundariesForSurvivingBlocks(boundaries: readonly PageRuntimeBoundary[], blocks: readonly Block[]): readonly PageRuntimeBoundary[];
9
11
  export declare function boundaryBetweenBlocks(previousBlock: Block | null, nextBlock: Block | null, boundaries: ReadonlyMap<string, PageRuntimeBoundary>): PageRuntimeBoundary | null;
10
12
  export declare function renderBoundaryAfterBlock(input: Readonly<{
11
13
  block: Block;
@@ -1,4 +1,4 @@
1
- export { default as PageRenderer, MissingBlockOverrideError, } from './PageRenderer';
2
- export type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, EntrySubrouteContextData, OccurrenceContextData, PageBlockPosition, PageRuntimeBoundary, SdkConfigForRenderer, } from './PageRenderer';
1
+ export { default as PageRenderer, EditorPageRenderer, MissingBlockOverrideError, } from './PageRenderer';
2
+ export type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, EntrySubrouteContextData, EditorPageRendererProps, OccurrenceContextData, PageBlockRenderAdmissionError, PageRenderAudience, PageBlockPosition, PageRuntimeBoundary, RenderablePageBlock, RenderablePageOutline, SdkConfigForRenderer, } from './PageRenderer';
3
3
  export * from './subroutes';
4
4
  export { ThemeScope } from '../../theme-core/src/ThemeScope';
@@ -77,7 +77,7 @@ export declare const eventRegistrationManifest: import("..").DefinedBlockManifes
77
77
  }, {
78
78
  readonly id: "showCapacity";
79
79
  readonly type: "boolean";
80
- readonly label: "Show available spots";
80
+ readonly label: "Show available places";
81
81
  readonly description: "Display remaining capacity";
82
82
  readonly required: false;
83
83
  readonly defaultValue: true;
@@ -10,6 +10,8 @@ export { initialPreviewResolvedDataState, previewResolvedDataReducer, selectPrev
10
10
  export type { PreviewLoaderError, PreviewResolvedDataAction, PreviewResolvedDataState, } from './previewResolvedDataState';
11
11
  export { SUPPORTED_LOADER_ENDPOINTS, isSupportedLoaderEndpoint, } from './loaderEndpoints';
12
12
  export type { SupportedLoaderEndpoint } from './loaderEndpoints';
13
+ export { PUBLIC_LOADER_CACHE_POLICIES, getPublicLoaderCachePolicy, } from './publicLoaderCachePolicy';
14
+ export type { PublicLoaderCachePolicy, PublicLoaderCacheTagKind, } from './publicLoaderCachePolicy';
13
15
  export { createMicrobatcher, stableSerialize, type BatchItemResult, type Microbatcher, } from './batching';
14
16
  export { normalizeLoaderParams, normalizePublicApiLoaderParams, } from './normalizeLoaderParams';
15
17
  export { normalizeDataLoaders, normalizeContent, normalizeParams, coerceToString, coercePayload, } from './utils';
@@ -0,0 +1,78 @@
1
+ import type { SupportedLoaderEndpoint } from './loaderEndpoints';
2
+ export type PublicLoaderCacheTagKind = 'published_content' | 'public_whole_series_offerings' | 'public_team_members' | 'public_products' | 'site_forms';
3
+ export type PublicLoaderCachePolicy = Readonly<{
4
+ kind: 'live';
5
+ reason: 'booking_correctness';
6
+ }> | Readonly<{
7
+ kind: 'tagged';
8
+ tags: readonly PublicLoaderCacheTagKind[];
9
+ }>;
10
+ /**
11
+ * Canonical freshness policy for public block-loader data.
12
+ *
13
+ * Consumers may implement tagged caching differently, but a loader marked
14
+ * live here must not be placed in a process-local or durable stale cache.
15
+ */
16
+ export declare const PUBLIC_LOADER_CACHE_POLICIES: {
17
+ readonly listPublishedEntries: {
18
+ readonly kind: "tagged";
19
+ readonly tags: readonly ["published_content"];
20
+ };
21
+ readonly getPublishedEntryPreview: {
22
+ readonly kind: "tagged";
23
+ readonly tags: readonly ["published_content"];
24
+ };
25
+ readonly listPublicEvents: {
26
+ readonly kind: "live";
27
+ readonly reason: "booking_correctness";
28
+ };
29
+ readonly listPublicRecurringSchedule: {
30
+ readonly kind: "live";
31
+ readonly reason: "booking_correctness";
32
+ };
33
+ readonly getPublicEventDetails: {
34
+ readonly kind: "live";
35
+ readonly reason: "booking_correctness";
36
+ };
37
+ readonly listPublicWholeSeriesOfferings: {
38
+ readonly kind: "tagged";
39
+ readonly tags: readonly ["public_whole_series_offerings"];
40
+ };
41
+ readonly getPublicWholeSeriesOffering: {
42
+ readonly kind: "tagged";
43
+ readonly tags: readonly ["public_whole_series_offerings"];
44
+ };
45
+ readonly listPublicRouteCandidates: {
46
+ readonly kind: "tagged";
47
+ readonly tags: readonly ["published_content"];
48
+ };
49
+ readonly listPublicTeamMembers: {
50
+ readonly kind: "tagged";
51
+ readonly tags: readonly ["public_team_members"];
52
+ };
53
+ readonly listPublicProducts: {
54
+ readonly kind: "tagged";
55
+ readonly tags: readonly ["public_products"];
56
+ };
57
+ readonly listPublicPasses: {
58
+ readonly kind: "live";
59
+ readonly reason: "booking_correctness";
60
+ };
61
+ readonly listPublicMemberships: {
62
+ readonly kind: "live";
63
+ readonly reason: "booking_correctness";
64
+ };
65
+ readonly getPublicFormById: {
66
+ readonly kind: "tagged";
67
+ readonly tags: readonly ["site_forms"];
68
+ };
69
+ readonly getPublicBookingServices: {
70
+ readonly kind: "live";
71
+ readonly reason: "booking_correctness";
72
+ };
73
+ readonly getPublicWeeklySlotAvailability: {
74
+ readonly kind: "live";
75
+ readonly reason: "booking_correctness";
76
+ };
77
+ };
78
+ export declare function getPublicLoaderCachePolicy(endpoint: SupportedLoaderEndpoint): PublicLoaderCachePolicy;