@riverbankcms/sdk 0.129.1 → 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 (371) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/README.md +33 -11
  3. package/dist/{PreviewEditorSidebar-DceRseRV.mjs → PreviewEditorSidebar-BY-1QdE2.mjs} +327 -250
  4. package/dist/{PreviewEditorUI-BNunq3kk.mjs → PreviewEditorUI-BS34jI9_.mjs} +3 -3
  5. package/dist/{PreviewQueryProvider-B1kbhaJD.mjs → PreviewQueryProvider-BD0kOjtI.mjs} +1 -1
  6. package/dist/{SdkPreviewModeRuntime-Bt87-62u.mjs → SdkPreviewModeRuntime-B1pWnhu-.mjs} +235 -211
  7. package/dist/{SiteChromeCustomizeContext-BLl-OlL4.mjs → SiteChromeCustomizeContext-BhUG_72i.mjs} +12981 -11912
  8. package/dist/_dts/ai/src/contracts/proposalPrimitives.d.ts +52 -0
  9. package/dist/_dts/ai/src/contracts/proposals.d.ts +5256 -29129
  10. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +33429 -0
  11. package/dist/_dts/api/src/accountApi.d.ts +213 -0
  12. package/dist/_dts/api/src/accountEndpointDefinitions.d.ts +30 -0
  13. package/dist/_dts/api/src/accountEndpoints.d.ts +254 -0
  14. package/dist/_dts/api/src/apiCallParams.d.ts +60 -0
  15. package/dist/_dts/api/src/appointmentSetup.d.ts +21 -9
  16. package/dist/_dts/api/src/bookingConfig.d.ts +12 -64
  17. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +17 -16
  18. package/dist/_dts/api/src/bookingManagementEventEndpointTypes.d.ts +15 -0
  19. package/dist/_dts/api/src/bookingRecords.d.ts +1 -0
  20. package/dist/_dts/api/src/bookingSettingsSections.d.ts +9 -0
  21. package/dist/_dts/api/src/bookingVerticals.d.ts +2 -2
  22. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +2 -0
  23. package/dist/_dts/api/src/contentRuntime.d.ts +3 -5
  24. package/dist/_dts/api/src/endpoints.d.ts +1355 -1318
  25. package/dist/_dts/api/src/event-destination-policy.d.ts +1 -1
  26. package/dist/_dts/api/src/eventManagementContracts.d.ts +152 -0
  27. package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +26 -0
  28. package/dist/_dts/api/src/eventSeriesPresentationPreset.d.ts +12 -0
  29. package/dist/_dts/api/src/index.d.ts +12 -3
  30. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -0
  31. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -0
  32. package/dist/_dts/api/src/oauth.d.ts +8 -0
  33. package/dist/_dts/api/src/preview-auth.d.ts +26 -0
  34. package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +22 -47
  35. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +5 -5
  36. package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +0 -1
  37. package/dist/_dts/api/src/sdk-event-schedule.d.ts +5 -0
  38. package/dist/_dts/api/src/sdk-event-upsert.d.ts +114 -20
  39. package/dist/_dts/api/src/sdkBlockUpsertContracts.d.ts +48 -0
  40. package/dist/_dts/api/src/sdkContracts.d.ts +43 -79
  41. package/dist/_dts/api/src/sdkEventCategoryContracts.d.ts +9 -0
  42. package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +35 -0
  43. package/dist/_dts/api/src/sdkThemeWire.d.ts +2256 -302
  44. package/dist/_dts/api/src/settings/permissions.d.ts +2 -2
  45. package/dist/_dts/api/src/siteApiKeyEndpointDefinitions.d.ts +66 -0
  46. package/dist/_dts/api/src/siteInfrastructure.d.ts +3 -3
  47. package/dist/_dts/api/src/siteOperations.d.ts +1 -1
  48. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +17 -4
  49. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +23 -37
  50. package/dist/_dts/api/src/types.d.ts +7 -59
  51. package/dist/_dts/block-form/src/client/index.d.ts +15 -23
  52. package/dist/_dts/block-form/src/index.d.ts +23 -22
  53. package/dist/_dts/blocks/src/contracts/index.d.ts +2 -0
  54. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +6 -8
  55. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +36 -14
  56. package/dist/_dts/blocks/src/index.d.ts +5 -3
  57. package/dist/_dts/blocks/src/lib/media.d.ts +9 -539
  58. package/dist/_dts/blocks/src/primitives/layout/Grid.d.ts +18 -1
  59. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +1 -0
  60. package/dist/_dts/blocks/src/system/blocks/events/shared/filtering.d.ts +1 -1
  61. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +61 -0
  62. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +24 -22
  63. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +25 -1
  64. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -2
  65. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +142 -120
  66. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -2
  67. package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +37 -4
  68. package/dist/_dts/blocks/src/system/blocks/site-footer-nav-groups-layout.d.ts +1 -1
  69. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +3 -0
  70. package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +0 -1
  71. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +4 -63
  72. package/dist/_dts/blocks/src/system/componentFactory.d.ts +5 -5
  73. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +9 -9
  74. package/dist/_dts/blocks/src/system/customize/serializeBackgroundOverride.d.ts +3 -0
  75. package/dist/_dts/blocks/src/system/fields/background.d.ts +2 -20
  76. package/dist/_dts/blocks/src/system/fields/backgroundContent.d.ts +17 -0
  77. package/dist/_dts/blocks/src/system/fields/backgroundContentAudit.d.ts +20 -0
  78. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +18 -34
  79. package/dist/_dts/blocks/src/system/fields/gridLayout.d.ts +20 -0
  80. package/dist/_dts/blocks/src/system/fragments/builder.d.ts +1 -0
  81. package/dist/_dts/blocks/src/system/fragments/types.d.ts +1 -0
  82. package/dist/_dts/blocks/src/system/helpers/index.d.ts +1 -1
  83. package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +10 -45
  84. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +7 -4
  85. package/dist/_dts/blocks/src/system/manifest/fieldValidation/writeCanonicalization.d.ts +4 -0
  86. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +123 -55
  87. package/dist/_dts/blocks/src/system/node/fragments/classNameBinding.d.ts +6 -1
  88. package/dist/_dts/blocks/src/system/node/fragments/styledCard.d.ts +31 -0
  89. package/dist/_dts/blocks/src/system/registry.d.ts +2 -0
  90. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +4 -0
  91. package/dist/_dts/blocks/src/system/runtime/api/types/courses.d.ts +0 -1
  92. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +0 -1
  93. package/dist/_dts/blocks/src/system/runtime/api/types/shop.d.ts +2 -37
  94. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +61 -24
  95. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +30 -12
  96. package/dist/_dts/blocks/src/system/runtime/header/enhanceHeaderSection.d.ts +3 -5
  97. package/dist/_dts/blocks/src/system/runtime/header/headerScrollRuntime.d.ts +2 -0
  98. package/dist/_dts/blocks/src/system/runtime/header/runtimeContract.d.ts +22 -0
  99. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +4 -2
  100. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +24 -8
  101. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.server.d.ts +8 -0
  102. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.validationErrors.d.ts +17 -0
  103. package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/display.d.ts +9 -2
  104. package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/view.d.ts +3 -0
  105. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +1 -1
  106. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventScope.d.ts +1 -1
  107. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
  108. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +42 -0
  109. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +4 -1
  110. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -0
  111. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.frame.d.ts +21 -0
  112. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.server.d.ts +2 -0
  113. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +41 -12
  114. package/dist/_dts/blocks/src/system/runtime/nodes/shop.pass-contract.d.ts +3 -0
  115. package/dist/_dts/blocks/src/system/runtime/nodes/shop.state.d.ts +3 -3
  116. package/dist/_dts/blocks/src/system/runtime/shared/components/FeedbackMessage.d.ts +17 -1
  117. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -1
  118. package/dist/_dts/blocks/src/system/spacing.d.ts +1 -1
  119. package/dist/_dts/blocks/src/system/transforms/registry/_utils/boxStyleClassNames.d.ts +90 -0
  120. package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +7 -1
  121. package/dist/_dts/blocks/src/system/transforms/registry/background.d.ts +1 -1
  122. package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +29 -1
  123. package/dist/_dts/blocks/src/system/transforms/registry/core.d.ts +4 -1
  124. package/dist/_dts/blocks/src/system/transforms/registry/headerRuntime.d.ts +3 -0
  125. package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +2 -1
  126. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +4 -40
  127. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +41 -43
  128. package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +4 -2
  129. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +2 -17
  130. package/dist/_dts/content-editor/src/FooterNavigationLayoutControl.d.ts +5 -0
  131. package/dist/_dts/content-editor/src/components/ContentFieldsForm.d.ts +2 -2
  132. package/dist/_dts/content-editor/src/footerComposer.d.ts +2 -1
  133. package/dist/_dts/content-editor/src/footerComposerPanelTypes.d.ts +21 -0
  134. package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +2 -1
  135. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +11 -1
  136. package/dist/_dts/content-editor/src/useFooterNavigationLayout.d.ts +26 -0
  137. package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +6 -6
  138. package/dist/_dts/content-model/src/content-types/builtins.d.ts +6 -6
  139. package/dist/_dts/content-model/src/templates/defaults.d.ts +7 -0
  140. package/dist/_dts/core/src/booking-date-time.d.ts +2 -2
  141. package/dist/_dts/core/src/booking-time-zone.d.ts +6 -0
  142. package/dist/_dts/core/src/branded.d.ts +4 -0
  143. package/dist/_dts/core/src/event-page-surface-subject.d.ts +25 -4
  144. package/dist/_dts/core/src/footer-composition-types.d.ts +4 -4
  145. package/dist/_dts/core/src/footer-navigation-layout.d.ts +4 -0
  146. package/dist/_dts/core/src/index.d.ts +4 -0
  147. package/dist/_dts/core/src/public-event-booking-availability.d.ts +8 -0
  148. package/dist/_dts/core/src/secret.d.ts +44 -0
  149. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +379 -18
  150. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +2 -1
  151. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +2 -2
  152. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +2 -2
  153. package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +1 -1
  154. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +1 -1
  155. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +1 -1
  156. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockValidationManifests.d.ts +1 -1
  157. package/dist/_dts/editor-blocks/src/block-editor/preparedManifest.d.ts +1 -1
  158. package/dist/_dts/editor-blocks/src/blockPayload.d.ts +1 -1
  159. package/dist/_dts/editor-blocks/src/index.d.ts +2 -2
  160. package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +2 -2
  161. package/dist/_dts/editor-blocks/src/widgets/button/ButtonField.d.ts +1 -1
  162. package/dist/_dts/editor-blocks/src/widgets/button/ButtonVariantField.d.ts +1 -1
  163. package/dist/_dts/editor-blocks/src/widgets/button/index.d.ts +1 -1
  164. package/dist/_dts/editor-blocks/src/widgets/content-type-select/ContentTypeSelectField.d.ts +1 -1
  165. package/dist/_dts/editor-blocks/src/widgets/entry-picker/EntryPickerField.d.ts +1 -1
  166. package/dist/_dts/editor-blocks/src/widgets/entry-picker/index.d.ts +1 -1
  167. package/dist/_dts/editor-blocks/src/widgets/icon-picker/IconPickerField.d.ts +1 -1
  168. package/dist/_dts/editor-blocks/src/widgets/inline-text/InlineTextField.d.ts +1 -1
  169. package/dist/_dts/editor-blocks/src/widgets/link/LinkField.d.ts +2 -2
  170. package/dist/_dts/editor-blocks/src/widgets/offerings-preview/OfferingsPreviewGroupOrderField.d.ts +1 -1
  171. package/dist/_dts/editor-blocks/src/widgets/reference/ReferenceField.d.ts +2 -2
  172. package/dist/_dts/editor-blocks/src/widgets/rich-text/RichTextField.d.ts +2 -2
  173. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/SiteOptionPickerField.d.ts +1 -1
  174. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/utils.d.ts +1 -1
  175. package/dist/_dts/preview-next/src/client/blocks/useBlockCustomizeControls.d.ts +1 -1
  176. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +1 -1
  177. package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +1 -1
  178. package/dist/_dts/preview-next/src/client/preview/FooterSidebarDisclosure.d.ts +8 -0
  179. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +5 -5
  180. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +15 -17
  181. package/dist/_dts/preview-next/src/client/preview/PreviewFooterEditorPanel.d.ts +20 -0
  182. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +5 -5
  183. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +3 -5
  184. package/dist/_dts/preview-next/src/client/preview/PreviewSiteFontStorageContext.d.ts +6 -0
  185. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -4
  186. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +3 -5
  187. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +6 -7
  188. package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +7 -7
  189. package/dist/_dts/preview-next/src/client/preview/siteChromeCustomizeTypes.d.ts +4 -4
  190. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +2 -2
  191. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +12 -11
  192. package/dist/_dts/preview-next/src/client/preview/siteChromeSelectionRows.d.ts +53 -0
  193. package/dist/_dts/preview-next/src/client/preview/siteFontPreview.d.ts +5 -0
  194. package/dist/_dts/preview-next/src/client/preview/siteStyleAccess.d.ts +1 -6
  195. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +6 -15
  196. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +4 -6
  197. package/dist/_dts/preview-next/src/client/sdk/contentStorage.d.ts +10 -0
  198. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +1 -1
  199. package/dist/_dts/preview-next/src/index.d.ts +1 -0
  200. package/dist/_dts/preview-next/src/keepAlive.d.ts +3 -5
  201. package/dist/_dts/preview-next/src/refresh-contract.d.ts +1 -0
  202. package/dist/_dts/preview-next/src/route-contract.d.ts +7 -0
  203. package/dist/_dts/sdk/src/config/types.d.ts +1 -0
  204. package/dist/_dts/sdk/src/config/validation.d.ts +2 -0
  205. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  206. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +64 -79
  207. package/dist/_dts/sdk/src/next/catch-all-theme-admission.d.ts +23 -0
  208. package/dist/_dts/sdk/src/next/index.d.ts +8 -6
  209. package/dist/_dts/sdk/src/next/resolveTheme.d.ts +1 -2
  210. package/dist/_dts/sdk/src/next/types.d.ts +10 -0
  211. package/dist/_dts/sdk/src/preview-next/keep-alive.d.ts +1 -1
  212. package/dist/_dts/sdk/src/public-api/contracts.d.ts +2 -16
  213. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +4 -3
  214. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +5 -3
  215. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +1 -1
  216. package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +4 -2
  217. package/dist/_dts/sdk/src/rendering/index.d.ts +3 -1
  218. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +15 -2
  219. package/dist/_dts/sdk/src/rendering/server.d.ts +2 -0
  220. package/dist/_dts/sdk/src/rendering/themeAdmission.d.ts +11 -0
  221. package/dist/_dts/sdk/src/theme-bridge/types.d.ts +4 -2
  222. package/dist/_dts/sdk/src/version.d.ts +1 -1
  223. package/dist/_dts/theme-core/src/blockOverrides.d.ts +1 -1
  224. package/dist/_dts/theme-core/src/boxBackgroundSchema.d.ts +184 -0
  225. package/dist/_dts/theme-core/src/buttons/buttonColourContract.d.ts +96 -0
  226. package/dist/_dts/theme-core/src/buttons/buttonSurfaceContext.d.ts +78 -0
  227. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
  228. package/dist/_dts/theme-core/src/buttons/parseThemeForPersistence.d.ts +2 -2
  229. package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +9 -57
  230. package/dist/_dts/theme-core/src/buttons/resolvedButtonCss.d.ts +6 -3
  231. package/dist/_dts/theme-core/src/buttons/styles/domain.d.ts +8 -7
  232. package/dist/_dts/theme-core/src/buttons/styles/recipes/quietArrow.d.ts +1 -0
  233. package/dist/_dts/theme-core/src/buttons/styles/recipes/staticRecipes.d.ts +11 -0
  234. package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +12 -0
  235. package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +5 -0
  236. package/dist/_dts/theme-core/src/buttons/types.d.ts +51 -4
  237. package/dist/_dts/theme-core/src/cards/core.d.ts +54 -10
  238. package/dist/_dts/theme-core/src/cards/decorations.d.ts +33 -0
  239. package/dist/_dts/theme-core/src/cards/generateDefaultCardSystem.d.ts +7 -2
  240. package/dist/_dts/theme-core/src/cards/index.d.ts +3 -0
  241. package/dist/_dts/theme-core/src/cards/openCardVariant.d.ts +24 -0
  242. package/dist/_dts/theme-core/src/cards/roles.d.ts +38 -0
  243. package/dist/_dts/theme-core/src/cards/siteStyleDefaults.d.ts +53 -8
  244. package/dist/_dts/theme-core/src/cards/types.d.ts +489 -21
  245. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  246. package/dist/_dts/theme-core/src/header/legacyHeaderVariant.d.ts +59 -0
  247. package/dist/_dts/theme-core/src/header/paintTargets.d.ts +2 -2
  248. package/dist/_dts/theme-core/src/header/scrollTreatment.d.ts +3 -2
  249. package/dist/_dts/theme-core/src/lib/media.d.ts +583 -10
  250. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +5085 -1524
  251. package/dist/_dts/theme-core/src/palette/utils/contrast.d.ts +1 -0
  252. package/dist/_dts/theme-core/src/palette/utils/opaqueSurfaceColor.d.ts +6 -0
  253. package/dist/_dts/theme-core/src/runtime/buildThemeRuntimeFromBridge.d.ts +1 -1
  254. package/dist/_dts/theme-core/src/schema.d.ts +5300 -2019
  255. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +84 -102
  256. package/dist/_dts/theme-core/src/site-styles/appearancePresetResolution.d.ts +12 -1
  257. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +9 -4
  258. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +0 -20
  259. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +84 -102
  260. package/dist/_dts/theme-core/src/site-styles/cardRoleVocabulary.d.ts +48 -0
  261. package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +6 -14
  262. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +29 -102
  263. package/dist/_dts/theme-core/src/site-styles/customizableSurfaces.d.ts +3 -76
  264. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +21 -385
  265. package/dist/_dts/theme-core/src/site-styles/generatedDesignPipeline.d.ts +3 -7
  266. package/dist/_dts/theme-core/src/site-styles/generatedDesignPipelineHelpers.d.ts +17 -0
  267. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +10 -18
  268. package/dist/_dts/theme-core/src/site-styles/headerLayoutCatalog.d.ts +281 -0
  269. package/dist/_dts/theme-core/src/site-styles/headerLayoutResolution.d.ts +13 -0
  270. package/dist/_dts/theme-core/src/site-styles/headerLayoutStyles.d.ts +6 -0
  271. package/dist/_dts/theme-core/src/site-styles/{headerLookTypes.d.ts → headerLayoutTypes.d.ts} +18 -90
  272. package/dist/_dts/theme-core/src/site-styles/headerNavStyles.d.ts +6 -0
  273. package/dist/_dts/theme-core/src/site-styles/headerOpeningForeground.d.ts +7 -11
  274. package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +2 -4
  275. package/dist/_dts/theme-core/src/site-styles/headerStyleCompiler.d.ts +2 -2
  276. package/dist/_dts/theme-core/src/site-styles/imageSurfaceBackground.d.ts +14 -0
  277. package/dist/_dts/theme-core/src/site-styles/index.d.ts +6 -1
  278. package/dist/_dts/theme-core/src/site-styles/pageDesignAppearanceAvailability.d.ts +3 -0
  279. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorCapabilities.d.ts +22 -0
  280. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +9 -8
  281. package/dist/_dts/theme-core/src/site-styles/pageDesignIntentEquality.d.ts +3 -0
  282. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +14 -41
  283. package/dist/_dts/theme-core/src/site-styles/previewRuntimeCapabilities.d.ts +19 -0
  284. package/dist/_dts/theme-core/src/site-styles/runtimeBackgroundResolution.d.ts +32 -0
  285. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +9 -68
  286. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +1 -1
  287. package/dist/_dts/theme-core/src/site-styles/sourceCatalogs.d.ts +13 -12
  288. package/dist/_dts/theme-core/src/site-styles/types.d.ts +50 -39
  289. package/dist/_dts/theme-core/src/siteChromePlanning.d.ts +9 -9
  290. package/dist/_dts/theme-core/src/status/generateStatusCss.d.ts +1 -0
  291. package/dist/_dts/theme-core/src/surfaces/index.d.ts +1 -0
  292. package/dist/_dts/theme-core/src/surfaces/resolveSurfaceForeground.d.ts +39 -0
  293. package/dist/_dts/ui/src/navigation-tabs.d.ts +3 -2
  294. package/dist/client/{CourseRegistrationWizard-xRmA7REV.mjs → CourseRegistrationWizard-DGW9F0SQ.mjs} +7 -7
  295. package/dist/client/{DiscountCodeDisclosure-B9vriL5C.mjs → DiscountCodeDisclosure-BPZ-yfGI.mjs} +1 -1
  296. package/dist/client/{EventCombined.client-BgVnVTlz.mjs → EventCombined.client-Cjt3kKYR.mjs} +4 -4
  297. package/dist/client/{EventListing.client-CqdsO7jO.mjs → EventListing.client-DY9dn6Fh.mjs} +2 -2
  298. package/dist/client/{FeedbackMessage-ByMrs3cr.mjs → FeedbackMessage-CtLvvS_d.mjs} +15 -3
  299. package/dist/client/{LeafletStaticMap-CKPxot9M.mjs → LeafletStaticMap--2c61XYn.mjs} +1 -1
  300. package/dist/client/{StepIndicator-DGCYuBJ1.mjs → StepIndicator-CLjQhkDb.mjs} +3 -3
  301. package/dist/client/{accordion-BfN5Eqd-.mjs → accordion-_boYwHHi.mjs} +1 -1
  302. package/dist/client/{bookingForm-DOvCpBFP.mjs → bookingForm--AqEfyBX.mjs} +56 -39
  303. package/dist/client/bookings.mjs +1348 -1157
  304. package/dist/client/{carousel-DPNmiH0f.mjs → carousel-CVI2dqZr.mjs} +2 -2
  305. package/dist/client/{carousel.client-CpwTUhIo.mjs → carousel.client-59G_WMr4.mjs} +1 -1
  306. package/dist/client/{cart--egVXlrR.mjs → cart-DR6IiPz9.mjs} +3 -3
  307. package/dist/client/{checkout-DywWtMcq.mjs → checkout-CsrGAfQt.mjs} +3 -3
  308. package/dist/client/client.mjs +20935 -19889
  309. package/dist/client/{colorStyles-BWpj_h4C.mjs → colorStyles-CrxJrPjJ.mjs} +277 -1
  310. package/dist/client/{context-CJz1Vlsz.mjs → context-B83PiNzm.mjs} +6 -21
  311. package/dist/client/{courseRegistration-Dk9qFVwt.mjs → courseRegistration-aNJVaLa3.mjs} +3 -3
  312. package/dist/client/{eventCalendar-Bkz2HjlS.mjs → eventCalendar-OZ7h59VN.mjs} +6 -6
  313. package/dist/client/{eventCombined-D4kipYWg.mjs → eventCombined-BbJ6bFKz.mjs} +3 -3
  314. package/dist/client/{eventDetails-Dz_5ix2Q.mjs → eventDetails-BLyUBiCT.mjs} +3 -3
  315. package/dist/client/{eventListing-D0vm-zST.mjs → eventListing-DuP1yhBS.mjs} +3 -3
  316. package/dist/client/{eventRegistration-Cw1E4Q4p.mjs → eventRegistration-BXyECPa-.mjs} +11 -12
  317. package/dist/client/{form-C2Zf1n3K.mjs → form-BA4t3kKU.mjs} +4 -4
  318. package/dist/client/{headerSection-CP05gzdc.mjs → headerSection-CpNaJxhW.mjs} +151 -104
  319. package/dist/client/hooks.mjs +6328 -6104
  320. package/dist/client/{locationMap-Cl3x9PYJ.mjs → locationMap-3HGMCL7_.mjs} +3 -3
  321. package/dist/client/{media-CNE1Z-wb.mjs → media-BOHuueS5.mjs} +16 -4
  322. package/dist/client/{newsletterForm-DyEJoClm.mjs → newsletterForm-C2s6Mw67.mjs} +4 -4
  323. package/dist/client/{pricing-DGuNR1W4.mjs → pricing-BiqIMgZk.mjs} +1 -1
  324. package/dist/client/{productDetail-Cq-HrGew.mjs → productDetail-C9joWhdE.mjs} +3 -3
  325. package/dist/client/{productList-DbB3jwqd.mjs → productList-CjzdU3pB.mjs} +3 -3
  326. package/dist/client/{propsDecoder-CiTuhUwY.mjs → propsDecoder-CBPGXEYX.mjs} +2480 -2478
  327. package/dist/client/rendering/client.mjs +5371 -6741
  328. package/dist/client/rendering/islands.mjs +20 -20
  329. package/dist/client/rendering.mjs +18616 -17447
  330. package/dist/client/{scrollToBlock-CShkRqab.mjs → scrollToBlock-DZ73aEX6.mjs} +1 -1
  331. package/dist/client/{shop-Cu4Ib-ZA.mjs → shop-CQRai7hj.mjs} +36 -25
  332. package/dist/client/{shop-commerce-BzpsOdh7.mjs → shop-commerce-hP9UboOx.mjs} +8 -8
  333. package/dist/client/{shop-commerce-store-DaE7Fhj8.mjs → shop-commerce-store-DiD5a32e.mjs} +1 -1
  334. package/dist/client/{shopShared-cF0c20vB.mjs → shopShared-DP8DXTkF.mjs} +12 -6
  335. package/dist/client/{useEventFilters-QZ3HMgaJ.mjs → useEventFilters-pF_OJNQP.mjs} +137 -81
  336. package/dist/client/{usePolling-BKf0GcE-.mjs → usePolling-Cls91SD2.mjs} +2 -2
  337. package/dist/preview-next/before-render.mjs +202 -129
  338. package/dist/preview-next/client/runtime.mjs +4 -4
  339. package/dist/preview-next/keepAlive.mjs +7406 -29
  340. package/dist/preview-next/middleware.mjs +196 -128
  341. package/dist/{previewAuthStore-BesgU5Xu.mjs → previewAuthStore-CX1C_KJ4.mjs} +195 -128
  342. package/dist/{sdk-runtime-C20CVWbb.mjs → sdk-runtime-5CcPAI14.mjs} +2 -2
  343. package/dist/{separator-BE3NCquy.mjs → separator-BXlYN_gr.mjs} +1 -1
  344. package/dist/server/components.mjs +22644 -21375
  345. package/dist/server/config-validation.mjs +6507 -6309
  346. package/dist/server/config.mjs +6511 -6313
  347. package/dist/server/data.mjs +6311 -6104
  348. package/dist/server/date-time.mjs +22 -13
  349. package/dist/server/index.mjs +196 -129
  350. package/dist/server/next.mjs +22782 -21578
  351. package/dist/server/page-converter.mjs +4769 -6213
  352. package/dist/server/prebuild.mjs +1 -1
  353. package/dist/server/rendering/server.mjs +20525 -20291
  354. package/dist/server/rendering.mjs +22677 -21389
  355. package/dist/server/routing.mjs +6651 -5398
  356. package/dist/server/server.mjs +6389 -6256
  357. package/dist/server/theme-bridge.mjs +2251 -2465
  358. package/dist/server/theme.mjs +974 -642
  359. package/dist/styles/index.css +317 -337
  360. package/package.json +3 -2
  361. package/dist/_dts/block-form/src/client/blockDraftSaveability.d.ts +0 -1
  362. package/dist/_dts/block-form/src/widgets/index.d.ts +0 -20
  363. package/dist/_dts/blocks/src/system/runtime/api/requestBody.d.ts +0 -7
  364. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +0 -66
  365. package/dist/_dts/theme-core/src/site-styles/headerLayoutStyleCatalog.d.ts +0 -254
  366. package/dist/_dts/theme-core/src/site-styles/headerLegacyLooks.d.ts +0 -372
  367. package/dist/_dts/theme-core/src/site-styles/headerLookBranding.d.ts +0 -106
  368. package/dist/_dts/theme-core/src/site-styles/headerLookSelection.d.ts +0 -2
  369. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +0 -7
  370. package/dist/_dts/theme-core/src/site-styles/headerStyleCompilerPrimitives.d.ts +0 -23
  371. package/dist/client/clsx-DgIEfj3H.mjs +0 -16
