@riverbankcms/sdk 0.136.0 → 0.138.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 (343) hide show
  1. package/CHANGELOG.md +109 -0
  2. package/README.md +7 -4
  3. package/dist/{PreviewEditorSidebar-BU5ZlhQR.mjs → PreviewEditorSidebar-BVPur_CU.mjs} +12 -18
  4. package/dist/{PreviewEditorUI-9XkHL-bC.mjs → PreviewEditorUI-DLhWX8oh.mjs} +3 -3
  5. package/dist/{PreviewQueryProvider-wbEpXryy.mjs → PreviewQueryProvider-BguJY1SW.mjs} +1 -1
  6. package/dist/{SdkPreviewModeRuntime-CnWmj-2B.mjs → SdkPreviewModeRuntime-Tda6qw4z.mjs} +1375 -495
  7. package/dist/{SiteChromeCustomizeContext-B6d5zkog.mjs → SiteChromeCustomizeContext-BHFgMjde.mjs} +35665 -33602
  8. package/dist/_dts/ai/src/contracts/proposals.d.ts +7226 -3057
  9. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +1223 -811
  10. package/dist/_dts/ai/src/designer/themePatch.d.ts +5 -10
  11. package/dist/_dts/api/src/accessAdmin.d.ts +16 -18
  12. package/dist/_dts/api/src/accountApi.d.ts +49 -2
  13. package/dist/_dts/api/src/appointmentServiceContracts.d.ts +83 -0
  14. package/dist/_dts/api/src/appointmentServiceLocation.d.ts +12 -0
  15. package/dist/_dts/api/src/appointmentServiceVisibility.d.ts +14 -0
  16. package/dist/_dts/api/src/appointmentSetup.d.ts +8 -0
  17. package/dist/_dts/api/src/bookingConfig.d.ts +35 -87
  18. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +1 -1
  19. package/dist/_dts/api/src/bookingOperations.d.ts +2 -69
  20. package/dist/_dts/api/src/bookingRecords.d.ts +2 -2
  21. package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +2 -2
  22. package/dist/_dts/api/src/bookingServicePricing.d.ts +47 -0
  23. package/dist/_dts/api/src/bookings.d.ts +2 -2
  24. package/dist/_dts/api/src/cache-tags.d.ts +7 -2
  25. package/dist/_dts/api/src/common/index.d.ts +1 -0
  26. package/dist/_dts/api/src/common/zodFieldErrors.d.ts +34 -0
  27. package/dist/_dts/api/src/communications.d.ts +14 -8
  28. package/dist/_dts/api/src/contentRuntime.d.ts +3 -6
  29. package/dist/_dts/api/src/domainConnection.d.ts +41 -0
  30. package/dist/_dts/api/src/endpoints.d.ts +1636 -1637
  31. package/dist/_dts/api/src/eventAttendanceLabels.d.ts +2 -2
  32. package/dist/_dts/api/src/eventManagementContracts.d.ts +10 -14
  33. package/dist/_dts/api/src/index.d.ts +11 -9
  34. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
  35. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  36. package/dist/_dts/api/src/media.d.ts +19 -2
  37. package/dist/_dts/api/src/occurrenceScheduling.d.ts +1 -1
  38. package/dist/_dts/api/src/participantMessaging.d.ts +3 -3
  39. package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
  40. package/dist/_dts/api/src/publicBookingAvailabilityEndpointDefinitions.d.ts +62 -0
  41. package/dist/_dts/api/src/publicBookingService.d.ts +109 -2
  42. package/dist/_dts/api/src/publicEventCheckoutEndpointDefinitions.d.ts +27 -0
  43. package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +7 -0
  44. package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +2 -1
  45. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +30 -148
  46. package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +8 -26
  47. package/dist/_dts/api/src/publicExperience/siteEndpoints.d.ts +5 -13
  48. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +2 -3
  49. package/dist/_dts/api/src/schemas/admin-allowed-domains.d.ts +76 -0
  50. package/dist/_dts/api/src/schemas/admin-observability-logs.d.ts +61 -0
  51. package/dist/_dts/api/src/schemas/admin-users.d.ts +80 -0
  52. package/dist/_dts/api/src/schemas/newsletter-memberships.d.ts +98 -0
  53. package/dist/_dts/api/src/schemas/sdk-entries.d.ts +128 -0
  54. package/dist/_dts/api/src/schemas/site-api-keys.d.ts +112 -0
  55. package/dist/_dts/api/src/schemas/support.d.ts +35 -0
  56. package/dist/_dts/api/src/sdk-event-booking-offer.d.ts +14 -0
  57. package/dist/_dts/api/src/sdk-event-payment-terms.d.ts +4 -16
  58. package/dist/_dts/api/src/sdk-event-upsert.d.ts +11 -21
  59. package/dist/_dts/api/src/sdkContracts.d.ts +8 -23
  60. package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +37 -0
  61. package/dist/_dts/api/src/sdkMediaContracts.d.ts +40 -0
  62. package/dist/_dts/api/src/sdkMediaEndpointDefinitions.d.ts +66 -0
  63. package/dist/_dts/api/src/sdkThemeWire.d.ts +157 -146
  64. package/dist/_dts/api/src/siteInfrastructure.d.ts +37 -37
  65. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +35 -54
  66. package/dist/_dts/api/src/siteOnboarding.d.ts +3 -3
  67. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +38 -16
  68. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +37 -17
  69. package/dist/_dts/api/src/types.d.ts +2 -2
  70. package/dist/_dts/api/src/{wholeSeriesOfferings.d.ts → wholeSeriesRuns.d.ts} +11 -67
  71. package/dist/_dts/block-form/src/FormRenderer.d.ts +3 -1
  72. package/dist/_dts/block-form/src/backend/store-backend.d.ts +2 -1
  73. package/dist/_dts/block-form/src/backend/types.d.ts +2 -0
  74. package/dist/_dts/block-form/src/context/FormFocusContext.d.ts +7 -0
  75. package/dist/_dts/block-form/src/index.d.ts +2 -0
  76. package/dist/_dts/block-form/src/manifest/ManifestForm.d.ts +2 -1
  77. package/dist/_dts/block-form/src/utils/promotedFieldBackend.d.ts +8 -0
  78. package/dist/_dts/block-form/src/utils/promotedFieldPlan.d.ts +18 -0
  79. package/dist/_dts/block-form/src/utils/resolvePromotedFields.d.ts +8 -1
  80. package/dist/_dts/blocks/src/BlockErrorBoundary.d.ts +46 -0
  81. package/dist/_dts/blocks/src/PageRenderer.d.ts +2 -141
  82. package/dist/_dts/blocks/src/contracts/index.d.ts +2 -0
  83. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +12 -6
  84. package/dist/_dts/blocks/src/index.d.ts +1 -0
  85. package/dist/_dts/blocks/src/pageRenderAudience.d.ts +54 -0
  86. package/dist/_dts/blocks/src/pageRenderDiagnostics.d.ts +26 -0
  87. package/dist/_dts/blocks/src/pageRenderPlan.d.ts +116 -0
  88. package/dist/_dts/blocks/src/pageRenderPreparation.d.ts +109 -0
  89. package/dist/_dts/blocks/src/pageRendererBoundaries.d.ts +1 -0
  90. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +154 -0
  91. package/dist/_dts/blocks/src/portal/types.d.ts +1 -1
  92. package/dist/_dts/blocks/src/server.d.ts +1 -0
  93. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +12 -20
  94. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +1 -1
  95. package/dist/_dts/blocks/src/system/blocks/events/eventCalendarDataLoaders.d.ts +3 -0
  96. package/dist/_dts/blocks/src/system/blocks/events/shared/calendarWindow.d.ts +95 -0
  97. package/dist/_dts/blocks/src/system/blocks/events/shared/index.d.ts +1 -0
  98. package/dist/_dts/blocks/src/system/blocks/events/shared/runGrouping.d.ts +37 -0
  99. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +1046 -773
  100. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +59 -46
  101. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -3
  102. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +161 -161
  103. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +13 -6
  104. package/dist/_dts/blocks/src/system/blocks/offerings-preview/scheduleSummary.d.ts +10 -4
  105. package/dist/_dts/blocks/src/system/constants/buttonRoles.d.ts +2 -2
  106. package/dist/_dts/blocks/src/system/constants/events.d.ts +4 -0
  107. package/dist/_dts/blocks/src/system/customize/facets.d.ts +4 -4
  108. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  109. package/dist/_dts/blocks/src/system/data/publicLoaderCachePolicy.d.ts +5 -9
  110. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +83 -83
  111. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +12 -3
  112. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -8
  113. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  114. package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +13 -0
  115. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +12 -20
  116. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +32 -37
  117. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +15 -18
  118. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +11 -8
  119. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +38 -22
  120. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +7 -0
  121. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/WholeSeriesPricingDisplay.d.ts +2 -2
  122. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +16 -4
  123. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/ErrorStep.d.ts +3 -5
  124. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +4 -2
  125. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentSelectionStep.d.ts +1 -1
  126. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +5 -3
  127. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +1 -1
  128. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventScope.d.ts +1 -1
  129. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +2 -0
  130. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationCompletion.d.ts +15 -0
  131. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDerivations.d.ts +2 -2
  132. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorPresentation.d.ts +5 -0
  133. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +25 -0
  134. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.d.ts +14 -3
  135. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +3 -21
  136. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationWizardContext.d.ts +4 -0
  137. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/siteCreditPreview.d.ts +0 -3
  138. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/ticketSelectionLines.d.ts +14 -16
  139. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +13 -15
  140. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +7 -3
  141. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +9 -3
  142. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +25 -23
  143. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useWaitlistClaimRestoration.d.ts +2 -0
  144. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +11 -4
  145. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +8 -13
  146. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +5 -0
  147. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +1 -0
  148. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +11 -3
  149. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/capacity.d.ts +164 -0
  150. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/cta.d.ts +29 -0
  151. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +47 -0
  152. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/index.d.ts +14 -0
  153. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/people.d.ts +6 -0
  154. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/pricing.d.ts +24 -0
  155. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/OfferingTitle.d.ts +11 -0
  156. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +1 -1
  157. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +1 -1
  158. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +1080 -560
  159. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventProductEligibility.d.ts +2 -2
  160. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/index.d.ts +3 -1
  161. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listingLayout.d.ts +23 -0
  162. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +2 -2
  163. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +7 -7
  164. package/dist/_dts/blocks/src/system/transforms/registry/eventCalendar.d.ts +11 -0
  165. package/dist/_dts/commerce/src/moneyReport.d.ts +1 -1
  166. package/dist/_dts/commerce/src/purchase/checkoutErrorCodes.d.ts +1 -1
  167. package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +57 -0
  168. package/dist/_dts/commerce/src/purchase/eventOrderOptionSnapshot.d.ts +3 -0
  169. package/dist/_dts/commerce/src/purchase/index.d.ts +1 -0
  170. package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +6 -3
  171. package/dist/_dts/commerce/src/purchase/types.d.ts +3 -2
  172. package/dist/_dts/commerce/src/waitlists.d.ts +1 -1
  173. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +4 -0
  174. package/dist/_dts/content-editor/src/controller/useBlockedPublishPlan.d.ts +11 -0
  175. package/dist/_dts/content-editor/src/hooks/applyBlockedPublishPlan.d.ts +1 -1
  176. package/dist/_dts/content-editor/src/hooks/blockedPublishPlan.d.ts +13 -5
  177. package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +5 -1
  178. package/dist/_dts/content-editor/src/hooks/validateBlocksForPublish.d.ts +34 -2
  179. package/dist/_dts/content-editor/src/index.d.ts +2 -1
  180. package/dist/_dts/content-editor/src/ui/blockValidationManifestRegistry.d.ts +2 -0
  181. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +4 -2
  182. package/dist/_dts/content-editor/src/ui/stores/types.d.ts +27 -5
  183. package/dist/_dts/content-model/src/content-types/schema.d.ts +3 -3
  184. package/dist/_dts/content-model/src/templates/defaults.d.ts +11 -0
  185. package/dist/_dts/core/src/branded.d.ts +28 -9
  186. package/dist/_dts/core/src/event-booking-offer-parser.d.ts +82 -0
  187. package/dist/_dts/core/src/event-booking-offer.d.ts +89 -0
  188. package/dist/_dts/core/src/event-page-surface-subject.d.ts +81 -4
  189. package/dist/_dts/core/src/event-pricing.d.ts +81 -89
  190. package/dist/_dts/core/src/index.d.ts +3 -0
  191. package/dist/_dts/core/src/non-empty-array.d.ts +3 -0
  192. package/dist/_dts/core/src/whole-series-run-schedule.d.ts +92 -0
  193. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +495 -279
  194. package/dist/_dts/db/src/index.d.ts +1 -0
  195. package/dist/_dts/db/src/utils/postgrestFilter.d.ts +2 -0
  196. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +2 -6
  197. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +1 -1
  198. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +2 -2
  199. package/dist/_dts/editor-blocks/src/block-editor/BlockSettingsModal.d.ts +4 -2
  200. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockValidationManifests.d.ts +1 -0
  201. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +22 -7
  202. package/dist/_dts/editor-blocks/src/block-editor/useSettingsFieldFocus.d.ts +18 -0
  203. package/dist/_dts/media-core/src/bulkDeletePlanning.d.ts +4 -0
  204. package/dist/_dts/media-core/src/fileDomain.d.ts +3 -0
  205. package/dist/_dts/preview-next/src/client/blocks/previewBatchLoaderParams.d.ts +2 -0
  206. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -0
  207. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -0
  208. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +3 -2
  209. package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +1 -1
  210. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +2 -0
  211. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlSaveRequest.d.ts +51 -0
  212. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +24 -2
  213. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +23 -1
  214. package/dist/_dts/preview-next/src/client/preview/usePersistedHeaderPreferences.d.ts +8 -0
  215. package/dist/_dts/sdk/src/client/{eventSubrouteReadOperations.d.ts → publicEventReadOperations.d.ts} +4 -3
  216. package/dist/_dts/sdk/src/client/types.d.ts +6 -10
  217. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  218. package/dist/_dts/sdk/src/config/validation.d.ts +3 -3
  219. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +5 -0
  220. package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +2 -3
  221. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +8 -8
  222. package/dist/_dts/sdk/src/next/tags.d.ts +5 -8
  223. package/dist/_dts/sdk/src/public-api/contracts.d.ts +2 -26
  224. package/dist/_dts/sdk/src/rendering/helpers/footerPageOutline.d.ts +9 -1
  225. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
  226. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +6 -53
  227. package/dist/_dts/sdk/src/rendering/server.d.ts +1 -0
  228. package/dist/_dts/sdk/src/version.d.ts +1 -1
  229. package/dist/_dts/theme-core/src/accordions/types.d.ts +5 -5
  230. package/dist/_dts/theme-core/src/buttons/styles/recipes/flatInk.d.ts +25 -25
  231. package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +25 -25
  232. package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +7 -7
  233. package/dist/_dts/theme-core/src/buttons/types.d.ts +22 -22
  234. package/dist/_dts/theme-core/src/cards/types.d.ts +49 -49
  235. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  236. package/dist/_dts/theme-core/src/gradients/types.d.ts +5 -0
  237. package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +26 -3
  238. package/dist/_dts/theme-core/src/inputs/types.d.ts +2 -2
  239. package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
  240. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +195 -195
  241. package/dist/_dts/theme-core/src/navigation/types.d.ts +3 -3
  242. package/dist/_dts/theme-core/src/palette/colors.d.ts +1 -1
  243. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +2 -2
  244. package/dist/_dts/theme-core/src/schema.d.ts +258 -257
  245. package/dist/_dts/theme-core/src/shared/componentStyles.d.ts +1 -1
  246. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  247. package/dist/_dts/theme-core/src/site-styles/cardRoleVocabulary.d.ts +1 -1
  248. package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +43 -3
  249. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +10 -0
  250. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +4 -4
  251. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
  252. package/dist/_dts/theme-core/src/site-styles/headerBrandPresentation.d.ts +63 -0
  253. package/dist/_dts/theme-core/src/site-styles/headerBytesComparison.d.ts +30 -0
  254. package/dist/_dts/theme-core/src/site-styles/headerInteractionPalette.d.ts +50 -1
  255. package/dist/_dts/theme-core/src/site-styles/headerLayoutCatalog.d.ts +48 -9
  256. package/dist/_dts/theme-core/src/site-styles/headerPreferences.d.ts +162 -0
  257. package/dist/_dts/theme-core/src/site-styles/headerPreferencesPersistence.d.ts +73 -0
  258. package/dist/_dts/theme-core/src/site-styles/headerRecompile.d.ts +118 -0
  259. package/dist/_dts/theme-core/src/site-styles/headerStyleCompiler.d.ts +10 -1
  260. package/dist/_dts/theme-core/src/site-styles/headerStyleDefaults.d.ts +1 -1
  261. package/dist/_dts/theme-core/src/site-styles/headerStyleRecipe.d.ts +7 -0
  262. package/dist/_dts/theme-core/src/site-styles/index.d.ts +5 -0
  263. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
  264. package/dist/_dts/theme-core/src/site-styles/siteChromeBackgrounds.d.ts +20 -1
  265. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +43 -2
  266. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  267. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +3 -3
  268. package/dist/_dts/ui/src/badge.d.ts +1 -1
  269. package/dist/_dts/ui/src/button.d.ts +2 -2
  270. package/dist/client/{BookingConsentAgreement-DCch21a6.mjs → BookingConsentAgreement-DQUik1Mx.mjs} +2 -2
  271. package/dist/client/{DiscountCodeDisclosure-DIj1T59K.mjs → DiscountCodeDisclosure-CU67Q4vH.mjs} +1 -1
  272. package/dist/client/{EventCombined.client-BWVNlXTx.mjs → EventCombined.client-a02TXUgg.mjs} +233 -348
  273. package/dist/client/{EventListing.client-DVFCDe3i.mjs → EventListing.client-99qx7jFl.mjs} +2 -2
  274. package/dist/client/{LeafletStaticMap-BY5mIHw9.mjs → LeafletStaticMap-CWzcq73L.mjs} +1 -1
  275. package/dist/client/{accordion-CK29E8rG.mjs → accordion-D1nb3-Oj.mjs} +1 -1
  276. package/dist/client/{bookingForm-DFvnet-N.mjs → bookingForm-BGrmLhaO.mjs} +5 -5
  277. package/dist/client/bookings.mjs +10555 -10475
  278. package/dist/client/{carousel-BVU5NQlb.mjs → carousel-DSmOx3ad.mjs} +1 -1
  279. package/dist/client/{cart-BNItcZVa.mjs → cart-COWeOIUk.mjs} +3 -3
  280. package/dist/client/{checkout-Bu6iCdkP.mjs → checkout-CeysaIJK.mjs} +3 -3
  281. package/dist/client/client.mjs +58968 -57441
  282. package/dist/client/{context-BImarOAq.mjs → context-DBzX85Xc.mjs} +46 -18
  283. package/dist/client/dates-DCYhZBlW.mjs +264 -0
  284. package/dist/client/{eventCalendar-DS2h-UXD.mjs → eventCalendar-BgsN73Ul.mjs} +21 -44
  285. package/dist/client/{eventCombined-Drt4Oq9p.mjs → eventCombined-DcZQAMQP.mjs} +3 -3
  286. package/dist/client/{eventDetails-Bl2vWgTX.mjs → eventDetails-BWwGJ54l.mjs} +131 -51
  287. package/dist/client/{eventListing-CS7PHY7v.mjs → eventListing-DqYqV8vp.mjs} +3 -3
  288. package/dist/client/{eventRegistration-D-j8eNy2.mjs → eventRegistration-DQGDgu_e.mjs} +1122 -803
  289. package/dist/client/{form-RMpoLTyr.mjs → form-ClfpasVT.mjs} +2 -2
  290. package/dist/client/{headerSection-BYE3Lb3k.mjs → headerSection-BuOMe98N.mjs} +2 -2
  291. package/dist/client/hooks.mjs +9630 -9526
  292. package/dist/client/{locationMap-BxSr7Kkh.mjs → locationMap-CEqu_sfa.mjs} +2 -2
  293. package/dist/client/{newsletterForm-DerbXwFC.mjs → newsletterForm-IbrHjMxy.mjs} +2 -2
  294. package/dist/client/pricing-xj7MPZlK.mjs +314 -0
  295. package/dist/client/{productDetail-4SZCLhAf.mjs → productDetail-vxqTt5Xj.mjs} +3 -3
  296. package/dist/client/{productList-D7AP4GNq.mjs → productList-OTdZu8sb.mjs} +3 -3
  297. package/dist/client/{propsDecoder-pzBeCh14.mjs → propsDecoder-CY9gGEF7.mjs} +786 -1194
  298. package/dist/client/rendering/client.mjs +11481 -10469
  299. package/dist/client/rendering/islands.mjs +17 -17
  300. package/dist/client/rendering.mjs +26871 -25232
  301. package/dist/client/{scrollToBlock-CduAKf8T.mjs → scrollToBlock--BFV6kl-.mjs} +1 -1
  302. package/dist/client/{shop-Cp5p_kGe.mjs → shop-CP4YbDL9.mjs} +6 -6
  303. package/dist/client/{shop-commerce-DicXYaYX.mjs → shop-commerce-APs4XBXE.mjs} +5 -5
  304. package/dist/client/{shop-commerce-store-CGWnpY4K.mjs → shop-commerce-store-CAVLxLFr.mjs} +1 -1
  305. package/dist/client/{shopShared-BDf9ljkm.mjs → shopShared-BnSRrwXI.mjs} +3 -3
  306. package/dist/client/{useEventFilters-DeeyGYuk.mjs → useEventFilters-1a1by4c8.mjs} +33 -18
  307. package/dist/preview-next/before-render.mjs +186 -148
  308. package/dist/preview-next/client/runtime.mjs +4 -4
  309. package/dist/preview-next/keepAlive.mjs +186 -148
  310. package/dist/preview-next/middleware.mjs +186 -148
  311. package/dist/{previewAuthStore-DbqBol0V.mjs → previewAuthStore-BkEgnYPP.mjs} +186 -148
  312. package/dist/{sdk-runtime-19MO27F0.mjs → sdk-runtime-DwGfsT0S.mjs} +2 -2
  313. package/dist/{separator-DaPLtJ1f.mjs → separator-BeqDLneQ.mjs} +1 -1
  314. package/dist/server/components.mjs +53243 -51879
  315. package/dist/server/config-validation.mjs +1015 -906
  316. package/dist/server/config.mjs +1019 -910
  317. package/dist/server/data.mjs +10304 -10200
  318. package/dist/server/index.mjs +217 -198
  319. package/dist/server/next/tags.mjs +18 -4
  320. package/dist/server/next.mjs +62787 -61617
  321. package/dist/server/page-converter.mjs +797 -917
  322. package/dist/server/prebuild.mjs +1 -1
  323. package/dist/server/rendering/server.mjs +52557 -51365
  324. package/dist/server/rendering.mjs +54373 -53054
  325. package/dist/server/routing.mjs +13274 -13142
  326. package/dist/server/server.mjs +1076 -1154
  327. package/dist/server/theme-bridge.mjs +69 -9
  328. package/dist/server/theme.mjs +27 -8
  329. package/dist/styles/index.css +32 -1
  330. package/package.json +1 -1
  331. package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +0 -65
  332. package/dist/_dts/api/src/publicWholeSeriesEndpointDefinitions.d.ts +0 -20
  333. package/dist/_dts/api/src/sdk-event-pricing.d.ts +0 -61
  334. package/dist/_dts/blocks/src/system/blocks/events/whole-series/index.d.ts +0 -3
  335. package/dist/_dts/blocks/src/system/blocks/events/whole-series/pricing.d.ts +0 -50
  336. package/dist/_dts/blocks/src/system/blocks/events/whole-series/schemas.d.ts +0 -135
  337. package/dist/_dts/blocks/src/system/blocks/events/whole-series/types.d.ts +0 -87
  338. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCapacity.d.ts +0 -48
  339. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/pricing.d.ts +0 -17
  340. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +0 -100
  341. package/dist/_dts/sdk/src/client/wholeSeriesReadOperations.d.ts +0 -11
  342. package/dist/_dts/sdk/src/public-api/wholeSeriesContracts.d.ts +0 -2
  343. /package/dist/_dts/blocks/src/system/runtime/nodes/events/{shared → domain}/destination.d.ts +0 -0
