@riverbankcms/sdk 0.149.0 → 0.150.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/dist/EventEmbeddedCheckoutStep-D00Kc8Zj.mjs +285 -0
  2. package/dist/{PreviewEditorSidebar-DBKln68M.mjs → PreviewEditorSidebar-7ZhmmnBB.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-DpRX4Mum.mjs → PreviewEditorUI-BIJucTRd.mjs} +2 -2
  4. package/dist/{SdkPreviewModeRuntime-DJPmPY-r.mjs → SdkPreviewModeRuntime-tj45gmCX.mjs} +4 -3
  5. package/dist/{SiteChromeCustomizeContext-JYA0cJ_Z.mjs → SiteChromeCustomizeContext-BFOt0ss-.mjs} +4454 -4059
  6. package/dist/_dts/ai/src/contracts/proposals.d.ts +660 -0
  7. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +510 -0
  8. package/dist/_dts/api/src/billing.d.ts +2 -2
  9. package/dist/_dts/api/src/contentRuntime.d.ts +5 -1
  10. package/dist/_dts/api/src/footerCompositionContracts.d.ts +9 -0
  11. package/dist/_dts/api/src/footerSettings.d.ts +3 -3
  12. package/dist/_dts/api/src/index.d.ts +1 -1
  13. package/dist/_dts/api/src/navigation/bookingPortalLink.d.ts +13 -0
  14. package/dist/_dts/api/src/navigation.d.ts +1 -0
  15. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +9 -173
  16. package/dist/_dts/api/src/sdkThemeWire.d.ts +12 -0
  17. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +3 -3
  18. package/dist/_dts/api/src/siteSettings.d.ts +2 -0
  19. package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -1
  20. package/dist/_dts/blocks/src/client.d.ts +2 -1
  21. package/dist/_dts/blocks/src/rendering/server.d.ts +1 -1
  22. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +30 -3
  23. package/dist/_dts/blocks/src/system/designCapabilities.d.ts +10 -1
  24. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  25. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +38 -18
  26. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +1 -1
  27. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.server.d.ts +6 -0
  28. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventEmbeddedCheckoutStep.d.ts +13 -0
  29. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationPayment.d.ts +15 -0
  30. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +0 -1
  31. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/FullyBookedStep.d.ts +6 -0
  32. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentBlockingPanel.d.ts +3 -0
  33. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentSelectionStep.d.ts +2 -0
  34. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +15 -5
  35. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +4 -2
  36. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/paymentLocation.d.ts +3 -0
  37. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/paymentResponse.d.ts +72 -0
  38. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationCompletion.d.ts +66 -5
  39. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +1 -4
  40. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationStateMachine.d.ts +13 -5
  41. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/sessionStorage.d.ts +11 -52
  42. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +19 -2
  43. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +7 -42
  44. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +7 -8
  45. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +90 -24
  46. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useGuestRegistrationRecovery.d.ts +30 -0
  47. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/usePaymentStatusRecovery.d.ts +24 -12
  48. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useRegistrationAdmission.d.ts +18 -0
  49. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/wizardSteps.d.ts +6 -1
  50. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +1 -1
  51. package/dist/_dts/blocks/src/system/runtime/shared/stripe/browserStripe.d.ts +8 -0
  52. package/dist/_dts/blocks/src/system/transforms/registry/eventCalendar.d.ts +8 -0
  53. package/dist/_dts/commerce/src/purchase/checkoutCopy.d.ts +10 -0
  54. package/dist/_dts/commerce/src/purchase/checkoutPresentation.d.ts +49 -0
  55. package/dist/_dts/commerce/src/purchase/checkoutSessionMetadata.d.ts +4 -4
  56. package/dist/_dts/commerce/src/purchase/checkoutStripeFinalizationPlanning.d.ts +5 -1
  57. package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +9 -0
  58. package/dist/_dts/commerce/src/purchase/index.d.ts +2 -0
  59. package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +1 -0
  60. package/dist/_dts/commerce/src/purchase/stripeCheckoutReturnUrl.d.ts +9 -2
  61. package/dist/_dts/commerce/src/purchase/types.d.ts +5 -6
  62. package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +3 -2
  63. package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +6 -1
  64. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +7 -0
  65. package/dist/_dts/core/src/index.d.ts +1 -0
  66. package/dist/_dts/core/src/patch/index.d.ts +30 -0
  67. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +30 -1
  68. package/dist/_dts/sdk/src/bookings/index.d.ts +2 -1
  69. package/dist/_dts/sdk/src/bookings/types.d.ts +1 -1
  70. package/dist/_dts/sdk/src/version.d.ts +1 -1
  71. package/dist/_dts/theme-core/src/blocks/index.d.ts +1 -0
  72. package/dist/_dts/theme-core/src/blocks/opaquePanels.d.ts +147 -0
  73. package/dist/_dts/theme-core/src/boxBackgroundSchema.d.ts +22 -0
  74. package/dist/_dts/theme-core/src/buttons/buttonSurfaceContext.d.ts +22 -0
  75. package/dist/_dts/theme-core/src/cards/roles.d.ts +12 -0
  76. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  77. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +198 -0
  78. package/dist/_dts/theme-core/src/palette/utils/index.d.ts +2 -0
  79. package/dist/_dts/theme-core/src/palette/utils/scrimContrast.d.ts +22 -0
  80. package/dist/_dts/theme-core/src/runtime/bridgeColourTokens.d.ts +10 -0
  81. package/dist/_dts/theme-core/src/schema.d.ts +330 -0
  82. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +0 -51
  83. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +0 -51
  84. package/dist/_dts/theme-core/src/site-styles/lookResolution.d.ts +11 -0
  85. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorCapabilities.d.ts +7 -1
  86. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +7 -1
  87. package/dist/_dts/theme-core/src/site-styles/previewRuntimeCapabilities.d.ts +12 -6
  88. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +7 -4
  89. package/dist/_dts/theme-core/src/site-styles/sectionSurfaceBackgrounds.d.ts +65 -0
  90. package/dist/_dts/theme-core/src/site-styles/types.d.ts +17 -0
  91. package/dist/_dts/theme-core/src/surfaces/opaqueSurface.d.ts +43 -0
  92. package/dist/client/{BookingMailingListNote-Cr3EeTP5.mjs → BookingMailingListNote-CYHOufsI.mjs} +10 -440
  93. package/dist/client/{CheckboxChoice-B33MqoUo.mjs → CheckboxChoice-M-3HycLw.mjs} +1 -1
  94. package/dist/client/{DemoBookingPortalAccess-BFGB1Fay.mjs → DemoBookingPortalAccess-Cvr9O_ca.mjs} +2 -2
  95. package/dist/client/{EventCombined.client-DKYV0_ft.mjs → EventCombined.client-m5UZIobP.mjs} +7 -7
  96. package/dist/client/EventEmbeddedCheckoutStep-DL6zFAkA.mjs +289 -0
  97. package/dist/client/{EventListing.client-B9UIcEYc.mjs → EventListing.client-DeMfCM04.mjs} +2 -2
  98. package/dist/client/{LeafletStaticMap-CFLPkP0K.mjs → LeafletStaticMap-CvZ3gOdD.mjs} +1 -1
  99. package/dist/client/{checkoutUrls-CXhko2Rv.mjs → RichText-BtfNvQV6.mjs} +2 -29
  100. package/dist/client/{TerminalPanel-JjmgxEsR.mjs → TerminalPanel-CUCNEwlH.mjs} +2 -18
  101. package/dist/client/{ThemedButton-CKV1Jh2m.mjs → ThemedButton-C7WhXuRl.mjs} +2 -2
  102. package/dist/client/{accordion-DXWIfT3T.mjs → accordion-cQm5mjqs.mjs} +1 -1
  103. package/dist/client/{bookingForm-CjZgHNvv.mjs → bookingForm-BVPJE5RQ.mjs} +11 -10
  104. package/dist/client/bookings.mjs +2668 -1134
  105. package/dist/client/{carousel-DSLikmvZ.mjs → carousel-3vgnY7LC.mjs} +2 -2
  106. package/dist/client/{carousel.client-A2lG-9od.mjs → carousel.client-CISsdZvg.mjs} +1 -1
  107. package/dist/client/{cart-HDjWReFt.mjs → cart-BGK4oOjm.mjs} +3 -3
  108. package/dist/client/{checkout-CUvRZA3W.mjs → checkout-GsBLUNJD.mjs} +3 -3
  109. package/dist/client/checkoutUrls-ChxwaNtO.mjs +28 -0
  110. package/dist/client/client.mjs +3042 -1868
  111. package/dist/client/{colorStyles-j5U9v5JA.mjs → colorStyles-D-32xHZh.mjs} +2 -30
  112. package/dist/client/{context-DFmaZa-Q.mjs → context-D_8s12Fp.mjs} +1 -1
  113. package/dist/client/{dates-BBep1JnF.mjs → dates-DeJQbQ9T.mjs} +2 -2
  114. package/dist/client/{eventCalendar-zEobhxo4.mjs → eventCalendar-cmucD4NR.mjs} +10 -10
  115. package/dist/client/{eventCombined-Dp7bz5k-.mjs → eventCombined-ku3E9FTl.mjs} +4 -4
  116. package/dist/client/{eventDetails-FE-zqTt7.mjs → eventDetails-CyKZ61sF.mjs} +5 -5
  117. package/dist/client/{eventListing-BMt5snal.mjs → eventListing-B7yxGIhX.mjs} +4 -4
  118. package/dist/client/{eventRegistration-O6ZxHfOb.mjs → eventRegistration-BoXfSFgZ.mjs} +1403 -857
  119. package/dist/client/{form-DFa1D8vt.mjs → form-CNQOWhJo.mjs} +5 -5
  120. package/dist/client/{headerSection-CmjHLR-N.mjs → headerSection-DahaBJGQ.mjs} +3 -3
  121. package/dist/client/hooks.mjs +123 -64
  122. package/dist/client/{locationMap-BXKP_lGh.mjs → locationMap-BoDjqYlW.mjs} +4 -4
  123. package/dist/client/{media-Cl38iOMI.mjs → media-BFY0y2rb.mjs} +2 -1
  124. package/dist/client/{newsletterForm-CU-HmxGx.mjs → newsletterForm-DtzXDklw.mjs} +4 -4
  125. package/dist/client/{pricing-KEAEsibq.mjs → pricing-DXEh2Lhh.mjs} +1 -1
  126. package/dist/client/{productDetail-Ckp7MGnt.mjs → productDetail-D7cPa-00.mjs} +3 -3
  127. package/dist/client/{productList-D91V0sYa.mjs → productList-D1XMap66.mjs} +3 -3
  128. package/dist/client/{propsDecoder-DZd6RJeA.mjs → propsDecoder-DiIeBopB.mjs} +758 -245
  129. package/dist/client/rendering/client.mjs +4381 -2892
  130. package/dist/client/rendering/islands.mjs +19 -19
  131. package/dist/client/rendering.mjs +3026 -1852
  132. package/dist/client/result-DRW7JWXz.mjs +30 -0
  133. package/dist/client/{routeIslandApiConfig-E1EkhhYY.mjs → routeIslandApiConfig-wzR4lKAY.mjs} +1 -1
  134. package/dist/client/scrollToBlock-C86BYkyV.mjs +17 -0
  135. package/dist/client/{shop-4F2jLQPI.mjs → shop-CYT5P-S5.mjs} +8 -8
  136. package/dist/client/{shop-commerce-store-vicweP2K.mjs → shop-commerce-store-wKhsJQxI.mjs} +1 -1
  137. package/dist/client/{shop-commerce-BbfCJjB3.mjs → shop-commerce-ypBu_dx4.mjs} +9 -9
  138. package/dist/client/{shopShared-DlONJt0T.mjs → shopShared-DFGhYrf2.mjs} +52 -6
  139. package/dist/client/{useEventFilters-COYyL3m7.mjs → useEventFilters-blSbN5o7.mjs} +8 -8
  140. package/dist/preview-next/client/runtime.mjs +3 -3
  141. package/dist/{sdk-runtime-CwvFFjB-.mjs → sdk-runtime-2p8uQk1V.mjs} +1 -1
  142. package/dist/{separator-ByL72zUT.mjs → separator-Cvvzk0Oo.mjs} +1 -1
  143. package/dist/server/components.mjs +4066 -3765
  144. package/dist/server/config-validation.mjs +185 -126
  145. package/dist/server/config.mjs +185 -126
  146. package/dist/server/data.mjs +123 -64
  147. package/dist/server/index.mjs +1 -1
  148. package/dist/server/next.mjs +615 -314
  149. package/dist/server/page-converter.mjs +100 -56
  150. package/dist/server/prebuild.mjs +1 -1
  151. package/dist/server/rendering/server.mjs +4041 -3751
  152. package/dist/server/rendering.mjs +4069 -3768
  153. package/dist/server/routing.mjs +149 -72
  154. package/dist/server/server.mjs +124 -65
  155. package/dist/server/theme-bridge.mjs +1122 -310
  156. package/dist/server/theme.mjs +126 -116
  157. package/dist/spinner-CDo6AkDz.mjs +658 -0
  158. package/dist/styles/index.css +75 -212
  159. package/package.json +1 -1
  160. package/dist/_dts/billing/src/checkout/platform.d.ts +0 -77
  161. package/dist/_dts/billing/src/config/env.d.ts +0 -29
  162. package/dist/_dts/billing/src/stripe/client.d.ts +0 -29
  163. package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +0 -63
  164. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventCheckoutHandoffRestore.d.ts +0 -9
  165. package/dist/client/urlParams-D71VXFGx.mjs +0 -47
