@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
@@ -605,6 +605,20 @@ export declare const eventCollectionSourceSchemaShape: {
605
605
  }, z.core.$strip>;
606
606
  }, z.core.$strip>]>>;
607
607
  }, z.core.$strip>;
608
+ cancellationPolicy: z.ZodObject<{
609
+ refunds: z.ZodObject<{
610
+ mode: z.ZodEnum<{
611
+ never: "never";
612
+ always: "always";
613
+ cutoff: "cutoff";
614
+ }>;
615
+ cutoffHours: z.ZodNumber;
616
+ method: z.ZodEnum<{
617
+ site_credit: "site_credit";
618
+ original_payment_method: "original_payment_method";
619
+ }>;
620
+ }, z.core.$strip>;
621
+ }, z.core.$strip>;
608
622
  consent: z.ZodNullable<z.ZodType<Readonly<{
609
623
  requirementId: string;
610
624
  title: string;
@@ -1076,6 +1090,20 @@ export declare const eventCollectionSourceSchemaShape: {
1076
1090
  }, z.core.$strip>;
1077
1091
  }, z.core.$strip>]>>;
1078
1092
  }, z.core.$strip>;
1093
+ cancellationPolicy: z.ZodObject<{
1094
+ refunds: z.ZodObject<{
1095
+ mode: z.ZodEnum<{
1096
+ never: "never";
1097
+ always: "always";
1098
+ cutoff: "cutoff";
1099
+ }>;
1100
+ cutoffHours: z.ZodNumber;
1101
+ method: z.ZodEnum<{
1102
+ site_credit: "site_credit";
1103
+ original_payment_method: "original_payment_method";
1104
+ }>;
1105
+ }, z.core.$strip>;
1106
+ }, z.core.$strip>;
1079
1107
  consent: z.ZodNullable<z.ZodType<Readonly<{
1080
1108
  requirementId: string;
1081
1109
  title: string;
@@ -1607,6 +1635,20 @@ export declare const eventCollectionDisplaySchemaShape: {
1607
1635
  }, z.core.$strip>;
1608
1636
  }, z.core.$strip>]>>;
1609
1637
  }, z.core.$strip>;
1638
+ cancellationPolicy: z.ZodObject<{
1639
+ refunds: z.ZodObject<{
1640
+ mode: z.ZodEnum<{
1641
+ never: "never";
1642
+ always: "always";
1643
+ cutoff: "cutoff";
1644
+ }>;
1645
+ cutoffHours: z.ZodNumber;
1646
+ method: z.ZodEnum<{
1647
+ site_credit: "site_credit";
1648
+ original_payment_method: "original_payment_method";
1649
+ }>;
1650
+ }, z.core.$strip>;
1651
+ }, z.core.$strip>;
1610
1652
  consent: z.ZodNullable<z.ZodType<Readonly<{
1611
1653
  requirementId: string;
1612
1654
  title: string;
@@ -2078,6 +2120,20 @@ export declare const eventCollectionDisplaySchemaShape: {
2078
2120
  }, z.core.$strip>;
2079
2121
  }, z.core.$strip>]>>;
2080
2122
  }, z.core.$strip>;
