@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.
Files changed (186) hide show
  1. package/dist/{PreviewEditorSidebar-DWqwfy3_.mjs → PreviewEditorSidebar-CTR6LUhN.mjs} +178 -117
  2. package/dist/{PreviewEditorUI-B7OL4sfR.mjs → PreviewEditorUI-DZg15Zip.mjs} +3 -4
  3. package/dist/{PreviewQueryProvider-D0y2l8JN.mjs → PreviewQueryProvider-kkmjklLG.mjs} +1 -1
  4. package/dist/{SdkPreviewModeRuntime-D8Gt9Gbe.mjs → SdkPreviewModeRuntime-DeOTAFvR.mjs} +229 -219
  5. package/dist/{SiteChromeCustomizeContext-DUpalEdL.mjs → SiteChromeCustomizeContext-DOSDLCiJ.mjs} +1695 -2169
  6. package/dist/_dts/ai/src/contracts/proposals.d.ts +1716 -76
  7. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +5 -5
  8. package/dist/_dts/api/src/contentRuntime.d.ts +4 -1
  9. package/dist/_dts/api/src/courses.d.ts +30 -15
  10. package/dist/_dts/api/src/endpoints.d.ts +14 -4
  11. package/dist/_dts/api/src/index.d.ts +2 -2
  12. package/dist/_dts/api/src/sdkContracts.d.ts +23 -11
  13. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +5 -1
  14. package/dist/_dts/api/src/siteOperations.d.ts +11 -19
  15. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +6 -6
  16. package/dist/_dts/api/src/webhooks.d.ts +98 -1
  17. package/dist/_dts/billing/src/site-arrangements.d.ts +3 -0
  18. package/dist/_dts/blocks/src/client/course-registration.d.ts +4 -1
  19. package/dist/_dts/blocks/src/client.d.ts +4 -1
  20. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
  21. package/dist/_dts/blocks/src/index.d.ts +3 -1
  22. package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +2 -1
  23. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +2 -1
  24. package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +2 -4
  25. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +2 -1
  26. package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +2 -1
  27. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -1
  28. package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule.d.ts +3 -2
  29. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +2 -1
  30. package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +2 -1
  31. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +2 -1
  32. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -1
  33. package/dist/_dts/blocks/src/system/blocks/single-button.d.ts +2 -1
  34. package/dist/_dts/blocks/src/system/constants/buttonRoles.d.ts +35 -0
  35. package/dist/_dts/blocks/src/system/fields/button.d.ts +10 -21
  36. package/dist/_dts/blocks/src/system/fields/ctas.d.ts +2 -1
  37. package/dist/_dts/blocks/src/system/fragments/library/heroCtaRow.d.ts +9 -5
  38. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +18 -18
  39. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +9 -9
  40. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessWholeSeriesRegistrationFlow.d.ts +29 -0
  41. package/dist/_dts/blocks/src/system/runtime/nodes/buttonAffordance.d.ts +1 -1
  42. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/ErrorStep.d.ts +2 -1
  43. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/PaymentFailedStep.d.ts +2 -1
  44. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/VerifyingTimeoutStep.d.ts +2 -1
  45. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +21 -0
  46. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +4 -4
  47. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.contract.d.ts +326 -0
  48. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.planning.d.ts +27 -0
  49. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +5 -4
  50. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +3 -2
  51. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +2 -1
  52. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +5 -4
  53. package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +2 -3
  54. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +2 -1
  55. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +6 -3
  56. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +7 -6
  57. package/dist/_dts/blocks/src/system/runtime/nodes/shop.types.d.ts +2 -1
  58. package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +2 -1
  59. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +4 -2
  60. package/dist/_dts/content-editor/src/index.d.ts +12 -12
  61. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +17 -2
  62. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +221 -53
  63. package/dist/_dts/editor-blocks/src/widgets/button/context.d.ts +3 -2
  64. package/dist/_dts/preview-next/src/client/index.d.ts +3 -2
  65. package/dist/_dts/preview-next/src/client/preview/ButtonStylePicker.d.ts +16 -0
  66. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -3
  67. package/dist/_dts/preview-next/src/client/preview/PreviewDesignOpenRequestContext.d.ts +7 -0
  68. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +5 -11
  69. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +5 -6
  70. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +6 -7
  71. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +7 -9
  72. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +4 -11
  73. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +7 -7
  74. package/dist/_dts/preview-next/src/client/preview/sidebarTabPreference.d.ts +0 -8
  75. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +1 -11
  76. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +1 -5
  77. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +2 -3
  78. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +3 -4
  79. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +3 -5
  80. package/dist/_dts/sdk/src/bookings/index.d.ts +5 -4
  81. package/dist/_dts/sdk/src/bookings/types.d.ts +3 -3
  82. package/dist/_dts/sdk/src/cli/commands/style.d.ts +3 -2
  83. package/dist/_dts/sdk/src/client/management/types.d.ts +2 -1
  84. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +12 -15
  85. package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -1
  86. package/dist/_dts/sdk/src/version.d.ts +1 -1
  87. package/dist/_dts/sdk/src/webhooks/index.d.ts +1 -1
  88. package/dist/_dts/sdk/src/webhooks/verify.d.ts +3 -3
  89. package/dist/_dts/site-commands/src/commands.d.ts +129 -6
  90. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -1
  91. package/dist/_dts/theme-core/src/buttons/styles/domain.d.ts +80 -0
  92. package/dist/_dts/theme-core/src/buttons/styles/index.d.ts +3 -0
  93. package/dist/_dts/theme-core/src/buttons/styles/recipes/defineStaticButtonStyleRecipe.d.ts +49 -0
  94. package/dist/_dts/theme-core/src/buttons/styles/recipes/quietArrow.d.ts +67 -0
  95. package/dist/_dts/theme-core/src/buttons/styles/recipes/staticRecipes.d.ts +649 -0
  96. package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +753 -0
  97. package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +69 -0
  98. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +26 -24
  99. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +19 -153
  100. package/dist/_dts/theme-core/src/site-styles/headerCtaVariants.d.ts +3 -1
  101. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +8 -9
  102. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +4 -4
  103. package/dist/_dts/ui/src/palette/hex.d.ts +3 -3
  104. package/dist/cli/index.mjs +1760 -1914
  105. package/dist/cli/init-docs/content/workflow-isr-revalidation.md +1 -1
  106. package/dist/client/{DiscountCodeDisclosure-DU1ygxU2.mjs → DiscountCodeDisclosure-C4xvTBux.mjs} +1 -1
  107. package/dist/client/{EventCombined.client-DB5zagCo.mjs → EventCombined.client-Cr7G131j.mjs} +2 -3
  108. package/dist/client/{EventListing.client-CTX9JHBL.mjs → EventListing.client-CAjbseNy.mjs} +2 -2
  109. package/dist/client/{LeafletStaticMap-BYImhgiB.mjs → LeafletStaticMap-BMlWfwz3.mjs} +1 -1
  110. package/dist/client/{MagicLinkForm-CRkw_M3l.mjs → MagicLinkForm-ChdFz96y.mjs} +1 -2
  111. package/dist/client/{StepIndicator-BnmVBJJh.mjs → StepIndicator-7D3GaBeM.mjs} +2 -2
  112. package/dist/client/{accordion-CeGreumd.mjs → accordion-D8JTs2Si.mjs} +1 -1
  113. package/dist/client/{bookingForm-CSzFNrpN.mjs → bookingForm-H3DCRBHs.mjs} +6 -7
  114. package/dist/client/bookings.mjs +3069 -1447
  115. package/dist/client/{carousel-B2jDtogf.mjs → carousel-DMr_QWlz.mjs} +1 -1
  116. package/dist/client/{cart-D-jZ-vaY.mjs → cart-DWMbfBdR.mjs} +3 -3
  117. package/dist/client/{checkout-Dza-LA7N.mjs → checkout-zmfdkXLx.mjs} +3 -3
  118. package/dist/client/client.mjs +1732 -1913
  119. package/dist/client/{colorStyles-CrgzoXsm.mjs → colorStyles-gcTh5yZT.mjs} +2 -12
  120. package/dist/client/{colorTokenParts-CMugwvX_.mjs → colorTokenParts-FSS3al6l.mjs} +31 -1
  121. package/dist/client/{courseRegistration-TYkNychb.mjs → courseRegistration-Z_mn18jy.mjs} +100 -37
  122. package/dist/client/{eventCalendar-BI_90SsT.mjs → eventCalendar-CYp0YJGF.mjs} +4 -5
  123. package/dist/client/{eventCombined-mNrpryE9.mjs → eventCombined-rKyYZUa9.mjs} +2 -2
  124. package/dist/client/{eventDetails-D4GVlCIY.mjs → eventDetails-X0ZaUuMj.mjs} +3 -3
  125. package/dist/client/{eventListing-YhKN018y.mjs → eventListing-W1SuL7EP.mjs} +2 -2
  126. package/dist/client/{eventRegistration-CdHGtilr.mjs → eventRegistration-ClWricui.mjs} +6 -7
  127. package/dist/client/{form-AcAL45rA.mjs → form--eKPwAAD.mjs} +1 -2
  128. package/dist/client/{headerSection-uEC52ueD.mjs → headerSection-BSeGr-FS.mjs} +2 -3
  129. package/dist/client/hooks.mjs +1554 -1871
  130. package/dist/client/{locationMap-_wJDSUYe.mjs → locationMap-BpOrtNYn.mjs} +8 -5
  131. package/dist/client/{media-BK0O3b-U.mjs → media-DoF0dcVx.mjs} +2 -2
  132. package/dist/client/{newsletterForm-DrArsb2B.mjs → newsletterForm-Bt7it7Dy.mjs} +1 -2
  133. package/dist/client/{pricing-BSYVghwo.mjs → pricing-BTjSDDr4.mjs} +1 -1
  134. package/dist/client/{productDetail-Dyk90sMs.mjs → productDetail-ICnVTcCg.mjs} +3 -3
  135. package/dist/client/{productList-BCKThwAI.mjs → productList-ZHr6D604.mjs} +3 -3
  136. package/dist/client/{propsDecoder-CkXxkdSR.mjs → propsDecoder-wWN0tBDF.mjs} +2351 -129
  137. package/dist/client/rendering/client.mjs +1664 -1824
  138. package/dist/client/rendering/islands.mjs +20 -20
  139. package/dist/client/rendering.mjs +1697 -1909
  140. package/dist/client/{shop-DeltVH10.mjs → shop-C1u_BUn0.mjs} +5 -6
  141. package/dist/client/{shop-commerce-BD9Jsm2Z.mjs → shop-commerce-CleZdRha.mjs} +5 -6
  142. package/dist/client/{shop-commerce-store-CmXD6FDS.mjs → shop-commerce-store-ycnoB2Ce.mjs} +1 -1
  143. package/dist/client/{shopShared-B8v-lH_F.mjs → shopShared-CPhByt2a.mjs} +3 -3
  144. package/dist/client/{useDiscountCodeUi-DbWJN8ld.mjs → useDiscountCodeUi-cStSQI6C.mjs} +1 -1
  145. package/dist/client/{useEventFilters-EJIMUnqT.mjs → useEventFilters-DKPN7hSY.mjs} +26 -27
  146. package/dist/client/{usePolling-Cmh14fc7.mjs → usePolling-BKAd6pkZ.mjs} +2 -2
  147. package/dist/preview-next/before-render.mjs +37 -6
  148. package/dist/preview-next/client/runtime.mjs +4 -4
  149. package/dist/preview-next/middleware.mjs +37 -6
  150. package/dist/{previewAuthStore-CTO7CRPk.mjs → previewAuthStore-BkT1D06A.mjs} +37 -6
  151. package/dist/{sdk-runtime-Dou0GAav.mjs → sdk-runtime-hu3wr3ng.mjs} +2 -2
  152. package/dist/{separator-CI5wZNXT.mjs → separator-Bln8izQ9.mjs} +1 -1
  153. package/dist/server/components.mjs +1472 -1788
  154. package/dist/server/config-validation.mjs +1559 -1876
  155. package/dist/server/config.mjs +1559 -1876
  156. package/dist/server/data.mjs +1554 -1871
  157. package/dist/server/index.mjs +38 -7
  158. package/dist/server/next/revalidate.mjs +53 -1
  159. package/dist/server/next.mjs +1584 -1869
  160. package/dist/server/page-converter.mjs +1543 -1860
  161. package/dist/server/prebuild.mjs +1 -1
  162. package/dist/server/rendering/server.mjs +1472 -1788
  163. package/dist/server/rendering.mjs +1472 -1788
  164. package/dist/server/routing.mjs +1600 -1891
  165. package/dist/server/server.mjs +1574 -1860
  166. package/dist/server/theme-bridge.mjs +1436 -1619
  167. package/dist/server/theme.mjs +1345 -1241
  168. package/dist/server/webhooks.mjs +54 -2
  169. package/package.json +1 -1
  170. package/dist/_dts/theme-core/src/buttons/personalities/brushed-wash.d.ts +0 -16
  171. package/dist/_dts/theme-core/src/buttons/personalities/confident-chip.d.ts +0 -16
  172. package/dist/_dts/theme-core/src/buttons/personalities/earth-pill.d.ts +0 -16
  173. package/dist/_dts/theme-core/src/buttons/personalities/editorial-link.d.ts +0 -16
  174. package/dist/_dts/theme-core/src/buttons/personalities/flat-ink.d.ts +0 -20
  175. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +0 -172
  176. package/dist/_dts/theme-core/src/buttons/personalities/ink-stamp.d.ts +0 -16
  177. package/dist/_dts/theme-core/src/buttons/personalities/joy-stamp.d.ts +0 -22
  178. package/dist/_dts/theme-core/src/buttons/personalities/ornate-ritual.d.ts +0 -16
  179. package/dist/_dts/theme-core/src/buttons/personalities/pebble.d.ts +0 -16
  180. package/dist/_dts/theme-core/src/buttons/personalities/quiet-arrow.d.ts +0 -17
  181. package/dist/_dts/theme-core/src/buttons/personalities/showtime-pill.d.ts +0 -17
  182. package/dist/_dts/theme-core/src/buttons/personalities/soft-pill.d.ts +0 -16
  183. package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +0 -17
  184. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +0 -285
  185. package/dist/client/buttons-DoFV7KDL.mjs +0 -2115
  186. 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 ButtonPersonalityId, type KnownButtonPersonalityId } from '../buttons/personalities';
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 personality, and curated palette selection have compiled the base
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 ButtonPersonalityChoice = CuratedChoice<KnownButtonPersonalityId>;
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
- buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
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 defaultButtonPersonalityForSiteStyle(siteStyle: CuratedSiteStyle): ButtonPersonalityId;
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
- buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
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
- buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
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
- buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
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
- buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
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
- buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
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
- buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
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
- buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
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
- buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
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
- buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
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
- buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
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
- buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
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
- buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
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
- buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
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
- buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
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
- buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
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
- buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
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
- buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
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
- buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
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
- buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
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-identity-quiet", "footer-muted-grounding", "footer-centered-calm", "footer-split-editorial", "footer-editorial-columns", "site-footer-brand-two-band"];
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
- layoutId: FooterLayoutId;
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 RejectedFooterLook[];
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
- export declare const footerLayoutCatalog: readonly [{
79
- readonly id: FooterLayoutId;
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: "Identity footer";
154
- readonly layoutId: FooterLayoutId;
155
- readonly styleId: FooterStyleId;
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: "Two-band brand footer";
185
- readonly layoutId: FooterLayoutId;
186
- readonly styleId: FooterStyleId;
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
- export declare function resolveHeaderCtaVariant(theme: Theme, treatment: HeaderCtaTreatment): string | undefined;
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 ButtonPersonalityId } from '../buttons/personalities';
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 FooterSelectionContext, type FooterSelectionResult } from './footerLooks';
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, defaultButtonPersonalityForSiteStyle, defaultPaletteForSiteStyle, getCuratedSiteStyle, type CuratedSiteStyle, } from './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-personality';
39
+ kind: 'rejected-button-style';
40
40
  requested: string;
41
- fellBackTo: ButtonPersonalityId;
41
+ fellBackTo: ButtonStyleSelection;
42
42
  }>;
43
43
  type SiteThemeSelectionsCommonInput = Readonly<{
44
44
  siteStyle: CuratedSiteStyle;
45
- buttonPersonalityId: ButtonPersonalityId | null;
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
- buttonPersonalityId: ButtonPersonalityId;
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 personality and
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 ButtonPersonalityId } from '../buttons/personalities';
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
- /** Resolved button personality ID. When provided, emits `theme.buttons`. */
342
- buttonPersonalityId?: ButtonPersonalityId;
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
- * personality. Sparse overrides and legacy palette IDs are deliberately not
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 `theme-editor/utils.ts`, and
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'` keeps the legacy `theme-editor/utils.ts` semantics.
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
  /**