@riverbankcms/sdk 0.109.0 → 0.111.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-DWqwfy3_.mjs → PreviewEditorSidebar-CTR6LUhN.mjs} +178 -117
- package/dist/{PreviewEditorUI-B7OL4sfR.mjs → PreviewEditorUI-DZg15Zip.mjs} +3 -4
- package/dist/{PreviewQueryProvider-D0y2l8JN.mjs → PreviewQueryProvider-kkmjklLG.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-D8Gt9Gbe.mjs → SdkPreviewModeRuntime-DeOTAFvR.mjs} +229 -219
- package/dist/{SiteChromeCustomizeContext-DUpalEdL.mjs → SiteChromeCustomizeContext-DOSDLCiJ.mjs} +1695 -2169
- package/dist/_dts/ai/src/contracts/proposals.d.ts +1716 -76
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +5 -5
- package/dist/_dts/api/src/contentRuntime.d.ts +4 -1
- package/dist/_dts/api/src/courses.d.ts +30 -15
- package/dist/_dts/api/src/endpoints.d.ts +14 -4
- package/dist/_dts/api/src/index.d.ts +2 -2
- package/dist/_dts/api/src/sdkContracts.d.ts +23 -11
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +5 -1
- package/dist/_dts/api/src/siteOperations.d.ts +11 -19
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +6 -6
- package/dist/_dts/api/src/webhooks.d.ts +98 -1
- package/dist/_dts/billing/src/site-arrangements.d.ts +3 -0
- package/dist/_dts/blocks/src/client/course-registration.d.ts +4 -1
- package/dist/_dts/blocks/src/client.d.ts +4 -1
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
- package/dist/_dts/blocks/src/index.d.ts +3 -1
- package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +2 -4
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule.d.ts +3 -2
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/single-button.d.ts +2 -1
- package/dist/_dts/blocks/src/system/constants/buttonRoles.d.ts +35 -0
- package/dist/_dts/blocks/src/system/fields/button.d.ts +10 -21
- package/dist/_dts/blocks/src/system/fields/ctas.d.ts +2 -1
- package/dist/_dts/blocks/src/system/fragments/library/heroCtaRow.d.ts +9 -5
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +18 -18
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +9 -9
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessWholeSeriesRegistrationFlow.d.ts +29 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/buttonAffordance.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/ErrorStep.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/PaymentFailedStep.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/VerifyingTimeoutStep.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +21 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +4 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.contract.d.ts +326 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.planning.d.ts +27 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +5 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +3 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +5 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +2 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +6 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +7 -6
- package/dist/_dts/blocks/src/system/runtime/nodes/shop.types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +2 -1
- package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +4 -2
- package/dist/_dts/content-editor/src/index.d.ts +12 -12
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +17 -2
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +221 -53
- package/dist/_dts/editor-blocks/src/widgets/button/context.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/index.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/ButtonStylePicker.d.ts +16 -0
- package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -3
- package/dist/_dts/preview-next/src/client/preview/PreviewDesignOpenRequestContext.d.ts +7 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +5 -11
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +5 -6
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +6 -7
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +7 -9
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +4 -11
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +7 -7
- package/dist/_dts/preview-next/src/client/preview/sidebarTabPreference.d.ts +0 -8
- package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +1 -11
- package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +1 -5
- package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +2 -3
- package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +3 -4
- package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +3 -5
- package/dist/_dts/sdk/src/bookings/index.d.ts +5 -4
- package/dist/_dts/sdk/src/bookings/types.d.ts +3 -3
- package/dist/_dts/sdk/src/cli/commands/style.d.ts +3 -2
- package/dist/_dts/sdk/src/client/management/types.d.ts +2 -1
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +12 -15
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/sdk/src/webhooks/index.d.ts +1 -1
- package/dist/_dts/sdk/src/webhooks/verify.d.ts +3 -3
- package/dist/_dts/site-commands/src/commands.d.ts +129 -6
- package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/styles/domain.d.ts +80 -0
- package/dist/_dts/theme-core/src/buttons/styles/index.d.ts +3 -0
- package/dist/_dts/theme-core/src/buttons/styles/recipes/defineStaticButtonStyleRecipe.d.ts +49 -0
- package/dist/_dts/theme-core/src/buttons/styles/recipes/quietArrow.d.ts +67 -0
- package/dist/_dts/theme-core/src/buttons/styles/recipes/staticRecipes.d.ts +649 -0
- package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +753 -0
- package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +69 -0
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +26 -24
- package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +19 -153
- package/dist/_dts/theme-core/src/site-styles/headerCtaVariants.d.ts +3 -1
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +8 -9
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +4 -4
- package/dist/_dts/ui/src/palette/hex.d.ts +3 -3
- package/dist/cli/index.mjs +1760 -1914
- package/dist/cli/init-docs/content/workflow-isr-revalidation.md +1 -1
- package/dist/client/{DiscountCodeDisclosure-DU1ygxU2.mjs → DiscountCodeDisclosure-C4xvTBux.mjs} +1 -1
- package/dist/client/{EventCombined.client-DB5zagCo.mjs → EventCombined.client-Cr7G131j.mjs} +2 -3
- package/dist/client/{EventListing.client-CTX9JHBL.mjs → EventListing.client-CAjbseNy.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-BYImhgiB.mjs → LeafletStaticMap-BMlWfwz3.mjs} +1 -1
- package/dist/client/{MagicLinkForm-CRkw_M3l.mjs → MagicLinkForm-ChdFz96y.mjs} +1 -2
- package/dist/client/{StepIndicator-BnmVBJJh.mjs → StepIndicator-7D3GaBeM.mjs} +2 -2
- package/dist/client/{accordion-CeGreumd.mjs → accordion-D8JTs2Si.mjs} +1 -1
- package/dist/client/{bookingForm-CSzFNrpN.mjs → bookingForm-H3DCRBHs.mjs} +6 -7
- package/dist/client/bookings.mjs +3069 -1447
- package/dist/client/{carousel-B2jDtogf.mjs → carousel-DMr_QWlz.mjs} +1 -1
- package/dist/client/{cart-D-jZ-vaY.mjs → cart-DWMbfBdR.mjs} +3 -3
- package/dist/client/{checkout-Dza-LA7N.mjs → checkout-zmfdkXLx.mjs} +3 -3
- package/dist/client/client.mjs +1732 -1913
- package/dist/client/{colorStyles-CrgzoXsm.mjs → colorStyles-gcTh5yZT.mjs} +2 -12
- package/dist/client/{colorTokenParts-CMugwvX_.mjs → colorTokenParts-FSS3al6l.mjs} +31 -1
- package/dist/client/{courseRegistration-TYkNychb.mjs → courseRegistration-Z_mn18jy.mjs} +100 -37
- package/dist/client/{eventCalendar-BI_90SsT.mjs → eventCalendar-CYp0YJGF.mjs} +4 -5
- package/dist/client/{eventCombined-mNrpryE9.mjs → eventCombined-rKyYZUa9.mjs} +2 -2
- package/dist/client/{eventDetails-D4GVlCIY.mjs → eventDetails-X0ZaUuMj.mjs} +3 -3
- package/dist/client/{eventListing-YhKN018y.mjs → eventListing-W1SuL7EP.mjs} +2 -2
- package/dist/client/{eventRegistration-CdHGtilr.mjs → eventRegistration-ClWricui.mjs} +6 -7
- package/dist/client/{form-AcAL45rA.mjs → form--eKPwAAD.mjs} +1 -2
- package/dist/client/{headerSection-uEC52ueD.mjs → headerSection-BSeGr-FS.mjs} +2 -3
- package/dist/client/hooks.mjs +1554 -1871
- package/dist/client/{locationMap-_wJDSUYe.mjs → locationMap-BpOrtNYn.mjs} +8 -5
- package/dist/client/{media-BK0O3b-U.mjs → media-DoF0dcVx.mjs} +2 -2
- package/dist/client/{newsletterForm-DrArsb2B.mjs → newsletterForm-Bt7it7Dy.mjs} +1 -2
- package/dist/client/{pricing-BSYVghwo.mjs → pricing-BTjSDDr4.mjs} +1 -1
- package/dist/client/{productDetail-Dyk90sMs.mjs → productDetail-ICnVTcCg.mjs} +3 -3
- package/dist/client/{productList-BCKThwAI.mjs → productList-ZHr6D604.mjs} +3 -3
- package/dist/client/{propsDecoder-CkXxkdSR.mjs → propsDecoder-wWN0tBDF.mjs} +2351 -129
- package/dist/client/rendering/client.mjs +1664 -1824
- package/dist/client/rendering/islands.mjs +20 -20
- package/dist/client/rendering.mjs +1697 -1909
- package/dist/client/{shop-DeltVH10.mjs → shop-C1u_BUn0.mjs} +5 -6
- package/dist/client/{shop-commerce-BD9Jsm2Z.mjs → shop-commerce-CleZdRha.mjs} +5 -6
- package/dist/client/{shop-commerce-store-CmXD6FDS.mjs → shop-commerce-store-ycnoB2Ce.mjs} +1 -1
- package/dist/client/{shopShared-B8v-lH_F.mjs → shopShared-CPhByt2a.mjs} +3 -3
- package/dist/client/{useDiscountCodeUi-DbWJN8ld.mjs → useDiscountCodeUi-cStSQI6C.mjs} +1 -1
- package/dist/client/{useEventFilters-EJIMUnqT.mjs → useEventFilters-DKPN7hSY.mjs} +26 -27
- package/dist/client/{usePolling-Cmh14fc7.mjs → usePolling-BKAd6pkZ.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +37 -6
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/middleware.mjs +37 -6
- package/dist/{previewAuthStore-CTO7CRPk.mjs → previewAuthStore-BkT1D06A.mjs} +37 -6
- package/dist/{sdk-runtime-Dou0GAav.mjs → sdk-runtime-hu3wr3ng.mjs} +2 -2
- package/dist/{separator-CI5wZNXT.mjs → separator-Bln8izQ9.mjs} +1 -1
- package/dist/server/components.mjs +1472 -1788
- package/dist/server/config-validation.mjs +1559 -1876
- package/dist/server/config.mjs +1559 -1876
- package/dist/server/data.mjs +1554 -1871
- package/dist/server/index.mjs +38 -7
- package/dist/server/next/revalidate.mjs +53 -1
- package/dist/server/next.mjs +1584 -1869
- package/dist/server/page-converter.mjs +1543 -1860
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +1472 -1788
- package/dist/server/rendering.mjs +1472 -1788
- package/dist/server/routing.mjs +1600 -1891
- package/dist/server/server.mjs +1574 -1860
- package/dist/server/theme-bridge.mjs +1436 -1619
- package/dist/server/theme.mjs +1345 -1241
- package/dist/server/webhooks.mjs +54 -2
- package/package.json +1 -1
- package/dist/_dts/theme-core/src/buttons/personalities/brushed-wash.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/confident-chip.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/earth-pill.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/editorial-link.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/flat-ink.d.ts +0 -20
- package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +0 -172
- package/dist/_dts/theme-core/src/buttons/personalities/ink-stamp.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/joy-stamp.d.ts +0 -22
- package/dist/_dts/theme-core/src/buttons/personalities/ornate-ritual.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/pebble.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/quiet-arrow.d.ts +0 -17
- package/dist/_dts/theme-core/src/buttons/personalities/showtime-pill.d.ts +0 -17
- package/dist/_dts/theme-core/src/buttons/personalities/soft-pill.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +0 -17
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +0 -285
- package/dist/client/buttons-DoFV7KDL.mjs +0 -2115
- package/dist/client/foregroundContract-xICPq59x.mjs +0 -31
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const BUTTON_STYLE_IDS: readonly ["soft-pill", "earth-pill", "confident-chip", "editorial-link", "pebble", "ink-stamp", "flat-ink", "brushed-wash", "showtime-pill", "joy-stamp", "ornate-ritual", "quiet-arrow"];
|
|
3
|
+
export type ButtonStyleId = (typeof BUTTON_STYLE_IDS)[number];
|
|
4
|
+
export declare const quietArrowParametersSchema: z.ZodObject<{
|
|
5
|
+
secondaryTreatment: z.ZodEnum<{
|
|
6
|
+
outlined: "outlined";
|
|
7
|
+
"solid-accent": "solid-accent";
|
|
8
|
+
}>;
|
|
9
|
+
}, z.core.$strict>;
|
|
10
|
+
export type QuietArrowParameters = z.infer<typeof quietArrowParametersSchema>;
|
|
11
|
+
export declare const buttonStyleSelectionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
12
|
+
styleId: z.ZodLiteral<"soft-pill">;
|
|
13
|
+
parameters: z.ZodObject<{}, z.core.$strict>;
|
|
14
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
15
|
+
styleId: z.ZodLiteral<"earth-pill">;
|
|
16
|
+
parameters: z.ZodObject<{}, z.core.$strict>;
|
|
17
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
18
|
+
styleId: z.ZodLiteral<"confident-chip">;
|
|
19
|
+
parameters: z.ZodObject<{}, z.core.$strict>;
|
|
20
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
21
|
+
styleId: z.ZodLiteral<"editorial-link">;
|
|
22
|
+
parameters: z.ZodObject<{}, z.core.$strict>;
|
|
23
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
24
|
+
styleId: z.ZodLiteral<"pebble">;
|
|
25
|
+
parameters: z.ZodObject<{}, z.core.$strict>;
|
|
26
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
27
|
+
styleId: z.ZodLiteral<"ink-stamp">;
|
|
28
|
+
parameters: z.ZodObject<{}, z.core.$strict>;
|
|
29
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
30
|
+
styleId: z.ZodLiteral<"flat-ink">;
|
|
31
|
+
parameters: z.ZodObject<{}, z.core.$strict>;
|
|
32
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
33
|
+
styleId: z.ZodLiteral<"brushed-wash">;
|
|
34
|
+
parameters: z.ZodObject<{}, z.core.$strict>;
|
|
35
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
36
|
+
styleId: z.ZodLiteral<"showtime-pill">;
|
|
37
|
+
parameters: z.ZodObject<{}, z.core.$strict>;
|
|
38
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
39
|
+
styleId: z.ZodLiteral<"joy-stamp">;
|
|
40
|
+
parameters: z.ZodObject<{}, z.core.$strict>;
|
|
41
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
42
|
+
styleId: z.ZodLiteral<"ornate-ritual">;
|
|
43
|
+
parameters: z.ZodObject<{}, z.core.$strict>;
|
|
44
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
45
|
+
styleId: z.ZodLiteral<"quiet-arrow">;
|
|
46
|
+
parameters: z.ZodObject<{
|
|
47
|
+
secondaryTreatment: z.ZodEnum<{
|
|
48
|
+
outlined: "outlined";
|
|
49
|
+
"solid-accent": "solid-accent";
|
|
50
|
+
}>;
|
|
51
|
+
}, z.core.$strict>;
|
|
52
|
+
}, z.core.$strict>], "styleId">;
|
|
53
|
+
export type ButtonStyleSelection = z.infer<typeof buttonStyleSelectionSchema>;
|
|
54
|
+
export type ButtonStyleSelectionFor<TStyleId extends ButtonStyleId> = Extract<ButtonStyleSelection, Readonly<{
|
|
55
|
+
styleId: TStyleId;
|
|
56
|
+
}>>;
|
|
57
|
+
export declare const DEFAULT_BUTTON_STYLE_SELECTION: {
|
|
58
|
+
readonly styleId: "soft-pill";
|
|
59
|
+
readonly parameters: {};
|
|
60
|
+
};
|
|
61
|
+
export declare function createDefaultButtonStyleSelection(styleId: ButtonStyleId): ButtonStyleSelection;
|
|
62
|
+
export declare function isButtonStyleId(value: string): value is ButtonStyleId;
|
|
63
|
+
/**
|
|
64
|
+
* Stable identity for a validated style selection. Parsing first canonicalises
|
|
65
|
+
* parameter key order, so future recipe parameters do not require editor-core
|
|
66
|
+
* equality or key logic.
|
|
67
|
+
*/
|
|
68
|
+
export declare function buttonStyleSelectionKey(selection: ButtonStyleSelection): string;
|
|
69
|
+
export declare function buttonStyleSelectionsEqual(a: ButtonStyleSelection, b: ButtonStyleSelection): boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type ButtonStyleSelection } from '../buttons/styles';
|
|
2
2
|
import { type KnownCuratedPaletteValueKey } from '../palette/curated';
|
|
3
3
|
import type { Theme } from '../schema';
|
|
4
4
|
import { type HeaderLayoutId, type HeaderLayoutIdValue, type HeaderLookId, type HeaderStyleId } from './headerLooks';
|
|
@@ -28,7 +28,7 @@ type CuratedSiteStyleCardOverrides = NonNullable<Theme['cards']>;
|
|
|
28
28
|
type CuratedSiteStyleTestimonialQuoteOverrides = NonNullable<Theme['testimonialQuote']>;
|
|
29
29
|
/**
|
|
30
30
|
* Site-style-specific Theme overrides are applied after token recipes,
|
|
31
|
-
* button
|
|
31
|
+
* button style, and curated palette selection have compiled the base
|
|
32
32
|
* Theme. Values here intentionally win; palette and button selections remain
|
|
33
33
|
* independent Style configurator choices.
|
|
34
34
|
*/
|
|
@@ -58,7 +58,9 @@ export type CuratedSiteStyleThemeOverrides = Readonly<{
|
|
|
58
58
|
*/
|
|
59
59
|
testimonialQuote?: CuratedSiteStyleTestimonialQuoteOverrides;
|
|
60
60
|
}>;
|
|
61
|
-
export type
|
|
61
|
+
export type ButtonStyleChoice = ButtonStyleSelection & Readonly<{
|
|
62
|
+
note?: string;
|
|
63
|
+
}>;
|
|
62
64
|
export type CuratedPaletteRecommendation = CuratedChoice<KnownCuratedPaletteValueKey>;
|
|
63
65
|
export type HeaderLayoutChoice = CuratedChoice<HeaderLayoutId>;
|
|
64
66
|
export type HeaderStyleChoice = CuratedChoice<HeaderStyleId>;
|
|
@@ -121,7 +123,7 @@ export type CuratedSiteStyle = Readonly<{
|
|
|
121
123
|
recommendedHeaderLookIds: readonly HeaderLookId[];
|
|
122
124
|
recommendedFooterLookIds: readonly FooterLookId[];
|
|
123
125
|
/** Authored picker choices. First item is the default/fallback. */
|
|
124
|
-
|
|
126
|
+
buttonStyleChoices: NonEmptyReadonlyArray<ButtonStyleChoice>;
|
|
125
127
|
/** Authored picker choices. First item is the default/fallback. */
|
|
126
128
|
paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
|
|
127
129
|
/** Concrete typography applied when this site style is selected. */
|
|
@@ -129,7 +131,7 @@ export type CuratedSiteStyle = Readonly<{
|
|
|
129
131
|
/** Optional concrete hero typography applied with the site style. */
|
|
130
132
|
heroTypography?: SiteStyleHeroTypography;
|
|
131
133
|
}>;
|
|
132
|
-
export declare function
|
|
134
|
+
export declare function defaultButtonStyleSelectionForSiteStyle(siteStyle: CuratedSiteStyle): ButtonStyleSelection;
|
|
133
135
|
export declare function defaultPaletteForSiteStyle(siteStyle: CuratedSiteStyle): KnownCuratedPaletteValueKey;
|
|
134
136
|
/**
|
|
135
137
|
* V1 generated site styles are curated product presets, not AI-authored design
|
|
@@ -168,7 +170,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
|
|
|
168
170
|
recommendedHeaderLookIds: readonly HeaderLookId[];
|
|
169
171
|
recommendedFooterLookIds: readonly FooterLookId[];
|
|
170
172
|
/** Authored picker choices. First item is the default/fallback. */
|
|
171
|
-
|
|
173
|
+
buttonStyleChoices: NonEmptyReadonlyArray<ButtonStyleChoice>;
|
|
172
174
|
/** Authored picker choices. First item is the default/fallback. */
|
|
173
175
|
paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
|
|
174
176
|
/** Concrete typography applied when this site style is selected. */
|
|
@@ -207,7 +209,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
|
|
|
207
209
|
recommendedHeaderLookIds: readonly HeaderLookId[];
|
|
208
210
|
recommendedFooterLookIds: readonly FooterLookId[];
|
|
209
211
|
/** Authored picker choices. First item is the default/fallback. */
|
|
210
|
-
|
|
212
|
+
buttonStyleChoices: NonEmptyReadonlyArray<ButtonStyleChoice>;
|
|
211
213
|
/** Authored picker choices. First item is the default/fallback. */
|
|
212
214
|
paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
|
|
213
215
|
/** Concrete typography applied when this site style is selected. */
|
|
@@ -246,7 +248,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
|
|
|
246
248
|
recommendedHeaderLookIds: readonly HeaderLookId[];
|
|
247
249
|
recommendedFooterLookIds: readonly FooterLookId[];
|
|
248
250
|
/** Authored picker choices. First item is the default/fallback. */
|
|
249
|
-
|
|
251
|
+
buttonStyleChoices: NonEmptyReadonlyArray<ButtonStyleChoice>;
|
|
250
252
|
/** Authored picker choices. First item is the default/fallback. */
|
|
251
253
|
paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
|
|
252
254
|
/** Concrete typography applied when this site style is selected. */
|
|
@@ -285,7 +287,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
|
|
|
285
287
|
recommendedHeaderLookIds: readonly HeaderLookId[];
|
|
286
288
|
recommendedFooterLookIds: readonly FooterLookId[];
|
|
287
289
|
/** Authored picker choices. First item is the default/fallback. */
|
|
288
|
-
|
|
290
|
+
buttonStyleChoices: NonEmptyReadonlyArray<ButtonStyleChoice>;
|
|
289
291
|
/** Authored picker choices. First item is the default/fallback. */
|
|
290
292
|
paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
|
|
291
293
|
/** Concrete typography applied when this site style is selected. */
|
|
@@ -324,7 +326,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
|
|
|
324
326
|
recommendedHeaderLookIds: readonly HeaderLookId[];
|
|
325
327
|
recommendedFooterLookIds: readonly FooterLookId[];
|
|
326
328
|
/** Authored picker choices. First item is the default/fallback. */
|
|
327
|
-
|
|
329
|
+
buttonStyleChoices: NonEmptyReadonlyArray<ButtonStyleChoice>;
|
|
328
330
|
/** Authored picker choices. First item is the default/fallback. */
|
|
329
331
|
paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
|
|
330
332
|
/** Concrete typography applied when this site style is selected. */
|
|
@@ -363,7 +365,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
|
|
|
363
365
|
recommendedHeaderLookIds: readonly HeaderLookId[];
|
|
364
366
|
recommendedFooterLookIds: readonly FooterLookId[];
|
|
365
367
|
/** Authored picker choices. First item is the default/fallback. */
|
|
366
|
-
|
|
368
|
+
buttonStyleChoices: NonEmptyReadonlyArray<ButtonStyleChoice>;
|
|
367
369
|
/** Authored picker choices. First item is the default/fallback. */
|
|
368
370
|
paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
|
|
369
371
|
/** Concrete typography applied when this site style is selected. */
|
|
@@ -402,7 +404,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
|
|
|
402
404
|
recommendedHeaderLookIds: readonly HeaderLookId[];
|
|
403
405
|
recommendedFooterLookIds: readonly FooterLookId[];
|
|
404
406
|
/** Authored picker choices. First item is the default/fallback. */
|
|
405
|
-
|
|
407
|
+
buttonStyleChoices: NonEmptyReadonlyArray<ButtonStyleChoice>;
|
|
406
408
|
/** Authored picker choices. First item is the default/fallback. */
|
|
407
409
|
paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
|
|
408
410
|
/** Concrete typography applied when this site style is selected. */
|
|
@@ -441,7 +443,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
|
|
|
441
443
|
recommendedHeaderLookIds: readonly HeaderLookId[];
|
|
442
444
|
recommendedFooterLookIds: readonly FooterLookId[];
|
|
443
445
|
/** Authored picker choices. First item is the default/fallback. */
|
|
444
|
-
|
|
446
|
+
buttonStyleChoices: NonEmptyReadonlyArray<ButtonStyleChoice>;
|
|
445
447
|
/** Authored picker choices. First item is the default/fallback. */
|
|
446
448
|
paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
|
|
447
449
|
/** Concrete typography applied when this site style is selected. */
|
|
@@ -480,7 +482,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
|
|
|
480
482
|
recommendedHeaderLookIds: readonly HeaderLookId[];
|
|
481
483
|
recommendedFooterLookIds: readonly FooterLookId[];
|
|
482
484
|
/** Authored picker choices. First item is the default/fallback. */
|
|
483
|
-
|
|
485
|
+
buttonStyleChoices: NonEmptyReadonlyArray<ButtonStyleChoice>;
|
|
484
486
|
/** Authored picker choices. First item is the default/fallback. */
|
|
485
487
|
paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
|
|
486
488
|
/** Concrete typography applied when this site style is selected. */
|
|
@@ -519,7 +521,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
|
|
|
519
521
|
recommendedHeaderLookIds: readonly HeaderLookId[];
|
|
520
522
|
recommendedFooterLookIds: readonly FooterLookId[];
|
|
521
523
|
/** Authored picker choices. First item is the default/fallback. */
|
|
522
|
-
|
|
524
|
+
buttonStyleChoices: NonEmptyReadonlyArray<ButtonStyleChoice>;
|
|
523
525
|
/** Authored picker choices. First item is the default/fallback. */
|
|
524
526
|
paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
|
|
525
527
|
/** Concrete typography applied when this site style is selected. */
|
|
@@ -558,7 +560,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
|
|
|
558
560
|
recommendedHeaderLookIds: readonly HeaderLookId[];
|
|
559
561
|
recommendedFooterLookIds: readonly FooterLookId[];
|
|
560
562
|
/** Authored picker choices. First item is the default/fallback. */
|
|
561
|
-
|
|
563
|
+
buttonStyleChoices: NonEmptyReadonlyArray<ButtonStyleChoice>;
|
|
562
564
|
/** Authored picker choices. First item is the default/fallback. */
|
|
563
565
|
paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
|
|
564
566
|
/** Concrete typography applied when this site style is selected. */
|
|
@@ -597,7 +599,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
|
|
|
597
599
|
recommendedHeaderLookIds: readonly HeaderLookId[];
|
|
598
600
|
recommendedFooterLookIds: readonly FooterLookId[];
|
|
599
601
|
/** Authored picker choices. First item is the default/fallback. */
|
|
600
|
-
|
|
602
|
+
buttonStyleChoices: NonEmptyReadonlyArray<ButtonStyleChoice>;
|
|
601
603
|
/** Authored picker choices. First item is the default/fallback. */
|
|
602
604
|
paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
|
|
603
605
|
/** Concrete typography applied when this site style is selected. */
|
|
@@ -636,7 +638,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
|
|
|
636
638
|
recommendedHeaderLookIds: readonly HeaderLookId[];
|
|
637
639
|
recommendedFooterLookIds: readonly FooterLookId[];
|
|
638
640
|
/** Authored picker choices. First item is the default/fallback. */
|
|
639
|
-
|
|
641
|
+
buttonStyleChoices: NonEmptyReadonlyArray<ButtonStyleChoice>;
|
|
640
642
|
/** Authored picker choices. First item is the default/fallback. */
|
|
641
643
|
paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
|
|
642
644
|
/** Concrete typography applied when this site style is selected. */
|
|
@@ -675,7 +677,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
|
|
|
675
677
|
recommendedHeaderLookIds: readonly HeaderLookId[];
|
|
676
678
|
recommendedFooterLookIds: readonly FooterLookId[];
|
|
677
679
|
/** Authored picker choices. First item is the default/fallback. */
|
|
678
|
-
|
|
680
|
+
buttonStyleChoices: NonEmptyReadonlyArray<ButtonStyleChoice>;
|
|
679
681
|
/** Authored picker choices. First item is the default/fallback. */
|
|
680
682
|
paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
|
|
681
683
|
/** Concrete typography applied when this site style is selected. */
|
|
@@ -714,7 +716,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
|
|
|
714
716
|
recommendedHeaderLookIds: readonly HeaderLookId[];
|
|
715
717
|
recommendedFooterLookIds: readonly FooterLookId[];
|
|
716
718
|
/** Authored picker choices. First item is the default/fallback. */
|
|
717
|
-
|
|
719
|
+
buttonStyleChoices: NonEmptyReadonlyArray<ButtonStyleChoice>;
|
|
718
720
|
/** Authored picker choices. First item is the default/fallback. */
|
|
719
721
|
paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
|
|
720
722
|
/** Concrete typography applied when this site style is selected. */
|
|
@@ -753,7 +755,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
|
|
|
753
755
|
recommendedHeaderLookIds: readonly HeaderLookId[];
|
|
754
756
|
recommendedFooterLookIds: readonly FooterLookId[];
|
|
755
757
|
/** Authored picker choices. First item is the default/fallback. */
|
|
756
|
-
|
|
758
|
+
buttonStyleChoices: NonEmptyReadonlyArray<ButtonStyleChoice>;
|
|
757
759
|
/** Authored picker choices. First item is the default/fallback. */
|
|
758
760
|
paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
|
|
759
761
|
/** Concrete typography applied when this site style is selected. */
|
|
@@ -792,7 +794,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
|
|
|
792
794
|
recommendedHeaderLookIds: readonly HeaderLookId[];
|
|
793
795
|
recommendedFooterLookIds: readonly FooterLookId[];
|
|
794
796
|
/** Authored picker choices. First item is the default/fallback. */
|
|
795
|
-
|
|
797
|
+
buttonStyleChoices: NonEmptyReadonlyArray<ButtonStyleChoice>;
|
|
796
798
|
/** Authored picker choices. First item is the default/fallback. */
|
|
797
799
|
paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
|
|
798
800
|
/** Concrete typography applied when this site style is selected. */
|
|
@@ -831,7 +833,7 @@ export declare const curatedSiteStyles: readonly [Readonly<{
|
|
|
831
833
|
recommendedHeaderLookIds: readonly HeaderLookId[];
|
|
832
834
|
recommendedFooterLookIds: readonly FooterLookId[];
|
|
833
835
|
/** Authored picker choices. First item is the default/fallback. */
|
|
834
|
-
|
|
836
|
+
buttonStyleChoices: NonEmptyReadonlyArray<ButtonStyleChoice>;
|
|
835
837
|
/** Authored picker choices. First item is the default/fallback. */
|
|
836
838
|
paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
|
|
837
839
|
/** Concrete typography applied when this site style is selected. */
|
|
@@ -871,7 +873,7 @@ export declare const curatedSiteStylesById: Map<SiteStyleId, Readonly<{
|
|
|
871
873
|
recommendedHeaderLookIds: readonly HeaderLookId[];
|
|
872
874
|
recommendedFooterLookIds: readonly FooterLookId[];
|
|
873
875
|
/** Authored picker choices. First item is the default/fallback. */
|
|
874
|
-
|
|
876
|
+
buttonStyleChoices: NonEmptyReadonlyArray<ButtonStyleChoice>;
|
|
875
877
|
/** Authored picker choices. First item is the default/fallback. */
|
|
876
878
|
paletteRecommendations: NonEmptyReadonlyArray<CuratedPaletteRecommendation>;
|
|
877
879
|
/** Concrete typography applied when this site style is selected. */
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { Theme } from '../schema';
|
|
2
|
-
import { type SiteChromeLookDiagnostics } from './customizableSurfaces';
|
|
3
2
|
import { type Brand } from './types';
|
|
4
|
-
export declare const footerLookIdValues: readonly ["footer-
|
|
5
|
-
export type FooterLookIdValue = typeof footerLookIdValues[number];
|
|
3
|
+
export declare const footerLookIdValues: readonly ["footer-links-quiet", "footer-links-emphasized"];
|
|
4
|
+
export type FooterLookIdValue = (typeof footerLookIdValues)[number];
|
|
6
5
|
export type FooterLookId = Brand<FooterLookIdValue, 'FooterLookId'>;
|
|
7
6
|
export declare function asFooterLookId(value: FooterLookIdValue): FooterLookId;
|
|
8
7
|
export type PersistedFooterLookIdParseResult = Readonly<{
|
|
@@ -18,179 +17,46 @@ export declare function parsePersistedFooterLookId(value: string): Exclude<Persi
|
|
|
18
17
|
kind: 'empty';
|
|
19
18
|
}>;
|
|
20
19
|
export declare function parsePersistedFooterLookId(value: string | null | undefined): PersistedFooterLookIdParseResult;
|
|
21
|
-
export declare const footerLayoutIdValues: readonly ["identity", "centered", "split", "columns"];
|
|
22
|
-
export type FooterLayoutIdValue = typeof footerLayoutIdValues[number];
|
|
23
|
-
export type FooterLayoutId = Brand<FooterLayoutIdValue, 'FooterLayoutId'>;
|
|
24
|
-
export declare function asFooterLayoutId(value: FooterLayoutIdValue): FooterLayoutId;
|
|
25
|
-
export declare const footerStyleIdValues: readonly ["quiet", "calm", "editorial", "brand-band"];
|
|
26
|
-
export type FooterStyleIdValue = typeof footerStyleIdValues[number];
|
|
27
|
-
export type FooterStyleId = Brand<FooterStyleIdValue, 'FooterStyleId'>;
|
|
28
|
-
export declare function asFooterStyleId(value: FooterStyleIdValue): FooterStyleId;
|
|
29
|
-
export type FooterLayoutDefinition = Readonly<{
|
|
30
|
-
id: FooterLayoutId;
|
|
31
|
-
label: string;
|
|
32
|
-
description: string;
|
|
33
|
-
requiresFooterNav?: boolean;
|
|
34
|
-
requiresFooterNavGroups?: boolean;
|
|
35
|
-
maxRecommendedNavDensity?: Extract<FooterSelectionContext['navDensity'], 'sparse' | 'balanced'>;
|
|
36
|
-
}>;
|
|
37
|
-
export type FooterStyleDefinition = Readonly<{
|
|
38
|
-
id: FooterStyleId;
|
|
39
|
-
label: string;
|
|
40
|
-
description: string;
|
|
41
|
-
}>;
|
|
42
20
|
export type FooterLookDefinition = Readonly<{
|
|
43
21
|
id: FooterLookId;
|
|
44
22
|
label: string;
|
|
45
|
-
|
|
46
|
-
styleId: FooterStyleId;
|
|
47
|
-
hiddenFromLayoutStyleControls?: boolean;
|
|
48
|
-
requiresFooterNav?: boolean;
|
|
49
|
-
requiresFooterNavGroups?: boolean;
|
|
50
|
-
maxRecommendedNavDensity?: Extract<FooterSelectionContext['navDensity'], 'sparse' | 'balanced'>;
|
|
51
|
-
allowedContentPresence?: readonly Exclude<FooterSelectionContext['contentPresence'], 'unknown'>[];
|
|
23
|
+
description: string;
|
|
52
24
|
compile: (theme: Theme) => Theme['footer'];
|
|
53
25
|
}>;
|
|
54
|
-
export type FooterSelectionContext = Readonly<{
|
|
55
|
-
navDensity: 'unknown' | 'none' | 'sparse' | 'balanced' | 'dense';
|
|
56
|
-
groupedNav: 'unknown' | 'none' | 'present';
|
|
57
|
-
contentPresence: 'unknown' | 'default-footer' | 'footer-blocks' | 'default-and-blocks';
|
|
58
|
-
}>;
|
|
59
|
-
export type RejectedFooterLookReason = 'footer-nav-required' | 'footer-nav-groups-required' | 'footer-nav-too-dense' | 'footer-content-incompatible';
|
|
60
|
-
export type RejectedFooterLook = Readonly<{
|
|
61
|
-
lookId: FooterLookId;
|
|
62
|
-
reasons: readonly RejectedFooterLookReason[];
|
|
63
|
-
}>;
|
|
64
26
|
export type FooterSelectionResult = Readonly<{
|
|
65
27
|
selectedLookId: FooterLookId;
|
|
66
28
|
selectedLook: FooterLookDefinition;
|
|
67
29
|
footer: Theme['footer'];
|
|
68
|
-
rejected: readonly
|
|
30
|
+
rejected: readonly [];
|
|
31
|
+
}>;
|
|
32
|
+
export type FooterLookDiagnostics = Readonly<{
|
|
33
|
+
surface: Readonly<{
|
|
34
|
+
kind: 'site-footer';
|
|
35
|
+
}>;
|
|
36
|
+
selectedLookId: FooterLookId;
|
|
37
|
+
rejected: readonly [];
|
|
69
38
|
}>;
|
|
70
|
-
export type FooterLookDiagnostics = SiteChromeLookDiagnostics<FooterLookId, RejectedFooterLookReason>;
|
|
71
39
|
export type FooterLookResolutionInput = Readonly<{
|
|
72
40
|
theme: Theme;
|
|
73
41
|
recommendedLookIds: readonly FooterLookId[];
|
|
74
|
-
context?: Partial<FooterSelectionContext>;
|
|
75
42
|
}>;
|
|
76
|
-
export declare const defaultFooterSelectionContext: FooterSelectionContext;
|
|
77
43
|
export declare const guaranteedFallbackFooterLookId: FooterLookId;
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
readonly label: "Identity";
|
|
81
|
-
readonly description: "Logo, site text, address, and legal copy without relying on footer navigation.";
|
|
82
|
-
}, {
|
|
83
|
-
readonly id: FooterLayoutId;
|
|
84
|
-
readonly label: "Centered";
|
|
85
|
-
readonly description: "A calm centered stack for identity, short copy, and optional compact navigation.";
|
|
86
|
-
readonly maxRecommendedNavDensity: "sparse";
|
|
87
|
-
}, {
|
|
88
|
-
readonly id: FooterLayoutId;
|
|
89
|
-
readonly label: "Split";
|
|
90
|
-
readonly description: "Navigation and brand signoff separated into a wider split footer.";
|
|
91
|
-
readonly requiresFooterNav: true;
|
|
92
|
-
readonly maxRecommendedNavDensity: "balanced";
|
|
93
|
-
}, {
|
|
94
|
-
readonly id: FooterLayoutId;
|
|
95
|
-
readonly label: "Columns";
|
|
96
|
-
readonly description: "Grouped footer navigation columns with a supporting bottom line.";
|
|
97
|
-
readonly requiresFooterNav: true;
|
|
98
|
-
readonly requiresFooterNavGroups: true;
|
|
99
|
-
}];
|
|
100
|
-
export declare const footerStyleCatalog: readonly [{
|
|
101
|
-
readonly id: FooterStyleId;
|
|
102
|
-
readonly label: "Quiet";
|
|
103
|
-
readonly description: "Lightweight, practical footer treatment.";
|
|
104
|
-
}, {
|
|
105
|
-
readonly id: FooterStyleId;
|
|
106
|
-
readonly label: "Calm";
|
|
107
|
-
readonly description: "Soft centered treatment with restrained dividers.";
|
|
108
|
-
}, {
|
|
109
|
-
readonly id: FooterStyleId;
|
|
110
|
-
readonly label: "Editorial";
|
|
111
|
-
readonly description: "Text-forward treatment with fine-line structure.";
|
|
112
|
-
}, {
|
|
113
|
-
readonly id: FooterStyleId;
|
|
114
|
-
readonly label: "Brand band";
|
|
115
|
-
readonly description: "High-contrast brand treatment with a stronger bottom bar.";
|
|
116
|
-
}];
|
|
117
|
-
export declare function getFooterLayout(id: FooterLayoutId): FooterLayoutDefinition | null;
|
|
118
|
-
export declare function getFooterStyle(id: FooterStyleId): FooterStyleDefinition | null;
|
|
119
|
-
export declare function getFooterLooksForLayout(layoutId: FooterLayoutId): readonly FooterLookDefinition[];
|
|
120
|
-
export declare function getFooterLooksForStyle(styleId: FooterStyleId): readonly FooterLookDefinition[];
|
|
121
|
-
export declare function findFooterLookForLayoutStyle(input: Readonly<{
|
|
122
|
-
layoutId: FooterLayoutId;
|
|
123
|
-
styleId: FooterStyleId;
|
|
124
|
-
}>): FooterLookDefinition | null;
|
|
125
|
-
export declare function findDefaultFooterLookForLayout(layoutId: FooterLayoutId): FooterLookDefinition | null;
|
|
126
|
-
/**
|
|
127
|
-
* No-nav-safe identity footer: brand and legal/supporting copy carry the
|
|
128
|
-
* footer without implying missing navigation.
|
|
129
|
-
*/
|
|
130
|
-
declare function identityQuietFooter(theme: Theme): Theme['footer'];
|
|
131
|
-
/**
|
|
132
|
-
* Back-compat alias for the previous default footer Look. It keeps existing
|
|
133
|
-
* persisted selections valid while staying hidden from the new layout/style UI.
|
|
134
|
-
*/
|
|
135
|
-
declare function mutedGroundingFooter(theme: Theme): Theme['footer'];
|
|
136
|
-
/** Applies a high-contrast brand band with a darker full-bleed bottom bar. */
|
|
137
|
-
declare function brandTwoBandFooter(theme: Theme): Theme['footer'];
|
|
138
|
-
/**
|
|
139
|
-
* Centered stack on a softly tinted band: logo, inline nav, address, and a
|
|
140
|
-
* hairline-topped copyright line, all centered.
|
|
141
|
-
*/
|
|
142
|
-
declare function centeredCalmFooter(theme: Theme): Theme['footer'];
|
|
143
|
-
/** Editorial split footer: compact nav on one side, brand signoff on the other. */
|
|
144
|
-
declare function splitEditorialFooter(theme: Theme): Theme['footer'];
|
|
145
|
-
/**
|
|
146
|
-
* Editorial columns: site name and supporting copy on the left, inline nav on
|
|
147
|
-
* the right, with a hairline-topped bottom line. Uses the footer block's
|
|
148
|
-
* columns layout.
|
|
149
|
-
*/
|
|
150
|
-
declare function editorialColumnsFooter(theme: Theme): Theme['footer'];
|
|
44
|
+
declare function quietFooterLinks(theme: Theme): Theme['footer'];
|
|
45
|
+
declare function emphasizedFooterLinks(theme: Theme): Theme['footer'];
|
|
151
46
|
export declare const footerLookCatalog: readonly [{
|
|
152
47
|
readonly id: FooterLookId;
|
|
153
|
-
readonly label: "
|
|
154
|
-
readonly
|
|
155
|
-
readonly
|
|
156
|
-
readonly compile: typeof identityQuietFooter;
|
|
157
|
-
}, {
|
|
158
|
-
readonly id: FooterLookId;
|
|
159
|
-
readonly label: "Muted grounding footer";
|
|
160
|
-
readonly layoutId: FooterLayoutId;
|
|
161
|
-
readonly styleId: FooterStyleId;
|
|
162
|
-
readonly hiddenFromLayoutStyleControls: true;
|
|
163
|
-
readonly compile: typeof mutedGroundingFooter;
|
|
164
|
-
}, {
|
|
165
|
-
readonly id: FooterLookId;
|
|
166
|
-
readonly label: "Centered calm footer";
|
|
167
|
-
readonly layoutId: FooterLayoutId;
|
|
168
|
-
readonly styleId: FooterStyleId;
|
|
169
|
-
readonly compile: typeof centeredCalmFooter;
|
|
170
|
-
}, {
|
|
171
|
-
readonly id: FooterLookId;
|
|
172
|
-
readonly label: "Split editorial footer";
|
|
173
|
-
readonly layoutId: FooterLayoutId;
|
|
174
|
-
readonly styleId: FooterStyleId;
|
|
175
|
-
readonly compile: typeof splitEditorialFooter;
|
|
176
|
-
}, {
|
|
177
|
-
readonly id: FooterLookId;
|
|
178
|
-
readonly label: "Editorial columns footer";
|
|
179
|
-
readonly layoutId: FooterLayoutId;
|
|
180
|
-
readonly styleId: FooterStyleId;
|
|
181
|
-
readonly compile: typeof editorialColumnsFooter;
|
|
48
|
+
readonly label: "Quiet links";
|
|
49
|
+
readonly description: "Regular-weight footer navigation with a restrained hover.";
|
|
50
|
+
readonly compile: typeof quietFooterLinks;
|
|
182
51
|
}, {
|
|
183
52
|
readonly id: FooterLookId;
|
|
184
|
-
readonly label: "
|
|
185
|
-
readonly
|
|
186
|
-
readonly
|
|
187
|
-
readonly allowedContentPresence: readonly ["default-footer", "default-and-blocks"];
|
|
188
|
-
readonly compile: typeof brandTwoBandFooter;
|
|
53
|
+
readonly label: "Emphasized links";
|
|
54
|
+
readonly description: "Medium-weight footer navigation with a clearer emphasis.";
|
|
55
|
+
readonly compile: typeof emphasizedFooterLinks;
|
|
189
56
|
}];
|
|
190
57
|
export declare function getFooterLook(id: FooterLookId): FooterLookDefinition | null;
|
|
191
58
|
export declare function findFooterLook(id: FooterLookId): FooterLookDefinition | undefined;
|
|
192
59
|
export declare function getFooterLookOrThrow(id: FooterLookId): FooterLookDefinition;
|
|
193
60
|
export declare function resolveFooterLook(input: FooterLookResolutionInput): FooterSelectionResult;
|
|
194
61
|
export declare function footerLookDiagnosticsFromSelectionResult(result: FooterSelectionResult): FooterLookDiagnostics;
|
|
195
|
-
export declare function footerLookRejectionReasonLabel(reason: RejectedFooterLookReason): string;
|
|
196
62
|
export {};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { Theme } from '../schema';
|
|
2
2
|
export type HeaderCtaTreatment = 'default' | 'primary' | 'secondary' | 'inverted' | 'outline' | 'ghost';
|
|
3
|
-
|
|
3
|
+
type HeaderCtaButtonTheme = Pick<Theme, 'buttons'>;
|
|
4
|
+
export declare function resolveHeaderCtaVariant(theme: HeaderCtaButtonTheme, treatment: HeaderCtaTreatment): string | undefined;
|
|
5
|
+
export {};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { PageDesignEditorReadModel } from './pageDesignEditorModel';
|
|
2
2
|
import { type Theme } from '../schema';
|
|
3
|
-
import { type
|
|
3
|
+
import { type ButtonStyleSelection } from '../buttons/styles';
|
|
4
4
|
import type { CompleteResolvedPaletteSelection, PaletteSelection } from '../palette';
|
|
5
5
|
import { type CuratedSiteStyle } from './curatedSiteStyles';
|
|
6
|
-
import { type FooterLookId, type
|
|
6
|
+
import { type FooterLookId, type FooterSelectionResult } from './footerLooks';
|
|
7
7
|
import { type HeaderLayoutId, type HeaderSelectionContext, type HeaderLookId, type HeaderSelectionResult, type HeaderStyleId } from './headerLooks';
|
|
8
8
|
import { type CompiledBlockRuntimeFields, type CompiledBoundaryRuntime, type CompiledPageRuntime, type ComponentRuntimeRules, type DesignRuntimeRules, type SemanticSpacing, type SurfaceResolutionContext } from './runtimeCompiler';
|
|
9
9
|
import { type AppearancePresetId, type DesignBlockId, type SiteStyleId } from './types';
|
|
@@ -24,7 +24,7 @@ export { repairDesignIssue, resolveBlockDesignPlan } from './resolver';
|
|
|
24
24
|
export { cycleableOptionsFromResolved, deriveDesignCustomizationScope, recommendedDesignOption, type CycleableDesignOption, type CycleableOptions, type DesignCustomizationAuthority, type DesignCustomizationScope, type DesignCustomizationSurface, type DesignCustomizationUnsupportedReason, type DesignOptionIssue, type ResolvedDesignOption, } from './previewCustomization';
|
|
25
25
|
export { compileBlockRuntimeFields, compileBoundaryRuntime, compilePageRuntimeFields, compileTokenRecipes, compileTransitionRuntime, compiledRuntimeStyleFieldNames, defaultComponentRuntimeRules, defaultDesignRuntimeRules, surfaceResolutionContextFromPalette, surfaceResolutionContextFromTheme, stripCompiledRuntimeStyleFields, type CompiledBlockRuntime, type CompiledBlockRuntimeFields, type CompiledBoundaryRuntime, type CompiledPageRuntime, type CompileBlockRuntimeInput, type ComponentRuntimeRules, type DesignRuntimeRules, type SemanticSpacing, type SurfaceResolutionContext, } from './runtimeCompiler';
|
|
26
26
|
export { defaultCuratedChoice, requireEntriesForCuratedChoices, resolveCuratedChoice, type CuratedChoice, type CuratedChoiceResolution, } from './curatedChoices';
|
|
27
|
-
export { curatedSiteStyles,
|
|
27
|
+
export { curatedSiteStyles, defaultButtonStyleSelectionForSiteStyle, defaultPaletteForSiteStyle, getCuratedSiteStyle, type CuratedSiteStyle, } from './curatedSiteStyles';
|
|
28
28
|
export { asDesignBlockId, asSiteStyleId, makeBoundaryId, type AppearancePresetId, type BoundaryOptionId, type DesignBlockId, type DesignBoundaryId, type LayoutVariantKey, type NonEmptyReadonlyArray, type PageFlowPresetId, type ResolvedPageDesignPlan, type SiteStyleId, } from './types';
|
|
29
29
|
export declare const previewCustomizePurpose: "preview-customize";
|
|
30
30
|
/**
|
|
@@ -36,20 +36,19 @@ export declare function compileCuratedSiteStyleTheme(siteStyle: CuratedSiteStyle
|
|
|
36
36
|
export declare function defaultResolvedPaletteForSiteStyle(siteStyle: CuratedSiteStyle): CompleteResolvedPaletteSelection;
|
|
37
37
|
export declare function compileCuratedSiteStyleThemeById(siteStyleId: SiteStyleId): CuratedSiteStyleTheme | null;
|
|
38
38
|
export type SelectionFallbackWarning = Readonly<{
|
|
39
|
-
kind: 'rejected-
|
|
39
|
+
kind: 'rejected-button-style';
|
|
40
40
|
requested: string;
|
|
41
|
-
fellBackTo:
|
|
41
|
+
fellBackTo: ButtonStyleSelection;
|
|
42
42
|
}>;
|
|
43
43
|
type SiteThemeSelectionsCommonInput = Readonly<{
|
|
44
44
|
siteStyle: CuratedSiteStyle;
|
|
45
|
-
|
|
45
|
+
buttonStyleSelection: ButtonStyleSelection | null;
|
|
46
46
|
typography?: Theme['typography'];
|
|
47
47
|
headerLookId?: HeaderLookId | null;
|
|
48
48
|
headerLayoutId?: HeaderLayoutId | null;
|
|
49
49
|
headerStyleId?: HeaderStyleId | null;
|
|
50
50
|
footerLookId?: FooterLookId | null;
|
|
51
51
|
headerSelectionContext?: Partial<HeaderSelectionContext>;
|
|
52
|
-
footerSelectionContext?: Partial<FooterSelectionContext>;
|
|
53
52
|
}>;
|
|
54
53
|
export type SiteThemeSelectionsInput = SiteThemeSelectionsCommonInput & Readonly<{
|
|
55
54
|
resolvedPalette: CompleteResolvedPaletteSelection;
|
|
@@ -63,7 +62,7 @@ type SiteThemeSelectionsBaseResult = Readonly<{
|
|
|
63
62
|
footerLookId: FooterLookId | null;
|
|
64
63
|
}>;
|
|
65
64
|
resolvedSelections: Readonly<{
|
|
66
|
-
|
|
65
|
+
buttonStyleSelection: ButtonStyleSelection;
|
|
67
66
|
paletteSelection: PaletteSelection | null;
|
|
68
67
|
headerLookId: HeaderLookId | null;
|
|
69
68
|
headerLayoutId: HeaderLayoutId;
|
|
@@ -76,7 +75,7 @@ type SiteThemeSelectionsBaseResult = Readonly<{
|
|
|
76
75
|
}>;
|
|
77
76
|
export type SiteThemeSelectionsResult = SiteThemeSelectionsBaseResult;
|
|
78
77
|
/**
|
|
79
|
-
* High-level, site-style-aware compiler. Resolves the user's
|
|
78
|
+
* High-level, site-style-aware compiler. Resolves the user's button style and
|
|
80
79
|
* palette selections into theme tokens. Palette authority is always supplied
|
|
81
80
|
* as a complete resolved curated/site selection or an explicit draft.
|
|
82
81
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type CardStylesOverride, type ContainerStylesOverride, type SectionStylesOverride, type Theme } from '../schema';
|
|
2
2
|
import { type ExpandedPalette } from '../palette/expandPalette';
|
|
3
|
-
import { type
|
|
3
|
+
import { type ButtonStyleSelection } from '../buttons/styles';
|
|
4
4
|
import type { CompleteResolvedPaletteSelection } from '../palette/resolveSelection';
|
|
5
5
|
import { type RuntimeStyleWriteResultForFields, type StyleAuthority } from './designState';
|
|
6
6
|
import { type ContentFrameIntent, type BlockCompositionIntent, type EyebrowTreatment, type FlushFrameTreatment, type DesignBoundaryId, type PanelFrameTreatment, type ResolvedBlockDesignPlan, type ResolvedPageDesignPlan, type SiteStyleItemSurfaceIntent, type SiteStyleSectionTransitionIntent, type SiteStyleSurfaceIntent, type ThemeTokenRecipes } from './types';
|
|
@@ -338,8 +338,8 @@ type PaletteCompileOptions = Readonly<{
|
|
|
338
338
|
resolvedPalette?: CompleteResolvedPaletteSelection;
|
|
339
339
|
}>;
|
|
340
340
|
export type CompileTokenRecipesOptions = Readonly<{
|
|
341
|
-
/**
|
|
342
|
-
|
|
341
|
+
/** Validated button style selection. When provided, emits `theme.buttons`. */
|
|
342
|
+
buttonStyleSelection?: ButtonStyleSelection;
|
|
343
343
|
}> & PaletteCompileOptions;
|
|
344
344
|
/**
|
|
345
345
|
* Compiles bounded token recipes to the current Theme schema. This is intentionally
|
|
@@ -347,7 +347,7 @@ export type CompileTokenRecipesOptions = Readonly<{
|
|
|
347
347
|
* Theme output before any persistence or Phase 5 integration consumes them.
|
|
348
348
|
*
|
|
349
349
|
* Optional `options` accept an already-resolved palette selection and button
|
|
350
|
-
*
|
|
350
|
+
* style. Sparse overrides and legacy palette IDs are deliberately not
|
|
351
351
|
* compiler inputs: callers must resolve a complete palette before compiling.
|
|
352
352
|
*/
|
|
353
353
|
export declare function compileTokenRecipes(recipes: ThemeTokenRecipes, options?: CompileTokenRecipesOptions): Theme;
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Hex colour helpers shared by every palette-editing surface (Macadamia
|
|
3
3
|
* onboarding swatches, the LiveThemeEditor, the Style configurator advanced
|
|
4
4
|
* row). Consolidates three prior duplicates: `normalizeColorPickerValue` in
|
|
5
|
-
* Macadamia, `normalizeHex` + `contrastRatio` in
|
|
6
|
-
* the inline regex in `updateColorRole`.
|
|
5
|
+
* Macadamia, `normalizeHex` + `contrastRatio` formerly in
|
|
6
|
+
* `theme-editor/utils.ts`, and the inline regex in `updateColorRole`.
|
|
7
7
|
*
|
|
8
8
|
* Pure functions; no DOM, no React.
|
|
9
9
|
*/
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* without a leading `#`; returns `fallback` for any other shape (empty
|
|
14
14
|
* string, garbage, characters outside `[0-9a-f]`, wrong length, etc.). Pass
|
|
15
15
|
* a `fallback` to make the fallback explicit at the call site — defaulting
|
|
16
|
-
* to `'#000000'`
|
|
16
|
+
* to `'#000000'` preserves the former theme-editor helper semantics.
|
|
17
17
|
*/
|
|
18
18
|
export declare function normalizeHex(input: string | null | undefined, fallback?: string): string;
|
|
19
19
|
/**
|