@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
@@ -2888,7 +2888,7 @@
2888
2888
  overflow-anchor: none;
2889
2889
  }
2890
2890
 
2891
- /* Base padding for horizontal variants (classic, transparent) */
2891
+ /* Base padding for horizontal variants (classic) */
2892
2892
  :where(.theme-scope) .rb-header-layout {
2893
2893
  padding-top: 1rem;
2894
2894
  padding-bottom: 1rem;
@@ -3439,6 +3439,127 @@
3439
3439
  margin-inline: 0;
3440
3440
  }
3441
3441
 
3442
+ /* The panel paints its own opaque surface, so it also has to break the button
3443
+ * colour contract it inherits. An enclosing section that sits on a brand band
3444
+ * publishes `--rb-action-*` variables resolved against *that* band — on Anna's
3445
+ * therapy page a ghost primary: transparent background, white label. Those
3446
+ * variables inherit, so without this reset a Continue button inside the light
3447
+ * form panel renders white-on-white and only appears on hover.
3448
+ *
3449
+ * Resetting to `initial` sends each button back to the generated fallback in
3450
+ * its own rule (`var(--rb-action-…, rgb(var(--tb-primary)))`), which is the
3451
+ * theme's standard button resolved against a normal surface — correct here,
3452
+ * because this panel *is* a normal surface.
3453
+ *
3454
+ * Mirrors `contextualButtonSurfaceResetStyles()` in theme-core/buttons; the
3455
+ * pairing is pinned by registration-surface-action-reset.test.ts. */
3456
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-reg-surface {
3457
+ --rb-action-primary-base-background-color: initial;
3458
+ --rb-action-primary-base-background-image: initial;
3459
+ --rb-action-primary-base-color: initial;
3460
+ --rb-action-primary-hover-background-color: initial;
3461
+ --rb-action-primary-hover-background-image: initial;
3462
+ --rb-action-primary-hover-color: initial;
3463
+ --rb-action-primary-focus-background-color: initial;
3464
+ --rb-action-primary-focus-background-image: initial;
3465
+ --rb-action-primary-focus-color: initial;
3466
+ --rb-action-primary-active-background-color: initial;
3467
+ --rb-action-primary-active-background-image: initial;
3468
+ --rb-action-primary-active-color: initial;
3469
+ --rb-action-primary-disabled-background-color: initial;
3470
+ --rb-action-primary-disabled-background-image: initial;
3471
+ --rb-action-primary-disabled-color: initial;
3472
+ --rb-action-primary-base-outline: initial;
3473
+ --rb-action-primary-base-outline-offset: initial;
3474
+ --rb-action-primary-focus-outline: initial;
3475
+ --rb-action-primary-focus-outline-offset: initial;
3476
+ --rb-action-primary-focus-box-shadow: initial;
3477
+
3478
+ --rb-action-secondary-base-background-color: initial;
3479
+ --rb-action-secondary-base-background-image: initial;
3480
+ --rb-action-secondary-base-color: initial;
3481
+ --rb-action-secondary-hover-background-color: initial;
3482
+ --rb-action-secondary-hover-background-image: initial;
3483
+ --rb-action-secondary-hover-color: initial;
3484
+ --rb-action-secondary-focus-background-color: initial;
3485
+ --rb-action-secondary-focus-background-image: initial;
3486
+ --rb-action-secondary-focus-color: initial;
3487
+ --rb-action-secondary-active-background-color: initial;
3488
+ --rb-action-secondary-active-background-image: initial;
3489
+ --rb-action-secondary-active-color: initial;
3490
+ --rb-action-secondary-disabled-background-color: initial;
3491
+ --rb-action-secondary-disabled-background-image: initial;
3492
+ --rb-action-secondary-disabled-color: initial;
3493
+ --rb-action-secondary-base-outline: initial;
3494
+ --rb-action-secondary-base-outline-offset: initial;
3495
+ --rb-action-secondary-focus-outline: initial;
3496
+ --rb-action-secondary-focus-outline-offset: initial;
3497
+ --rb-action-secondary-focus-box-shadow: initial;
3498
+
3499
+ --rb-action-outline-base-background-color: initial;
3500
+ --rb-action-outline-base-background-image: initial;
3501
+ --rb-action-outline-base-color: initial;
3502
+ --rb-action-outline-hover-background-color: initial;
3503
+ --rb-action-outline-hover-background-image: initial;
3504
+ --rb-action-outline-hover-color: initial;
3505
+ --rb-action-outline-focus-background-color: initial;
3506
+ --rb-action-outline-focus-background-image: initial;
3507
+ --rb-action-outline-focus-color: initial;
3508
+ --rb-action-outline-active-background-color: initial;
3509
+ --rb-action-outline-active-background-image: initial;
3510
+ --rb-action-outline-active-color: initial;
3511
+ --rb-action-outline-disabled-background-color: initial;
3512
+ --rb-action-outline-disabled-background-image: initial;
3513
+ --rb-action-outline-disabled-color: initial;
3514
+ --rb-action-outline-base-outline: initial;
3515
+ --rb-action-outline-base-outline-offset: initial;
3516
+ --rb-action-outline-focus-outline: initial;
3517
+ --rb-action-outline-focus-outline-offset: initial;
3518
+ --rb-action-outline-focus-box-shadow: initial;
3519
+
3520
+ --rb-action-ghost-base-background-color: initial;
3521
+ --rb-action-ghost-base-background-image: initial;
3522
+ --rb-action-ghost-base-color: initial;
3523
+ --rb-action-ghost-hover-background-color: initial;
3524
+ --rb-action-ghost-hover-background-image: initial;
3525
+ --rb-action-ghost-hover-color: initial;
3526
+ --rb-action-ghost-focus-background-color: initial;
3527
+ --rb-action-ghost-focus-background-image: initial;
3528
+ --rb-action-ghost-focus-color: initial;
3529
+ --rb-action-ghost-active-background-color: initial;
3530
+ --rb-action-ghost-active-background-image: initial;
3531
+ --rb-action-ghost-active-color: initial;
3532
+ --rb-action-ghost-disabled-background-color: initial;
3533
+ --rb-action-ghost-disabled-background-image: initial;
3534
+ --rb-action-ghost-disabled-color: initial;
3535
+ --rb-action-ghost-base-outline: initial;
3536
+ --rb-action-ghost-base-outline-offset: initial;
3537
+ --rb-action-ghost-focus-outline: initial;
3538
+ --rb-action-ghost-focus-outline-offset: initial;
3539
+ --rb-action-ghost-focus-box-shadow: initial;
3540
+
3541
+ --rb-action-accent-base-background-color: initial;
3542
+ --rb-action-accent-base-background-image: initial;
3543
+ --rb-action-accent-base-color: initial;
3544
+ --rb-action-accent-hover-background-color: initial;
3545
+ --rb-action-accent-hover-background-image: initial;
3546
+ --rb-action-accent-hover-color: initial;
3547
+ --rb-action-accent-focus-background-color: initial;
3548
+ --rb-action-accent-focus-background-image: initial;
3549
+ --rb-action-accent-focus-color: initial;
3550
+ --rb-action-accent-active-background-color: initial;
3551
+ --rb-action-accent-active-background-image: initial;
3552
+ --rb-action-accent-active-color: initial;
3553
+ --rb-action-accent-disabled-background-color: initial;
3554
+ --rb-action-accent-disabled-background-image: initial;
3555
+ --rb-action-accent-disabled-color: initial;
3556
+ --rb-action-accent-base-outline: initial;
3557
+ --rb-action-accent-base-outline-offset: initial;
3558
+ --rb-action-accent-focus-outline: initial;
3559
+ --rb-action-accent-focus-outline-offset: initial;
3560
+ --rb-action-accent-focus-box-shadow: initial;
3561
+ }
3562
+
3442
3563
  /* Selectable option card */
