@riverbankcms/sdk 0.79.0 → 0.81.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 (327) hide show
  1. package/dist/PreviewEditorSidebar-RDCMEXIJ.mjs +3163 -0
  2. package/dist/{PreviewEditorUI-27KJVEET.mjs → PreviewEditorUI-NYGQ6K7B.mjs} +194 -30
  3. package/dist/SdkPreviewModeRuntime-AKCSCZEC.mjs +8 -0
  4. package/dist/_dts/ai/src/contracts/proposals.d.ts +20 -0
  5. package/dist/_dts/api/src/contentRuntime.d.ts +12 -0
  6. package/dist/_dts/api/src/contentTypes.d.ts +6 -0
  7. package/dist/_dts/api/src/endpoints.d.ts +24 -0
  8. package/dist/_dts/api/src/index.d.ts +3 -3
  9. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +53 -0
  10. package/dist/_dts/api/src/siteInfrastructure.d.ts +124 -0
  11. package/dist/_dts/api/src/siteOnboarding.d.ts +13 -0
  12. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +10 -1
  13. package/dist/_dts/block-form/src/backend/store-backend.d.ts +3 -1
  14. package/dist/_dts/block-form/src/backend/types.d.ts +3 -3
  15. package/dist/_dts/block-form/src/client/index.d.ts +2 -0
  16. package/dist/_dts/block-form/src/index.d.ts +2 -0
  17. package/dist/_dts/block-form/src/utils/evaluateVisibility.d.ts +2 -1
  18. package/dist/_dts/blocks/src/PageRenderer.d.ts +3 -0
  19. package/dist/_dts/blocks/src/client/header.d.ts +1 -1
  20. package/dist/_dts/blocks/src/client.d.ts +12 -12
  21. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +20 -28
  22. package/dist/_dts/blocks/src/index.d.ts +7 -5
  23. package/dist/_dts/blocks/src/primitives/content/components/Text.d.ts +1 -1
  24. package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +1 -0
  25. package/dist/_dts/blocks/src/server.d.ts +1 -1
  26. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +3 -2
  27. package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +2 -2
  28. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -1
  29. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +135 -0
  30. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +9 -1
  31. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +2 -0
  32. package/dist/_dts/blocks/src/system/blocks/form.d.ts +20 -1
  33. package/dist/_dts/blocks/src/system/blocks/hero.d.ts +2 -0
  34. package/dist/_dts/blocks/src/system/blocks/offerings-preview/index.d.ts +19 -0
  35. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +134 -0
  36. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +7 -1
  37. package/dist/_dts/blocks/src/system/componentFactory.d.ts +1 -0
  38. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  39. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  40. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +34 -15
  41. package/dist/_dts/blocks/src/system/data/index.d.ts +2 -0
  42. package/dist/_dts/blocks/src/system/data/linkedContentEntries.d.ts +64 -0
  43. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  44. package/dist/_dts/blocks/src/system/designCapabilities.d.ts +2 -2
  45. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +10 -3
  46. package/dist/_dts/blocks/src/system/fragments/library/testimonialsCarousel.d.ts +5 -0
  47. package/dist/_dts/blocks/src/system/media/slotContracts.d.ts +2 -0
  48. package/dist/_dts/blocks/src/system/node/fragments/headingDecoration.d.ts +1 -4
  49. package/dist/_dts/blocks/src/system/node/types.d.ts +8 -1
  50. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +2 -2
  51. package/dist/_dts/blocks/src/system/registry.d.ts +1 -0
  52. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +51 -57
  53. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -27
  54. package/dist/_dts/blocks/src/system/runtime/header/enhanceHeaderSection.d.ts +10 -2
  55. package/dist/_dts/blocks/src/system/runtime/headingDecoration.d.ts +21 -0
  56. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +45 -14
  57. package/dist/_dts/blocks/src/system/runtime/hooks/useEventFilters.d.ts +2 -9
  58. package/dist/_dts/blocks/src/system/runtime/hooks/useEventPagination.d.ts +1 -10
  59. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +1 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +21 -16
  61. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +3 -2
  62. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +21 -16
  63. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +22 -33
  64. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.server.d.ts +2 -2
  65. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventSpotlight.d.ts +2 -2
  66. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +2 -2
  67. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventDetailModal.d.ts +2 -2
  68. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -2
  69. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventPaginatedListView.client.d.ts +2 -3
  70. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +3 -3
  71. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listOptions.d.ts +50 -0
  72. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +2 -1
  73. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -2
  74. package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +29 -14
  75. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +21 -0
  76. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +7 -0
  77. package/dist/_dts/blocks/src/system/transforms/registry/_utils/sectionForegroundStyles.d.ts +2 -0
  78. package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +7 -2
  79. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +9 -0
  80. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +14 -1
  81. package/dist/_dts/calendar/src/grid.d.ts +27 -0
  82. package/dist/_dts/calendar/src/index.d.ts +2 -2
  83. package/dist/_dts/content-editor/src/controller/useAutosaveTriggers.d.ts +3 -1
  84. package/dist/_dts/content-editor/src/editorTransactionState.d.ts +1 -0
  85. package/dist/_dts/content-editor/src/hooks/autosaveScopePlanning.d.ts +26 -0
  86. package/dist/_dts/content-editor/src/hooks/publishability.d.ts +1 -0
  87. package/dist/_dts/content-editor/src/hooks/useLinkedEntryAutosave.d.ts +23 -0
  88. package/dist/_dts/content-editor/src/hooks/useReactiveToolbar.d.ts +1 -1
  89. package/dist/_dts/content-editor/src/hooks/useSimpleAutosave.d.ts +2 -2
  90. package/dist/_dts/content-editor/src/index.d.ts +3 -1
  91. package/dist/_dts/content-editor/src/lib/json.d.ts +2 -0
  92. package/dist/_dts/content-editor/src/linkedEntries/domain.d.ts +8 -0
  93. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +58 -0
  94. package/dist/_dts/content-editor/src/ui/editorTransactionState.d.ts +93 -0
  95. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +60 -3
  96. package/dist/_dts/content-editor/src/ui/stores/autosaveStore.d.ts +2 -0
  97. package/dist/_dts/content-editor/src/ui/stores/types.d.ts +1 -1
  98. package/dist/_dts/content-model/src/content-types/builtins.d.ts +43 -0
  99. package/dist/_dts/content-model/src/metadataConfig.d.ts +87 -47
  100. package/dist/_dts/core/src/branded.d.ts +5 -0
  101. package/dist/_dts/core/src/index.d.ts +1 -0
  102. package/dist/_dts/core/src/stable-json.d.ts +1 -0
  103. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +9 -3
  104. package/dist/_dts/editor/src/EditorProvider.d.ts +26 -0
  105. package/dist/_dts/editor/src/chrome/EditorChrome.d.ts +26 -0
  106. package/dist/_dts/editor/src/chrome/EditorStatusBar.d.ts +45 -0
  107. package/dist/_dts/editor/src/chrome/statusBarPresentation.d.ts +25 -0
  108. package/dist/_dts/editor/src/components/EditingToggle.d.ts +9 -0
  109. package/dist/_dts/editor/src/hooks/useEditableElement.d.ts +18 -0
  110. package/dist/_dts/editor/src/index.d.ts +29 -0
  111. package/dist/_dts/editor/src/inline/InlineTextEditor.d.ts +1 -0
  112. package/dist/_dts/editor/src/lib/utils.d.ts +1 -0
  113. package/dist/_dts/editor/src/primitives/EditorPrimitivesProvider.d.ts +20 -0
  114. package/dist/_dts/editor/src/primitives/InlineFieldContext.d.ts +11 -0
  115. package/dist/_dts/editor/src/primitives/SaveContext.d.ts +12 -0
  116. package/dist/_dts/editor/src/primitives/helpers.d.ts +1 -0
  117. package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +26 -0
  118. package/dist/_dts/editor/src/primitives/rich-text/RichTextToolbar.d.ts +16 -0
  119. package/dist/_dts/editor/src/primitives/rich-text/config.d.ts +23 -0
  120. package/dist/_dts/editor/src/primitives/rich-text/extensions/RichTextImage.d.ts +2 -0
  121. package/dist/_dts/editor/src/primitives/rich-text/extensions/RichTextLink.d.ts +1 -0
  122. package/dist/_dts/editor/src/primitives/rich-text/imageActions.d.ts +22 -0
  123. package/dist/_dts/editor/src/primitives/rich-text/sanitize.d.ts +23 -0
  124. package/dist/_dts/editor/src/primitives/rich-text/toolbar/BlockTypeDropdown.d.ts +6 -0
  125. package/dist/_dts/editor/src/primitives/rich-text/toolbar/LinkPopover.d.ts +10 -0
  126. package/dist/_dts/editor/src/primitives/rich-text/toolbar/ToolbarIconButton.d.ts +11 -0
  127. package/dist/_dts/editor/src/primitives/rich-text/toolbar/linkPopoverUtils.d.ts +58 -0
  128. package/dist/_dts/editor/src/primitives/rich-text/useRichTextEditor.d.ts +19 -0
  129. package/dist/_dts/editor/src/primitives/rich-text/utils.d.ts +20 -0
  130. package/dist/_dts/editor/src/utils/optimisticTokens.d.ts +27 -0
  131. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +2 -2
  132. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +5 -9
  133. package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +2 -6
  134. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +6 -10
  135. package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +2 -6
  136. package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +6 -4
  137. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +4 -8
  138. package/dist/_dts/editor-blocks/src/block-editor/actionPresentation.d.ts +15 -0
  139. package/dist/_dts/editor-blocks/src/block-editor/blockHeaderActionPlan.d.ts +49 -0
  140. package/dist/_dts/editor-blocks/src/index.d.ts +2 -0
  141. package/dist/_dts/editor-blocks/src/widgets/index.d.ts +1 -0
  142. package/dist/_dts/editor-blocks/src/widgets/rich-text/RichTextWidgetProvider.d.ts +1 -1
  143. package/dist/_dts/editor-blocks/src/widgets/rich-text/useImagePicker.d.ts +1 -1
  144. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/SiteOptionPickerField.d.ts +3 -0
  145. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/SiteOptionWidgetProvider.d.ts +14 -0
  146. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/index.d.ts +6 -0
  147. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +51 -0
  148. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/types.d.ts +20 -0
  149. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/utils.d.ts +5 -0
  150. package/dist/_dts/media-core/src/index.d.ts +1 -0
  151. package/dist/_dts/media-core/src/renderableMediaAsset.d.ts +18 -0
  152. package/dist/_dts/media-editor/src/MediaEditor.d.ts +4 -1
  153. package/dist/_dts/media-editor/src/MediaPickerDialog.d.ts +2 -1
  154. package/dist/_dts/media-editor/src/index.d.ts +1 -1
  155. package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +7 -2
  156. package/dist/_dts/preview-next/src/client/blocks/EditablePageRenderer.d.ts +5 -1
  157. package/dist/_dts/preview-next/src/client/blocks/blockCustomizePopoverRows.d.ts +25 -0
  158. package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +2 -1
  159. package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +4 -30
  160. package/dist/_dts/preview-next/src/client/blocks/linkedEntryRenderOverlay.d.ts +11 -0
  161. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeActions.d.ts +3 -9
  162. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeControlPlan.d.ts +24 -0
  163. package/dist/_dts/preview-next/src/client/blocks/useBlockCustomizeControls.d.ts +35 -0
  164. package/dist/_dts/preview-next/src/client/index.d.ts +0 -1
  165. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +3 -1
  166. package/dist/_dts/preview-next/src/client/preview/LinkedEntryEditEventBridge.d.ts +1 -0
  167. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +5 -6
  168. package/dist/_dts/preview-next/src/client/preview/PageDesignEditorStateContext.d.ts +4 -1
  169. package/dist/_dts/preview-next/src/client/preview/PreviewBlockCustomizeSelectionContext.d.ts +20 -0
  170. package/dist/_dts/preview-next/src/client/preview/PreviewChromeLayer.d.ts +20 -0
  171. package/dist/_dts/preview-next/src/client/preview/PreviewDesignHistoryOrderContext.d.ts +13 -0
  172. package/dist/_dts/preview-next/src/client/preview/PreviewOpenEditorButton.d.ts +2 -0
  173. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +19 -19
  174. package/dist/_dts/preview-next/src/client/preview/PreviewSidebarSection.d.ts +13 -0
  175. package/dist/_dts/preview-next/src/client/preview/SelectedBlockCustomizePanel.d.ts +13 -0
  176. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +47 -4
  177. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +14 -1
  178. package/dist/_dts/preview-next/src/client/preview/linkedEntryEditEvents.d.ts +5 -0
  179. package/dist/_dts/preview-next/src/client/preview/previewChromePlacement.d.ts +46 -0
  180. package/dist/_dts/preview-next/src/client/preview/previewCustomizeControls.d.ts +68 -0
  181. package/dist/_dts/preview-next/src/client/preview/previewCustomizeEditorDraftPatch.d.ts +13 -0
  182. package/dist/_dts/preview-next/src/client/preview/previewCustomizeHistory.d.ts +8 -1
  183. package/dist/_dts/preview-next/src/client/preview/previewCustomizeRuntimePatch.d.ts +2 -0
  184. package/dist/_dts/preview-next/src/client/preview/previewCustomizeWorkflowState.d.ts +11 -9
  185. package/dist/_dts/preview-next/src/client/preview/previewDesignHistoryOrder.d.ts +18 -0
  186. package/dist/_dts/preview-next/src/client/preview/previewUndoDomains.d.ts +1 -1
  187. package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +41 -0
  188. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +101 -0
  189. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +29 -0
  190. package/dist/_dts/preview-next/src/client/preview/siteStyleHistoryState.d.ts +55 -0
  191. package/dist/_dts/preview-next/src/client/preview/storeTypes.d.ts +4 -0
  192. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -0
  193. package/dist/_dts/preview-next/src/client/widgets/widgetAdapters.d.ts +2 -1
  194. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +6 -3
  195. package/dist/_dts/preview-next/src/constants.d.ts +0 -1
  196. package/dist/_dts/sdk/src/cli/commands/webhooks.d.ts +44 -0
  197. package/dist/_dts/sdk/src/cli/config-loader.d.ts +3 -1
  198. package/dist/_dts/sdk/src/cli/content/reader.d.ts +5 -3
  199. package/dist/_dts/sdk/src/cli/site-commands/commandSurfaceDispatch.d.ts +1 -0
  200. package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +3 -1
  201. package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +1 -0
  202. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
  203. package/dist/_dts/sdk/src/client/management/types.d.ts +56 -0
  204. package/dist/_dts/sdk/src/client/management/webhooks.d.ts +3 -0
  205. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  206. package/dist/_dts/sdk/src/config/validation.d.ts +3 -3
  207. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +34 -5
  208. package/dist/_dts/sdk/src/public-api/contracts.d.ts +10 -0
  209. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +42 -0
  210. package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +4 -0
  211. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  212. package/dist/_dts/sdk/src/version.d.ts +1 -1
  213. package/dist/_dts/theme-core/src/accordions/siteStyleDefaults.d.ts +220 -0
  214. package/dist/_dts/theme-core/src/accordions/types.d.ts +45 -2
  215. package/dist/_dts/theme-core/src/blockOverrides.d.ts +8 -0
  216. package/dist/_dts/theme-core/src/blocks/types.d.ts +1 -1
  217. package/dist/_dts/theme-core/src/blocks/vars/testimonials.d.ts +4 -1
  218. package/dist/_dts/theme-core/src/buttons/constants.d.ts +26 -1
  219. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  220. package/dist/_dts/theme-core/src/buttons/personalities/joy-stamp.d.ts +22 -0
  221. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +2 -1
  222. package/dist/_dts/theme-core/src/buttons/types.d.ts +9 -0
  223. package/dist/_dts/theme-core/src/cards/core.d.ts +20 -0
  224. package/dist/_dts/theme-core/src/cards/generateDefaultCardSystem.d.ts +6 -3
  225. package/dist/_dts/theme-core/src/cards/siteStyleDefaults.d.ts +149 -0
  226. package/dist/_dts/theme-core/src/cards/types.d.ts +177 -0
  227. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  228. package/dist/_dts/theme-core/src/interactive/types.d.ts +10 -0
  229. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +180 -21
  230. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +30 -0
  231. package/dist/_dts/theme-core/src/palette/variants/soft-natural.d.ts +16 -0
  232. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +1 -1
  233. package/dist/_dts/theme-core/src/palette/variants/warm-dark.d.ts +27 -0
  234. package/dist/_dts/theme-core/src/schema.d.ts +486 -55
  235. package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +4 -1
  236. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +172 -47
  237. package/dist/_dts/theme-core/src/site-styles/appearancePresetResolution.d.ts +6 -2
  238. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +2 -3
  239. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +172 -47
  240. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +140 -2
  241. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +18 -2
  242. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +20 -1
  243. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +10 -2
  244. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +291 -6
  245. package/dist/_dts/theme-core/src/site-styles/index.d.ts +3 -0
  246. package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +193 -0
  247. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +3 -23
  248. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +276 -4
  249. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +2 -8
  250. package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +2 -0
  251. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +43 -10
  252. package/dist/_dts/theme-core/src/site-styles/sectionTransitions.d.ts +508 -0
  253. package/dist/_dts/theme-core/src/site-styles/siteStyleThemeCompiler.d.ts +11 -0
  254. package/dist/_dts/theme-core/src/site-styles/sourceCatalogs.d.ts +10 -10
  255. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
  256. package/dist/_dts/theme-core/src/site-styles/testimonialQuotePresets.d.ts +15 -0
  257. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  258. package/dist/_dts/theme-core/src/site-styles/types.d.ts +28 -32
  259. package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +16 -1
  260. package/dist/{chunk-4HCW7FHJ.mjs → chunk-3PTVPAT4.mjs} +1984 -1142
  261. package/dist/{PreviewEditorSidebar-56NMJMIK.mjs → chunk-3QWQ2MUQ.mjs} +1050 -2609
  262. package/dist/{chunk-GP555I66.mjs → chunk-3VT7LZY2.mjs} +413 -157
  263. package/dist/{chunk-A3HHFKVT.mjs → chunk-4T5JIPWY.mjs} +1 -1
  264. package/dist/{chunk-K2IIF34C.mjs → chunk-E3NZYEKF.mjs} +25 -7
  265. package/dist/{chunk-V47ZU33I.mjs → chunk-WUHKQBB6.mjs} +12062 -3211
  266. package/dist/cli/index.mjs +3395 -817
  267. package/dist/cli/init-docs/content/workflow-isr-revalidation.md +16 -4
  268. package/dist/client/{accordion-QLA7KBYO.mjs → accordion-SFIIZWNH.mjs} +2 -2
  269. package/dist/client/{bookingForm-PYZIPA5G.mjs → bookingForm-CFKZVWGA.mjs} +5 -5
  270. package/dist/client/bookings.mjs +1422 -345
  271. package/dist/client/{carousel-5EIULWBI.mjs → carousel-ELXWSBLA.mjs} +3 -3
  272. package/dist/client/{cart-DOP3FNI4.mjs → cart-6SSCPYY5.mjs} +6 -6
  273. package/dist/client/{checkout-BVMF6FBV.mjs → checkout-UFQ34HPV.mjs} +6 -6
  274. package/dist/client/{chunk-44K2U3QI.mjs → chunk-76JUETXQ.mjs} +139 -186
  275. package/dist/client/{chunk-AUJ5DBZJ.mjs → chunk-7BXX7WXH.mjs} +112 -28
  276. package/dist/client/{chunk-UDS3NTWA.mjs → chunk-G56BSZAM.mjs} +2 -2
  277. package/dist/client/{chunk-V6M5FCR5.mjs → chunk-IUEDYLFJ.mjs} +1 -1
  278. package/dist/client/{chunk-YLDYVRZL.mjs → chunk-NP47RHIX.mjs} +5 -5
  279. package/dist/client/{chunk-R5ESWNKX.mjs → chunk-NX6X3GRF.mjs} +419 -85
  280. package/dist/client/{chunk-CCNTDRCF.mjs → chunk-PA2LJH2M.mjs} +2 -2
  281. package/dist/client/{chunk-CE7IBGVW.mjs → chunk-RMWMT3ZD.mjs} +1 -1
  282. package/dist/client/{chunk-TYONZMST.mjs → chunk-TCJS3NY5.mjs} +1 -1
  283. package/dist/client/{chunk-GG4M2NP6.mjs → chunk-V6XI4M2Q.mjs} +1 -1
  284. package/dist/client/client.mjs +9077 -4410
  285. package/dist/client/{courseRegistration-E6EAA6NL.mjs → courseRegistration-HJIISAAG.mjs} +5 -5
  286. package/dist/client/{eventCalendar-HBG3HAK6.mjs → eventCalendar-F6YVUCZR.mjs} +7 -7
  287. package/dist/client/{eventCombined-6K5ZZWAK.mjs → eventCombined-B5DSTIOK.mjs} +7 -7
  288. package/dist/client/{eventDetails-Q75ICXLT.mjs → eventDetails-SEJDDHQC.mjs} +7 -7
  289. package/dist/client/{eventListing-27P5F7DZ.mjs → eventListing-TPMWIIBO.mjs} +7 -7
  290. package/dist/client/{eventRegistration-IQ7AMASR.mjs → eventRegistration-QU6W2PV6.mjs} +7 -7
  291. package/dist/client/{form-JRTD65FN.mjs → form-LVTYNTDE.mjs} +2 -2
  292. package/dist/client/{headerSection-7FPSSZHS.mjs → headerSection-SO3MFC4U.mjs} +110 -28
  293. package/dist/client/hooks.mjs +4695 -2260
  294. package/dist/client/{locationMap-7NGFNYBH.mjs → locationMap-5E5FLAKO.mjs} +2 -2
  295. package/dist/client/{newsletterForm-F3BADCI2.mjs → newsletterForm-GN32JEBQ.mjs} +2 -2
  296. package/dist/client/{productDetail-V3HP7ITJ.mjs → productDetail-Q346KSVR.mjs} +6 -6
  297. package/dist/client/{productList-L3EGJUF2.mjs → productList-DTDMQYGZ.mjs} +6 -6
  298. package/dist/client/rendering/client.mjs +5795 -3582
  299. package/dist/client/rendering/islands.mjs +32 -20
  300. package/dist/client/rendering.mjs +7988 -3317
  301. package/dist/client/{shop-DQUB5E2C.mjs → shop-OFUW7KPN.mjs} +6 -6
  302. package/dist/preview-next/before-render.mjs +24 -0
  303. package/dist/preview-next/client/runtime.mjs +5 -5
  304. package/dist/preview-next/constants.mjs +0 -2
  305. package/dist/preview-next/index.mjs +0 -2
  306. package/dist/preview-next/middleware.mjs +24 -0
  307. package/dist/{sdk-runtime-AF6KXJU4.mjs → sdk-runtime-2GIX6I7X.mjs} +6 -6
  308. package/dist/server/components.mjs +7384 -3089
  309. package/dist/server/config-validation.mjs +4747 -2418
  310. package/dist/server/config.mjs +4747 -2418
  311. package/dist/server/data.mjs +4695 -2260
  312. package/dist/server/index.mjs +26 -1
  313. package/dist/server/next.mjs +7430 -3039
  314. package/dist/server/page-converter.mjs +3985 -2070
  315. package/dist/server/prebuild.mjs +1 -1
  316. package/dist/server/rendering/server.mjs +7489 -3094
  317. package/dist/server/rendering.mjs +7491 -3096
  318. package/dist/server/routing.mjs +4965 -2386
  319. package/dist/server/server.mjs +4713 -2278
  320. package/dist/server/theme-bridge.mjs +2181 -383
  321. package/dist/server/theme.mjs +477 -222
  322. package/dist/styles/index.css +747 -71
  323. package/package.json +1 -1
  324. package/dist/SdkPreviewModeRuntime-H4BSP6E7.mjs +0 -8
  325. package/dist/_dts/editor-blocks/src/block-editor/actionControlMode.d.ts +0 -2
  326. package/dist/_dts/preview-next/src/client/preview/previewSurface.d.ts +0 -3
  327. package/dist/chunk-LCY32PXF.mjs +0 -1175
