@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.
- package/README.md +11 -15
- package/dist/{PreviewEditorSidebar-BVPur_CU.mjs → PreviewEditorSidebar-BDeenhi3.mjs} +4 -4
- package/dist/{PreviewEditorUI-DLhWX8oh.mjs → PreviewEditorUI-DSRhgjF5.mjs} +3 -3
- package/dist/{PreviewQueryProvider-BguJY1SW.mjs → PreviewQueryProvider-D2K8GLUG.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-Tda6qw4z.mjs → SdkPreviewModeRuntime-CL7wSnYu.mjs} +47 -27
- package/dist/{SiteChromeCustomizeContext-BHFgMjde.mjs → SiteChromeCustomizeContext-BhDn-5ir.mjs} +7771 -5863
- package/dist/_dts/ai/src/contracts/proposals.d.ts +99 -330
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +9 -30
- package/dist/_dts/api/src/billing.d.ts +10 -3
- package/dist/_dts/api/src/contentRuntime.d.ts +8 -1
- package/dist/_dts/api/src/endpoints.d.ts +182 -103
- package/dist/_dts/api/src/footerSettings.d.ts +2 -5
- package/dist/_dts/api/src/index.d.ts +11 -9
- package/dist/_dts/api/src/mailchimpIntegration.d.ts +2 -59
- package/dist/_dts/api/src/mailingListIntegration.d.ts +117 -0
- package/dist/_dts/api/src/navigation/locations.d.ts +1 -0
- package/dist/_dts/api/src/navigation.d.ts +1 -26
- package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +109 -2
- package/dist/_dts/api/src/onboarding/surfaceData.d.ts +185 -0
- package/dist/_dts/api/src/privacyPolicy.d.ts +74 -2
- package/dist/_dts/api/src/publicBookingAvailabilityEndpointDefinitions.d.ts +6 -6
- package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +1 -1
- package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +2 -4
- package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +10 -24
- package/dist/_dts/api/src/publicReadEndpointDefinitions.d.ts +73 -0
- package/dist/_dts/api/src/schemas/site-api-keys.d.ts +1 -1
- package/dist/_dts/api/src/sdkContracts.d.ts +2 -10
- package/dist/_dts/api/src/sdkThemeWire.d.ts +2 -2
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +0 -29
- package/dist/_dts/api/src/siteOnboarding.d.ts +91 -228
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -9
- package/dist/_dts/api/src/siteSettings.d.ts +20 -1
- package/dist/_dts/api/src/types.d.ts +5 -4
- package/dist/_dts/billing/src/membership/index.d.ts +14 -7
- package/dist/_dts/billing/src/plans/display.d.ts +15 -0
- package/dist/_dts/billing/src/plans/registry.d.ts +2 -0
- package/dist/_dts/billing/src/plans/standing.d.ts +19 -0
- package/dist/_dts/billing/src/plans/types.d.ts +1 -7
- package/dist/_dts/billing/src/subscriptions/evidence.d.ts +12 -0
- package/dist/_dts/billing/src/subscriptions/standingEvidence.d.ts +31 -0
- package/dist/_dts/billing/src/subscriptions/store.d.ts +23 -5
- package/dist/_dts/blocks/src/PageRenderer.d.ts +6 -15
- package/dist/_dts/blocks/src/client.d.ts +1 -1
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +32 -16
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +4 -0
- package/dist/_dts/blocks/src/pageRenderingMode.d.ts +12 -6
- package/dist/_dts/blocks/src/system/blocks/appointment-services.d.ts +11 -0
- package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +39 -66
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +39 -114
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/catalogue.d.ts +18 -0
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/fields.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/index.d.ts +4 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +7 -13
- package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
- package/dist/_dts/blocks/src/system/data/index.d.ts +2 -2
- package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
- package/dist/_dts/blocks/src/system/data/publicLoaderCachePolicy.d.ts +2 -74
- package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +33 -100
- package/dist/_dts/blocks/src/system/runtime/api/types/newsletter.d.ts +5 -15
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +48 -24
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -12
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarToday.d.ts +22 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +51 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +28 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/bookability.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/duration.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/index.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/location.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/quickDates.d.ts +16 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/AgendaEventCard.d.ts +9 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayCell.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayHeaders.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DayEventsModal.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventQuickDates.d.ts +15 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +7 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekTimetableView.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/index.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/timetableModel.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/useHydrationReady.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.state.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +56 -33
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +13 -31
- package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview-catalogue.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview-content.d.ts +23 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +4 -2
- package/dist/_dts/blocks/src/system/transforms/registry/formatting.d.ts +5 -0
- package/dist/_dts/commerce/src/purchase/index.d.ts +1 -0
- package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +5 -12
- package/dist/_dts/commerce/src/purchase/stripeCommissionMetadata.d.ts +34 -0
- package/dist/_dts/content-editor/src/footerEngagementDraft.d.ts +6 -24
- package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +1 -2
- package/dist/_dts/core/src/footer-engagement.d.ts +2 -6
- package/dist/_dts/core/src/index.d.ts +9 -1
- package/dist/_dts/core/src/mailing-list-identifiers.d.ts +21 -0
- package/dist/_dts/core/src/mailing-list-runtime.d.ts +42 -0
- package/dist/_dts/core/src/mailing-list-setup-parser.d.ts +14 -0
- package/dist/_dts/core/src/mailing-list-setup.d.ts +129 -0
- package/dist/_dts/core/src/mailing-list-submission.d.ts +244 -0
- package/dist/_dts/core/src/mailing-list-targeting-parser.d.ts +12 -0
- package/dist/_dts/core/src/mailing-list-targeting.d.ts +93 -0
- package/dist/_dts/core/src/navigation-locations.d.ts +28 -0
- package/dist/_dts/core/src/public-profile.d.ts +9 -1
- package/dist/_dts/core/src/public-read-cache-contract.d.ts +45 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +529 -373
- package/dist/_dts/editor-blocks/src/widgets/index.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListTargetingField.d.ts +11 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/context.d.ts +13 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/index.d.ts +3 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/loaders.d.ts +6 -0
- package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +1 -0
- package/dist/_dts/sdk/src/client/publicAppointmentReadOperations.d.ts +12 -0
- package/dist/_dts/sdk/src/client/publicEventReadOperations.d.ts +2 -1
- package/dist/_dts/sdk/src/client/publicLoaderCacheAccess.d.ts +11 -4
- package/dist/_dts/sdk/src/config/content-types.d.ts +3 -13
- package/dist/_dts/sdk/src/config/content-validation.d.ts +5 -8
- package/dist/_dts/sdk/src/constants.d.ts +3 -3
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +12 -31
- package/dist/_dts/sdk/src/navigation/index.d.ts +11 -29
- package/dist/_dts/sdk/src/next/index.d.ts +4 -4
- package/dist/_dts/sdk/src/prebuild/types.d.ts +1 -5
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +33 -16
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +3 -0
- package/dist/_dts/sdk/src/rendering/client.d.ts +3 -20
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +3 -0
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +4 -0
- package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
- package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/hosted-booking-appearance.d.ts +41 -0
- package/dist/_dts/theme-core/src/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/runtime/buildThemeRuntime.d.ts +0 -1
- package/dist/_dts/theme-core/src/tokens/tokens.d.ts +7 -0
- package/dist/_dts/ui/src/badge.d.ts +1 -1
- package/dist/_dts/ui/src/callout.d.ts +1 -1
- package/dist/client/{BookingConsentAgreement-DQUik1Mx.mjs → BookingConsentAgreement-CZvTDtsK.mjs} +2 -2
- package/dist/client/{DiscountCodeDisclosure-CU67Q4vH.mjs → DiscountCodeDisclosure-D-DsLCMU.mjs} +1 -1
- package/dist/client/{EventCombined.client-a02TXUgg.mjs → EventCombined.client-dWqgd5ZO.mjs} +443 -199
- package/dist/client/{EventListing.client-99qx7jFl.mjs → EventListing.client-BMRa9IYp.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-CWzcq73L.mjs → LeafletStaticMap-D21W9kBZ.mjs} +1 -1
- package/dist/client/{accordion-D1nb3-Oj.mjs → accordion-FxF_ta47.mjs} +1 -1
- package/dist/client/{bookingForm-BGrmLhaO.mjs → bookingForm-YnwW4TGw.mjs} +5 -5
- package/dist/client/bookings.mjs +43 -2
- package/dist/client/{carousel-DSmOx3ad.mjs → carousel-vng7fFT5.mjs} +1 -1
- package/dist/client/{cart-COWeOIUk.mjs → cart-DEPDsjNk.mjs} +3 -3
- package/dist/client/{checkout-CeysaIJK.mjs → checkout-CZRWu9rW.mjs} +3 -3
- package/dist/client/client.mjs +3331 -1407
- package/dist/client/{context-DBzX85Xc.mjs → context-DvU_WUmd.mjs} +4 -3
- package/dist/client/{dates-DCYhZBlW.mjs → dates-wnPMiRl5.mjs} +21 -3
- package/dist/client/{eventCalendar-BgsN73Ul.mjs → eventCalendar-BA3Q5L15.mjs} +80 -78
- package/dist/client/{eventCombined-DcZQAMQP.mjs → eventCombined-51wgR-1R.mjs} +3 -3
- package/dist/client/{eventDetails-BWwGJ54l.mjs → eventDetails-modaetpm.mjs} +4 -4
- package/dist/client/{eventListing-DqYqV8vp.mjs → eventListing-D8t2J3Kv.mjs} +3 -3
- package/dist/client/{eventRegistration-DQGDgu_e.mjs → eventRegistration-CYqtkCE_.mjs} +49 -9
- package/dist/client/{form-ClfpasVT.mjs → form-CBKXN5In.mjs} +2 -2
- package/dist/client/{headerSection-BuOMe98N.mjs → headerSection-DylDqNrs.mjs} +2 -2
- package/dist/client/hooks.mjs +1259 -555
- package/dist/client/{locationMap-CEqu_sfa.mjs → locationMap-CvWrG0vZ.mjs} +2 -2
- package/dist/client/{newsletterForm-IbrHjMxy.mjs → newsletterForm-Btwk70zw.mjs} +117 -38
- package/dist/client/{pricing-xj7MPZlK.mjs → pricing-Uzw-GQ6Y.mjs} +1 -1
- package/dist/client/{productDetail-vxqTt5Xj.mjs → productDetail-JLcUYKnd.mjs} +3 -3
- package/dist/client/{productList-OTdZu8sb.mjs → productList-FM0cbUzj.mjs} +3 -3
- package/dist/client/{propsDecoder-CY9gGEF7.mjs → propsDecoder-DYzafZb2.mjs} +592 -152
- package/dist/client/rendering/client.mjs +2259 -835
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +3308 -1236
- package/dist/client/{scrollToBlock--BFV6kl-.mjs → scrollToBlock-CvXszexS.mjs} +1 -1
- package/dist/client/{shop-CP4YbDL9.mjs → shop-BIcjvy5a.mjs} +6 -6
- package/dist/client/{shop-commerce-APs4XBXE.mjs → shop-commerce-BZQsy7xw.mjs} +5 -5
- package/dist/client/{shop-commerce-store-CAVLxLFr.mjs → shop-commerce-store-D5V7XAb5.mjs} +1 -1
- package/dist/client/{shopShared-BnSRrwXI.mjs → shopShared-DowkXevB.mjs} +3 -3
- package/dist/client/{useEventFilters-1a1by4c8.mjs → useEventFilters-oMoTw_JE.mjs} +56 -9
- package/dist/preview-next/before-render.mjs +238 -111
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/keepAlive.mjs +238 -111
- package/dist/preview-next/middleware.mjs +238 -111
- package/dist/{previewAuthStore-BkEgnYPP.mjs → previewAuthStore-COUyAKaX.mjs} +238 -111
- package/dist/{sdk-runtime-DwGfsT0S.mjs → sdk-runtime-D4k2LSGF.mjs} +2 -2
- package/dist/{separator-BeqDLneQ.mjs → separator-UGtpag4Z.mjs} +1 -1
- package/dist/server/components.mjs +2697 -1023
- package/dist/server/config-validation.mjs +2424 -1720
- package/dist/server/config.mjs +2429 -1724
- package/dist/server/data.mjs +1164 -454
- package/dist/server/index.mjs +364 -280
- package/dist/server/navigation.mjs +16 -47
- package/dist/server/next.mjs +2915 -1380
- package/dist/server/page-converter.mjs +969 -522
- package/dist/server/prebuild.mjs +2 -3
- package/dist/server/rendering/server.mjs +2704 -1030
- package/dist/server/rendering.mjs +2742 -1063
- package/dist/server/routing.mjs +1386 -595
- package/dist/server/server.mjs +2878 -2324
- package/dist/server/theme-bridge.mjs +292 -24
- package/dist/styles/index.css +289 -25
- package/package.json +1 -1
- package/dist/_dts/api/src/navigation/identity.d.ts +0 -59
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup-destination.d.ts +0 -291
- package/dist/_dts/core/src/newsletter-signup-destination.d.ts +0 -38
|
@@ -783,18 +783,22 @@ export declare const runtimeBackedBlockClientEntries: {
|
|
|
783
783
|
buildRender: (source: import("../nodes/newsletter-form.types").NewsletterFormProps) => Readonly<{
|
|
784
784
|
display: Readonly<{
|
|
785
785
|
kind: "newsletter-form";
|
|
786
|
+
availability: "ready" | "unavailable";
|
|
786
787
|
className: string | null;
|
|
787
788
|
buttonLabel: string;
|
|
788
789
|
buttonVariant: import("../nodes/newsletter-form.types").NewsletterButtonVariant;
|
|
789
|
-
successMessage: string | null;
|
|
790
790
|
privacyNote: string | null;
|
|
791
791
|
fields: readonly import("../nodes/newsletter-form.types").NewsletterFieldDef[];
|
|
792
|
+
choices: readonly Readonly<{
|
|
793
|
+
id: string;
|
|
794
|
+
label: string;
|
|
795
|
+
}>[];
|
|
792
796
|
}>;
|
|
793
797
|
hydration: Readonly<{
|
|
794
798
|
target: import("../nodes/newsletter-form.interactive").NewsletterFormHydrationTarget;
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
799
|
+
setupRevision: number | null;
|
|
800
|
+
choiceProvider: "native" | "brevo" | "mailchimp" | null;
|
|
801
|
+
choicePresentation: "hidden" | "automatic" | "visitor_choice";
|
|
798
802
|
spamProtectionEnabled?: boolean;
|
|
799
803
|
}>;
|
|
800
804
|
}>;
|
|
@@ -807,36 +811,44 @@ export declare const runtimeBackedBlockClientEntries: {
|
|
|
807
811
|
encode: (value: Readonly<{
|
|
808
812
|
display: Readonly<{
|
|
809
813
|
kind: "newsletter-form";
|
|
814
|
+
availability: "ready" | "unavailable";
|
|
810
815
|
className: string | null;
|
|
811
816
|
buttonLabel: string;
|
|
812
817
|
buttonVariant: import("../nodes/newsletter-form.types").NewsletterButtonVariant;
|
|
813
|
-
successMessage: string | null;
|
|
814
818
|
privacyNote: string | null;
|
|
815
819
|
fields: readonly import("../nodes/newsletter-form.types").NewsletterFieldDef[];
|
|
820
|
+
choices: readonly Readonly<{
|
|
821
|
+
id: string;
|
|
822
|
+
label: string;
|
|
823
|
+
}>[];
|
|
816
824
|
}>;
|
|
817
825
|
hydration: Readonly<{
|
|
818
826
|
target: import("../nodes/newsletter-form.interactive").NewsletterFormHydrationTarget;
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
827
|
+
setupRevision: number | null;
|
|
828
|
+
choiceProvider: "native" | "brevo" | "mailchimp" | null;
|
|
829
|
+
choicePresentation: "hidden" | "automatic" | "visitor_choice";
|
|
822
830
|
spamProtectionEnabled?: boolean;
|
|
823
831
|
}>;
|
|
824
832
|
}>) => unknown;
|
|
825
833
|
decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
|
|
826
834
|
display: Readonly<{
|
|
827
835
|
kind: "newsletter-form";
|
|
836
|
+
availability: "ready" | "unavailable";
|
|
828
837
|
className: string | null;
|
|
829
838
|
buttonLabel: string;
|
|
830
839
|
buttonVariant: import("../nodes/newsletter-form.types").NewsletterButtonVariant;
|
|
831
|
-
successMessage: string | null;
|
|
832
840
|
privacyNote: string | null;
|
|
833
841
|
fields: readonly import("../nodes/newsletter-form.types").NewsletterFieldDef[];
|
|
842
|
+
choices: readonly Readonly<{
|
|
843
|
+
id: string;
|
|
844
|
+
label: string;
|
|
845
|
+
}>[];
|
|
834
846
|
}>;
|
|
835
847
|
hydration: Readonly<{
|
|
836
848
|
target: import("../nodes/newsletter-form.interactive").NewsletterFormHydrationTarget;
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
849
|
+
setupRevision: number | null;
|
|
850
|
+
choiceProvider: "native" | "brevo" | "mailchimp" | null;
|
|
851
|
+
choicePresentation: "hidden" | "automatic" | "visitor_choice";
|
|
840
852
|
spamProtectionEnabled?: boolean;
|
|
841
853
|
}>;
|
|
842
854
|
}>>;
|
|
@@ -851,18 +863,22 @@ export declare const runtimeBackedBlockClientEntries: {
|
|
|
851
863
|
buildRender: (source: import("../nodes/newsletter-form.types").NewsletterFormProps) => Readonly<{
|
|
852
864
|
display: Readonly<{
|
|
853
865
|
kind: "newsletter-form";
|
|
866
|
+
availability: "ready" | "unavailable";
|
|
854
867
|
className: string | null;
|
|
855
868
|
buttonLabel: string;
|
|
856
869
|
buttonVariant: import("../nodes/newsletter-form.types").NewsletterButtonVariant;
|
|
857
|
-
successMessage: string | null;
|
|
858
870
|
privacyNote: string | null;
|
|
859
871
|
fields: readonly import("../nodes/newsletter-form.types").NewsletterFieldDef[];
|
|
872
|
+
choices: readonly Readonly<{
|
|
873
|
+
id: string;
|
|
874
|
+
label: string;
|
|
875
|
+
}>[];
|
|
860
876
|
}>;
|
|
861
877
|
hydration: Readonly<{
|
|
862
878
|
target: import("../nodes/newsletter-form.interactive").NewsletterFormHydrationTarget;
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
879
|
+
setupRevision: number | null;
|
|
880
|
+
choiceProvider: "native" | "brevo" | "mailchimp" | null;
|
|
881
|
+
choicePresentation: "hidden" | "automatic" | "visitor_choice";
|
|
866
882
|
spamProtectionEnabled?: boolean;
|
|
867
883
|
}>;
|
|
868
884
|
}>;
|
|
@@ -875,36 +891,44 @@ export declare const runtimeBackedBlockClientEntries: {
|
|
|
875
891
|
encode: (value: Readonly<{
|
|
876
892
|
display: Readonly<{
|
|
877
893
|
kind: "newsletter-form";
|
|
894
|
+
availability: "ready" | "unavailable";
|
|
878
895
|
className: string | null;
|
|
879
896
|
buttonLabel: string;
|
|
880
897
|
buttonVariant: import("../nodes/newsletter-form.types").NewsletterButtonVariant;
|
|
881
|
-
successMessage: string | null;
|
|
882
898
|
privacyNote: string | null;
|
|
883
899
|
fields: readonly import("../nodes/newsletter-form.types").NewsletterFieldDef[];
|
|
900
|
+
choices: readonly Readonly<{
|
|
901
|
+
id: string;
|
|
902
|
+
label: string;
|
|
903
|
+
}>[];
|
|
884
904
|
}>;
|
|
885
905
|
hydration: Readonly<{
|
|
886
906
|
target: import("../nodes/newsletter-form.interactive").NewsletterFormHydrationTarget;
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
907
|
+
setupRevision: number | null;
|
|
908
|
+
choiceProvider: "native" | "brevo" | "mailchimp" | null;
|
|
909
|
+
choicePresentation: "hidden" | "automatic" | "visitor_choice";
|
|
890
910
|
spamProtectionEnabled?: boolean;
|
|
891
911
|
}>;
|
|
892
912
|
}>) => unknown;
|
|
893
913
|
decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
|
|
894
914
|
display: Readonly<{
|
|
895
915
|
kind: "newsletter-form";
|
|
916
|
+
availability: "ready" | "unavailable";
|
|
896
917
|
className: string | null;
|
|
897
918
|
buttonLabel: string;
|
|
898
919
|
buttonVariant: import("../nodes/newsletter-form.types").NewsletterButtonVariant;
|
|
899
|
-
successMessage: string | null;
|
|
900
920
|
privacyNote: string | null;
|
|
901
921
|
fields: readonly import("../nodes/newsletter-form.types").NewsletterFieldDef[];
|
|
922
|
+
choices: readonly Readonly<{
|
|
923
|
+
id: string;
|
|
924
|
+
label: string;
|
|
925
|
+
}>[];
|
|
902
926
|
}>;
|
|
903
927
|
hydration: Readonly<{
|
|
904
928
|
target: import("../nodes/newsletter-form.interactive").NewsletterFormHydrationTarget;
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
929
|
+
setupRevision: number | null;
|
|
930
|
+
choiceProvider: "native" | "brevo" | "mailchimp" | null;
|
|
931
|
+
choicePresentation: "hidden" | "automatic" | "visitor_choice";
|
|
908
932
|
spamProtectionEnabled?: boolean;
|
|
909
933
|
}>;
|
|
910
934
|
}>>;
|
|
@@ -396,18 +396,22 @@ export declare const runtimeBackedBlockServerEntries: {
|
|
|
396
396
|
buildRender: (source: import("../nodes/newsletter-form.types").NewsletterFormProps) => Readonly<{
|
|
397
397
|
display: Readonly<{
|
|
398
398
|
kind: "newsletter-form";
|
|
399
|
+
availability: "ready" | "unavailable";
|
|
399
400
|
className: string | null;
|
|
400
401
|
buttonLabel: string;
|
|
401
402
|
buttonVariant: import("../nodes/newsletter-form.types").NewsletterButtonVariant;
|
|
402
|
-
successMessage: string | null;
|
|
403
403
|
privacyNote: string | null;
|
|
404
404
|
fields: readonly import("../nodes/newsletter-form.types").NewsletterFieldDef[];
|
|
405
|
+
choices: readonly Readonly<{
|
|
406
|
+
id: string;
|
|
407
|
+
label: string;
|
|
408
|
+
}>[];
|
|
405
409
|
}>;
|
|
406
410
|
hydration: Readonly<{
|
|
407
411
|
target: import("../nodes/newsletter-form.interactive").NewsletterFormHydrationTarget;
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
412
|
+
setupRevision: number | null;
|
|
413
|
+
choiceProvider: "native" | "brevo" | "mailchimp" | null;
|
|
414
|
+
choicePresentation: "hidden" | "automatic" | "visitor_choice";
|
|
411
415
|
spamProtectionEnabled?: boolean;
|
|
412
416
|
}>;
|
|
413
417
|
}>;
|
|
@@ -420,36 +424,44 @@ export declare const runtimeBackedBlockServerEntries: {
|
|
|
420
424
|
encode: (value: Readonly<{
|
|
421
425
|
display: Readonly<{
|
|
422
426
|
kind: "newsletter-form";
|
|
427
|
+
availability: "ready" | "unavailable";
|
|
423
428
|
className: string | null;
|
|
424
429
|
buttonLabel: string;
|
|
425
430
|
buttonVariant: import("../nodes/newsletter-form.types").NewsletterButtonVariant;
|
|
426
|
-
successMessage: string | null;
|
|
427
431
|
privacyNote: string | null;
|
|
428
432
|
fields: readonly import("../nodes/newsletter-form.types").NewsletterFieldDef[];
|
|
433
|
+
choices: readonly Readonly<{
|
|
434
|
+
id: string;
|
|
435
|
+
label: string;
|
|
436
|
+
}>[];
|
|
429
437
|
}>;
|
|
430
438
|
hydration: Readonly<{
|
|
431
439
|
target: import("../nodes/newsletter-form.interactive").NewsletterFormHydrationTarget;
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
440
|
+
setupRevision: number | null;
|
|
441
|
+
choiceProvider: "native" | "brevo" | "mailchimp" | null;
|
|
442
|
+
choicePresentation: "hidden" | "automatic" | "visitor_choice";
|
|
435
443
|
spamProtectionEnabled?: boolean;
|
|
436
444
|
}>;
|
|
437
445
|
}>) => unknown;
|
|
438
446
|
decode: (input: unknown) => import("../../../contracts").DecodeResult<Readonly<{
|
|
439
447
|
display: Readonly<{
|
|
440
448
|
kind: "newsletter-form";
|
|
449
|
+
availability: "ready" | "unavailable";
|
|
441
450
|
className: string | null;
|
|
442
451
|
buttonLabel: string;
|
|
443
452
|
buttonVariant: import("../nodes/newsletter-form.types").NewsletterButtonVariant;
|
|
444
|
-
successMessage: string | null;
|
|
445
453
|
privacyNote: string | null;
|
|
446
454
|
fields: readonly import("../nodes/newsletter-form.types").NewsletterFieldDef[];
|
|
455
|
+
choices: readonly Readonly<{
|
|
456
|
+
id: string;
|
|
457
|
+
label: string;
|
|
458
|
+
}>[];
|
|
447
459
|
}>;
|
|
448
460
|
hydration: Readonly<{
|
|
449
461
|
target: import("../nodes/newsletter-form.interactive").NewsletterFormHydrationTarget;
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
462
|
+
setupRevision: number | null;
|
|
463
|
+
choiceProvider: "native" | "brevo" | "mailchimp" | null;
|
|
464
|
+
choicePresentation: "hidden" | "automatic" | "visitor_choice";
|
|
453
465
|
spamProtectionEnabled?: boolean;
|
|
454
466
|
}>;
|
|
455
467
|
}>>;
|
|
@@ -35,6 +35,8 @@ export type CalendarEventsState<Kind extends CalendarViewportKind> = {
|
|
|
35
35
|
events: PublicEvent[];
|
|
36
36
|
/** Current view date (anchor of the calendar viewport) */
|
|
37
37
|
viewDate: CalendarDate;
|
|
38
|
+
/** Current civil day in the site timezone. */
|
|
39
|
+
today: CalendarDate;
|
|
38
40
|
/** Derived calendar viewport for the current view date */
|
|
39
41
|
viewport: CalendarViewportFor<Kind>;
|
|
40
42
|
/** Whether events are being loaded */
|
|
@@ -54,6 +56,7 @@ type UseCalendarViewportOptions = Readonly<{
|
|
|
54
56
|
view?: CalendarViewportKind;
|
|
55
57
|
startOfWeek?: WeekStart;
|
|
56
58
|
initialDate: CalendarDate;
|
|
59
|
+
today: CalendarDate;
|
|
57
60
|
}>;
|
|
58
61
|
/**
|
|
59
62
|
* Owns calendar viewport state only: selected anchor date, derived visible
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type CalendarDate } from '../../../../../calendar/src/index';
|
|
2
2
|
import type { PublicEvent } from '../../blocks/events/shared/types';
|
|
3
3
|
import { type CalendarWindowPage, type CalendarMonthWindow, type CalendarSourceCursor } from '../../blocks/events/shared/calendarWindow';
|
|
4
4
|
type MonthState = Readonly<{
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type BookingTimeZone } from '../../../../../core/src/index';
|
|
2
|
+
import { type CalendarDate } from '../../../../../calendar/src/index';
|
|
3
|
+
export type CalendarTodayContext = Readonly<{
|
|
4
|
+
timeZone: BookingTimeZone;
|
|
5
|
+
initialToday: CalendarDate;
|
|
6
|
+
}>;
|
|
7
|
+
type CalendarTodayClock = Readonly<{
|
|
8
|
+
now: () => Date;
|
|
9
|
+
resolveDate?: CalendarDateResolver;
|
|
10
|
+
}>;
|
|
11
|
+
type CalendarDateBoundary = Readonly<{
|
|
12
|
+
kind: 'found';
|
|
13
|
+
instant: Date;
|
|
14
|
+
}> | Readonly<{
|
|
15
|
+
kind: 'retry';
|
|
16
|
+
delayMs: number;
|
|
17
|
+
}>;
|
|
18
|
+
type CalendarDateResolver = (instant: Date, timeZone: BookingTimeZone) => CalendarDate;
|
|
19
|
+
/** Find the first instant after `now` whose site-local civil date differs. */
|
|
20
|
+
export declare function findNextCalendarDateBoundary(now: Date, timeZone: BookingTimeZone, resolveDate?: CalendarDateResolver): CalendarDateBoundary;
|
|
21
|
+
export declare function useCalendarToday(context: CalendarTodayContext, clock?: CalendarTodayClock): CalendarDate;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
declare const publicLocationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
4
|
+
mode: z.ZodLiteral<"online">;
|
|
5
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
6
|
+
mode: z.ZodLiteral<"in_person">;
|
|
7
|
+
venue: z.ZodNullable<z.ZodObject<{
|
|
8
|
+
name: z.ZodString;
|
|
9
|
+
area: z.ZodNullable<z.ZodString>;
|
|
10
|
+
}, z.core.$strip>>;
|
|
11
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
12
|
+
mode: z.ZodLiteral<"either">;
|
|
13
|
+
venue: z.ZodNullable<z.ZodObject<{
|
|
14
|
+
name: z.ZodString;
|
|
15
|
+
area: z.ZodNullable<z.ZodString>;
|
|
16
|
+
}, z.core.$strip>>;
|
|
17
|
+
}, z.core.$strip>], "mode">;
|
|
18
|
+
type PublicAppointmentLocation = z.infer<typeof publicLocationSchema>;
|
|
19
|
+
export type AppointmentServiceRow = Readonly<{
|
|
20
|
+
id: string;
|
|
21
|
+
title: string;
|
|
22
|
+
description: string | null;
|
|
23
|
+
durationLabel: string;
|
|
24
|
+
locationLabel: string | null;
|
|
25
|
+
priceLabel: string | null;
|
|
26
|
+
href: string;
|
|
27
|
+
}>;
|
|
28
|
+
export type AppointmentServicesView = Readonly<{
|
|
29
|
+
kind: 'items';
|
|
30
|
+
rows: readonly AppointmentServiceRow[];
|
|
31
|
+
}> | Readonly<{
|
|
32
|
+
kind: 'empty';
|
|
33
|
+
message: string;
|
|
34
|
+
}> | Readonly<{
|
|
35
|
+
kind: 'error';
|
|
36
|
+
message: string;
|
|
37
|
+
}>;
|
|
38
|
+
export type AppointmentServicesNodeProps = Readonly<{
|
|
39
|
+
sectionHeading?: unknown;
|
|
40
|
+
services?: unknown;
|
|
41
|
+
pathname?: unknown;
|
|
42
|
+
className?: string | null;
|
|
43
|
+
}>;
|
|
44
|
+
export declare function formatAppointmentDuration(durationMinutes: number): string;
|
|
45
|
+
export declare function formatAppointmentLocation(location: PublicAppointmentLocation): string | null;
|
|
46
|
+
export declare function buildAppointmentServicesView(input: Readonly<{
|
|
47
|
+
services: unknown;
|
|
48
|
+
pathname: string | undefined;
|
|
49
|
+
}>): AppointmentServicesView;
|
|
50
|
+
export declare function AppointmentServicesNode({ sectionHeading, services, pathname, className, }: AppointmentServicesNodeProps): React.ReactElement;
|
|
51
|
+
export default AppointmentServicesNode;
|
package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts
CHANGED
|
@@ -117,6 +117,7 @@ export declare function useEventRegistrationWizard(options: UseEventRegistration
|
|
|
117
117
|
isMembershipFastTrack: boolean;
|
|
118
118
|
waitlistClaim: import("../../shared/useWaitlistClaim").UseWaitlistClaimResult;
|
|
119
119
|
eligibility: EligibilityData | null;
|
|
120
|
+
registrationOptionsState: import("./hooks.state").EligibilityLookupState;
|
|
120
121
|
eligibilityLoading: boolean;
|
|
121
122
|
eligibilityError: string | null;
|
|
122
123
|
existingRegistration: import("../../api").CustomerEventRegistration | null;
|
|
@@ -238,6 +239,7 @@ export declare function useEventRegistrationWizardWithDeps(options: UseEventRegi
|
|
|
238
239
|
isMembershipFastTrack: boolean;
|
|
239
240
|
waitlistClaim: import("../../shared/useWaitlistClaim").UseWaitlistClaimResult;
|
|
240
241
|
eligibility: EligibilityData | null;
|
|
242
|
+
registrationOptionsState: import("./hooks.state").EligibilityLookupState;
|
|
241
243
|
eligibilityLoading: boolean;
|
|
242
244
|
eligibilityError: string | null;
|
|
243
245
|
existingRegistration: import("../../api").CustomerEventRegistration | null;
|
|
@@ -56,7 +56,6 @@ type EventRegistrationIslandMeta = Readonly<{
|
|
|
56
56
|
previewToken?: string | null;
|
|
57
57
|
stage?: 'preview' | 'published';
|
|
58
58
|
}>;
|
|
59
|
-
export declare function buildEventRegistrationDisplay(source: EventRegistrationSourceProps): EventRegistrationDisplay;
|
|
60
59
|
export type EventRegistrationInteractiveIslandProps = InteractiveIslandProps<EventRegistrationIslandMeta, 'event-registration', typeof eventRegistrationBlockRuntime>;
|
|
61
60
|
export declare const eventRegistrationBlockRuntime: Readonly<{
|
|
62
61
|
kind: "client-owned";
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { PublicEvent, ButtonVariant, EventLayout, ColumnOption, WeekStart, CalendarTabViews, FilterAutoShow, CalendarView, EventScheduleScope, EventSurfaceScope } from "../../../blocks/events/shared/types";
|
|
3
3
|
import type { CardRole } from "../../../../../../theme-core/src/cards/index";
|
|
4
|
+
import { type CalendarViewLoadState } from "../../hooks/useCalendarEvents";
|
|
4
5
|
import type { EventCombinedInteractiveIslandProps } from "./EventCombined.interactive";
|
|
5
6
|
import type { EventCollectionHydration } from './shared/eventCollectionContract';
|
|
7
|
+
import { type CalendarDate, type CalendarViewport } from "./shared";
|
|
6
8
|
import { type EventListPaginationAction, type EventPageSize } from "./shared/listOptions";
|
|
9
|
+
import { type CalendarViewToggleOption } from "./shared/calendarViewOptions";
|
|
7
10
|
export type EventCombinedClientProps = Readonly<{
|
|
8
11
|
events?: PublicEvent[] | null;
|
|
9
12
|
siteId: string;
|
|
@@ -37,6 +40,31 @@ export type EventCombinedClientProps = Readonly<{
|
|
|
37
40
|
calendarWindow?: EventCollectionHydration['calendarWindow'];
|
|
38
41
|
}>;
|
|
39
42
|
export type EventCombinedIslandClientProps = EventCombinedInteractiveIslandProps;
|
|
43
|
+
type EventCombinedCalendarTabProps = Readonly<{
|
|
44
|
+
calendarTabViews: CalendarTabViews;
|
|
45
|
+
calendarView: CalendarView;
|
|
46
|
+
calendarViewOptions: readonly CalendarViewToggleOption[];
|
|
47
|
+
onCalendarViewChange: (view: CalendarView) => void;
|
|
48
|
+
calendarEvents: PublicEvent[];
|
|
49
|
+
eventsByDate: Map<string, PublicEvent[]>;
|
|
50
|
+
viewDate: CalendarDate;
|
|
51
|
+
viewport: CalendarViewport;
|
|
52
|
+
calendarLoadState: CalendarViewLoadState;
|
|
53
|
+
dayNames: readonly string[];
|
|
54
|
+
calendarContext: EventCollectionHydration["calendarContext"];
|
|
55
|
+
today: CalendarDate;
|
|
56
|
+
goToPrevious: () => void;
|
|
57
|
+
goToNext: () => void;
|
|
58
|
+
goToToday: () => void;
|
|
59
|
+
emptyMessage: string;
|
|
60
|
+
showCapacity: boolean;
|
|
61
|
+
showVenue: boolean;
|
|
62
|
+
cardRole: CardRole;
|
|
63
|
+
buttonVariant: ButtonVariant;
|
|
64
|
+
buttonText: string;
|
|
65
|
+
showEmptyState: boolean;
|
|
66
|
+
}>;
|
|
67
|
+
export declare const EventCombinedCalendarTab: React.FC<EventCombinedCalendarTabProps>;
|
|
40
68
|
/**
|
|
41
69
|
* EventCombined Component
|
|
42
70
|
*
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PublicEvent } from '../../../../blocks/events/shared/types';
|
|
2
|
+
/**
|
|
3
|
+
* Whether a public event has a registration path a visitor can take.
|
|
4
|
+
*
|
|
5
|
+
* Lifecycle admission comes from the public booking-availability contract;
|
|
6
|
+
* capacity comes from the shared event-domain helpers so uncapped, fallback,
|
|
7
|
+
* and hybrid attendance-mode cases agree with the registration runtime.
|
|
8
|
+
*/
|
|
9
|
+
export declare function isBookableEvent(event: PublicEvent): boolean;
|
|
@@ -11,6 +11,8 @@ type DateTimeFormatOptions = {
|
|
|
11
11
|
timeZone?: string | null;
|
|
12
12
|
locale?: string;
|
|
13
13
|
};
|
|
14
|
+
/** Use the event timezone when present, otherwise the calendar/site timezone. */
|
|
15
|
+
export declare function resolveEventTimeZone(event: Pick<PublicEvent, 'timeZone'>, calendarTimeZone: string): string;
|
|
14
16
|
/**
|
|
15
17
|
* Format date for display.
|
|
16
18
|
* Returns: "Monday, January 15, 2025"
|
|
@@ -36,7 +38,19 @@ export type EventCompactDateRail = Readonly<{
|
|
|
36
38
|
month: string;
|
|
37
39
|
label: string;
|
|
38
40
|
}>;
|
|
41
|
+
export type EventNextDateFact = Readonly<{
|
|
42
|
+
dateTime: string;
|
|
43
|
+
value: string;
|
|
44
|
+
label: string;
|
|
45
|
+
}>;
|
|
39
46
|
export declare function formatEventCompactDateRail(isoTimestamp: string, options?: DateTimeFormatOptions): EventCompactDateRail;
|
|
47
|
+
/**
|
|
48
|
+
* Format the next occurrence for the image-free catalogue card treatment.
|
|
49
|
+
*
|
|
50
|
+
* The compact rail already owns this short, booking-local date vocabulary;
|
|
51
|
+
* keep the fact panel on the same date and timezone rules as event rows.
|
|
52
|
+
*/
|
|
53
|
+
export declare function formatEventNextDateFact(event: Pick<PublicEvent, 'startsAt' | 'timeZone'>): EventNextDateFact;
|
|
40
54
|
export { addDays, addMonths, buildCalendarViewport, formatCalendarTitle, formatDateKey, getEndOfMonth, getMonthCalendarDays, getOrderedDayNames, getStartOfMonth, getWeekCalendarDays, getWeekCalendarDayTuple, isToday, MAX_EVENTS_PER_DAY, shiftCalendarAnchorDate, } from '../../../../../../../calendar/src/index';
|
|
41
55
|
export type { CalendarDate, CalendarViewport, CalendarViewportKind, MonthCalendarViewport, WeekCalendarDays, WeekCalendarViewport, } from '../../../../../../../calendar/src/index';
|
|
42
56
|
/**
|
|
@@ -7,8 +7,12 @@
|
|
|
7
7
|
* Components in ../shared and the registration wizard import from this barrel.
|
|
8
8
|
*/
|
|
9
9
|
export * from './capacity';
|
|
10
|
+
export * from './bookability';
|
|
10
11
|
export * from './cta';
|
|
11
12
|
export * from './dates';
|
|
12
13
|
export * from './destination';
|
|
14
|
+
export * from './duration';
|
|
15
|
+
export * from './location';
|
|
13
16
|
export * from './people';
|
|
14
17
|
export * from './pricing';
|
|
18
|
+
export * from './quickDates';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { PublicEvent } from '../../../../blocks/events/shared/types';
|
|
2
|
+
export declare const QUICK_EVENT_DATE_LIMIT = 4;
|
|
3
|
+
export type EventQuickDateFact = Readonly<{
|
|
4
|
+
dateTime: string;
|
|
5
|
+
label: string;
|
|
6
|
+
}>;
|
|
7
|
+
/**
|
|
8
|
+
* Select the next occurrence-targeted events for a quick-book rail.
|
|
9
|
+
*
|
|
10
|
+
* The API normally returns valid timestamps, but malformed values sort after
|
|
11
|
+
* valid events so one bad record cannot displace an otherwise useful rail.
|
|
12
|
+
* Sorting before deduplication means a duplicate occurrence keeps its earliest
|
|
13
|
+
* deterministic representation.
|
|
14
|
+
*/
|
|
15
|
+
export declare function selectQuickDateEvents(events: readonly PublicEvent[]): readonly PublicEvent[];
|
|
16
|
+
export declare function formatEventQuickDate(event: Pick<PublicEvent, 'startsAt' | 'timeZone'>): EventQuickDateFact;
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { PublicEvent } from '../../../../blocks/events/shared/types';
|
|
2
|
+
import type { ButtonVariant, PublicEvent } from '../../../../blocks/events/shared/types';
|
|
3
3
|
type AgendaEventCardProps = {
|
|
4
4
|
event: PublicEvent;
|
|
5
5
|
/** Whether to render the capacity indicator. */
|
|
6
6
|
showCapacity: boolean;
|
|
7
|
+
/** Whether the published agenda row should include its public location. */
|
|
8
|
+
showVenue?: boolean;
|
|
9
|
+
/** Theme button role used by the agenda booking action. */
|
|
10
|
+
buttonVariant?: ButtonVariant;
|
|
11
|
+
/** Optional override for the canonical booking action label. */
|
|
12
|
+
buttonText?: string;
|
|
13
|
+
/** Calendar/site timezone used when legacy events omit their own timezone. */
|
|
14
|
+
calendarTimeZone: string;
|
|
7
15
|
/** When provided, renders as button and calls onClick instead of navigating */
|
|
8
16
|
onClick?: (event: PublicEvent) => void;
|
|
9
17
|
};
|
|
@@ -8,6 +8,8 @@ export type CalendarDayCellProps = {
|
|
|
8
8
|
events: PublicEvent[];
|
|
9
9
|
/** Whether this date is in the currently viewed month */
|
|
10
10
|
isCurrentMonth: boolean;
|
|
11
|
+
/** Calendar/site timezone used when an event omits its own timezone. */
|
|
12
|
+
calendarTimeZone: string;
|
|
11
13
|
today: CalendarDate;
|
|
12
14
|
};
|
|
13
15
|
/**
|
|
@@ -5,6 +5,7 @@ type DayEventsModalProps = {
|
|
|
5
5
|
date: CalendarDate;
|
|
6
6
|
events: PublicEvent[];
|
|
7
7
|
showCapacity: boolean;
|
|
8
|
+
calendarTimeZone: string;
|
|
8
9
|
onClose: () => void;
|
|
9
10
|
onSelectEvent: (event: PublicEvent) => void;
|
|
10
11
|
portalRoot?: HTMLElement | null;
|
|
@@ -15,5 +16,5 @@ type DayEventsModalProps = {
|
|
|
15
16
|
* Uses AgendaEventCard with onClick prop to display events.
|
|
16
17
|
* Clicking an event triggers onSelectEvent (typically opens EventDetailModal).
|
|
17
18
|
*/
|
|
18
|
-
export declare function DayEventsModal({ date, events, showCapacity, onClose, onSelectEvent, portalRoot, }: DayEventsModalProps): React.ReactElement;
|
|
19
|
+
export declare function DayEventsModal({ date, events, showCapacity, calendarTimeZone, onClose, onSelectEvent, portalRoot, }: DayEventsModalProps): React.ReactElement;
|
|
19
20
|
export default DayEventsModal;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { CardRole } from '../../../../../../../theme-core/src/cards/index';
|
|
3
3
|
import type { ButtonVariant, CardOrientation, PublicEvent } from '../../../../blocks/events/shared/types';
|
|
4
|
+
type EventCardPresentation = 'default' | 'catalogue';
|
|
4
5
|
type EventCardProps = {
|
|
5
6
|
event: PublicEvent;
|
|
6
7
|
cardRole?: CardRole;
|
|
@@ -18,6 +19,10 @@ type EventCardProps = {
|
|
|
18
19
|
showSummary?: boolean;
|
|
19
20
|
/** Card orientation - 'vertical' for grid, 'horizontal' for stack */
|
|
20
21
|
orientation?: CardOrientation;
|
|
22
|
+
/** Catalogue cards add the date media fallback and canonical price footer. */
|
|
23
|
+
presentation?: EventCardPresentation;
|
|
24
|
+
/** Heading level used by the containing page's document outline. */
|
|
25
|
+
headingLevel?: 3 | 4;
|
|
21
26
|
};
|
|
22
27
|
/**
|
|
23
28
|
* EventCard Component
|
|
@@ -6,6 +6,7 @@ type EventModalsProps = {
|
|
|
6
6
|
cardRole?: CardRole;
|
|
7
7
|
buttonVariant?: ButtonVariant;
|
|
8
8
|
buttonText?: string;
|
|
9
|
+
calendarTimeZone: string;
|
|
9
10
|
};
|
|
10
11
|
/**
|
|
11
12
|
* EventModals - Renders the appropriate modal based on context state
|
|
@@ -15,5 +16,5 @@ type EventModalsProps = {
|
|
|
15
16
|
* - EventDetailModal for single event view
|
|
16
17
|
* - DayEventsModal for day events list (clicking an event switches to event modal)
|
|
17
18
|
*/
|
|
18
|
-
export declare function EventModals({ showCapacity, cardRole, buttonVariant, buttonText, }: EventModalsProps): React.ReactElement | null;
|
|
19
|
+
export declare function EventModals({ showCapacity, cardRole, buttonVariant, buttonText, calendarTimeZone, }: EventModalsProps): React.ReactElement | null;
|
|
19
20
|
export default EventModals;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ButtonVariant, PublicEvent } from '../../../../blocks/events/shared/types';
|
|
3
|
+
export type EventQuickDatesProps = Readonly<{
|
|
4
|
+
events: readonly PublicEvent[];
|
|
5
|
+
pathname: string;
|
|
6
|
+
buttonVariant?: ButtonVariant;
|
|
7
|
+
}>;
|
|
8
|
+
/**
|
|
9
|
+
* Render a bounded rail of direct occurrence booking choices.
|
|
10
|
+
*
|
|
11
|
+
* The heading belongs to this runtime component so it stays with the
|
|
12
|
+
* bounded rail. Native events target the occurrence booking route while
|
|
13
|
+
* external events retain their canonical destination and target behaviour.
|
|
14
|
+
*/
|
|
15
|
+
export declare function EventQuickDates({ events, pathname, buttonVariant, }: EventQuickDatesProps): React.ReactElement | null;
|
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type CalendarDate } from '../../../../../../../calendar/src/index';
|
|
3
|
-
import type { PublicEvent } from '../../../../blocks/events/shared/types';
|
|
3
|
+
import type { ButtonVariant, PublicEvent } from '../../../../blocks/events/shared/types';
|
|
4
4
|
import { type WeekCalendarDays } from '../domain';
|
|
5
5
|
type WeekAgendaViewProps = {
|
|
6
6
|
days: WeekCalendarDays;
|
|
7
7
|
events: PublicEvent[];
|
|
8
8
|
showCapacity: boolean;
|
|
9
|
+
showVenue?: boolean;
|
|
9
10
|
emptyMessage?: string;
|
|
11
|
+
showEmptyState: boolean;
|
|
10
12
|
calendarTimeZone: string;
|
|
11
13
|
today: CalendarDate;
|
|
14
|
+
buttonVariant?: ButtonVariant;
|
|
15
|
+
buttonText?: string;
|
|
12
16
|
};
|
|
13
17
|
/**
|
|
14
18
|
* WeekAgendaView Component
|
|
15
19
|
*
|
|
16
|
-
* Displays a week
|
|
17
|
-
*
|
|
20
|
+
* Displays populated days in a week as an agenda/list with rich event details.
|
|
21
|
+
* A week without events has one empty state instead of seven repeated messages.
|
|
18
22
|
*/
|
|
19
23
|
export declare const WeekAgendaView: React.FC<WeekAgendaViewProps>;
|
|
20
24
|
export default WeekAgendaView;
|