@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
@@ -14,12 +14,35 @@ export type CardSpacing = 'none' | 'compact' | 'cozy' | 'medium' | 'comfortable'
14
14
  export type GradientDirection = 'to-r' | 'to-l' | 'to-t' | 'to-b' | 'to-tr' | 'to-tl' | 'to-br' | 'to-bl';
15
15
  export declare const cardVariantRoleValues: readonly ["default", "alternative"];
16
16
  export declare const boxlessCardVariantValue: "none";
17
+ export declare const openCardRoleValue: "open";
17
18
  export type CardVariantRole = (typeof cardVariantRoleValues)[number];
18
19
  export type BoxlessCardVariant = typeof boxlessCardVariantValue;
19
20
  export type BoxStylesCardVariant = CardVariantRole | BoxlessCardVariant;
21
+ /**
22
+ * The roles a site style implements with an actual card variant. `none` is
23
+ * deliberately absent: it is a role value only, never a variant.
24
+ */
25
+ export declare const surfaceCardRoleValues: readonly ["default", "alternative", "open"];
26
+ export type SurfaceCardRole = (typeof surfaceCardRoleValues)[number];
27
+ /**
28
+ * The closed card-role vocabulary Looks and blocks address cards by — this is
29
+ * `BoxStylesCardVariant` widened with `open`, not a parallel enum.
30
+ *
31
+ * - `none` — no site-style card surface; the block's own composition and
32
+ * the author's own card fields govern the item. This is *not*
33
+ * a promise of visible boxlessness: a block whose base class
34
+ * draws a border still draws one. It says the Look is not
35
+ * asking the site style for a card.
36
+ * - `open` — boxless but marked (a rule or accent edge, no enclosing box)
37
+ * - `default` — the site's quiet everyday card
38
+ * - `alternative` — the statement card carrying the site's personality
39
+ */
40
+ export declare const cardRoleValues: readonly ["default", "alternative", "open", "none"];
41
+ export type CardRole = (typeof cardRoleValues)[number];
20
42
  export declare const legacyCardVariantRoleAliases: {
21
43
  readonly variant1: "alternative";
22
44
  readonly variant2: "alternative";
45
+ readonly statement: "alternative";
23
46
  };
24
47
  export type LegacyCardVariantRoleAlias = keyof typeof legacyCardVariantRoleAliases;
