@riverbankcms/sdk 0.89.1 → 0.90.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 (161) hide show
  1. package/README.md +27 -4
  2. package/dist/{PreviewEditorSidebar-JDR64FEC.mjs → PreviewEditorSidebar-KVXNF3VW.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-67TMJMAF.mjs → PreviewEditorUI-J3JN5Z7T.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-UBL6MSNP.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +216 -0
  6. package/dist/_dts/altcha/src/AltchaWidget.d.ts +1 -1
  7. package/dist/_dts/api/src/bookingOperations.d.ts +2 -0
  8. package/dist/_dts/api/src/bookingRecords.d.ts +4 -2
  9. package/dist/_dts/api/src/bookings.d.ts +3 -1
  10. package/dist/_dts/api/src/index.d.ts +6 -5
  11. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +15 -5
  12. package/dist/_dts/api/src/request.d.ts +21 -0
  13. package/dist/_dts/api/src/sdk-event-upsert.d.ts +3 -1
  14. package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
  15. package/dist/_dts/api/src/types.d.ts +3 -1
  16. package/dist/_dts/api/src/url.d.ts +6 -3
  17. package/dist/_dts/block-form/src/utils/visibleWhen.d.ts +1 -0
  18. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailCard.d.ts +5 -1
  19. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailGrid.d.ts +9 -1
  20. package/dist/_dts/block-form/src/widgets/RepeaterField/components/index.d.ts +1 -0
  21. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +7 -11
  22. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +6 -0
  23. package/dist/_dts/blocks/src/index.d.ts +2 -1
  24. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +14 -6
  25. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -4
  26. package/dist/_dts/blocks/src/system/blocks/hero.d.ts +0 -2
  27. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +3 -3
  28. package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +8 -0
  29. package/dist/_dts/blocks/src/system/constants/events.d.ts +4 -1
  30. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +3 -1
  31. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -0
  32. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +17 -5
  33. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +51 -6
  34. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -0
  35. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +2 -2
  36. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +1 -17
  37. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +5 -9
  38. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +5 -9
  39. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -1
  40. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +24 -0
  41. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +5 -0
  42. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.d.ts +4 -4
  43. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.state.d.ts +50 -0
  44. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -2
  45. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +21 -0
  46. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
  47. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +11 -1
  48. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +2 -1
  49. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +11 -1
  50. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/calendarViewOptions.d.ts +10 -0
  51. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventProductEligibility.d.ts +24 -0
  52. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +5 -2
  53. package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout-form.d.ts +2 -2
  54. package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
  55. package/dist/_dts/content-model/src/entry-slots/sdkBlocks.d.ts +21 -0
  56. package/dist/_dts/content-model/src/entry-slots/types.d.ts +7 -0
  57. package/dist/_dts/core/src/money-input.d.ts +18 -0
  58. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +50 -0
  59. package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
  60. package/dist/_dts/media-editor/src/fieldUi.d.ts +6 -0
  61. package/dist/_dts/media-editor/src/index.d.ts +1 -1
  62. package/dist/_dts/preview-next/src/client/index.d.ts +1 -0
  63. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +3 -2
  64. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +3 -2
  65. package/dist/_dts/preview-next/src/client/preview/PreviewThemedSiteDocument.d.ts +3 -2
  66. package/dist/_dts/preview-next/src/client/preview/SiteChromeEditableSurface.d.ts +2 -2
  67. package/dist/_dts/preview-next/src/client/preview/themeRuntime.d.ts +6 -0
  68. package/dist/_dts/preview-next/src/client/sdk/SdkPreviewMode.d.ts +2 -1
  69. package/dist/_dts/sdk/src/cli/commands/pull-dated-offering-scope.d.ts +10 -0
  70. package/dist/_dts/sdk/src/cli/content/reader.d.ts +12 -5
  71. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -55
  72. package/dist/_dts/sdk/src/components.d.ts +1 -0
  73. package/dist/_dts/sdk/src/config/field-definitions.d.ts +3 -1
  74. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +3 -1
  75. package/dist/_dts/sdk/src/next/types.d.ts +8 -11
  76. package/dist/_dts/sdk/src/preview-next/client/index.d.ts +1 -1
  77. package/dist/_dts/sdk/src/rendering/blocks-theme-scope.d.ts +2 -1
  78. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +8 -7
  79. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +5 -6
  80. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
  81. package/dist/_dts/sdk/src/rendering/server.d.ts +1 -0
  82. package/dist/_dts/sdk/src/rendering/themeRuntime.d.ts +26 -0
  83. package/dist/_dts/sdk/src/version.d.ts +1 -1
  84. package/dist/_dts/site-commands/src/commands.d.ts +18 -0
  85. package/dist/_dts/theme-core/src/ResponsiveScope.d.ts +12 -0
  86. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  87. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +2 -2
  88. package/dist/_dts/theme-core/src/buttons/types.d.ts +5 -5
  89. package/dist/_dts/theme-core/src/cards/types.d.ts +2 -2
  90. package/dist/_dts/theme-core/src/index.d.ts +2 -0
  91. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +21 -21
  92. package/dist/_dts/theme-core/src/schema.d.ts +18 -18
  93. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
  94. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
  95. package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +4 -4
  96. package/dist/_dts/theme-core/src/themeRuntime.d.ts +11 -0
  97. package/dist/{chunk-HKJQERFR.mjs → chunk-AEOYWPE4.mjs} +91 -55
  98. package/dist/{chunk-F645A5UV.mjs → chunk-BOQXMCSP.mjs} +129 -101
  99. package/dist/{chunk-ZQRBLCW5.mjs → chunk-GSPFFUVB.mjs} +2 -2
  100. package/dist/{chunk-7YUAXONX.mjs → chunk-PMBB6MQ7.mjs} +1280 -774
  101. package/dist/{chunk-TGBJWKMP.mjs → chunk-RQ3XZ4SJ.mjs} +9 -1
  102. package/dist/{chunk-7N46MZHI.mjs → chunk-UG7I7S7W.mjs} +1 -1
  103. package/dist/cli/index.mjs +899 -531
  104. package/dist/cli/init-docs/content/cli-reference.md +6 -1
  105. package/dist/cli/init-docs/content/content-management.md +27 -0
  106. package/dist/client/{accordion-MUCVNGQ7.mjs → accordion-GXQNWQ6O.mjs} +1 -1
  107. package/dist/client/{bookingForm-PKD6EFIE.mjs → bookingForm-STLUJ36H.mjs} +25 -270
  108. package/dist/client/bookings.mjs +432 -269
  109. package/dist/client/{carousel-3TKQSNJC.mjs → carousel-CVRN6EPP.mjs} +1 -1
  110. package/dist/client/{cart-6XHSZK23.mjs → cart-IYIBA5CL.mjs} +5 -6
  111. package/dist/client/{checkout-FVSPM6FI.mjs → checkout-O3BGM4GS.mjs} +5 -6
  112. package/dist/client/chunk-4RTFGHZN.mjs +433 -0
  113. package/dist/client/{chunk-UQFY4AHX.mjs → chunk-6DPXDOIL.mjs} +65 -28
  114. package/dist/client/{chunk-ZT5XE7FK.mjs → chunk-D3ETC2SU.mjs} +1 -1
  115. package/dist/client/{chunk-CQKKFEQD.mjs → chunk-DAS5CIER.mjs} +274 -105
  116. package/dist/client/{chunk-SDIYSQAY.mjs → chunk-HIHOQGIP.mjs} +2 -3
  117. package/dist/client/{chunk-ZJZZA5EP.mjs → chunk-MFPKS6QS.mjs} +11 -14
  118. package/dist/client/{chunk-EY42X22F.mjs → chunk-NBFRJ5NB.mjs} +156 -4
  119. package/dist/client/{chunk-VGLXACVK.mjs → chunk-VFHZLZAC.mjs} +1 -1
  120. package/dist/client/{chunk-STJ2NCQM.mjs → chunk-WHZQDPBZ.mjs} +19 -1
  121. package/dist/client/{chunk-RSQWWUAD.mjs → chunk-Z62JYS5O.mjs} +3 -3
  122. package/dist/client/client.mjs +3292 -2827
  123. package/dist/client/{courseRegistration-ATZSYDHM.mjs → courseRegistration-2D3ACMJR.mjs} +18 -56
  124. package/dist/client/{eventCalendar-6T2UGKKP.mjs → eventCalendar-QY4UZUFF.mjs} +8 -9
  125. package/dist/client/{eventCombined-Q4VANXVF.mjs → eventCombined-RRCDKJC2.mjs} +8 -9
  126. package/dist/client/{eventDetails-DW37E7VW.mjs → eventDetails-YO335BUT.mjs} +8 -9
  127. package/dist/client/{eventListing-XURTSAUW.mjs → eventListing-PXA6GFQ3.mjs} +8 -9
  128. package/dist/client/{eventRegistration-MRKEVAXW.mjs → eventRegistration-2ZHEDDXO.mjs} +8 -9
  129. package/dist/client/{form-WZZFFGMU.mjs → form-ZS6KX4U2.mjs} +6 -6
  130. package/dist/client/{headerSection-EQYVQBLM.mjs → headerSection-QK5SLIIB.mjs} +2 -2
  131. package/dist/client/hooks.mjs +1084 -1029
  132. package/dist/client/{locationMap-MFF5VAZR.mjs → locationMap-GFNIUD2X.mjs} +2 -2
  133. package/dist/client/{newsletterForm-JQ77UYIE.mjs → newsletterForm-PGLTTCUG.mjs} +4 -4
  134. package/dist/client/{productDetail-25LMT3IZ.mjs → productDetail-OPBE5ZPI.mjs} +5 -6
  135. package/dist/client/{productList-5ABEMKUG.mjs → productList-NI72Q62Z.mjs} +5 -6
  136. package/dist/client/rendering/client.mjs +2692 -2285
  137. package/dist/client/rendering/islands.mjs +18 -18
  138. package/dist/client/rendering.mjs +2611 -2156
  139. package/dist/client/{shop-OMMQZ6YO.mjs → shop-3ZQPEWYI.mjs} +5 -6
  140. package/dist/client/spam-protection.mjs +4 -5
  141. package/dist/preview-next/before-render.mjs +2 -2
  142. package/dist/preview-next/client/runtime.mjs +5 -5
  143. package/dist/{sdk-runtime-WNLBZ3ZH.mjs → sdk-runtime-FSHXCWDS.mjs} +6 -6
  144. package/dist/server/components.mjs +1722 -1453
  145. package/dist/server/config-validation.mjs +1316 -1261
  146. package/dist/server/config.mjs +1316 -1261
  147. package/dist/server/data.mjs +1084 -1029
  148. package/dist/server/index.mjs +135 -100
  149. package/dist/server/navigation.mjs +20 -30
  150. package/dist/server/next.mjs +1782 -1500
  151. package/dist/server/page-converter.mjs +1009 -946
  152. package/dist/server/prebuild.mjs +1 -1
  153. package/dist/server/rendering/server.mjs +1722 -1453
  154. package/dist/server/rendering.mjs +1728 -1459
  155. package/dist/server/routing.mjs +1127 -1045
  156. package/dist/server/server.mjs +1219 -1129
  157. package/dist/server/theme-bridge.mjs +8 -5
  158. package/package.json +2 -2
  159. package/dist/SdkPreviewModeRuntime-ZBEMRV7N.mjs +0 -8
  160. package/dist/client/chunk-LQFDYWPJ.mjs +0 -184
  161. package/dist/client/chunk-ZFHRN6W2.mjs +0 -66
@@ -1,6 +1,6 @@
1
1
  import type { SystemBlockDefinition } from "../registry";
2
2
  import { type SectionStylesContent } from "../fields/boxStyles";
3
- import { publicMembershipProductSchema, publicPassProductSchema, type PublicMembershipProduct, type PublicPassProduct } from "./shop.shared";
3
+ import { publicMembershipProductSchema, publicPassProductSchema, publicMembershipProductCollectionSchema, publicPassProductCollectionSchema, type PublicMembershipProductCollection, type PublicMembershipProduct, type PublicPassProductCollection, type PublicPassProduct } from "./shop.shared";
4
4
  import { shopBlockRuntime } from "../runtime/nodes/shop.interactive";
5
5
  /**
6
6
  * Passes & Memberships Block
@@ -29795,6 +29795,6 @@ export type ShopContent = {
29795
29795
  emptyStateText?: string | null;
29796
29796
  _sectionStyles?: SectionStylesContent;
29797
29797
  };
29798
- export { publicMembershipProductSchema, publicPassProductSchema, };
29799
- export type { PublicMembershipProduct, PublicPassProduct, };
29798
+ export { publicMembershipProductCollectionSchema, publicMembershipProductSchema, publicPassProductCollectionSchema, publicPassProductSchema, };
29799
+ export type { PublicMembershipProductCollection, PublicMembershipProduct, PublicPassProductCollection, PublicPassProduct, };
29800
29800
  export declare const shopBlockDefinition: SystemBlockDefinition<ShopContent, typeof shopBlockRuntime>;
@@ -19,6 +19,10 @@ export declare const publicPassProductSchema: z.ZodObject<{
19
19
  eligibleCategoryNames: z.ZodArray<z.ZodString>;
20
20
  }, z.core.$strip>;
21
21
  export type PublicPassProduct = z.infer<typeof publicPassProductSchema>;
22
+ export type PublicPassProductCollection = Readonly<{
23
+ passes: readonly PublicPassProduct[];
24
+ }>;
25
+ export declare const publicPassProductCollectionSchema: z.ZodType<PublicPassProductCollection>;
22
26
  /**
23
27
  * Public membership product for shop display
24
28
  */
@@ -36,3 +40,7 @@ export declare const publicMembershipProductSchema: z.ZodObject<{
36
40
  eligibleCategoryNames: z.ZodArray<z.ZodString>;
37
41
  }, z.core.$strip>;
38
42
  export type PublicMembershipProduct = z.infer<typeof publicMembershipProductSchema>;
43
+ export type PublicMembershipProductCollection = Readonly<{
44
+ memberships: readonly PublicMembershipProduct[];
45
+ }>;
46
+ export declare const publicMembershipProductCollectionSchema: z.ZodType<PublicMembershipProductCollection>;
@@ -25,8 +25,10 @@ export type EventContentTypeSlug = (typeof EVENT_CONTENT_TYPE_SLUGS)[number];
25
25
  */
26
26
  export declare const EVENT_CATEGORY_BADGE_TOKENS: readonly ["primary", "secondary", "accent"];
27
27
  export type EventCategoryBadgeToken = (typeof EVENT_CATEGORY_BADGE_TOKENS)[number];
28
- export declare const eventCalendarDisplayModeValues: readonly ["combined", "month", "week", "list", "timetable"];
28
+ export declare const eventCalendarDisplayModeValues: readonly ["combined", "calendar", "list", "timetable"];
29
29
  export type EventCalendarDisplayMode = (typeof eventCalendarDisplayModeValues)[number];
30
+ export declare const eventCalendarDefaultViewValues: readonly ["month", "week"];
31
+ export type EventCalendarDefaultView = (typeof eventCalendarDefaultViewValues)[number];
30
32
  export declare const eventCalendarListLayoutValues: readonly ["stack", "grid", "compact"];
31
33
  export type EventCalendarListLayout = (typeof eventCalendarListLayoutValues)[number];
32
34
  export declare const eventCalendarListLayoutOptions: readonly [{
@@ -41,6 +43,7 @@ export declare const eventCalendarListLayoutOptions: readonly [{
41
43
  }];
42
44
  export declare const eventCalendarListLayoutCompatibleDisplayModeValues: readonly ["combined", "list"];
43
45
  export declare function isEventCalendarDisplayMode(value: unknown): value is EventCalendarDisplayMode;
46
+ export declare function isEventCalendarDefaultView(value: unknown): value is EventCalendarDefaultView;
44
47
  export declare function isEventCalendarListLayout(value: unknown): value is EventCalendarListLayout;
45
48
  export declare function eventCalendarListLayoutAppliesToDisplayMode(displayMode: EventCalendarDisplayMode): boolean;
46
49
  /**
@@ -43,7 +43,9 @@ export type FieldVisibleWhenPredicate = {
43
43
  maxItems?: number;
44
44
  };
45
45
  export type FieldVisibleWhen = FieldVisibleWhenPredicate | {
46
- allOf: FieldVisibleWhenPredicate[];
46
+ allOf: FieldVisibleWhen[];
47
+ } | {
48
+ anyOf: FieldVisibleWhen[];
47
49
  };
48
50
  declare const uiSchema: z.ZodObject<{
49
51
  widget: z.ZodOptional<z.ZodOptional<z.ZodString>>;
@@ -44,6 +44,7 @@ export type { BlockApiClient } from './client';
44
44
  export { BlockApiProvider, useBlockApi, useBlockApiOptional } from './context';
45
45
  export type { BlockApiProviderProps } from './context';
46
46
  export type { BlockApiConfig, BlockApiAuth, ApiKeyAuth, BearerAuth, NoAuth, ApiResponse, ApiSuccessResponse, ApiErrorResponse, FormSubmitRequest, FormSubmitResponse, FormConfigResponse, FormField, BookingSubmitRequest, BookingSubmitResponse, AppointmentBookingStatusRequest, AppointmentBookingStatusResponse, AvailableSlotsRequest, AvailableSlotsResponse, TimeSlot, AvailableDatesRequest, AvailableDatesResponse, BookingService, BookingServicesRequest, BookingServicesResponse, BookingServiceResponse, BookingResource, BookingResourcesRequest, BookingResourcesResponse, PublicEvent, PublicEventsRequest, PublicEventsResponse, EventVenue, PricingType, AccessRestriction, EventFilterCategory, EventFilterStaffMember, EventFilterVenue, EventFiltersResponse, EventRegisterRequest, EventRegisterResponse, EventCheckoutRequest, EventCheckoutResponse, PaymentMethod, EligibilityCheckRequest, EligibilityCheckResponse, EligiblePass, EligibleMembership, AvailablePass, AvailableMembership, CoursePaymentMethod, CourseEnrollRequest, CourseEnrollResponse, CourseEnrollSuccessResponse, CourseWaitlistResponse, CourseCheckoutRequest, CourseCheckoutResponse, DiscountContext, DiscountsAvailableRequest, DiscountsAvailableResponse, DiscountApplyLine, DiscountApplyRequest, DiscountApplyRejectedReason, DiscountApplyResponse, ShopCheckoutRequest, ShopCheckoutResponse, ShopDuplicateMembershipWarning, CustomerProfile, CustomerOrder, CustomerOrderInstalmentPlan, CustomerOrderInstalmentPlanStatus, CustomerOrderInstalmentRow, CustomerOrderInstalmentStatus, CustomerOrderPaymentState, EnabledModules, PortalMeResponse, PortalMeUpdateRequest, CustomerPass, CustomerPassCreditHistoryEntry, CustomerMembership, CustomerEventRegistration, PortalEventTicket, CustomerAppointment, AppointmentBookingQuestionsTaskDetail, BookingQuestionsTaskDetail, BookingQuestionsAnswerValue, BookingQuestionsField, BookingQuestionsFieldOption, BookingQuestionsSection, BeforeYouComeTaskSummary, CustomerCourseEnrollment, EventGuest, PortalCredit, PortalCreditSummary, PortalCreditTransaction, PortalCreditResponse, PortalOrderCheckoutRequest, PortalOrderCheckoutResponse, PortalDigitalProduct, PortalDigitalProductFile, PortalDigitalProductsResponse, PortalDigitalProductAccessResponse, PortalDigitalProductDownloadUrlResponse, PortalAppointmentBookingQuestionsResponse, PortalCreateAppointmentBookingQuestionsUploadUrlRequest, PortalCreateAppointmentBookingQuestionsUploadUrlResponse, PortalFinalizeAppointmentBookingQuestionsUploadRequest, PortalFinalizeAppointmentBookingQuestionsUploadResponse, PortalUpdateAppointmentBookingQuestionsRequest, PortalUpdateAppointmentBookingQuestionsResponse, PortalEventBookingQuestionsResponse, PortalCreateEventBookingQuestionsUploadUrlRequest, PortalCreateEventBookingQuestionsUploadUrlResponse, PortalFinalizeEventBookingQuestionsUploadRequest, PortalFinalizeEventBookingQuestionsUploadResponse, PortalUpdateEventBookingQuestionsRequest, PortalUpdateEventBookingQuestionsResponse, PortalCourseBookingQuestionsResponse, PortalCreateCourseBookingQuestionsUploadUrlRequest, PortalCreateCourseBookingQuestionsUploadUrlResponse, PortalFinalizeCourseBookingQuestionsUploadRequest, PortalFinalizeCourseBookingQuestionsUploadResponse, PortalUpdateCourseBookingQuestionsRequest, PortalUpdateCourseBookingQuestionsResponse, UpdateEventGuestsRequest, EventGuestsResponse, PortalCancelCourseEnrollmentRequest, PortalCancelCourseEnrollmentResult, PortalCancelAppointmentRequest, PortalCancelAppointmentResult, PortalCancelEventRegistrationRequest, PortalRefundInfo, PortalCancelEventRegistrationResult, PortalTransferEventRegistrationRequest, PortalTransferEventRegistrationResult, PortalRescheduleAppointmentRequest, PortalRescheduleAppointmentResponse, PortalCancelMembershipAtPeriodEndResult, MagicLinkRequest, } from './types';
47
+ export { discountAvailabilityAllowsManualEntry, discountAvailabilityHasDiscounts, getAutoAppliedDiscountPreview, } from './types';
47
48
  export type { BookingQuestionsDocumentAnswerValue } from '../../../portal/types';
48
49
  export { deriveCreditProductLabels, getCreditProductCreditUnit, getCreditProductTypeLabel, getPortalCreditProductCreditNoun, } from './creditProducts';
49
50
  export type { CreditProductCreditUnit, CreditProductLabelStyle, CreditProductSource, CreditProductUseCase, DerivedCreditProductLabels, EnabledCreditProductModules, } from './creditProducts';
@@ -614,11 +614,23 @@ export interface AutoAppliedDiscountPreview {
614
614
  discountAmountCents: number | null;
615
615
  computedAmountCents: number;
616
616
  }
617
- export interface DiscountsAvailableResponse {
618
- hasDiscounts: boolean;
619
- manualCodeEntryAllowed: boolean;
620
- autoAppliedDiscount: AutoAppliedDiscountPreview | null;
621
- }
617
+ export type DiscountsAvailableResponse = Readonly<{
618
+ type: "none";
619
+ }> | Readonly<{
620
+ type: "manual";
621
+ manualCodeEntryAllowed: true;
622
+ }> | Readonly<{
623
+ type: "auto";
624
+ manualCodeEntryAllowed: false;
625
+ autoAppliedDiscount: AutoAppliedDiscountPreview;
626
+ }> | Readonly<{
627
+ type: "auto_and_manual";
628
+ manualCodeEntryAllowed: true;
629
+ autoAppliedDiscount: AutoAppliedDiscountPreview;
630
+ }>;
631
+ export declare function discountAvailabilityHasDiscounts(availability: DiscountsAvailableResponse): boolean;
632
+ export declare function discountAvailabilityAllowsManualEntry(availability: DiscountsAvailableResponse): boolean;
633
+ export declare function getAutoAppliedDiscountPreview(availability: DiscountsAvailableResponse): AutoAppliedDiscountPreview | null;
622
634
  export interface DiscountApplyLine {
623
635
  context: DiscountContext;
624
636
  subtotalCents: number;
@@ -656,6 +656,7 @@ export declare const runtimeBackedBlockClientEntries: {
656
656
  loadMoreText?: string;
657
657
  startOfWeek?: import("../..").WeekStart;
658
658
  calendarTabViews?: import("../..").CalendarTabViews;
659
+ defaultCalendarView?: import("../..").CalendarView;
659
660
  showFilters?: boolean | null;
660
661
  showCategoryFilter?: import("../..").FilterAutoShow;
661
662
  showVenueFilter?: boolean | null;
@@ -686,6 +687,7 @@ export declare const runtimeBackedBlockClientEntries: {
686
687
  paginationAction: import("../nodes/events/shared/listOptions").EventListPaginationAction;
687
688
  startOfWeek: import("../..").WeekStart;
688
689
  calendarTabViews: import("../..").CalendarTabViews;
690
+ defaultCalendarView: import("../..").CalendarView;
689
691
  showFilters: boolean;
690
692
  showCategoryFilter: import("../..").FilterAutoShow;
691
693
  showVenueFilter: boolean;
@@ -733,6 +735,7 @@ export declare const runtimeBackedBlockClientEntries: {
733
735
  loadMoreText?: string;
734
736
  startOfWeek?: import("../..").WeekStart;
735
737
  calendarTabViews?: import("../..").CalendarTabViews;
738
+ defaultCalendarView?: import("../..").CalendarView;
736
739
  showFilters?: boolean | null;
737
740
  showCategoryFilter?: import("../..").FilterAutoShow;
738
741
  showVenueFilter?: boolean | null;
@@ -769,6 +772,7 @@ export declare const runtimeBackedBlockClientEntries: {
769
772
  loadMoreText?: string;
770
773
  startOfWeek?: import("../..").WeekStart;
771
774
  calendarTabViews?: import("../..").CalendarTabViews;
775
+ defaultCalendarView?: import("../..").CalendarView;
772
776
  showFilters?: boolean | null;
773
777
  showCategoryFilter?: import("../..").FilterAutoShow;
774
778
  showVenueFilter?: boolean | null;
@@ -802,6 +806,7 @@ export declare const runtimeBackedBlockClientEntries: {
802
806
  paginationAction: import("../nodes/events/shared/listOptions").EventListPaginationAction;
803
807
  startOfWeek: import("../..").WeekStart;
804
808
  calendarTabViews: import("../..").CalendarTabViews;
809
+ defaultCalendarView: import("../..").CalendarView;
805
810
  showFilters: boolean;
806
811
  showCategoryFilter: import("../..").FilterAutoShow;
807
812
  showVenueFilter: boolean;
@@ -842,6 +847,7 @@ export declare const runtimeBackedBlockClientEntries: {
842
847
  paginationAction: import("../nodes/events/shared/listOptions").EventListPaginationAction;
843
848
  startOfWeek: import("../..").WeekStart;
844
849
  calendarTabViews: import("../..").CalendarTabViews;
850
+ defaultCalendarView: import("../..").CalendarView;
845
851
  showFilters: boolean;
846
852
  showCategoryFilter: import("../..").FilterAutoShow;
847
853
  showVenueFilter: boolean;
@@ -895,6 +901,7 @@ export declare const runtimeBackedBlockClientEntries: {
895
901
  loadMoreText?: string;
896
902
  startOfWeek?: import("../..").WeekStart;
897
903
  calendarTabViews?: import("../..").CalendarTabViews;
904
+ defaultCalendarView?: import("../..").CalendarView;
898
905
  showFilters?: boolean | null;
899
906
  showCategoryFilter?: import("../..").FilterAutoShow;
900
907
  showVenueFilter?: boolean | null;
@@ -925,6 +932,7 @@ export declare const runtimeBackedBlockClientEntries: {
925
932
  paginationAction: import("../nodes/events/shared/listOptions").EventListPaginationAction;
926
933
  startOfWeek: import("../..").WeekStart;
927
934
  calendarTabViews: import("../..").CalendarTabViews;
935
+ defaultCalendarView: import("../..").CalendarView;
928
936
  showFilters: boolean;
929
937
  showCategoryFilter: import("../..").FilterAutoShow;
930
938
  showVenueFilter: boolean;
@@ -972,6 +980,7 @@ export declare const runtimeBackedBlockClientEntries: {
972
980
  loadMoreText?: string;
973
981
  startOfWeek?: import("../..").WeekStart;
974
982
  calendarTabViews?: import("../..").CalendarTabViews;
983
+ defaultCalendarView?: import("../..").CalendarView;
975
984
  showFilters?: boolean | null;
976
985
  showCategoryFilter?: import("../..").FilterAutoShow;
977
986
  showVenueFilter?: boolean | null;
@@ -1008,6 +1017,7 @@ export declare const runtimeBackedBlockClientEntries: {
1008
1017
  loadMoreText?: string;
1009
1018
  startOfWeek?: import("../..").WeekStart;
1010
1019
  calendarTabViews?: import("../..").CalendarTabViews;
1020
+ defaultCalendarView?: import("../..").CalendarView;
1011
1021
  showFilters?: boolean | null;
1012
1022
  showCategoryFilter?: import("../..").FilterAutoShow;
1013
1023
  showVenueFilter?: boolean | null;
@@ -1041,6 +1051,7 @@ export declare const runtimeBackedBlockClientEntries: {
1041
1051
  paginationAction: import("../nodes/events/shared/listOptions").EventListPaginationAction;
1042
1052
  startOfWeek: import("../..").WeekStart;
1043
1053
  calendarTabViews: import("../..").CalendarTabViews;
1054
+ defaultCalendarView: import("../..").CalendarView;
1044
1055
  showFilters: boolean;
1045
1056
  showCategoryFilter: import("../..").FilterAutoShow;
1046
1057
  showVenueFilter: boolean;
@@ -1081,6 +1092,7 @@ export declare const runtimeBackedBlockClientEntries: {
1081
1092
  paginationAction: import("../nodes/events/shared/listOptions").EventListPaginationAction;
1082
1093
  startOfWeek: import("../..").WeekStart;
1083
1094
  calendarTabViews: import("../..").CalendarTabViews;
1095
+ defaultCalendarView: import("../..").CalendarView;
1084
1096
  showFilters: boolean;
1085
1097
  showCategoryFilter: import("../..").FilterAutoShow;
1086
1098
  showVenueFilter: boolean;
@@ -2357,6 +2369,12 @@ export declare const runtimeBackedBlockClientEntries: {
2357
2369
  spamProtectionEnabled?: boolean;
2358
2370
  stage?: "preview" | "published";
2359
2371
  supportEmail?: string;
2372
+ sitePasses?: Readonly<{
2373
+ passes: readonly import("../..").PublicPassProduct[];
2374
+ }> | null;
2375
+ siteMemberships?: Readonly<{
2376
+ memberships: readonly import("../..").PublicMembershipProduct[];
2377
+ }> | null;
2360
2378
  }>) => Readonly<{
2361
2379
  display: Readonly<{
2362
2380
  kind: "event-registration";
@@ -2395,6 +2413,12 @@ export declare const runtimeBackedBlockClientEntries: {
2395
2413
  spamProtectionEnabled?: boolean;
2396
2414
  stage?: "preview" | "published";
2397
2415
  supportEmail?: string;
2416
+ sitePasses?: Readonly<{
2417
+ passes: readonly import("../..").PublicPassProduct[];
2418
+ }> | null;
2419
+ siteMemberships?: Readonly<{
2420
+ memberships: readonly import("../..").PublicMembershipProduct[];
2421
+ }> | null;
2398
2422
  }>) => unknown;
2399
2423
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
2400
2424
  siteId?: string;
@@ -2420,6 +2444,12 @@ export declare const runtimeBackedBlockClientEntries: {
2420
2444
  spamProtectionEnabled?: boolean;
2421
2445
  stage?: "preview" | "published";
2422
2446
  supportEmail?: string;
2447
+ sitePasses?: Readonly<{
2448
+ passes: readonly import("../..").PublicPassProduct[];
2449
+ }> | null;
2450
+ siteMemberships?: Readonly<{
2451
+ memberships: readonly import("../..").PublicMembershipProduct[];
2452
+ }> | null;
2423
2453
  }>>;
2424
2454
  }>;
2425
2455
  render: Readonly<{
@@ -2479,6 +2509,12 @@ export declare const runtimeBackedBlockClientEntries: {
2479
2509
  spamProtectionEnabled?: boolean;
2480
2510
  stage?: "preview" | "published";
2481
2511
  supportEmail?: string;
2512
+ sitePasses?: Readonly<{
2513
+ passes: readonly import("../..").PublicPassProduct[];
2514
+ }> | null;
2515
+ siteMemberships?: Readonly<{
2516
+ memberships: readonly import("../..").PublicMembershipProduct[];
2517
+ }> | null;
2482
2518
  }>) => Readonly<{
2483
2519
  display: Readonly<{
2484
2520
  kind: "event-registration";
@@ -2517,6 +2553,12 @@ export declare const runtimeBackedBlockClientEntries: {
2517
2553
  spamProtectionEnabled?: boolean;
2518
2554
  stage?: "preview" | "published";
2519
2555
  supportEmail?: string;
2556
+ sitePasses?: Readonly<{
2557
+ passes: readonly import("../..").PublicPassProduct[];
2558
+ }> | null;
2559
+ siteMemberships?: Readonly<{
2560
+ memberships: readonly import("../..").PublicMembershipProduct[];
2561
+ }> | null;
2520
2562
  }>) => unknown;
2521
2563
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
2522
2564
  siteId?: string;
@@ -2542,6 +2584,12 @@ export declare const runtimeBackedBlockClientEntries: {
2542
2584
  spamProtectionEnabled?: boolean;
2543
2585
  stage?: "preview" | "published";
2544
2586
  supportEmail?: string;
2587
+ sitePasses?: Readonly<{
2588
+ passes: readonly import("../..").PublicPassProduct[];
2589
+ }> | null;
2590
+ siteMemberships?: Readonly<{
2591
+ memberships: readonly import("../..").PublicMembershipProduct[];
2592
+ }> | null;
2545
2593
  }>>;
2546
2594
  }>;
2547
2595
  render: Readonly<{
@@ -2870,12 +2918,8 @@ export declare const clientComponentRegistryEntries: {
2870
2918
  showCost?: boolean;
2871
2919
  showAcceptedPasses?: boolean;
2872
2920
  showAcceptedMemberships?: boolean;
2873
- sitePasses?: Readonly<{
2874
- passes: readonly import("../..").PublicPassProduct[];
2875
- }> | null;
2876
- siteMemberships?: Readonly<{
2877
- memberships: readonly import("../..").PublicMembershipProduct[];
2878
- }> | null;
2921
+ sitePasses?: import("../..").PublicPassProductCollection | null;
2922
+ siteMemberships?: import("../..").PublicMembershipProductCollection | null;
2879
2923
  autoApplyDiscount?: import("../..").EventAutoApplyDiscountPreview | null;
2880
2924
  className?: string | null;
2881
2925
  nowIso?: string;
@@ -2916,6 +2960,7 @@ export declare const clientComponentRegistryEntries: {
2916
2960
  paginationAction: import("../nodes/events/shared/listOptions").EventListPaginationAction;
2917
2961
  startOfWeek: import("../..").WeekStart;
2918
2962
  calendarTabViews: import("../..").CalendarTabViews;
2963
+ defaultCalendarView: import("../..").CalendarView;
2919
2964
  showFilters: boolean;
2920
2965
  showCategoryFilter: import("../..").FilterAutoShow;
2921
2966
  showVenueFilter: boolean;
@@ -341,6 +341,7 @@ export declare const runtimeBackedBlockServerEntries: {
341
341
  loadMoreText?: string;
342
342
  startOfWeek?: import("../..").WeekStart;
343
343
  calendarTabViews?: import("../..").CalendarTabViews;
344
+ defaultCalendarView?: import("../..").CalendarView;
344
345
  showFilters?: boolean | null;
345
346
  showCategoryFilter?: import("../..").FilterAutoShow;
346
347
  showVenueFilter?: boolean | null;
@@ -371,6 +372,7 @@ export declare const runtimeBackedBlockServerEntries: {
371
372
  paginationAction: import("../nodes/events/shared/listOptions").EventListPaginationAction;
372
373
  startOfWeek: import("../..").WeekStart;
373
374
  calendarTabViews: import("../..").CalendarTabViews;
375
+ defaultCalendarView: import("../..").CalendarView;
374
376
  showFilters: boolean;
375
377
  showCategoryFilter: import("../..").FilterAutoShow;
376
378
  showVenueFilter: boolean;
@@ -418,6 +420,7 @@ export declare const runtimeBackedBlockServerEntries: {
418
420
  loadMoreText?: string;
419
421
  startOfWeek?: import("../..").WeekStart;
420
422
  calendarTabViews?: import("../..").CalendarTabViews;
423
+ defaultCalendarView?: import("../..").CalendarView;
421
424
  showFilters?: boolean | null;
422
425
  showCategoryFilter?: import("../..").FilterAutoShow;
423
426
  showVenueFilter?: boolean | null;
@@ -454,6 +457,7 @@ export declare const runtimeBackedBlockServerEntries: {
454
457
  loadMoreText?: string;
455
458
  startOfWeek?: import("../..").WeekStart;
456
459
  calendarTabViews?: import("../..").CalendarTabViews;
460
+ defaultCalendarView?: import("../..").CalendarView;
457
461
  showFilters?: boolean | null;
458
462
  showCategoryFilter?: import("../..").FilterAutoShow;
459
463
  showVenueFilter?: boolean | null;
@@ -487,6 +491,7 @@ export declare const runtimeBackedBlockServerEntries: {
487
491
  paginationAction: import("../nodes/events/shared/listOptions").EventListPaginationAction;
488
492
  startOfWeek: import("../..").WeekStart;
489
493
  calendarTabViews: import("../..").CalendarTabViews;
494
+ defaultCalendarView: import("../..").CalendarView;
490
495
  showFilters: boolean;
491
496
  showCategoryFilter: import("../..").FilterAutoShow;
492
497
  showVenueFilter: boolean;
@@ -527,6 +532,7 @@ export declare const runtimeBackedBlockServerEntries: {
527
532
  paginationAction: import("../nodes/events/shared/listOptions").EventListPaginationAction;
528
533
  startOfWeek: import("../..").WeekStart;
529
534
  calendarTabViews: import("../..").CalendarTabViews;
535
+ defaultCalendarView: import("../..").CalendarView;
530
536
  showFilters: boolean;
531
537
  showCategoryFilter: import("../..").FilterAutoShow;
532
538
  showVenueFilter: boolean;
@@ -1191,6 +1197,12 @@ export declare const runtimeBackedBlockServerEntries: {
1191
1197
  spamProtectionEnabled?: boolean;
1192
1198
  stage?: "preview" | "published";
1193
1199
  supportEmail?: string;
1200
+ sitePasses?: Readonly<{
1201
+ passes: readonly import("../..").PublicPassProduct[];
1202
+ }> | null;
1203
+ siteMemberships?: Readonly<{
1204
+ memberships: readonly import("../..").PublicMembershipProduct[];
1205
+ }> | null;
1194
1206
  }>) => Readonly<{
1195
1207
  display: Readonly<{
1196
1208
  kind: "event-registration";
@@ -1229,6 +1241,12 @@ export declare const runtimeBackedBlockServerEntries: {
1229
1241
  spamProtectionEnabled?: boolean;
1230
1242
  stage?: "preview" | "published";
1231
1243
  supportEmail?: string;
1244
+ sitePasses?: Readonly<{
1245
+ passes: readonly import("../..").PublicPassProduct[];
1246
+ }> | null;
1247
+ siteMemberships?: Readonly<{
1248
+ memberships: readonly import("../..").PublicMembershipProduct[];
1249
+ }> | null;
1232
1250
  }>) => unknown;
1233
1251
  decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
1234
1252
  siteId?: string;
@@ -1254,6 +1272,12 @@ export declare const runtimeBackedBlockServerEntries: {
1254
1272
  spamProtectionEnabled?: boolean;
1255
1273
  stage?: "preview" | "published";
1256
1274
  supportEmail?: string;
1275
+ sitePasses?: Readonly<{
1276
+ passes: readonly import("../..").PublicPassProduct[];
1277
+ }> | null;
1278
+ siteMemberships?: Readonly<{
1279
+ memberships: readonly import("../..").PublicMembershipProduct[];
1280
+ }> | null;
1257
1281
  }>>;
1258
1282
  }>;
1259
1283
  render: Readonly<{
@@ -44,9 +44,9 @@ export declare function useCourseRegistrationWizard(props: CourseRegistrationCli
44
44
  selectedMembershipId: string | null;
45
45
  setSelectedMembershipId: import("react").Dispatch<import("react").SetStateAction<string | null>>;
46
46
  discountUiOpen: boolean;
47
- setDiscountUiOpen: import("react").Dispatch<import("react").SetStateAction<boolean>>;
47
+ setDiscountUiOpen: (isOpen: boolean) => void;
48
48
  discountCode: string;
49
- setDiscountCode: import("react").Dispatch<import("react").SetStateAction<string>>;
49
+ setDiscountCode: (code: string) => void;
50
50
  discountsAvailable: boolean;
51
51
  manualCodeEntryAllowed: boolean;
52
52
  discountsAvailableLoading: boolean;
@@ -1,5 +1,5 @@
1
1
  import type { PublicEvent } from '../../../blocks/events/shared/types';
2
- import type { PublicPassProduct, PublicMembershipProduct } from '../../../blocks/shop';
2
+ export { filterPassesForEvent, filterMembershipsForEvent, } from '../events/shared/eventProductEligibility';
3
3
  export type OccurrenceContextLike = {
4
4
  id: string;
5
5
  seriesId: string;
@@ -19,19 +19,3 @@ export declare function selectEventDetails(args: {
19
19
  nowIso: string;
20
20
  otherDatesLimit: string | number | null | undefined;
21
21
  }): EventDetailsSelection;
22
- /**
23
- * Filter site passes to only those that cover the selected event.
24
- *
25
- * @param sitePasses - Array of all site passes (may be null/undefined)
26
- * @param event - The selected event (may be null)
27
- * @returns Passes that cover the event based on category eligibility
28
- */
29
- export declare function filterPassesForEvent(sitePasses: PublicPassProduct[] | null | undefined, event: PublicEvent | null): PublicPassProduct[];
30
- /**
31
- * Filter site memberships to only those that cover the selected event.
32
- *
33
- * @param siteMemberships - Array of all site memberships (may be null/undefined)
34
- * @param event - The selected event (may be null)
35
- * @returns Memberships that cover the event based on category eligibility
36
- */
37
- export declare function filterMembershipsForEvent(siteMemberships: PublicMembershipProduct[] | null | undefined, event: PublicEvent | null): PublicMembershipProduct[];
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import type { EventAutoApplyDiscountPreview } from '../../blocks/event-details';
3
3
  import type { EventDetailsContentEntry, EventDetailsIslandProps } from '../../../contracts';
4
4
  import type { PublicEvent } from '../../blocks/events/shared/types';
5
- import type { PublicPassProduct, PublicMembershipProduct } from '../../blocks/shop';
5
+ import type { PublicMembershipProductCollection, PublicPassProductCollection } from '../../blocks/shop';
6
6
  import { type OccurrenceContextLike } from './event-details/logic';
7
7
  export type EventDetailsClientProps = Readonly<{
8
8
  occurrenceContext?: OccurrenceContextLike | null;
@@ -15,14 +15,10 @@ export type EventDetailsClientProps = Readonly<{
15
15
  showCost?: boolean;
16
16
  showAcceptedPasses?: boolean;
17
17
  showAcceptedMemberships?: boolean;
18
- /** Response from listPublicPasses API (wrapped in { passes: [...] }) */
19
- sitePasses?: {
20
- passes: PublicPassProduct[];
21
- } | null;
22
- /** Response from listPublicMemberships API (wrapped in { memberships: [...] }) */
23
- siteMemberships?: {
24
- memberships: PublicMembershipProduct[];
25
- } | null;
18
+ /** Response from listPublicPasses API. */
19
+ sitePasses?: PublicPassProductCollection | null;
20
+ /** Response from listPublicMemberships API. */
21
+ siteMemberships?: PublicMembershipProductCollection | null;
26
22
  /** Best auto-apply discount code to advertise under the price, if any */
27
23
  autoApplyDiscount?: EventAutoApplyDiscountPreview | null;
28
24
  className?: string | null;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { EventAutoApplyDiscountPreview } from '../../blocks/event-details';
3
3
  import type { PublicEvent } from '../../blocks/events/shared/types';
4
- import type { PublicPassProduct, PublicMembershipProduct } from '../../blocks/shop';
4
+ import type { PublicMembershipProductCollection, PublicPassProductCollection } from '../../blocks/shop';
5
5
  import { type OccurrenceContextLike } from './event-details/logic';
6
6
  type EventDetailsProps = {
7
7
  blockId?: string | null;
@@ -15,14 +15,10 @@ type EventDetailsProps = {
15
15
  showCost?: boolean;
16
16
  showAcceptedPasses?: boolean;
17
17
  showAcceptedMemberships?: boolean;
18
- /** Response from listPublicPasses API (wrapped in { passes: [...] }) */
19
- sitePasses?: {
20
- passes: PublicPassProduct[];
21
- } | null;
22
- /** Response from listPublicMemberships API (wrapped in { memberships: [...] }) */
23
- siteMemberships?: {
24
- memberships: PublicMembershipProduct[];
25
- } | null;
18
+ /** Response from listPublicPasses API. */
19
+ sitePasses?: PublicPassProductCollection | null;
20
+ /** Response from listPublicMemberships API. */
21
+ siteMemberships?: PublicMembershipProductCollection | null;
26
22
  /** Best auto-apply discount code to advertise under the price, if any */
27
23
  autoApplyDiscount?: EventAutoApplyDiscountPreview | null;
28
24
  className?: string | null;
@@ -1,4 +1,4 @@
1
- import type { PaymentMethod } from '../../api/types';
1
+ import type { DirectCheckoutCollectionOptionKind, PaymentMethod } from '../../api/types';
2
2
  import type { EventRegistrationContentEntry } from '../event-registration.interactive';
3
3
  import type { EligibilityData, FormData, Guest, GuestErrors, OccurrenceContext, PaymentSelection, PaymentStepState, PublicEvent, RegistrationEvent, RegistrationResult } from './types';
4
4
  import type { SelectableEventTicketType } from './utils';
@@ -123,6 +123,7 @@ export type EventRegistrationPaymentSelection = Readonly<{
123
123
  method: 'free';
124
124
  }> | Readonly<{
125
125
  method: 'stripe';
126
+ collectionOptionKind?: DirectCheckoutCollectionOptionKind;
126
127
  }> | Readonly<{
127
128
  method: 'pass';
128
129
  passId: string;
@@ -0,0 +1,24 @@
1
+ import type { DirectCheckoutCollectionOptionKind } from '../../api/types';
2
+ import type { BlockBookingPaymentCollectionOption, BlockBookingPaymentTerms } from '../../../blocks/shared/bookingPaymentTerms';
3
+ import { type BookingPaymentOptionViewModel } from '../../shared/bookingPaymentOptions';
4
+ type SupportedEventDirectPaymentOption = Extract<BlockBookingPaymentCollectionOption, {
5
+ kind: 'upfront' | 'flexible_balance';
6
+ }>;
7
+ export type EventRegistrationDirectPaymentOption = Omit<BookingPaymentOptionViewModel, 'kind' | 'title'> & Readonly<{
8
+ kind: Extract<DirectCheckoutCollectionOptionKind, SupportedEventDirectPaymentOption['kind']>;
9
+ label: string;
10
+ }>;
11
+ export type EventRegistrationPaymentOptionsViewModel = Readonly<{
12
+ mode: 'single_option' | 'choice_required';
13
+ sectionTitle: string;
14
+ options: readonly EventRegistrationDirectPaymentOption[];
15
+ }>;
16
+ export declare function buildEventRegistrationPaymentOptionsViewModel(input: Readonly<{
17
+ eventTitle: string;
18
+ paymentTerms?: BlockBookingPaymentTerms | null;
19
+ totalPriceCents: number;
20
+ currency: string;
21
+ startsAt?: string | null;
22
+ locale?: string;
23
+ }>): EventRegistrationPaymentOptionsViewModel;
24
+ export {};
@@ -1,5 +1,6 @@
1
1
  import type { PublicEvent, PublicEventTicketType, PublicEventTicketTypeAvailability } from '../../../blocks/events/shared/types';
2
2
  import type { OccurrenceContext } from '../../../blocks/event-registration.shared';
3
+ import type { PublicMembershipProductCollection, PublicPassProductCollection } from '../../../blocks/shop.shared';
3
4
  import type { AvailablePass, AvailableMembership, DirectCheckoutCollectionOptionKind, EligibilityEventTicketType } from '../../api/types';
4
5
  export type { PublicEvent, OccurrenceContext };
5
6
  export type { FormData } from '../../shared';
@@ -169,4 +170,8 @@ export type EventRegistrationClientProps = {
169
170
  stage?: 'preview' | 'published';
170
171
  /** Support email to display on timeout step */
171
172
  supportEmail?: string;
173
+ /** Site-wide public pass products; filtered against the selected event before prompting. */
174
+ sitePasses?: PublicPassProductCollection | null;
175
+ /** Site-wide public membership products; filtered against the selected event before prompting. */
176
+ siteMemberships?: PublicMembershipProductCollection | null;
172
177
  };
@@ -1,16 +1,16 @@
1
1
  import type { BlockApiClient } from '../../api';
2
- import type { AutoAppliedDiscountPreview, DiscountContext } from '../../api/types';
2
+ import { type DiscountContext } from '../../api/types';
3
3
  export declare function useDiscountCodeUi(options: {
4
4
  api: BlockApiClient;
5
5
  discountContext: DiscountContext | null;
6
6
  subtotalCents?: number;
7
7
  }): {
8
8
  discountUiOpen: boolean;
9
- setDiscountUiOpen: import("react").Dispatch<import("react").SetStateAction<boolean>>;
9
+ setDiscountUiOpen: (isOpen: boolean) => void;
10
10
  discountCode: string;
11
- setDiscountCode: import("react").Dispatch<import("react").SetStateAction<string>>;
11
+ setDiscountCode: (code: string) => void;
12
12
  discountsAvailable: boolean;
13
13
  manualCodeEntryAllowed: boolean;
14
- autoAppliedDiscount: AutoAppliedDiscountPreview | null;
14
+ autoAppliedDiscount: import("../../api/types").AutoAppliedDiscountPreview | null;
15
15
  discountsAvailableLoading: boolean;
16
16
  };
@@ -0,0 +1,50 @@
1
+ import { type AutoAppliedDiscountPreview, type DiscountContext, type DiscountsAvailableRequest, type DiscountsAvailableResponse } from '../../api/types';
2
+ export type DiscountAvailabilityRequestPlan = Readonly<{
3
+ ok: false;
4
+ key: 'disabled';
5
+ }> | Readonly<{
6
+ ok: true;
7
+ key: string;
8
+ request: Omit<DiscountsAvailableRequest, 'siteId'>;
9
+ }>;
10
+ type DiscountAvailabilityState = Readonly<{
11
+ tag: 'disabled';
12
+ }> | Readonly<{
13
+ tag: 'loading';
14
+ }> | Readonly<{
15
+ tag: 'unavailable';
16
+ }> | Readonly<{
17
+ tag: 'available';
18
+ manualCodeEntryAllowed: boolean;
19
+ autoAppliedDiscount: AutoAppliedDiscountPreview | null;
20
+ }> | Readonly<{
21
+ tag: 'error';
22
+ }>;
23
+ export type DiscountCodeUiState = Readonly<{
24
+ discountUiOpen: boolean;
25
+ discountCode: string;
26
+ availability: DiscountAvailabilityState;
27
+ }>;
28
+ export type DiscountCodeUiEvent = Readonly<{
29
+ type: 'availability-disabled';
30
+ }> | Readonly<{
31
+ type: 'availability-loading';
32
+ }> | Readonly<{
33
+ type: 'availability-loaded';
34
+ response: DiscountsAvailableResponse;
35
+ }> | Readonly<{
36
+ type: 'availability-failed';
37
+ }> | Readonly<{
38
+ type: 'discount-code-changed';
39
+ code: string;
40
+ }> | Readonly<{
41
+ type: 'discount-ui-open-changed';
42
+ isOpen: boolean;
43
+ }>;
44
+ export declare const initialDiscountCodeUiState: DiscountCodeUiState;
45
+ export declare function buildDiscountAvailabilityRequestPlan(options: {
46
+ discountContext: DiscountContext | null;
47
+ subtotalCents?: number;
48
+ }): DiscountAvailabilityRequestPlan;
49
+ export declare function discountCodeUiReducer(state: DiscountCodeUiState, event: DiscountCodeUiEvent): DiscountCodeUiState;
50
+ export {};
@@ -88,9 +88,9 @@ export declare function useEventRegistrationWizard(options: {
88
88
  hasMembershipEligibility: boolean;
89
89
  requireGuestDetails: boolean;
90
90
  discountCode: string;
91
- setDiscountCode: import("react").Dispatch<import("react").SetStateAction<string>>;
91
+ setDiscountCode: (code: string) => void;
92
92
  discountUiOpen: boolean;
93
- setDiscountUiOpen: import("react").Dispatch<import("react").SetStateAction<boolean>>;
93
+ setDiscountUiOpen: (isOpen: boolean) => void;
94
94
  discountsAvailable: boolean;
95
95
  manualCodeEntryAllowed: boolean;
96
96
  autoAppliedDiscount: import("../../api/types").AutoAppliedDiscountPreview | null;