@riverbankcms/sdk 0.138.0 → 0.139.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/README.md +11 -15
- package/dist/{PreviewEditorSidebar-BVPur_CU.mjs → PreviewEditorSidebar-BDeenhi3.mjs} +4 -4
- package/dist/{PreviewEditorUI-DLhWX8oh.mjs → PreviewEditorUI-DSRhgjF5.mjs} +3 -3
- package/dist/{PreviewQueryProvider-BguJY1SW.mjs → PreviewQueryProvider-D2K8GLUG.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-Tda6qw4z.mjs → SdkPreviewModeRuntime-CL7wSnYu.mjs} +47 -27
- package/dist/{SiteChromeCustomizeContext-BHFgMjde.mjs → SiteChromeCustomizeContext-BhDn-5ir.mjs} +7771 -5863
- package/dist/_dts/ai/src/contracts/proposals.d.ts +99 -330
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +9 -30
- package/dist/_dts/api/src/billing.d.ts +10 -3
- package/dist/_dts/api/src/contentRuntime.d.ts +8 -1
- package/dist/_dts/api/src/endpoints.d.ts +182 -103
- package/dist/_dts/api/src/footerSettings.d.ts +2 -5
- package/dist/_dts/api/src/index.d.ts +11 -9
- package/dist/_dts/api/src/mailchimpIntegration.d.ts +2 -59
- package/dist/_dts/api/src/mailingListIntegration.d.ts +117 -0
- package/dist/_dts/api/src/navigation/locations.d.ts +1 -0
- package/dist/_dts/api/src/navigation.d.ts +1 -26
- package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +109 -2
- package/dist/_dts/api/src/onboarding/surfaceData.d.ts +185 -0
- package/dist/_dts/api/src/privacyPolicy.d.ts +74 -2
- package/dist/_dts/api/src/publicBookingAvailabilityEndpointDefinitions.d.ts +6 -6
- package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +1 -1
- package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +2 -4
- package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +10 -24
- package/dist/_dts/api/src/publicReadEndpointDefinitions.d.ts +73 -0
- package/dist/_dts/api/src/schemas/site-api-keys.d.ts +1 -1
- package/dist/_dts/api/src/sdkContracts.d.ts +2 -10
- package/dist/_dts/api/src/sdkThemeWire.d.ts +2 -2
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +0 -29
- package/dist/_dts/api/src/siteOnboarding.d.ts +91 -228
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -9
- package/dist/_dts/api/src/siteSettings.d.ts +20 -1
- package/dist/_dts/api/src/types.d.ts +5 -4
- package/dist/_dts/billing/src/membership/index.d.ts +14 -7
- package/dist/_dts/billing/src/plans/display.d.ts +15 -0
- package/dist/_dts/billing/src/plans/registry.d.ts +2 -0
- package/dist/_dts/billing/src/plans/standing.d.ts +19 -0
- package/dist/_dts/billing/src/plans/types.d.ts +1 -7
- package/dist/_dts/billing/src/subscriptions/evidence.d.ts +12 -0
- package/dist/_dts/billing/src/subscriptions/standingEvidence.d.ts +31 -0
- package/dist/_dts/billing/src/subscriptions/store.d.ts +23 -5
- package/dist/_dts/blocks/src/PageRenderer.d.ts +6 -15
- package/dist/_dts/blocks/src/client.d.ts +1 -1
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +32 -16
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +4 -0
- package/dist/_dts/blocks/src/pageRenderingMode.d.ts +12 -6
- package/dist/_dts/blocks/src/system/blocks/appointment-services.d.ts +11 -0
- package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +39 -66
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +39 -114
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/catalogue.d.ts +18 -0
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/fields.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/index.d.ts +4 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +7 -13
- package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
- package/dist/_dts/blocks/src/system/data/index.d.ts +2 -2
- package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
- package/dist/_dts/blocks/src/system/data/publicLoaderCachePolicy.d.ts +2 -74
- package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +33 -100
- package/dist/_dts/blocks/src/system/runtime/api/types/newsletter.d.ts +5 -15
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +48 -24
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -12
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarToday.d.ts +22 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +51 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +28 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/bookability.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/duration.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/index.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/location.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/quickDates.d.ts +16 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/AgendaEventCard.d.ts +9 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayCell.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayHeaders.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DayEventsModal.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventQuickDates.d.ts +15 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +7 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekTimetableView.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/index.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/timetableModel.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/useHydrationReady.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.state.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +56 -33
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +13 -31
- package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview-catalogue.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview-content.d.ts +23 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +4 -2
- package/dist/_dts/blocks/src/system/transforms/registry/formatting.d.ts +5 -0
- package/dist/_dts/commerce/src/purchase/index.d.ts +1 -0
- package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +5 -12
- package/dist/_dts/commerce/src/purchase/stripeCommissionMetadata.d.ts +34 -0
- package/dist/_dts/content-editor/src/footerEngagementDraft.d.ts +6 -24
- package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +1 -2
- package/dist/_dts/core/src/footer-engagement.d.ts +2 -6
- package/dist/_dts/core/src/index.d.ts +9 -1
- package/dist/_dts/core/src/mailing-list-identifiers.d.ts +21 -0
- package/dist/_dts/core/src/mailing-list-runtime.d.ts +42 -0
- package/dist/_dts/core/src/mailing-list-setup-parser.d.ts +14 -0
- package/dist/_dts/core/src/mailing-list-setup.d.ts +129 -0
- package/dist/_dts/core/src/mailing-list-submission.d.ts +244 -0
- package/dist/_dts/core/src/mailing-list-targeting-parser.d.ts +12 -0
- package/dist/_dts/core/src/mailing-list-targeting.d.ts +93 -0
- package/dist/_dts/core/src/navigation-locations.d.ts +28 -0
- package/dist/_dts/core/src/public-profile.d.ts +9 -1
- package/dist/_dts/core/src/public-read-cache-contract.d.ts +45 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +529 -373
- package/dist/_dts/editor-blocks/src/widgets/index.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListTargetingField.d.ts +11 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/context.d.ts +13 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/index.d.ts +3 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/loaders.d.ts +6 -0
- package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +1 -0
- package/dist/_dts/sdk/src/client/publicAppointmentReadOperations.d.ts +12 -0
- package/dist/_dts/sdk/src/client/publicEventReadOperations.d.ts +2 -1
- package/dist/_dts/sdk/src/client/publicLoaderCacheAccess.d.ts +11 -4
- package/dist/_dts/sdk/src/config/content-types.d.ts +3 -13
- package/dist/_dts/sdk/src/config/content-validation.d.ts +5 -8
- package/dist/_dts/sdk/src/constants.d.ts +3 -3
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +12 -31
- package/dist/_dts/sdk/src/navigation/index.d.ts +11 -29
- package/dist/_dts/sdk/src/next/index.d.ts +4 -4
- package/dist/_dts/sdk/src/prebuild/types.d.ts +1 -5
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +33 -16
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +3 -0
- package/dist/_dts/sdk/src/rendering/client.d.ts +3 -20
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +3 -0
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +4 -0
- package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
- package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/hosted-booking-appearance.d.ts +41 -0
- package/dist/_dts/theme-core/src/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/runtime/buildThemeRuntime.d.ts +0 -1
- package/dist/_dts/theme-core/src/tokens/tokens.d.ts +7 -0
- package/dist/_dts/ui/src/badge.d.ts +1 -1
- package/dist/_dts/ui/src/callout.d.ts +1 -1
- package/dist/client/{BookingConsentAgreement-DQUik1Mx.mjs → BookingConsentAgreement-CZvTDtsK.mjs} +2 -2
- package/dist/client/{DiscountCodeDisclosure-CU67Q4vH.mjs → DiscountCodeDisclosure-D-DsLCMU.mjs} +1 -1
- package/dist/client/{EventCombined.client-a02TXUgg.mjs → EventCombined.client-dWqgd5ZO.mjs} +443 -199
- package/dist/client/{EventListing.client-99qx7jFl.mjs → EventListing.client-BMRa9IYp.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-CWzcq73L.mjs → LeafletStaticMap-D21W9kBZ.mjs} +1 -1
- package/dist/client/{accordion-D1nb3-Oj.mjs → accordion-FxF_ta47.mjs} +1 -1
- package/dist/client/{bookingForm-BGrmLhaO.mjs → bookingForm-YnwW4TGw.mjs} +5 -5
- package/dist/client/bookings.mjs +43 -2
- package/dist/client/{carousel-DSmOx3ad.mjs → carousel-vng7fFT5.mjs} +1 -1
- package/dist/client/{cart-COWeOIUk.mjs → cart-DEPDsjNk.mjs} +3 -3
- package/dist/client/{checkout-CeysaIJK.mjs → checkout-CZRWu9rW.mjs} +3 -3
- package/dist/client/client.mjs +3331 -1407
- package/dist/client/{context-DBzX85Xc.mjs → context-DvU_WUmd.mjs} +4 -3
- package/dist/client/{dates-DCYhZBlW.mjs → dates-wnPMiRl5.mjs} +21 -3
- package/dist/client/{eventCalendar-BgsN73Ul.mjs → eventCalendar-BA3Q5L15.mjs} +80 -78
- package/dist/client/{eventCombined-DcZQAMQP.mjs → eventCombined-51wgR-1R.mjs} +3 -3
- package/dist/client/{eventDetails-BWwGJ54l.mjs → eventDetails-modaetpm.mjs} +4 -4
- package/dist/client/{eventListing-DqYqV8vp.mjs → eventListing-D8t2J3Kv.mjs} +3 -3
- package/dist/client/{eventRegistration-DQGDgu_e.mjs → eventRegistration-CYqtkCE_.mjs} +49 -9
- package/dist/client/{form-ClfpasVT.mjs → form-CBKXN5In.mjs} +2 -2
- package/dist/client/{headerSection-BuOMe98N.mjs → headerSection-DylDqNrs.mjs} +2 -2
- package/dist/client/hooks.mjs +1259 -555
- package/dist/client/{locationMap-CEqu_sfa.mjs → locationMap-CvWrG0vZ.mjs} +2 -2
- package/dist/client/{newsletterForm-IbrHjMxy.mjs → newsletterForm-Btwk70zw.mjs} +117 -38
- package/dist/client/{pricing-xj7MPZlK.mjs → pricing-Uzw-GQ6Y.mjs} +1 -1
- package/dist/client/{productDetail-vxqTt5Xj.mjs → productDetail-JLcUYKnd.mjs} +3 -3
- package/dist/client/{productList-OTdZu8sb.mjs → productList-FM0cbUzj.mjs} +3 -3
- package/dist/client/{propsDecoder-CY9gGEF7.mjs → propsDecoder-DYzafZb2.mjs} +592 -152
- package/dist/client/rendering/client.mjs +2259 -835
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +3308 -1236
- package/dist/client/{scrollToBlock--BFV6kl-.mjs → scrollToBlock-CvXszexS.mjs} +1 -1
- package/dist/client/{shop-CP4YbDL9.mjs → shop-BIcjvy5a.mjs} +6 -6
- package/dist/client/{shop-commerce-APs4XBXE.mjs → shop-commerce-BZQsy7xw.mjs} +5 -5
- package/dist/client/{shop-commerce-store-CAVLxLFr.mjs → shop-commerce-store-D5V7XAb5.mjs} +1 -1
- package/dist/client/{shopShared-BnSRrwXI.mjs → shopShared-DowkXevB.mjs} +3 -3
- package/dist/client/{useEventFilters-1a1by4c8.mjs → useEventFilters-oMoTw_JE.mjs} +56 -9
- package/dist/preview-next/before-render.mjs +238 -111
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/keepAlive.mjs +238 -111
- package/dist/preview-next/middleware.mjs +238 -111
- package/dist/{previewAuthStore-BkEgnYPP.mjs → previewAuthStore-COUyAKaX.mjs} +238 -111
- package/dist/{sdk-runtime-DwGfsT0S.mjs → sdk-runtime-D4k2LSGF.mjs} +2 -2
- package/dist/{separator-BeqDLneQ.mjs → separator-UGtpag4Z.mjs} +1 -1
- package/dist/server/components.mjs +2697 -1023
- package/dist/server/config-validation.mjs +2424 -1720
- package/dist/server/config.mjs +2429 -1724
- package/dist/server/data.mjs +1164 -454
- package/dist/server/index.mjs +364 -280
- package/dist/server/navigation.mjs +16 -47
- package/dist/server/next.mjs +2915 -1380
- package/dist/server/page-converter.mjs +969 -522
- package/dist/server/prebuild.mjs +2 -3
- package/dist/server/rendering/server.mjs +2704 -1030
- package/dist/server/rendering.mjs +2742 -1063
- package/dist/server/routing.mjs +1386 -595
- package/dist/server/server.mjs +2878 -2324
- package/dist/server/theme-bridge.mjs +292 -24
- package/dist/styles/index.css +289 -25
- package/package.json +1 -1
- package/dist/_dts/api/src/navigation/identity.d.ts +0 -59
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup-destination.d.ts +0 -291
- package/dist/_dts/core/src/newsletter-signup-destination.d.ts +0 -38
|
@@ -4,6 +4,7 @@ export * from './entry-picker/index';
|
|
|
4
4
|
export * from './icon-picker/index';
|
|
5
5
|
export * from './inline-text/index';
|
|
6
6
|
export * from './link/index';
|
|
7
|
+
export * from './mailing-list-targeting/index';
|
|
7
8
|
export * from './offerings-preview/index';
|
|
8
9
|
export * from './reference/index';
|
|
9
10
|
export * from './rich-text/index';
|
package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListTargetingField.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { FieldWidgetProps, GroupFieldConfig } from '../../../../block-form/src/index';
|
|
2
|
+
import { type MailingListPlacementTargeting, type MailingListRuntimeContext } from '../../../../core/src/index';
|
|
3
|
+
export declare function MailingListTargetingField({ path, backend, config }: FieldWidgetProps<MailingListPlacementTargeting, GroupFieldConfig>): import("react").JSX.Element;
|
|
4
|
+
export declare function MailingListTargetingControl({ context, targeting, onChange, name }: Readonly<{
|
|
5
|
+
context: Extract<MailingListRuntimeContext, {
|
|
6
|
+
tag: 'configured';
|
|
7
|
+
}>;
|
|
8
|
+
targeting: MailingListPlacementTargeting;
|
|
9
|
+
onChange: (value: MailingListPlacementTargeting) => void;
|
|
10
|
+
name: string;
|
|
11
|
+
}>): import("react").JSX.Element;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { MailingListRuntimeContext, SiteId } from '../../../../core/src/index';
|
|
3
|
+
export type MailingListAuthoringContextLoader = (siteId: SiteId) => Promise<MailingListRuntimeContext>;
|
|
4
|
+
type Value = Readonly<{
|
|
5
|
+
siteId: SiteId;
|
|
6
|
+
load: MailingListAuthoringContextLoader;
|
|
7
|
+
manageHref?: string;
|
|
8
|
+
}>;
|
|
9
|
+
export declare function MailingListTargetingProvider({ children, load, manageHref, siteId, }: Value & Readonly<{
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
}>): import("react").JSX.Element;
|
|
12
|
+
export declare function useMailingListTargetingContext(): Value;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ApiClient } from '../../../../api/src/request';
|
|
2
|
+
import type { MailingListRuntimeContext, SiteId } from '../../../../core/src/index';
|
|
3
|
+
export declare function loadMailingListAuthoringContext(input: Readonly<{
|
|
4
|
+
apiClient: ApiClient;
|
|
5
|
+
siteId: SiteId;
|
|
6
|
+
}>): Promise<MailingListRuntimeContext>;
|
|
@@ -30,6 +30,7 @@ export declare const previewWidgetOverrides: {
|
|
|
30
30
|
readonly buttonVariant: FieldWidgetComponent;
|
|
31
31
|
readonly offeringGroupOrder: FieldWidgetComponent;
|
|
32
32
|
readonly siteOptionPicker: FieldWidgetComponent;
|
|
33
|
+
readonly mailingListTargeting: FieldWidgetComponent;
|
|
33
34
|
};
|
|
34
35
|
export type { FieldWidgetComponent };
|
|
35
36
|
export { __testUtils, createPreviewEntryPickerAdapter, createPreviewLinkAdapters, createPreviewReferenceAdapters, createPreviewSiteOptionAdapters, };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ApiClient, ApiResult } from '../../../api/src/public/index';
|
|
2
|
+
import type { PublicReadEndpoint } from '../../../blocks/src/system/data/index';
|
|
3
|
+
import type { RiverbankClient } from './types';
|
|
4
|
+
type PublicAppointmentReadDeps = Readonly<{
|
|
5
|
+
apiClient: ApiClient;
|
|
6
|
+
resilientFetchData: <T>(policyEndpoint: PublicReadEndpoint, cacheKey: string, fetcher: (signal: AbortSignal) => Promise<ApiResult<T>>, options: Readonly<{
|
|
7
|
+
signal?: AbortSignal;
|
|
8
|
+
}>) => Promise<T>;
|
|
9
|
+
}>;
|
|
10
|
+
export type PublicAppointmentReadOperations = Pick<RiverbankClient, 'getPublicBookingServices' | 'getPublicWeeklySlotAvailability'>;
|
|
11
|
+
export declare function createPublicAppointmentReadOperations(deps: PublicAppointmentReadDeps): PublicAppointmentReadOperations;
|
|
12
|
+
export {};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { ApiClient, ApiResult } from '../../../api/src/public/index';
|
|
2
|
+
import type { PublicReadEndpoint } from '../../../blocks/src/system/data/index';
|
|
2
3
|
import type { RiverbankClient } from './types';
|
|
3
4
|
type PublicEventReadDeps = Readonly<{
|
|
4
5
|
apiClient: ApiClient;
|
|
5
|
-
resilientFetchData: <T>(cacheKey: string, fetcher: (signal: AbortSignal) => Promise<ApiResult<T>>, options: Readonly<{
|
|
6
|
+
resilientFetchData: <T>(policyEndpoint: PublicReadEndpoint, cacheKey: string, fetcher: (signal: AbortSignal) => Promise<ApiResult<T>>, options: Readonly<{
|
|
6
7
|
signal?: AbortSignal;
|
|
7
8
|
force?: boolean;
|
|
8
9
|
}>) => Promise<T>;
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import { type SupportedLoaderEndpoint } from '../../../blocks/src/system/data/index';
|
|
2
1
|
export declare function shouldWrite(cacheEnabled: boolean, force: boolean | undefined): boolean;
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Applies the canonical block-loader freshness policy at the SDK fetch seam.
|
|
4
|
+
*
|
|
5
|
+
* Callers provide the endpoint identity, but do not opt into live behavior.
|
|
6
|
+
* This makes a newly-live endpoint bypass memory and fallback caches without a
|
|
7
|
+
* second method-level wiring change.
|
|
8
|
+
*/
|
|
9
|
+
export declare function applyPublicLoaderCachePolicy<TOptions extends Readonly<{
|
|
10
|
+
force?: boolean;
|
|
11
|
+
}>>(endpoint: string, options: TOptions): TOptions & Readonly<{
|
|
12
|
+
force?: boolean;
|
|
6
13
|
}>;
|
|
@@ -281,9 +281,7 @@ export type NavigationItemConfig = NavigationConfigItemInput;
|
|
|
281
281
|
* @example
|
|
282
282
|
* ```typescript
|
|
283
283
|
* {
|
|
284
|
-
*
|
|
285
|
-
* name: 'Main Navigation',
|
|
286
|
-
* isPrimary: true,
|
|
284
|
+
* location: 'main',
|
|
287
285
|
* items: [
|
|
288
286
|
* { label: 'Home', link: { kind: 'page', identifier: 'home' } },
|
|
289
287
|
* { label: 'About', link: { kind: 'page', identifier: 'about' } },
|
|
@@ -292,16 +290,8 @@ export type NavigationItemConfig = NavigationConfigItemInput;
|
|
|
292
290
|
* ```
|
|
293
291
|
*/
|
|
294
292
|
export interface NavigationMenuConfig {
|
|
295
|
-
/**
|
|
296
|
-
|
|
297
|
-
/** Menu display name */
|
|
298
|
-
name: string;
|
|
299
|
-
/** Is this the primary/main menu? */
|
|
300
|
-
isPrimary?: boolean;
|
|
301
|
-
/** Is this the footer menu? */
|
|
302
|
-
isFooter?: boolean;
|
|
303
|
-
/** Named footer destination. Prefer this for new configurations. */
|
|
304
|
-
footerRole?: 'main' | 'legal-policy' | null;
|
|
293
|
+
/** Fixed site destination. */
|
|
294
|
+
location: 'main' | 'footer' | 'legal';
|
|
305
295
|
/** Menu items */
|
|
306
296
|
items: NavigationItemConfig[];
|
|
307
297
|
}
|
|
@@ -93,14 +93,11 @@ export declare const entryConfigSchema: z.ZodObject<{
|
|
|
93
93
|
}, z.core.$strip>;
|
|
94
94
|
export declare const navigationItemConfigSchema: z.ZodType<NavigationConfigItemInput>;
|
|
95
95
|
export declare const navigationMenuConfigSchema: z.ZodObject<{
|
|
96
|
-
|
|
97
|
-
name: z.ZodString;
|
|
98
|
-
isPrimary: z.ZodOptional<z.ZodBoolean>;
|
|
99
|
-
isFooter: z.ZodOptional<z.ZodBoolean>;
|
|
100
|
-
footerRole: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
96
|
+
location: z.ZodEnum<{
|
|
101
97
|
main: "main";
|
|
102
|
-
|
|
103
|
-
|
|
98
|
+
legal: "legal";
|
|
99
|
+
footer: "footer";
|
|
100
|
+
}>;
|
|
104
101
|
items: z.ZodArray<z.ZodType<Readonly<{
|
|
105
102
|
label: string;
|
|
106
103
|
link: import("../../../api/src/index").NavigationAuthoringLinkInput;
|
|
@@ -112,7 +109,7 @@ export declare const navigationMenuConfigSchema: z.ZodObject<{
|
|
|
112
109
|
isCta?: boolean;
|
|
113
110
|
children?: readonly NavigationConfigItemInput[];
|
|
114
111
|
}>, unknown>>>;
|
|
115
|
-
}, z.core.$
|
|
112
|
+
}, z.core.$strict>;
|
|
116
113
|
export declare const siteSettingsConfigSchema: z.ZodObject<{
|
|
117
114
|
homepagePath: z.ZodOptional<z.ZodString>;
|
|
118
115
|
siteTitle: z.ZodOptional<z.ZodString>;
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
export declare const PREBUILD_PAGE_SIZE = 50;
|
|
11
11
|
/**
|
|
12
12
|
* Default ISR revalidation interval in seconds.
|
|
13
|
-
*
|
|
13
|
+
* Public pages can contain availability, whose freshness contract is 60 seconds.
|
|
14
14
|
*/
|
|
15
|
-
export declare const ISR_REVALIDATE_SECONDS =
|
|
15
|
+
export declare const ISR_REVALIDATE_SECONDS = 60;
|
|
16
16
|
/**
|
|
17
17
|
* Default cache TTL in seconds.
|
|
18
18
|
* Matches ISR_REVALIDATE_SECONDS for consistency.
|
|
19
19
|
*/
|
|
20
|
-
export declare const CACHE_TTL_SECONDS =
|
|
20
|
+
export declare const CACHE_TTL_SECONDS = 60;
|
|
21
21
|
/**
|
|
22
22
|
* Default maximum age for prebuild cache in seconds.
|
|
23
23
|
* 24 hours - older prebuilds are rejected.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type { TipTapNode, TipTapMark, RichTextDoc, InlineText, InlineTextAccentTone, InlineTextHighlightTone, InlineTextMark, InlineTextRun, Media, LinkValue, InternalRouteOnlyLinkValue, InternalResolvedLinkValue, InternalLinkValue, ExternalLinkValue, CustomLinkValue, PageLinkValue, EntryLinkValue, RichTextPrimitiveProps, RichTextVariant, } from './content';
|
|
2
|
-
export type { AppointmentBookingContent, BlogListingContent, BlogPostContent, BodyTextAlignment, BodyTextContent, ButtonVariant, CalendarTabViews, CartContent, CardRole, CardStylesContent, CheckoutContent, CollectionContent, ColumnsContent, ColumnOption, ContainerStylesContent, ContentFrameIntent, CtaFullContent, DisplayMode, EmbedContent, EventCalendarContent, EventDetailsContent, EventLayout, EventListingContent, EventRegistrationContent, EventSpotlightContent, FaqContent, FaqItem, FeatureCardLegacySurfaceRole, FeatureCardSurfaceRole, FilterAutoShow, FormBlockContent, GiftingContent, HeroContent, HeroCta, HeroCtaInput, HeroMedia, ImageColSize, ImageGalleryContent, IntroContent, LocationMapContent, LayoutAlign, LayoutWidth, MediaTextAlignment, MediaTextAspectRatio, MediaTextContent, MediaTextImagePosition, NewsletterSignupContent,
|
|
2
|
+
export type { AppointmentBookingContent, BlogListingContent, BlogPostContent, BodyTextAlignment, BodyTextContent, ButtonVariant, CalendarTabViews, CartContent, CardRole, CardStylesContent, CheckoutContent, CollectionContent, ColumnsContent, ColumnOption, ContainerStylesContent, ContentFrameIntent, CtaFullContent, DisplayMode, EmbedContent, EventCalendarContent, EventDetailsContent, EventLayout, EventListingContent, EventRegistrationContent, EventSpotlightContent, FaqContent, FaqItem, FeatureCardLegacySurfaceRole, FeatureCardSurfaceRole, FilterAutoShow, FormBlockContent, GiftingContent, HeroContent, HeroCta, HeroCtaInput, HeroMedia, ImageColSize, ImageGalleryContent, IntroContent, LocationMapContent, LayoutAlign, LayoutWidth, MediaTextAlignment, MediaTextAspectRatio, MediaTextContent, MediaTextImagePosition, NewsletterSignupContent, OfferingsPreviewContent, ProductDetailContent, ProductListContent, RecurringScheduleContent, SectionStylesContent, SemanticIconId, SemanticSpacing, ShopContent, SingleButtonContent, SiteFooterContent, SiteHeaderContent, StackContentAlignment, StackImagePosition, SystemBlockContentByFullKind, SystemBlockContentByKind, SystemBlockContentFor, SystemBlockShortKind, TeamMembersContent, TestimonialEntryContent, TestimonialsBlockContent, ThumbnailPadding, ThumbnailShape, VideoGridContent, WeekStart, BlockIconValue, FeatureCardIconTreatment, } from './system-block-content';
|
|
3
3
|
export type { PageOutline, PageRuntimeBoundary, BlockOutline, RouteMap, RouteMapEntry, OccurrenceContextData, EntrySubrouteContextData, } from './page';
|
|
4
4
|
export type { Theme, ThemeTokens } from './theme';
|
|
5
5
|
export type { CustomCssDeclarationsInput, CustomCssRuleInput, CustomCssNestedRuleInput, CustomCssAtRuleInput, KeyframesAtRuleInput, FontFaceAtRuleInput, MediaAtRuleInput, SupportsAtRuleInput, RawAtRuleInput, } from './custom-css';
|
|
@@ -9,6 +9,8 @@ import type { EventRegistrationContent } from './event-registration-content';
|
|
|
9
9
|
export type { EventRegistrationContent } from './event-registration-content';
|
|
10
10
|
import type { Brand, EventCategoryId, RichTextDoc, VenueId } from '../../../core/src/index';
|
|
11
11
|
import type { SiteFooterContent as BlocksSiteFooterContent } from '../../../blocks/src/system/blocks/site-footer';
|
|
12
|
+
import type { NewsletterSignupContent as BlocksNewsletterSignupContent } from '../../../blocks/src/system/blocks/newsletter-signup';
|
|
13
|
+
import type { ContactNewsletterContent as BlocksContactNewsletterContent } from '../../../blocks/src/system/blocks/contact-newsletter';
|
|
12
14
|
import type { EventDetailsContent as BlocksEventDetailsContent } from '../../../blocks/src/system/blocks/event-details';
|
|
13
15
|
import type { EventCalendarContent as BlocksEventCalendarContent } from '../../../blocks/src/system/blocks/events/event-calendar';
|
|
14
16
|
import type { CalendarTabViews as BlocksCalendarTabViews, CalendarView as BlocksCalendarView, ColumnOption as BlocksColumnOption, DisplayMode as BlocksDisplayMode, EventLayout as BlocksEventLayout, FilterAutoShow as BlocksFilterAutoShow, WeekStart as BlocksWeekStart } from '../../../blocks/src/system/blocks/events/shared/types';
|
|
@@ -230,6 +232,8 @@ export type OfferingsPreviewGroupOverride = {
|
|
|
230
232
|
};
|
|
231
233
|
export type OfferingsPreviewGroupOrder = readonly OfferingsPreviewSourceKey[];
|
|
232
234
|
export type OfferingsPreviewContent = {
|
|
235
|
+
/** Internal system composition; not exposed as an editor control. */
|
|
236
|
+
displayMode?: 'preview' | 'catalogue';
|
|
233
237
|
heading?: string | null;
|
|
234
238
|
description?: unknown;
|
|
235
239
|
itemLimit?: '1' | '2' | '3' | '4' | '5' | '6' | null;
|
|
@@ -380,20 +384,7 @@ export type MediaTextContent = {
|
|
|
380
384
|
/** Compiler-owned: the frame a Look asks for around the block's content. */
|
|
381
385
|
_frameStyles?: ContentFrameIntent | null;
|
|
382
386
|
};
|
|
383
|
-
export type
|
|
384
|
-
export type NewsletterSignupContent = {
|
|
385
|
-
title?: string | null;
|
|
386
|
-
subtitle?: RichTextDoc | null;
|
|
387
|
-
listId?: string | null;
|
|
388
|
-
preset: NewsletterSignupPreset;
|
|
389
|
-
includePhone?: boolean | null;
|
|
390
|
-
buttonLabel?: string | null;
|
|
391
|
-
buttonVariant?: ButtonVariant | null;
|
|
392
|
-
successMessage?: string | null;
|
|
393
|
-
privacyNote?: string | null;
|
|
394
|
-
tags?: string | null;
|
|
395
|
-
_sectionStyles?: SectionStylesContent;
|
|
396
|
-
};
|
|
387
|
+
export type NewsletterSignupContent = BlocksNewsletterSignupContent;
|
|
397
388
|
export type RecurringScheduleContent = {
|
|
398
389
|
eyebrow?: string | null;
|
|
399
390
|
heading?: string | null;
|
|
@@ -407,23 +398,7 @@ export type RecurringScheduleContent = {
|
|
|
407
398
|
emptyMessage?: string | null;
|
|
408
399
|
_sectionStyles?: SectionStylesContent;
|
|
409
400
|
};
|
|
410
|
-
export type ContactNewsletterContent =
|
|
411
|
-
newsletterTitle?: string | null;
|
|
412
|
-
newsletterSubtitle?: RichTextDoc | null;
|
|
413
|
-
listId?: string | null;
|
|
414
|
-
preset?: NewsletterSignupPreset;
|
|
415
|
-
includePhone?: boolean;
|
|
416
|
-
newsletterButtonLabel?: string | null;
|
|
417
|
-
newsletterSuccessMessage?: string | null;
|
|
418
|
-
newsletterPrivacyNote?: string | null;
|
|
419
|
-
newsletterTags?: string | null;
|
|
420
|
-
contactTitle?: string | null;
|
|
421
|
-
contactIntro?: RichTextDoc | null;
|
|
422
|
-
formSlug: string;
|
|
423
|
-
contactSubmitLabel?: string | null;
|
|
424
|
-
contactSuccessMessage?: string | null;
|
|
425
|
-
_sectionStyles?: SectionStylesContent;
|
|
426
|
-
};
|
|
401
|
+
export type ContactNewsletterContent = BlocksContactNewsletterContent;
|
|
427
402
|
export type ShopContent = {
|
|
428
403
|
showPasses?: boolean | null;
|
|
429
404
|
showMemberships?: boolean | null;
|
|
@@ -581,6 +556,11 @@ export type AppointmentBookingContent = {
|
|
|
581
556
|
description?: unknown;
|
|
582
557
|
_sectionStyles?: SectionStylesContent;
|
|
583
558
|
};
|
|
559
|
+
export type AppointmentServicesContent = {
|
|
560
|
+
heading?: string | null;
|
|
561
|
+
description?: unknown;
|
|
562
|
+
_sectionStyles?: SectionStylesContent;
|
|
563
|
+
};
|
|
584
564
|
export type WeeklySlotAvailabilityContent = {
|
|
585
565
|
serviceId: string;
|
|
586
566
|
resourceId?: string | null;
|
|
@@ -659,6 +639,7 @@ export type SystemBlockContentByFullKind = {
|
|
|
659
639
|
'block.form': FormBlockContent;
|
|
660
640
|
'block.contact-newsletter': ContactNewsletterContent;
|
|
661
641
|
'block.appointment-booking': AppointmentBookingContent;
|
|
642
|
+
'block.appointment-services': AppointmentServicesContent;
|
|
662
643
|
'block.weekly-slot-availability': WeeklySlotAvailabilityContent;
|
|
663
644
|
'block.event-registration': EventRegistrationContent;
|
|
664
645
|
'block.event-details': EventDetailsContent;
|
|
@@ -259,39 +259,36 @@ export type SimpleMenuViewModel = Menu;
|
|
|
259
259
|
/** @deprecated Use `Logo` instead */
|
|
260
260
|
export type SimpleLogo = Logo;
|
|
261
261
|
/**
|
|
262
|
-
* Get the
|
|
263
|
-
* Returns
|
|
262
|
+
* Get the fixed main navigation menu object.
|
|
263
|
+
* Returns null when the runtime payload is incomplete.
|
|
264
264
|
*
|
|
265
265
|
* @example
|
|
266
266
|
* ```ts
|
|
267
267
|
* const menu = getPrimaryNavigation(siteData.navigation);
|
|
268
|
-
* console.log(menu?.
|
|
268
|
+
* console.log(menu?.location); // "main"
|
|
269
269
|
* ```
|
|
270
270
|
*/
|
|
271
271
|
export declare function getPrimaryNavigation(navigation: NavigationMenuWithItems[] | null | undefined): NavigationMenuWithItems | null;
|
|
272
272
|
/**
|
|
273
|
-
* Get the footer navigation menu object.
|
|
274
|
-
* Returns menu marked as isFooter, or null if none marked.
|
|
273
|
+
* Get the fixed footer navigation menu object.
|
|
275
274
|
*
|
|
276
275
|
* @example
|
|
277
276
|
* ```ts
|
|
278
277
|
* const menu = getFooterNavigation(siteData.navigation);
|
|
279
|
-
* console.log(menu?.
|
|
278
|
+
* console.log(menu?.location); // "footer"
|
|
280
279
|
* ```
|
|
281
280
|
*/
|
|
282
281
|
export declare function getFooterNavigation(navigation: NavigationMenuWithItems[] | null | undefined): NavigationMenuWithItems | null;
|
|
283
282
|
export declare function getFooterNavigationByRole(navigation: NavigationMenuWithItems[] | null | undefined, role: 'main' | 'legal-policy'): NavigationMenuWithItems | null;
|
|
284
283
|
/**
|
|
285
|
-
*
|
|
286
|
-
*
|
|
287
|
-
*
|
|
288
|
-
*
|
|
289
|
-
* const footerMenu = getNavigationBySlug(siteData.navigation, 'footer');
|
|
290
|
-
* ```
|
|
284
|
+
* Select one of the three fixed navigation destinations.
|
|
285
|
+
* A canonical payload has exactly one menu for each location; returning null
|
|
286
|
+
* keeps malformed or incomplete payloads visible to the caller rather than
|
|
287
|
+
* borrowing a different location's links.
|
|
291
288
|
*/
|
|
292
|
-
export declare function
|
|
289
|
+
export declare function getNavigationByLocation(navigation: NavigationMenuWithItems[] | null | undefined, location: 'main' | 'footer' | 'legal'): NavigationMenuWithItems | null;
|
|
293
290
|
/**
|
|
294
|
-
* Get nav items from the
|
|
291
|
+
* Get nav items from the fixed main menu.
|
|
295
292
|
* Returns nested structure supporting both links and dropdowns.
|
|
296
293
|
* For canonical links (`kind: 'page' | 'entry'`), pass `routes` + identifier maps in options.
|
|
297
294
|
*
|
|
@@ -310,21 +307,6 @@ export declare function getNavigationBySlug(navigation: NavigationMenuWithItems[
|
|
|
310
307
|
* ```
|
|
311
308
|
*/
|
|
312
309
|
export declare function getPrimaryNavItems(navigation: NavigationMenuWithItems[], options?: NavigationRenderOptions): NavItem[];
|
|
313
|
-
/**
|
|
314
|
-
* Get nav items from a specific menu by slug.
|
|
315
|
-
* Returns nested structure supporting both links and dropdowns.
|
|
316
|
-
* For canonical links (`kind: 'page' | 'entry'`), pass `routes` + identifier maps in options.
|
|
317
|
-
*
|
|
318
|
-
* @example
|
|
319
|
-
* ```ts
|
|
320
|
-
* const footerNav = getNavItemsBySlug(siteData.navigation, 'footer', {
|
|
321
|
-
* routes: siteData.routes,
|
|
322
|
-
* pagesByIdentifier: siteData.pagesByIdentifier,
|
|
323
|
-
* entriesByIdentifier: siteData.entriesByIdentifier,
|
|
324
|
-
* });
|
|
325
|
-
* ```
|
|
326
|
-
*/
|
|
327
|
-
export declare function getNavItemsBySlug(navigation: NavigationMenuWithItems[], slug: string, options?: NavigationRenderOptions): NavItem[];
|
|
328
310
|
/**
|
|
329
311
|
* Transform a menu into NavItem array.
|
|
330
312
|
* Builds nested structure from flat items, supporting dropdowns with children.
|
|
@@ -49,14 +49,14 @@ export { createSitemap, type CreateSitemapOptions, type SitemapGenerator, } from
|
|
|
49
49
|
export { createRobots, type CreateRobotsOptions } from './robots';
|
|
50
50
|
/**
|
|
51
51
|
* ISR revalidation duration in seconds for production mode.
|
|
52
|
-
*
|
|
52
|
+
* Public pages can contain availability, whose freshness contract is 60 seconds.
|
|
53
53
|
*/
|
|
54
|
-
export declare const ISR_REVALIDATE_SECONDS =
|
|
54
|
+
export declare const ISR_REVALIDATE_SECONDS = 60;
|
|
55
55
|
export interface ISRConfig {
|
|
56
56
|
/**
|
|
57
57
|
* Revalidation interval in seconds.
|
|
58
58
|
* - 0: Dynamic rendering (no caching) - used in preview mode
|
|
59
|
-
* -
|
|
59
|
+
* - 60: one minute ISR - used in production mode
|
|
60
60
|
*/
|
|
61
61
|
revalidate: number | false;
|
|
62
62
|
/**
|
|
@@ -70,7 +70,7 @@ export interface ISRConfig {
|
|
|
70
70
|
*
|
|
71
71
|
* Do not use the returned value directly in a Next.js route-segment config
|
|
72
72
|
* export. Next statically analyzes those exports and requires a literal such as
|
|
73
|
-
* `export const revalidate =
|
|
73
|
+
* `export const revalidate = 60`.
|
|
74
74
|
*
|
|
75
75
|
* @deprecated Next.js route-segment config must be statically analyzable, which
|
|
76
76
|
* was this helper's intended use. Export a literal `revalidate` value and use
|
|
@@ -138,12 +138,8 @@ export interface EntriesCacheFile {
|
|
|
138
138
|
export interface NavigationCacheFile {
|
|
139
139
|
/** Navigation menu data */
|
|
140
140
|
menus: Array<{
|
|
141
|
-
/** Menu identifier (used as lookup key) */
|
|
142
|
-
identifier: string | null;
|
|
143
|
-
/** Menu ID (fallback if no identifier) */
|
|
144
141
|
id: string;
|
|
145
|
-
|
|
146
|
-
name: string;
|
|
142
|
+
location: 'main' | 'footer' | 'legal';
|
|
147
143
|
/** Navigation items in this menu */
|
|
148
144
|
items: NavigationItemRecord[];
|
|
149
145
|
}>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { AddressedLocationValue,
|
|
1
|
+
import type { AddressedLocationValue, BusinessAddress } from '../../../core/src/index';
|
|
2
2
|
import type { ResolvedInternalLinkEntityType } from '../../../blocks/src/index';
|
|
3
|
-
import type { APIEndpoints, RoutableContentItem as ApiRoutableContentItem, SdkRuntimePageSurfaceSubject as ApiSdkRuntimePageSurfaceSubject, SiteBySlugResponse as ApiSiteBySlugResponse, SiteBookingOfferingPresetSummary as ApiSiteBookingOfferingPresetSummary, SdkBlockContentAdmission } from '../../../api/src/index';
|
|
3
|
+
import type { APIEndpoints, PublicBookingService as ApiPublicBookingService, RoutableContentItem as ApiRoutableContentItem, SdkRuntimePageSurfaceSubject as ApiSdkRuntimePageSurfaceSubject, SiteBySlugResponse as ApiSiteBySlugResponse, SiteBookingOfferingPresetSummary as ApiSiteBookingOfferingPresetSummary, SdkBlockContentAdmission } from '../../../api/src/index';
|
|
4
4
|
import type { MediaAssetIndexItem, SiteFooterContent, SiteHeaderContent } from '../contracts';
|
|
5
5
|
import type { CompiledBoundaryRuntime } from '../../../theme-core/src/site-styles/index';
|
|
6
6
|
import type { BlockFieldConfig as SdkBlockFieldConfig, BlockFieldOptionsMap as SdkBlockFieldOptionsMap, ContentConfig as SdkContentConfig, ContainerOptionsConfig as SdkContainerOptionsConfig, FieldSelectOption as SdkFieldSelectOption, SdkCustomBlock, SdkThemeConfig, SdkThemePalette, SectionBackground as SdkSectionBackground, SectionOptionsConfig as SdkSectionOptionsConfig, SiteStyleConfig as SdkSiteStyleConfig } from '../config/types';
|
|
@@ -169,11 +169,7 @@ export interface NavigationItemRecord {
|
|
|
169
169
|
}
|
|
170
170
|
export interface NavigationMenuRecord {
|
|
171
171
|
id: string;
|
|
172
|
-
|
|
173
|
-
name: string;
|
|
174
|
-
isPrimary: boolean;
|
|
175
|
-
isFooter: boolean;
|
|
176
|
-
footerRole: 'main' | 'legal-policy' | null;
|
|
172
|
+
location: 'main' | 'footer' | 'legal';
|
|
177
173
|
createdAt?: string | null;
|
|
178
174
|
updatedAt?: string | null;
|
|
179
175
|
}
|
|
@@ -226,10 +222,33 @@ export type SitePrivacyPolicyDocument = {
|
|
|
226
222
|
sections: SitePrivacyPolicySection[];
|
|
227
223
|
};
|
|
228
224
|
export type SiteLegalJurisdiction = 'UK' | 'US' | 'EU' | 'CA' | 'AU' | 'OTHER';
|
|
225
|
+
/** Mirrors `SiteLegalIdentitySource` in `@riverbankcms/api`. */
|
|
226
|
+
export type SiteLegalIdentitySource = 'public' | 'custom';
|
|
229
227
|
export type SiteLegalProfilePayload = {
|
|
230
228
|
legalEntityName: string | null;
|
|
231
229
|
privacyContactEmail: string | null;
|
|
232
230
|
jurisdiction: SiteLegalJurisdiction;
|
|
231
|
+
legalEntityNameSource: SiteLegalIdentitySource;
|
|
232
|
+
privacyContactEmailSource: SiteLegalIdentitySource;
|
|
233
|
+
privacyPolicyPublished: boolean;
|
|
234
|
+
};
|
|
235
|
+
/** Mirrors `SiteRuntimeBusinessDetails` in `@riverbankcms/api`. */
|
|
236
|
+
export type SiteRuntimeBusinessDetails = {
|
|
237
|
+
tagline: string | null;
|
|
238
|
+
contact: {
|
|
239
|
+
kind: 'phone';
|
|
240
|
+
phone: string;
|
|
241
|
+
email: null;
|
|
242
|
+
} | {
|
|
243
|
+
kind: 'email';
|
|
244
|
+
phone: null;
|
|
245
|
+
email: string;
|
|
246
|
+
} | {
|
|
247
|
+
kind: 'phone-and-email';
|
|
248
|
+
phone: string;
|
|
249
|
+
email: string;
|
|
250
|
+
} | null;
|
|
251
|
+
addressVisibility: 'shown' | 'hidden';
|
|
233
252
|
};
|
|
234
253
|
export type SiteRuntimePrivacyPolicy = {
|
|
235
254
|
path: string;
|
|
@@ -295,9 +314,11 @@ export type SiteResponse = SiteSelectionResponse & {
|
|
|
295
314
|
portalEnabled?: boolean;
|
|
296
315
|
commerceEnabled?: boolean;
|
|
297
316
|
bookingOfferingPresets?: readonly SiteBookingOfferingPresetSummary[];
|
|
317
|
+
mailingList?: import('../../../core/src/index').MailingListRuntimeContext;
|
|
298
318
|
bookingTimeZone?: string;
|
|
299
319
|
analytics?: SiteAnalyticsSettingsPayload;
|
|
300
320
|
privacyPolicy?: SiteRuntimePrivacyPolicy;
|
|
321
|
+
businessDetails?: SiteRuntimeBusinessDetails;
|
|
301
322
|
routes: Record<string, SiteRouteRecord>;
|
|
302
323
|
layout: SiteLayoutResolvedPayload;
|
|
303
324
|
customDomain: string | null;
|
|
@@ -534,16 +555,12 @@ export type PublicFormResponse = {
|
|
|
534
555
|
export type PublicFormsResponse = {
|
|
535
556
|
forms: FormRecord[];
|
|
536
557
|
};
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
siteId: string;
|
|
540
|
-
title: string;
|
|
541
|
-
description: string | null;
|
|
542
|
-
durationMinutes: number;
|
|
543
|
-
consent?: BookingConsent;
|
|
544
|
-
};
|
|
558
|
+
/** Visitor-facing appointment service, shared with the API redaction boundary. */
|
|
559
|
+
export type PublicBookingService = ApiPublicBookingService;
|
|
545
560
|
export type PublicBookingServicesResponse = {
|
|
546
|
-
services: PublicBookingService
|
|
561
|
+
services: Array<Omit<PublicBookingService, 'description'> & {
|
|
562
|
+
description?: string;
|
|
563
|
+
}>;
|
|
547
564
|
};
|
|
548
565
|
export type PublicWeeklySlotAvailabilityOption = {
|
|
549
566
|
id: string;
|
|
@@ -20,8 +20,11 @@ export declare const MissingBlockOverrideError: MissingBlockOverrideErrorConstru
|
|
|
20
20
|
export type PageRendererDataContext = {
|
|
21
21
|
siteId?: string;
|
|
22
22
|
pageId?: string;
|
|
23
|
+
/** Canonical request pathname used by blocks when resolving same-site destinations. */
|
|
24
|
+
pathname?: string;
|
|
23
25
|
resolvedData?: Record<string, Record<string, unknown>>;
|
|
24
26
|
bookingOfferingPresets?: readonly SiteBookingOfferingPresetSummary[];
|
|
27
|
+
mailingList?: import('../../../core/src/index').MailingListRuntimeContext;
|
|
25
28
|
bookingTimeZone?: string;
|
|
26
29
|
previewStage?: 'published' | 'preview';
|
|
27
30
|
routes?: RouteMap;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ReactElement, type ReactNode } from 'react';
|
|
2
|
+
import { type BlockApiClient } from '../../../blocks/src/client';
|
|
2
3
|
export type BlockApiAuth = Readonly<{
|
|
3
4
|
type: 'api-key';
|
|
4
5
|
key: string;
|
|
@@ -14,26 +15,8 @@ export type BlockApiConfig = Readonly<{
|
|
|
14
15
|
siteId?: string;
|
|
15
16
|
isPreview?: boolean;
|
|
16
17
|
}>;
|
|
17
|
-
export type NewsletterSubscribeInput =
|
|
18
|
-
|
|
19
|
-
firstName?: string;
|
|
20
|
-
lastName?: string;
|
|
21
|
-
name?: string;
|
|
22
|
-
company?: string;
|
|
23
|
-
phone?: string;
|
|
24
|
-
target: Readonly<{
|
|
25
|
-
tag: 'published_block_ref';
|
|
26
|
-
destinationRef: Readonly<{
|
|
27
|
-
tag: 'block_ref';
|
|
28
|
-
blockId: string;
|
|
29
|
-
}>;
|
|
30
|
-
}>;
|
|
31
|
-
tags?: string[];
|
|
32
|
-
}>;
|
|
33
|
-
export type NewsletterSubscribeResult = Readonly<{
|
|
34
|
-
subscribed: boolean;
|
|
35
|
-
requiresConfirmation?: boolean;
|
|
36
|
-
}>;
|
|
18
|
+
export type NewsletterSubscribeInput = Parameters<BlockApiClient['subscribeNewsletter']>[0];
|
|
19
|
+
export type NewsletterSubscribeResult = Awaited<ReturnType<BlockApiClient['subscribeNewsletter']>>;
|
|
37
20
|
export declare function BlockApiProvider({ config, children, }: Readonly<{
|
|
38
21
|
config: BlockApiConfig;
|
|
39
22
|
children: ReactNode;
|
|
@@ -14,6 +14,7 @@ type PageCommonProps = {
|
|
|
14
14
|
siteId: string;
|
|
15
15
|
resolvedData?: ResolvedBlockData;
|
|
16
16
|
bookingOfferingPresets?: readonly SiteBookingOfferingPresetSummary[];
|
|
17
|
+
mailingList?: import('../../../../core/src/index').MailingListRuntimeContext;
|
|
17
18
|
bookingTimeZone?: string;
|
|
18
19
|
routeMap?: RouteMap;
|
|
19
20
|
/** Page identifier to routeId lookup for { kind: 'page' } CTA links */
|
|
@@ -73,6 +74,8 @@ type PageCommonProps = {
|
|
|
73
74
|
editableRouteMetadataFieldIds?: ReadonlyArray<string> | null;
|
|
74
75
|
/** Preview stage: 'preview' for draft content, 'published' for live content */
|
|
75
76
|
previewStage?: 'preview' | 'published';
|
|
77
|
+
/** Canonical request pathname used by blocks when resolving same-site destinations. */
|
|
78
|
+
pathname?: string;
|
|
76
79
|
};
|
|
77
80
|
wrapBlock?: (blockId: string, rendered: React.ReactNode) => React.ReactNode;
|
|
78
81
|
registry?: ComponentRegistry;
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import type { MediaAssetIndexItem, RouteMap, Theme } from '../../contracts';
|
|
8
8
|
import type { RiverbankClient, PageResponse, SiteResponse } from '../../client/types';
|
|
9
9
|
import type { SdkRuntimePageSurfaceSubject } from '../../public-api/contracts';
|
|
10
|
+
import type { MailingListRuntimeContext } from '../../../../core/src/index';
|
|
10
11
|
import type { PageProps } from '../components/Page';
|
|
11
12
|
import type { ResolvedBlockData } from '../../data/prefetchBlockData';
|
|
12
13
|
import { type ResolveBlockDataDeps } from '../../data/resolveBlockData';
|
|
@@ -111,6 +112,7 @@ export type PageContentResult = {
|
|
|
111
112
|
resolvedData: ResolvedBlockData;
|
|
112
113
|
/** Selected booking offering presets exposed to SSR blocks. */
|
|
113
114
|
bookingOfferingPresets?: PageProps['bookingOfferingPresets'];
|
|
115
|
+
mailingList?: MailingListRuntimeContext;
|
|
114
116
|
bookingTimeZone?: string;
|
|
115
117
|
/** Site data for metadata generation */
|
|
116
118
|
site: SiteData;
|
|
@@ -147,6 +149,7 @@ export type EntryContentResult = {
|
|
|
147
149
|
resolvedData: ResolvedBlockData;
|
|
148
150
|
/** Selected booking offering presets exposed to SSR blocks. */
|
|
149
151
|
bookingOfferingPresets?: PageProps['bookingOfferingPresets'];
|
|
152
|
+
mailingList?: MailingListRuntimeContext;
|
|
150
153
|
bookingTimeZone?: string;
|
|
151
154
|
/** Data context for template blocks (includes entry content for bindings) */
|
|
152
155
|
dataContext: {
|
|
@@ -211,6 +214,7 @@ export type PageSurfaceContentResult = {
|
|
|
211
214
|
templatePage: PageProps['page'] | null;
|
|
212
215
|
resolvedData: ResolvedBlockData;
|
|
213
216
|
bookingOfferingPresets?: PageProps['bookingOfferingPresets'];
|
|
217
|
+
mailingList?: MailingListRuntimeContext;
|
|
214
218
|
bookingTimeZone?: string;
|
|
215
219
|
dataContext: {
|
|
216
220
|
pageSurface: Record<string, unknown>;
|
|
@@ -10,6 +10,7 @@ export type SiteRenderSupport = Readonly<{
|
|
|
10
10
|
site: SiteData;
|
|
11
11
|
sdkConfig: RuntimeSdkConfig | null;
|
|
12
12
|
bookingOfferingPresets: readonly SiteBookingOfferingPresetSummary[];
|
|
13
|
+
mailingList?: import('../../../../core/src/index').MailingListRuntimeContext;
|
|
13
14
|
bookingTimeZone: string;
|
|
14
15
|
customBlocks?: SdkCustomBlock[];
|
|
15
16
|
supabaseUrl?: string;
|
|
@@ -21,7 +21,7 @@ export { loadContent, isPageContent, isEntryContent, isPageSurfaceContent, } fro
|
|
|
21
21
|
export type { LoadContentParams, LoadContentResult, ContentEntryData, PagePreviewMetadata, SiteData, } from './helpers/loadContent';
|
|
22
22
|
export { buildFooterRenderablePageOutline } from './helpers/footerPageOutline';
|
|
23
23
|
export type { BlockLoaderMap, DataLoaderContext, DataLoaderFn, DataLoaderOverrides, DataLoaderPreviewStage, DataLoaderRenderTarget, DataLoaderSearchParams, DataLoaderValue, } from '../data/types';
|
|
24
|
-
export type { AppointmentBookingContent, BlogListingContent, BlogPostContent, BodyTextAlignment, BodyTextContent, ButtonVariant, CalendarTabViews, CardStylesContent, CollectionContent, ColumnsContent, ColumnOption, ContainerStylesContent, ContentFrameIntent, CtaFullContent, DisplayMode, EmbedContent, EventCalendarContent, EventDetailsContent, EventLayout, EventListingContent, EventRegistrationContent, EventSpotlightContent, FaqContent, FaqItem, CardRole, FeatureCardLegacySurfaceRole, FeatureCardSurfaceRole, FilterAutoShow, FormBlockContent, GiftingContent, HeroContent, HeroCta, HeroCtaInput, HeroMedia, ImageColSize, ImageGalleryContent, IntroContent, LayoutAlign, LayoutWidth, Media, MediaTextAlignment, MediaTextAspectRatio, MediaTextContent, MediaTextImagePosition, NewsletterSignupContent,
|
|
24
|
+
export type { AppointmentBookingContent, BlogListingContent, BlogPostContent, BodyTextAlignment, BodyTextContent, ButtonVariant, CalendarTabViews, CardStylesContent, CollectionContent, ColumnsContent, ColumnOption, ContainerStylesContent, ContentFrameIntent, CtaFullContent, DisplayMode, EmbedContent, EventCalendarContent, EventDetailsContent, EventLayout, EventListingContent, EventRegistrationContent, EventSpotlightContent, FaqContent, FaqItem, CardRole, FeatureCardLegacySurfaceRole, FeatureCardSurfaceRole, FilterAutoShow, FormBlockContent, GiftingContent, HeroContent, HeroCta, HeroCtaInput, HeroMedia, ImageColSize, ImageGalleryContent, IntroContent, LayoutAlign, LayoutWidth, Media, MediaTextAlignment, MediaTextAspectRatio, MediaTextContent, MediaTextImagePosition, NewsletterSignupContent, OfferingsPreviewContent, RichTextDoc, TipTapNode, TipTapMark, LinkValue, InternalLinkValue, ExternalLinkValue, CustomLinkValue, PageLinkValue, EntryLinkValue, RichTextPrimitiveProps, RichTextVariant, PageOutline, BlockOutline, RouteMap, RouteMapEntry, OccurrenceContextData, EntrySubrouteContextData, Theme, ThemeTokens, SectionStylesContent, SemanticSpacing, ShopContent, SingleButtonContent, SiteFooterContent, SiteHeaderContent, StackContentAlignment, StackImagePosition, SystemBlockContentByFullKind, SystemBlockContentByKind, SystemBlockContentFor, SystemBlockShortKind, TeamMembersContent, TestimonialEntryContent, TestimonialsBlockContent, ThumbnailPadding, ThumbnailShape, VideoGridContent, WeekStart, MediaAssetIndexItem, ImageOptions, ResolveImageUrlContext, ResolveImageUrlContextInput, ResolveImageSourceSetOptions, ResolvedImageSourceSet, } from '../contracts';
|
|
25
25
|
export { ImagePresets } from '../contracts';
|
|
26
26
|
export { RichText } from './primitives/RichText';
|
|
27
27
|
export { resolveImageUrl, resolveImageUrlWithContext, resolveImageSourceSetWithContext, } from './image';
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* `@riverbankcms/blocks` (which is not a public dependency). This list is a
|
|
8
8
|
* stable public contract; keep it in sync with the internal blocks runtime.
|
|
9
9
|
*/
|
|
10
|
-
export declare const SYSTEM_BLOCK_KINDS: readonly ["block.hero", "block.intro", "block.columns", "block.collection", "block.feature-cards", "block.media-text", "block.cta-full", "block.single-button", "block.body-text", "block.location-map", "block.faq", "block.testimonials", "block.team-members", "block.embed", "block.blog-post", "block.blog-listing", "block.site-header", "block.site-footer", "block.form", "block.contact-newsletter", "block.appointment-booking", "block.weekly-slot-availability", "block.event-registration", "block.event-details", "block.event-spotlight", "block.event-listing", "block.event-calendar", "block.recurring-schedule", "block.offerings-preview", "block.shop", "block.product-list", "block.product-detail", "block.cart", "block.checkout", "block.gifting", "block.newsletter-signup", "block.image-gallery", "block.video-grid", "block.audio-player", "block.file-download"];
|
|
10
|
+
export declare const SYSTEM_BLOCK_KINDS: readonly ["block.hero", "block.intro", "block.columns", "block.collection", "block.feature-cards", "block.media-text", "block.cta-full", "block.single-button", "block.body-text", "block.location-map", "block.faq", "block.testimonials", "block.team-members", "block.embed", "block.blog-post", "block.blog-listing", "block.site-header", "block.site-footer", "block.form", "block.contact-newsletter", "block.appointment-booking", "block.appointment-services", "block.weekly-slot-availability", "block.event-registration", "block.event-details", "block.event-spotlight", "block.event-listing", "block.event-calendar", "block.recurring-schedule", "block.offerings-preview", "block.shop", "block.product-list", "block.product-detail", "block.cart", "block.checkout", "block.gifting", "block.newsletter-signup", "block.image-gallery", "block.video-grid", "block.audio-player", "block.file-download"];
|
|
11
11
|
export type SystemBlockKind = (typeof SYSTEM_BLOCK_KINDS)[number];
|
|
12
12
|
export type CustomBlockKind = `custom.${string}`;
|
|
13
13
|
export type BlockKind = SystemBlockKind | CustomBlockKind;
|