@riverbankcms/sdk 0.148.0 → 0.149.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 (154) hide show
  1. package/README.md +1 -1
  2. package/dist/{PreviewEditorSidebar-DvEPG3Z2.mjs → PreviewEditorSidebar-DBKln68M.mjs} +103 -66
  3. package/dist/{PreviewEditorUI-D6eb6fkx.mjs → PreviewEditorUI-DpRX4Mum.mjs} +3 -6
  4. package/dist/{PreviewQueryProvider-5znTyJuz.mjs → PreviewQueryProvider-C0mndwHB.mjs} +3 -3
  5. package/dist/{SdkPreviewModeRuntime-DJ6utQ_R.mjs → SdkPreviewModeRuntime-DJPmPY-r.mjs} +95 -67
  6. package/dist/{SiteChromeCustomizeContext-CFJYh6vo.mjs → SiteChromeCustomizeContext-JYA0cJ_Z.mjs} +982 -734
  7. package/dist/_dts/api/src/bookingConfig.d.ts +33 -48
  8. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +2 -6
  9. package/dist/_dts/api/src/bookingOperations.d.ts +5 -7
  10. package/dist/_dts/api/src/bookingRecords.d.ts +15 -11
  11. package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +5 -5
  12. package/dist/_dts/api/src/clientErrorReporting.d.ts +11 -0
  13. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +0 -2
  14. package/dist/_dts/api/src/common/cancellation.d.ts +23 -0
  15. package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +1 -1
  16. package/dist/_dts/api/src/endpoints.d.ts +2 -10
  17. package/dist/_dts/api/src/eventManagementContracts.d.ts +4 -7
  18. package/dist/_dts/api/src/index.d.ts +3 -3
  19. package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +2 -2
  20. package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +2 -29
  21. package/dist/_dts/api/src/request.d.ts +1 -1
  22. package/dist/_dts/api/src/sdk-event-upsert.d.ts +1 -1
  23. package/dist/_dts/api/src/sdkPullEventContracts.d.ts +1 -1
  24. package/dist/_dts/api/src/siteOperations.d.ts +6 -2
  25. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -1
  26. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +2 -2
  27. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +38 -10
  28. package/dist/_dts/blocks/src/portal/types.d.ts +9 -6
  29. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +24 -24
  30. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +1 -1
  31. package/dist/_dts/blocks/src/system/blocks/shared/bookingPaymentTerms.d.ts +84 -160
  32. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -2
  33. package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +31 -4
  34. package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +2 -2
  35. package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +3 -1
  36. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +48 -6
  37. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -3
  38. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingNowIso.d.ts +8 -0
  39. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +2 -1
  40. package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/display.d.ts +9 -2
  41. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +14 -2
  42. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentSelectionStep.d.ts +2 -0
  43. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +3 -3
  44. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +4 -0
  45. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +24 -24
  46. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +41 -6
  47. package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptions.d.ts +7 -2
  48. package/dist/_dts/commerce/src/purchase/bookingPaymentSelection.d.ts +54 -0
  49. package/dist/_dts/commerce/src/purchase/checkoutCommitPlan.d.ts +58 -13
  50. package/dist/_dts/commerce/src/purchase/checkoutErrorCodes.d.ts +1 -1
  51. package/dist/_dts/commerce/src/purchase/checkoutPaymentPlanPlanning.d.ts +16 -21
  52. package/dist/_dts/commerce/src/purchase/checkoutPaymentTerms.d.ts +23 -40
  53. package/dist/_dts/commerce/src/purchase/checkoutSessionMetadata.d.ts +2 -2
  54. package/dist/_dts/commerce/src/purchase/checkoutStripeSessionPlanning.d.ts +5 -4
  55. package/dist/_dts/commerce/src/purchase/index.d.ts +1 -3
  56. package/dist/_dts/commerce/src/purchase/membershipOrderItemMetadata.d.ts +4 -0
  57. package/dist/_dts/commerce/src/purchase/oneTimeCheckoutPlanning.d.ts +9 -4
  58. package/dist/_dts/commerce/src/purchase/orderInstalmentClosure.d.ts +13 -1
  59. package/dist/_dts/commerce/src/purchase/orderInstalmentLifecycle.d.ts +5 -0
  60. package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +3 -1
  61. package/dist/_dts/commerce/src/purchase/orderTypes.d.ts +7 -1
  62. package/dist/_dts/commerce/src/purchase/refundRailSplit.d.ts +1 -1
  63. package/dist/_dts/commerce/src/purchase/stateTransitions.d.ts +2 -2
  64. package/dist/_dts/commerce/src/purchase/stripeMinimumCharge.d.ts +6 -0
  65. package/dist/_dts/commerce/src/purchase/types.d.ts +2 -1
  66. package/dist/_dts/content-editor/src/controller/editLeaseHandover.d.ts +30 -0
  67. package/dist/_dts/content-editor/src/lib/browserStorage.d.ts +5 -0
  68. package/dist/_dts/core/src/booking-flexible-balance.d.ts +2 -2
  69. package/dist/_dts/core/src/booking-instalment-deposit.d.ts +20 -0
  70. package/dist/_dts/core/src/booking-live-payment-terms.d.ts +72 -0
  71. package/dist/_dts/core/src/booking-payment-options.d.ts +24 -0
  72. package/dist/_dts/core/src/booking-payment-schemas.d.ts +522 -0
  73. package/dist/_dts/core/src/branded.d.ts +3 -0
  74. package/dist/_dts/core/src/edit-lease.d.ts +5 -0
  75. package/dist/_dts/core/src/index.d.ts +3 -0
  76. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +297 -36
  77. package/dist/_dts/media-editor/src/MediaPickerDialog.d.ts +3 -1
  78. package/dist/_dts/media-editor/src/MediaPickerMiniDialog.d.ts +10 -0
  79. package/dist/_dts/media-editor/src/index.d.ts +2 -0
  80. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +0 -1
  81. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -1
  82. package/dist/_dts/preview-next/src/client/previewAuthStore.d.ts +7 -0
  83. package/dist/_dts/preview-next/src/constants.d.ts +4 -0
  84. package/dist/_dts/preview-next/src/keepAlive.d.ts +1 -0
  85. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +2 -12
  86. package/dist/_dts/sdk/src/version.d.ts +1 -1
  87. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +0 -5
  88. package/dist/_dts/ui/src/color-picker.d.ts +1 -1
  89. package/dist/_dts/ui/src/palette/useHexDraft.d.ts +7 -0
  90. package/dist/client/{BookingMailingListNote-CzRt2dF_.mjs → BookingMailingListNote-Cr3EeTP5.mjs} +408 -69
  91. package/dist/client/{DemoBookingPortalAccess-mxqwap3f.mjs → DemoBookingPortalAccess-BFGB1Fay.mjs} +2 -2
  92. package/dist/client/{EventCombined.client-CDb11igO.mjs → EventCombined.client-DKYV0_ft.mjs} +6 -6
  93. package/dist/client/{EventListing.client-EgYhzKPa.mjs → EventListing.client-B9UIcEYc.mjs} +2 -2
  94. package/dist/client/{LeafletStaticMap-gtmtaA2b.mjs → LeafletStaticMap-CFLPkP0K.mjs} +1 -1
  95. package/dist/client/{TerminalPanel-DvNUP5ot.mjs → TerminalPanel-JjmgxEsR.mjs} +1 -1
  96. package/dist/client/{ThemedButton-C7CeUJjW.mjs → ThemedButton-CKV1Jh2m.mjs} +1 -1
  97. package/dist/client/{accordion-kjvt49rA.mjs → accordion-DXWIfT3T.mjs} +1 -1
  98. package/dist/client/{bookingForm-pbRZordh.mjs → bookingForm-CjZgHNvv.mjs} +11 -8
  99. package/dist/client/bookings.mjs +424 -320
  100. package/dist/client/{carousel-f4Zbmicv.mjs → carousel-DSLikmvZ.mjs} +1 -1
  101. package/dist/client/{cart-DO20An50.mjs → cart-HDjWReFt.mjs} +3 -3
  102. package/dist/client/{checkout-Du5amDR_.mjs → checkout-CUvRZA3W.mjs} +3 -3
  103. package/dist/client/client.mjs +963 -866
  104. package/dist/client/{context-eW97E945.mjs → context-DFmaZa-Q.mjs} +1 -1
  105. package/dist/client/{dates-jPCirRea.mjs → dates-BBep1JnF.mjs} +2 -2
  106. package/dist/client/{eventCalendar-C2M-iE4j.mjs → eventCalendar-zEobhxo4.mjs} +9 -9
  107. package/dist/client/{eventCombined-W6ns3LHg.mjs → eventCombined-Dp7bz5k-.mjs} +4 -4
  108. package/dist/client/{eventDetails-CR-GT0f0.mjs → eventDetails-FE-zqTt7.mjs} +4 -4
  109. package/dist/client/{eventListing-BK8AfYZz.mjs → eventListing-BMt5snal.mjs} +4 -4
  110. package/dist/client/{eventRegistration-BJSd4KUu.mjs → eventRegistration-O6ZxHfOb.mjs} +67 -342
  111. package/dist/client/{form-BvpfbQaT.mjs → form-DFa1D8vt.mjs} +3 -3
  112. package/dist/client/{headerSection-I5sUQ8x-.mjs → headerSection-CmjHLR-N.mjs} +3 -3
  113. package/dist/client/hooks.mjs +160 -129
  114. package/dist/client/{locationMap-BLvwf9_f.mjs → locationMap-BXKP_lGh.mjs} +3 -3
  115. package/dist/client/{newsletterForm-DrQ2weE8.mjs → newsletterForm-CU-HmxGx.mjs} +3 -3
  116. package/dist/client/{pricing-BES87mrR.mjs → pricing-KEAEsibq.mjs} +1 -1
  117. package/dist/client/{productDetail-Url9jcc5.mjs → productDetail-Ckp7MGnt.mjs} +3 -3
  118. package/dist/client/{productList-DE7ngEZJ.mjs → productList-D91V0sYa.mjs} +3 -3
  119. package/dist/client/{propsDecoder-D1OtGXDV.mjs → propsDecoder-DZd6RJeA.mjs} +155 -77
  120. package/dist/client/rendering/client.mjs +3356 -3192
  121. package/dist/client/rendering/islands.mjs +17 -17
  122. package/dist/client/rendering.mjs +956 -841
  123. package/dist/client/{routeIslandApiConfig-BG9Y-SHg.mjs → routeIslandApiConfig-E1EkhhYY.mjs} +1 -1
  124. package/dist/client/{shop-CJkuySJ3.mjs → shop-4F2jLQPI.mjs} +12 -13
  125. package/dist/client/{shop-commerce-4rKj5n9h.mjs → shop-commerce-BbfCJjB3.mjs} +6 -6
  126. package/dist/client/{shop-commerce-store-Bxm75Pg6.mjs → shop-commerce-store-vicweP2K.mjs} +1 -1
  127. package/dist/client/{shopShared-DpoQDWfz.mjs → shopShared-DlONJt0T.mjs} +4 -4
  128. package/dist/client/{useEventFilters-D8HliSqR.mjs → useEventFilters-COYyL3m7.mjs} +6 -6
  129. package/dist/preview-next/before-render.mjs +15 -22
  130. package/dist/preview-next/client/runtime.mjs +4 -4
  131. package/dist/preview-next/constants.mjs +5 -1
  132. package/dist/preview-next/index.mjs +5 -1
  133. package/dist/preview-next/keepAlive.mjs +149 -82
  134. package/dist/preview-next/middleware.mjs +15 -22
  135. package/dist/{previewAuthStore-BXXF3hhW.mjs → previewAuthStore-BBmV7UsW.mjs} +49 -29
  136. package/dist/{sdk-runtime-C2a05WjL.mjs → sdk-runtime-CwvFFjB-.mjs} +2 -2
  137. package/dist/{separator-CuNhBAhS.mjs → separator-ByL72zUT.mjs} +1 -1
  138. package/dist/server/components.mjs +167 -131
  139. package/dist/server/config-validation.mjs +160 -129
  140. package/dist/server/config.mjs +160 -129
  141. package/dist/server/data.mjs +160 -129
  142. package/dist/server/index.mjs +20 -27
  143. package/dist/server/next.mjs +174 -156
  144. package/dist/server/page-converter.mjs +145 -65
  145. package/dist/server/prebuild.mjs +1 -1
  146. package/dist/server/rendering/server.mjs +169 -131
  147. package/dist/server/rendering.mjs +167 -131
  148. package/dist/server/routing.mjs +165 -118
  149. package/dist/server/server.mjs +167 -154
  150. package/package.json +1 -1
  151. package/dist/_dts/api/src/bookingPaymentTermSchemas.d.ts +0 -123
  152. package/dist/_dts/commerce/src/purchase/checkoutPaymentTermPlanning.d.ts +0 -10
  153. package/dist/_dts/commerce/src/purchase/checkoutValidatedItemPlanning.d.ts +0 -55
  154. package/dist/_dts/commerce/src/purchase/orderInstalmentPayoff.d.ts +0 -24
