@riverbankcms/sdk 0.130.0 → 0.130.2

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 (244) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/README.md +1 -1
  3. package/dist/{PreviewEditorSidebar-DiEpbOdw.mjs → PreviewEditorSidebar-BY-1QdE2.mjs} +18 -15
  4. package/dist/{PreviewEditorUI-C6MvxnIa.mjs → PreviewEditorUI-BS34jI9_.mjs} +3 -3
  5. package/dist/{PreviewQueryProvider-C2rnoPz6.mjs → PreviewQueryProvider-BD0kOjtI.mjs} +1 -1
  6. package/dist/{SdkPreviewModeRuntime-DRXA_m5L.mjs → SdkPreviewModeRuntime-B1pWnhu-.mjs} +48 -21
  7. package/dist/{SiteChromeCustomizeContext-BTHdv5_-.mjs → SiteChromeCustomizeContext-BhUG_72i.mjs} +6180 -5076
  8. package/dist/_dts/ai/src/contracts/proposals.d.ts +309 -32
  9. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +969 -112
  10. package/dist/_dts/api/src/accountApi.d.ts +213 -0
  11. package/dist/_dts/api/src/accountEndpointDefinitions.d.ts +30 -0
  12. package/dist/_dts/api/src/accountEndpoints.d.ts +254 -0
  13. package/dist/_dts/api/src/apiCallParams.d.ts +60 -0
  14. package/dist/_dts/api/src/bookingConfig.d.ts +10 -20
  15. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -5
  16. package/dist/_dts/api/src/bookingManagementEventEndpointTypes.d.ts +15 -0
  17. package/dist/_dts/api/src/bookingSettingsSections.d.ts +9 -0
  18. package/dist/_dts/api/src/bookingVerticals.d.ts +2 -2
  19. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +2 -0
  20. package/dist/_dts/api/src/endpoints.d.ts +1253 -1209
  21. package/dist/_dts/api/src/event-destination-policy.d.ts +1 -1
  22. package/dist/_dts/api/src/eventManagementContracts.d.ts +83 -7
  23. package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +26 -0
  24. package/dist/_dts/api/src/eventSeriesPresentationPreset.d.ts +12 -0
  25. package/dist/_dts/api/src/index.d.ts +11 -3
  26. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -0
  27. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -0
  28. package/dist/_dts/api/src/oauth.d.ts +8 -0
  29. package/dist/_dts/api/src/preview-auth.d.ts +26 -0
  30. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +5 -5
  31. package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +0 -1
  32. package/dist/_dts/api/src/sdk-event-upsert.d.ts +2 -0
  33. package/dist/_dts/api/src/sdkBlockUpsertContracts.d.ts +48 -0
  34. package/dist/_dts/api/src/sdkContracts.d.ts +5 -13
  35. package/dist/_dts/api/src/sdkEventCategoryContracts.d.ts +9 -0
  36. package/dist/_dts/api/src/sdkThemeWire.d.ts +40 -8
  37. package/dist/_dts/api/src/settings/permissions.d.ts +2 -2
  38. package/dist/_dts/api/src/siteApiKeyEndpointDefinitions.d.ts +66 -0
  39. package/dist/_dts/api/src/siteInfrastructure.d.ts +3 -3
  40. package/dist/_dts/api/src/siteOperations.d.ts +1 -1
  41. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +12 -4
  42. package/dist/_dts/api/src/types.d.ts +7 -59
  43. package/dist/_dts/block-form/src/client/index.d.ts +15 -23
  44. package/dist/_dts/block-form/src/index.d.ts +23 -22
  45. package/dist/_dts/blocks/src/primitives/layout/Grid.d.ts +18 -1
  46. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +1 -0
  47. package/dist/_dts/blocks/src/system/blocks/events/shared/filtering.d.ts +1 -1
  48. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +61 -0
  49. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +24 -22
  50. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +25 -1
  51. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +7 -30
  52. package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +0 -1
  53. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +4 -63
  54. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +1 -3
  55. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +13 -1
  56. package/dist/_dts/blocks/src/system/fields/gridLayout.d.ts +20 -0
  57. package/dist/_dts/blocks/src/system/node/fragments/classNameBinding.d.ts +6 -1
  58. package/dist/_dts/blocks/src/system/node/fragments/styledCard.d.ts +31 -0
  59. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +4 -0
  60. package/dist/_dts/blocks/src/system/runtime/api/types/courses.d.ts +0 -1
  61. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +0 -1
  62. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +4 -2
  63. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +24 -8
  64. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.server.d.ts +8 -0
  65. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.validationErrors.d.ts +17 -0
  66. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +1 -1
  67. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventScope.d.ts +1 -1
  68. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
  69. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +42 -0
  70. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +4 -1
  71. package/dist/_dts/blocks/src/system/runtime/shared/components/FeedbackMessage.d.ts +17 -1
  72. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -1
  73. package/dist/_dts/blocks/src/system/spacing.d.ts +1 -1
  74. package/dist/_dts/blocks/src/system/transforms/registry/_utils/boxStyleClassNames.d.ts +90 -0
  75. package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +4 -0
  76. package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +26 -0
  77. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +4 -37
  78. package/dist/_dts/content-editor/src/components/ContentFieldsForm.d.ts +2 -2
  79. package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +6 -6
  80. package/dist/_dts/content-model/src/content-types/builtins.d.ts +6 -6
  81. package/dist/_dts/core/src/branded.d.ts +4 -0
  82. package/dist/_dts/core/src/event-page-surface-subject.d.ts +25 -4
  83. package/dist/_dts/core/src/index.d.ts +3 -0
  84. package/dist/_dts/core/src/public-event-booking-availability.d.ts +8 -0
  85. package/dist/_dts/core/src/secret.d.ts +44 -0
  86. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +341 -0
  87. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +2 -1
  88. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +2 -2
  89. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +2 -2
  90. package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +1 -1
  91. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +1 -1
  92. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +1 -1
  93. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockValidationManifests.d.ts +1 -1
  94. package/dist/_dts/editor-blocks/src/block-editor/preparedManifest.d.ts +1 -1
  95. package/dist/_dts/editor-blocks/src/blockPayload.d.ts +1 -1
  96. package/dist/_dts/editor-blocks/src/index.d.ts +2 -2
  97. package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +2 -2
  98. package/dist/_dts/editor-blocks/src/widgets/button/ButtonField.d.ts +1 -1
  99. package/dist/_dts/editor-blocks/src/widgets/button/ButtonVariantField.d.ts +1 -1
  100. package/dist/_dts/editor-blocks/src/widgets/button/index.d.ts +1 -1
  101. package/dist/_dts/editor-blocks/src/widgets/content-type-select/ContentTypeSelectField.d.ts +1 -1
  102. package/dist/_dts/editor-blocks/src/widgets/entry-picker/EntryPickerField.d.ts +1 -1
  103. package/dist/_dts/editor-blocks/src/widgets/entry-picker/index.d.ts +1 -1
  104. package/dist/_dts/editor-blocks/src/widgets/icon-picker/IconPickerField.d.ts +1 -1
  105. package/dist/_dts/editor-blocks/src/widgets/inline-text/InlineTextField.d.ts +1 -1
  106. package/dist/_dts/editor-blocks/src/widgets/link/LinkField.d.ts +2 -2
  107. package/dist/_dts/editor-blocks/src/widgets/offerings-preview/OfferingsPreviewGroupOrderField.d.ts +1 -1
  108. package/dist/_dts/editor-blocks/src/widgets/reference/ReferenceField.d.ts +2 -2
  109. package/dist/_dts/editor-blocks/src/widgets/rich-text/RichTextField.d.ts +2 -2
  110. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/SiteOptionPickerField.d.ts +1 -1
  111. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/utils.d.ts +1 -1
  112. package/dist/_dts/preview-next/src/client/blocks/useBlockCustomizeControls.d.ts +1 -1
  113. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +1 -1
  114. package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +1 -1
  115. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -0
  116. package/dist/_dts/preview-next/src/client/preview/PreviewSiteFontStorageContext.d.ts +6 -0
  117. package/dist/_dts/preview-next/src/client/preview/siteFontPreview.d.ts +5 -0
  118. package/dist/_dts/preview-next/src/client/sdk/contentStorage.d.ts +10 -0
  119. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +1 -1
  120. package/dist/_dts/preview-next/src/index.d.ts +1 -0
  121. package/dist/_dts/preview-next/src/keepAlive.d.ts +3 -5
  122. package/dist/_dts/preview-next/src/refresh-contract.d.ts +1 -0
  123. package/dist/_dts/preview-next/src/route-contract.d.ts +7 -0
  124. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  125. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +61 -39
  126. package/dist/_dts/sdk/src/preview-next/keep-alive.d.ts +1 -1
  127. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +1 -1
  128. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
  129. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +9 -1
  130. package/dist/_dts/sdk/src/theme-bridge/types.d.ts +4 -2
  131. package/dist/_dts/sdk/src/version.d.ts +1 -1
  132. package/dist/_dts/theme-core/src/cards/core.d.ts +54 -10
  133. package/dist/_dts/theme-core/src/cards/decorations.d.ts +33 -0
  134. package/dist/_dts/theme-core/src/cards/generateDefaultCardSystem.d.ts +7 -2
  135. package/dist/_dts/theme-core/src/cards/index.d.ts +3 -0
  136. package/dist/_dts/theme-core/src/cards/openCardVariant.d.ts +24 -0
  137. package/dist/_dts/theme-core/src/cards/roles.d.ts +38 -0
  138. package/dist/_dts/theme-core/src/cards/siteStyleDefaults.d.ts +53 -8
  139. package/dist/_dts/theme-core/src/cards/types.d.ts +489 -21
  140. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  141. package/dist/_dts/theme-core/src/header/legacyHeaderVariant.d.ts +59 -0
  142. package/dist/_dts/theme-core/src/header/paintTargets.d.ts +2 -2
  143. package/dist/_dts/theme-core/src/header/scrollTreatment.d.ts +3 -2
  144. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +12 -135
  145. package/dist/_dts/theme-core/src/palette/utils/contrast.d.ts +1 -0
  146. package/dist/_dts/theme-core/src/palette/utils/opaqueSurfaceColor.d.ts +6 -0
  147. package/dist/_dts/theme-core/src/runtime/buildThemeRuntimeFromBridge.d.ts +1 -1
  148. package/dist/_dts/theme-core/src/schema.d.ts +301 -94
  149. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +84 -102
  150. package/dist/_dts/theme-core/src/site-styles/appearancePresetResolution.d.ts +12 -1
  151. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +9 -4
  152. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +0 -20
  153. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +84 -102
  154. package/dist/_dts/theme-core/src/site-styles/cardRoleVocabulary.d.ts +48 -0
  155. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +21 -385
  156. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +10 -18
  157. package/dist/_dts/theme-core/src/site-styles/headerLayoutTypes.d.ts +2 -4
  158. package/dist/_dts/theme-core/src/site-styles/headerOpeningForeground.d.ts +2 -9
  159. package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +0 -2
  160. package/dist/_dts/theme-core/src/site-styles/index.d.ts +5 -0
  161. package/dist/_dts/theme-core/src/site-styles/pageDesignAppearanceAvailability.d.ts +3 -0
  162. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorCapabilities.d.ts +22 -0
  163. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +9 -8
  164. package/dist/_dts/theme-core/src/site-styles/pageDesignIntentEquality.d.ts +3 -0
  165. package/dist/_dts/theme-core/src/site-styles/previewRuntimeCapabilities.d.ts +19 -0
  166. package/dist/_dts/theme-core/src/site-styles/runtimeBackgroundResolution.d.ts +9 -0
  167. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +1 -62
  168. package/dist/_dts/theme-core/src/site-styles/sourceCatalogs.d.ts +13 -12
  169. package/dist/_dts/theme-core/src/site-styles/types.d.ts +50 -39
  170. package/dist/_dts/theme-core/src/siteChromePlanning.d.ts +9 -9
  171. package/dist/_dts/theme-core/src/status/generateStatusCss.d.ts +1 -0
  172. package/dist/_dts/theme-core/src/surfaces/index.d.ts +1 -0
  173. package/dist/_dts/theme-core/src/surfaces/resolveSurfaceForeground.d.ts +39 -0
  174. package/dist/_dts/ui/src/navigation-tabs.d.ts +3 -2
  175. package/dist/client/{CourseRegistrationWizard-Bvtz9G9g.mjs → CourseRegistrationWizard-DGW9F0SQ.mjs} +7 -7
  176. package/dist/client/{DiscountCodeDisclosure-Ur-Xx1U_.mjs → DiscountCodeDisclosure-BPZ-yfGI.mjs} +1 -1
  177. package/dist/client/{EventCombined.client-EhscD4U6.mjs → EventCombined.client-Cjt3kKYR.mjs} +4 -4
  178. package/dist/client/{EventListing.client-Bn26cFTY.mjs → EventListing.client-DY9dn6Fh.mjs} +2 -2
  179. package/dist/client/{FeedbackMessage-ByMrs3cr.mjs → FeedbackMessage-CtLvvS_d.mjs} +15 -3
  180. package/dist/client/{LeafletStaticMap-BUw9Ntzr.mjs → LeafletStaticMap--2c61XYn.mjs} +1 -1
  181. package/dist/client/{StepIndicator-BfbdiVQI.mjs → StepIndicator-CLjQhkDb.mjs} +3 -3
  182. package/dist/client/{accordion-CjIeof73.mjs → accordion-_boYwHHi.mjs} +1 -1
  183. package/dist/client/{bookingForm-DwEeovf_.mjs → bookingForm--AqEfyBX.mjs} +56 -39
  184. package/dist/client/bookings.mjs +393 -192
  185. package/dist/client/{carousel-BMrfgOba.mjs → carousel-CVI2dqZr.mjs} +2 -2
  186. package/dist/client/{carousel.client-CpwTUhIo.mjs → carousel.client-59G_WMr4.mjs} +1 -1
  187. package/dist/client/{cart-rXEdxTdb.mjs → cart-DR6IiPz9.mjs} +3 -3
  188. package/dist/client/{checkout-D3JlSzh3.mjs → checkout-CsrGAfQt.mjs} +3 -3
  189. package/dist/client/client.mjs +4524 -3512
  190. package/dist/client/{colorStyles-BWpj_h4C.mjs → colorStyles-CrxJrPjJ.mjs} +277 -1
  191. package/dist/client/{context-CJz1Vlsz.mjs → context-B83PiNzm.mjs} +6 -21
  192. package/dist/client/{courseRegistration-DO5XvMAA.mjs → courseRegistration-aNJVaLa3.mjs} +3 -3
  193. package/dist/client/{eventCalendar-DO6rTqCn.mjs → eventCalendar-OZ7h59VN.mjs} +6 -6
  194. package/dist/client/{eventCombined-bJ3i_ovU.mjs → eventCombined-BbJ6bFKz.mjs} +3 -3
  195. package/dist/client/{eventDetails-CCbrXE7o.mjs → eventDetails-BLyUBiCT.mjs} +3 -3
  196. package/dist/client/{eventListing-Bdlt9YTm.mjs → eventListing-DuP1yhBS.mjs} +3 -3
  197. package/dist/client/{eventRegistration-B02lt6iY.mjs → eventRegistration-BXyECPa-.mjs} +11 -12
  198. package/dist/client/{form-DrUBAAox.mjs → form-BA4t3kKU.mjs} +4 -4
  199. package/dist/client/{headerSection-MzqvHL6T.mjs → headerSection-CpNaJxhW.mjs} +2 -2
  200. package/dist/client/hooks.mjs +1967 -2059
  201. package/dist/client/{locationMap-DG8BxTBm.mjs → locationMap-3HGMCL7_.mjs} +3 -3
  202. package/dist/client/{media-CNE1Z-wb.mjs → media-BOHuueS5.mjs} +16 -4
  203. package/dist/client/{newsletterForm-BzO-Td3p.mjs → newsletterForm-C2s6Mw67.mjs} +4 -4
  204. package/dist/client/{pricing-NgK7ozkg.mjs → pricing-BiqIMgZk.mjs} +1 -1
  205. package/dist/client/{productDetail-CfQ7rhVK.mjs → productDetail-C9joWhdE.mjs} +3 -3
  206. package/dist/client/{productList-C23rOLUi.mjs → productList-CjzdU3pB.mjs} +3 -3
  207. package/dist/client/{propsDecoder-CAZdhwjs.mjs → propsDecoder-CBPGXEYX.mjs} +395 -402
  208. package/dist/client/rendering/client.mjs +2004 -2856
  209. package/dist/client/rendering/islands.mjs +20 -20
  210. package/dist/client/rendering.mjs +4605 -3496
  211. package/dist/client/{scrollToBlock-DSSqVQr1.mjs → scrollToBlock-DZ73aEX6.mjs} +1 -1
  212. package/dist/client/{shop-BMToKLK7.mjs → shop-CQRai7hj.mjs} +7 -7
  213. package/dist/client/{shop-commerce-DB4JRKmp.mjs → shop-commerce-hP9UboOx.mjs} +8 -8
  214. package/dist/client/{shop-commerce-store-BOqSIOuc.mjs → shop-commerce-store-DiD5a32e.mjs} +1 -1
  215. package/dist/client/{shopShared-B6SK9DZv.mjs → shopShared-DP8DXTkF.mjs} +5 -5
  216. package/dist/client/{useEventFilters-CULOa4nB.mjs → useEventFilters-pF_OJNQP.mjs} +137 -81
  217. package/dist/client/{usePolling-BGG_8-jl.mjs → usePolling-Cls91SD2.mjs} +2 -2
  218. package/dist/preview-next/before-render.mjs +192 -108
  219. package/dist/preview-next/client/runtime.mjs +4 -4
  220. package/dist/preview-next/keepAlive.mjs +7406 -29
  221. package/dist/preview-next/middleware.mjs +186 -107
  222. package/dist/{previewAuthStore-_GXFRg2W.mjs → previewAuthStore-CX1C_KJ4.mjs} +185 -107
  223. package/dist/{sdk-runtime-hhSOMShR.mjs → sdk-runtime-5CcPAI14.mjs} +2 -2
  224. package/dist/{separator-flRaFc14.mjs → separator-BXlYN_gr.mjs} +1 -1
  225. package/dist/server/components.mjs +6363 -4998
  226. package/dist/server/config-validation.mjs +1967 -2059
  227. package/dist/server/config.mjs +1967 -2059
  228. package/dist/server/data.mjs +1967 -2059
  229. package/dist/server/index.mjs +186 -108
  230. package/dist/server/next.mjs +6553 -5285
  231. package/dist/server/page-converter.mjs +1031 -1844
  232. package/dist/server/prebuild.mjs +1 -1
  233. package/dist/server/rendering/server.mjs +3352 -3006
  234. package/dist/server/rendering.mjs +6289 -4924
  235. package/dist/server/routing.mjs +1906 -1036
  236. package/dist/server/server.mjs +1976 -2165
  237. package/dist/server/theme-bridge.mjs +949 -670
  238. package/dist/server/theme.mjs +252 -51
  239. package/dist/styles/index.css +295 -334
  240. package/package.json +3 -2
  241. package/dist/_dts/block-form/src/client/blockDraftSaveability.d.ts +0 -1
  242. package/dist/_dts/block-form/src/widgets/index.d.ts +0 -20
  243. package/dist/_dts/blocks/src/system/runtime/api/requestBody.d.ts +0 -7
  244. package/dist/client/clsx-DgIEfj3H.mjs +0 -16
