@riverbankcms/sdk 0.104.3 → 0.108.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 (302) hide show
  1. package/README.md +84 -51
  2. package/dist/{PreviewEditorSidebar-CBMhU9p_.mjs → PreviewEditorSidebar-BBT-kZAM.mjs} +1850 -1183
  3. package/dist/{PreviewEditorUI-C5KEw4M8.mjs → PreviewEditorUI-D69xNKT2.mjs} +10 -9
  4. package/dist/{PreviewQueryProvider-CStABBUh.mjs → PreviewQueryProvider-RRu7wyQ5.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-Iq12HjL7.mjs → SdkPreviewModeRuntime-CuDjXH6o.mjs} +2562 -457
  6. package/dist/{SiteChromeCustomizeContext-Cx0NMdyv.mjs → SiteChromeCustomizeContext-BQUY2dEk.mjs} +7689 -3196
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +36493 -1395
  8. package/dist/_dts/api/src/blocks.d.ts +41 -7
  9. package/dist/_dts/api/src/bookingConfig.d.ts +2 -0
  10. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +5 -1
  11. package/dist/_dts/api/src/bookingRecords.d.ts +180 -115
  12. package/dist/_dts/api/src/cache-tags.d.ts +3 -0
  13. package/dist/_dts/api/src/contentRuntime.d.ts +25 -16
  14. package/dist/_dts/api/src/courses.d.ts +68 -10
  15. package/dist/_dts/api/src/endpoints.d.ts +128 -0
  16. package/dist/_dts/api/src/footer-settings.d.ts +1 -0
  17. package/dist/_dts/api/src/footerSettings.d.ts +8 -0
  18. package/dist/_dts/api/src/index.d.ts +127 -124
  19. package/dist/_dts/api/src/navigation/contracts.d.ts +3 -3
  20. package/dist/_dts/api/src/previewContentContract.d.ts +4 -0
  21. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +9 -0
  22. package/dist/_dts/api/src/sdkContracts.d.ts +178 -6
  23. package/dist/_dts/api/src/siteBanner.d.ts +2 -2
  24. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +143 -55
  25. package/dist/_dts/api/src/siteOperations.d.ts +1 -0
  26. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +32 -4
  27. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +72 -47
  28. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +36 -4
  29. package/dist/_dts/blocks/src/definitions.d.ts +1 -1
  30. package/dist/_dts/blocks/src/portal/types.d.ts +25 -7
  31. package/dist/_dts/blocks/src/primitives/layout/Section.d.ts +0 -1
  32. package/dist/_dts/blocks/src/rendering/server.d.ts +1 -0
  33. package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +2 -2
  34. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +2 -0
  35. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +2 -0
  36. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +4 -0
  37. package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule-projection.d.ts +52 -0
  38. package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule.d.ts +22 -0
  39. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +45 -0
  40. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +10 -0
  41. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +4 -1
  42. package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
  43. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +9 -0
  44. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +8 -2
  45. package/dist/_dts/blocks/src/system/blocks/offerings-preview/index.d.ts +8 -8
  46. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +24 -24
  47. package/dist/_dts/blocks/src/system/blocks/offerings-preview/scheduleSummary.d.ts +29 -0
  48. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -1
  49. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +50 -0
  50. package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +9 -48
  51. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  52. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  53. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +2 -5
  54. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  55. package/dist/_dts/blocks/src/system/designCapabilities.d.ts +1 -0
  56. package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +2 -2
  57. package/dist/_dts/blocks/src/system/icons/registry.d.ts +2 -1
  58. package/dist/_dts/blocks/src/system/icons/social.d.ts +5 -0
  59. package/dist/_dts/blocks/src/system/icons/svg.d.ts +1 -0
  60. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +2 -2
  61. package/dist/_dts/blocks/src/system/node/fragments/backgroundLayer.d.ts +13 -0
  62. package/dist/_dts/blocks/src/system/node/fragments/footerNav.d.ts +2 -0
  63. package/dist/_dts/blocks/src/system/node/fragments/styledCard.d.ts +3 -0
  64. package/dist/_dts/blocks/src/system/node/fragments/styledContainer.d.ts +4 -4
  65. package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +3 -12
  66. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  67. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  68. package/dist/_dts/blocks/src/system/runtime/blockComposition.d.ts +2 -0
  69. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +90 -6
  70. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +45 -3
  71. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +1 -0
  72. package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/display.d.ts +2 -2
  73. package/dist/_dts/blocks/src/system/runtime/nodes/course-details/logic.d.ts +2 -1
  74. package/dist/_dts/blocks/src/system/runtime/nodes/course-details/view.d.ts +1 -0
  75. package/dist/_dts/blocks/src/system/runtime/nodes/course-details.server.d.ts +2 -1
  76. package/dist/_dts/blocks/src/system/runtime/nodes/course-page-surface-scope.d.ts +17 -0
  77. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +3 -0
  78. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +5 -0
  79. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.server.d.ts +1 -1
  80. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventScope.d.ts +9 -18
  81. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +106 -0
  82. package/dist/_dts/blocks/src/system/runtime/nodes/events/RecurringSchedule.d.ts +11 -0
  83. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +7 -3
  84. package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +3 -0
  85. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +11 -1
  86. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.server.d.ts +1 -1
  87. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +3 -0
  88. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +6 -6
  89. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +1 -1
  90. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +11 -5
  91. package/dist/_dts/blocks/src/system/runtime/nodes/shop.types.d.ts +2 -1
  92. package/dist/_dts/blocks/src/system/runtime/nodes/svg.d.ts +7 -0
  93. package/dist/_dts/blocks/src/system/types/link.d.ts +3 -3
  94. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +14 -0
  95. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +27 -8
  96. package/dist/_dts/content-editor/src/footerComposer.d.ts +56 -0
  97. package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +1 -1
  98. package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +5 -5
  99. package/dist/_dts/content-editor/src/index.d.ts +2 -0
  100. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +3 -1
  101. package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +20 -36
  102. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +5 -1
  103. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +11 -0
  104. package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
  105. package/dist/_dts/content-model/src/definitions/shared.d.ts +3 -0
  106. package/dist/_dts/core/src/branded.d.ts +47 -0
  107. package/dist/_dts/core/src/dated-offering-settlement.d.ts +47 -0
  108. package/dist/_dts/core/src/editor-state.d.ts +4 -0
  109. package/dist/_dts/core/src/event-page-surface-subject.d.ts +44 -0
  110. package/dist/_dts/core/src/footer-composition.d.ts +143 -0
  111. package/dist/_dts/core/src/index.d.ts +51 -47
  112. package/dist/_dts/core/src/public-profile.d.ts +73 -0
  113. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +4398 -2859
  114. package/dist/_dts/db/src/schemas/forms.d.ts +10 -10
  115. package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +5 -0
  116. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +1 -0
  117. package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +1 -1
  118. package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +4 -1
  119. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +2 -1
  120. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +2 -1
  121. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +2 -1
  122. package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +10 -0
  123. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +1 -0
  124. package/dist/_dts/media-core/src/index.d.ts +2 -1
  125. package/dist/_dts/media-core/src/storagePathDomain.d.ts +47 -0
  126. package/dist/_dts/media-core/src/url.d.ts +1 -21
  127. package/dist/_dts/path-utils/src/index.d.ts +5 -0
  128. package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +4 -2
  129. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -1
  130. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -1
  131. package/dist/_dts/preview-next/src/client/preview/PreviewChromeLayer.d.ts +5 -0
  132. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +4 -9
  133. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -0
  134. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +8 -11
  135. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +4 -9
  136. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +2 -6
  137. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +5 -9
  138. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +81 -43
  139. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.typography.d.ts +61 -0
  140. package/dist/_dts/preview-next/src/client/preview/previewErrorMessages.d.ts +4 -0
  141. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +7 -17
  142. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +15 -8
  143. package/dist/_dts/preview-next/src/client/preview/typographyFontCatalog.d.ts +57 -0
  144. package/dist/_dts/sdk/src/cli/commands/pull.d.ts +1 -1
  145. package/dist/_dts/sdk/src/cli/commands/push/execute/theme.d.ts +4 -7
  146. package/dist/_dts/sdk/src/cli/commands/style.d.ts +24 -10
  147. package/dist/_dts/sdk/src/cli/content/reader.d.ts +1 -0
  148. package/dist/_dts/sdk/src/cli/site-commands/oneOffCommands.d.ts +3 -3
  149. package/dist/_dts/sdk/src/cli/sync/media.d.ts +16 -2
  150. package/dist/_dts/sdk/src/client/management/blocks.d.ts +14 -1
  151. package/dist/_dts/sdk/src/client/management/index.d.ts +2 -1
  152. package/dist/_dts/sdk/src/client/management/types.d.ts +147 -24
  153. package/dist/_dts/sdk/src/client/types.d.ts +2 -0
  154. package/dist/_dts/sdk/src/config/content-types.d.ts +2 -0
  155. package/dist/_dts/sdk/src/config/content-validation.d.ts +4 -0
  156. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  157. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  158. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  159. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +23 -3
  160. package/dist/_dts/sdk/src/data/dataLoaderContext.d.ts +17 -0
  161. package/dist/_dts/sdk/src/data/dataLoaderValue.d.ts +36 -0
  162. package/dist/_dts/sdk/src/data/defineOwnDataProperty.d.ts +2 -0
  163. package/dist/_dts/sdk/src/data/executeCodeLoaders.d.ts +36 -40
  164. package/dist/_dts/sdk/src/data/index.d.ts +3 -3
  165. package/dist/_dts/sdk/src/data/resolveBlockData.d.ts +54 -0
  166. package/dist/_dts/sdk/src/data/types.d.ts +43 -78
  167. package/dist/_dts/sdk/src/navigation/index.d.ts +2 -0
  168. package/dist/_dts/sdk/src/next/index.d.ts +1 -0
  169. package/dist/_dts/sdk/src/next/redirect-destination.d.ts +1 -1
  170. package/dist/_dts/sdk/src/next/resolveTheme.d.ts +2 -1
  171. package/dist/_dts/sdk/src/next/types.d.ts +10 -1
  172. package/dist/_dts/sdk/src/public-api/contracts.d.ts +6 -10
  173. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -1
  174. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +10 -5
  175. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +6 -10
  176. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
  177. package/dist/_dts/sdk/src/server.d.ts +4 -3
  178. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  179. package/dist/_dts/sdk/src/version.d.ts +1 -1
  180. package/dist/_dts/site-commands/src/capabilityGaps.d.ts +2 -2
  181. package/dist/_dts/site-commands/src/commands.d.ts +934 -40
  182. package/dist/_dts/theme-core/src/accordions/types.d.ts +2 -2
  183. package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +5 -1
  184. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +22 -0
  185. package/dist/_dts/theme-core/src/buttons/personalities/quiet-arrow.d.ts +17 -0
  186. package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +17 -0
  187. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +3 -3
  188. package/dist/_dts/theme-core/src/buttons/types.d.ts +12 -8
  189. package/dist/_dts/theme-core/src/cards/types.d.ts +3 -3
  190. package/dist/_dts/theme-core/src/data.d.ts +12 -0
  191. package/dist/_dts/theme-core/src/fonts/index.d.ts +1 -1
  192. package/dist/_dts/theme-core/src/fonts/types.d.ts +6 -0
  193. package/dist/_dts/theme-core/src/footer/mode.d.ts +15 -0
  194. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  195. package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
  196. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +72 -54
  197. package/dist/_dts/theme-core/src/navigation/types.d.ts +1 -1
  198. package/dist/_dts/theme-core/src/palette/colors.d.ts +12 -0
  199. package/dist/_dts/theme-core/src/palette/curated/brand-led.d.ts +10 -5
  200. package/dist/_dts/theme-core/src/palette/curated/high-contrast.d.ts +6 -3
  201. package/dist/_dts/theme-core/src/palette/curated/index.d.ts +31 -236
  202. package/dist/_dts/theme-core/src/palette/curated/soft-natural.d.ts +8 -4
  203. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +14 -12
  204. package/dist/_dts/theme-core/src/palette/curated/warm-dark.d.ts +4 -2
  205. package/dist/_dts/theme-core/src/palette/curated/warm-neutral.d.ts +8 -4
  206. package/dist/_dts/theme-core/src/palette/editorState.d.ts +33 -3
  207. package/dist/_dts/theme-core/src/palette/index.d.ts +0 -4
  208. package/dist/_dts/theme-core/src/palette/libraryModel.d.ts +12 -6
  209. package/dist/_dts/theme-core/src/palette/persistenceReadSource.d.ts +20 -72
  210. package/dist/_dts/theme-core/src/palette/resolveSelection.d.ts +29 -4
  211. package/dist/_dts/theme-core/src/palette/selection.d.ts +6 -4
  212. package/dist/_dts/theme-core/src/schema.d.ts +1307 -38
  213. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +218 -158
  214. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +5 -6
  215. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +218 -158
  216. package/dist/_dts/theme-core/src/site-styles/compositionBudget.d.ts +1 -0
  217. package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +2 -1
  218. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +161 -51
  219. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +6 -0
  220. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
  221. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +12 -1
  222. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -1
  223. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +24 -1
  224. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +14 -48
  225. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +10 -23
  226. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +15 -0
  227. package/dist/_dts/theme-core/src/site-styles/siteStyleThemeCompiler.d.ts +1 -2
  228. package/dist/_dts/theme-core/src/site-styles/siteStyleTypography.d.ts +456 -0
  229. package/dist/_dts/theme-core/src/site-styles/types.d.ts +52 -3
  230. package/dist/cli/index.mjs +4118 -2278
  231. package/dist/client/{DiscountCodeDisclosure-BXM73_E5.mjs → DiscountCodeDisclosure-D6TOf6Hi.mjs} +1 -1
  232. package/dist/client/{EventCombined.client-DT5elP7j.mjs → EventCombined.client-Dao3zxRk.mjs} +3 -3
  233. package/dist/client/{EventListing.client-pTYGfV9C.mjs → EventListing.client-B2NNt4y1.mjs} +2 -2
  234. package/dist/client/{LeafletStaticMap-dQrhlUe3.mjs → LeafletStaticMap-BhwFo16w.mjs} +1 -1
  235. package/dist/client/{MagicLinkForm-u6Dul4j5.mjs → MagicLinkForm-BWnB7cMR.mjs} +2 -2
  236. package/dist/client/{StepIndicator-nWqineJ2.mjs → StepIndicator-TzRiQ0BY.mjs} +2 -2
  237. package/dist/client/{accordion-CSJcTUyH.mjs → accordion-BPy-AJ4_.mjs} +1 -1
  238. package/dist/client/{bookingForm-C73wOuVa.mjs → bookingForm-BL4PGZds.mjs} +7 -7
  239. package/dist/client/bookings.mjs +382 -204
  240. package/dist/client/{buttons-DfYyqt8C.mjs → buttons-EBjyslaX.mjs} +265 -152
  241. package/dist/client/{carousel-fMBb0JSc.mjs → carousel-C2b7Cn9-.mjs} +1 -1
  242. package/dist/client/{cart-BtaCwT3S.mjs → cart-BQcbXIVD.mjs} +3 -3
  243. package/dist/client/{checkout-DkTwZSnh.mjs → checkout-DEmpGRJu.mjs} +3 -3
  244. package/dist/client/client.mjs +5019 -1886
  245. package/dist/client/{colorStyles-Wyl6JujD.mjs → colorStyles-jZS6KfkP.mjs} +1 -1
  246. package/dist/client/{colorTokenParts-dT8MISgJ.mjs → colorTokenParts-CMugwvX_.mjs} +3 -1
  247. package/dist/client/{courseRegistration-DnLmapJu.mjs → courseRegistration-BqRZPmsq.mjs} +56 -21
  248. package/dist/client/{eventCalendar-BvLOc9KY.mjs → eventCalendar-B8N_tSl5.mjs} +29 -21
  249. package/dist/client/{eventCombined-kShgJPQr.mjs → eventCombined-Gjn6gtq7.mjs} +2 -2
  250. package/dist/client/{eventDetails-C5NTM0Vo.mjs → eventDetails-M-VCxA-r.mjs} +4 -4
  251. package/dist/client/{eventListing-B82ZdKP6.mjs → eventListing-DR19hqYi.mjs} +2 -2
  252. package/dist/client/{eventRegistration-qJVFqBWo.mjs → eventRegistration-BR02a0k3.mjs} +8 -8
  253. package/dist/client/{form-BvAcKiuu.mjs → form-LY2xIbwg.mjs} +2 -2
  254. package/dist/client/{headerSection-NvAiEHAg.mjs → headerSection-CYwwXJfh.mjs} +3 -3
  255. package/dist/client/hooks.mjs +3335 -2210
  256. package/dist/client/{locationMap-D0j52xfI.mjs → locationMap-DWnBXrFq.mjs} +3 -3
  257. package/dist/client/{media-BCW_g2cQ.mjs → media-DHtSxS5V.mjs} +61 -56
  258. package/dist/client/{newsletterForm-B8_i93qH.mjs → newsletterForm-D9s-fQ2P.mjs} +3 -3
  259. package/dist/client/{pricing-DIYnyHOk.mjs → pricing-DDq80oYc.mjs} +1 -1
  260. package/dist/client/{productDetail-w0eAHkuQ.mjs → productDetail-B0SbWd45.mjs} +3 -3
  261. package/dist/client/{productList-Vsguq5Xt.mjs → productList-PwYlZn0y.mjs} +3 -3
  262. package/dist/client/{propsDecoder-CD2pJ1WB.mjs → propsDecoder-BRWBiH7i.mjs} +225 -68
  263. package/dist/client/rendering/client.mjs +2266 -1267
  264. package/dist/client/rendering/islands.mjs +20 -20
  265. package/dist/client/rendering.mjs +5364 -1979
  266. package/dist/client/{shop-Dgxs-Q8F.mjs → shop-CMwZPYME.mjs} +8 -8
  267. package/dist/client/{shop-commerce-DJAhsTaT.mjs → shop-commerce-BuxsFate.mjs} +6 -6
  268. package/dist/client/{shop-commerce-store-CfCXltXW.mjs → shop-commerce-store-boYlEJ91.mjs} +1 -1
  269. package/dist/client/{shopShared-CmDcPXUt.mjs → shopShared-D2naaOes.mjs} +3 -3
  270. package/dist/client/{useDiscountCodeUi-CirrT2bM.mjs → useDiscountCodeUi-D9RHpVoj.mjs} +1 -1
  271. package/dist/client/{useEventFilters-CNZxlCcO.mjs → useEventFilters-igGiK1re.mjs} +6 -6
  272. package/dist/client/{usePolling-Baks_iBI.mjs → usePolling-CI7MbsFB.mjs} +2 -2
  273. package/dist/preview-next/before-render.mjs +218 -1
  274. package/dist/preview-next/client/runtime.mjs +4 -4
  275. package/dist/preview-next/middleware.mjs +218 -1
  276. package/dist/{previewAuthStore-CfquDtTh.mjs → previewAuthStore-a_cBD28m.mjs} +218 -1
  277. package/dist/{sdk-runtime-BfNiFeNJ.mjs → sdk-runtime-MBzD-GmP.mjs} +2 -2
  278. package/dist/{separator-BhAR_Xmf.mjs → separator-5ahRBC85.mjs} +1 -1
  279. package/dist/server/components.mjs +5218 -2529
  280. package/dist/server/config-validation.mjs +3112 -2210
  281. package/dist/server/config.mjs +3112 -2211
  282. package/dist/server/data.mjs +3758 -2277
  283. package/dist/server/index.mjs +224 -4
  284. package/dist/server/navigation.mjs +9 -3
  285. package/dist/server/next/middleware.mjs +1 -1
  286. package/dist/server/next.mjs +6468 -2749
  287. package/dist/server/page-converter.mjs +3524 -2635
  288. package/dist/server/prebuild.mjs +1 -1
  289. package/dist/server/rendering/server.mjs +5392 -2488
  290. package/dist/server/rendering.mjs +6241 -2851
  291. package/dist/server/routing.mjs +3414 -1826
  292. package/dist/server/server.mjs +4174 -2354
  293. package/dist/server/theme-bridge.mjs +9579 -8132
  294. package/dist/server/theme.mjs +313 -154
  295. package/dist/styles/index.css +1223 -31
  296. package/package.json +1 -1
  297. package/dist/_dts/preview-next/src/client/preview/typographySelectionInput.d.ts +0 -16
  298. package/dist/_dts/theme-core/src/palette/historicalThemePalette.d.ts +0 -44
  299. package/dist/_dts/theme-core/src/palette/legacyRuntimeProjection.d.ts +0 -55
  300. package/dist/_dts/theme-core/src/palette/legacySelection.d.ts +0 -45
  301. package/dist/_dts/theme-core/src/palette/paletteCompatibilityTransition.d.ts +0 -232
  302. package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +0 -234