@@ -1,205 +1,129 @@
1
- import type { BookingDepositRefundPolicy, BookingFlexibleBalanceConfig, BookingFlexibleBalanceDueDateRule, BookingInstalmentPlanConfig } from "../../../../../core/src/index";
2
- import { z } from "zod";
3
- export type BlockBookingInstalmentPlan = BookingInstalmentPlanConfig;
4
- export type BlockBookingFlexibleBalanceConfig = BookingFlexibleBalanceConfig;
5
- export type BlockBookingFlexibleBalanceDueDateRule = BookingFlexibleBalanceDueDateRule;
6
- export type BlockBookingDepositRefundPolicy = BookingDepositRefundPolicy;
7
- export type { BookingDepositRefundPolicy, BookingFlexibleBalanceConfig, BookingFlexibleBalanceDueDateRule, BookingInstalmentPlanConfig, };
8
- export type BlockBookingPaymentCollectionOption = {
9
- kind: "upfront";
10
- } | {
11
- kind: "deferred_manual";
12
- } | {
13
- kind: "instalment_plan";
14
- plan: BlockBookingInstalmentPlan;
15
- } | {
16
- kind: "flexible_balance";
17
- config: BlockBookingFlexibleBalanceConfig;
18
- };
1
+ import type { BookingPaymentCollectionOption } from "../../../../../core/src/index";
2
+ /** Core's payment option, under the name the blocks runtime uses. */
3
+ export type BlockBookingPaymentCollectionOption = BookingPaymentCollectionOption;
19
4
  export type BlockBookingPaymentTerms = {
20
5
  allowedOptions: BlockBookingPaymentCollectionOption[];
21
6
  };
