@riverbankcms/sdk 0.127.0 → 0.128.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 (152) hide show
  1. package/dist/{PreviewEditorSidebar-BXtfF7tp.mjs → PreviewEditorSidebar-Dbvb7GIr.mjs} +9 -33
  2. package/dist/{PreviewEditorUI-Dou73Q0K.mjs → PreviewEditorUI-e9O9l20X.mjs} +3 -3
  3. package/dist/{PreviewQueryProvider-DgFDIwvK.mjs → PreviewQueryProvider-B1kbhaJD.mjs} +1 -1
  4. package/dist/SdkPreviewModeRuntime-BZHt6e9w.mjs +11006 -0
  5. package/dist/{SiteChromeCustomizeContext-DZiDBAYu.mjs → SiteChromeCustomizeContext-CvuGbHJX.mjs} +31619 -1483
  6. package/dist/_dts/ai/src/contracts/proposals.d.ts +288 -36
  7. package/dist/_dts/api/src/bookingClosures.d.ts +19 -3
  8. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -3
  9. package/dist/_dts/api/src/bookingRecords.d.ts +0 -13
  10. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +2 -2
  11. package/dist/_dts/api/src/communications.d.ts +2 -1
  12. package/dist/_dts/api/src/contactFormSummary.d.ts +15 -0
  13. package/dist/_dts/api/src/contentRuntime.d.ts +2 -5
  14. package/dist/_dts/api/src/endpoints.d.ts +1 -1
  15. package/dist/_dts/api/src/footerSettings.d.ts +11 -0
  16. package/dist/_dts/api/src/index.d.ts +2 -1
  17. package/dist/_dts/api/src/occurrenceScheduling.d.ts +48 -0
  18. package/dist/_dts/api/src/participantMessaging.d.ts +5 -3
  19. package/dist/_dts/api/src/publicExperience/siteEndpoints.d.ts +7 -0
  20. package/dist/_dts/api/src/sdkContracts.d.ts +7 -5
  21. package/dist/_dts/api/src/siteOperations.d.ts +12 -3
  22. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +3 -2
  23. package/dist/_dts/blocks/src/client/form.d.ts +1 -0
  24. package/dist/_dts/blocks/src/client/newsletter-form.d.ts +1 -0
  25. package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -0
  26. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -8
  27. package/dist/_dts/blocks/src/rendering/server.d.ts +1 -1
  28. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +41 -0
  29. package/dist/_dts/blocks/src/system/blocks/newsletter-signup-destination.d.ts +14 -23
  30. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +1 -1
  31. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +109 -23
  32. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  33. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +42 -108
  34. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +21 -54
  35. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +1 -1
  36. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +26 -0
  37. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +8 -0
  38. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +21 -0
  39. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +29 -78
  40. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.server.d.ts +1 -1
  41. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +3 -6
  42. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +27 -8
  43. package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +21 -0
  44. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +3 -1
  45. package/dist/_dts/content-editor/src/FooterEngagementEditorFields.d.ts +31 -0
  46. package/dist/_dts/content-editor/src/FooterEngagementEditorPanel.d.ts +17 -0
  47. package/dist/_dts/content-editor/src/footerComposer.d.ts +3 -0
  48. package/dist/_dts/content-editor/src/footerEngagementDraft.d.ts +57 -0
  49. package/dist/_dts/content-editor/src/footerEngagementEditor.d.ts +11 -0
  50. package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +13 -0
  51. package/dist/_dts/content-editor/src/index.d.ts +1 -0
  52. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +35 -0
  53. package/dist/_dts/core/src/footer-arrangement.d.ts +2 -0
  54. package/dist/_dts/core/src/footer-composition-types.d.ts +118 -0
  55. package/dist/_dts/core/src/footer-composition.d.ts +7 -116
  56. package/dist/_dts/core/src/footer-engagement.d.ts +30 -0
  57. package/dist/_dts/core/src/index.d.ts +4 -0
  58. package/dist/_dts/core/src/newsletter-signup-destination.d.ts +38 -0
  59. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +59 -6
  60. package/dist/_dts/db/src/index.d.ts +1 -0
  61. package/dist/_dts/db/src/schemas/forms.d.ts +72 -2
  62. package/dist/_dts/db/src/schemas/standard-contact.d.ts +114 -0
  63. package/dist/_dts/preview-next/src/client/blocks/previewBatchLoaderParams.d.ts +6 -0
  64. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +2 -5
  65. package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +2 -5
  66. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -5
  67. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -4
  68. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -1
  69. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -4
  70. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +6 -5
  71. package/dist/_dts/sdk/src/cli/commands/push/execute/footer.d.ts +9 -0
  72. package/dist/_dts/sdk/src/cli/content/footerFile.d.ts +10 -0
  73. package/dist/_dts/sdk/src/cli/content/reader.d.ts +3 -5
  74. package/dist/_dts/sdk/src/cli/site-commands/footerCommands.d.ts +15 -3
  75. package/dist/_dts/sdk/src/client/combineAbortSignals.d.ts +2 -0
  76. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -15
  77. package/dist/_dts/sdk/src/client/types.d.ts +10 -2
  78. package/dist/_dts/sdk/src/client/wholeSeriesReadOperations.d.ts +11 -0
  79. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  80. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  81. package/dist/_dts/sdk/src/contracts/event-registration-content.d.ts +16 -0
  82. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +4 -15
  83. package/dist/_dts/sdk/src/public-api/contracts.d.ts +4 -18
  84. package/dist/_dts/sdk/src/public-api/teamMemberContracts.d.ts +17 -0
  85. package/dist/_dts/sdk/src/public-api/wholeSeriesContracts.d.ts +2 -0
  86. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +7 -0
  87. package/dist/_dts/sdk/src/rendering/index.d.ts +5 -3
  88. package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +8 -2
  89. package/dist/_dts/sdk/src/version.d.ts +1 -1
  90. package/dist/_dts/site-commands/src/commandContract.d.ts +8 -1
  91. package/dist/_dts/site-commands/src/commands.d.ts +16 -2
  92. package/dist/_dts/theme-core/src/header/paintTargets.d.ts +10 -4
  93. package/dist/_dts/theme-core/src/header/surfaceRules.d.ts +2 -3
  94. package/dist/cli/index.mjs +5302 -4628
  95. package/dist/client/{courseRegistration-DTEYWL6Z.mjs → CourseRegistrationWizard-xRmA7REV.mjs} +329 -49
  96. package/dist/client/{DiscountCodeDisclosure-BDFRp8Y7.mjs → DiscountCodeDisclosure-B9vriL5C.mjs} +1 -1
  97. package/dist/client/{EventCombined.client-DJgF1_lf.mjs → EventCombined.client-BgVnVTlz.mjs} +2 -2
  98. package/dist/client/{EventListing.client-CnWGNjOr.mjs → EventListing.client-CqdsO7jO.mjs} +2 -2
  99. package/dist/client/{LeafletStaticMap-BISs9Bl7.mjs → LeafletStaticMap-CKPxot9M.mjs} +1 -1
  100. package/dist/client/{StepIndicator-D8gVYkK-.mjs → StepIndicator-DGCYuBJ1.mjs} +2 -2
  101. package/dist/client/{accordion-DFDajgDz.mjs → accordion-BfN5Eqd-.mjs} +1 -1
  102. package/dist/client/{bookingForm-Bdqj9-52.mjs → bookingForm-DOvCpBFP.mjs} +5 -5
  103. package/dist/client/{carousel-Cvqf-kN8.mjs → carousel-DPNmiH0f.mjs} +1 -1
  104. package/dist/client/{cart-CuH2TJXP.mjs → cart--egVXlrR.mjs} +3 -3
  105. package/dist/client/{checkout-CMNPpejZ.mjs → checkout-DywWtMcq.mjs} +3 -3
  106. package/dist/client/client.mjs +4912 -4613
  107. package/dist/client/courseRegistration-Dk9qFVwt.mjs +46 -0
  108. package/dist/client/{eventCalendar-BW-XoxZ0.mjs → eventCalendar-Bkz2HjlS.mjs} +4 -4
  109. package/dist/client/{eventCombined-Bpn7s0y9.mjs → eventCombined-D4kipYWg.mjs} +2 -2
  110. package/dist/client/{eventDetails-D2uUSTMH.mjs → eventDetails-Dz_5ix2Q.mjs} +56 -35
  111. package/dist/client/{eventListing-CVr1c094.mjs → eventListing-D0vm-zST.mjs} +2 -2
  112. package/dist/client/{eventRegistration-Dv4AvkMw.mjs → eventRegistration-Cw1E4Q4p.mjs} +58 -6
  113. package/dist/client/{form-DxdKf9fs.mjs → form-C2Zf1n3K.mjs} +1 -1
  114. package/dist/client/{headerSection-BaXI5Sro.mjs → headerSection-CP05gzdc.mjs} +2 -2
  115. package/dist/client/hooks.mjs +212 -61
  116. package/dist/client/{locationMap-BEtW2fKz.mjs → locationMap-Cl3x9PYJ.mjs} +2 -2
  117. package/dist/client/{newsletterForm-BKKs0S4R.mjs → newsletterForm-DyEJoClm.mjs} +26 -20
  118. package/dist/client/{pricing-ClkqcElA.mjs → pricing-DGuNR1W4.mjs} +1 -1
  119. package/dist/client/{productDetail-H-ru8dyy.mjs → productDetail-Cq-HrGew.mjs} +3 -3
  120. package/dist/client/{productList-Buyi5c0C.mjs → productList-DbB3jwqd.mjs} +3 -3
  121. package/dist/client/{propsDecoder-BF7i6Ijg.mjs → propsDecoder-CiTuhUwY.mjs} +130 -87
  122. package/dist/client/rendering/client.mjs +416 -208
  123. package/dist/client/rendering/islands.mjs +18 -18
  124. package/dist/client/rendering.mjs +5522 -5237
  125. package/dist/client/{scrollToBlock-D_7t8yWb.mjs → scrollToBlock-CShkRqab.mjs} +1 -1
  126. package/dist/client/{shop-CF7SZQNX.mjs → shop-Cu4Ib-ZA.mjs} +5 -5
  127. package/dist/client/{shop-commerce-DA7_Rq5p.mjs → shop-commerce-BzpsOdh7.mjs} +4 -4
  128. package/dist/client/{shop-commerce-store-BmLqW7Gh.mjs → shop-commerce-store-DaE7Fhj8.mjs} +1 -1
  129. package/dist/client/{shopShared-WL-E1znM.mjs → shopShared-cF0c20vB.mjs} +2 -2
  130. package/dist/client/{useEventFilters-rc8VLeLV.mjs → useEventFilters-QZ3HMgaJ.mjs} +2 -2
  131. package/dist/client/{usePolling-1ncrfd4S.mjs → usePolling-BKf0GcE-.mjs} +2 -2
  132. package/dist/preview-next/before-render.mjs +1 -1
  133. package/dist/preview-next/client/runtime.mjs +4 -4
  134. package/dist/preview-next/middleware.mjs +1 -1
  135. package/dist/{previewAuthStore-Dev9CdG9.mjs → previewAuthStore-BesgU5Xu.mjs} +1 -1
  136. package/dist/{sdk-runtime-BnrCCFJq.mjs → sdk-runtime-Cn_QSCOg.mjs} +2 -2
  137. package/dist/{separator-CFvBx2yl.mjs → separator-CEoGABRc.mjs} +1 -1
  138. package/dist/server/components.mjs +473 -289
  139. package/dist/server/config-validation.mjs +209 -61
  140. package/dist/server/config.mjs +209 -61
  141. package/dist/server/data.mjs +212 -61
  142. package/dist/server/index.mjs +40 -16
  143. package/dist/server/next.mjs +513 -307
  144. package/dist/server/page-converter.mjs +211 -64
  145. package/dist/server/prebuild.mjs +1 -1
  146. package/dist/server/rendering/server.mjs +475 -282
  147. package/dist/server/rendering.mjs +482 -290
  148. package/dist/server/routing.mjs +254 -80
  149. package/dist/server/server.mjs +252 -77
  150. package/package.json +1 -1
  151. package/dist/SdkPreviewModeRuntime-B0HPXr-l.mjs +0 -39546
  152. package/dist/client/MagicLinkForm-b5E_HoG9.mjs +0 -327