@@ -2,10 +2,10 @@ import React from 'react';
2
2
  import type { ApiClient } from '../../../../api/src/request';
3
3
  import type { Theme } from '../../../../blocks/src/index';
4
4
  import { type ButtonPersonalityId } from '../../../../theme-core/src/buttons/index';
5
- import { type CuratedPaletteId, type PaletteOverrides, type RuntimePaletteState } from '../../../../theme-core/src/palette/index';
6
- import { type FooterSelectionContext, type FooterLookId, type HeaderLayoutId, type HeaderLookId, type HeaderSelectionContext, type HeaderStyleId, type TypographyPresetId } from '../../../../theme-core/src/site-styles/index';
5
+ import { type FooterSelectionContext, type FooterLookId, type HeaderLayoutId, type HeaderLookId, type HeaderSelectionContext, type HeaderStyleId } from '../../../../theme-core/src/site-styles/index';
7
6
  import { type VisibleSiteStyleAccess } from './siteStyleAccess';
8
7
  import type { PreviewDesignRow } from './sidebarTabPreference';
8
+ import type { PreviewRuntimePaletteState } from './styleConfiguratorSnapshot';
9
9
  export type StyleConfiguratorProps = Readonly<{
10
10
  siteId: string;
11
11
  apiClient: ApiClient;
@@ -19,14 +19,9 @@ export type StyleConfiguratorProps = Readonly<{
19
19
  selectionVersion?: number | null;
20
20
  selectionUpdatedAt?: string | null;
21
21
  buttonPersonalityId: ButtonPersonalityId | null;
22
- runtimePaletteState?: RuntimePaletteState | null;
23
- paletteVariantId?: CuratedPaletteId | null;
24
- paletteOverrides?: PaletteOverrides | null;
22
+ runtimePaletteState: PreviewRuntimePaletteState;
25
23
  headerLayoutId?: HeaderLayoutId | null;
26
24
  headerStyleId?: HeaderStyleId | null;
27
- typographyPresetId?: TypographyPresetId | null;
28
- typographyBodyFontOverride?: string | null;
29
- typographyHeadingFontOverride?: string | null;
30
25
  headerLookId?: HeaderLookId | null;
31
26
  footerLookId?: FooterLookId | null;
32
27
  }> & Readonly<Record<string, unknown>>;
@@ -37,6 +32,7 @@ export type StyleConfiguratorProps = Readonly<{
37
32
  id: number;
38
33
  row: PreviewDesignRow;
39
34
  }> | null;
35
+ onFocusedSurfaceChange?: (focused: boolean) => void;
40
36
  siteStyleAccess: VisibleSiteStyleAccess;
41
37
  }>;
