@riverbankcms/sdk 0.132.0 → 0.134.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/CHANGELOG.md +10 -0
- package/dist/{PreviewEditorSidebar-DKQ5eFK9.mjs → PreviewEditorSidebar-DfRhJPFQ.mjs} +3 -3
- package/dist/{PreviewEditorUI-CNTcOjCC.mjs → PreviewEditorUI-Dppxcr_g.mjs} +2 -2
- package/dist/{SdkPreviewModeRuntime-DJu3qu33.mjs → SdkPreviewModeRuntime-8CyGCXir.mjs} +46 -15
- package/dist/{SiteChromeCustomizeContext-2TzT3vbj.mjs → SiteChromeCustomizeContext-DVMTMvqA.mjs} +497 -169
- package/dist/_dts/ai/src/contracts/proposals.d.ts +384 -384
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +219 -219
- package/dist/_dts/api/src/accountApi.d.ts +5 -5
- package/dist/_dts/api/src/appointmentEndpointDefinitions.d.ts +1 -1
- package/dist/_dts/api/src/bookingOperations.d.ts +2 -14
- package/dist/_dts/api/src/bookings.d.ts +2 -2
- package/dist/_dts/api/src/contentRuntime.d.ts +1 -1
- package/dist/_dts/api/src/courseEndpointDefinitions.d.ts +2 -2
- package/dist/_dts/api/src/endpoints.d.ts +3 -3
- package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
- package/dist/_dts/api/src/navigation/contracts.d.ts +9 -6
- package/dist/_dts/api/src/navigation/linkResolver.d.ts +6 -2
- package/dist/_dts/api/src/navigation/types.d.ts +23 -6
- package/dist/_dts/api/src/navigation.d.ts +1 -1
- package/dist/_dts/api/src/publicBookingService.d.ts +15 -0
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +3 -1
- package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +2 -0
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +1 -1
- package/dist/_dts/api/src/sdkThemeWire.d.ts +50 -50
- package/dist/_dts/api/src/siteBanner.d.ts +4 -2
- package/dist/_dts/api/src/types.d.ts +1 -1
- package/dist/_dts/api/src/webhooks.d.ts +12 -12
- package/dist/_dts/blocks/src/client.d.ts +1 -1
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +28 -72
- package/dist/_dts/blocks/src/index.d.ts +3 -2
- package/dist/_dts/blocks/src/primitives/content/components/RichText.d.ts +2 -2
- package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +36 -14
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/events/whole-series/schemas.d.ts +3 -3
- package/dist/_dts/blocks/src/system/blocks/events/whole-series/types.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +4 -4
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +148 -148
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/shared/bookingConsent.d.ts +36 -0
- package/dist/_dts/blocks/src/system/manifest/hydrateLinks.d.ts +9 -2
- package/dist/_dts/blocks/src/system/manifest/resolveBlockData.d.ts +8 -0
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +79 -79
- package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +2 -11
- package/dist/_dts/blocks/src/system/runtime/api/types/courses.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/components/multi-step/DynamicFormFields.d.ts +3 -19
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useSelectedAppointmentConsentForm.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.consent.d.ts +10 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.field-values.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.fields.d.ts +21 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +38 -144
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +5 -19
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +3 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/AttendeeDetailsStep.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +18 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +4 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/validation.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/components.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/whole-series/whole-series-registration.headless.contract.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +34 -12
- package/dist/_dts/blocks/src/system/runtime/shared/components/BookingConsentAgreement.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +1 -0
- package/dist/_dts/blocks/src/system/types/link.d.ts +7 -1
- package/dist/_dts/content-model/src/content-types/schema.d.ts +4 -4
- package/dist/_dts/core/src/booking-consent.d.ts +8 -0
- package/dist/_dts/core/src/index.d.ts +1 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +9 -3
- package/dist/_dts/db/src/schemas/forms.d.ts +21 -21
- package/dist/_dts/db/src/types/jsonb.d.ts +1 -1
- package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +2 -1
- package/dist/_dts/editor/src/primitives/rich-text/config.d.ts +2 -1
- package/dist/_dts/editor/src/primitives/rich-text/toolbar/linkPopoverUtils.d.ts +3 -2
- package/dist/_dts/editor/src/primitives/rich-text/useRichTextEditor.d.ts +3 -4
- package/dist/_dts/media-core/src/usageScanner.d.ts +1 -1
- package/dist/_dts/sdk/src/bookings/types.d.ts +7 -89
- package/dist/_dts/sdk/src/config/validation.d.ts +30 -30
- package/dist/_dts/sdk/src/contracts/content.d.ts +10 -36
- package/dist/_dts/sdk/src/contracts/rendering.d.ts +1 -1
- package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +9 -9
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +6 -19
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/accordions/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/buttons/types.d.ts +12 -12
- package/dist/_dts/theme-core/src/cards/types.d.ts +5 -5
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +72 -72
- package/dist/_dts/theme-core/src/navigation/types.d.ts +4 -4
- package/dist/_dts/theme-core/src/palette/colors.d.ts +1 -1
- package/dist/_dts/theme-core/src/palette/curated/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/schema.d.ts +82 -82
- package/dist/_dts/theme-core/src/site-styles/cardRoleVocabulary.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +4 -4
- package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +1 -1
- package/dist/_dts/ui/src/badge.d.ts +1 -1
- package/dist/_dts/ui/src/button.d.ts +1 -1
- package/dist/_dts/ui/src/callout.d.ts +1 -1
- package/dist/_dts/ui/src/card.d.ts +1 -1
- package/dist/client/{StepIndicator-CGixP_LW.mjs → BookingConsentAgreement-BxgpGEFD.mjs} +26 -4
- package/dist/client/{DiscountCodeDisclosure-DO7llLxm.mjs → DiscountCodeDisclosure-CfuPOHD0.mjs} +1 -1
- package/dist/client/{EventCombined.client-xID7zN__.mjs → EventCombined.client-DB8Qfzi-.mjs} +3 -3
- package/dist/client/{EventListing.client-CriBslp0.mjs → EventListing.client-DD4X8hp4.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-DYmHnM8g.mjs → LeafletStaticMap-QhgIBQbv.mjs} +1 -1
- package/dist/client/{WholeSeriesRegistrationWizard-BEjzSiOA.mjs → WholeSeriesRegistrationWizard-DwtC7bCs.mjs} +72 -22
- package/dist/client/{accordion-CgFbnnnQ.mjs → accordion-DFXpLvwg.mjs} +1 -1
- package/dist/client/{bookingForm-dUyGpbxc.mjs → bookingForm-sI05d3lk.mjs} +73 -47
- package/dist/client/bookings.mjs +989 -140
- package/dist/client/{carousel-BvBwkUzx.mjs → carousel-wjyWTZCh.mjs} +1 -1
- package/dist/client/{cart-DiZENT2E.mjs → cart-DCwdpA4i.mjs} +3 -3
- package/dist/client/{checkout-Dq13KIgR.mjs → checkout-DTDW3l0R.mjs} +3 -3
- package/dist/client/checkoutUrls-DQYC_Br-.mjs +187 -0
- package/dist/client/client.mjs +556 -237
- package/dist/client/{context-B83PiNzm.mjs → context-TSK1CGx8.mjs} +1 -14
- package/dist/client/{courseRegistration-CKC5NmyH.mjs → courseRegistration-A-Tg7qw_.mjs} +3 -3
- package/dist/client/{eventCalendar-BF0Jatfw.mjs → eventCalendar-B0Zg-i_w.mjs} +5 -5
- package/dist/client/{eventCombined-BuoCF8je.mjs → eventCombined-B8Y2wizd.mjs} +3 -3
- package/dist/client/{eventDetails-CKwh0S9s.mjs → eventDetails-DPDOwURJ.mjs} +3 -3
- package/dist/client/{eventListing-eUxaWFaB.mjs → eventListing-CjBcmSLn.mjs} +3 -3
- package/dist/client/{eventRegistration-CfkNOkPb.mjs → eventRegistration-CK30HsAq.mjs} +111 -64
- package/dist/client/{form-C17H1c_H.mjs → form-CUXfsABE.mjs} +2 -2
- package/dist/client/{headerSection-DEwUmrtt.mjs → headerSection-N-mN3rjr.mjs} +2 -2
- package/dist/client/hooks.mjs +106 -3
- package/dist/client/{locationMap-Pf2QwuvW.mjs → locationMap-oiIDQMBt.mjs} +2 -2
- package/dist/client/{newsletterForm-BWQAH5Sv.mjs → newsletterForm-CkQ2tTrM.mjs} +2 -2
- package/dist/client/{pricing-CVdvbopJ.mjs → pricing-Caa0QWzh.mjs} +1 -1
- package/dist/client/{productDetail-BZi1Fa_G.mjs → productDetail-CnidyrsN.mjs} +3 -3
- package/dist/client/{productList-qq-55DNk.mjs → productList-CttYcS_S.mjs} +3 -3
- package/dist/client/{propsDecoder-BxmqPKdP.mjs → propsDecoder-CeUMxI9a.mjs} +211 -100
- package/dist/client/rendering/client.mjs +428 -151
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +643 -324
- package/dist/client/{scrollToBlock-B3CcKdtG.mjs → scrollToBlock-lPr1oqxB.mjs} +1 -1
- package/dist/client/{shop-DNWJPut5.mjs → shop-DXQtMo2O.mjs} +6 -6
- package/dist/client/{shop-commerce-BhvQCosS.mjs → shop-commerce-quDL411J.mjs} +7 -164
- package/dist/client/{shop-commerce-store-B04sCNnW.mjs → shop-commerce-store-Dnu-8Iub.mjs} +1 -1
- package/dist/client/{shopShared-DNNgZlmW.mjs → shopShared-BWPUURvG.mjs} +3 -3
- package/dist/client/{useEventFilters-CUmhE24_.mjs → useEventFilters-DRhWp2_5.mjs} +3 -3
- package/dist/client/{usePolling-M5jG675x.mjs → usePolling-UN4WKnaM.mjs} +2 -2
- package/dist/preview-next/client/runtime.mjs +3 -3
- package/dist/{sdk-runtime-BEXb1wqo.mjs → sdk-runtime-Ca5RD78X.mjs} +1 -1
- package/dist/{separator-DGMuip1D.mjs → separator-CMhj6BTi.mjs} +1 -1
- package/dist/server/components.mjs +117 -37
- package/dist/server/config-validation.mjs +106 -3
- package/dist/server/config.mjs +106 -3
- package/dist/server/data.mjs +106 -3
- package/dist/server/index.mjs +1 -1
- package/dist/server/next.mjs +186 -106
- package/dist/server/page-converter.mjs +105 -2
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +119 -37
- package/dist/server/rendering.mjs +117 -37
- package/dist/server/routing.mjs +132 -73
- package/dist/server/server.mjs +107 -4
- package/dist/server/theme-bridge.mjs +4 -4
- package/package.json +2 -2
- package/dist/client/checkoutUrls-Ct8Mxna3.mjs +0 -26
|
@@ -829,20 +829,7 @@ function createBlockApi(config) {
|
|
|
829
829
|
const path = buildPath(WHOLE_SERIES.checkout.path, { siteId: sid });
|
|
830
830
|
return request(WHOLE_SERIES.checkout, {
|
|
831
831
|
path,
|
|
832
|
-
body:
|
|
833
|
-
eventSeriesId: data.eventSeriesId,
|
|
834
|
-
...data.pricingOptionId ? { pricingOptionId: data.pricingOptionId } : {},
|
|
835
|
-
...data.selectedSlidingAmount !== void 0 ? { selectedSlidingAmount: data.selectedSlidingAmount } : {},
|
|
836
|
-
email: data.email,
|
|
837
|
-
name: data.name,
|
|
838
|
-
phone: data.phone,
|
|
839
|
-
formData: data.formData,
|
|
840
|
-
altchaSolution: data.altchaSolution,
|
|
841
|
-
discountCode: data.discountCode,
|
|
842
|
-
successUrl: data.successUrl,
|
|
843
|
-
cancelUrl: data.cancelUrl,
|
|
844
|
-
claimToken: data.claimToken
|
|
845
|
-
}
|
|
832
|
+
body: data
|
|
846
833
|
});
|
|
847
834
|
},
|
|
848
835
|
async getWholeSeriesRegistrationStatus(params) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as defineIslandPropsDecoder } from "./propsDecoder-
|
|
2
|
-
import { t as BlockApiProvider } from "./context-
|
|
3
|
-
import { o as WholeSeriesRegistrationErrorBoundary, t as WholeSeriesRegistrationWizard } from "./WholeSeriesRegistrationWizard-
|
|
1
|
+
import { t as defineIslandPropsDecoder } from "./propsDecoder-CeUMxI9a.mjs";
|
|
2
|
+
import { t as BlockApiProvider } from "./context-TSK1CGx8.mjs";
|
|
3
|
+
import { o as WholeSeriesRegistrationErrorBoundary, t as WholeSeriesRegistrationWizard } from "./WholeSeriesRegistrationWizard-DwtC7bCs.mjs";
|
|
4
4
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
5
5
|
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-UNsfPcYq.mjs";
|
|
6
6
|
import "react";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { D as clsx } from "./colorStyles-CrxJrPjJ.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import { o as EventFilters, t as useEventFilters } from "./useEventFilters-
|
|
5
|
-
import { a as CalendarDayCell, c as useCalendarEvents, d as getOrderedDayNames, f as getWeekCalendarDayTuple, h as isToday, i as WeekAgendaView, l as MONTH_NAMES, m as isSameLocalDay, o as EventModalProvider, p as getWeekCalendarDays, r as EventModals, s as useEventModal, t as EventCombinedClient, u as formatDateKey } from "./EventCombined.client-
|
|
6
|
-
import { t as BlockApiProvider } from "./context-
|
|
3
|
+
import { $ as themeButtonClassName, A as buildEventRuntimeFilters, B as formatEventTeacherLine, J as getEventAvailability, K as resolveEventLinkProps, T as buildEventCalendarListingRender, V as formatTime, W as groupEventsByDate, X as getLocalDateKey, Y as getEventAvailabilityStatus, Z as getLocalMinuteOfDay, j as getEventRuntimeFiltersKey, t as defineIslandPropsDecoder } from "./propsDecoder-CeUMxI9a.mjs";
|
|
4
|
+
import { o as EventFilters, t as useEventFilters } from "./useEventFilters-DRhWp2_5.mjs";
|
|
5
|
+
import { a as CalendarDayCell, c as useCalendarEvents, d as getOrderedDayNames, f as getWeekCalendarDayTuple, h as isToday, i as WeekAgendaView, l as MONTH_NAMES, m as isSameLocalDay, o as EventModalProvider, p as getWeekCalendarDays, r as EventModals, s as useEventModal, t as EventCombinedClient, u as formatDateKey } from "./EventCombined.client-DB8Qfzi-.mjs";
|
|
6
|
+
import { t as BlockApiProvider } from "./context-TSK1CGx8.mjs";
|
|
7
7
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
8
8
|
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-UNsfPcYq.mjs";
|
|
9
|
-
import { n as EventListingController } from "./EventListing.client-
|
|
9
|
+
import { n as EventListingController } from "./EventListing.client-DD4X8hp4.mjs";
|
|
10
10
|
import { useEffect, useId, useMemo, useState } from "react";
|
|
11
11
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
12
|
//#region ../calendar/src/lane-packing.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as defineIslandPropsDecoder } from "./propsDecoder-
|
|
2
|
-
import { n as EventCombinedIslandClient } from "./EventCombined.client-
|
|
3
|
-
import { t as BlockApiProvider } from "./context-
|
|
1
|
+
import { t as defineIslandPropsDecoder } from "./propsDecoder-CeUMxI9a.mjs";
|
|
2
|
+
import { n as EventCombinedIslandClient } from "./EventCombined.client-DB8Qfzi-.mjs";
|
|
3
|
+
import { t as BlockApiProvider } from "./context-TSK1CGx8.mjs";
|
|
4
4
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
5
5
|
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-UNsfPcYq.mjs";
|
|
6
6
|
import "react";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as formatWholeSeriesPriceDisplay, r as resolveWholeSeriesPricingState, t as formatWholeSeriesPriceAmount } from "./pricing-
|
|
1
|
+
import { Ht as toBookingTimeZone, Jt as publicEventPricingType, K as resolveEventLinkProps, Kt as publicEventPricingCurrency, L as formatEventDateParts, Q as resolveEventRegistrationScopedEvents, R as formatEventPrice, Ut as toScheduledBookingDateTime, Zt as formatCurrencyAmount, q as resolveRuntimeEventPricing, t as defineIslandPropsDecoder, zt as getBookingLocalDateKey } from "./propsDecoder-CeUMxI9a.mjs";
|
|
2
|
+
import { n as formatWholeSeriesPriceDisplay, r as resolveWholeSeriesPricingState, t as formatWholeSeriesPriceAmount } from "./pricing-Caa0QWzh.mjs";
|
|
3
3
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
4
|
-
import { t as LeafletStaticMap } from "./LeafletStaticMap-
|
|
4
|
+
import { t as LeafletStaticMap } from "./LeafletStaticMap-QhgIBQbv.mjs";
|
|
5
5
|
import "react";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
//#region ../blocks/src/system/runtime/nodes/events/shared/eventProductEligibility.ts
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as defineIslandPropsDecoder } from "./propsDecoder-
|
|
2
|
-
import { t as BlockApiProvider } from "./context-
|
|
1
|
+
import { t as defineIslandPropsDecoder } from "./propsDecoder-CeUMxI9a.mjs";
|
|
2
|
+
import { t as BlockApiProvider } from "./context-TSK1CGx8.mjs";
|
|
3
3
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
4
4
|
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-UNsfPcYq.mjs";
|
|
5
|
-
import { t as EventListingClient } from "./EventListing.client-
|
|
5
|
+
import { t as EventListingClient } from "./EventListing.client-DD4X8hp4.mjs";
|
|
6
6
|
import "react";
|
|
7
7
|
import { jsx } from "react/jsx-runtime";
|
|
8
8
|
//#region src/rendering/islands/enhancers/eventListing.tsx
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { n as buildBookingPaymentSelectionViewModel, r as resolveFlexibleBalanceInitialPaymentCents, t as usePolling } from "./usePolling-
|
|
3
|
-
import { $ as
|
|
4
|
-
import { n as useBlockApi, t as BlockApiProvider } from "./context-
|
|
2
|
+
import { n as buildBookingPaymentSelectionViewModel, r as resolveFlexibleBalanceInitialPaymentCents, t as usePolling } from "./usePolling-UN4WKnaM.mjs";
|
|
3
|
+
import { $ as themeButtonClassName, C as getWizardStepsForContext, Et as assertNever, Ft as formatBookingDateTime, Ht as toBookingTimeZone, Jt as publicEventPricingType, Kt as publicEventPricingCurrency, Lt as formatBookingTime, Pt as formatBookingDate, Q as resolveEventRegistrationScopedEvents, S as getStepNumber, Ut as toScheduledBookingDateTime, Xt as publicEventTicketTypes, Yt as publicEventScalarPrice, Zt as formatCurrencyAmount, _ as findPreSelectedEvent, b as resolveRegistrationTarget, g as findEventByOccurrenceId, h as toRegistrationEvents, q as resolveRuntimeEventPricing, qt as publicEventPricingMode, t as defineIslandPropsDecoder, v as resolveDiscountContext, w as planEventRegistrationSurface, x as WIZARD_STEPS, y as resolveEventRequiresPayment, z as formatEventPriceDisplay } from "./propsDecoder-CeUMxI9a.mjs";
|
|
4
|
+
import { n as useBlockApi, t as BlockApiProvider } from "./context-TSK1CGx8.mjs";
|
|
5
5
|
import { n as isSpamProtectionEnabled, r as AltchaWidget, t as getChallengeUrl } from "./src-B833rYRr.mjs";
|
|
6
|
-
import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-
|
|
7
|
-
import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-
|
|
8
|
-
import { n as
|
|
6
|
+
import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-lPr1oqxB.mjs";
|
|
7
|
+
import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-CfuPOHD0.mjs";
|
|
8
|
+
import { i as formatPrice, n as StepIndicator$1, r as SpinnerNode, t as BookingConsentAgreement } from "./BookingConsentAgreement-BxgpGEFD.mjs";
|
|
9
9
|
import { t as FeedbackMessage } from "./FeedbackMessage-CtLvvS_d.mjs";
|
|
10
10
|
import { n as getFieldValidationControlProps, t as FieldValidationMessage } from "./FieldValidationMessage-AYanWFb-.mjs";
|
|
11
|
-
import { t as buildCheckoutReturnUrls } from "./checkoutUrls-
|
|
11
|
+
import { t as buildCheckoutReturnUrls } from "./checkoutUrls-DQYC_Br-.mjs";
|
|
12
12
|
import { t as createBodyThemePortalRoot } from "./themePortalRoot-AGs4cE7t.mjs";
|
|
13
13
|
import { t as consumeSearchParam } from "./urlParams-D71VXFGx.mjs";
|
|
14
|
-
import { a as MagicLinkForm, i as useWaitlistClaim, n as LoggedInAsUser, o as WholeSeriesRegistrationErrorBoundary, r as logoutPortal, s as ClockIcon, t as WholeSeriesRegistrationWizard } from "./WholeSeriesRegistrationWizard-
|
|
14
|
+
import { a as MagicLinkForm, i as useWaitlistClaim, n as LoggedInAsUser, o as WholeSeriesRegistrationErrorBoundary, r as logoutPortal, s as ClockIcon, t as WholeSeriesRegistrationWizard } from "./WholeSeriesRegistrationWizard-DwtC7bCs.mjs";
|
|
15
15
|
import { t as CrossIcon } from "./CrossIcon-Dn1KRKW5.mjs";
|
|
16
16
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
17
17
|
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-UNsfPcYq.mjs";
|
|
@@ -1365,13 +1365,72 @@ const GuestDetailsSection = ({ guests, errors, onChange, shake = false, onShakeE
|
|
|
1365
1365
|
};
|
|
1366
1366
|
//#endregion
|
|
1367
1367
|
//#region ../blocks/src/system/runtime/nodes/event-registration/AttendeeDetailsStep.tsx
|
|
1368
|
+
function EventConsentField({ consent, error, formData, idBase, onChange }) {
|
|
1369
|
+
const errorId = `${idBase}-consent-error`;
|
|
1370
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
1371
|
+
className: "er-field",
|
|
1372
|
+
children: [
|
|
1373
|
+
/* @__PURE__ */ jsx(BookingConsentAgreement, {
|
|
1374
|
+
agreement: consent.agreement,
|
|
1375
|
+
title: consent.title,
|
|
1376
|
+
titleId: `${idBase}-consent-title`
|
|
1377
|
+
}),
|
|
1378
|
+
/* @__PURE__ */ jsxs("label", {
|
|
1379
|
+
className: "er-label rb-flex rb-items-start rb-gap-2 rb-cursor-pointer",
|
|
1380
|
+
children: [
|
|
1381
|
+
/* @__PURE__ */ jsx("input", {
|
|
1382
|
+
"aria-describedby": error ? errorId : void 0,
|
|
1383
|
+
className: "form-checkbox rb-mt-0.5",
|
|
1384
|
+
checked: formData.consentAccepted === true,
|
|
1385
|
+
onChange: (event) => onChange({
|
|
1386
|
+
...formData,
|
|
1387
|
+
consentAccepted: event.target.checked
|
|
1388
|
+
}),
|
|
1389
|
+
type: "checkbox"
|
|
1390
|
+
}),
|
|
1391
|
+
consent.checkboxLabel,
|
|
1392
|
+
" ",
|
|
1393
|
+
/* @__PURE__ */ jsx("span", {
|
|
1394
|
+
className: "er-required",
|
|
1395
|
+
children: "*"
|
|
1396
|
+
})
|
|
1397
|
+
]
|
|
1398
|
+
}),
|
|
1399
|
+
error ? /* @__PURE__ */ jsx(FieldValidationMessage, {
|
|
1400
|
+
id: errorId,
|
|
1401
|
+
className: "er-error",
|
|
1402
|
+
children: error
|
|
1403
|
+
}) : null
|
|
1404
|
+
]
|
|
1405
|
+
});
|
|
1406
|
+
}
|
|
1407
|
+
function resolveGuestDetailsChangeHandler(requireGuestDetails, ticketsCount, onGuestsChange) {
|
|
1408
|
+
return requireGuestDetails && ticketsCount > 1 && onGuestsChange ? onGuestsChange : null;
|
|
1409
|
+
}
|
|
1410
|
+
function NotesField({ id, onChange, value }) {
|
|
1411
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
1412
|
+
className: "er-field",
|
|
1413
|
+
children: [/* @__PURE__ */ jsx("label", {
|
|
1414
|
+
className: "er-label",
|
|
1415
|
+
htmlFor: id,
|
|
1416
|
+
children: "Notes"
|
|
1417
|
+
}), /* @__PURE__ */ jsx("textarea", {
|
|
1418
|
+
id,
|
|
1419
|
+
value,
|
|
1420
|
+
onChange: (event) => onChange(event.target.value),
|
|
1421
|
+
className: "er-input",
|
|
1422
|
+
placeholder: "Any special requirements or notes (optional)",
|
|
1423
|
+
rows: 3
|
|
1424
|
+
})]
|
|
1425
|
+
});
|
|
1426
|
+
}
|
|
1368
1427
|
/**
|
|
1369
1428
|
* Attendee Details Step
|
|
1370
1429
|
*
|
|
1371
1430
|
* Collects attendee information: name, email, phone, and notes.
|
|
1372
1431
|
* Validates required fields and displays errors.
|
|
1373
1432
|
*/
|
|
1374
|
-
const AttendeeDetailsStep = ({ formData, onChange, errors, emailLocked = false, onLogout, ticketsCount = 1, requireGuestDetails = false, guests = [], onGuestsChange, guestErrors = {}, guestSectionShake = false, onGuestShakeEnd }) => {
|
|
1433
|
+
const AttendeeDetailsStep = ({ formData, onChange, errors, emailLocked = false, onLogout, ticketsCount = 1, requireGuestDetails = false, guests = [], onGuestsChange, guestErrors = {}, guestSectionShake = false, onGuestShakeEnd, consent }) => {
|
|
1375
1434
|
const idBase = useId();
|
|
1376
1435
|
const nameId = `${idBase}-name`;
|
|
1377
1436
|
const emailId = `${idBase}-email`;
|
|
@@ -1387,7 +1446,7 @@ const AttendeeDetailsStep = ({ formData, onChange, errors, emailLocked = false,
|
|
|
1387
1446
|
message: errors.email,
|
|
1388
1447
|
messageId: emailErrorId
|
|
1389
1448
|
});
|
|
1390
|
-
const
|
|
1449
|
+
const guestDetailsChangeHandler = resolveGuestDetailsChangeHandler(requireGuestDetails, ticketsCount, onGuestsChange);
|
|
1391
1450
|
return /* @__PURE__ */ jsxs("div", {
|
|
1392
1451
|
className: "rb-reg-stack er-stack",
|
|
1393
1452
|
children: [
|
|
@@ -1480,29 +1539,26 @@ const AttendeeDetailsStep = ({ formData, onChange, errors, emailLocked = false,
|
|
|
1480
1539
|
placeholder: "(optional)"
|
|
1481
1540
|
})]
|
|
1482
1541
|
}),
|
|
1483
|
-
/* @__PURE__ */
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
})
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
rows: 3
|
|
1499
|
-
})]
|
|
1500
|
-
})
|
|
1542
|
+
/* @__PURE__ */ jsx(NotesField, {
|
|
1543
|
+
id: notesId,
|
|
1544
|
+
value: formData.notes,
|
|
1545
|
+
onChange: (notes) => onChange({
|
|
1546
|
+
...formData,
|
|
1547
|
+
notes
|
|
1548
|
+
})
|
|
1549
|
+
}),
|
|
1550
|
+
consent ? /* @__PURE__ */ jsx(EventConsentField, {
|
|
1551
|
+
consent,
|
|
1552
|
+
error: errors.consentAccepted,
|
|
1553
|
+
formData,
|
|
1554
|
+
idBase,
|
|
1555
|
+
onChange
|
|
1556
|
+
}) : null
|
|
1501
1557
|
] }),
|
|
1502
|
-
|
|
1558
|
+
guestDetailsChangeHandler && /* @__PURE__ */ jsx(GuestDetailsSection, {
|
|
1503
1559
|
guests,
|
|
1504
1560
|
errors: guestErrors,
|
|
1505
|
-
onChange:
|
|
1561
|
+
onChange: guestDetailsChangeHandler,
|
|
1506
1562
|
shake: guestSectionShake,
|
|
1507
1563
|
onShakeEnd: onGuestShakeEnd
|
|
1508
1564
|
})
|
|
@@ -2274,6 +2330,9 @@ const VerifyingTimeoutStep = ({ onCheckAgain, supportEmail }) => {
|
|
|
2274
2330
|
};
|
|
2275
2331
|
//#endregion
|
|
2276
2332
|
//#region ../blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardContent.tsx
|
|
2333
|
+
function getWizardConsent(wizard) {
|
|
2334
|
+
return (wizard.selectedEvent ?? wizard.preSelectedEvent)?.consent ?? null;
|
|
2335
|
+
}
|
|
2277
2336
|
function EventRegistrationWizardContent(props) {
|
|
2278
2337
|
const { wizard } = props;
|
|
2279
2338
|
const showSpamProtection = props.showSpamProtection ?? isSpamProtectionEnabled();
|
|
@@ -2353,7 +2412,8 @@ function EventRegistrationWizardContent(props) {
|
|
|
2353
2412
|
onGuestsChange: wizard.setGuests,
|
|
2354
2413
|
guestErrors: wizard.guestErrors,
|
|
2355
2414
|
guestSectionShake: wizard.guestSectionShake,
|
|
2356
|
-
onGuestShakeEnd: wizard.handleGuestShakeEnd
|
|
2415
|
+
onGuestShakeEnd: wizard.handleGuestShakeEnd,
|
|
2416
|
+
consent: getWizardConsent(wizard)
|
|
2357
2417
|
}),
|
|
2358
2418
|
showSpamProtection && /* @__PURE__ */ jsx("div", {
|
|
2359
2419
|
className: "er-altcha",
|
|
@@ -2721,11 +2781,21 @@ function EventRegistrationSummaryBar(props) {
|
|
|
2721
2781
|
}
|
|
2722
2782
|
//#endregion
|
|
2723
2783
|
//#region ../blocks/src/system/runtime/nodes/event-registration/validation.ts
|
|
2724
|
-
function
|
|
2784
|
+
function createInitialRegistrationFormData() {
|
|
2785
|
+
return {
|
|
2786
|
+
name: "",
|
|
2787
|
+
email: "",
|
|
2788
|
+
phone: "",
|
|
2789
|
+
notes: "",
|
|
2790
|
+
consentAccepted: false
|
|
2791
|
+
};
|
|
2792
|
+
}
|
|
2793
|
+
function validateFormData(formData, requiresConsent = false) {
|
|
2725
2794
|
const errors = {};
|
|
2726
2795
|
if (!formData.name.trim()) errors.name = "Name is required";
|
|
2727
2796
|
if (!formData.email.trim()) errors.email = "Email is required";
|
|
2728
2797
|
else if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(formData.email)) errors.email = "Invalid email address";
|
|
2798
|
+
if (requiresConsent && formData.consentAccepted !== true) errors.consentAccepted = "Please read and accept the agreement before continuing.";
|
|
2729
2799
|
return errors;
|
|
2730
2800
|
}
|
|
2731
2801
|
//#endregion
|
|
@@ -3381,6 +3451,7 @@ function useEventRegistrationSubmitWithDeps(options, deps) {
|
|
|
3381
3451
|
name: options.formData.name.trim(),
|
|
3382
3452
|
phone: options.formData.phone.trim() || void 0,
|
|
3383
3453
|
notes: options.formData.notes.trim() || void 0,
|
|
3454
|
+
consentAccepted: options.formData.consentAccepted,
|
|
3384
3455
|
altchaSolution: options.altchaSolution,
|
|
3385
3456
|
paymentMethod: method,
|
|
3386
3457
|
customerPassId: method === "pass" ? passId : void 0,
|
|
@@ -3517,12 +3588,7 @@ function useEventRegistrationWizardWithDeps(options, deps) {
|
|
|
3517
3588
|
const step = flowState.step;
|
|
3518
3589
|
const paymentSelection = flowState.paymentSelection;
|
|
3519
3590
|
const [selectedEvent, setSelectedEvent] = useState(preSelectedEvent ?? null);
|
|
3520
|
-
const [formData, setFormData] = useState(
|
|
3521
|
-
name: "",
|
|
3522
|
-
email: "",
|
|
3523
|
-
phone: "",
|
|
3524
|
-
notes: ""
|
|
3525
|
-
});
|
|
3591
|
+
const [formData, setFormData] = useState(createInitialRegistrationFormData);
|
|
3526
3592
|
const [errors, setErrors] = useState({});
|
|
3527
3593
|
const [guests, setGuests] = useState([]);
|
|
3528
3594
|
const [guestErrors, setGuestErrors] = useState({});
|
|
@@ -3820,7 +3886,7 @@ function useEventRegistrationWizardWithDeps(options, deps) {
|
|
|
3820
3886
|
guests
|
|
3821
3887
|
]);
|
|
3822
3888
|
const validateForm = () => {
|
|
3823
|
-
const newErrors = validateFormData(formData);
|
|
3889
|
+
const newErrors = validateFormData(formData, Boolean(currentEvent?.consent));
|
|
3824
3890
|
setErrors(newErrors);
|
|
3825
3891
|
const newGuestErrors = {};
|
|
3826
3892
|
if (requireGuestDetails && guests.length > 0) {
|
|
@@ -4009,6 +4075,10 @@ function useEventRegistrationWizardWithDeps(options, deps) {
|
|
|
4009
4075
|
});
|
|
4010
4076
|
const handleEventSelect = (event) => {
|
|
4011
4077
|
setSelectedEvent(event);
|
|
4078
|
+
setFormData((current) => ({
|
|
4079
|
+
...current,
|
|
4080
|
+
consentAccepted: false
|
|
4081
|
+
}));
|
|
4012
4082
|
const slidingScale = getSlidingScaleForEvent(event);
|
|
4013
4083
|
setSelectedSlidingAmountInput(slidingScale?.suggestedAmount !== null && slidingScale?.suggestedAmount !== void 0 ? formatCentsAsCurrencyInput(slidingScale.suggestedAmount) : "");
|
|
4014
4084
|
setSelectedAttendanceMode((event.deliveryMode ?? "in_person") === "hybrid" ? null : (event.deliveryMode ?? "in_person") === "online" ? "online" : "in_person");
|
|
@@ -4465,30 +4535,6 @@ function EventRegistrationWizard(props) {
|
|
|
4465
4535
|
});
|
|
4466
4536
|
}
|
|
4467
4537
|
//#endregion
|
|
4468
|
-
//#region ../blocks/src/system/runtime/nodes/event-registration/registrationSurface.ts
|
|
4469
|
-
function planEventRegistrationSurface(input) {
|
|
4470
|
-
const scopedEvents = resolveEventRegistrationScopedEvents(input.events, {
|
|
4471
|
-
occurrenceContext: input.occurrenceContext,
|
|
4472
|
-
subject: input.subject
|
|
4473
|
-
});
|
|
4474
|
-
const bookingScopes = new Set(scopedEvents.map((event) => event.bookingScope));
|
|
4475
|
-
if (!input.occurrenceContext && !input.subject && bookingScopes.has("single_occurrence")) return {
|
|
4476
|
-
kind: "occurrence",
|
|
4477
|
-
events: scopedEvents.filter((event) => event.bookingScope === "single_occurrence")
|
|
4478
|
-
};
|
|
4479
|
-
if (bookingScopes.size === 0 || bookingScopes.has("single_occurrence")) return bookingScopes.has("whole_series") ? { kind: "mixedBookingScopes" } : {
|
|
4480
|
-
kind: "occurrence",
|
|
4481
|
-
events: scopedEvents
|
|
4482
|
-
};
|
|
4483
|
-
const requiredSeriesIds = new Set(scopedEvents.map((event) => event.seriesId));
|
|
4484
|
-
const offerings = input.wholeSeriesOfferings.filter((offering) => requiredSeriesIds.has(offering.eventSeriesId));
|
|
4485
|
-
const loadedSeriesIds = new Set(offerings.map((offering) => offering.eventSeriesId));
|
|
4486
|
-
return [...requiredSeriesIds].every((seriesId) => loadedSeriesIds.has(seriesId)) && offerings.length > 0 ? {
|
|
4487
|
-
kind: "wholeSeries",
|
|
4488
|
-
offerings
|
|
4489
|
-
} : { kind: "unavailableWholeSeries" };
|
|
4490
|
-
}
|
|
4491
|
-
//#endregion
|
|
4492
4538
|
//#region ../blocks/src/system/runtime/nodes/event-registration/PastOccurrenceNotice.tsx
|
|
4493
4539
|
function isPastOccurrence(startsAt) {
|
|
4494
4540
|
if (!startsAt) return false;
|
|
@@ -4568,7 +4614,8 @@ function toEventRegistrationClientProps(props, display) {
|
|
|
4568
4614
|
const EventRegistrationClient = (clientProps) => {
|
|
4569
4615
|
const surface = planEventRegistrationSurface({
|
|
4570
4616
|
events: clientProps.events ?? [],
|
|
4571
|
-
wholeSeriesOfferings: clientProps.
|
|
4617
|
+
wholeSeriesOfferings: clientProps.wholeSeriesOfferings ?? [],
|
|
4618
|
+
wholeSeriesOffering: clientProps.wholeSeriesOffering,
|
|
4572
4619
|
occurrenceContext: clientProps.occurrenceContext,
|
|
4573
4620
|
subject: clientProps.subject
|
|
4574
4621
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { D as clsx } from "./colorStyles-CrxJrPjJ.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import { n as useBlockApi, t as BlockApiProvider } from "./context-
|
|
3
|
+
import { $ as themeButtonClassName, Et as assertNever, Ot as err, kt as ok, t as defineIslandPropsDecoder } from "./propsDecoder-CeUMxI9a.mjs";
|
|
4
|
+
import { n as useBlockApi, t as BlockApiProvider } from "./context-TSK1CGx8.mjs";
|
|
5
5
|
import { n as isSpamProtectionEnabled, r as AltchaWidget, t as getChallengeUrl } from "./src-B833rYRr.mjs";
|
|
6
6
|
import { t as FeedbackMessage } from "./FeedbackMessage-CtLvvS_d.mjs";
|
|
7
7
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { $ as themeButtonClassName, E as staticHeaderChromeRuntime, r as buildCartDisplay, t as defineIslandPropsDecoder } from "./propsDecoder-CeUMxI9a.mjs";
|
|
3
3
|
import { t as resolveDedicatedCheckoutPath } from "./checkoutRoute-ClwHwYVA.mjs";
|
|
4
|
-
import { n as useCommerceCart } from "./shop-commerce-store-
|
|
4
|
+
import { n as useCommerceCart } from "./shop-commerce-store-Dnu-8Iub.mjs";
|
|
5
5
|
import { t as ModalShell } from "./ModalShell-CqkBvBIC.mjs";
|
|
6
6
|
import * as React$1 from "react";
|
|
7
7
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
package/dist/client/hooks.mjs
CHANGED
|
@@ -2486,6 +2486,68 @@ z.object({
|
|
|
2486
2486
|
monthlyCurrency: z.literal("gbp")
|
|
2487
2487
|
});
|
|
2488
2488
|
//#endregion
|
|
2489
|
+
//#region ../blocks/src/system/types/link.ts
|
|
2490
|
+
const nullableString = z.union([z.string().min(1), z.null()]);
|
|
2491
|
+
const RESOLVED_INTERNAL_LINK_ENTITY_TYPES = [
|
|
2492
|
+
"page",
|
|
2493
|
+
"content",
|
|
2494
|
+
"pageSurface"
|
|
2495
|
+
];
|
|
2496
|
+
const resolvedInternalLinkKeys = [
|
|
2497
|
+
"entityId",
|
|
2498
|
+
"entityType",
|
|
2499
|
+
"href",
|
|
2500
|
+
"title",
|
|
2501
|
+
"typeLabel"
|
|
2502
|
+
];
|
|
2503
|
+
const internalRouteOnlyLinkSchema = z.object({
|
|
2504
|
+
kind: z.literal("internal"),
|
|
2505
|
+
routeId: z.string().min(1)
|
|
2506
|
+
}).passthrough().superRefine((value, ctx) => {
|
|
2507
|
+
if (!resolvedInternalLinkKeys.some((key) => value[key] != null)) return;
|
|
2508
|
+
ctx.addIssue({
|
|
2509
|
+
code: "custom",
|
|
2510
|
+
message: "Internal links with resolved metadata must include entityId, entityType, href, title, and typeLabel"
|
|
2511
|
+
});
|
|
2512
|
+
});
|
|
2513
|
+
const internalResolvedLinkSchema = z.object({
|
|
2514
|
+
kind: z.literal("internal"),
|
|
2515
|
+
routeId: z.string().min(1),
|
|
2516
|
+
entityId: z.string().min(1),
|
|
2517
|
+
entityType: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
|
|
2518
|
+
href: z.string().min(1),
|
|
2519
|
+
title: z.string().min(1),
|
|
2520
|
+
typeLabel: z.string().min(1),
|
|
2521
|
+
contentTypeKey: nullableString.optional(),
|
|
2522
|
+
contentTypeName: nullableString.optional(),
|
|
2523
|
+
updatedAt: nullableString.optional()
|
|
2524
|
+
}).passthrough();
|
|
2525
|
+
const internalLinkSchema = z.union([internalResolvedLinkSchema, internalRouteOnlyLinkSchema]);
|
|
2526
|
+
const externalLinkSchema$1 = z.object({
|
|
2527
|
+
kind: z.literal("external"),
|
|
2528
|
+
href: z.string().min(1)
|
|
2529
|
+
}).passthrough();
|
|
2530
|
+
const customLinkSchema$1 = z.object({
|
|
2531
|
+
kind: z.literal("url"),
|
|
2532
|
+
href: z.string().min(1)
|
|
2533
|
+
}).passthrough();
|
|
2534
|
+
const pageLinkSchema$1 = z.object({
|
|
2535
|
+
kind: z.literal("page"),
|
|
2536
|
+
identifier: z.string().min(1)
|
|
2537
|
+
}).passthrough();
|
|
2538
|
+
const entryLinkSchema$1 = z.object({
|
|
2539
|
+
kind: z.literal("entry"),
|
|
2540
|
+
contentType: z.string().min(1),
|
|
2541
|
+
identifier: z.string().min(1)
|
|
2542
|
+
}).passthrough();
|
|
2543
|
+
z.union([
|
|
2544
|
+
internalLinkSchema,
|
|
2545
|
+
externalLinkSchema$1,
|
|
2546
|
+
customLinkSchema$1,
|
|
2547
|
+
pageLinkSchema$1,
|
|
2548
|
+
entryLinkSchema$1
|
|
2549
|
+
]);
|
|
2550
|
+
//#endregion
|
|
2489
2551
|
//#region ../api/src/navigation/contracts.ts
|
|
2490
2552
|
/**
|
|
2491
2553
|
* Canonical navigation/link Zod contracts.
|
|
@@ -2515,7 +2577,7 @@ const internalLinkPayloadSchema = z.object({
|
|
|
2515
2577
|
kind: z.literal("internal"),
|
|
2516
2578
|
routeId: z.string().uuid(),
|
|
2517
2579
|
entityId: z.string().uuid(),
|
|
2518
|
-
entityType: z.enum(
|
|
2580
|
+
entityType: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
|
|
2519
2581
|
href: z.string().min(1),
|
|
2520
2582
|
title: z.string().min(1),
|
|
2521
2583
|
typeLabel: z.string().min(1),
|
|
@@ -26480,6 +26542,23 @@ const blockBookingPaymentCollectionOptionSchema = z.union([
|
|
|
26480
26542
|
]);
|
|
26481
26543
|
const blockBookingPaymentTermsSchema = z.object({ allowedOptions: z.array(blockBookingPaymentCollectionOptionSchema).min(1) });
|
|
26482
26544
|
//#endregion
|
|
26545
|
+
//#region ../blocks/src/system/blocks/shared/bookingConsent.ts
|
|
26546
|
+
const blockBookingConsentSchema = z.object({
|
|
26547
|
+
requirementId: z.string(),
|
|
26548
|
+
title: z.string(),
|
|
26549
|
+
agreement: RichTextDocSchema,
|
|
26550
|
+
checkboxLabel: z.string()
|
|
26551
|
+
});
|
|
26552
|
+
const bookingRequirementConsentFieldSchema = z.object({
|
|
26553
|
+
id: z.string(),
|
|
26554
|
+
label: z.string(),
|
|
26555
|
+
type: z.literal("booking_requirement_consent"),
|
|
26556
|
+
required: z.literal(true),
|
|
26557
|
+
agreement: RichTextDocSchema,
|
|
26558
|
+
checkboxLabel: z.string().min(1)
|
|
26559
|
+
});
|
|
26560
|
+
z.union([blockBookingConsentSchema, bookingRequirementConsentFieldSchema]);
|
|
26561
|
+
//#endregion
|
|
26483
26562
|
//#region ../blocks/src/system/blocks/events/whole-series/schemas.ts
|
|
26484
26563
|
const wholeSeriesVenueSchema = z.object({
|
|
26485
26564
|
id: z.string(),
|
|
@@ -26544,6 +26623,7 @@ const publicWholeSeriesOfferingSchema = z.object({
|
|
|
26544
26623
|
pricing: wholeSeriesPricingSchema,
|
|
26545
26624
|
currency: z.string(),
|
|
26546
26625
|
paymentTerms: blockBookingPaymentTermsSchema,
|
|
26626
|
+
consent: blockBookingConsentSchema.nullable(),
|
|
26547
26627
|
enrollmentCapacity: z.number().nullable(),
|
|
26548
26628
|
acceptsMemberships: z.boolean(),
|
|
26549
26629
|
status: z.enum([
|
|
@@ -26861,6 +26941,7 @@ const publicEventSchema = z.object({
|
|
|
26861
26941
|
timeZone: z.string(),
|
|
26862
26942
|
pricing: publicEventPricingSchema,
|
|
26863
26943
|
paymentTerms: blockBookingPaymentTermsSchema,
|
|
26944
|
+
consent: blockBookingConsentSchema.nullable(),
|
|
26864
26945
|
accessRestriction: accessRestrictionSchema,
|
|
26865
26946
|
allowedCategoryIds: z.array(z.string()),
|
|
26866
26947
|
requireGuestDetails: z.boolean().optional(),
|
|
@@ -27209,6 +27290,25 @@ function resolveEventRegistrationScopedEvents(events, context) {
|
|
|
27209
27290
|
return applyEventRegistrationScope(events, resolveEventRegistrationScope(context));
|
|
27210
27291
|
}
|
|
27211
27292
|
//#endregion
|
|
27293
|
+
//#region ../blocks/src/system/runtime/nodes/event-registration/registrationSurface.ts
|
|
27294
|
+
function planEventRegistrationScope(input) {
|
|
27295
|
+
const subject = input.subject;
|
|
27296
|
+
const selectedRunOffering = input.wholeSeriesOffering;
|
|
27297
|
+
if (subject?.kind !== "eventOffering" || !selectedRunOffering) return {
|
|
27298
|
+
kind: "context",
|
|
27299
|
+
events: resolveEventRegistrationScopedEvents(input.events, {
|
|
27300
|
+
occurrenceContext: input.occurrenceContext,
|
|
27301
|
+
subject
|
|
27302
|
+
})
|
|
27303
|
+
};
|
|
27304
|
+
if (!(selectedRunOffering.eventOfferingId === subject.eventOfferingId && subject.availableEventSeriesIds.some((seriesId) => seriesId === selectedRunOffering.eventSeriesId))) return { kind: "invalidSelectedRun" };
|
|
27305
|
+
return {
|
|
27306
|
+
kind: "selectedRun",
|
|
27307
|
+
events: input.events.filter((event) => event.seriesId === selectedRunOffering.eventSeriesId),
|
|
27308
|
+
offering: selectedRunOffering
|
|
27309
|
+
};
|
|
27310
|
+
}
|
|
27311
|
+
//#endregion
|
|
27212
27312
|
//#region ../blocks/src/system/runtime/nodes/events/shared/destination.ts
|
|
27213
27313
|
function isRecord$7(value) {
|
|
27214
27314
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
@@ -27622,10 +27722,13 @@ function buildEventRegistrationShellStepLabels(source) {
|
|
|
27622
27722
|
}) : false).map((step) => shellLabelForRegistrationStep(step, scopedEvents));
|
|
27623
27723
|
}
|
|
27624
27724
|
function scopeEventRegistrationEvents(source) {
|
|
27625
|
-
|
|
27725
|
+
const scope = planEventRegistrationScope({
|
|
27726
|
+
events: toRegistrationEvents(source.events ?? []),
|
|
27727
|
+
wholeSeriesOffering: source.wholeSeriesOffering,
|
|
27626
27728
|
occurrenceContext: source.occurrenceContext,
|
|
27627
27729
|
subject: source.subject
|
|
27628
27730
|
});
|
|
27731
|
+
return scope.kind === "invalidSelectedRun" ? [] : scope.events;
|
|
27629
27732
|
}
|
|
27630
27733
|
function shellLabelForRegistrationStep(step, events) {
|
|
27631
27734
|
switch (step) {
|
|
@@ -31062,7 +31165,7 @@ const publicRouteCandidatesSchema = z.object({ routes: z.array(z.object({
|
|
|
31062
31165
|
entityId: z.string(),
|
|
31063
31166
|
path: z.string(),
|
|
31064
31167
|
title: z.string(),
|
|
31065
|
-
kind: z.enum(
|
|
31168
|
+
kind: z.enum(RESOLVED_INTERNAL_LINK_ENTITY_TYPES),
|
|
31066
31169
|
contentTypeKey: z.string().nullable().optional()
|
|
31067
31170
|
})) });
|
|
31068
31171
|
const groupOverrideFields = [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { i as textColorStyle } from "./colorStyles-CrxJrPjJ.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { $ as themeButtonClassName, t as defineIslandPropsDecoder } from "./propsDecoder-CeUMxI9a.mjs";
|
|
3
3
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
4
|
-
import { t as LeafletStaticMap } from "./LeafletStaticMap-
|
|
4
|
+
import { t as LeafletStaticMap } from "./LeafletStaticMap-QhgIBQbv.mjs";
|
|
5
5
|
import "react";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
//#region ../core/src/location.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { D as clsx } from "./colorStyles-CrxJrPjJ.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import { n as useBlockApi, t as BlockApiProvider } from "./context-
|
|
3
|
+
import { $ as themeButtonClassName, Et as assertNever, Qt as assertNever$1, t as defineIslandPropsDecoder } from "./propsDecoder-CeUMxI9a.mjs";
|
|
4
|
+
import { n as useBlockApi, t as BlockApiProvider } from "./context-TSK1CGx8.mjs";
|
|
5
5
|
import { n as isSpamProtectionEnabled, r as AltchaWidget, t as getChallengeUrl } from "./src-B833rYRr.mjs";
|
|
6
6
|
import { t as FeedbackMessage } from "./FeedbackMessage-CtLvvS_d.mjs";
|
|
7
7
|
import { n as getFieldValidationControlProps, t as FieldValidationMessage } from "./FieldValidationMessage-AYanWFb-.mjs";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Gt as formatBookingPriceDisplay } from "./propsDecoder-CeUMxI9a.mjs";
|
|
2
2
|
//#region ../core/src/planner.ts
|
|
3
3
|
/** Default clock for production callers that do not inject time explicitly. */
|
|
4
4
|
const systemPlanningClock = { now: () => Date.now() };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as defineIslandPropsDecoder } from "./propsDecoder-
|
|
2
|
-
import { r as ProductDetailController } from "./shop-commerce-
|
|
3
|
-
import { t as mountShopBlockIsland } from "./shopShared-
|
|
1
|
+
import { t as defineIslandPropsDecoder } from "./propsDecoder-CeUMxI9a.mjs";
|
|
2
|
+
import { r as ProductDetailController } from "./shop-commerce-quDL411J.mjs";
|
|
3
|
+
import { t as mountShopBlockIsland } from "./shopShared-BWPUURvG.mjs";
|
|
4
4
|
import "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region ../blocks/src/system/runtime/nodes/product-detail.client.tsx
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as defineIslandPropsDecoder } from "./propsDecoder-
|
|
2
|
-
import { i as ProductListController } from "./shop-commerce-
|
|
3
|
-
import { t as mountShopBlockIsland } from "./shopShared-
|
|
1
|
+
import { t as defineIslandPropsDecoder } from "./propsDecoder-CeUMxI9a.mjs";
|
|
2
|
+
import { i as ProductListController } from "./shop-commerce-quDL411J.mjs";
|
|
3
|
+
import { t as mountShopBlockIsland } from "./shopShared-BWPUURvG.mjs";
|
|
4
4
|
import "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region ../blocks/src/system/runtime/nodes/product-list.client.tsx
|