22
- export declare const bookingDepositRefundPolicySchema: z.ZodEnum<{
23
- refundable: "refundable";
24
- non_refundable: "non_refundable";
25
- }>;
26
- export declare const bookingInstalmentPlanSchema: z.ZodUnion<readonly [z.ZodObject<{
27
- kind: z.ZodLiteral<"deposit_plus_one_remainder">;
28
- depositAmountCents: z.ZodNumber;
29
- depositRefundability: z.ZodEnum<{
30
- refundable: "refundable";
31
- non_refundable: "non_refundable";
32
- }>;
33
- remainderDueCount: z.ZodNumber;
34
- intervalUnit: z.ZodEnum<{
35
- day: "day";
36
- week: "week";
37
- month: "month";
38
- }>;
39
- }, z.core.$strip>, z.ZodObject<{
40
- kind: z.ZodLiteral<"deposit_plus_scheduled_instalments">;
41
- depositAmountCents: z.ZodNumber;
42
- depositRefundability: z.ZodEnum<{
43
- refundable: "refundable";
44
- non_refundable: "non_refundable";
45
- }>;
46
- instalmentCount: z.ZodNumber;
47
- intervalCount: z.ZodNumber;
48
- intervalUnit: z.ZodEnum<{
49
- day: "day";
50
- week: "week";
51
- month: "month";
52
- }>;
53
- }, z.core.$strip>, z.ZodObject<{
54
- kind: z.ZodLiteral<"equal_scheduled_instalments">;
55
- instalmentCount: z.ZodNumber;
56
- intervalCount: z.ZodNumber;
57
- intervalUnit: z.ZodEnum<{
58
- day: "day";
59
- week: "week";
60
- month: "month";
61
- }>;
62
- }, z.core.$strip>]>;
63
- export declare const bookingFlexibleBalanceDueDateRuleSchema: z.ZodUnion<readonly [z.ZodObject<{
64
- kind: z.ZodLiteral<"relative_to_start_date">;
65
- daysBeforeStart: z.ZodNumber;
66
- }, z.core.$strip>, z.ZodObject<{
67
- kind: z.ZodLiteral<"fixed_calendar_date">;
68
- dueAt: z.ZodString;
69
- }, z.core.$strip>]>;
70
- export declare const bookingFlexibleBalanceConfigSchema: z.ZodObject<{
71
- upfrontAmountCents: z.ZodNumber;
72
- dueDateRule: z.ZodUnion<readonly [z.ZodObject<{
73
- kind: z.ZodLiteral<"relative_to_start_date">;
74
- daysBeforeStart: z.ZodNumber;
75
- }, z.core.$strip>, z.ZodObject<{
76
- kind: z.ZodLiteral<"fixed_calendar_date">;
77
- dueAt: z.ZodString;
78
- }, z.core.$strip>]>;
79
- depositRefundability: z.ZodEnum<{
80
- refundable: "refundable";
81
- non_refundable: "non_refundable";
82
- }>;
83
- }, z.core.$strip>;
84
- export declare const blockBookingPaymentCollectionOptionSchema: z.ZodUnion<readonly [z.ZodObject<{
85
- kind: z.ZodLiteral<"upfront">;
86
- }, z.core.$strip>, z.ZodObject<{
87
- kind: z.ZodLiteral<"deferred_manual">;
88
- }, z.core.$strip>, z.ZodObject<{
89
- kind: z.ZodLiteral<"instalment_plan">;
90
- plan: z.ZodUnion<readonly [z.ZodObject<{
91
- kind: z.ZodLiteral<"deposit_plus_one_remainder">;
92
- depositAmountCents: z.ZodNumber;
93
- depositRefundability: z.ZodEnum<{
7
+ export { bookingDepositRefundPolicySchema, bookingFlexibleBalanceConfigSchema, bookingFlexibleBalanceDueDateRuleSchema, bookingInstalmentPlanSchema, } from "../../../../../core/src/booking-payment-schemas";
8
+ export declare const blockBookingPaymentCollectionOptionSchema: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
9
+ kind: import("zod").ZodLiteral<"upfront">;
10
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
11
+ kind: import("zod").ZodLiteral<"deferred_manual">;
12
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
13
+ kind: import("zod").ZodLiteral<"instalment_plan">;
14
+ plan: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
15
+ kind: import("zod").ZodLiteral<"deposit_plus_one_remainder">;
16
+ depositAmountCents: import("zod").ZodNumber;
17
+ depositRefundability: import("zod").ZodEnum<{
94
18
  refundable: "refundable";
95
19
  non_refundable: "non_refundable";
96
20
  }>;
97
- remainderDueCount: z.ZodNumber;
98
- intervalUnit: z.ZodEnum<{
21
+ remainderDueCount: import("zod").ZodNumber;
22
+ intervalUnit: import("zod").ZodEnum<{
99
23
  day: "day";
100
24
  week: "week";
101
25
  month: "month";
102
26
  }>;
103
- }, z.core.$strip>, z.ZodObject<{
104
- kind: z.ZodLiteral<"deposit_plus_scheduled_instalments">;
105
- depositAmountCents: z.ZodNumber;
106
- depositRefundability: z.ZodEnum<{
27
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
28
+ kind: import("zod").ZodLiteral<"deposit_plus_scheduled_instalments">;
29
+ depositAmountCents: import("zod").ZodNumber;
30
+ depositRefundability: import("zod").ZodEnum<{
107
31
  refundable: "refundable";
108
32
  non_refundable: "non_refundable";
109
33
  }>;
110
- instalmentCount: z.ZodNumber;
111
- intervalCount: z.ZodNumber;
112
- intervalUnit: z.ZodEnum<{
34
+ instalmentCount: import("zod").ZodNumber;
35
+ intervalCount: import("zod").ZodNumber;
36
+ intervalUnit: import("zod").ZodEnum<{
113
37
  day: "day";
114
38
  week: "week";
115
39
  month: "month";
116
40
  }>;
117
- }, z.core.$strip>, z.ZodObject<{
118
- kind: z.ZodLiteral<"equal_scheduled_instalments">;
119
- instalmentCount: z.ZodNumber;
120
- intervalCount: z.ZodNumber;
121
- intervalUnit: z.ZodEnum<{
41
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
42
+ kind: import("zod").ZodLiteral<"equal_scheduled_instalments">;
43
+ instalmentCount: import("zod").ZodNumber;
44
+ intervalCount: import("zod").ZodNumber;
45
+ intervalUnit: import("zod").ZodEnum<{
122
46
  day: "day";
123
47
  week: "week";
124
48
  month: "month";
125
49
  }>;
126
- }, z.core.$strip>]>;
127
- }, z.core.$strip>, z.ZodObject<{
128
- kind: z.ZodLiteral<"flexible_balance">;
129
- config: z.ZodObject<{
130
- upfrontAmountCents: z.ZodNumber;
131
- dueDateRule: z.ZodUnion<readonly [z.ZodObject<{
132
- kind: z.ZodLiteral<"relative_to_start_date">;
133
- daysBeforeStart: z.ZodNumber;
134
- }, z.core.$strip>, z.ZodObject<{
135
- kind: z.ZodLiteral<"fixed_calendar_date">;
136
- dueAt: z.ZodString;
137
- }, z.core.$strip>]>;
138
- depositRefundability: z.ZodEnum<{
50
+ }, import("zod/v4/core").$strip>], "kind">;
51
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
52
+ kind: import("zod").ZodLiteral<"flexible_balance">;
53
+ config: import("zod").ZodObject<{
54
+ upfrontAmountCents: import("zod").ZodNumber;
55
+ dueDateRule: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
56
+ kind: import("zod").ZodLiteral<"relative_to_start_date">;
57
+ daysBeforeStart: import("zod").ZodNumber;
58
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
59
+ kind: import("zod").ZodLiteral<"fixed_calendar_date">;
60
+ dueAt: import("zod").ZodString;
61
+ }, import("zod/v4/core").$strip>], "kind">;
62
+ depositRefundability: import("zod").ZodEnum<{
139
63
  refundable: "refundable";
140
64
  non_refundable: "non_refundable";
141
65
  }>;
142
- }, z.core.$strip>;
143
- }, z.core.$strip>]>;
144
- export declare const blockBookingPaymentTermsSchema: z.ZodObject<{
145
- allowedOptions: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
146
- kind: z.ZodLiteral<"upfront">;
147
- }, z.core.$strip>, z.ZodObject<{
148
- kind: z.ZodLiteral<"deferred_manual">;
149
- }, z.core.$strip>, z.ZodObject<{
150
- kind: z.ZodLiteral<"instalment_plan">;
151
- plan: z.ZodUnion<readonly [z.ZodObject<{
152
- kind: z.ZodLiteral<"deposit_plus_one_remainder">;
153
- depositAmountCents: z.ZodNumber;
154
- depositRefundability: z.ZodEnum<{
66
+ }, import("zod/v4/core").$strip>;
67
+ }, import("zod/v4/core").$strip>], "kind">;
68
+ export declare const blockBookingPaymentTermsSchema: import("zod").ZodObject<{
69
+ allowedOptions: import("zod").ZodArray<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
70
+ kind: import("zod").ZodLiteral<"upfront">;
71
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
72
+ kind: import("zod").ZodLiteral<"deferred_manual">;
73
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
74
+ kind: import("zod").ZodLiteral<"instalment_plan">;
75
+ plan: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
76
+ kind: import("zod").ZodLiteral<"deposit_plus_one_remainder">;
77
+ depositAmountCents: import("zod").ZodNumber;
78
+ depositRefundability: import("zod").ZodEnum<{
155
79
  refundable: "refundable";
156
80
  non_refundable: "non_refundable";
157
81
  }>;
158
- remainderDueCount: z.ZodNumber;
159
- intervalUnit: z.ZodEnum<{
82
+ remainderDueCount: import("zod").ZodNumber;
83
+ intervalUnit: import("zod").ZodEnum<{
160
84
  day: "day";
161
85
  week: "week";
162
86
  month: "month";
163
87
  }>;
164
- }, z.core.$strip>, z.ZodObject<{
165
- kind: z.ZodLiteral<"deposit_plus_scheduled_instalments">;
166
- depositAmountCents: z.ZodNumber;
167
- depositRefundability: z.ZodEnum<{
88
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
89
+ kind: import("zod").ZodLiteral<"deposit_plus_scheduled_instalments">;
90
+ depositAmountCents: import("zod").ZodNumber;
91
+ depositRefundability: import("zod").ZodEnum<{
168
92
  refundable: "refundable";
169
93
  non_refundable: "non_refundable";
170
94
  }>;
171
- instalmentCount: z.ZodNumber;
172
- intervalCount: z.ZodNumber;
173
- intervalUnit: z.ZodEnum<{
95
+ instalmentCount: import("zod").ZodNumber;
96
+ intervalCount: import("zod").ZodNumber;
97
+ intervalUnit: import("zod").ZodEnum<{
174
98
  day: "day";
175
99
  week: "week";
176
100
  month: "month";
177
101
  }>;
178
- }, z.core.$strip>, z.ZodObject<{
179
- kind: z.ZodLiteral<"equal_scheduled_instalments">;
180
- instalmentCount: z.ZodNumber;
181
- intervalCount: z.ZodNumber;
182
- intervalUnit: z.ZodEnum<{
102
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
103
+ kind: import("zod").ZodLiteral<"equal_scheduled_instalments">;
104
+ instalmentCount: import("zod").ZodNumber;
105
+ intervalCount: import("zod").ZodNumber;
106
+ intervalUnit: import("zod").ZodEnum<{
183
107
  day: "day";
184
108
  week: "week";
185
109
  month: "month";
186
110
  }>;
187
- }, z.core.$strip>]>;
188
- }, z.core.$strip>, z.ZodObject<{
189
- kind: z.ZodLiteral<"flexible_balance">;
190
- config: z.ZodObject<{
191
- upfrontAmountCents: z.ZodNumber;
192
- dueDateRule: z.ZodUnion<readonly [z.ZodObject<{
193
- kind: z.ZodLiteral<"relative_to_start_date">;
194
- daysBeforeStart: z.ZodNumber;
195
- }, z.core.$strip>, z.ZodObject<{
196
- kind: z.ZodLiteral<"fixed_calendar_date">;
197
- dueAt: z.ZodString;
198
- }, z.core.$strip>]>;
199
- depositRefundability: z.ZodEnum<{
111
+ }, import("zod/v4/core").$strip>], "kind">;
112
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
113
+ kind: import("zod").ZodLiteral<"flexible_balance">;
114
+ config: import("zod").ZodObject<{
115
+ upfrontAmountCents: import("zod").ZodNumber;
116
+ dueDateRule: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
117
+ kind: import("zod").ZodLiteral<"relative_to_start_date">;
118
+ daysBeforeStart: import("zod").ZodNumber;
119
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
120
+ kind: import("zod").ZodLiteral<"fixed_calendar_date">;
121
+ dueAt: import("zod").ZodString;
122
+ }, import("zod/v4/core").$strip>], "kind">;
123
+ depositRefundability: import("zod").ZodEnum<{
200
124
  refundable: "refundable";
201
125
  non_refundable: "non_refundable";
202
126
  }>;
203
- }, z.core.$strip>;
204
- }, z.core.$strip>]>>;
205
- }, z.core.$strip>;
127
+ }, import("zod/v4/core").$strip>;
128
+ }, import("zod/v4/core").$strip>], "kind">>;
129
+ }, import("zod/v4/core").$strip>;
@@ -1,6 +1,6 @@
1
1
  import type { SystemBlockDefinition } from "../registry";
