@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
@@ -1477,6 +1477,16 @@ function isRecord$41(value) {
1477
1477
  return typeof value === "object" && value !== null && !Array.isArray(value);
1478
1478
  }
1479
1479
  //#endregion
1480
+ //#region ../core/src/booking-payment-options.ts
1481
+ /** Automatic instalments and a flexible balance cannot share one booking offer. */
1482
+ function validateBookingPaymentOptionKinds(kinds) {
1483
+ if (kinds.length === 0) return err$3("no_options");
1484
+ const uniqueKinds = new Set(kinds);
1485
+ if (uniqueKinds.size !== kinds.length) return err$3("duplicate_kind");
1486
+ if (uniqueKinds.has("instalment_plan") && uniqueKinds.has("flexible_balance")) return err$3("incompatible_collection_options");
1487
+ return ok$3(void 0);
1488
+ }
1489
+ //#endregion
1480
1490
  //#region ../core/src/booking-time-zone.ts
1481
1491
  const TIME_ZONE_VALIDITY_CACHE_LIMIT = 100;
1482
1492
  const timeZoneValidityCache = /* @__PURE__ */ new Map();
@@ -13358,68 +13368,113 @@ function createRichTextDoc(paragraphs) {
13358
13368
  };
13359
13369
  }
13360
13370
  //#endregion