@@ -537,6 +537,9 @@
537
537
  .rb-md-grid-cols-4 {
538
538
  grid-template-columns: repeat(4, minmax(0, 1fr));
539
539
  }
540
+ .rb-md-col-span-2 {
541
+ grid-column: span 2 / span 2;
542
+ }
540
543
  }
541
544
  }
542
545
  @media (min-width: 1024px) {
@@ -550,6 +553,9 @@
550
553
  .rb-lg-grid-cols-4 {
551
554
  grid-template-columns: repeat(4, minmax(0, 1fr));
552
555
  }
556
+ .rb-lg-grid-cols-5 {
557
+ grid-template-columns: repeat(5, minmax(0, 1fr));
558
+ }
553
559
  .rb-lg-w-3\/4 {
554
560
  width: 75%;
555
561
  }
@@ -565,6 +571,9 @@
565
571
  .rb-lg-col-span-4 {
566
572
  grid-column: span 4 / span 4;
567
573
  }
574
+ .rb-lg-col-span-5 {
575
+ grid-column: span 5 / span 5;
576
+ }
568
577
  }
569
578
  }
570
579
  @media (min-width: 1280px) {
@@ -2879,7 +2888,7 @@
2879
2888
  overflow-anchor: none;
2880
2889
  }
2881
2890
 