@@ -52,7 +52,9 @@ export * from './settlement';
52
52
  export * from './shopRefundPlanning';
53
53
  export * from './stripeMinimumCharge';
54
54
  export * from './stripeCheckoutReturnUrl';
55
+ export * from './checkoutCopy';
55
56
  export * from './stateTransitions';
56
57
  export * from './event-registration-errors';
57
58
  export * from './eventCheckoutRecoveryWindow';
58
59
  export { STRIPE_COMMISSION_FREE_REASONS, type StripeCommissionFreeReason, } from './stripeCommissionMetadata';
60
+ export * from './checkoutPresentation';
@@ -150,6 +150,7 @@ export type MembershipBundleFulfillmentMetadata = Readonly<{
150
150
  membershipName: string;
151
151
  }>;
152
152
  export type MembershipOrderItemMetadata = CheckoutLineMetadata & StripeBookingCommissionOrderItemMetadata & Readonly<{
153
+ /** Written by checkout; identifies a standalone purchase. Older rows and renewals lack it. */
153
154
  membershipId?: MembershipId;
154
155
  billingInterval?: 'month' | 'year';
155
156
  bundleFulfillment?: MembershipBundleFulfillmentMetadata;
@@ -1,8 +1,15 @@
1
+ import type { CheckoutPresentation } from './checkoutPresentation';
1
2
  export declare const STRIPE_CHECKOUT_SESSION_ID_PLACEHOLDER = "{CHECKOUT_SESSION_ID}";
2
3
  /**
3
- * Completes a Stripe success URL with the session correlation parameter.
4
+ * Completes a Stripe return URL with the session correlation parameter.
4
5
  *
5
6
  * URL owns the query/fragment boundary so the parameter can never be appended
6
7
  * inside a hash fragment. Stripe requires its placeholder to remain literal.
7
8
  */
8
- export declare function ensureStripeCheckoutSessionIdInSuccessUrl(successUrl: string): string;
9
+ export declare function ensureStripeCheckoutSessionIdInReturnUrl(returnUrl: string): string;
10
+ /**
11
+ * The page Stripe returns a completed session to: the checkout's own success
12
+ * (hosted) or return (embedded) URL, with the session filled in where Stripe
13
+ * would have put it.
14
+ */
15
+ export declare function completedStripeCheckoutReturnUrl(presentation: CheckoutPresentation, sessionId: string): string;
@@ -1,3 +1,4 @@
1
+ import type { CheckoutMode, CheckoutPresentation } from './checkoutPresentation';
1
2
  /**
2
3
  * Purchase domain types — the unified model for all customer acquisitions.
3
4
  *
@@ -62,24 +63,22 @@ export type AttendeeInfo = Readonly<{
62
63
  }>;
63
64
  export type AttendeeBearingCheckoutItem = EventTicketItem | EventSeriesRegistrationItem;
64
65
  export type Checkout = CartCheckout | MembershipCheckout;
65
- export type CartCheckout = {
66
+ export type CartCheckout<M extends CheckoutMode = CheckoutMode> = {
66
67
  mode: 'one_time';
67
68
  siteId: SiteId;
68
69
  items: NonEmptyArray<CheckoutItem>;
69
70
  customer: CustomerInfo;
70
71
  discountCode?: string;
71
72
  collectionOptionKind?: BookingPaymentCollectionOptionKind;
72
- successUrl: string;
73
- cancelUrl: string;
73
+ presentation: CheckoutPresentation<M>;
74
74
  };
75
- export type MembershipCheckout = {
75
+ export type MembershipCheckout<M extends CheckoutMode = CheckoutMode> = {
76
76
  mode: 'subscription';
77
77
  siteId: SiteId;
78
78
  membership: MembershipItem;
79
79
  customer: CustomerInfo;
80
80
  discountCode?: string;
81
- successUrl: string;
82
- cancelUrl: string;
81
+ presentation: CheckoutPresentation<M>;
83
82
  };
84
83
  export type CustomerInfo = {
85
84
  email: string;
@@ -1,5 +1,5 @@
1
1
  import { type FooterCompositionV1, type FooterNavigationLayout } from '../../core/src/index';
2
- import type { FooterRuntimeViewModel } from '../../blocks/src/client/site-chrome';
2
+ import type { FooterAttribution, FooterRuntimeViewModel } from '../../blocks/src/client/site-chrome';
3
3
  import { type FooterEditorTarget, type planFooterEditorView } from './footerComposer';
4
4
  import type { SaveState } from './useFooterComposerState';
5
5
  type FooterPlan = ReturnType<typeof planFooterEditorView>;
@@ -9,7 +9,8 @@ export declare function SaveBadge({ state }: {
9
9
  export declare function FooterPreview({ runtime, }: {
10
10
  runtime: FooterRuntimeViewModel;
11
11
  }): import("react").JSX.Element;
12
- export declare function FooterOverview({ plan, composition, onTarget, onChange, manageLinksHref, manageSettingsHref, navigationLayout, onEngagement, onNavigationLayoutChange, }: {
12
+ export declare function FooterOverview({ attribution, plan, composition, onTarget, onChange, manageLinksHref, manageSettingsHref, navigationLayout, onEngagement, onNavigationLayoutChange, }: {
13
+ attribution: FooterAttribution | null;
13
14
  plan: FooterPlan;
14
15
  composition: FooterCompositionV1;
15
16
  onTarget: (target: FooterEditorTarget) => void;
@@ -1,4 +1,4 @@
1
- import { type FooterResolvedEngagement, type FooterRuntimeViewModel } from '../../blocks/src/client/site-chrome';
1
+ import { type FooterAttribution, type FooterResolvedEngagement, type FooterRuntimeViewModel } from '../../blocks/src/client/site-chrome';
2
2
  import type { FooterCompositionV1, FooterNavigationLayout, PublicProfile } from '../../core/src/index';
3
3
  export type FooterPreviewRuntimeInput = Readonly<{
4
4
  composition: FooterCompositionV1;
@@ -10,5 +10,10 @@ export type FooterPreviewRuntimeInput = Readonly<{
10
10
  legalRegion: 'integrated' | 'separate';
11
11
  navigationLayout: FooterNavigationLayout;
12
12
  engagement: FooterResolvedEngagement;
13
+ /**
14
+ * The plan's attribution line, from the composition read. The preview adds
15
+ * it the same way the served footer does, so the two match.
16
+ */
17
+ attribution: FooterAttribution | null;
13
18
  }>;