42
- export declare function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVersion, selectionUpdatedAt, initialSelections, headerSelectionContext, footerSelectionContext, expandedRowRequest, siteStyleAccess, }: StyleConfiguratorProps): React.JSX.Element;
38
+ export declare function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVersion, selectionUpdatedAt, initialSelections, headerSelectionContext, footerSelectionContext, expandedRowRequest, onFocusedSurfaceChange, siteStyleAccess, }: StyleConfiguratorProps): React.JSX.Element;
@@ -12,8 +12,8 @@
12
12
  */
13
13
  import type { ButtonPersonalityId } from '../../../../theme-core/src/buttons/index';
14
14
  import type { Theme } from '../../../../blocks/src/index';
15
- import type { CuratedPaletteId, PaletteColors, PaletteMode, RuntimePaletteState, SitePaletteId, SitePaletteVersion } from '../../../../theme-core/src/palette/index';
16
- import { type FooterLookId, type HeaderLayoutId, type HeaderLookId, type HeaderStyleId, type TypographyPresetId } from '../../../../theme-core/src/site-styles/index';
15
+ import type { PaletteColors, PaletteMode, PaletteSelection, PaletteEditorState, KnownCuratedPaletteValueKey, ResolvedPaletteSelection, RuntimePaletteState, SitePalette, SitePaletteId, SitePaletteVersion, PaletteLibraryAuthority } from '../../../../theme-core/src/palette/index';
16
+ import { type FooterLookId, type HeaderLayoutId, type HeaderLookId, type HeaderStyleId } from '../../../../theme-core/src/site-styles/index';
17
17
  import type { SelectionFallbackWarning, SiteStyleId } from '../../../../theme-core/src/site-styles/previewCompiler';