2
2
  import { type SectionStylesContent } from "../fields/boxStyles";
3
- import { publicMembershipProductSchema, publicPassProductSchema, publicMembershipProductCollectionSchema, publicPassProductCollectionSchema, type PublicMembershipProductCollection, type PublicMembershipProduct, type PublicPassProductCollection, type PublicPassProduct, type PurchasablePublicPassProduct } from "./shop.shared";
3
+ import { publicMembershipProductSchema, publicPassProductSchema, publicMembershipProductCollectionSchema, publicPassProductCollectionSchema, type PublicMembershipProductCollection, type PublicMembershipProduct, type PublicPassProductCollection, type PublicPassProduct, type PurchasablePublicMembershipProduct, type PurchasablePublicPassProduct } from "./shop.shared";
4
4
  import { shopBlockRuntime } from "../runtime/nodes/shop.interactive";
5
5
  import type { BlockManifest } from "../manifest/schema";
6
6
  import type { BlockButtonRole } from "../constants/buttonRoles";
@@ -39,5 +39,5 @@ export type ShopContent = {
39
39
  _sectionStyles?: SectionStylesContent;
40
40
  };
41
41
  export { publicMembershipProductCollectionSchema, publicMembershipProductSchema, publicPassProductCollectionSchema, publicPassProductSchema, };