3443
3564
  :where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-option-card {
3444
3565
  position: relative;
@@ -9087,13 +9208,6 @@
9087
9208
  border-radius: var(--rb-block-radius);
9088
9209
  }
9089
9210
 
9090
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonial-card.rb-card-treatment-accent-quote {
9091
- border: 0;
9092
- border-left: 5px solid rgb(var(--tb-secondary));
9093
- border-radius: 0 calc(var(--rb-block-radius) * 3) 0 0;
9094
- color: rgb(var(--tb-primaryForeground));
9095
- }
9096
-
9097
9211
  :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonial-quote {
9098
9212
  display: var(--rb-testimonial-quote-display, block);
9099
9213
  font-family: var(--rb-testimonial-quote-font, inherit);
@@ -9104,54 +9218,6 @@
9104
9218
  color: var(--rb-testimonial-quote-color, rgb(var(--tb-primary)));
9105
9219
  }
9106
9220
 
9107
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-accent-quote .rb-testimonial-quote {
9108
- color: rgb(var(--tb-secondary));
9109
- font-size: calc(var(--rb-testimonial-quote-size) * 1.25);
9110
- opacity: 1;
9111
- }
9112
-
9113
- /* Open editorial testimonial card: boxless, with a hairline rule before the
9114
- * attribution, an accent ring on the avatar, and comfortable prose. The quote
9115
- * mark itself is owned by the site-style quote treatment (see the
9116
- * --rb-testimonial-quote-* vars), not by these rules.
9117
- *
9118
- * `editorial-open` is the current non-carded look; `editorial-serif-quote` is
9119
- * retained for content saved before the decomposition. */
9120
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonial-card.rb-card-treatment-editorial-open,
9121
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonial-card.rb-card-treatment-editorial-serif-quote {
9122
- background: transparent;
9123
- border: 0;
9124
- border-radius: 0;
9125
- padding: 0.25rem clamp(0.5rem, 1.5vw, 1.5rem);
9126
- }
9127
-
9128
- /* styledCard always renders an inner white rb-bg-surface fill layer; a boxless
9129
- * card must clear it so the section band shows through (otherwise: white box). */
9130
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-open > .rb-bg-surface,
9131
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-serif-quote > .rb-bg-surface {
9132
- background: transparent;
9133
- }
9134
-
9135
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-open .rb-prose,
9136
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-serif-quote .rb-prose {
9137
- font-size: 1.0625rem;
9138
- line-height: 1.7;
9139
- }
9140
-
9141
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-open .rb-testimonial-attribution,
9142
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-serif-quote .rb-testimonial-attribution {
9143
- margin-top: 1.25rem;
9144
- padding-top: 1.25rem;
9145
- border-top: 1px solid rgba(var(--tb-border), 0.75);
9146
- }
9147
-
9148
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-open .rb-testimonial-avatar,
9149
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-serif-quote .rb-testimonial-avatar {
9150
- box-shadow:
9151
- 0 0 0 2px rgb(var(--tb-surface)),
9152
- 0 0 0 4px rgba(var(--tb-primary), 0.3);
9153
- }
9154
-
9155
9221
 