@@ -1,26 +1,12 @@
1
- import type { Brand } from '../../../../core/src/index';
1
+ import { type Brand, type MailchimpAudienceId, type MailchimpConnectionId, type NewsletterSignupAuthoringDestination, type NewsletterSignupDestinationProvider, type FooterModuleId } from '../../../../core/src/index';
2
+ export { parseMailchimpAudienceId, parseMailchimpConnectionId, parseMailchimpTagName, parseNewsletterListId, parseNewsletterSignupDestinationProvider, } from '../../../../core/src/index';
3
+ export type { MailchimpAudienceId, MailchimpConnectionId, MailchimpNewsletterDestination, MailchimpTagName, NewsletterListId, NewsletterSignupAuthoringDestination, NewsletterSignupDestinationProvider, RiverbankNewsletterDestination, } from '../../../../core/src/index';
2
4
  type NonEmptyReadonlyArray<T> = readonly [T, ...T[]];
3
5
  declare const serverResolvedMailchimpConnectionStateBrand: unique symbol;
4
6
  declare const serverValidatedMailchimpAudienceCompatibilityBrand: unique symbol;
5
- export type NewsletterListId = Brand<string, 'NewsletterListId'>;
6
- export type MailchimpConnectionId = Brand<string, 'MailchimpConnectionId'>;
7
- export type MailchimpAudienceId = Brand<string, 'MailchimpAudienceId'>;
8
- export type MailchimpTagName = Brand<string, 'MailchimpTagName'>;
9
7
  export type NewsletterSignupBlockId = Brand<string, 'NewsletterSignupBlockId'>;
