@riverbankcms/sdk 0.126.0 → 0.128.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-DcYJxTgc.mjs → PreviewEditorSidebar-Dbvb7GIr.mjs} +64 -68
- package/dist/{PreviewEditorUI-Ctt1yTJr.mjs → PreviewEditorUI-e9O9l20X.mjs} +3 -3
- package/dist/{PreviewQueryProvider-DgFDIwvK.mjs → PreviewQueryProvider-B1kbhaJD.mjs} +1 -1
- package/dist/SdkPreviewModeRuntime-BZHt6e9w.mjs +11006 -0
- package/dist/{SiteChromeCustomizeContext-C87qlKWw.mjs → SiteChromeCustomizeContext-CvuGbHJX.mjs} +51247 -20733
- package/dist/_dts/ai/src/contracts/proposals.d.ts +486 -36
- package/dist/_dts/api/src/bookingClosures.d.ts +19 -3
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -3
- package/dist/_dts/api/src/bookingRecords.d.ts +0 -13
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +2 -2
- package/dist/_dts/api/src/communications.d.ts +2 -1
- package/dist/_dts/api/src/contactFormSummary.d.ts +15 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +3 -10
- package/dist/_dts/api/src/endpoints.d.ts +1 -1
- package/dist/_dts/api/src/footerSettings.d.ts +11 -0
- package/dist/_dts/api/src/index.d.ts +2 -1
- package/dist/_dts/api/src/occurrenceScheduling.d.ts +48 -0
- package/dist/_dts/api/src/participantMessaging.d.ts +5 -3
- package/dist/_dts/api/src/publicExperience/siteEndpoints.d.ts +7 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +7 -5
- package/dist/_dts/api/src/siteOperations.d.ts +12 -3
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +3 -2
- package/dist/_dts/block-form/src/backend/store-backend.d.ts +2 -1
- package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +1 -0
- package/dist/_dts/blocks/src/client/form.d.ts +1 -0
- package/dist/_dts/blocks/src/client/newsletter-form.d.ts +1 -0
- package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -0
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -8
- package/dist/_dts/blocks/src/index.d.ts +3 -2
- package/dist/_dts/blocks/src/lib/media.d.ts +267 -0
- package/dist/_dts/blocks/src/rendering/server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +41 -0
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup-destination.d.ts +14 -23
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +109 -23
- package/dist/_dts/blocks/src/system/constants/buttonRoles.d.ts +0 -13
- package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +42 -108
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +21 -54
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +26 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +21 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +4 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/mergeResolveImageUrlContexts.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +29 -78
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +3 -6
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +27 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +2 -2
- package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +21 -0
- package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +3 -1
- package/dist/_dts/content-editor/src/FooterEngagementEditorFields.d.ts +31 -0
- package/dist/_dts/content-editor/src/FooterEngagementEditorPanel.d.ts +17 -0
- package/dist/_dts/content-editor/src/footerComposer.d.ts +3 -0
- package/dist/_dts/content-editor/src/footerEngagementDraft.d.ts +57 -0
- package/dist/_dts/content-editor/src/footerEngagementEditor.d.ts +11 -0
- package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +13 -0
- package/dist/_dts/content-editor/src/index.d.ts +1 -0
- package/dist/_dts/content-editor/src/ui/blockValidationManifestRegistry.d.ts +17 -0
- package/dist/_dts/content-editor/src/ui/blockValidationView.d.ts +1 -1
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +4 -0
- package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +35 -0
- package/dist/_dts/core/src/footer-arrangement.d.ts +2 -0
- package/dist/_dts/core/src/footer-composition-types.d.ts +118 -0
- package/dist/_dts/core/src/footer-composition.d.ts +7 -116
- package/dist/_dts/core/src/footer-engagement.d.ts +30 -0
- package/dist/_dts/core/src/index.d.ts +4 -0
- package/dist/_dts/core/src/newsletter-signup-destination.d.ts +38 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +200 -159
- package/dist/_dts/db/src/index.d.ts +1 -0
- package/dist/_dts/db/src/schemas/forms.d.ts +72 -2
- package/dist/_dts/db/src/schemas/standard-contact.d.ts +114 -0
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +4 -0
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockValidationManifests.d.ts +26 -0
- package/dist/_dts/editor-blocks/src/widgets/rich-text/imageInsert.d.ts +3 -3
- package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -2
- package/dist/_dts/media-editor/src/context.d.ts +1 -2
- package/dist/_dts/media-editor/src/index.d.ts +3 -1
- package/dist/_dts/media-editor/src/mediaSelection.d.ts +32 -0
- package/dist/_dts/media-editor/src/types.d.ts +3 -1
- package/dist/_dts/media-editor/src/useMediaSelection.d.ts +26 -0
- package/dist/_dts/preview-next/src/client/blocks/previewBatchLoaderParams.d.ts +6 -0
- package/dist/_dts/preview-next/src/client/index.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +2 -5
- package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +2 -5
- package/dist/_dts/preview-next/src/client/preview/HeaderMenuControls.d.ts +12 -0
- package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -5
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -4
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +13 -2
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +8 -4
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -49
- package/dist/_dts/preview-next/src/client/preview/headerInteractionPaletteSurfaceState.d.ts +8 -0
- package/dist/_dts/preview-next/src/client/preview/previewThemeRoles.d.ts +15 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeCustomizeTypes.d.ts +54 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +13 -3
- package/dist/_dts/preview-next/src/client/preview/siteChromeNavQuickControlHistory.d.ts +3 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +6 -3
- package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +6 -5
- package/dist/_dts/sdk/src/cli/commands/push/execute/footer.d.ts +9 -0
- package/dist/_dts/sdk/src/cli/content/footerFile.d.ts +10 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +3 -5
- package/dist/_dts/sdk/src/cli/site-commands/footerCommands.d.ts +15 -3
- package/dist/_dts/sdk/src/client/combineAbortSignals.d.ts +2 -0
- package/dist/_dts/sdk/src/client/management/types.d.ts +6 -15
- package/dist/_dts/sdk/src/client/types.d.ts +10 -2
- package/dist/_dts/sdk/src/client/wholeSeriesReadOperations.d.ts +11 -0
- package/dist/_dts/sdk/src/config/types.d.ts +1 -1
- package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
- package/dist/_dts/sdk/src/contracts/event-registration-content.d.ts +16 -0
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +4 -15
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +4 -18
- package/dist/_dts/sdk/src/public-api/teamMemberContracts.d.ts +17 -0
- package/dist/_dts/sdk/src/public-api/wholeSeriesContracts.d.ts +2 -0
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +7 -0
- package/dist/_dts/sdk/src/rendering/index.d.ts +5 -3
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +2 -2
- package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +8 -2
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commandContract.d.ts +8 -1
- package/dist/_dts/site-commands/src/commands.d.ts +16 -2
- package/dist/_dts/theme-core/src/buttons/effects/presets/background.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +0 -18
- package/dist/_dts/theme-core/src/buttons/types.d.ts +1 -3
- package/dist/_dts/theme-core/src/header/containerSchema.d.ts +20 -0
- package/dist/_dts/theme-core/src/header/generateHeaderCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +14 -0
- package/dist/_dts/theme-core/src/header/legacyNavLinkStyle.d.ts +3 -0
- package/dist/_dts/theme-core/src/header/paintTargets.d.ts +31 -0
- package/dist/_dts/theme-core/src/header/scrollTreatment.d.ts +11 -0
- package/dist/_dts/theme-core/src/header/surfaceRules.d.ts +8 -0
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +15 -0
- package/dist/_dts/theme-core/src/palette/colors.d.ts +1 -1
- package/dist/_dts/theme-core/src/schema.d.ts +67 -19
- package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +3 -51
- package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +4 -11
- package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +3 -51
- package/dist/_dts/theme-core/src/site-styles/headerInteractionPalette.d.ts +32 -0
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +19 -106
- package/dist/_dts/theme-core/src/site-styles/headerOpeningForeground.d.ts +22 -0
- package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +2 -0
- package/dist/_dts/theme-core/src/site-styles/headerStyleParts.d.ts +4 -0
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +3 -0
- package/dist/_dts/theme-core/src/site-styles/lookOptionGroups.d.ts +24 -0
- package/dist/_dts/theme-core/src/site-styles/lookResolution.d.ts +1 -2
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +4 -22
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorOptions.d.ts +21 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +4 -1
- package/dist/cli/index.mjs +6272 -5706
- package/dist/client/{courseRegistration-BcemLAdN.mjs → CourseRegistrationWizard-xRmA7REV.mjs} +329 -49
- package/dist/client/{DiscountCodeDisclosure-DS0AuFWW.mjs → DiscountCodeDisclosure-B9vriL5C.mjs} +1 -1
- package/dist/client/{EventCombined.client-DtMxLr7q.mjs → EventCombined.client-BgVnVTlz.mjs} +2 -2
- package/dist/client/{EventListing.client-BdLSRNg1.mjs → EventListing.client-CqdsO7jO.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-BrpC6vsT.mjs → LeafletStaticMap-CKPxot9M.mjs} +1 -1
- package/dist/client/{StepIndicator-CBYPFVoy.mjs → StepIndicator-DGCYuBJ1.mjs} +2 -2
- package/dist/client/{accordion-BqqwPJWM.mjs → accordion-BfN5Eqd-.mjs} +1 -1
- package/dist/client/{bookingForm-SneP3yxC.mjs → bookingForm-DOvCpBFP.mjs} +5 -5
- package/dist/client/bookings.mjs +126 -23
- package/dist/client/{carousel-BTIR9L3I.mjs → carousel-DPNmiH0f.mjs} +1 -1
- package/dist/client/{cart-bqiqd8SX.mjs → cart--egVXlrR.mjs} +3 -3
- package/dist/client/{checkout-WbTFV5v4.mjs → checkout-DywWtMcq.mjs} +3 -3
- package/dist/client/client.mjs +6111 -5794
- package/dist/client/courseRegistration-Dk9qFVwt.mjs +46 -0
- package/dist/client/{eventCalendar-CsxIw0V_.mjs → eventCalendar-Bkz2HjlS.mjs} +4 -4
- package/dist/client/{eventCombined-B6XMoHfa.mjs → eventCombined-D4kipYWg.mjs} +2 -2
- package/dist/client/{eventDetails-BJaoPPfo.mjs → eventDetails-Dz_5ix2Q.mjs} +56 -35
- package/dist/client/{eventListing-DgwdYHRT.mjs → eventListing-D0vm-zST.mjs} +2 -2
- package/dist/client/{eventRegistration-C0O3folu.mjs → eventRegistration-Cw1E4Q4p.mjs} +58 -6
- package/dist/client/{form-Bk9txGFt.mjs → form-C2Zf1n3K.mjs} +1 -1
- package/dist/client/{headerSection-yIBt0yTv.mjs → headerSection-CP05gzdc.mjs} +2 -2
- package/dist/client/hooks.mjs +1013 -935
- package/dist/client/{locationMap-C-3KIpv-.mjs → locationMap-Cl3x9PYJ.mjs} +2 -2
- package/dist/client/{newsletterForm-CzB8g8h2.mjs → newsletterForm-DyEJoClm.mjs} +26 -20
- package/dist/client/{pricing-C1QeDes_.mjs → pricing-DGuNR1W4.mjs} +1 -1
- package/dist/client/{productDetail-w7SBp5uc.mjs → productDetail-Cq-HrGew.mjs} +3 -3
- package/dist/client/{productList-D0tGKHGf.mjs → productList-DbB3jwqd.mjs} +3 -3
- package/dist/client/{propsDecoder-Bcin2DB3.mjs → propsDecoder-CiTuhUwY.mjs} +257 -142
- package/dist/client/rendering/client.mjs +1342 -1122
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +6622 -6321
- package/dist/client/{scrollToBlock-h-o_STf_.mjs → scrollToBlock-CShkRqab.mjs} +1 -1
- package/dist/client/{shop-BGzmL8O_.mjs → shop-Cu4Ib-ZA.mjs} +5 -5
- package/dist/client/{shop-commerce-lX8QxjX-.mjs → shop-commerce-BzpsOdh7.mjs} +4 -4
- package/dist/client/{shop-commerce-store-CEurARtu.mjs → shop-commerce-store-DaE7Fhj8.mjs} +1 -1
- package/dist/client/{shopShared-DXxH8xxw.mjs → shopShared-cF0c20vB.mjs} +2 -2
- package/dist/client/{useEventFilters-B591g9vd.mjs → useEventFilters-QZ3HMgaJ.mjs} +2 -2
- package/dist/client/{usePolling-BvnChV4m.mjs → usePolling-BKf0GcE-.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +1 -1
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/middleware.mjs +1 -1
- package/dist/{previewAuthStore-Dev9CdG9.mjs → previewAuthStore-BesgU5Xu.mjs} +1 -1
- package/dist/{sdk-runtime-M__i3Jce.mjs → sdk-runtime-Cn_QSCOg.mjs} +2 -2
- package/dist/{separator-VSlnI9bc.mjs → separator-CEoGABRc.mjs} +1 -1
- package/dist/server/components.mjs +1750 -1614
- package/dist/server/config-validation.mjs +1010 -935
- package/dist/server/config.mjs +1010 -935
- package/dist/server/data.mjs +1013 -935
- package/dist/server/index.mjs +40 -16
- package/dist/server/next.mjs +1790 -1632
- package/dist/server/page-converter.mjs +1012 -938
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +1746 -1601
- package/dist/server/rendering.mjs +1759 -1615
- package/dist/server/routing.mjs +1123 -975
- package/dist/server/server.mjs +1053 -951
- package/dist/server/theme-bridge.mjs +151 -118
- package/dist/server/theme.mjs +111 -23
- package/package.json +1 -1
- package/dist/SdkPreviewModeRuntime-CvW1vdQ4.mjs +0 -39468
- package/dist/_dts/editor-blocks/src/widgets/rich-text/ensureRichTextImageAssetIdentifier.d.ts +0 -8
- package/dist/client/MagicLinkForm-Bt3IuLMy.mjs +0 -327
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { Brand } from './branded';
|
|
2
|
+
import type { FooterEngagementSection, FooterEngagementSource } from './footer-engagement';
|
|
3
|
+
import type { RichTextDoc } from './rich-text';
|
|
4
|
+
export type FooterModuleId = Brand<string, 'FooterModuleId'>;
|
|
5
|
+
export type FooterMembershipKey = Brand<string, 'FooterMembershipKey'>;
|
|
6
|
+
export type FooterRichText = RichTextDoc;
|
|
7
|
+
export type FooterNavigationRole = 'main' | 'legal-policy';
|
|
8
|
+
type FooterSectionBase<TKind extends string> = Readonly<{
|
|
9
|
+
id: FooterModuleId;
|
|
10
|
+
kind: TKind;
|
|
11
|
+
heading: string | null;
|
|
12
|
+
selected: boolean;
|
|
13
|
+
}>;
|
|
14
|
+
export type FooterSection = (FooterSectionBase<'brand'> & Readonly<{
|
|
15
|
+
showLogo: boolean;
|
|
16
|
+
showTitle: boolean;
|
|
17
|
+
}>) | (FooterSectionBase<'navigation'> & Readonly<{
|
|
18
|
+
source: Readonly<{
|
|
19
|
+
kind: 'menu-role';
|
|
20
|
+
role: 'main';
|
|
21
|
+
}>;
|
|
22
|
+
}>) | (FooterSectionBase<'legal-navigation'> & Readonly<{
|
|
23
|
+
source: Readonly<{
|
|
24
|
+
kind: 'menu-role';
|
|
25
|
+
role: 'legal-policy';
|
|
26
|
+
}>;
|
|
27
|
+
}>) | (FooterSectionBase<'business-address'> & Readonly<{
|
|
28
|
+
source: Readonly<{
|
|
29
|
+
kind: 'business-address';
|
|
30
|
+
}>;
|
|
31
|
+
}>) | (FooterSectionBase<'contact'> & Readonly<{
|
|
32
|
+
source: Readonly<{
|
|
33
|
+
kind: 'public-profile';
|
|
34
|
+
}>;
|
|
35
|
+
}>) | (FooterSectionBase<'opening-hours'> & Readonly<{
|
|
36
|
+
source: Readonly<{
|
|
37
|
+
kind: 'public-profile';
|
|
38
|
+
}>;
|
|
39
|
+
}>) | (FooterSectionBase<'social-links'> & Readonly<{
|
|
40
|
+
source: Readonly<{
|
|
41
|
+
kind: 'public-profile';
|
|
42
|
+
}>;
|
|
43
|
+
}>) | (FooterSectionBase<'supporting-text'> & Readonly<{
|
|
44
|
+
content: FooterRichText | null;
|
|
45
|
+
}>) | (FooterSectionBase<'legal'> & Readonly<{
|
|
46
|
+
content: FooterRichText | null;
|
|
47
|
+
}>) | FooterEngagementSection;
|
|
48
|
+
export type FooterSectionKind = FooterSection['kind'];
|
|
49
|
+
export type FooterCompositionV1 = Readonly<{
|
|
50
|
+
schemaVersion: 1;
|
|
51
|
+
sections: readonly FooterSection[];
|
|
52
|
+
}>;
|
|
53
|
+
export type FooterCompositionError = Readonly<{
|
|
54
|
+
code: 'invalid_shape' | 'unsupported_schema_version' | 'invalid_section' | 'duplicate_section_id' | 'duplicate_section_kind' | 'unknown_section';
|
|
55
|
+
path: string;
|
|
56
|
+
message: string;
|
|
57
|
+
}>;
|
|
58
|
+
export type FooterLookPolicy = Readonly<{
|
|
59
|
+
kind: 'integrated-legal';
|
|
60
|
+
}> | Readonly<{
|
|
61
|
+
kind: 'separate-legal-region';
|
|
62
|
+
}>;
|
|
63
|
+
export type FooterVisualGroupKind = 'identity' | 'main-navigation' | 'visit' | 'engagement' | 'legal-ending';
|
|
64
|
+
export type FooterColumnCount = 1 | 2 | 3 | 4 | 5;
|
|
65
|
+
export type FooterVisualGroup = Readonly<{
|
|
66
|
+
kind: FooterVisualGroupKind;
|
|
67
|
+
sections: readonly FooterSection[];
|
|
68
|
+
span: 1;
|
|
69
|
+
}>;
|
|
70
|
+
export type FooterRenderRegion = Readonly<{
|
|
71
|
+
kind: 'engagement-row' | 'main' | 'bottom';
|
|
72
|
+
columns: FooterColumnCount;
|
|
73
|
+
groups: readonly FooterVisualGroup[];
|
|
74
|
+
}>;
|
|
75
|
+
export type FooterArrangementPlan = Readonly<{
|
|
76
|
+
membershipKey: FooterMembershipKey;
|
|
77
|
+
regions: readonly FooterRenderRegion[];
|
|
78
|
+
mobileGroups: readonly FooterVisualGroup[];
|
|
79
|
+
}>;
|
|
80
|
+
export type FooterRepairTarget = Readonly<{
|
|
81
|
+
kind: 'site-identity';
|
|
82
|
+
}> | Readonly<{
|
|
83
|
+
kind: 'navigation';
|
|
84
|
+
role: FooterNavigationRole;
|
|
85
|
+
}> | Readonly<{
|
|
86
|
+
kind: 'business-address';
|
|
87
|
+
}> | Readonly<{
|
|
88
|
+
kind: 'engagement-source';
|
|
89
|
+
source: FooterEngagementSource['kind'];
|
|
90
|
+
}> | Readonly<{
|
|
91
|
+
kind: 'public-profile';
|
|
92
|
+
section: 'contact' | 'opening-hours' | 'social-links';
|
|
93
|
+
}> | Readonly<{
|
|
94
|
+
kind: 'footer-section';
|
|
95
|
+
sectionId: FooterModuleId;
|
|
96
|
+
}>;
|
|
97
|
+
export type ResolvedFooterSection = Readonly<{
|
|
98
|
+
kind: 'renderable';
|
|
99
|
+
section: FooterSection;
|
|
100
|
+
}> | Readonly<{
|
|
101
|
+
kind: 'missing-source';
|
|
102
|
+
section: FooterSection;
|
|
103
|
+
repairTarget: FooterRepairTarget;
|
|
104
|
+
}>;
|
|
105
|
+
export type RenderableFooterSection = Extract<ResolvedFooterSection, {
|
|
106
|
+
kind: 'renderable';
|
|
107
|
+
}>;
|
|
108
|
+
export type FooterSourceAvailability = Readonly<{
|
|
109
|
+
hasLogo: boolean;
|
|
110
|
+
hasMainNavigation: boolean;
|
|
111
|
+
hasLegalPolicyNavigation: boolean;
|
|
112
|
+
hasBusinessAddress: boolean;
|
|
113
|
+
hasContact: boolean;
|
|
114
|
+
hasOpeningHours: boolean;
|
|
115
|
+
hasSocialLinks: boolean;
|
|
116
|
+
hasEngagementSource: boolean;
|
|
117
|
+
}>;
|
|
118
|
+
export {};
|
|
@@ -1,118 +1,8 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import { type
|
|
1
|
+
import type { FooterCompositionError, FooterCompositionV1, FooterModuleId, FooterSection, FooterSourceAvailability, ResolvedFooterSection } from './footer-composition-types';
|
|
2
|
+
import { type FooterEngagementSection } from './footer-engagement';
|
|
3
3
|
import { type Result } from './result';
|
|
4
|
-
export
|
|
5
|
-
export type
|
|
6
|
-
export type FooterRichText = RichTextDoc;
|
|
7
|
-
export type FooterNavigationRole = 'main' | 'legal-policy';
|
|
8
|
-
type FooterSectionBase<TKind extends string> = Readonly<{
|
|
9
|
-
id: FooterModuleId;
|
|
10
|
-
kind: TKind;
|
|
11
|
-
heading: string | null;
|
|
12
|
-
selected: boolean;
|
|
13
|
-
}>;
|
|
14
|
-
export type FooterSection = (FooterSectionBase<'brand'> & Readonly<{
|
|
15
|
-
showLogo: boolean;
|
|
16
|
-
showTitle: boolean;
|
|
17
|
-
}>) | (FooterSectionBase<'navigation'> & Readonly<{
|
|
18
|
-
source: Readonly<{
|
|
19
|
-
kind: 'menu-role';
|
|
20
|
-
role: 'main';
|
|
21
|
-
}>;
|
|
22
|
-
}>) | (FooterSectionBase<'legal-navigation'> & Readonly<{
|
|
23
|
-
source: Readonly<{
|
|
24
|
-
kind: 'menu-role';
|
|
25
|
-
role: 'legal-policy';
|
|
26
|
-
}>;
|
|
27
|
-
}>) | (FooterSectionBase<'business-address'> & Readonly<{
|
|
28
|
-
source: Readonly<{
|
|
29
|
-
kind: 'business-address';
|
|
30
|
-
}>;
|
|
31
|
-
}>) | (FooterSectionBase<'contact'> & Readonly<{
|
|
32
|
-
source: Readonly<{
|
|
33
|
-
kind: 'public-profile';
|
|
34
|
-
}>;
|
|
35
|
-
}>) | (FooterSectionBase<'opening-hours'> & Readonly<{
|
|
36
|
-
source: Readonly<{
|
|
37
|
-
kind: 'public-profile';
|
|
38
|
-
}>;
|
|
39
|
-
}>) | (FooterSectionBase<'social-links'> & Readonly<{
|
|
40
|
-
source: Readonly<{
|
|
41
|
-
kind: 'public-profile';
|
|
42
|
-
}>;
|
|
43
|
-
}>) | (FooterSectionBase<'supporting-text'> & Readonly<{
|
|
44
|
-
content: FooterRichText | null;
|
|
45
|
-
}>) | (FooterSectionBase<'legal'> & Readonly<{
|
|
46
|
-
content: FooterRichText | null;
|
|
47
|
-
}>);
|
|
48
|
-
/** Retained as a source-compatible name while callers move from modules to sections. */
|
|
49
|
-
export type FooterModule = FooterSection;
|
|
50
|
-
export type FooterModuleKind = FooterSection['kind'];
|
|
51
|
-
export type FooterCompositionV1 = Readonly<{
|
|
52
|
-
schemaVersion: 1;
|
|
53
|
-
sections: readonly FooterSection[];
|
|
54
|
-
}>;
|
|
55
|
-
export type FooterCompositionError = Readonly<{
|
|
56
|
-
code: 'invalid_shape' | 'unsupported_schema_version' | 'invalid_section' | 'duplicate_section_id' | 'duplicate_section_kind' | 'unknown_section';
|
|
57
|
-
path: string;
|
|
58
|
-
message: string;
|
|
59
|
-
}>;
|
|
60
|
-
export type FooterLookPolicy = Readonly<{
|
|
61
|
-
kind: 'integrated-legal';
|
|
62
|
-
}> | Readonly<{
|
|
63
|
-
kind: 'separate-legal-region';
|
|
64
|
-
}>;
|
|
65
|
-
export type FooterVisualGroupKind = 'identity' | 'main-navigation' | 'visit' | 'legal-ending';
|
|
66
|
-
export type FooterColumnCount = 1 | 2 | 3 | 4;
|
|
67
|
-
export type FooterVisualGroup = Readonly<{
|
|
68
|
-
kind: FooterVisualGroupKind;
|
|
69
|
-
sections: readonly FooterSection[];
|
|
70
|
-
span: 1;
|
|
71
|
-
}>;
|
|
72
|
-
export type FooterRenderRegion = Readonly<{
|
|
73
|
-
kind: 'main' | 'bottom';
|
|
74
|
-
columns: FooterColumnCount;
|
|
75
|
-
groups: readonly FooterVisualGroup[];
|
|
76
|
-
}>;
|
|
77
|
-
export type FooterArrangementPlan = Readonly<{
|
|
78
|
-
membershipKey: FooterMembershipKey;
|
|
79
|
-
regions: readonly FooterRenderRegion[];
|
|
80
|
-
mobileGroups: readonly FooterVisualGroup[];
|
|
81
|
-
}>;
|
|
82
|
-
export type FooterRepairTarget = Readonly<{
|
|
83
|
-
kind: 'site-identity';
|
|
84
|
-
}> | Readonly<{
|
|
85
|
-
kind: 'navigation';
|
|
86
|
-
role: FooterNavigationRole;
|
|
87
|
-
}> | Readonly<{
|
|
88
|
-
kind: 'business-address';
|
|
89
|
-
}> | Readonly<{
|
|
90
|
-
kind: 'public-profile';
|
|
91
|
-
section: 'contact' | 'opening-hours' | 'social-links';
|
|
92
|
-
}> | Readonly<{
|
|
93
|
-
kind: 'footer-section';
|
|
94
|
-
sectionId: FooterModuleId;
|
|
95
|
-
}>;
|
|
96
|
-
export type ResolvedFooterSection = Readonly<{
|
|
97
|
-
kind: 'renderable';
|
|
98
|
-
section: FooterSection;
|
|
99
|
-
}> | Readonly<{
|
|
100
|
-
kind: 'missing-source';
|
|
101
|
-
section: FooterSection;
|
|
102
|
-
repairTarget: FooterRepairTarget;
|
|
103
|
-
}>;
|
|
104
|
-
export type RenderableFooterSection = Extract<ResolvedFooterSection, {
|
|
105
|
-
kind: 'renderable';
|
|
106
|
-
}>;
|
|
107
|
-
export type FooterSourceAvailability = Readonly<{
|
|
108
|
-
hasLogo: boolean;
|
|
109
|
-
hasMainNavigation: boolean;
|
|
110
|
-
hasLegalPolicyNavigation: boolean;
|
|
111
|
-
hasBusinessAddress: boolean;
|
|
112
|
-
hasContact: boolean;
|
|
113
|
-
hasOpeningHours: boolean;
|
|
114
|
-
hasSocialLinks: boolean;
|
|
115
|
-
}>;
|
|
4
|
+
export { planFooterArrangement } from './footer-arrangement';
|
|
5
|
+
export type * from './footer-composition-types';
|
|
116
6
|
export declare function unsafeAsFooterModuleId(value: string): FooterModuleId;
|
|
117
7
|
export declare function parseFooterModuleId(value: unknown): Result<FooterModuleId, FooterCompositionError>;
|
|
118
8
|
export declare function validateFooterComposition(composition: FooterCompositionV1): Result<FooterCompositionV1, FooterCompositionError>;
|
|
@@ -123,8 +13,10 @@ export declare function parseFooterCompositionV1(value: unknown): Result<FooterC
|
|
|
123
13
|
*/
|
|
124
14
|
export declare function upgradePlacementFooterCompositionV1(value: unknown): Result<FooterCompositionV1, FooterCompositionError>;
|
|
125
15
|
export declare function setFooterSectionSelected(composition: FooterCompositionV1, sectionId: FooterModuleId, selected: boolean): Result<FooterCompositionV1, FooterCompositionError>;
|
|
16
|
+
export declare function parseFooterEngagementSection(value: unknown): Result<FooterEngagementSection, FooterCompositionError>;
|
|
17
|
+
export declare function upsertFooterEngagementSection(composition: FooterCompositionV1, section: FooterEngagementSection): Result<FooterCompositionV1, FooterCompositionError>;
|
|
18
|
+
export declare function removeFooterEngagementSection(composition: FooterCompositionV1): FooterCompositionV1;
|
|
126
19
|
export declare function resolveFooterSections(composition: FooterCompositionV1, availability: FooterSourceAvailability): readonly ResolvedFooterSection[];
|
|
127
|
-
export declare function planFooterArrangement(renderableSections: readonly RenderableFooterSection[], policy: FooterLookPolicy): FooterArrangementPlan;
|
|
128
20
|
export type FooterEditorOverviewItem = Readonly<{
|
|
129
21
|
section: FooterSection;
|
|
130
22
|
status: 'selected' | 'available';
|
|
@@ -141,4 +33,3 @@ type LegacyFooterNormalizationOptions = Readonly<{
|
|
|
141
33
|
footerVisible?: boolean;
|
|
142
34
|
}>;
|
|
143
35
|
export declare function normalizeLegacyFooterContentToV1(value: unknown, options?: LegacyFooterNormalizationOptions): Result<FooterCompositionV1, FooterCompositionError>;
|
|
144
|
-
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type FormId } from './branded';
|
|
2
|
+
import { type NewsletterSignupAuthoringDestination } from './newsletter-signup-destination';
|
|
3
|
+
import { type Result } from './result';
|
|
4
|
+
import type { FooterCompositionError, FooterModuleId } from './footer-composition-types';
|
|
5
|
+
export type FooterEngagementTreatment = 'integrated' | 'separate-row';
|
|
6
|
+
export type FooterEngagementSource = Readonly<{
|
|
7
|
+
kind: 'standard-contact';
|
|
8
|
+
formId: FormId;
|
|
9
|
+
intro: string | null;
|
|
10
|
+
}> | Readonly<{
|
|
11
|
+
kind: 'mailing-list';
|
|
12
|
+
destination: NewsletterSignupAuthoringDestination;
|
|
13
|
+
intro: string | null;
|
|
14
|
+
buttonLabel: string;
|
|
15
|
+
successMessage: string;
|
|
16
|
+
privacyNote: string | null;
|
|
17
|
+
fieldPreset: 'emailOnly';
|
|
18
|
+
}>;
|
|
19
|
+
export type FooterEngagementSection = Readonly<{
|
|
20
|
+
id: FooterModuleId;
|
|
21
|
+
kind: 'engagement';
|
|
22
|
+
heading: string;
|
|
23
|
+
selected: boolean;
|
|
24
|
+
treatment: FooterEngagementTreatment;
|
|
25
|
+
source: FooterEngagementSource;
|
|
26
|
+
}>;
|
|
27
|
+
export declare function parseFooterEngagementSectionValue(value: Readonly<Record<string, unknown>>, sectionBase: Readonly<{
|
|
28
|
+
id: FooterModuleId;
|
|
29
|
+
selected: boolean;
|
|
30
|
+
}>, path: string): Result<FooterEngagementSection, FooterCompositionError>;
|
|
@@ -32,6 +32,10 @@ export * from './public-url-validation';
|
|
|
32
32
|
export * from './public-profile';
|
|
33
33
|
export * from './rich-text';
|
|
34
34
|
export * from './footer-composition';
|
|
35
|
+
export * from './footer-arrangement';
|
|
36
|
+
export * from './footer-composition-types';
|
|
37
|
+
export * from './footer-engagement';
|
|
38
|
+
export * from './newsletter-signup-destination';
|
|
35
39
|
export * from './number-input';
|
|
36
40
|
export * from './field-errors';
|
|
37
41
|
export * from './form-submission-preview';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Brand } from './branded';
|
|
2
|
+
import { type Result } from './result';
|
|
3
|
+
export type NewsletterListId = Brand<string, 'NewsletterListId'>;
|
|
4
|
+
export type MailchimpConnectionId = Brand<string, 'MailchimpConnectionId'>;
|
|
5
|
+
export type MailchimpAudienceId = Brand<string, 'MailchimpAudienceId'>;
|
|
6
|
+
export type MailchimpTagName = Brand<string, 'MailchimpTagName'>;
|
|
7
|
+
export type NewsletterSignupDestinationProvider = 'riverbank' | 'mailchimp';
|
|
8
|
+
export type RiverbankNewsletterDestination = Readonly<{
|
|
9
|
+
tag: 'riverbank_list';
|
|
10
|
+
listId: NewsletterListId;
|
|
11
|
+
}>;
|
|
12
|
+
export type MailchimpNewsletterDestination = Readonly<{
|
|
13
|
+
tag: 'mailchimp_audience';
|
|
14
|
+
connectionId: MailchimpConnectionId;
|
|
15
|
+
audienceId: MailchimpAudienceId;
|
|
16
|
+
tags: readonly MailchimpTagName[];
|
|
17
|
+
}>;
|
|
18
|
+
export type NewsletterSignupAuthoringDestination = RiverbankNewsletterDestination | MailchimpNewsletterDestination;
|
|
19
|
+
export type NewsletterSignupDestinationValueError = Readonly<{
|
|
20
|
+
kind: 'invalid-destination-shape';
|
|
21
|
+
}> | Readonly<{
|
|
22
|
+
kind: 'invalid-destination-tag';
|
|
23
|
+
value: unknown;
|
|
24
|
+
}> | Readonly<{
|
|
25
|
+
kind: 'invalid-newsletter-list-id';
|
|
26
|
+
}> | Readonly<{
|
|
27
|
+
kind: 'invalid-mailchimp-connection-id';
|
|
28
|
+
}> | Readonly<{
|
|
29
|
+
kind: 'invalid-mailchimp-audience-id';
|
|
30
|
+
}> | Readonly<{
|
|
31
|
+
kind: 'invalid-mailchimp-tags';
|
|
32
|
+
}>;
|
|
33
|
+
export declare function parseNewsletterListId(value: unknown): NewsletterListId | null;
|
|
34
|
+
export declare function parseMailchimpConnectionId(value: unknown): MailchimpConnectionId | null;
|
|
35
|
+
export declare function parseMailchimpAudienceId(value: unknown): MailchimpAudienceId | null;
|
|
36
|
+
export declare function parseMailchimpTagName(value: unknown): MailchimpTagName | null;
|
|
37
|
+
export declare function parseNewsletterSignupDestinationProvider(value: unknown): NewsletterSignupDestinationProvider | null;
|
|
38
|
+
export declare function parseNewsletterSignupAuthoringDestinationValue(value: unknown): Result<NewsletterSignupAuthoringDestination, NewsletterSignupDestinationValueError>;
|