@@ -28,6 +28,8 @@ export interface FormRendererProps {
28
28
  * These paths should refer to existing data within the form values (no duplication).
29
29
  */
30
30
  promotedFields?: string[];
31
+ /** Field path whose nested owners should be revealed for editor focus. */
32
+ focusPath?: string | null;
31
33
  }
32
34
  /**
33
35
  * FormRenderer - Renders a list of fields using the widget registry
@@ -35,4 +37,4 @@ export interface FormRendererProps {
35
37
  * Works with any field source (manifests, custom configs, etc.)
36
38
  * Works with any backend (RHF, Zustand store, etc.)
37
39
  */
38
- export declare function FormRenderer({ fields, backend, className, fieldWrapper, widgetOverrides, blockKind, showSettingsTrigger, promotedFields, }: FormRendererProps): ReactNode;
40
+ export declare function FormRenderer(props: FormRendererProps): ReactNode;
@@ -50,8 +50,9 @@ interface EditorStoreState {
50
50
  };
51
51
  arrayKeys: ArrayKeysManager;
52
52
  requestFocus?: (payload: {
53
+ kind: 'main-field';
53
54
  blockId: EditorBlockId;
54
- fieldPath?: string | null;
55
+ fieldPath: string;
55
56
  }) => void;
56
57
  }