2882
- /* Base padding for horizontal variants (classic, transparent) */
2891
+ /* Base padding for horizontal variants (classic) */
2883
2892
  :where(.theme-scope) .rb-header-layout {
2884
2893
  padding-top: 1rem;
2885
2894
  padding-bottom: 1rem;
@@ -3430,6 +3439,127 @@
3430
3439
  margin-inline: 0;
3431
3440
  }
3432
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
+
3433
3563
  /* Selectable option card */
3434
3564
  :where(.theme-scope) :where([data-block="event-registration"], [data-block="course-registration"], [data-block="appointment-booking"]) .rb-option-card {
3435
3565
  position: relative;
@@ -7974,7 +8104,8 @@
7974
8104
  :where(.theme-scope) .shop--register .shop__card-name,
7975
8105
  :where(.theme-scope) .shop--register .shop__card-price,
7976
8106
  :where(.theme-scope) .shop--register .shop__card-details,
7977
- :where(.theme-scope) .shop--register .shop__cta {
8107
+ :where(.theme-scope) .shop--register .shop__cta,
8108
+ :where(.theme-scope) .shop--register .shop__purchase-unavailable {
7978
8109
  margin: 0;
7979
8110
  }
7980
8111
 
@@ -8010,7 +8141,8 @@
8010
8141
  font-size: 0.86rem;
8011
8142
  }
8012
8143
 
8013
- :where(.theme-scope) .shop--register .shop__cta {
8144
+ :where(.theme-scope) .shop--register .shop__cta,
8145
+ :where(.theme-scope) .shop--register .shop__purchase-unavailable {
8014
8146
  grid-column: 4;
8015
8147
  grid-row: 1;
8016
8148
  align-self: center;
@@ -8041,7 +8173,8 @@
8041
8173
  grid-row: 2;
8042
8174
  }
8043
8175
 
8044
- :where(.theme-scope) .shop--register .shop__cta {
8176
+ :where(.theme-scope) .shop--register .shop__cta,
8177
+ :where(.theme-scope) .shop--register .shop__purchase-unavailable {
8045
8178
  grid-column: 1 / -1;
8046
8179
  grid-row: 3;
8047
8180
  justify-self: start;
@@ -8133,6 +8266,13 @@
8133
8266
  align-self: flex-start;
8134
8267
  }
8135
8268
 
8269
+ :where(.theme-scope) .shop__purchase-unavailable {
8270
+ margin: auto 0 0;
8271
+ color: var(--rb-surface-supporting-color, rgb(var(--tb-mutedText)));
8272
+ font-size: 0.875rem;
8273
+ line-height: 1.4;
8274
+ }
8275
+
8136
8276
  /* Responsive grid */
8137
8277
  @media (max-width: 768px) {
8138
8278
  :where(.theme-scope) .shop__products--grid {
@@ -9068,13 +9208,6 @@
9068
9208
  border-radius: var(--rb-block-radius);
9069
9209
  }
9070
9210
 
9071
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonial-card.rb-card-treatment-accent-quote {
9072
- border: 0;
9073
- border-left: 5px solid rgb(var(--tb-secondary));
9074
- border-radius: 0 calc(var(--rb-block-radius) * 3) 0 0;
9075
- color: rgb(var(--tb-primaryForeground));
9076
- }
9077
-
9078
9211
  :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonial-quote {
9079
9212
  display: var(--rb-testimonial-quote-display, block);
9080
9213
  font-family: var(--rb-testimonial-quote-font, inherit);
@@ -9085,54 +9218,6 @@
9085
9218
  color: var(--rb-testimonial-quote-color, rgb(var(--tb-primary)));
9086
9219
  }
9087
9220
 
9088
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-accent-quote .rb-testimonial-quote {
9089
- color: rgb(var(--tb-secondary));
9090
- font-size: calc(var(--rb-testimonial-quote-size) * 1.25);
9091
- opacity: 1;
9092
- }
9093
-
9094
- /* Open editorial testimonial card: boxless, with a hairline rule before the
9095
- * attribution, an accent ring on the avatar, and comfortable prose. The quote
9096
- * mark itself is owned by the site-style quote treatment (see the
9097
- * --rb-testimonial-quote-* vars), not by these rules.
9098
- *
9099
- * `editorial-open` is the current non-carded look; `editorial-serif-quote` is
9100
- * retained for content saved before the decomposition. */
9101
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonial-card.rb-card-treatment-editorial-open,
9102
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonial-card.rb-card-treatment-editorial-serif-quote {
9103
- background: transparent;
9104
- border: 0;
9105
- border-radius: 0;
9106
- padding: 0.25rem clamp(0.5rem, 1.5vw, 1.5rem);
9107
- }
9108
-
9109
- /* styledCard always renders an inner white rb-bg-surface fill layer; a boxless
9110
- * card must clear it so the section band shows through (otherwise: white box). */
9111
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-open > .rb-bg-surface,
9112
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-serif-quote > .rb-bg-surface {
9113
- background: transparent;
9114
- }
9115
-
9116
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-open .rb-prose,
9117
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-serif-quote .rb-prose {
9118
- font-size: 1.0625rem;
9119
- line-height: 1.7;
9120
- }
9121
-
9122
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-open .rb-testimonial-attribution,
9123
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-serif-quote .rb-testimonial-attribution {
9124
- margin-top: 1.25rem;
9125
- padding-top: 1.25rem;
9126
- border-top: 1px solid rgba(var(--tb-border), 0.75);
9127
- }
9128
-
9129
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-open .rb-testimonial-avatar,
9130
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-serif-quote .rb-testimonial-avatar {
9131
- box-shadow:
9132
- 0 0 0 2px rgb(var(--tb-surface)),
9133
- 0 0 0 4px rgba(var(--tb-primary), 0.3);
9134
- }
9135
-
9136
9221
 
9137
9222
  /* Split grid: title column + cards. On desktop the title takes one quarter and
9138
9223
  * the cards fill the remaining three quarters (so title + 3 cards each read as
@@ -11586,282 +11671,6 @@
11586
11671
  }
11587
11672
 
11588
11673
 
11589
- /* =============================================================================
11590
- * Shared: Card treatments
11591
- *
11592
- * Visual treatments referenced from `_cardStyles.treatment` (see
11593
- * cardStylesOverrideSchema). Class names are emitted by the boxStyles
11594
- * transform in @riverbankcms/blocks.
11595
- *
11596
- * Also contains feature-card media/padding behaviour shared by all looks:
11597
- * - card images bleed to the card edges (flush photo tops)
11598
- * - card-level padding replaces the content stack's fallback padding so the
11599
- * two never stack up
11600
- * ============================================================================= */
11601
-
11602
- /* --- Feature card media + padding behaviour (all looks) -------------------- */
11603
-
11604
- /*
11605
- * When a look gives the card real padding (rb-container-pad-*), the image
11606
- * bleeds to the card edges and the inner content stack drops its fallback
11607
- * padding so insets don't double up.
11608
- */
11609
- :where(.theme-scope) .rb-feature-card[class*="rb-container-pad-"]:not(.rb-container-pad-none) > .rb-feature-card-media-frame {
11610
- width: calc(100% + 2 * var(--rb-card-pad, 0rem));
11611
- max-width: none;
11612
- margin: calc(-1 * var(--rb-card-pad, 0rem)) calc(-1 * var(--rb-card-pad, 0rem)) 0;
11613
- }
11614
-
11615
- :where(.theme-scope) .rb-feature-card[class*="rb-container-pad-"]:not(.rb-container-pad-none) > .rb-feature-card-media-frame + .rb-feature-card-content {
11616
- margin-top: 1.4rem;
11617
- }
11618
-
11619
- :where(.theme-scope) .rb-feature-card[class*="rb-container-pad-"]:not(.rb-container-pad-none) > .rb-feature-card-content {
11620
- padding: 0;
11621
- }
11622
-
11623
- /* --- Soft panel ------------------------------------------------------------ */
11624
-
11625
- :where(.theme-scope) .rb-card-treatment-soft-panel {
11626
- transition: transform 250ms ease, box-shadow 250ms ease;
11627
- }
11628
-
11629
- @media (prefers-reduced-motion: no-preference) {
11630
- :where(.theme-scope) .rb-card-treatment-soft-panel:hover {
11631
- transform: translateY(-3px);
11632
- box-shadow: 0 0.875rem 1.875rem rgba(var(--tb-shadow, 0 0 0), 0.1);
11633
- }
11634
- }
11635
-
11636
- :where(.theme-scope) .rb-card-treatment-soft-panel .cta-row .button-ghost {
11637
- padding-inline: 0;
11638
- }
11639
-
11640
- /* --- Editorial rule --------------------------------------------------------- */
11641
-
11642
- /*
11643
- * Boxless open column: no background, no border box, a short brand rule
11644
- * sitting on a full-width hairline at the top of the column.
11645
- */
11646
- :where(.theme-scope) .rb-card-treatment-editorial-rule {
11647
- margin-top: 1rem;
11648
- border-top: 1px solid
11649
- color-mix(in oklab, rgb(var(--tb-border, 229 231 235)), transparent 25%);
11650
- }
11651
-
11652
- :where(.theme-scope) .rb-card-treatment-editorial-rule > .rb-bg-surface {
11653
- background: transparent;
11654
- }
11655
-
11656
- :where(.theme-scope) .rb-card-treatment-editorial-rule::before {
11657
- content: "";
11658
- position: absolute;
11659
- top: 0;
11660
- left: 0;
11661
- width: 2.75rem;
11662
- height: 2px;
11663
- background: rgb(var(--tb-primary, 0 0 0));
11664
- }
11665
-
11666
- :where(.theme-scope) .rb-card-treatment-editorial-rule > .rb-feature-card-media-frame {
11667
- margin-top: 1.6rem;
11668
- border-radius: calc(var(--rb-block-radius, 0.75rem) * 0.5);
11669
- }
11670
-
11671
- :where(.theme-scope) .rb-feature-card > .rb-bg-surface,
11672
- :where(.theme-scope) .rb-feature-card > .rb-feature-card-media-frame {
11673
- border-start-start-radius: inherit;
11674
- border-start-end-radius: inherit;
11675
- }
11676
-
11677
- /* --- Editorial diptych + pathways ----------------------------------------- */
11678
-
11679
- :where(.theme-scope) .rb-feature-cards-heading--editorial {
11680
- margin-inline: 0;
11681
- text-align: left;
11682
- }
11683
-
11684
- :where(.theme-scope) .rb-feature-cards-eyebrow {
11685
- margin: 0;
11686
- color: rgb(var(--tb-accent));
11687
- font-size: 0.72rem;
11688
- font-weight: 600;
11689
- letter-spacing: 0.14em;
11690
- text-transform: uppercase;
11691
- }
11692
-
11693
- :where(.theme-scope) .rb-feature-cards-grid--editorial-diptych {
11694
- grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
11695
- align-items: stretch;
11696
- }
11697
-
11698
- :where(.theme-scope) .rb-feature-cards-grid--editorial-pathways {
11699
- grid-template-columns: repeat(2, minmax(0, 1fr));
11700
- align-items: start;
11701
- }
11702
-
11703
- :where(.theme-scope) .rb-feature-cards-grid:is(
11704
- .rb-feature-cards-grid--editorial-diptych,
11705
- .rb-feature-cards-grid--editorial-pathways
11706
- ) .rb-feature-card {
11707
- border: 0;
11708
- box-shadow: none;
11709
- height: auto;
11710
- min-width: 0;
11711
- }
11712
-
11713
- :where(.theme-scope) .rb-feature-cards-grid:is(
11714
- .rb-feature-cards-grid--editorial-diptych,
11715
- .rb-feature-cards-grid--editorial-pathways
11716
- ) .rb-feature-card[data-surface-role="open"] > .rb-bg-surface {
11717
- background: transparent;
11718
- }
11719
-
11720
- :where(.theme-scope) .rb-feature-cards-grid:is(
11721
- .rb-feature-cards-grid--editorial-diptych,
11722
- .rb-feature-cards-grid--editorial-pathways
11723
- ) .rb-feature-card[data-surface-role="open"] > .rb-feature-card-content {
11724
- padding-inline: 0;
11725
- }
11726
-
11727
- :where(.theme-scope) .rb-feature-cards-grid--editorial-pathways .rb-feature-card > .rb-bg-surface {
11728
- background: transparent;
11729
- }
11730
-
11731
- :where(.theme-scope) .rb-feature-cards-grid--editorial-pathways .rb-feature-card > .rb-feature-card-content {
11732
- padding-inline: 0;
11733
- }
11734
-
11735
- :where(.theme-scope) .rb-feature-cards-grid--editorial-diptych .rb-feature-card[data-surface-role="panel"] {
11736
- color: rgb(var(--tb-onPrimary));
11737
- --rb-surface-text-color: rgb(var(--tb-onPrimary));
11738
- --rb-surface-heading-color: rgb(var(--tb-onPrimary));
11739
- --rb-surface-link-color: rgb(var(--tb-onPrimary));
11740
- --rb-surface-supporting-color: color-mix(in oklab, rgb(var(--tb-onPrimary)), transparent 18%);
11741
- }
11742
-
11743
- :where(.theme-scope) .rb-feature-cards-grid--editorial-diptych .rb-feature-card[data-surface-role="panel"] > .rb-bg-surface {
11744
- background: rgb(var(--tb-primary));
11745
- border-radius: inherit;
11746
- }
11747
-
11748
- :where(.theme-scope) .rb-feature-cards-grid--editorial-diptych .rb-feature-card[data-surface-role="panel"] > .rb-feature-card-media-frame {
11749
- width: calc(100% - 2.5rem);
11750
- margin: 1.25rem 1.25rem 0;
11751
- border-radius: calc(var(--rb-block-radius, 0.75rem) * 0.55);
11752
- }
11753
-
11754
- :where(.theme-scope) .rb-feature-cards-grid--editorial-pathways .rb-feature-card-content {
11755
- padding-top: 1.35rem;
11756
- }
11757
-
11758
- @media (min-width: 768px) {
11759
- :where(.theme-scope) .rb-feature-cards-grid--editorial-diptych .rb-feature-card[data-surface-role="panel"] {
11760
- margin-top: clamp(2rem, 5vw, 4.5rem);
11761
- }
11762
-
11763
- :where(.theme-scope) .rb-feature-cards-grid--editorial-pathways .rb-feature-card + .rb-feature-card {
11764
- border-left: 1px solid color-mix(in oklab, currentColor, transparent 82%);
11765
- padding-left: clamp(1.5rem, 4vw, 4rem);
11766
- }
11767
- }
11768
-
11769
- @media (max-width: 767px) {
11770
- :where(.theme-scope) .rb-feature-cards-grid:is(
11771
- .rb-feature-cards-grid--editorial-diptych,
11772
- .rb-feature-cards-grid--editorial-pathways
11773
- ) {
11774
- grid-template-columns: minmax(0, 1fr);
11775
- }
11776
- }
11777
-
11778
- :where(.theme-scope) .rb-card-treatment-editorial-rule > .rb-feature-card-content {
11779
- padding: 1.6rem 0 0.25rem;
11780
- }
11781
-
11782
- :where(.theme-scope) .rb-card-treatment-editorial-rule .cta-row .button-ghost {
11783
- padding-inline: 0;
11784
- }
11785
-
11786
- /* --- Colour-blocked --------------------------------------------------------- */
11787
-
11788
- /*
11789
- * Bold, flat cards that each take a different palette colour by position,
11790
- * cycled across the grid, with a staggered vertical offset on wider screens.
11791
- * The background layer (`.rb-bg-surface`) is recoloured per card; the card's
11792
- * text colour is set to the matching on-colour so content stays readable.
11793
- */
11794
- :where(.theme-scope) .rb-card-treatment-color-blocked {
11795
- box-shadow: none;
11796
- }
11797
-
11798
- /* Per-card colour cycle. The `on*` colours are always derived by the palette
11799
- * (expandPalette emits onSurface/onSecondary/onPrimary), so no fallback. */
11800
- :where(.theme-scope) .rb-card-treatment-color-blocked:nth-child(3n + 1) > .rb-bg-surface {
11801
- background: rgb(var(--tb-surface));
11802
- }
11803
- :where(.theme-scope) .rb-card-treatment-color-blocked:nth-child(3n + 1) {
11804
- background: rgb(var(--tb-surface));
11805
- color: rgb(var(--tb-onSurface));
11806
- --rb-surface-text-color: rgb(var(--tb-onSurface));
11807
- --rb-surface-heading-color: rgb(var(--tb-onSurface));
11808
- --rb-surface-link-color: rgb(var(--tb-onSurface));
11809
- --rb-surface-supporting-color: rgb(var(--tb-onSurface));
11810
- }
11811
-
11812
- :where(.theme-scope) .rb-card-treatment-color-blocked:nth-child(3n + 2) > .rb-bg-surface {
11813
- background: rgb(var(--tb-secondary));
11814
- }
11815
- :where(.theme-scope) .rb-card-treatment-color-blocked:nth-child(3n + 2) {
11816
- background: rgb(var(--tb-secondary));
11817
- color: rgb(var(--tb-onSecondary));
11818
- --rb-surface-text-color: rgb(var(--tb-onSecondary));
11819
- --rb-surface-heading-color: rgb(var(--tb-onSecondary));
11820
- --rb-surface-link-color: rgb(var(--tb-onSecondary));
11821
- --rb-surface-supporting-color: rgb(var(--tb-onSecondary));
11822
- }
11823
-
11824
- :where(.theme-scope) .rb-card-treatment-color-blocked:nth-child(3n + 3) > .rb-bg-surface {
11825
- background: rgb(var(--tb-primary));
11826
- }
11827
- :where(.theme-scope) .rb-card-treatment-color-blocked:nth-child(3n + 3) {
11828
- background: rgb(var(--tb-primary));
11829
- color: rgb(var(--tb-onPrimary));
11830
- --rb-surface-text-color: rgb(var(--tb-onPrimary));
11831
- --rb-surface-heading-color: rgb(var(--tb-onPrimary));
11832
- --rb-surface-link-color: rgb(var(--tb-onPrimary));
11833
- --rb-surface-supporting-color: rgb(var(--tb-onPrimary));
11834
- }
11835
-
11836
- /* Keep the intended visual hierarchy; the body color itself now resolves via
11837
- * the nearest surface provider instead of requiring an inline override. */
11838
- :where(.theme-scope) .rb-card-treatment-color-blocked .rb-feature-card-body {
11839
- opacity: 0.9;
11840
- }
11841
-
11842
- /* The number marker defaults to the brand accent, which collides with the
11843
- * primary-coloured card in the cycle. On colour-blocked cards use the card's
11844
- * own on-colour (the palette guarantees it's legible on that background) and a
11845
- * faint tint of it for the badge, so the number always contrasts. */
11846
- :where(.theme-scope) .rb-card-treatment-color-blocked .rb-feature-card-number-zone {
11847
- color: inherit;
11848
- background-color: color-mix(in oklab, currentColor, transparent 88%);
11849
- }
11850
-
11851
- /* Staggered offset: drop the middle column on wider screens. Scoped to a 3-up
11852
- * grid (`.rb-grid-cols-3`) so 2-/4-column grids don't get a misaligned stagger;
11853
- * the colour cycle still reads as a diagonal at any column count. */
11854
- @media (min-width: 768px) {
11855
- :where(.theme-scope) .rb-grid-cols-3 .rb-card-treatment-color-blocked:nth-child(3n + 2) {
11856
- margin-top: 2.75rem;
11857
- /* Override the card's `h-full` so the grid's stretch shrinks the card by the
11858
- * margin (a genuinely shorter card) instead of keeping full height and
11859
- * overflowing the section, which clips the rounded bottom corners. */
11860
- height: auto;
11861
- }
11862
- }
11863
-
11864
-
11865
11674
  :where(.theme-scope) [data-block="intro"][data-block-composition="portrait-bio"][data-block-variant="media-copy"] .rb-intro-media-wrap {
11866
11675
  max-width: min(100%, 24rem);
11867
11676
  margin-inline: auto;
@@ -12366,8 +12175,9 @@
12366
12175
  border-radius: var(--rb-block-radius, 0.75rem);
12367
12176
  }
12368
12177
 
12369
- /* Framed programme: a close-set family of inset cards on a semantic depth
12370
- * 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. */
12371
12181
  :where(.theme-scope)
12372
12182
  [data-block="feature-cards"][data-block-composition="framed-programme"]
12373
12183
  .rb-feature-cards-grid {
@@ -12398,6 +12208,131 @@
12398
12208
  }
12399
12209
  }
12400
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
+
12401
12336
 
12402
12337
  /* =============================================================================
12403
12338
  * Offerings Preview composition Looks promoted from the Fran André treatment
@@ -12793,4 +12728,49 @@
12793
12728
  }
12794
12729
  }
12795
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
+
12796
12776