@riverbankcms/sdk 0.82.0 → 0.84.1

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 (206) hide show
  1. package/README.md +16 -0
  2. package/dist/{PreviewEditorSidebar-LHGK6RIO.mjs → PreviewEditorSidebar-X7RLMEI6.mjs} +330 -11
  3. package/dist/{PreviewEditorUI-AXZG2SDC.mjs → PreviewEditorUI-CT67N4O3.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-EIMQ3S2V.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +200 -0
  6. package/dist/_dts/api/src/blocks.d.ts +36 -0
  7. package/dist/_dts/api/src/contentRuntime.d.ts +46 -0
  8. package/dist/_dts/api/src/endpoints.d.ts +40 -0
  9. package/dist/_dts/api/src/index.d.ts +2 -2
  10. package/dist/_dts/api/src/sdk-event-pricing.d.ts +61 -0
  11. package/dist/_dts/api/src/sdk-event-schedule.d.ts +52 -0
  12. package/dist/_dts/api/src/sdk-event-upsert.d.ts +50 -0
  13. package/dist/_dts/api/src/sdkContracts.d.ts +67 -33
  14. package/dist/_dts/api/src/shared-contracts.d.ts +13 -0
  15. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +22 -36
  16. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +46 -1
  17. package/dist/_dts/block-form/src/backend/useBackendWatch.d.ts +6 -1
  18. package/dist/_dts/block-form/src/utils/evaluateVisibility.d.ts +3 -2
  19. package/dist/_dts/block-form/src/utils/visibleWhen.d.ts +7 -0
  20. package/dist/_dts/blocks/src/PageRenderer.d.ts +11 -0
  21. package/dist/_dts/blocks/src/bindings/index.d.ts +1 -1
  22. package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -1
  23. package/dist/_dts/blocks/src/client.d.ts +4 -0
  24. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +16 -4
  25. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +288 -2016
  26. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +288 -2016
  27. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +288 -2016
  28. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +288 -2016
  29. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +288 -2016
  30. package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +171 -0
  31. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +288 -2016
  32. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +288 -2016
  33. package/dist/_dts/blocks/src/system/blocks/hero.d.ts +3 -2
  34. package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
  35. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -7
  36. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +2534 -151
  37. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +288 -2016
  38. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +288 -2016
  39. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +288 -2016
  40. package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +36 -3
  41. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +2 -2
  42. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  43. package/dist/_dts/blocks/src/system/fields/aspectRatio.d.ts +4 -1
  44. package/dist/_dts/blocks/src/system/fields/imageShape.d.ts +30 -0
  45. package/dist/_dts/blocks/src/system/fragments/library/heroLayoutControls.d.ts +25 -0
  46. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +35 -161
  47. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +24 -6
  48. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +12 -3
  49. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +33 -0
  50. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizard.d.ts +0 -2
  51. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/constants.d.ts +1 -0
  52. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +275 -0
  53. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.override.d.ts +10 -0
  54. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +22 -0
  55. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.state.d.ts +3 -0
  56. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +20 -1
  57. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +13 -4
  58. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +1 -1
  59. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +28 -6
  60. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/pricing.d.ts +14 -0
  61. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +1 -1
  62. package/dist/_dts/content-editor/src/controller/buildBlockPublishedBaselines.d.ts +1 -1
  63. package/dist/_dts/content-editor/src/controller/seedDraftBaselinesFromBlocks.d.ts +1 -1
  64. package/dist/_dts/content-editor/src/controller/useBlocksList.d.ts +1 -1
  65. package/dist/_dts/content-editor/src/controller/useInvalidBlockRecovery.d.ts +1 -1
  66. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +2 -1
  67. package/dist/_dts/content-editor/src/primitives/PreviewTextEditor.d.ts +1 -0
  68. package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
  69. package/dist/_dts/content-model/src/entry-slots/types.d.ts +356 -0
  70. package/dist/_dts/content-model/src/index.d.ts +1 -0
  71. package/dist/_dts/content-model/src/templates/defaults.d.ts +7 -0
  72. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +100 -5
  73. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +6 -1
  74. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +7 -5
  75. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +3 -2
  76. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +3 -2
  77. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +3 -2
  78. package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +27 -0
  79. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  80. package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +8 -0
  81. package/dist/_dts/media-core/src/mediaUsageProjection.d.ts +37 -3
  82. package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +4 -2
  83. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
  84. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +3 -1
  85. package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +19 -0
  86. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeButton.d.ts +8 -0
  87. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -1
  88. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +1 -1
  89. package/dist/_dts/preview-next/src/client/preview/linkedEntryEditEvents.d.ts +9 -0
  90. package/dist/_dts/preview-next/src/client/preview/previewCustomizeControls.d.ts +9 -8
  91. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +10 -1
  92. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +5 -1
  93. package/dist/_dts/sdk/src/bookings/index.d.ts +5 -4
  94. package/dist/_dts/sdk/src/bookings/types.d.ts +2 -2
  95. package/dist/_dts/sdk/src/cli/content/reader.d.ts +9 -8
  96. package/dist/_dts/sdk/src/cli/content/writer.d.ts +6 -1
  97. package/dist/_dts/sdk/src/cli/helpers.d.ts +10 -5
  98. package/dist/_dts/sdk/src/cli/merge-remote/entryLocal.d.ts +2 -2
  99. package/dist/_dts/sdk/src/cli/merge-remote/entryMerge.d.ts +2 -1
  100. package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +2 -2
  101. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
  102. package/dist/_dts/sdk/src/client/management/types.d.ts +40 -10
  103. package/dist/_dts/sdk/src/config/field-definitions.d.ts +13 -7
  104. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +26 -3
  105. package/dist/_dts/sdk/src/public-api/contracts.d.ts +13 -0
  106. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +1 -0
  107. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +6 -1
  108. package/dist/_dts/sdk/src/rendering/overrides.d.ts +6 -1
  109. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  110. package/dist/_dts/sdk/src/version.d.ts +1 -1
  111. package/dist/_dts/site-commands/src/commands.d.ts +15 -0
  112. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  113. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  114. package/dist/_dts/theme-core/src/buttons/personalities/ornate-ritual.d.ts +16 -0
  115. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +1 -1
  116. package/dist/_dts/theme-core/src/buttons/types.d.ts +3 -3
  117. package/dist/_dts/theme-core/src/cards/types.d.ts +15 -15
  118. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  119. package/dist/_dts/theme-core/src/inputs/types.d.ts +1 -1
  120. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +33 -33
  121. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
  122. package/dist/_dts/theme-core/src/palette/variants/warm-dark.d.ts +16 -0
  123. package/dist/_dts/theme-core/src/schema.d.ts +30 -25
  124. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  125. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +141 -1
  126. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -0
  127. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +110 -5
  128. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
  129. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
  130. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +5 -1
  131. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  132. package/dist/_dts/theme-core/src/site-styles/types.d.ts +1 -1
  133. package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +16 -1
  134. package/dist/_dts/theme-core/src/siteChromePlanning.d.ts +1 -0
  135. package/dist/_dts/theme-core/src/utils/colorStyles.d.ts +6 -6
  136. package/dist/{chunk-2BUMISSH.mjs → chunk-3LXFQS7T.mjs} +1 -1
  137. package/dist/{chunk-FIREV57T.mjs → chunk-LBBPD2IW.mjs} +40 -0
  138. package/dist/{chunk-XQR6THQJ.mjs → chunk-O62NDCTI.mjs} +3390 -1331
  139. package/dist/{chunk-6FWNF3DJ.mjs → chunk-QRKJDWT7.mjs} +158 -20
  140. package/dist/{chunk-HKB6XVIP.mjs → chunk-RCTJAZSK.mjs} +2 -2
  141. package/dist/{chunk-G35HOQEN.mjs → chunk-X5ZCSU6F.mjs} +132 -46
  142. package/dist/cli/index.mjs +2925 -577
  143. package/dist/cli/init-docs/content/agents-section.md +5 -0
  144. package/dist/cli/init-docs/content/cli-reference.md +13 -0
  145. package/dist/cli/init-docs/content/content-management.md +31 -0
  146. package/dist/cli/init-docs/content/getting-started.md +14 -0
  147. package/dist/cli/init-docs/content/workflow-add-block.md +3 -1
  148. package/dist/cli/init-docs/content/workflow-agent-safe-sync.md +81 -0
  149. package/dist/cli/init-docs/content/workflow-create-page.md +13 -3
  150. package/dist/cli/init-docs/content/workflow-custom-block.md +9 -0
  151. package/dist/cli/init-docs/content/workflow-templates.md +107 -2
  152. package/dist/client/{accordion-G34C45TW.mjs → accordion-2UZPBMYM.mjs} +2 -2
  153. package/dist/client/{bookingForm-BLBVKSAQ.mjs → bookingForm-DYXT6YB6.mjs} +5 -5
  154. package/dist/client/bookings.mjs +3477 -186
  155. package/dist/client/{carousel-7ZVTBRMD.mjs → carousel-QH77HR6X.mjs} +3 -3
  156. package/dist/client/{cart-Q6S6LZUO.mjs → cart-X4YK4FTW.mjs} +6 -6
  157. package/dist/client/{checkout-5QJLDE4I.mjs → checkout-OM2BEPWD.mjs} +6 -6
  158. package/dist/client/{chunk-ZF4XEWDM.mjs → chunk-3DTWLTXM.mjs} +1 -1
  159. package/dist/client/{chunk-5PQH4Y75.mjs → chunk-4OXKTA3D.mjs} +2 -2
  160. package/dist/client/{chunk-WJFHDTYF.mjs → chunk-52CGCQ7B.mjs} +5 -5
  161. package/dist/client/{chunk-CHAB5ACD.mjs → chunk-7UCLJ5SP.mjs} +2 -2
  162. package/dist/client/{chunk-U2EW7RSR.mjs → chunk-F5VRX5Y6.mjs} +1 -1
  163. package/dist/client/{chunk-SBBSMFFG.mjs → chunk-SYIJ5JO2.mjs} +1 -1
  164. package/dist/client/{chunk-EQKYMX4N.mjs → chunk-UHDWIXVR.mjs} +180 -157
  165. package/dist/client/{chunk-RJHTCTCZ.mjs → chunk-VGDBVNOO.mjs} +429 -15
  166. package/dist/client/{chunk-S3MKFGOG.mjs → chunk-ZE5G642V.mjs} +1 -1
  167. package/dist/client/{chunk-CSZGLBYR.mjs → chunk-ZKUO52W3.mjs} +1 -1
  168. package/dist/client/client.mjs +2685 -847
  169. package/dist/client/{courseRegistration-VUG2JJDB.mjs → courseRegistration-YBOGURTA.mjs} +5 -5
  170. package/dist/client/{eventCalendar-E7D2LD4N.mjs → eventCalendar-K4QJVCMD.mjs} +7 -7
  171. package/dist/client/{eventCombined-FUZ2Z3CS.mjs → eventCombined-MTXGMTCZ.mjs} +7 -7
  172. package/dist/client/{eventDetails-QRITJAOW.mjs → eventDetails-3PC4NL3U.mjs} +7 -7
  173. package/dist/client/{eventListing-INMQMJZ5.mjs → eventListing-TFJET6DN.mjs} +7 -7
  174. package/dist/client/{eventRegistration-TOOJD4WU.mjs → eventRegistration-QGPBGJTW.mjs} +7 -7
  175. package/dist/client/{form-BOWN7ZNQ.mjs → form-MDKR4FNB.mjs} +2 -2
  176. package/dist/client/{headerSection-HFQNZOUU.mjs → headerSection-Y5TMR3TW.mjs} +3 -3
  177. package/dist/client/hooks.mjs +2077 -546
  178. package/dist/client/{locationMap-VUZGC7Y5.mjs → locationMap-RH2LG7FZ.mjs} +2 -2
  179. package/dist/client/{newsletterForm-X2XQTPCB.mjs → newsletterForm-ZR5UDGBT.mjs} +2 -2
  180. package/dist/client/{productDetail-TA7D2G2B.mjs → productDetail-OIGDR4YE.mjs} +6 -6
  181. package/dist/client/{productList-AZOLOZKM.mjs → productList-4MA5S2CX.mjs} +6 -6
  182. package/dist/client/rendering/client.mjs +2560 -1205
  183. package/dist/client/rendering/islands.mjs +19 -19
  184. package/dist/client/rendering.mjs +2932 -1021
  185. package/dist/client/{shop-ZDLO7IIG.mjs → shop-WXSYV5QO.mjs} +6 -6
  186. package/dist/preview-next/before-render.mjs +40 -0
  187. package/dist/preview-next/client/runtime.mjs +5 -5
  188. package/dist/preview-next/middleware.mjs +40 -0
  189. package/dist/{sdk-runtime-CTWKNBDQ.mjs → sdk-runtime-7HJYPRWQ.mjs} +6 -6
  190. package/dist/server/components.mjs +2232 -534
  191. package/dist/server/config-validation.mjs +2068 -536
  192. package/dist/server/config.mjs +2068 -536
  193. package/dist/server/data.mjs +2077 -546
  194. package/dist/server/index.mjs +42 -1
  195. package/dist/server/next.mjs +2345 -574
  196. package/dist/server/page-converter.mjs +2684 -1220
  197. package/dist/server/prebuild.mjs +1 -1
  198. package/dist/server/rendering/server.mjs +2244 -546
  199. package/dist/server/rendering.mjs +2323 -552
  200. package/dist/server/routing.mjs +2012 -420
  201. package/dist/server/server.mjs +2153 -549
  202. package/dist/server/theme-bridge.mjs +1180 -101
  203. package/dist/server/theme.mjs +92 -1
  204. package/dist/styles/index.css +292 -36
  205. package/package.json +1 -1
  206. package/dist/SdkPreviewModeRuntime-RNVRHFFR.mjs +0 -8
@@ -6,9 +6,10 @@ import { type FooterLookId } from './footerLooks';
6
6
  import { type CuratedChoice } from './curatedChoices';
7
7
  import { type AppearancePresetId, type DesignSystemTemplate, type HeadingDecoration, type NonEmptyReadonlyArray, type SiteStyleId } from './types';
8
8
  import { type KnownTypographyPresetId, type TypographyPresetId } from './typographyPresets';
9
+ import { type DesignRuntimeRules } from './runtimeCompiler';
9
10
  export declare const SOFT_EARTH_SITE_STYLE_ID_VALUE: "site-style:soft-earth";
10
11
  export declare const SOFT_EARTH_SITE_STYLE_ID: SiteStyleId;
11
- export declare const curatedSiteStyleIdValues: readonly ["site-style:calm-studio", "site-style:clear-professional", "site-style:warm-editorial", "site-style:bright-community", "site-style:quiet-luxury", "site-style:practical-services", "site-style:quiet-practice", "site-style:personal-retreat-journal", "site-style:tactile-workshop", "site-style:modern-wellness", "site-style:clarity-zen-blue", "site-style:soft-earth", "site-style:bold-launch", "site-style:south-west-twerk-school", "site-style:original-joy"];
12
+ export declare const curatedSiteStyleIdValues: readonly ["site-style:calm-studio", "site-style:clear-professional", "site-style:warm-editorial", "site-style:bright-community", "site-style:quiet-luxury", "site-style:practical-services", "site-style:quiet-practice", "site-style:personal-retreat-journal", "site-style:tactile-workshop", "site-style:modern-wellness", "site-style:clarity-zen-blue", "site-style:soft-earth", "site-style:bold-launch", "site-style:south-west-twerk-school", "site-style:kirtan-ornate", "site-style:original-joy"];
12
13
  export type CuratedSiteStyleIdValue = (typeof curatedSiteStyleIdValues)[number];
13
14
  type CuratedSiteStyleHeroOverrides = Readonly<{
14
15
  typography?: NonNullable<NonNullable<Theme['hero']>['typography']>;
@@ -89,6 +90,12 @@ export type CuratedSiteStyle = Readonly<{
89
90
  siteCreatorSelection: CuratedSiteStyleCreatorSelection;
90
91
  template: DesignSystemTemplate;
91
92
  themeOverrides?: CuratedSiteStyleThemeOverrides;
93
+ /**
94
+ * Optional Theme V2 runtime rules owned by the style. These translate
95
+ * semantic section surfaces into block runtime fields such as background
96
+ * and foreground tokens.
97
+ */
98
+ designRuntimeRules?: DesignRuntimeRules;
92
99
  defaultBlockVariants?: CuratedSiteStyleDefaultBlockVariants;
93
100
  /**
94
101
  * Site-wide heading decoration signature (family + colour). Applied to
@@ -127,6 +134,12 @@ export declare const curatedSiteStyles: readonly [Readonly<{
127
134
  siteCreatorSelection: CuratedSiteStyleCreatorSelection;
128
135
  template: DesignSystemTemplate;
129
136
  themeOverrides?: CuratedSiteStyleThemeOverrides;
137
+ /**
138
+ * Optional Theme V2 runtime rules owned by the style. These translate
139
+ * semantic section surfaces into block runtime fields such as background
140
+ * and foreground tokens.
141
+ */
142
+ designRuntimeRules?: DesignRuntimeRules;
130
143
  defaultBlockVariants?: CuratedSiteStyleDefaultBlockVariants;
131
144
  /**
132
145
  * Site-wide heading decoration signature (family + colour). Applied to
@@ -156,6 +169,12 @@ export declare const curatedSiteStyles: readonly [Readonly<{
156
169
  siteCreatorSelection: CuratedSiteStyleCreatorSelection;
157
170
  template: DesignSystemTemplate;
158
171
  themeOverrides?: CuratedSiteStyleThemeOverrides;
172
+ /**
173
+ * Optional Theme V2 runtime rules owned by the style. These translate
174
+ * semantic section surfaces into block runtime fields such as background
175
+ * and foreground tokens.
176
+ */
177
+ designRuntimeRules?: DesignRuntimeRules;
159
178
  defaultBlockVariants?: CuratedSiteStyleDefaultBlockVariants;
160
179
  /**
161
180
  * Site-wide heading decoration signature (family + colour). Applied to
@@ -185,6 +204,12 @@ export declare const curatedSiteStyles: readonly [Readonly<{
185
204
  siteCreatorSelection: CuratedSiteStyleCreatorSelection;
186
205
  template: DesignSystemTemplate;
187
206
  themeOverrides?: CuratedSiteStyleThemeOverrides;
207
+ /**
208
+ * Optional Theme V2 runtime rules owned by the style. These translate
209
+ * semantic section surfaces into block runtime fields such as background
210
+ * and foreground tokens.
211
+ */
212
+ designRuntimeRules?: DesignRuntimeRules;
188
213
  defaultBlockVariants?: CuratedSiteStyleDefaultBlockVariants;
189
214
  /**
190
215
  * Site-wide heading decoration signature (family + colour). Applied to
@@ -214,6 +239,12 @@ export declare const curatedSiteStyles: readonly [Readonly<{
214
239
  siteCreatorSelection: CuratedSiteStyleCreatorSelection;
215
240
  template: DesignSystemTemplate;
216
241
  themeOverrides?: CuratedSiteStyleThemeOverrides;
242
+ /**
243
+ * Optional Theme V2 runtime rules owned by the style. These translate
244
+ * semantic section surfaces into block runtime fields such as background
245
+ * and foreground tokens.
246
+ */
247
+ designRuntimeRules?: DesignRuntimeRules;
217
248
  defaultBlockVariants?: CuratedSiteStyleDefaultBlockVariants;
218
249
  /**
219
250
  * Site-wide heading decoration signature (family + colour). Applied to
@@ -243,6 +274,12 @@ export declare const curatedSiteStyles: readonly [Readonly<{
243
274
  siteCreatorSelection: CuratedSiteStyleCreatorSelection;
244
275
  template: DesignSystemTemplate;
245
276
  themeOverrides?: CuratedSiteStyleThemeOverrides;
277
+ /**
278
+ * Optional Theme V2 runtime rules owned by the style. These translate
279
+ * semantic section surfaces into block runtime fields such as background
280
+ * and foreground tokens.
281
+ */
282
+ designRuntimeRules?: DesignRuntimeRules;
246
283
  defaultBlockVariants?: CuratedSiteStyleDefaultBlockVariants;
247
284
  /**
248
285
  * Site-wide heading decoration signature (family + colour). Applied to
@@ -272,6 +309,12 @@ export declare const curatedSiteStyles: readonly [Readonly<{
272
309
  siteCreatorSelection: CuratedSiteStyleCreatorSelection;
273
310
  template: DesignSystemTemplate;
274
311
  themeOverrides?: CuratedSiteStyleThemeOverrides;
312
+ /**
313
+ * Optional Theme V2 runtime rules owned by the style. These translate
314
+ * semantic section surfaces into block runtime fields such as background
315
+ * and foreground tokens.
316
+ */
317
+ designRuntimeRules?: DesignRuntimeRules;
275
318
  defaultBlockVariants?: CuratedSiteStyleDefaultBlockVariants;
276
319
  /**
277
320
  * Site-wide heading decoration signature (family + colour). Applied to
@@ -301,6 +344,12 @@ export declare const curatedSiteStyles: readonly [Readonly<{
301
344
  siteCreatorSelection: CuratedSiteStyleCreatorSelection;
302
345
  template: DesignSystemTemplate;
303
346
  themeOverrides?: CuratedSiteStyleThemeOverrides;
347
+ /**
348
+ * Optional Theme V2 runtime rules owned by the style. These translate
349
+ * semantic section surfaces into block runtime fields such as background
350
+ * and foreground tokens.
351
+ */
352
+ designRuntimeRules?: DesignRuntimeRules;
304
353
  defaultBlockVariants?: CuratedSiteStyleDefaultBlockVariants;
305
354
  /**
306
355
  * Site-wide heading decoration signature (family + colour). Applied to
@@ -330,6 +379,12 @@ export declare const curatedSiteStyles: readonly [Readonly<{
330
379
  siteCreatorSelection: CuratedSiteStyleCreatorSelection;
331
380
  template: DesignSystemTemplate;
332
381
  themeOverrides?: CuratedSiteStyleThemeOverrides;
382
+ /**
383
+ * Optional Theme V2 runtime rules owned by the style. These translate
384
+ * semantic section surfaces into block runtime fields such as background
385
+ * and foreground tokens.
386
+ */
387
+ designRuntimeRules?: DesignRuntimeRules;
333
388
  defaultBlockVariants?: CuratedSiteStyleDefaultBlockVariants;
334
389
  /**
335
390
  * Site-wide heading decoration signature (family + colour). Applied to
@@ -359,6 +414,12 @@ export declare const curatedSiteStyles: readonly [Readonly<{
359
414
  siteCreatorSelection: CuratedSiteStyleCreatorSelection;
360
415
  template: DesignSystemTemplate;
361
416
  themeOverrides?: CuratedSiteStyleThemeOverrides;
417
+ /**
418
+ * Optional Theme V2 runtime rules owned by the style. These translate
419
+ * semantic section surfaces into block runtime fields such as background
420
+ * and foreground tokens.
421
+ */
422
+ designRuntimeRules?: DesignRuntimeRules;
362
423
  defaultBlockVariants?: CuratedSiteStyleDefaultBlockVariants;
363
424
  /**
364
425
  * Site-wide heading decoration signature (family + colour). Applied to
@@ -388,6 +449,12 @@ export declare const curatedSiteStyles: readonly [Readonly<{
388
449
  siteCreatorSelection: CuratedSiteStyleCreatorSelection;
389
450
  template: DesignSystemTemplate;
390
451
  themeOverrides?: CuratedSiteStyleThemeOverrides;
452
+ /**
453
+ * Optional Theme V2 runtime rules owned by the style. These translate
454
+ * semantic section surfaces into block runtime fields such as background
455
+ * and foreground tokens.
456
+ */
457
+ designRuntimeRules?: DesignRuntimeRules;
391
458
  defaultBlockVariants?: CuratedSiteStyleDefaultBlockVariants;
392
459
  /**
393
460
  * Site-wide heading decoration signature (family + colour). Applied to
@@ -417,6 +484,12 @@ export declare const curatedSiteStyles: readonly [Readonly<{
417
484
  siteCreatorSelection: CuratedSiteStyleCreatorSelection;
418
485
  template: DesignSystemTemplate;
419
486
  themeOverrides?: CuratedSiteStyleThemeOverrides;
487
+ /**
488
+ * Optional Theme V2 runtime rules owned by the style. These translate
489
+ * semantic section surfaces into block runtime fields such as background
490
+ * and foreground tokens.
491
+ */
492
+ designRuntimeRules?: DesignRuntimeRules;
420
493
  defaultBlockVariants?: CuratedSiteStyleDefaultBlockVariants;
421
494
  /**
422
495
  * Site-wide heading decoration signature (family + colour). Applied to
@@ -446,6 +519,12 @@ export declare const curatedSiteStyles: readonly [Readonly<{
446
519
  siteCreatorSelection: CuratedSiteStyleCreatorSelection;
447
520
  template: DesignSystemTemplate;
448
521
  themeOverrides?: CuratedSiteStyleThemeOverrides;
522
+ /**
523
+ * Optional Theme V2 runtime rules owned by the style. These translate
524
+ * semantic section surfaces into block runtime fields such as background
525
+ * and foreground tokens.
526
+ */
527
+ designRuntimeRules?: DesignRuntimeRules;
449
528
  defaultBlockVariants?: CuratedSiteStyleDefaultBlockVariants;
450
529
  /**
451
530
  * Site-wide heading decoration signature (family + colour). Applied to
@@ -475,6 +554,12 @@ export declare const curatedSiteStyles: readonly [Readonly<{
475
554
  siteCreatorSelection: CuratedSiteStyleCreatorSelection;
476
555
  template: DesignSystemTemplate;
477
556
  themeOverrides?: CuratedSiteStyleThemeOverrides;
557
+ /**
558
+ * Optional Theme V2 runtime rules owned by the style. These translate
559
+ * semantic section surfaces into block runtime fields such as background
560
+ * and foreground tokens.
561
+ */
562
+ designRuntimeRules?: DesignRuntimeRules;
478
563
  defaultBlockVariants?: CuratedSiteStyleDefaultBlockVariants;
479
564
  /**
480
565
  * Site-wide heading decoration signature (family + colour). Applied to
@@ -504,6 +589,12 @@ export declare const curatedSiteStyles: readonly [Readonly<{
504
589
  siteCreatorSelection: CuratedSiteStyleCreatorSelection;
505
590
  template: DesignSystemTemplate;
506
591
  themeOverrides?: CuratedSiteStyleThemeOverrides;
592
+ /**
593
+ * Optional Theme V2 runtime rules owned by the style. These translate
594
+ * semantic section surfaces into block runtime fields such as background
595
+ * and foreground tokens.
596
+ */
597
+ designRuntimeRules?: DesignRuntimeRules;
507
598
  defaultBlockVariants?: CuratedSiteStyleDefaultBlockVariants;
508
599
  /**
509
600
  * Site-wide heading decoration signature (family + colour). Applied to
@@ -533,6 +624,47 @@ export declare const curatedSiteStyles: readonly [Readonly<{
533
624
  siteCreatorSelection: CuratedSiteStyleCreatorSelection;
534
625
  template: DesignSystemTemplate;
535
626
  themeOverrides?: CuratedSiteStyleThemeOverrides;
627
+ /**
628
+ * Optional Theme V2 runtime rules owned by the style. These translate
629
+ * semantic section surfaces into block runtime fields such as background
630
+ * and foreground tokens.
631
+ */
632
+ designRuntimeRules?: DesignRuntimeRules;
633
+ defaultBlockVariants?: CuratedSiteStyleDefaultBlockVariants;
634
+ /**
635
+ * Site-wide heading decoration signature (family + colour). Applied to
636
+ * eligible block headings as a single consistent mark; alignment is inherited
637
+ * from the heading. The factory defaults this to the short centre rule.
638
+ */
639
+ headingDecoration: HeadingDecoration;
640
+ recommendedAppearancePresetIds: readonly AppearancePresetId[];
641
+ defaultHeaderSelection: HeaderLayoutStyleChoice;
642
+ recommendedHeaderLayoutChoices: NonEmptyReadonlyArray<HeaderLayoutChoice>;
643
+ recommendedHeaderStyleChoicesByLayout: RecommendedHeaderStylesByLayout;
644
+ discouragedHeaderSelections?: readonly HeaderLayoutStyleChoice[];
645
+ recommendedHeaderLookIds: readonly HeaderLookId[];
646
+ recommendedFooterLookIds: readonly FooterLookId[];
647
+ /** Authored picker choices. First item is the default/fallback. */
648
+ buttonPersonalityChoices: NonEmptyReadonlyArray<ButtonPersonalityChoice>;
649
+ /** Authored picker choices. First item is the default/fallback. */
650
+ paletteVariantChoices: NonEmptyReadonlyArray<PaletteVariantChoice>;
651
+ typographyPresetChoices: NonEmptyReadonlyArray<TypographyPresetChoice>;
652
+ defaultTypographyPresetId: KnownTypographyPresetId;
653
+ }>, Readonly<{
654
+ id: SiteStyleId;
655
+ name: string;
656
+ description: string;
657
+ generationBrief: string;
658
+ selectionKeywordRules: readonly CuratedSiteStyleSelectionKeywordRule[];
659
+ siteCreatorSelection: CuratedSiteStyleCreatorSelection;
660
+ template: DesignSystemTemplate;
661
+ themeOverrides?: CuratedSiteStyleThemeOverrides;
662
+ /**
663
+ * Optional Theme V2 runtime rules owned by the style. These translate
664
+ * semantic section surfaces into block runtime fields such as background
665
+ * and foreground tokens.
666
+ */
667
+ designRuntimeRules?: DesignRuntimeRules;
536
668
  defaultBlockVariants?: CuratedSiteStyleDefaultBlockVariants;
537
669
  /**
538
670
  * Site-wide heading decoration signature (family + colour). Applied to
@@ -563,6 +695,12 @@ export declare const curatedSiteStylesById: Map<SiteStyleId, Readonly<{
563
695
  siteCreatorSelection: CuratedSiteStyleCreatorSelection;
564
696
  template: DesignSystemTemplate;
565
697
  themeOverrides?: CuratedSiteStyleThemeOverrides;
698
+ /**
699
+ * Optional Theme V2 runtime rules owned by the style. These translate
700
+ * semantic section surfaces into block runtime fields such as background
701
+ * and foreground tokens.
702
+ */
703
+ designRuntimeRules?: DesignRuntimeRules;
566
704
  defaultBlockVariants?: CuratedSiteStyleDefaultBlockVariants;
567
705
  /**
568
706
  * Site-wide heading decoration signature (family + colour). Applied to
@@ -585,5 +723,7 @@ export declare const curatedSiteStylesById: Map<SiteStyleId, Readonly<{
585
723
  defaultTypographyPresetId: KnownTypographyPresetId;
586
724
  }>>;
587
725
  export declare function getCuratedSiteStyle(id: SiteStyleId): CuratedSiteStyle | null;
726
+ export declare function designRuntimeRulesForSiteStyle(siteStyle: CuratedSiteStyle | null | undefined): DesignRuntimeRules;
727
+ export declare function designRuntimeRulesForTheme(theme: Pick<Theme, 'siteStyleId'> | null | undefined): DesignRuntimeRules;
588
728
  export declare function defaultBlockVariantForSiteStyle(siteStyle: CuratedSiteStyle, blockKind: 'block.faq'): FaqDefaultBlockVariant | null;
589
729
  export {};
@@ -255,6 +255,7 @@ export declare const blockDesignPlanSchema: z.ZodObject<{
255
255
  eyebrowTreatment: z.ZodOptional<z.ZodEnum<{
256
256
  plain: "plain";
257
257
  pill: "pill";
258
+ accent: "accent";
258
259
  "accent-pill": "accent-pill";
259
260
  "pill-bounce": "pill-bounce";
260
261
  "accent-pill-bounce": "accent-pill-bounce";
@@ -471,6 +472,7 @@ export declare const persistedPageDesignStateV1Schema: z.ZodObject<{
471
472
  eyebrowTreatment: z.ZodOptional<z.ZodEnum<{
472
473
  plain: "plain";
473
474
  pill: "pill";
475
+ accent: "accent";
474
476
  "accent-pill": "accent-pill";
475
477
  "pill-bounce": "pill-bounce";
476
478
  "accent-pill-bounce": "accent-pill-bounce";
@@ -1,7 +1,7 @@
1
1
  import type { Theme } from '../schema';
2
2
  import { type SiteChromeLookDiagnostics } from './customizableSurfaces';
3
3
  import { type Brand } from './types';
4
- export declare const footerLookIdValues: readonly ["footer-muted-grounding", "footer-centered-calm", "footer-editorial-columns", "site-footer-brand-two-band"];
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
5
  export type FooterLookIdValue = typeof footerLookIdValues[number];
6
6
  export type FooterLookId = Brand<FooterLookIdValue, 'FooterLookId'>;
7
7
  export declare function asFooterLookId(value: FooterLookIdValue): FooterLookId;
@@ -18,18 +18,45 @@ export declare function parsePersistedFooterLookId(value: string): Exclude<Persi
18
18
  kind: 'empty';
19
19
  }>;
20
20
  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
+ }>;
21
42
  export type FooterLookDefinition = Readonly<{
22
43
  id: FooterLookId;
23
44
  label: string;
45
+ layoutId: FooterLayoutId;
46
+ styleId: FooterStyleId;
47
+ hiddenFromLayoutStyleControls?: boolean;
48
+ requiresFooterNav?: boolean;
49
+ requiresFooterNavGroups?: boolean;
24
50
  maxRecommendedNavDensity?: Extract<FooterSelectionContext['navDensity'], 'sparse' | 'balanced'>;
25
51
  allowedContentPresence?: readonly Exclude<FooterSelectionContext['contentPresence'], 'unknown'>[];
26
52
  compile: (theme: Theme) => Theme['footer'];
27
53
  }>;
28
54
  export type FooterSelectionContext = Readonly<{
29
- navDensity: 'unknown' | 'sparse' | 'balanced' | 'dense';
55
+ navDensity: 'unknown' | 'none' | 'sparse' | 'balanced' | 'dense';
56
+ groupedNav: 'unknown' | 'none' | 'present';
30
57
  contentPresence: 'unknown' | 'default-footer' | 'footer-blocks' | 'default-and-blocks';
31
58
  }>;
32
- export type RejectedFooterLookReason = 'footer-nav-too-dense' | 'footer-content-incompatible';
59
+ export type RejectedFooterLookReason = 'footer-nav-required' | 'footer-nav-groups-required' | 'footer-nav-too-dense' | 'footer-content-incompatible';
33
60
  export type RejectedFooterLook = Readonly<{
34
61
  lookId: FooterLookId;
35
62
  reasons: readonly RejectedFooterLookReason[];
@@ -48,7 +75,63 @@ export type FooterLookResolutionInput = Readonly<{
48
75
  }>;
49
76
  export declare const defaultFooterSelectionContext: FooterSelectionContext;
50
77
  export declare const guaranteedFallbackFooterLookId: FooterLookId;
51
- /** Uses the generated theme's footer branch as-is: the canonical calm Look. */
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
+ */
52
135
  declare function mutedGroundingFooter(theme: Theme): Theme['footer'];
53
136
  /** Applies a high-contrast brand band with a darker full-bleed bottom bar. */
54
137
  declare function brandTwoBandFooter(theme: Theme): Theme['footer'];
@@ -57,6 +140,8 @@ declare function brandTwoBandFooter(theme: Theme): Theme['footer'];
57
140
  * hairline-topped copyright line, all centered.
58
141
  */
59
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'];
60
145
  /**
61
146
  * Editorial columns: site name and supporting copy on the left, inline nav on
62
147
  * the right, with a hairline-topped bottom line. Uses the footer block's
@@ -64,21 +149,41 @@ declare function centeredCalmFooter(theme: Theme): Theme['footer'];
64
149
  */
65
150
  declare function editorialColumnsFooter(theme: Theme): Theme['footer'];
66
151
  export declare const footerLookCatalog: readonly [{
152
+ readonly id: FooterLookId;
153
+ readonly label: "Identity footer";
154
+ readonly layoutId: FooterLayoutId;
155
+ readonly styleId: FooterStyleId;
156
+ readonly compile: typeof identityQuietFooter;
157
+ }, {
67
158
  readonly id: FooterLookId;
68
159
  readonly label: "Muted grounding footer";
160
+ readonly layoutId: FooterLayoutId;
161
+ readonly styleId: FooterStyleId;
162
+ readonly hiddenFromLayoutStyleControls: true;
69
163
  readonly compile: typeof mutedGroundingFooter;
70
164
  }, {
71
165
  readonly id: FooterLookId;
72
166
  readonly label: "Centered calm footer";
167
+ readonly layoutId: FooterLayoutId;
168
+ readonly styleId: FooterStyleId;
73
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;
74
176
  }, {
75
177
  readonly id: FooterLookId;
76
178
  readonly label: "Editorial columns footer";
179
+ readonly layoutId: FooterLayoutId;
180
+ readonly styleId: FooterStyleId;
77
181
  readonly compile: typeof editorialColumnsFooter;
78
182
  }, {
79
183
  readonly id: FooterLookId;
80
184
  readonly label: "Two-band brand footer";
81
- readonly maxRecommendedNavDensity: "balanced";
185
+ readonly layoutId: FooterLayoutId;
186
+ readonly styleId: FooterStyleId;
82
187
  readonly allowedContentPresence: readonly ["default-footer", "default-and-blocks"];
83
188
  readonly compile: typeof brandTwoBandFooter;
84
189
  }];
@@ -32,8 +32,9 @@ export declare const generatedSiteStyleIdSchema: z.ZodPipe<z.ZodEnum<{
32
32
  "site-style:clarity-zen-blue": "site-style:clarity-zen-blue";
33
33
  "site-style:bold-launch": "site-style:bold-launch";
34
34
  "site-style:south-west-twerk-school": "site-style:south-west-twerk-school";
35
+ "site-style:kirtan-ornate": "site-style:kirtan-ornate";
35
36
  "site-style:original-joy": "site-style:original-joy";
36
- }>, z.ZodTransform<SiteStyleId, "site-style:soft-earth" | "site-style:calm-studio" | "site-style:clear-professional" | "site-style:warm-editorial" | "site-style:bright-community" | "site-style:quiet-luxury" | "site-style:practical-services" | "site-style:quiet-practice" | "site-style:personal-retreat-journal" | "site-style:tactile-workshop" | "site-style:modern-wellness" | "site-style:clarity-zen-blue" | "site-style:bold-launch" | "site-style:south-west-twerk-school" | "site-style:original-joy">>;
37
+ }>, z.ZodTransform<SiteStyleId, "site-style:soft-earth" | "site-style:calm-studio" | "site-style:clear-professional" | "site-style:warm-editorial" | "site-style:bright-community" | "site-style:quiet-luxury" | "site-style:practical-services" | "site-style:quiet-practice" | "site-style:personal-retreat-journal" | "site-style:tactile-workshop" | "site-style:modern-wellness" | "site-style:clarity-zen-blue" | "site-style:bold-launch" | "site-style:south-west-twerk-school" | "site-style:kirtan-ornate" | "site-style:original-joy">>;
37
38
  export declare const generatedBlockDesignIntentSchema: z.ZodObject<{
38
39
  sectionSurface: z.ZodDiscriminatedUnion<[z.ZodObject<{
39
40
  source: z.ZodLiteral<"generated">;
@@ -180,8 +181,9 @@ export declare const generatedPageDesignIntentSchema: z.ZodObject<{
180
181
  "site-style:clarity-zen-blue": "site-style:clarity-zen-blue";
181
182
  "site-style:bold-launch": "site-style:bold-launch";
182
183
  "site-style:south-west-twerk-school": "site-style:south-west-twerk-school";
184
+ "site-style:kirtan-ornate": "site-style:kirtan-ornate";
183
185
  "site-style:original-joy": "site-style:original-joy";
184
- }>, z.ZodTransform<SiteStyleId, "site-style:soft-earth" | "site-style:calm-studio" | "site-style:clear-professional" | "site-style:warm-editorial" | "site-style:bright-community" | "site-style:quiet-luxury" | "site-style:practical-services" | "site-style:quiet-practice" | "site-style:personal-retreat-journal" | "site-style:tactile-workshop" | "site-style:modern-wellness" | "site-style:clarity-zen-blue" | "site-style:bold-launch" | "site-style:south-west-twerk-school" | "site-style:original-joy">>;
186
+ }>, z.ZodTransform<SiteStyleId, "site-style:soft-earth" | "site-style:calm-studio" | "site-style:clear-professional" | "site-style:warm-editorial" | "site-style:bright-community" | "site-style:quiet-luxury" | "site-style:practical-services" | "site-style:quiet-practice" | "site-style:personal-retreat-journal" | "site-style:tactile-workshop" | "site-style:modern-wellness" | "site-style:clarity-zen-blue" | "site-style:bold-launch" | "site-style:south-west-twerk-school" | "site-style:kirtan-ornate" | "site-style:original-joy">>;
185
187
  blocks: z.ZodArray<z.ZodObject<{
186
188
  blockId: z.ZodString;
187
189
  blockKind: z.ZodString;
@@ -7,7 +7,7 @@ import { type CompiledTypographySelection, type KnownTypographyPresetId, type Ty
7
7
  import { type FooterLookId, type FooterSelectionContext, type FooterSelectionResult } from './footerLooks';
8
8
  import { type HeaderLayoutId, type HeaderSelectionContext, type HeaderLookId, type HeaderSelectionResult, type HeaderStyleId } from './headerLooks';
9
9
  import { type CompiledBlockRuntimeFields, type CompiledPageRuntime, type ComponentRuntimeRules, type DesignRuntimeRules, type SemanticSpacing, type SurfaceResolutionContext } from './runtimeCompiler';
10
- import type { AppearancePresetId, DesignBlockId, SiteStyleId } from './types';
10
+ import { type AppearancePresetId, type DesignBlockId, type SiteStyleId } from './types';
11
11
  import { type CuratedSiteStyleTheme } from './siteStyleThemeCompiler';
12
12
  export type { CuratedSiteStyleTheme } from './siteStyleThemeCompiler';
13
13
  /**
@@ -3,14 +3,17 @@ import { type ExpandedPalette } from '../palette/expandPalette';
3
3
  import { type ButtonPersonalityId } from '../buttons/personalities';
4
4
  import { type PaletteOverrides, type PaletteVariantId } from '../palette/variants';
5
5
  import { type RuntimeStyleWriteResultForFields, type StyleAuthority } from './designState';
6
- import { type ContentFrameIntent, type FlushFrameTreatment, type PanelFrameTreatment, type ResolvedBlockDesignPlan, type ResolvedPageDesignPlan, type SiteStyleItemSurfaceIntent, type SiteStyleSectionTransitionIntent, type SiteStyleSurfaceIntent, type ThemeTokenRecipes } from './types';
6
+ import { type ContentFrameIntent, type EyebrowTreatment, type FlushFrameTreatment, type PanelFrameTreatment, type ResolvedBlockDesignPlan, type ResolvedPageDesignPlan, type SiteStyleItemSurfaceIntent, type SiteStyleSectionTransitionIntent, type SiteStyleSurfaceIntent, type ThemeTokenRecipes } from './types';
7
7
  export type SemanticSpacing = 'none' | 'compact' | 'cozy' | 'medium' | 'comfortable' | 'spacious';
8
8
  export type SectionPaddingX = 'normal' | 'none';
9
+ type SectionForegroundRuntimeTokens = Pick<NonNullable<SectionSurfaceRuntimeRule['background']>, 'textColor' | 'headingColor' | 'linkColor' | 'supportingColor'>;
9
10
  export type SectionSurfaceRuntimeRule = Readonly<{
10
11
  background?: NonNullable<SectionStylesOverride['background']>;
12
+ foreground?: Partial<SectionForegroundRuntimeTokens>;
11
13
  }>;
12
14
  export type DesignRuntimeRules = Readonly<{
13
15
  sectionSurfaces: Readonly<Record<SiteStyleSurfaceIntent, SectionSurfaceRuntimeRule>>;
16
+ defaultEyebrowTreatment?: EyebrowTreatment;
14
17
  heroLegibility: Readonly<Record<Exclude<NonNullable<ResolvedBlockDesignPlan['appliedHeroLegibility']>, 'none'>, NonNullable<NonNullable<SectionStylesOverride['background']>['overlay']>>>;
15
18
  transitionClassName: (transition: SiteStyleSectionTransitionIntent, fromSurface: SiteStyleSurfaceIntent, toSurface: SiteStyleSurfaceIntent) => string | null;
16
19
  }>;
@@ -286,3 +289,4 @@ export type CompileTokenRecipesOptions = Readonly<{
286
289
  * palette lookup and leaves `theme.buttons` as the mock-theme default.
287
290
  */
288
291
  export declare function compileTokenRecipes(recipes: ThemeTokenRecipes, options?: CompileTokenRecipesOptions): Theme;
292
+ export {};
@@ -22,8 +22,8 @@ export declare const themeTokenRecipesSchema: z.ZodObject<{
22
22
  maximum: "maximum";
23
23
  }>;
24
24
  radius: z.ZodEnum<{
25
- rounded: "rounded";
26
25
  square: "square";
26
+ rounded: "rounded";
27
27
  pill: "pill";
28
28
  soft: "soft";
29
29
  }>;
@@ -205,7 +205,7 @@ export declare const tileTreatmentValues: readonly ["default", "quiet", "brand-d
205
205
  export type TileTreatment = (typeof tileTreatmentValues)[number];
206
206
  export declare const eventListTreatmentValues: readonly ["plain", "lined-panel"];
207
207
  export type EventListTreatment = (typeof eventListTreatmentValues)[number];
208
- export declare const eyebrowTreatmentValues: readonly ["plain", "pill", "accent-pill", "pill-bounce", "accent-pill-bounce"];
208
+ export declare const eyebrowTreatmentValues: readonly ["plain", "accent", "pill", "accent-pill", "pill-bounce", "accent-pill-bounce"];
209
209
  export type EyebrowTreatment = (typeof eyebrowTreatmentValues)[number];
210
210
  export declare const headingDecorationFamilyValues: readonly ["none", "organic-squiggle", "short-center-rule"];
211
211
  export type HeadingDecorationFamily = (typeof headingDecorationFamilyValues)[number];
@@ -2,7 +2,7 @@ import type { Theme } from '../schema';
2
2
  import type { Brand, NonEmptyReadonlyArray } from './types';
3
3
  import type { PersistedIdParseResult } from './persistedIdParseResult';
4
4
  export type TypographyPresetId = Brand<string, 'TypographyPresetId'>;
5
- export declare const typographyPresetIdValues: readonly ["typography-preset:modern-sans", "typography-preset:warm-rounded", "typography-preset:editorial-serif", "typography-preset:classic-serif", "typography-preset:luxe-contrast", "typography-preset:bold-display", "typography-preset:original-joy"];
5
+ export declare const typographyPresetIdValues: readonly ["typography-preset:modern-sans", "typography-preset:warm-rounded", "typography-preset:editorial-serif", "typography-preset:classic-serif", "typography-preset:luxe-contrast", "typography-preset:kirtan-ornate", "typography-preset:bold-display", "typography-preset:original-joy"];
6
6
  export type KnownTypographyPresetIdValue = typeof typographyPresetIdValues[number];
7
7
  export type KnownTypographyPresetId = TypographyPresetId & KnownTypographyPresetIdValue;
8
8
  export type TypographyFontSlot = 'body' | 'heading';
@@ -189,6 +189,21 @@ export declare const typographyPresets: readonly [Readonly<{
189
189
  slotPolicies: Readonly<Record<TypographyFontSlot, TypographyFontSlotPolicy>>;
190
190
  typography: Theme["typography"];
191
191
  heroTypography?: NonNullable<NonNullable<Theme["hero"]>["typography"]>;
192
+ }>, Readonly<{
193
+ id: KnownTypographyPresetId;
194
+ name: string;
195
+ description: string;
196
+ defaultFonts: Readonly<{
197
+ body: string;
198
+ heading: string;
199
+ }>;
200
+ recommendedFonts: Readonly<{
201
+ body: NonEmptyReadonlyArray<string>;
202
+ heading: NonEmptyReadonlyArray<string>;
203
+ }>;
204
+ slotPolicies: Readonly<Record<TypographyFontSlot, TypographyFontSlotPolicy>>;
205
+ typography: Theme["typography"];
206
+ heroTypography?: NonNullable<NonNullable<Theme["hero"]>["typography"]>;
192
207
  }>];
193
208
  export declare function findTypographyPreset(id: TypographyPresetId): TypographyPreset | undefined;
194
209
  export declare function parsePersistedTypographyPresetId(value: string | null | undefined): PersistedIdParseResult<KnownTypographyPresetId>;
@@ -26,6 +26,7 @@ export type SiteDocumentPlanInput = Readonly<{
26
26
  headerPositioning: HeaderPositioning;
27
27
  headerVariant?: Theme["header"]["variant"] | null;
28
28
  hasVisibleBanner: boolean;
29
+ hasVisibleHeader?: boolean;
29
30
  }>;
30
31
  export declare function getStandaloneHeaderShellClassName(theme: Theme): string | null;
31
32
  export declare function planSiteDocument(input: SiteDocumentPlanInput): SiteDocumentPlan;
@@ -7,7 +7,7 @@ import type { CSSProperties } from 'react';
7
7
  *
8
8
  * 2. Tokens with opacity: 'surface/95', 'primary/50', 'border/20'
9
9
  * Format: `{token}/{opacity%}`
10
- * These resolve to rgba with the specified opacity (e.g., `rgba(var(--tb-surface), 0.95)`)
10
+ * These resolve to CSS Color 4 alpha syntax (e.g., `rgb(var(--tb-surface) / 0.95)`)
11
11
  *
12
12
  * 3. Raw CSS values: 'raw:transparent', 'raw:#ffffff', 'raw:rgba(255, 0, 0, 0.5)'
13
13
  * Format: `raw:{css-value}`
@@ -19,7 +19,7 @@ import type { CSSProperties } from 'react';
19
19
  *
20
20
  * @example
21
21
  * // Token with opacity
22
- * rgbColorValue('surface/95') // => 'rgba(var(--tb-surface), 0.95)'
22
+ * rgbColorValue('surface/95') // => 'rgb(var(--tb-surface) / 0.95)'
23
23
  *
24
24
  * @example
25
25
  * // Raw value
@@ -27,15 +27,15 @@ import type { CSSProperties } from 'react';
27
27
  */
28
28
  type ThemeColorToken = string;
29
29
  /**
30
- * Converts a theme color token to a CSS rgb/rgba value.
30
+ * Converts a theme color token to a CSS rgb value.
31
31
  * This is the primary function for applying theme colors to CSS properties.
32
32
  *
33
33
  * @param token - Theme color token (semantic, with opacity, or raw)
34
- * @returns CSS color value (rgb, rgba, or raw CSS value)
34
+ * @returns CSS color value (rgb with optional alpha, or raw CSS value)
35
35
  *
36
36
  * @example
37
37
  * rgbColorValue('primary') // => 'rgb(var(--tb-primary))'
38
- * rgbColorValue('surface/95') // => 'rgba(var(--tb-surface), 0.95)'
38
+ * rgbColorValue('surface/95') // => 'rgb(var(--tb-surface) / 0.95)'
39
39
  * rgbColorValue('raw:transparent') // => 'transparent'
40
40
  */
41
41
  export declare function rgbColorValue(token: ThemeColorToken): string;
@@ -85,7 +85,7 @@ export declare function borderColorStyle(token: ThemeColorToken): CSSProperties;
85
85
  *
86
86
  * @example
87
87
  * gradientBackgroundStyle(['primary/80', 'secondary/60'], '45deg')
88
- * // => { backgroundImage: 'linear-gradient(45deg, rgba(var(--tb-primary), 0.8), rgba(var(--tb-secondary), 0.6))' }
88
+ * // => { backgroundImage: 'linear-gradient(45deg, rgb(var(--tb-primary) / 0.8), rgb(var(--tb-secondary) / 0.6))' }
89
89
  */
90
90
  export declare function gradientBackgroundStyle(tokens: ThemeColorToken[], direction?: string): CSSProperties;
91
91
  /**
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { ApiRequestError, markPreviewAuthExpired } from './chunk-FIREV57T.mjs';
2
+ import { ApiRequestError, markPreviewAuthExpired } from './chunk-LBBPD2IW.mjs';
3
3
  import { createContext, useContext, useRef } from 'react';
4
4
  import { jsx } from 'react/jsx-runtime';
5
5
  import { QueryClient, MutationCache, QueryCache, QueryClientProvider } from '@tanstack/react-query';