@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
@@ -956,6 +956,25 @@ var init_booking_refunds = __esmMin((() => {}));
956
956
  //#region ../core/src/booking-instalments.ts
957
957
  var init_booking_instalments = __esmMin((() => {}));
958
958
  //#endregion
959
+ //#region ../core/src/booking-instalment-deposit.ts
960
+ var init_booking_instalment_deposit = __esmMin((() => {}));
961
+ //#endregion
962
+ //#region ../core/src/booking-live-payment-terms.ts
963
+ var init_booking_live_payment_terms = __esmMin((() => {}));
964
+ //#endregion
965
+ //#region ../core/src/booking-payment-options.ts
966
+ /** Automatic instalments and a flexible balance cannot share one booking offer. */
967
+ function validateBookingPaymentOptionKinds(kinds) {
968
+ if (kinds.length === 0) return err$1("no_options");
969
+ const uniqueKinds = new Set(kinds);
970
+ if (uniqueKinds.size !== kinds.length) return err$1("duplicate_kind");
971
+ if (uniqueKinds.has("instalment_plan") && uniqueKinds.has("flexible_balance")) return err$1("incompatible_collection_options");
972
+ return ok$1(void 0);
973
+ }
974
+ var init_booking_payment_options = __esmMin((() => {
975
+ init_result();
976
+ }));
977
+ //#endregion
959
978
  //#region ../core/src/booking-time-zone.ts