13361
- //#region ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
13362
- const bookingDepositRefundPolicySchema$1 = z$1.enum(["refundable", "non_refundable"]);
13363
- const bookingInstalmentPlanSchema$1 = z$1.union([
13364
- z$1.object({
13365
- kind: z$1.literal("deposit_plus_one_remainder"),
13366
- depositAmountCents: z$1.number().int().min(0),
13367
- depositRefundability: bookingDepositRefundPolicySchema$1,
13368
- remainderDueCount: z$1.number().int().positive(),
13369
- intervalUnit: z$1.enum([
13370
- "day",
13371
- "week",
13372
- "month"
13373
- ])
13374
- }),
13375
- z$1.object({
13376
- kind: z$1.literal("deposit_plus_scheduled_instalments"),
13377
- depositAmountCents: z$1.number().int().min(0),
13378
- depositRefundability: bookingDepositRefundPolicySchema$1,
13379
- instalmentCount: z$1.number().int().positive(),
13380
- intervalCount: z$1.number().int().positive(),
13381
- intervalUnit: z$1.enum([
13382
- "day",
13383
- "week",
13384
- "month"
13385
- ])
13386
- }),
13387
- z$1.object({
13388
- kind: z$1.literal("equal_scheduled_instalments"),
13389
- instalmentCount: z$1.number().int().positive(),
13390
- intervalCount: z$1.number().int().positive(),
13391
- intervalUnit: z$1.enum([
13392
- "day",
13393
- "week",
13394
- "month"
13395
- ])
13396
- })
13397
- ]);
13398
- const bookingFlexibleBalanceDueDateRuleSchema$1 = z$1.union([z$1.object({
13399
- kind: z$1.literal("relative_to_start_date"),
13400
- daysBeforeStart: z$1.number().int().positive()
13401
- }), z$1.object({
13402
- kind: z$1.literal("fixed_calendar_date"),
13403
- dueAt: z$1.string().datetime()
13404
- })]);
13405
- const bookingFlexibleBalanceConfigSchema$1 = z$1.object({
13406
- upfrontAmountCents: z$1.number().int().min(0),
13407
- dueDateRule: bookingFlexibleBalanceDueDateRuleSchema$1,
13408
- depositRefundability: bookingDepositRefundPolicySchema$1
13409
- });
13410
- const blockBookingPaymentCollectionOptionSchema = z$1.union([
13411
- z$1.object({ kind: z$1.literal("upfront") }),
13412
- z$1.object({ kind: z$1.literal("deferred_manual") }),
13413
- z$1.object({
13414
- kind: z$1.literal("instalment_plan"),
13415
- plan: bookingInstalmentPlanSchema$1
13416
- }),
13417
- z$1.object({
13418
- kind: z$1.literal("flexible_balance"),
13419
- config: bookingFlexibleBalanceConfigSchema$1
13420
- })
13371
+ //#region ../core/src/booking-payment-schemas.ts
13372
+ const stripObject = (shape) => z$1.object(shape);
13373
+ const strictObject = (shape) => z$1.strictObject(shape);
13374
+ const depositRefundPolicySchema = z$1.enum(["refundable", "non_refundable"]);
13375
+ const intervalUnitSchema = z$1.enum([
13376
+ "day",
13377
+ "week",
13378
+ "month"
13421
13379
  ]);
13422
- const blockBookingPaymentTermsSchema = z$1.object({ allowedOptions: z$1.array(blockBookingPaymentCollectionOptionSchema).min(1) });
13380
+ const nonNegativeIntegerSchema = z$1.number().int().nonnegative();
13381
+ const positiveIntegerSchema = z$1.number().int().positive();
13382
+ function createInstalmentPlanSchema(object) {
13383
+ return z$1.discriminatedUnion("kind", [
13384
+ object({
13385
+ kind: z$1.literal("deposit_plus_one_remainder"),
13386
+ depositAmountCents: nonNegativeIntegerSchema,
13387
+ depositRefundability: depositRefundPolicySchema,
13388
+ remainderDueCount: positiveIntegerSchema,
13389
+ intervalUnit: intervalUnitSchema
13390
+ }),
13391
+ object({
13392
+ kind: z$1.literal("deposit_plus_scheduled_instalments"),
13393
+ depositAmountCents: nonNegativeIntegerSchema,
13394
+ depositRefundability: depositRefundPolicySchema,
13395
+ instalmentCount: positiveIntegerSchema,
13396
+ intervalCount: positiveIntegerSchema,
13397
+ intervalUnit: intervalUnitSchema
13398
+ }),
13399
+ object({
13400
+ kind: z$1.literal("equal_scheduled_instalments"),
13401
+ instalmentCount: positiveIntegerSchema,
13402
+ intervalCount: positiveIntegerSchema,
13403
+ intervalUnit: intervalUnitSchema
13404
+ })
13405
+ ]);
13406
+ }
13407
+ function createFlexibleBalanceSchemas(object) {
13408
+ const dueDateRule = z$1.discriminatedUnion("kind", [object({
13409
+ kind: z$1.literal("relative_to_start_date"),
13410
+ daysBeforeStart: positiveIntegerSchema
13411
+ }), object({
13412
+ kind: z$1.literal("fixed_calendar_date"),
13413
+ dueAt: z$1.string().datetime()
13414
+ })]);
13415
+ return {
13416
+ dueDateRule,
13417
+ config: object({
13418
+ upfrontAmountCents: nonNegativeIntegerSchema,
13419
+ dueDateRule,
13420
+ depositRefundability: depositRefundPolicySchema
13421
+ })
13422
+ };
13423
+ }
13424
+ const paymentOptionKindsMessages = {
13425
+ no_options: "Choose at least one way for customers to pay.",
13426
+ duplicate_kind: "Choose each payment option only once.",
13427
+ incompatible_collection_options: "Offer instalments or a deposit with the rest paid later, but not both."
13428
+ };
13429
+ function buildBookingPaymentOptionSchemas(object) {
13430
+ const instalmentPlan = createInstalmentPlanSchema(object);
13431
+ const flexibleBalance = createFlexibleBalanceSchemas(object);
13432
+ const paymentCollectionOption = z$1.discriminatedUnion("kind", [
13433
+ object({ kind: z$1.literal("upfront") }),
13434
+ object({ kind: z$1.literal("deferred_manual") }),
13435
+ object({
13436
+ kind: z$1.literal("instalment_plan"),
13437
+ plan: instalmentPlan
13438
+ }),
13439
+ object({
13440
+ kind: z$1.literal("flexible_balance"),
13441
+ config: flexibleBalance.config
13442
+ })
13443
+ ]);
13444
+ const paymentTerms = object({ allowedOptions: z$1.array(paymentCollectionOption) }).superRefine(({ allowedOptions }, ctx) => {
13445
+ const result = validateBookingPaymentOptionKinds(allowedOptions.map(({ kind }) => kind));
13446
+ if (!result.ok) ctx.addIssue({
13447
+ code: "custom",
13448
+ path: ["allowedOptions"],
13449
+ message: paymentOptionKindsMessages[result.error]
13450
+ });
13451
+ });
13452
+ const paymentOptionsChoice = z$1.discriminatedUnion("source", [z$1.strictObject({ source: z$1.literal("default") }), z$1.strictObject({
13453
+ source: z$1.literal("custom"),
13454
+ paymentTerms
13455
+ })]);
13456
+ return {
13457
+ depositRefundPolicy: depositRefundPolicySchema,
13458
+ instalmentPlan,
13459
+ flexibleBalanceDueDateRule: flexibleBalance.dueDateRule,
13460
+ flexibleBalanceConfig: flexibleBalance.config,
13461
+ paymentCollectionOption,
13462
+ paymentTerms,
13463
+ paymentOptionsChoice
13464
+ };
13465
+ }
13466
+ function createBookingPaymentOptionSchemas(mode) {
13467
+ return mode === "strict" ? buildBookingPaymentOptionSchemas(strictObject) : buildBookingPaymentOptionSchemas(stripObject);
13468
+ }
13469
+ const bookingPaymentOptionSchemas = createBookingPaymentOptionSchemas("strip");
13470
+ bookingPaymentOptionSchemas.depositRefundPolicy;
13471
+ bookingPaymentOptionSchemas.instalmentPlan;
13472
+ bookingPaymentOptionSchemas.flexibleBalanceDueDateRule;
13473
+ bookingPaymentOptionSchemas.flexibleBalanceConfig;
13474
+ bookingPaymentOptionSchemas.paymentCollectionOption;
13475
+ const bookingPaymentTermsSchema = bookingPaymentOptionSchemas.paymentTerms;
13476
+ bookingPaymentOptionSchemas.paymentOptionsChoice;
13477
+ const blockBookingPaymentTermsSchema = bookingPaymentTermsSchema;
13423
13478
  const blockBookingConsentSchema = z$1.object({
13424
13479
  requirementId: z$1.string(),
13425
13480
  title: z$1.string(),
@@ -14028,7 +14083,7 @@ const publicPassProductCollectionSchema = z$1.object({ passes: z$1.array(publicP
14028
14083
  /**
14029
14084
  * Public membership product for shop display
14030
14085
  */
14031
- const publicMembershipProductSchema = z$1.object({
14086
+ const publicMembershipProductFields = {
14032
14087
  id: z$1.string(),
14033
14088
  name: z$1.string(),
14034
14089
  description: z$1.string().nullable(),
@@ -14037,7 +14092,16 @@ const publicMembershipProductSchema = z$1.object({
14037
14092
  billingInterval: z$1.enum(["month", "year"]),
14038
14093
  eligibleCategoryIds: z$1.array(z$1.string()),
14039
14094
  eligibleCategoryNames: z$1.array(z$1.string())
14095
+ };
14096
+ const purchasablePublicMembershipProductSchema = z$1.object({
14097
+ ...publicMembershipProductFields,
14098
+ purchaseAvailability: z$1.literal("purchasable")
14040
14099
  });
14100
+ const publicMembershipProductSchema = z$1.discriminatedUnion("purchaseAvailability", [purchasablePublicMembershipProductSchema, z$1.object({
14101
+ ...publicMembershipProductFields,
14102
+ purchaseAvailability: z$1.literal("display_only"),
14103
+ unavailabilityReason: z$1.literal("online_payments_unavailable")
14104
+ })]);
14041
14105
  const publicMembershipProductCollectionSchema = z$1.object({ memberships: z$1.array(publicMembershipProductSchema) });
14042
14106
  //#endregion
14043
14107
  //#region ../blocks/src/system/node/schema.ts
@@ -29257,6 +29321,13 @@ const STRUCTURED_KEYS = /* @__PURE__ */ new Set([
29257
29321
  "domainOperationProvider",
29258
29322
  "domainOperationError",
29259
29323
  "domainOperationMetadata",
29324
+ "previewDecision",
29325
+ "previewOutcome",
29326
+ "previewTokenTtlBucket",
29327
+ "previewRefreshCookiePresent",
29328
+ "previewDashboardStatus",
29329
+ "previewProviderResult",
29330
+ "previewUpstreamStatus",
29260
29331
  "durationMs",
29261
29332
  "duration",
29262
29333
  "status",
@@ -35230,7 +35301,7 @@ function buildPassesMembershipsDisplay(options) {
35230
35301
  product: pass
35231
35302
  } : {
35232
35303
  kind: "unavailable",
35233
- label: "Online purchasing coming soon."
35304
+ label: "Online purchasing is unavailable."
35234
35305
  }
35235
35306
  };
35236
35307
  });
@@ -35240,7 +35311,14 @@ function buildPassesMembershipsDisplay(options) {
35240
35311
  description: options.showDescriptions ? membership.description : null,
35241
35312
  priceLabel: formatCommercePrice(membership.price, membership.currency),
35242
35313
  intervalLabel: formatInterval(membership.billingInterval),
35243
- actionLabel: options.membershipActionLabel
35314
+ action: membership.purchaseAvailability === "purchasable" ? {
35315
+ kind: "purchase",
35316
+ label: options.membershipActionLabel,
35317
+ product: membership
35318
+ } : {
35319
+ kind: "unavailable",
35320
+ label: "Online purchasing is unavailable."
35321
+ }
35244
35322
  }));
35245
35323
  return {
35246
35324
  kind: "passes-memberships",
@@ -35460,7 +35538,14 @@ const membershipCardDisplaySchema = z$1.object({
35460
35538
  description: z$1.string().nullable(),
35461
35539
  priceLabel: z$1.string(),
35462
35540
  intervalLabel: z$1.string(),
35463
- actionLabel: z$1.string()
35541
+ action: z$1.discriminatedUnion("kind", [z$1.object({
35542
+ kind: z$1.literal("purchase"),
35543
+ label: z$1.string(),
35544
+ product: purchasablePublicMembershipProductSchema
35545
+ }), z$1.object({
35546
+ kind: z$1.literal("unavailable"),
35547
+ label: z$1.string()
35548
+ })])
35464
35549
  });
35465
35550
  const passesMembershipsDisplaySchema = z$1.object({
35466
35551
  kind: z$1.literal("passes-memberships"),
@@ -38474,7 +38559,8 @@ const CLIENT_ERROR_REPORT_LIMITS = {
38474
38559
  stack: 8e3,
38475
38560
  digest: 128,
38476
38561
  componentStack: 8e3,
38477
- sourceLocation: 1024
38562
+ sourceLocation: 1024,
38563
+ navigationAgeMs: 6e4
38478
38564
  };
38479
38565
  const clientErrorEventSchema = z$1.enum([
38480
38566
  "dashboard:route-error",
@@ -38491,7 +38577,17 @@ z$1.object({
38491
38577
  stack: z$1.string().max(CLIENT_ERROR_REPORT_LIMITS.stack).nullable(),
38492
38578
  digest: z$1.string().max(CLIENT_ERROR_REPORT_LIMITS.digest).nullable(),
38493
38579
  componentStack: z$1.string().max(CLIENT_ERROR_REPORT_LIMITS.componentStack).nullable(),
38494
- sourceLocation: z$1.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
38580
+ sourceLocation: z$1.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable(),
38581
+ navigation: z$1.object({
38582
+ fromPathname: z$1.string().regex(/^\/[^?#]*$/).max(CLIENT_ERROR_REPORT_LIMITS.pathname),
38583
+ toPathname: z$1.string().regex(/^\/[^?#]*$/).max(CLIENT_ERROR_REPORT_LIMITS.pathname),
38584
+ type: z$1.enum([
38585
+ "push",
38586
+ "replace",
38587
+ "traverse"
38588
+ ]),
38589
+ ageMs: z$1.number().int().min(0).max(CLIENT_ERROR_REPORT_LIMITS.navigationAgeMs)
38590
+ }).strict().nullable().optional()
38495
38591
  }).strict();
38496
38592
  const API_ENDPOINTS$1 = {
38497
38593
  ...SITE_LIFECYCLE_ENDPOINT_DEFINITIONS,
@@ -42248,24 +42344,6 @@ const API_ENDPOINTS$1 = {
42248
42344
  "server:internal_error"
42249
42345
  ]
42250
42346
  },
42251
- syncBookingPassWithStripe: {
42252
- path: "/sites/{siteId}/bookings/passes/{passId}/sync-stripe",
42253
- method: "POST",
42254
- tags: [
42255
- "site-{siteId}",
42256
- "passes-{siteId}",
42257
- "pass-{passId}"
42258
- ],
42259
- auth: "user",
42260
- responseKind: "json",
42261
- errors: [
42262
- "validation:invalid_input",
42263
- "auth:forbidden",
42264
- "resource:not_found",
42265
- "resource:conflict",
42266
- "server:internal_error"
42267
- ]
42268
- },
42269
42347
  refundCustomerPass: {
42270
42348
  path: "/sites/{siteId}/bookings/customer-passes/{customerPassId}/refund",
42271
42349
  method: "POST",
@@ -43729,7 +43807,7 @@ const API_ENDPOINTS$1 = {
43729
43807
  ]
43730
43808
  },
43731
43809
  cancelFlexibleBalanceBookingDueToNonPayment: {
43732
- path: "/sites/{siteId}/shop/orders/{orderId}/items/{orderItemId}/flexible-balance/cancel-due-to-non-payment",
43810
+ path: "/sites/{siteId}/shop/orders/{orderId}/flexible-balance/cancel-due-to-non-payment",
43733
43811
  method: "POST",
43734
43812
  auth: "user",
43735
43813
  responseKind: "json",
@@ -43740,7 +43818,7 @@ const API_ENDPOINTS$1 = {
43740
43818
  ]
43741
43819
  },
43742
43820
  reopenFlexibleBalanceBookingAfterNonPaymentCancellation: {
43743
- path: "/sites/{siteId}/shop/orders/{orderId}/items/{orderItemId}/flexible-balance/reopen",
43821
+ path: "/sites/{siteId}/shop/orders/{orderId}/flexible-balance/reopen",
43744
43822
  method: "POST",
43745
43823
  auth: "user",
43746
43824
  responseKind: "json",
@@ -55285,11 +55363,11 @@ function ShopSSR({ blockId, siteId, apiBaseUrl, stage, children, checkoutEndpoin
55285
55363
  }, pass.id)),
55286
55364
  membershipCards: render.display.memberships.map((membership) => /* @__PURE__ */ jsx(MembershipCardView, {
55287
55365
  display: membership,
55288
- action: /* @__PURE__ */ jsx(ThemedButton, {
55366
+ action: membership.action.kind === "unavailable" ? /* @__PURE__ */ jsx(PassPurchaseUnavailable, { label: membership.action.label }) : /* @__PURE__ */ jsx(ThemedButton, {
55289
55367
  type: "button",
55290
55368
  variant: render.hydration.buttonVariant,
55291
55369
  size: "md",
55292
- label: membership.actionLabel,
55370
+ label: membership.action.label,
55293
55371
  disabled: true,
55294
55372
  "aria-disabled": "true"
55295
55373
  })
@@ -85799,14 +85877,14 @@ async function parseSuccessResponse(endpoint, response, config) {
85799
85877
  default: return buildSuccessEnvelope(void 0, requestId);
85800
85878
  }
85801
85879
  }
85802
- function createRawCMSClient(headers = {}, baseUrl) {
85880
+ function createRawCMSClient(getHeaders = () => ({}), baseUrl) {
85803
85881
  return ({ endpoint, body, params, options = {} }) => {
85804
85882
  const plan = buildApiRequestPlan({
85805
85883
  endpoint,
85806
85884
  body,
85807
85885
  params,
85808
85886
  options,
85809
- headers,
85887
+ headers: getHeaders(),
85810
85888
  baseUrl: normalizeCmsApiBaseUrl(baseUrl ?? resolveApiBaseUrl()),
85811
85889
  sdkVersion
85812
85890
  });
@@ -85912,13 +85990,13 @@ function createParsedClient(rawClient) {
85912
85990
  };
85913
85991
  }
85914
85992
  function createCMSClient(headers = {}, baseUrl) {
85915
- return createParsedClient(createRawCMSClient(headers, baseUrl));
85993
+ return createParsedClient(createRawCMSClient(() => headers, baseUrl));
85916
85994
  }
85917
85995
  function createInternalAPIClient(baseUrl) {
85918
85996
  return createCMSClient({}, baseUrl);
85919
85997
  }
85920
85998
  function createBearerAPIClient(token, baseUrl) {
85921
- return createCMSClient({ Authorization: `Bearer ${token}` }, baseUrl);
85999
+ return createParsedClient(createRawCMSClient(() => ({ Authorization: `Bearer ${typeof token === "function" ? token() : token}` }), baseUrl));
85922
86000
  }
85923
86001
  //#endregion
85924
86002
  //#region ../api/src/accountApi.ts
@@ -86145,6 +86223,7 @@ const CANONICAL_REFUND_PLANNER_ERROR_CODES = [
86145
86223
  "refund_failed"
86146
86224
  ];
86147
86225
  const CANONICAL_ADMIN_REFUND_FAILURE_CODES = [
86226
+ "refund_blocked_by_live_payment_terms",
86148
86227
  ...CANONICAL_REFUND_PLANNER_ERROR_CODES,
86149
86228
  "payment_intent_not_found",
86150
86229
  "stripe_error",
@@ -86160,6 +86239,7 @@ const CANONICAL_ADMIN_REFUND_FAILURE_CODES = [
86160
86239
  //#endregion
86161
86240
  //#region ../api/src/bookingRefundOutcomes.ts
86162
86241
  const STANDARD_LINE_ITEM_REFUND_INVALID_CODES = [
86242
+ "refund_blocked_by_live_payment_terms",
86163
86243
  "missing_amount",
86164
86244
  "invalid_amount",
86165
86245
  "amount_exceeds_remaining",
@@ -86567,68 +86647,6 @@ function parsePublicProductCategorySelector(value) {
86567
86647
  }
86568
86648
  z$1.enum(["public", "unlisted"], { error: "visibility must be 'public' or 'unlisted'" });
86569
86649
  //#endregion
86570
- //#region ../api/src/bookingPaymentTermSchemas.ts
86571
- const bookingDepositRefundPolicySchema = z$1.enum(["refundable", "non_refundable"]);
86572
- const bookingInstalmentPlanSchema = z$1.discriminatedUnion("kind", [
86573
- z$1.object({
86574
- kind: z$1.literal("deposit_plus_one_remainder"),
86575
- depositAmountCents: z$1.number().int().nonnegative(),
86576
- depositRefundability: bookingDepositRefundPolicySchema,
86577
- remainderDueCount: z$1.number().int().positive(),
86578
- intervalUnit: z$1.enum([
86579
- "day",
86580
- "week",
86581
- "month"
86582
- ])
86583
- }),
86584
- z$1.object({
86585
- kind: z$1.literal("deposit_plus_scheduled_instalments"),
86586
- depositAmountCents: z$1.number().int().nonnegative(),
86587
- depositRefundability: bookingDepositRefundPolicySchema,
86588
- instalmentCount: z$1.number().int().positive(),
86589
- intervalCount: z$1.number().int().positive(),
86590
- intervalUnit: z$1.enum([
86591
- "day",
86592
- "week",
86593
- "month"
86594
- ])
86595
- }),
86596
- z$1.object({
86597
- kind: z$1.literal("equal_scheduled_instalments"),
86598
- instalmentCount: z$1.number().int().positive(),
86599
- intervalCount: z$1.number().int().positive(),
86600
- intervalUnit: z$1.enum([
86601
- "day",
86602
- "week",
86603
- "month"
86604
- ])
86605
- })
86606
- ]);
86607
- const bookingFlexibleBalanceDueDateRuleSchema = z$1.discriminatedUnion("kind", [z$1.object({
86608
- kind: z$1.literal("relative_to_start_date"),
86609
- daysBeforeStart: z$1.number().int().positive()
86610
- }), z$1.object({
86611
- kind: z$1.literal("fixed_calendar_date"),
86612
- dueAt: z$1.string().datetime()
86613
- })]);
86614
- const bookingFlexibleBalanceConfigSchema = z$1.object({
86615
- upfrontAmountCents: z$1.number().int().nonnegative(),
86616
- dueDateRule: bookingFlexibleBalanceDueDateRuleSchema,
86617
- depositRefundability: bookingDepositRefundPolicySchema
86618
- });
86619
- z$1.discriminatedUnion("kind", [
86620
- z$1.object({ kind: z$1.literal("upfront") }),
86621
- z$1.object({ kind: z$1.literal("deferred_manual") }),
86622
- z$1.object({
86623
- kind: z$1.literal("instalment_plan"),
86624
- plan: bookingInstalmentPlanSchema
86625
- }),
86626
- z$1.object({
86627
- kind: z$1.literal("flexible_balance"),
86628
- config: bookingFlexibleBalanceConfigSchema
86629
- })
86630
- ]);
86631
- //#endregion
86632
86650
  //#region ../api/src/navigationMenuValidation.ts
86633
86651
  function hasChildren(item) {
86634
86652
  return Array.isArray(item.children) && item.children.length > 0;
@@ -91746,7 +91764,7 @@ var CircuitOpenError = class extends Error {
91746
91764
  * 1. This constant
91747
91765
  * 2. The "version" field in package.json
91748
91766
  */
91749
- const SDK_VERSION = "0.148.0";
91767
+ const SDK_VERSION = "0.149.0";
91750
91768
  //#endregion
91751
91769
  //#region src/next/content-load-failure.ts
91752
91770
  const SdkContentLoadError = RiverbankContentLoadError;