57
58
  /**
@@ -24,6 +24,8 @@ export interface ZustandLikeStore<TState = unknown> {
24
24
  subscribe: (callback: () => void) => () => void;
25
25
  }
26
26
  export type SetValueOptions = {
27
+ /** Logical field edited when a structured write replaces an ancestor value. */
28
+ editedPath?: string;
27
29
  shouldDirty?: boolean;
28
30
  shouldTouch?: boolean;
29
31
  shouldValidate?: boolean;
@@ -0,0 +1,7 @@
1
+ import { type ReactNode } from 'react';
2
+ export declare function FormFocusProvider({ fieldPath, children, }: Readonly<{
3
+ fieldPath: string | null;
4
+ children: ReactNode;
5
+ }>): import("react").JSX.Element;
6
+ export declare function useFormFocusPath(): string | null;
7
+ export declare function focusPathIsWithin(focusPath: string | null, ownerPath: string): boolean;
@@ -3,6 +3,8 @@ export { mergeManifestWithSdkOptions } from './manifest/mergeManifestWithSdkOpti
3
3
  export { WIDGET_NAMES } from './widgets/constants';
4
4
  export * from './utils/fieldHelpers';
5
5
  export { evaluateVisibility } from './utils/evaluateVisibility';
6
+ export { derivePromotedFieldPlan, prunePromotedFields, type PromotedFieldPlan, } from './utils/promotedFieldPlan';
7
+ export { resolvePromotedFields } from './utils/resolvePromotedFields';
6
8
  export type { FormRendererProps } from './FormRenderer';