960
979
  function isValidBookingTimeZone(timeZone) {
961
980
  const normalized = timeZone.trim();
@@ -2188,6 +2207,9 @@ var init_src$4 = __esmMin((() => {
2188
2207
  init_booking_flexible_balance();
2189
2208
  init_booking_refunds();
2190
2209
  init_booking_instalments();
2210
+ init_booking_instalment_deposit();
2211
+ init_booking_live_payment_terms();
2212
+ init_booking_payment_options();
2191
2213
  init_booking_date_time();
2192
2214
  init_booking_consent();
2193
2215
  init_appointment_service_categories();
@@ -9376,70 +9398,122 @@ var init_richTextSchema = __esmMin((() => {
9376
9398
  }).strict();
9377
9399
  }));
9378
9400
  //#endregion
9379
- //#region ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
9380
- var bookingDepositRefundPolicySchema$1, bookingInstalmentPlanSchema$1, bookingFlexibleBalanceDueDateRuleSchema$1, bookingFlexibleBalanceConfigSchema$1, blockBookingPaymentCollectionOptionSchema, blockBookingPaymentTermsSchema;
9381
- var init_bookingPaymentTerms = __esmMin((() => {
9382
- bookingDepositRefundPolicySchema$1 = z.enum(["refundable", "non_refundable"]);
9383
- bookingInstalmentPlanSchema$1 = z.union([
9384
- z.object({
9401
+ //#region ../core/src/booking-payment-schemas.ts
9402
+ function createInstalmentPlanSchema(object) {
9403
+ return z.discriminatedUnion("kind", [
9404
+ object({
9385
9405
  kind: z.literal("deposit_plus_one_remainder"),
9386
- depositAmountCents: z.number().int().min(0),
9387
- depositRefundability: bookingDepositRefundPolicySchema$1,
9388
- remainderDueCount: z.number().int().positive(),
9389
- intervalUnit: z.enum([
9390
- "day",
9391
- "week",
9392
- "month"
9393
- ])
9406
+ depositAmountCents: nonNegativeIntegerSchema,
9407
+ depositRefundability: depositRefundPolicySchema,
9408
+ remainderDueCount: positiveIntegerSchema,
9409
+ intervalUnit: intervalUnitSchema
9394
9410
  }),
9395
- z.object({
9411
+ object({
9396
9412
  kind: z.literal("deposit_plus_scheduled_instalments"),
9397
- depositAmountCents: z.number().int().min(0),
9398
- depositRefundability: bookingDepositRefundPolicySchema$1,
9399
- instalmentCount: z.number().int().positive(),
9400
- intervalCount: z.number().int().positive(),
9401
- intervalUnit: z.enum([
9402
- "day",
9403
- "week",
9404
- "month"
9405
- ])
9413
+ depositAmountCents: nonNegativeIntegerSchema,
9414
+ depositRefundability: depositRefundPolicySchema,
9415
+ instalmentCount: positiveIntegerSchema,
9416
+ intervalCount: positiveIntegerSchema,
9417
+ intervalUnit: intervalUnitSchema
9406
9418
  }),
9407
- z.object({
9419
+ object({
9408
9420
  kind: z.literal("equal_scheduled_instalments"),
9409
- instalmentCount: z.number().int().positive(),
9410
- intervalCount: z.number().int().positive(),
9411
- intervalUnit: z.enum([
9412
- "day",
9413
- "week",
9414
- "month"
9415
- ])
9421
+ instalmentCount: positiveIntegerSchema,
9422
+ intervalCount: positiveIntegerSchema,
9423
+ intervalUnit: intervalUnitSchema
9416
9424
  })
9417
9425
  ]);
9418
- bookingFlexibleBalanceDueDateRuleSchema$1 = z.union([z.object({
9426
+ }
9427
+ function createFlexibleBalanceSchemas(object) {
9428
+ const dueDateRule = z.discriminatedUnion("kind", [object({
9419
9429
  kind: z.literal("relative_to_start_date"),
9420
- daysBeforeStart: z.number().int().positive()
9421
- }), z.object({
9430
+ daysBeforeStart: positiveIntegerSchema
9431
+ }), object({
9422
9432
  kind: z.literal("fixed_calendar_date"),
9423
9433
  dueAt: z.string().datetime()
9424
9434
  })]);
9425
- bookingFlexibleBalanceConfigSchema$1 = z.object({
9426
- upfrontAmountCents: z.number().int().min(0),
9427
- dueDateRule: bookingFlexibleBalanceDueDateRuleSchema$1,
9428
- depositRefundability: bookingDepositRefundPolicySchema$1
9429
- });
9430
- blockBookingPaymentCollectionOptionSchema = z.union([
9431
- z.object({ kind: z.literal("upfront") }),
9432
- z.object({ kind: z.literal("deferred_manual") }),
9433
- z.object({
9435
+ return {
9436
+ dueDateRule,
9437
+ config: object({
9438
+ upfrontAmountCents: nonNegativeIntegerSchema,
9439
+ dueDateRule,
9440
+ depositRefundability: depositRefundPolicySchema
9441
+ })
9442
+ };
9443
+ }
9444
+ function buildBookingPaymentOptionSchemas(object) {
9445
+ const instalmentPlan = createInstalmentPlanSchema(object);
9446
+ const flexibleBalance = createFlexibleBalanceSchemas(object);
9447
+ const paymentCollectionOption = z.discriminatedUnion("kind", [
9448
+ object({ kind: z.literal("upfront") }),
9449
+ object({ kind: z.literal("deferred_manual") }),
9450
+ object({
9434
9451
  kind: z.literal("instalment_plan"),
9435
- plan: bookingInstalmentPlanSchema$1
9452
+ plan: instalmentPlan
9436
9453
  }),
9437
- z.object({
9454
+ object({
9438
9455
  kind: z.literal("flexible_balance"),
9439
- config: bookingFlexibleBalanceConfigSchema$1
9456
+ config: flexibleBalance.config
9440
9457
  })
9441
9458
  ]);
9442
- blockBookingPaymentTermsSchema = z.object({ allowedOptions: z.array(blockBookingPaymentCollectionOptionSchema).min(1) });
9459
+ const paymentTerms = object({ allowedOptions: z.array(paymentCollectionOption) }).superRefine(({ allowedOptions }, ctx) => {
9460
+ const result = validateBookingPaymentOptionKinds(allowedOptions.map(({ kind }) => kind));
9461
+ if (!result.ok) ctx.addIssue({
9462
+ code: "custom",
9463
+ path: ["allowedOptions"],
9464
+ message: paymentOptionKindsMessages[result.error]
9465
+ });
9466
+ });
9467
+ const paymentOptionsChoice = z.discriminatedUnion("source", [z.strictObject({ source: z.literal("default") }), z.strictObject({
9468
+ source: z.literal("custom"),
9469
+ paymentTerms
9470
+ })]);
9471
+ return {
9472
+ depositRefundPolicy: depositRefundPolicySchema,
9473
+ instalmentPlan,
9474
+ flexibleBalanceDueDateRule: flexibleBalance.dueDateRule,
9475
+ flexibleBalanceConfig: flexibleBalance.config,
9476
+ paymentCollectionOption,
9477
+ paymentTerms,
9478
+ paymentOptionsChoice
9479
+ };
9480
+ }
9481
+ function createBookingPaymentOptionSchemas(mode) {
9482
+ return mode === "strict" ? buildBookingPaymentOptionSchemas(strictObject) : buildBookingPaymentOptionSchemas(stripObject);
9483
+ }
9484
+ var stripObject, strictObject, depositRefundPolicySchema, intervalUnitSchema, nonNegativeIntegerSchema, positiveIntegerSchema, paymentOptionKindsMessages, bookingPaymentOptionSchemas, bookingPaymentTermsSchema;
9485
+ var init_booking_payment_schemas = __esmMin((() => {
9486
+ init_booking_payment_options();
9487
+ stripObject = (shape) => z.object(shape);
9488
+ strictObject = (shape) => z.strictObject(shape);
9489
+ depositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
9490
+ intervalUnitSchema = z.enum([
9491
+ "day",
9492
+ "week",
9493
+ "month"
9494
+ ]);
9495
+ nonNegativeIntegerSchema = z.number().int().nonnegative();
9496
+ positiveIntegerSchema = z.number().int().positive();
9497
+ paymentOptionKindsMessages = {
9498
+ no_options: "Choose at least one way for customers to pay.",
9499
+ duplicate_kind: "Choose each payment option only once.",
9500
+ incompatible_collection_options: "Offer instalments or a deposit with the rest paid later, but not both."
9501
+ };
9502
+ bookingPaymentOptionSchemas = createBookingPaymentOptionSchemas("strip");
9503
+ bookingPaymentOptionSchemas.depositRefundPolicy;
9504
+ bookingPaymentOptionSchemas.instalmentPlan;
9505
+ bookingPaymentOptionSchemas.flexibleBalanceDueDateRule;
9506
+ bookingPaymentOptionSchemas.flexibleBalanceConfig;
9507
+ bookingPaymentOptionSchemas.paymentCollectionOption;
9508
+ bookingPaymentTermsSchema = bookingPaymentOptionSchemas.paymentTerms;
9509
+ bookingPaymentOptionSchemas.paymentOptionsChoice;
9510
+ }));
9511
+ //#endregion
9512
+ //#region ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
9513
+ var blockBookingPaymentTermsSchema;
9514
+ var init_bookingPaymentTerms = __esmMin((() => {
9515
+ init_booking_payment_schemas();
9516
+ blockBookingPaymentTermsSchema = bookingPaymentTermsSchema;
9443
9517
  })), blockBookingConsentSchema, bookingRequirementConsentFieldSchema;
9444
9518
  var init_bookingConsent = __esmMin((() => {
9445
9519
  init_richTextSchema();
@@ -12745,7 +12819,8 @@ var init_clientErrorReporting = __esmMin((() => {
12745
12819
  stack: 8e3,
12746
12820
  digest: 128,
12747
12821
  componentStack: 8e3,
12748
- sourceLocation: 1024
12822
+ sourceLocation: 1024,
12823
+ navigationAgeMs: 6e4
12749
12824
  };
12750
12825
  clientErrorEventSchema = z.enum([
12751
12826
  "dashboard:route-error",
@@ -12762,7 +12837,17 @@ var init_clientErrorReporting = __esmMin((() => {
12762
12837
  stack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.stack).nullable(),
12763
12838
  digest: z.string().max(CLIENT_ERROR_REPORT_LIMITS.digest).nullable(),
12764
12839
  componentStack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.componentStack).nullable(),
12765
- sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
12840
+ sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable(),
12841
+ navigation: z.object({
12842
+ fromPathname: z.string().regex(/^\/[^?#]*$/).max(CLIENT_ERROR_REPORT_LIMITS.pathname),
12843
+ toPathname: z.string().regex(/^\/[^?#]*$/).max(CLIENT_ERROR_REPORT_LIMITS.pathname),
12844
+ type: z.enum([
12845
+ "push",
12846
+ "replace",
12847
+ "traverse"
12848
+ ]),
12849
+ ageMs: z.number().int().min(0).max(CLIENT_ERROR_REPORT_LIMITS.navigationAgeMs)
12850
+ }).strict().nullable().optional()
12766
12851
  }).strict();
12767
12852
  }));
12768
12853
  var init_endpoints = __esmMin((() => {
@@ -36642,7 +36727,7 @@ var init_shared$2 = __esmMin((() => {
36642
36727
  }));
36643
36728
  //#endregion
36644
36729
  //#region ../blocks/src/system/blocks/shop.shared.ts
36645
- var publicPassProductFields, purchasablePublicPassProductSchema, publicPassProductSchema, publicPassProductCollectionSchema, publicMembershipProductSchema, publicMembershipProductCollectionSchema;
36730
+ var publicPassProductFields, purchasablePublicPassProductSchema, publicPassProductSchema, publicPassProductCollectionSchema, publicMembershipProductFields, purchasablePublicMembershipProductSchema, publicMembershipProductSchema, publicMembershipProductCollectionSchema;
36646
36731
  var init_shop_shared = __esmMin((() => {
36647
36732
  publicPassProductFields = {
36648
36733
  id: z.string(),
@@ -36667,7 +36752,7 @@ var init_shop_shared = __esmMin((() => {
36667
36752
  unavailabilityReason: z.literal("online_payments_unavailable")
36668
36753
  })]);
36669
36754
  publicPassProductCollectionSchema = z.object({ passes: z.array(publicPassProductSchema) });
36670
- publicMembershipProductSchema = z.object({
36755
+ publicMembershipProductFields = {
36671
36756
  id: z.string(),
36672
36757
  name: z.string(),
36673
36758
  description: z.string().nullable(),
@@ -36676,7 +36761,16 @@ var init_shop_shared = __esmMin((() => {
36676
36761
  billingInterval: z.enum(["month", "year"]),
36677
36762
  eligibleCategoryIds: z.array(z.string()),
36678
36763
  eligibleCategoryNames: z.array(z.string())
36764
+ };
36765
+ purchasablePublicMembershipProductSchema = z.object({
36766
+ ...publicMembershipProductFields,
36767
+ purchaseAvailability: z.literal("purchasable")
36679
36768
  });
36769
+ publicMembershipProductSchema = z.discriminatedUnion("purchaseAvailability", [purchasablePublicMembershipProductSchema, z.object({
36770
+ ...publicMembershipProductFields,
36771
+ purchaseAvailability: z.literal("display_only"),
36772
+ unavailabilityReason: z.literal("online_payments_unavailable")
36773
+ })]);
36680
36774
  publicMembershipProductCollectionSchema = z.object({ memberships: z.array(publicMembershipProductSchema) });
36681
36775
  }));
36682
36776
  //#endregion
@@ -42759,7 +42853,7 @@ function buildPassesMembershipsDisplay(options) {
42759
42853
  product: pass
42760
42854
  } : {
42761
42855
  kind: "unavailable",
42762
- label: "Online purchasing coming soon."
42856
+ label: "Online purchasing is unavailable."
42763
42857
  }
42764
42858
  };
42765
42859
  });
@@ -42769,7 +42863,14 @@ function buildPassesMembershipsDisplay(options) {
42769
42863
  description: options.showDescriptions ? membership.description : null,
42770
42864
  priceLabel: formatCommercePrice(membership.price, membership.currency),
42771
42865
  intervalLabel: formatInterval(membership.billingInterval),
42772
- actionLabel: options.membershipActionLabel
42866
+ action: membership.purchaseAvailability === "purchasable" ? {
42867
+ kind: "purchase",
42868
+ label: options.membershipActionLabel,
42869
+ product: membership
42870
+ } : {
42871
+ kind: "unavailable",
42872
+ label: "Online purchasing is unavailable."
42873
+ }
42773
42874
  }));
42774
42875
  return {
42775
42876
  kind: "passes-memberships",
@@ -43017,7 +43118,14 @@ var init_shop_interactive = __esmMin((() => {
43017
43118
  description: z.string().nullable(),
43018
43119
  priceLabel: z.string(),
43019
43120
  intervalLabel: z.string(),
43020
- actionLabel: z.string()
43121
+ action: z.discriminatedUnion("kind", [z.object({
43122
+ kind: z.literal("purchase"),
43123
+ label: z.string(),
43124
+ product: purchasablePublicMembershipProductSchema
43125
+ }), z.object({
43126
+ kind: z.literal("unavailable"),
43127
+ label: z.string()
43128
+ })])
43021
43129
  });
43022
43130
  passesMembershipsDisplaySchema = z.object({
43023
43131
  kind: z.literal("passes-memberships"),
@@ -48367,6 +48475,7 @@ var init_customerMembershipOutcomes = __esmMin((() => {
48367
48475
  "refund_failed"
48368
48476
  ];
48369
48477
  CANONICAL_ADMIN_REFUND_FAILURE_CODES = [
48478
+ "refund_blocked_by_live_payment_terms",
48370
48479
  ...CANONICAL_REFUND_PLANNER_ERROR_CODES,
48371
48480
  "payment_intent_not_found",
48372
48481
  "stripe_error",
@@ -48383,6 +48492,7 @@ var init_customerMembershipOutcomes = __esmMin((() => {
48383
48492
  var init_bookingRefundOutcomes = __esmMin((() => {
48384
48493
  init_customerMembershipOutcomes();
48385
48494
  STANDARD_LINE_ITEM_REFUND_INVALID_CODES = [
48495
+ "refund_blocked_by_live_payment_terms",
48386
48496
  "missing_amount",
48387
48497
  "invalid_amount",
48388
48498
  "amount_exceeds_remaining",
@@ -48941,68 +49051,6 @@ var init_event_visibility = __esmMin((() => {
48941
49051
  EVENT_VISIBILITY_VALUES = ["public", "unlisted"];
48942
49052
  EVENT_VISIBILITY_ERROR_MESSAGE = "visibility must be 'public' or 'unlisted'";
48943
49053
  z.enum(EVENT_VISIBILITY_VALUES, { error: EVENT_VISIBILITY_ERROR_MESSAGE });
48944
- })), bookingDepositRefundPolicySchema, bookingInstalmentPlanSchema, bookingFlexibleBalanceDueDateRuleSchema, bookingFlexibleBalanceConfigSchema;
48945
- var init_bookingPaymentTermSchemas = __esmMin((() => {
48946
- bookingDepositRefundPolicySchema = z.enum(["refundable", "non_refundable"]);
48947
- bookingInstalmentPlanSchema = z.discriminatedUnion("kind", [
48948
- z.object({
48949
- kind: z.literal("deposit_plus_one_remainder"),
48950
- depositAmountCents: z.number().int().nonnegative(),
48951
- depositRefundability: bookingDepositRefundPolicySchema,
48952
- remainderDueCount: z.number().int().positive(),
48953
- intervalUnit: z.enum([
48954
- "day",
48955
- "week",
48956
- "month"
48957
- ])
48958
- }),
48959
- z.object({
48960
- kind: z.literal("deposit_plus_scheduled_instalments"),
48961
- depositAmountCents: z.number().int().nonnegative(),
48962
- depositRefundability: bookingDepositRefundPolicySchema,
48963
- instalmentCount: z.number().int().positive(),
48964
- intervalCount: z.number().int().positive(),
48965
- intervalUnit: z.enum([
48966
- "day",
48967
- "week",
48968
- "month"
48969
- ])
48970
- }),
48971
- z.object({
48972
- kind: z.literal("equal_scheduled_instalments"),
48973
- instalmentCount: z.number().int().positive(),
48974
- intervalCount: z.number().int().positive(),
48975
- intervalUnit: z.enum([
48976
- "day",
48977
- "week",
48978
- "month"
48979
- ])
48980
- })
48981
- ]);
48982
- bookingFlexibleBalanceDueDateRuleSchema = z.discriminatedUnion("kind", [z.object({
48983
- kind: z.literal("relative_to_start_date"),
48984
- daysBeforeStart: z.number().int().positive()
48985
- }), z.object({
48986
- kind: z.literal("fixed_calendar_date"),
48987
- dueAt: z.string().datetime()
48988
- })]);
48989
- bookingFlexibleBalanceConfigSchema = z.object({
48990
- upfrontAmountCents: z.number().int().nonnegative(),
48991
- dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
48992
- depositRefundability: bookingDepositRefundPolicySchema
48993
- });
48994
- z.discriminatedUnion("kind", [
48995
- z.object({ kind: z.literal("upfront") }),
48996
- z.object({ kind: z.literal("deferred_manual") }),
48997
- z.object({
48998
- kind: z.literal("instalment_plan"),
48999
- plan: bookingInstalmentPlanSchema
49000
- }),
49001
- z.object({
49002
- kind: z.literal("flexible_balance"),
49003
- config: bookingFlexibleBalanceConfigSchema
49004
- })
49005
- ]);
49006
49054
  }));
49007
49055
  //#endregion
49008
49056
  //#region ../api/src/emailSettings.ts
@@ -49246,7 +49294,6 @@ var init_src = __esmMin((() => {
49246
49294
  init_routes();
49247
49295
  init_appointmentServiceContracts();
49248
49296
  init_event_visibility();
49249
- init_bookingPaymentTermSchemas();
49250
49297
  init_bookingRecords();
49251
49298
  init_bookingPeople();
49252
49299
  init_emailSettings();