42
- export type { PublicMembershipProductCollection, PublicMembershipProduct, PublicPassProductCollection, PublicPassProduct, PurchasablePublicPassProduct, };
42
+ export type { PublicMembershipProductCollection, PublicMembershipProduct, PublicPassProductCollection, PublicPassProduct, PurchasablePublicMembershipProduct, PurchasablePublicPassProduct, };
43
43
  export declare const shopBlockDefinition: SystemBlockDefinition<ShopContent, typeof shopBlockRuntime>;
@@ -56,10 +56,8 @@ export type PublicPassProductCollection = Readonly<{
56
56
  passes: readonly PublicPassProduct[];
57
57
  }>;
58
58
  export declare const publicPassProductCollectionSchema: z.ZodType<PublicPassProductCollection>;
59
- /**
60
- * Public membership product for shop display
61
- */
62
- export declare const publicMembershipProductSchema: z.ZodObject<{
59
+ export declare const purchasablePublicMembershipProductSchema: z.ZodObject<{
60
+ purchaseAvailability: z.ZodLiteral<"purchasable">;
63
61
  id: z.ZodString;
64
62
  name: z.ZodString;
65
63
  description: z.ZodNullable<z.ZodString>;
@@ -72,7 +70,36 @@ export declare const publicMembershipProductSchema: z.ZodObject<{
72
70
  eligibleCategoryIds: z.ZodArray<z.ZodString>;
73
71
  eligibleCategoryNames: z.ZodArray<z.ZodString>;
74
72
  }, z.core.$strip>;
73
+ export declare const publicMembershipProductSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
74
+ purchaseAvailability: z.ZodLiteral<"purchasable">;
75
+ id: z.ZodString;
76
+ name: z.ZodString;
77
+ description: z.ZodNullable<z.ZodString>;
78
+ price: z.ZodNumber;
79
+ currency: z.ZodString;
80
+ billingInterval: z.ZodEnum<{
81
+ month: "month";
82
+ year: "year";
83
+ }>;
84
+ eligibleCategoryIds: z.ZodArray<z.ZodString>;
85
+ eligibleCategoryNames: z.ZodArray<z.ZodString>;
86
+ }, z.core.$strip>, z.ZodObject<{
87
+ purchaseAvailability: z.ZodLiteral<"display_only">;
88
+ unavailabilityReason: z.ZodLiteral<"online_payments_unavailable">;
89
+ id: z.ZodString;
90
+ name: z.ZodString;
91
+ description: z.ZodNullable<z.ZodString>;
92
+ price: z.ZodNumber;
93
+ currency: z.ZodString;
94
+ billingInterval: z.ZodEnum<{
95
+ month: "month";
96
+ year: "year";
97
+ }>;
98
+ eligibleCategoryIds: z.ZodArray<z.ZodString>;
99
+ eligibleCategoryNames: z.ZodArray<z.ZodString>;
100
+ }, z.core.$strip>], "purchaseAvailability">;
75
101
  export type PublicMembershipProduct = z.infer<typeof publicMembershipProductSchema>;