@@ -34,14 +34,8 @@ var visibleHeadingDecorationFamilyValues = [
34
34
  "organic-squiggle",
35
35
  "short-center-rule"
36
36
  ];
37
- var visibleHeadingDecorationPlacementValues = [
38
- "after-heading",
39
- "between-heading-and-body",
40
- "under-centered-heading"
41
- ];
42
37
  var headingDecorationOverrideValues = [
43
38
  "site-default",
44
- "on",
45
39
  "off"
46
40
  ];
47
41
  var headingDecorationColorTokenValues = [
@@ -312,7 +306,9 @@ var buttonBorderSchema = z2.object({
312
306
  var variantShadowSchema = z2.object({
313
307
  elevation: z2.enum(["none", "low", "medium", "high"]),
314
308
  softness: z2.enum(["crisp", "soft", "hard"]).nullable(),
315
- position: z2.enum(["bottom", "bottom-right"]).default("bottom")
309
+ position: z2.enum(["bottom", "bottom-right"]).default("bottom"),
310
+ // Optional palette token for a coloured offset shadow; omit for neutral black.
311
+ colorToken: themeColorTokenSchema.optional()
316
312
  });
317
313
  var variantEffectsSchema = z2.object({
318
314
  base: z2.array(effectApplicationSchema).optional(),
@@ -836,6 +832,65 @@ var inkStamp = defineButtonPersonality({
836
832
  }
837
833
  });
838
834
 
835
+ // ../theme-core/src/buttons/personalities/joy-stamp.ts
836
+ var joyStamp = defineButtonPersonality({
837
+ id: "joy-stamp",
838
+ name: "Joy Stamp",
839
+ description: "Pill buttons with a hard, brand-coloured offset shadow that presses in on hover.",
840
+ tags: { tone: "bold", energy: "vibrant", motion: "expressive", era: "organic" },
841
+ buttonSystem: {
842
+ global: {
843
+ cornerStyle: "pill",
844
+ shadow: "high",
845
+ textTransform: "none",
846
+ // Bold display type on the buttons: use the heading font (Bricolage) at
847
+ // 700, matching the mockup's chunky button labels.
848
+ typography: "heading",
849
+ fontWeight: 700,
850
+ borderWidth: 2,
851
+ hoverTransform: "none",
852
+ hoverColor: "none"
853
+ },
854
+ sizes: {
855
+ sm: { padding: "0.625rem 1.25rem", fontSize: "text-sm" },
856
+ md: { padding: "0.875rem 1.75rem", fontSize: "text-base" },
857
+ lg: { padding: "1.125rem 2.25rem", fontSize: "text-lg" },
858
+ xl: { padding: "1.25rem 2.75rem", fontSize: "text-xl" }
859
+ },
860
+ variants: [
861
+ {
862
+ id: "primary",
863
+ name: "Primary",
864
+ enabled: true,
865
+ priority: 1,
866
+ background: { type: "solid", colorToken: "primary" },
867
+ textColorToken: "primaryForeground",
868
+ borderRadius: "rounded-full",
869
+ // Cream stamp shadow under the burnt-orange fill.
870
+ shadow: { elevation: "high", softness: "hard", position: "bottom-right", colorToken: "text" },
871
+ effects: {
872
+ hover: [{ effectId: "press-down" }]
873
+ }
874
+ },
875
+ {
876
+ id: "secondary",
877
+ name: "Secondary",
878
+ enabled: true,
879
+ priority: 2,
880
+ background: { type: "transparent" },
881
+ textColorToken: "text",
882
+ borderRadius: "rounded-full",
883
+ border: { widthClass: "border-2", colorToken: "text" },
884
+ // Brown stamp shadow under the cream outline.
885
+ shadow: { elevation: "high", softness: "hard", position: "bottom-right", colorToken: "secondary" },
886
+ effects: {
887
+ hover: [{ effectId: "press-down" }]
888
+ }
889
+ }
890
+ ]
891
+ }
892
+ });
893
+
839
894
  // ../theme-core/src/buttons/personalities/pebble.ts
840
895
  var pebble = defineButtonPersonality({
841
896
  id: "pebble",
@@ -1109,14 +1164,15 @@ var buttonPersonalities = [
1109
1164
  pebble,
1110
1165
  inkStamp,
1111
1166
  brushedWash,
1112
- showtimePill
1167
+ showtimePill,
1168
+ joyStamp
1113
1169
  ];
1114
1170
  var personalitiesById = new Map(
1115
1171
  buttonPersonalities.map((p) => [p.id, p])
1116
1172
  );
1117
1173
 
1118
1174
  // ../theme-core/src/schema.ts
1119
- import { z as z16 } from "zod";
1175
+ import { z as z17 } from "zod";
1120
1176
 
1121
1177
  // ../theme-core/src/lib/media.ts
1122
1178
  import z5 from "zod";
@@ -1166,8 +1222,15 @@ var BUTTON_SIZE_NAMES = buttonSizeNameSchema.options;
1166
1222
 
1167
1223
  // ../theme-core/src/cards/types.ts
1168
1224
  import { z as z6 } from "zod";
1225
+ var cardVariantRoleValues = ["default", "alternative"];
1226
+ var boxlessCardVariantValue = "none";
1169
1227
  var cardSpacingSchema = z6.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
1170
1228
  var gradientDirectionSchema2 = z6.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
1229
+ var cardVariantRoleSchema = z6.enum(cardVariantRoleValues);
1230
+ var boxStylesCardVariantSchema = z6.enum([
1231
+ ...cardVariantRoleValues,
1232
+ boxlessCardVariantValue
1233
+ ]);
1171
1234
  var cardBackgroundSchema = z6.discriminatedUnion("type", [
1172
1235
  z6.object({ type: z6.literal("solid"), colorToken: themeColorTokenSchema }),
1173
1236
  z6.object({
@@ -1182,6 +1245,24 @@ var cardBorderSchema = z6.object({
1182
1245
  widthClass: z6.string(),
1183
1246
  colorToken: themeColorTokenSchema
1184
1247
  });
1248
+ var cardCornerValueSchema = z6.enum([
1249
+ "square",
1250
+ "soft",
1251
+ "rounded",
1252
+ "pill",
1253
+ "expressive"
1254
+ ]);
1255
+ var cardAccentEdgeSchema = z6.object({
1256
+ edge: z6.enum(["left", "top", "right", "bottom"]),
1257
+ colorToken: themeColorTokenSchema,
1258
+ width: z6.enum(["thin", "medium", "thick", "heavy"])
1259
+ });
1260
+ var cardCornerRadiiSchema = z6.object({
1261
+ topLeft: cardCornerValueSchema.optional(),
1262
+ topRight: cardCornerValueSchema.optional(),
1263
+ bottomLeft: cardCornerValueSchema.optional(),
1264
+ bottomRight: cardCornerValueSchema.optional()
1265
+ });
1185
1266
  var cardVariantSchema = z6.object({
1186
1267
  id: z6.string(),
1187
1268
  name: z6.string().min(1).max(20),
@@ -1190,6 +1271,8 @@ var cardVariantSchema = z6.object({
1190
1271
  // Appearance (token-based)
1191
1272
  background: cardBackgroundSchema,
1192
1273
  spacing: cardSpacingSchema,
1274
+ // Optional foreground (card text) color, for cards on a strong fill.
1275
+ foregroundToken: themeColorTokenSchema.optional(),
1193
1276
  // Optional overrides (uses theme defaults if not specified)
1194
1277
  shadow: z6.object({
1195
1278
  elevation: z6.enum(["none", "low", "medium", "high"]),
@@ -1197,8 +1280,12 @@ var cardVariantSchema = z6.object({
1197
1280
  position: z6.enum(["bottom", "bottom-right"]).default("bottom")
1198
1281
  }).optional(),
1199
1282
  corners: z6.enum(["square", "soft", "rounded", "pill"]).optional(),
1283
+ // Per-corner radius override; wins over `corners` when set.
1284
+ cornerRadii: cardCornerRadiiSchema.optional(),
1200
1285
  // Border (optional)
1201
- border: cardBorderSchema.optional()
1286
+ border: cardBorderSchema.optional(),
1287
+ // Single accent edge; replaces `border` when set.
1288
+ accentEdge: cardAccentEdgeSchema.optional()
1202
1289
  });
1203
1290
  var cardSystemSchema = z6.object({
1204
1291
  variants: z6.array(cardVariantSchema).min(1).max(3)
@@ -1219,11 +1306,13 @@ var accordionIconSchema = z7.enum([
1219
1306
  // ⊕ becomes ⊖ (swap with fade)
1220
1307
  ]);
1221
1308
  var accordionSystemSchema = z7.object({
1222
- // Visual styling (solid color only - gradients can be added later if needed)
1309
+ // Visual styling (solid color only - gradients can be added later if needed).
1310
+ // null = no fill, so the accordion sits transparently on the section
1311
+ // surface (used by open, boxless "divided" looks).
1223
1312
  background: z7.object({
1224
1313
  type: z7.literal("solid"),
1225
1314
  colorToken: themeColorTokenSchema
1226
- }),
1315
+ }).nullable(),
1227
1316
  // Spacing (padding inside items)
1228
1317
  spacing: z7.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]),
1229
1318
  // Border radius (null = inherit from theme.corners)
@@ -1250,8 +1339,16 @@ var accordionSystemSchema = z7.object({
1250
1339
  // Trigger (question) styling
1251
1340
  trigger: z7.object({
1252
1341
  textColorToken: themeColorTokenSchema,
1253
- fontWeight: z7.enum(["regular", "medium", "semibold", "bold"]).nullable()
1342
+ fontWeight: z7.enum(["regular", "medium", "semibold", "bold"]).nullable(),
1254
1343
  // null = inherit from theme
1344
+ // Question typography. Defaults keep the historical body-font look; set
1345
+ // fontFamily 'heading' + a larger scale to give questions real presence.
1346
+ fontFamily: z7.enum(["body", "heading"]).optional(),
1347
+ // default 'body'
1348
+ fontScale: z7.enum(["body", "md", "lg"]).optional(),
1349
+ // default 'body'
1350
+ letterSpacing: z7.enum(["normal", "tight", "wide"]).optional(),
1351
+ textTransform: z7.enum(["none", "uppercase"]).optional()
1255
1352
  }),
1256
1353
  // Hover state styling
1257
1354
  hover: z7.object({
@@ -1259,6 +1356,17 @@ var accordionSystemSchema = z7.object({
1259
1356
  textColorToken: themeColorTokenSchema.optional(),
1260
1357
  borderColorToken: themeColorTokenSchema.optional()
1261
1358
  }),
1359
+ // Open-state emphasis: how an expanded item is visually rewarded. All
1360
+ // optional; omit for the historical "only the text recolors" behaviour.
1361
+ openState: z7.object({
1362
+ backgroundColorToken: themeColorTokenSchema.optional(),
1363
+ triggerColorToken: themeColorTokenSchema.optional(),
1364
+ accent: z7.object({
1365
+ edge: z7.enum(["left", "top", "bottom"]),
1366
+ colorToken: themeColorTokenSchema,
1367
+ thickness: z7.enum(["thin", "medium", "thick"])
1368
+ }).optional()
1369
+ }).optional(),
1262
1370
  // Content (answer) styling
1263
1371
  content: z7.object({
1264
1372
  textColorToken: themeColorTokenSchema
@@ -1581,79 +1689,190 @@ var componentShadowSchema = z14.object({
1581
1689
  elevation: z14.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("sm")
1582
1690
  });
1583
1691
 
1584
- // ../theme-core/src/utils/tokenOrColor.ts
1692
+ // ../theme-core/src/site-styles/logoBranding.ts
1585
1693
  import { z as z15 } from "zod";
1586
- var tokenOrCssColorValueSchema = z15.string();
1694
+ var logoTextConfidenceValues = ["low", "medium", "high"];
1695
+ var logoAssetShapeValues = [
1696
+ "none",
1697
+ "horizontal",
1698
+ "square",
1699
+ "portrait",
1700
+ "tall"
1701
+ ];
1702
+ var logoKindValues = [
1703
+ "mark",
1704
+ "wordmark",
1705
+ "lockup",
1706
+ "badge",
1707
+ "stacked-wordmark",
1708
+ "unknown"
1709
+ ];
1710
+ var logoDensityValues = ["simple", "detailed", "unknown"];
1711
+ var logoContainsTextSchema = z15.discriminatedUnion("kind", [
1712
+ z15.object({
1713
+ kind: z15.literal("contains-text"),
1714
+ confidence: z15.enum(logoTextConfidenceValues),
1715
+ text: z15.string().trim().min(1).max(200).optional()
1716
+ }),
1717
+ z15.object({
1718
+ kind: z15.literal("no-text"),
1719
+ confidence: z15.enum(logoTextConfidenceValues)
1720
+ }),
1721
+ z15.object({
1722
+ kind: z15.literal("unknown"),
1723
+ reason: z15.enum([
1724
+ "analysis-unavailable",
1725
+ "unsupported-file",
1726
+ "low-confidence"
1727
+ ])
1728
+ })
1729
+ ]);
1730
+ var logoAnalysisSourceSchema = z15.discriminatedUnion("kind", [
1731
+ z15.object({ kind: z15.literal("none") }),
1732
+ z15.object({
1733
+ kind: z15.literal("deterministic"),
1734
+ reason: z15.enum(["dimensions", "fallback"])
1735
+ }),
1736
+ z15.object({
1737
+ kind: z15.literal("llm"),
1738
+ model: z15.literal("gpt-5.4-mini"),
1739
+ analyzedAt: z15.string().trim().min(1).max(80).optional()
1740
+ }),
1741
+ z15.object({ kind: z15.literal("manual-override") })
1742
+ ]);
1743
+ var logoFactsSchema = z15.object({
1744
+ shape: z15.enum(logoAssetShapeValues),
1745
+ containsText: logoContainsTextSchema,
1746
+ kind: z15.enum(logoKindValues),
1747
+ density: z15.enum(logoDensityValues),
1748
+ source: logoAnalysisSourceSchema
1749
+ });
1750
+ var brandDisplayModeValues = [
1751
+ "auto",
1752
+ "logo-only",
1753
+ "logo-plus-title",
1754
+ "title-only"
1755
+ ];
1756
+ var logoAccommodationPatternValues = [
1757
+ "title-only",
1758
+ "inline-logo-only",
1759
+ "inline-wordmark",
1760
+ "inline-mark-with-title",
1761
+ "logo-plate",
1762
+ "centered-badge",
1763
+ "popout-badge",
1764
+ "centered-masthead",
1765
+ "hero-badge"
1766
+ ];
1767
+ var logoSizePolicyValues = [
1768
+ "auto",
1769
+ "compact",
1770
+ "standard",
1771
+ "generous",
1772
+ "display"
1773
+ ];
1774
+
1775
+ // ../theme-core/src/site-styles/rawStyleFields.ts
1776
+ var themeV2RuntimeStyleFieldNames = [
1777
+ "_frameStyles",
1778
+ "_sectionStyles",
1779
+ "_containerStyles",
1780
+ "_cardStyles",
1781
+ // styleGroup is legacy runtime transition wiring rather than a nested
1782
+ // override object, but normal editors should still never see it directly.
1783
+ "styleGroup"
1784
+ ];
1785
+ var themeV2BlockSpecificRawStyleFieldNames = [
1786
+ "_contentCardStyles",
1787
+ "_heroLayoutStyles",
1788
+ "_textCardStyles"
1789
+ ];
1790
+ var themeV2NormalEditorRawStyleFieldNames = [
1791
+ ...themeV2RuntimeStyleFieldNames,
1792
+ ...themeV2BlockSpecificRawStyleFieldNames
1793
+ ];
1794
+ var themeV2NormalEditorRawStyleFieldNameSet = new Set(
1795
+ themeV2NormalEditorRawStyleFieldNames
1796
+ );
1797
+ var themeV2CompilerOwnedFieldNames = [
1798
+ ...themeV2RuntimeStyleFieldNames,
1799
+ ...themeV2BlockSpecificRawStyleFieldNames
1800
+ ];
1801
+ var pageDesignEditorBackgroundOverrideOwner = "page-design-editor";
1802
+
1803
+ // ../theme-core/src/utils/tokenOrColor.ts
1804
+ import { z as z16 } from "zod";
1805
+ var tokenOrCssColorValueSchema = z16.string();
1587
1806
 
1588
1807
  // ../theme-core/src/schema.ts
1589
- var axesSchema = z16.object({
1590
- tone: z16.enum(["minimal", "classic", "bold"]),
1591
- energy: z16.enum(["calm", "vibrant"]),
1592
- density: z16.enum(["airy", "regular", "compact"]),
1593
- mediaBias: z16.enum(["text", "media", "mixed"]),
1594
- conversionBias: z16.enum(["low", "med", "high"]),
1595
- motion: z16.enum(["subtle", "standard", "expressive"])
1596
- });
1597
- var colourHexString = z16.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
1598
- var paletteColorSchema = z16.object({
1599
- name: z16.string().min(1),
1808
+ var axesSchema = z17.object({
1809
+ tone: z17.enum(["minimal", "classic", "bold"]),
1810
+ energy: z17.enum(["calm", "vibrant"]),
1811
+ density: z17.enum(["airy", "regular", "compact"]),
1812
+ mediaBias: z17.enum(["text", "media", "mixed"]),
1813
+ conversionBias: z17.enum(["low", "med", "high"]),
1814
+ motion: z17.enum(["subtle", "standard", "expressive"])
1815
+ });
1816
+ var colourHexString = z17.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
1817
+ var paletteColorSchema = z17.object({
1818
+ name: z17.string().min(1),
1600
1819
  hex: colourHexString
1601
1820
  });
1602
- var paletteMetaSchema = z16.object({
1603
- mode: z16.enum(["light", "dark"])
1821
+ var paletteMetaSchema = z17.object({
1822
+ mode: z17.enum(["light", "dark"])
1604
1823
  });
1605
- var paletteSchema = z16.object({
1606
- colors: z16.array(paletteColorSchema),
1824
+ var paletteSchema = z17.object({
1825
+ colors: z17.array(paletteColorSchema),
1607
1826
  meta: paletteMetaSchema
1608
1827
  });
1609
- var typographyStyleSchema = z16.object({
1610
- family: z16.string().min(1),
1611
- weight: z16.enum(["light", "regular", "medium", "semibold", "bold"]),
1612
- letterSpacing: z16.enum(["tight", "normal", "loose"]),
1613
- lineHeight: z16.enum(["normal", "relaxed", "loose"])
1828
+ var typographyStyleSchema = z17.object({
1829
+ family: z17.string().min(1),
1830
+ weight: z17.enum(["light", "regular", "medium", "semibold", "bold"]),
1831
+ letterSpacing: z17.enum(["tight", "normal", "loose"]),
1832
+ lineHeight: z17.enum(["normal", "relaxed", "loose"])
1614
1833
  });
1615
1834
  var bodyTypographyStyleSchema = typographyStyleSchema.extend({
1616
- size: z16.enum(["md", "lg", "xl"])
1835
+ size: z17.enum(["md", "lg", "xl"])
1617
1836
  });
1618
- var headingSizeSchema = z16.enum(["xs", "sm", "md", "lg", "xl", "2xl"]);
1619
- var headingTypographyOverridesSchema = z16.object({
1620
- weight: z16.enum(["light", "regular", "medium", "semibold", "bold"]).nullable().optional(),
1621
- letterSpacing: z16.enum(["tight", "normal", "loose"]).nullable().optional(),
1837
+ var headingSizeSchema = z17.enum(["xs", "sm", "md", "lg", "xl", "2xl"]);
1838
+ var headingTypographyOverridesSchema = z17.object({
1839
+ weight: z17.enum(["light", "regular", "medium", "semibold", "bold"]).nullable().optional(),
1840
+ letterSpacing: z17.enum(["tight", "normal", "loose"]).nullable().optional(),
1622
1841
  size: headingSizeSchema.nullable().optional(),
1623
- lineHeight: z16.enum(["normal", "relaxed", "loose"]).nullable().optional(),
1624
- italic: z16.boolean().nullable().optional(),
1842
+ lineHeight: z17.enum(["normal", "relaxed", "loose"]).nullable().optional(),
1843
+ italic: z17.boolean().nullable().optional(),
1625
1844
  colorToken: themeColorTokenSchema.nullable().optional()
1626
1845
  });
1627
1846
  var headingTypographyStyleSchema = typographyStyleSchema.extend({
1628
- case: z16.enum(["uppercase", "normal", "smallCaps"]).nullable(),
1629
- italic: z16.boolean().nullable(),
1847
+ case: z17.enum(["uppercase", "normal", "smallCaps"]).nullable(),
1848
+ italic: z17.boolean().nullable(),
1630
1849
  colorToken: themeColorTokenSchema.nullable().optional()
1631
1850
  });
1632
- var proseLinkUnderlineStyleSchema = z16.enum(["solid", "dotted", "dashed"]);
1633
- var proseLinkUnderlineThicknessSchema = z16.enum([
1851
+ var proseLinkUnderlineStyleSchema = z17.enum(["solid", "dotted", "dashed"]);
1852
+ var proseLinkUnderlineThicknessSchema = z17.enum([
1634
1853
  "auto",
1635
1854
  "fromFont",
1636
1855
  "thin",
1637
1856
  "medium",
1638
1857
  "thick"
1639
1858
  ]);
1640
- var proseLinkUnderlineOffsetSchema = z16.enum([
1859
+ var proseLinkUnderlineOffsetSchema = z17.enum([
1641
1860
  "auto",
1642
1861
  "tight",
1643
1862
  "normal",
1644
1863
  "loose"
1645
1864
  ]);
1646
- var proseLinkStyleSchema = z16.object({
1865
+ var proseLinkStyleSchema = z17.object({
1647
1866
  colorToken: themeColorTokenSchema.optional(),
1648
1867
  hoverColorToken: themeColorTokenSchema.optional(),
1649
- underline: z16.boolean().optional(),
1868
+ underline: z17.boolean().optional(),
1650
1869
  decorationColorToken: themeColorTokenSchema.optional(),
1651
1870
  hoverDecorationColorToken: themeColorTokenSchema.optional(),
1652
1871
  underlineStyle: proseLinkUnderlineStyleSchema.optional(),
1653
1872
  underlineThickness: proseLinkUnderlineThicknessSchema.optional(),
1654
1873
  underlineOffset: proseLinkUnderlineOffsetSchema.optional()
1655
1874
  });
1656
- var semanticSpacingSchema = z16.enum([
1875
+ var semanticSpacingSchema = z17.enum([
1657
1876
  "none",
1658
1877
  "compact",
1659
1878
  "cozy",
@@ -1661,91 +1880,111 @@ var semanticSpacingSchema = z16.enum([
1661
1880
  "comfortable",
1662
1881
  "spacious"
1663
1882
  ]);
1664
- var boxRoundedSchema = z16.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
1665
- var boxBackgroundOverlaySchema = z16.object({
1666
- type: z16.enum(["none", "color", "gradient"]).nullable().optional(),
1883
+ var boxRoundedSchema = z17.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
1884
+ var boxBackgroundOverlaySchema = z17.object({
1885
+ type: z17.enum(["none", "color", "gradient"]).nullable().optional(),
1667
1886
  color: tokenOrCssColorValueSchema.nullable().optional(),
1668
- gradient: z16.string().nullable().optional(),
1669
- opacity: z16.number().min(0).max(1).nullable().optional()
1887
+ gradient: z17.string().nullable().optional(),
1888
+ opacity: z17.number().min(0).max(1).nullable().optional()
1670
1889
  });
1671
- var boxBackgroundSchema = z16.object({
1672
- type: z16.enum(["color", "gradient", "image"]).optional(),
1890
+ var boxBackgroundSchema = z17.object({
1891
+ type: z17.enum(["color", "gradient", "image"]).optional(),
1892
+ contentOwner: z17.literal(pageDesignEditorBackgroundOverrideOwner).optional(),
1673
1893
  color: tokenOrCssColorValueSchema.nullable().optional(),
1674
- gradient: z16.string().nullable().optional(),
1894
+ gradient: z17.string().nullable().optional(),
1895
+ gradientPresetId: z17.string().min(1).nullable().optional(),
1675
1896
  image: mediaSchema.nullable().optional(),
1676
- objectFit: z16.enum(["fill", "fit", "original", "custom"]).nullable().optional(),
1677
- scale: z16.string().nullable().optional(),
1678
- position: z16.string().nullable().optional(),
1679
- opacity: z16.number().min(0).max(1).nullable().optional(),
1680
- motion: z16.enum(["static", "fixed-frame"]).nullable().optional(),
1897
+ objectFit: z17.enum(["fill", "fit", "original", "custom"]).nullable().optional(),
1898
+ scale: z17.string().nullable().optional(),
1899
+ position: z17.string().nullable().optional(),
1900
+ opacity: z17.number().min(0).max(1).nullable().optional(),
1901
+ motion: z17.enum(["static", "fixed-frame"]).nullable().optional(),
1681
1902
  overlay: boxBackgroundOverlaySchema.nullable().optional(),
1682
1903
  textColor: tokenOrCssColorValueSchema.nullable().optional(),
1683
- headingColor: tokenOrCssColorValueSchema.nullable().optional()
1904
+ headingColor: tokenOrCssColorValueSchema.nullable().optional(),
1905
+ linkColor: tokenOrCssColorValueSchema.nullable().optional(),
1906
+ supportingColor: tokenOrCssColorValueSchema.nullable().optional()
1684
1907
  });
1685
- var noHeadingDecorationSchema = z16.object({
1686
- family: z16.literal("none"),
1687
- placement: z16.literal("none")
1908
+ var noHeadingDecorationSchema = z17.object({
1909
+ family: z17.literal("none")
1688
1910
  });
1689
- var visibleHeadingDecorationSchema = z16.object({
1690
- family: z16.enum(visibleHeadingDecorationFamilyValues),
1691
- placement: z16.enum(visibleHeadingDecorationPlacementValues),
1692
- colorToken: z16.enum(headingDecorationColorTokenValues).optional()
1911
+ var visibleHeadingDecorationSchema = z17.object({
1912
+ family: z17.enum(visibleHeadingDecorationFamilyValues),
1913
+ colorToken: z17.enum(headingDecorationColorTokenValues).optional()
1693
1914
  });
1694
- var headingDecorationSchema = z16.union([
1915
+ var headingDecorationSchema = z17.union([
1695
1916
  noHeadingDecorationSchema,
1696
1917
  visibleHeadingDecorationSchema
1697
1918
  ]);
1698
- var accordionIconTreatmentSchema = z16.object({
1699
- iconSet: z16.enum(accordionIconSetValues),
1700
- colorToken: z16.enum(accordionIconColorTokenValues),
1701
- openColorToken: z16.enum(accordionIconColorTokenValues).optional(),
1702
- motion: z16.enum(accordionIconMotionValues)
1919
+ var headingDecorationOverrideSchema = z17.union([
1920
+ z17.enum(headingDecorationOverrideValues),
1921
+ // Legacy authoring value from the earlier model. In the render-time model
1922
+ // "on" cannot force a fragment into a block, so it is equivalent to default.
1923
+ z17.literal("on").transform(() => "site-default")
1924
+ ]);
1925
+ var accordionIconTreatmentSchema = z17.object({
1926
+ iconSet: z17.enum(accordionIconSetValues),
1927
+ colorToken: z17.enum(accordionIconColorTokenValues),
1928
+ openColorToken: z17.enum(accordionIconColorTokenValues).optional(),
1929
+ motion: z17.enum(accordionIconMotionValues)
1703
1930
  });
1704
- var sectionStylesOverrideSchema = z16.object({
1931
+ var sectionStylesOverrideSchema = z17.object({
1705
1932
  background: boxBackgroundSchema.nullable().optional(),
1706
1933
  spacing: semanticSpacingSchema.nullable().optional(),
1707
- minHeight: z16.enum(["none", "banner", "hero", "immersive"]).nullable().optional(),
1708
- tileTreatment: z16.enum(tileTreatmentValues).nullable().optional(),
1709
- eventListTreatment: z16.enum(eventListTreatmentValues).nullable().optional(),
1710
- eyebrowTreatment: z16.enum(eyebrowTreatmentValues).nullable().optional(),
1934
+ minHeight: z17.enum(["none", "banner", "hero", "immersive"]).nullable().optional(),
1935
+ tileTreatment: z17.enum(tileTreatmentValues).nullable().optional(),
1936
+ eventListTreatment: z17.enum(eventListTreatmentValues).nullable().optional(),
1937
+ eyebrowTreatment: z17.enum(eyebrowTreatmentValues).nullable().optional(),
1711
1938
  headingDecoration: headingDecorationSchema.nullable().optional(),
1712
- // Author-level override consumed by later block/editor rendering phases.
1713
- // Keeping it in section styles lets existing block save APIs persist it.
1714
- headingDecorationOverride: z16.enum(headingDecorationOverrideValues).nullable().optional(),
1939
+ // Author-level opt-out consumed by render-time theme projection. Persisted
1940
+ // content may also carry legacy `headingDecoration` / `on` values; those are
1941
+ // tolerated at the schema boundary but the renderer treats the compiled theme
1942
+ // as the only source of the resolved signature.
1943
+ headingDecorationOverride: headingDecorationOverrideSchema.nullable().optional(),
1715
1944
  accordionIconTreatment: accordionIconTreatmentSchema.nullable().optional()
1716
1945
  });
1717
- var containerStylesOverrideSchema = z16.object({
1946
+ var containerStylesOverrideSchema = z17.object({
1718
1947
  background: boxBackgroundSchema.nullable().optional(),
1719
1948
  spacing: semanticSpacingSchema.nullable().optional(),
1720
- raised: z16.boolean().nullable().optional(),
1949
+ raised: z17.boolean().nullable().optional(),
1721
1950
  rounded: boxRoundedSchema.nullable().optional(),
1722
- fullWidth: z16.boolean().nullable().optional()
1951
+ fullWidth: z17.boolean().nullable().optional()
1723
1952
  });
1724
- var cardBorderOverrideSchema = z16.object({
1725
- enabled: z16.boolean().nullable().optional(),
1726
- width: z16.enum(["none", "1", "2", "3"]).nullable().optional(),
1953
+ var cardBorderOverrideSchema = z17.object({
1954
+ enabled: z17.boolean().nullable().optional(),
1955
+ width: z17.enum(["none", "1", "2", "3"]).nullable().optional(),
1727
1956
  colorToken: themeColorTokenSchema.nullable().optional()
1728
1957
  });
1729
- var cardStylesOverrideSchema = z16.object({
1958
+ var cardStylesOverrideSchema = z17.object({
1730
1959
  background: boxBackgroundSchema.nullable().optional(),
1731
1960
  border: cardBorderOverrideSchema.nullable().optional(),
1732
1961
  spacing: semanticSpacingSchema.nullable().optional(),
1733
- raised: z16.boolean().nullable().optional(),
1962
+ raised: z17.boolean().nullable().optional(),
1734
1963
  rounded: boxRoundedSchema.nullable().optional(),
1735
- treatment: z16.enum(["accent-quote"]).nullable().optional()
1736
- });
1737
- var blockStyleOverridesSchema = z16.object({
1964
+ treatment: z17.enum([
1965
+ "accent-quote",
1966
+ "editorial-rule",
1967
+ "soft-panel",
1968
+ "editorial-serif-quote",
1969
+ "editorial-open",
1970
+ "color-blocked"
1971
+ ]).nullable().optional(),
1972
+ // Which site-style card variant the card adopts (emits a `.card-{id}` class).
1973
+ // 'none' is boxless. Driven by the block look via testimonialCardTreatment.
1974
+ cardVariant: boxStylesCardVariantSchema.nullable().optional()
1975
+ });
1976
+ var blockStyleOverridesSchema = z17.object({
1738
1977
  sectionStyles: sectionStylesOverrideSchema.nullable().optional(),
1739
1978
  containerStyles: containerStylesOverrideSchema.nullable().optional(),
1740
1979
  cardStyles: cardStylesOverrideSchema.nullable().optional()
1741
1980
  });
1742
- var blockThemeOverrideSchema = z16.object({
1743
- typography: z16.object({
1981
+ var blockThemeOverrideSchema = z17.object({
1982
+ typography: z17.object({
1744
1983
  proseLinkStyle: proseLinkStyleSchema.optional()
1745
1984
  }).optional(),
1746
1985
  styles: blockStyleOverridesSchema.optional()
1747
1986
  });
1748
- var typographyScaleSchema = z16.enum([
1987
+ var typographyScaleSchema = z17.enum([
1749
1988
  // New intuitive names
1750
1989
  "compact",
1751
1990
  // ratio 1.2 (was minorThird)
@@ -1758,9 +1997,9 @@ var typographyScaleSchema = z16.enum([
1758
1997
  "majorThird",
1759
1998
  "perfectFourth"
1760
1999
  ]);
1761
- var typographySchema = z16.object({
2000
+ var typographySchema = z17.object({
1762
2001
  body: bodyTypographyStyleSchema,
1763
- headings: z16.object({
2002
+ headings: z17.object({
1764
2003
  default: headingTypographyStyleSchema,
1765
2004
  h1: headingTypographyOverridesSchema,
1766
2005
  h2: headingTypographyOverridesSchema,
@@ -1773,41 +2012,41 @@ var typographySchema = z16.object({
1773
2012
  scale: typographyScaleSchema,
1774
2013
  proseLinkStyle: proseLinkStyleSchema.optional()
1775
2014
  });
1776
- var spaceSchema = z16.enum(["comfortable", "standard", "dense"]);
1777
- var corners = z16.enum(["square", "soft", "rounded", "pill"]);
1778
- var shadow = z16.object({
1779
- elevation: z16.enum(["none", "low", "medium", "high"]),
1780
- softness: z16.enum(["crisp", "soft", "hard"]).nullable(),
1781
- position: z16.enum(["bottom", "bottom-right"]).default("bottom")
2015
+ var spaceSchema = z17.enum(["comfortable", "standard", "dense"]);
2016
+ var corners = z17.enum(["square", "soft", "rounded", "pill"]);
2017
+ var shadow = z17.object({
2018
+ elevation: z17.enum(["none", "low", "medium", "high"]),
2019
+ softness: z17.enum(["crisp", "soft", "hard"]).nullable(),
2020
+ position: z17.enum(["bottom", "bottom-right"]).default("bottom")
1782
2021
  });
1783
- var border = z16.object({
1784
- width: z16.enum(["none", "hairline", "thin", "thick"]),
1785
- style: z16.enum(["solid", "dashed"])
2022
+ var border = z17.object({
2023
+ width: z17.enum(["none", "hairline", "thin", "thick"]),
2024
+ style: z17.enum(["solid", "dashed"])
1786
2025
  });
1787
- var motion = z16.object({
1788
- level: z16.enum(["off", "low", "medium", "high"]),
1789
- easing: z16.enum(["standard", "snappy", "gentle"]).nullable()
2026
+ var motion = z17.object({
2027
+ level: z17.enum(["off", "low", "medium", "high"]),
2028
+ easing: z17.enum(["standard", "snappy", "gentle"]).nullable()
1790
2029
  });
1791
- var buttonStyle = z16.object({
2030
+ var buttonStyle = z17.object({
1792
2031
  shape: corners
1793
2032
  // Used for --radius-control CSS variable
1794
2033
  });
1795
- var cardStyle = z16.object({
1796
- elevation: z16.enum(["none", "low", "medium", "high"]),
1797
- border: z16.enum(["none", "subtle", "defined"]),
2034
+ var cardStyle = z17.object({
2035
+ elevation: z17.enum(["none", "low", "medium", "high"]),
2036
+ border: z17.enum(["none", "subtle", "defined"]),
1798
2037
  shape: corners,
1799
- headerStyle: z16.enum(["plain", "accentBar", "subtleBg"]).nullable(),
1800
- mediaTreatment: z16.enum(["square", "rounded", "bleed"]).nullable()
2038
+ headerStyle: z17.enum(["plain", "accentBar", "subtleBg"]).nullable(),
2039
+ mediaTreatment: z17.enum(["square", "rounded", "bleed"]).nullable()
1801
2040
  });
1802
- var inputStyle = z16.object({
2041
+ var inputStyle = z17.object({
1803
2042
  shape: corners,
1804
- border: z16.enum(["subtle", "defined", "underline"]),
1805
- focus: z16.enum(["glow", "ring", "underline"]),
1806
- label: z16.enum(["inside", "above"])
2043
+ border: z17.enum(["subtle", "defined", "underline"]),
2044
+ focus: z17.enum(["glow", "ring", "underline"]),
2045
+ label: z17.enum(["inside", "above"])
1807
2046
  });
1808
- var headerVariant = z16.enum(["classic", "centered", "transparent", "floating"]);
1809
- var headerPositioning = z16.enum(["static", "sticky", "fixed"]);
1810
- var headerNavStyle = z16.enum([
2047
+ var headerVariant = z17.enum(["classic", "centered", "transparent", "floating"]);
2048
+ var headerPositioning = z17.enum(["static", "sticky", "fixed"]);
2049
+ var headerNavStyle = z17.enum([
1811
2050
  "minimal",
1812
2051
  "underline",
1813
2052
  "underline-grow",
@@ -1816,54 +2055,57 @@ var headerNavStyle = z16.enum([
1816
2055
  "frosted",
1817
2056
  "solid"
1818
2057
  ]);
1819
- var navFontWeight = z16.enum(["regular", "medium", "semibold", "bold"]);
1820
- var headerMaxWidth = z16.enum(["container", "full"]);
1821
- var headerContainerSchema = z16.object({
1822
- rounded: z16.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("xl"),
1823
- border: z16.boolean().default(true),
1824
- shadow: z16.boolean().default(true),
1825
- padding: z16.enum(["sm", "md", "lg"]).default("md"),
1826
- tint: z16.string().nullable().optional(),
1827
- opacity: z16.number().min(0).max(1).default(0.12)
2058
+ var navFontWeight = z17.enum(["regular", "medium", "semibold", "bold"]);
2059
+ var headerMaxWidth = z17.enum(["container", "full"]);
2060
+ var headerContainerSchema = z17.object({
2061
+ rounded: z17.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("xl"),
2062
+ border: z17.boolean().default(true),
2063
+ shadow: z17.boolean().default(true),
2064
+ padding: z17.enum(["sm", "md", "lg"]).default("md"),
2065
+ tint: z17.string().nullable().optional(),
2066
+ opacity: z17.number().min(0).max(1).default(0.12)
1828
2067
  }).optional();
1829
2068
  var headerBorderSchema = componentBorderSchema.extend({
1830
- position: z16.enum(["bottom", "top", "both", "none"]).default("bottom")
2069
+ position: z17.enum(["bottom", "top", "both", "none"]).default("bottom")
1831
2070
  }).optional();
1832
- var logoStyleSchema = z16.object({
1833
- fontFamily: z16.enum(["heading", "body"]).default("heading"),
1834
- letterSpacing: z16.enum(["normal", "wide", "wider", "widest"]).default("normal"),
1835
- gradient: z16.boolean().default(false)
2071
+ var logoStyleSchema = z17.object({
2072
+ fontFamily: z17.enum(["heading", "body"]).default("heading"),
2073
+ letterSpacing: z17.enum(["normal", "wide", "wider", "widest"]).default("normal"),
2074
+ gradient: z17.boolean().default(false),
2075
+ brandDisplay: z17.enum(brandDisplayModeValues).optional(),
2076
+ size: z17.enum(logoSizePolicyValues).optional(),
2077
+ accommodation: z17.enum(logoAccommodationPatternValues).optional()
1836
2078
  }).optional();
1837
- var headerLogoTextSchema = z16.object({
1838
- mobileWrapLines: z16.union([z16.literal(1), z16.literal(2)]).optional(),
1839
- mobileMaxWidth: z16.enum(["xs", "sm", "md"]).optional(),
1840
- hideOnShrink: z16.boolean().optional()
2079
+ var headerLogoTextSchema = z17.object({
2080
+ mobileWrapLines: z17.union([z17.literal(1), z17.literal(2)]).optional(),
2081
+ mobileMaxWidth: z17.enum(["xs", "sm", "md"]).optional(),
2082
+ hideOnShrink: z17.boolean().optional()
1841
2083
  }).optional();
1842
- var navEffectsSchema = z16.object({
1843
- underlineGradient: z16.boolean().default(false),
1844
- glow: z16.boolean().default(false),
1845
- glowColor: z16.string().optional(),
1846
- neumorphic: z16.boolean().default(false)
2084
+ var navEffectsSchema = z17.object({
2085
+ underlineGradient: z17.boolean().default(false),
2086
+ glow: z17.boolean().default(false),
2087
+ glowColor: z17.string().optional(),
2088
+ neumorphic: z17.boolean().default(false)
1847
2089
  }).optional();
1848
- var dropdownStyleSchema = z16.object({
2090
+ var dropdownStyleSchema = z17.object({
1849
2091
  // Container styling
1850
2092
  background: themeColorTokenSchema.default("surface"),
1851
2093
  textColor: themeColorTokenSchema.default("text"),
1852
2094
  borderColor: themeColorTokenSchema.nullable().default("border"),
1853
- shadow: z16.enum(["none", "sm", "md", "lg"]).default("md"),
1854
- borderRadius: z16.enum(["none", "sm", "md", "lg"]).default("md"),
2095
+ shadow: z17.enum(["none", "sm", "md", "lg"]).default("md"),
2096
+ borderRadius: z17.enum(["none", "sm", "md", "lg"]).default("md"),
1855
2097
  // Link hover states (explicit control)
1856
2098
  hoverBackground: themeColorTokenSchema.nullable().optional(),
1857
2099
  hoverTextColor: themeColorTokenSchema.nullable().optional(),
1858
2100
  // Typography
1859
- textTransform: z16.enum(["none", "uppercase", "capitalize"]).default("none"),
1860
- letterSpacing: z16.enum(["normal", "wide", "wider"]).default("normal"),
1861
- fontWeight: z16.enum(["regular", "medium", "semibold", "bold"]).optional(),
2101
+ textTransform: z17.enum(["none", "uppercase", "capitalize"]).default("none"),
2102
+ letterSpacing: z17.enum(["normal", "wide", "wider"]).default("normal"),
2103
+ fontWeight: z17.enum(["regular", "medium", "semibold", "bold"]).optional(),
1862
2104
  // optional = inherit from navWeight
1863
- textSize: z16.enum(["xs", "sm", "base", "lg"]).optional()
2105
+ textSize: z17.enum(["xs", "sm", "base", "lg"]).optional()
1864
2106
  // optional = no override (browser default)
1865
2107
  }).optional();
1866
- var headerCtaGapSchema = z16.enum([
2108
+ var headerCtaGapSchema = z17.enum([
1867
2109
  "none",
1868
2110
  "tight",
1869
2111
  "compact",
@@ -1871,7 +2113,7 @@ var headerCtaGapSchema = z16.enum([
1871
2113
  "relaxed",
1872
2114
  "spacious"
1873
2115
  ]);
1874
- var headerCtaTreatmentSchema = z16.enum([
2116
+ var headerCtaTreatmentSchema = z17.enum([
1875
2117
  "default",
1876
2118
  "primary",
1877
2119
  "secondary",
@@ -1879,22 +2121,22 @@ var headerCtaTreatmentSchema = z16.enum([
1879
2121
  "outline",
1880
2122
  "ghost"
1881
2123
  ]);
1882
- var navContainerSchema = z16.object({
1883
- type: z16.enum(["none", "pill", "glass"]).default("none"),
1884
- tint: z16.string().nullable().optional(),
1885
- opacity: z16.number().min(0).max(1).default(0.15)
2124
+ var navContainerSchema = z17.object({
2125
+ type: z17.enum(["none", "pill", "glass"]).default("none"),
2126
+ tint: z17.string().nullable().optional(),
2127
+ opacity: z17.number().min(0).max(1).default(0.15)
1886
2128
  }).default({ type: "none", tint: null, opacity: 0.15 });
1887
- var headerBackgroundSchema = z16.object({
1888
- type: z16.enum(["color", "gradient", "image"]),
2129
+ var headerBackgroundSchema = z17.object({
2130
+ type: z17.enum(["color", "gradient", "image"]),
1889
2131
  color: tokenOrCssColorValueSchema.nullable().optional(),
1890
2132
  gradient: gradientConfigSchema.nullable().optional(),
1891
2133
  image: mediaSchema.nullable().optional(),
1892
2134
  textColor: tokenOrCssColorValueSchema.nullable().optional()
1893
2135
  });
1894
- var headerSchema = z16.object({
2136
+ var headerSchema = z17.object({
1895
2137
  variant: headerVariant,
1896
2138
  positioning: headerPositioning,
1897
- shrinkOnScroll: z16.boolean(),
2139
+ shrinkOnScroll: z17.boolean(),
1898
2140
  maxWidth: headerMaxWidth,
1899
2141
  logoOverride: mediaSchema.nullable().optional(),
1900
2142
  background: headerBackgroundSchema.default({
@@ -1924,16 +2166,16 @@ var headerSchema = z16.object({
1924
2166
  // Optional theme-level CTA variant for header/nav CTA buttons.
1925
2167
  // Internal runtime bridge for the block renderer; prefer ctaTreatment in
1926
2168
  // authored Theme V2 concepts.
1927
- ctaVariant: z16.string().min(1).optional(),
2169
+ ctaVariant: z17.string().min(1).optional(),
1928
2170
  // Dropdown menu styling (nav dropdowns and mobile drawer)
1929
2171
  dropdownStyle: dropdownStyleSchema
1930
2172
  });
1931
- var footerVariant = z16.enum(["simple", "columns", "split"]);
1932
- var footerMaxWidth = z16.enum(["container", "full"]);
1933
- var footerMode = z16.enum(["default", "blocks", "default+blocks", "none"]);
1934
- var footerNavLayoutMode = z16.enum(["stack", "inline", "inline-wrap"]);
1935
- var footerNavLayoutAlign = z16.enum(["start", "center", "end", "space-between"]);
1936
- var footerSpacing = z16.enum([
2173
+ var footerVariant = z17.enum(["simple", "columns", "split"]);
2174
+ var footerMaxWidth = z17.enum(["container", "full"]);
2175
+ var footerMode = z17.enum(["default", "blocks", "default+blocks", "none"]);
2176
+ var footerNavLayoutMode = z17.enum(["stack", "inline", "inline-wrap"]);
2177
+ var footerNavLayoutAlign = z17.enum(["start", "center", "end", "space-between"]);
2178
+ var footerSpacing = z17.enum([
1937
2179
  "none",
1938
2180
  "tight",
1939
2181
  "compact",
@@ -1941,44 +2183,44 @@ var footerSpacing = z16.enum([
1941
2183
  "relaxed",
1942
2184
  "spacious"
1943
2185
  ]);
1944
- var footerLogoPlacement = z16.enum(["left", "right", "above", "below"]);
1945
- var footerLogoSize = z16.enum(["sm", "md", "lg", "xl"]);
1946
- var footerLogoMaxHeight = z16.enum(["sm", "md", "lg", "xl"]);
1947
- var footerBottomTextLinkStyleSchema = z16.object({
2186
+ var footerLogoPlacement = z17.enum(["left", "right", "above", "below"]);
2187
+ var footerLogoSize = z17.enum(["sm", "md", "lg", "xl"]);
2188
+ var footerLogoMaxHeight = z17.enum(["sm", "md", "lg", "xl"]);
2189
+ var footerBottomTextLinkStyleSchema = z17.object({
1948
2190
  colorToken: themeColorTokenSchema.optional(),
1949
2191
  hoverColorToken: themeColorTokenSchema.nullable().optional(),
1950
2192
  decorationColorToken: themeColorTokenSchema.nullable().optional(),
1951
- underline: z16.boolean().optional()
2193
+ underline: z17.boolean().optional()
1952
2194
  });
1953
- var footerBottomBarSchema = z16.object({
1954
- enabled: z16.boolean().optional(),
1955
- fullBleed: z16.boolean().optional(),
2195
+ var footerBottomBarSchema = z17.object({
2196
+ enabled: z17.boolean().optional(),
2197
+ fullBleed: z17.boolean().optional(),
1956
2198
  background: headerBackgroundSchema.optional(),
1957
2199
  textColor: themeColorTokenSchema.nullable().optional(),
1958
- textAlign: z16.enum(["left", "center", "right"]).optional(),
2200
+ textAlign: z17.enum(["left", "center", "right"]).optional(),
1959
2201
  paddingY: footerSpacing.optional(),
1960
2202
  paddingX: footerSpacing.optional(),
1961
- borderTop: z16.object({
2203
+ borderTop: z17.object({
1962
2204
  colorToken: themeColorTokenSchema.nullable().optional(),
1963
- width: z16.enum(["none", "thin", "medium", "thick"]).optional()
2205
+ width: z17.enum(["none", "thin", "medium", "thick"]).optional()
1964
2206
  }).optional()
1965
2207
  });
1966
- var footerNavLayoutSchema = z16.object({
2208
+ var footerNavLayoutSchema = z17.object({
1967
2209
  layout: footerNavLayoutMode.optional(),
1968
2210
  align: footerNavLayoutAlign.optional(),
1969
2211
  gapX: footerSpacing.optional(),
1970
2212
  gapY: footerSpacing.optional(),
1971
- columns: z16.number().int().min(1).max(6).optional()
2213
+ columns: z17.number().int().min(1).max(6).optional()
1972
2214
  });
1973
- var footerLogoSchema = z16.object({
1974
- showLogo: z16.boolean().default(true),
1975
- showLogoText: z16.boolean().optional(),
2215
+ var footerLogoSchema = z17.object({
2216
+ showLogo: z17.boolean().default(true),
2217
+ showLogoText: z17.boolean().optional(),
1976
2218
  placement: footerLogoPlacement.optional(),
1977
2219
  size: footerLogoSize.optional(),
1978
2220
  maxHeight: footerLogoMaxHeight.optional(),
1979
- align: z16.enum(["start", "center", "end"]).optional()
2221
+ align: z17.enum(["start", "center", "end"]).optional()
1980
2222
  });
1981
- var footerSchema = z16.object({
2223
+ var footerSchema = z17.object({
1982
2224
  /**
1983
2225
  * SDK-only footer rendering mode.
1984
2226
  *
@@ -1987,7 +2229,7 @@ var footerSchema = z16.object({
1987
2229
  mode: footerMode.optional(),
1988
2230
  variant: footerVariant,
1989
2231
  maxWidth: footerMaxWidth,
1990
- showLogoText: z16.boolean().optional(),
2232
+ showLogoText: z17.boolean().optional(),
1991
2233
  background: headerBackgroundSchema.default({
1992
2234
  type: "color",
1993
2235
  color: "surface"
@@ -2005,20 +2247,20 @@ var footerSchema = z16.object({
2005
2247
  logo: footerLogoSchema.optional(),
2006
2248
  bottomBar: footerBottomBarSchema.optional()
2007
2249
  });
2008
- var containerPaddingPresetSchema = z16.enum([
2250
+ var containerPaddingPresetSchema = z17.enum([
2009
2251
  "tight",
2010
2252
  "compact",
2011
2253
  "default",
2012
2254
  "relaxed"
2013
2255
  ]);
2014
- var layoutSchema = z16.object({
2015
- containerPadding: z16.object({
2256
+ var layoutSchema = z17.object({
2257
+ containerPadding: z17.object({
2016
2258
  mobile: containerPaddingPresetSchema.optional(),
2017
2259
  tablet: containerPaddingPresetSchema.optional(),
2018
2260
  desktop: containerPaddingPresetSchema.optional()
2019
2261
  }).optional()
2020
2262
  }).optional();
2021
- var heroTypographySizeSchema = z16.enum([
2263
+ var heroTypographySizeSchema = z17.enum([
2022
2264
  "sm",
2023
2265
  "base",
2024
2266
  "lg",
@@ -2030,19 +2272,19 @@ var heroTypographySizeSchema = z16.enum([
2030
2272
  "6xl",
2031
2273
  "editorial"
2032
2274
  ]);
2033
- var heroTypographyLineHeightSchema = z16.enum([
2275
+ var heroTypographyLineHeightSchema = z17.enum([
2034
2276
  "tight",
2035
2277
  "snug",
2036
2278
  "normal",
2037
2279
  "relaxed"
2038
2280
  ]);
2039
- var heroResponsiveTypographySchema = z16.object({
2281
+ var heroResponsiveTypographySchema = z17.object({
2040
2282
  headlineSize: heroTypographySizeSchema.optional(),
2041
2283
  headlineLineHeight: heroTypographyLineHeightSchema.optional(),
2042
2284
  subheadlineSize: heroTypographySizeSchema.optional(),
2043
2285
  subheadlineLineHeight: heroTypographyLineHeightSchema.optional()
2044
2286
  });
2045
- var heroTypographySchema = z16.object({
2287
+ var heroTypographySchema = z17.object({
2046
2288
  headlineSize: heroTypographySizeSchema.optional(),
2047
2289
  headlineLineHeight: heroTypographyLineHeightSchema.optional(),
2048
2290
  subheadlineSize: heroTypographySizeSchema.optional(),
@@ -2051,31 +2293,38 @@ var heroTypographySchema = z16.object({
2051
2293
  microHeadlineLineHeight: heroTypographyLineHeightSchema.optional(),
2052
2294
  microSubheadlineSize: heroTypographySizeSchema.optional(),
2053
2295
  microSubheadlineLineHeight: heroTypographyLineHeightSchema.optional(),
2054
- responsive: z16.object({
2296
+ responsive: z17.object({
2055
2297
  tablet: heroResponsiveTypographySchema.optional(),
2056
2298
  mobile: heroResponsiveTypographySchema.optional()
2057
2299
  }).optional()
2058
2300
  });
2059
- var heroSchema = z16.object({
2301
+ var heroSchema = z17.object({
2060
2302
  typography: heroTypographySchema.optional()
2061
2303
  }).optional();
2062
- var bodyTextIntroTypographySizeSchema = z16.enum(["default", "editorial"]);
2063
- var bodyTextSchema = z16.object({
2064
- intro: z16.object({
2304
+ var bodyTextIntroTypographySizeSchema = z17.enum(["default", "editorial"]);
2305
+ var bodyTextSchema = z17.object({
2306
+ intro: z17.object({
2065
2307
  paragraphSize: bodyTextIntroTypographySizeSchema.optional(),
2066
2308
  headingSize: bodyTextIntroTypographySizeSchema.optional()
2067
2309
  }).optional()
2068
2310
  }).optional();
2069
- var gradientsSchema = z16.object({
2070
- button: z16.string().min(1).nullable().optional(),
2071
- hero: z16.string().min(1).nullable().optional(),
2072
- background: z16.string().min(1).nullable().optional()
2073
- });
2074
- var themeSchema = z16.object({
2075
- name: z16.string().min(1).max(30),
2076
- description: z16.string().min(1).max(400),
2077
- rationale: z16.string().min(1).max(400),
2078
- siteStyleId: z16.string().min(1).transform((value) => asSiteStyleId(value)).optional(),
2311
+ var gradientsSchema = z17.object({
2312
+ button: z17.string().min(1).nullable().optional(),
2313
+ hero: z17.string().min(1).nullable().optional(),
2314
+ background: z17.string().min(1).nullable().optional()
2315
+ });
2316
+ var testimonialQuoteTreatmentSchema = z17.object({
2317
+ style: z17.enum(["serif-display", "accent-glyph", "none"]),
2318
+ fontFamily: z17.enum(["heading", "body"]).optional(),
2319
+ scale: z17.enum(["sm", "md", "lg", "xl"]).optional(),
2320
+ colorToken: themeColorTokenSchema.optional(),
2321
+ opacity: z17.number().min(0).max(1).optional()
2322
+ });
2323
+ var themeSchema = z17.object({
2324
+ name: z17.string().min(1).max(30),
2325
+ description: z17.string().min(1).max(400),
2326
+ rationale: z17.string().min(1).max(400),
2327
+ siteStyleId: z17.string().min(1).transform((value) => asSiteStyleId(value)).optional(),
2079
2328
  axes: axesSchema,
2080
2329
  palette: paletteSchema,
2081
2330
  typography: typographySchema,
@@ -2096,6 +2345,8 @@ var themeSchema = z16.object({
2096
2345
  // Card variant system (optional for backwards compatibility)
2097
2346
  accordions: accordionSystemSchema.optional(),
2098
2347
  // Accordion system (optional - generated if not provided)
2348
+ testimonialQuote: testimonialQuoteTreatmentSchema.optional(),
2349
+ // Testimonial quote-mark treatment (site-style-owned)
2099
2350
  inputs: inputSystemSchema.optional(),
2100
2351
  // Input system (optional - generated if not provided)
2101
2352
  inputStyle: inputStyle.optional(),
@@ -2103,15 +2354,19 @@ var themeSchema = z16.object({
2103
2354
  // Block-specific customization (Tier 3)
2104
2355
  // blockCustomVars: Per-block CSS variable overrides as bare values
2105
2356
  // Example: { "event-registration": { "--step-color": "#6d28d9" } }
2106
- blockCustomVars: z16.record(
2107
- z16.string(),
2357
+ blockCustomVars: z17.record(
2358
+ z17.string(),
2108
2359
  // block kind (matches data-block attribute)
2109
- z16.record(z16.string(), z16.string())
2360
+ z17.record(z17.string(), z17.string())
2110
2361
  // { '--var-name': 'value' }
2111
2362
  ).optional(),
2112
2363
  // Structured block-kind theme overrides (v1: typography prose-link style only)
2113
2364
  // Keyed by block kind (usually data-block value like "hero"; "block.hero" also accepted)
2114
- blockOverrides: z16.record(z16.string(), blockThemeOverrideSchema).optional(),
2365
+ blockOverrides: z17.record(z17.string(), blockThemeOverrideSchema).optional(),
2366
+ // Site-wide heading decoration signature (family + colour). Set once per Look
2367
+ // and projected transiently onto eligible block headings at render time.
2368
+ // Alignment is inherited from the heading, so no placement is stored.
2369
+ headingDecoration: headingDecorationSchema.optional(),
2115
2370
  // Structured custom CSS rules
2116
2371
  // Validated, scoped, and safe by construction - no @import, remote url(), or global selectors
2117
2372
  customCssRules: customCssRulesSchema,
@@ -2145,11 +2400,11 @@ var themeSchema = z16.object({
2145
2400
  * }
2146
2401
  * ```
2147
2402
  */
2148
- styleGroups: z16.record(z16.string(), z16.array(z16.string())).optional()
2403
+ styleGroups: z17.record(z17.string(), z17.array(z17.string())).optional()
2149
2404
  });
2150
- var themesTurnSchema = z16.object({
2151
- message: z16.string().min(1),
2152
- themes: z16.array(themeSchema).length(3)
2405
+ var themesTurnSchema = z17.object({
2406
+ message: z17.string().min(1),
2407
+ themes: z17.array(themeSchema).length(3)
2153
2408
  });
2154
2409
 
2155
2410
  // src/theme/loader.ts