@@ -312,6 +312,25 @@ const nonShadeablePaletteRoleNames = /* @__PURE__ */ new Set([
312
312
  "warning",
313
313
  "destructive"
314
314
  ]);
315
+ /**
316
+ * Status role aliases the persisted palette does not carry itself.
317
+ *
318
+ * Generators reference `--tb-error` (the site-style-owned input error border)
319
+ * and `--tb-info` (`.alert-info`, `.status-info`, the field-note rule), but the
320
+ * palette schema only defines `destructive` and has no `info` role at all.
321
+ * Without these aliases those declarations name variables that are never
322
+ * defined and browsers drop them. The SDK bridge resolves the same pair via
323
+ * TOKEN_ALIASES, so both runtimes agree on what a status token means.
324
+ *
325
+ * Runs after the danger → destructive promotion above, so `destructive` is
326
+ * already the single source of truth for the error colour.
327
+ */
328
+ function statusAliasTokens(expanded) {
329
+ const aliases = {};
330
+ if (expanded.destructive) aliases.error = expanded.destructive;
331
+ if (expanded.accent) aliases.info = expanded.accent;
332
+ return aliases;
333
+ }
315
334
  function expandPalette(palette) {
316
335
  const base = colorsToMap(palette);
317
336
  const expanded = { ...base };
@@ -330,6 +349,7 @@ function expandPalette(palette) {
330
349
  }
331
350
  if (base.text) expanded.body = base.text;
332
351
  if (base.danger && !base.destructive) expanded.destructive = base.danger;
352
+ Object.assign(expanded, statusAliasTokens(expanded));
333
353
  const isDark = base.background ? isBackgroundDark(base.background) : false;
334
354
  expanded.mutedText = palette.meta?.mode === "dark" || isDark ? expanded["neutral-600"] ?? "#666" : expanded["neutral-500"] ?? "#888";
335
355
  for (const [token, hex] of Object.entries({ ...expanded })) {
@@ -3433,6 +3453,26 @@ function presetCategory(recipe) {
3433
3453
  //#region ../theme-core/src/cards/types.ts
3434
3454
  const cardVariantRoleValues = ["default", "alternative"];
3435
3455
  const boxlessCardVariantValue = "none";
3456
+ const openCardRoleValue = "open";
3457
+ /**
3458
+ * The roles a site style implements with an actual card variant. `none` is
3459
+ * deliberately absent: it is a role value only, never a variant.
3460
+ */
3461
+ const surfaceCardRoleValues = [...cardVariantRoleValues, openCardRoleValue];
3462
+ /**
3463
+ * The closed card-role vocabulary Looks and blocks address cards by — this is
3464
+ * `BoxStylesCardVariant` widened with `open`, not a parallel enum.
3465
+ *
3466
+ * - `none` — no site-style card surface; the block's own composition and
3467
+ * the author's own card fields govern the item. This is *not*
3468
+ * a promise of visible boxlessness: a block whose base class
3469
+ * draws a border still draws one. It says the Look is not
3470
+ * asking the site style for a card.
3471
+ * - `open` — boxless but marked (a rule or accent edge, no enclosing box)
3472
+ * - `default` — the site's quiet everyday card
3473
+ * - `alternative` — the statement card carrying the site's personality
3474
+ */
3475
+ const cardRoleValues = [...surfaceCardRoleValues, boxlessCardVariantValue];
3436
3476
  const cardSpacingSchema = z.enum([
3437
3477
  "none",
3438
3478
  "compact",
@@ -3441,6 +3481,17 @@ const cardSpacingSchema = z.enum([
3441
3481
  "comfortable",
3442
3482
  "spacious"
3443
3483
  ]);
3484
+ /** Per-axis padding, for boxless cards whose inline padding differs from block. */
3485
+ const cardSpacingAxesSchema = z.object({
3486
+ block: cardSpacingSchema,
3487
+ inline: cardSpacingSchema
3488
+ });
3489
+ /**
3490
+ * A card's content padding: one value for both axes, or one per axis. Two
3491
+ * fields would let a variant say both and leave the reader to guess, so this is
3492
+ * a union — the legacy `spacingAxes` key is lifted into it on parse.
3493
+ */
3494
+ const cardSpacingValueSchema = z.union([cardSpacingSchema, cardSpacingAxesSchema]);
3444
3495
  const gradientDirectionSchema = z.enum([
3445
3496
  "to-r",
3446
3497
  "to-l",
@@ -3452,7 +3503,26 @@ const gradientDirectionSchema = z.enum([
3452
3503
  "to-bl"
3453
3504
  ]);
3454
3505
  z.enum(cardVariantRoleValues);
3455
- const boxStylesCardVariantSchema = z.enum([...cardVariantRoleValues, boxlessCardVariantValue]);
3506
+ const surfaceCardRoleSchema = z.enum(surfaceCardRoleValues);
3507
+ const cardRoleSchema = z.enum(cardRoleValues);
3508
+ /**
3509
+ * Historical name for the role vocabulary as it reaches box styles. Widened to
3510
+ * the full `CardRole` set — old values keep parsing, `open` now parses too.
3511
+ */
3512
+ const boxStylesCardVariantSchema = cardRoleSchema;
3513
+ const PRIORITY_ROLE_INFERENCE = {
3514
+ 1: "default",
3515
+ 2: "alternative"
3516
+ };
3517
+ /**
3518
+ * Role inference for legacy card systems authored before variants carried a
3519
+ * `role`. Priority 1 is the everyday card, priority 2 the statement card —
3520
+ * which is how variants are surfaced today. `open` is never inferred: a site
3521
+ * style has to opt into it.
3522
+ */
3523
+ function inferCardVariantRoleFromPriority(priority) {
3524
+ return PRIORITY_ROLE_INFERENCE[priority] ?? null;
3525
+ }
3456
3526
  const cardBackgroundSchema = z.discriminatedUnion("type", [
3457
3527
  z.object({
3458
3528
  type: z.literal("solid"),
@@ -3478,17 +3548,19 @@ const cardCornerValueSchema = z.enum([
3478
3548
  "pill",
3479
3549
  "expressive"
3480
3550
  ]);
3551
+ const cardEdgeSchema = z.enum([
3552
+ "left",
3553
+ "top",
3554
+ "right",
3555
+ "bottom"
3556
+ ]);
3481
3557
  /**
3482
- * A single accented card edge (e.g. a left accent bar). When set, it replaces
3483
- * the full `border` so the card reads as edge-accented rather than outlined.
3558
+ * Legacy single accented card edge (e.g. a left accent bar). Persisted and
3559
+ * curated data may still carry it; it lifts into a one-element `decorations`
3560
+ * list at the parse boundary and has no representation after that.
3484
3561
  */
3485
3562
  const cardAccentEdgeSchema = z.object({
3486
- edge: z.enum([
3487
- "left",
3488
- "top",
3489
- "right",
3490
- "bottom"
3491
- ]),
3563
+ edge: cardEdgeSchema,
3492
3564
  colorToken: themeColorTokenSchema,
3493
3565
  width: z.enum([
3494
3566
  "thin",
@@ -3497,13 +3569,43 @@ const cardAccentEdgeSchema = z.object({
3497
3569
  "heavy"
3498
3570
  ])
3499
3571
  });
3572
+ /** `hairline` (1px) is the widening the boxless `open` role needs. */
3573
+ const cardEdgeRuleWidthSchema = z.enum([
3574
+ "hairline",
3575
+ "thin",
3576
+ "medium",
3577
+ "thick",
3578
+ "heavy"
3579
+ ]);
3580
+ const cardEdgeRuleLengthSchema = z.enum(["full", "short"]);
3581
+ const cardEdgeRuleAlignSchema = z.enum([
3582
+ "start",
3583
+ "center",
3584
+ "end"
3585
+ ]);
3586
+ /**
3587
+ * Decorations are edge rules today. The alias exists so the list can grow into
3588
+ * a discriminated union without every call site changing.
3589
+ */
3590
+ const cardDecorationSchema = z.object({
3591
+ edge: cardEdgeSchema,
3592
+ colorToken: themeColorTokenSchema,
3593
+ width: cardEdgeRuleWidthSchema,
3594
+ /** Defaults to `full`. */
3595
+ length: cardEdgeRuleLengthSchema.optional(),
3596
+ /** Where a `short` rule sits along its edge. Defaults to `start`. */
3597
+ align: cardEdgeRuleAlignSchema.optional(),
3598
+ /** Opacity applied to `colorToken`, 0–1. Scoped here, not on the token. */
3599
+ alpha: z.number().min(0).max(1).optional()
3600
+ });
3601
+ const cardDecorationsSchema = z.array(cardDecorationSchema).max(2);
3500
3602
  const cardCornerRadiiSchema = z.object({
3501
3603
  topLeft: cardCornerValueSchema.optional(),
3502
3604
  topRight: cardCornerValueSchema.optional(),
3503
3605
  bottomLeft: cardCornerValueSchema.optional(),
3504
3606
  bottomRight: cardCornerValueSchema.optional()
3505
3607
  });
3506
- const cardVariantSchema = z.object({
3608
+ const cardVariantInputSchema = z.object({
3507
3609
  id: z.string(),
3508
3610
  name: z.string().min(1).max(20),
3509
3611
  enabled: z.boolean(),
@@ -3512,8 +3614,10 @@ const cardVariantSchema = z.object({
3512
3614
  z.literal(2),
3513
3615
  z.literal(3)
3514
3616
  ]),
3617
+ role: surfaceCardRoleSchema.optional(),
3515
3618
  background: cardBackgroundSchema,
3516
- spacing: cardSpacingSchema,
3619
+ spacing: cardSpacingValueSchema,
3620
+ spacingAxes: cardSpacingAxesSchema.optional(),
3517
3621
  foregroundToken: themeColorTokenSchema.optional(),
3518
3622
  shadow: z.object({
3519
3623
  elevation: z.enum([
@@ -3537,9 +3641,91 @@ const cardVariantSchema = z.object({
3537
3641
  ]).optional(),
3538
3642
  cornerRadii: cardCornerRadiiSchema.optional(),
3539
3643
  border: cardBorderSchema.optional(),
3644
+ decorations: cardDecorationsSchema.optional(),
3540
3645
  accentEdge: cardAccentEdgeSchema.optional()
3541
3646
  });
3542
- const cardSystemSchema = z.object({ variants: z.array(cardVariantSchema).min(1).max(3) });
3647
+ /**
3648
+ * Lift a legacy `accentEdge` into the decoration list. The old emitter reset
3649
+ * `border: 0` implicitly whenever an accent edge was present; conversion drops
3650
+ * the border instead, so the output is unchanged and the data says so.
3651
+ */
3652
+ function normalizeLegacyAccentEdge(variant) {
3653
+ const { accentEdge, ...rest } = normalizeLegacySpacingAxes(variant);
3654
+ if (!accentEdge) return rest;
3655
+ const { border: _droppedByAccentEdgeReset, ...withoutBorder } = rest;
3656
+ return {
3657
+ ...withoutBorder,
3658
+ decorations: [{
3659
+ ...accentEdge,
3660
+ length: "full"
3661
+ }]
3662
+ };
3663
+ }
3664
+ /**
3665
+ * Lift a legacy `spacingAxes` into `spacing`. It always won over the flat value
3666
+ * when both were set, so the lift preserves the emitted padding exactly.
3667
+ */
3668
+ function normalizeLegacySpacingAxes(variant) {
3669
+ const { spacingAxes, ...rest } = variant;
3670
+ return spacingAxes ? {
3671
+ ...rest,
3672
+ spacing: spacingAxes
3673
+ } : variant;
3674
+ }
3675
+ function validateSingleDecorationSource(variant, ctx) {
3676
+ if (!variant.accentEdge || !variant.decorations) return;
3677
+ ctx.addIssue({
3678
+ code: "custom",
3679
+ path: ["decorations"],
3680
+ message: "A card variant carries either the legacy `accentEdge` or `decorations`, never both."
3681
+ });
3682
+ }
3683
+ const cardVariantSchema = cardVariantInputSchema.superRefine(validateSingleDecorationSource).transform(normalizeLegacyAccentEdge);
3684
+ /**
3685
+ * Fill in roles for legacy systems whose variants declare none. Inference is
3686
+ * collision-tolerant on purpose: first claimant wins and a later variant that
3687
+ * would infer a taken role simply gets no role. Legacy data is not obliged to
3688
+ * be well-formed, and a card system that fails to parse takes the whole theme
3689
+ * down with it.
3690
+ */
3691
+ function withInferredRoles(variants) {
3692
+ const claimed = new Set(variants.flatMap((variant) => variant.role ? [variant.role] : []));
3693
+ return variants.map((variant) => {
3694
+ if (variant.role) return variant;
3695
+ const inferred = inferCardVariantRoleFromPriority(variant.priority);
3696
+ if (!inferred || claimed.has(inferred)) return variant;
3697
+ claimed.add(inferred);
3698
+ return {
3699
+ ...variant,
3700
+ role: inferred
3701
+ };
3702
+ });
3703
+ }
3704
+ /**
3705
+ * Only *declared* roles are validated — a site style saying "these two
3706
+ * variants are both the default card" is an authoring error worth rejecting.
3707
+ */
3708
+ function validateUniqueDeclaredCardVariantRoles(system, ctx) {
3709
+ const declared = /* @__PURE__ */ new Set();
3710
+ system.variants.forEach((variant, index) => {
3711
+ const role = variant.role;
3712
+ if (!role) return;
3713
+ if (declared.has(role)) {
3714
+ ctx.addIssue({
3715
+ code: "custom",
3716
+ path: [
3717
+ "variants",
3718
+ index,
3719
+ "role"
3720
+ ],
3721
+ message: `Card role "${role}" is already implemented by another variant.`
3722
+ });
3723
+ return;
3724
+ }
3725
+ declared.add(role);
3726
+ });
3727
+ }
3728
+ const cardSystemSchema = z.object({ variants: z.array(cardVariantSchema).min(1).max(3) }).superRefine(validateUniqueDeclaredCardVariantRoles).transform((system) => ({ variants: withInferredRoles(system.variants) }));
3543
3729
  //#endregion
3544
3730
  //#region ../theme-core/src/accordions/types.ts
3545
3731
  /**
@@ -4352,6 +4538,58 @@ new Set(themeV2NormalEditorRawStyleFieldNames);
4352
4538
  [...themeV2RuntimeStyleFieldNames, ...themeV2BlockSpecificRawStyleFieldNames];
4353
4539
  const pageDesignEditorBackgroundOverrideOwner = "page-design-editor";
4354
4540
  const siteChromeBackgroundOverrideOwner = "site-chrome-editor";
4541
+ //#endregion
4542
+ //#region ../theme-core/src/header/legacyHeaderVariant.ts
4543
+ /**
4544
+ * The header variants the system actually renders.
4545
+ *
4546
+ * Each one has a layout row in the site-header block and a paint target in
4547
+ * `paintTargets.ts`. This is the canonical list: the block transform's variant
4548
+ * class allowlist and the AI theme generator's enum both derive from it, so
4549
+ * they cannot drift.
4550
+ */
4551
+ const headerVariantValues = [
4552
+ "classic",
4553
+ "centered",
4554
+ "floating"
4555
+ ];
4556
+ z.enum(headerVariantValues);
4557
+ /**
4558
+ * Header variant spellings that were once authorable but no longer name a
4559
+ * layout of their own, and the variant they read as now.
4560
+ *
4561
+ * `transparent` was an overlay header with no CSS of its own: everything it
4562
+ * did (transparent root background, overlay content flow) is what `floating`
4563
+ * already does, and it had zero persisted usage in production or locally when
4564
+ * it was retired. It survives here as a one-boundary alias so a theme authored
4565
+ * against the old vocabulary still parses.
4566
+ *
4567
+ * This matters because the theme schema is strict and has no per-field
4568
+ * `.catch()`: an out-of-enum variant fails `themeSchema.safeParse` for the
4569
+ * *whole* theme, which silently swaps the site's theme for
4570
+ * `modernMinimalTheme`. Aliasing here keeps that from happening.
4571
+ */
4572
+ const legacyHeaderVariants = { transparent: "floating" };
4573
+ const legacyHeaderVariantValues = Object.keys(legacyHeaderVariants);
4574
+ /**
4575
+ * The header variant boundary for themes that go through `themeSchema`:
4576
+ * canonical variants pass through, legacy spellings normalize to the variant
4577
+ * they meant, everything else fails the parse.
4578
+ *
4579
+ * Deliberately an enum plus a transform rather than a `z.preprocess`, so the
4580
+ * schema's *input* type stays an accurate union (the legacy spelling is still
4581
+ * accepted on the wire) instead of widening to `unknown`. `SdkThemeWire` in
4582
+ * `@riverbankcms/api` is `z.input<typeof themeSchema>`, so a widened input here
4583
+ * would leak straight into a public type.
4584
+ *
4585
+ * Not every read of a persisted theme goes through the schema:
4586
+ * `resolveRuntimeTheme` in
4587
+ * `apps/dashboard/src/server/services/sites/runtimeSiteResponse.ts` returns the
4588
+ * raw database JSON asserted as `Theme` with no parse, so a theme still
4589
+ * carrying a legacy spelling reaches the theme editor un-aliased. That gap
4590
+ * predates this alias and is harmless while persisted usage is zero.
4591
+ */
4592
+ const headerVariantWithLegacyAliasSchema = z.enum([...headerVariantValues, ...legacyHeaderVariantValues]).transform((value) => value in legacyHeaderVariants ? legacyHeaderVariants[value] : value);
4355
4593
  const BREAKPOINT_LG = 1024;
4356
4594
  const BREAKPOINT_XL = 1280;
4357
4595
  const BREAKPOINT_LG_DOWN = BREAKPOINT_LG - 1;
@@ -4668,14 +4906,7 @@ const cardStylesOverrideSchema = z.object({
4668
4906
  spacing: semanticSpacingSchema.nullable().optional(),
4669
4907
  raised: z.boolean().nullable().optional(),
4670
4908
  rounded: boxRoundedSchema.nullable().optional(),
4671
- treatment: z.enum([
4672
- "accent-quote",
4673
- "editorial-rule",
4674
- "soft-panel",
4675
- "editorial-serif-quote",
4676
- "editorial-open",
4677
- "color-blocked"
4678
- ]).nullable().optional(),
4909
+ role: cardRoleSchema.nullable().optional(),
4679
4910
  cardVariant: boxStylesCardVariantSchema.nullable().optional()
4680
4911
  });
4681
4912
  const blockStyleOverridesSchema = z.object({
@@ -4781,30 +5012,6 @@ const motion = z.object({
4781
5012
  ]).nullable()
4782
5013
  });
4783
5014
  z.object({ shape: corners });
4784
- z.object({
4785
- elevation: z.enum([
4786
- "none",
4787
- "low",
4788
- "medium",
4789
- "high"
4790
- ]),
4791
- border: z.enum([
4792
- "none",
4793
- "subtle",
4794
- "defined"
4795
- ]),
4796
- shape: corners,
4797
- headerStyle: z.enum([
4798
- "plain",
4799
- "accentBar",
4800
- "subtleBg"
4801
- ]).nullable(),
4802
- mediaTreatment: z.enum([
4803
- "square",
4804
- "rounded",
4805
- "bleed"
4806
- ]).nullable()
4807
- });
4808
5015
  const inputStyle = z.object({
4809
5016
  shape: corners,
4810
5017
  border: z.enum([
@@ -4819,12 +5026,6 @@ const inputStyle = z.object({
4819
5026
  ]),
4820
5027
  label: z.enum(["inside", "above"])
4821
5028
  });
4822
- const headerVariant = z.enum([
4823
- "classic",
4824
- "centered",
4825
- "transparent",
4826
- "floating"
4827
- ]);
4828
5029
  const headerPositioning = z.enum([
4829
5030
  "static",
4830
5031
  "sticky",
@@ -4968,7 +5169,7 @@ const headerBackgroundSchema = z.object({
4968
5169
  textColor: tokenOrCssColorValueSchema.nullable().optional()
4969
5170
  });
4970
5171
  const headerSchema = z.object({
4971
- variant: headerVariant,
5172
+ variant: headerVariantWithLegacyAliasSchema,
4972
5173
  positioning: headerPositioning,
4973
5174
  shrinkOnScroll: z.boolean(),
4974
5175
  maxWidth: headerMaxWidth,