@riverbankcms/sdk 0.144.0 → 0.146.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 +17 -0
- package/dist/{PreviewEditorSidebar-CQZNnFiM.mjs → PreviewEditorSidebar-kg2r2Fyi.mjs} +4 -4
- package/dist/{PreviewEditorUI-DCNxnmI0.mjs → PreviewEditorUI-sWMLp5dT.mjs} +3 -3
- package/dist/{PreviewQueryProvider-BCYICImX.mjs → PreviewQueryProvider-Cg51xq1w.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-BJolUbr1.mjs → SdkPreviewModeRuntime-h2ti3Hch.mjs} +688 -519
- package/dist/{SiteChromeCustomizeContext-CKgEpoxi.mjs → SiteChromeCustomizeContext-DEACFH9m.mjs} +3381 -2017
- package/dist/_dts/ai/src/contracts/proposals.d.ts +5643 -66
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +513 -6
- package/dist/_dts/api/src/appointmentEndpointDefinitions.d.ts +49 -0
- package/dist/_dts/api/src/appointmentServiceCategoryEndpoints.d.ts +75 -0
- package/dist/_dts/api/src/appointmentServiceContracts.d.ts +80 -0
- package/dist/_dts/api/src/appointmentSetup.d.ts +8 -1
- package/dist/_dts/api/src/bookingConfig.d.ts +8 -1
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +10 -26
- package/dist/_dts/api/src/bookingManagementEventEndpointTypes.d.ts +45 -1
- package/dist/_dts/api/src/clientErrorReporting.d.ts +50 -0
- package/dist/_dts/api/src/communications.d.ts +32 -24
- package/dist/_dts/api/src/contentRuntime.d.ts +3 -5
- package/dist/_dts/api/src/endpoints.d.ts +316 -134
- package/dist/_dts/api/src/event-visibility.d.ts +20 -0
- package/dist/_dts/api/src/eventManagementContracts.d.ts +56 -3
- package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +24 -0
- package/dist/_dts/api/src/eventPageWords.d.ts +19 -0
- package/dist/_dts/api/src/eventSeriesRegistrationEndpointDefinitions.d.ts +14 -0
- package/dist/_dts/api/src/index.d.ts +7 -1
- 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/launchReadiness.d.ts +22 -2
- package/dist/_dts/api/src/launchRequirementPriority.d.ts +3 -0
- package/dist/_dts/api/src/newsletterCampaignCommandEndpoints.d.ts +13 -0
- package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +30 -11
- package/dist/_dts/api/src/occurrenceScheduling.d.ts +10 -0
- package/dist/_dts/api/src/onboarding/confirmationResend.d.ts +3 -0
- package/dist/_dts/api/src/pageSurfaceEndpoints.d.ts +44 -0
- package/dist/_dts/api/src/participantMessaging.d.ts +11 -1
- package/dist/_dts/api/src/publicBookingService.d.ts +35 -1
- package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +13 -0
- package/dist/_dts/api/src/publicNewsletterEndpointDefinitions.d.ts +58 -0
- package/dist/_dts/api/src/schemas/admin-observability-logs.d.ts +3 -3
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +40 -1
- package/dist/_dts/api/src/sdkContracts.d.ts +3 -42
- package/dist/_dts/api/src/sdkCourseBooking.d.ts +30 -0
- package/dist/_dts/api/src/sdkEventEndpointDefinitions.d.ts +76 -0
- package/dist/_dts/api/src/sdkEventLifecycle.d.ts +37 -0
- package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +18 -0
- package/dist/_dts/api/src/sdkPageDesign.d.ts +388 -0
- package/dist/_dts/api/src/sdkPageDesignEndpointDefinitions.d.ts +22 -0
- package/dist/_dts/api/src/sdkPullEventContracts.d.ts +46 -0
- package/dist/_dts/api/src/siteAddressEndpoints.d.ts +29 -0
- package/dist/_dts/api/src/siteManagementEndpointDefinitions.d.ts +49 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +4 -38
- package/dist/_dts/api/src/siteOnboarding.d.ts +75 -9
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -1
- package/dist/_dts/api/src/types.d.ts +8 -1
- package/dist/_dts/api/src/wholeSeriesRuns.d.ts +14 -0
- package/dist/_dts/blocks/src/PageRenderer.d.ts +4 -4
- package/dist/_dts/blocks/src/bindings/index.d.ts +2 -2
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +24 -0
- package/dist/_dts/blocks/src/index.d.ts +3 -1
- package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +10 -0
- package/dist/_dts/blocks/src/pageRenderJoins.d.ts +68 -0
- package/dist/_dts/blocks/src/pageRenderPlan.d.ts +8 -27
- package/dist/_dts/blocks/src/pageRenderPreparation.d.ts +7 -4
- package/dist/_dts/blocks/src/pageRendererBoundaries.d.ts +40 -23
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +3 -1
- package/dist/_dts/blocks/src/server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/appointment-services.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/events/shared/calendarWindow.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +27 -5
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +14 -1
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +47 -47
- package/dist/_dts/blocks/src/system/icons/social.d.ts +1 -1
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +29 -3
- package/dist/_dts/blocks/src/system/registry.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +8 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +22 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +57 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.service-categories.d.ts +29 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.service-choices.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +13 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +23 -7
- package/dist/_dts/blocks/src/system/runtime/nodes/form.fields.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.block-submission.d.ts +36 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +6 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.parts.d.ts +46 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +20 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/shared/components/CheckboxChoice.d.ts +18 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -0
- package/dist/_dts/content-editor/src/index.d.ts +1 -0
- package/dist/_dts/content-editor/src/primitives/previewEditableOutline.d.ts +2 -0
- package/dist/_dts/content-editor/src/ui/editorBlockEquality.d.ts +3 -0
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +3 -3
- package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
- package/dist/_dts/core/src/appointment-service-categories.d.ts +108 -0
- package/dist/_dts/core/src/block-content-identity.d.ts +5 -0
- package/dist/_dts/core/src/editor-state.d.ts +2 -1
- package/dist/_dts/core/src/index.d.ts +2 -0
- package/dist/_dts/core/src/mailing-list-submission.d.ts +3 -1
- package/dist/_dts/core/src/public-event-booking-availability.d.ts +20 -1
- package/dist/_dts/core/src/public-profile.d.ts +12 -1
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +711 -242
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +3 -0
- package/dist/_dts/editor-blocks/src/block-editor/EmptyState.d.ts +13 -1
- package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +16 -1
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/types.d.ts +13 -0
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/utils.d.ts +29 -0
- package/dist/_dts/preview-next/src/client/blocks/BoundaryControl.d.ts +7 -2
- package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +3 -3
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/applyPreviewProjections.d.ts +1 -3
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +2 -2
- package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -1
- package/dist/_dts/sdk/src/client/runtimeCacheKeys.d.ts +8 -0
- package/dist/_dts/sdk/src/client/types.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/page.d.ts +7 -2
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +5 -0
- package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +2 -2
- package/dist/_dts/sdk/src/next/renderSdkContent.d.ts +0 -1
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +6 -8
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +4 -4
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -4
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +7 -2
- package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +5 -2
- package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +6 -1
- package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +2 -0
- package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +6 -2
- package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +5 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/surfaces/src/index.d.ts +10 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/inputs/checkable.d.ts +42 -0
- package/dist/_dts/theme-core/src/inputs/inputGroup.d.ts +19 -0
- package/dist/_dts/theme-core/src/layout/boundaryCss.d.ts +3 -0
- package/dist/_dts/theme-core/src/site-styles/compositionBudget.d.ts +8 -0
- package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +3 -2
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +1 -3
- package/dist/_dts/theme-core/src/site-styles/generatedDesignPipeline.d.ts +3 -0
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +3 -0
- package/dist/_dts/theme-core/src/site-styles/joinTreatment.d.ts +132 -0
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorBoundaries.d.ts +31 -0
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +33 -29
- package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/pageFlowPresets.d.ts +36 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +4 -10
- package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +17 -4
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +20 -74
- package/dist/_dts/theme-core/src/site-styles/sectionBoundaryComposition.d.ts +95 -0
- package/dist/_dts/theme-core/src/site-styles/sectionTransitions.d.ts +80 -518
- package/dist/_dts/theme-core/src/site-styles/siteStyleBlockPolicies.d.ts +9 -4
- package/dist/_dts/theme-core/src/site-styles/transitionCatalogue.d.ts +320 -0
- package/dist/_dts/theme-core/src/site-styles/types.d.ts +3 -18
- package/dist/_dts/ui/src/navigation-tabs.d.ts +2 -1
- package/dist/client/{BookingConsentAgreement-DoAILrkN.mjs → BookingConsentAgreement-BQKL045f.mjs} +2 -2
- package/dist/client/CheckboxChoice--W2n6yKs.mjs +24 -0
- package/dist/client/{DiscountCodeDisclosure-X528hUTf.mjs → DiscountCodeDisclosure-CsOtjFY7.mjs} +1 -1
- package/dist/client/{EventCombined.client-DSBVwq5m.mjs → EventCombined.client-BdRjVbhH.mjs} +6 -6
- package/dist/client/{EventListing.client-DmFAX7Vb.mjs → EventListing.client-DBxC6xOU.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-BAqXdfhq.mjs → LeafletStaticMap-mHEJKrTs.mjs} +1 -1
- package/dist/client/{ThemedButton-BwNFVwi4.mjs → ThemedButton-CE5KYT6z.mjs} +1 -1
- package/dist/client/{accordion-DRhMdkbd.mjs → accordion-BEQNSptH.mjs} +1 -1
- package/dist/client/{bookingForm-iJ_nCsNF.mjs → bookingForm-AMr-s5vw.mjs} +168 -95
- package/dist/client/bookings.mjs +239 -110
- package/dist/client/{carousel-D8zuffZr.mjs → carousel-Bbt_QgJy.mjs} +1 -1
- package/dist/client/{cart-DeMGJViN.mjs → cart-CnWi30zJ.mjs} +3 -3
- package/dist/client/{checkout-DXc06Km2.mjs → checkout-f3nkWgd4.mjs} +3 -3
- package/dist/client/client.mjs +3222 -1612
- package/dist/client/{context-CDLCfDep.mjs → context-Bc8T6pCe.mjs} +1 -1
- package/dist/client/{dates-ClFx7Epy.mjs → dates-DUsCEzLb.mjs} +2 -3
- package/dist/client/{eventCalendar-BaGpnOGN.mjs → eventCalendar-CKwgXui5.mjs} +9 -9
- package/dist/client/{eventCombined-ywONOx2m.mjs → eventCombined-CBAOSTGR.mjs} +4 -4
- package/dist/client/{eventDetails-B2LlOTYY.mjs → eventDetails-Dh-_WiBD.mjs} +4 -4
- package/dist/client/{eventListing-CMgxWpqP.mjs → eventListing-CA3frIH5.mjs} +4 -4
- package/dist/client/{eventRegistration-BarLDNHR.mjs → eventRegistration-BHtsgdcg.mjs} +21 -22
- package/dist/client/{form-BjqKaBJ7.mjs → form-C2h3YAcg.mjs} +135 -104
- package/dist/client/{headerSection-CP4XDwz1.mjs → headerSection-lwMuMTH9.mjs} +3 -3
- package/dist/client/hooks.mjs +1023 -148
- package/dist/client/{locationMap-C5gW-d-w.mjs → locationMap-DJ2bLODV.mjs} +3 -3
- package/dist/client/{newsletterForm-afXlVSA0.mjs → newsletterForm-8Pu5K32g.mjs} +225 -102
- package/dist/client/{pricing-Bl1CAl28.mjs → pricing-HHx3IgBz.mjs} +1 -1
- package/dist/client/{productDetail-CvQ3jWQe.mjs → productDetail-C_1odnAf.mjs} +3 -3
- package/dist/client/{productList-U874PGO7.mjs → productList-CtCv-Nmx.mjs} +3 -3
- package/dist/client/{propsDecoder-DPXtCZWP.mjs → propsDecoder-Dcgsncxb.mjs} +111 -55
- package/dist/client/rendering/client.mjs +1389 -722
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +3136 -1400
- package/dist/client/{routeIslandApiConfig-NGYiUWXu.mjs → routeIslandApiConfig-CWLP7wu3.mjs} +1 -1
- package/dist/client/{scrollToBlock-0-C3DVhK.mjs → scrollToBlock-BNgaEUpo.mjs} +1 -1
- package/dist/client/{shop-BXjXhM9P.mjs → shop-DQXrQ8kJ.mjs} +7 -7
- package/dist/client/{shop-commerce-BZ6UlWJ7.mjs → shop-commerce-B88zmWWo.mjs} +6 -6
- package/dist/client/{shop-commerce-store-DlSBXb3D.mjs → shop-commerce-store-DtSfkKuX.mjs} +1 -1
- package/dist/client/{shopShared-kkEOiLPA.mjs → shopShared-cuaONpkJ.mjs} +4 -4
- package/dist/client/{useEventFilters-zvnnE1ro.mjs → useEventFilters-Bukew6Gb.mjs} +6 -6
- package/dist/preview-next/before-render.mjs +500 -165
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/editor-base.css +11 -0
- package/dist/preview-next/keepAlive.mjs +460 -165
- package/dist/preview-next/middleware.mjs +461 -165
- package/dist/{previewAuthStore-JA6-I_sL.mjs → previewAuthStore-h5IgbSp4.mjs} +485 -165
- package/dist/{sdk-runtime-DFJlQt3q.mjs → sdk-runtime-DTc1uIXn.mjs} +2 -2
- package/dist/{separator-o8GHb1xh.mjs → separator-BpHS1KZK.mjs} +1 -1
- package/dist/server/components.mjs +3088 -1307
- package/dist/server/config-validation.mjs +927 -109
- package/dist/server/config.mjs +927 -109
- package/dist/server/data.mjs +939 -110
- package/dist/server/index.mjs +513 -169
- package/dist/server/next.mjs +2874 -1195
- package/dist/server/page-converter.mjs +420 -79
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +3071 -1289
- package/dist/server/rendering.mjs +3169 -1350
- package/dist/server/routing.mjs +1085 -159
- package/dist/server/server.mjs +1042 -291
- package/dist/server/theme-bridge.mjs +1658 -137
- package/dist/server/theme.mjs +6 -4
- package/dist/styles/index.css +186 -65
- package/package.json +2 -1
|
@@ -2,7 +2,7 @@ import type { Theme } from '../../blocks/src/index';
|
|
|
2
2
|
import type { SiteVerticalBookingConfig } from '../../core/src/index';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import type { AiGenerateSiteEntityType, AiGenerateSitePrimaryCta, AiGenerateSiteRequest } from './siteGeneration';
|
|
5
|
-
import type { AppointmentSetupTargetStep } from './appointmentSetup';
|
|
5
|
+
import type { AppointmentSetupReadiness, AppointmentSetupTargetStep } from './appointmentSetup';
|
|
6
6
|
import type { MacadamiaOnboardingLogoAnalysis, MacadamiaOnboardingSurfaceData, PublicOnboardingSurfaceId } from './onboarding/surfaceData';
|
|
7
7
|
export type * from './onboarding/surfaceData';
|
|
8
8
|
/**
|
|
@@ -89,8 +89,8 @@ export type AiBrandGuidelinesGenerateResponse = {
|
|
|
89
89
|
stats: SiteContentSamplingStats;
|
|
90
90
|
};
|
|
91
91
|
};
|
|
92
|
-
export type LaunchRequirementId = 'confirm_email' | 'review_generated_site' | 'configure_appointments' | 'configure_events' | 'configure_courses' | 'connect_payments' | 'connect_custom_domain';
|
|
93
|
-
export type LaunchRequirementPackId = 'core' | 'bookings_appointments' | 'bookings_events' | 'bookings_courses' | 'payments' | 'domain';
|
|
92
|
+
export type LaunchRequirementId = 'confirm_email' | 'review_generated_site' | 'configure_appointments' | 'configure_events' | 'configure_courses' | 'connect_payments' | 'connect_custom_domain' | 'add_first_offering' | 'add_cover_image' | 'add_public_contact';
|
|
93
|
+
export type LaunchRequirementPackId = 'core' | 'bookings_appointments' | 'bookings_events' | 'bookings_courses' | 'payments' | 'domain' | 'offerings' | 'presence';
|
|
94
94
|
export type LaunchRequirementPriority = 'required' | 'recommended' | 'optional';
|
|
95
95
|
export type LaunchRequirementState = 'complete' | 'pending';
|
|
96
96
|
export type LaunchRequirementOwner = 'admin' | 'editor' | 'either';
|
|
@@ -162,23 +162,36 @@ export type LaunchAppointmentsPackState = {
|
|
|
162
162
|
kind: 'disabled';
|
|
163
163
|
} | {
|
|
164
164
|
kind: 'ready';
|
|
165
|
-
}
|
|
165
|
+
}
|
|
166
|
+
/** `missing` is the first gap in setup, so copy can name it. */
|
|
167
|
+
| {
|
|
166
168
|
kind: 'pending_setup';
|
|
169
|
+
missing: LaunchAppointmentsSetupGap;
|
|
167
170
|
targetStep: AppointmentSetupTargetStep;
|
|
168
171
|
};
|
|
172
|
+
export type LaunchAppointmentsSetupGap = Exclude<AppointmentSetupReadiness['kind'], 'not_applicable' | 'bookable'>;
|
|
173
|
+
/** The event offering kinds a launch item can name (courses have their own item). */
|
|
174
|
+
export declare const LAUNCH_EVENT_OFFERING_KINDS: readonly ["classes", "workshops", "retreats", "performances"];
|
|
175
|
+
export type LaunchEventOfferingKind = (typeof LAUNCH_EVENT_OFFERING_KINDS)[number];
|
|
169
176
|
export type LaunchEventsPackState = {
|
|
170
177
|
kind: 'disabled';
|
|
171
178
|
} | {
|
|
172
179
|
kind: 'ready';
|
|
173
|
-
}
|
|
180
|
+
}
|
|
181
|
+
/** `offeredKinds`: event kinds recorded at onboarding, in wizard order; empty when none. */
|
|
182
|
+
| {
|
|
174
183
|
kind: 'pending_setup';
|
|
184
|
+
offeredKinds: readonly LaunchEventOfferingKind[];
|
|
175
185
|
};
|
|
186
|
+
/** Keyed on whether a Stripe account exists: `connected_pending` has one that can't take payments yet. */
|
|
176
187
|
export type LaunchPaymentsPackState = {
|
|
177
188
|
kind: 'not_applicable';
|
|
178
189
|
} | {
|
|
179
190
|
kind: 'ready';
|
|
180
191
|
} | {
|
|
181
|
-
kind: '
|
|
192
|
+
kind: 'not_connected';
|
|
193
|
+
} | {
|
|
194
|
+
kind: 'connected_pending';
|
|
182
195
|
};
|
|
183
196
|
export type LaunchCoursesPackState = {
|
|
184
197
|
kind: 'not_applicable';
|
|
@@ -187,6 +200,24 @@ export type LaunchCoursesPackState = {
|
|
|
187
200
|
} | {
|
|
188
201
|
kind: 'pending_setup';
|
|
189
202
|
};
|
|
203
|
+
/** Booking pages only: whether the site has anything people could book. */
|
|
204
|
+
export type LaunchOfferingsPackState = {
|
|
205
|
+
kind: 'has_offerings';
|
|
206
|
+
} | {
|
|
207
|
+
kind: 'none';
|
|
208
|
+
};
|
|
209
|
+
/** Booking pages only. */
|
|
210
|
+
export type LaunchCoverImagePackState = {
|
|
211
|
+
kind: 'set';
|
|
212
|
+
} | {
|
|
213
|
+
kind: 'missing';
|
|
214
|
+
};
|
|
215
|
+
/** Booking pages only: whether any contact method is published. */
|
|
216
|
+
export type LaunchPublicContactPackState = {
|
|
217
|
+
kind: 'published';
|
|
218
|
+
} | {
|
|
219
|
+
kind: 'missing';
|
|
220
|
+
};
|
|
190
221
|
export type LaunchCustomDomainPackState = {
|
|
191
222
|
kind: 'connected';
|
|
192
223
|
domainIds: readonly string[];
|
|
@@ -196,11 +227,28 @@ export type LaunchCustomDomainPackState = {
|
|
|
196
227
|
} | {
|
|
197
228
|
kind: 'pending_setup';
|
|
198
229
|
};
|
|
199
|
-
|
|
200
|
-
|
|
230
|
+
/**
|
|
231
|
+
* The exact gap behind a pending requirement, so a presentation can name it
|
|
232
|
+
* ("Set your hours", "Finish setting up Stripe") without re-deriving facts.
|
|
233
|
+
*/
|
|
234
|
+
export type LaunchAppointmentsGapDetail = {
|
|
235
|
+
kind: 'appointments_gap';
|
|
236
|
+
missing: LaunchAppointmentsSetupGap;
|
|
237
|
+
};
|
|
238
|
+
export type LaunchPaymentsGapDetail = {
|
|
239
|
+
kind: 'payments_gap';
|
|
240
|
+
stage: 'not_connected' | 'connected_pending';
|
|
241
|
+
};
|
|
242
|
+
export type LaunchEventKindsDetail = {
|
|
243
|
+
kind: 'event_kinds';
|
|
244
|
+
offeredKinds: readonly LaunchEventOfferingKind[];
|
|
245
|
+
};
|
|
246
|
+
export type LaunchRequirementDetail = LaunchAppointmentsGapDetail | LaunchPaymentsGapDetail | LaunchEventKindsDetail;
|
|
247
|
+
/** Requirements that always carry a `detail` while pending. */
|
|
248
|
+
export type LaunchDetailedRequirementId = Extract<LaunchRequirementId, 'configure_appointments' | 'connect_payments' | 'configure_events'>;
|
|
249
|
+
type LaunchRequirementFields = {
|
|
201
250
|
packId: LaunchRequirementPackId;
|
|
202
251
|
priority: LaunchRequirementPriority;
|
|
203
|
-
state: LaunchRequirementState;
|
|
204
252
|
owner: LaunchRequirementOwner;
|
|
205
253
|
title: string;
|
|
206
254
|
description: string;
|
|
@@ -208,6 +256,24 @@ export type LaunchRequirement = {
|
|
|
208
256
|
secondaryAction?: LaunchRequirementAction | null;
|
|
209
257
|
evidence: LaunchRequirementEvidence;
|
|
210
258
|
};
|
|
259
|
+
type LaunchPendingWithDetail<Id extends LaunchDetailedRequirementId, Detail> = LaunchRequirementFields & {
|
|
260
|
+
id: Id;
|
|
261
|
+
state: 'pending';
|
|
262
|
+
detail: Detail;
|
|
263
|
+
};
|
|
264
|
+
/**
|
|
265
|
+
* One launch requirement. The three detailed items must carry their gap
|
|
266
|
+
* while pending, so a presentation never has to guess it.
|
|
267
|
+
*/
|
|
268
|
+
export type LaunchRequirement = LaunchPendingWithDetail<'configure_appointments', LaunchAppointmentsGapDetail> | LaunchPendingWithDetail<'connect_payments', LaunchPaymentsGapDetail> | LaunchPendingWithDetail<'configure_events', LaunchEventKindsDetail> | (LaunchRequirementFields & {
|
|
269
|
+
id: LaunchDetailedRequirementId;
|
|
270
|
+
state: 'complete';
|
|
271
|
+
detail?: never;
|
|
272
|
+
}) | (LaunchRequirementFields & {
|
|
273
|
+
id: Exclude<LaunchRequirementId, LaunchDetailedRequirementId>;
|
|
274
|
+
state: LaunchRequirementState;
|
|
275
|
+
detail?: never;
|
|
276
|
+
});
|
|
211
277
|
export type GoLiveDecision = {
|
|
212
278
|
kind: 'allowed';
|
|
213
279
|
overriddenRequirementIds: LaunchRequirementId[];
|
|
@@ -23,7 +23,7 @@ export type SdkUpsertNavigationItemInput = Readonly<{
|
|
|
23
23
|
* Site platform endpoints cover admin/configuration surfaces: redirects, webhooks,
|
|
24
24
|
* keys, SDK management, content-type CRUD, backup flows, and site-level admin tools.
|
|
25
25
|
*/
|
|
26
|
-
export type SitePlatformAPIEndpoints = {
|
|
26
|
+
export type SitePlatformAPIEndpoints = import('./sdkEventLifecycle').SdkEventLifecycleAPIEndpoints & {
|
|
27
27
|
listGscPropertiesAdmin: APIEndpoint<never, never, ListGscPropertiesAdminResponse>;
|
|
28
28
|
getPublicChallenge: APIEndpoint<never, never, string>;
|
|
29
29
|
checkRedirect: APIEndpoint<never, CheckRedirectQuery, CheckRedirectResponse>;
|
|
@@ -12,6 +12,7 @@ export type * from './bookingAdjustments';
|
|
|
12
12
|
export type * from './bookingConfig';
|
|
13
13
|
export type * from './event-listing-destination';
|
|
14
14
|
export type * from './bookingManagementEndpoints';
|
|
15
|
+
export type * from './newsletterCampaignCommandEndpoints';
|
|
15
16
|
export type * from './bookingOperations';
|
|
16
17
|
export { APPOINTMENT_HISTORY_STATUS_VALUES } from './bookingOperations';
|
|
17
18
|
export type * from './bookingRecords';
|
|
@@ -28,6 +29,7 @@ export type * from './sdk-event-payment-terms';
|
|
|
28
29
|
export type * from './siteInfrastructure';
|
|
29
30
|
export type * from './siteGeneration';
|
|
30
31
|
export type * from './siteManagementEndpoints';
|
|
32
|
+
export type * from './siteAddressEndpoints';
|
|
31
33
|
export type * from './siteOnboarding';
|
|
32
34
|
export type * from './siteOperations';
|
|
33
35
|
export type * from './siteAssets';
|
|
@@ -59,18 +61,23 @@ export type { AdminProfileRole, AdminRoleMutationResponse, RevokeAdminRoleReques
|
|
|
59
61
|
import type { AccountAPIEndpoints } from './accountEndpoints';
|
|
60
62
|
export type * from './accountEndpoints';
|
|
61
63
|
import type { AiAndLaunchReadinessAPIEndpointDefinitions, AiAPIEndpointName, AiAPIEndpoints, LaunchReadinessAPIEndpointName, LaunchReadinessAPIEndpoints } from './aiEndpoints';
|
|
64
|
+
import type { AppointmentServiceCategoryAPIEndpoints } from './appointmentServiceCategoryEndpoints';
|
|
62
65
|
import type { BookingManagementAPIEndpoints } from './bookingManagementEndpoints';
|
|
66
|
+
import type { NewsletterCampaignCommandAPIEndpoints } from './newsletterCampaignCommandEndpoints';
|
|
63
67
|
import type { CommercePortalAPIEndpoints } from './commercePortalEndpoints';
|
|
64
68
|
import type { MailchimpIntegrationAPIEndpoints } from './mailchimpIntegration';
|
|
65
69
|
import type { MailingListIntegrationAPIEndpoints } from './mailingListIntegration';
|
|
66
70
|
import type { PublicExperienceAPIEndpoints } from './publicExperienceEndpoints';
|
|
67
71
|
import type { SeoEndpointDefinitions } from './seoEndpoints';
|
|
68
72
|
import type { SiteManagementAPIEndpoints } from './siteManagementEndpoints';
|
|
73
|
+
import type { SiteAddressAPIEndpoints } from './siteAddressEndpoints';
|
|
69
74
|
import type { SitePlatformAPIEndpoints } from './sitePlatformEndpoints';
|
|
75
|
+
import type { SdkPageDesignAPIEndpoints } from './sdkPageDesign';
|
|
70
76
|
import type { SiteRuntimeAPIEndpoints } from './siteRuntimeEndpoints';
|
|
77
|
+
import type { ClientErrorReportingAPIEndpoints } from './clientErrorReporting';
|
|
71
78
|
type TableName = keyof DbDatabase['public']['Tables'];
|
|
72
79
|
export type DTOType<K extends TableName> = Partial<CamelizeKeys<DbRow<K>>>;
|
|
73
|
-
type APIEndpointsMonolith = AiAndLaunchReadinessAPIEndpointDefinitions & AccountAPIEndpoints & SeoEndpointDefinitions & SiteManagementAPIEndpoints & PublicExperienceAPIEndpoints & SiteRuntimeAPIEndpoints & SitePlatformAPIEndpoints & BookingManagementAPIEndpoints & CommercePortalAPIEndpoints & MailchimpIntegrationAPIEndpoints & MailingListIntegrationAPIEndpoints;
|
|
80
|
+
type APIEndpointsMonolith = AiAndLaunchReadinessAPIEndpointDefinitions & AccountAPIEndpoints & SeoEndpointDefinitions & SiteManagementAPIEndpoints & SiteAddressAPIEndpoints & PublicExperienceAPIEndpoints & SiteRuntimeAPIEndpoints & SitePlatformAPIEndpoints & SdkPageDesignAPIEndpoints & BookingManagementAPIEndpoints & NewsletterCampaignCommandAPIEndpoints & AppointmentServiceCategoryAPIEndpoints & CommercePortalAPIEndpoints & MailchimpIntegrationAPIEndpoints & MailingListIntegrationAPIEndpoints & ClientErrorReportingAPIEndpoints;
|
|
74
81
|
type ComposeEndpointMaps<Maps extends readonly object[], Acc extends object = {}> = Maps extends readonly [
|
|
75
82
|
infer Head extends object,
|
|
76
83
|
...infer Tail extends readonly object[]
|
|
@@ -147,3 +147,17 @@ export type UpdateEventSeriesRegistrationRequest = {
|
|
|
147
147
|
export type UpdateEventSeriesRegistrationResponse = {
|
|
148
148
|
enrollment: EventSeriesRegistrationRecord;
|
|
149
149
|
};
|
|
150
|
+
/**
|
|
151
|
+
* Somebody on the team filling in or editing the answers of one person on a
|
|
152
|
+
* booking. A booking can hold several places and each person is asked the
|
|
153
|
+
* questions separately, so the person is named rather than assumed.
|
|
154
|
+
*/
|
|
155
|
+
export type SaveEventSeriesRegistrationAnswersRequest = {
|
|
156
|
+
requirementId: string;
|
|
157
|
+
participantParticipationId: string;
|
|
158
|
+
answers: Record<string, unknown>;
|
|
159
|
+
};
|
|
160
|
+
export type SaveEventSeriesRegistrationAnswersResponse = {
|
|
161
|
+
savedAt: string;
|
|
162
|
+
filledInByName: string;
|
|
163
|
+
};
|
|
@@ -4,20 +4,20 @@ import type { PageOutline } from './structure/schema';
|
|
|
4
4
|
import type { SdkCustomBlock } from './system/manifest/schema';
|
|
5
5
|
import type { RouteMap } from './system/transforms';
|
|
6
6
|
import { type OverrideOnlyRenderMode, type ThemedRenderMode, type TokensOnlyRenderMode } from './pageRenderingMode';
|
|
7
|
-
import { type
|
|
7
|
+
import { type PageJoinRenderer, type PageRuntimeJoin } from './pageRendererBoundaries';
|
|
8
8
|
import { type BlockOverrides, type PageRendererDataContext, type SdkConfigForRenderer } from './pageRendererContracts';
|
|
9
9
|
import { type RenderablePageOutline } from './pageRenderAdmission';
|
|
10
10
|
export type { PageBlockRenderAdmissionError, RenderablePageBlock, RenderablePageOutline, } from './pageRenderAdmission';
|
|
11
11
|
export type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, EntrySubrouteContextData, OccurrenceContextData, SdkConfigForRenderer, } from './pageRendererContracts';
|
|
12
12
|
export { MissingBlockOverrideError } from './pageRenderingMode';
|
|
13
|
-
export type { PageBlockPosition,
|
|
13
|
+
export type { PageBlockPosition, PageJoinRenderer, PageJoinSlot, PageRuntimeJoin, RenderedJoin, } from './pageRendererBoundaries';
|
|
14
14
|
type PageRendererCommonProps<TPage> = {
|
|
15
15
|
page: TPage | null;
|
|
16
|
-
|
|
16
|
+
runtimeJoins?: readonly PageRuntimeJoin[];
|
|
17
17
|
dataContext?: PageRendererDataContext;
|
|
18
18
|
routeMap?: RouteMap;
|
|
19
19
|
wrapBlock?: (blockId: string, rendered: React.ReactNode) => React.ReactNode;
|
|
20
|
-
|
|
20
|
+
renderJoin?: PageJoinRenderer;
|
|
21
21
|
registry?: ResolverContext['registry'];
|
|
22
22
|
blockOverrides?: BlockOverrides;
|
|
23
23
|
sdkConfig?: SdkConfigForRenderer | null;
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export type { BindingSource, BindingDescriptor, BindingInput, BindingMap, BindingContext, BindingPath, BindingTransformName, KnownBindingTransformName, FieldBindingDescriptor, MetaBindingDescriptor, LiteralBindingDescriptor, TransformBindingDescriptor, FallbackBindingDescriptor, } from './types';
|
|
8
8
|
export { TRANSFORMS, BINDING_SOURCES } from './types';
|
|
9
|
-
export { asDesignBlockId, asContentTemplateDesignBlockId, asLayoutVariantKey, buildPageDesignEditorReadModel, compileContentTemplateRuntimeFields, parsePageDesignIntent, surfaceResolutionContextFromTheme, designRuntimeRulesForTheme, type DesignBlockId, parseContentTemplateDesignIntent, type CompiledBlockRuntimeFields, type
|
|
10
|
-
export { applyCompiledRuntimeFieldsToContent,
|
|
9
|
+
export { asDesignBlockId, asContentTemplateDesignBlockId, asLayoutVariantKey, buildPageDesignEditorReadModel, compileContentTemplateRuntimeFields, parsePageDesignIntent, surfaceResolutionContextFromTheme, designRuntimeRulesForTheme, type DesignBlockId, parseContentTemplateDesignIntent, type CompiledBlockRuntimeFields, type PageRuntimeJoin, type LayoutVariantKey, type PageDesignEditorBlockInput, type PageDesignIntent, type SurfaceResolutionContext, applyBlockContentVariantPolicy, deriveSiteStyleBlockPolicy, } from '../../../theme-core/src/site-styles/index';
|
|
10
|
+
export { applyCompiledRuntimeFieldsToContent, buildEditorModelRuntimeFieldsByBlockId, compileEditorModelRuntime, } from '../../../theme-core/src/site-styles/previewCompiler';
|
|
11
11
|
export { blockDesignMetadataMapFromDefinitions } from '../system/designCapabilities';
|
|
12
12
|
export { systemBlockDefinitions } from '../system/blocks';
|
|
13
13
|
import type { BindingContext, BindingDescriptor, BindingInput, BindingMap, BindingPath, FieldBindingDescriptor, FallbackBindingDescriptor, KnownBindingTransformName, LiteralBindingDescriptor, MetaBindingDescriptor, TransformBindingDescriptor } from './types';
|
|
@@ -87,6 +87,12 @@ export declare const proofBlockIslandCodecs: {
|
|
|
87
87
|
agreement: import("../../../core/src/index").RichTextDoc;
|
|
88
88
|
checkboxLabel: string;
|
|
89
89
|
}>;
|
|
90
|
+
categoryId?: string | null;
|
|
91
|
+
}>[];
|
|
92
|
+
serviceCategories?: readonly Readonly<{
|
|
93
|
+
id: string;
|
|
94
|
+
name: string;
|
|
95
|
+
description: string | null;
|
|
90
96
|
}>[];
|
|
91
97
|
spamProtectionEnabled?: boolean;
|
|
92
98
|
}>;
|
|
@@ -169,6 +175,12 @@ export declare const proofBlockIslandCodecs: {
|
|
|
169
175
|
agreement: import("../../../core/src/index").RichTextDoc;
|
|
170
176
|
checkboxLabel: string;
|
|
171
177
|
}>;
|
|
178
|
+
categoryId?: string | null;
|
|
179
|
+
}>[];
|
|
180
|
+
serviceCategories?: readonly Readonly<{
|
|
181
|
+
id: string;
|
|
182
|
+
name: string;
|
|
183
|
+
description: string | null;
|
|
172
184
|
}>[];
|
|
173
185
|
spamProtectionEnabled?: boolean;
|
|
174
186
|
}>;
|
|
@@ -1037,6 +1049,12 @@ export declare const runtimeIslandCodecs: {
|
|
|
1037
1049
|
agreement: import("../../../core/src/index").RichTextDoc;
|
|
1038
1050
|
checkboxLabel: string;
|
|
1039
1051
|
}>;
|
|
1052
|
+
categoryId?: string | null;
|
|
1053
|
+
}>[];
|
|
1054
|
+
serviceCategories?: readonly Readonly<{
|
|
1055
|
+
id: string;
|
|
1056
|
+
name: string;
|
|
1057
|
+
description: string | null;
|
|
1040
1058
|
}>[];
|
|
1041
1059
|
spamProtectionEnabled?: boolean;
|
|
1042
1060
|
}>;
|
|
@@ -1119,6 +1137,12 @@ export declare const runtimeIslandCodecs: {
|
|
|
1119
1137
|
agreement: import("../../../core/src/index").RichTextDoc;
|
|
1120
1138
|
checkboxLabel: string;
|
|
1121
1139
|
}>;
|
|
1140
|
+
categoryId?: string | null;
|
|
1141
|
+
}>[];
|
|
1142
|
+
serviceCategories?: readonly Readonly<{
|
|
1143
|
+
id: string;
|
|
1144
|
+
name: string;
|
|
1145
|
+
description: string | null;
|
|
1122
1146
|
}>[];
|
|
1123
1147
|
spamProtectionEnabled?: boolean;
|
|
1124
1148
|
}>;
|
|
@@ -2,8 +2,10 @@ export { default as PageRenderer, EditorPageRenderer } from './PageRenderer';
|
|
|
2
2
|
export type { RenderAudience as PageRenderAudience } from './pageRenderAudience';
|
|
3
3
|
export { createCustomBlockRegistry, mergeBlockDescriptorsWithRegistry, planCustomBlockRegistryResolution, transformToBlockDescriptor, } from './customBlockRegistry';
|
|
4
4
|
export type { CustomBlockConflictReason, CustomBlockManifestSource, CustomBlockRegistry, CustomBlockRegistryConflict, CustomBlockRegistryEntry, CustomBlockRegistryResolutionPlan, CustomBlockSourcePolicy, ResolvedCustomBlockManifest, SdkConfigForBlockPicker, } from './customBlockRegistry';
|
|
5
|
-
export type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, EntrySubrouteContextData, EditorPageRendererProps, PageBlockRenderAdmissionError, PageRendererProps, RenderablePageBlock, RenderablePageOutline, OccurrenceContextData, PageBlockPosition,
|
|
5
|
+
export type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, EntrySubrouteContextData, EditorPageRendererProps, PageBlockRenderAdmissionError, PageRendererProps, RenderablePageBlock, RenderablePageOutline, OccurrenceContextData, PageBlockPosition, PageJoinRenderer, PageJoinSlot, PageRuntimeJoin, RenderedJoin, SdkConfigForRenderer, } from './PageRenderer';
|
|
6
6
|
export { MissingBlockOverrideError } from './pageRenderingMode';
|
|
7
|
+
export { readPublishedBlockPlacement } from './pageRenderAdmission';
|
|
8
|
+
export type { PublishedBlockPlacement } from './pageRenderAdmission';
|
|
7
9
|
export * from './subroutes';
|
|
8
10
|
export * from './structure/schema';
|
|
9
11
|
export { BLOCK_BUTTON_ROLES, BLOCK_BUTTON_ROLE_OPTIONS, blockButtonRoleSchema, isBlockButtonRole, type BlockButtonRole, } from './system/constants/buttonRoles';
|
|
@@ -6,12 +6,20 @@ export type PageBlockRenderAdmissionError = Readonly<{
|
|
|
6
6
|
}> | Readonly<{
|
|
7
7
|
kind: 'manifest_unavailable';
|
|
8
8
|
}>;
|
|
9
|
+
export type PublishedBlockPlacement = Readonly<{
|
|
10
|
+
id: string;
|
|
11
|
+
content: Record<string, unknown>;
|
|
12
|
+
}>;
|
|
13
|
+
/** Pair a published version with the content it authorises at the render boundary. */
|
|
14
|
+
export declare function readPublishedBlockPlacement(id: string | null | undefined, content: Record<string, unknown> | null | undefined): PublishedBlockPlacement | null;
|
|
9
15
|
export type RenderablePageBlock = Readonly<{
|
|
10
16
|
id: Block['id'];
|
|
11
17
|
kind: Block['kind'];
|
|
12
18
|
purpose: Block['purpose'];
|
|
13
19
|
bindings?: Block['bindings'];
|
|
14
20
|
contentVersionId?: string | null;
|
|
21
|
+
draftContentId?: string | null;
|
|
22
|
+
publishedPlacement?: PublishedBlockPlacement | null;
|
|
15
23
|
admission: Readonly<{
|
|
16
24
|
kind: 'renderable';
|
|
17
25
|
content: RenderableManifestContent;
|
|
@@ -34,6 +42,8 @@ export type PresentationAdmission = Readonly<{
|
|
|
34
42
|
export type PresentationBlock = Block & Readonly<{
|
|
35
43
|
presentationAdmission: PresentationAdmission;
|
|
36
44
|
contentVersionId?: string | null;
|
|
45
|
+
draftContentId?: string | null;
|
|
46
|
+
publishedPlacement?: PublishedBlockPlacement | null;
|
|
37
47
|
}>;
|
|
38
48
|
export type PresentationPageOutline = Omit<PageOutline, 'blocks'> & Readonly<{
|
|
39
49
|
blocks: readonly PresentationBlock[];
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { type BoundaryLayout, type BoundaryOutcome, type DecorativeTransitionIntent, type DesignBoundaryId, type PageRuntimeJoin as ThemeCorePageRuntimeJoin } from '../../theme-core/src/site-styles/index';
|
|
2
|
+
/**
|
|
3
|
+
* A break between two adjacent blocks as the server sends it: intent only.
|
|
4
|
+
* Everything visual is decided here, from the content that finally renders
|
|
5
|
+
* (issue 1422).
|
|
6
|
+
*/
|
|
7
|
+
export type PageRuntimeJoin = ThemeCorePageRuntimeJoin<string>;
|
|
8
|
+
/**
|
|
9
|
+
* A join after composition: its treatment plus whether and how it draws. The
|
|
10
|
+
* outcome comes from the same composition as the painted markup, so the
|
|
11
|
+
* editor's "won't show here" note can never disagree with the page.
|
|
12
|
+
*/
|
|
13
|
+
export type RenderedJoin = Readonly<{
|
|
14
|
+
boundaryId: DesignBoundaryId;
|
|
15
|
+
previousBlockId: string;
|
|
16
|
+
nextBlockId: string;
|
|
17
|
+
treatment: DecorativeTransitionIntent;
|
|
18
|
+
outcome: BoundaryOutcome;
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* One adjacent pair of surviving blocks. `join` is null when the pair has no
|
|
22
|
+
* break at all; a join that exists but does not draw carries a not-shown
|
|
23
|
+
* outcome instead.
|
|
24
|
+
*/
|
|
25
|
+
export type PageJoinSlot = Readonly<{
|
|
26
|
+
previousBlockId: string;
|
|
27
|
+
nextBlockId: string;
|
|
28
|
+
join: RenderedJoin | null;
|
|
29
|
+
}>;
|
|
30
|
+
/** The survivor facts composition needs: its id, kind and final content. */
|
|
31
|
+
export type JoinSurvivor = Readonly<{
|
|
32
|
+
id: string | null | undefined;
|
|
33
|
+
kind: string;
|
|
34
|
+
content: Record<string, unknown>;
|
|
35
|
+
}>;
|
|
36
|
+
/**
|
|
37
|
+
* Re-points joins across omitted blocks. Pure over joins.
|
|
38
|
+
*
|
|
39
|
+
* Joins are keyed by adjacent block-id pairs, so dropping B from [A, B, C]
|
|
40
|
+
* removes the A→C join as well as B's own, because no A→C join was ever
|
|
41
|
+
* resolved. For each surviving pair the original join is kept when the pair
|
|
42
|
+
* was already adjacent. Across a gap, the treatment comes from the join
|
|
43
|
+
* entering the omitted run (A→first omitted), falling back to the one leaving
|
|
44
|
+
* it (last omitted→C). Nothing visual is carried: the survivors are composed
|
|
45
|
+
* from their own content afterwards.
|
|
46
|
+
*
|
|
47
|
+
* `survivors` are compared by identity against `originalBlocks`.
|
|
48
|
+
*/
|
|
49
|
+
export declare function retargetJoinsAcrossOmissions<TBlock extends Readonly<{
|
|
50
|
+
id?: string | null;
|
|
51
|
+
}>>(input: Readonly<{
|
|
52
|
+
joins: readonly PageRuntimeJoin[];
|
|
53
|
+
originalBlocks: readonly TBlock[];
|
|
54
|
+
survivingBlocks: ReadonlySet<TBlock>;
|
|
55
|
+
}>): readonly PageRuntimeJoin[];
|
|
56
|
+
/**
|
|
57
|
+
* The single composition site. For every adjacent pair of survivors with ids,
|
|
58
|
+
* finds its join and composes it from both survivors' final content: what
|
|
59
|
+
* each paints with and the frame each draws.
|
|
60
|
+
*/
|
|
61
|
+
export declare function composePageJoins(input: Readonly<{
|
|
62
|
+
joins: readonly PageRuntimeJoin[];
|
|
63
|
+
survivors: readonly JoinSurvivor[];
|
|
64
|
+
}>): readonly PageJoinSlot[];
|
|
65
|
+
/** Placement, reserves and paint for a join that draws; null otherwise. */
|
|
66
|
+
export declare function renderedJoinLayout(join: RenderedJoin | null): BoundaryLayout | null;
|
|
67
|
+
/** Slot lookup key for an adjacent pair, in the one boundary-id scheme. */
|
|
68
|
+
export declare function joinSlotKey(previousBlockId: string, nextBlockId: string): DesignBoundaryId;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getBlockDefinition } from './system';
|
|
2
2
|
import type { SdkCustomBlock } from './system/manifest/schema';
|
|
3
3
|
import type { PresentationBlock, PresentationPageOutline } from './pageRenderAdmission';
|
|
4
|
-
import { type
|
|
4
|
+
import { type PageRuntimeJoin } from './pageRenderJoins';
|
|
5
5
|
import type { BlockOverrideComponent, BlockOverrides, SdkConfigForRenderer } from './pageRendererContracts';
|
|
6
6
|
import type { NotRenderableReason, RenderAudience } from './pageRenderAudience';
|
|
7
7
|
type ResolvedBlockDefinition = NonNullable<ReturnType<typeof getBlockDefinition>>;
|
|
@@ -70,12 +70,17 @@ export type OmittedBlockDebugFields = Readonly<{
|
|
|
70
70
|
export type PageRenderPlan = Readonly<{
|
|
71
71
|
entries: readonly PageBlockRenderPlanEntry[];
|
|
72
72
|
omitted: readonly OmittedPageBlock[];
|
|
73
|
-
|
|
73
|
+
/**
|
|
74
|
+
* Joins between the plan's entries, re-pointed across plan-time omissions.
|
|
75
|
+
* A caller that sent no joins gets an empty list: every pair still gets a
|
|
76
|
+
* join slot, with no treatment.
|
|
77
|
+
*/
|
|
78
|
+
runtimeJoins: readonly PageRuntimeJoin[];
|
|
74
79
|
}>;
|
|
75
80
|
export type BuildPageRenderPlanInput = Readonly<{
|
|
76
81
|
page: PresentationPageOutline;
|
|
77
82
|
audience: RenderAudience;
|
|
78
|
-
|
|
83
|
+
runtimeJoins: readonly PageRuntimeJoin[] | undefined;
|
|
79
84
|
previewStage: 'published' | 'preview';
|
|
80
85
|
sdkConfig: SdkConfigForRenderer | null | undefined;
|
|
81
86
|
customBlocks: readonly SdkCustomBlock[] | undefined;
|
|
@@ -89,28 +94,4 @@ export type BuildPageRenderPlanInput = Readonly<{
|
|
|
89
94
|
* runs inside a `useMemo` whose recomputation React makes no promises about.
|
|
90
95
|
*/
|
|
91
96
|
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
97
|
export {};
|
|
@@ -4,9 +4,9 @@ import type { ResolveImageUrlContext } from './system/runtime/nodes/media';
|
|
|
4
4
|
import { type PageThemeResources } from './pageRenderingMode';
|
|
5
5
|
import type { PresentationBlock } from './pageRenderAdmission';
|
|
6
6
|
import type { RenderAudience } from './pageRenderAudience';
|
|
7
|
-
import type
|
|
7
|
+
import { type PageJoinSlot } from './pageRenderJoins';
|
|
8
8
|
import type { BlockOverrideProps, PageRendererDataContext } from './pageRendererContracts';
|
|
9
|
-
import {
|
|
9
|
+
import type { PageBlockRenderPlanEntry, PageRenderPlan } from './pageRenderPlan';
|
|
10
10
|
/**
|
|
11
11
|
* What preparing a block produced.
|
|
12
12
|
*
|
|
@@ -46,7 +46,11 @@ export type PageRenderPreparation = Readonly<{
|
|
|
46
46
|
* has to replay the overrides-only guard over the entry's own `override`.
|
|
47
47
|
*/
|
|
48
48
|
constructionFailures: readonly PageBlockRenderPlanEntry[];
|
|
49
|
-
|
|
49
|
+
/**
|
|
50
|
+
* One slot per adjacent pair of surviving entries, composed from their final
|
|
51
|
+
* content after both kinds of omission.
|
|
52
|
+
*/
|
|
53
|
+
joins: readonly PageJoinSlot[];
|
|
50
54
|
}>;
|
|
51
55
|
export type PreparePageRenderInput = Readonly<{
|
|
52
56
|
plan: PageRenderPlan;
|
|
@@ -55,7 +59,6 @@ export type PreparePageRenderInput = Readonly<{
|
|
|
55
59
|
routeMap: RouteMap | undefined;
|
|
56
60
|
themeResources: PageThemeResources;
|
|
57
61
|
imageResolveContext: ResolveImageUrlContext;
|
|
58
|
-
previewStage: 'published' | 'preview';
|
|
59
62
|
}>;
|
|
60
63
|
/**
|
|
61
64
|
* Stage two of the render plan.
|
|
@@ -1,31 +1,48 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type {
|
|
3
|
-
import type
|
|
2
|
+
import type { BoundaryLayout } from '../../theme-core/src/site-styles/index';
|
|
3
|
+
import { type PageJoinSlot, type RenderedJoin } from './pageRenderJoins';
|
|
4
4
|
export type PageBlockPosition = 'only' | 'first' | 'middle' | 'last';
|
|
5
|
-
export type
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
export type { PageJoinSlot, PageRuntimeJoin, RenderedJoin, } from './pageRenderJoins';
|
|
6
|
+
/**
|
|
7
|
+
* Called once for every adjacent pair of surviving blocks, including pairs
|
|
8
|
+
* with no join and joins that do not draw. What it returns is rendered at the
|
|
9
|
+
* join, after any painted boundary element. The editor mounts its section
|
|
10
|
+
* break control here, so the control exists even when nothing is painted.
|
|
11
|
+
*/
|
|
12
|
+
export type PageJoinRenderer = (input: Readonly<{
|
|
13
|
+
previousBlockId: string;
|
|
14
|
+
nextBlockId: string;
|
|
15
|
+
join: RenderedJoin | null;
|
|
16
|
+
}>) => React.ReactNode;
|
|
17
|
+
export declare function joinSlotsByPair(slots: readonly PageJoinSlot[]): ReadonlyMap<string, PageJoinSlot>;
|
|
18
|
+
export declare function joinSlotBetween(previousBlockId: string | null | undefined, nextBlockId: string | null | undefined, slots: ReadonlyMap<string, PageJoinSlot>): PageJoinSlot | null;
|
|
19
|
+
/**
|
|
20
|
+
* The markup at one join: the painted boundary element when the join draws,
|
|
21
|
+
* then whatever `renderJoin` adds. Null when there is nothing to render.
|
|
22
|
+
*/
|
|
23
|
+
export declare function renderJoinSlot(input: Readonly<{
|
|
24
|
+
slot: PageJoinSlot | null;
|
|
14
25
|
blockKey: string;
|
|
15
|
-
|
|
16
|
-
wrapBoundary?: PageBoundaryWrapper;
|
|
26
|
+
renderJoin: PageJoinRenderer | undefined;
|
|
17
27
|
}>): React.ReactNode;
|
|
18
|
-
type
|
|
19
|
-
'--
|
|
20
|
-
'--
|
|
28
|
+
type BoundaryStyle = React.CSSProperties & {
|
|
29
|
+
'--boundary-shape-paint'?: string;
|
|
30
|
+
'--boundary-band-paint'?: string;
|
|
21
31
|
'--site-style-boundary-before-reserve'?: string;
|
|
22
32
|
'--site-style-boundary-after-reserve'?: string;
|
|
23
33
|
};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
34
|
+
/**
|
|
35
|
+
* Reserve attributes and variables for a block wrapper, from the joins on
|
|
36
|
+
* either side. A join's `before` reserve sits inside its previous section, so
|
|
37
|
+
* it pads the bottom of the block above the join; its `after` reserve pads the
|
|
38
|
+
* top of the block below. Joins that do not draw reserve nothing.
|
|
39
|
+
*/
|
|
40
|
+
export declare function blockBoundaryReserves(input: Readonly<{
|
|
41
|
+
before: PageJoinSlot | null;
|
|
42
|
+
after: PageJoinSlot | null;
|
|
43
|
+
}>): Readonly<{
|
|
44
|
+
topPlacement: BoundaryLayout['placement'] | undefined;
|
|
45
|
+
bottomPlacement: BoundaryLayout['placement'] | undefined;
|
|
46
|
+
style: BoundaryStyle | undefined;
|
|
47
|
+
}>;
|
|
30
48
|
export declare function pageBlockPosition(index: number, blockCount: number): PageBlockPosition;
|
|
31
|
-
export {};
|
|
@@ -7,6 +7,7 @@ import type { RouteMap } from './system/transforms';
|
|
|
7
7
|
import type { BookingOfferingPresetSummary } from './system/blocks/offerings-preview/model';
|
|
8
8
|
import type { BlockLoaderFailures } from './system/data/types';
|
|
9
9
|
import type { BrowserReadAuthority } from './system/runtime/api/types';
|
|
10
|
+
import type { NewsletterBlockSubmission } from './system/runtime/nodes/newsletter-form.block-submission';
|
|
10
11
|
/**
|
|
11
12
|
* Occurrence context for event pages.
|
|
12
13
|
* Passed through to blocks that need occurrence information (e.g., event-registration).
|
|
@@ -76,6 +77,7 @@ export type BlockOverrideProps<TContent = Record<string, unknown>> = {
|
|
|
76
77
|
blockId: string | null;
|
|
77
78
|
/** Exact content snapshot rendered for this block. */
|
|
78
79
|
contentVersionId?: string | null;
|
|
80
|
+
newsletterBlockSubmission?: NewsletterBlockSubmission;
|
|
79
81
|
/** Block kind identifier (e.g., "block.hero" or "custom.my-block") */
|
|
80
82
|
blockKind: string;
|
|
81
83
|
};
|
|
@@ -141,7 +143,7 @@ export type PageRendererDataContext = {
|
|
|
141
143
|
resolvedData?: Record<string, Record<string, unknown>>;
|
|
142
144
|
/** Failed server loader requests, kept separate from successful data. */
|
|
143
145
|
loaderFailures?: BlockLoaderFailures;
|
|
144
|
-
previewStage
|
|
146
|
+
previewStage: 'published' | 'preview';
|
|
145
147
|
previewToken?: string | null;
|
|
146
148
|
readAuthority?: BrowserReadAuthority;
|
|
147
149
|
routes?: RouteMap;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { default as PageRenderer, EditorPageRenderer, MissingBlockOverrideError, } from './PageRenderer';
|
|
2
2
|
export type { RenderAudience as PageRenderAudience } from './pageRenderAudience';
|
|
3
|
-
export type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, EntrySubrouteContextData, EditorPageRendererProps, OccurrenceContextData, PageBlockRenderAdmissionError, PageBlockPosition,
|
|
3
|
+
export type { BlockOverrideComponent, BlockOverrideProps, BlockOverrides, EntrySubrouteContextData, EditorPageRendererProps, OccurrenceContextData, PageBlockRenderAdmissionError, PageBlockPosition, PageJoinRenderer, PageJoinSlot, PageRuntimeJoin, RenderedJoin, RenderablePageBlock, RenderablePageOutline, SdkConfigForRenderer, } from './PageRenderer';
|
|
4
4
|
export * from './subroutes';
|
|
5
5
|
export { ThemeScope } from '../../theme-core/src/ThemeScope';
|
|
@@ -5,6 +5,8 @@ declare const appointmentServicesManifest: BlockManifest;
|
|
|
5
5
|
export type AppointmentServicesContent = Readonly<{
|
|
6
6
|
heading?: string | null;
|
|
7
7
|
description?: unknown;
|
|
8
|
+
/** Issue 1403: one category to show; unset shows every category grouped. */
|
|
9
|
+
categoryId?: string | null;
|
|
8
10
|
_sectionStyles?: SectionStylesContent;
|
|
9
11
|
}>;
|
|
10
12
|
export declare const appointmentServicesBlockDefinition: SystemBlockDefinition<AppointmentServicesContent>;
|