14
19
  export declare function buildFooterPreviewRuntime(input: FooterPreviewRuntimeInput): FooterRuntimeViewModel;
@@ -29,6 +29,13 @@ export declare function useFooterComposerState({ apiClient, canEdit, initialTarg
29
29
  siteId: import("../../core/src/index").SiteId;
30
30
  target: FooterEditorTarget;
31
31
  setTarget: import("react").Dispatch<import("react").SetStateAction<FooterEditorTarget>>;
32
+ attribution: Readonly<{
33
+ lead: string;
34
+ link: Readonly<{
35
+ href: string;
36
+ label: string;
37
+ }>;
38
+ }> | null;
32
39
  compositionSnapshot: FooterCompositionSnapshot | null;
33
40
  engagementOptions: Readonly<{
34
41
  forms: readonly import("../../api/src/footerSettings").FooterFormSummary[];
@@ -85,3 +85,4 @@ export * from './navigation-locations';
85
85
  export * from './navigation-portal-labels';
86
86
  export * from './event-preset-vocabulary';
87
87
  export * from './event-catalogue';
88
+ export * from './patch';
@@ -0,0 +1,30 @@
1
+ import type { Result } from '../result';
2
+ export type Settable<T> = Readonly<{
3
+ kind: 'keep';
4
+ }> | Readonly<{
5
+ kind: 'set';
6
+ value: T;
7
+ }>;
8
+ export type Clearable<T> = Settable<T> | Readonly<{
9
+ kind: 'clear';
10
+ }>;
11
+ /** Lists and documents use Settable too: a supplied value replaces the whole value. */
12
+ export type ChangesWire<T extends Readonly<Record<string, Settable<unknown> | Clearable<unknown>>>> = {
13
+ readonly [K in keyof T]?: Extract<T[K], {
14
+ kind: 'set';
15
+ }>['value'] | (Extract<T[K], {
16
+ kind: 'clear';
17
+ }> extends never ? never : null);
18
+ };
19
+ export declare function settableFrom<T>(wireValue: T | undefined): Settable<T>;
20
+ export declare function clearableFrom<T>(wireValue: T | null | undefined): Clearable<T>;
21
+ export declare function applySettable<T>(stored: T, change: Settable<T>): T;
22
+ export declare function applyClearable<T>(stored: T | null, change: Clearable<T>): T | null;
23
+ export type ProtectedBagKeys<K extends string> = Readonly<{
24
+ kind: 'protected-keys';
25
+ keys: readonly K[];
26
+ }>;
27
+ /** A null deletes a key; protected keys are refused even when their value agrees. */
28
+ export declare function mergeBag<T, K extends string>(stored: Readonly<Record<string, T>>, patch: Readonly<Record<string, T | null | undefined>>, options: Readonly<{
29
+ protectedKeys: readonly K[];
30
+ }>): Readonly<Result<Readonly<Record<string, T>>, ProtectedBagKeys<K>>>;
@@ -2447,6 +2447,7 @@ export type Database = {
2447
2447
  event_series_registration_id: string | null;
2448
2448
  expires_at: string;
2449
2449
  id: string;
2450
+ order_id: string | null;
2450
2451
  released_at: string | null;
2451
2452
  site_id: string;
2452
2453
  status: string;
@@ -2464,6 +2465,7 @@ export type Database = {
2464
2465
  event_series_registration_id?: string | null;
2465
2466
  expires_at: string;
2466
2467
  id?: string;
2468
+ order_id?: string | null;
2467
2469
  released_at?: string | null;
2468
2470
  site_id: string;
2469
2471
  status?: string;
@@ -2481,6 +2483,7 @@ export type Database = {
2481
2483
  event_series_registration_id?: string | null;
2482
2484
  expires_at?: string;
2483
2485
  id?: string;
2486
+ order_id?: string | null;
2484
2487
  released_at?: string | null;
2485
2488
  site_id?: string;
2486
2489
  status?: string;
@@ -2536,6 +2539,13 @@ export type Database = {
2536
2539
  referencedRelation: "event_series_registrations";
2537
2540
  referencedColumns: ["id"];
2538
2541
  },
2542
+ {
2543
+ foreignKeyName: "booking_customer_credit_reservations_order_id_fkey";
2544
+ columns: ["order_id"];
2545
+ isOneToOne: false;
2546
+ referencedRelation: "orders";
2547
+ referencedColumns: ["id"];
2548
+ },
2539
2549
  {
2540
2550
  foreignKeyName: "booking_customer_credit_reservations_site_id_fkey";
2541
2551
  columns: ["site_id"];
@@ -18092,7 +18102,10 @@ export type Database = {
18092
18102
  p_command: string;
18093
18103
  p_order_id: string;
18094
18104
  };
18095
- Returns: string;
18105
+ Returns: {
18106
+ operation_id: string;
18107
+ outcome: string;
18108
+ }[];
18096
18109
  };
18097
18110
  accept_site_invitation: {
18098
18111
  Args: {
@@ -19321,6 +19334,7 @@ export type Database = {
19321
19334
  consume_booking_customer_credit_reservation: {
19322
19335
  Args: {
19323
19336
  p_booking_payment_id?: string;
19337
+ p_order_id: string;
19324
19338
  p_reference_id?: string;
19325
19339
  p_reference_type?: string;
19326
19340
  p_reservation_id: string;
@@ -20695,6 +20709,14 @@ export type Database = {
20695
20709
  };
20696
20710
  Returns: string;
20697
20711
  };
20712
+ open_standalone_membership_order_v1: {
20713
+ Args: {
20714
+ p_customer_id: string;
20715
+ p_membership_id: string;
20716
+ p_site_id: string;
20717
+ };
20718
+ Returns: string;
20719
+ };
20698
20720
  ops_update_event_attendee_checkin: {
20699
20721
  Args: {
20700
20722
  p_attendee_id: string;
@@ -20789,6 +20811,7 @@ export type Database = {
20789
20811
  p_order_number_seq: number;
20790
20812
  p_paid_cents: number;
20791
20813
  p_payment_method: string;
20814
+ p_reservations?: Json;
20792
20815
  p_site_id: string;
20793
20816
  p_status: string;
20794
20817
  p_stripe_account_id: string;
@@ -21072,6 +21095,12 @@ export type Database = {
21072
21095
  };
21073
21096
  Returns: boolean;
21074
21097
  };
21098
+ release_order_checkout_reservations_v1: {
21099
+ Args: {
21100
+ p_order_id: string;
21101
+ };
21102
+ Returns: undefined;
21103
+ };
21075
21104
  release_site_invitation_resend_claim: {
21076
21105
  Args: {
21077
21106
  p_actor_user_id: string;
@@ -35,4 +35,5 @@ export declare const HeadlessBookingPaymentSelectionStep: React.FC<HeadlessBooki
35
35
  export { BOOKING_FORM_DATA_RESERVED_KEY_VALUES } from '../../../blocks/src/client';
36
36
  export { HeadlessBookingAltchaWidget, HeadlessEventRegistrationAltchaWidget, createBookingBlockApiConfig, createEventRegistrationBlockApiConfig, getAppointmentBookingOverrideInput, getEventRegistrationOverrideInput, useHeadlessBookingFlow, useHeadlessEventRegistrationFlow, };
37
37
  export type { BookingService, BookingFormConfig } from './types';
38
- export type { Service, TimeSlot, BookingFormSettings, BookingFormSchema, BookingFormField, BookingFormData, BookingSelectedCollectionOptionKind, BookingSubmissionData, BookingSubmissionResult, BookingFormClientProps, BookingFormClientForm, BookingFormClientService, HeadlessBookingPaymentSelectionStepProps, HeadlessBookingFlow, HeadlessBookingFlowOptions, HeadlessBookingProviderProps, HeadlessEventRegistrationFlow, HeadlessEventRegistrationFlowOptions, HeadlessEventRegistrationProviderProps, EventRegistrationAttendeeModel, EventRegistrationDiscountModel, EventRegistrationEventsModel, EventRegistrationFlowActionResult, EventRegistrationFlowActions, EventRegistrationFlowStatus, EventRegistrationFlowStep, EventRegistrationFlowStepId, EventRegistrationFlowView, EventRegistrationGuestsModel, EventRegistrationLoadState, EventRegistrationOverrideData, EventRegistrationOverrideInput, EventRegistrationOverrideInputResult, EventRegistrationOverridePropsLike, EventRegistrationPaymentModel, EventRegistrationPaymentSelection, EventRegistrationPortalAuthModel, EventRegistrationSpamProtectionModel, EventRegistrationSubmitOptions, EventRegistrationSubmitResult, EventRegistrationTerminalModel, EventRegistrationTicketsModel, AppointmentBookingOverrideData, AppointmentBookingOverrideInput, AppointmentBookingOverrideInputResult, BookingAvailabilityQuery, BookingAppointmentPackagesModel, BookingAppointmentPackagesUnavailableReason, BookingPaymentOptionViewModel, BookingPaymentSelectionViewModel, BookingFieldValue, BookingFieldView, BookingFlowActionResult, BookingFlowFeedback, BookingFlowStatus, BookingResourceView, BookingResourcesModel, BookingFlowStep, BookingFlowStepId, BookingFlowView, BookingSlotView, BookingSubmitActionResult, BookingSubmitOptions, BookingValidationErrors, DerivedBookingFlowSteps, DeriveBookingFlowStepsInput, UseBookingFormConfigResult, } from './types';
38
+ export type { Service, TimeSlot, BookingFormSettings, BookingFormSchema, BookingFormField, BookingFormData, BookingSelectedCollectionOptionKind, BookingSubmissionData, BookingSubmissionResult, BookingFormClientProps, BookingFormClientForm, BookingFormClientService, HeadlessBookingPaymentSelectionStepProps, HeadlessBookingFlow, HeadlessBookingFlowOptions, HeadlessBookingProviderProps, HeadlessEventRegistrationFlow, HeadlessEventRegistrationFlowOptions, HeadlessEventRegistrationProviderProps, EventRegistrationAttendeeModel, EventRegistrationDiscountModel, EventRegistrationEventsModel, EventRegistrationFlowActionResult, EventRegistrationFlowActions, EventRegistrationFlowStatus, EventRegistrationFlowStep, EventRegistrationFlowStepId, EventRegistrationFlowView, EventRegistrationGuestsModel, EventRegistrationLoadState, EventRegistrationOverrideData, EventRegistrationOverrideInput, EventRegistrationOverrideInputResult, EventRegistrationOverridePropsLike, EventRegistrationPaymentModel, EventRegistrationPaymentSelection, EventRegistrationPortalAuthModel, EventRegistrationSpamProtectionModel, EventRegistrationSubmitResult, EventRegistrationTerminalModel, EventRegistrationTicketsModel, AppointmentBookingOverrideData, AppointmentBookingOverrideInput, AppointmentBookingOverrideInputResult, BookingAvailabilityQuery, BookingAppointmentPackagesModel, BookingAppointmentPackagesUnavailableReason, BookingPaymentOptionViewModel, BookingPaymentSelectionViewModel, BookingFieldValue, BookingFieldView, BookingFlowActionResult, BookingFlowFeedback, BookingFlowStatus, BookingResourceView, BookingResourcesModel, BookingFlowStep, BookingFlowStepId, BookingFlowView, BookingSlotView, BookingSubmitActionResult, BookingSubmitOptions, BookingValidationErrors, DerivedBookingFlowSteps, DeriveBookingFlowStepsInput, UseBookingFormConfigResult, } from './types';
39
+ export { EventRegistrationPayment } from '../../../blocks/src/client';
@@ -8,7 +8,7 @@
8
8
  * responses.
9
9
  */
10
10
  import type { BookingFlexibleBalanceConfig, BookingInstalmentPlanConfig } from '../../../core/src/index';
11
- export type { AppointmentBookingOverrideData, AppointmentBookingOverrideInput, AppointmentBookingOverrideInputResult, BookingAvailabilityQuery, BookingAppointmentPackagesModel, BookingAppointmentPackagesUnavailableReason, BookingPaymentOptionViewModel, BookingPaymentSelectionViewModel, BookingFieldValue, BookingFieldView, BookingFlowActionResult, BookingFlowFeedback, BookingFlowStatus, BookingResourceView, BookingFlowStep, BookingFlowStepId, BookingFlowView, BookingResourcesModel, BookingSlotView, BookingSubmitActionResult, BookingSubmitOptions, BookingValidationErrors, DerivedBookingFlowSteps, DeriveBookingFlowStepsInput, EventRegistrationAttendeeModel, EventRegistrationDiscountModel, EventRegistrationEventsModel, EventRegistrationFlowActionResult, EventRegistrationFlowActions, EventRegistrationFlowStatus, EventRegistrationFlowStep, EventRegistrationFlowStepId, EventRegistrationFlowView, EventRegistrationGuestsModel, EventRegistrationLoadState, EventRegistrationOverrideData, EventRegistrationOverrideInput, EventRegistrationOverrideInputResult, EventRegistrationOverridePropsLike, EventRegistrationPaymentModel, EventRegistrationPaymentSelection, EventRegistrationPortalAuthModel, EventRegistrationSpamProtectionModel, EventRegistrationSubmitOptions, EventRegistrationSubmitResult, EventRegistrationTerminalModel, EventRegistrationTicketsModel, HeadlessBookingFlow, HeadlessBookingFlowOptions, HeadlessBookingPaymentSelectionStepProps, HeadlessBookingProviderProps, HeadlessEventRegistrationFlow, HeadlessEventRegistrationFlowOptions, HeadlessEventRegistrationProviderProps, } from '../../../blocks/src/client';
11
+ export type { AppointmentBookingOverrideData, AppointmentBookingOverrideInput, AppointmentBookingOverrideInputResult, BookingAvailabilityQuery, BookingAppointmentPackagesModel, BookingAppointmentPackagesUnavailableReason, BookingPaymentOptionViewModel, BookingPaymentSelectionViewModel, BookingFieldValue, BookingFieldView, BookingFlowActionResult, BookingFlowFeedback, BookingFlowStatus, BookingResourceView, BookingFlowStep, BookingFlowStepId, BookingFlowView, BookingResourcesModel, BookingSlotView, BookingSubmitActionResult, BookingSubmitOptions, BookingValidationErrors, DerivedBookingFlowSteps, DeriveBookingFlowStepsInput, EventRegistrationAttendeeModel, EventRegistrationDiscountModel, EventRegistrationEventsModel, EventRegistrationFlowActionResult, EventRegistrationFlowActions, EventRegistrationFlowStatus, EventRegistrationFlowStep, EventRegistrationFlowStepId, EventRegistrationFlowView, EventRegistrationGuestsModel, EventRegistrationLoadState, EventRegistrationOverrideData, EventRegistrationOverrideInput, EventRegistrationOverrideInputResult, EventRegistrationOverridePropsLike, EventRegistrationPaymentModel, EventRegistrationPaymentSelection, EventRegistrationPortalAuthModel, EventRegistrationSpamProtectionModel, EventRegistrationSubmitResult, EventRegistrationTerminalModel, EventRegistrationTicketsModel, HeadlessBookingFlow, HeadlessBookingFlowOptions, HeadlessBookingPaymentSelectionStepProps, HeadlessBookingProviderProps, HeadlessEventRegistrationFlow, HeadlessEventRegistrationFlowOptions, HeadlessEventRegistrationProviderProps, } from '../../../blocks/src/client';
12
12
  import type { BookingFormData as BlocksBookingFormData, BookingFormField as BlocksBookingFormField, BookingFormClientProps as BlocksBookingFormClientProps, BookingFormConfig as BlocksBookingFormConfig, BookingService as BlocksBookingService } from '../../../blocks/src/client';
13
13
  export type { BookingSelectedCollectionOptionKind } from '../../../blocks/src/client';
14
14
  export { BOOKING_FORM_DATA_RESERVED_KEY_VALUES } from '../../../blocks/src/client';
@@ -8,4 +8,4 @@
8
8
  * 1. This constant
9
9
  * 2. The "version" field in package.json
10
10
  */
11
- export declare const SDK_VERSION = "0.149.0";
11
+ export declare const SDK_VERSION = "0.150.0";
@@ -18,4 +18,5 @@
18
18
  */
19
19
  export type { BlockVarGeneratorTheme, BlockVarGeneratorContext, BlockVarGenerator, BlockVarRegistry, BlockCustomVars, } from './types';
20
20
  export { registerBlockVarGenerator, getBlockVarGenerator, generateAllBlockVarsCss, generateBlockCustomVarsCss, } from './registry';
21
+ export { opaquePanels, generateOpaquePanelCss, type OpaquePanel } from './opaquePanels';
21
22
  export * from './vars';
@@ -0,0 +1,147 @@
1
+ import { type OpaqueSurfaceContext } from '../surfaces/opaqueSurface';
2
+ /**
3
+ * Every element in `blocks-static/` CSS that paints its own background behind
4
+ * text or buttons, with the palette token it paints.
5
+ *
6
+ * The CSS owns layout and the paint itself; this registry owns what the paint
7
+ * implies. `generateOpaquePanelCss` publishes each panel's foreground contract
8
+ * and button context from the theme, exactly as card roles and section
9
+ * backgrounds do, so a white panel inside a dark band never inherits the band's
10
+ * light text or its band-resolved buttons. `opaquePanels.test.ts` scans the
11
+ * static CSS and fails when a rule paints a surface token without an entry
12
+ * here, or when a registered rule declares the contract by hand.
13
+ *
14
+ * Selectors are written without the theme-scope prefix; the generator adds it.
15
+ * A `transparent` entry is a treatment that turns a surface-owning class into
16
+ * a boxless row, so it hands the surrounding surface's contract back.
17
+ */
18
+ export declare const opaquePanels: readonly [{
19
+ readonly selector: ":where([data-block=\"event-registration\"], [data-block=\"appointment-booking\"]) .rb-reg-surface";
20
+ readonly paint: {
21
+ readonly kind: "solid";
22
+ readonly token: "surface";
23
+ };
24
+ }, {
25
+ readonly selector: ":where([data-block='event-registration']) .er-booking-teaser";
26
+ readonly paint: {
27
+ readonly kind: "solid";
28
+ readonly token: "surface";
29
+ };
30
+ }, {
31
+ readonly selector: ":where([data-block='event-registration']) .er-booking-bar";
32
+ readonly paint: {
33
+ readonly kind: "solid";
34
+ readonly token: "background";
35
+ };
36
+ }, {
37
+ readonly selector: ":where([data-block='event-registration']) .er-modal";
38
+ readonly paint: {
39
+ readonly kind: "solid";
40
+ readonly token: "background";
41
+ };
42
+ }, {
43
+ readonly selector: ":where([data-block='event-registration']) .er-booking-overlay__panel";
44
+ readonly paint: {
45
+ readonly kind: "solid";
46
+ readonly token: "background";
47
+ };
48
+ }, {
49
+ readonly selector: ":where([data-block='event-calendar']) .event-agenda-card";
50
+ readonly paint: {
51
+ readonly kind: "solid";
52
+ readonly token: "surface";
53
+ };
54
+ }, {
55
+ readonly selector: ":where([data-block='event-calendar']) .event-timetable-event";
56
+ readonly paint: {
57
+ readonly kind: "solid";
58
+ readonly token: "surface";
59
+ };
60
+ }, {
61
+ readonly selector: ":where([data-block='event-calendar']) .event-week-board";
62
+ readonly paint: {
63
+ readonly kind: "solid";
64
+ readonly token: "surface";
65
+ };
66
+ }, {
67
+ readonly selector: ":where([data-block='event-calendar']) .event-week-board-top";
68
+ readonly paint: {
69
+ readonly kind: "solid";
70
+ readonly token: "surfaceAlt";
71
+ };
72
+ }, {
73
+ readonly selector: ":where([data-block='event-calendar']) .event-week-board-foot";
74
+ readonly paint: {
75
+ readonly kind: "solid";
76
+ readonly token: "surfaceAlt";
77
+ };
78
+ }, {
79
+ readonly selector: ":where([data-block='event-calendar']) .ec-modal";
80
+ readonly paint: {
81
+ readonly kind: "solid";
82
+ readonly token: "surface";
83
+ };
84
+ }, {
85
+ readonly selector: ".event-listing-compact-container";
86
+ readonly paint: {
87
+ readonly kind: "solid";
88
+ readonly token: "surface";
89
+ };
90
+ }, {
91
+ readonly selector: ".shop__card";
92
+ readonly paint: {
93
+ readonly kind: "solid";
94
+ readonly token: "surface";
95
+ };
96
+ }, {
97
+ readonly selector: ".shop--register .shop__card";
98
+ readonly paint: {
99
+ readonly kind: "transparent";
100
+ };
101
+ }, {
102
+ readonly selector: ":where([data-block=\"shop\"]) .shop__return";
103
+ readonly paint: {
104
+ readonly kind: "solid";
105
+ readonly token: "surface";
106
+ };
107
+ }, {
108
+ readonly selector: "[data-block=\"feature-cards\"][data-block-composition=\"asymmetric-emphasis\"] .rb-feature-card:nth-child(even)";
109
+ readonly paint: {
110
+ readonly kind: "solid";
111
+ readonly token: "secondary";
112
+ };
113
+ }, {
114
+ readonly selector: ".rb-feature-cards-grid--editorial-diptych .rb-feature-card[data-surface-role=\"panel\"]";
115
+ readonly paint: {
116
+ readonly kind: "solid";
117
+ readonly token: "primary";
118
+ };
119
+ }, {
120
+ readonly selector: ":is(.rb-event-list-treatment-ruled-register, .rb-event-list-treatment-editorial-register, .rb-event-list-treatment-dense-index) .event-card.event-card";
121
+ readonly paint: {
122
+ readonly kind: "transparent";
123
+ };
124
+ }, {
125
+ readonly selector: ".feedback-callout";
126
+ readonly paint: {
127
+ readonly kind: "solid";
128
+ readonly token: "surface";
129
+ };
130
+ }, {
131
+ readonly selector: "[data-block=\"gifting\"] .gifting-feedback";
132
+ readonly paint: {
133
+ readonly kind: "solid";
134
+ readonly token: "surface";
135
+ };
136
+ }];
137
+ export type OpaquePanel = (typeof opaquePanels)[number];
138
+ /**
139
+ * Publishes every registered panel's surface contract. Emitted after the card
140
+ * CSS in both the theme runtime and the SDK theme bridge, so a composition
141
+ * that recolours a card role (the feature-card diptych panel) or a treatment
142
+ * that empties one (the event registers) wins over the role's own contract.
143
+ */
144
+ export declare function generateOpaquePanelCss(input: Readonly<{
145
+ themeId: string;
146
+ surface: OpaqueSurfaceContext;
147
+ }>): string;
@@ -18,6 +18,17 @@ export declare const boxBackgroundSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
18
18
  supportingColor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
19
19
  type: z.ZodLiteral<"color">;
20
20
  color: z.ZodOptional<z.ZodNullable<z.ZodString>>;
21
+ mediaScrim: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDiscriminatedUnion<[z.ZodObject<{
22
+ type: z.ZodLiteral<"none">;
23
+ }, z.core.$strip>, z.ZodObject<{
24
+ type: z.ZodLiteral<"color">;
25
+ color: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26
+ opacity: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
27
+ }, z.core.$strip>, z.ZodObject<{
28
+ type: z.ZodLiteral<"gradient">;
29
+ gradient: z.ZodOptional<z.ZodNullable<z.ZodString>>;
30
+ opacity: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
31
+ }, z.core.$strip>], "type">>>>;
21
32
  }, z.core.$strip>, z.ZodObject<{
22
33
  contentOwner: z.ZodOptional<z.ZodLiteral<"page-design-editor">>;
23
34
  textColor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -27,6 +38,17 @@ export declare const boxBackgroundSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
27
38
  type: z.ZodLiteral<"gradient">;
28
39
  gradient: z.ZodOptional<z.ZodNullable<z.ZodString>>;
29
40
  gradientPresetId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
41
+ mediaScrim: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDiscriminatedUnion<[z.ZodObject<{
42
+ type: z.ZodLiteral<"none">;
43
+ }, z.core.$strip>, z.ZodObject<{
44
+ type: z.ZodLiteral<"color">;
45
+ color: z.ZodOptional<z.ZodNullable<z.ZodString>>;
46
+ opacity: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
47
+ }, z.core.$strip>, z.ZodObject<{
48
+ type: z.ZodLiteral<"gradient">;
49
+ gradient: z.ZodOptional<z.ZodNullable<z.ZodString>>;
50
+ opacity: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
51
+ }, z.core.$strip>], "type">>>>;
30
52
  }, z.core.$strip>, z.ZodObject<{
31
53
  contentOwner: z.ZodOptional<z.ZodLiteral<"page-design-editor">>;
32
54
  textColor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -62,6 +62,28 @@ export type ContextualButtonResolution = Readonly<{
62
62
  * Images, gradients, alpha/composite layers and arbitrary CSS remain unknown.
63
63
  */
64
64
  export declare function deriveButtonSurfaceContext(input: ButtonSurfaceInput, palette: Readonly<Record<string, string>>, fallbackToken?: string): ButtonSurfaceContext;
65
+ /**
66
+ * The complete button context a surface publishes: `--rb-action-*` variables
67
+ * for every role, resolved against the surface when its colour is provable,
68
+ * and an explicit reset when it is not (image, gradient, composited), so a
69
+ * nested surface never inherits a context resolved for an outer band.
70
+ * A surface with no background of its own publishes nothing and inherits.
71
+ *
72
+ * Sections (through the blocks background transforms), card roles and opaque
73
+ * block panels all publish through this one function.
74
+ */
75
+ export declare function surfaceButtonContextStyles(input: Readonly<{
76
+ surface: ButtonSurfaceInput;
77
+ palette: ButtonColourPalette;
78
+ buttonSystem: ButtonSystem | undefined;
79
+ fallbackToken?: string;
80
+ }>): Readonly<Record<string, string>>;
81
+ /** Every role's contextual styles against one proven solid surface. */
82
+ export declare function knownSurfaceButtonContextStyles(input: Readonly<{
83
+ surface: KnownButtonSurface;
84
+ palette: ButtonColourPalette;
85
+ buttonSystem: ButtonSystem;
86
+ }>): Readonly<Record<string, string>>;
65
87
  export declare function resolveContextualButtonRole(input: Readonly<{
66
88
  role: VariantRole;
67
89
  buttonSystem: ButtonSystem;
@@ -20,6 +20,18 @@ export type ResolvedCardSurface = {
20
20
  variant: CardVariant;
21
21
  source: CardSurfaceSource;
22
22
  };
23
+ /**
24
+ * Whether a card system gives `role` a surface of its own, rather than one
25
+ * borrowed through the fallback chain below.
26
+ *
27
+ * `none` asks for no surface and `default` is every card system's everyday
28
+ * card (the generated baseline stands in for it by design), so both always
29
+ * hold. `alternative` and `open` hold only when the site style declares an
30
+ * enabled variant for them: otherwise `alternative` quietly renders the
31
+ * default card and `open` the generated baseline, and a Look asking for either
32
+ * would look like some other Look. Look availability is derived from this.
33
+ */
34
+ export declare function cardSystemDefinesRole(cardSystem: CardSystem | null, role: CardRole): boolean;
23
35
  /**
24
36
  * Resolve a card role against a site style's card system.
25
37
  *