@riverbankcms/sdk 0.153.0 → 0.154.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/{EventEmbeddedCheckoutStep-veN-QiAE.mjs → EventEmbeddedCheckoutStep-ba9npQtb.mjs} +1 -1
- package/dist/{PreviewEditorSidebar-jI_4DTZY.mjs → PreviewEditorSidebar-C7FiaxlF.mjs} +194 -22
- package/dist/{PreviewEditorUI-ORkVZhfu.mjs → PreviewEditorUI-DFst50q1.mjs} +20 -44
- package/dist/{SdkPreviewModeRuntime-DaNqevI1.mjs → SdkPreviewModeRuntime-BUNV_YHZ.mjs} +49 -32
- package/dist/{SiteChromeCustomizeContext-CgNuBHC0.mjs → SiteChromeCustomizeContext-DEj7qppF.mjs} +3558 -2321
- package/dist/{ThemedButton-X2UxhW6F.mjs → ThemedButton-C8kzu0hY.mjs} +400 -81
- package/dist/_dts/ai/src/contracts/proposals.d.ts +364 -130
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +1035 -477
- package/dist/_dts/api/src/billing.d.ts +2 -0
- package/dist/_dts/api/src/billingEndpointDefinitions.d.ts +78 -0
- package/dist/_dts/api/src/bookingAdjustments.d.ts +3 -2
- package/dist/_dts/api/src/bookingOperations.d.ts +7 -2
- package/dist/_dts/api/src/bookingPeople.d.ts +19 -0
- package/dist/_dts/api/src/bookingPeopleEndpointDefinitions.d.ts +8 -0
- package/dist/_dts/api/src/bookingRecords.d.ts +4 -106
- package/dist/_dts/api/src/bookings.d.ts +2 -3
- package/dist/_dts/api/src/contentRuntime.d.ts +1 -0
- package/dist/_dts/api/src/endpoints.d.ts +88 -43
- package/dist/_dts/api/src/index.d.ts +4 -2
- package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -0
- package/dist/_dts/api/src/moneyPayments.d.ts +116 -0
- package/dist/_dts/api/src/onboarding/surfaceData.d.ts +2 -0
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +2 -2
- package/dist/_dts/api/src/sdkThemeWire.d.ts +162 -103
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +18 -0
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +17 -16
- package/dist/_dts/api/src/siteSettings.d.ts +1 -0
- package/dist/_dts/api/src/stripeConnectSetup.d.ts +90 -0
- package/dist/_dts/api/src/types.d.ts +11 -31
- package/dist/_dts/api/src/wholeSeriesRuns.d.ts +2 -4
- package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -1
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +8 -96
- package/dist/_dts/blocks/src/primitives/content/components/RichText.d.ts +1 -1
- package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +4 -1
- package/dist/_dts/blocks/src/primitives/layout/Section.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/fields.d.ts +0 -4
- package/dist/_dts/blocks/src/system/blocks/events/shared/index.d.ts +0 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +4 -4
- package/dist/_dts/blocks/src/system/blocks/form.d.ts +10 -0
- package/dist/_dts/blocks/src/system/blocks/image-gallery/fields.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +6 -1
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +47 -45
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +12 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime-layout.d.ts +23 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime-profile.d.ts +20 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +17 -16
- package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +1 -1
- package/dist/_dts/blocks/src/system/customize/facets.d.ts +75 -9
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +24 -24
- package/dist/_dts/blocks/src/system/node/fragments/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/node/fragments/lookSlot.d.ts +1 -1
- package/dist/_dts/blocks/src/system/node/fragments/responsiveTwoColumn.d.ts +3 -1
- package/dist/_dts/blocks/src/system/node/fragments/sectionHead.d.ts +15 -0
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +18 -198
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +9 -99
- package/dist/_dts/blocks/src/system/runtime/lookSurfaces.d.ts +16 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/lookPresentation.d.ts +10 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +29 -17
- package/dist/_dts/blocks/src/system/runtime/nodes/form.fields.d.ts +5 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/form.interactive.d.ts +11 -79
- package/dist/_dts/blocks/src/system/runtime/nodes/form.parts.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/form.server.d.ts +2 -13
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +8 -72
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.parts.d.ts +6 -6
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +3 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +2 -2
- package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +3 -0
- package/dist/_dts/blocks/src/system/transforms/registry/footerArrangement.d.ts +6 -0
- package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +0 -11
- package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -10
- package/dist/_dts/commerce/src/purchase/orderConfirmationPlanning.d.ts +1 -0
- package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +5 -2
- package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +1 -1
- package/dist/_dts/content-editor/src/FooterNavigationLayoutControl.d.ts +6 -3
- package/dist/_dts/content-editor/src/controller/editorLeaseParticipation.d.ts +1 -1
- package/dist/_dts/content-editor/src/footerComposer.d.ts +2 -1
- package/dist/_dts/content-editor/src/footerComposerPanelTypes.d.ts +3 -1
- package/dist/_dts/content-editor/src/footerNavigationLayoutState.d.ts +56 -0
- package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +2 -1
- package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +3 -4
- package/dist/_dts/content-editor/src/useFooterNavigationLayout.d.ts +11 -8
- package/dist/_dts/core/src/booking-refunds.d.ts +2 -0
- package/dist/_dts/core/src/date-display.d.ts +85 -0
- package/dist/_dts/core/src/date-time-formatter.d.ts +2 -0
- package/dist/_dts/core/src/footer-arrangement.d.ts +8 -1
- package/dist/_dts/core/src/footer-composition-types.d.ts +6 -1
- package/dist/_dts/core/src/footer-composition.d.ts +1 -1
- package/dist/_dts/core/src/footer-navigation-layout.d.ts +3 -0
- package/dist/_dts/core/src/index.d.ts +2 -0
- package/dist/_dts/core/src/mailing-list-setup.d.ts +3 -0
- package/dist/_dts/core/src/mailing-list-submission.d.ts +6 -1
- package/dist/_dts/core/src/public-profile.d.ts +3 -1
- package/dist/_dts/core/src/scheduled-date-time.d.ts +69 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +50 -9
- package/dist/_dts/db/src/schemas/forms.d.ts +16 -16
- package/dist/_dts/preview-next/src/client/blocks/ArrangementBlockToolbar.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -1
- package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +27 -5
- package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/useConfirmedPreferenceRecord.d.ts +12 -0
- package/dist/_dts/preview-next/src/client/preview/usePersistedFooterPreferences.d.ts +26 -0
- package/dist/_dts/preview-next/src/client/preview/usePersistedHeaderPreferences.d.ts +40 -2
- package/dist/_dts/sdk/src/config/validation.d.ts +3 -3
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +4 -46
- package/dist/_dts/sdk/src/date-time/index.d.ts +2 -68
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/buttonColourContract.d.ts +2 -0
- package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +2 -0
- package/dist/_dts/theme-core/src/buttons/styles/recipes/lanternRecipes.d.ts +60 -0
- package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +57 -0
- package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +10 -1
- package/dist/_dts/theme-core/src/buttons/types.d.ts +358 -46
- package/dist/_dts/theme-core/src/buttons/typography.d.ts +24 -0
- package/dist/_dts/theme-core/src/cards/types.d.ts +8 -8
- package/dist/_dts/theme-core/src/footer/effectiveNavLinkStyle.d.ts +1 -1
- package/dist/_dts/theme-core/src/footer/generateFooterCss.d.ts +4 -1
- package/dist/_dts/theme-core/src/footer/mode.d.ts +2 -11
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +234 -147
- package/dist/_dts/theme-core/src/navigation/types.d.ts +4 -4
- package/dist/_dts/theme-core/src/schema.d.ts +300 -192
- package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +23 -7
- package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +4 -6
- package/dist/_dts/theme-core/src/site-styles/compileFooterAgainstRow.d.ts +121 -0
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +25 -0
- package/dist/_dts/theme-core/src/site-styles/footerLookDefaults.d.ts +45 -0
- package/dist/_dts/theme-core/src/site-styles/footerLookRecipe.d.ts +50 -0
- package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +9 -35
- package/dist/_dts/theme-core/src/site-styles/footerPreferences.d.ts +29 -0
- package/dist/_dts/theme-core/src/site-styles/headerPreferencesPersistence.d.ts +2 -3
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +4 -0
- package/dist/_dts/theme-core/src/site-styles/lookResolution.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/siteChromeBackgrounds.d.ts +8 -0
- package/dist/_dts/theme-core/src/site-styles/themeParity.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
- package/dist/_dts/ui/src/card.d.ts +1 -1
- package/dist/client/{BookingMailingListNote-DrchYW1m.mjs → BookingMailingListNote-CNoSqFtf.mjs} +2 -2
- package/dist/client/{CardListItem-CC_GVmF6.mjs → CardListItem-BkTkqBkh.mjs} +3 -3
- package/dist/client/{CheckboxChoice-Dq30m3DO.mjs → CheckboxChoice-CHJpsty4.mjs} +1 -1
- package/dist/client/{DemoBookingPortalAccess-ojwbVUmx.mjs → DemoBookingPortalAccess-C7KQKFNt.mjs} +2 -2
- package/dist/client/{EventCombined.client-DyN0v0Xk.mjs → EventCombined.client-BgeYMjHJ.mjs} +5 -5
- package/dist/client/{EventEmbeddedCheckoutStep-CgfpKc3n.mjs → EventEmbeddedCheckoutStep-BTc_lTkM.mjs} +2 -2
- package/dist/client/{EventListing.client-CuOuvYMz.mjs → EventListing.client-ChRs9Hl2.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-B0WhRr3j.mjs → LeafletStaticMap-C_dNQgd0.mjs} +1 -1
- package/dist/client/{RichText-C1fIXBzA.mjs → RichText-BI9bzbjo.mjs} +75 -42
- package/dist/client/{ThemedButton-B7HFqFBg.mjs → ThemedButton-wl3Z3wkH.mjs} +1 -1
- package/dist/client/{accordion-DCDVWSye.mjs → accordion-6Yz8Wd83.mjs} +1 -1
- package/dist/client/{bookingForm-BJ3C4GlM.mjs → bookingForm-i_pKIGiY.mjs} +8 -8
- package/dist/client/bookings.mjs +12565 -11839
- package/dist/client/{carousel-BSCBhfHY.mjs → carousel-DNqd_PjC.mjs} +2 -2
- package/dist/client/{carousel.client-GEtOGsxo.mjs → carousel.client-BUgjPbb6.mjs} +1 -1
- package/dist/client/{cart-Yv-aAtck.mjs → cart-D8OBHuF4.mjs} +3 -3
- package/dist/client/{checkout-B9xDkl30.mjs → checkout-F3-9IGLU.mjs} +3 -3
- package/dist/client/client.mjs +6109 -4778
- package/dist/client/{context-BOGe3rIA.mjs → context-Dg4ZrxDD.mjs} +1 -1
- package/dist/client/{eventCalendar-D6M0T9hs.mjs → eventCalendar-BUc7YIBM.mjs} +8 -8
- package/dist/client/{eventCombined-NM4UFBq8.mjs → eventCombined-BwfShk2a.mjs} +4 -4
- package/dist/client/{eventDetails-f_FhV4O8.mjs → eventDetails-BMOVC3go.mjs} +3 -3
- package/dist/client/{eventListing-WLkfAROh.mjs → eventListing-BwE9PM-t.mjs} +4 -4
- package/dist/client/{eventRegistration-D3ejfLvW.mjs → eventRegistration-CCWPYDc7.mjs} +9 -9
- package/dist/client/{form-D5Or2Jyu.mjs → form-CXFr0Gd5.mjs} +115 -51
- package/dist/client/{headerSection-hWgnv27V.mjs → headerSection-BX8qw8kH.mjs} +3 -3
- package/dist/client/hooks.mjs +2041 -1193
- package/dist/client/{locationMap-Di1K0O2S.mjs → locationMap-B3La71m0.mjs} +3 -3
- package/dist/client/{media-D29-F1u_.mjs → media-B1Cbv721.mjs} +1 -1
- package/dist/client/{newsletterForm-CwxcwTNO.mjs → newsletterForm-DnGyR0x7.mjs} +50 -14
- package/dist/client/{productDetail-BLSnhPdA.mjs → productDetail-BVgTqvkb.mjs} +3 -3
- package/dist/client/{productList-oGytONOX.mjs → productList-CcO7kUQw.mjs} +3 -3
- package/dist/client/{propsDecoder-lf_dTeZS.mjs → propsDecoder-B1OeWavE.mjs} +706 -229
- package/dist/client/rendering/client.mjs +11868 -11098
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +6058 -4676
- package/dist/client/{routeIslandApiConfig-Bc_WVPS8.mjs → routeIslandApiConfig-Dl4vglJm.mjs} +1 -1
- package/dist/client/{shop-BQ3bR7fA.mjs → shop-P72nX5Fs.mjs} +7 -7
- package/dist/client/{shop-commerce-DDPll6ZC.mjs → shop-commerce-Bt7uraDx.mjs} +8 -8
- package/dist/client/{shop-commerce-store-DO-e1pTe.mjs → shop-commerce-store-C1-mxSye.mjs} +1 -1
- package/dist/client/{shopShared-BylM9jh1.mjs → shopShared-Db-cRGu3.mjs} +4 -4
- package/dist/client/{useDiscountCodeUi-B1Puub2v.mjs → useDiscountCodeUi-jvAiUoUX.mjs} +1 -1
- package/dist/client/{useEventPagination-BBhkmQaT.mjs → useEventPagination-BdWpCniq.mjs} +6 -6
- package/dist/preview-next/before-render.mjs +133 -51
- package/dist/preview-next/client/runtime.mjs +3 -3
- package/dist/preview-next/editor-chrome.css +5 -2
- package/dist/preview-next/keepAlive.mjs +133 -51
- package/dist/preview-next/middleware.mjs +133 -51
- package/dist/{sdk-runtime-DWCvhJGu.mjs → sdk-runtime-DLhjF2Nw.mjs} +1 -1
- package/dist/server/components.mjs +11284 -10014
- package/dist/server/config-validation.mjs +2016 -1188
- package/dist/server/config.mjs +2016 -1188
- package/dist/server/data.mjs +2041 -1193
- package/dist/server/date-time.mjs +258 -116
- package/dist/server/index.mjs +134 -52
- package/dist/server/next.mjs +10571 -9350
- package/dist/server/page-converter.mjs +1629 -941
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +11156 -9872
- package/dist/server/rendering.mjs +11284 -10014
- package/dist/server/routing.mjs +2204 -1283
- package/dist/server/server.mjs +2369 -1570
- package/dist/server/theme-bridge.mjs +838 -124
- package/dist/server/theme.mjs +348 -64
- package/dist/{spinner-BYM-Y81w.mjs → spinner-MTooKfck.mjs} +1 -1
- package/dist/styles/index.css +254 -1
- package/package.json +1 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/layout.d.ts +0 -12
|
@@ -47,18 +47,9 @@ export declare const transformDefinitions: {
|
|
|
47
47
|
contained?: string | undefined;
|
|
48
48
|
}>;
|
|
49
49
|
readonly 'layout.footerBottomBarStyle': TransformDefinition;
|
|
50
|
-
readonly 'layout.footerSplitMainClass': TransformDefinition<{
|
|
51
|
-
base?: string | undefined;
|
|
52
|
-
reverseClass?: string | undefined;
|
|
53
|
-
}>;
|
|
54
50
|
readonly 'layout.footerLogoClass': TransformDefinition<{
|
|
55
51
|
base?: string | undefined;
|
|
56
|
-
requireExplicitShow?: boolean | undefined;
|
|
57
|
-
}>;
|
|
58
|
-
readonly 'layout.footerLogoMediaClass': TransformDefinition<{
|
|
59
|
-
base?: string | undefined;
|
|
60
52
|
}>;
|
|
61
|
-
readonly 'layout.footerLogoTextVisible': TransformDefinition;
|
|
62
53
|
readonly 'ui.headingClassFromAlignment': TransformDefinition<{
|
|
63
54
|
base: string;
|
|
64
55
|
}>;
|
|
@@ -123,7 +114,7 @@ export declare function bindProp(from: string, opts?: {
|
|
|
123
114
|
readonly $bind: {
|
|
124
115
|
readonly pick?: "value" | "context" | "collection" | undefined;
|
|
125
116
|
readonly fallback?: {} | null | undefined;
|
|
126
|
-
readonly transforms?: TransformStep<"string.uppercase" | "value.fallback" | "date.formatShort" | "value.csv" | "layout.maxWidthClass" | "layout.headerRootClass" | "layout.footerRootClass" | "layout.headerRootStyle" | "layout.headerSectionBackground" | "layout.footerRootStyle" | "ui.headerNavLinkClass" | "ui.headingClassFromAlignment" | "ui.bodyClassFromAlignment" | "ui.stackAlignFromAlignment" | "ui.sectionStateTone" | "ui.heroContentWrapperClass" | "ui.heroCtaJustify" | "ui.heroStackJustifyFromVerticalAlignment" | "ui.heroGridClassFromVerticalAlignment" | "ui.conditionalClass" | "ui.twoColumnContainerClass" | "ui.twoColumnFlexBasis" | "media.fromUrl" | "content.interpolateRichTextTokens" | "boxStyles.semanticGap" | "boxStyles.semanticGapValue" | "layout.headerLogoClass" | "layout.headerLogoMediaClass" | "layout.headerLogoTextVisible" | "layout.footerBottomBarClass" | "layout.footerBottomBarContainerClass" | "layout.footerBottomBarStyle" | "layout.
|
|
117
|
+
readonly transforms?: TransformStep<"string.uppercase" | "value.fallback" | "date.formatShort" | "value.csv" | "layout.maxWidthClass" | "layout.headerRootClass" | "layout.footerRootClass" | "layout.headerRootStyle" | "layout.headerSectionBackground" | "layout.footerRootStyle" | "ui.headerNavLinkClass" | "ui.headingClassFromAlignment" | "ui.bodyClassFromAlignment" | "ui.stackAlignFromAlignment" | "ui.sectionStateTone" | "ui.heroContentWrapperClass" | "ui.heroCtaJustify" | "ui.heroStackJustifyFromVerticalAlignment" | "ui.heroGridClassFromVerticalAlignment" | "ui.conditionalClass" | "ui.twoColumnContainerClass" | "ui.twoColumnFlexBasis" | "media.fromUrl" | "content.interpolateRichTextTokens" | "boxStyles.semanticGap" | "boxStyles.semanticGapValue" | "layout.headerLogoClass" | "layout.headerLogoMediaClass" | "layout.headerLogoTextVisible" | "layout.footerBottomBarClass" | "layout.footerBottomBarContainerClass" | "layout.footerBottomBarStyle" | "layout.footerLogoClass" | "layout.chromeLogo" | "layout.headerRuntimeContract">[] | undefined;
|
|
127
118
|
readonly from: string;
|
|
128
119
|
};
|
|
129
120
|
};
|
|
@@ -94,6 +94,7 @@ export type OrderConfirmationSettlement = Readonly<{
|
|
|
94
94
|
export type OrderConfirmationFormatters = Readonly<{
|
|
95
95
|
formatCurrencyAmount: (amountCents: number, currency: string) => string;
|
|
96
96
|
formatDateTime: (isoString: string) => string;
|
|
97
|
+
formatPaymentDueDate: (isoString: string) => string;
|
|
97
98
|
formatInstalmentStatusLabel: (row: OrderInstalmentSummary['rows'][number]) => string;
|
|
98
99
|
resolveCustomerDisplayName: (name: string | null, email: string) => string;
|
|
99
100
|
}>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type FooterCompositionV1, type FooterNavigationLayout } from '../../core/src/index';
|
|
1
|
+
import { type FooterCompositionV1, type FooterArrangement, type FooterNavigationLayout } from '../../core/src/index';
|
|
2
2
|
import type { FooterAttribution, FooterRuntimeViewModel } from '../../blocks/src/client/site-chrome';
|
|
3
3
|
import { type FooterEditorTarget, type planFooterEditorView } from './footerComposer';
|
|
4
4
|
import type { SaveState } from './useFooterComposerState';
|
|
@@ -9,7 +9,7 @@ export declare function SaveBadge({ state }: {
|
|
|
9
9
|
export declare function FooterPreview({ runtime, }: {
|
|
10
10
|
runtime: FooterRuntimeViewModel;
|
|
11
11
|
}): import("react").JSX.Element;
|
|
12
|
-
export declare function FooterOverview({ attribution, plan, composition, onTarget, onChange, manageLinksHref, manageSettingsHref, navigationLayout, onEngagement, onNavigationLayoutChange, }: {
|
|
12
|
+
export declare function FooterOverview({ attribution, plan, composition, onTarget, onChange, manageLinksHref, manageSettingsHref, navigationLayout, arrangement, onEngagement, onNavigationLayoutChange, navigationLayoutPending, navigationLayoutDisabled, }: {
|
|
13
13
|
attribution: FooterAttribution | null;
|
|
14
14
|
plan: FooterPlan;
|
|
15
15
|
composition: FooterCompositionV1;
|
|
@@ -18,7 +18,10 @@ export declare function FooterOverview({ attribution, plan, composition, onTarge
|
|
|
18
18
|
manageLinksHref: string;
|
|
19
19
|
manageSettingsHref: string;
|
|
20
20
|
navigationLayout: FooterNavigationLayout;
|
|
21
|
+
arrangement?: FooterArrangement;
|
|
21
22
|
onEngagement: () => void;
|
|
23
|
+
navigationLayoutPending?: boolean;
|
|
24
|
+
navigationLayoutDisabled?: boolean;
|
|
22
25
|
onNavigationLayoutChange?: (layout: FooterNavigationLayout) => void;
|
|
23
26
|
}): import("react").JSX.Element;
|
|
24
27
|
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
2
|
import type { FooterComposerPanelProps } from './footerComposerPanelTypes';
|
|
3
|
-
export declare function FooterComposerPanel({ apiClient, siteId: rawSiteId, customFooterMode, manageLinksHref, manageFormsHref, manageNewsletterHref, manageSettingsHref, legalRegion, navigationLayoutAccess, initialTarget, initialTargetRequestId, variant, canEdit, onSaved, loadingFallback, }: FooterComposerPanelProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react").JSX.Element | null | undefined;
|
|
3
|
+
export declare function FooterComposerPanel({ apiClient, siteId: rawSiteId, customFooterMode, manageLinksHref, manageFormsHref, manageNewsletterHref, manageSettingsHref, arrangement, legalRegion, navigationLayoutAccess, initialTarget, initialTargetRequestId, variant, canEdit, onSaved, loadingFallback, }: FooterComposerPanelProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react").JSX.Element | null | undefined;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import type { FooterNavigationLayout } from '../../core/src/index';
|
|
2
|
-
export declare function FooterNavigationLayoutControl({ value, onChange, }: Readonly<{
|
|
1
|
+
import type { FooterArrangement, FooterNavigationLayout } from '../../core/src/index';
|
|
2
|
+
export declare function FooterNavigationLayoutControl({ value, arrangement, onChange, pending, disabled, }: Readonly<{
|
|
3
|
+
pending?: boolean;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
arrangement?: FooterArrangement;
|
|
3
6
|
value: FooterNavigationLayout;
|
|
4
7
|
onChange: (layout: FooterNavigationLayout) => void;
|
|
5
|
-
}>): import("react").JSX.Element;
|
|
8
|
+
}>): import("react").JSX.Element | null;
|
|
@@ -24,7 +24,7 @@ export type LeaseParticipationKind = ClassifiedParticipation['kind'];
|
|
|
24
24
|
export declare function classifyLeaseParticipation(participation: EditorLeaseParticipation): ClassifiedParticipation;
|
|
25
25
|
export declare function leaseConfigOf(participation: EditorLeaseParticipation): EditorLeaseConfig | null;
|
|
26
26
|
/** Viewing and leased mounts share one store identity, so switching between them keeps local edits. */
|
|
27
|
-
export declare function leaseExemptionOf(participation: EditorLeaseParticipation): "team-member-profile" |
|
|
27
|
+
export declare function leaseExemptionOf(participation: EditorLeaseParticipation): "sdk" | "team-member-profile" | null;
|
|
28
28
|
export declare function initialParticipationEditability(participation: EditorLeaseParticipation): EditorEditability;
|
|
29
29
|
/**
|
|
30
30
|
* The store's editability after the mount's participation changes. A lease controller owns
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type FooterArrangementPlan, type FooterCompositionV1, type FooterModuleId, type FooterNavigationRole, type FooterNavigationLayout, type FooterSection, type PublicProfile } from '../../core/src/index';
|
|
1
|
+
import { type FooterArrangement, type FooterArrangementPlan, type FooterCompositionV1, type FooterModuleId, type FooterNavigationRole, type FooterNavigationLayout, type FooterSection, type PublicProfile } from '../../core/src/index';
|
|
2
2
|
export type FooterEditorTarget = Readonly<{
|
|
3
3
|
kind: 'overview';
|
|
4
4
|
}> | Readonly<{
|
|
@@ -52,6 +52,7 @@ type FooterEditorViewPlanInput = Readonly<{
|
|
|
52
52
|
hasLegalPolicyNavigation?: boolean;
|
|
53
53
|
hasEngagementSource?: boolean;
|
|
54
54
|
canEdit: boolean;
|
|
55
|
+
arrangement?: FooterArrangement;
|
|
55
56
|
legalRegion?: 'integrated' | 'separate';
|
|
56
57
|
navigationLayout?: FooterNavigationLayout;
|
|
57
58
|
}>;
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
+
import type { FooterArrangement } from '../../core/src/index';
|
|
1
2
|
import type { ReactNode } from 'react';
|
|
2
3
|
import type { ApiClient } from '../../api/src/request';
|
|
3
4
|
import type { FooterEditorTarget } from './footerComposer';
|
|
4
5
|
import type { FooterNavigationLayoutAccess } from './useFooterNavigationLayout';
|
|
5
6
|
export type FooterComposerPanelProps = Readonly<{
|
|
6
|
-
apiClient: ApiClient<'getFooterComposition' | 'updateFooterComposition' | 'getPublicProfile' | 'updatePublicProfile' | 'getNavigationMenus' | 'getMailingListAuthoringContext' | 'listForms' | 'applySiteStyleSelection'>;
|
|
7
|
+
apiClient: ApiClient<'getFooterComposition' | 'updateFooterComposition' | 'getPublicProfile' | 'updatePublicProfile' | 'getNavigationMenus' | 'getMailingListAuthoringContext' | 'listForms' | 'applySiteStyleSelection' | 'getSite'>;
|
|
7
8
|
siteId: string;
|
|
8
9
|
customFooterMode: 'default' | 'blocks' | 'default+blocks' | 'none';
|
|
9
10
|
manageLinksHref: string;
|
|
10
11
|
manageFormsHref?: string;
|
|
11
12
|
manageNewsletterHref?: string;
|
|
12
13
|
manageSettingsHref: string;
|
|
14
|
+
arrangement?: FooterArrangement;
|
|
13
15
|
legalRegion?: 'integrated' | 'separate';
|
|
14
16
|
navigationLayoutAccess?: FooterNavigationLayoutAccess;
|
|
15
17
|
initialTarget?: FooterEditorTarget;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { FooterNavigationLayout } from '../../core/src/index';
|
|
2
|
+
export type FooterNavigationSnapshot = Readonly<{
|
|
3
|
+
siteId: string;
|
|
4
|
+
selectionId: string | null;
|
|
5
|
+
selectionVersion: number;
|
|
6
|
+
layout: FooterNavigationLayout;
|
|
7
|
+
editable: boolean;
|
|
8
|
+
}>;
|
|
9
|
+
export type FooterNavigationRequest = Readonly<{
|
|
10
|
+
snapshot: FooterNavigationSnapshot;
|
|
11
|
+
layout: FooterNavigationLayout;
|
|
12
|
+
}>;
|
|
13
|
+
export type FooterNavigationState = Readonly<{
|
|
14
|
+
source: FooterNavigationSnapshot;
|
|
15
|
+
confirmed: FooterNavigationSnapshot;
|
|
16
|
+
}> & (Readonly<{
|
|
17
|
+
kind: 'ready';
|
|
18
|
+
}> | Readonly<{
|
|
19
|
+
kind: 'saving';
|
|
20
|
+
request: FooterNavigationRequest;
|
|
21
|
+
}> | Readonly<{
|
|
22
|
+
kind: 'reload-failed';
|
|
23
|
+
}>);
|
|
24
|
+
export type FooterNavigationEvent = Readonly<{
|
|
25
|
+
kind: 'confirmed';
|
|
26
|
+
request: FooterNavigationRequest;
|
|
27
|
+
snapshot: FooterNavigationSnapshot;
|
|
28
|
+
}> | Readonly<{
|
|
29
|
+
kind: 'failed' | 'reload-failed';
|
|
30
|
+
request: FooterNavigationRequest;
|
|
31
|
+
}>;
|
|
32
|
+
export declare function refreshFooterNavigation(state: FooterNavigationState, source: FooterNavigationSnapshot): FooterNavigationState;
|
|
33
|
+
/** The controller hands the effect shell an admitted request and its pending state together. */
|
|
34
|
+
export declare function beginFooterNavigationSave(state: FooterNavigationState, layout: FooterNavigationLayout): {
|
|
35
|
+
readonly kind: "blocked";
|
|
36
|
+
readonly request?: undefined;
|
|
37
|
+
readonly state?: undefined;
|
|
38
|
+
} | {
|
|
39
|
+
readonly kind: "save";
|
|
40
|
+
readonly request: Readonly<{
|
|
41
|
+
snapshot: FooterNavigationSnapshot;
|
|
42
|
+
layout: FooterNavigationLayout;
|
|
43
|
+
}>;
|
|
44
|
+
readonly state: {
|
|
45
|
+
readonly kind: "saving";
|
|
46
|
+
readonly request: Readonly<{
|
|
47
|
+
snapshot: FooterNavigationSnapshot;
|
|
48
|
+
layout: FooterNavigationLayout;
|
|
49
|
+
}>;
|
|
50
|
+
readonly source: FooterNavigationSnapshot;
|
|
51
|
+
readonly confirmed: FooterNavigationSnapshot;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
/** Only the admitted request can finish; a newer refreshed revision wins. */
|
|
55
|
+
export declare function transitionFooterNavigation(state: FooterNavigationState, event: FooterNavigationEvent): FooterNavigationState;
|
|
56
|
+
export declare function footerNavigationLayoutValue(state: FooterNavigationState): FooterNavigationLayout;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type FooterAttribution, type FooterResolvedEngagement, type FooterRuntimeViewModel } from '../../blocks/src/client/site-chrome';
|
|
2
|
-
import type { FooterCompositionV1, FooterNavigationLayout, PublicProfile } from '../../core/src/index';
|
|
2
|
+
import type { FooterCompositionV1, FooterArrangement, FooterNavigationLayout, PublicProfile } from '../../core/src/index';
|
|
3
3
|
export type FooterPreviewRuntimeInput = Readonly<{
|
|
4
4
|
composition: FooterCompositionV1;
|
|
5
5
|
publicProfile: PublicProfile;
|
|
@@ -7,6 +7,7 @@ export type FooterPreviewRuntimeInput = Readonly<{
|
|
|
7
7
|
hasLogo: boolean;
|
|
8
8
|
hasMainNavigation: boolean;
|
|
9
9
|
hasLegalPolicyNavigation: boolean;
|
|
10
|
+
arrangement?: FooterArrangement;
|
|
10
11
|
legalRegion: 'integrated' | 'separate';
|
|
11
12
|
navigationLayout: FooterNavigationLayout;
|
|
12
13
|
engagement: FooterResolvedEngagement;
|
|
@@ -18,10 +18,9 @@ export declare function useFooterComposerState({ apiClient, canEdit, initialTarg
|
|
|
18
18
|
message: string | null;
|
|
19
19
|
navigationLayoutControl: {
|
|
20
20
|
readonly layout: "stack" | "inline-wrap";
|
|
21
|
-
readonly
|
|
22
|
-
|
|
23
|
-
readonly layout: "
|
|
24
|
-
readonly onChange: (next: import("../../core/src/index").FooterNavigationLayout) => Promise<void>;
|
|
21
|
+
readonly pending: boolean;
|
|
22
|
+
readonly disabled: boolean;
|
|
23
|
+
readonly onChange: ((layout: import("../../core/src/index").FooterNavigationLayout) => Promise<void>) | undefined;
|
|
25
24
|
};
|
|
26
25
|
saveComposition: (next: FooterCompositionV1, optimistic?: boolean) => Promise<CompositionSaveOutcome>;
|
|
27
26
|
saveProfile: (next: PublicProfile) => Promise<void>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { FooterPreferences } from '../../theme-core/src/site-styles/index';
|
|
2
|
+
import { type ApiClient } from '../../api/src/request';
|
|
2
3
|
import type { Theme } from '../../blocks/src/index';
|
|
3
4
|
import { type FooterNavigationLayout } from '../../core/src/index';
|
|
4
5
|
export type FooterSaveState = 'idle' | 'saving' | 'saved' | 'conflict' | 'failed';
|
|
@@ -7,20 +8,22 @@ export type FooterNavigationLayoutAccess = Readonly<{
|
|
|
7
8
|
}> | Readonly<{
|
|
8
9
|
kind: 'editable';
|
|
9
10
|
theme: Theme;
|
|
11
|
+
preferences: FooterPreferences;
|
|
10
12
|
selectionId: string | null;
|
|
11
13
|
selectionVersion: number;
|
|
12
14
|
}>;
|
|
13
|
-
|
|
14
|
-
apiClient: ApiClient<'applySiteStyleSelection'>;
|
|
15
|
+
type Options = Readonly<{
|
|
16
|
+
apiClient: ApiClient<'applySiteStyleSelection' | 'getSite'>;
|
|
15
17
|
siteId: string;
|
|
16
18
|
access: FooterNavigationLayoutAccess;
|
|
17
19
|
onSaved?: () => void;
|
|
18
20
|
onSaveStateChange: (state: FooterSaveState) => void;
|
|
19
21
|
onMessageChange: (message: string | null) => void;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
readonly onChange: undefined;
|
|
23
|
-
} | {
|
|
22
|
+
}>;
|
|
23
|
+
export declare function useFooterNavigationLayout(options: Options): {
|
|
24
24
|
readonly layout: "stack" | "inline-wrap";
|
|
25
|
-
readonly
|
|
25
|
+
readonly pending: boolean;
|
|
26
|
+
readonly disabled: boolean;
|
|
27
|
+
readonly onChange: ((layout: FooterNavigationLayout) => Promise<void>) | undefined;
|
|
26
28
|
};
|
|
29
|
+
export {};
|
|
@@ -64,3 +64,5 @@ export type AcceptedEventScheduleUpdate<TId extends string = string> = Readonly<
|
|
|
64
64
|
}>;
|
|
65
65
|
cancellationResult: BusinessCancellationResult;
|
|
66
66
|
}>;
|
|
67
|
+
/** Narrow an already typed schedule-write response by its receipt discriminant. */
|
|
68
|
+
export declare function isAcceptedEventScheduleUpdate(response: object): response is AcceptedEventScheduleUpdate;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { type BookingTimeZone, type LocalScheduleDate, type UtcIsoDateTimeString } from './booking-date-time';
|
|
2
|
+
/** Explicit business/viewer projection; never consults a clock or server locale. */
|
|
3
|
+
export type DisplayContext = Readonly<{
|
|
4
|
+
locale: string;
|
|
5
|
+
timeZone: BookingTimeZone;
|
|
6
|
+
}>;
|
|
7
|
+
export type DisplayDate = Readonly<{
|
|
8
|
+
kind: 'instant';
|
|
9
|
+
value: UtcIsoDateTimeString;
|
|
10
|
+
}> | Readonly<{
|
|
11
|
+
kind: 'civil';
|
|
12
|
+
value: LocalScheduleDate;
|
|
13
|
+
}>;
|
|
14
|
+
export type DateStyle = 'numeric' | 'short' | 'long';
|
|
15
|
+
export type ZoneLabel = 'omit' | 'always';
|
|
16
|
+
export type DisplayDateOptions = Readonly<{
|
|
17
|
+
date?: DateStyle;
|
|
18
|
+
weekday?: 'short' | 'long';
|
|
19
|
+
year?: 'numeric' | 'omit';
|
|
20
|
+
}>;
|
|
21
|
+
export type DisplayTimeOptions = Readonly<{
|
|
22
|
+
zone: ZoneLabel;
|
|
23
|
+
}>;
|
|
24
|
+
export type DisplayDateTimeOptions = DisplayDateOptions & DisplayTimeOptions;
|
|
25
|
+
export type DateTimeSpan = Readonly<{
|
|
26
|
+
start: UtcIsoDateTimeString;
|
|
27
|
+
end: UtcIsoDateTimeString;
|
|
28
|
+
}>;
|
|
29
|
+
export type BookingDisplayContext = Readonly<{
|
|
30
|
+
context: DisplayContext;
|
|
31
|
+
zone: ZoneLabel;
|
|
32
|
+
}>;
|
|
33
|
+
/** Site-language policy, shared by customer emails and public event adapters. */
|
|
34
|
+
export declare function inferSiteDateLocale(siteTimeZone: string | null | undefined): string;
|
|
35
|
+
/** Callers resolve the facts once; all clocks consume the same label decision. */
|
|
36
|
+
export declare function resolveBookingDisplayContext(input: Readonly<{
|
|
37
|
+
sessionTimeZone: BookingTimeZone;
|
|
38
|
+
siteTimeZone: BookingTimeZone;
|
|
39
|
+
locale: string;
|
|
40
|
+
isOnline: boolean;
|
|
41
|
+
surface: 'email' | 'dashboard';
|
|
42
|
+
}>): BookingDisplayContext;
|
|
43
|
+
/** Internal adapter profile: SDK keeps its established native/custom typography. */
|
|
44
|
+
export type DatePresentationProfile = Readonly<{
|
|
45
|
+
kind: 'display';
|
|
46
|
+
dateFormat: Intl.DateTimeFormatOptions;
|
|
47
|
+
clock: Readonly<{
|
|
48
|
+
kind: 'compact';
|
|
49
|
+
localeSource: 'product' | 'context';
|
|
50
|
+
}>;
|
|
51
|
+
zone: ZoneLabel;
|
|
52
|
+
}> | Readonly<{
|
|
53
|
+
kind: 'sdk';
|
|
54
|
+
dateFormat: Intl.DateTimeFormatOptions;
|
|
55
|
+
clock: ClockPresentation;
|
|
56
|
+
zone: 'omit';
|
|
57
|
+
}>;
|
|
58
|
+
/** Public SDK option policy lives beside the display profile, never in its adapter. */
|
|
59
|
+
export declare function sdkPresentationProfile(context: DisplayContext, dateFormat: Intl.DateTimeFormatOptions, time?: Readonly<{
|
|
60
|
+
timePresentation?: 'compact' | 'standard';
|
|
61
|
+
format?: Intl.DateTimeFormatOptions;
|
|
62
|
+
}>): DatePresentationProfile;
|
|
63
|
+
type ClockPresentation = Readonly<{
|
|
64
|
+
kind: 'compact';
|
|
65
|
+
localeSource: 'product' | 'context';
|
|
66
|
+
}> | Readonly<{
|
|
67
|
+
kind: 'intl';
|
|
68
|
+
format: Intl.DateTimeFormatOptions;
|
|
69
|
+
}>;
|
|
70
|
+
export declare function formatDate(value: DisplayDate, context: DisplayContext, options?: DisplayDateOptions): string;
|
|
71
|
+
export declare function formatDateRange(start: DisplayDate, endInclusive: DisplayDate, context: DisplayContext, options?: DisplayDateOptions): string;
|
|
72
|
+
export declare function formatDateTime(value: UtcIsoDateTimeString, context: DisplayContext, options: DisplayDateTimeOptions): string;
|
|
73
|
+
export declare function formatDateTimeRange(span: DateTimeSpan, context: DisplayContext, options: DisplayDateTimeOptions): string;
|
|
74
|
+
export declare function formatTime(value: UtcIsoDateTimeString, context: DisplayContext, options: DisplayTimeOptions): string;
|
|
75
|
+
export declare function formatTimeRange(start: UtcIsoDateTimeString, end: UtcIsoDateTimeString, context: DisplayContext, options: DisplayTimeOptions): string;
|
|
76
|
+
/** Sole date projection/typography owner, used by display and scheduled adapters. */
|
|
77
|
+
export declare function presentDate(value: DisplayDate, context: DisplayContext, profile: DatePresentationProfile): string;
|
|
78
|
+
export declare function presentDateRange(start: DisplayDate, end: DisplayDate, context: DisplayContext, profile: DatePresentationProfile): string;
|
|
79
|
+
export declare function presentTime(value: UtcIsoDateTimeString, context: DisplayContext, profile: DatePresentationProfile): string;
|
|
80
|
+
export declare function presentDateTime(value: UtcIsoDateTimeString, context: DisplayContext, profile: DatePresentationProfile): string;
|
|
81
|
+
export declare function presentTimeRange(span: DateTimeSpan, context: DisplayContext, profile: DatePresentationProfile): string;
|
|
82
|
+
export declare function presentDateTimeRange(span: DateTimeSpan, context: DisplayContext, profile: DatePresentationProfile): string;
|
|
83
|
+
export declare function formatTimeAgo(value: UtcIsoDateTimeString, now: UtcIsoDateTimeString, context: DisplayContext): string;
|
|
84
|
+
export declare function formatTimeUntil(value: UtcIsoDateTimeString, now: UtcIsoDateTimeString, context: DisplayContext): string;
|
|
85
|
+
export {};
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
import type { FooterArrangementPlan, FooterLookPolicy, RenderableFooterSection } from './footer-composition-types';
|
|
1
|
+
import type { FooterArrangement, FooterArrangementPlan, FooterLookPolicy, RenderableFooterSection } from './footer-composition-types';
|
|
2
|
+
import type { FooterNavigationLayout } from './footer-navigation-layout';
|
|
3
|
+
/** One policy owner for the served footer and its composition preview. */
|
|
4
|
+
export declare function footerArrangementPolicy(input: Readonly<{
|
|
5
|
+
arrangement?: FooterArrangement;
|
|
6
|
+
legalRegion?: 'integrated' | 'separate';
|
|
7
|
+
storedNavigationLayout?: FooterNavigationLayout | 'inline';
|
|
8
|
+
}>): FooterLookPolicy;
|
|
2
9
|
export declare function planFooterArrangement(renderableSections: readonly RenderableFooterSection[], policy: FooterLookPolicy): FooterArrangementPlan;
|
|
@@ -56,20 +56,25 @@ export type FooterCompositionError = Readonly<{
|
|
|
56
56
|
path: string;
|
|
57
57
|
message: string;
|
|
58
58
|
}>;
|
|
59
|
+
export type FooterArrangement = 'simple' | 'split' | 'centred';
|
|
60
|
+
export type FooterArrangementSlot = 'head' | 'navigation' | 'contact' | 'social' | 'panel' | 'base' | 'stack';
|
|
59
61
|
export type FooterLookPolicy = Readonly<{
|
|
62
|
+
arrangement: FooterArrangement;
|
|
60
63
|
kind: 'integrated-legal' | 'separate-legal-region';
|
|
61
64
|
navigationLayout: FooterNavigationLayout;
|
|
62
65
|
}>;
|
|
63
|
-
export type FooterVisualGroupKind = 'identity' | 'main-navigation' | 'visit' | 'engagement' | 'legal-ending';
|
|
66
|
+
export type FooterVisualGroupKind = 'social' | 'identity' | 'main-navigation' | 'visit' | 'engagement' | 'legal-ending';
|
|
64
67
|
export type FooterColumnCount = 1 | 2 | 3 | 4 | 5;
|
|
65
68
|
export type FooterVisualGroup = Readonly<{
|
|
66
69
|
kind: FooterVisualGroupKind;
|
|
67
70
|
sections: readonly FooterSection[];
|
|
68
71
|
width: 'column' | 'full-row';
|
|
72
|
+
slot?: FooterArrangementSlot;
|
|
69
73
|
}>;
|
|
70
74
|
export type FooterRenderRegion = Readonly<{
|
|
71
75
|
kind: 'engagement-row' | 'main' | 'bottom';
|
|
72
76
|
columns: FooterColumnCount;
|
|
77
|
+
slot?: FooterArrangementSlot;
|
|
73
78
|
groups: readonly FooterVisualGroup[];
|
|
74
79
|
}>;
|
|
75
80
|
export type FooterArrangementPlan = Readonly<{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { FooterCompositionError, FooterCompositionV1, FooterModuleId, FooterSection, FooterSourceAvailability, ResolvedFooterSection } from './footer-composition-types';
|
|
2
2
|
import { type FooterEngagementSection } from './footer-engagement';
|
|
3
3
|
import { type Result } from './result';
|
|
4
|
-
export { planFooterArrangement } from './footer-arrangement';
|
|
4
|
+
export { planFooterArrangement, footerArrangementPolicy } from './footer-arrangement';
|
|
5
5
|
export type * from './footer-composition-types';
|
|
6
6
|
export declare function unsafeAsFooterModuleId(value: string): FooterModuleId;
|
|
7
7
|
export declare function parseFooterModuleId(value: unknown): Result<FooterModuleId, FooterCompositionError>;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import type { FooterArrangement } from './footer-composition-types';
|
|
1
2
|
export declare const footerNavigationLayouts: readonly ["stack", "inline-wrap"];
|
|
2
3
|
export type FooterNavigationLayout = (typeof footerNavigationLayouts)[number];
|
|
3
4
|
export declare const defaultFooterNavigationLayout: FooterNavigationLayout;
|
|
4
5
|
export declare function normalizeFooterNavigationLayout(value: 'stack' | 'inline' | 'inline-wrap' | null | undefined): FooterNavigationLayout;
|
|
6
|
+
/** The arrangement chooses presentation; the stored preference remains intact. */
|
|
7
|
+
export declare function effectiveFooterNavigationLayout(arrangement: FooterArrangement, stored: FooterNavigationLayout): FooterNavigationLayout;
|
|
@@ -24,6 +24,8 @@ export * from './booking-live-payment-terms';
|
|
|
24
24
|
export * from './booking-payment-options';
|
|
25
25
|
export * from './appointment-booking-terms';
|
|
26
26
|
export * from './booking-date-time';
|
|
27
|
+
export { formatDate, formatDateRange, formatDateTime, formatDateTimeRange, formatTime, formatTimeRange, formatTimeAgo, formatTimeUntil, inferSiteDateLocale, resolveBookingDisplayContext, type DisplayContext, type DisplayDate, type DateStyle, type ZoneLabel, type DisplayDateOptions, type DisplayTimeOptions, type DisplayDateTimeOptions, type DateTimeSpan, type BookingDisplayContext, } from './date-display';
|
|
28
|
+
export * from './scheduled-date-time';
|
|
27
29
|
export * from './booking-consent';
|
|
28
30
|
export * from './appointment-service-categories';
|
|
29
31
|
export * from './dated-offering-settlement';
|
|
@@ -17,6 +17,9 @@ export type MailingListSetupRevision = Brand<number, 'MailingListSetupRevision'>
|
|
|
17
17
|
export type MailingListProfileField = 'name' | 'first_name' | 'last_name' | 'company' | 'phone';
|
|
18
18
|
export type MailingListGlobalFields = Readonly<{
|
|
19
19
|
preset: 'emailOnly';
|
|
20
|
+
}> | Readonly<{
|
|
21
|
+
preset: 'emailFirstName';
|
|
22
|
+
firstName: 'required' | 'optional';
|
|
20
23
|
}> | Readonly<{
|
|
21
24
|
preset: 'emailName';
|
|
22
25
|
name: 'required' | 'optional';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Brand, type ContentVersionId, type SiteId } from './branded';
|
|
2
2
|
import type { FooterModuleId } from './footer-composition-types';
|
|
3
|
-
import type { BrevoConfirmation, MailingListGlobalForm, MailingListProvider, MailingListSetupRevision, ToggleConfirmation } from './mailing-list-setup';
|
|
3
|
+
import type { BrevoConfirmation, MailingListGlobalForm, MailingListProvider, MailingListProfileField, MailingListSetupRevision, ToggleConfirmation } from './mailing-list-setup';
|
|
4
4
|
import type { ResolvedMailingListTarget } from './mailing-list-targeting';
|
|
5
5
|
import type { BrevoConnectionId, MailchimpConnectionId } from './mailing-list-identifiers';
|
|
6
6
|
export declare const MAILING_LIST_SUBMISSION_BUDGET_MS = 10000;
|
|
@@ -77,6 +77,9 @@ export type MailingListSignupProfile = (MailingListSignupProfileBase & Readonly<
|
|
|
77
77
|
}>) | (MailingListSignupProfileBase & Readonly<{
|
|
78
78
|
preset: 'emailName';
|
|
79
79
|
name: ResolvedMailingListProfileField;
|
|
80
|
+
}>) | (MailingListSignupProfileBase & Readonly<{
|
|
81
|
+
preset: 'emailFirstName';
|
|
82
|
+
firstName: ResolvedMailingListProfileField;
|
|
80
83
|
}>) | (MailingListSignupProfileBase & Readonly<{
|
|
81
84
|
preset: 'emailFirstLast';
|
|
82
85
|
firstName: ResolvedMailingListProfileField;
|
|
@@ -107,6 +110,8 @@ export declare function parseMailingListSignupProfile(form: MailingListGlobalFor
|
|
|
107
110
|
ok: false;
|
|
108
111
|
error: MailingListSignupProfileParseError;
|
|
109
112
|
}>;
|
|
113
|
+
/** One projection consumed by native signup and external provider adapters. */
|
|
114
|
+
export declare function mailingListSignupProfileValues(profile: MailingListSignupProfile): Readonly<Record<MailingListProfileField, string | null>>;
|
|
110
115
|
type ResolvedMailingListSignupIntentBase = Readonly<{
|
|
111
116
|
siteId: SiteId;
|
|
112
117
|
setupRevision: MailingListSetupRevision;
|
|
@@ -75,6 +75,8 @@ export type PublicContactVisibility = Readonly<{
|
|
|
75
75
|
email: PublicAddressVisibility;
|
|
76
76
|
}>;
|
|
77
77
|
export type PublicProfile = Readonly<{
|
|
78
|
+
/** Explicitly public offering description; never inferred from private AI notes. */
|
|
79
|
+
businessDescription: string | null;
|
|
78
80
|
contact: PublicContactDetails | null;
|
|
79
81
|
contactVisibility: PublicContactVisibility;
|
|
80
82
|
openingHours: WeeklyOpeningHours | null;
|
|
@@ -92,7 +94,7 @@ export type PublicProfile = Readonly<{
|
|
|
92
94
|
premises: boolean | null;
|
|
93
95
|
}>;
|
|
94
96
|
export type PublicProfileParseError = Readonly<{
|
|
95
|
-
code: 'invalid_shape' | 'contact_method_required' | 'invalid_email' | 'invalid_phone' | 'invalid_timezone' | 'invalid_weekdays' | 'invalid_time' | 'invalid_interval' | 'overlapping_intervals' | 'invalid_social_link' | 'invalid_address_visibility' | 'invalid_contact_visibility' | 'invalid_premises' | 'duplicate_social_link_id';
|
|
97
|
+
code: 'invalid_business_description' | 'invalid_shape' | 'contact_method_required' | 'invalid_email' | 'invalid_phone' | 'invalid_timezone' | 'invalid_weekdays' | 'invalid_time' | 'invalid_interval' | 'overlapping_intervals' | 'invalid_social_link' | 'invalid_address_visibility' | 'invalid_contact_visibility' | 'invalid_premises' | 'duplicate_social_link_id';
|
|
96
98
|
path: string;
|
|
97
99
|
message: string;
|
|
98
100
|
}>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export type ScheduledDateTimeInput = Readonly<{
|
|
2
|
+
startsAt: string;
|
|
3
|
+
timeZone: string;
|
|
4
|
+
locale?: string;
|
|
5
|
+
}>;
|
|
6
|
+
export type ScheduledDateTimeRangeInput = Readonly<{
|
|
7
|
+
startsAt: string;
|
|
8
|
+
endsAt: string;
|
|
9
|
+
timeZone: string;
|
|
10
|
+
locale?: string;
|
|
11
|
+
}>;
|
|
12
|
+
export type ScheduledIntlDateTimeFormatOptions = Readonly<Omit<Intl.DateTimeFormatOptions, 'timeZone'>>;
|
|
13
|
+
export type ScheduledDateFormatOptions = Readonly<{
|
|
14
|
+
format?: ScheduledIntlDateTimeFormatOptions;
|
|
15
|
+
}>;
|
|
16
|
+
export type ScheduledCompactTimeFormatOptions = Readonly<{
|
|
17
|
+
timePresentation?: 'compact';
|
|
18
|
+
format?: never;
|
|
19
|
+
}>;
|
|
20
|
+
export type ScheduledStandardTimeFormatOptions = Readonly<{
|
|
21
|
+
timePresentation: 'standard';
|
|
22
|
+
format?: ScheduledIntlDateTimeFormatOptions;
|
|
23
|
+
}>;
|
|
24
|
+
export type ScheduledTimeFormatOptions = ScheduledCompactTimeFormatOptions | ScheduledStandardTimeFormatOptions;
|
|
25
|
+
export type ScheduledDateTimeFormatOptions = Readonly<{
|
|
26
|
+
dateFormat?: ScheduledIntlDateTimeFormatOptions;
|
|
27
|
+
time?: ScheduledTimeFormatOptions;
|
|
28
|
+
}>;
|
|
29
|
+
export type RiverbankDateTimeFormatErrorDetails = Readonly<{
|
|
30
|
+
code: 'invalid_starts_at';
|
|
31
|
+
field: 'startsAt';
|
|
32
|
+
value: string;
|
|
33
|
+
}> | Readonly<{
|
|
34
|
+
code: 'invalid_ends_at';
|
|
35
|
+
field: 'endsAt';
|
|
36
|
+
value: string;
|
|
37
|
+
}> | Readonly<{
|
|
38
|
+
code: 'missing_ends_at';
|
|
39
|
+
field: 'endsAt';
|
|
40
|
+
value: string;
|
|
41
|
+
}> | Readonly<{
|
|
42
|
+
code: 'invalid_time_zone';
|
|
43
|
+
field: 'timeZone';
|
|
44
|
+
value: string;
|
|
45
|
+
}> | Readonly<{
|
|
46
|
+
code: 'invalid_locale';
|
|
47
|
+
field: 'locale';
|
|
48
|
+
value: string;
|
|
49
|
+
}> | Readonly<{
|
|
50
|
+
code: 'end_before_start';
|
|
51
|
+
field: 'endsAt';
|
|
52
|
+
value: string;
|
|
53
|
+
}>;
|
|
54
|
+
export type RiverbankDateTimeFormatErrorCode = RiverbankDateTimeFormatErrorDetails['code'];
|
|
55
|
+
export type RiverbankDateTimeFormatErrorField = RiverbankDateTimeFormatErrorDetails['field'];
|
|
56
|
+
export declare class RiverbankDateTimeFormatError extends Error {
|
|
57
|
+
readonly name = "RiverbankDateTimeFormatError";
|
|
58
|
+
readonly code: RiverbankDateTimeFormatErrorCode;
|
|
59
|
+
readonly field: RiverbankDateTimeFormatErrorField;
|
|
60
|
+
readonly value: string;
|
|
61
|
+
constructor(details: RiverbankDateTimeFormatErrorDetails);
|
|
62
|
+
}
|
|
63
|
+
/** Public contract adapters: admission/options here, all presentation in date-display. */
|
|
64
|
+
export declare function formatScheduledDate(input: ScheduledDateTimeInput, options?: ScheduledDateFormatOptions): string;
|
|
65
|
+
export declare function formatScheduledTime(input: ScheduledDateTimeInput, options?: ScheduledTimeFormatOptions): string;
|
|
66
|
+
export declare function formatScheduledDateTime(input: ScheduledDateTimeInput, options?: ScheduledDateTimeFormatOptions): string;
|
|
67
|
+
export declare function formatScheduledDateRange(input: ScheduledDateTimeRangeInput, options?: ScheduledDateFormatOptions): string;
|
|
68
|
+
export declare function formatScheduledTimeRange(input: ScheduledDateTimeRangeInput, options?: ScheduledTimeFormatOptions): string;
|
|
69
|
+
export declare function formatScheduledDateTimeRange(input: ScheduledDateTimeRangeInput, options?: ScheduledDateTimeFormatOptions): string;
|