102
+ export type PurchasablePublicMembershipProduct = z.infer<typeof purchasablePublicMembershipProductSchema>;
76
103
  export type PublicMembershipProductCollection = Readonly<{
77
104
  memberships: readonly PublicMembershipProduct[];
78
105
  }>;
@@ -1,4 +1,4 @@
1
- import type { BookingMailingListNote as BookingSignupNote } from '../../../../../../core/src/index';
1
+ import type { BookingMailingListNote as BookingSignupNote, BookingPaymentCollectionOptionKind } from '../../../../../../core/src/index';
2
2
  /**
3
3
  * Appointment booking, availability, service and resource types
4
4
  *
@@ -17,7 +17,7 @@ export interface BookingSubmitRequest {
17
17
  timezone: string;
18
18
  discountCode?: string;
19
19
  selectedSlidingAmount?: number;
20
- selectedCollectionOptionKind?: "upfront" | "deferred_manual" | "instalment_plan" | "flexible_balance";
20
+ selectedCollectionOptionKind?: BookingPaymentCollectionOptionKind;
21
21
  altchaSolution?: string | null;
22
22
  successUrl?: string;
23
23
  cancelUrl?: string;
@@ -3,7 +3,9 @@
3
3
  *
4
4
  * Part of the block API client type surface; re-exported from `../types`.
5
5
  */
6
- export type DirectCheckoutCollectionOptionKind = "upfront" | "deferred_manual" | "instalment_plan" | "flexible_balance";
6
+ import type { BookingPaymentCollectionOptionKind } from "../../../../../../core/src/index";
7
+ /** Every option kind can be requested at checkout. */
8
+ export type DirectCheckoutCollectionOptionKind = BookingPaymentCollectionOptionKind;
7
9
  /** API key auth for SDK sites (bld_live_sk_*) */