2123
+ cancellationPolicy: z.ZodObject<{
2124
+ refunds: z.ZodObject<{
2125
+ mode: z.ZodEnum<{
2126
+ never: "never";
2127
+ always: "always";
2128
+ cutoff: "cutoff";
2129
+ }>;
2130
+ cutoffHours: z.ZodNumber;
2131
+ method: z.ZodEnum<{
2132
+ site_credit: "site_credit";
2133
+ original_payment_method: "original_payment_method";
2134
+ }>;
2135
+ }, z.core.$strip>;
2136
+ }, z.core.$strip>;
2081
2137
  consent: z.ZodNullable<z.ZodType<Readonly<{
2082
2138
  requirementId: string;
2083
2139
  title: string;
@@ -1,12 +1,12 @@
1
- export type EventRegistrationErrorAction = 'none' | 'retry' | 'places' | 'start' | 'details' | 'payment-options' | 'payment-status' | 'portal' | 'event';
1
+ export type EventRegistrationErrorAction = 'none' | 'retry' | 'places' | 'start' | 'details' | 'payment-options' | 'portal' | 'event';
2
2
  export declare const eventRegistrationErrors: {
3
3
  readonly registrationClosed: {
4
4
  readonly message: "Booking is currently closed for this event. Please contact the organiser if you’d like to find out more.";
5
5
  readonly action: "none";
6
6
  };
7
- readonly paymentUncertain: {
8
- readonly message: "We’re checking your booking and payment. Please don’t try to book again yet. If you’ve already paid, you don’t need to pay again.";
9
- readonly action: "payment-status";
7
+ readonly paymentInvestigationRequired: {
8
+ readonly message: "We still can’t confirm your payment. Please don’t make another payment. Contact the organiser so they can check your booking.";
9
+ readonly action: "none";
10
10
  };
11
11
  readonly paymentProviderUnavailable: {
12
12
  readonly message: "We couldn’t reach the payment provider. Please try again in a minute.";
@@ -0,0 +1,8 @@
1
+ export declare const EVENT_CHECKOUT_HOLD_DURATION_MS: number;
2
+ export declare const EVENT_CHECKOUT_RECOVERY_GRACE_MS: number;
3
+ export declare function eventCheckoutProvisionalRecoverableUntil(now: Date): string;
4
+ export declare function eventCheckoutRecoverableUntil(input: Readonly<{
5
+ holdExpiresAt: string;
6
+ sessionExpiresAtEpochSeconds: number;
7
+ }>): string | null;
8
+ export declare function eventCheckoutRecoveryIsDiscoverable(recoverableUntil: string, now: Date): boolean;
@@ -56,4 +56,5 @@ export * from './stripeMinimumCharge';
56
56
  export * from './stripeCheckoutReturnUrl';
57
57
  export * from './stateTransitions';
58
58
  export * from './event-registration-errors';
59
- export { STRIPE_COMMISSION_FREE_REASONS, type StripeCommissionFreeReason } from './stripeCommissionMetadata';
59
+ export * from './eventCheckoutRecoveryWindow';
60
+ export { STRIPE_COMMISSION_FREE_REASONS, type StripeCommissionFreeReason, } from './stripeCommissionMetadata';
@@ -1,18 +1,8 @@
1
1
  import { type Result } from '../../../core/src/index';
2
- import type { CheckoutCommitFailureStep, CheckoutCommitState, CheckoutCompensationDecision, CheckoutPaymentRail, OrderCheckoutReconciliationState, OrderItemReconciliationState, DiscountRedemptionStatus, OrderItemCommitState, OrderStatus } from './orderTypes';
2
+ import type { CheckoutCommitFailureStep, CheckoutCompensationDecision, CheckoutPaymentRail, DiscountRedemptionStatus, OrderStatus } from './orderTypes';
3
3
  export type OrderStatusEvent = 'checkout_failed' | 'stripe_payment_completed' | 'cancel' | 'partial_refund' | 'full_refund';
4
4
  export declare function advanceOrderStatus(from: OrderStatus, event: OrderStatusEvent): Result<OrderStatus, string>;
5
5
  export declare function transitionOrderStatusTo(from: OrderStatus, to: OrderStatus): Result<OrderStatus, string>;
6
- export type CheckoutCommitEvent = 'start' | 'complete' | 'compensate' | 'release';
7
- export declare function advanceCheckoutCommitState(from: CheckoutCommitState, event: CheckoutCommitEvent): Result<CheckoutCommitState, string>;
8
- export declare function transitionCheckoutCommitStateTo(from: CheckoutCommitState, to: CheckoutCommitState): Result<CheckoutCommitState, string>;
9
- export type OrderItemCommitEvent = 'commit' | 'compensate';
10
- export declare function advanceOrderItemCommitState(from: OrderItemCommitState, event: OrderItemCommitEvent): Result<OrderItemCommitState, string>;
11
- export declare function transitionOrderItemCommitStateTo(from: OrderItemCommitState, to: OrderItemCommitState): Result<OrderItemCommitState, string>;
12
- export type OrderCheckoutReconciliationEvent = 'defer_settlement_evidence' | 'commit_verified_settlement' | 'mark_needed';
13
- export declare function advanceOrderCheckoutReconciliationState(from: OrderCheckoutReconciliationState, event: OrderCheckoutReconciliationEvent): Result<OrderCheckoutReconciliationState, string>;
14
- export declare function transitionOrderCheckoutReconciliationStateTo(from: OrderCheckoutReconciliationState, to: OrderCheckoutReconciliationState): Result<OrderCheckoutReconciliationState, string>;
15
- export declare function transitionOrderItemReconciliationStateTo(from: OrderItemReconciliationState, to: OrderItemReconciliationState): Result<OrderItemReconciliationState, string>;
16
6
  export declare function classifyCheckoutCompensationDecision(input: {
17
7
  paymentRail: CheckoutPaymentRail;
18
8
  failedStep: CheckoutCommitFailureStep;
@@ -23,8 +13,6 @@ export type DiscountRedemptionEvent = 'redeem' | 'release' | 'expire';
23
13
  export declare function advanceDiscountRedemptionStatus(from: DiscountRedemptionStatus, event: DiscountRedemptionEvent): Result<DiscountRedemptionStatus, string>;
24
14
  export declare function transitionDiscountRedemptionStatusTo(from: DiscountRedemptionStatus, to: DiscountRedemptionStatus): Result<DiscountRedemptionStatus, string>;
25
15
  export type FulfillmentClaimState = 'unclaimed' | 'claimed' | 'claimed_stale' | 'fulfilled' | 'missing';
26
- export type FulfillmentClaimEvent = 'claim' | 'reclaim' | 'complete' | 'release';
27
- export declare function advanceFulfillmentClaimState(from: FulfillmentClaimState, event: FulfillmentClaimEvent): Result<FulfillmentClaimState, string>;
28
16
  export type OrderRefundStatus = 'pending' | 'succeeded' | 'failed' | 'reconciliation_needed';
29
17
  export type OrderRefundEvent = 'succeed' | 'fail' | 'mark_reconciliation_needed';
30
18
  export declare function advanceOrderRefundStatus(from: OrderRefundStatus, event: OrderRefundEvent): Result<OrderRefundStatus, string>;
@@ -1,7 +1,7 @@
1
1
  import { type Result } from '../../../core/src/index';
2
2
  import { z } from 'zod';
3
3
  /** Reasons are payment evidence, not an independent pricing policy. */
4
- export declare const STRIPE_COMMISSION_FREE_REASONS: readonly ["managed_billing", "no_commission_plan", "billing_evidence_invalid", "fee_rounds_to_zero", "non_commissionable_scope", "payment_not_stripe"];
4
+ export declare const STRIPE_COMMISSION_FREE_REASONS: readonly ["managed_billing", "no_commission_plan", "billing_evidence_invalid", "fee_rounds_to_zero", "payment_not_stripe"];
5
5
  export type StripeCommissionFreeReason = (typeof STRIPE_COMMISSION_FREE_REASONS)[number];
6
6
  declare const commissionEvidenceSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7
7
  currency: z.ZodOptional<z.ZodString>;
@@ -12,7 +12,6 @@ declare const commissionEvidenceSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
12
12
  no_commission_plan: "no_commission_plan";
13
13
  billing_evidence_invalid: "billing_evidence_invalid";
14
14
  fee_rounds_to_zero: "fee_rounds_to_zero";
15
- non_commissionable_scope: "non_commissionable_scope";
16
15
  payment_not_stripe: "payment_not_stripe";
17
16
  }>;
18
17
  }, z.core.$strip>, z.ZodObject<{
@@ -1497,39 +1497,6 @@ export type Database = {
1497
1497
  }
1498
1498
  ];
1499
1499
  };
1500
- billing_commission_reconciliation_requests: {
1501
- Row: {
1502
- attempts: number;
1503
- lease_token: string | null;
1504
- locked_until: string | null;
1505
- next_attempt_at: string;
1506
- requested_at: string;
1507
- revision: string;
1508
- target_id: string;
1509
- target_kind: string;
1510
- };
1511
- Insert: {
1512
- attempts?: number;
1513
- lease_token?: string | null;
1514
- locked_until?: string | null;
1515
- next_attempt_at?: string;
1516
- requested_at?: string;
1517
- revision?: string;
1518
- target_id: string;
1519
- target_kind: string;
1520
- };
1521
- Update: {
1522
- attempts?: number;
1523
- lease_token?: string | null;
1524
- locked_until?: string | null;
1525
- next_attempt_at?: string;
1526
- requested_at?: string;
1527
- revision?: string;
1528
- target_id?: string;
1529
- target_kind?: string;
1530
- };
1531
- Relationships: [];
1532
- };
1533
1500
  billing_component_registrar_attempts: {
1534
1501
  Row: {
1535
1502
  billing_component_id: string;
@@ -1699,6 +1666,7 @@ export type Database = {
1699
1666
  id: string;
1700
1667
  metadata: Json | null;
1701
1668
  stripe_customer_id: string;
1669
+ subscription_recovery_checked_at: string | null;
1702
1670
  updated_at: string;
1703
1671
  user_id: string;
1704
1672
  };
@@ -1708,6 +1676,7 @@ export type Database = {
1708
1676
  id?: string;
1709
1677
  metadata?: Json | null;
1710
1678
  stripe_customer_id: string;
1679
+ subscription_recovery_checked_at?: string | null;
1711
1680
  updated_at?: string;
1712
1681
  user_id: string;
1713
1682
  };
@@ -1717,6 +1686,7 @@ export type Database = {
1717
1686
  id?: string;
1718
1687
  metadata?: Json | null;
1719
1688
  stripe_customer_id?: string;
1689
+ subscription_recovery_checked_at?: string | null;
1720
1690
  updated_at?: string;
1721
1691
  user_id?: string;
1722
1692
  };
@@ -2631,6 +2601,9 @@ export type Database = {
2631
2601
  Row: {
2632
2602
  cancel_at_period_end: boolean;
2633
2603
  canceled_at: string | null;
2604
+ commission_reconcile_attempts: number;
2605
+ commission_reconcile_available_at: string | null;
2606
+ commission_reconcile_requested_at: string | null;
2634
2607
  created_at: string;
2635
2608
  current_period_end: string | null;
2636
2609
  current_period_start: string | null;
@@ -2649,6 +2622,9 @@ export type Database = {
2649
2622
  Insert: {
2650
2623
  cancel_at_period_end?: boolean;
2651
2624
  canceled_at?: string | null;
2625
+ commission_reconcile_attempts?: number;
2626
+ commission_reconcile_available_at?: string | null;
2627
+ commission_reconcile_requested_at?: string | null;
2652
2628
  created_at?: string;
2653
2629
  current_period_end?: string | null;
2654
2630
  current_period_start?: string | null;
@@ -2667,6 +2643,9 @@ export type Database = {
2667
2643
  Update: {
2668
2644
  cancel_at_period_end?: boolean;
2669
2645
  canceled_at?: string | null;
2646
+ commission_reconcile_attempts?: number;
2647
+ commission_reconcile_available_at?: string | null;
2648
+ commission_reconcile_requested_at?: string | null;
2670
2649
  created_at?: string;
2671
2650
  current_period_end?: string | null;
2672
2651
  current_period_start?: string | null;
@@ -7793,6 +7772,7 @@ export type Database = {
7793
7772
  customer_membership_id: string | null;
7794
7773
  customer_pass_id: string | null;
7795
7774
  event_instance_id: string;
7775
+ event_series_registration_id: string | null;
7796
7776
  form_submission_json: Json;
7797
7777
  id: string;
7798
7778
  metadata: Json;
@@ -7818,6 +7798,7 @@ export type Database = {
7818
7798
  customer_membership_id?: string | null;
7819
7799
  customer_pass_id?: string | null;
7820
7800
  event_instance_id: string;
7801
+ event_series_registration_id?: string | null;
7821
7802
  form_submission_json?: Json;
7822
7803
  id?: string;
7823
7804
  metadata?: Json;
@@ -7843,6 +7824,7 @@ export type Database = {
7843
7824
  customer_membership_id?: string | null;
7844
7825
  customer_pass_id?: string | null;
7845
7826
  event_instance_id?: string;
7827
+ event_series_registration_id?: string | null;
7846
7828
  form_submission_json?: Json;
7847
7829
  id?: string;
7848
7830
  metadata?: Json;
@@ -7915,6 +7897,20 @@ export type Database = {
7915
7897
  referencedRelation: "booking_payments_list_view";
7916
7898
  referencedColumns: ["id"];
7917
7899
  },
7900
+ {
7901
+ foreignKeyName: "event_attendees_registration_site_fkey";
7902
+ columns: ["event_series_registration_id", "site_id"];
7903
+ isOneToOne: false;
7904
+ referencedRelation: "event_series_registration_projection_canonical";
7905
+ referencedColumns: ["id", "site_id"];
7906
+ },
7907
+ {
7908
+ foreignKeyName: "event_attendees_registration_site_fkey";
7909
+ columns: ["event_series_registration_id", "site_id"];
7910
+ isOneToOne: false;
7911
+ referencedRelation: "event_series_registrations";
7912
+ referencedColumns: ["id", "site_id"];
7913
+ },
7918
7914
  {
7919
7915
  foreignKeyName: "event_attendees_site_id_fkey";
7920
7916
  columns: ["site_id"];
@@ -9034,6 +9030,7 @@ export type Database = {
9034
9030
  attendance_mode: string;
9035
9031
  cancelled_at: string | null;
9036
9032
  canonical_selection_key: string;
9033
+ checkout_attempt_id: string | null;
9037
9034
  commercial_selection_key: string;
9038
9035
  created_at: string;
9039
9036
  customer_id: string;
@@ -9056,6 +9053,7 @@ export type Database = {
9056
9053
  attendance_mode?: string;
9057
9054
  cancelled_at?: string | null;
9058
9055
  canonical_selection_key: string;
9056
+ checkout_attempt_id?: string | null;
9059
9057
  commercial_selection_key: string;
9060
9058
  created_at?: string;
9061
9059
  customer_id: string;
@@ -9078,6 +9076,7 @@ export type Database = {
9078
9076
  attendance_mode?: string;
9079
9077
  cancelled_at?: string | null;
9080
9078
  canonical_selection_key?: string;
9079
+ checkout_attempt_id?: string | null;
9081
9080
  commercial_selection_key?: string;
9082
9081
  created_at?: string;
9083
9082
  customer_id?: string;
@@ -12228,6 +12227,9 @@ export type Database = {
12228
12227
  };
12229
12228
  order_payment_plans: {
12230
12229
  Row: {
12230
+ commission_reconcile_attempts: number;
12231
+ commission_reconcile_available_at: string | null;
12232
+ commission_reconcile_requested_at: string | null;
12231
12233
  created_at: string;
12232
12234
  currency: string;
12233
12235
  customer_id: string;
@@ -12250,6 +12252,9 @@ export type Database = {
12250
12252
  updated_at: string;
12251
12253
  };
12252
12254
  Insert: {
12255
+ commission_reconcile_attempts?: number;
12256
+ commission_reconcile_available_at?: string | null;
12257
+ commission_reconcile_requested_at?: string | null;
12253
12258
  created_at?: string;
12254
12259
  currency: string;
12255
12260
  customer_id: string;
@@ -12272,6 +12277,9 @@ export type Database = {
12272
12277
  updated_at?: string;
12273
12278
  };
12274
12279
  Update: {
12280
+ commission_reconcile_attempts?: number;
12281
+ commission_reconcile_available_at?: string | null;
12282
+ commission_reconcile_requested_at?: string | null;
12275
12283
  created_at?: string;
12276
12284
  currency?: string;
12277
12285
  customer_id?: string;
@@ -18584,20 +18592,10 @@ export type Database = {
18584
18592
  Args: never;
18585
18593
  Returns: {
18586
18594
  attempts: number;
18587
- lease_token: string | null;
18588
- locked_until: string | null;
18589
- next_attempt_at: string;
18590
18595
  requested_at: string;
18591
- revision: string;
18592
18596
  target_id: string;
18593
18597
  target_kind: string;
18594
18598
  }[];
18595
- SetofOptions: {
18596
- from: "*";
18597
- to: "billing_commission_reconciliation_requests";
18598
- isOneToOne: false;
18599
- isSetofReturn: true;
18600
- };
18601
18599
  };
18602
18600
  claim_dated_offering_waitlist_capacity_effects_v3_atomic: {
18603
18601
  Args: {
@@ -18954,6 +18952,7 @@ export type Database = {
18954
18952
  p_order_item_metadata?: Json;
18955
18953
  p_order_number_prefix?: string;
18956
18954
  p_payment_method?: string;
18955
+ p_predecessor?: Json;
18957
18956
  p_roster: Json;
18958
18957
  p_site_id: string;
18959
18958
  p_ticket_lines: Json;
@@ -18981,10 +18980,12 @@ export type Database = {
18981
18980
  p_expected_canonical_selection_key: string;
18982
18981
  p_expected_commercial_selection_key: string;
18983
18982
  p_idempotency_key: string;
18983
+ p_metadata?: Json;
18984
18984
  p_now?: string;
18985
18985
  p_order_item_metadata: Json;
18986
18986
  p_order_number_prefix: string;
18987
18987
  p_payment_method?: string;
18988
+ p_predecessor?: Json;
18988
18989
  p_site_id: string;
18989
18990
  p_waitlist_entry_id: string;
18990
18991
  p_waitlist_hold_id: string;
@@ -19684,8 +19685,7 @@ export type Database = {
19684
19685
  };
19685
19686
  finish_booking_commission_reconciliation: {
19686
19687
  Args: {
19687
- p_lease_token: string;
19688
- p_revision: string;
19688
+ p_requested_at: string;
19689
19689
  p_succeeded: boolean;
19690
19690
  p_target_id: string;
19691
19691
  p_target_kind: string;
@@ -20148,6 +20148,7 @@ export type Database = {
20148
20148
  p_discount_code_id: string;
20149
20149
  p_discount_public_label: string;
20150
20150
  p_items: Json;
20151
+ p_occurrence_command?: Json;
20151
20152
  p_order_number: string;
20152
20153
  p_order_number_seq: number;
20153
20154
  p_paid_cents: number;
@@ -20158,6 +20159,7 @@ export type Database = {
20158
20159
  p_subtotal_cents: number;
20159
20160
  };
20160
20161
  Returns: {
20162
+ created: boolean;
20161
20163
  item_ids: string[];
20162
20164
  order_id: string;
20163
20165
  }[];
@@ -20167,6 +20169,7 @@ export type Database = {
20167
20169
  p_attendance_mode: string;
20168
20170
  p_audit_ref: string;
20169
20171
  p_canonical_selection_key: string;
20172
+ p_checkout_attempt_id?: string;
20170
20173
  p_commercial_selection_key: string;
20171
20174
  p_customer_display_name?: string;
20172
20175
  p_customer_email_normalized?: string;
@@ -20179,6 +20182,7 @@ export type Database = {
20179
20182
  p_idempotency_key: string;
20180
20183
  p_metadata?: Json;
20181
20184
  p_now?: string;
20185
+ p_predecessor?: Json;
20182
20186
  p_roster: Json;
20183
20187
  p_site_id: string;
20184
20188
  p_ticket_lines: Json;
@@ -20195,6 +20199,7 @@ export type Database = {
20195
20199
  };
20196
20200
  prepare_event_series_waitlist_checkout_v1: {
20197
20201
  Args: {
20202
+ p_checkout_attempt_id?: string;
20198
20203
  p_checkout_audit_ref: string;
20199
20204
  p_checkout_hold_expires_at: string;
20200
20205
  p_checkout_hold_id: string;
@@ -20208,6 +20213,7 @@ export type Database = {
20208
20213
  p_idempotency_key: string;
20209
20214
  p_metadata?: Json;
20210
20215
  p_now?: string;
20216
+ p_predecessor?: Json;
20211
20217
  p_site_id: string;
20212
20218
  p_waitlist_entry_id: string;
20213
20219
  p_waitlist_hold_id: string;
@@ -20645,6 +20651,13 @@ export type Database = {
20645
20651
  };
20646
20652
  Returns: boolean;
20647
20653
  };
20654
+ retire_unbound_occurrence_checkout_reservation_v1: {
20655
+ Args: {
20656
+ p_attendee_id: string;
20657
+ p_site_id: string;
20658
+ };
20659
+ Returns: boolean;
20660
+ };
20648
20661
  revoke_dated_offering_consumed_registration_v3_atomic: {
20649
20662
  Args: {
20650
20663
  p_enrollment_id: string;
@@ -0,0 +1,7 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { ColourFieldOptions } from './colourFieldVisibility';
3
+ /** Dashboard forms opt in; preview's visual editing controls retain their own policy. */
4
+ export declare function ColourFieldOptionsProvider({ children }: {
5
+ children: ReactNode;
6
+ }): import("react").JSX.Element;
7
+ export declare function useColourFieldOptions(): ColourFieldOptions | undefined;
@@ -0,0 +1,7 @@
1
+ import type { BlockManifest } from '../../../blocks/src/index';
2
+ export type ColourFieldOptions = Readonly<{
3
+ colour: boolean;
4
+ gradient: boolean;
5
+ }>;
6
+ /** Only changes form presentation; the validation manifest and saved data stay intact. */
7
+ export declare function hideUnavailableColourFields(manifest: BlockManifest, options: ColourFieldOptions): BlockManifest;
@@ -1,3 +1,4 @@
1
+ import { type ColourFieldOptions } from './colourFieldVisibility';
1
2
  import type { BlockManifest, StyleGroups } from '../../../blocks/src/index';
2
3
  import type { SdkBlockFieldExtensionsMap, SdkBlockFieldOptionsMap } from '../../../block-form/src/index';
3
4
  export type BlockEditorManifestVisibilityPolicy = Readonly<{
@@ -18,5 +19,6 @@ export declare function prepareBlockEditorManifest(input: Readonly<{
18
19
  blockFieldOptions?: SdkBlockFieldOptionsMap | null;
19
20
  blockFieldExtensions?: SdkBlockFieldExtensionsMap | null;
20
21
  visibilityPolicy: BlockEditorManifestVisibilityPolicy;
22
+ colourFieldOptions?: ColourFieldOptions;
21
23
  allowedPromotedFieldPaths?: readonly string[];
22
24
  }>): PreparedBlockEditorManifest;
@@ -25,3 +25,4 @@ export { stripTopLevelRoutingUi } from './block-editor/settingsIntent';
25
25
  export * from './widgets/index';
26
26
  export { createBlockFormLogger, setBlockFormLoggerFactory, setBlockFormAppLogger, } from './block-form/debug';
27
27
  export type { BlockFormLogger } from './block-form/debug';
28
+ export { ColourFieldOptionsProvider } from './block-editor/ColourFieldOptionsProvider';
@@ -1,6 +1,6 @@
1
1
  import React, { type ReactNode } from 'react';
2
2
  import type { ApiClient } from '../../../../api/src/request';
3
- import type { SdkConfigForBlockPicker } from '../../../../editor-blocks/src/index';
3
+ import type { SdkConfigForPreview } from './sdkConfig';
4
4
  import type { SurfaceId } from '../../../../surfaces/src/index';
5
5
  import type { EntrySubrouteContextData, BookingOfferingPresetSummary, Theme } from '../../../../blocks/src/index';
6
6
  import { type ContentTypeSchema } from '../../../../content-model/src/index';
@@ -44,7 +44,7 @@ export type PreviewEditorSidebarProps = {
44
44
  bearerToken?: string | null;
45
45
  entrySubrouteContext?: EntrySubrouteContextData | null;
46
46
  assistantPanel?: ReactNode;
47
- sdkConfig?: SdkConfigForBlockPicker | null;
47
+ sdkConfig?: SdkConfigForPreview | null;
48
48
  bookingOfferingPresets?: readonly BookingOfferingPresetSummary[] | null;
49
49
  siteStyleAccess?: SiteStyleAccess;
50
50
  activeTab: PreviewEditorSidebarTab;
@@ -1,11 +1,9 @@
1
+ import { type FooterInspection } from './footerInspection';
1
2
  import type { ApiClient } from '../../../../api/src/request';
2
3
  import type { Theme } from '../../../../blocks/src/index';
3
- import { type PreviewInspection } from '../../../../content-editor/src/index';
4
4
  import type { SiteStyleAccess } from './siteStyleAccess';
5
- type FooterInspection = Extract<PreviewInspection, Readonly<{
6
- kind: 'footer' | 'footer-module';
7
- }>>;
8
- export declare function PreviewFooterEditorPanel({ apiClient, siteId, dashboardBaseUrl, theme, selectionId, selectionVersion, siteStyleAccess, inspection, canEdit, onSaved, }: Readonly<{
5
+ export declare function PreviewFooterEditorPanel({ sdkConfig, apiClient, siteId, dashboardBaseUrl, theme, selectionId, selectionVersion, siteStyleAccess, inspection, canEdit, onSaved, }: Readonly<{
6
+ sdkConfig?: unknown;
9
7
  apiClient: ApiClient;
10
8
  siteId: string;
11
9
  dashboardBaseUrl: string | null;
@@ -17,4 +15,3 @@ export declare function PreviewFooterEditorPanel({ apiClient, siteId, dashboardB
17
15
  canEdit: boolean;
18
16
  onSaved?: () => void;
19
17
  }>): import("react").JSX.Element;
20
- export {};
@@ -4,7 +4,7 @@ import type { ButtonStyleSelection, ButtonStyleSelectionRepair } from '../../../
4
4
  import type { FooterLookId, HeaderLayoutStyleSelection, HeaderLogoContext } from '../../../../theme-core/src/site-styles/index';
5
5
  import type { EntrySubrouteContextData, BookingOfferingPresetSummary, MediaAssetIndexItem, Theme } from '../../../../blocks/src/index';
6
6
  import type { ContentTypeSchema } from '../../../../content-model/src/index';
7
- import type { SdkConfigForBlockPicker } from '../../../../editor-blocks/src/index';
7
+ import type { SdkConfigForPreview } from './sdkConfig';
8
8
  import type { SurfaceId } from '../../../../surfaces/src/index';
9
9
  import { type PreviewBlock, type PreviewContentEntryData, type PreviewPageMetadata } from './PreviewEntryControllerProvider';
10
10
  import { type PreviewRenderingMode, type PreviewThemeRuntime } from './themeRuntime';
@@ -70,7 +70,7 @@ type PreviewShellCommonProps = {
70
70
  maintenanceModeEnabled: boolean;
71
71
  entrySubrouteContext?: EntrySubrouteContextData | null;
72
72
  assistantPanel?: PreviewEditorSidebarProps['assistantPanel'];
73
- sdkConfig?: SdkConfigForBlockPicker | null;
73
+ sdkConfig?: SdkConfigForPreview | null;
74
74
  mediaAssets?: readonly MediaAssetIndexItem[];
75
75
  bookingOfferingPresets?: readonly BookingOfferingPresetSummary[] | null;
76
76
  supabaseUrl?: string;
@@ -4,7 +4,7 @@ import type { ButtonStyleSelection, ButtonStyleSelectionRepair } from '../../../
4
4
  import type { HeaderLogoContext, FooterLookId, HeaderLayoutStyleSelection } from '../../../../theme-core/src/site-styles/index';
5
5
  import type { ContentTypeSchema } from '../../../../content-model/src/index';
6
6
  import type { ApiClient } from '../../../../api/src/request';
7
- import type { SdkConfigForBlockPicker } from '../../../../editor-blocks/src/index';
7
+ import type { SdkConfigForPreview } from './sdkConfig';
8
8
  import type { SurfaceId } from '../../../../surfaces/src/index';
9
9
  import { type PreviewEntryData, type PreviewTemplateData } from './PreviewEditorSidebar';
10
10
  import { type SiteStyleAccess } from './siteStyleAccess';
@@ -36,7 +36,7 @@ type PreviewShellLayoutCommonProps = {
36
36
  maintenanceModeEnabled: boolean;
37
37
  entrySubrouteContext?: EntrySubrouteContextData | null;
38
38
  assistantPanel?: ReactNode;
39
- sdkConfig?: SdkConfigForBlockPicker | null;
39
+ sdkConfig?: SdkConfigForPreview | null;
40
40
  bookingOfferingPresets?: readonly BookingOfferingPresetSummary[] | null;
41
41
  siteStyleAccess?: SiteStyleAccess;
42
42
  onFooterSaved?: () => void;
@@ -0,0 +1,16 @@
1
+ import type { PreviewInspection } from '../../../../content-editor/src/index';
2
+ export type FooterInspection = Extract<PreviewInspection, {
3
+ kind: 'footer' | 'footer-module';
4
+ }>;
5
+ /** Shared by sidebar routing and the footer panel's initial editing target. */
6
+ export declare function resolveFooterInspection(inspection: PreviewInspection | null): FooterInspection | null;
7
+ export declare function footerComposerInspectionProps(inspection: FooterInspection | null): {
8
+ initialTarget: {
9
+ kind: "module";
10
+ moduleId: import("../../../../core/src/index").FooterModuleId;
11
+ } | {
12
+ kind: "overview";
13
+ moduleId?: undefined;
14
+ };
15
+ initialTargetRequestId: number | undefined;
16
+ };
@@ -0,0 +1,6 @@
1
+ import type { SdkSiteLayoutConfig } from '../../../../api/src/index';
2
+ import type { SdkConfigForBlockPicker } from '../../../../editor-blocks/src/index';
3
+ /** SDK config fields consumed by preview editing, beyond the block picker. */
4
+ export type SdkConfigForPreview = SdkConfigForBlockPicker & {
5
+ layout?: Pick<SdkSiteLayoutConfig, 'footerMode'>;
6
+ };
@@ -4,6 +4,7 @@
4
4
  * These types define the schema for SDK site configuration that can be
5
5
  * declared in code and consumed by tooling.
6
6
  */
7
+ import type { SdkSiteLayoutConfig } from '../../../api/src/index';
7
8
  import type { ContentConfig } from './content-types';
8
9
  import type { FieldDefinition } from './field-definitions';
9
10
  import type { NodeDefinition } from '../contracts';
@@ -383,24 +384,7 @@ export interface RiverbankSiteConfig {
383
384
  * These blocks are SDK-managed (source controlled) and synced to the CMS via
384
385
  * `riverbankcms push-config`.
385
386
  */
386
- layout?: {
387
- /**
388
- * Global footer blocks list (applies to all pages).
389
- *
390
- * These are block instances, not persisted CMS page blocks.
391
- */
392
- footerBlocks?: Array<{
393
- /**
394
- * Optional stable identifier for list rendering.
395
- * Not a CMS block UUID.
396
- */
397
- id?: string;
398
- /** Block kind (system: block.* or custom: custom.*) */
399
- kind: string;
400
- /** Static content payload for the block */
401
- content?: Record<string, unknown>;
402
- }>;
403
- };
387
+ layout?: SdkSiteLayoutConfig;
404
388
  /**
405
389
  * Custom blocks defined by the SDK site.
406
390
  * These blocks appear in the block picker and are edited via CMS forms.
@@ -456,6 +456,12 @@ export declare const themeSourceSchema: z.ZodOptional<z.ZodEnum<{
456
456
  */
457
457
  export declare const activeThemeSchema: z.ZodOptional<z.ZodString>;
458
458
  export declare const layoutConfigSchema: z.ZodObject<{
459
+ footerMode: z.ZodOptional<z.ZodEnum<{
460
+ none: "none";
461
+ default: "default";
462
+ blocks: "blocks";
463
+ "default+blocks": "default+blocks";
464
+ }>>;
459
465
  footerBlocks: z.ZodOptional<z.ZodArray<z.ZodObject<{
460
466
  id: z.ZodOptional<z.ZodString>;
461
467
  kind: z.ZodString;