@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.
- package/dist/{PreviewEditorSidebar-BXtfF7tp.mjs → PreviewEditorSidebar-Dbvb7GIr.mjs} +9 -33
- package/dist/{PreviewEditorUI-Dou73Q0K.mjs → PreviewEditorUI-e9O9l20X.mjs} +3 -3
- package/dist/{PreviewQueryProvider-DgFDIwvK.mjs → PreviewQueryProvider-B1kbhaJD.mjs} +1 -1
- package/dist/SdkPreviewModeRuntime-BZHt6e9w.mjs +11006 -0
- package/dist/{SiteChromeCustomizeContext-DZiDBAYu.mjs → SiteChromeCustomizeContext-CvuGbHJX.mjs} +31619 -1483
- package/dist/_dts/ai/src/contracts/proposals.d.ts +288 -36
- package/dist/_dts/api/src/bookingClosures.d.ts +19 -3
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -3
- package/dist/_dts/api/src/bookingRecords.d.ts +0 -13
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +2 -2
- package/dist/_dts/api/src/communications.d.ts +2 -1
- package/dist/_dts/api/src/contactFormSummary.d.ts +15 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +2 -5
- package/dist/_dts/api/src/endpoints.d.ts +1 -1
- package/dist/_dts/api/src/footerSettings.d.ts +11 -0
- package/dist/_dts/api/src/index.d.ts +2 -1
- package/dist/_dts/api/src/occurrenceScheduling.d.ts +48 -0
- package/dist/_dts/api/src/participantMessaging.d.ts +5 -3
- package/dist/_dts/api/src/publicExperience/siteEndpoints.d.ts +7 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +7 -5
- package/dist/_dts/api/src/siteOperations.d.ts +12 -3
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +3 -2
- package/dist/_dts/blocks/src/client/form.d.ts +1 -0
- package/dist/_dts/blocks/src/client/newsletter-form.d.ts +1 -0
- package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -0
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -8
- package/dist/_dts/blocks/src/rendering/server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +41 -0
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup-destination.d.ts +14 -23
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +109 -23
- package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +42 -108
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +21 -54
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +26 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +21 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +29 -78
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +3 -6
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +27 -8
- package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +21 -0
- package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +3 -1
- package/dist/_dts/content-editor/src/FooterEngagementEditorFields.d.ts +31 -0
- package/dist/_dts/content-editor/src/FooterEngagementEditorPanel.d.ts +17 -0
- package/dist/_dts/content-editor/src/footerComposer.d.ts +3 -0
- package/dist/_dts/content-editor/src/footerEngagementDraft.d.ts +57 -0
- package/dist/_dts/content-editor/src/footerEngagementEditor.d.ts +11 -0
- package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +13 -0
- package/dist/_dts/content-editor/src/index.d.ts +1 -0
- package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +35 -0
- package/dist/_dts/core/src/footer-arrangement.d.ts +2 -0
- package/dist/_dts/core/src/footer-composition-types.d.ts +118 -0
- package/dist/_dts/core/src/footer-composition.d.ts +7 -116
- package/dist/_dts/core/src/footer-engagement.d.ts +30 -0
- package/dist/_dts/core/src/index.d.ts +4 -0
- package/dist/_dts/core/src/newsletter-signup-destination.d.ts +38 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +59 -6
- package/dist/_dts/db/src/index.d.ts +1 -0
- package/dist/_dts/db/src/schemas/forms.d.ts +72 -2
- package/dist/_dts/db/src/schemas/standard-contact.d.ts +114 -0
- package/dist/_dts/preview-next/src/client/blocks/previewBatchLoaderParams.d.ts +6 -0
- package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +2 -5
- package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +2 -5
- package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -5
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -4
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -4
- package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +6 -5
- package/dist/_dts/sdk/src/cli/commands/push/execute/footer.d.ts +9 -0
- package/dist/_dts/sdk/src/cli/content/footerFile.d.ts +10 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +3 -5
- package/dist/_dts/sdk/src/cli/site-commands/footerCommands.d.ts +15 -3
- package/dist/_dts/sdk/src/client/combineAbortSignals.d.ts +2 -0
- package/dist/_dts/sdk/src/client/management/types.d.ts +6 -15
- package/dist/_dts/sdk/src/client/types.d.ts +10 -2
- package/dist/_dts/sdk/src/client/wholeSeriesReadOperations.d.ts +11 -0
- package/dist/_dts/sdk/src/config/types.d.ts +1 -1
- package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
- package/dist/_dts/sdk/src/contracts/event-registration-content.d.ts +16 -0
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +4 -15
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +4 -18
- package/dist/_dts/sdk/src/public-api/teamMemberContracts.d.ts +17 -0
- package/dist/_dts/sdk/src/public-api/wholeSeriesContracts.d.ts +2 -0
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +7 -0
- package/dist/_dts/sdk/src/rendering/index.d.ts +5 -3
- package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +8 -2
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commandContract.d.ts +8 -1
- package/dist/_dts/site-commands/src/commands.d.ts +16 -2
- package/dist/_dts/theme-core/src/header/paintTargets.d.ts +10 -4
- package/dist/_dts/theme-core/src/header/surfaceRules.d.ts +2 -3
- package/dist/cli/index.mjs +5302 -4628
- package/dist/client/{courseRegistration-DTEYWL6Z.mjs → CourseRegistrationWizard-xRmA7REV.mjs} +329 -49
- package/dist/client/{DiscountCodeDisclosure-BDFRp8Y7.mjs → DiscountCodeDisclosure-B9vriL5C.mjs} +1 -1
- package/dist/client/{EventCombined.client-DJgF1_lf.mjs → EventCombined.client-BgVnVTlz.mjs} +2 -2
- package/dist/client/{EventListing.client-CnWGNjOr.mjs → EventListing.client-CqdsO7jO.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-BISs9Bl7.mjs → LeafletStaticMap-CKPxot9M.mjs} +1 -1
- package/dist/client/{StepIndicator-D8gVYkK-.mjs → StepIndicator-DGCYuBJ1.mjs} +2 -2
- package/dist/client/{accordion-DFDajgDz.mjs → accordion-BfN5Eqd-.mjs} +1 -1
- package/dist/client/{bookingForm-Bdqj9-52.mjs → bookingForm-DOvCpBFP.mjs} +5 -5
- package/dist/client/{carousel-Cvqf-kN8.mjs → carousel-DPNmiH0f.mjs} +1 -1
- package/dist/client/{cart-CuH2TJXP.mjs → cart--egVXlrR.mjs} +3 -3
- package/dist/client/{checkout-CMNPpejZ.mjs → checkout-DywWtMcq.mjs} +3 -3
- package/dist/client/client.mjs +4912 -4613
- package/dist/client/courseRegistration-Dk9qFVwt.mjs +46 -0
- package/dist/client/{eventCalendar-BW-XoxZ0.mjs → eventCalendar-Bkz2HjlS.mjs} +4 -4
- package/dist/client/{eventCombined-Bpn7s0y9.mjs → eventCombined-D4kipYWg.mjs} +2 -2
- package/dist/client/{eventDetails-D2uUSTMH.mjs → eventDetails-Dz_5ix2Q.mjs} +56 -35
- package/dist/client/{eventListing-CVr1c094.mjs → eventListing-D0vm-zST.mjs} +2 -2
- package/dist/client/{eventRegistration-Dv4AvkMw.mjs → eventRegistration-Cw1E4Q4p.mjs} +58 -6
- package/dist/client/{form-DxdKf9fs.mjs → form-C2Zf1n3K.mjs} +1 -1
- package/dist/client/{headerSection-BaXI5Sro.mjs → headerSection-CP05gzdc.mjs} +2 -2
- package/dist/client/hooks.mjs +212 -61
- package/dist/client/{locationMap-BEtW2fKz.mjs → locationMap-Cl3x9PYJ.mjs} +2 -2
- package/dist/client/{newsletterForm-BKKs0S4R.mjs → newsletterForm-DyEJoClm.mjs} +26 -20
- package/dist/client/{pricing-ClkqcElA.mjs → pricing-DGuNR1W4.mjs} +1 -1
- package/dist/client/{productDetail-H-ru8dyy.mjs → productDetail-Cq-HrGew.mjs} +3 -3
- package/dist/client/{productList-Buyi5c0C.mjs → productList-DbB3jwqd.mjs} +3 -3
- package/dist/client/{propsDecoder-BF7i6Ijg.mjs → propsDecoder-CiTuhUwY.mjs} +130 -87
- package/dist/client/rendering/client.mjs +416 -208
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +5522 -5237
- package/dist/client/{scrollToBlock-D_7t8yWb.mjs → scrollToBlock-CShkRqab.mjs} +1 -1
- package/dist/client/{shop-CF7SZQNX.mjs → shop-Cu4Ib-ZA.mjs} +5 -5
- package/dist/client/{shop-commerce-DA7_Rq5p.mjs → shop-commerce-BzpsOdh7.mjs} +4 -4
- package/dist/client/{shop-commerce-store-BmLqW7Gh.mjs → shop-commerce-store-DaE7Fhj8.mjs} +1 -1
- package/dist/client/{shopShared-WL-E1znM.mjs → shopShared-cF0c20vB.mjs} +2 -2
- package/dist/client/{useEventFilters-rc8VLeLV.mjs → useEventFilters-QZ3HMgaJ.mjs} +2 -2
- package/dist/client/{usePolling-1ncrfd4S.mjs → usePolling-BKf0GcE-.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +1 -1
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/middleware.mjs +1 -1
- package/dist/{previewAuthStore-Dev9CdG9.mjs → previewAuthStore-BesgU5Xu.mjs} +1 -1
- package/dist/{sdk-runtime-BnrCCFJq.mjs → sdk-runtime-Cn_QSCOg.mjs} +2 -2
- package/dist/{separator-CFvBx2yl.mjs → separator-CEoGABRc.mjs} +1 -1
- package/dist/server/components.mjs +473 -289
- package/dist/server/config-validation.mjs +209 -61
- package/dist/server/config.mjs +209 -61
- package/dist/server/data.mjs +212 -61
- package/dist/server/index.mjs +40 -16
- package/dist/server/next.mjs +513 -307
- package/dist/server/page-converter.mjs +211 -64
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +475 -282
- package/dist/server/rendering.mjs +482 -290
- package/dist/server/routing.mjs +254 -80
- package/dist/server/server.mjs +252 -77
- package/package.json +1 -1
- package/dist/SdkPreviewModeRuntime-B0HPXr-l.mjs +0 -39546
- package/dist/client/MagicLinkForm-b5E_HoG9.mjs +0 -327
|
@@ -366,22 +366,7 @@ export declare const runtimeBackedBlockServerEntries: {
|
|
|
366
366
|
readonly 'newsletter-form': Readonly<{
|
|
367
367
|
definition: RuntimeBackedBlockDefinition<Readonly<{
|
|
368
368
|
kind: "progressive";
|
|
369
|
-
buildRender: (source: Readonly<{
|
|
370
|
-
blockId?: string | null;
|
|
371
|
-
siteId?: string;
|
|
372
|
-
apiBaseUrl?: string;
|
|
373
|
-
listId?: string | null;
|
|
374
|
-
destinationProvider?: import("../../blocks/newsletter-signup-destination").NewsletterSignupDestinationProvider | null;
|
|
375
|
-
preset?: import("../nodes/newsletter-form.types").NewsletterPreset;
|
|
376
|
-
includePhone?: boolean;
|
|
377
|
-
buttonLabel?: string | null;
|
|
378
|
-
buttonVariant?: import("../nodes/newsletter-form.types").NewsletterButtonVariant | null;
|
|
379
|
-
successMessage?: string | null;
|
|
380
|
-
privacyNote?: string | null;
|
|
381
|
-
tags?: string | null;
|
|
382
|
-
spamProtectionEnabled?: boolean;
|
|
383
|
-
className?: string | null;
|
|
384
|
-
}>) => Readonly<{
|
|
369
|
+
buildRender: (source: import("../nodes/newsletter-form.types").NewsletterFormProps) => Readonly<{
|
|
385
370
|
display: Readonly<{
|
|
386
371
|
kind: "newsletter-form";
|
|
387
372
|
className: string | null;
|
|
@@ -392,8 +377,7 @@ export declare const runtimeBackedBlockServerEntries: {
|
|
|
392
377
|
fields: readonly import("../nodes/newsletter-form.types").NewsletterFieldDef[];
|
|
393
378
|
}>;
|
|
394
379
|
hydration: Readonly<{
|
|
395
|
-
|
|
396
|
-
listId?: string | null;
|
|
380
|
+
target: import("../nodes/newsletter-form.interactive").NewsletterFormHydrationTarget;
|
|
397
381
|
preset: import("../nodes/newsletter-form.types").NewsletterPreset;
|
|
398
382
|
includePhone: boolean;
|
|
399
383
|
tags?: string | null;
|
|
@@ -402,38 +386,8 @@ export declare const runtimeBackedBlockServerEntries: {
|
|
|
402
386
|
}>;
|
|
403
387
|
contracts: Readonly<{
|
|
404
388
|
source: Readonly<{
|
|
405
|
-
encode: (value:
|
|
406
|
-
|
|
407
|
-
siteId?: string;
|
|
408
|
-
apiBaseUrl?: string;
|
|
409
|
-
listId?: string | null;
|
|
410
|
-
destinationProvider?: import("../../blocks/newsletter-signup-destination").NewsletterSignupDestinationProvider | null;
|
|
411
|
-
preset?: import("../nodes/newsletter-form.types").NewsletterPreset;
|
|
412
|
-
includePhone?: boolean;
|
|
413
|
-
buttonLabel?: string | null;
|
|
414
|
-
buttonVariant?: import("../nodes/newsletter-form.types").NewsletterButtonVariant | null;
|
|
415
|
-
successMessage?: string | null;
|
|
416
|
-
privacyNote?: string | null;
|
|
417
|
-
tags?: string | null;
|
|
418
|
-
spamProtectionEnabled?: boolean;
|
|
419
|
-
className?: string | null;
|
|
420
|
-
}>) => unknown;
|
|
421
|
-
decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
|
|
422
|
-
blockId?: string | null;
|
|
423
|
-
siteId?: string;
|
|
424
|
-
apiBaseUrl?: string;
|
|
425
|
-
listId?: string | null;
|
|
426
|
-
destinationProvider?: import("../../blocks/newsletter-signup-destination").NewsletterSignupDestinationProvider | null;
|
|
427
|
-
preset?: import("../nodes/newsletter-form.types").NewsletterPreset;
|
|
428
|
-
includePhone?: boolean;
|
|
429
|
-
buttonLabel?: string | null;
|
|
430
|
-
buttonVariant?: import("../nodes/newsletter-form.types").NewsletterButtonVariant | null;
|
|
431
|
-
successMessage?: string | null;
|
|
432
|
-
privacyNote?: string | null;
|
|
433
|
-
tags?: string | null;
|
|
434
|
-
spamProtectionEnabled?: boolean;
|
|
435
|
-
className?: string | null;
|
|
436
|
-
}>>;
|
|
389
|
+
encode: (value: import("../nodes/newsletter-form.types").NewsletterFormProps) => unknown;
|
|
390
|
+
decode: (input: unknown) => import("../../../contracts").DecodeResult<import("../nodes/newsletter-form.types").NewsletterFormProps>;
|
|
437
391
|
}>;
|
|
438
392
|
render: Readonly<{
|
|
439
393
|
encode: (value: Readonly<{
|
|
@@ -447,8 +401,7 @@ export declare const runtimeBackedBlockServerEntries: {
|
|
|
447
401
|
fields: readonly import("../nodes/newsletter-form.types").NewsletterFieldDef[];
|
|
448
402
|
}>;
|
|
449
403
|
hydration: Readonly<{
|
|
450
|
-
|
|
451
|
-
listId?: string | null;
|
|
404
|
+
target: import("../nodes/newsletter-form.interactive").NewsletterFormHydrationTarget;
|
|
452
405
|
preset: import("../nodes/newsletter-form.types").NewsletterPreset;
|
|
453
406
|
includePhone: boolean;
|
|
454
407
|
tags?: string | null;
|
|
@@ -466,8 +419,7 @@ export declare const runtimeBackedBlockServerEntries: {
|
|
|
466
419
|
fields: readonly import("../nodes/newsletter-form.types").NewsletterFieldDef[];
|
|
467
420
|
}>;
|
|
468
421
|
hydration: Readonly<{
|
|
469
|
-
|
|
470
|
-
listId?: string | null;
|
|
422
|
+
target: import("../nodes/newsletter-form.interactive").NewsletterFormHydrationTarget;
|
|
471
423
|
preset: import("../nodes/newsletter-form.types").NewsletterPreset;
|
|
472
424
|
includePhone: boolean;
|
|
473
425
|
tags?: string | null;
|
|
@@ -968,13 +920,18 @@ export declare const runtimeBackedBlockServerEntries: {
|
|
|
968
920
|
occurrenceContext?: import("../..").OccurrenceContext | null;
|
|
969
921
|
subject?: import("../nodes/event-registration/eventScope").EventRegistrationPageSurfaceSubject | null;
|
|
970
922
|
events?: import("../..").PublicEvent[] | null;
|
|
923
|
+
wholeSeriesOfferings?: import("../..").PublicCourse[] | null;
|
|
924
|
+
wholeSeriesOffering?: import("../..").PublicCourse | null;
|
|
971
925
|
className?: string | null;
|
|
972
926
|
buttonText?: string | null;
|
|
973
927
|
maxTickets?: string | null;
|
|
974
928
|
showVenue?: boolean;
|
|
975
929
|
showCapacity?: boolean;
|
|
930
|
+
showSessions?: boolean;
|
|
931
|
+
showPrice?: boolean;
|
|
976
932
|
successMessage?: string;
|
|
977
933
|
waitlistMessage?: string;
|
|
934
|
+
membershipMessage?: string;
|
|
978
935
|
buttonVariant?: import("../../..").BlockButtonRole;
|
|
979
936
|
overlayEnabled?: boolean;
|
|
980
937
|
spamProtectionEnabled?: boolean;
|
|
@@ -1008,13 +965,18 @@ export declare const runtimeBackedBlockServerEntries: {
|
|
|
1008
965
|
occurrenceContext?: import("../..").OccurrenceContext | null;
|
|
1009
966
|
subject?: import("../nodes/event-registration/eventScope").EventRegistrationPageSurfaceSubject | null;
|
|
1010
967
|
events?: import("../..").PublicEvent[] | null;
|
|
968
|
+
wholeSeriesOfferings?: import("../..").PublicCourse[] | null;
|
|
969
|
+
wholeSeriesOffering?: import("../..").PublicCourse | null;
|
|
1011
970
|
className?: string | null;
|
|
1012
971
|
buttonText?: string | null;
|
|
1013
972
|
maxTickets?: string | null;
|
|
1014
973
|
showVenue?: boolean;
|
|
1015
974
|
showCapacity?: boolean;
|
|
975
|
+
showSessions?: boolean;
|
|
976
|
+
showPrice?: boolean;
|
|
1016
977
|
successMessage?: string;
|
|
1017
978
|
waitlistMessage?: string;
|
|
979
|
+
membershipMessage?: string;
|
|
1018
980
|
buttonVariant?: import("../../..").BlockButtonRole;
|
|
1019
981
|
overlayEnabled?: boolean;
|
|
1020
982
|
spamProtectionEnabled?: boolean;
|
|
@@ -1035,13 +997,18 @@ export declare const runtimeBackedBlockServerEntries: {
|
|
|
1035
997
|
occurrenceContext?: import("../..").OccurrenceContext | null;
|
|
1036
998
|
subject?: import("../nodes/event-registration/eventScope").EventRegistrationPageSurfaceSubject | null;
|
|
1037
999
|
events?: import("../..").PublicEvent[] | null;
|
|
1000
|
+
wholeSeriesOfferings?: import("../..").PublicCourse[] | null;
|
|
1001
|
+
wholeSeriesOffering?: import("../..").PublicCourse | null;
|
|
1038
1002
|
className?: string | null;
|
|
1039
1003
|
buttonText?: string | null;
|
|
1040
1004
|
maxTickets?: string | null;
|
|
1041
1005
|
showVenue?: boolean;
|
|
1042
1006
|
showCapacity?: boolean;
|
|
1007
|
+
showSessions?: boolean;
|
|
1008
|
+
showPrice?: boolean;
|
|
1043
1009
|
successMessage?: string;
|
|
1044
1010
|
waitlistMessage?: string;
|
|
1011
|
+
membershipMessage?: string;
|
|
1045
1012
|
buttonVariant?: import("../../..").BlockButtonRole;
|
|
1046
1013
|
overlayEnabled?: boolean;
|
|
1047
1014
|
spamProtectionEnabled?: boolean;
|
|
@@ -9,7 +9,7 @@ export type OccurrenceContextLike = {
|
|
|
9
9
|
timeZone: string;
|
|
10
10
|
} | null;
|
|
11
11
|
export type EventDetailsSelection = {
|
|
12
|
-
mode: 'selected' | 'next';
|
|
12
|
+
mode: 'selected' | 'next' | 'completed';
|
|
13
13
|
selected: PublicEvent | null;
|
|
14
14
|
otherDates: PublicEvent[];
|
|
15
15
|
timeZone: string;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { PublicCourse } from '../../../blocks/courses/shared/types';
|
|
2
|
+
import type { PublicEvent } from '../../../blocks/events/shared/types';
|
|
3
|
+
import { type EventRegistrationPageSurfaceSubject } from './eventScope';
|
|
4
|
+
export type EventRegistrationSurfacePlan = Readonly<{
|
|
5
|
+
kind: 'occurrence';
|
|
6
|
+
events: readonly PublicEvent[];
|
|
7
|
+
}> | Readonly<{
|
|
8
|
+
kind: 'wholeSeries';
|
|
9
|
+
offerings: readonly PublicCourse[];
|
|
10
|
+
}> | Readonly<{
|
|
11
|
+
kind: 'unavailableWholeSeries';
|
|
12
|
+
}> | Readonly<{
|
|
13
|
+
kind: 'mixedBookingScopes';
|
|
14
|
+
}>;
|
|
15
|
+
export declare function planEventRegistrationSurface(input: Readonly<{
|
|
16
|
+
events: readonly PublicEvent[];
|
|
17
|
+
wholeSeriesOfferings: readonly PublicCourse[];
|
|
18
|
+
occurrenceContext?: Readonly<{
|
|
19
|
+
id: string;
|
|
20
|
+
seriesId: string;
|
|
21
|
+
startsAt: string;
|
|
22
|
+
endsAt: string;
|
|
23
|
+
timeZone: string;
|
|
24
|
+
}> | null;
|
|
25
|
+
subject?: EventRegistrationPageSurfaceSubject | null;
|
|
26
|
+
}>): EventRegistrationSurfacePlan;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { PublicEvent, PublicEventTicketType, PublicEventTicketTypeAvailability } from '../../../blocks/events/shared/types';
|
|
2
2
|
import type { OccurrenceContext } from '../../../blocks/event-registration.shared';
|
|
3
3
|
import type { PublicMembershipProductCollection, PublicPassProductCollection } from '../../../blocks/shop.shared';
|
|
4
|
+
import type { PublicCourse } from '../../../blocks/courses/shared/types';
|
|
4
5
|
import type { AvailablePass, AvailableMembership, DirectCheckoutCollectionOptionKind, EventTicketLineSummary, EligibilityEventTicketType } from '../../api/types';
|
|
5
6
|
import type { EventRegistrationPageSurfaceSubject } from './eventScope';
|
|
6
7
|
import type { BlockButtonRole } from '../../../constants/buttonRoles';
|
|
@@ -145,11 +146,18 @@ export type EventRegistrationClientProps = {
|
|
|
145
146
|
occurrenceContext?: OccurrenceContext | null;
|
|
146
147
|
subject?: EventRegistrationPageSurfaceSubject | null;
|
|
147
148
|
events?: PublicEvent[] | null;
|
|
149
|
+
/** Canonical whole-series runs used when the scoped Event books the full series. */
|
|
150
|
+
wholeSeriesOfferings?: PublicCourse[] | null;
|
|
151
|
+
/** Targeted whole-series offering loaded for a native Event page surface. */
|
|
152
|
+
wholeSeriesOffering?: PublicCourse | null;
|
|
148
153
|
maxTickets?: string;
|
|
149
154
|
showVenue?: boolean;
|
|
150
155
|
showCapacity?: boolean;
|
|
156
|
+
showSessions?: boolean;
|
|
157
|
+
showPrice?: boolean;
|
|
151
158
|
successMessage?: string;
|
|
152
159
|
waitlistMessage?: string;
|
|
160
|
+
membershipMessage?: string;
|
|
153
161
|
buttonText?: string;
|
|
154
162
|
buttonVariant?: BlockButtonRole;
|
|
155
163
|
overlayEnabled?: boolean;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { BlockButtonRole } from '../../constants/buttonRoles';
|
|
2
2
|
import type { PublicEvent } from '../../blocks/events/shared/types';
|
|
3
|
+
import type { PublicCourse } from '../../blocks/courses/shared/types';
|
|
3
4
|
import { type PublicMembershipProductCollection, type PublicPassProductCollection } from '../../blocks/shop.shared';
|
|
4
5
|
import type { OccurrenceContext } from '../../blocks/event-registration.shared';
|
|
5
6
|
import type { EventRegistrationClientProps as InternalEventRegistrationClientProps } from './event-registration/types';
|
|
@@ -17,13 +18,18 @@ export type EventRegistrationSourceProps = Readonly<{
|
|
|
17
18
|
occurrenceContext?: OccurrenceContext | null;
|
|
18
19
|
subject?: EventRegistrationPageSurfaceSubject | null;
|
|
19
20
|
events?: PublicEvent[] | null;
|
|
21
|
+
wholeSeriesOfferings?: PublicCourse[] | null;
|
|
22
|
+
wholeSeriesOffering?: PublicCourse | null;
|
|
20
23
|
className?: string | null;
|
|
21
24
|
buttonText?: string | null;
|
|
22
25
|
maxTickets?: string | null;
|
|
23
26
|
showVenue?: boolean;
|
|
24
27
|
showCapacity?: boolean;
|
|
28
|
+
showSessions?: boolean;
|
|
29
|
+
showPrice?: boolean;
|
|
25
30
|
successMessage?: string;
|
|
26
31
|
waitlistMessage?: string;
|
|
32
|
+
membershipMessage?: string;
|
|
27
33
|
buttonVariant?: BlockButtonRole;
|
|
28
34
|
overlayEnabled?: boolean;
|
|
29
35
|
spamProtectionEnabled?: boolean;
|
|
@@ -61,13 +67,18 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
|
|
|
61
67
|
occurrenceContext?: OccurrenceContext | null;
|
|
62
68
|
subject?: EventRegistrationPageSurfaceSubject | null;
|
|
63
69
|
events?: PublicEvent[] | null;
|
|
70
|
+
wholeSeriesOfferings?: PublicCourse[] | null;
|
|
71
|
+
wholeSeriesOffering?: PublicCourse | null;
|
|
64
72
|
className?: string | null;
|
|
65
73
|
buttonText?: string | null;
|
|
66
74
|
maxTickets?: string | null;
|
|
67
75
|
showVenue?: boolean;
|
|
68
76
|
showCapacity?: boolean;
|
|
77
|
+
showSessions?: boolean;
|
|
78
|
+
showPrice?: boolean;
|
|
69
79
|
successMessage?: string;
|
|
70
80
|
waitlistMessage?: string;
|
|
81
|
+
membershipMessage?: string;
|
|
71
82
|
buttonVariant?: BlockButtonRole;
|
|
72
83
|
overlayEnabled?: boolean;
|
|
73
84
|
spamProtectionEnabled?: boolean;
|
|
@@ -101,13 +112,18 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
|
|
|
101
112
|
occurrenceContext?: OccurrenceContext | null;
|
|
102
113
|
subject?: EventRegistrationPageSurfaceSubject | null;
|
|
103
114
|
events?: PublicEvent[] | null;
|
|
115
|
+
wholeSeriesOfferings?: PublicCourse[] | null;
|
|
116
|
+
wholeSeriesOffering?: PublicCourse | null;
|
|
104
117
|
className?: string | null;
|
|
105
118
|
buttonText?: string | null;
|
|
106
119
|
maxTickets?: string | null;
|
|
107
120
|
showVenue?: boolean;
|
|
108
121
|
showCapacity?: boolean;
|
|
122
|
+
showSessions?: boolean;
|
|
123
|
+
showPrice?: boolean;
|
|
109
124
|
successMessage?: string;
|
|
110
125
|
waitlistMessage?: string;
|
|
126
|
+
membershipMessage?: string;
|
|
111
127
|
buttonVariant?: BlockButtonRole;
|
|
112
128
|
overlayEnabled?: boolean;
|
|
113
129
|
spamProtectionEnabled?: boolean;
|
|
@@ -128,13 +144,18 @@ export declare const eventRegistrationBlockRuntime: Readonly<{
|
|
|
128
144
|
occurrenceContext?: OccurrenceContext | null;
|
|
129
145
|
subject?: EventRegistrationPageSurfaceSubject | null;
|
|
130
146
|
events?: PublicEvent[] | null;
|
|
147
|
+
wholeSeriesOfferings?: PublicCourse[] | null;
|
|
148
|
+
wholeSeriesOffering?: PublicCourse | null;
|
|
131
149
|
className?: string | null;
|
|
132
150
|
buttonText?: string | null;
|
|
133
151
|
maxTickets?: string | null;
|
|
134
152
|
showVenue?: boolean;
|
|
135
153
|
showCapacity?: boolean;
|
|
154
|
+
showSessions?: boolean;
|
|
155
|
+
showPrice?: boolean;
|
|
136
156
|
successMessage?: string;
|
|
137
157
|
waitlistMessage?: string;
|
|
158
|
+
membershipMessage?: string;
|
|
138
159
|
buttonVariant?: BlockButtonRole;
|
|
139
160
|
overlayEnabled?: boolean;
|
|
140
161
|
spamProtectionEnabled?: boolean;
|
|
@@ -1,22 +1,7 @@
|
|
|
1
1
|
import { type InteractiveIslandProps } from '../../../contracts/islands';
|
|
2
|
-
import { type
|
|
3
|
-
import { type NewsletterButtonVariant, type NewsletterFieldDef, type NewsletterPreset } from './newsletter-form.types';
|
|
4
|
-
export type NewsletterFormSourceProps =
|
|
5
|
-
blockId?: string | null;
|
|
6
|
-
siteId?: string;
|
|
7
|
-
apiBaseUrl?: string;
|
|
8
|
-
listId?: string | null;
|
|
9
|
-
destinationProvider?: NewsletterSignupDestinationProvider | null;
|
|
10
|
-
preset?: NewsletterPreset;
|
|
11
|
-
includePhone?: boolean;
|
|
12
|
-
buttonLabel?: string | null;
|
|
13
|
-
buttonVariant?: NewsletterButtonVariant | null;
|
|
14
|
-
successMessage?: string | null;
|
|
15
|
-
privacyNote?: string | null;
|
|
16
|
-
tags?: string | null;
|
|
17
|
-
spamProtectionEnabled?: boolean;
|
|
18
|
-
className?: string | null;
|
|
19
|
-
}>;
|
|
2
|
+
import { type NewsletterSignupPublicDestinationRef } from '../../blocks/newsletter-signup-destination';
|
|
3
|
+
import { type NewsletterButtonVariant, type NewsletterFieldDef, type NewsletterFormProps, type NewsletterPreset } from './newsletter-form.types';
|
|
4
|
+
export type NewsletterFormSourceProps = NewsletterFormProps;
|
|
20
5
|
export type NewsletterFormDisplay = Readonly<{
|
|
21
6
|
kind: 'newsletter-form';
|
|
22
7
|
className: string | null;
|
|
@@ -27,13 +12,28 @@ export type NewsletterFormDisplay = Readonly<{
|
|
|
27
12
|
fields: readonly NewsletterFieldDef[];
|
|
28
13
|
}>;
|
|
29
14
|
export type NewsletterFormHydration = Readonly<{
|
|
30
|
-
|
|
31
|
-
listId?: string | null;
|
|
15
|
+
target: NewsletterFormHydrationTarget;
|
|
32
16
|
preset: NewsletterPreset;
|
|
33
17
|
includePhone: boolean;
|
|
34
18
|
tags?: string | null;
|
|
35
19
|
spamProtectionEnabled?: boolean;
|
|
36
20
|
}>;
|
|
21
|
+
export type NewsletterFormHydrationTarget = Readonly<{
|
|
22
|
+
tag: 'block-source';
|
|
23
|
+
destinationRef: NewsletterSignupBlockDestinationRef | null;
|
|
24
|
+
}> | Readonly<{
|
|
25
|
+
tag: 'signed-footer-source';
|
|
26
|
+
destinationRef: NewsletterSignupSignedDestinationRef;
|
|
27
|
+
}> | Readonly<{
|
|
28
|
+
tag: 'legacy-direct-list';
|
|
29
|
+
listId: string | null;
|
|
30
|
+
}>;
|
|
31
|
+
type NewsletterSignupBlockDestinationRef = Extract<NewsletterSignupPublicDestinationRef, {
|
|
32
|
+
tag: 'block_ref';
|
|
33
|
+
}>;
|
|
34
|
+
type NewsletterSignupSignedDestinationRef = Extract<NewsletterSignupPublicDestinationRef, {
|
|
35
|
+
tag: 'signed_destination_ref';
|
|
36
|
+
}>;
|
|
37
37
|
type NewsletterIslandMeta = Readonly<{
|
|
38
38
|
siteId?: string;
|
|
39
39
|
apiBaseUrl?: string;
|
|
@@ -42,22 +42,7 @@ export declare function buildNewsletterDisplay(source: NewsletterFormSourceProps
|
|
|
42
42
|
export type NewsletterFormInteractiveIslandProps = InteractiveIslandProps<NewsletterIslandMeta, 'newsletter-form', typeof newsletterFormBlockRuntime>;
|
|
43
43
|
export declare const newsletterFormBlockRuntime: Readonly<{
|
|
44
44
|
kind: "progressive";
|
|
45
|
-
buildRender: (source: Readonly<{
|
|
46
|
-
blockId?: string | null;
|
|
47
|
-
siteId?: string;
|
|
48
|
-
apiBaseUrl?: string;
|
|
49
|
-
listId?: string | null;
|
|
50
|
-
destinationProvider?: NewsletterSignupDestinationProvider | null;
|
|
51
|
-
preset?: NewsletterPreset;
|
|
52
|
-
includePhone?: boolean;
|
|
53
|
-
buttonLabel?: string | null;
|
|
54
|
-
buttonVariant?: NewsletterButtonVariant | null;
|
|
55
|
-
successMessage?: string | null;
|
|
56
|
-
privacyNote?: string | null;
|
|
57
|
-
tags?: string | null;
|
|
58
|
-
spamProtectionEnabled?: boolean;
|
|
59
|
-
className?: string | null;
|
|
60
|
-
}>) => Readonly<{
|
|
45
|
+
buildRender: (source: NewsletterFormProps) => Readonly<{
|
|
61
46
|
display: Readonly<{
|
|
62
47
|
kind: "newsletter-form";
|
|
63
48
|
className: string | null;
|
|
@@ -68,8 +53,7 @@ export declare const newsletterFormBlockRuntime: Readonly<{
|
|
|
68
53
|
fields: readonly NewsletterFieldDef[];
|
|
69
54
|
}>;
|
|
70
55
|
hydration: Readonly<{
|
|
71
|
-
|
|
72
|
-
listId?: string | null;
|
|
56
|
+
target: NewsletterFormHydrationTarget;
|
|
73
57
|
preset: NewsletterPreset;
|
|
74
58
|
includePhone: boolean;
|
|
75
59
|
tags?: string | null;
|
|
@@ -78,38 +62,8 @@ export declare const newsletterFormBlockRuntime: Readonly<{
|
|
|
78
62
|
}>;
|
|
79
63
|
contracts: Readonly<{
|
|
80
64
|
source: Readonly<{
|
|
81
|
-
encode: (value:
|
|
82
|
-
|
|
83
|
-
siteId?: string;
|
|
84
|
-
apiBaseUrl?: string;
|
|
85
|
-
listId?: string | null;
|
|
86
|
-
destinationProvider?: NewsletterSignupDestinationProvider | null;
|
|
87
|
-
preset?: NewsletterPreset;
|
|
88
|
-
includePhone?: boolean;
|
|
89
|
-
buttonLabel?: string | null;
|
|
90
|
-
buttonVariant?: NewsletterButtonVariant | null;
|
|
91
|
-
successMessage?: string | null;
|
|
92
|
-
privacyNote?: string | null;
|
|
93
|
-
tags?: string | null;
|
|
94
|
-
spamProtectionEnabled?: boolean;
|
|
95
|
-
className?: string | null;
|
|
96
|
-
}>) => unknown;
|
|
97
|
-
decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
|
|
98
|
-
blockId?: string | null;
|
|
99
|
-
siteId?: string;
|
|
100
|
-
apiBaseUrl?: string;
|
|
101
|
-
listId?: string | null;
|
|
102
|
-
destinationProvider?: NewsletterSignupDestinationProvider | null;
|
|
103
|
-
preset?: NewsletterPreset;
|
|
104
|
-
includePhone?: boolean;
|
|
105
|
-
buttonLabel?: string | null;
|
|
106
|
-
buttonVariant?: NewsletterButtonVariant | null;
|
|
107
|
-
successMessage?: string | null;
|
|
108
|
-
privacyNote?: string | null;
|
|
109
|
-
tags?: string | null;
|
|
110
|
-
spamProtectionEnabled?: boolean;
|
|
111
|
-
className?: string | null;
|
|
112
|
-
}>>;
|
|
65
|
+
encode: (value: NewsletterFormProps) => unknown;
|
|
66
|
+
decode: (input: unknown) => import("../../../contracts").DecodeResult<NewsletterFormProps>;
|
|
113
67
|
}>;
|
|
114
68
|
render: Readonly<{
|
|
115
69
|
encode: (value: Readonly<{
|
|
@@ -123,8 +77,7 @@ export declare const newsletterFormBlockRuntime: Readonly<{
|
|
|
123
77
|
fields: readonly NewsletterFieldDef[];
|
|
124
78
|
}>;
|
|
125
79
|
hydration: Readonly<{
|
|
126
|
-
|
|
127
|
-
listId?: string | null;
|
|
80
|
+
target: NewsletterFormHydrationTarget;
|
|
128
81
|
preset: NewsletterPreset;
|
|
129
82
|
includePhone: boolean;
|
|
130
83
|
tags?: string | null;
|
|
@@ -142,8 +95,7 @@ export declare const newsletterFormBlockRuntime: Readonly<{
|
|
|
142
95
|
fields: readonly NewsletterFieldDef[];
|
|
143
96
|
}>;
|
|
144
97
|
hydration: Readonly<{
|
|
145
|
-
|
|
146
|
-
listId?: string | null;
|
|
98
|
+
target: NewsletterFormHydrationTarget;
|
|
147
99
|
preset: NewsletterPreset;
|
|
148
100
|
includePhone: boolean;
|
|
149
101
|
tags?: string | null;
|
|
@@ -153,6 +105,7 @@ export declare const newsletterFormBlockRuntime: Readonly<{
|
|
|
153
105
|
}>;
|
|
154
106
|
}>;
|
|
155
107
|
}>;
|
|
108
|
+
export declare function projectNewsletterFormHydrationTarget(source: NewsletterFormSourceProps): NewsletterFormHydrationTarget;
|
|
156
109
|
export declare const newsletterFormInteractiveIslandPropsCodec: Readonly<{
|
|
157
110
|
encode: (value: Readonly<Readonly<{
|
|
158
111
|
siteId?: string;
|
|
@@ -172,8 +125,7 @@ export declare const newsletterFormInteractiveIslandPropsCodec: Readonly<{
|
|
|
172
125
|
fields: readonly NewsletterFieldDef[];
|
|
173
126
|
}>;
|
|
174
127
|
hydration: Readonly<{
|
|
175
|
-
|
|
176
|
-
listId?: string | null;
|
|
128
|
+
target: NewsletterFormHydrationTarget;
|
|
177
129
|
preset: NewsletterPreset;
|
|
178
130
|
includePhone: boolean;
|
|
179
131
|
tags?: string | null;
|
|
@@ -199,8 +151,7 @@ export declare const newsletterFormInteractiveIslandPropsCodec: Readonly<{
|
|
|
199
151
|
fields: readonly NewsletterFieldDef[];
|
|
200
152
|
}>;
|
|
201
153
|
hydration: Readonly<{
|
|
202
|
-
|
|
203
|
-
listId?: string | null;
|
|
154
|
+
target: NewsletterFormHydrationTarget;
|
|
204
155
|
preset: NewsletterPreset;
|
|
205
156
|
includePhone: boolean;
|
|
206
157
|
tags?: string | null;
|
|
@@ -6,5 +6,5 @@ import type { NewsletterFormProps } from './newsletter-form.types';
|
|
|
6
6
|
* Renders the newsletter signup form for SSR with hydration support.
|
|
7
7
|
* Uses the islands architecture pattern to hydrate on the client.
|
|
8
8
|
*/
|
|
9
|
-
export declare function NewsletterFormSSR(
|
|
9
|
+
export declare function NewsletterFormSSR(props: NewsletterFormProps): React.JSX.Element;
|
|
10
10
|
export default NewsletterFormSSR;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { NewsletterSubscribeTarget } from '../api/types';
|
|
2
|
-
import type {
|
|
2
|
+
import type { NewsletterFormHydrationTarget } from './newsletter-form.interactive';
|
|
3
3
|
export type NewsletterFormRawSubmissionFields = Readonly<{
|
|
4
4
|
email: FormDataEntryValue | null;
|
|
5
5
|
firstName: FormDataEntryValue | null;
|
|
@@ -23,10 +23,7 @@ export type NewsletterSubmitTargetResolution = Readonly<{
|
|
|
23
23
|
target: NewsletterSubscribeTarget;
|
|
24
24
|
}> | Readonly<{
|
|
25
25
|
tag: 'unavailable';
|
|
26
|
-
reason: 'missing_legacy_list';
|
|
26
|
+
reason: 'missing_block_source' | 'missing_legacy_list';
|
|
27
27
|
}>;
|
|
28
28
|
export declare function mapNewsletterFormFieldsToSubscriberInput(fields: NewsletterFormRawSubmissionFields): NewsletterFormSubmissionFields;
|
|
29
|
-
export declare function resolveNewsletterSubmitTarget(input:
|
|
30
|
-
listId?: string | null;
|
|
31
|
-
destinationRef?: NewsletterSignupPublicDestinationRef | null;
|
|
32
|
-
}>): NewsletterSubmitTargetResolution;
|
|
29
|
+
export declare function resolveNewsletterSubmitTarget(input: NewsletterFormHydrationTarget): NewsletterSubmitTargetResolution;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Shared types for the newsletter form server and client components.
|
|
5
5
|
*/
|
|
6
|
-
import type { NewsletterSignupFieldPreset } from '../../blocks/newsletter-signup-destination';
|
|
6
|
+
import type { NewsletterSignupDestinationProvider, NewsletterSignupFieldPreset, NewsletterSignupPublicDestinationRef } from '../../blocks/newsletter-signup-destination';
|
|
7
7
|
import type { BlockButtonRole } from '../../constants/buttonRoles';
|
|
8
8
|
export type NewsletterPreset = NewsletterSignupFieldPreset;
|
|
9
9
|
export type NewsletterFieldDef = {
|
|
@@ -15,17 +15,11 @@ export type NewsletterFieldDef = {
|
|
|
15
15
|
};
|
|
16
16
|
export type NewsletterDestinationProvider = 'riverbank' | 'mailchimp';
|
|
17
17
|
export type NewsletterButtonVariant = BlockButtonRole;
|
|
18
|
-
|
|
19
|
-
/** Block ID for island hydration */
|
|
20
|
-
blockId?: string | null;
|
|
18
|
+
type NewsletterFormCommonProps = {
|
|
21
19
|
/** Site ID for API calls */
|
|
22
20
|
siteId?: string;
|
|
23
21
|
/** API base URL for client-side fetching */
|
|
24
22
|
apiBaseUrl?: string;
|
|
25
|
-
/** Newsletter list ID to subscribe users to */
|
|
26
|
-
listId?: string | null;
|
|
27
|
-
/** Active signup destination provider */
|
|
28
|
-
destinationProvider?: NewsletterDestinationProvider | null;
|
|
29
23
|
/** Field preset configuration */
|
|
30
24
|
preset?: NewsletterPreset;
|
|
31
25
|
/** Adds an optional phone field to the selected preset */
|
|
@@ -45,9 +39,34 @@ export type NewsletterFormProps = {
|
|
|
45
39
|
/** Additional CSS class */
|
|
46
40
|
className?: string | null;
|
|
47
41
|
};
|
|
42
|
+
type BlockNewsletterFormSource = Readonly<{
|
|
43
|
+
source: 'block';
|
|
44
|
+
blockId?: string | null;
|
|
45
|
+
destinationProvider?: NewsletterSignupDestinationProvider | null;
|
|
46
|
+
/** Authoring state only; public submission authority is always blockId. */
|
|
47
|
+
listId?: string | null;
|
|
48
|
+
}>;
|
|
49
|
+
type SignedFooterNewsletterFormSource = Readonly<{
|
|
50
|
+
source: 'signed-footer';
|
|
51
|
+
destinationRef: Extract<NewsletterSignupPublicDestinationRef, {
|
|
52
|
+
tag: 'signed_destination_ref';
|
|
53
|
+
}>;
|
|
54
|
+
blockId?: never;
|
|
55
|
+
destinationProvider?: never;
|
|
56
|
+
listId?: never;
|
|
57
|
+
}>;
|
|
58
|
+
type LegacyDirectListNewsletterFormSource = Readonly<{
|
|
59
|
+
source: 'legacy-direct-list';
|
|
60
|
+
listId: string | null;
|
|
61
|
+
blockId?: never;
|
|
62
|
+
destinationRef?: never;
|
|
63
|
+
destinationProvider?: never;
|
|
64
|
+
}>;
|
|
65
|
+
export type NewsletterFormProps = NewsletterFormCommonProps & (BlockNewsletterFormSource | SignedFooterNewsletterFormSource | LegacyDirectListNewsletterFormSource);
|
|
48
66
|
/**
|
|
49
67
|
* Get form fields based on preset configuration.
|
|
50
68
|
*/
|
|
51
69
|
export declare function getPresetFields(preset: NewsletterPreset, options?: {
|
|
52
70
|
includePhone?: boolean;
|
|
53
71
|
}): NewsletterFieldDef[];
|
|
72
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type FooterCompositionV1 } from '../../core/src/index';
|
|
2
|
+
import type { FooterRuntimeViewModel } from '../../blocks/src/client/site-chrome';
|
|
3
|
+
import { type FooterEditorTarget, type planFooterEditorView } from './footerComposer';
|
|
4
|
+
import type { SaveState } from './useFooterComposerState';
|
|
5
|
+
type FooterPlan = ReturnType<typeof planFooterEditorView>;
|
|
6
|
+
export declare function SaveBadge({ state }: {
|
|
7
|
+
state: SaveState;
|
|
8
|
+
}): import("react").JSX.Element | null;
|
|
9
|
+
export declare function FooterPreview({ runtime, }: {
|
|
10
|
+
runtime: FooterRuntimeViewModel;
|
|
11
|
+
}): import("react").JSX.Element;
|
|
12
|
+
export declare function FooterOverview({ plan, composition, onTarget, onChange, manageLinksHref, manageSettingsHref, onEngagement, }: {
|
|
13
|
+
plan: FooterPlan;
|
|
14
|
+
composition: FooterCompositionV1;
|
|
15
|
+
onTarget: (target: FooterEditorTarget) => void;
|
|
16
|
+
onChange: (composition: FooterCompositionV1) => void;
|
|
17
|
+
manageLinksHref: string;
|
|
18
|
+
manageSettingsHref: string;
|
|
19
|
+
onEngagement: () => void;
|
|
20
|
+
}): import("react").JSX.Element;
|
|
21
|
+
export {};
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
2
|
import type { ApiClient } from '../../api/src/request';
|
|
3
3
|
import { type FooterEditorTarget } from './footerComposer';
|
|
4
|
-
export declare function FooterComposerPanel({ apiClient, siteId: rawSiteId, customFooterMode, manageLinksHref, manageSettingsHref, legalRegion, initialTarget, variant, canEdit, onSaved, loadingFallback, }: {
|
|
4
|
+
export declare function FooterComposerPanel({ apiClient, siteId: rawSiteId, customFooterMode, manageLinksHref, manageFormsHref, manageNewsletterHref, manageSettingsHref, legalRegion, initialTarget, variant, canEdit, onSaved, loadingFallback, }: {
|
|
5
5
|
apiClient: ApiClient;
|
|
6
6
|
siteId: string;
|
|
7
7
|
customFooterMode: 'default' | 'blocks' | 'default+blocks' | 'none';
|
|
8
8
|
manageLinksHref: string;
|
|
9
|
+
manageFormsHref?: string;
|
|
10
|
+
manageNewsletterHref?: string;
|
|
9
11
|
manageSettingsHref: string;
|
|
10
12
|
legalRegion?: 'integrated' | 'separate';
|
|
11
13
|
initialTarget?: FooterEditorTarget;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { FooterEngagementAuthoringOptions } from '../../api/src/footer-settings';
|
|
2
|
+
import type { FooterEngagementDraft, FooterEngagementDraftEvent } from './footerEngagementDraft';
|
|
3
|
+
type DispatchDraft = (event: FooterEngagementDraftEvent) => void;
|
|
4
|
+
export declare function EngagementKindChoice({ dispatch, kind, }: Readonly<{
|
|
5
|
+
dispatch: DispatchDraft;
|
|
6
|
+
kind: FooterEngagementDraft['kind'];
|
|
7
|
+
}>): import("react").JSX.Element;
|
|
8
|
+
export declare function EngagementCopyFields({ dispatch, draft, error, }: Readonly<{
|
|
9
|
+
dispatch: DispatchDraft;
|
|
10
|
+
draft: FooterEngagementDraft;
|
|
11
|
+
error: string | null;
|
|
12
|
+
}>): import("react").JSX.Element;
|
|
13
|
+
export declare function EngagementPlacementChoice({ dispatch, treatment, }: Readonly<{
|
|
14
|
+
dispatch: DispatchDraft;
|
|
15
|
+
treatment: FooterEngagementDraft['treatment'];
|
|
16
|
+
}>): import("react").JSX.Element;
|
|
17
|
+
export declare function StandardContactChoice({ dispatch, formId, manageFormsHref, options, }: Readonly<{
|
|
18
|
+
dispatch: DispatchDraft;
|
|
19
|
+
formId: string;
|
|
20
|
+
manageFormsHref: string;
|
|
21
|
+
options: FooterEngagementAuthoringOptions;
|
|
22
|
+
}>): import("react").JSX.Element;
|
|
23
|
+
export declare function MailingListChoice({ dispatch, draft, manageNewsletterHref, options, }: Readonly<{
|
|
24
|
+
dispatch: DispatchDraft;
|
|
25
|
+
draft: Extract<FooterEngagementDraft, {
|
|
26
|
+
kind: 'mailing-list';
|
|
27
|
+
}>;
|
|
28
|
+
manageNewsletterHref: string;
|
|
29
|
+
options: FooterEngagementAuthoringOptions;
|
|
30
|
+
}>): import("react").JSX.Element;
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { FooterEngagementSection } from '../../core/src/index';
|
|
2
|
+
import type { FooterEngagementAuthoringOptions } from '../../api/src/footer-settings';
|
|
3
|
+
import type { FooterEngagementReadiness } from './footerEngagementEditor';
|
|
4
|
+
type FooterEngagementEditorPanelProps = Readonly<{
|
|
5
|
+
candidate: FooterEngagementSection | null;
|
|
6
|
+
current: FooterEngagementSection | null;
|
|
7
|
+
manageFormsHref: string;
|
|
8
|
+
manageNewsletterHref: string;
|
|
9
|
+
onApply: () => void;
|
|
10
|
+
onCancel: () => void;
|
|
11
|
+
onPreview: (candidate: FooterEngagementSection) => void;
|
|
12
|
+
onRemove: () => void;
|
|
13
|
+
options: FooterEngagementAuthoringOptions;
|
|
14
|
+
readiness: FooterEngagementReadiness;
|
|
15
|
+
}>;
|
|
16
|
+
export declare function FooterEngagementEditorPanel(props: FooterEngagementEditorPanelProps): import("react").JSX.Element;
|
|
17
|
+
export {};
|