7
9
  export type { ManifestFormProps } from './manifest/ManifestForm';
8
10
  export type { FieldWidgetComponent, FieldWidgetProps } from './fields/props';
@@ -20,6 +20,7 @@ export interface ManifestFormProps {
20
20
  blockKind?: string;
21
21
  /** Show inline settings trigger for non-content intents (default: true) */
22
22
  showSettingsTrigger?: boolean;
23
+ focusPath?: string | null;
23
24
  }
24
25
  /**
25
26
  * ManifestForm - Renders form fields from a block manifest
@@ -34,4 +35,4 @@ export interface ManifestFormProps {
34
35
  * <ManifestForm manifest={blockManifest} backend={backend} />
35
36
  * ```
36
37
  */
37
- export declare function ManifestForm({ manifest, className, role, backend, widgetOverrides, blockKind, showSettingsTrigger, }: ManifestFormProps): import("react").JSX.Element | null;
38
+ export declare function ManifestForm({ manifest, className, role, backend, widgetOverrides, blockKind, showSettingsTrigger, focusPath, }: ManifestFormProps): import("react").JSX.Element | null;
@@ -0,0 +1,8 @@
1
+ import type { FormBackend } from '../backend/types';
2
+ import type { ResolvedPromotedField } from './resolvePromotedFields';
3
+ /**
4
+ * Replace the outermost owning tab object in one backend/autosave update.
5
+ * Each edit deep-clones that subtree, including nested repeater-item data;
6
+ * editedPath preserves leaf validation visibility despite the ancestor write.
7
+ */
8
+ export declare function createPromotedFieldBackend(backend: FormBackend, promoted: ResolvedPromotedField): FormBackend;
@@ -0,0 +1,18 @@
1
+ import type { FieldConfig } from '../fields/types';
2
+ import { type ResolvedPromotedField } from './resolvePromotedFields';
3
+ export type PromotedFieldPlan = Readonly<{
4
+ beforeContent: readonly ResolvedPromotedField[];
5
+ afterContent: readonly ResolvedPromotedField[];
6
+ promotedPaths: ReadonlySet<string>;
7
+ topLevelFieldIds: ReadonlySet<string>;
8
+ }>;
9
+ /**
10
+ * Plans the main-form shortcuts from one manifest field list.
11
+ *
12
+ * Explicit shortcuts keep their established before-content position. Required
13
+ * top-level Display/Behavior fields are appended after content so the Form
14
+ * block reads Title, Intro, Form. Nested required fields stay with their owner
15
+ * container instead of being flattened into a misleading standalone control.
16
+ */
17
+ export declare function derivePromotedFieldPlan(fields: FieldConfig[], explicitPaths: readonly string[] | undefined, getValue?: (path: string) => unknown): PromotedFieldPlan;
18
+ export declare function prunePromotedFields(fields: readonly FieldConfig[], promotedPaths: ReadonlySet<string>, parentPath?: string): FieldConfig[];
@@ -1,6 +1,13 @@
1
1
  import type { FieldConfig } from '../fields/types';
2
2
  import type { TabDefinition } from '../widgets/TabGroupField/types';