8
10
  export type ApiKeyAuth = {
9
11
  type: "api-key";
@@ -1834,7 +1834,14 @@ export declare const runtimeBackedBlockClientEntries: {
1834
1834
  description: string | null;
1835
1835
  priceLabel: string;
1836
1836
  intervalLabel: string;
1837
- actionLabel: string;
1837
+ action: Readonly<{
1838
+ kind: "purchase";
1839
+ label: string;
1840
+ product: import("../..").PurchasablePublicMembershipProduct;
1841
+ }> | Readonly<{
1842
+ kind: "unavailable";
1843
+ label: string;
1844
+ }>;
1838
1845
  }>[];
1839
1846
  }>;
1840
1847
  hydration: Readonly<{
@@ -1883,7 +1890,14 @@ export declare const runtimeBackedBlockClientEntries: {
1883
1890
  description: string | null;
1884
1891
  priceLabel: string;
1885
1892
  intervalLabel: string;
1886
- actionLabel: string;
1893
+ action: Readonly<{
1894
+ kind: "purchase";
1895
+ label: string;
1896
+ product: import("../..").PurchasablePublicMembershipProduct;
1897
+ }> | Readonly<{
1898
+ kind: "unavailable";
1899
+ label: string;
1900
+ }>;
1887
1901
  }>[];
1888
1902
  }>;
1889
1903
  hydration: Readonly<{
@@ -1926,7 +1940,14 @@ export declare const runtimeBackedBlockClientEntries: {
1926
1940
  description: string | null;
1927
1941
  priceLabel: string;
1928
1942
  intervalLabel: string;
1929
- actionLabel: string;
1943
+ action: Readonly<{
1944
+ kind: "purchase";
1945
+ label: string;
1946
+ product: import("../..").PurchasablePublicMembershipProduct;
1947
+ }> | Readonly<{
1948
+ kind: "unavailable";
1949
+ label: string;
1950
+ }>;
1930
1951
  }>[];
1931
1952
  }>;
1932
1953
  hydration: Readonly<{
@@ -1977,7 +1998,14 @@ export declare const runtimeBackedBlockClientEntries: {
1977
1998
  description: string | null;
1978
1999
  priceLabel: string;
1979
2000
  intervalLabel: string;
1980
- actionLabel: string;
2001
+ action: Readonly<{
2002
+ kind: "purchase";
2003
+ label: string;
2004
+ product: import("../..").PurchasablePublicMembershipProduct;
2005
+ }> | Readonly<{
2006
+ kind: "unavailable";
2007
+ label: string;
2008
+ }>;
1981
2009
  }>[];
1982
2010
  }>;
1983
2011
  hydration: Readonly<{
@@ -2026,7 +2054,14 @@ export declare const runtimeBackedBlockClientEntries: {
2026
2054
  description: string | null;
2027
2055
  priceLabel: string;
2028
2056
  intervalLabel: string;
2029
- actionLabel: string;
2057
+ action: Readonly<{
2058
+ kind: "purchase";
2059
+ label: string;
2060
+ product: import("../..").PurchasablePublicMembershipProduct;
2061
+ }> | Readonly<{
2062
+ kind: "unavailable";
2063
+ label: string;
2064
+ }>;
2030
2065
  }>[];
2031
2066
  }>;
2032
2067
  hydration: Readonly<{
@@ -2069,7 +2104,14 @@ export declare const runtimeBackedBlockClientEntries: {
2069
2104
  description: string | null;
2070
2105
  priceLabel: string;
2071
2106
  intervalLabel: string;
2072
- actionLabel: string;
2107
+ action: Readonly<{
2108
+ kind: "purchase";
2109
+ label: string;
2110
+ product: import("../..").PurchasablePublicMembershipProduct;
2111
+ }> | Readonly<{
2112
+ kind: "unavailable";
2113
+ label: string;
2114
+ }>;
2073
2115
  }>[];
2074
2116
  }>;
2075
2117
  hydration: Readonly<{
@@ -933,7 +933,14 @@ export declare const runtimeBackedBlockServerEntries: {
933
933
  description: string | null;
934
934
  priceLabel: string;
935
935
  intervalLabel: string;
936
- actionLabel: string;
936
+ action: Readonly<{
937
+ kind: "purchase";
938
+ label: string;
939
+ product: import("../..").PurchasablePublicMembershipProduct;
940
+ }> | Readonly<{
941
+ kind: "unavailable";
942
+ label: string;
943
+ }>;
937
944
  }>[];
938
945
  }>;
939
946
  hydration: Readonly<{
@@ -982,7 +989,14 @@ export declare const runtimeBackedBlockServerEntries: {
982
989
  description: string | null;
983
990
  priceLabel: string;
984
991
  intervalLabel: string;
985
- actionLabel: string;
992
+ action: Readonly<{
993
+ kind: "purchase";
994
+ label: string;
995
+ product: import("../..").PurchasablePublicMembershipProduct;
996
+ }> | Readonly<{
997
+ kind: "unavailable";
998
+ label: string;
999
+ }>;
986
1000
  }>[];
987
1001
  }>;
988
1002
  hydration: Readonly<{
@@ -1025,7 +1039,14 @@ export declare const runtimeBackedBlockServerEntries: {
1025
1039
  description: string | null;
1026
1040
  priceLabel: string;
1027
1041
  intervalLabel: string;
1028
- actionLabel: string;
1042
+ action: Readonly<{
1043
+ kind: "purchase";
1044
+ label: string;
1045
+ product: import("../..").PurchasablePublicMembershipProduct;
1046
+ }> | Readonly<{
1047
+ kind: "unavailable";
1048
+ label: string;
1049
+ }>;
1029
1050
  }>[];
1030
1051
  }>;
