@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
@@ -1,3 +1,4 @@
1
+ import type { CheckoutSessionHandle } from '../../commerce/src/purchase/index';
1
2
  import type { ChangePlanRequest, ChangePlanResponse } from './types';
2
3
  import type { ApiClient } from './request';
3
4
  import type { BillingPlanId, PaidBillingPlanId } from '../../billing/src/plans/types';
@@ -8,7 +9,6 @@ export type BillingPortalSessionResponse = Readonly<{
8
9
  import type { StripeAutomaticTaxIssue, StripeAutomaticTaxReadiness, StripeAutomaticTaxStatus } from '@riverbankcms/billing/tax/automatic-tax';
9
10
  import type { StripeConnectRestrictions } from '@riverbankcms/billing/stripe/connect-restrictions';
10
11
  import type { SiteBillingArrangement } from '../../billing/src/site-arrangements';
11
- import type { PlatformCheckoutSession } from '../../billing/src/checkout/platform';
12
12
  export type BillingStatusResponse = {
13
13
  hasActiveSubscription: boolean;
14
14
  subscriptionStatus: string | null;
@@ -70,7 +70,7 @@ export type BillingCheckoutRequest = {
70
70
  continuation?: SitePublishCheckoutContinuation;
71
71
  };
72
72
  /** A hosted platform Checkout session: the URL to redirect to. */
73
- type HostedBillingCheckoutSession = PlatformCheckoutSession<'hosted'>;
73
+ type HostedBillingCheckoutSession = CheckoutSessionHandle<'hosted'>;
74
74
  export type BillingCheckoutResponse = HostedBillingCheckoutSession;
75
75
  export type SiteBillingCheckoutResponse = HostedBillingCheckoutSession;
76
76
  export type SiteBillingCheckoutRequest = Readonly<{
@@ -394,7 +394,11 @@ export type SiteBySlugResponse = {
394
394
  * booking page's header and footer.
395
395
  */
396
396
  businessDetails?: SiteRuntimeBusinessDetails;
397
- /** Presentation projection of the canonical plan branding entitlement. */
397
+ /**
398
+ * @deprecated No longer sent. The plan's attribution now arrives inside
399
+ * `layout.footer.footerRuntime`; this optional field is removed with the
400
+ * booking-page contract clean-up.
401
+ */
398
402
  bookingAttribution?: import('./siteSettings').SiteRuntimeBookingAttribution;
399
403
  routes: Record<string, {
400
404
  path: string;
@@ -1,3 +1,4 @@
1
+ import type { FooterAttribution } from '../../blocks/src/rendering/server';
1
2
  import type { FooterCompositionV1, MailingListProviderScope } from '../../core/src/index';
2
3
  export type FooterCompositionSnapshot = Readonly<{
3
4
  kind: 'ready';
@@ -9,6 +10,14 @@ export type FooterCompositionSnapshot = Readonly<{
9
10
  kind: 'invalid';
10
11
  message: string;
11
12
  }>;
13
+ /**
14
+ * The footer composer's read: the owner's composition, plus the plan's
15
+ * attribution line the served footer ends with. The line is platform-owned,
16
+ * so the composer shows it but never saves it.
17
+ */
18
+ export type FooterCompositionRead = FooterCompositionSnapshot & Readonly<{
19
+ attribution: FooterAttribution | null;
20
+ }>;
12
21
  export type FooterCompositionUpdateRequest = Readonly<{
13
22
  composition: FooterCompositionV1;
14
23
  baseRevision: number;
@@ -1,9 +1,9 @@
1
1
  import type { ConfiguredMailingListProvider, MailingListProviderScope, MailingListRuntimeContext, SiteId } from '../../core/src/index';
2
- import type { FooterCompositionSnapshot, FooterCompositionUpdateRequest, FooterCompositionUpdateResponse, PublicProfileSnapshot, PublicProfileUpdateRequest, PublicProfileUpdateResponse } from './siteManagementEndpoints';
2
+ import type { FooterCompositionRead, FooterCompositionUpdateRequest, FooterCompositionUpdateResponse, PublicProfileSnapshot, PublicProfileUpdateRequest, PublicProfileUpdateResponse } from './siteManagementEndpoints';
3
3
  import type { ApiClient } from './request';
4
4
  import type { FormSummary } from './contentRuntime';
5
- export type { FooterCompositionSnapshot, FooterCompositionUpdateRequest, FooterCompositionUpdateResponse, PublicProfileSnapshot, PublicProfileUpdateRequest, PublicProfileUpdateResponse, } from './siteManagementEndpoints';
6
- export declare function getFooterComposition(apiClient: ApiClient<'getFooterComposition'>, siteId: SiteId): Promise<FooterCompositionSnapshot>;
5
+ export type { FooterCompositionRead, FooterCompositionSnapshot, FooterCompositionUpdateRequest, FooterCompositionUpdateResponse, PublicProfileSnapshot, PublicProfileUpdateRequest, PublicProfileUpdateResponse, } from './siteManagementEndpoints';
6
+ export declare function getFooterComposition(apiClient: ApiClient<'getFooterComposition'>, siteId: SiteId): Promise<FooterCompositionRead>;
7
7
  export type FooterFormSummary = Omit<FormSummary, 'contactDefinition'> & Required<Pick<FormSummary, 'contactDefinition'>>;
8
8
  export declare function listFooterForms(apiClient: ApiClient<'listForms'>, siteId: SiteId): Promise<readonly FooterFormSummary[]>;
9
9
  export type FooterEngagementAuthoringOptions = Readonly<{
@@ -5,7 +5,7 @@ export { parsePreviewRefreshResponse, previewRefreshRequestSchema, previewRefres
5
5
  export type { PreviewRefreshParseError, PreviewRefreshRequest, PreviewRefreshResponse, } from './preview-auth';
6
6
  export { RIVERBANK_CLI_OAUTH_APPLICATION_NAME, RIVERBANK_CLI_OAUTH_CALLBACK_URL, RIVERBANK_CLI_OAUTH_SCOPES, } from './oauth';
7
7
  export { getFooterComposition, getPublicProfile, updateFooterComposition, updatePublicProfile, } from './footerSettings';
8
- export type { FooterCompositionSnapshot, FooterCompositionUpdateRequest, FooterCompositionUpdateResponse, PublicProfileSnapshot, PublicProfileUpdateRequest, PublicProfileUpdateResponse, } from './siteManagementEndpoints';
8
+ export type { FooterCompositionRead, FooterCompositionSnapshot, FooterCompositionUpdateRequest, FooterCompositionUpdateResponse, PublicProfileSnapshot, PublicProfileUpdateRequest, PublicProfileUpdateResponse, } from './siteManagementEndpoints';
9
9
  export { ACCOUNT_SITE_TITLE_MAX_LENGTH, ACCOUNT_SITE_LIST_LIMIT_MIN, ACCOUNT_SITE_LIST_LIMIT_MAX, ACCOUNT_SITE_LIST_LIMIT_DEFAULT, ACCOUNT_SITE_CURSOR_MAX_LENGTH, ACCOUNT_SITE_SEARCH_MAX_LENGTH, ACCOUNT_PROJECT_CREDENTIAL_PROJECT_NAME_MAX_LENGTH, accountCreateSiteRequestSchema, accountProvisionProjectCredentialsRequestSchema, accountListSitesQuerySchema, accountSiteDeploymentModeSchema, accountSiteTimestampSchema, isAccountSiteTimestamp, } from './accountEndpoints';
10
10
  export { classifyDemoDashboardMutationDescriptor, classifyDemoDashboardMutationEndpoint, summarizeDemoDashboardMutationSurfaces, type DemoDashboardMutationEndpointDescriptor, type DemoDashboardMutationSurface, type DemoDashboardMutationSurfaceSummary, } from './demoDashboardMutationSurfaces';
11
11
  export { managedDomainAddOnPricingSnapshotSchema } from './accessAdmin';
@@ -0,0 +1,13 @@
1
+ export declare const YOUR_BOOKINGS_LABEL = "Your bookings";
2
+ /**
3
+ * The booking page's link to the customer portal, in the header and the
4
+ * footer alike. It is a portal link, so renderers apply the portal link rules
5
+ * (including the portal-enabled gate); the label stays the same signed in.
6
+ */
7
+ export declare const YOUR_BOOKINGS_PORTAL_LINK: {
8
+ readonly kind: "portal";
9
+ readonly labels: {
10
+ readonly loggedOut: "Your bookings";
11
+ readonly loggedIn: "Your bookings";
12
+ };
13
+ };
@@ -1,6 +1,7 @@
1
1
  import type { APIEndpoints, NavigationMenuWithItems } from './types';
2
2
  import type { ApiClient } from './request';
3
3
  export { collectCartLinkStats, collectPortalLinkStats, type CartLinkValidationItem, type CartLinkValidationStats, type NavigationMenuValidationItem, type PortalLinkValidationItem, type PortalLinkValidationStats, } from './navigationMenuValidation';
4
+ export { YOUR_BOOKINGS_LABEL, YOUR_BOOKINGS_PORTAL_LINK, } from './navigation/bookingPortalLink';
4
5
  export { isInternalLink, isPageLink, isEntryLink, resolveNavigationLinkInput, } from './navigation/linkResolver';
5
6
  export { isNavigationDropdownSentinel, normalizeNavigationAuthoringLinkForCommand, normalizeNavigationConfigItemForCommand, navigationApiItemToSdkLocalItem, navigationCommandItemToManagementInput, } from './navigation/boundaries';
6
7
  export type { NavigationAuthoringItemInput, NavigationAuthoringLinkInput, NavigationBoundaryPortalLinkPayload, NavigationCommandBoundaryItemInput, NavigationConfigItemInput, NavigationDropdownSentinel, NavigationLocalItemInput, NavigationReadItemInput, } from './navigation/boundaries';
@@ -1,4 +1,3 @@
1
- import type { BookingMailingListNote as BookingSignupNote } from '../../../core/src/index';
2
1
  /**
3
2
  * Storefront event discovery, registration, checkout and eligibility endpoints.
4
3
  *
@@ -7,9 +6,8 @@ import type { BookingMailingListNote as BookingSignupNote } from '../../../core/
7
6
  import type { EventRegistrationOptionsRequest, EventRegistrationOptionsResponse } from '../../../blocks/src/system/blocks/event-registration';
8
7
  import type { PublicWaitlistClaimResponse } from '../../../commerce/src/index';
9
8
  import type { APIEndpoint } from '../apiEndpointTypes';
10
- import type { DirectCheckoutCollectionOptionKind, EventAttendanceMode } from '../bookingConfig';
11
- import type { EventTicketSelectionRequest, PublicEventLoaderParams } from './sharedTypes';
12
- import type { EventRegisterResponse as EventRegistrationOutcome, EventRegistrationPaymentSubject, EventRegistrationNextStepRequest, EventRegistrationNextStepResponse } from '../../../blocks/src/system/runtime/api/types';
9
+ import type { PublicEventLoaderParams } from './sharedTypes';
10
+ import type { EventRegisterResponse as EventRegistrationOutcome, EventRegisterRequest, EventCheckoutRequest, EventCheckoutResponse, EventCheckoutReturnRequest, EventCheckoutReturnResponse, EventRegistrationNextStepRequest, EventRegistrationNextStepResponse } from '../../../blocks/src/system/runtime/api/types';
13
11
  /**
14
12
  * The canonical public Event record.
15
13
  *
@@ -89,133 +87,14 @@ export type PublicEventAPIEndpoints = {
89
87
  };
90
88
  } | null;
91
89
  }>;
92
- registerForEvent: APIEndpoint<{
93
- /**
94
- * Client-generated command identity for this submission (UUID).
95
- *
96
- * Generated once when the customer submits and retained across transport
97
- * retries, so a lost response can be replayed rather than double-booked.
98
- * The single-occurrence commit is keyed on it; see #1273.
99
- */
100
- registrationCommandId: string;
101
- checkout?: {
102
- successUrl: string;
103
- cancelUrl: string;
104
- discountCode?: string;
105
- collectionOptionKind?: DirectCheckoutCollectionOptionKind;
106
- };
107
- subject: {
108
- kind: 'occurrence';
109
- occurrenceId: string;
110
- attendanceMode?: EventAttendanceMode;
111
- } | {
112
- kind: 'wholeSeries';
113
- eventSeriesId: string;
114
- attendanceMode?: EventAttendanceMode;
115
- };
116
- selectedSlidingAmount?: number;
117
- email: string;
118
- name: string;
119
- ticketSelections: EventTicketSelectionRequest[];
120
- phone?: string;
121
- notes?: string;
122
- formData?: Record<string, unknown>;
123
- consentAccepted?: boolean;
124
- mailingListOptIn?: boolean;
125
- altchaSolution?: string | null;
126
- paymentMethod?: 'free' | 'pass' | 'membership' | 'stripe' | 'pass_bundle' | 'membership_bundle';
127
- customerPassId?: string;
128
- customerMembershipId?: string;
129
- bundleProductId?: string;
130
- claimToken?: string;
131
- waitlistEntryId?: string;
132
- guests?: Array<{
133
- name: string;
134
- email?: string | null;
135
- phone?: string | null;
136
- }>;
137
- }, {
90
+ registerForEvent: APIEndpoint<Omit<EventRegisterRequest, 'siteId'>, {
138
91
  siteId: string;
139
92
  }, EventRegistrationOutcome>;
140
- createPublicEventCheckout: APIEndpoint<{
141
- subject: {
142
- kind: 'occurrence';
143
- attendeeId: string;
144
- };
145
- registrationCommandId: string;
146
- checkoutType?: 'event' | 'pass_bundle' | 'membership_bundle';
147
- productId?: string;
148
- discountCode?: string;
149
- collectionOptionKind?: DirectCheckoutCollectionOptionKind;
150
- successUrl: string;
151
- cancelUrl: string;
152
- } | {
153
- subject: {
154
- kind: 'wholeSeries';
155
- eventSeriesId: string;
156
- attendanceMode?: EventAttendanceMode;
157
- };
158
- ticketSelections: EventTicketSelectionRequest[];
159
- selectedSlidingAmount?: number;
160
- email: string;
161
- name: string;
162
- phone?: string;
163
- formData?: Record<string, unknown>;
164
- consentAccepted?: boolean;
165
- mailingListOptIn?: boolean;
166
- altchaSolution?: string | null;
167
- guests?: Array<{
168
- name: string;
169
- email?: string | null;
170
- phone?: string | null;
171
- }>;
172
- claimToken?: string;
173
- waitlistEntryId?: string;
174
- discountCode?: string;
175
- collectionOptionKind: DirectCheckoutCollectionOptionKind;
176
- checkoutAttemptId: string;
177
- successUrl: string;
178
- cancelUrl: string;
179
- }, {
93
+ createPublicEventCheckout: APIEndpoint<EventCheckoutRequest extends infer T ? T extends {
180
94
  siteId: string;
181
- }, {
182
- scope: 'occurrence';
183
- attendeeId: string;
184
- checkoutUrl: string | null;
185
- sessionId: string | null;
186
- bypassed: boolean;
187
- deferredBalance?: {
188
- amountCents: number;
189
- currency: string;
190
- };
191
- mailingListSignupNote?: BookingSignupNote;
192
- } | {
193
- scope: 'wholeSeries';
194
- registrationId: string;
195
- checkoutAttemptId: string;
196
- recoverableUntil?: string;
197
- checkoutUrl: string | null;
198
- sessionId: string | null;
199
- bypassed: boolean;
200
- deferredBalance?: {
201
- amountCents: number;
202
- currency: string;
203
- };
204
- mailingListSignupNote?: BookingSignupNote;
205
- } | {
206
- scope: 'wholeSeries';
207
- status: 'paymentStatusRequired';
208
- checkoutAttemptId: string;
209
- recoverableUntil?: string;
210
- mailingListSignupNote?: BookingSignupNote;
211
- } | {
212
- scope: 'wholeSeries';
213
- status: 'waitlist';
214
- waitlistEntryId: string;
215
- waitlistPosition: number | null;
216
- alreadyRegistered?: boolean;
217
- mailingListSignupNote?: BookingSignupNote;
218
- }>;
95
+ } ? Omit<T, 'siteId'> : never : never, {
96
+ siteId: string;
97
+ }, EventCheckoutResponse>;
219
98
  getPublicEventRegistrationOptions: APIEndpoint<PublicEventRegistrationOptionsRequest, {
220
99
  siteId: string;
221
100
  }, PublicEventRegistrationOptionsResponse>;
@@ -236,52 +115,9 @@ export type PublicEventAPIEndpoints = {
236
115
  attendeeStatus: 'pending' | 'confirmed' | 'waitlist' | 'cancelled';
237
116
  waitlistPosition: number | null;
238
117
  }>;
239
- resolvePublicEventCheckoutReturn: APIEndpoint<{
240
- kind: 'resolveSuccess';
241
- checkoutAttemptId: string;
242
- sessionId: string;
243
- } | {
244
- kind: 'abandon';
245
- checkoutAttemptId: string;
246
- } | {
247
- kind: 'checkStatus';
248
- subject: EventRegistrationPaymentSubject;
249
- }, {
118
+ resolvePublicEventCheckoutReturn: APIEndpoint<EventCheckoutReturnRequest, {
250
119
  siteId: string;
251
- }, {
252
- kind: 'resolved';
253
- deferredBalance?: {
254
- amountCents: number;
255
- currency: string;
256
- };
257
- reference: {
258
- scope: 'occurrence';
259
- attendeeId: string;
260
- } | {
261
- scope: 'wholeSeries';
262
- registrationId: string;
263
- };
264
- } | {
265
- kind: 'abandoned';
266
- } | {
267
- kind: 'notFound';
268
- } | {
269
- kind: 'reconciliationRequired';
270
- } | {
271
- kind: 'paymentProcessing';
272
- recoverableUntil?: string;
273
- } | {
274
- kind: 'paymentAvailable';
275
- checkoutUrl: string;
276
- recoverableUntil?: string;
277
- } | {
278
- kind: 'paymentRetryAvailable';
279
- } | {
280
- kind: 'paymentCheckUnavailable';
281
- recoverableUntil?: string;
282
- } | {
283
- kind: 'paymentAssistanceRequired';
284
- }>;
120
+ }, EventCheckoutReturnResponse>;
285
121
  getPublicEventTicketQrSvg: APIEndpoint<never, {
286
122
  siteId: string;
287
123
  token: string;
@@ -1647,6 +1647,7 @@ export declare const sdkThemeWireSchema: z.ZodType<{
1647
1647
  linkColor?: string | null | undefined;
1648
1648
  supportingColor?: string | null | undefined;
1649
1649
  color?: string | null | undefined;
1650
+ mediaScrim?: unknown;
1650
1651
  } | {
1651
1652
  type: "gradient";
1652
1653
  contentOwner?: "page-design-editor" | undefined;
@@ -1656,6 +1657,7 @@ export declare const sdkThemeWireSchema: z.ZodType<{
1656
1657
  supportingColor?: string | null | undefined;
1657
1658
  gradient?: string | null | undefined;
1658
1659
  gradientPresetId?: string | null | undefined;
1660
+ mediaScrim?: unknown;
1659
1661
  } | {
1660
1662
  type: "image";
1661
1663
  contentOwner?: "page-design-editor" | undefined;
@@ -1784,6 +1786,7 @@ export declare const sdkThemeWireSchema: z.ZodType<{
1784
1786
  linkColor?: string | null | undefined;
1785
1787
  supportingColor?: string | null | undefined;
1786
1788
  color?: string | null | undefined;
1789
+ mediaScrim?: unknown;
1787
1790
  } | {
1788
1791
  type: "gradient";
1789
1792
  contentOwner?: "page-design-editor" | undefined;
@@ -1793,6 +1796,7 @@ export declare const sdkThemeWireSchema: z.ZodType<{
1793
1796
  supportingColor?: string | null | undefined;
1794
1797
  gradient?: string | null | undefined;
1795
1798
  gradientPresetId?: string | null | undefined;
1799
+ mediaScrim?: unknown;
1796
1800
  } | {
1797
1801
  type: "image";
1798
1802
  contentOwner?: "page-design-editor" | undefined;
@@ -1907,6 +1911,7 @@ export declare const sdkThemeWireSchema: z.ZodType<{
1907
1911
  linkColor?: string | null | undefined;
1908
1912
  supportingColor?: string | null | undefined;
1909
1913
  color?: string | null | undefined;
1914
+ mediaScrim?: unknown;
1910
1915
  } | {
1911
1916
  type: "gradient";
1912
1917
  contentOwner?: "page-design-editor" | undefined;
@@ -1916,6 +1921,7 @@ export declare const sdkThemeWireSchema: z.ZodType<{
1916
1921
  supportingColor?: string | null | undefined;
1917
1922
  gradient?: string | null | undefined;
1918
1923
  gradientPresetId?: string | null | undefined;
1924
+ mediaScrim?: unknown;
1919
1925
  } | {
1920
1926
  type: "image";
1921
1927
  contentOwner?: "page-design-editor" | undefined;
@@ -3707,6 +3713,7 @@ export declare const sdkThemeWireSchema: z.ZodType<{
3707
3713
  linkColor?: string | null | undefined;
3708
3714
  supportingColor?: string | null | undefined;
3709
3715
  color?: string | null | undefined;
3716
+ mediaScrim?: unknown;
3710
3717
  } | {
3711
3718
  type: "gradient";
3712
3719
  contentOwner?: "page-design-editor" | undefined;
@@ -3716,6 +3723,7 @@ export declare const sdkThemeWireSchema: z.ZodType<{
3716
3723
  supportingColor?: string | null | undefined;
3717
3724
  gradient?: string | null | undefined;
3718
3725
  gradientPresetId?: string | null | undefined;
3726
+ mediaScrim?: unknown;
3719
3727
  } | {
3720
3728
  type: "image";
3721
3729
  contentOwner?: "page-design-editor" | undefined;
@@ -3844,6 +3852,7 @@ export declare const sdkThemeWireSchema: z.ZodType<{
3844
3852
  linkColor?: string | null | undefined;
3845
3853
  supportingColor?: string | null | undefined;
3846
3854
  color?: string | null | undefined;
3855
+ mediaScrim?: unknown;
3847
3856
  } | {
3848
3857
  type: "gradient";
3849
3858
  contentOwner?: "page-design-editor" | undefined;
@@ -3853,6 +3862,7 @@ export declare const sdkThemeWireSchema: z.ZodType<{
3853
3862
  supportingColor?: string | null | undefined;
3854
3863
  gradient?: string | null | undefined;
3855
3864
  gradientPresetId?: string | null | undefined;
3865
+ mediaScrim?: unknown;
3856
3866
  } | {
3857
3867
  type: "image";
3858
3868
  contentOwner?: "page-design-editor" | undefined;
@@ -3967,6 +3977,7 @@ export declare const sdkThemeWireSchema: z.ZodType<{
3967
3977
  linkColor?: string | null | undefined;
3968
3978
  supportingColor?: string | null | undefined;
3969
3979
  color?: string | null | undefined;
3980
+ mediaScrim?: unknown;
3970
3981
  } | {
3971
3982
  type: "gradient";
3972
3983
  contentOwner?: "page-design-editor" | undefined;
@@ -3976,6 +3987,7 @@ export declare const sdkThemeWireSchema: z.ZodType<{
3976
3987
  supportingColor?: string | null | undefined;
3977
3988
  gradient?: string | null | undefined;
3978
3989
  gradientPresetId?: string | null | undefined;
3990
+ mediaScrim?: unknown;
3979
3991
  } | {
3980
3992
  type: "image";
3981
3993
  contentOwner?: "page-design-editor" | undefined;
@@ -23,8 +23,8 @@ import type { GeneratedIconSetGenerateRequest, GeneratedIconSetGenerateResponse,
23
23
  import type { AiBrandGuidelinesGenerateRequest, AiBrandGuidelinesGenerateResponse, AiBrandGuidelinesGenerationContextResponse, SiteAiBrandGuidelinesPayload, SiteAiBrandGuidelinesResponse, SiteAiProfilePayload, SiteAiProfileResponse, SiteGenerationIntakePayload, SiteGenerationIntakeResponse } from './siteOnboarding';
24
24
  import type { SitePrivacySettingsPayload, SitePrivacySettingsResponse } from './privacyPolicy';
25
25
  import type { MaintenanceSettingsPayload, MaintenanceSettingsResponse, SiteBusinessAddressPayload, SiteBusinessAddressResponse, SiteFooterBlocksEditorResponse, SiteGeneralSettingsPayload, SiteGeneralSettingsResponse, SiteLayoutSettingsPayload, SiteLayoutSettingsResponse, UpdateSiteDeploymentModePayload, UpdateSiteDeploymentModeResponse, UpdateSiteFooterBlocksPayload, UpdateSiteFooterBlocksResponse } from './siteSettings';
26
- import type { FooterCompositionSnapshot, FooterCompositionUpdateRequest, FooterCompositionUpdateResponse } from './footerCompositionContracts';
27
- export type { FooterCompositionSnapshot, FooterCompositionUpdateRequest, FooterCompositionUpdateResponse, } from './footerCompositionContracts';
26
+ import type { FooterCompositionRead, FooterCompositionUpdateRequest, FooterCompositionUpdateResponse } from './footerCompositionContracts';
27
+ export type { FooterCompositionRead, FooterCompositionSnapshot, FooterCompositionUpdateRequest, FooterCompositionUpdateResponse, } from './footerCompositionContracts';
28
28
  /**
29
29
  * Site-management endpoints collect dashboard/admin/auth/content-management API shapes
30
30
  * that still belong to the aggregate contract layer but no longer need to live inline in
@@ -557,7 +557,7 @@ export type SiteManagementAPIEndpoints = BillingAPIEndpoints & EditLeaseAPIEndpo
557
557
  }, SiteLayoutSettingsResponse>;
558
558
  getFooterComposition: APIEndpoint<never, {
559
559
  siteId: string;
560
- }, FooterCompositionSnapshot>;
560
+ }, FooterCompositionRead>;
561
561
  updateFooterComposition: APIEndpoint<FooterCompositionUpdateRequest, {
562
562
  siteId: string;
563
563
  }, FooterCompositionUpdateResponse>;
@@ -40,6 +40,8 @@ export type SiteRuntimeBusinessDetails = {
40
40
  addressVisibility: PublicAddressVisibility;
41
41
  coverImage?: {
42
42
  assetId: string;
43
+ /** The media asset's portable identifier. */
44
+ identifier: string;
43
45
  url: string;
44
46
  alt: string;
45
47
  } | null;
@@ -2,7 +2,7 @@ import type { ReactNode } from 'react';
2
2
  import { buildThemeRuntime as buildThemeRuntimeImpl } from '../../../theme-core/src/runtime/buildThemeRuntime';
3
3
  import type { Theme } from '../../../theme-core/src/schema';
4
4
  import { renderBlock as renderBlockImpl } from '../system/componentFactory';
5
- export { buildFooterRuntimeViewModel, type FooterResolvedEngagement, type FooterRuntimeEngagement, type FooterRuntimeModule, type FooterRuntimeViewModel, } from '../system/blocks/site-footer-runtime';
5
+ export { buildFooterRuntimeViewModel, withFooterAttribution, type FooterAttribution, type FooterResolvedEngagement, type FooterRuntimeEngagement, type FooterRuntimeModule, type FooterRuntimeViewModel, } from '../system/blocks/site-footer-runtime';
6
6
  export type SiteChromeThemeConfigOverride = Readonly<{
7
7
  header?: Partial<NonNullable<Theme['header']>>;
8
8
  footer?: Partial<NonNullable<Theme['footer']>>;
@@ -34,7 +34,7 @@ export { BOOKING_FORM_DATA_RESERVED_KEY_VALUES } from './system/runtime/nodes/bo
34
34
  export type { BookingFormData, BookingFormField, BookingSelectedCollectionOptionKind, } from './system/runtime/nodes/booking-form.state';
35
35
  export type { BookingAvailabilityModel, BookingAppointmentPackagesModel, BookingDiscountModel, BookingFieldsModel, BookingFlowActions, BookingPaymentModel, BookingResourcesModel, BookingServicesModel, BookingSpamProtectionModel, HeadlessBookingFlow, HeadlessBookingFlowOptions, HeadlessBookingProviderProps, } from './system/runtime/hooks/useHeadlessBookingFlow';
36
36
  export type { AppointmentBookingOverrideData, AppointmentBookingOverrideInput, AppointmentBookingOverrideInputResult, AppointmentBookingOverridePropsLike, BookingAvailabilityQuery, BookingAppointmentPackagesUnavailableReason, BookingFieldValue, BookingFieldView, BookingFlowActionResult, BookingFlowFeedback, BookingFlowStatus, BookingFlowView, BookingResourceView, BookingFlowStep, BookingFlowStepId, BookingSlotView, BookingSubmitActionResult, BookingSubmitOptions, BookingValidationErrors, DerivedBookingFlowSteps, DeriveBookingFlowStepsInput, LoadState, } from './system/runtime/hooks/useHeadlessBookingFlow.state';
37
- export type { EventRegistrationAttendeeModel, EventRegistrationDiscountModel, EventRegistrationEventsModel, EventRegistrationFlowActionResult, EventRegistrationFlowActions, EventRegistrationFlowStatus, EventRegistrationFlowStep, EventRegistrationFlowStepId, EventRegistrationFlowView, EventRegistrationGuestsModel, EventRegistrationLoadState, EventRegistrationOverrideData, EventRegistrationOverrideInput, EventRegistrationOverrideInputResult, EventRegistrationOverridePropsLike, EventRegistrationPaymentModel, EventRegistrationPaymentSelection, EventRegistrationPortalAuthModel, EventRegistrationSpamProtectionModel, EventRegistrationSubmitOptions, EventRegistrationSubmitResult, EventRegistrationTerminalModel, EventRegistrationTicketsModel, HeadlessEventRegistrationFlow, HeadlessEventRegistrationFlowOptions, HeadlessEventRegistrationProviderProps, } from './system/runtime/hooks/useHeadlessEventRegistrationFlow';
37
+ export type { EventRegistrationAttendeeModel, EventRegistrationDiscountModel, EventRegistrationEventsModel, EventRegistrationFlowActionResult, EventRegistrationFlowActions, EventRegistrationFlowStatus, EventRegistrationFlowStep, EventRegistrationFlowStepId, EventRegistrationFlowView, EventRegistrationGuestsModel, EventRegistrationLoadState, EventRegistrationOverrideData, EventRegistrationOverrideInput, EventRegistrationOverrideInputResult, EventRegistrationOverridePropsLike, EventRegistrationPaymentModel, EventRegistrationPaymentSelection, EventRegistrationPortalAuthModel, EventRegistrationSpamProtectionModel, EventRegistrationSubmitResult, EventRegistrationTerminalModel, EventRegistrationTicketsModel, HeadlessEventRegistrationFlow, HeadlessEventRegistrationFlowOptions, HeadlessEventRegistrationProviderProps, } from './system/runtime/hooks/useHeadlessEventRegistrationFlow';
38
38
  export { getEventRegistrationOverrideInput } from './system/runtime/nodes/event-registration/event-registration.headless.state';
39
39
  export { buildBookingAvailabilityQuery, buildBookingStepPlan, buildBookingSubmitPlan, createEmptyBookingValidationErrors, createFieldBookingValidationErrors, createFormBookingValidationError, describeUnknownError, deriveBookingFlowSteps, deriveBookingFieldViews, getAppointmentBookingOverrideInput, hasBookingValidationErrors, resolveAppointmentPackagesModel, resolveHeadlessBookingStatus, resolveHeadlessBookingView, toBookingFormData, toBookingSlotView, toBookingSlotViews, validateBookingField, validateBookingFields, validateBookingStep, } from './system/runtime/hooks/useHeadlessBookingFlow.state';
40
40
  export type { EventDetailsClientProps, EventDetailsIslandClientProps, } from './system/runtime/nodes/event-details.client';
@@ -55,3 +55,4 @@ export { NewsletterFormClient } from './system/runtime/nodes/newsletter-form.cli
55
55
  export type { NewsletterFormProps } from './system/runtime/nodes/newsletter-form.types';
56
56
  export { useBookingFormConfig } from './system/runtime/hooks/useBookingFormConfig';
57
57
  export type { Service, BookingFormConfig as BookingFormConfigHook, } from './system/runtime/hooks/useBookingFormConfig';
58
+ export { EventRegistrationPayment } from './system/runtime/nodes/event-registration/EventRegistrationPayment';
@@ -4,5 +4,5 @@ export { makeDefaultBlockComponent, renderBlock } from '../system/componentFacto
4
4
  export { getDefaultComponentRegistry } from '../system/runtime/components';
5
5
  export { siteHeaderManifest } from '../system/blocks/site-header';
6
6
  export { siteFooterManifest } from '../system/blocks/site-footer';
7
- export { buildFooterRuntimeViewModel, type FooterRuntimeModule, type FooterResolvedEngagement, type FooterRuntimeEngagement, type FooterRuntimeViewModel, } from '../system/blocks/site-footer-runtime';
7
+ export { buildFooterRuntimeViewModel, resolveFooterLayoutHints, withFooterAttribution, type FooterAttribution, type FooterRuntimeModule, type FooterResolvedEngagement, type FooterRuntimeEngagement, type FooterRuntimeViewModel, } from '../system/blocks/site-footer-runtime';
8
8
  export { resolveFooterRenderPlan } from '../../../theme-core/src/footer/mode';
@@ -1,7 +1,8 @@
1
1
  import { type FooterCompositionV1, type FooterMembershipKey, type FooterModuleId, type FooterRichText, type FooterSection, type PublicProfile, type Result } from '../../../../core/src/index';
2
+ import type { Theme } from '../../../../theme-core/src/schema';
2
3
  import type { FormSourceProps } from '../runtime/nodes/form.interactive';
3
4
  import type { NewsletterFormSourceProps } from '../runtime/nodes/newsletter-form.interactive';
4
- type FooterRuntimeModuleBase<TKind extends FooterSection['kind']> = Readonly<{
5
+ type FooterRuntimeModuleBase<TKind extends FooterSection['kind'] | 'attribution'> = Readonly<{
5
6
  id: FooterModuleId;
6
7
  kind: TKind;
7
8
  heading: string | null;
@@ -43,7 +44,7 @@ type FooterRuntimeModuleVariant = (FooterRuntimeModuleBase<'brand'> & Readonly<{
43
44
  content: FooterRichText;
44
45
  }>) | (FooterRuntimeModuleBase<'engagement'> & Readonly<{
45
46
  engagement: FooterRuntimeEngagement;
46
- }>);
47
+ }>) | (FooterRuntimeModuleBase<'attribution'> & FooterAttribution);
47
48
  export type FooterRuntimeModule = StrictUnion<FooterRuntimeModuleVariant>;
48
49
  export type FooterRuntimeEngagement = Readonly<{
49
50
  kind: 'standard-contact';
@@ -97,7 +98,7 @@ export type FooterRuntimeViewModel = Readonly<{
97
98
  regions: readonly FooterRuntimeRegion[];
98
99
  }>;
99
100
  export type FooterRuntimeGroup = Readonly<{
100
- kind: 'identity' | 'main-navigation' | 'visit' | 'engagement' | 'legal-ending';
101
+ kind: 'identity' | 'main-navigation' | 'visit' | 'engagement' | 'legal-ending' | 'attribution';
101
102
  className: string;
102
103
  modules: readonly FooterRuntimeModule[];
103
104
  }>;
@@ -106,6 +107,26 @@ export type FooterRuntimeRegion = Readonly<{
106
107
  className: string;
107
108
  groups: readonly FooterRuntimeGroup[];
108
109
  }>;
110
+ /**
111
+ * The platform's attribution line ("Made by Macadamia"). It is set by the
112
+ * site's plan, never by the owner, so it is not a footer composition section:
113
+ * it joins the runtime only, in the bottom bar, after the owner's modules.
114
+ */
115
+ export type FooterAttribution = Readonly<{
116
+ /** The words before the link, e.g. "Booking by". */
117
+ lead: string;
118
+ link: Readonly<{
119
+ href: string;
120
+ label: string;
121
+ }>;
122
+ }>;
123
+ /** The footer arrangement's hints that come from the site style's footer. */
124
+ export type FooterLayoutHints = Readonly<{
125
+ legalRegion: 'integrated' | 'separate';
126
+ layoutVariant: Theme['footer']['variant'] | undefined;
127
+ navigationLayout: NonNullable<Theme['footer']['navLayout']>['layout'] | undefined;
128
+ }>;
129
+ export declare function resolveFooterLayoutHints(theme: Theme | null): FooterLayoutHints;
109
130
  type FooterRuntimeViewModelInput = Readonly<{
110
131
  composition: FooterCompositionV1;
111
132
  publicProfile: PublicProfile;
@@ -130,4 +151,10 @@ export type FooterRuntimeSectionProjectionError = Readonly<{
130
151
  }>;
131
152
  export declare function projectFooterRuntimeSection(input: FooterRuntimeSectionProjectionInput): Result<FooterRuntimeModule, FooterRuntimeSectionProjectionError>;
132
153
  export declare function buildFooterRuntimeViewModel(input: FooterRuntimeViewModelInput): FooterRuntimeViewModel;
154
+ /**
155
+ * Adds the platform attribution to a resolved footer: as the last group of the
156
+ * bottom bar, which it opens when the footer's arrangement has none, so every
157
+ * footer look shows it in the same place and styles it with its own tokens.
158
+ */
159
+ export declare function withFooterAttribution(runtime: FooterRuntimeViewModel, attribution: FooterAttribution | null): FooterRuntimeViewModel;
133
160
  export {};
@@ -1,5 +1,6 @@
1
- import { type BlockDesignCapability, type DesignedBlockDesignCapability, type DesignedBlockDesignCapabilityInput, type EyebrowTreatment, type BlockDesignCapabilityMap, type BlockDesignMetadataMap, type NonEmptyReadonlyArray, type NoExtraKeys, type UnsupportedBlockDesignCapabilityReason } from '../../../theme-core/src/site-styles/index';
1
+ import { type BlockDesignCapability, type DesignedBlockDesignCapability, type DesignedBlockDesignCapabilityInput, type EyebrowTreatment, type BlockDesignCapabilityMap, type BlockDesignMetadataMap, type NonEmptyReadonlyArray, type NoExtraKeys, type SectionBackgroundPaint, type UnsupportedBlockDesignCapabilityReason } from '../../../theme-core/src/site-styles/index';
2
2
  import type { AnyBlockRuntimeDefinition } from '../contracts';
3
+ import type { FieldDefinition } from './manifest/schema';
3
4
  import type { SystemBlockDefinition } from './registry';
4
5
  export type NoBlockDesignCapabilityReason = UnsupportedBlockDesignCapabilityReason;
5
6
  export type BlockDesignCapabilityDeclaration = Readonly<{
@@ -12,6 +13,14 @@ export type BlockDesignCapabilityDeclaration = Readonly<{
12
13
  export declare function declareBlockDesignCapability<const TCapability extends DesignedBlockDesignCapabilityInput>(capability: NoExtraKeys<TCapability, DesignedBlockDesignCapabilityInput>): BlockDesignCapabilityDeclaration;
13
14
  export declare function withEyebrowCapability(declaration: BlockDesignCapabilityDeclaration, eyebrowTreatments: NonEmptyReadonlyArray<EyebrowTreatment>): BlockDesignCapabilityDeclaration;
14
15
  export declare function withLookCapability(declaration: BlockDesignCapabilityDeclaration): BlockDesignCapabilityDeclaration;
16
+ /**
17
+ * The section background paints a block's own `_sectionStyles.background`
18
+ * field admits, read from its manifest so the design capability cannot drift
19
+ * from what render admission accepts. A block without the field admits none.
20
+ */
21
+ export declare function sectionBackgroundPaintsOfFields(fields: readonly FieldDefinition[]): readonly SectionBackgroundPaint[];
22
+ /** Pins a designed capability's section background paints to the block's manifest. */
23
+ export declare function withManifestSectionBackgroundPaints(declaration: BlockDesignCapabilityDeclaration, fields: readonly FieldDefinition[]): BlockDesignCapabilityDeclaration;
15
24
  export declare function declareNoBlockDesignCapability(reason: NoBlockDesignCapabilityReason): BlockDesignCapabilityDeclaration;
16
25
  export declare function resolveDeclaredBlockDesignCapability(declaration: BlockDesignCapabilityDeclaration | undefined): BlockDesignCapability | undefined;
17
26
  export declare function blockDesignCapabilityMapFromDefinitions(definitions: readonly SystemBlockDefinition<unknown, AnyBlockRuntimeDefinition | undefined>[]): BlockDesignCapabilityMap;
@@ -44,7 +44,7 @@ export type { BlockApiClient, BoundBlockApiClient } from './client';
44
44
  export { createHostedBlockApiConfig, getBlockApiReadStage } from './readAuthority';
45
45
  export { BlockApiProvider, useBlockApi, useBlockApiOptional } from './context';
46
46
  export type { BlockApiProviderProps } from './context';
47
- export type { BlockApiConfig, BlockApiAuth, BrowserReadAuthority, ApiKeyAuth, BearerAuth, NoAuth, ApiResponse, ApiSuccessResponse, ApiErrorResponse, ApiFieldError, FormSubmitRequest, FormSubmitResponse, FormConfigResponse, FormField, BookingSubmitRequest, BookingSubmitResponse, AppointmentBookingStatusRequest, AppointmentBookingStatusResponse, AvailableSlotsRequest, AvailableSlotsResponse, TimeSlot, AvailableDatesRequest, AvailableDatesResponse, BookingService, BookingServicesRequest, BookingServicesResponse, BookingServiceResponse, BookingResource, BookingResourcesRequest, BookingResourcesResponse, PublicEvent, PublicEventsRequest, PublicEventsResponse, EventVenue, AccessRestriction, EventFilterCategory, EventFilterStaffMember, EventFilterVenue, EventFiltersResponse, EventRegisterRequest, EventRegisterResponse, EventCheckoutRequest, EventCheckoutResponse, EventCheckoutReturnRequest, EventCheckoutReturnResponse, PaymentMethod, EligiblePass, EligibleMembership, AvailablePass, AvailableMembership, DiscountContext, DiscountsAvailableRequest, DiscountsAvailableResponse, DiscountApplyLine, DiscountApplyRequest, DiscountApplyRejectedReason, DiscountApplyResponse, ShopCheckoutRequest, ShopCheckoutResponse, ShopDuplicateMembershipWarning, CustomerProfile, CustomerOrder, CustomerOrderFilter, CustomerOrderItem, CustomerOrderInstalmentPlan, CustomerOrderInstalmentPlanStatus, CustomerOrderInstalmentRow, CustomerOrderInstalmentStatus, CustomerOrderPaymentState, CustomerOrderRefund, EnabledModules, PortalMeResponse, PortalMeUpdateRequest, CustomerPass, CustomerPassCreditHistoryEntry, CustomerMembership, EventTicketBreakdownLine, CustomerEventRegistration, CustomerPortalWaitlistEntry, CustomerPortalWaitlistSubject, PortalEventTicket, CustomerAppointment, AppointmentBookingQuestionsTaskDetail, BookingQuestionsTaskDetail, BookingQuestionsAnswerValue, BookingQuestionsField, BookingQuestionsFieldOption, BookingQuestionsSection, BeforeYouComeTaskSummary, CustomerEventSeriesRegistration, EventGuest, PortalCredit, PortalCreditSummary, PortalCreditTransaction, PortalCreditResponse, PortalOrderCheckoutRequest, PortalOrderCheckoutResponse, PortalDigitalProduct, PortalDigitalProductFile, PortalDigitalProductsResponse, PortalDigitalProductAccessResponse, PortalDigitalProductDownloadUrlResponse, PortalAppointmentBookingQuestionsResponse, PortalCreateAppointmentBookingQuestionsUploadUrlRequest, PortalCreateAppointmentBookingQuestionsUploadUrlResponse, PortalFinalizeAppointmentBookingQuestionsUploadRequest, PortalFinalizeAppointmentBookingQuestionsUploadResponse, PortalUpdateAppointmentBookingQuestionsRequest, PortalUpdateAppointmentBookingQuestionsResponse, PortalEventBookingQuestionsResponse, PortalCreateEventBookingQuestionsUploadUrlRequest, PortalCreateEventBookingQuestionsUploadUrlResponse, PortalFinalizeEventBookingQuestionsUploadRequest, PortalFinalizeEventBookingQuestionsUploadResponse, PortalUpdateEventBookingQuestionsRequest, PortalUpdateEventBookingQuestionsResponse, PortalWholeSeriesBookingQuestionsResponse, PortalCreateWholeSeriesBookingQuestionsUploadUrlRequest, PortalCreateWholeSeriesBookingQuestionsUploadUrlResponse, PortalFinalizeWholeSeriesBookingQuestionsUploadRequest, PortalFinalizeWholeSeriesBookingQuestionsUploadResponse, PortalUpdateWholeSeriesBookingQuestionsRequest, PortalUpdateWholeSeriesBookingQuestionsResponse, UpdateEventGuestsRequest, EventGuestsResponse, PortalCancelWholeSeriesRegistrationRequest, PortalCancelWholeSeriesRegistrationResult, PortalCancelAppointmentRequest, PortalCancelAppointmentResult, PortalCancelEventRegistrationRequest, PortalRefundInfo, PortalCancelEventRegistrationResult, PortalTransferEventRegistrationRequest, PortalTransferEventRegistrationResult, PortalRescheduleAppointmentRequest, PortalRescheduleAppointmentResponse, PortalCancelMembershipAtPeriodEndResult, MagicLinkRequest, MagicLinkResponse, } from './types';
47
+ export type { BlockApiConfig, BlockApiAuth, BrowserReadAuthority, ApiKeyAuth, BearerAuth, NoAuth, ApiResponse, ApiSuccessResponse, ApiErrorResponse, ApiFieldError, FormSubmitRequest, FormSubmitResponse, FormConfigResponse, FormField, BookingSubmitRequest, BookingSubmitResponse, AppointmentBookingStatusRequest, AppointmentBookingStatusResponse, AvailableSlotsRequest, AvailableSlotsResponse, TimeSlot, AvailableDatesRequest, AvailableDatesResponse, BookingService, BookingServicesRequest, BookingServicesResponse, BookingServiceResponse, BookingResource, BookingResourcesRequest, BookingResourcesResponse, PublicEvent, PublicEventsRequest, PublicEventsResponse, EventVenue, AccessRestriction, EventFilterCategory, EventFilterStaffMember, EventFilterVenue, EventFiltersResponse, EventRegisterRequest, EventRegisterResponse, EventCheckoutRequest, EventCheckoutResponse, EventCheckoutReturnRequest, EventCheckoutReturnResponse, EventCheckoutStatusOutcome, PaymentMethod, EligiblePass, EligibleMembership, AvailablePass, AvailableMembership, DiscountContext, DiscountsAvailableRequest, DiscountsAvailableResponse, DiscountApplyLine, DiscountApplyRequest, DiscountApplyRejectedReason, DiscountApplyResponse, ShopCheckoutRequest, ShopCheckoutResponse, ShopDuplicateMembershipWarning, CustomerProfile, CustomerOrder, CustomerOrderFilter, CustomerOrderItem, CustomerOrderInstalmentPlan, CustomerOrderInstalmentPlanStatus, CustomerOrderInstalmentRow, CustomerOrderInstalmentStatus, CustomerOrderPaymentState, CustomerOrderRefund, EnabledModules, PortalMeResponse, PortalMeUpdateRequest, CustomerPass, CustomerPassCreditHistoryEntry, CustomerMembership, EventTicketBreakdownLine, CustomerEventRegistration, CustomerPortalWaitlistEntry, CustomerPortalWaitlistSubject, PortalEventTicket, CustomerAppointment, AppointmentBookingQuestionsTaskDetail, BookingQuestionsTaskDetail, BookingQuestionsAnswerValue, BookingQuestionsField, BookingQuestionsFieldOption, BookingQuestionsSection, BeforeYouComeTaskSummary, CustomerEventSeriesRegistration, EventGuest, PortalCredit, PortalCreditSummary, PortalCreditTransaction, PortalCreditResponse, PortalOrderCheckoutRequest, PortalOrderCheckoutResponse, PortalDigitalProduct, PortalDigitalProductFile, PortalDigitalProductsResponse, PortalDigitalProductAccessResponse, PortalDigitalProductDownloadUrlResponse, PortalAppointmentBookingQuestionsResponse, PortalCreateAppointmentBookingQuestionsUploadUrlRequest, PortalCreateAppointmentBookingQuestionsUploadUrlResponse, PortalFinalizeAppointmentBookingQuestionsUploadRequest, PortalFinalizeAppointmentBookingQuestionsUploadResponse, PortalUpdateAppointmentBookingQuestionsRequest, PortalUpdateAppointmentBookingQuestionsResponse, PortalEventBookingQuestionsResponse, PortalCreateEventBookingQuestionsUploadUrlRequest, PortalCreateEventBookingQuestionsUploadUrlResponse, PortalFinalizeEventBookingQuestionsUploadRequest, PortalFinalizeEventBookingQuestionsUploadResponse, PortalUpdateEventBookingQuestionsRequest, PortalUpdateEventBookingQuestionsResponse, PortalWholeSeriesBookingQuestionsResponse, PortalCreateWholeSeriesBookingQuestionsUploadUrlRequest, PortalCreateWholeSeriesBookingQuestionsUploadUrlResponse, PortalFinalizeWholeSeriesBookingQuestionsUploadRequest, PortalFinalizeWholeSeriesBookingQuestionsUploadResponse, PortalUpdateWholeSeriesBookingQuestionsRequest, PortalUpdateWholeSeriesBookingQuestionsResponse, UpdateEventGuestsRequest, EventGuestsResponse, PortalCancelWholeSeriesRegistrationRequest, PortalCancelWholeSeriesRegistrationResult, PortalCancelAppointmentRequest, PortalCancelAppointmentResult, PortalCancelEventRegistrationRequest, PortalRefundInfo, PortalCancelEventRegistrationResult, PortalTransferEventRegistrationRequest, PortalTransferEventRegistrationResult, PortalRescheduleAppointmentRequest, PortalRescheduleAppointmentResponse, PortalCancelMembershipAtPeriodEndResult, MagicLinkRequest, MagicLinkResponse, } from './types';
48
48
  export { discountAvailabilityAllowsManualEntry, discountAvailabilityHasDiscounts, getAutoAppliedDiscountPreview, } from './types';
49
49
  export type { BookingQuestionsDocumentAnswerValue } from '../../../portal/types';
50
50
  export { deriveCreditProductLabels, getCreditProductCreditUnit, getCreditProductTypeLabel, getPortalCreditProductCreditNoun, } from './creditProducts';