@riverbankcms/sdk 0.141.0 → 0.143.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 (123) hide show
  1. package/dist/{PreviewEditorSidebar-Q-fy9GYw.mjs → PreviewEditorSidebar-DROGfMKi.mjs} +24 -15
  2. package/dist/{PreviewEditorUI-LYGzgk85.mjs → PreviewEditorUI-BaRjhFu-.mjs} +3 -3
  3. package/dist/{PreviewQueryProvider-CN0ewic5.mjs → PreviewQueryProvider-BCYICImX.mjs} +1 -1
  4. package/dist/{SdkPreviewModeRuntime-CoPYI5Jq.mjs → SdkPreviewModeRuntime-OIABYLES.mjs} +16 -11
  5. package/dist/{SiteChromeCustomizeContext-D8LePX8x.mjs → SiteChromeCustomizeContext-ohjTvZbc.mjs} +607 -545
  6. package/dist/_dts/api/src/billing.d.ts +6 -1
  7. package/dist/_dts/api/src/bookingConfig.d.ts +1 -1
  8. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +2 -2
  9. package/dist/_dts/api/src/endpoints.d.ts +7 -27
  10. package/dist/_dts/api/src/index.d.ts +1 -1
  11. package/dist/_dts/api/src/publicBookingService.d.ts +1 -0
  12. package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +7 -0
  13. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +48 -41
  14. package/dist/_dts/api/src/sdkConfig/layout.d.ts +13 -0
  15. package/dist/_dts/api/src/sdkContracts.d.ts +3 -8
  16. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -31
  17. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +6 -1
  18. package/dist/_dts/billing/src/site-arrangements.d.ts +9 -5
  19. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +56 -0
  20. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +8 -0
  21. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -1
  22. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
  23. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +95 -35
  24. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentStatusStep.d.ts +10 -0
  25. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +0 -2
  26. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +12 -1
  27. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +2 -2
  28. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationCompletion.d.ts +1 -4
  29. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDerivations.d.ts +12 -0
  30. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +1 -1
  31. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/sessionStorage.d.ts +1 -0
  32. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/ticketSelectionLines.d.ts +4 -5
  33. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +9 -11
  34. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +56 -2
  35. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +10 -4
  36. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/usePaymentStatusRecovery.d.ts +23 -0
  37. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +1 -1
  38. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +56 -0
  39. package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +4 -4
  40. package/dist/_dts/commerce/src/purchase/eventCheckoutRecoveryWindow.d.ts +8 -0
  41. package/dist/_dts/commerce/src/purchase/index.d.ts +2 -1
  42. package/dist/_dts/commerce/src/purchase/stateTransitions.d.ts +1 -13
  43. package/dist/_dts/commerce/src/purchase/stripeCommissionMetadata.d.ts +1 -2
  44. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +58 -45
  45. package/dist/_dts/editor-blocks/src/block-editor/ColourFieldOptionsProvider.d.ts +7 -0
  46. package/dist/_dts/editor-blocks/src/block-editor/colourFieldVisibility.d.ts +7 -0
  47. package/dist/_dts/editor-blocks/src/block-editor/preparedManifest.d.ts +2 -0
  48. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  49. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -2
  50. package/dist/_dts/preview-next/src/client/preview/PreviewFooterEditorPanel.d.ts +3 -6
  51. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -2
  52. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -2
  53. package/dist/_dts/preview-next/src/client/preview/footerInspection.d.ts +16 -0
  54. package/dist/_dts/preview-next/src/client/preview/sdkConfig.d.ts +6 -0
  55. package/dist/_dts/sdk/src/config/types.d.ts +2 -18
  56. package/dist/_dts/sdk/src/config/validation.d.ts +6 -0
  57. package/dist/_dts/sdk/src/public-api/contracts.d.ts +3 -0
  58. package/dist/_dts/sdk/src/version.d.ts +1 -1
  59. package/dist/_dts/theme-core/src/footer/mode.d.ts +10 -1
  60. package/dist/_dts/theme-core/src/schema.d.ts +1 -7
  61. package/dist/_dts/theme-core/src/site-styles/effectivePageDesign.d.ts +32 -0
  62. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
  63. package/dist/client/{BookingConsentAgreement-xJeYNdnb.mjs → BookingConsentAgreement-BoCtvzzu.mjs} +2 -2
  64. package/dist/client/{DiscountCodeDisclosure-DdT6uzl9.mjs → DiscountCodeDisclosure-B5S30nZk.mjs} +1 -1
  65. package/dist/client/{EventCombined.client-Cp28uYuM.mjs → EventCombined.client-CeZ2-zSt.mjs} +5 -5
  66. package/dist/client/{EventListing.client-CD6AJsMr.mjs → EventListing.client-DJN3j8B3.mjs} +2 -2
  67. package/dist/client/{LeafletStaticMap-DBsAi9-e.mjs → LeafletStaticMap-RjtGzDQT.mjs} +1 -1
  68. package/dist/client/{accordion-6dwbOKYR.mjs → accordion-DOmnDoyg.mjs} +1 -1
  69. package/dist/client/{bookingForm-CZE9_qPQ.mjs → bookingForm-C0vk7pgS.mjs} +5 -5
  70. package/dist/client/bookings.mjs +468 -534
  71. package/dist/client/{carousel-7VHGQARz.mjs → carousel-BZJ7pno3.mjs} +1 -1
  72. package/dist/client/{cart-Qg_mvQhh.mjs → cart-CaeVAHJl.mjs} +3 -3
  73. package/dist/client/{checkout-D84rpgdr.mjs → checkout-7wmoNDtG.mjs} +3 -3
  74. package/dist/client/client.mjs +559 -593
  75. package/dist/client/{context-Ctp3T0Wr.mjs → context-BOimxE3U.mjs} +12 -1
  76. package/dist/client/{dates-DJKFcI_N.mjs → dates-BnzVksi4.mjs} +2 -2
  77. package/dist/client/{eventCalendar-CK31z3vs.mjs → eventCalendar-l-fpaslC.mjs} +7 -7
  78. package/dist/client/{eventCombined-DiXd-ewn.mjs → eventCombined-DGGvssK6.mjs} +3 -3
  79. package/dist/client/{eventDetails-CTRgt2DK.mjs → eventDetails-DRiCm_hL.mjs} +4 -4
  80. package/dist/client/{eventListing-Dy9vi_j_.mjs → eventListing-dph8loYX.mjs} +3 -3
  81. package/dist/client/{eventRegistration-CnalYMr2.mjs → eventRegistration-ClBohmbY.mjs} +472 -531
  82. package/dist/client/{form-eUiMveTT.mjs → form-BLVVAnd3.mjs} +2 -2
  83. package/dist/client/{headerSection-Dy9kQpB1.mjs → headerSection-DHy4C8Ix.mjs} +2 -2
  84. package/dist/client/hooks.mjs +39 -13
  85. package/dist/client/{locationMap-DalCmWU0.mjs → locationMap-6HuS28ck.mjs} +2 -2
  86. package/dist/client/{newsletterForm-SDDPvhS0.mjs → newsletterForm-xOdcOhZP.mjs} +2 -2
  87. package/dist/client/{pricing-OcMz4SnX.mjs → pricing-ChinRYFt.mjs} +1 -1
  88. package/dist/client/{productDetail-BQrgHElM.mjs → productDetail-0chA5gbK.mjs} +3 -3
  89. package/dist/client/{productList-OnPn_UJj.mjs → productList-OoINA0h1.mjs} +3 -3
  90. package/dist/client/{propsDecoder-zBdsnS-N.mjs → propsDecoder-CIZ-hbIG.mjs} +33 -9
  91. package/dist/client/rendering/client.mjs +536 -550
  92. package/dist/client/rendering/islands.mjs +17 -17
  93. package/dist/client/rendering.mjs +602 -596
  94. package/dist/client/{scrollToBlock-BNM4Ob2Y.mjs → scrollToBlock-BPZl0gPZ.mjs} +1 -1
  95. package/dist/client/{shop-Bv1fPTwQ.mjs → shop-CLJFqNIq.mjs} +6 -6
  96. package/dist/client/{shop-commerce-D4KNGaW8.mjs → shop-commerce-PpANg5wB.mjs} +5 -5
  97. package/dist/client/{shop-commerce-store-2N5EV0Rc.mjs → shop-commerce-store-TA_Kz2ku.mjs} +1 -1
  98. package/dist/client/{shopShared-DvJGdHTV.mjs → shopShared-DzcFcA5g.mjs} +3 -3
  99. package/dist/client/{useEventFilters-BBBvGDHQ.mjs → useEventFilters-CFU21QZo.mjs} +5 -5
  100. package/dist/preview-next/before-render.mjs +11 -37
  101. package/dist/preview-next/client/runtime.mjs +4 -4
  102. package/dist/preview-next/keepAlive.mjs +11 -37
  103. package/dist/preview-next/middleware.mjs +11 -37
  104. package/dist/{previewAuthStore-Gjb6r6vz.mjs → previewAuthStore-JA6-I_sL.mjs} +11 -37
  105. package/dist/{sdk-runtime-Defnbfzw.mjs → sdk-runtime-CDKl0Fr7.mjs} +2 -2
  106. package/dist/{separator-CZXO3Sb0.mjs → separator-BTp96X32.mjs} +1 -1
  107. package/dist/server/components.mjs +80 -51
  108. package/dist/server/config-validation.mjs +43 -14
  109. package/dist/server/config.mjs +43 -14
  110. package/dist/server/data.mjs +39 -13
  111. package/dist/server/index.mjs +12 -38
  112. package/dist/server/next.mjs +40 -53
  113. package/dist/server/page-converter.mjs +20 -8
  114. package/dist/server/prebuild.mjs +1 -1
  115. package/dist/server/rendering/server.mjs +80 -51
  116. package/dist/server/rendering.mjs +80 -51
  117. package/dist/server/routing.mjs +52 -17
  118. package/dist/server/server.mjs +40 -51
  119. package/dist/server/theme-bridge.mjs +10 -8
  120. package/dist/server/theme.mjs +10 -8
  121. package/package.json +1 -1
  122. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/checkoutRecovery.d.ts +0 -14
  123. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useCheckoutRecovery.d.ts +0 -8