10
8
  export type SignedNewsletterDestinationRef = Brand<string, 'SignedNewsletterDestinationRef'>;
11
- export type NewsletterSignupDestinationProvider = 'riverbank' | 'mailchimp';
12
9
  export type NewsletterSignupFieldPreset = 'emailOnly' | 'emailName' | 'emailFirstLast' | 'emailNameCompany';
13
- export type RiverbankNewsletterDestination = Readonly<{
14
- tag: 'riverbank_list';
15
- listId: NewsletterListId;
16
- }>;
17
- export type MailchimpNewsletterDestination = Readonly<{
18
- tag: 'mailchimp_audience';
19
- connectionId: MailchimpConnectionId;
20
- audienceId: MailchimpAudienceId;
21
- tags: readonly MailchimpTagName[];
22
- }>;
23
- export type NewsletterSignupAuthoringDestination = RiverbankNewsletterDestination | MailchimpNewsletterDestination;
24
10
  export type NewsletterSignupPublicDestinationRef = Readonly<{
25
11
  tag: 'block_ref';
26
12
  blockId: NewsletterSignupBlockId;
@@ -28,6 +14,17 @@ export type NewsletterSignupPublicDestinationRef = Readonly<{
28
14
  tag: 'signed_destination_ref';
29
15
  token: SignedNewsletterDestinationRef;
30
16
  }>;
17
+ export type NewsletterSignupDestinationSource = Readonly<{
18
+ kind: 'block';
19
+ blockId: NewsletterSignupBlockId;
20
+ }> | Readonly<{
21
+ kind: 'footer-composition';
22
+ sectionId: FooterModuleId;
23
+ }>;
24
+ type FooterNewsletterSignupSourceAttributionId = Brand<string, 'FooterNewsletterSignupSourceAttributionId'>;
25
+ export type NewsletterSignupSourceAttributionId = NewsletterSignupBlockId | FooterNewsletterSignupSourceAttributionId;
26
+ export declare function newsletterSignupSourceAttributionId(source: NewsletterSignupDestinationSource): NewsletterSignupSourceAttributionId;
27
+ export declare function parseNewsletterSignupSourceAttributionId(value: unknown): NewsletterSignupSourceAttributionId | null;
31
28
  export type NewsletterSignupRawAuthoringContent = Readonly<{
32
29
  destination?: unknown;
33
30
  destinationProvider?: unknown;
@@ -261,13 +258,8 @@ export type NewsletterSignupDestinationParseResult = Readonly<{
261
258
  success: false;
262
259
  error: NewsletterSignupDestinationParseError;
263
260
  }>;
264
- export declare function parseNewsletterListId(value: unknown): NewsletterListId | null;
265
- export declare function parseMailchimpConnectionId(value: unknown): MailchimpConnectionId | null;
266
- export declare function parseMailchimpAudienceId(value: unknown): MailchimpAudienceId | null;
267
- export declare function parseMailchimpTagName(value: unknown): MailchimpTagName | null;
268
261
  export declare function parseNewsletterSignupBlockId(value: unknown): NewsletterSignupBlockId | null;
269
262
  export declare function parseSignedNewsletterDestinationRef(value: unknown): SignedNewsletterDestinationRef | null;
270
- export declare function parseNewsletterSignupDestinationProvider(value: unknown): NewsletterSignupDestinationProvider | null;
271
263
  export declare function parseNewsletterSignupAuthoringDestination(content: unknown): NewsletterSignupDestinationParseResult;
272
264
  export declare function normalizeNewsletterSignupAuthoringDestination(content: NewsletterSignupRawAuthoringContent): NewsletterSignupAuthoringDestination | null;
273
265
  export declare function assertValidNewsletterSignupAuthoringDestination(destination: NewsletterSignupAuthoringDestination): NewsletterSignupAuthoringDestination;
@@ -297,4 +289,3 @@ export declare function selectRequiredMailchimpMergeFields(fields: readonly Mail
297
289
  export declare function deriveMailchimpAudienceCompatibilityIssues(input: MailchimpAudienceCompatibilityInput): readonly MailchimpAudienceCompatibilityIssue[];
298
290
  export declare function selectNewsletterSignupDestinationProviderOptions(): readonly NewsletterSignupDestinationProviderOption[];
299
291
  export declare function getNewsletterSignupDestinationProvider(content: NewsletterSignupRawAuthoringContent): NewsletterSignupDestinationProvider;
300
- export {};
@@ -202,5 +202,5 @@ export type NewsletterSignupAuthoringContent = Omit<NewsletterSignupContent, 'li
202
202
  destination: NewsletterSignupAuthoringDestination;
203
203
  };
204
204
  export { buildTrustedNewsletterSignupAuthoringDestination, sanitizeNewsletterSignupPublicContent, validateNewsletterSignupDestinationActivationReadiness, } from "./newsletter-signup-destination";
205
- export type { MailchimpAudienceCompatibilityIssue, MailchimpAudienceId, MailchimpConnectionId, MailchimpNewsletterDestination, MailchimpTagName, NewsletterListId, NewsletterSignupAuthoringDestination, NewsletterSignupDestinationActivationIssue, NewsletterSignupDestinationActivationInput, NewsletterSignupDestinationActivationReadiness, NewsletterSignupBlockId, NewsletterSignupDestinationEditorFieldState, NewsletterSignupDestinationReadinessIssue, NewsletterSignupFieldPreset, NewsletterSignupDestinationProviderOption, NewsletterSignupPublicDestinationRef, RiverbankNewsletterDestination, ServerResolvedMailchimpConnectionState, ServerValidatedMailchimpAudienceCompatibility, SignedNewsletterDestinationRef, TrustedNewsletterSignupAuthoringDestinationError, TrustedNewsletterSignupAuthoringDestinationResult, } from "./newsletter-signup-destination";
205
+ export type { MailchimpAudienceCompatibilityIssue, MailchimpAudienceId, MailchimpConnectionId, MailchimpNewsletterDestination, MailchimpTagName, NewsletterListId, NewsletterSignupAuthoringDestination, NewsletterSignupDestinationActivationIssue, NewsletterSignupDestinationActivationInput, NewsletterSignupDestinationActivationReadiness, NewsletterSignupBlockId, NewsletterSignupDestinationEditorFieldState, NewsletterSignupDestinationReadinessIssue, NewsletterSignupFieldPreset, NewsletterSignupDestinationProviderOption, NewsletterSignupPublicDestinationRef, NewsletterSignupSourceAttributionId, RiverbankNewsletterDestination, ServerResolvedMailchimpConnectionState, ServerValidatedMailchimpAudienceCompatibility, SignedNewsletterDestinationRef, TrustedNewsletterSignupAuthoringDestinationError, TrustedNewsletterSignupAuthoringDestinationResult, } from "./newsletter-signup-destination";
206
206
  export declare const newsletterSignupBlockDefinition: SystemBlockDefinition<NewsletterSignupContent, typeof newsletterFormBlockRuntime>;
@@ -1,38 +1,112 @@
1
- import { type FooterCompositionV1, type FooterMembershipKey, type FooterModuleId, type PublicProfile } from '../../../../core/src/index';
2
- export type FooterRuntimeModule = Readonly<{
1
+ import { type FooterCompositionV1, type FooterMembershipKey, type FooterModuleId, type FooterRichText, type FooterSection, type NewsletterSignupAuthoringDestination, type PublicProfile, type Result } from '../../../../core/src/index';
2
+ import type { FormSourceProps } from '../runtime/nodes/form.interactive';
3
+ import type { NewsletterFormSourceProps } from '../runtime/nodes/newsletter-form.interactive';
4
+ type FooterRuntimeModuleBase<TKind extends FooterSection['kind']> = Readonly<{
3
5
  id: FooterModuleId;
4
- kind: 'brand' | 'navigation' | 'legal-navigation' | 'business-address' | 'contact' | 'opening-hours' | 'social-links' | 'supporting-text' | 'legal';
6
+ kind: TKind;
5
7
  heading: string | null;
8
+ }>;
9
+ type FooterRuntimeContactLink = Readonly<{
10
+ href: string;
11
+ label: string;
12
+ }>;
13
+ type FooterRuntimeOpeningHours = Readonly<{
14
+ weekday: string;
15
+ hours: string;
16
+ }>;
17
+ type FooterRuntimeSocialLink = Readonly<{
18
+ href: string;
19
+ label: string;
20
+ icon: string | null;
21
+ }>;
22
+ type UnionKeys<T> = T extends T ? keyof T : never;
23
+ type StrictUnionMember<T, TAll> = T extends T ? T & Partial<Record<Exclude<UnionKeys<TAll>, keyof T>, never>> : never;
24
+ type StrictUnion<T> = StrictUnionMember<T, T>;
25
+ type FooterRuntimeModuleVariant = (FooterRuntimeModuleBase<'brand'> & Readonly<{
26
+ showLogo: boolean;
27
+ showTitle: boolean;
28
+ }>) | (FooterRuntimeModuleBase<'navigation'> & Readonly<{
6
29
  navigationClassName?: string;
7
- showLogo?: boolean;
8
- showTitle?: boolean;
9
- address?: string;
10
- contactLinks?: readonly Readonly<{
11
- href: string;
12
- label: string;
13
- }>[];
14
- openingHours?: readonly Readonly<{
15
- weekday: string;
16
- hours: string;
17
- }>[];
18
- timeZone?: string;
19
- socialLinks?: readonly Readonly<{
20
- href: string;
21
- label: string;
22
- icon: string | null;
23
- }>[];
24
- content?: Readonly<Record<string, unknown>>;
30
+ }>) | FooterRuntimeModuleBase<'legal-navigation'> | (FooterRuntimeModuleBase<'business-address'> & Readonly<{
31
+ address: string;
32
+ }>) | (FooterRuntimeModuleBase<'contact'> & Readonly<{
33
+ contactLinks: readonly FooterRuntimeContactLink[];
34
+ }>) | (FooterRuntimeModuleBase<'opening-hours'> & Readonly<{
35
+ openingHours: readonly FooterRuntimeOpeningHours[];
36
+ timeZone: string;
37
+ }>) | (FooterRuntimeModuleBase<'social-links'> & Readonly<{
38
+ socialLinks: readonly FooterRuntimeSocialLink[];
39
+ }>) | (FooterRuntimeModuleBase<'supporting-text'> & Readonly<{
40
+ content: FooterRichText;
41
+ }>) | (FooterRuntimeModuleBase<'legal'> & Readonly<{
42
+ content: FooterRichText;
43
+ }>) | (FooterRuntimeModuleBase<'engagement'> & Readonly<{
44
+ engagement: FooterRuntimeEngagement;
45
+ }>);
46
+ export type FooterRuntimeModule = StrictUnion<FooterRuntimeModuleVariant>;
47
+ export type FooterRuntimeEngagement = Readonly<{
48
+ kind: 'standard-contact';
49
+ intro: string | null;
50
+ runtime: FooterStandardContactRuntime;
51
+ }> | Readonly<{
52
+ kind: 'mailing-list';
53
+ intro: string | null;
54
+ runtime: FooterMailingListRuntime;
55
+ }>;
56
+ export type FooterStandardContactRuntime = Readonly<{
57
+ value: NonNullable<FormSourceProps['value']>;
58
+ submitLabel?: FormSourceProps['submitLabel'];
59
+ successMessage?: FormSourceProps['successMessage'];
60
+ }>;
61
+ type FooterMailingListRuntimeBase = Readonly<{
62
+ preset: 'emailOnly';
63
+ includePhone?: false;
64
+ buttonLabel?: NewsletterFormSourceProps['buttonLabel'];
65
+ successMessage?: NewsletterFormSourceProps['successMessage'];
66
+ privacyNote?: NewsletterFormSourceProps['privacyNote'];
67
+ }>;
68
+ export type FooterMailingListRuntime = FooterMailingListRuntimeBase & (Readonly<{
69
+ mode?: 'public';
70
+ source: 'signed-footer';
71
+ destinationRef: NonNullable<Extract<NewsletterFormSourceProps, {
72
+ source: 'signed-footer';
73
+ }>['destinationRef']>;
74
+ listId?: never;
75
+ }> | Readonly<{
76
+ mode: 'preview';
77
+ source: 'legacy-direct-list';
78
+ destinationRef?: never;
79
+ listId: string | null;
80
+ target: NewsletterSignupAuthoringDestination;
81
+ }>);
82
+ export type FooterResolvedEngagement = Readonly<{
83
+ kind: 'none';
84
+ }> | Readonly<{
85
+ kind: 'needs-attention';
86
+ reason: 'missing-form' | 'wrong-form-kind' | 'invalid-form' | 'destination-not-ready';
87
+ }> | Readonly<{
88
+ kind: 'resolved';
89
+ sectionId: FooterModuleId;
90
+ engagement: Extract<FooterRuntimeEngagement, {
91
+ kind: 'standard-contact';
92
+ }>;
93
+ }> | Readonly<{
94
+ kind: 'resolved';
95
+ sectionId: FooterModuleId;
96
+ engagement: Extract<FooterRuntimeEngagement, {
97
+ kind: 'mailing-list';
98
+ }>;
25
99
  }>;
26
100
  export type FooterRuntimeViewModel = Readonly<{
27
101
  membershipKey: FooterMembershipKey;
28
102
  regions: readonly FooterRuntimeRegion[];
29
103
  }>;
30
104
  export type FooterRuntimeGroup = Readonly<{
31
- kind: 'identity' | 'main-navigation' | 'visit' | 'legal-ending';
105
+ kind: 'identity' | 'main-navigation' | 'visit' | 'engagement' | 'legal-ending';
32
106
  modules: readonly FooterRuntimeModule[];
33
107
  }>;
34
108
  export type FooterRuntimeRegion = Readonly<{
35
- kind: 'main' | 'bottom';
109
+ kind: 'engagement-row' | 'main' | 'bottom';
36
110
  className: string;
37
111
  groups: readonly FooterRuntimeGroup[];
38
112
  }>;
@@ -45,6 +119,18 @@ type FooterRuntimeViewModelInput = Readonly<{
45
119
  hasLogo?: boolean;
46
120
  legalRegion?: 'integrated' | 'separate';
47
121
  layoutVariant?: 'simple' | 'columns' | 'split';
122
+ engagement: FooterResolvedEngagement;
123
+ }>;
124
+ type FooterRuntimeSectionProjectionInput = Readonly<{
125
+ section: FooterSection;
126
+ publicProfile: PublicProfile;
127
+ businessAddress: string | null;
128
+ engagement: FooterResolvedEngagement;
129
+ }>;
130
+ export type FooterRuntimeSectionProjectionError = Readonly<{
131
+ kind: 'missing-source';
132
+ sectionKind: 'business-address' | 'contact' | 'opening-hours' | 'social-links' | 'supporting-text' | 'legal' | 'engagement';
48
133
  }>;
134
+ export declare function projectFooterRuntimeSection(input: FooterRuntimeSectionProjectionInput): Result<FooterRuntimeModule, FooterRuntimeSectionProjectionError>;
49
135
  export declare function buildFooterRuntimeViewModel(input: FooterRuntimeViewModelInput): FooterRuntimeViewModel;
50
136
  export {};
@@ -1,3 +1,3 @@
1
- export declare const SUPPORTED_LOADER_ENDPOINTS: readonly ["listPublishedEntries", "getPublishedEntryPreview", "listPublicEvents", "listPublicRecurringSchedule", "getPublicEventDetails", "listPublicWholeSeriesOfferings", "listPublicRouteCandidates", "listPublicTeamMembers", "listPublicProducts", "listPublicPasses", "listPublicMemberships", "getPublicFormById", "getPublicBookingServices", "getPublicWeeklySlotAvailability"];
1
+ export declare const SUPPORTED_LOADER_ENDPOINTS: readonly ["listPublishedEntries", "getPublishedEntryPreview", "listPublicEvents", "listPublicRecurringSchedule", "getPublicEventDetails", "listPublicWholeSeriesOfferings", "getPublicWholeSeriesOffering", "listPublicRouteCandidates", "listPublicTeamMembers", "listPublicProducts", "listPublicPasses", "listPublicMemberships", "getPublicFormById", "getPublicBookingServices", "getPublicWeeklySlotAvailability"];
2
2
  export type SupportedLoaderEndpoint = typeof SUPPORTED_LOADER_ENDPOINTS[number];
3
3
  export declare function isSupportedLoaderEndpoint(endpoint: string): endpoint is SupportedLoaderEndpoint;
@@ -726,22 +726,7 @@ export declare const runtimeBackedBlockClientEntries: {
726
726
  readonly 'newsletter-form': Readonly<{
727
727
  definition: import("../..").SystemBlockDefinition<unknown, Readonly<{
728
728
  kind: "progressive";
729
- buildRender: (source: Readonly<{
730
- blockId?: string | null;
731
- siteId?: string;
732
- apiBaseUrl?: string;
733
- listId?: string | null;
734
- destinationProvider?: import("../../blocks/newsletter-signup-destination").NewsletterSignupDestinationProvider | null;
735
- preset?: import("../nodes/newsletter-form.types").NewsletterPreset;
736
- includePhone?: boolean;
737
- buttonLabel?: string | null;
738
- buttonVariant?: import("../nodes/newsletter-form.types").NewsletterButtonVariant | null;
739
- successMessage?: string | null;
740
- privacyNote?: string | null;
741
- tags?: string | null;
742
- spamProtectionEnabled?: boolean;
743
- className?: string | null;
744
- }>) => Readonly<{
729
+ buildRender: (source: import("../nodes/newsletter-form.types").NewsletterFormProps) => Readonly<{
745
730
  display: Readonly<{
746
731
  kind: "newsletter-form";
747
732
  className: string | null;
@@ -752,8 +737,7 @@ export declare const runtimeBackedBlockClientEntries: {
752
737
  fields: readonly import("../nodes/newsletter-form.types").NewsletterFieldDef[];
753
738
  }>;
754
739
  hydration: Readonly<{
755
- destinationRef?: import("../..").NewsletterSignupPublicDestinationRef | null;
756
- listId?: string | null;
740
+ target: import("../nodes/newsletter-form.interactive").NewsletterFormHydrationTarget;
757
741
  preset: import("../nodes/newsletter-form.types").NewsletterPreset;
758
742
  includePhone: boolean;
759
743
  tags?: string | null;
@@ -762,38 +746,8 @@ export declare const runtimeBackedBlockClientEntries: {
762
746
  }>;
763
747
  contracts: Readonly<{
764
748
  source: Readonly<{
765
- encode: (value: Readonly<{
766
- blockId?: string | null;
767
- siteId?: string;
768
- apiBaseUrl?: string;
769
- listId?: string | null;
770
- destinationProvider?: import("../../blocks/newsletter-signup-destination").NewsletterSignupDestinationProvider | null;
771
- preset?: import("../nodes/newsletter-form.types").NewsletterPreset;
772
- includePhone?: boolean;
773
- buttonLabel?: string | null;
774
- buttonVariant?: import("../nodes/newsletter-form.types").NewsletterButtonVariant | null;
775
- successMessage?: string | null;
776
- privacyNote?: string | null;
777
- tags?: string | null;
778
- spamProtectionEnabled?: boolean;
779
- className?: string | null;
780
- }>) => unknown;
781
- decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
782
- blockId?: string | null;
783
- siteId?: string;
784
- apiBaseUrl?: string;
785
- listId?: string | null;
786
- destinationProvider?: import("../../blocks/newsletter-signup-destination").NewsletterSignupDestinationProvider | null;
787
- preset?: import("../nodes/newsletter-form.types").NewsletterPreset;
788
- includePhone?: boolean;
789
- buttonLabel?: string | null;
790
- buttonVariant?: import("../nodes/newsletter-form.types").NewsletterButtonVariant | null;
791
- successMessage?: string | null;
792
- privacyNote?: string | null;
793
- tags?: string | null;
794
- spamProtectionEnabled?: boolean;
795
- className?: string | null;
796
- }>>;
749
+ encode: (value: import("../nodes/newsletter-form.types").NewsletterFormProps) => unknown;
750
+ decode: (input: unknown) => import("../../../contracts").DecodeResult<import("../nodes/newsletter-form.types").NewsletterFormProps>;
797
751
  }>;
798
752
  render: Readonly<{
799
753
  encode: (value: Readonly<{
@@ -807,8 +761,7 @@ export declare const runtimeBackedBlockClientEntries: {
807
761
  fields: readonly import("../nodes/newsletter-form.types").NewsletterFieldDef[];
808
762
  }>;
809
763
  hydration: Readonly<{
810
- destinationRef?: import("../..").NewsletterSignupPublicDestinationRef | null;
811
- listId?: string | null;
764
+ target: import("../nodes/newsletter-form.interactive").NewsletterFormHydrationTarget;
812
765
  preset: import("../nodes/newsletter-form.types").NewsletterPreset;
813
766
  includePhone: boolean;
814
767
  tags?: string | null;
@@ -826,8 +779,7 @@ export declare const runtimeBackedBlockClientEntries: {
826
779
  fields: readonly import("../nodes/newsletter-form.types").NewsletterFieldDef[];
827
780
  }>;
828
781
  hydration: Readonly<{
829
- destinationRef?: import("../..").NewsletterSignupPublicDestinationRef | null;
830
- listId?: string | null;
782
+ target: import("../nodes/newsletter-form.interactive").NewsletterFormHydrationTarget;
831
783
  preset: import("../nodes/newsletter-form.types").NewsletterPreset;
832
784
  includePhone: boolean;
833
785
  tags?: string | null;
@@ -842,22 +794,7 @@ export declare const runtimeBackedBlockClientEntries: {
842
794
  }>;
843
795
  runtime: Readonly<{
844
796
  kind: "progressive";
845
- buildRender: (source: Readonly<{
846
- blockId?: string | null;
847
- siteId?: string;
848
- apiBaseUrl?: string;
849
- listId?: string | null;
850
- destinationProvider?: import("../../blocks/newsletter-signup-destination").NewsletterSignupDestinationProvider | null;
851
- preset?: import("../nodes/newsletter-form.types").NewsletterPreset;
852
- includePhone?: boolean;
853
- buttonLabel?: string | null;
854
- buttonVariant?: import("../nodes/newsletter-form.types").NewsletterButtonVariant | null;
855
- successMessage?: string | null;
856
- privacyNote?: string | null;
857
- tags?: string | null;
858
- spamProtectionEnabled?: boolean;
859
- className?: string | null;
860
- }>) => Readonly<{
797
+ buildRender: (source: import("../nodes/newsletter-form.types").NewsletterFormProps) => Readonly<{
861
798
  display: Readonly<{
862
799
  kind: "newsletter-form";
863
800
  className: string | null;
@@ -868,8 +805,7 @@ export declare const runtimeBackedBlockClientEntries: {
868
805
  fields: readonly import("../nodes/newsletter-form.types").NewsletterFieldDef[];
869
806
  }>;
870
807
  hydration: Readonly<{
871
- destinationRef?: import("../..").NewsletterSignupPublicDestinationRef | null;
872
- listId?: string | null;
808
+ target: import("../nodes/newsletter-form.interactive").NewsletterFormHydrationTarget;
873
809
  preset: import("../nodes/newsletter-form.types").NewsletterPreset;
874
810
  includePhone: boolean;
875
811
  tags?: string | null;
@@ -878,38 +814,8 @@ export declare const runtimeBackedBlockClientEntries: {
878
814
  }>;
879
815
  contracts: Readonly<{
880
816
  source: Readonly<{
881
- encode: (value: Readonly<{
882
- blockId?: string | null;
883
- siteId?: string;
884
- apiBaseUrl?: string;
885
- listId?: string | null;
886
- destinationProvider?: import("../../blocks/newsletter-signup-destination").NewsletterSignupDestinationProvider | null;
887
- preset?: import("../nodes/newsletter-form.types").NewsletterPreset;
888
- includePhone?: boolean;
889
- buttonLabel?: string | null;
890
- buttonVariant?: import("../nodes/newsletter-form.types").NewsletterButtonVariant | null;
891
- successMessage?: string | null;
892
- privacyNote?: string | null;
893
- tags?: string | null;
894
- spamProtectionEnabled?: boolean;
895
- className?: string | null;
896
- }>) => unknown;
897
- decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
898
- blockId?: string | null;
899
- siteId?: string;
900
- apiBaseUrl?: string;
901
- listId?: string | null;
902
- destinationProvider?: import("../../blocks/newsletter-signup-destination").NewsletterSignupDestinationProvider | null;
903
- preset?: import("../nodes/newsletter-form.types").NewsletterPreset;
904
- includePhone?: boolean;
905
- buttonLabel?: string | null;
906
- buttonVariant?: import("../nodes/newsletter-form.types").NewsletterButtonVariant | null;
907
- successMessage?: string | null;
908
- privacyNote?: string | null;
909
- tags?: string | null;
910
- spamProtectionEnabled?: boolean;
911
- className?: string | null;
912
- }>>;
817
+ encode: (value: import("../nodes/newsletter-form.types").NewsletterFormProps) => unknown;
818
+ decode: (input: unknown) => import("../../../contracts").DecodeResult<import("../nodes/newsletter-form.types").NewsletterFormProps>;
913
819
  }>;
914
820
  render: Readonly<{
915
821
  encode: (value: Readonly<{
@@ -923,8 +829,7 @@ export declare const runtimeBackedBlockClientEntries: {
923
829
  fields: readonly import("../nodes/newsletter-form.types").NewsletterFieldDef[];
924
830
  }>;
925
831
  hydration: Readonly<{
926
- destinationRef?: import("../..").NewsletterSignupPublicDestinationRef | null;
927
- listId?: string | null;
832
+ target: import("../nodes/newsletter-form.interactive").NewsletterFormHydrationTarget;
928
833
  preset: import("../nodes/newsletter-form.types").NewsletterPreset;
929
834
  includePhone: boolean;
930
835
  tags?: string | null;
@@ -942,8 +847,7 @@ export declare const runtimeBackedBlockClientEntries: {
942
847
  fields: readonly import("../nodes/newsletter-form.types").NewsletterFieldDef[];
943
848
  }>;
944
849
  hydration: Readonly<{
945
- destinationRef?: import("../..").NewsletterSignupPublicDestinationRef | null;
946
- listId?: string | null;
850
+ target: import("../nodes/newsletter-form.interactive").NewsletterFormHydrationTarget;
947
851
  preset: import("../nodes/newsletter-form.types").NewsletterPreset;
948
852
  includePhone: boolean;
949
853
  tags?: string | null;
@@ -1929,13 +1833,18 @@ export declare const runtimeBackedBlockClientEntries: {
1929
1833
  occurrenceContext?: import("../..").OccurrenceContext | null;
1930
1834
  subject?: import("../nodes/event-registration/eventScope").EventRegistrationPageSurfaceSubject | null;
1931
1835
  events?: import("../..").PublicEvent[] | null;
1836
+ wholeSeriesOfferings?: import("../..").PublicCourse[] | null;
1837
+ wholeSeriesOffering?: import("../..").PublicCourse | null;
1932
1838
  className?: string | null;
1933
1839
  buttonText?: string | null;
1934
1840
  maxTickets?: string | null;
1935
1841
  showVenue?: boolean;
1936
1842
  showCapacity?: boolean;
1843
+ showSessions?: boolean;
1844
+ showPrice?: boolean;
1937
1845
  successMessage?: string;
1938
1846
  waitlistMessage?: string;
1847
+ membershipMessage?: string;
1939
1848
  buttonVariant?: import("../../..").BlockButtonRole;
1940
1849
  overlayEnabled?: boolean;
1941
1850
  spamProtectionEnabled?: boolean;
@@ -1969,13 +1878,18 @@ export declare const runtimeBackedBlockClientEntries: {
1969
1878
  occurrenceContext?: import("../..").OccurrenceContext | null;
1970
1879
  subject?: import("../nodes/event-registration/eventScope").EventRegistrationPageSurfaceSubject | null;
1971
1880
  events?: import("../..").PublicEvent[] | null;
1881
+ wholeSeriesOfferings?: import("../..").PublicCourse[] | null;
1882
+ wholeSeriesOffering?: import("../..").PublicCourse | null;
1972
1883
  className?: string | null;
1973
1884
  buttonText?: string | null;
1974
1885
  maxTickets?: string | null;
1975
1886
  showVenue?: boolean;
1976
1887
  showCapacity?: boolean;
1888
+ showSessions?: boolean;
1889
+ showPrice?: boolean;
1977
1890
  successMessage?: string;
1978
1891
  waitlistMessage?: string;
1892
+ membershipMessage?: string;
1979
1893
  buttonVariant?: import("../../..").BlockButtonRole;
1980
1894
  overlayEnabled?: boolean;
1981
1895
  spamProtectionEnabled?: boolean;
@@ -1996,13 +1910,18 @@ export declare const runtimeBackedBlockClientEntries: {
1996
1910
  occurrenceContext?: import("../..").OccurrenceContext | null;
1997
1911
  subject?: import("../nodes/event-registration/eventScope").EventRegistrationPageSurfaceSubject | null;
1998
1912
  events?: import("../..").PublicEvent[] | null;
1913
+ wholeSeriesOfferings?: import("../..").PublicCourse[] | null;
1914
+ wholeSeriesOffering?: import("../..").PublicCourse | null;
1999
1915
  className?: string | null;
2000
1916
  buttonText?: string | null;
2001
1917
  maxTickets?: string | null;
2002
1918
  showVenue?: boolean;
2003
1919
  showCapacity?: boolean;
1920
+ showSessions?: boolean;
1921
+ showPrice?: boolean;
2004
1922
  successMessage?: string;
2005
1923
  waitlistMessage?: string;
1924
+ membershipMessage?: string;
2006
1925
  buttonVariant?: import("../../..").BlockButtonRole;
2007
1926
  overlayEnabled?: boolean;
2008
1927
  spamProtectionEnabled?: boolean;
@@ -2057,13 +1976,18 @@ export declare const runtimeBackedBlockClientEntries: {
2057
1976
  occurrenceContext?: import("../..").OccurrenceContext | null;
2058
1977
  subject?: import("../nodes/event-registration/eventScope").EventRegistrationPageSurfaceSubject | null;
2059
1978
  events?: import("../..").PublicEvent[] | null;
1979
+ wholeSeriesOfferings?: import("../..").PublicCourse[] | null;
1980
+ wholeSeriesOffering?: import("../..").PublicCourse | null;
2060
1981
  className?: string | null;
2061
1982
  buttonText?: string | null;
2062
1983
  maxTickets?: string | null;
2063
1984
  showVenue?: boolean;
2064
1985
  showCapacity?: boolean;
1986
+ showSessions?: boolean;
1987
+ showPrice?: boolean;
2065
1988
  successMessage?: string;
2066
1989
  waitlistMessage?: string;
1990
+ membershipMessage?: string;
2067
1991
  buttonVariant?: import("../../..").BlockButtonRole;
2068
1992
  overlayEnabled?: boolean;
2069
1993
  spamProtectionEnabled?: boolean;
@@ -2097,13 +2021,18 @@ export declare const runtimeBackedBlockClientEntries: {
2097
2021
  occurrenceContext?: import("../..").OccurrenceContext | null;
2098
2022
  subject?: import("../nodes/event-registration/eventScope").EventRegistrationPageSurfaceSubject | null;
2099
2023
  events?: import("../..").PublicEvent[] | null;
2024
+ wholeSeriesOfferings?: import("../..").PublicCourse[] | null;
2025
+ wholeSeriesOffering?: import("../..").PublicCourse | null;
2100
2026
  className?: string | null;
2101
2027
  buttonText?: string | null;
2102
2028
  maxTickets?: string | null;
2103
2029
  showVenue?: boolean;
2104
2030
  showCapacity?: boolean;
2031
+ showSessions?: boolean;
2032
+ showPrice?: boolean;
2105
2033
  successMessage?: string;
2106
2034
  waitlistMessage?: string;
2035
+ membershipMessage?: string;
2107
2036
  buttonVariant?: import("../../..").BlockButtonRole;
2108
2037
  overlayEnabled?: boolean;
2109
2038
  spamProtectionEnabled?: boolean;
@@ -2124,13 +2053,18 @@ export declare const runtimeBackedBlockClientEntries: {
2124
2053
  occurrenceContext?: import("../..").OccurrenceContext | null;
2125
2054
  subject?: import("../nodes/event-registration/eventScope").EventRegistrationPageSurfaceSubject | null;
2126
2055
  events?: import("../..").PublicEvent[] | null;
2056
+ wholeSeriesOfferings?: import("../..").PublicCourse[] | null;
2057
+ wholeSeriesOffering?: import("../..").PublicCourse | null;
2127
2058
  className?: string | null;
2128
2059
  buttonText?: string | null;
2129
2060
  maxTickets?: string | null;
2130
2061
  showVenue?: boolean;
2131
2062
  showCapacity?: boolean;
2063
+ showSessions?: boolean;
2064
+ showPrice?: boolean;
2132
2065
  successMessage?: string;
2133
2066
  waitlistMessage?: string;
2067
+ membershipMessage?: string;
2134
2068
  buttonVariant?: import("../../..").BlockButtonRole;
2135
2069
  overlayEnabled?: boolean;
2136
2070
  spamProtectionEnabled?: boolean;