@riverbankcms/sdk 0.138.0 → 0.139.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 (208) hide show
  1. package/README.md +11 -15
  2. package/dist/{PreviewEditorSidebar-BVPur_CU.mjs → PreviewEditorSidebar-BDeenhi3.mjs} +4 -4
  3. package/dist/{PreviewEditorUI-DLhWX8oh.mjs → PreviewEditorUI-DSRhgjF5.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-BguJY1SW.mjs → PreviewQueryProvider-D2K8GLUG.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-Tda6qw4z.mjs → SdkPreviewModeRuntime-CL7wSnYu.mjs} +47 -27
  6. package/dist/{SiteChromeCustomizeContext-BHFgMjde.mjs → SiteChromeCustomizeContext-BhDn-5ir.mjs} +7771 -5863
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +99 -330
  8. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +9 -30
  9. package/dist/_dts/api/src/billing.d.ts +10 -3
  10. package/dist/_dts/api/src/contentRuntime.d.ts +8 -1
  11. package/dist/_dts/api/src/endpoints.d.ts +182 -103
  12. package/dist/_dts/api/src/footerSettings.d.ts +2 -5
  13. package/dist/_dts/api/src/index.d.ts +11 -9
  14. package/dist/_dts/api/src/mailchimpIntegration.d.ts +2 -59
  15. package/dist/_dts/api/src/mailingListIntegration.d.ts +117 -0
  16. package/dist/_dts/api/src/navigation/locations.d.ts +1 -0
  17. package/dist/_dts/api/src/navigation.d.ts +1 -26
  18. package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +109 -2
  19. package/dist/_dts/api/src/onboarding/surfaceData.d.ts +185 -0
  20. package/dist/_dts/api/src/privacyPolicy.d.ts +74 -2
  21. package/dist/_dts/api/src/publicBookingAvailabilityEndpointDefinitions.d.ts +6 -6
  22. package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +1 -1
  23. package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +2 -4
  24. package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +10 -24
  25. package/dist/_dts/api/src/publicReadEndpointDefinitions.d.ts +73 -0
  26. package/dist/_dts/api/src/schemas/site-api-keys.d.ts +1 -1
  27. package/dist/_dts/api/src/sdkContracts.d.ts +2 -10
  28. package/dist/_dts/api/src/sdkThemeWire.d.ts +2 -2
  29. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +0 -29
  30. package/dist/_dts/api/src/siteOnboarding.d.ts +91 -228
  31. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -9
  32. package/dist/_dts/api/src/siteSettings.d.ts +20 -1
  33. package/dist/_dts/api/src/types.d.ts +5 -4
  34. package/dist/_dts/billing/src/membership/index.d.ts +14 -7
  35. package/dist/_dts/billing/src/plans/display.d.ts +15 -0
  36. package/dist/_dts/billing/src/plans/registry.d.ts +2 -0
  37. package/dist/_dts/billing/src/plans/standing.d.ts +19 -0
  38. package/dist/_dts/billing/src/plans/types.d.ts +1 -7
  39. package/dist/_dts/billing/src/subscriptions/evidence.d.ts +12 -0
  40. package/dist/_dts/billing/src/subscriptions/standingEvidence.d.ts +31 -0
  41. package/dist/_dts/billing/src/subscriptions/store.d.ts +23 -5
  42. package/dist/_dts/blocks/src/PageRenderer.d.ts +6 -15
  43. package/dist/_dts/blocks/src/client.d.ts +1 -1
  44. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +32 -16
  45. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +4 -0
  46. package/dist/_dts/blocks/src/pageRenderingMode.d.ts +12 -6
  47. package/dist/_dts/blocks/src/system/blocks/appointment-services.d.ts +11 -0
  48. package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +39 -66
  49. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +39 -114
  50. package/dist/_dts/blocks/src/system/blocks/offerings-preview/catalogue.d.ts +18 -0
  51. package/dist/_dts/blocks/src/system/blocks/offerings-preview/fields.d.ts +2 -0
  52. package/dist/_dts/blocks/src/system/blocks/offerings-preview/index.d.ts +4 -0
  53. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +7 -13
  54. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  55. package/dist/_dts/blocks/src/system/data/index.d.ts +2 -2
  56. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  57. package/dist/_dts/blocks/src/system/data/publicLoaderCachePolicy.d.ts +2 -74
  58. package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +33 -100
  59. package/dist/_dts/blocks/src/system/runtime/api/types/newsletter.d.ts +5 -15
  60. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +48 -24
  61. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -12
  62. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +3 -0
  63. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +1 -1
  64. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarToday.d.ts +22 -0
  65. package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +51 -0
  66. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -0
  67. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +0 -1
  68. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +28 -0
  69. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/bookability.d.ts +9 -0
  70. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +14 -0
  71. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/duration.d.ts +2 -0
  72. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/index.d.ts +4 -0
  73. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/location.d.ts +2 -0
  74. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/quickDates.d.ts +16 -0
  75. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/AgendaEventCard.d.ts +9 -1
  76. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayCell.d.ts +2 -0
  77. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayHeaders.d.ts +4 -0
  78. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DayEventsModal.d.ts +2 -1
  79. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +5 -0
  80. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -1
  81. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventQuickDates.d.ts +15 -0
  82. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +7 -3
  83. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekTimetableView.d.ts +1 -0
  84. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/index.d.ts +2 -0
  85. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/timetableModel.d.ts +1 -0
  86. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/useHydrationReady.d.ts +6 -0
  87. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.state.d.ts +3 -0
  88. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +56 -33
  89. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +3 -3
  90. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +13 -31
  91. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview-catalogue.d.ts +14 -0
  92. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview-content.d.ts +23 -0
  93. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +4 -2
  94. package/dist/_dts/blocks/src/system/transforms/registry/formatting.d.ts +5 -0
  95. package/dist/_dts/commerce/src/purchase/index.d.ts +1 -0
  96. package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +5 -12
  97. package/dist/_dts/commerce/src/purchase/stripeCommissionMetadata.d.ts +34 -0
  98. package/dist/_dts/content-editor/src/footerEngagementDraft.d.ts +6 -24
  99. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +1 -2
  100. package/dist/_dts/core/src/footer-engagement.d.ts +2 -6
  101. package/dist/_dts/core/src/index.d.ts +9 -1
  102. package/dist/_dts/core/src/mailing-list-identifiers.d.ts +21 -0
  103. package/dist/_dts/core/src/mailing-list-runtime.d.ts +42 -0
  104. package/dist/_dts/core/src/mailing-list-setup-parser.d.ts +14 -0
  105. package/dist/_dts/core/src/mailing-list-setup.d.ts +129 -0
  106. package/dist/_dts/core/src/mailing-list-submission.d.ts +244 -0
  107. package/dist/_dts/core/src/mailing-list-targeting-parser.d.ts +12 -0
  108. package/dist/_dts/core/src/mailing-list-targeting.d.ts +93 -0
  109. package/dist/_dts/core/src/navigation-locations.d.ts +28 -0
  110. package/dist/_dts/core/src/public-profile.d.ts +9 -1
  111. package/dist/_dts/core/src/public-read-cache-contract.d.ts +45 -0
  112. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +529 -373
  113. package/dist/_dts/editor-blocks/src/widgets/index.d.ts +1 -0
  114. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListTargetingField.d.ts +11 -0
  115. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/context.d.ts +13 -0
  116. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/index.d.ts +3 -0
  117. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/loaders.d.ts +6 -0
  118. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +1 -0
  119. package/dist/_dts/sdk/src/client/publicAppointmentReadOperations.d.ts +12 -0
  120. package/dist/_dts/sdk/src/client/publicEventReadOperations.d.ts +2 -1
  121. package/dist/_dts/sdk/src/client/publicLoaderCacheAccess.d.ts +11 -4
  122. package/dist/_dts/sdk/src/config/content-types.d.ts +3 -13
  123. package/dist/_dts/sdk/src/config/content-validation.d.ts +5 -8
  124. package/dist/_dts/sdk/src/constants.d.ts +3 -3
  125. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  126. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +12 -31
  127. package/dist/_dts/sdk/src/navigation/index.d.ts +11 -29
  128. package/dist/_dts/sdk/src/next/index.d.ts +4 -4
  129. package/dist/_dts/sdk/src/prebuild/types.d.ts +1 -5
  130. package/dist/_dts/sdk/src/public-api/contracts.d.ts +33 -16
  131. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +3 -0
  132. package/dist/_dts/sdk/src/rendering/client.d.ts +3 -20
  133. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +3 -0
  134. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +4 -0
  135. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +1 -0
  136. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
  137. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  138. package/dist/_dts/sdk/src/version.d.ts +1 -1
  139. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  140. package/dist/_dts/theme-core/src/hosted-booking-appearance.d.ts +41 -0
  141. package/dist/_dts/theme-core/src/index.d.ts +1 -0
  142. package/dist/_dts/theme-core/src/runtime/buildThemeRuntime.d.ts +0 -1
  143. package/dist/_dts/theme-core/src/tokens/tokens.d.ts +7 -0
  144. package/dist/_dts/ui/src/badge.d.ts +1 -1
  145. package/dist/_dts/ui/src/callout.d.ts +1 -1
  146. package/dist/client/{BookingConsentAgreement-DQUik1Mx.mjs → BookingConsentAgreement-CZvTDtsK.mjs} +2 -2
  147. package/dist/client/{DiscountCodeDisclosure-CU67Q4vH.mjs → DiscountCodeDisclosure-D-DsLCMU.mjs} +1 -1
  148. package/dist/client/{EventCombined.client-a02TXUgg.mjs → EventCombined.client-dWqgd5ZO.mjs} +443 -199
  149. package/dist/client/{EventListing.client-99qx7jFl.mjs → EventListing.client-BMRa9IYp.mjs} +2 -2
  150. package/dist/client/{LeafletStaticMap-CWzcq73L.mjs → LeafletStaticMap-D21W9kBZ.mjs} +1 -1
  151. package/dist/client/{accordion-D1nb3-Oj.mjs → accordion-FxF_ta47.mjs} +1 -1
  152. package/dist/client/{bookingForm-BGrmLhaO.mjs → bookingForm-YnwW4TGw.mjs} +5 -5
  153. package/dist/client/bookings.mjs +43 -2
  154. package/dist/client/{carousel-DSmOx3ad.mjs → carousel-vng7fFT5.mjs} +1 -1
  155. package/dist/client/{cart-COWeOIUk.mjs → cart-DEPDsjNk.mjs} +3 -3
  156. package/dist/client/{checkout-CeysaIJK.mjs → checkout-CZRWu9rW.mjs} +3 -3
  157. package/dist/client/client.mjs +3331 -1407
  158. package/dist/client/{context-DBzX85Xc.mjs → context-DvU_WUmd.mjs} +4 -3
  159. package/dist/client/{dates-DCYhZBlW.mjs → dates-wnPMiRl5.mjs} +21 -3
  160. package/dist/client/{eventCalendar-BgsN73Ul.mjs → eventCalendar-BA3Q5L15.mjs} +80 -78
  161. package/dist/client/{eventCombined-DcZQAMQP.mjs → eventCombined-51wgR-1R.mjs} +3 -3
  162. package/dist/client/{eventDetails-BWwGJ54l.mjs → eventDetails-modaetpm.mjs} +4 -4
  163. package/dist/client/{eventListing-DqYqV8vp.mjs → eventListing-D8t2J3Kv.mjs} +3 -3
  164. package/dist/client/{eventRegistration-DQGDgu_e.mjs → eventRegistration-CYqtkCE_.mjs} +49 -9
  165. package/dist/client/{form-ClfpasVT.mjs → form-CBKXN5In.mjs} +2 -2
  166. package/dist/client/{headerSection-BuOMe98N.mjs → headerSection-DylDqNrs.mjs} +2 -2
  167. package/dist/client/hooks.mjs +1259 -555
  168. package/dist/client/{locationMap-CEqu_sfa.mjs → locationMap-CvWrG0vZ.mjs} +2 -2
  169. package/dist/client/{newsletterForm-IbrHjMxy.mjs → newsletterForm-Btwk70zw.mjs} +117 -38
  170. package/dist/client/{pricing-xj7MPZlK.mjs → pricing-Uzw-GQ6Y.mjs} +1 -1
  171. package/dist/client/{productDetail-vxqTt5Xj.mjs → productDetail-JLcUYKnd.mjs} +3 -3
  172. package/dist/client/{productList-OTdZu8sb.mjs → productList-FM0cbUzj.mjs} +3 -3
  173. package/dist/client/{propsDecoder-CY9gGEF7.mjs → propsDecoder-DYzafZb2.mjs} +592 -152
  174. package/dist/client/rendering/client.mjs +2259 -835
  175. package/dist/client/rendering/islands.mjs +17 -17
  176. package/dist/client/rendering.mjs +3308 -1236
  177. package/dist/client/{scrollToBlock--BFV6kl-.mjs → scrollToBlock-CvXszexS.mjs} +1 -1
  178. package/dist/client/{shop-CP4YbDL9.mjs → shop-BIcjvy5a.mjs} +6 -6
  179. package/dist/client/{shop-commerce-APs4XBXE.mjs → shop-commerce-BZQsy7xw.mjs} +5 -5
  180. package/dist/client/{shop-commerce-store-CAVLxLFr.mjs → shop-commerce-store-D5V7XAb5.mjs} +1 -1
  181. package/dist/client/{shopShared-BnSRrwXI.mjs → shopShared-DowkXevB.mjs} +3 -3
  182. package/dist/client/{useEventFilters-1a1by4c8.mjs → useEventFilters-oMoTw_JE.mjs} +56 -9
  183. package/dist/preview-next/before-render.mjs +238 -111
  184. package/dist/preview-next/client/runtime.mjs +4 -4
  185. package/dist/preview-next/keepAlive.mjs +238 -111
  186. package/dist/preview-next/middleware.mjs +238 -111
  187. package/dist/{previewAuthStore-BkEgnYPP.mjs → previewAuthStore-COUyAKaX.mjs} +238 -111
  188. package/dist/{sdk-runtime-DwGfsT0S.mjs → sdk-runtime-D4k2LSGF.mjs} +2 -2
  189. package/dist/{separator-BeqDLneQ.mjs → separator-UGtpag4Z.mjs} +1 -1
  190. package/dist/server/components.mjs +2697 -1023
  191. package/dist/server/config-validation.mjs +2424 -1720
  192. package/dist/server/config.mjs +2429 -1724
  193. package/dist/server/data.mjs +1164 -454
  194. package/dist/server/index.mjs +364 -280
  195. package/dist/server/navigation.mjs +16 -47
  196. package/dist/server/next.mjs +2915 -1380
  197. package/dist/server/page-converter.mjs +969 -522
  198. package/dist/server/prebuild.mjs +2 -3
  199. package/dist/server/rendering/server.mjs +2704 -1030
  200. package/dist/server/rendering.mjs +2742 -1063
  201. package/dist/server/routing.mjs +1386 -595
  202. package/dist/server/server.mjs +2878 -2324
  203. package/dist/server/theme-bridge.mjs +292 -24
  204. package/dist/styles/index.css +289 -25
  205. package/package.json +1 -1
  206. package/dist/_dts/api/src/navigation/identity.d.ts +0 -59
  207. package/dist/_dts/blocks/src/system/blocks/newsletter-signup-destination.d.ts +0 -291
  208. package/dist/_dts/core/src/newsletter-signup-destination.d.ts +0 -38
