@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.
- package/CHANGELOG.md +109 -0
- package/README.md +7 -4
- package/dist/{PreviewEditorSidebar-BU5ZlhQR.mjs → PreviewEditorSidebar-BVPur_CU.mjs} +12 -18
- package/dist/{PreviewEditorUI-9XkHL-bC.mjs → PreviewEditorUI-DLhWX8oh.mjs} +3 -3
- package/dist/{PreviewQueryProvider-wbEpXryy.mjs → PreviewQueryProvider-BguJY1SW.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-CnWmj-2B.mjs → SdkPreviewModeRuntime-Tda6qw4z.mjs} +1375 -495
- package/dist/{SiteChromeCustomizeContext-B6d5zkog.mjs → SiteChromeCustomizeContext-BHFgMjde.mjs} +35665 -33602
- package/dist/_dts/ai/src/contracts/proposals.d.ts +7226 -3057
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +1223 -811
- package/dist/_dts/ai/src/designer/themePatch.d.ts +5 -10
- package/dist/_dts/api/src/accessAdmin.d.ts +16 -18
- package/dist/_dts/api/src/accountApi.d.ts +49 -2
- package/dist/_dts/api/src/appointmentServiceContracts.d.ts +83 -0
- package/dist/_dts/api/src/appointmentServiceLocation.d.ts +12 -0
- package/dist/_dts/api/src/appointmentServiceVisibility.d.ts +14 -0
- package/dist/_dts/api/src/appointmentSetup.d.ts +8 -0
- package/dist/_dts/api/src/bookingConfig.d.ts +35 -87
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +1 -1
- package/dist/_dts/api/src/bookingOperations.d.ts +2 -69
- package/dist/_dts/api/src/bookingRecords.d.ts +2 -2
- package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +2 -2
- package/dist/_dts/api/src/bookingServicePricing.d.ts +47 -0
- package/dist/_dts/api/src/bookings.d.ts +2 -2
- package/dist/_dts/api/src/cache-tags.d.ts +7 -2
- package/dist/_dts/api/src/common/index.d.ts +1 -0
- package/dist/_dts/api/src/common/zodFieldErrors.d.ts +34 -0
- package/dist/_dts/api/src/communications.d.ts +14 -8
- package/dist/_dts/api/src/contentRuntime.d.ts +3 -6
- package/dist/_dts/api/src/domainConnection.d.ts +41 -0
- package/dist/_dts/api/src/endpoints.d.ts +1636 -1637
- package/dist/_dts/api/src/eventAttendanceLabels.d.ts +2 -2
- package/dist/_dts/api/src/eventManagementContracts.d.ts +10 -14
- package/dist/_dts/api/src/index.d.ts +11 -9
- package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
- package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
- package/dist/_dts/api/src/media.d.ts +19 -2
- package/dist/_dts/api/src/occurrenceScheduling.d.ts +1 -1
- package/dist/_dts/api/src/participantMessaging.d.ts +3 -3
- package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
- package/dist/_dts/api/src/publicBookingAvailabilityEndpointDefinitions.d.ts +62 -0
- package/dist/_dts/api/src/publicBookingService.d.ts +109 -2
- package/dist/_dts/api/src/publicEventCheckoutEndpointDefinitions.d.ts +27 -0
- package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +7 -0
- package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +2 -1
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +30 -148
- package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +8 -26
- package/dist/_dts/api/src/publicExperience/siteEndpoints.d.ts +5 -13
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +2 -3
- package/dist/_dts/api/src/schemas/admin-allowed-domains.d.ts +76 -0
- package/dist/_dts/api/src/schemas/admin-observability-logs.d.ts +61 -0
- package/dist/_dts/api/src/schemas/admin-users.d.ts +80 -0
- package/dist/_dts/api/src/schemas/newsletter-memberships.d.ts +98 -0
- package/dist/_dts/api/src/schemas/sdk-entries.d.ts +128 -0
- package/dist/_dts/api/src/schemas/site-api-keys.d.ts +112 -0
- package/dist/_dts/api/src/schemas/support.d.ts +35 -0
- package/dist/_dts/api/src/sdk-event-booking-offer.d.ts +14 -0
- package/dist/_dts/api/src/sdk-event-payment-terms.d.ts +4 -16
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +11 -21
- package/dist/_dts/api/src/sdkContracts.d.ts +8 -23
- package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +37 -0
- package/dist/_dts/api/src/sdkMediaContracts.d.ts +40 -0
- package/dist/_dts/api/src/sdkMediaEndpointDefinitions.d.ts +66 -0
- package/dist/_dts/api/src/sdkThemeWire.d.ts +157 -146
- package/dist/_dts/api/src/siteInfrastructure.d.ts +37 -37
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +35 -54
- package/dist/_dts/api/src/siteOnboarding.d.ts +3 -3
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +38 -16
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +37 -17
- package/dist/_dts/api/src/types.d.ts +2 -2
- package/dist/_dts/api/src/{wholeSeriesOfferings.d.ts → wholeSeriesRuns.d.ts} +11 -67
- package/dist/_dts/block-form/src/FormRenderer.d.ts +3 -1
- package/dist/_dts/block-form/src/backend/store-backend.d.ts +2 -1
- package/dist/_dts/block-form/src/backend/types.d.ts +2 -0
- package/dist/_dts/block-form/src/context/FormFocusContext.d.ts +7 -0
- package/dist/_dts/block-form/src/index.d.ts +2 -0
- package/dist/_dts/block-form/src/manifest/ManifestForm.d.ts +2 -1
- package/dist/_dts/block-form/src/utils/promotedFieldBackend.d.ts +8 -0
- package/dist/_dts/block-form/src/utils/promotedFieldPlan.d.ts +18 -0
- package/dist/_dts/block-form/src/utils/resolvePromotedFields.d.ts +8 -1
- package/dist/_dts/blocks/src/BlockErrorBoundary.d.ts +46 -0
- package/dist/_dts/blocks/src/PageRenderer.d.ts +2 -141
- package/dist/_dts/blocks/src/contracts/index.d.ts +2 -0
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +12 -6
- package/dist/_dts/blocks/src/index.d.ts +1 -0
- package/dist/_dts/blocks/src/pageRenderAudience.d.ts +54 -0
- package/dist/_dts/blocks/src/pageRenderDiagnostics.d.ts +26 -0
- package/dist/_dts/blocks/src/pageRenderPlan.d.ts +116 -0
- package/dist/_dts/blocks/src/pageRenderPreparation.d.ts +109 -0
- package/dist/_dts/blocks/src/pageRendererBoundaries.d.ts +1 -0
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +154 -0
- package/dist/_dts/blocks/src/portal/types.d.ts +1 -1
- package/dist/_dts/blocks/src/server.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +12 -20
- package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/events/eventCalendarDataLoaders.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/calendarWindow.d.ts +95 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/runGrouping.d.ts +37 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +1046 -773
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +59 -46
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -3
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +161 -161
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +13 -6
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/scheduleSummary.d.ts +10 -4
- package/dist/_dts/blocks/src/system/constants/buttonRoles.d.ts +2 -2
- package/dist/_dts/blocks/src/system/constants/events.d.ts +4 -0
- package/dist/_dts/blocks/src/system/customize/facets.d.ts +4 -4
- package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
- package/dist/_dts/blocks/src/system/data/publicLoaderCachePolicy.d.ts +5 -9
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +83 -83
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +12 -3
- package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -8
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +12 -20
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +32 -37
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +15 -18
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +11 -8
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +38 -22
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/WholeSeriesPricingDisplay.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +16 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/ErrorStep.d.ts +3 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +4 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentSelectionStep.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +5 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventScope.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationCompletion.d.ts +15 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDerivations.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorPresentation.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +25 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.d.ts +14 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +3 -21
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationWizardContext.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/siteCreditPreview.d.ts +0 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/ticketSelectionLines.d.ts +14 -16
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +13 -15
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +7 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +9 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +25 -23
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useWaitlistClaimRestoration.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +11 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +8 -13
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +11 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/capacity.d.ts +164 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/cta.d.ts +29 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +47 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/index.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/people.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/pricing.d.ts +24 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/OfferingTitle.d.ts +11 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +1080 -560
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventProductEligibility.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/index.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listingLayout.d.ts +23 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +7 -7
- package/dist/_dts/blocks/src/system/transforms/registry/eventCalendar.d.ts +11 -0
- package/dist/_dts/commerce/src/moneyReport.d.ts +1 -1
- package/dist/_dts/commerce/src/purchase/checkoutErrorCodes.d.ts +1 -1
- package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +57 -0
- package/dist/_dts/commerce/src/purchase/eventOrderOptionSnapshot.d.ts +3 -0
- package/dist/_dts/commerce/src/purchase/index.d.ts +1 -0
- package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +6 -3
- package/dist/_dts/commerce/src/purchase/types.d.ts +3 -2
- package/dist/_dts/commerce/src/waitlists.d.ts +1 -1
- package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +4 -0
- package/dist/_dts/content-editor/src/controller/useBlockedPublishPlan.d.ts +11 -0
- package/dist/_dts/content-editor/src/hooks/applyBlockedPublishPlan.d.ts +1 -1
- package/dist/_dts/content-editor/src/hooks/blockedPublishPlan.d.ts +13 -5
- package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +5 -1
- package/dist/_dts/content-editor/src/hooks/validateBlocksForPublish.d.ts +34 -2
- package/dist/_dts/content-editor/src/index.d.ts +2 -1
- package/dist/_dts/content-editor/src/ui/blockValidationManifestRegistry.d.ts +2 -0
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +4 -2
- package/dist/_dts/content-editor/src/ui/stores/types.d.ts +27 -5
- package/dist/_dts/content-model/src/content-types/schema.d.ts +3 -3
- package/dist/_dts/content-model/src/templates/defaults.d.ts +11 -0
- package/dist/_dts/core/src/branded.d.ts +28 -9
- package/dist/_dts/core/src/event-booking-offer-parser.d.ts +82 -0
- package/dist/_dts/core/src/event-booking-offer.d.ts +89 -0
- package/dist/_dts/core/src/event-page-surface-subject.d.ts +81 -4
- package/dist/_dts/core/src/event-pricing.d.ts +81 -89
- package/dist/_dts/core/src/index.d.ts +3 -0
- package/dist/_dts/core/src/non-empty-array.d.ts +3 -0
- package/dist/_dts/core/src/whole-series-run-schedule.d.ts +92 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +495 -279
- package/dist/_dts/db/src/index.d.ts +1 -0
- package/dist/_dts/db/src/utils/postgrestFilter.d.ts +2 -0
- package/dist/_dts/editor-blocks/src/BlockForm.d.ts +2 -6
- package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/block-editor/BlockSettingsModal.d.ts +4 -2
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockValidationManifests.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +22 -7
- package/dist/_dts/editor-blocks/src/block-editor/useSettingsFieldFocus.d.ts +18 -0
- package/dist/_dts/media-core/src/bulkDeletePlanning.d.ts +4 -0
- package/dist/_dts/media-core/src/fileDomain.d.ts +3 -0
- package/dist/_dts/preview-next/src/client/blocks/previewBatchLoaderParams.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlSaveRequest.d.ts +51 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +24 -2
- package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +23 -1
- package/dist/_dts/preview-next/src/client/preview/usePersistedHeaderPreferences.d.ts +8 -0
- package/dist/_dts/sdk/src/client/{eventSubrouteReadOperations.d.ts → publicEventReadOperations.d.ts} +4 -3
- package/dist/_dts/sdk/src/client/types.d.ts +6 -10
- package/dist/_dts/sdk/src/config/types.d.ts +1 -1
- package/dist/_dts/sdk/src/config/validation.d.ts +3 -3
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +5 -0
- package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +2 -3
- package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +8 -8
- package/dist/_dts/sdk/src/next/tags.d.ts +5 -8
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +2 -26
- package/dist/_dts/sdk/src/rendering/helpers/footerPageOutline.d.ts +9 -1
- package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +6 -53
- package/dist/_dts/sdk/src/rendering/server.d.ts +1 -0
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/accordions/types.d.ts +5 -5
- package/dist/_dts/theme-core/src/buttons/styles/recipes/flatInk.d.ts +25 -25
- package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +25 -25
- package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +7 -7
- package/dist/_dts/theme-core/src/buttons/types.d.ts +22 -22
- package/dist/_dts/theme-core/src/cards/types.d.ts +49 -49
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/gradients/types.d.ts +5 -0
- package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +26 -3
- package/dist/_dts/theme-core/src/inputs/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +195 -195
- package/dist/_dts/theme-core/src/navigation/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/palette/colors.d.ts +1 -1
- package/dist/_dts/theme-core/src/palette/curated/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/schema.d.ts +258 -257
- package/dist/_dts/theme-core/src/shared/componentStyles.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/cardRoleVocabulary.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +43 -3
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +10 -0
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/headerBrandPresentation.d.ts +63 -0
- package/dist/_dts/theme-core/src/site-styles/headerBytesComparison.d.ts +30 -0
- package/dist/_dts/theme-core/src/site-styles/headerInteractionPalette.d.ts +50 -1
- package/dist/_dts/theme-core/src/site-styles/headerLayoutCatalog.d.ts +48 -9
- package/dist/_dts/theme-core/src/site-styles/headerPreferences.d.ts +162 -0
- package/dist/_dts/theme-core/src/site-styles/headerPreferencesPersistence.d.ts +73 -0
- package/dist/_dts/theme-core/src/site-styles/headerRecompile.d.ts +118 -0
- package/dist/_dts/theme-core/src/site-styles/headerStyleCompiler.d.ts +10 -1
- package/dist/_dts/theme-core/src/site-styles/headerStyleDefaults.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/headerStyleRecipe.d.ts +7 -0
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +5 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/siteChromeBackgrounds.d.ts +20 -1
- package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +43 -2
- package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
- package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +3 -3
- package/dist/_dts/ui/src/badge.d.ts +1 -1
- package/dist/_dts/ui/src/button.d.ts +2 -2
- package/dist/client/{BookingConsentAgreement-DCch21a6.mjs → BookingConsentAgreement-DQUik1Mx.mjs} +2 -2
- package/dist/client/{DiscountCodeDisclosure-DIj1T59K.mjs → DiscountCodeDisclosure-CU67Q4vH.mjs} +1 -1
- package/dist/client/{EventCombined.client-BWVNlXTx.mjs → EventCombined.client-a02TXUgg.mjs} +233 -348
- package/dist/client/{EventListing.client-DVFCDe3i.mjs → EventListing.client-99qx7jFl.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-BY5mIHw9.mjs → LeafletStaticMap-CWzcq73L.mjs} +1 -1
- package/dist/client/{accordion-CK29E8rG.mjs → accordion-D1nb3-Oj.mjs} +1 -1
- package/dist/client/{bookingForm-DFvnet-N.mjs → bookingForm-BGrmLhaO.mjs} +5 -5
- package/dist/client/bookings.mjs +10555 -10475
- package/dist/client/{carousel-BVU5NQlb.mjs → carousel-DSmOx3ad.mjs} +1 -1
- package/dist/client/{cart-BNItcZVa.mjs → cart-COWeOIUk.mjs} +3 -3
- package/dist/client/{checkout-Bu6iCdkP.mjs → checkout-CeysaIJK.mjs} +3 -3
- package/dist/client/client.mjs +58968 -57441
- package/dist/client/{context-BImarOAq.mjs → context-DBzX85Xc.mjs} +46 -18
- package/dist/client/dates-DCYhZBlW.mjs +264 -0
- package/dist/client/{eventCalendar-DS2h-UXD.mjs → eventCalendar-BgsN73Ul.mjs} +21 -44
- package/dist/client/{eventCombined-Drt4Oq9p.mjs → eventCombined-DcZQAMQP.mjs} +3 -3
- package/dist/client/{eventDetails-Bl2vWgTX.mjs → eventDetails-BWwGJ54l.mjs} +131 -51
- package/dist/client/{eventListing-CS7PHY7v.mjs → eventListing-DqYqV8vp.mjs} +3 -3
- package/dist/client/{eventRegistration-D-j8eNy2.mjs → eventRegistration-DQGDgu_e.mjs} +1122 -803
- package/dist/client/{form-RMpoLTyr.mjs → form-ClfpasVT.mjs} +2 -2
- package/dist/client/{headerSection-BYE3Lb3k.mjs → headerSection-BuOMe98N.mjs} +2 -2
- package/dist/client/hooks.mjs +9630 -9526
- package/dist/client/{locationMap-BxSr7Kkh.mjs → locationMap-CEqu_sfa.mjs} +2 -2
- package/dist/client/{newsletterForm-DerbXwFC.mjs → newsletterForm-IbrHjMxy.mjs} +2 -2
- package/dist/client/pricing-xj7MPZlK.mjs +314 -0
- package/dist/client/{productDetail-4SZCLhAf.mjs → productDetail-vxqTt5Xj.mjs} +3 -3
- package/dist/client/{productList-D7AP4GNq.mjs → productList-OTdZu8sb.mjs} +3 -3
- package/dist/client/{propsDecoder-pzBeCh14.mjs → propsDecoder-CY9gGEF7.mjs} +786 -1194
- package/dist/client/rendering/client.mjs +11481 -10469
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +26871 -25232
- package/dist/client/{scrollToBlock-CduAKf8T.mjs → scrollToBlock--BFV6kl-.mjs} +1 -1
- package/dist/client/{shop-Cp5p_kGe.mjs → shop-CP4YbDL9.mjs} +6 -6
- package/dist/client/{shop-commerce-DicXYaYX.mjs → shop-commerce-APs4XBXE.mjs} +5 -5
- package/dist/client/{shop-commerce-store-CGWnpY4K.mjs → shop-commerce-store-CAVLxLFr.mjs} +1 -1
- package/dist/client/{shopShared-BDf9ljkm.mjs → shopShared-BnSRrwXI.mjs} +3 -3
- package/dist/client/{useEventFilters-DeeyGYuk.mjs → useEventFilters-1a1by4c8.mjs} +33 -18
- package/dist/preview-next/before-render.mjs +186 -148
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/keepAlive.mjs +186 -148
- package/dist/preview-next/middleware.mjs +186 -148
- package/dist/{previewAuthStore-DbqBol0V.mjs → previewAuthStore-BkEgnYPP.mjs} +186 -148
- package/dist/{sdk-runtime-19MO27F0.mjs → sdk-runtime-DwGfsT0S.mjs} +2 -2
- package/dist/{separator-DaPLtJ1f.mjs → separator-BeqDLneQ.mjs} +1 -1
- package/dist/server/components.mjs +53243 -51879
- package/dist/server/config-validation.mjs +1015 -906
- package/dist/server/config.mjs +1019 -910
- package/dist/server/data.mjs +10304 -10200
- package/dist/server/index.mjs +217 -198
- package/dist/server/next/tags.mjs +18 -4
- package/dist/server/next.mjs +62787 -61617
- package/dist/server/page-converter.mjs +797 -917
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +52557 -51365
- package/dist/server/rendering.mjs +54373 -53054
- package/dist/server/routing.mjs +13274 -13142
- package/dist/server/server.mjs +1076 -1154
- package/dist/server/theme-bridge.mjs +69 -9
- package/dist/server/theme.mjs +27 -8
- package/dist/styles/index.css +32 -1
- package/package.json +1 -1
- package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +0 -65
- package/dist/_dts/api/src/publicWholeSeriesEndpointDefinitions.d.ts +0 -20
- package/dist/_dts/api/src/sdk-event-pricing.d.ts +0 -61
- package/dist/_dts/blocks/src/system/blocks/events/whole-series/index.d.ts +0 -3
- package/dist/_dts/blocks/src/system/blocks/events/whole-series/pricing.d.ts +0 -50
- package/dist/_dts/blocks/src/system/blocks/events/whole-series/schemas.d.ts +0 -135
- package/dist/_dts/blocks/src/system/blocks/events/whole-series/types.d.ts +0 -87
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCapacity.d.ts +0 -48
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/pricing.d.ts +0 -17
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +0 -100
- package/dist/_dts/sdk/src/client/wholeSeriesReadOperations.d.ts +0 -11
- package/dist/_dts/sdk/src/public-api/wholeSeriesContracts.d.ts +0 -2
- /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(
|
|
40
|
+
export declare function FormRenderer(props: FormRendererProps): ReactNode;
|
|
@@ -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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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("
|
|
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 {};
|