@@ -31,6 +31,8 @@ export type BillingCheckoutContinuation = {
31
31
  siteId: string;
32
32
  };
33
33
  export type BillingCheckoutRequest = {
34
+ /** Stable for one customer click so transport retries cannot create another session. */
35
+ attemptId: string;
34
36
  /** Plan ID (e.g., 'solo') */
35
37
  planId: BillingPlanId;
36
38
  /** Billing interval */
@@ -43,6 +45,9 @@ export type BillingCheckoutResponse = {
43
45
  checkoutUrl: string;
44
46
  };
45
47
  export type SiteBillingCheckoutResponse = BillingCheckoutResponse;
48
+ export type SiteBillingCheckoutRequest = Readonly<{
49
+ attemptId: string;
50
+ }>;
46
51
  export type BillingSummaryResponse = {
47
52
  status: string;
48
53
  plan: {
@@ -108,6 +113,6 @@ export declare function changePlan(apiClient: ApiClient, { attemptId, planId, in
108
113
  options?: RequestInit;
109
114
  }): Promise<ChangePlanResponse>;
110
115
  export declare function createBillingPortalSession(apiClient: ApiClient, options?: RequestInit): Promise<BillingPortalSessionResponse>;
111
- export declare function billingCheckout(apiClient: ApiClient, { planId, interval, continuation, options, }: BillingCheckoutRequest & {
116
+ export declare function billingCheckout(apiClient: ApiClient, { attemptId, planId, interval, continuation, options, }: BillingCheckoutRequest & {
112
117
  options?: RequestInit;
113
118
  }): Promise<BillingCheckoutResponse>;
@@ -342,7 +342,7 @@ export type BookingSettings = {
342
342
  currency: string;
343
343
  defaultVenueId: string | null;
344
344
  calendarDisplay: 'list' | 'calendar';
345
- /** If enabled, refunds issue site credit rather than cash/Stripe refunds. */
345
+ /** If enabled, operators may issue refunds as site credit. */
346
346
  refundsIssueCredit: boolean;
347
347
  remindersEnabled: boolean;
348
348
  appointmentReminderHours: number;
@@ -2,7 +2,7 @@ import type { AppointmentBookingQuestionsTaskDetail, CustomerEventSeriesRegistra
2
2
  import type { APIEndpoint } from './apiEndpointTypes';
3
3
  import type { DeleteAccountRequest, DeleteAccountResponse } from './accessAdmin';
4
4
  import type { AiPlaygroundApplyRequest, AiPlaygroundApplyResponse } from './aiPlayground';
5
- import type { BillingCheckoutRequest, BillingCheckoutResponse, BillingStatusResponse, BillingSummaryResponse, SiteBillingCheckoutResponse, SiteBillingCostResponse } from './billing';
5
+ import type { BillingCheckoutRequest, BillingCheckoutResponse, BillingStatusResponse, BillingSummaryResponse, SiteBillingCheckoutResponse, SiteBillingCheckoutRequest, SiteBillingCostResponse } from './billing';
6
6
  import type { CreateSiteFontUploadUrlRequest, CreateSiteFontUploadUrlResponse, DeleteSiteFontFileRequest, DeleteSiteFontFileResponse, ExportBackupRequest, FontRecord, GetSiteFontResponse, ListPublicSiteFontsResponse, ListSiteFontsResponse, UpdateSiteFontRequest, UpdateSiteFontResponse, UploadSiteFontRequest, UploadSiteFontResponse } from './siteAssets';
7
7
  import type { AdminSiteBillingArrangementResponse, AdminResolveSiteBillingManualReviewRequest, AdminResolveSiteBillingManualReviewResponse, AdminScheduleBillingComponentEndRequest, AdminScheduleBillingComponentEndResponse, AdminUpdateSiteBillingArrangementRequest, AdminUpdateSiteBillingArrangementResponse, CancelFlexibleBalanceBookingDueToNonPaymentRequest, CancelShopOrderItemRequest, CancelShopOrderItemResponse, CancelShopOrderRequest, CancelShopOrderResponse, CreateShopOrderPaymentLinkResponse, CreateOrderShipmentRequest, CreateOrderShipmentResponse, EditShopOrderAddressRequest, FlexibleBalanceAdminActionResponse, PortalAppointmentWithDetails, RefundShopOrderResponse, ReopenFlexibleBalanceBookingAfterNonPaymentCancellationRequest, SendShopOrderPaymentReminderResponse, SettleShopOrderPaymentRequest, SettleShopOrderPaymentResponse, ShopOrderDigitalFulfillmentRequest, ShopOrderDigitalFulfillmentResponse } from './siteOperations';
8
8
  import type { PreviewRefreshRequest, PreviewRefreshResponse } from './preview-auth';
@@ -22,7 +22,7 @@ export type CommercePortalAPIEndpoints = {
22
22
  siteBillingCost: APIEndpoint<never, {
23
23
  siteId: string;
24
24
  }, SiteBillingCostResponse>;
25
- siteBillingCheckout: APIEndpoint<never, {
25
+ siteBillingCheckout: APIEndpoint<SiteBillingCheckoutRequest, {
26
26
  siteId: string;
27
27
  }, SiteBillingCheckoutResponse>;
28
28
  deleteAccount: APIEndpoint<DeleteAccountRequest, never, DeleteAccountResponse>;
@@ -471,20 +471,6 @@ export declare const API_ENDPOINTS: {
471
471
  readonly auth: "service";
472
472
  readonly responseKind: "json";
473
473
  };
474
- readonly sdkUpsertTheme: {
475
- readonly path: "/sdk/{siteId}/theme";
476
- readonly method: "POST";
477
- readonly auth: "service";
478
- readonly responseKind: "json";
479
- readonly errors: readonly ["validation:invalid_input", "resource:not_found", "resource:conflict", "server:internal_error"];
480
- };
481
- readonly sdkApplySiteStyleSelection: {
482
- readonly path: "/sdk/{siteId}/theme/style-selection/apply";
483
- readonly method: "POST";
484
- readonly auth: "service";
485
- readonly responseKind: "json";
486
- readonly errors: readonly ["validation:invalid_input", "resource:not_found", "resource:conflict", "server:internal_error"];
487
- };
488
474
  readonly sdkUpsertFooter: {
489
475
  readonly path: "/sdk/{siteId}/footer";
490
476
  readonly method: "POST";
@@ -673,13 +659,6 @@ export declare const API_ENDPOINTS: {
673
659
  readonly auth: "service";
674
660
  readonly responseKind: "json";
675
661
  };
676
- readonly sdkCatalogTheme: {
677
- readonly path: "/sdk/{siteId}/catalog/theme";
678
- readonly method: "GET";
679
- readonly errors: readonly ["server:internal_error"];
680
- readonly auth: "service";
681
- readonly responseKind: "json";
682
- };
683
662
  readonly sdkCatalogBlocks: {
684
663
  readonly path: "/sdk/{siteId}/catalog/blocks";
685
664
  readonly method: "GET";
@@ -740,12 +719,6 @@ export declare const API_ENDPOINTS: {
740
719
  readonly auth: "service";
741
720
  readonly responseKind: "json";
742
721
  };
743
- readonly sdkPullTheme: {
744
- readonly path: "/sdk/{siteId}/pull/theme";
745
- readonly method: "GET";
746
- readonly auth: "service";
747
- readonly responseKind: "json";
748
- };
749
722
  readonly sdkPullFooter: {
750
723
  readonly path: "/sdk/{siteId}/pull/footer";
751
724
  readonly method: "GET";
@@ -5859,6 +5832,13 @@ export declare const API_ENDPOINTS: {
5859
5832
  auth: "public";
5860
5833
  responseKind: "json";
5861
5834
  };
5835
+ readonly checkPublicEventRegistrationNextStep: {
5836
+ path: "/public/sites/{siteId}/events/registration-next-step";
5837
+ method: "POST";
5838
+ auth: "public";
5839
+ responseKind: "json";
5840
+ errors: ("auth:forbidden" | "validation:invalid_input" | "server:internal_error")[];
5841
+ };
5862
5842
  readonly listPublicEventCalendarWindow: {
5863
5843
  path: "/public/sites/{siteId}/events/calendar-window";
5864
5844
  method: "GET";
@@ -12,7 +12,7 @@ export { dashboardNavigationLinkSchema, sdkNavigationLinkInputSchema, externalLi
12
12
  export { isNavigationDropdownSentinel, normalizeNavigationAuthoringLinkForCommand, normalizeNavigationConfigItemForCommand, navigationApiItemToSdkLocalItem, navigationCommandItemToManagementInput, } from './navigation/boundaries';
13
13
  export type { NavigationAuthoringItemInput, NavigationAuthoringLinkInput, NavigationBoundaryPortalLinkPayload, NavigationCommandBoundaryItemInput, NavigationConfigItemInput, NavigationDropdownSentinel, NavigationLocalItemInput, NavigationReadItemInput, } from './navigation/boundaries';
14
14
  export { pushSdkConfigBodySchema, loaderFallbackScalarSchema, riverbankSiteConfigInputSchema, sdkCustomBlockInputSchema, sdkWorkflowConfigSchema, sdkWorkflowTriggerSchema, sdkWorkflowConfirmationSchema, sdkWorkflowsSchema, SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH, SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH, SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH, SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH, SDK_WORKFLOW_ENDPOINT_MAX_LENGTH, SDK_WORKFLOW_ENDPOINT_PATTERN, SDK_WORKFLOW_ID_MAX_LENGTH, SDK_WORKFLOW_ID_PATTERN, SDK_WORKFLOW_MAX_COUNT, SDK_WORKFLOW_TITLE_MAX_LENGTH, SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT, SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH, SDK_WORKFLOW_TRIGGER_MAX_COUNT, fieldDefinitionInputSchema, } from './sdkConfig/contracts';
15
- export { formatIgnoredDocumentSyncSectionWarning } from './sdkContracts';
15
+ export { formatIgnoredDocumentSyncSectionWarning, type SdkSiteLayoutConfig } from './sdkContracts';
16
16
  export { normalizeSdkThemeWire, sdkThemeWireSchema, type SdkCanonicalTheme, type SdkThemeWire, type SdkThemeWireWithoutHeader, } from './sdkThemeWire';
17
17
  export { createIncrementalJsonAccumulator } from './incrementalJson';
18
18
  export type { ApplySiteStyleSelectionBody, SiteStyleHeaderSelectionChange, SiteStyleSelectionChange, SaveSiteChromeSelectionBody, SaveSiteChromeSelectionResponse, SiteThemeSelectionsPayload, ThemeWithoutHeader, } from './siteRuntimeEndpoints';
@@ -58,6 +58,7 @@ export type PublicBookingRefundPolicy = Readonly<{
58
58
  mode: EventBookingPolicyMode;
59
59
  /** Hours before the start that refunds close. Only meaningful when `mode` is `cutoff`. */
60
60
  cutoffHours: number;
61
+ method: "original_payment_method" | "site_credit";
61
62
  }>;
62
63
  export type PublicBookingCancellationPolicy = Readonly<{
63
64
  refunds: PublicBookingRefundPolicy;
@@ -1,4 +1,11 @@
1
1
  export declare const PUBLIC_EVENT_ENDPOINT_DEFINITIONS: {
2
+ checkPublicEventRegistrationNextStep: {
3
+ path: "/public/sites/{siteId}/events/registration-next-step";
4
+ method: "POST";
5
+ auth: "public";
6
+ responseKind: "json";
7
+ errors: ("auth:forbidden" | "validation:invalid_input" | "server:internal_error")[];
8
+ };
2
9
  listPublicEventCalendarWindow: {
3
10
  path: "/public/sites/{siteId}/events/calendar-window";
4
11
  method: "GET";
@@ -7,7 +7,8 @@ import type { EventRegistrationOptionsRequest, EventRegistrationOptionsResponse
7
7
  import type { PublicWaitlistClaimResponse } from '../../../commerce/src/index';
8
8
  import type { APIEndpoint } from '../apiEndpointTypes';
9
9
  import type { DirectCheckoutCollectionOptionKind, EventAttendanceMode } from '../bookingConfig';
10
- import type { EventTicketLineSummaryResponse, EventTicketSelectionRequest, PublicEventLoaderParams } from './sharedTypes';
10
+ import type { EventTicketSelectionRequest, PublicEventLoaderParams } from './sharedTypes';
11
+ import type { EventRegisterResponse as EventRegistrationOutcome, EventRegistrationPaymentSubject, EventRegistrationNextStepRequest, EventRegistrationNextStepResponse } from '../../../blocks/src/system/runtime/api/types';
11
12
  /**
12
13
  * The canonical public Event record.
13
14
  *
@@ -95,6 +96,12 @@ export type PublicEventAPIEndpoints = {
95
96
  * The single-occurrence commit is keyed on it; see #1273.
96
97
  */
97
98
  registrationCommandId: string;
99
+ checkout?: {
100
+ successUrl: string;
101
+ cancelUrl: string;
102
+ discountCode?: string;
103
+ collectionOptionKind?: DirectCheckoutCollectionOptionKind;
104
+ };
98
105
  subject: {
99
106
  kind: 'occurrence';
100
107
  occurrenceId: string;
@@ -126,51 +133,13 @@ export type PublicEventAPIEndpoints = {
126
133
  }>;
127
134
  }, {
128
135
  siteId: string;
129
- }, {
130
- success: boolean;
131
- scope: 'occurrence';
132
- attendeeId: string;
133
- status: 'confirmed';
134
- paymentMethod: 'free' | 'pass' | 'membership' | 'stripe' | 'pass_bundle' | 'membership_bundle';
135
- pendingPayment: boolean;
136
- passCreditsUsed?: number;
137
- passCreditsRemaining?: number;
138
- alreadyRegistered?: boolean;
139
- ticketLines: EventTicketLineSummaryResponse[];
140
- message: string;
141
- } | {
142
- success: boolean;
143
- scope: 'occurrence';
144
- attendeeId: string;
145
- status: 'waitlist';
146
- waitlistPosition: number | null;
147
- alreadyRegistered?: boolean;
148
- message: string;
149
- } | {
150
- success: boolean;
151
- scope: 'wholeSeries';
152
- registrationId: string;
153
- status: 'confirmed';
154
- paymentMethod: 'free' | 'membership';
155
- pendingPayment: false;
156
- alreadyRegistered?: boolean;
157
- ticketLines: EventTicketLineSummaryResponse[];
158
- message: string;
159
- } | {
160
- success: boolean;
161
- scope: 'wholeSeries';
162
- waitlistEntryId: string;
163
- status: 'waitlist';
164
- waitlistPosition: number | null;
165
- alreadyRegistered?: boolean;
166
- message: string;
167
- }>;
136
+ }, EventRegistrationOutcome>;
168
137
  createPublicEventCheckout: APIEndpoint<{
169
138
  subject: {
170
139
  kind: 'occurrence';
171
140
  attendeeId: string;
172
141
  };
173
- registrationCommandId?: string;
142
+ registrationCommandId: string;
174
143
  checkoutType?: 'event' | 'pass_bundle' | 'membership_bundle';
175
144
  productId?: string;
176
145
  discountCode?: string;
@@ -211,13 +180,27 @@ export type PublicEventAPIEndpoints = {
211
180
  checkoutUrl: string | null;
212
181
  sessionId: string | null;
213
182
  bypassed: boolean;
183
+ deferredBalance?: {
184
+ amountCents: number;
185
+ currency: string;
186
+ };
214
187
  } | {
215
188
  scope: 'wholeSeries';
216
189
  registrationId: string;
217
190
  checkoutAttemptId: string;
191
+ recoverableUntil?: string;
218
192
  checkoutUrl: string | null;
219
193
  sessionId: string | null;
220
194
  bypassed: boolean;
195
+ deferredBalance?: {
196
+ amountCents: number;
197
+ currency: string;
198
+ };
199
+ } | {
200
+ scope: 'wholeSeries';
201
+ status: 'paymentStatusRequired';
202
+ checkoutAttemptId: string;
203
+ recoverableUntil?: string;
221
204
  } | {
222
205
  scope: 'wholeSeries';
223
206
  status: 'waitlist';
@@ -228,6 +211,9 @@ export type PublicEventAPIEndpoints = {
228
211
  getPublicEventRegistrationOptions: APIEndpoint<PublicEventRegistrationOptionsRequest, {
229
212
  siteId: string;
230
213
  }, PublicEventRegistrationOptionsResponse>;
214
+ checkPublicEventRegistrationNextStep: APIEndpoint<EventRegistrationNextStepRequest, {
215
+ siteId: string;
216
+ }, EventRegistrationNextStepResponse>;
231
217
  getPublicEventRegistrationStatus: APIEndpoint<never, {
232
218
  siteId: string;
233
219
  } & ({
@@ -249,10 +235,17 @@ export type PublicEventAPIEndpoints = {
249
235
  } | {
250
236
  kind: 'abandon';
251
237
  checkoutAttemptId: string;
238
+ } | {
239
+ kind: 'checkStatus';
240
+ subject: EventRegistrationPaymentSubject;
252
241
  }, {
253
242
  siteId: string;
254
243
  }, {
255
244
  kind: 'resolved';
245
+ deferredBalance?: {
246
+ amountCents: number;
247
+ currency: string;
248
+ };
256
249
  reference: {
257
250
  scope: 'occurrence';
258
251
  attendeeId: string;
@@ -266,6 +259,20 @@ export type PublicEventAPIEndpoints = {
266
259
  kind: 'notFound';
267
260
  } | {
268
261
  kind: 'reconciliationRequired';
262
+ } | {
263
+ kind: 'paymentProcessing';
264
+ recoverableUntil?: string;
265
+ } | {
266
+ kind: 'paymentAvailable';
267
+ checkoutUrl: string;
268
+ recoverableUntil?: string;
269
+ } | {
270
+ kind: 'paymentRetryAvailable';
271
+ } | {
272
+ kind: 'paymentCheckUnavailable';
273
+ recoverableUntil?: string;
274
+ } | {
275
+ kind: 'paymentAssistanceRequired';
269
276
  }>;
270
277
  getPublicEventTicketQrSvg: APIEndpoint<never, {
271
278
  siteId: string;
@@ -0,0 +1,13 @@
1
+ import type { FooterMode } from '../../../theme-core/src/footer/mode';
2
+ /** SDK-owned footer implementation and source-controlled content seed. */
3
+ export interface SdkSiteLayoutConfig {
4
+ /** Riverbank footer surfaces used by the site; custom callbacks keep precedence. */
5
+ footerMode?: FooterMode;
6
+ /** Global footer blocks synced by push-config, with dashboard content editing. */
7
+ footerBlocks?: Array<{
8
+ /** Stable source identifier, not a CMS block UUID. */
9
+ id?: string;
10
+ kind: string;
11
+ content?: Record<string, unknown>;
12
+ }>;
13
+ }
@@ -1,3 +1,5 @@
1
+ import type { SdkSiteLayoutConfig } from './sdkConfig/layout';
2
+ export type { SdkSiteLayoutConfig } from './sdkConfig/layout';
1
3
  import type { BlockContentSource, BlockContentSourceKind, FieldDefinition, FieldDefinitionInput, SdkCustomBlock, SdkCustomBlockInput, Theme } from '../../blocks/src/index';
2
4
  import type { ContentTypeSchema } from '../../content-model/src/index';
3
5
  import type { EventPreset, FooterCompositionV1, RichTextDoc } from '../../core/src/index';
@@ -81,13 +83,6 @@ export interface SdkBlockFieldConfig {
81
83
  * Note: This mirrors BlockFieldOptionsMap from @riverbankcms/sdk/config for use in API responses.
82
84
  */
83
85
  export type SdkBlockFieldOptionsMap = Record<string, Record<string, SdkBlockFieldConfig>>;
84
- export interface SdkSiteLayoutConfig {
85
- footerBlocks?: Array<{
86
- id?: string;
87
- kind: string;
88
- content?: Record<string, unknown>;
89
- }>;
90
- }
91
86
  export interface SdkContentTypeTemplateConfig {
92
87
  blocks: unknown[];
93
88
  }
@@ -228,6 +223,7 @@ export declare function formatIgnoredDocumentSyncSectionWarning(section: Ignored
228
223
  export type SyncFooterBlocksResult = {
229
224
  updated: boolean;
230
225
  skipped: boolean;
226
+ reason?: 'unchanged' | 'preserved-dashboard-edit' | 'mode-only';
231
227
  };
232
228
  export type SdkConfigSyncResult = {
233
229
  success: boolean;
@@ -694,7 +690,6 @@ export interface SdkCapabilityCatalogLink {
694
690
  export interface SdkCapabilitiesResponse {
695
691
  apiVersion: string;
696
692
  catalogs: {
697
- theme: SdkCapabilityCatalogLink;
698
693
  blocks: SdkCapabilityCatalogLink;
699
694
  contentTypes: SdkCapabilityCatalogLink;
700
695
  };
@@ -1,4 +1,3 @@
1
- import type { SiteCommandOf } from '@riverbankcms/site-commands';
2
1
  import type { AppearancePresetId } from '../../theme-core/src/site-styles/index';
3
2
  import type { APIEndpoint } from './apiEndpointTypes';
4
3
  import type { AdminCreateSiteRequest, AdminCreateSiteResponse, AdminDeletePriceOverrideRequest, AdminDeletePriceOverrideResponse, AdminDeleteSiteResponse, AdminGetPriceOverrideQuery, AdminGetPriceOverrideResponse, AdminUpsertPriceOverrideRequest, AdminUpsertPriceOverrideResponse } from './accessAdmin';
@@ -8,9 +7,7 @@ import type { CheckRedirectQuery, CheckRedirectResponse, CreateRedirectRuleReque
8
7
  import type { CreateManagementKeyRequest, CreateManagementKeyResponse, CreateSiteApiKeyRequest, CreateSiteApiKeyResponse, CreateSitePreviewKeyRequest, CreateSitePreviewKeyResponse, CreateWebhookRequest, CreateWebhookResponse, DeleteBackupUploadRequest, DeleteBackupUploadResponse, DeleteWebhookResponse, GetSiteApiKeyAccessLogsResponse, ListSitePreviewKeysResponse, GetWebhookResponse, ImportBackupAsNewSiteRequest, ImportBackupAsNewSiteResponse, ImportSiteBackupRequest, ListManagementKeysResponse, ListSiteApiKeysResponse, ListWebhooksResponse, RevokeManagementKeyRequest, RevokeManagementKeyResponse, RevokeSiteApiKeyResponse, SdkDeploymentHealthResponse, SetupSdkDeploymentRevalidationWebhookRequest, SetupSdkDeploymentRevalidationWebhookResponse, SetupSdkRevalidationWebhookRequest, SetupSdkRevalidationWebhookResponse, UpdateWebhookRequest, UpdateWebhookResponse, BackupImportResponse, BackupPreviewRequest, BackupPreviewResponse, CreateBackupUploadUrlRequest, CreateBackupUploadUrlResponse } from './siteInfrastructure';
9
8
  import type { GetSiteInspirationAnalysisResponse, ListSiteInspirationAnalysesResponse } from './siteGeneration';
10
9
  import type { ListGscPropertiesAdminResponse, AuthStatusResponse, CronAppointmentRemindersResponse, CronBillingStatusResponse, CronEventFeedbackEmailsResponse, CronEventOccurrencesResponse, CronEventRemindersResponse, CronMediaJobsQuery, CronMediaJobsResponse, CronNewsletterSendResponse, CronPaymentReconciliationResponse, CronSeoIngestResponse, CronWaitlistExpiryResponse } from './siteOperations';
11
- import type { ApplySiteStyleSelectionBody, ApplySiteStyleSelectionResponse } from './siteRuntimeEndpoints';
12
- import type { ManagementMediaAsset, MediaResolveResponse, PushSdkConfigRequest, PushSdkConfigResponse, SdkAddEventOccurrenceRequest, SdkBackfillIdentifiersResult, SdkEventOccurrenceResponse, SdkGetEntryResponse, SdkGetEventCategoryResponse, SdkGetEventResponse, SdkGetFormResponse, SdkGetPageBlockResponse, SdkPatchPageBlockBody, SdkPatchPageBlockResponse, SdkGetVenueResponse, SdkListEntriesResponse, SdkListEventCategoriesResponse, SdkListEventOccurrencesResponse, SdkListEventsResponse, SdkListFormsResponse, SdkListVenuesResponse, SdkMediaFinalizeUploadResponse, SdkMediaDeleteApplyResponse, SdkMediaDeletePreviewResponse, SdkMediaDownloadResponse, SdkMediaListResponse, SdkMediaUploadUrlResponse, SdkPageResponse, SdkEntryUpsertSlotBlock, SdkPublishOrUnpublishEntryResponse, SdkPullContentTypesResponse, SdkCatalogThemeResponse, SdkCatalogBlocksResponse, SdkCatalogContentTypesResponse, SdkCapabilitiesResponse, SdkCommandApplicationResult, SdkConfigureBookingVerticalRequest, SdkConfigureBookingVerticalResponse, SdkDemoContentResponse, SdkDeleteResponse, SdkPullEntriesAllResponse, SdkPullEntriesByTypeResponse, SdkPullEntriesResponse, SdkPullEventCategoriesResponse, SdkPullEventsResponse, SdkPullFooterResponse, SdkPullFormSchema, SdkPullFormsResponse, SdkPullFormSettings, SdkPullDraftsResponse, SdkPullNavigationResponse, SdkPullPagesResponse, SdkPullSettings, SdkPullSettingsResponse, SdkPullSiteInfoResponse, SdkPullThemeResponse, SdkPullVenue, SdkPullVenuesResponse, SdkUpdateSettingsResponse, SdkUpdateEventOccurrenceRequest, SdkUpsertBlockResponse, SdkUpsertEntryResponse, SdkUpsertPageResponse, SdkUpsertEventCategoryResponse, SdkUpsertEventResponse, SdkUpsertFooterResponse, SdkUpsertFormResponse, SdkUpsertNavigationMenuResponse, SdkUpsertThemeResponse, SdkUpsertVenueResponse } from './sdkContracts';
13
- import type { SdkThemeWireWithoutHeader } from './sdkThemeWire';
10
+ import type { ManagementMediaAsset, MediaResolveResponse, PushSdkConfigRequest, PushSdkConfigResponse, SdkAddEventOccurrenceRequest, SdkBackfillIdentifiersResult, SdkEventOccurrenceResponse, SdkGetEntryResponse, SdkGetEventCategoryResponse, SdkGetEventResponse, SdkGetFormResponse, SdkGetPageBlockResponse, SdkPatchPageBlockBody, SdkPatchPageBlockResponse, SdkGetVenueResponse, SdkListEntriesResponse, SdkListEventCategoriesResponse, SdkListEventOccurrencesResponse, SdkListEventsResponse, SdkListFormsResponse, SdkListVenuesResponse, SdkMediaFinalizeUploadResponse, SdkMediaDeleteApplyResponse, SdkMediaDeletePreviewResponse, SdkMediaDownloadResponse, SdkMediaListResponse, SdkMediaUploadUrlResponse, SdkPageResponse, SdkEntryUpsertSlotBlock, SdkPublishOrUnpublishEntryResponse, SdkPullContentTypesResponse, SdkCatalogBlocksResponse, SdkCatalogContentTypesResponse, SdkCapabilitiesResponse, SdkConfigureBookingVerticalRequest, SdkConfigureBookingVerticalResponse, SdkDemoContentResponse, SdkDeleteResponse, SdkPullEntriesAllResponse, SdkPullEntriesByTypeResponse, SdkPullEntriesResponse, SdkPullEventCategoriesResponse, SdkPullEventsResponse, SdkPullFooterResponse, SdkPullFormSchema, SdkPullFormsResponse, SdkPullFormSettings, SdkPullDraftsResponse, SdkPullNavigationResponse, SdkPullPagesResponse, SdkPullSettings, SdkPullSettingsResponse, SdkPullSiteInfoResponse, SdkPullVenue, SdkPullVenuesResponse, SdkUpdateSettingsResponse, SdkUpdateEventOccurrenceRequest, SdkUpsertBlockResponse, SdkUpsertEntryResponse, SdkUpsertPageResponse, SdkUpsertEventCategoryResponse, SdkUpsertEventResponse, SdkUpsertFooterResponse, SdkUpsertFormResponse, SdkUpsertNavigationMenuResponse, SdkUpsertVenueResponse } from './sdkContracts';
14
11
  import type { FooterCompositionUpdateRequest } from './siteManagementEndpoints';
15
12
  import type { SdkEventUpsertBody } from './sdk-event-upsert';
16
13
  import type { SdkEntryPaginationQueryInput } from './schemas/sdk-entries';
@@ -196,9 +193,6 @@ export type SitePlatformAPIEndpoints = {
196
193
  sdkPullContentTypes: APIEndpoint<never, {
197
194
  siteId: string;
198
195
  }, SdkPullContentTypesResponse>;
199
- sdkCatalogTheme: APIEndpoint<never, {
200
- siteId: string;
201
- }, SdkCatalogThemeResponse>;
202
196
  sdkCatalogBlocks: APIEndpoint<never, {
203
197
  siteId: string;
204
198
  }, SdkCatalogBlocksResponse>;
@@ -226,9 +220,6 @@ export type SitePlatformAPIEndpoints = {
226
220
  sdkPullForms: APIEndpoint<never, {
227
221
  siteId: string;
228
222
  }, SdkPullFormsResponse>;
229
- sdkPullTheme: APIEndpoint<never, {
230
- siteId: string;
231
- }, SdkPullThemeResponse>;
232
223
  sdkPullFooter: APIEndpoint<never, {
233
224
  siteId: string;
234
225
  }, SdkPullFooterResponse>;
@@ -326,27 +317,6 @@ export type SitePlatformAPIEndpoints = {
326
317
  }, {
327
318
  siteId: string;
328
319
  }, SdkUpsertNavigationMenuResponse>;
329
- sdkUpsertTheme: APIEndpoint<Readonly<{
330
- kind: 'update';
331
- /**
332
- * The theme minus its header (#1318 Phase 4d, D17). The server compiles
333
- * `theme.header` from the site's stored selection and header
334
- * preferences and is its only author; a body carrying header bytes is
335
- * rejected rather than silently stripped.
336
- */
337
- theme: SdkThemeWireWithoutHeader;
338
- themeId?: string;
339
- selectionId?: string;
340
- }> | Readonly<{
341
- /** The first theme is compiled authoritatively from this command. */
342
- kind: 'initialize';
343
- command: SiteCommandOf<'applySiteStyleSelection'>;
344
- }>, {
345
- siteId: string;
346
- }, SdkUpsertThemeResponse>;
347
- sdkApplySiteStyleSelection: APIEndpoint<ApplySiteStyleSelectionBody, {
348
- siteId: string;
349
- }, SdkCommandApplicationResult<ApplySiteStyleSelectionResponse>>;
350
320
  sdkUpsertFooter: APIEndpoint<FooterCompositionUpdateRequest, {
351
321
  siteId: string;
352
322
  }, SdkUpsertFooterResponse>;
@@ -175,7 +175,12 @@ export type PageDesignEditorStateResponse = {
175
175
  message: string;
176
176
  } | {
177
177
  kind: 'loaded';
178
- source: 'draft' | 'published-fallback';
178
+ /**
179
+ * `'default'` means no design record was persisted for the page and the
180
+ * site style's defaults were resolved. Clients treat every loaded state
181
+ * the same way; the source is diagnostic only.
182
+ */
183
+ source: 'draft' | 'published-fallback' | 'default';
179
184
  revision: PageDesignRevisionToken;
180
185
  editorModel: PageDesignEditorReadModel;
181
186
  };
@@ -58,12 +58,12 @@ export type SiteBillingSubscriptionSnapshot = Readonly<{
58
58
  origin: BillingSubscriptionOrigin | null;
59
59
  status: string;
60
60
  }> | null;
61
- export type SiteBillingManualReviewReason = 'ambiguous_subscription_origin' | 'active_site_linked_add_on' | 'admin_requested_manual_review' | 'missing_admin_subscription_choice' | 'practitioner_limit_exceeded' | 'live_site_allowance_exceeded' | 'subscription_action_failed' | 'multiple_platform_subscriptions' | 'commission_reconciliation_exhausted';
62
- export declare const SITE_BILLING_MANUAL_REVIEW_REASONS: readonly ["ambiguous_subscription_origin", "active_site_linked_add_on", "admin_requested_manual_review", "missing_admin_subscription_choice", "practitioner_limit_exceeded", "live_site_allowance_exceeded", "subscription_action_failed", "multiple_platform_subscriptions", "commission_reconciliation_exhausted"];
61
+ export type SiteBillingManualReviewReason = 'ambiguous_subscription_origin' | 'active_site_linked_add_on' | 'admin_requested_manual_review' | 'missing_admin_subscription_choice' | 'practitioner_limit_exceeded' | 'live_site_allowance_exceeded' | 'subscription_action_failed' | 'multiple_platform_subscriptions' | 'platform_subscription_recovery_failed' | 'commission_reconciliation_exhausted';
62
+ export declare const SITE_BILLING_MANUAL_REVIEW_REASONS: readonly ["ambiguous_subscription_origin", "active_site_linked_add_on", "admin_requested_manual_review", "missing_admin_subscription_choice", "practitioner_limit_exceeded", "live_site_allowance_exceeded", "subscription_action_failed", "multiple_platform_subscriptions", "platform_subscription_recovery_failed", "commission_reconciliation_exhausted"];
63
63
  export type SiteBillingManualReviewStatus = 'open' | 'resolved';
64
64
  export declare const SITE_BILLING_MANUAL_REVIEW_STATUSES: readonly ["open", "resolved"];
65
- export type SiteBillingManualReviewResolutionAction = 'external_action_completed' | 'no_action_needed' | 'duplicate' | 'superseded_by_arrangement_change' | 'accepted_risk';
66
- export declare const SITE_BILLING_MANUAL_REVIEW_RESOLUTION_ACTIONS: readonly ["external_action_completed", "no_action_needed", "duplicate", "superseded_by_arrangement_change", "accepted_risk"];
65
+ export type SiteBillingManualReviewResolutionAction = 'external_action_completed' | 'no_action_needed' | 'duplicate' | 'superseded_by_arrangement_change' | 'accepted_risk' | 'automatic_reconciliation_succeeded';
66
+ export declare const SITE_BILLING_MANUAL_REVIEW_RESOLUTION_ACTIONS: readonly ["external_action_completed", "no_action_needed", "duplicate", "superseded_by_arrangement_change", "accepted_risk", "automatic_reconciliation_succeeded"];
67
67
  export type SiteBillingManualReviewFailureAction = 'cancel_immediately' | 'cancel_at_period_end' | 'sync_existing_subscription' | 'post_stripe_arrangement_update_failed';
68
68
  export type SiteBillingManualReviewDetailsByReason = Readonly<{
69
69
  ambiguous_subscription_origin: Readonly<{
@@ -99,6 +99,10 @@ export type SiteBillingManualReviewDetailsByReason = Readonly<{
99
99
  multiple_platform_subscriptions: Readonly<{
100
100
  subscriptionIds: readonly string[];
101
101
  }>;
102
+ platform_subscription_recovery_failed: Readonly<{
103
+ subscriptionId: string;
104
+ error: string;
105
+ }>;
102
106
  commission_reconciliation_exhausted: Readonly<{
103
107
  targetKind: 'customer_membership' | 'order_payment_plan';
104
108
  targetId: string;
@@ -112,7 +116,7 @@ export type SiteBillingManualReviewPayload = {
112
116
  details: SiteBillingManualReviewDetailsByReason[TReason];
113
117
  }>;
114
118
  }[SiteBillingManualReviewReason];
115
- export type SiteBillingArrangementPlanManualReviewReason = Exclude<SiteBillingManualReviewReason, 'subscription_action_failed' | 'practitioner_limit_exceeded' | 'live_site_allowance_exceeded' | 'multiple_platform_subscriptions' | 'commission_reconciliation_exhausted'>;
119
+ export type SiteBillingArrangementPlanManualReviewReason = Exclude<SiteBillingManualReviewReason, 'subscription_action_failed' | 'practitioner_limit_exceeded' | 'live_site_allowance_exceeded' | 'multiple_platform_subscriptions' | 'platform_subscription_recovery_failed' | 'commission_reconciliation_exhausted'>;
116
120
  export type SiteBillingArrangementSubscriptionAction = 'not_applicable' | 'sync_attempted' | 'cancelled_immediately' | 'scheduled_cancel_at_period_end' | 'manual_review_required' | 'failed';
117
121
  export declare const SITE_BILLING_ARRANGEMENT_SUBSCRIPTION_ACTIONS: readonly ["not_applicable", "sync_attempted", "cancelled_immediately", "scheduled_cancel_at_period_end", "manual_review_required", "failed"];
118
122
  export declare const SITE_BILLING_ARRANGEMENT_CHANGE_ORIGINS: readonly ["native_arrangement_change", "imported_legacy_cost_history"];
@@ -654,6 +654,20 @@ export declare const publicEventSchema: z.ZodUnion<readonly [z.ZodObject<{
654
654
  }, z.core.$strip>;
655
655
  }, z.core.$strip>]>>;
656
656
  }, z.core.$strip>;
657
+ cancellationPolicy: z.ZodObject<{
658
+ refunds: z.ZodObject<{
659
+ mode: z.ZodEnum<{
660
+ never: "never";
661
+ always: "always";
662
+ cutoff: "cutoff";
663
+ }>;
664
+ cutoffHours: z.ZodNumber;
665
+ method: z.ZodEnum<{
666
+ site_credit: "site_credit";
667
+ original_payment_method: "original_payment_method";
668
+ }>;
669
+ }, z.core.$strip>;
670
+ }, z.core.$strip>;
657
671
  consent: z.ZodNullable<z.ZodType<Readonly<{
658
672
  requirementId: string;
659
673
  title: string;
@@ -1125,6 +1139,20 @@ export declare const publicEventSchema: z.ZodUnion<readonly [z.ZodObject<{
1125
1139
  }, z.core.$strip>;
1126
1140
  }, z.core.$strip>]>>;
1127
1141
  }, z.core.$strip>;
1142
+ cancellationPolicy: z.ZodObject<{
1143
+ refunds: z.ZodObject<{
1144
+ mode: z.ZodEnum<{
1145
+ never: "never";
1146
+ always: "always";
1147
+ cutoff: "cutoff";
1148
+ }>;
1149
+ cutoffHours: z.ZodNumber;
1150
+ method: z.ZodEnum<{
1151
+ site_credit: "site_credit";
1152
+ original_payment_method: "original_payment_method";
1153
+ }>;
1154
+ }, z.core.$strip>;
1155
+ }, z.core.$strip>;
1128
1156
  consent: z.ZodNullable<z.ZodType<Readonly<{
1129
1157
  requirementId: string;
1130
1158
  title: string;
@@ -1621,6 +1649,20 @@ export declare const publicEventsArraySchema: z.ZodArray<z.ZodUnion<readonly [z.
1621
1649
  }, z.core.$strip>;
1622
1650
  }, z.core.$strip>]>>;
1623
1651
  }, z.core.$strip>;
1652
+ cancellationPolicy: z.ZodObject<{
1653
+ refunds: z.ZodObject<{
1654
+ mode: z.ZodEnum<{
1655
+ never: "never";
1656
+ always: "always";
1657
+ cutoff: "cutoff";
1658
+ }>;
1659
+ cutoffHours: z.ZodNumber;
1660
+ method: z.ZodEnum<{
1661
+ site_credit: "site_credit";
1662
+ original_payment_method: "original_payment_method";
1663
+ }>;
1664
+ }, z.core.$strip>;
1665
+ }, z.core.$strip>;
1624
1666
  consent: z.ZodNullable<z.ZodType<Readonly<{
1625
1667
  requirementId: string;
1626
1668
  title: string;
@@ -2092,6 +2134,20 @@ export declare const publicEventsArraySchema: z.ZodArray<z.ZodUnion<readonly [z.
2092
2134
  }, z.core.$strip>;
2093
2135
  }, z.core.$strip>]>>;
2094
2136
  }, z.core.$strip>;
2137
+ cancellationPolicy: z.ZodObject<{
2138
+ refunds: z.ZodObject<{
2139
+ mode: z.ZodEnum<{
2140
+ never: "never";
2141
+ always: "always";
2142
+ cutoff: "cutoff";
2143
+ }>;
2144
+ cutoffHours: z.ZodNumber;
2145
+ method: z.ZodEnum<{
2146
+ site_credit: "site_credit";
2147
+ original_payment_method: "original_payment_method";
2148
+ }>;
2149
+ }, z.core.$strip>;
2150
+ }, z.core.$strip>;
2095
2151
  consent: z.ZodNullable<z.ZodType<Readonly<{
2096
2152
  requirementId: string;
2097
2153
  title: string;
@@ -163,6 +163,14 @@ export type PublicEventBase = {
163
163
  pricing: PublicEventPricing;
164
164
  /** Shared booking payment-terms model for appointments/events/courses. */
165
165
  paymentTerms: BlockBookingPaymentTerms;
166
+ /** The resolved cancellation promise shown before a visitor books. */
167
+ cancellationPolicy: Readonly<{
168
+ refunds: Readonly<{
169
+ mode: 'never' | 'always' | 'cutoff';
170
+ cutoffHours: number;
171
+ method: 'original_payment_method' | 'site_credit';
172
+ }>;
173
+ }>;
166
174
  /** Consent that must be accepted before registration, when configured. */
167
175
  consent: BlockBookingConsent | null;
168
176
  /** Access restriction type */
@@ -4,7 +4,7 @@
4
4
  * Factory function for creating a typed API client for block client-side API calls.
5
5
  */
6
6
  import { type CalendarWindowPage, type CalendarWindowRequest } from '../../blocks/events/shared/calendarWindow';
7
- import type { BlockApiConfig, ApiFieldError, FormSubmitRequest, FormSubmitResponse, FormConfigResponse, BookingSubmitRequest, BookingPackageSubmitRequest, BookingSubmitResponse, EligibleAppointmentPackagesResponse, AppointmentBookingStatusRequest, AppointmentBookingStatusResponse, AvailableSlotsRequest, AvailableSlotsResponse, WeeklySlotAvailabilityRequest, WeeklySlotAvailabilityResponse, AvailableDatesRequest, AvailableDatesResponse, BookingServicesResponse, BookingServiceResponse, BookingResourcesResponse, PublicEventsRequest, PublicEvent, EventFiltersResponse, EventRegisterRequest, EventRegisterResponse, EventCheckoutRequest, EventCheckoutResponse, RegistrationOptionsRequest, RegistrationOptionsResponse, EventRegistrationStatusRequest, EventRegistrationStatusResponse, EventCheckoutReturnRequest, EventCheckoutReturnResponse, ResolveWaitlistClaimRequest, ResolveWaitlistClaimResponse, DiscountsAvailableRequest, DiscountsAvailableResponse, DiscountApplyRequest, DiscountApplyResponse, PublicProductsResponse, ShopCheckoutRequest, ShopCheckoutResponse, UnifiedCheckoutRequest, UnifiedCheckoutResponse, PublicGiftingOffersResponse, CreateGiftingCheckoutRequest, CreateGiftingCheckoutResponse, ClaimGiftCardRequest, ClaimGiftCardResponse, PortalMeResponse, CustomerProfile, CustomerOrder, PortalMeUpdateRequest, CustomerPass, CustomerMembership, CustomerEventRegistration, PortalEventTicket, CustomerAppointment, BookingQuestionsTaskDetail, CustomerEventSeriesRegistration, PortalCredit, PortalOrderCheckoutRequest, PortalOrderCheckoutResponse, PortalDigitalProductAccessResponse, PortalDigitalProductDownloadUrlResponse, PortalDigitalProductsResponse, PortalCancelWholeSeriesRegistrationRequest, PortalCancelWholeSeriesRegistrationResult, PortalCancelAppointmentRequest, PortalCancelAppointmentResult, PortalUpdateAppointmentBookingQuestionsRequest, PortalUpdateWholeSeriesBookingQuestionsRequest, PortalUpdateEventBookingQuestionsRequest, PortalCancelEventRegistrationRequest, PortalCancelEventRegistrationResult, PortalTransferEventRegistrationRequest, PortalTransferEventRegistrationResult, PortalRescheduleAppointmentRequest, PortalRescheduleAppointmentResponse, PortalCancelMembershipAtPeriodEndResult, MagicLinkRequest, EventGuest, UpdateEventGuestsRequest, NewsletterSubscribeRequest, NewsletterSubscribeResponse } from './types';
7
+ import type { BlockApiConfig, ApiFieldError, FormSubmitRequest, FormSubmitResponse, FormConfigResponse, BookingSubmitRequest, BookingPackageSubmitRequest, BookingSubmitResponse, EligibleAppointmentPackagesResponse, AppointmentBookingStatusRequest, AppointmentBookingStatusResponse, AvailableSlotsRequest, AvailableSlotsResponse, WeeklySlotAvailabilityRequest, WeeklySlotAvailabilityResponse, AvailableDatesRequest, AvailableDatesResponse, BookingServicesResponse, BookingServiceResponse, BookingResourcesResponse, PublicEventsRequest, PublicEvent, EventFiltersResponse, EventRegisterRequest, EventRegisterResponse, EventCheckoutRequest, EventCheckoutResponse, RegistrationOptionsRequest, EventRegistrationNextStepRequest, EventRegistrationNextStepResponse, RegistrationOptionsResponse, EventRegistrationStatusRequest, EventRegistrationStatusResponse, EventCheckoutReturnRequest, EventCheckoutReturnResponse, ResolveWaitlistClaimRequest, ResolveWaitlistClaimResponse, DiscountsAvailableRequest, DiscountsAvailableResponse, DiscountApplyRequest, DiscountApplyResponse, PublicProductsResponse, ShopCheckoutRequest, ShopCheckoutResponse, UnifiedCheckoutRequest, UnifiedCheckoutResponse, PublicGiftingOffersResponse, CreateGiftingCheckoutRequest, CreateGiftingCheckoutResponse, ClaimGiftCardRequest, ClaimGiftCardResponse, PortalMeResponse, CustomerProfile, CustomerOrder, PortalMeUpdateRequest, CustomerPass, CustomerMembership, CustomerEventRegistration, PortalEventTicket, CustomerAppointment, BookingQuestionsTaskDetail, CustomerEventSeriesRegistration, PortalCredit, PortalOrderCheckoutRequest, PortalOrderCheckoutResponse, PortalDigitalProductAccessResponse, PortalDigitalProductDownloadUrlResponse, PortalDigitalProductsResponse, PortalCancelWholeSeriesRegistrationRequest, PortalCancelWholeSeriesRegistrationResult, PortalCancelAppointmentRequest, PortalCancelAppointmentResult, PortalUpdateAppointmentBookingQuestionsRequest, PortalUpdateWholeSeriesBookingQuestionsRequest, PortalUpdateEventBookingQuestionsRequest, PortalCancelEventRegistrationRequest, PortalCancelEventRegistrationResult, PortalTransferEventRegistrationRequest, PortalTransferEventRegistrationResult, PortalRescheduleAppointmentRequest, PortalRescheduleAppointmentResponse, PortalCancelMembershipAtPeriodEndResult, MagicLinkRequest, EventGuest, UpdateEventGuestsRequest, NewsletterSubscribeRequest, NewsletterSubscribeResponse } from './types';
8
8
  type WithoutSiteId<T> = T extends unknown ? Omit<T, 'siteId'> : never;
9
9
  type PublicProductCategorySelector = Readonly<{
10
10
  kind: 'category';
@@ -57,6 +57,7 @@ export interface BlockApiClient {
57
57
  registerForEvent(data: Omit<EventRegisterRequest, 'siteId'>): Promise<EventRegisterResponse>;
58
58
  createEventCheckout(data: WithoutSiteId<EventCheckoutRequest>): Promise<EventCheckoutResponse>;
59
59
  getRegistrationOptions(data: Omit<RegistrationOptionsRequest, 'siteId'>): Promise<RegistrationOptionsResponse>;
60
+ checkRegistrationNextStep(data: EventRegistrationNextStepRequest): Promise<EventRegistrationNextStepResponse>;
60
61
  getEventRegistrationStatus(params: WithoutSiteId<EventRegistrationStatusRequest>): Promise<EventRegistrationStatusResponse>;
61
62
  resolveEventCheckoutReturn(data: EventCheckoutReturnRequest): Promise<EventCheckoutReturnResponse>;
62
63
  resolveWaitlistClaim(data: Omit<ResolveWaitlistClaimRequest, 'siteId'>): Promise<ResolveWaitlistClaimResponse>;
@@ -101,6 +101,10 @@ export declare const EVENTS: {
101
101
  method: "POST";
102
102
  authScope: "portal";
103
103
  };
104
+ registrationNextStep: {
105
+ path: string;
106
+ method: "POST";
107
+ };
104
108
  registrationStatus: {
105
109
  path: string;
106
110
  method: "GET";
@@ -432,6 +436,10 @@ export declare const ENDPOINTS: {
432
436
  method: "POST";
433
437
  authScope: "portal";
434
438
  };
439
+ registrationNextStep: {
440
+ path: string;
441
+ method: "POST";
442
+ };
435
443
  registrationStatus: {
436
444
  path: string;
437
445
  method: "GET";