3
+ export type PromotedTabSelection = {
4
+ readonly parentPath: string;
5
+ readonly controlField: string;
6
+ readonly tabId: string;
7
+ };
3
8
  export type ResolvedPromotedField = {
9
+ /** Ancestor selections required when writing through this shortcut. */
10
+ tabSelections: readonly PromotedTabSelection[];
4
11
  /** Absolute backend path to read/write (e.g. `_sectionStyles.background.image`) */
5
12
  path: string;
6
13
  /** Field config to render at the path */
@@ -19,4 +26,4 @@ export type ResolvedPromotedField = {
19
26
  * uses greedy matching against child IDs to support those paths.
20
27
  * - Array indexes in paths (e.g. `items.0.title`) are ignored for matching.
21
28
  */
22
- export declare function resolvePromotedFields(fields: FieldConfig[], promotedPaths: string[] | undefined): ResolvedPromotedField[];
29
+ export declare function resolvePromotedFields(fields: FieldConfig[], promotedPaths: string[] | undefined, getValue: (path: string) => unknown): ResolvedPromotedField[];
@@ -0,0 +1,46 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Enough of the render context to find the offending block from a log line.
4
+ * Deliberately a plain serialisable record: this component is a client
5
+ * reference, so nothing that crosses into it may be a function.
6
+ */
7
+ export type BlockErrorRecord = Readonly<{
8
+ siteId: string | null;
9
+ pageId: string | null;
10
+ blockId: string | null;
11
+ blockKind: string;
12
+ }>;
13
+ export type BlockErrorBoundaryProps = Readonly<{
14
+ /**
15
+ * What to show in the block's place once it has thrown. The caller resolves
16
+ * it through `presentNotRenderableBlock`, so the audience policy stays in one
17
+ * module — `null` for a public visitor, the diagnostic for an author.
18
+ */
19
+ fallback: React.ReactNode;
20
+ record: BlockErrorRecord;
21
+ /**
22
+ * Identity of the entry being rendered. When it changes the boundary forgets
23
+ * a previous failure, so a block the author has since fixed renders again.
24
+ * Keying the *element* on the block id is not enough for that — the block id
25
+ * is stable across the very edit that fixes it.
26
+ */
27
+ resetKey: unknown;
28
+ children: React.ReactNode;
29
+ }>;
30
+ export declare const BlockErrorBoundary: React.ComponentType<Readonly<{
31
+ /**
32
+ * What to show in the block's place once it has thrown. The caller resolves
33
+ * it through `presentNotRenderableBlock`, so the audience policy stays in one
34
+ * module — `null` for a public visitor, the diagnostic for an author.
35
+ */
36
+ fallback: React.ReactNode;
37
+ record: BlockErrorRecord;
38
+ /**
39
+ * Identity of the entry being rendered. When it changes the boundary forgets
40
+ * a previous failure, so a block the author has since fixed renders again.
41
+ * Keying the *element* on the block id is not enough for that — the block id
42
+ * is stable across the very edit that fixes it.
43
+ */
44
+ resetKey: unknown;
45
+ children: React.ReactNode;
46
+ }>>;
@@ -5,152 +5,13 @@ import type { Theme } from '../../theme-core/src/schema';
5
5
  import type { SdkCustomBlock } from './system/manifest/schema';
6
6
  import type { ThemeTokens } from './system/theme';
7
7
  import type { RouteMap } from './system/transforms';
8
- import { type MediaAssetIndexItem, type ResolveImageUrlContext, type ResolveImageUrlContextInput } from './system/runtime/nodes/media';
9
- import type { BookingOfferingPresetSummary } from './system/blocks/offerings-preview/model';
10
8
  import { type PageBoundaryWrapper, type PageRuntimeBoundary } from './pageRendererBoundaries';
9
+ import type { BlockOverrides, PageRendererDataContext, SdkConfigForRenderer } from './pageRendererContracts';
11
10
  import { type RenderablePageOutline } from './pageRenderAdmission';
12
11
  export type { PageBlockRenderAdmissionError, RenderablePageBlock, RenderablePageOutline, } from './pageRenderAdmission';
12
+ export type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, EntrySubrouteContextData, OccurrenceContextData, SdkConfigForRenderer, } from './pageRendererContracts';
13
13
  export { MissingBlockOverrideError } from './pageRenderingMode';
14
14
  export type { PageBlockPosition, PageRuntimeBoundary, } from './pageRendererBoundaries';
15
- /**
16
- * Occurrence context for event pages.
17
- * Passed through to blocks that need occurrence information (e.g., event-registration).
18
- */
19
- export type OccurrenceContextData = import('../../core/src/index').EventOccurrenceContextData;
20
- /**
21
- * Event-occurrence subroute context.
22
- */
23
- export type EntrySubrouteContextData = import('../../core/src/index').EventPageSubrouteContext;
24
- type PageRendererDataContext = {
25
- siteId?: string;
26
- pageId?: string;
27
- resolvedData?: Record<string, Record<string, unknown>>;
28
- previewStage?: 'published' | 'preview';
29
- previewToken?: string | null;
30
- routes?: RouteMap;
31
- pagesByIdentifier?: Record<string, string>;
32
- entriesByIdentifier?: Record<string, Record<string, string>>;
33
- occurrenceContext?: OccurrenceContextData | null;
34
- entrySubrouteContext?: EntrySubrouteContextData | null;
35
- contentEntry?: Record<string, unknown> | null;
36
- pageSurface?: Record<string, unknown> | null;
37
- subject?: import('../../core/src/index').EventPageSurfaceSubjectWire | null;
38
- editableRouteMetadataFieldIds?: ReadonlyArray<string> | null;
39
- supabaseUrl?: string;
40
- mediaAssets?: readonly MediaAssetIndexItem[];
41
- imageResolveContext?: ResolveImageUrlContextInput;
42
- apiBaseUrl?: string;
43
- portalToken?: string | null;
44
- bookingOfferingPresets?: readonly BookingOfferingPresetSummary[];
45
- bookingTimeZone?: string;
46
- eventRegistrationOverlayEnabled?: boolean;
47
- };
48
- /**
49
- * Props passed to block override components.
50
- *
51
- * These props are RSC-safe (no functions) so overrides can be Client Components.
52
- * Unlike internal SDK block components, overrides don't receive `registry` or
53
- * `fragmentRegistry` which contain function references that can't cross the
54
- * RSC serialization boundary.
55
- *
56
- * @example
57
- * ```tsx
58
- * 'use client';
59
- *
60
- * import type { BlockOverrideProps, HeroContent } from '@riverbankcms/sdk/rendering';
61
- *
62
- * export function CustomHero({ content, theme, data }: BlockOverrideProps<HeroContent>) {
63
- * const [expanded, setExpanded] = useState(false);
64
- * return <div>...</div>;
65
- * }
66
- * ```
67
- */
68
- export type BlockOverrideProps<TContent = Record<string, unknown>> = {
69
- /** Block content data */
70
- content: TContent;
71
- /** Theme tokens for styling */
72
- theme?: ThemeTokens;
73
- /** Full theme configuration */
74
- themeConfig?: Theme;
75
- /** Pre-fetched data from data loaders */
76
- data?: Record<string, unknown>;
77
- /** Site UUID (useful for media URL resolution in override components) */
78
- siteId?: string;
79
- /** Dashboard API URL for client-side block runtime calls. */
80
- apiBaseUrl?: string;
81
- /** Canonical site timezone for calendar/date behavior. */
82
- bookingTimeZone?: string;
83
- /** Customer portal token for Bearer-authenticated block runtime calls. */
84
- portalToken?: string | null;
85
- /** Preview bearer token for preview-aware block runtime calls. */
86
- previewToken?: string | null;
87
- /** Render stage for preview-aware block runtime calls. */
88
- stage?: 'published' | 'preview';
89
- /** Event-occurrence context for template-aware block overrides. */
90
- occurrenceContext?: OccurrenceContextData | null;
91
- /** Generic entry subroute context for template-aware block overrides. */
92
- entrySubrouteContext?: EntrySubrouteContextData | null;
93
- /** Content entry context for template-aware block overrides. */
94
- contentEntry?: Record<string, unknown> | null;
95
- /** Native page-surface context for template-aware block overrides. */
96
- pageSurface?: Record<string, unknown> | null;
97
- /** Subject descriptor for native page-surface block overrides. */
98
- subject?: import('../../core/src/index').EventPageSurfaceSubjectWire | null;
99
- /** Supabase project URL (useful for media URL resolution in override components) */
100
- supabaseUrl?: string;
101
- /** Full image-resolution context including canonical media sidecars. */
102
- imageResolveContext?: ResolveImageUrlContext;
103
- /** Block instance ID (null for unsaved blocks) */
104
- blockId: string | null;
105
- /** Block kind identifier (e.g., "block.hero" or "custom.my-block") */
106
- blockKind: string;
107
- };
108
- /**
109
- * Block override component type.
110
- *
111
- * Override components can be either Server Components or Client Components.
112
- * They receive only serializable props (no functions) to support RSC boundaries.
113
- *
114
- * @example Server Component override
115
- * ```tsx
116
- * export function CustomHero({ content, theme, data }: BlockOverrideProps<HeroContent>) {
117
- * return <div className="custom-hero">...</div>;
118
- * }
119
- * ```
120
- *
121
- * @example Client Component override
122
- * ```tsx
123
- * 'use client';
124
- *
125
- * export function CustomHero({ content, theme, data }: BlockOverrideProps<HeroContent>) {
126
- * const [state, setState] = useState(null);
127
- * return <div className="custom-hero">...</div>;
128
- * }
129
- * ```
130
- */
131
- export type BlockOverrideComponent = React.ComponentType<BlockOverrideProps<unknown>>;
132
- /**
133
- * Map of block kinds to custom override components.
134
- * Keys can be either:
135
- * - Full block kind: "block.hero"
136
- * - Short form: "hero" (will match "block.hero")
137
- *
138
- * @example
139
- * ```tsx
140
- * const overrides: BlockOverrides = {
141
- * 'hero': CustomHero, // CustomHero uses BlockOverrideProps<HeroContent>
142
- * 'body-text': CustomBodyText, // CustomBodyText uses BlockOverrideProps<BodyTextContent>
143
- * };
144
- * ```
145
- */
146
- export type BlockOverrides = Record<string, BlockOverrideComponent>;
147
- /**
148
- * SDK site configuration for custom block rendering.
149
- * Minimal type containing only what PageRenderer needs.
150
- */
151
- export type SdkConfigForRenderer = {
152
- customBlocks?: SdkCustomBlock[];
153
- };
154
15
  type PageRendererCommonProps<TPage> = {
155
16
  page: TPage | null;
156
17
  runtimeBoundaries?: readonly PageRuntimeBoundary[];
@@ -1,6 +1,8 @@
1
1
  export type { AnyBlockRuntimeDefinition, BlockRenderKind, BlockRuntimeDefinition, ClientOwnedBlockRuntime, Codec, DecodeIssue, DecodeResult, InteractiveBlockRenderKind, InteractiveBlockRuntime, InteractiveRuntimeContracts, ProgressiveBlockRender, ProgressiveBlockRuntime, RuntimeContractsFor, RuntimeDisplay, RuntimeHydration, RuntimeKind, RuntimeRender, RuntimeSource, StaticBlockRuntime, StaticRuntimeContracts, } from './runtime';
2
2
  export type { InteractiveIslandProps } from './islands';
3
3
  export type { PublicEvent } from '../system/blocks/events/shared/types';
4
+ export { calendarWindowQuerySchema, calendarWindowPageSchema, calendarMonthWindowSchema, calendarMonthKey, calendarMonthDate, calendarWindowMonths, calendarWindowBounds, resolveCalendarWindow, calendarQueryKey, planCalendarMonthRanges, CALENDAR_SSR_PAGE_SIZE, CALENDAR_CLIENT_PAGE_SIZE } from '../system/blocks/events/shared/calendarWindow';
5
+ export type { CalendarWindowQuery, CalendarWindowRequest, CalendarWindowPage, CalendarMonthWindow, CalendarSourceCursor, CalendarPageProgress, CalendarFilterInput } from '../system/blocks/events/shared/calendarWindow';
4
6
  export type { AccordionIslandProps, CarouselIslandProps, EventDetailsIslandProps, EventDetailsOccurrenceContext, HeaderSectionIslandProps, LocationMapIslandProps, } from './non-block-islands';
5
7
  export type { HeaderChromeRuntimeContract, HeaderScrollRuntime, } from '../system/runtime/header/runtimeContract';
6
8
  export type { BookingFormConfig, BookingFormDisplay, BookingFormHydration, BookingFormInteractiveIslandProps, BookingFormService, CartDisplay, CartHydration, CartInteractiveIslandProps, CartLineDisplay, CheckoutDisplay, CheckoutHydration, CheckoutInteractiveIslandProps, EventCalendarDisplay, EventCalendarHydration, EventCalendarInteractiveIslandProps, EventCombinedDisplay, EventCombinedHydration, EventCombinedInteractiveIslandProps, EventRegistrationDisplay, EventRegistrationHydration, EventRegistrationInteractiveIslandProps, EventListingDisplay, EventListingHydration, EventListingInteractiveIslandProps, FormDisplay, FormHydration, FormInteractiveIslandProps, MembershipCardDisplay, NewsletterFormDisplay, NewsletterFormHydration, NewsletterFormInteractiveIslandProps, PassCardDisplay, PassesMembershipsDisplay, PassesMembershipsHydration, ProductCardDisplay, ProductDetailDisplay, ProductDetailInteractiveIslandProps, ProductDetailHydration, ProductListDisplay, ProductListInteractiveIslandProps, ProductListHydration, ProductVariantOptionDisplay, ShopInteractiveIslandProps, } from './proof-block-islands';
@@ -280,7 +280,7 @@ export declare const proofBlockIslandCodecs: {
280
280
  showMap: boolean;
281
281
  showCapacity: boolean;
282
282
  orientation: import("..").CardOrientation;
283
- events: readonly import(".").PublicEvent[];
283
+ events: readonly import("../../../api/src/index").PublicEvent[];
284
284
  }>;
285
285
  hydration: Readonly<{
286
286
  siteId: string;
@@ -325,7 +325,7 @@ export declare const proofBlockIslandCodecs: {
325
325
  showMap: boolean;
326
326
  showCapacity: boolean;
327
327
  orientation: import("..").CardOrientation;
328
- events: readonly import(".").PublicEvent[];
328
+ events: readonly import("../../../api/src/index").PublicEvent[];
329
329
  }>;
330
330
  hydration: Readonly<{
331
331
  siteId: string;
@@ -359,6 +359,7 @@ export declare const proofBlockIslandCodecs: {
359
359
  } & Readonly<{
360
360
  display: EventCalendarDisplay;
361
361
  hydration: Readonly<{
362
+ calendarWindow?: import(".").CalendarWindowPage;
362
363
  siteId: string;
363
364
  stage?: "preview" | "published";
364
365
  prefetchedEvents: boolean;
@@ -387,6 +388,7 @@ export declare const proofBlockIslandCodecs: {
387
388
  } & Readonly<{
388
389
  display: EventCalendarDisplay;
389
390
  hydration: Readonly<{
391
+ calendarWindow?: import(".").CalendarWindowPage;
390
392
  siteId: string;
391
393
  stage?: "preview" | "published";
392
394
  prefetchedEvents: boolean;
@@ -881,6 +883,7 @@ export declare const runtimeIslandCodecs: {
881
883
  } & Readonly<{
882
884
  display: EventCombinedDisplay;
883
885
  hydration: Readonly<{
886
+ calendarWindow?: import(".").CalendarWindowPage;
884
887
  siteId: string;
885
888
  stage?: "preview" | "published";
886
889
  prefetchedEvents: boolean;
@@ -909,6 +912,7 @@ export declare const runtimeIslandCodecs: {
909
912
  } & Readonly<{
910
913
  display: EventCombinedDisplay;
911
914
  hydration: Readonly<{
915
+ calendarWindow?: import(".").CalendarWindowPage;
912
916
  siteId: string;
913
917
  stage?: "preview" | "published";
914
918
  prefetchedEvents: boolean;
@@ -1198,7 +1202,7 @@ export declare const runtimeIslandCodecs: {
1198
1202
  showMap: boolean;
1199
1203
  showCapacity: boolean;
1200
1204
  orientation: import("..").CardOrientation;
1201
- events: readonly import(".").PublicEvent[];
1205
+ events: readonly import("../../../api/src/index").PublicEvent[];
1202
1206
  }>;
1203
1207
  hydration: Readonly<{
1204
1208
  siteId: string;
@@ -1243,7 +1247,7 @@ export declare const runtimeIslandCodecs: {
1243
1247
  showMap: boolean;
1244
1248
  showCapacity: boolean;
1245
1249
  orientation: import("..").CardOrientation;
1246
- events: readonly import(".").PublicEvent[];
1250
+ events: readonly import("../../../api/src/index").PublicEvent[];
1247
1251
  }>;
1248
1252
  hydration: Readonly<{
1249
1253
  siteId: string;
@@ -1277,6 +1281,7 @@ export declare const runtimeIslandCodecs: {
1277
1281
  } & Readonly<{
1278
1282
  display: EventCalendarDisplay;
1279
1283
  hydration: Readonly<{
1284
+ calendarWindow?: import(".").CalendarWindowPage;
1280
1285
  siteId: string;
1281
1286
  stage?: "preview" | "published";
1282
1287
  prefetchedEvents: boolean;
@@ -1305,6 +1310,7 @@ export declare const runtimeIslandCodecs: {
1305
1310
  } & Readonly<{
1306
1311
  display: EventCalendarDisplay;
1307
1312
  hydration: Readonly<{
1313
+ calendarWindow?: import(".").CalendarWindowPage;
1308
1314
  siteId: string;
1309
1315
  stage?: "preview" | "published";
1310
1316
  prefetchedEvents: boolean;
@@ -1831,7 +1837,7 @@ export declare const runtimeIslandCodecs: {
1831
1837
  encode: (value: Readonly<{
1832
1838
  occurrenceContext?: import("./non-block-islands").EventDetailsOccurrenceContext | null;
1833
1839
  subject?: import("../system/runtime/nodes/event-registration/eventScope").EventRegistrationPageSurfaceSubject | null;
1834
- events?: readonly import(".").PublicEvent[] | null;
1840
+ events?: readonly import("../../../api/src/index").PublicEvent[] | null;
1835
1841
  showVenue?: boolean;
1836
1842
  showMap?: boolean;
1837
1843
  showOtherDates?: boolean;
@@ -1855,7 +1861,7 @@ export declare const runtimeIslandCodecs: {
1855
1861
  decode: (input: unknown) => import("./runtime").DecodeResult<Readonly<{
1856
1862
  occurrenceContext?: import("./non-block-islands").EventDetailsOccurrenceContext | null;
1857
1863
  subject?: import("../system/runtime/nodes/event-registration/eventScope").EventRegistrationPageSurfaceSubject | null;
1858
- events?: readonly import(".").PublicEvent[] | null;
1864
+ events?: readonly import("../../../api/src/index").PublicEvent[] | null;
1859
1865
  showVenue?: boolean;
1860
1866
  showMap?: boolean;
1861
1867
  showOtherDates?: boolean;
@@ -1,4 +1,5 @@
1
1
  export { default as PageRenderer, EditorPageRenderer } from './PageRenderer';
2
+ export type { RenderAudience as PageRenderAudience } from './pageRenderAudience';
2
3
  export { createCustomBlockRegistry, mergeBlockDescriptorsWithRegistry, planCustomBlockRegistryResolution, transformToBlockDescriptor, } from './customBlockRegistry';
3
4
  export type { CustomBlockConflictReason, CustomBlockManifestSource, CustomBlockRegistry, CustomBlockRegistryConflict, CustomBlockRegistryEntry, CustomBlockRegistryResolutionPlan, CustomBlockSourcePolicy, ResolvedCustomBlockManifest, SdkConfigForBlockPicker, } from './customBlockRegistry';
4
5
  export type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, EntrySubrouteContextData, EditorPageRendererProps, PageBlockRenderAdmissionError, PageRendererProps, RenderablePageBlock, RenderablePageOutline, OccurrenceContextData, PageBlockPosition, PageRuntimeBoundary, SdkConfigForRenderer, } from './PageRenderer';
@@ -0,0 +1,54 @@
1
+ import * as React from 'react';
2
+ import type { PageBlockRenderAdmissionError } from './pageRenderAdmission';
3
+ /**
4
+ * Who is looking at this render.
5
+ *
6
+ * The split is structural, not environmental: `PageRenderer` serves public
7
+ * visitors and `EditorPageRenderer` serves authoring surfaces. Deriving it from
8
+ * `process.env.NODE_ENV` would be wrong in both directions — a production
9
+ * dashboard preview is authoring, and a development public page is still public.
10
+ */
11
+ export type RenderAudience = 'public' | 'authoring';
12
+ /**
13
+ * Why a block could not be rendered.
14
+ *
15
+ * A closed union so a new failure mode has to pick a reason, and therefore
16
+ * inherits the omission policy rather than inventing a sixth fallback string.
17
+ *
18
+ * `invalid-admission`, `missing-definition` and `missing-layout` are decided
19
+ * ahead of render by `buildPageRenderPlan`. `editor-unpreviewable` and
20
+ * `render-threw` are only knowable while rendering the block itself.
21
+ */
22
+ export type NotRenderableReason = Readonly<{
23
+ kind: 'invalid-admission';
24
+ blockKind: string;
25
+ error: PageBlockRenderAdmissionError;
26
+ }> | Readonly<{
27
+ kind: 'missing-definition';
28
+ blockKind: string;
29
+ isCustom: boolean;
30
+ }> | Readonly<{
31
+ kind: 'missing-layout';
32
+ blockKind: string;
33
+ isCustom: boolean;
34
+ }> | Readonly<{
35
+ kind: 'editor-unpreviewable';
36
+ blockKind: string;
37
+ }> | Readonly<{
38
+ kind: 'render-threw';
39
+ blockKind: string;
40
+ }>;
41
+ /**
42
+ * The single policy for what a non-renderable block looks like.
43
+ *
44
+ * Public visitors never see renderer diagnostics, so every reason omits.
45
+ * Authoring surfaces keep the wording they have always had — the strings below
46
+ * are moved verbatim from the five former `fallback()` call sites.
47
+ */
48
+ export declare function presentNotRenderableBlock(reason: NotRenderableReason, audience: RenderAudience): React.ReactNode | null;
49
+ /**
50
+ * The empty-page notice. Authoring-only for the same reason as the block
51
+ * diagnostics: "No blocks found." is a message for whoever is building the
52
+ * page, not for whoever is reading it.
53
+ */
54
+ export declare function presentEmptyPage(audience: RenderAudience): React.ReactNode | null;
@@ -0,0 +1,26 @@
1
+ import type { PresentationBlock } from './pageRenderAdmission';
2
+ import type { OmittedBlockDebugFields, PageRenderPlan, PlanTimeNotRenderableReason } from './pageRenderPlan';
3
+ /** The slice of render context a diagnostic record needs to be traceable. */
4
+ export type PageRenderDiagnosticContext = Readonly<{
5
+ siteId?: string;
6
+ pageId?: string;
7
+ }> | undefined;
8
+ /**
9
+ * Emits one structured record per omitted block, per server render pass.
10
+ *
11
+ * Server-only by decision D3: public pages are server-rendered, and this is the
12
+ * runtime whose logger transport reaches centralised collection. A browser-side
13
+ * record would not, and re-render/hydration would multiply it. The cost is that
14
+ * an omission only a client navigation can see goes unlogged.
15
+ *
16
+ * Deliberately *not* inside the plan's `useMemo` — React makes no promises about
17
+ * when a memo recomputes, so a log placed there is neither reliable nor bounded.
18
+ */
19
+ export declare function logOmittedBlocks(plan: PageRenderPlan, dataContext: PageRenderDiagnosticContext): void;
20
+ /**
21
+ * Unlike the plan-time omissions this one genuinely can fire per re-render —
22
+ * it is raised where the failure happens, and no once-ness is claimed for it.
23
+ */
24
+ export declare function logRenderThrew(block: PresentationBlock, dataContext: PageRenderDiagnosticContext): void;
25
+ /** The authoring-side equivalent, where the block stays in the entry list. */
26
+ export declare function debugCustomBlockDiagnostic(reason: PlanTimeNotRenderableReason, block: PresentationBlock, debug: OmittedBlockDebugFields): void;
@@ -0,0 +1,116 @@
1
+ import { getBlockDefinition } from './system';
2
+ import type { SdkCustomBlock } from './system/manifest/schema';
3
+ import type { PresentationBlock, PresentationPageOutline } from './pageRenderAdmission';
4
+ import { type PageRuntimeBoundary } from './pageRendererBoundaries';
5
+ import type { BlockOverrideComponent, BlockOverrides, SdkConfigForRenderer } from './pageRendererContracts';
6
+ import type { NotRenderableReason, RenderAudience } from './pageRenderAudience';
7
+ type ResolvedBlockDefinition = NonNullable<ReturnType<typeof getBlockDefinition>>;
8
+ type PlanEntryCommon = Readonly<{
9
+ block: PresentationBlock;
10
+ renderableContent: Record<string, unknown>;
11
+ }>;
12
+ /**
13
+ * One block's place in the render.
14
+ *
15
+ * A discriminated union rather than a record with optional fields, so the three
16
+ * render paths that already exist in `MemoBlockSection` are visible in the type
17
+ * and no case needs a cast or a fabricated definition:
18
+ *
19
+ * - `renderable` — a definition resolved; may also have an override
20
+ * - `override-only` — no definition, but the caller supplied a component
21
+ * (the deliberate escape hatch for stale runtime payloads)
22
+ * - `diagnostic` — cannot render; authoring plans only
23
+ *
24
+ * Public plans contain no `diagnostic` entries; those blocks are in `omitted`.
25
+ */
26
+ export type PageBlockRenderPlanEntry = (PlanEntryCommon & Readonly<{
27
+ kind: 'renderable';
28
+ definition: ResolvedBlockDefinition;
29
+ override: BlockOverrideComponent | undefined;
30
+ variantKey: string | null;
31
+ managesOwnWrapper: boolean;
32
+ }>) | (PlanEntryCommon & Readonly<{
33
+ kind: 'override-only';
34
+ override: BlockOverrideComponent;
35
+ }>) | (PlanEntryCommon & Readonly<{
36
+ kind: 'diagnostic';
37
+ reason: PlanTimeNotRenderableReason;
38
+ debug: OmittedBlockDebugFields;
39
+ }>);
40
+ /**
41
+ * The subset of reasons the plan can decide ahead of render.
42
+ *
43
+ * `editor-unpreviewable` and `render-threw` are only knowable while rendering
44
+ * the block, so they can never describe an omission. Narrowing the type here
45
+ * means the overrides-only replay in PageRendererCore switches over three
46
+ * cases exhaustively instead of trusting a comment.
47
+ */
48
+ export type PlanTimeNotRenderableReason = Extract<NotRenderableReason, {
49
+ kind: 'invalid-admission' | 'missing-definition' | 'missing-layout';
50
+ }>;
51
+ export type OmittedPageBlock = Readonly<{
52
+ blockId: string | null;
53
+ blockKind: string;
54
+ reason: PlanTimeNotRenderableReason;
55
+ /**
56
+ * The override resolved for this kind, if any. Carried so the overrides-only
57
+ * contract can be replayed without assuming "omitted implies no override" —
58
+ * an assumption that is true today only because of how `planBlock` branches.
59
+ */
60
+ override: BlockOverrideComponent | undefined;
61
+ /** Registry sizes at the time of the decision, for DEBUG_CUSTOM_BLOCKS. */
62
+ debug: OmittedBlockDebugFields;
63
+ }>;
64
+ export type OmittedBlockDebugFields = Readonly<{
65
+ hasOverride: boolean;
66
+ sdkCustomBlocksCount: number;
67
+ dbCustomBlocksCount: number;
68
+ manifestKeys: readonly string[] | null;
69
+ }>;
70
+ export type PageRenderPlan = Readonly<{
71
+ entries: readonly PageBlockRenderPlanEntry[];
72
+ omitted: readonly OmittedPageBlock[];
73
+ runtimeBoundaries: readonly PageRuntimeBoundary[] | undefined;
74
+ }>;
75
+ export type BuildPageRenderPlanInput = Readonly<{
76
+ page: PresentationPageOutline;
77
+ audience: RenderAudience;
78
+ runtimeBoundaries: readonly PageRuntimeBoundary[] | undefined;
79
+ previewStage: 'published' | 'preview';
80
+ sdkConfig: SdkConfigForRenderer | null | undefined;
81
+ customBlocks: readonly SdkCustomBlock[] | undefined;
82
+ blockOverrides: BlockOverrides | undefined;
83
+ }>;
84
+ /**
85
+ * Decides, once per page render, which blocks can render and what happens to
86
+ * the ones that cannot.
87
+ *
88
+ * Pure. Effects — logging in particular — belong at the call site, because this
89
+ * runs inside a `useMemo` whose recomputation React makes no promises about.
90
+ */
91
+ export declare function buildPageRenderPlan(input: BuildPageRenderPlanInput): PageRenderPlan;
92
+ /**
93
+ * Re-points section boundaries across omitted blocks.
94
+ *
95
+ * Boundaries are keyed by adjacent block-id *pairs*, so dropping B from
96
+ * [A, B, C] does not merely remove B's boundaries — it removes the boundary
97
+ * between the survivors, because no `A→C` key was ever compiled.
98
+ *
99
+ * Per decision D2 the treatment for a merged gap comes from the boundary
100
+ * entering the omitted run (`A→firstOmitted`), falling back to the one leaving
101
+ * it (`lastOmitted→C`). The destination surface is a separate question: only
102
+ * the exiting boundary knows what C looks like, so the merged boundary ends on
103
+ * that endpoint rather than on the omitted block's. In the exiting-only
104
+ * fallback the origin remains an approximation: `from` is the omitted block's
105
+ * surface, because no compiled boundary carries A's. The hosted path no longer
106
+ * needs this at all (site-renderer admits blocks before compiling boundaries);
107
+ * it remains the safety net for an SDK whose compiled boundaries predate an
108
+ * omission.
109
+ */
110
+ export declare function retargetBoundariesAcrossOmissions(input: Readonly<{
111
+ boundaries: readonly PageRuntimeBoundary[] | undefined;
112
+ originalBlocks: readonly PresentationBlock[];
113
+ survivingBlocks: ReadonlySet<PresentationBlock>;
114
+ previewStage: 'published' | 'preview';
115
+ }>): readonly PageRuntimeBoundary[] | undefined;
116
+ export {};