@@ -1,7 +1,7 @@
1
1
  import type { SystemBlockDefinition } from "../registry";
2
2
  import type { SectionStylesContent } from "../fields/boxStyles";
3
3
  import { newsletterFormBlockRuntime } from "../runtime/nodes/newsletter-form.interactive";
4
- import type { NewsletterSignupAuthoringDestination, NewsletterSignupFieldPreset } from "./newsletter-signup-destination";
4
+ import type { MailingListPlacementTargeting } from '../../../../core/src/index';
5
5
  import type { RichTextDoc } from "../manifest/richTextSchema";
6
6
  import type { BlockButtonRole } from "../constants/buttonRoles";
7
7
  export declare const newsletterSignupManifest: import("..").DefinedBlockManifest<import("..").BlockContentShapeInput<{
@@ -31,119 +31,52 @@ export declare const newsletterSignupManifest: import("..").DefinedBlockManifest
31
31
  }, {
32
32
  readonly fragment: import("..").DefinedFragment<{
33
33
  readonly fields: readonly [{
34
- readonly id: "destinationProvider";
35
- readonly type: "select";
36
- readonly label: "Send signups to";
37
- readonly description: "Choose where new subscribers from this form should go.";
38
- readonly defaultValue: "riverbank";
39
- readonly required: false;
40
- readonly ui: {
41
- readonly intent: "behavior";
34
+ readonly id: "targeting";
35
+ readonly type: "group";
36
+ readonly label: "Mailing-list targeting";
37
+ readonly description: "Choose what kind of emails people signing up here will receive.";
38
+ readonly defaultValue: {
39
+ readonly mode: "default";
42
40
  };
43
- readonly options: [{
44
- readonly value: "riverbank";
45
- readonly label: "Riverbank newsletter";
46
- }];
47
- }, {
48
- readonly id: "listId";
49
- readonly type: "reference";
50
- readonly label: "Newsletter list";
51
- readonly description: "Select the list new subscribers should be added to.";
52
- readonly required: false;
53
- readonly referenceKind: "newsletterList";
54
- readonly allowManualEntry: false;
41
+ readonly required: true;
55
42
  readonly ui: {
56
43
  readonly intent: "behavior";
57
- readonly visibleWhen: {
58
- readonly field: "destinationProvider";
59
- readonly equals: "riverbank";
60
- };
44
+ readonly widget: "mailingListTargeting";
61
45
  };
62
- }, {
63
- readonly id: "mailchimpAudienceId";
64
- readonly type: "reference";
65
- readonly label: "Mailchimp audience";
66
- readonly description: "Choose the Mailchimp audience for new subscribers.";
67
- readonly required: false;
68
- readonly referenceKind: "mailchimpAudience";
69
- readonly allowManualEntry: false;
70
- readonly ui: {
71
- readonly intent: "behavior";
72
- readonly visibleWhen: {
73
- readonly field: "destinationProvider";
74
- readonly equals: "mailchimp";
75
- };
46
+ readonly schema: {
47
+ readonly fields: [{
48
+ readonly id: "mode";
49
+ readonly type: "select";
50
+ readonly label: "Mode";
51
+ readonly required: true;
52
+ readonly defaultValue: "default";
53
+ readonly options: [{
54
+ readonly value: "default";
55
+ readonly label: "Default";
56
+ }, {
57
+ readonly value: "custom";
58
+ readonly label: "Custom";
59
+ }];
60
+ readonly ui: {
61
+ readonly hidden: true;
62
+ };
63
+ }];
76
64
  };
77
- }, {
78
- readonly id: "mailchimpTags";
65
+ }, import("../../../../block-form/src/backend/index").FieldDefinition, {
66
+ readonly id: "mailingListSource";
79
67
  readonly type: "text";
80
- readonly label: "Mailchimp tags";
81
- readonly description: "Optional tags to apply in Mailchimp, separated by commas or semicolons.";
68
+ readonly label: "Mailing-list source";
82
69
  readonly ui: {
70
+ readonly hidden: true;
83
71
  readonly intent: "behavior";
84
- readonly visibleWhen: {
85
- readonly field: "destinationProvider";
86
- readonly equals: "mailchimp";
87
- };
88
- };
89
- }, {
90
- readonly id: "preset";
91
- readonly type: "select";
92
- readonly label: "Form fields";
93
- readonly description: "Choose which fields to collect.";
94
- readonly defaultValue: "emailOnly";
95
- readonly ui: {
96
- readonly intent: "display";
97
72
  };
98
- readonly options: [{
99
- readonly value: "emailOnly";
100
- readonly label: "Email only";
101
- }, {
102
- readonly value: "emailName";
103
- readonly label: "Email + Name";
104
- }, {
105
- readonly value: "emailFirstLast";
106
- readonly label: "Email + First/Last Name";
107
- }, {
108
- readonly value: "emailNameCompany";
109
- readonly label: "Email + Name + Company (B2B)";
110
- }];
111
73
  }, {
112
- readonly id: "includePhone";
113
- readonly type: "boolean";
114
- readonly label: "Include phone field (optional)";
115
- readonly description: "Adds an optional phone field to the selected preset (never required).";
116
- readonly defaultValue: false;
117
- readonly ui: {
118
- readonly intent: "display";
119
- };
120
- }, {
121
- readonly id: "buttonLabel";
122
- readonly type: "text";
123
- readonly label: "Button label";
124
- readonly defaultValue: "Subscribe";
125
- }, import("../../../../block-form/src/backend/index").FieldDefinition, {
126
- readonly id: "successMessage";
74
+ readonly id: "mailingListSourceToken";
127
75
  readonly type: "text";
128
- readonly label: "Success message";
129
- readonly description: "Shown after successful subscription.";
130
- readonly defaultValue: "Thanks for subscribing!";
131
- }, {
132
- readonly id: "privacyNote";
133
- readonly type: "text";
134
- readonly label: "Privacy note";
135
- readonly description: "Optional small text below the form (e.g., privacy policy link).";
136
- }, {
137
- readonly id: "tags";
138
- readonly type: "text";
139
- readonly label: "Tags (optional)";
140
- readonly description: "Optional tags to apply on subscribe (comma or semicolon separated).";
76
+ readonly label: "Mailing-list source token";
141
77
  readonly ui: {
78
+ readonly hidden: true;
142
79
  readonly intent: "behavior";
143
- readonly visibleWhen: {
144
- readonly field: "destinationProvider";
145
- readonly equals: "riverbank";
146
- };
147
80
  };
148
81
  }];
149
82
  }>;
@@ -184,23 +117,15 @@ export declare const newsletterSignupManifest: import("..").DefinedBlockManifest
184
117
  readonly tags: readonly ["newsletter", "signup", "email", "subscribe", "subscription", "mailchimp", "marketing", "lead-capture"];
185
118
  readonly icon: "Mail";
186
119
  }>>;
187
- export type NewsletterSignupPreset = NewsletterSignupFieldPreset;
188
120
  export type NewsletterSignupContent = {
189
121
  title?: string | null;
190
122
  subtitle?: RichTextDoc | null;
191
- listId?: string | null;
192
- preset: NewsletterSignupPreset;
193
- includePhone?: boolean | null;
194
- buttonLabel?: string | null;
123
+ targeting: MailingListPlacementTargeting;
195
124
  buttonVariant?: BlockButtonRole | null;
196
- successMessage?: string | null;
197
- privacyNote?: string | null;
198
- tags?: string | null;
125
+ mailingListSource?: 'signed-footer' | null;
126
+ mailingListSourceToken?: string | null;
199
127
  _sectionStyles?: SectionStylesContent;
200
128
  };
201
- export type NewsletterSignupAuthoringContent = Omit<NewsletterSignupContent, 'listId' | 'tags'> & {
202
- destination: NewsletterSignupAuthoringDestination;
203
- };
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, NewsletterSignupSourceAttributionId, RiverbankNewsletterDestination, ServerResolvedMailchimpConnectionState, ServerValidatedMailchimpAudienceCompatibility, SignedNewsletterDestinationRef, TrustedNewsletterSignupAuthoringDestinationError, TrustedNewsletterSignupAuthoringDestinationResult, } from "./newsletter-signup-destination";
129
+ export type NewsletterSignupAuthoringContent = NewsletterSignupContent;
130
+ export declare function sanitizeNewsletterSignupPublicContent(content: unknown): unknown;
206
131
  export declare const newsletterSignupBlockDefinition: SystemBlockDefinition<NewsletterSignupContent, typeof newsletterFormBlockRuntime>;
@@ -0,0 +1,18 @@
1
+ import type { PublicEvent } from '../events/shared/types';
2
+ import { type BookingOfferingPresetSummary, type ResolvedOfferingsPreviewGroup } from './model';
3
+ export type OfferingsCatalogueState = Readonly<{
4
+ kind: 'failed';
5
+ }> | Readonly<{
6
+ kind: 'empty';
7
+ }> | Readonly<{
8
+ kind: 'groups';
9
+ groups: readonly Readonly<{
10
+ group: ResolvedOfferingsPreviewGroup;
11
+ events: readonly PublicEvent[];
12
+ }>[];
13
+ }>;
14
+ /** Rows arrive representative-grained from the existing public event reader. */
15
+ export declare function buildOfferingsCatalogueState(input: Readonly<{
16
+ presets: readonly BookingOfferingPresetSummary[] | null | undefined;
17
+ events: readonly PublicEvent[] | null | undefined;
18
+ }>): OfferingsCatalogueState;
@@ -0,0 +1,2 @@
1
+ import type { BlockConfig } from '../../defineBlock';
2
+ export declare const offeringsPreviewFields: NonNullable<BlockConfig['additionalFields']>;
@@ -5,6 +5,8 @@ import type { ButtonVariant } from '../events/shared/types';
5
5
  import { type OfferingsPreviewGroupOverride, type OfferingsPreviewSourceKey } from './model';
6
6
  export declare const offeringsPreviewManifest: BlockManifest;
7
7
  export type OfferingsPreviewContent = {
8
+ /** Internal system composition capability; no customer/editor control. */
9
+ displayMode?: 'preview' | 'catalogue';
8
10
  heading?: string | null;
9
11
  description?: unknown;
10
12
  itemLimit?: '1' | '2' | '3' | '4' | '5' | '6' | null;
@@ -18,4 +20,6 @@ export type OfferingsPreviewContent = {
18
20
  };
19
21
  export declare const offeringsPreviewBlockDefinition: SystemBlockDefinition<OfferingsPreviewContent>;
20
22
  export type { BookingOfferingPresetSummary, OfferingsPreviewGroupOrder, OfferingsPreviewGroupOverride, OfferingsPreviewSourceKey, } from './model';
23
+ export { buildOfferingsCatalogueState } from './catalogue';
24
+ export type { OfferingsCatalogueState } from './catalogue';
21
25
  export { deriveDefaultOfferingsPreviewGroups, inferLegacyOfferingsPreviewGroupOrder, isOfferingsPreviewSourceKey, normalizeOfferingsPreviewContentForWrite, normalizeOfferingsPreviewGroupOrder, resolveOfferingsPreviewGroupOrderEntries, resolveOfferingsPreviewGroupKeys, } from './model';
@@ -1,4 +1,4 @@
1
- import { type FooterCompositionV1, type FooterMembershipKey, type FooterModuleId, type FooterRichText, type FooterSection, type NewsletterSignupAuthoringDestination, type PublicProfile, type Result } from '../../../../core/src/index';
1
+ import { type FooterCompositionV1, type FooterMembershipKey, type FooterModuleId, type FooterRichText, type FooterSection, type PublicProfile, type Result } from '../../../../core/src/index';
2
2
  import type { FormSourceProps } from '../runtime/nodes/form.interactive';
3
3
  import type { NewsletterFormSourceProps } from '../runtime/nodes/newsletter-form.interactive';
4
4
  type FooterRuntimeModuleBase<TKind extends FooterSection['kind']> = Readonly<{
@@ -60,25 +60,19 @@ export type FooterStandardContactRuntime = Readonly<{
60
60
  successMessage?: FormSourceProps['successMessage'];
61
61
  }>;
62
62
  type FooterMailingListRuntimeBase = Readonly<{
63
- preset: 'emailOnly';
64
- includePhone?: false;
65
- buttonLabel?: NewsletterFormSourceProps['buttonLabel'];
66
- successMessage?: NewsletterFormSourceProps['successMessage'];
67
- privacyNote?: NewsletterFormSourceProps['privacyNote'];
63
+ mailingList: NonNullable<NewsletterFormSourceProps['mailingList']>;
64
+ targeting: NonNullable<NewsletterFormSourceProps['targeting']>;
68
65
  }>;
69
66
  export type FooterMailingListRuntime = FooterMailingListRuntimeBase & (Readonly<{
70
67
  mode?: 'public';
71
68
  source: 'signed-footer';
72
- destinationRef: NonNullable<Extract<NewsletterFormSourceProps, {
69
+ sourceRef: NonNullable<Extract<NewsletterFormSourceProps, {
73
70
  source: 'signed-footer';
74
- }>['destinationRef']>;
75
- listId?: never;
71
+ }>['sourceRef']>;
76
72
  }> | Readonly<{
77
73
  mode: 'preview';
78
- source: 'legacy-direct-list';
79
- destinationRef?: never;
80
- listId: string | null;
81
- target: NewsletterSignupAuthoringDestination;
74
+ source: 'preview';
75
+ sourceRef?: never;
82
76
  }>);
83
77
  export type FooterResolvedEngagement = Readonly<{
84
78
  kind: 'none';
@@ -1,4 +1,4 @@
1
- export declare const SYSTEM_BLOCK_KINDS: readonly ["block.hero", "block.intro", "block.columns", "block.collection", "block.feature-cards", "block.media-text", "block.cta-full", "block.single-button", "block.body-text", "block.location-map", "block.faq", "block.testimonials", "block.team-members", "block.embed", "block.blog-post", "block.blog-listing", "block.site-header", "block.site-footer", "block.form", "block.contact-newsletter", "block.appointment-booking", "block.weekly-slot-availability", "block.event-registration", "block.event-details", "block.event-spotlight", "block.event-listing", "block.event-calendar", "block.recurring-schedule", "block.offerings-preview", "block.shop", "block.product-list", "block.product-detail", "block.cart", "block.checkout", "block.gifting", "block.newsletter-signup", "block.image-gallery", "block.video-grid", "block.audio-player", "block.file-download"];
1
+ export declare const SYSTEM_BLOCK_KINDS: readonly ["block.hero", "block.intro", "block.columns", "block.collection", "block.feature-cards", "block.media-text", "block.cta-full", "block.single-button", "block.body-text", "block.location-map", "block.faq", "block.testimonials", "block.team-members", "block.embed", "block.blog-post", "block.blog-listing", "block.site-header", "block.site-footer", "block.form", "block.contact-newsletter", "block.appointment-booking", "block.appointment-services", "block.weekly-slot-availability", "block.event-registration", "block.event-details", "block.event-spotlight", "block.event-listing", "block.event-calendar", "block.recurring-schedule", "block.offerings-preview", "block.shop", "block.product-list", "block.product-detail", "block.cart", "block.checkout", "block.gifting", "block.newsletter-signup", "block.image-gallery", "block.video-grid", "block.audio-player", "block.file-download"];
2
2
  export type SystemBlockKind = (typeof SYSTEM_BLOCK_KINDS)[number];
3
3
  export type CustomBlockKind = `custom.${string}`;
4
4
  export type BlockKind = SystemBlockKind | CustomBlockKind;
@@ -10,8 +10,8 @@ export { initialPreviewResolvedDataState, previewResolvedDataReducer, selectPrev
10
10
  export type { PreviewLoaderError, PreviewResolvedDataAction, PreviewResolvedDataState, } from './previewResolvedDataState';
11
11
  export { SUPPORTED_LOADER_ENDPOINTS, isSupportedLoaderEndpoint, } from './loaderEndpoints';
12
12
  export type { SupportedLoaderEndpoint } from './loaderEndpoints';
13
- export { PUBLIC_LOADER_CACHE_POLICIES, getPublicLoaderCachePolicy, } from './publicLoaderCachePolicy';
14
- export type { PublicLoaderCachePolicy, PublicLoaderCacheTagKind, } from './publicLoaderCachePolicy';
13
+ export { PUBLIC_AVAILABILITY_FRESHNESS_SECONDS, PUBLIC_CONTENT_FRESHNESS_SECONDS, PUBLIC_LOADER_CACHE_POLICIES, getPublicLoaderCachePolicy, isPublicReadEndpoint, publicLoaderFreshnessSeconds, } from './publicLoaderCachePolicy';
14
+ export type { PublicLoaderCachePolicy, PublicLoaderCacheTagKind, PublicLoaderTransport, PublicReadEndpoint, } from './publicLoaderCachePolicy';
15
15
  export { createMicrobatcher, stableSerialize, type BatchItemResult, type Microbatcher, } from './batching';
16
16
  export { normalizeLoaderParams, normalizePublicApiLoaderParams, } from './normalizeLoaderParams';
17
17
  export { normalizeDataLoaders, normalizeContent, normalizeParams, coerceToString, coercePayload, } from './utils';
@@ -1,3 +1,3 @@
1
1
  export declare const SUPPORTED_LOADER_ENDPOINTS: readonly ["listPublishedEntries", "getPublishedEntryPreview", "listPublicEvents", "listPublicEventCalendarWindow", "listPublicRecurringSchedule", "getPublicEventDetails", "listPublicRouteCandidates", "listPublicTeamMembers", "listPublicProducts", "listPublicPasses", "listPublicMemberships", "getPublicFormById", "getPublicBookingServices", "getPublicWeeklySlotAvailability"];
2
- export type SupportedLoaderEndpoint = typeof SUPPORTED_LOADER_ENDPOINTS[number];
2
+ export type SupportedLoaderEndpoint = (typeof SUPPORTED_LOADER_ENDPOINTS)[number];
3
3
  export declare function isSupportedLoaderEndpoint(endpoint: string): endpoint is SupportedLoaderEndpoint;
@@ -1,74 +1,2 @@
1
- import type { SupportedLoaderEndpoint } from './loaderEndpoints';
2
- export type PublicLoaderCacheTagKind = 'published_content' | 'public_team_members' | 'public_products' | 'site_forms';
3
- export type PublicLoaderCachePolicy = Readonly<{
4
- kind: 'live';
5
- reason: 'booking_correctness';
6
- }> | Readonly<{
7
- kind: 'tagged';
8
- tags: readonly PublicLoaderCacheTagKind[];
9
- }>;
10
- /**
11
- * Canonical freshness policy for public block-loader data.
12
- *
13
- * Consumers may implement tagged caching differently, but a loader marked
14
- * live here must not be placed in a process-local or durable stale cache.
15
- */
16
- export declare const PUBLIC_LOADER_CACHE_POLICIES: {
17
- readonly listPublicEventCalendarWindow: {
18
- readonly kind: "live";
19
- readonly reason: "booking_correctness";
20
- };
21
- readonly listPublishedEntries: {
22
- readonly kind: "tagged";
23
- readonly tags: readonly ["published_content"];
24
- };
25
- readonly getPublishedEntryPreview: {
26
- readonly kind: "tagged";
27
- readonly tags: readonly ["published_content"];
28
- };
29
- readonly listPublicEvents: {
30
- readonly kind: "live";
31
- readonly reason: "booking_correctness";
32
- };
33
- readonly listPublicRecurringSchedule: {
34
- readonly kind: "live";
35
- readonly reason: "booking_correctness";
36
- };
37
- readonly getPublicEventDetails: {
38
- readonly kind: "live";
39
- readonly reason: "booking_correctness";
40
- };
41
- readonly listPublicRouteCandidates: {
42
- readonly kind: "tagged";
43
- readonly tags: readonly ["published_content"];
44
- };
45
- readonly listPublicTeamMembers: {
46
- readonly kind: "tagged";
47
- readonly tags: readonly ["public_team_members"];
48
- };
49
- readonly listPublicProducts: {
50
- readonly kind: "tagged";
51
- readonly tags: readonly ["public_products"];
52
- };
53
- readonly listPublicPasses: {
54
- readonly kind: "live";
55
- readonly reason: "booking_correctness";
56
- };
57
- readonly listPublicMemberships: {
58
- readonly kind: "live";
59
- readonly reason: "booking_correctness";
60
- };
61
- readonly getPublicFormById: {
62
- readonly kind: "tagged";
63
- readonly tags: readonly ["site_forms"];
64
- };
65
- readonly getPublicBookingServices: {
66
- readonly kind: "live";
67
- readonly reason: "booking_correctness";
68
- };
69
- readonly getPublicWeeklySlotAvailability: {
70
- readonly kind: "live";
71
- readonly reason: "booking_correctness";
72
- };
73
- };
74
- export declare function getPublicLoaderCachePolicy(endpoint: SupportedLoaderEndpoint): PublicLoaderCachePolicy;
1
+ export { PUBLIC_AVAILABILITY_FRESHNESS_SECONDS, PUBLIC_CONTENT_FRESHNESS_SECONDS, PUBLIC_READ_CACHE_POLICIES as PUBLIC_LOADER_CACHE_POLICIES, getPublicReadCachePolicy as getPublicLoaderCachePolicy, isPublicReadEndpoint, publicReadFreshnessSeconds as publicLoaderFreshnessSeconds, } from '../../../../core/src/index';
2
+ export type { PublicReadCachePolicy as PublicLoaderCachePolicy, PublicReadCacheTagKind as PublicLoaderCacheTagKind, PublicReadEndpoint, PublicReadTransport as PublicLoaderTransport, } from '../../../../core/src/index';
@@ -6,119 +6,52 @@
6
6
  */
7
7
  export declare const newsletterFormFragment: import("..").DefinedFragment<{
8
8
  readonly fields: readonly [{
9
- readonly id: "destinationProvider";
10
- readonly type: "select";
11
- readonly label: "Send signups to";
12
- readonly description: "Choose where new subscribers from this form should go.";
13
- readonly defaultValue: "riverbank";
14
- readonly required: false;
15
- readonly ui: {
16
- readonly intent: "behavior";
9
+ readonly id: "targeting";
10
+ readonly type: "group";
11
+ readonly label: "Mailing-list targeting";
12
+ readonly description: "Choose what kind of emails people signing up here will receive.";
13
+ readonly defaultValue: {
14
+ readonly mode: "default";
17
15
  };
18
- readonly options: [{
19
- readonly value: "riverbank";
20
- readonly label: "Riverbank newsletter";
21
- }];
22
- }, {
23
- readonly id: "listId";
24
- readonly type: "reference";
25
- readonly label: "Newsletter list";
26
- readonly description: "Select the list new subscribers should be added to.";
27
- readonly required: false;
28
- readonly referenceKind: "newsletterList";
29
- readonly allowManualEntry: false;
16
+ readonly required: true;
30
17
  readonly ui: {
31
18
  readonly intent: "behavior";
32
- readonly visibleWhen: {
33
- readonly field: "destinationProvider";
34
- readonly equals: "riverbank";
35
- };
19
+ readonly widget: "mailingListTargeting";
36
20
  };
37
- }, {
38
- readonly id: "mailchimpAudienceId";
39
- readonly type: "reference";
40
- readonly label: "Mailchimp audience";
41
- readonly description: "Choose the Mailchimp audience for new subscribers.";
42
- readonly required: false;
43
- readonly referenceKind: "mailchimpAudience";
44
- readonly allowManualEntry: false;
45
- readonly ui: {
46
- readonly intent: "behavior";
47
- readonly visibleWhen: {
48
- readonly field: "destinationProvider";
49
- readonly equals: "mailchimp";
50
- };
21
+ readonly schema: {
22
+ readonly fields: [{
23
+ readonly id: "mode";
24
+ readonly type: "select";
25
+ readonly label: "Mode";
26
+ readonly required: true;
27
+ readonly defaultValue: "default";
28
+ readonly options: [{
29
+ readonly value: "default";
30
+ readonly label: "Default";
31
+ }, {
32
+ readonly value: "custom";
33
+ readonly label: "Custom";
34
+ }];
35
+ readonly ui: {
36
+ readonly hidden: true;
37
+ };
38
+ }];
51
39
  };
52
- }, {
53
- readonly id: "mailchimpTags";
40
+ }, import("../../../../../block-form/src/backend/index").FieldDefinition, {
41
+ readonly id: "mailingListSource";
54
42
  readonly type: "text";
55
- readonly label: "Mailchimp tags";
56
- readonly description: "Optional tags to apply in Mailchimp, separated by commas or semicolons.";
43
+ readonly label: "Mailing-list source";
57
44
  readonly ui: {
45
+ readonly hidden: true;
58
46
  readonly intent: "behavior";
59
- readonly visibleWhen: {
60
- readonly field: "destinationProvider";
61
- readonly equals: "mailchimp";
62
- };
63
- };
64
- }, {
65
- readonly id: "preset";
66
- readonly type: "select";
67
- readonly label: "Form fields";
68
- readonly description: "Choose which fields to collect.";
69
- readonly defaultValue: "emailOnly";
70
- readonly ui: {
71
- readonly intent: "display";
72
47
  };
73
- readonly options: [{
74
- readonly value: "emailOnly";
75
- readonly label: "Email only";
76
- }, {
77
- readonly value: "emailName";
78
- readonly label: "Email + Name";
79
- }, {
80
- readonly value: "emailFirstLast";
81
- readonly label: "Email + First/Last Name";
82
- }, {
83
- readonly value: "emailNameCompany";
84
- readonly label: "Email + Name + Company (B2B)";
85
- }];
86
- }, {
87
- readonly id: "includePhone";
88
- readonly type: "boolean";
89
- readonly label: "Include phone field (optional)";
90
- readonly description: "Adds an optional phone field to the selected preset (never required).";
91
- readonly defaultValue: false;
92
- readonly ui: {
93
- readonly intent: "display";
94
- };
95
- }, {
96
- readonly id: "buttonLabel";
97
- readonly type: "text";
98
- readonly label: "Button label";
99
- readonly defaultValue: "Subscribe";
100
- }, import("../../../../../block-form/src/backend/index").FieldDefinition, {
101
- readonly id: "successMessage";
102
- readonly type: "text";
103
- readonly label: "Success message";
104
- readonly description: "Shown after successful subscription.";
105
- readonly defaultValue: "Thanks for subscribing!";
106
- }, {
107
- readonly id: "privacyNote";
108
- readonly type: "text";
109
- readonly label: "Privacy note";
110
- readonly description: "Optional small text below the form (e.g., privacy policy link).";
111
48
  }, {
112
- readonly id: "tags";
49
+ readonly id: "mailingListSourceToken";
113
50
  readonly type: "text";
114
- readonly label: "Tags (optional)";
115
- readonly description: "Optional tags to apply on subscribe (comma or semicolon separated).";
51
+ readonly label: "Mailing-list source token";
116
52
  readonly ui: {
53
+ readonly hidden: true;
117
54
  readonly intent: "behavior";
118
- readonly visibleWhen: {
119
- readonly field: "destinationProvider";
120
- readonly equals: "riverbank";
121
- };
122
55
  };
123
56
  }];
124
57
  }>;
@@ -3,15 +3,7 @@
3
3
  *
4
4
  * Part of the block API client type surface; re-exported from `../types`.
5
5
  */
6
- import type { NewsletterSignupPublicDestinationRef } from "../../../blocks/newsletter-signup-destination";
7
- export type NewsletterSubscribeTarget = Readonly<{
8
- tag: "legacy_riverbank_list";
9
- listId: string;
10
- destinationRef?: NewsletterSignupPublicDestinationRef;
11
- }> | Readonly<{
12
- tag: "published_block_ref";
13
- destinationRef: NewsletterSignupPublicDestinationRef;
14
- }>;
6
+ import type { MailingListPublicSignupResponse, MailingListSignupSourceRef, MailingListVisitorSelection } from '../../../../../../core/src/index';
15
7
  export interface NewsletterSubscribeRequest {
16
8
  email: string;
17
9
  firstName?: string;
@@ -19,14 +11,12 @@ export interface NewsletterSubscribeRequest {
19
11
  name?: string;
20
12
  company?: string;
21
13
  phone?: string;
22
- target: NewsletterSubscribeTarget;
23
- tags?: string[];
14
+ sourceRef: MailingListSignupSourceRef;
15
+ setupRevision: number;
16
+ visitorSelection?: MailingListVisitorSelection;
24
17
  meta?: {
25
18
  honeypot?: string;
26
19
  altchaSolution?: string | null;
27
20
  };
28
21
  }
29
- export interface NewsletterSubscribeResponse {
30
- subscribed: boolean;
31
- requiresConfirmation?: boolean;
32
- }
22
+ export type NewsletterSubscribeResponse = MailingListPublicSignupResponse;