9156
9222
  /* Split grid: title column + cards. On desktop the title takes one quarter and
9157
9223
  * the cards fill the remaining three quarters (so title + 3 cards each read as
@@ -11605,282 +11671,6 @@
11605
11671
  }
11606
11672
 
11607
11673
 
11608
- /* =============================================================================
11609
- * Shared: Card treatments
11610
- *
11611
- * Visual treatments referenced from `_cardStyles.treatment` (see
11612
- * cardStylesOverrideSchema). Class names are emitted by the boxStyles
11613
- * transform in @riverbankcms/blocks.
11614
- *
11615
- * Also contains feature-card media/padding behaviour shared by all looks:
11616
- * - card images bleed to the card edges (flush photo tops)
11617
- * - card-level padding replaces the content stack's fallback padding so the
11618
- * two never stack up
11619
- * ============================================================================= */
11620
-
11621
- /* --- Feature card media + padding behaviour (all looks) -------------------- */
11622
-
11623
- /*
11624
- * When a look gives the card real padding (rb-container-pad-*), the image
11625
- * bleeds to the card edges and the inner content stack drops its fallback
11626
- * padding so insets don't double up.
11627
- */
11628
- :where(.theme-scope) .rb-feature-card[class*="rb-container-pad-"]:not(.rb-container-pad-none) > .rb-feature-card-media-frame {
11629
- width: calc(100% + 2 * var(--rb-card-pad, 0rem));
11630
- max-width: none;
11631
- margin: calc(-1 * var(--rb-card-pad, 0rem)) calc(-1 * var(--rb-card-pad, 0rem)) 0;
11632
- }
11633
-
11634
- :where(.theme-scope) .rb-feature-card[class*="rb-container-pad-"]:not(.rb-container-pad-none) > .rb-feature-card-media-frame + .rb-feature-card-content {
11635
- margin-top: 1.4rem;
11636
- }
11637
-
11638
- :where(.theme-scope) .rb-feature-card[class*="rb-container-pad-"]:not(.rb-container-pad-none) > .rb-feature-card-content {
11639
- padding: 0;
11640
- }
11641
-
11642
- /* --- Soft panel ------------------------------------------------------------ */
11643
-
11644
- :where(.theme-scope) .rb-card-treatment-soft-panel {
11645
- transition: transform 250ms ease, box-shadow 250ms ease;
11646
- }
11647
-
11648
- @media (prefers-reduced-motion: no-preference) {
11649
- :where(.theme-scope) .rb-card-treatment-soft-panel:hover {
11650
- transform: translateY(-3px);
11651
- box-shadow: 0 0.875rem 1.875rem rgba(var(--tb-shadow, 0 0 0), 0.1);
11652
- }
11653
- }
11654
-
11655
- :where(.theme-scope) .rb-card-treatment-soft-panel .cta-row .button-ghost {
11656
- padding-inline: 0;
11657
- }
11658
-
11659
- /* --- Editorial rule --------------------------------------------------------- */
11660
-
11661
- /*
11662
- * Boxless open column: no background, no border box, a short brand rule
11663
- * sitting on a full-width hairline at the top of the column.
11664
- */
11665
- :where(.theme-scope) .rb-card-treatment-editorial-rule {
11666
- margin-top: 1rem;
11667
- border-top: 1px solid
11668
- color-mix(in oklab, rgb(var(--tb-border, 229 231 235)), transparent 25%);
11669
- }
11670
-
11671
- :where(.theme-scope) .rb-card-treatment-editorial-rule > .rb-bg-surface {
11672
- background: transparent;
11673
- }
11674
-
11675
- :where(.theme-scope) .rb-card-treatment-editorial-rule::before {
11676
- content: "";
11677
- position: absolute;
11678
- top: 0;
11679
- left: 0;
11680
- width: 2.75rem;
11681
- height: 2px;
11682
- background: rgb(var(--tb-primary, 0 0 0));
11683
- }
11684
-
11685
- :where(.theme-scope) .rb-card-treatment-editorial-rule > .rb-feature-card-media-frame {
11686
- margin-top: 1.6rem;
11687
- border-radius: calc(var(--rb-block-radius, 0.75rem) * 0.5);
11688
- }
11689
-
11690
- :where(.theme-scope) .rb-feature-card > .rb-bg-surface,
11691
- :where(.theme-scope) .rb-feature-card > .rb-feature-card-media-frame {
11692
- border-start-start-radius: inherit;
11693
- border-start-end-radius: inherit;
11694
- }
11695
-
11696
- /* --- Editorial diptych + pathways ----------------------------------------- */
11697
-
11698
- :where(.theme-scope) .rb-feature-cards-heading--editorial {
11699
- margin-inline: 0;
11700
- text-align: left;
11701
- }
11702
-
11703
- :where(.theme-scope) .rb-feature-cards-eyebrow {
11704
- margin: 0;
11705
- color: rgb(var(--tb-accent));
11706
- font-size: 0.72rem;
11707
- font-weight: 600;
11708
- letter-spacing: 0.14em;
11709
- text-transform: uppercase;
11710
- }
11711
-
11712
- :where(.theme-scope) .rb-feature-cards-grid--editorial-diptych {
11713
- grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
11714
- align-items: stretch;
11715
- }
11716
-
11717
- :where(.theme-scope) .rb-feature-cards-grid--editorial-pathways {
11718
- grid-template-columns: repeat(2, minmax(0, 1fr));
11719
- align-items: start;
11720
- }
11721
-
11722
- :where(.theme-scope) .rb-feature-cards-grid:is(
11723
- .rb-feature-cards-grid--editorial-diptych,
11724
- .rb-feature-cards-grid--editorial-pathways
11725
- ) .rb-feature-card {
11726
- border: 0;
11727
- box-shadow: none;
11728
- height: auto;
11729
- min-width: 0;
11730
- }
11731
-
11732
- :where(.theme-scope) .rb-feature-cards-grid:is(
11733
- .rb-feature-cards-grid--editorial-diptych,
11734
- .rb-feature-cards-grid--editorial-pathways
11735
- ) .rb-feature-card[data-surface-role="open"] > .rb-bg-surface {
11736
- background: transparent;
11737
- }
11738
-
11739
- :where(.theme-scope) .rb-feature-cards-grid:is(
11740
- .rb-feature-cards-grid--editorial-diptych,
11741
- .rb-feature-cards-grid--editorial-pathways
11742
- ) .rb-feature-card[data-surface-role="open"] > .rb-feature-card-content {
11743
- padding-inline: 0;
11744
- }
11745
-
11746
- :where(.theme-scope) .rb-feature-cards-grid--editorial-pathways .rb-feature-card > .rb-bg-surface {
11747
- background: transparent;
11748
- }
11749
-
11750
- :where(.theme-scope) .rb-feature-cards-grid--editorial-pathways .rb-feature-card > .rb-feature-card-content {
11751
- padding-inline: 0;
11752
- }
11753
-
11754
- :where(.theme-scope) .rb-feature-cards-grid--editorial-diptych .rb-feature-card[data-surface-role="panel"] {
11755
- color: rgb(var(--tb-onPrimary));
11756
- --rb-surface-text-color: rgb(var(--tb-onPrimary));
11757
- --rb-surface-heading-color: rgb(var(--tb-onPrimary));
11758
- --rb-surface-link-color: rgb(var(--tb-onPrimary));
11759
- --rb-surface-supporting-color: color-mix(in oklab, rgb(var(--tb-onPrimary)), transparent 18%);
11760
- }
11761
-
11762
- :where(.theme-scope) .rb-feature-cards-grid--editorial-diptych .rb-feature-card[data-surface-role="panel"] > .rb-bg-surface {
11763
- background: rgb(var(--tb-primary));
11764
- border-radius: inherit;
11765
- }
11766
-
11767
- :where(.theme-scope) .rb-feature-cards-grid--editorial-diptych .rb-feature-card[data-surface-role="panel"] > .rb-feature-card-media-frame {
11768
- width: calc(100% - 2.5rem);
11769
- margin: 1.25rem 1.25rem 0;
11770
- border-radius: calc(var(--rb-block-radius, 0.75rem) * 0.55);
11771
- }
11772
-
11773
- :where(.theme-scope) .rb-feature-cards-grid--editorial-pathways .rb-feature-card-content {
11774
- padding-top: 1.35rem;
11775
- }
11776
-
11777
- @media (min-width: 768px) {
11778
- :where(.theme-scope) .rb-feature-cards-grid--editorial-diptych .rb-feature-card[data-surface-role="panel"] {
11779
- margin-top: clamp(2rem, 5vw, 4.5rem);
11780
- }
11781
-
11782
- :where(.theme-scope) .rb-feature-cards-grid--editorial-pathways .rb-feature-card + .rb-feature-card {
11783
- border-left: 1px solid color-mix(in oklab, currentColor, transparent 82%);
11784
- padding-left: clamp(1.5rem, 4vw, 4rem);
11785
- }
11786
- }
11787
-
11788
- @media (max-width: 767px) {
11789
- :where(.theme-scope) .rb-feature-cards-grid:is(
11790
- .rb-feature-cards-grid--editorial-diptych,
11791
- .rb-feature-cards-grid--editorial-pathways
11792
- ) {
11793
- grid-template-columns: minmax(0, 1fr);
11794
- }
11795
- }
11796
-
11797
- :where(.theme-scope) .rb-card-treatment-editorial-rule > .rb-feature-card-content {
11798
- padding: 1.6rem 0 0.25rem;
11799
- }
11800
-
11801
- :where(.theme-scope) .rb-card-treatment-editorial-rule .cta-row .button-ghost {
11802
- padding-inline: 0;
11803
- }
11804
-
11805
- /* --- Colour-blocked --------------------------------------------------------- */
11806
-
11807
- /*
11808
- * Bold, flat cards that each take a different palette colour by position,
11809
- * cycled across the grid, with a staggered vertical offset on wider screens.
11810
- * The background layer (`.rb-bg-surface`) is recoloured per card; the card's
11811
- * text colour is set to the matching on-colour so content stays readable.
11812
- */
11813
- :where(.theme-scope) .rb-card-treatment-color-blocked {
11814
- box-shadow: none;
11815
- }
11816
-
11817
- /* Per-card colour cycle. The `on*` colours are always derived by the palette
11818
- * (expandPalette emits onSurface/onSecondary/onPrimary), so no fallback. */
11819
- :where(.theme-scope) .rb-card-treatment-color-blocked:nth-child(3n + 1) > .rb-bg-surface {
11820
- background: rgb(var(--tb-surface));
11821
- }
11822
- :where(.theme-scope) .rb-card-treatment-color-blocked:nth-child(3n + 1) {
11823
- background: rgb(var(--tb-surface));
11824
- color: rgb(var(--tb-onSurface));
11825
- --rb-surface-text-color: rgb(var(--tb-onSurface));
11826
- --rb-surface-heading-color: rgb(var(--tb-onSurface));
11827
- --rb-surface-link-color: rgb(var(--tb-onSurface));
11828
- --rb-surface-supporting-color: rgb(var(--tb-onSurface));
11829
- }
11830
-
11831
- :where(.theme-scope) .rb-card-treatment-color-blocked:nth-child(3n + 2) > .rb-bg-surface {
11832
- background: rgb(var(--tb-secondary));
11833
- }
11834
- :where(.theme-scope) .rb-card-treatment-color-blocked:nth-child(3n + 2) {
11835
- background: rgb(var(--tb-secondary));
11836
- color: rgb(var(--tb-onSecondary));
11837
- --rb-surface-text-color: rgb(var(--tb-onSecondary));
11838
- --rb-surface-heading-color: rgb(var(--tb-onSecondary));
11839
- --rb-surface-link-color: rgb(var(--tb-onSecondary));
11840
- --rb-surface-supporting-color: rgb(var(--tb-onSecondary));
11841
- }
11842
-
11843
- :where(.theme-scope) .rb-card-treatment-color-blocked:nth-child(3n + 3) > .rb-bg-surface {
11844
- background: rgb(var(--tb-primary));
11845
- }
11846
- :where(.theme-scope) .rb-card-treatment-color-blocked:nth-child(3n + 3) {
11847
- background: rgb(var(--tb-primary));
11848
- color: rgb(var(--tb-onPrimary));
11849
- --rb-surface-text-color: rgb(var(--tb-onPrimary));
11850
- --rb-surface-heading-color: rgb(var(--tb-onPrimary));
11851
- --rb-surface-link-color: rgb(var(--tb-onPrimary));
11852
- --rb-surface-supporting-color: rgb(var(--tb-onPrimary));
11853
- }
11854
-
11855
- /* Keep the intended visual hierarchy; the body color itself now resolves via
11856
- * the nearest surface provider instead of requiring an inline override. */
11857
- :where(.theme-scope) .rb-card-treatment-color-blocked .rb-feature-card-body {
11858
- opacity: 0.9;
11859
- }
11860
-
11861
- /* The number marker defaults to the brand accent, which collides with the
11862
- * primary-coloured card in the cycle. On colour-blocked cards use the card's
11863
- * own on-colour (the palette guarantees it's legible on that background) and a
11864
- * faint tint of it for the badge, so the number always contrasts. */
11865
- :where(.theme-scope) .rb-card-treatment-color-blocked .rb-feature-card-number-zone {
11866
- color: inherit;
11867
- background-color: color-mix(in oklab, currentColor, transparent 88%);
11868
- }
11869
-
11870
- /* Staggered offset: drop the middle column on wider screens. Scoped to a 3-up
11871
- * grid (`.rb-grid-cols-3`) so 2-/4-column grids don't get a misaligned stagger;
11872
- * the colour cycle still reads as a diagonal at any column count. */
11873
- @media (min-width: 768px) {
11874
- :where(.theme-scope) .rb-grid-cols-3 .rb-card-treatment-color-blocked:nth-child(3n + 2) {
11875
- margin-top: 2.75rem;
11876
- /* Override the card's `h-full` so the grid's stretch shrinks the card by the
11877
- * margin (a genuinely shorter card) instead of keeping full height and
11878
- * overflowing the section, which clips the rounded bottom corners. */
11879
- height: auto;
11880
- }
11881
- }
11882
-
11883
-
11884
11674
  :where(.theme-scope) [data-block="intro"][data-block-composition="portrait-bio"][data-block-variant="media-copy"] .rb-intro-media-wrap {
11885
11675
  max-width: min(100%, 24rem);
11886
11676
  margin-inline: auto;
@@ -12385,8 +12175,9 @@
12385
12175
  border-radius: var(--rb-block-radius, 0.75rem);
12386
12176
  }
