@riverbankcms/sdk 0.144.0 → 0.145.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/dist/{PreviewEditorSidebar-CQZNnFiM.mjs → PreviewEditorSidebar-O-V6Pl5a.mjs} +4 -4
- package/dist/{PreviewEditorUI-DCNxnmI0.mjs → PreviewEditorUI-1UlX_9cw.mjs} +3 -3
- package/dist/{PreviewQueryProvider-BCYICImX.mjs → PreviewQueryProvider-BxGwdOCV.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-BJolUbr1.mjs → SdkPreviewModeRuntime-DYbA_4iv.mjs} +419 -348
- package/dist/{SiteChromeCustomizeContext-CKgEpoxi.mjs → SiteChromeCustomizeContext-CNTKQ9nx.mjs} +2081 -1313
- package/dist/_dts/ai/src/contracts/proposals.d.ts +4719 -66
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +429 -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/bookingManagementEndpoints.d.ts +2 -12
- package/dist/_dts/api/src/communications.d.ts +14 -22
- package/dist/_dts/api/src/contentRuntime.d.ts +2 -0
- package/dist/_dts/api/src/endpoints.d.ts +105 -58
- package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
- package/dist/_dts/api/src/launchReadiness.d.ts +2 -0
- package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +0 -23
- package/dist/_dts/api/src/onboarding/confirmationResend.d.ts +3 -0
- 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/siteManagementEndpoints.d.ts +2 -6
- package/dist/_dts/api/src/types.d.ts +2 -1
- 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 +1 -1
- 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/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/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/manifest/schema.d.ts +29 -3
- 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 +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +20 -1
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +2 -0
- 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/editor-state.d.ts +6 -0
- package/dist/_dts/core/src/index.d.ts +1 -0
- package/dist/_dts/core/src/public-profile.d.ts +9 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +663 -241
- package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +6 -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 +1 -0
- 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 -0
- 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/public-api/contracts.d.ts +6 -8
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -2
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +2 -2
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/surfaces/src/index.d.ts +1 -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/client/{BookingConsentAgreement-DoAILrkN.mjs → BookingConsentAgreement-DlVOmpW4.mjs} +2 -2
- package/dist/client/{DiscountCodeDisclosure-X528hUTf.mjs → DiscountCodeDisclosure-T9q623PQ.mjs} +1 -1
- package/dist/client/{EventCombined.client-DSBVwq5m.mjs → EventCombined.client-DnsUeONl.mjs} +6 -6
- package/dist/client/{EventListing.client-DmFAX7Vb.mjs → EventListing.client-CNBFqJS4.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-BAqXdfhq.mjs → LeafletStaticMap-C7higg52.mjs} +1 -1
- package/dist/client/{ThemedButton-BwNFVwi4.mjs → ThemedButton-LAJTNrS8.mjs} +1 -1
- package/dist/client/{accordion-DRhMdkbd.mjs → accordion-BcNF9TjX.mjs} +1 -1
- package/dist/client/{bookingForm-iJ_nCsNF.mjs → bookingForm-BUaQ3S03.mjs} +142 -50
- package/dist/client/bookings.mjs +191 -64
- package/dist/client/{carousel-D8zuffZr.mjs → carousel-CTdF6e0V.mjs} +1 -1
- package/dist/client/{cart-DeMGJViN.mjs → cart-pGtyf_XU.mjs} +3 -3
- package/dist/client/{checkout-DXc06Km2.mjs → checkout-Da9WSn7Y.mjs} +3 -3
- package/dist/client/client.mjs +1630 -816
- package/dist/client/{context-CDLCfDep.mjs → context-BFeY_Wbm.mjs} +1 -1
- package/dist/client/{dates-ClFx7Epy.mjs → dates-BhwVSxDg.mjs} +2 -2
- package/dist/client/{eventCalendar-BaGpnOGN.mjs → eventCalendar-BAtdnR4s.mjs} +9 -9
- package/dist/client/{eventCombined-ywONOx2m.mjs → eventCombined-RksA3tRC.mjs} +4 -4
- package/dist/client/{eventDetails-B2LlOTYY.mjs → eventDetails-BB9hB4wR.mjs} +4 -4
- package/dist/client/{eventListing-CMgxWpqP.mjs → eventListing-BpJBkviM.mjs} +4 -4
- package/dist/client/{eventRegistration-BarLDNHR.mjs → eventRegistration-B18jFq_o.mjs} +8 -8
- package/dist/client/{form-BjqKaBJ7.mjs → form-Dodt8Y8t.mjs} +3 -3
- package/dist/client/{headerSection-CP4XDwz1.mjs → headerSection-B0qj9ttg.mjs} +3 -3
- package/dist/client/hooks.mjs +550 -99
- package/dist/client/{locationMap-C5gW-d-w.mjs → locationMap-gn-iMk7a.mjs} +3 -3
- package/dist/client/{newsletterForm-afXlVSA0.mjs → newsletterForm-oByLdFkr.mjs} +26 -5
- package/dist/client/{pricing-Bl1CAl28.mjs → pricing-BOU0_Hai.mjs} +1 -1
- package/dist/client/{productDetail-CvQ3jWQe.mjs → productDetail-D9v1zH2j.mjs} +3 -3
- package/dist/client/{productList-U874PGO7.mjs → productList-D-mItx1n.mjs} +3 -3
- package/dist/client/{propsDecoder-DPXtCZWP.mjs → propsDecoder-C3TP_z4x.mjs} +72 -33
- package/dist/client/rendering/client.mjs +900 -266
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +1637 -788
- package/dist/client/{routeIslandApiConfig-NGYiUWXu.mjs → routeIslandApiConfig-DzN1W0sq.mjs} +1 -1
- package/dist/client/{scrollToBlock-0-C3DVhK.mjs → scrollToBlock-CWs8EIdo.mjs} +1 -1
- package/dist/client/{shop-BXjXhM9P.mjs → shop-Dufw7N7o.mjs} +7 -7
- package/dist/client/{shop-commerce-BZ6UlWJ7.mjs → shop-commerce-gklw_hLF.mjs} +6 -6
- package/dist/client/{shop-commerce-store-DlSBXb3D.mjs → shop-commerce-store-Sf1eyTaZ.mjs} +1 -1
- package/dist/client/{shopShared-kkEOiLPA.mjs → shopShared-B5nyA41S.mjs} +4 -4
- package/dist/client/{useEventFilters-zvnnE1ro.mjs → useEventFilters-CLL829vy.mjs} +6 -6
- package/dist/preview-next/before-render.mjs +147 -77
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/keepAlive.mjs +147 -77
- package/dist/preview-next/middleware.mjs +147 -77
- package/dist/{previewAuthStore-JA6-I_sL.mjs → previewAuthStore-BxAFlu-j.mjs} +147 -77
- package/dist/{sdk-runtime-DFJlQt3q.mjs → sdk-runtime-D0uZFev7.mjs} +2 -2
- package/dist/{separator-o8GHb1xh.mjs → separator-EvdCAn4V.mjs} +1 -1
- package/dist/server/components.mjs +1727 -991
- package/dist/server/config-validation.mjs +537 -97
- package/dist/server/config.mjs +537 -97
- package/dist/server/data.mjs +549 -98
- package/dist/server/index.mjs +159 -81
- package/dist/server/next.mjs +1460 -748
- package/dist/server/page-converter.mjs +384 -54
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +1712 -973
- package/dist/server/rendering.mjs +1748 -1001
- package/dist/server/routing.mjs +624 -131
- package/dist/server/server.mjs +554 -138
- package/dist/server/theme-bridge.mjs +1192 -27
- package/dist/server/theme.mjs +6 -4
- package/package.json +2 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BookingPaymentTermsConfig, EventBookingPolicyMode, PublicBookingPaymentTermsAvailability } from "./bookingConfig";
|
|
2
2
|
import type { BookingServicePricing } from "./bookingServicePricing";
|
|
3
|
-
import type { BookingConsent } from "../../core/src/index";
|
|
3
|
+
import type { BookingConsent, ServiceCategorySummary } from "../../core/src/index";
|
|
4
4
|
/**
|
|
5
5
|
* Where a service happens, as a visitor may see it before booking.
|
|
6
6
|
*
|
|
@@ -121,3 +121,37 @@ export type PublicBookingService = {
|
|
|
121
121
|
*/
|
|
122
122
|
practitioners?: readonly PublicBookingPractitioner[];
|
|
123
123
|
};
|
|
124
|
+
/**
|
|
125
|
+
* A category's public face: its heading and optional intro (issue 1403).
|
|
126
|
+
*
|
|
127
|
+
* The internal `identifier` (a key for site commands) and `sort_order` stay
|
|
128
|
+
* internal. Order is carried by position in the response's `categories` array.
|
|
129
|
+
*/
|
|
130
|
+
export type PublicServiceCategorySummary = ServiceCategorySummary;
|
|
131
|
+
/**
|
|
132
|
+
* One row of the services catalogue: the service as the list shows it, plus
|
|
133
|
+
* the category it belongs to (`null` is the trailing "Other" group).
|
|
134
|
+
*
|
|
135
|
+
* The single-service reads (by id, by slug) return `PublicBookingService`
|
|
136
|
+
* unchanged; only the list carries `categoryId`.
|
|
137
|
+
*/
|
|
138
|
+
export type PublicBookingServiceCatalogueItem = Omit<PublicBookingService, "description"> & {
|
|
139
|
+
description?: string;
|
|
140
|
+
categoryId: string | null;
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
* The services list response.
|
|
144
|
+
*
|
|
145
|
+
* `services` is in display order (category order, then each service's
|
|
146
|
+
* position in its group, with uncategorised services last). `categories` is
|
|
147
|
+
* every category the site has, in order, including ones with no services in
|
|
148
|
+
* this response, and it is always present, including on an `ids`-restricted
|
|
149
|
+
* read. Deciding which groups are empty is the layout's job
|
|
150
|
+
* (`layoutServicesByCategory` in `@riverbankcms/core`), not this payload's.
|
|
151
|
+
* An empty `categories` means the site has no categories and the list stays
|
|
152
|
+
* flat.
|
|
153
|
+
*/
|
|
154
|
+
export type PublicBookingServicesResponse = {
|
|
155
|
+
services: PublicBookingServiceCatalogueItem[];
|
|
156
|
+
categories: PublicServiceCategorySummary[];
|
|
157
|
+
};
|
|
@@ -22,6 +22,19 @@ export type PublicNewsletterAPIEndpoints = {
|
|
|
22
22
|
siteId: string;
|
|
23
23
|
token: string;
|
|
24
24
|
}, string>;
|
|
25
|
+
confirmNewsletterPost: APIEndpoint<never, {
|
|
26
|
+
siteId: string;
|
|
27
|
+
token: string;
|
|
28
|
+
}, string>;
|
|
29
|
+
getNewsletterPreferences: APIEndpoint<never, {
|
|
30
|
+
siteId: string;
|
|
31
|
+
token: string;
|
|
32
|
+
unsubscribe?: string;
|
|
33
|
+
}, string>;
|
|
34
|
+
saveNewsletterPreferences: APIEndpoint<FormData, {
|
|
35
|
+
siteId: string;
|
|
36
|
+
token: string;
|
|
37
|
+
}, string>;
|
|
25
38
|
getNewsletterArchive: APIEndpoint<never, {
|
|
26
39
|
siteId: string;
|
|
27
40
|
token: string;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export declare const PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS: {
|
|
2
|
+
subscribeNewsletter: {
|
|
3
|
+
path: "/public/sites/{siteId}/newsletter/subscribe";
|
|
4
|
+
method: "POST";
|
|
5
|
+
tags: "public-newsletter-{siteId}"[];
|
|
6
|
+
auth: "public";
|
|
7
|
+
responseKind: "json";
|
|
8
|
+
};
|
|
9
|
+
confirmNewsletter: {
|
|
10
|
+
path: "/public/sites/{siteId}/newsletter/confirm/{token}";
|
|
11
|
+
method: "GET";
|
|
12
|
+
tags: "public-newsletter-{siteId}"[];
|
|
13
|
+
auth: "public";
|
|
14
|
+
responseKind: "text";
|
|
15
|
+
};
|
|
16
|
+
unsubscribeNewsletter: {
|
|
17
|
+
path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}";
|
|
18
|
+
method: "GET";
|
|
19
|
+
tags: "public-newsletter-{siteId}"[];
|
|
20
|
+
auth: "public";
|
|
21
|
+
responseKind: "text";
|
|
22
|
+
};
|
|
23
|
+
unsubscribeNewsletterPost: {
|
|
24
|
+
path: "/public/sites/{siteId}/newsletter/unsubscribe/{token}";
|
|
25
|
+
method: "POST";
|
|
26
|
+
tags: "public-newsletter-{siteId}"[];
|
|
27
|
+
auth: "public";
|
|
28
|
+
responseKind: "text";
|
|
29
|
+
};
|
|
30
|
+
confirmNewsletterPost: {
|
|
31
|
+
path: "/public/sites/{siteId}/newsletter/confirm/{token}";
|
|
32
|
+
method: "POST";
|
|
33
|
+
tags: "public-newsletter-{siteId}"[];
|
|
34
|
+
auth: "public";
|
|
35
|
+
responseKind: "text";
|
|
36
|
+
};
|
|
37
|
+
getNewsletterPreferences: {
|
|
38
|
+
path: "/public/sites/{siteId}/newsletter/preferences/{token}";
|
|
39
|
+
method: "GET";
|
|
40
|
+
tags: "public-newsletter-{siteId}"[];
|
|
41
|
+
auth: "public";
|
|
42
|
+
responseKind: "text";
|
|
43
|
+
};
|
|
44
|
+
saveNewsletterPreferences: {
|
|
45
|
+
path: "/public/sites/{siteId}/newsletter/preferences/{token}";
|
|
46
|
+
method: "POST";
|
|
47
|
+
tags: "public-newsletter-{siteId}"[];
|
|
48
|
+
auth: "public";
|
|
49
|
+
responseKind: "text";
|
|
50
|
+
};
|
|
51
|
+
getNewsletterArchive: {
|
|
52
|
+
path: "/public/sites/{siteId}/newsletter/archive/{token}";
|
|
53
|
+
method: "GET";
|
|
54
|
+
tags: "public-newsletter-{siteId}"[];
|
|
55
|
+
auth: "public";
|
|
56
|
+
responseKind: "text";
|
|
57
|
+
};
|
|
58
|
+
};
|
|
@@ -8,8 +8,8 @@ export declare const adminListAxiomLogsQuerySchema: z.ZodObject<{
|
|
|
8
8
|
search: z.ZodOptional<z.ZodString>;
|
|
9
9
|
tail: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
10
10
|
mode: z.ZodOptional<z.ZodEnum<{
|
|
11
|
-
errors: "errors";
|
|
12
11
|
all: "all";
|
|
12
|
+
errors: "errors";
|
|
13
13
|
warnings: "warnings";
|
|
14
14
|
}>>;
|
|
15
15
|
}, z.core.$strip>;
|
|
@@ -40,8 +40,8 @@ export declare const adminListSupabaseLogsQuerySchema: z.ZodObject<{
|
|
|
40
40
|
search: z.ZodOptional<z.ZodString>;
|
|
41
41
|
tail: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
42
42
|
mode: z.ZodOptional<z.ZodEnum<{
|
|
43
|
-
errors: "errors";
|
|
44
43
|
all: "all";
|
|
44
|
+
errors: "errors";
|
|
45
45
|
warnings: "warnings";
|
|
46
46
|
}>>;
|
|
47
47
|
}, z.core.$strip>;
|
|
@@ -53,8 +53,8 @@ export declare const adminListVercelLogsQuerySchema: z.ZodObject<{
|
|
|
53
53
|
search: z.ZodOptional<z.ZodString>;
|
|
54
54
|
tail: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
55
55
|
mode: z.ZodOptional<z.ZodEnum<{
|
|
56
|
-
errors: "errors";
|
|
57
56
|
all: "all";
|
|
57
|
+
errors: "errors";
|
|
58
58
|
warnings: "warnings";
|
|
59
59
|
}>>;
|
|
60
60
|
}, z.core.$strip>;
|
|
@@ -8,7 +8,7 @@ import type { AdminListAxiomLogsQueryOutput, AdminListErrorLogsQueryOutput, Admi
|
|
|
8
8
|
import type { AcceptAdminInviteRequest, AcceptAdminInviteResponse, AcceptSiteInvitationRequest, AcceptSiteInvitationResponse, AddCustomDomainRequest, AddCustomDomainResponse, AdminDeleteUserResponse, AuthInviteContinueRequest, AuthInviteContinueResponse, AuthInviteRegisterRequest, AuthInviteRegisterResponse, AuthResetCompleteRequest, AuthResetCompleteResponse, AuthSubmissionResult, BulkOperationResult, CreateAdminInviteRequest, CreateAdminInviteResponse, CreateAdminUserRequest, CreateAdminUserResponse, CreateAllowedDomainRequest, CreateAllowedDomainResponse, DeleteAllowedDomainResponse, DomainConfigResult, DomainSearchResultResponse, CurrentUserPractitionerLinkResponse, InviteSiteMemberRequest, InviteSiteMemberResponse, LinkCurrentUserPractitionerRequest, ListAdminInvitesResponse, ListAllowedDomainsResponse, ListSiteMembersResponse, LookupSiteDomainRequest, LookupSiteDomainResponse, MfaBackupCodesOverviewResponse, MfaBackupCodesRotateResponse, MfaOverviewResponse, MfaPhoneChallengeRequest, MfaPhoneChallengeResponse, MfaPhoneEnrollRequest, MfaPhoneEnrollResponse, MfaPhoneVerifyRequest, MfaTotpActivateRequest, MfaTotpEnrollResponse, MfaTotpVerifyRequest, MfaTotpVerifyResponse, ReauthSubmissionResult, RegisterDomainRequestPayload, RegisterDomainResponse, RegistrarBooleanMutationRequest, RegistrarLifecycleResponse, RegistrarRenewalPostureResponse, RegisterSiteDomainRequest, RegisterSiteDomainResponse, RemoveSiteMemberResponse, RevokeAdminInviteResponse, RevokeSiteInvitationResponse, ResendSiteInvitationResponse, SetHomepageRequest, SetHomepageResponse, SiteDomainContactPayload, SiteDomainRecord, TransferSiteOwnershipRequest, TransferSiteOwnershipResponse, UpdateSiteMemberRoleRequest, UpdateSiteMemberRoleResponse } from './accessAdmin';
|
|
9
9
|
import type { AdminRoleMutationResponse, RevokeAdminRoleRequest, StartImpersonationRequest, StartImpersonationResponse, StopImpersonationRequest, StopImpersonationResponse, UpsertAdminRoleRequest } from './admin/types';
|
|
10
10
|
import type { AccountRevokeSessionsBody, AccountRevokeSessionsResponse, AccountUpdatePasswordBody, AccountUpdatePasswordResponse, CreateManualSiteRequest, CreateManualSiteResponse } from './siteOperations';
|
|
11
|
-
import type { BookingSessionCancelAppointmentRequest, BookingSessionCancelAppointmentResponse, BookingSessionCreateAppointmentRequest, BookingSessionCreateAppointmentResponse, BookingSessionGetAppointmentResponse, BookingSessionListEligibleAppointmentPackagesResponse, BookingSessionGetEventResponse, BookingSessionListAppointmentsResponse, BookingSessionListEventsResponse, BookingSessionListMembershipsResponse, BookingSessionListPassesResponse, BookingSessionMeResponse, BookingSessionUpdateMeRequest, BookingSessionUpdateMeResponse, PublicBookingAppointmentStatusResponse, PublicBookingAvailabilityQuery, PublicBookingAvailableDatesResponse, PublicBookingAvailableSlotsResponse, PublicBookingService, PublicWeeklySlotAvailabilityQuery, PublicWeeklySlotAvailabilityResponse, PublicCreateBookingAppointmentRequest, PublicCreateBookingAppointmentResponse, ReferenceOptionsResponse } from './bookingOperations';
|
|
11
|
+
import type { BookingSessionCancelAppointmentRequest, BookingSessionCancelAppointmentResponse, BookingSessionCreateAppointmentRequest, BookingSessionCreateAppointmentResponse, BookingSessionGetAppointmentResponse, BookingSessionListEligibleAppointmentPackagesResponse, BookingSessionGetEventResponse, BookingSessionListAppointmentsResponse, BookingSessionListEventsResponse, BookingSessionListMembershipsResponse, BookingSessionListPassesResponse, BookingSessionMeResponse, BookingSessionUpdateMeRequest, BookingSessionUpdateMeResponse, PublicBookingAppointmentStatusResponse, PublicBookingAvailabilityQuery, PublicBookingAvailableDatesResponse, PublicBookingAvailableSlotsResponse, PublicBookingService, PublicBookingServicesResponse, PublicWeeklySlotAvailabilityQuery, PublicWeeklySlotAvailabilityResponse, PublicCreateBookingAppointmentRequest, PublicCreateBookingAppointmentResponse, ReferenceOptionsResponse } from './bookingOperations';
|
|
12
12
|
import type { ContentEntryOrPageResponse, ContentEntrySummary, ExportFormSubmissionsCsvQuery, ExportFormSubmissionsCsvResponse, CreateFormSubmissionRectificationAnnotationRequest, CreateFormSubmissionRectificationAnnotationResponse, FormRecord, FormSubmissionWithRectificationAnnotations, FormSummary, NavigationItemRecord, NavigationMenuWithItems, PublicFormRecord, PublishedContentEntryOrPageResponse, RunSdkWorkflowResponse, ScheduledContentEntryOrPageResponse, WorkflowRunStatusResponse } from './contentRuntime';
|
|
13
13
|
import type { GetVersionHistoryResponse, ListVersionHistoryResponse, RestoreVersionHistoryRequest, RestoreVersionHistoryResponse, VersionHistoryListQuery } from './contentVersionHistory';
|
|
14
14
|
import type { ApplyContentTemplateAddonRequest, ContentTemplateDetailsResponse, CreateTemplateBlockRequest, GetTransformsResponse, ReorderTemplateBlocksRequest, SerializedContentTypeSummary, UpdateContentTemplateBlockBindingsRequest, UpdateContentTemplateBlockRequest } from './contentTypes';
|
|
@@ -987,11 +987,7 @@ export type SiteManagementAPIEndpoints = BillingAPIEndpoints & {
|
|
|
987
987
|
getPublicBookingServices: APIEndpoint<never, {
|
|
988
988
|
siteId: string;
|
|
989
989
|
ids?: string;
|
|
990
|
-
},
|
|
991
|
-
services: Array<Omit<PublicBookingService, 'description'> & {
|
|
992
|
-
description?: string;
|
|
993
|
-
}>;
|
|
994
|
-
}>;
|
|
990
|
+
}, PublicBookingServicesResponse>;
|
|
995
991
|
getPublicBookingService: APIEndpoint<never, {
|
|
996
992
|
siteId: string;
|
|
997
993
|
serviceId: string;
|
|
@@ -59,6 +59,7 @@ export type { AdminProfileRole, AdminRoleMutationResponse, RevokeAdminRoleReques
|
|
|
59
59
|
import type { AccountAPIEndpoints } from './accountEndpoints';
|
|
60
60
|
export type * from './accountEndpoints';
|
|
61
61
|
import type { AiAndLaunchReadinessAPIEndpointDefinitions, AiAPIEndpointName, AiAPIEndpoints, LaunchReadinessAPIEndpointName, LaunchReadinessAPIEndpoints } from './aiEndpoints';
|
|
62
|
+
import type { AppointmentServiceCategoryAPIEndpoints } from './appointmentServiceCategoryEndpoints';
|
|
62
63
|
import type { BookingManagementAPIEndpoints } from './bookingManagementEndpoints';
|
|
63
64
|
import type { CommercePortalAPIEndpoints } from './commercePortalEndpoints';
|
|
64
65
|
import type { MailchimpIntegrationAPIEndpoints } from './mailchimpIntegration';
|
|
@@ -70,7 +71,7 @@ import type { SitePlatformAPIEndpoints } from './sitePlatformEndpoints';
|
|
|
70
71
|
import type { SiteRuntimeAPIEndpoints } from './siteRuntimeEndpoints';
|
|
71
72
|
type TableName = keyof DbDatabase['public']['Tables'];
|
|
72
73
|
export type DTOType<K extends TableName> = Partial<CamelizeKeys<DbRow<K>>>;
|
|
73
|
-
type APIEndpointsMonolith = AiAndLaunchReadinessAPIEndpointDefinitions & AccountAPIEndpoints & SeoEndpointDefinitions & SiteManagementAPIEndpoints & PublicExperienceAPIEndpoints & SiteRuntimeAPIEndpoints & SitePlatformAPIEndpoints & BookingManagementAPIEndpoints & CommercePortalAPIEndpoints & MailchimpIntegrationAPIEndpoints & MailingListIntegrationAPIEndpoints;
|
|
74
|
+
type APIEndpointsMonolith = AiAndLaunchReadinessAPIEndpointDefinitions & AccountAPIEndpoints & SeoEndpointDefinitions & SiteManagementAPIEndpoints & PublicExperienceAPIEndpoints & SiteRuntimeAPIEndpoints & SitePlatformAPIEndpoints & BookingManagementAPIEndpoints & AppointmentServiceCategoryAPIEndpoints & CommercePortalAPIEndpoints & MailchimpIntegrationAPIEndpoints & MailingListIntegrationAPIEndpoints;
|
|
74
75
|
type ComposeEndpointMaps<Maps extends readonly object[], Acc extends object = {}> = Maps extends readonly [
|
|
75
76
|
infer Head extends object,
|
|
76
77
|
...infer Tail extends readonly object[]
|
|
@@ -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,7 +2,7 @@ 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
7
|
export * from './subroutes';
|
|
8
8
|
export * from './structure/schema';
|
|
@@ -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 {};
|
|
@@ -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>;
|
|
@@ -104,7 +104,7 @@ export declare const eventSelectionFields: {
|
|
|
104
104
|
contentTypeField?: string | undefined;
|
|
105
105
|
fixedContentType?: string | undefined;
|
|
106
106
|
valueFrom?: "id" | "identifier" | "slug" | undefined;
|
|
107
|
-
siteOptionSource?: "eventSeries" | "eventCategories" | "venues" | "staffMembers" | undefined;
|
|
107
|
+
siteOptionSource?: "eventSeries" | "eventCategories" | "venues" | "staffMembers" | "appointmentServiceCategories" | undefined;
|
|
108
108
|
searchThreshold?: number | undefined;
|
|
109
109
|
renderInHeader?: boolean | undefined;
|
|
110
110
|
intent?: "display" | "style" | "content" | "behavior" | undefined;
|
|
@@ -114,7 +114,7 @@ export declare const eventSelectionFields: {
|
|
|
114
114
|
kind: "static";
|
|
115
115
|
} | {
|
|
116
116
|
kind: "site";
|
|
117
|
-
optionSource: "eventSeries" | "eventCategories" | "venues" | "staffMembers";
|
|
117
|
+
optionSource: "eventSeries" | "eventCategories" | "venues" | "staffMembers" | "appointmentServiceCategories";
|
|
118
118
|
} | {
|
|
119
119
|
kind: "sdk";
|
|
120
120
|
} | undefined;
|
|
@@ -34,8 +34,8 @@ export declare const calendarWindowQuerySchema: z.ZodObject<{
|
|
|
34
34
|
timetable: "timetable";
|
|
35
35
|
}>>;
|
|
36
36
|
eventSurface: z.ZodOptional<z.ZodEnum<{
|
|
37
|
-
custom: "custom";
|
|
38
37
|
all: "all";
|
|
38
|
+
custom: "custom";
|
|
39
39
|
regularClassSchedule: "regularClassSchedule";
|
|
40
40
|
specialDatedEvents: "specialDatedEvents";
|
|
41
41
|
}>>;
|
|
@@ -125,7 +125,7 @@ export declare const locationMapManifest: import("..").DefinedBlockManifest<{
|
|
|
125
125
|
contentTypeField?: string | undefined;
|
|
126
126
|
fixedContentType?: string | undefined;
|
|
127
127
|
valueFrom?: "id" | "identifier" | "slug" | undefined;
|
|
128
|
-
siteOptionSource?: "eventSeries" | "eventCategories" | "venues" | "staffMembers" | undefined;
|
|
128
|
+
siteOptionSource?: "eventSeries" | "eventCategories" | "venues" | "staffMembers" | "appointmentServiceCategories" | undefined;
|
|
129
129
|
searchThreshold?: number | undefined;
|
|
130
130
|
renderInHeader?: boolean | undefined;
|
|
131
131
|
intent?: "display" | "style" | "content" | "behavior" | undefined;
|
|
@@ -135,7 +135,7 @@ export declare const locationMapManifest: import("..").DefinedBlockManifest<{
|
|
|
135
135
|
kind: "static";
|
|
136
136
|
} | {
|
|
137
137
|
kind: "site";
|
|
138
|
-
optionSource: "eventSeries" | "eventCategories" | "venues" | "staffMembers";
|
|
138
|
+
optionSource: "eventSeries" | "eventCategories" | "venues" | "staffMembers" | "appointmentServiceCategories";
|
|
139
139
|
} | {
|
|
140
140
|
kind: "sdk";
|
|
141
141
|
} | undefined;
|