18
18
  import { type EditorStagedSessionCapabilities, type EditorStagedSessionState } from '../../../../content-editor/src/editorTransactionState';
19
19
  export type StyleConfiguratorSaveStatus = Readonly<{
@@ -25,6 +25,7 @@ export type StyleConfiguratorSaveStatus = Readonly<{
25
25
  }> | Readonly<{
26
26
  kind: 'failed';
27
27
  message: string;
28
+ failureKind: 'retryable' | 'stale';
28
29
  }>;
29
30
  export type StyleConfiguratorExpandedRow = 'style' | 'header-layout' | 'header-style' | 'footer-layout' | 'footer' | 'buttons' | 'typography' | 'palette' | 'colours' | null;
30
31
  /**
@@ -37,20 +38,6 @@ export type StyleConfiguratorNotice = never;
37
38
  type ThemeTypography = Theme['typography'];
38
39
  type BodyTypography = ThemeTypography['body'];
39
40
  type HeadingTypography = ThemeTypography['headings']['default'];
40
- export type TypographySelectionSnapshot = Readonly<{
41
- kind: 'preset';
42
- presetId: TypographyPresetId | null;
43
- bodyFontOverride: string | null;
44
- headingFontOverride: string | null;
45
- }> | Readonly<{
46
- kind: 'custom';
47
- typography: ThemeTypography;
48
- }>;
49
- export type TypographySelectionFlatFields = Readonly<{
50
- typographyPresetId: TypographyPresetId | null;
51
- typographyBodyFontOverride: string | null;
52
- typographyHeadingFontOverride: string | null;
53
- }>;
54
41
  export type TypographyDraftPatch = Readonly<{
55
42
  kind: 'heading';
56
43
  patch: Partial<HeadingTypography>;
@@ -61,24 +48,41 @@ export type TypographyDraftPatch = Readonly<{
61
48
  kind: 'scale';
62
49
  scale: ThemeTypography['scale'];
63
50
  }>;
51
+ /** Runtime authority is deliberately separate from the editable core state. */
64
52
  export type PaletteSelectionSnapshot = Readonly<{
65
- kind: 'migrated-curated';
66
- paletteId: CuratedPaletteId;
53
+ kind: 'available';
54
+ editor: PaletteEditorState;
55
+ }> | Readonly<{
56
+ kind: 'invalid';
57
+ reason: PaletteAuthorityError;
58
+ }>;
59
+ export type PaletteAuthorityError = Extract<RuntimePaletteState, {
60
+ kind: 'invalid';
61
+ }>['reason'] | 'runtime-curated-palette-missing' | 'runtime-curated-palette-mismatch' | 'invalid-active-site-palette-version';
62
+ /** Read-only UI projection. It intentionally owns no palette transitions. */
63
+ export type PalettePreviewProjection = Readonly<{
64
+ kind: 'curated';
65
+ valueKey: KnownCuratedPaletteValueKey;
66
+ colors: PaletteColors;
67
+ mode: PaletteMode;
68
+ }> | Readonly<{
69
+ kind: 'curated-fork';
70
+ sourceValueKey: KnownCuratedPaletteValueKey;
67
71
  colors: PaletteColors;
68
72
  mode: PaletteMode;
69
73
  }> | Readonly<{
70
- kind: 'migrated-site';
74
+ kind: 'site';
71
75
  paletteId: SitePaletteId;
72
76
  colors: PaletteColors;
73
77
  mode: PaletteMode;
74
78
  version: SitePaletteVersion;
75
79
  }> | Readonly<{
76
- kind: 'legacy-unmigrated';
80
+ kind: 'new-site';
77
81
  colors: PaletteColors;
78
82
  mode: PaletteMode;
79
83
  }> | Readonly<{
80
84
  kind: 'invalid';
81
- reason: string;
85
+ reason: PaletteAuthorityError;
82
86
  }>;
83
87
  export type SelectionSnapshot = Readonly<{
84
88
  siteStyleId: SiteStyleId;
@@ -90,7 +94,7 @@ export type SelectionSnapshot = Readonly<{
90
94
  footerLookId: FooterLookId | null;
91
95
  buttonPersonalityId: ButtonPersonalityId;
92
96
  palette: PaletteSelectionSnapshot;
93
- typographySelection: TypographySelectionSnapshot;
97
+ typography: ThemeTypography;
94
98
  }>;
95
99
  type StyleConfiguratorTargetKey = 'design:site-style';
96
100
  export type StyleConfiguratorHistoryEntry = Readonly<{
@@ -100,6 +104,22 @@ export type StyleConfiguratorHistoryEntry = Readonly<{
100
104
  next: SelectionSnapshot;
101
105
  }>;
102
106
  export type StyleConfiguratorStagedSession = EditorStagedSessionState<SelectionSnapshot, StyleConfiguratorHistoryEntry, StyleConfiguratorTargetKey>;
107
+ /**
108
+ * A collaborator selected a different active palette while this editor had an
109
+ * unsaved edit to the formerly active site palette. The base remains the
110
+ * server authority; the complete local draft remains available for an
111
+ * intentional retry or cancel.
112
+ */
113
+ export type StyleConfiguratorStalePaletteConflict = Readonly<{
114
+ kind: 'active-palette-changed';
115
+ originalPaletteId: SitePaletteId;
116
+ localDraft: Readonly<{
117
+ paletteId: SitePaletteId;
118
+ expectedVersion: SitePaletteVersion;
119
+ colors: PaletteColors;
120
+ mode: PaletteMode;
121
+ }>;
122
+ }>;
103
123
  export type StyleConfiguratorState = Readonly<{
104
124
  /**
105
125
  * Last persisted server snapshot. Updated on apply-success (and on
@@ -114,10 +134,7 @@ export type StyleConfiguratorState = Readonly<{
114
134
  saveStatus: StyleConfiguratorSaveStatus;
115
135
  warnings: ReadonlyArray<SelectionFallbackWarning>;
116
136
  notices: ReadonlyArray<StyleConfiguratorNotice>;
117
- paletteDrafts: Readonly<Partial<Record<CuratedPaletteId, Readonly<{
118
- colors: PaletteColors;
119
- mode: PaletteMode;
120
- }>>>>;
137
+ stalePaletteConflict: StyleConfiguratorStalePaletteConflict | null;
121
138
  expandedRow: StyleConfiguratorExpandedRow;
122
139
  stagedSession: StyleConfiguratorStagedSession;
123
140
  }>;
@@ -144,33 +161,39 @@ export declare function previewButtonPersonality(state: StyleConfiguratorState,
144
161
  export declare function previewHeaderLayout(state: StyleConfiguratorState, headerLayoutId: HeaderLayoutId): StyleConfiguratorState;
145
162
  export declare function previewHeaderStyle(state: StyleConfiguratorState, headerStyleId: HeaderStyleId): StyleConfiguratorState;
146
163
  export declare function previewFooterLook(state: StyleConfiguratorState, footerLookId: FooterLookId | null): StyleConfiguratorState;
147
- export declare function previewTypographyPreset(state: StyleConfiguratorState, typographyPresetId: TypographyPresetId): StyleConfiguratorState;
148
- export declare function setCustomTypography(state: StyleConfiguratorState, typography: ThemeTypography): StyleConfiguratorState;
164
+ export declare function previewTypography(state: StyleConfiguratorState, typography: ThemeTypography): StyleConfiguratorState;
149
165
  export declare function applyTypographyDraftPatch(state: StyleConfiguratorState, currentTypography: ThemeTypography, patch: TypographyDraftPatch): StyleConfiguratorState;
150
166
  export declare function resetTypographyToSaved(state: StyleConfiguratorState): StyleConfiguratorState;
151
- export declare function previewCuratedPalette(state: StyleConfiguratorState, palette: Readonly<{
152
- paletteId: CuratedPaletteId;
167
+ export declare function previewCuratedPalette(state: StyleConfiguratorState, valueKey: KnownCuratedPaletteValueKey): StyleConfiguratorState;
168
+ export declare function previewSitePalette(state: StyleConfiguratorState, palette: Readonly<{
169
+ paletteId: SitePaletteId;
153
170
  colors: PaletteColors;
154
171
  mode: PaletteMode;
172
+ version: SitePaletteVersion;
155
173
  }>): StyleConfiguratorState;
174
+ /** Starts a manual palette from the active complete palette, never sparse overrides. */
175
+ export declare function createPalette(state: StyleConfiguratorState): StyleConfiguratorState;
156
176
  export declare function setPaletteColors(state: StyleConfiguratorState, colors: PaletteColors): StyleConfiguratorState;
157
177
  /**
158
178
  * Records the post-compile resolved selection + any fallback warnings.
159
179
  * Used after `compileSiteThemeFromSelections` runs against a new site style:
160
180
  * the resolver may have auto-picked a different personality if the user's
161
181
  * previous selection is not offered for the new style, or a different palette
162
- * if the persisted palette ID is no longer known.
182
+ * if the persisted palette value key is no longer known.
163
183
  *
164
184
  */
165
185
  export declare function applyResolvedSelections(state: StyleConfiguratorState, input: Readonly<{
166
- resolved: Pick<SelectionSnapshot, 'buttonPersonalityId' | 'headerLayoutId' | 'headerStyleId' | 'headerLookId'> & TypographySelectionFlatFields;
167
- typographySelection?: TypographySelectionSnapshot;
186
+ resolved: Pick<SelectionSnapshot, 'buttonPersonalityId' | 'headerLayoutId' | 'headerStyleId' | 'headerLookId' | 'typography'>;
168
187
  warnings: ReadonlyArray<SelectionFallbackWarning>;
169
188
  }>): StyleConfiguratorState;
170
189
  export declare function cancelPreview(state: StyleConfiguratorState): StyleConfiguratorState;
171
190
  export declare function markApplySaving(state: StyleConfiguratorState): StyleConfiguratorState;
172
191
  export declare function markApplySaved(state: StyleConfiguratorState, persisted: SelectionSnapshot): StyleConfiguratorState;
173
192
  export declare function markApplyFailed(state: StyleConfiguratorState, message: string, failureKind?: 'retryable' | 'stale'): StyleConfiguratorState;
193
+ /** Advances a stale site's CAS token only for the user's explicit retry. */
194
+ export declare function prepareStalePaletteRetry(state: StyleConfiguratorState, input?: Readonly<{
195
+ sitePalettes: readonly SitePalette[];
196
+ }>): StyleConfiguratorState;
174
197
  export declare function toggleRow(state: StyleConfiguratorState, row: StyleConfiguratorExpandedRow): StyleConfiguratorState;
175
198
  export declare function dismissWarnings(state: StyleConfiguratorState): StyleConfiguratorState;
176
199
  export declare function dismissNotices(state: StyleConfiguratorState): StyleConfiguratorState;
@@ -180,16 +203,31 @@ export declare function dismissNotices(state: StyleConfiguratorState): StyleConf
180
203
  * changes the persisted selection out-of-band.
181
204
  */
182
205
  export declare function syncStyleConfiguratorState(state: StyleConfiguratorState, base: SelectionSnapshot): StyleConfiguratorState;
206
+ /** Reconciles typed palette-library authority with the editor's saved base. */
207
+ export declare function reconcilePaletteLibraryActive(state: StyleConfiguratorState, active: PaletteLibraryAuthority, sitePalettes: readonly SitePalette[]): StyleConfiguratorState;
208
+ /**
209
+ * A palette-library response only refreshes palette authority. Unlike a full
210
+ * server snapshot, it must never discard the user's staged site-style work.
211
+ * Site drafts keep their complete local colours/mode and rebase their expected
212
+ * version when the same palette was changed elsewhere.
213
+ */
214
+ export declare function rebasePaletteLibraryAuthority(state: StyleConfiguratorState, committedPalette: ResolvedPaletteSelection): StyleConfiguratorState;
183
215
  export declare function selectionSnapshotsEqual(a: SelectionSnapshot, b: SelectionSnapshot): boolean;
184
- export declare function typographySelectionSnapshotFromFlat(input: Readonly<{
185
- typographyPresetId?: TypographyPresetId | null;
186
- typographyBodyFontOverride?: string | null;
187
- typographyHeadingFontOverride?: string | null;
188
- theme?: Theme | null;
189
- }>): TypographySelectionSnapshot;
190
- export declare function typographySelectionFlatFields(selection: TypographySelectionSnapshot): TypographySelectionFlatFields;
191
- export declare function customTypographyForSelection(selection: TypographySelectionSnapshot): ThemeTypography | null;
192
- export declare function typographySelectionsEqual(a: TypographySelectionSnapshot, b: TypographySelectionSnapshot): boolean;
193
- export declare function paletteSelectionSnapshotFromRuntime(runtime: RuntimePaletteState | null | undefined): PaletteSelectionSnapshot;
216
+ type ModernRuntimePaletteState = Extract<RuntimePaletteState, Readonly<{
217
+ authority: 'curated';
218
+ }>> | Extract<RuntimePaletteState, Readonly<{
219
+ authority: 'site';
220
+ }>> | Extract<RuntimePaletteState, Readonly<{
221
+ kind: 'invalid';
222
+ }>>;
223
+ export declare function paletteSelectionSnapshotFromRuntime(runtime: ModernRuntimePaletteState): PaletteSelectionSnapshot;
224
+ export declare function paletteSelectionSnapshotFromComplete(input: Readonly<{
225
+ selection: PaletteSelection;
226
+ colors: PaletteColors;
227
+ mode: PaletteMode;
228
+ version?: SitePaletteVersion;
229
+ }>): PaletteSelectionSnapshot;
194
230
  export declare function paletteSelectionSnapshotsEqual(left: PaletteSelectionSnapshot, right: PaletteSelectionSnapshot): boolean;
231
+ export declare function palettePreviewProjection(palette: PaletteSelectionSnapshot): PalettePreviewProjection;
232
+ export declare function committedPaletteForSnapshot(palette: PaletteSelectionSnapshot): ResolvedPaletteSelection | null;
195
233
  export {};
@@ -0,0 +1,61 @@
1
+ import React from 'react';
2
+ import type { ApiClient } from '../../../../api/src/request';
3
+ import type { Theme } from '../../../../blocks/src/index';
4
+ import { type GoogleFontRecord, type SiteFontRecord, type TypographyFontSlot } from './typographyFontCatalog';
5
+ type ThemeTypography = Theme['typography'];
6
+ type BodyTypography = ThemeTypography['body'];
7
+ type HeadingTypography = ThemeTypography['headings']['default'];
8
+ type CatalogResource<T> = Readonly<{
9
+ kind: 'idle';
10
+ value: T;
11
+ }> | Readonly<{
12
+ kind: 'loading';
13
+ value: T;
14
+ }> | Readonly<{
15
+ kind: 'loaded';
16
+ value: T;
17
+ }> | Readonly<{
18
+ kind: 'failed';
19
+ value: T;
20
+ message: string;
21
+ }>;
22
+ export type TypographyFontCatalogState = Readonly<{
23
+ google: CatalogResource<readonly GoogleFontRecord[]>;
24
+ site: CatalogResource<readonly SiteFontRecord[]>;
25
+ }>;
26
+ export type TypographyEditorSurface = Readonly<{
27
+ kind: 'overview';
28
+ }> | Readonly<{
29
+ kind: 'font-picker';
30
+ slot: TypographyFontSlot;
31
+ }> | Readonly<{
32
+ kind: 'advanced';
33
+ }>;
34
+ export declare const typographyOverviewSurface: TypographyEditorSurface;
35
+ export declare function useTypographyFontCatalog(apiClient: ApiClient, siteId: string, enabled: boolean): TypographyFontCatalogState;
36
+ export declare function TypographyOverviewContent({ typography, catalog, onChooseFont, onOpenAdvanced, onReset, disabled, }: Readonly<{
37
+ typography: ThemeTypography;
38
+ catalog: TypographyFontCatalogState;
39
+ onChooseFont: (slot: TypographyFontSlot) => void;
40
+ onOpenAdvanced: () => void;
41
+ onReset: () => void;
42
+ disabled?: boolean;
43
+ }>): React.JSX.Element;
44
+ export declare function TypographyFontPickerTakeover({ slot, value, catalog, onBack, onChange, disabled, }: Readonly<{
45
+ slot: TypographyFontSlot;
46
+ value: string;
47
+ catalog: TypographyFontCatalogState;
48
+ onBack: () => void;
49
+ onChange: (family: string) => void;
50
+ disabled?: boolean;
51
+ }>): React.JSX.Element;
52
+ export declare function TypographyAdvancedTakeover({ typography, catalog, onBack, onHeadingChange, onBodyChange, onScaleChange, disabled, }: Readonly<{
53
+ typography: ThemeTypography;
54
+ catalog: TypographyFontCatalogState;
55
+ onBack: () => void;
56
+ onHeadingChange: (patch: Partial<HeadingTypography>) => void;
57
+ onBodyChange: (patch: Partial<BodyTypography>) => void;
58
+ onScaleChange: (scale: ThemeTypography['scale']) => void;
59
+ disabled?: boolean;
60
+ }>): React.JSX.Element;
61
+ export {};
@@ -0,0 +1,4 @@
1
+ export declare const PREVIEW_DESIGN_SAVE_ERROR_MESSAGE = "We couldn\u2019t save that change just now. Please try again in a minute or two.";
2
+ export declare const PREVIEW_DESIGN_REFRESH_ERROR_MESSAGE = "We couldn\u2019t refresh the latest design just now. Your changes are still here. Please try again in a minute or two.";
3
+ export declare const PREVIEW_DESIGN_LOAD_ERROR_MESSAGE = "We couldn\u2019t load those design options just now. Please try again in a minute or two.";
4
+ export declare function reportPreviewDesignError(operation: string, error: unknown): void;
@@ -1,14 +1,14 @@
1
1
  import type { Theme } from '../../../../blocks/src/index';
2
2
  import type { ButtonPersonalityId } from '../../../../theme-core/src/buttons/index';
3
- import { type CuratedPaletteId } from '../../../../theme-core/src/palette/index';
4
- import type { FooterLookId, FooterSelectionContext, HeaderLayoutId, HeaderLookId, HeaderSelectionContext, HeaderStyleId, TypographyPresetId } from '../../../../theme-core/src/site-styles/index';
5
- import { type CuratedSiteStyle, type CompiledTypographySelection, type SelectionFallbackWarning, type SiteStyleId } from '../../../../theme-core/src/site-styles/previewCompiler';
6
- import type { PaletteSelectionSnapshot, TypographySelectionSnapshot } from './StyleConfigurator.state';
3
+ import { type CompleteResolvedPaletteSelection } from '../../../../theme-core/src/palette/index';
4
+ import type { FooterLookId, FooterSelectionContext, HeaderLayoutId, HeaderLookId, HeaderSelectionContext, HeaderStyleId } from '../../../../theme-core/src/site-styles/index';
5
+ import { compileSiteThemeFromSelections, type CuratedSiteStyle, type SelectionFallbackWarning, type SiteStyleId } from '../../../../theme-core/src/site-styles/previewCompiler';
6
+ import type { PaletteSelectionSnapshot } from './StyleConfigurator.state';
7
7
  export type SiteStylePreviewSelection = Readonly<{
8
8
  siteStyleId: SiteStyleId;
9
9
  buttonPersonalityId: ButtonPersonalityId;
10
10
  palette: PaletteSelectionSnapshot;
11
- typographySelection?: TypographySelectionSnapshot;
11
+ typography: Theme['typography'];
12
12
  headerLayoutId?: HeaderLayoutId | null;
13
13
  headerStyleId?: HeaderStyleId | null;
14
14
  headerLookId: HeaderLookId | null;
@@ -20,18 +20,7 @@ export type SiteStyleChromePreviewSelection = Readonly<{
20
20
  }>;
21
21
  export type SiteStylePreviewPlan = Readonly<{
22
22
  themeOverlay: Theme;
23
- resolvedSelections: Readonly<{
24
- buttonPersonalityId: ButtonPersonalityId;
25
- paletteVariantId: CuratedPaletteId;
26
- typographySelection: CompiledTypographySelection['resolvedSelection'];
27
- typographyPresetId: TypographyPresetId | null;
28
- typographyBodyFontOverride: string | null;
29
- typographyHeadingFontOverride: string | null;
30
- headerLayoutId: HeaderLayoutId;
31
- headerStyleId: HeaderStyleId;
32
- headerLookId: HeaderLookId | null;
33
- footerLookId: FooterLookId;
34
- }>;
23
+ resolvedSelections: ReturnType<typeof compileSiteThemeFromSelections>['resolvedSelections'];
35
24
  chromeSelection: SiteStyleChromePreviewSelection;
36
25
  warnings: ReadonlyArray<SelectionFallbackWarning>;
37
26
  }>;
@@ -43,3 +32,4 @@ export type SiteStylePreviewPlanInput = Readonly<{
43
32
  footerSelectionContext?: Partial<FooterSelectionContext>;
44
33
  }>;
45
34
  export declare function planSiteStylePreviewChange(input: SiteStylePreviewPlanInput): SiteStylePreviewPlan;
35
+ export declare function resolvedPaletteForPreview(palette: PaletteSelectionSnapshot, siteStyle: CuratedSiteStyle): CompleteResolvedPaletteSelection;
@@ -1,28 +1,35 @@
1
1
  import type { Theme } from '../../../../blocks/src/index';
2
2
  import type { ButtonPersonalityId } from '../../../../theme-core/src/buttons/index';
3
- import { type CuratedPaletteId, type PaletteOverrides, type RuntimePaletteState } from '../../../../theme-core/src/palette/index';
4
- import type { FooterLookId, FooterSelectionContext, HeaderLayoutId, HeaderLookId, HeaderSelectionContext, HeaderStyleId, TypographyPresetId } from '../../../../theme-core/src/site-styles/index';
3
+ import { type RuntimePaletteState } from '../../../../theme-core/src/palette/index';
4
+ import type { FooterLookId, FooterSelectionContext, HeaderLayoutId, HeaderLookId, HeaderSelectionContext, HeaderStyleId } from '../../../../theme-core/src/site-styles/index';
5
5
  import type { SelectionSnapshot } from './StyleConfigurator.state';
6
+ export type PreviewRuntimePaletteState = Extract<RuntimePaletteState, Readonly<{
7
+ authority: 'curated';
8
+ }>> | Extract<RuntimePaletteState, Readonly<{
9
+ authority: 'site';
10
+ }>> | Extract<RuntimePaletteState, Readonly<{
11
+ kind: 'invalid';
12
+ }>>;
6
13
  type StyleConfiguratorSnapshotInput = Readonly<{
7
14
  theme?: Theme | null;
8
15
  initialSelections: Readonly<{
9
16
  selectionVersion?: number | null;
10
17
  selectionUpdatedAt?: string | null;
11
18
  buttonPersonalityId: ButtonPersonalityId | null;
12
- runtimePaletteState?: RuntimePaletteState | null;
13
- paletteVariantId?: CuratedPaletteId | null;
14
- paletteOverrides?: PaletteOverrides | null;
19
+ runtimePaletteState: PreviewRuntimePaletteState;
15
20
  headerLayoutId?: HeaderLayoutId | null;
16
21
  headerStyleId?: HeaderStyleId | null;
17
- typographyPresetId?: TypographyPresetId | null;
18
- typographyBodyFontOverride?: string | null;
19
- typographyHeadingFontOverride?: string | null;
20
22
  headerLookId?: HeaderLookId | null;
21
23
  footerLookId?: FooterLookId | null;
22
24
  }>;
23
25
  headerSelectionContext?: Partial<HeaderSelectionContext>;
24
26
  footerSelectionContext?: Partial<FooterSelectionContext>;
25
27
  }>;
28
+ /**
29
+ * Preview only accepts the modern, server-resolved palette runtime state. The
30
+ * old Theme-plus-overrides reconstruction belongs to migration tooling, never
31
+ * to a live editor where it could silently overwrite authoritative state.
32
+ */
26
33
  export declare function resolveStyleConfiguratorInitialSnapshot(input: Readonly<{
27
34
  theme?: Theme | null;
28
35
  initialSelections: StyleConfiguratorSnapshotInput['initialSelections'];
@@ -0,0 +1,57 @@
1
+ import type { APIEndpoints } from '../../../../api/src/index';
2
+ export type GoogleFontRecord = NonNullable<APIEndpoints['listFonts']['response']>[number];
3
+ export type SiteFontRecord = NonNullable<APIEndpoints['listSiteFonts']['response']>['fonts'][number];
4
+ export type TypographyFontCategory = 'all' | 'sans-serif' | 'serif' | 'display' | 'handwriting' | 'monospace';
5
+ export type TypographyFontSlot = 'body' | 'heading';
6
+ export type TypographyFontOption = Readonly<{
7
+ source: 'site';
8
+ family: string;
9
+ label: string;
10
+ category: Exclude<TypographyFontCategory, 'all'> | null;
11
+ siteFont: SiteFontRecord;
12
+ }> | Readonly<{
13
+ source: 'google';
14
+ family: string;
15
+ label: string;
16
+ category: Exclude<TypographyFontCategory, 'all'> | null;
17
+ googleFont: GoogleFontRecord;
18
+ }>;
19
+ export declare const TYPOGRAPHY_INITIAL_GOOGLE_FONT_COUNT = 24;
20
+ export declare const typographyFontCategories: readonly [{
21
+ readonly value: "all";
22
+ readonly label: "All";
23
+ }, {
24
+ readonly value: "sans-serif";
25
+ readonly label: "Sans";
26
+ }, {
27
+ readonly value: "serif";
28
+ readonly label: "Serif";
29
+ }, {
30
+ readonly value: "display";
31
+ readonly label: "Display";
32
+ }, {
33
+ readonly value: "handwriting";
34
+ readonly label: "Handwriting";
35
+ }, {
36
+ readonly value: "monospace";
37
+ readonly label: "Mono";
38
+ }];
39
+ export declare function buildTypographyFontCatalog(input: Readonly<{
40
+ googleFonts: readonly GoogleFontRecord[];
41
+ siteFonts: readonly SiteFontRecord[];
42
+ query: string;
43
+ category: TypographyFontCategory;
44
+ }>): Readonly<{
45
+ site: readonly TypographyFontOption[];
46
+ google: readonly TypographyFontOption[];
47
+ }>;
48
+ export declare function visibleTypographyFontOptions(input: Readonly<{
49
+ options: readonly TypographyFontOption[];
50
+ selectedFamily: string;
51
+ limit: number;
52
+ }>): readonly TypographyFontOption[];
53
+ export declare function fontOptionForFamily(family: string, catalog: Readonly<{
54
+ googleFonts: readonly GoogleFontRecord[];
55
+ siteFonts: readonly SiteFontRecord[];
56
+ }>): TypographyFontOption | null;
57
+ export declare function primaryFontFamily(cssFamily: string): string;
@@ -27,7 +27,7 @@ export declare function entryBaseSnapshotTargetForPull(input: Readonly<{
27
27
  * then remove canonical/owner-managed entry types before diffing or writing.
28
28
  */
29
29
  export declare function pullAllContentWithCanonicalEntryPolicy(client: ManagementClient, output: OutputContext): Promise<PulledContent>;
30
- export declare function createScopedPullContent(meta: PulledContent['meta'], overrides: Partial<Omit<PulledContent, 'meta'>>): PulledContent;
30
+ export declare function createScopedPullContent(meta: Omit<PulledContent['meta'], 'truncation'> & Partial<Pick<PulledContent['meta'], 'truncation'>>, overrides: Partial<Omit<PulledContent, 'meta'>>): PulledContent;
31
31
  /**
32
32
  * Determines whether the pull command should prompt for overwrite confirmation.
33
33
  * Scoped pulls (e.g., `pull entries blog-post`) only modify their target subdirectory,
@@ -1,12 +1,9 @@
1
1
  import type { OutputContext } from '../../../output';
2
2
  import type { Theme } from '../../../../contracts';
3
+ import type { ThemeUpsertUpdateInput } from '../../../../client/management/types';
3
4
  export type ThemePushClient = {
4
5
  theme: {
5
- upsert: (params: {
6
- theme: Theme;
7
- themeId?: string;
8
- selectionId?: string;
9
- }) => Promise<{
6
+ upsert: (params: ThemeUpsertUpdateInput) => Promise<{
10
7
  themeId: string;
11
8
  selectionId: string;
12
9
  savedAt: string;
@@ -33,7 +30,7 @@ export declare function pushThemeAndUpdateMeta(params: {
33
30
  client: ThemePushClient;
34
31
  contentDir: string;
35
32
  themeName: string;
36
- theme: Theme;
33
+ theme: ThemeUpsertUpdateInput['theme'];
37
34
  existingMeta?: ThemeMetaEntry;
38
35
  readThemesMeta: (contentDir: string) => Promise<ThemesMetaFile | null>;
39
36
  writeThemesMeta: (contentDir: string, data: ThemesMetaFile) => Promise<void>;
@@ -66,7 +63,7 @@ export declare function handleThemePushForAllScope(params: {
66
63
  themeSchema: {
67
64
  safeParse: (value: unknown) => {
68
65
  success: true;
69
- data?: unknown;
66
+ data: ThemeUpsertUpdateInput['theme'];
70
67
  } | {
71
68
  success: false;
72
69
  error: {
@@ -5,22 +5,29 @@
5
5
  */
6
6
  import { Command } from 'commander';
7
7
  import { type CuratedSiteStyle } from '../../../../theme-core/src/site-styles/index';
8
- import type { ThemeStyleSelectionApplyInput } from '../../client/management';
9
- export type StyleApplyOptions = Readonly<{
8
+ import type { ManagementClient, ThemeStyleSelectionApplyInput } from '../../client/management';
9
+ import { type SiteStyleSelectionApplyCommand } from '../../client/management';
10
+ import type { OutputContext } from '../output';
11
+ type StyleSelectionOptions = Readonly<{
10
12
  siteStyleId: string;
11
- baseSelectionVersion: string;
12
- selectionId?: string;
13
13
  buttonPersonalityId?: string;
14
- paletteVariantId?: string;
15
- paletteOverrides?: string;
16
- typographyPresetId?: string;
17
- typographyBodyFontOverride?: string;
18
- typographyHeadingFontOverride?: string;
14
+ paletteCommand?: string;
15
+ typography?: string;
19
16
  headerLookId?: string;
20
17
  headerLayoutId?: string;
21
18
  headerStyleId?: string;
22
19
  footerLookId?: string;
23
20
  }>;
21
+ export type StyleApplyOptions = StyleSelectionOptions & Readonly<{
22
+ baseSelectionVersion: string;
23
+ selectionId?: string;
24
+ }>;
25
+ export type StyleInitOptions = StyleSelectionOptions;
26
+ export type StyleInitCommandDeps = Readonly<{
27
+ upsertTheme: ManagementClient['theme']['upsert'];
28
+ info: OutputContext['info'];
29
+ success: OutputContext['success'];
30
+ }>;
24
31
  export type StyleCatalogListOptions = Readonly<{
25
32
  siteStyleId?: string;
26
33
  }>;
@@ -33,13 +40,20 @@ export type StyleCatalogListRow = Readonly<{
33
40
  name: string;
34
41
  palettes: readonly StyleCatalogChoice[];
35
42
  buttonPersonalities: readonly StyleCatalogChoice[];
36
- typographyPresets: readonly StyleCatalogChoice[];
43
+ typography: Readonly<{
44
+ body: string;
45
+ heading: string;
46
+ }>;
37
47
  headerLayouts: readonly StyleCatalogChoice[];
38
48
  headerStyles: readonly StyleCatalogChoice[];
39
49
  headerLooks: readonly StyleCatalogChoice[];
40
50
  footerLooks: readonly StyleCatalogChoice[];
41
51
  }>;
42
52
  export declare function buildStyleSelectionApplyInputFromOptions(options: StyleApplyOptions): ThemeStyleSelectionApplyInput;
53
+ /** Builds the complete first-theme command without reading current selection state. */
54
+ export declare function buildStyleSelectionInitializeCommandFromOptions(options: StyleInitOptions): SiteStyleSelectionApplyCommand;
43
55
  export declare function buildStyleCatalogListRows(styles?: readonly CuratedSiteStyle[], options?: StyleCatalogListOptions): readonly StyleCatalogListRow[];
44
56
  export declare function formatStyleCatalogListRow(row: StyleCatalogListRow): string[];
57
+ export declare function executeStyleInitWithDeps(deps: StyleInitCommandDeps, options: StyleInitOptions): Promise<void>;
45
58
  export declare const styleCommand: Command;
59
+ export {};
@@ -62,6 +62,7 @@ export interface LocalNavigationMenu {
62
62
  name: string;
63
63
  isPrimary?: boolean;
64
64
  isFooter?: boolean;
65
+ footerRole?: 'main' | 'legal-policy' | null;
65
66
  items: LocalNavigationItem[];
66
67
  }
67
68
  export interface LocalNavigation {
@@ -1,5 +1,5 @@
1
1
  import { type Result, type SiteId } from '../../../../core/src/index';
2
- import type { ManagementBlock, ManagementClient, ManagementEntry, ManagementNavigationMenu, ManagementPage, NavigationItemInput } from '../../client/management/types';
2
+ import type { ManagementBlock, ManagementClient, ManagementNavigationMenu, ManagementPage, NavigationItemInput, UpsertedManagementEntry } from '../../client/management/types';
3
3
  import type { EnvTarget } from '../helpers';
4
4
  import { type CliCommandCompileBatchSuccessWithReports, type CliCommandValidationCompileError } from './commandRuntime';
5
5
  import { type EntryCommandReportSubject, type EntrySiteCommand, type EntrySiteCommandType } from './entryCommands';
@@ -73,8 +73,8 @@ export declare function executeOneOffNavigationCommand<TResult>(input: Readonly<
73
73
  client: Pick<ManagementClient, 'navigation'>;
74
74
  apply: (command: NavigationSiteCommand, client: Pick<ManagementClient, 'navigation'>) => Promise<TResult>;
75
75
  }>): Promise<TResult>;
76
- export declare function applyOneOffEntryCommand(command: EntrySiteCommand, client: Pick<ManagementClient, 'entries'>): Promise<ManagementEntry | void>;
77
- export declare function applyOneOffEntryCommandReturningEntry(command: EntrySiteCommand, client: Pick<ManagementClient, 'entries'>): Promise<ManagementEntry>;
76
+ export declare function applyOneOffEntryCommand(command: EntrySiteCommand, client: Pick<ManagementClient, 'entries'>): Promise<UpsertedManagementEntry | void>;
77
+ export declare function applyOneOffEntryCommandReturningEntry(command: EntrySiteCommand, client: Pick<ManagementClient, 'entries'>): Promise<UpsertedManagementEntry>;
78
78
  export declare function applyOneOffPageCommand(command: PageSiteCommand, client: Pick<ManagementClient, 'pages' | 'blocks'>): Promise<ManagementPage | ManagementBlock | void>;
79
79
  export declare function applyOneOffPageCommandReturningPage(command: PageSiteCommand, client: Pick<ManagementClient, 'pages' | 'blocks'>): Promise<ManagementPage>;
80
80
  export declare function applyOneOffPageCommandReturningBlock(command: PageSiteCommand, client: Pick<ManagementClient, 'pages' | 'blocks'>): Promise<ManagementBlock>;
@@ -13,6 +13,7 @@
13
13
  *
14
14
  * No path rewriting in content data is needed since paths are relative!
15
15
  */
16
+ import { type StoragePathParseError } from '../../../../media-core/src/index';
16
17
  /**
17
18
  * Extract all unique storagePath values from content data.
18
19
  * Recursively walks through objects and arrays to find all media references.
@@ -30,7 +31,20 @@ export declare function extractMediaIdentifiers(data: unknown): Set<string>;
30
31
  * @param siteId - The site ID context for relative paths
31
32
  * @param bucket - Storage bucket name (default: "media")
32
33
  */
33
- export declare function buildStorageUrl(supabaseUrl: string, storagePath: string, siteId: string, bucket?: string): string;
34
+ export type MediaStorageUrlBuildError = Readonly<{
35
+ tag: 'invalid_storage_path';
36
+ siteId: string;
37
+ storagePath: string;
38
+ cause: StoragePathParseError;
39
+ }>;
40
+ export type MediaStorageUrlBuildResult = Readonly<{
41
+ ok: true;
42
+ value: string;
43
+ }> | Readonly<{
44
+ ok: false;
45
+ error: MediaStorageUrlBuildError;
46
+ }>;
47
+ export declare function buildStorageUrl(supabaseUrl: string, storagePath: string, siteId: string, bucket?: string): MediaStorageUrlBuildResult;
34
48
  /**
35
49
  * Check if a file path is an image that can be transformed by Supabase.
36
50
  * @param path - The file path or storage path
@@ -48,7 +62,7 @@ export declare function isTransformableImage(path: string): boolean;
48
62
  export declare function buildImageTransformUrl(supabaseUrl: string, storagePath: string, siteId: string, options?: {
49
63
  width?: number;
50
64
  quality?: number;
51
- }): string;
65
+ }): MediaStorageUrlBuildResult;
52
66
  /**
53
67
  * Download a file from a public Supabase storage URL.
54
68
  * Returns the file data as a Buffer, or null if download fails after retries.