12387
12177
 
12388
- /* Framed programme: a close-set family of inset cards on a semantic depth
12389
- * section. The itemSurface recipe supplies each complete surface provider. */
12178
+ /* Framed programme: a close-set family of cards on a semantic depth section.
12179
+ * The Look asks for the `alternative` card role; the site style's card system
12180
+ * supplies the surface. */
12390
12181
  :where(.theme-scope)
12391
12182
  [data-block="feature-cards"][data-block-composition="framed-programme"]
12392
12183
  .rb-feature-cards-grid {
@@ -12417,6 +12208,131 @@
12417
12208
  }
12418
12209
  }
12419
12210
 
12211
+ /* --- Feature card media + padding behaviour (all looks) -------------------- */
12212
+
12213
+ :where(.theme-scope) .rb-feature-card[class*="rb-container-pad-"]:not(.rb-container-pad-none) > .rb-feature-card-media-frame {
12214
+ width: calc(100% + 2 * var(--rb-card-pad, 0rem));
12215
+ max-width: none;
12216
+ margin: calc(-1 * var(--rb-card-pad, 0rem)) calc(-1 * var(--rb-card-pad, 0rem)) 0;
12217
+ }
12218
+
12219
+ :where(.theme-scope) .rb-feature-card[class*="rb-container-pad-"]:not(.rb-container-pad-none) > .rb-feature-card-media-frame + .rb-feature-card-content {
12220
+ margin-top: 1.4rem;
12221
+ }
12222
+
12223
+ :where(.theme-scope) .rb-feature-card[class*="rb-container-pad-"]:not(.rb-container-pad-none) > .rb-feature-card-content {
12224
+ padding: 0;
12225
+ }
12226
+
12227
+ :where(.theme-scope) .rb-feature-card > .rb-bg-surface,
12228
+ :where(.theme-scope) .rb-feature-card > .rb-feature-card-media-frame {
12229
+ border-start-start-radius: inherit;
12230
+ border-start-end-radius: inherit;
12231
+ }
12232
+
12233
+ /* --- Editorial diptych + pathways ----------------------------------------- */
12234
+
12235
+ :where(.theme-scope) .rb-feature-cards-heading--editorial {
12236
+ margin-inline: 0;
12237
+ text-align: left;
12238
+ }
12239
+
12240
+ :where(.theme-scope) .rb-feature-cards-eyebrow {
12241
+ margin: 0;
12242
+ color: rgb(var(--tb-accent));
12243
+ font-size: 0.72rem;
12244
+ font-weight: 600;
12245
+ letter-spacing: 0.14em;
12246
+ text-transform: uppercase;
12247
+ }
12248
+
12249
+ :where(.theme-scope) .rb-feature-cards-grid--editorial-diptych {
12250
+ grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
12251
+ align-items: stretch;
12252
+ }
12253
+
12254
+ :where(.theme-scope) .rb-feature-cards-grid--editorial-pathways {
12255
+ grid-template-columns: repeat(2, minmax(0, 1fr));
12256
+ align-items: start;
12257
+ }
12258
+
12259
+ :where(.theme-scope) .rb-feature-cards-grid:is(
12260
+ .rb-feature-cards-grid--editorial-diptych,
12261
+ .rb-feature-cards-grid--editorial-pathways
12262
+ ) .rb-feature-card {
12263
+ border: 0;
12264
+ box-shadow: none;
12265
+ height: auto;
12266
+ min-width: 0;
12267
+ }
12268
+
12269
+ :where(.theme-scope) .rb-feature-cards-grid:is(
12270
+ .rb-feature-cards-grid--editorial-diptych,
12271
+ .rb-feature-cards-grid--editorial-pathways
12272
+ ) .rb-feature-card[data-surface-role="open"] > .rb-bg-surface {
12273
+ background: transparent;
12274
+ }
12275
+
12276
+ :where(.theme-scope) .rb-feature-cards-grid:is(
12277
+ .rb-feature-cards-grid--editorial-diptych,
12278
+ .rb-feature-cards-grid--editorial-pathways
12279
+ ) .rb-feature-card[data-surface-role="open"] > .rb-feature-card-content {
12280
+ padding-inline: 0;
12281
+ }
12282
+
12283
+ :where(.theme-scope) .rb-feature-cards-grid--editorial-pathways .rb-feature-card > .rb-bg-surface {
12284
+ background: transparent;
12285
+ }
12286
+
12287
+ :where(.theme-scope) .rb-feature-cards-grid--editorial-pathways .rb-feature-card > .rb-feature-card-content {
12288
+ padding-inline: 0;
12289
+ }
12290
+
12291
+ /* Diptych filled panel: a composition over the `alternative` role's surface.
12292
+ The 18% supporting alpha is accepted CSS-side — see issue 1297 mapping-table. */
12293
+ :where(.theme-scope) .rb-feature-cards-grid--editorial-diptych .rb-feature-card[data-surface-role="panel"] {
12294
+ color: rgb(var(--tb-onPrimary));
12295
+ --rb-surface-text-color: rgb(var(--tb-onPrimary));
12296
+ --rb-surface-heading-color: rgb(var(--tb-onPrimary));
12297
+ --rb-surface-link-color: rgb(var(--tb-onPrimary));
12298
+ --rb-surface-supporting-color: color-mix(in oklab, rgb(var(--tb-onPrimary)), transparent 18%);
12299
+ }
12300
+
12301
+ :where(.theme-scope) .rb-feature-cards-grid--editorial-diptych .rb-feature-card[data-surface-role="panel"] > .rb-bg-surface {
12302
+ background: rgb(var(--tb-primary));
12303
+ border-radius: inherit;
12304
+ }
12305
+
12306
+ :where(.theme-scope) .rb-feature-cards-grid--editorial-diptych .rb-feature-card[data-surface-role="panel"] > .rb-feature-card-media-frame {
12307
+ width: calc(100% - 2.5rem);
12308
+ margin: 1.25rem 1.25rem 0;
12309
+ border-radius: calc(var(--rb-block-radius, 0.75rem) * 0.55);
12310
+ }
12311
+
12312
+ :where(.theme-scope) .rb-feature-cards-grid--editorial-pathways .rb-feature-card-content {
12313
+ padding-top: 1.35rem;
12314
+ }
12315
+
12316
+ @media (min-width: 768px) {
12317
+ :where(.theme-scope) .rb-feature-cards-grid--editorial-diptych .rb-feature-card[data-surface-role="panel"] {
12318
+ margin-top: clamp(2rem, 5vw, 4.5rem);
12319
+ }
12320
+
12321
+ :where(.theme-scope) .rb-feature-cards-grid--editorial-pathways .rb-feature-card + .rb-feature-card {
12322
+ border-left: 1px solid color-mix(in oklab, currentColor, transparent 82%);
12323
+ padding-left: clamp(1.5rem, 4vw, 4rem);
12324
+ }
12325
+ }
12326
+
12327
+ @media (max-width: 767px) {
12328
+ :where(.theme-scope) .rb-feature-cards-grid:is(
12329
+ .rb-feature-cards-grid--editorial-diptych,
12330
+ .rb-feature-cards-grid--editorial-pathways
12331
+ ) {
12332
+ grid-template-columns: minmax(0, 1fr);
12333
+ }
12334
+ }
12335
+
12420
12336
 