1031
1052
  hydration: Readonly<{
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The moment a booking or registration flow opened, as an ISO timestamp.
3
+ *
4
+ * Payment previews take this as their "now" so the pure view-model builders
5
+ * never read the clock themselves. It's captured once per mount, which keeps
6
+ * memoised previews stable across renders.
7
+ */
8
+ export declare function useBookingNowIso(): string;
@@ -1,3 +1,4 @@
1
+ import type { BookingPaymentCollectionOptionKind } from "../../../../../core/src/index";
1
2
  import type { BlockBookingPaymentTerms } from "../../blocks/shared/bookingPaymentTerms";
2
3
  import { type BlockBookingConsent } from "../../blocks/shared/bookingConsent";
3
4
  import type { AppointmentBookingStatusResponse } from "../api/types";
@@ -70,7 +71,7 @@ export type BookingFormService = Readonly<{
70
71
  categoryId?: string | null;
71
72
  }>;
72
73
  export { projectSelectedAppointmentConsentIntoForm, resolveSelectedAppointmentConsent, type SelectedAppointmentConsent, } from "./booking-form.consent";
73
- export type BookingSelectedCollectionOptionKind = "upfront" | "deferred_manual" | "instalment_plan" | "flexible_balance";
74
+ export type BookingSelectedCollectionOptionKind = BookingPaymentCollectionOptionKind;
74
75
  type BookingCustomFieldData<TCustomFieldId extends string> = Readonly<{
75
76
  [K in TCustomFieldId as K extends BookingFormDataReservedKey ? never : K]?: unknown;
76
77
  }>;
@@ -1,4 +1,4 @@
1
- import type { PublicMembershipProduct, PublicPassProduct, PurchasablePublicPassProduct } from '../../../../blocks/shop';
1
+ import type { PublicMembershipProduct, PublicPassProduct, PurchasablePublicMembershipProduct, PurchasablePublicPassProduct } from '../../../../blocks/shop';
2
2
  import type { PublicProduct } from '../../../../blocks/products/shared';
3
3
  import type { CommerceCartItem, CommerceCheckoutState } from '../../shop-commerce.shared';
4
4
  export declare function formatCommercePrice(cents: number, currency: string): string;
@@ -82,7 +82,14 @@ export type MembershipCardDisplay = Readonly<{
82
82
  description: string | null;
83
83
  priceLabel: string;
84
84
  intervalLabel: string;
85
- actionLabel: string;
85
+ action: Readonly<{
86
+ kind: 'purchase';
87
+ label: string;
88
+ product: PurchasablePublicMembershipProduct;
89
+ }> | Readonly<{
90
+ kind: 'unavailable';
91
+ label: string;
92
+ }>;
86
93
  }>;
87
94
  export type PassesMembershipsDisplay = Readonly<{
88
95
  kind: 'passes-memberships';
@@ -52,7 +52,8 @@ export declare function resolveEventDetailsPresentation(input: EventDetailsPrese
52
52
  eligibleCategoryIds: string[];
53
53
  eligibleCategoryNames: string[];
54
54
  })[];
55
- applicableMemberships: {
55
+ applicableMemberships: ({
56
+ purchaseAvailability: "purchasable";
56
57
  id: string;
57
58
  name: string;
58
59
  description: string | null;
@@ -61,7 +62,18 @@ export declare function resolveEventDetailsPresentation(input: EventDetailsPrese
61
62
  billingInterval: "month" | "year";
62
63
  eligibleCategoryIds: string[];
63
64
  eligibleCategoryNames: string[];
64
- }[];
65
+ } | {
66
+ purchaseAvailability: "display_only";
67
+ unavailabilityReason: "online_payments_unavailable";
68
+ id: string;
69
+ name: string;
70
+ description: string | null;
71
+ price: number;
72
+ currency: string;
73
+ billingInterval: "month" | "year";
74
+ eligibleCategoryIds: string[];
75
+ eligibleCategoryNames: string[];
76
+ })[];
65
77
  showVenue: boolean;
66
78
  showMap: boolean;
67
79
  showOtherDates: boolean;
@@ -33,6 +33,8 @@ type PaymentSelectionStepProps = {
33
33
  onRequestLogin?: () => void;
34
34
  /** Callback to report state to parent (for footer action rendering) */
35
35
  onStateChange?: (state: PaymentStepState) => void;
36
+ /** The registration flow's "now"; payment schedules start from here. */
37
+ nowIso: string;
36
38
  };
37
39
  /**
38
40
  * Payment Selection Step
@@ -3,9 +3,7 @@ import type { BlockBookingPaymentCollectionOption, BlockBookingPaymentTerms } fr
3
3
  import type { EventRegistrationAvailablePaymentOption } from '../../../blocks/event-registration';
4
4
  import { type BookingPaymentOptionViewModel } from '../../shared/bookingPaymentOptions';
5
5
  import type { PaymentSelection } from './types';
6
- type EventDirectPaymentOption = Extract<BlockBookingPaymentCollectionOption, {
7
- kind: 'upfront' | 'deferred_manual' | 'instalment_plan' | 'flexible_balance';
8
- }>;
6
+ type EventDirectPaymentOption = BlockBookingPaymentCollectionOption;
9
7
  export declare function getApprovedDirectPaymentCollectionOptionKinds(paymentOptions: readonly EventRegistrationAvailablePaymentOption[]): readonly DirectCheckoutCollectionOptionKind[];
10
8
  export type EventRegistrationDirectPaymentOption = Omit<BookingPaymentOptionViewModel, 'kind' | 'title'> & Readonly<{
11
9
  kind: Extract<DirectCheckoutCollectionOptionKind, EventDirectPaymentOption['kind']>;
@@ -40,6 +38,8 @@ export declare function buildEventRegistrationPaymentOptionsViewModel(input: Rea
40
38
  totalPriceCents: number;
41
39
  currency: string;
42
40
  startsAt?: string | null;
41
+ /** When the registration is being made; instalment schedules start here. */
42
+ nowIso: string;
43
43
  locale?: string;
44
44
  }>): EventRegistrationPaymentOptionsViewModel;
45
45
  export declare function resolveEventRegistrationDirectPaymentSelection(input: Readonly<{