25
48
  export type CardBackground = {
@@ -33,10 +56,10 @@ export type CardBackground = {
33
56
  } | {
34
57
  type: 'transparent';
35
58
  };
36
- export interface CardBorder {
59
+ export type CardBorder = {
37
60
  widthClass: string;
38
61
  colorToken: string;
39
- }
62
+ };
40
63
  export declare const cardSpacingSchema: z.ZodEnum<{
41
64
  medium: "medium";
42
65
  none: "none";
@@ -45,6 +68,57 @@ export declare const cardSpacingSchema: z.ZodEnum<{
45
68
  spacious: "spacious";
46
69
  cozy: "cozy";
47
70
  }>;
71
+ /** Per-axis padding, for boxless cards whose inline padding differs from block. */
72
+ export declare const cardSpacingAxesSchema: z.ZodObject<{
73
+ block: z.ZodEnum<{
74
+ medium: "medium";
75
+ none: "none";
76
+ compact: "compact";
77
+ comfortable: "comfortable";
78
+ spacious: "spacious";
79
+ cozy: "cozy";
80
+ }>;
81
+ inline: z.ZodEnum<{
82
+ medium: "medium";
83
+ none: "none";
84
+ compact: "compact";
85
+ comfortable: "comfortable";
86
+ spacious: "spacious";
87
+ cozy: "cozy";
88
+ }>;
89
+ }, z.core.$strip>;
90
+ export type CardSpacingAxes = z.infer<typeof cardSpacingAxesSchema>;
91
+ /**
92
+ * A card's content padding: one value for both axes, or one per axis. Two
93
+ * fields would let a variant say both and leave the reader to guess, so this is
94
+ * a union — the legacy `spacingAxes` key is lifted into it on parse.
95
+ */
96
+ export declare const cardSpacingValueSchema: z.ZodUnion<readonly [z.ZodEnum<{
97
+ medium: "medium";
98
+ none: "none";
99
+ compact: "compact";
100
+ comfortable: "comfortable";
101
+ spacious: "spacious";
102
+ cozy: "cozy";
103
+ }>, z.ZodObject<{
104
+ block: z.ZodEnum<{
105
+ medium: "medium";
106
+ none: "none";
107
+ compact: "compact";
108
+ comfortable: "comfortable";
109
+ spacious: "spacious";
110
+ cozy: "cozy";
111
+ }>;
112
+ inline: z.ZodEnum<{
113
+ medium: "medium";
114
+ none: "none";
115
+ compact: "compact";
116
+ comfortable: "comfortable";
117
+ spacious: "spacious";
118
+ cozy: "cozy";
119
+ }>;
120
+ }, z.core.$strip>]>;
121
+ export type CardSpacingValue = z.infer<typeof cardSpacingValueSchema>;
48
122
  export declare const gradientDirectionSchema: z.ZodEnum<{
49
123
  "to-r": "to-r";
50
124
  "to-l": "to-l";
@@ -59,14 +133,45 @@ export declare const cardVariantRoleSchema: z.ZodEnum<{
59
133
  default: "default";
60
134
  alternative: "alternative";
61
135
  }>;
136
+ export declare const surfaceCardRoleSchema: z.ZodEnum<{
137
+ open: "open";
138
+ default: "default";
139
+ alternative: "alternative";
140
+ }>;
141
+ export declare const cardRoleSchema: z.ZodEnum<{
142
+ open: "open";
143
+ default: "default";
144
+ none: "none";
145
+ alternative: "alternative";
146
+ }>;
147
+ /**
148
+ * Historical name for the role vocabulary as it reaches box styles. Widened to
149
+ * the full `CardRole` set — old values keep parsing, `open` now parses too.
150
+ */
62
151
  export declare const boxStylesCardVariantSchema: z.ZodEnum<{
152
+ open: "open";
63
153
  default: "default";
64
154
  none: "none";
65
155
  alternative: "alternative";
66
156
  }>;
67
157
  export declare function isCardVariantRole(value: unknown): value is CardVariantRole;
68
158
  export declare function normalizeCardVariantRole(value: unknown): CardVariantRole | null;
69
- export declare function normalizeBoxStylesCardVariant(value: unknown): BoxStylesCardVariant | null;
159
+ /**
160
+ * The one untrusted-input boundary for the role vocabulary. Legacy alias values
161
+ * (`variant1`, `variant2`, `statement`) normalize here and nowhere else.
162
+ */
163
+ export declare function normalizeCardRole(value: unknown): CardRole | null;
164
+ /** Historical name for {@link normalizeCardRole}. */
165
+ export declare const normalizeBoxStylesCardVariant: typeof normalizeCardRole;
166
+ /**
167
+ * Role inference for legacy card systems authored before variants carried a
168
+ * `role`. Priority 1 is the everyday card, priority 2 the statement card —
169
+ * which is how variants are surfaced today. `open` is never inferred: a site
170
+ * style has to opt into it.
171
+ */
172
+ export declare function inferCardVariantRoleFromPriority(priority: 1 | 2 | 3): SurfaceCardRole | null;
173
+ /** The role a variant implements, explicit or inferred. */
174
+ export declare function cardVariantRole(variant: Pick<CardVariant, 'role' | 'priority'>): SurfaceCardRole | null;
70
175
  export declare const cardBackgroundSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
71
176
  type: z.ZodLiteral<"solid">;
72
177
  colorToken: z.ZodString;
@@ -100,9 +205,17 @@ export declare const cardCornerValueSchema: z.ZodEnum<{
100
205
  expressive: "expressive";
101
206
  }>;
102
207
  export type CardCornerValue = z.infer<typeof cardCornerValueSchema>;
208
+ export declare const cardEdgeSchema: z.ZodEnum<{
209
+ left: "left";
210
+ right: "right";
211
+ bottom: "bottom";
212
+ top: "top";
213
+ }>;
214
+ export type CardEdge = z.infer<typeof cardEdgeSchema>;
103
215
  /**
104
- * A single accented card edge (e.g. a left accent bar). When set, it replaces
105
- * the full `border` so the card reads as edge-accented rather than outlined.
216
+ * Legacy single accented card edge (e.g. a left accent bar). Persisted and
217
+ * curated data may still carry it; it lifts into a one-element `decorations`
218
+ * list at the parse boundary and has no representation after that.
106
219
  */
107
220
  export declare const cardAccentEdgeSchema: z.ZodObject<{
108
221
  edge: z.ZodEnum<{
@@ -120,6 +233,113 @@ export declare const cardAccentEdgeSchema: z.ZodObject<{
120
233
  }>;
121
234
  }, z.core.$strip>;
122
235
  export type CardAccentEdge = z.infer<typeof cardAccentEdgeSchema>;
236
+ /** `hairline` (1px) is the widening the boxless `open` role needs. */
237
+ export declare const cardEdgeRuleWidthSchema: z.ZodEnum<{
238
+ medium: "medium";
239
+ thin: "thin";
240
+ thick: "thick";
241
+ hairline: "hairline";
242
+ heavy: "heavy";
243
+ }>;
244
+ export type CardEdgeRuleWidth = z.infer<typeof cardEdgeRuleWidthSchema>;
245
+ export declare const cardEdgeRuleLengthSchema: z.ZodEnum<{
246
+ short: "short";
247
+ full: "full";
248
+ }>;
249
+ export declare const cardEdgeRuleAlignSchema: z.ZodEnum<{
250
+ center: "center";
251
+ end: "end";
252
+ start: "start";
253
+ }>;
254
+ /**
255
+ * A rule drawn along one card edge. `full` renders as a border side; `short`
256
+ * renders as a pseudo-element of a fixed length, which is how a hairline and a
257
+ * brand accent coexist on the same edge (the `open` role's treatment).
258
+ */
259
+ export declare const cardEdgeRuleSchema: z.ZodObject<{
260
+ edge: z.ZodEnum<{
261
+ left: "left";
262
+ right: "right";
263
+ bottom: "bottom";
264
+ top: "top";
265
+ }>;
266
+ colorToken: z.ZodString;
267
+ width: z.ZodEnum<{
268
+ medium: "medium";
269
+ thin: "thin";
270
+ thick: "thick";
271
+ hairline: "hairline";
272
+ heavy: "heavy";
273
+ }>;
274
+ length: z.ZodOptional<z.ZodEnum<{
275
+ short: "short";
276
+ full: "full";
277
+ }>>;
278
+ align: z.ZodOptional<z.ZodEnum<{
279
+ center: "center";
280
+ end: "end";
281
+ start: "start";
282
+ }>>;
283
+ alpha: z.ZodOptional<z.ZodNumber>;
284
+ }, z.core.$strip>;
285
+ export type CardEdgeRule = z.infer<typeof cardEdgeRuleSchema>;
286
+ /**
287
+ * Decorations are edge rules today. The alias exists so the list can grow into
288
+ * a discriminated union without every call site changing.
289
+ */
290
+ export declare const cardDecorationSchema: z.ZodObject<{
291
+ edge: z.ZodEnum<{
292
+ left: "left";
293
+ right: "right";
294
+ bottom: "bottom";
295
+ top: "top";
296
+ }>;
297
+ colorToken: z.ZodString;
298
+ width: z.ZodEnum<{
299
+ medium: "medium";
300
+ thin: "thin";
301
+ thick: "thick";
302
+ hairline: "hairline";
303
+ heavy: "heavy";
304
+ }>;
305
+ length: z.ZodOptional<z.ZodEnum<{
306
+ short: "short";
307
+ full: "full";
308
+ }>>;
309
+ align: z.ZodOptional<z.ZodEnum<{
310
+ center: "center";
311
+ end: "end";
312
+ start: "start";
313
+ }>>;
314
+ alpha: z.ZodOptional<z.ZodNumber>;
315
+ }, z.core.$strip>;
316
+ export type CardDecoration = CardEdgeRule;
317
+ export declare const cardDecorationsSchema: z.ZodArray<z.ZodObject<{
318
+ edge: z.ZodEnum<{
319
+ left: "left";
320
+ right: "right";
321
+ bottom: "bottom";
322
+ top: "top";
323
+ }>;
324
+ colorToken: z.ZodString;
325
+ width: z.ZodEnum<{
326
+ medium: "medium";
327
+ thin: "thin";
328
+ thick: "thick";
329
+ hairline: "hairline";
330
+ heavy: "heavy";
331
+ }>;
332
+ length: z.ZodOptional<z.ZodEnum<{
333
+ short: "short";
334
+ full: "full";
335
+ }>>;
336
+ align: z.ZodOptional<z.ZodEnum<{
337
+ center: "center";
338
+ end: "end";
339
+ start: "start";
340
+ }>>;
341
+ alpha: z.ZodOptional<z.ZodNumber>;
342
+ }, z.core.$strip>>;
123
343
  export declare const cardCornerRadiiSchema: z.ZodObject<{
124
344
  topLeft: z.ZodOptional<z.ZodEnum<{
125
345
  soft: "soft";
@@ -151,11 +371,16 @@ export declare const cardCornerRadiiSchema: z.ZodObject<{
151
371
  }>>;
152
372
  }, z.core.$strip>;
153
373
  export type CardCornerRadii = z.infer<typeof cardCornerRadiiSchema>;
154
- export declare const cardVariantSchema: z.ZodObject<{
374
+ export declare const cardVariantSchema: z.ZodPipe<z.ZodObject<{
155
375
  id: z.ZodString;
156
376
  name: z.ZodString;
157
377
  enabled: z.ZodBoolean;
158
378
  priority: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>;
379
+ role: z.ZodOptional<z.ZodEnum<{
380
+ open: "open";
381
+ default: "default";
382
+ alternative: "alternative";
383
+ }>>;
159
384
  background: z.ZodDiscriminatedUnion<[z.ZodObject<{
160
385
  type: z.ZodLiteral<"solid">;
161
386
  colorToken: z.ZodString;
@@ -176,14 +401,49 @@ export declare const cardVariantSchema: z.ZodObject<{
176
401
  }, z.core.$strip>, z.ZodObject<{
177
402
  type: z.ZodLiteral<"transparent">;
178
403
  }, z.core.$strip>], "type">;
179
- spacing: z.ZodEnum<{
404
+ spacing: z.ZodUnion<readonly [z.ZodEnum<{
180
405
  medium: "medium";
181
406
  none: "none";
182
407
  compact: "compact";
183
408
  comfortable: "comfortable";
184
409
  spacious: "spacious";
185
410
  cozy: "cozy";
186
- }>;
411
+ }>, z.ZodObject<{
412
+ block: z.ZodEnum<{
413
+ medium: "medium";
414
+ none: "none";
415
+ compact: "compact";
416
+ comfortable: "comfortable";
417
+ spacious: "spacious";
418
+ cozy: "cozy";
419
+ }>;
420
+ inline: z.ZodEnum<{
421
+ medium: "medium";
422
+ none: "none";
423
+ compact: "compact";
424
+ comfortable: "comfortable";
425
+ spacious: "spacious";
426
+ cozy: "cozy";
427
+ }>;
428
+ }, z.core.$strip>]>;
429
+ spacingAxes: z.ZodOptional<z.ZodObject<{
430
+ block: z.ZodEnum<{
431
+ medium: "medium";
432
+ none: "none";
433
+ compact: "compact";
434
+ comfortable: "comfortable";
435
+ spacious: "spacious";
436
+ cozy: "cozy";
437
+ }>;
438
+ inline: z.ZodEnum<{
439
+ medium: "medium";
440
+ none: "none";
441
+ compact: "compact";
442
+ comfortable: "comfortable";
443
+ spacious: "spacious";
444
+ cozy: "cozy";
445
+ }>;
446
+ }, z.core.$strip>>;
187
447
  foregroundToken: z.ZodOptional<z.ZodString>;
188
448
  shadow: z.ZodOptional<z.ZodObject<{
189
449
  elevation: z.ZodEnum<{
@@ -242,6 +502,32 @@ export declare const cardVariantSchema: z.ZodObject<{
242
502
  widthClass: z.ZodString;
243
503
  colorToken: z.ZodString;
244
504
  }, z.core.$strip>>;
505
+ decorations: z.ZodOptional<z.ZodArray<z.ZodObject<{
506
+ edge: z.ZodEnum<{
507
+ left: "left";
508
+ right: "right";
509
+ bottom: "bottom";
510
+ top: "top";
511
+ }>;
512
+ colorToken: z.ZodString;
513
+ width: z.ZodEnum<{
514
+ medium: "medium";
515
+ thin: "thin";
516
+ thick: "thick";
517
+ hairline: "hairline";
518
+ heavy: "heavy";
519
+ }>;
520
+ length: z.ZodOptional<z.ZodEnum<{
521
+ short: "short";
522
+ full: "full";
523
+ }>>;
524
+ align: z.ZodOptional<z.ZodEnum<{
525
+ center: "center";
526
+ end: "end";
527
+ start: "start";
528
+ }>>;
529
+ alpha: z.ZodOptional<z.ZodNumber>;
530
+ }, z.core.$strip>>>;
245
531
  accentEdge: z.ZodOptional<z.ZodObject<{
246
532
  edge: z.ZodEnum<{
247
533
  left: "left";
@@ -257,13 +543,73 @@ export declare const cardVariantSchema: z.ZodObject<{
257
543
  heavy: "heavy";
258
544
  }>;
259
545
  }, z.core.$strip>>;
260
- }, z.core.$strip>;
261
- export declare const cardSystemSchema: z.ZodObject<{
262
- variants: z.ZodArray<z.ZodObject<{
546
+ }, z.core.$strip>, z.ZodTransform<CardVariant, {
547
+ id: string;
548
+ name: string;
549
+ enabled: boolean;
550
+ priority: 1 | 3 | 2;
551
+ background: {
552
+ type: "solid";
553
+ colorToken: string;
554
+ } | {
555
+ type: "gradient";
556
+ fromToken: string;
557
+ toToken: string;
558
+ direction: "to-r" | "to-l" | "to-t" | "to-b" | "to-tr" | "to-tl" | "to-br" | "to-bl";
559
+ } | {
560
+ type: "transparent";
561
+ };
562
+ spacing: "medium" | "none" | "compact" | "comfortable" | "spacious" | "cozy" | {
563
+ block: "medium" | "none" | "compact" | "comfortable" | "spacious" | "cozy";
564
+ inline: "medium" | "none" | "compact" | "comfortable" | "spacious" | "cozy";
565
+ };
566
+ role?: "open" | "default" | "alternative" | undefined;
567
+ spacingAxes?: {
568
+ block: "medium" | "none" | "compact" | "comfortable" | "spacious" | "cozy";
569
+ inline: "medium" | "none" | "compact" | "comfortable" | "spacious" | "cozy";
570
+ } | undefined;
571
+ foregroundToken?: string | undefined;
572
+ shadow?: {
573
+ elevation: "medium" | "none" | "high" | "low";
574
+ softness: "crisp" | "soft" | "hard" | null;
575
+ position: "bottom" | "bottom-right";
576
+ } | undefined;
577
+ corners?: "soft" | "square" | "rounded" | "pill" | undefined;
578
+ cornerRadii?: {
579
+ topLeft?: "soft" | "square" | "rounded" | "pill" | "expressive" | undefined;
580
+ topRight?: "soft" | "square" | "rounded" | "pill" | "expressive" | undefined;
581
+ bottomLeft?: "soft" | "square" | "rounded" | "pill" | "expressive" | undefined;
582
+ bottomRight?: "soft" | "square" | "rounded" | "pill" | "expressive" | undefined;
583
+ } | undefined;
584
+ border?: {
585
+ widthClass: string;
586
+ colorToken: string;
587
+ } | undefined;
588
+ decorations?: {
589
+ edge: "left" | "right" | "bottom" | "top";
590
+ colorToken: string;
591
+ width: "medium" | "thin" | "thick" | "hairline" | "heavy";
592
+ length?: "short" | "full" | undefined;
593
+ align?: "center" | "end" | "start" | undefined;
594
+ alpha?: number | undefined;
595
+ }[] | undefined;
596
+ accentEdge?: {
597
+ edge: "left" | "right" | "bottom" | "top";
598
+ colorToken: string;
599
+ width: "medium" | "thin" | "thick" | "heavy";
600
+ } | undefined;
601
+ }>>;
602
+ export declare const cardSystemSchema: z.ZodPipe<z.ZodObject<{
603
+ variants: z.ZodArray<z.ZodPipe<z.ZodObject<{
263
604
  id: z.ZodString;
264
605
  name: z.ZodString;
265
606
  enabled: z.ZodBoolean;
266
607
  priority: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>;
608
+ role: z.ZodOptional<z.ZodEnum<{
609
+ open: "open";
610
+ default: "default";
611
+ alternative: "alternative";
612
+ }>>;
267
613
  background: z.ZodDiscriminatedUnion<[z.ZodObject<{
268
614
  type: z.ZodLiteral<"solid">;
269
615
  colorToken: z.ZodString;
@@ -284,14 +630,49 @@ export declare const cardSystemSchema: z.ZodObject<{
284
630
  }, z.core.$strip>, z.ZodObject<{
285
631
  type: z.ZodLiteral<"transparent">;
286
632
  }, z.core.$strip>], "type">;
287
- spacing: z.ZodEnum<{
633
+ spacing: z.ZodUnion<readonly [z.ZodEnum<{
288
634
  medium: "medium";
289
635
  none: "none";
290
636
  compact: "compact";
291
637
  comfortable: "comfortable";
292
638
  spacious: "spacious";
293
639
  cozy: "cozy";
294
- }>;
640
+ }>, z.ZodObject<{
641
+ block: z.ZodEnum<{
642
+ medium: "medium";
643
+ none: "none";
644
+ compact: "compact";
645
+ comfortable: "comfortable";
646
+ spacious: "spacious";
647
+ cozy: "cozy";
648
+ }>;
649
+ inline: z.ZodEnum<{
650
+ medium: "medium";
651
+ none: "none";
652
+ compact: "compact";
653
+ comfortable: "comfortable";
654
+ spacious: "spacious";
655
+ cozy: "cozy";
656
+ }>;
657
+ }, z.core.$strip>]>;
658
+ spacingAxes: z.ZodOptional<z.ZodObject<{
659
+ block: z.ZodEnum<{
660
+ medium: "medium";
661
+ none: "none";
662
+ compact: "compact";
663
+ comfortable: "comfortable";
664
+ spacious: "spacious";
665
+ cozy: "cozy";
666
+ }>;
667
+ inline: z.ZodEnum<{
668
+ medium: "medium";
669
+ none: "none";
670
+ compact: "compact";
671
+ comfortable: "comfortable";
672
+ spacious: "spacious";
673
+ cozy: "cozy";
674
+ }>;
675
+ }, z.core.$strip>>;
295
676
  foregroundToken: z.ZodOptional<z.ZodString>;
296
677
  shadow: z.ZodOptional<z.ZodObject<{
297
678
  elevation: z.ZodEnum<{
@@ -350,6 +731,32 @@ export declare const cardSystemSchema: z.ZodObject<{
350
731
  widthClass: z.ZodString;
351
732
  colorToken: z.ZodString;
352
733
  }, z.core.$strip>>;
734
+ decorations: z.ZodOptional<z.ZodArray<z.ZodObject<{
735
+ edge: z.ZodEnum<{
736
+ left: "left";
737
+ right: "right";
738
+ bottom: "bottom";
739
+ top: "top";
740
+ }>;
741
+ colorToken: z.ZodString;
742
+ width: z.ZodEnum<{
743
+ medium: "medium";
744
+ thin: "thin";
745
+ thick: "thick";
746
+ hairline: "hairline";
747
+ heavy: "heavy";
748
+ }>;
749
+ length: z.ZodOptional<z.ZodEnum<{
750
+ short: "short";
751
+ full: "full";
752
+ }>>;
753
+ align: z.ZodOptional<z.ZodEnum<{
754
+ center: "center";
755
+ end: "end";
756
+ start: "start";
757
+ }>>;
758
+ alpha: z.ZodOptional<z.ZodNumber>;
759
+ }, z.core.$strip>>>;
353
760
  accentEdge: z.ZodOptional<z.ZodObject<{
354
761
  edge: z.ZodEnum<{
355
762
  left: "left";
@@ -365,22 +772,83 @@ export declare const cardSystemSchema: z.ZodObject<{
365
772
  heavy: "heavy";
366
773
  }>;
367
774
  }, z.core.$strip>>;
368
- }, z.core.$strip>>;
369
- }, z.core.$strip>;
370
- export interface CardVariant {
775
+ }, z.core.$strip>, z.ZodTransform<CardVariant, {
776
+ id: string;
777
+ name: string;
778
+ enabled: boolean;
779
+ priority: 1 | 3 | 2;
780
+ background: {
781
+ type: "solid";
782
+ colorToken: string;
783
+ } | {
784
+ type: "gradient";
785
+ fromToken: string;
786
+ toToken: string;
787
+ direction: "to-r" | "to-l" | "to-t" | "to-b" | "to-tr" | "to-tl" | "to-br" | "to-bl";
788
+ } | {
789
+ type: "transparent";
790
+ };
791
+ spacing: "medium" | "none" | "compact" | "comfortable" | "spacious" | "cozy" | {
792
+ block: "medium" | "none" | "compact" | "comfortable" | "spacious" | "cozy";
793
+ inline: "medium" | "none" | "compact" | "comfortable" | "spacious" | "cozy";
794
+ };
795
+ role?: "open" | "default" | "alternative" | undefined;
796
+ spacingAxes?: {
797
+ block: "medium" | "none" | "compact" | "comfortable" | "spacious" | "cozy";
798
+ inline: "medium" | "none" | "compact" | "comfortable" | "spacious" | "cozy";
799
+ } | undefined;
800
+ foregroundToken?: string | undefined;
801
+ shadow?: {
802
+ elevation: "medium" | "none" | "high" | "low";
803
+ softness: "crisp" | "soft" | "hard" | null;
804
+ position: "bottom" | "bottom-right";
805
+ } | undefined;
806
+ corners?: "soft" | "square" | "rounded" | "pill" | undefined;
807
+ cornerRadii?: {
808
+ topLeft?: "soft" | "square" | "rounded" | "pill" | "expressive" | undefined;
809
+ topRight?: "soft" | "square" | "rounded" | "pill" | "expressive" | undefined;
810
+ bottomLeft?: "soft" | "square" | "rounded" | "pill" | "expressive" | undefined;
811
+ bottomRight?: "soft" | "square" | "rounded" | "pill" | "expressive" | undefined;
812
+ } | undefined;
813
+ border?: {
814
+ widthClass: string;
815
+ colorToken: string;
816
+ } | undefined;
817
+ decorations?: {
818
+ edge: "left" | "right" | "bottom" | "top";
819
+ colorToken: string;
820
+ width: "medium" | "thin" | "thick" | "hairline" | "heavy";
821
+ length?: "short" | "full" | undefined;
822
+ align?: "center" | "end" | "start" | undefined;
823
+ alpha?: number | undefined;
824
+ }[] | undefined;
825
+ accentEdge?: {
826
+ edge: "left" | "right" | "bottom" | "top";
827
+ colorToken: string;
828
+ width: "medium" | "thin" | "thick" | "heavy";
829
+ } | undefined;
830
+ }>>>;
831
+ }, z.core.$strip>, z.ZodTransform<CardSystem, {
832
+ variants: CardVariant[];
833
+ }>>;
834
+ export type CardVariant = {
371
835
  id: string;
372
836
  name: string;
373
837
  enabled: boolean;
374
838
  priority: 1 | 2 | 3;
839
+ /** Falls back to `priority`-based inference when absent. */
840
+ role?: SurfaceCardRole;
375
841
  background: CardBackground;
376
- spacing: CardSpacing;
842
+ /** One value for both axes, or one per axis. */
843
+ spacing: CardSpacingValue;
377
844
  foregroundToken?: string;
378
845
  shadow?: Shadow;
379
846
  corners?: 'square' | 'soft' | 'rounded' | 'pill';
380
847
  cornerRadii?: CardCornerRadii;
381
848
  border?: CardBorder;
382
- accentEdge?: CardAccentEdge;
383
- }
384
- export interface CardSystem {
849
+ /** Edge rules drawn on the card. At most two. */
850
+ decorations?: CardDecoration[];
851
+ };
852
+ export type CardSystem = {
385
853
  variants: CardVariant[];
386
- }
854
+ };