12421
12337
  /* =============================================================================
12422
12338
  * Offerings Preview composition Looks promoted from the Fran André treatment
@@ -12812,4 +12728,49 @@
12812
12728
  }
12813
12729
  }
12814
12730
 
12731
+ /* Open-editorial testimonials composition, selected by a Look
12732
+ * (`composition: { kind: 'testimonials', treatment: 'open-editorial' }`).
12733
+ *
12734
+ * Two jobs. First, *boxless*: `styledCard` always renders an opaque
12735
+ * `.rb-bg-surface` fill layer, so a testimonial with no card role has to clear
12736
+ * it or it paints a white box on the section band (the same shape
12737
+ * feature-card-compositions.css uses for `[data-surface-role="open"]`).
12738
+ * Second, the composition proper: a hairline before the attribution, an accent
12739
+ * ring on the avatar, comfortable prose.
12740
+ *
12741
+ * What is *not* here: whether the testimonial sits in a card (the Look's
12742
+ * `cardRole`), how that card looks (the site style's card system), or the quote
12743
+ * mark (the site style's quote treatment, via the --rb-testimonial-quote-* vars
12744
+ * in testimonials.css).
12745
+ *
12746
+ * The block attribute is deliberately outside `:where()` so these rules outrank
12747
+ * the card's own utility classes, matching the Look-keyed rules above. */
12748
+ :where(.theme-scope) [data-block="testimonials"][data-block-composition="open-editorial"] .rb-testimonial-card {
12749
+ background: transparent;
12750
+ border: 0;
12751
+ border-radius: 0;
12752
+ padding: 0.25rem clamp(0.5rem, 1.5vw, 1.5rem);
12753
+ }
12754
+
12755
+ :where(.theme-scope) [data-block="testimonials"][data-block-composition="open-editorial"] .rb-testimonial-card > .rb-bg-surface {
12756
+ background: transparent;
12757
+ }
12758
+
12759
+ :where(.theme-scope) [data-block="testimonials"][data-block-composition="open-editorial"] .rb-prose {
12760
+ font-size: 1.0625rem;
12761
+ line-height: 1.7;
12762
+ }
12763
+
12764
+ :where(.theme-scope) [data-block="testimonials"][data-block-composition="open-editorial"] .rb-testimonial-attribution {
12765
+ margin-top: 1.25rem;
12766
+ padding-top: 1.25rem;
12767
+ border-top: 1px solid rgba(var(--tb-border), 0.75);
12768
+ }
12769
+
12770
+ :where(.theme-scope) [data-block="testimonials"][data-block-composition="open-editorial"] .rb-testimonial-avatar {
12771
+ box-shadow:
12772
+ 0 0 0 2px rgb(var(--tb-surface)),
12773
+ 0 0 0 4px rgba(var(--tb-primary), 0.3);
12774
+ }
12775
+
12815
12776
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riverbankcms/sdk",
3
- "version": "0.130.0",
3
+ "version": "0.130.2",
4
4
  "description": "Riverbank CMS SDK for headless content consumption",
5
5
  "main": "./dist/server/index.mjs",
6
6
  "module": "./dist/server/index.mjs",
@@ -227,7 +227,8 @@
227
227
  },
228
228
  "files": [
229
229
  "dist",
230
- "README.md"
230
+ "README.md",
231
+ "CHANGELOG.md"
231
232
  ],
232
233
  "scripts": {
233
234
  "clean:dist": "node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"",