@riverbankcms/sdk 0.145.0 → 0.146.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 +17 -0
- package/dist/{PreviewEditorSidebar-O-V6Pl5a.mjs → PreviewEditorSidebar-kg2r2Fyi.mjs} +4 -4
- package/dist/{PreviewEditorUI-1UlX_9cw.mjs → PreviewEditorUI-sWMLp5dT.mjs} +3 -3
- package/dist/{PreviewQueryProvider-BxGwdOCV.mjs → PreviewQueryProvider-Cg51xq1w.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-DYbA_4iv.mjs → SdkPreviewModeRuntime-h2ti3Hch.mjs} +280 -182
- package/dist/{SiteChromeCustomizeContext-CNTKQ9nx.mjs → SiteChromeCustomizeContext-DEACFH9m.mjs} +1330 -734
- package/dist/_dts/ai/src/contracts/proposals.d.ts +924 -0
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +84 -0
- package/dist/_dts/api/src/bookingConfig.d.ts +8 -1
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +8 -14
- package/dist/_dts/api/src/bookingManagementEventEndpointTypes.d.ts +45 -1
- package/dist/_dts/api/src/clientErrorReporting.d.ts +50 -0
- package/dist/_dts/api/src/communications.d.ts +20 -4
- package/dist/_dts/api/src/contentRuntime.d.ts +3 -7
- package/dist/_dts/api/src/endpoints.d.ts +223 -88
- package/dist/_dts/api/src/event-visibility.d.ts +20 -0
- package/dist/_dts/api/src/eventManagementContracts.d.ts +56 -3
- package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +24 -0
- package/dist/_dts/api/src/eventPageWords.d.ts +19 -0
- package/dist/_dts/api/src/eventSeriesRegistrationEndpointDefinitions.d.ts +14 -0
- package/dist/_dts/api/src/index.d.ts +7 -1
- package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
- package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
- package/dist/_dts/api/src/launchReadiness.d.ts +20 -2
- package/dist/_dts/api/src/launchRequirementPriority.d.ts +3 -0
- package/dist/_dts/api/src/newsletterCampaignCommandEndpoints.d.ts +13 -0
- package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +42 -0
- package/dist/_dts/api/src/occurrenceScheduling.d.ts +10 -0
- package/dist/_dts/api/src/pageSurfaceEndpoints.d.ts +44 -0
- package/dist/_dts/api/src/participantMessaging.d.ts +11 -1
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +40 -1
- package/dist/_dts/api/src/sdkContracts.d.ts +3 -42
- package/dist/_dts/api/src/sdkCourseBooking.d.ts +30 -0
- package/dist/_dts/api/src/sdkEventEndpointDefinitions.d.ts +76 -0
- package/dist/_dts/api/src/sdkEventLifecycle.d.ts +37 -0
- package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +18 -0
- package/dist/_dts/api/src/sdkPageDesign.d.ts +388 -0
- package/dist/_dts/api/src/sdkPageDesignEndpointDefinitions.d.ts +22 -0
- package/dist/_dts/api/src/sdkPullEventContracts.d.ts +46 -0
- package/dist/_dts/api/src/siteAddressEndpoints.d.ts +29 -0
- package/dist/_dts/api/src/siteManagementEndpointDefinitions.d.ts +49 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +2 -32
- package/dist/_dts/api/src/siteOnboarding.d.ts +75 -9
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -1
- package/dist/_dts/api/src/types.d.ts +7 -1
- package/dist/_dts/api/src/wholeSeriesRuns.d.ts +14 -0
- package/dist/_dts/blocks/src/index.d.ts +2 -0
- package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +10 -0
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +3 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +27 -5
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +14 -1
- package/dist/_dts/blocks/src/system/icons/social.d.ts +1 -1
- package/dist/_dts/blocks/src/system/registry.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +20 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/form.fields.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.block-submission.d.ts +36 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +6 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.parts.d.ts +46 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/shared/components/CheckboxChoice.d.ts +18 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -0
- package/dist/_dts/content-editor/src/index.d.ts +1 -0
- package/dist/_dts/content-editor/src/primitives/previewEditableOutline.d.ts +2 -0
- package/dist/_dts/content-editor/src/ui/editorBlockEquality.d.ts +3 -0
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +3 -5
- package/dist/_dts/core/src/block-content-identity.d.ts +5 -0
- package/dist/_dts/core/src/editor-state.d.ts +2 -7
- package/dist/_dts/core/src/index.d.ts +1 -0
- package/dist/_dts/core/src/mailing-list-submission.d.ts +3 -1
- package/dist/_dts/core/src/public-event-booking-availability.d.ts +20 -1
- package/dist/_dts/core/src/public-profile.d.ts +3 -1
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +49 -2
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +3 -0
- package/dist/_dts/editor-blocks/src/block-editor/EmptyState.d.ts +13 -1
- package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +2 -8
- package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +3 -4
- package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -2
- package/dist/_dts/sdk/src/next/renderSdkContent.d.ts +0 -1
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -2
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +2 -2
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +6 -1
- package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +5 -2
- package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +6 -1
- package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +2 -0
- package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +5 -1
- package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +5 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/surfaces/src/index.d.ts +9 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/inputs/checkable.d.ts +42 -0
- package/dist/_dts/theme-core/src/inputs/inputGroup.d.ts +19 -0
- package/dist/_dts/ui/src/navigation-tabs.d.ts +2 -1
- package/dist/client/{BookingConsentAgreement-DlVOmpW4.mjs → BookingConsentAgreement-BQKL045f.mjs} +2 -2
- package/dist/client/CheckboxChoice--W2n6yKs.mjs +24 -0
- package/dist/client/{DiscountCodeDisclosure-T9q623PQ.mjs → DiscountCodeDisclosure-CsOtjFY7.mjs} +1 -1
- package/dist/client/{EventCombined.client-DnsUeONl.mjs → EventCombined.client-BdRjVbhH.mjs} +6 -6
- package/dist/client/{EventListing.client-CNBFqJS4.mjs → EventListing.client-DBxC6xOU.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-C7higg52.mjs → LeafletStaticMap-mHEJKrTs.mjs} +1 -1
- package/dist/client/{ThemedButton-LAJTNrS8.mjs → ThemedButton-CE5KYT6z.mjs} +1 -1
- package/dist/client/{accordion-BcNF9TjX.mjs → accordion-BEQNSptH.mjs} +1 -1
- package/dist/client/{bookingForm-BUaQ3S03.mjs → bookingForm-AMr-s5vw.mjs} +33 -52
- package/dist/client/bookings.mjs +48 -46
- package/dist/client/{carousel-CTdF6e0V.mjs → carousel-Bbt_QgJy.mjs} +1 -1
- package/dist/client/{cart-pGtyf_XU.mjs → cart-CnWi30zJ.mjs} +3 -3
- package/dist/client/{checkout-Da9WSn7Y.mjs → checkout-f3nkWgd4.mjs} +3 -3
- package/dist/client/client.mjs +1611 -815
- package/dist/client/{context-BFeY_Wbm.mjs → context-Bc8T6pCe.mjs} +1 -1
- package/dist/client/{dates-BhwVSxDg.mjs → dates-DUsCEzLb.mjs} +2 -3
- package/dist/client/{eventCalendar-BAtdnR4s.mjs → eventCalendar-CKwgXui5.mjs} +9 -9
- package/dist/client/{eventCombined-RksA3tRC.mjs → eventCombined-CBAOSTGR.mjs} +4 -4
- package/dist/client/{eventDetails-BB9hB4wR.mjs → eventDetails-Dh-_WiBD.mjs} +4 -4
- package/dist/client/{eventListing-BpJBkviM.mjs → eventListing-CA3frIH5.mjs} +4 -4
- package/dist/client/{eventRegistration-B18jFq_o.mjs → eventRegistration-BHtsgdcg.mjs} +21 -22
- package/dist/client/{form-Dodt8Y8t.mjs → form-C2h3YAcg.mjs} +135 -104
- package/dist/client/{headerSection-B0qj9ttg.mjs → headerSection-lwMuMTH9.mjs} +3 -3
- package/dist/client/hooks.mjs +489 -65
- package/dist/client/{locationMap-gn-iMk7a.mjs → locationMap-DJ2bLODV.mjs} +3 -3
- package/dist/client/{newsletterForm-oByLdFkr.mjs → newsletterForm-8Pu5K32g.mjs} +203 -101
- package/dist/client/{pricing-BOU0_Hai.mjs → pricing-HHx3IgBz.mjs} +1 -1
- package/dist/client/{productDetail-D9v1zH2j.mjs → productDetail-C_1odnAf.mjs} +3 -3
- package/dist/client/{productList-D-mItx1n.mjs → productList-CtCv-Nmx.mjs} +3 -3
- package/dist/client/{propsDecoder-C3TP_z4x.mjs → propsDecoder-Dcgsncxb.mjs} +40 -23
- package/dist/client/rendering/client.mjs +490 -457
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +1515 -628
- package/dist/client/{routeIslandApiConfig-DzN1W0sq.mjs → routeIslandApiConfig-CWLP7wu3.mjs} +1 -1
- package/dist/client/{scrollToBlock-CWs8EIdo.mjs → scrollToBlock-BNgaEUpo.mjs} +1 -1
- package/dist/client/{shop-Dufw7N7o.mjs → shop-DQXrQ8kJ.mjs} +7 -7
- package/dist/client/{shop-commerce-gklw_hLF.mjs → shop-commerce-B88zmWWo.mjs} +6 -6
- package/dist/client/{shop-commerce-store-Sf1eyTaZ.mjs → shop-commerce-store-DtSfkKuX.mjs} +1 -1
- package/dist/client/{shopShared-B5nyA41S.mjs → shopShared-cuaONpkJ.mjs} +4 -4
- package/dist/client/{useEventFilters-CLL829vy.mjs → useEventFilters-Bukew6Gb.mjs} +6 -6
- package/dist/preview-next/before-render.mjs +368 -103
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/editor-base.css +11 -0
- package/dist/preview-next/keepAlive.mjs +328 -103
- package/dist/preview-next/middleware.mjs +329 -103
- package/dist/{previewAuthStore-BxAFlu-j.mjs → previewAuthStore-h5IgbSp4.mjs} +353 -103
- package/dist/{sdk-runtime-D0uZFev7.mjs → sdk-runtime-DTc1uIXn.mjs} +2 -2
- package/dist/{separator-EvdCAn4V.mjs → separator-BpHS1KZK.mjs} +1 -1
- package/dist/server/components.mjs +1376 -331
- package/dist/server/config-validation.mjs +405 -27
- package/dist/server/config.mjs +405 -27
- package/dist/server/data.mjs +405 -27
- package/dist/server/index.mjs +370 -104
- package/dist/server/next.mjs +1430 -463
- package/dist/server/page-converter.mjs +36 -25
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +1374 -331
- package/dist/server/rendering.mjs +1436 -364
- package/dist/server/routing.mjs +476 -43
- package/dist/server/server.mjs +504 -169
- package/dist/server/theme-bridge.mjs +467 -111
- package/dist/styles/index.css +186 -65
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { H as calendarWindowPageSchema } from "./propsDecoder-Dcgsncxb.mjs";
|
|
3
3
|
import { createContext, useContext, useMemo } from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
//#region ../blocks/src/system/runtime/api/deduplication.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as canJoinEventWaitlistOnAnyMode, p as isEventFull } from "./pricing-
|
|
1
|
+
import { $t as formatBookingDateParts, Qt as formatBookingDate, cn as toBookingTimeZone, dt as resolveRuntimeEventDestination, ln as toScheduledBookingDateRange, nn as formatBookingTime, un as toScheduledBookingDateTime, xn as assertNever } from "./propsDecoder-Dcgsncxb.mjs";
|
|
2
|
+
import { a as canJoinEventWaitlistOnAnyMode, p as isEventFull } from "./pricing-HHx3IgBz.mjs";
|
|
3
3
|
//#region ../blocks/src/system/runtime/nodes/events/domain/cta.ts
|
|
4
4
|
/**
|
|
5
5
|
* Booking call-to-action resolution for events: where an event links to and
|
|
@@ -16,7 +16,6 @@ function closedEventBookingLabel(reason) {
|
|
|
16
16
|
case "series_archived":
|
|
17
17
|
case "parent_archived":
|
|
18
18
|
case "parent_inconsistent":
|
|
19
|
-
case "not_public":
|
|
20
19
|
case "already_started":
|
|
21
20
|
case "enrollment_closed": return "Registration closed";
|
|
22
21
|
default: return assertNever(reason);
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { O as clsx } from "./colorStyles-CuJBiS-1.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import { o as EventFilters, s as formatEventTeacherLine, t as useEventFilters } from "./useEventFilters-
|
|
5
|
-
import { d as getEventAvailabilityStatus, o as formatEventRemainingPlaces, p as isEventFull } from "./pricing-
|
|
6
|
-
import { a as formatTime, c as getLocalDateKey, d as resolveEventLinkProps, l as getLocalMinuteOfDay, o as groupEventsByDate, s as resolveEventTimeZone } from "./dates-
|
|
7
|
-
import { a as WeekAgendaView, c as CalendarDayCell, d as useCalendarEvents, i as useHydrationReady, l as EventModalProvider, o as CalendarNavigationChevron, r as EventModals, s as CalendarDayHeaders, t as EventCombinedClient, u as useEventModal } from "./EventCombined.client-
|
|
8
|
-
import { t as BlockApiProvider } from "./context-
|
|
9
|
-
import { n as ThemedButtonLink, t as ThemedButton } from "./ThemedButton-
|
|
3
|
+
import { A as buildEventCalendarListingRender, W as resolveCalendarReadProfile, at as getDayOfWeek, ct as isSameCalendarDay, et as MONTH_NAMES, it as formatDateKey, lt as isToday, ot as getOrderedDayNames, q as buildEventRuntimeFilters, st as getWeekCalendarDays, t as defineIslandPropsDecoder, tt as addDays } from "./propsDecoder-Dcgsncxb.mjs";
|
|
4
|
+
import { o as EventFilters, s as formatEventTeacherLine, t as useEventFilters } from "./useEventFilters-Bukew6Gb.mjs";
|
|
5
|
+
import { d as getEventAvailabilityStatus, o as formatEventRemainingPlaces, p as isEventFull } from "./pricing-HHx3IgBz.mjs";
|
|
6
|
+
import { a as formatTime, c as getLocalDateKey, d as resolveEventLinkProps, l as getLocalMinuteOfDay, o as groupEventsByDate, s as resolveEventTimeZone } from "./dates-DUsCEzLb.mjs";
|
|
7
|
+
import { a as WeekAgendaView, c as CalendarDayCell, d as useCalendarEvents, i as useHydrationReady, l as EventModalProvider, o as CalendarNavigationChevron, r as EventModals, s as CalendarDayHeaders, t as EventCombinedClient, u as useEventModal } from "./EventCombined.client-BdRjVbhH.mjs";
|
|
8
|
+
import { t as BlockApiProvider } from "./context-Bc8T6pCe.mjs";
|
|
9
|
+
import { n as ThemedButtonLink, t as ThemedButton } from "./ThemedButton-CE5KYT6z.mjs";
|
|
10
10
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
11
|
-
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-
|
|
12
|
-
import { n as EventListingController } from "./EventListing.client-
|
|
11
|
+
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-CWLP7wu3.mjs";
|
|
12
|
+
import { n as EventListingController } from "./EventListing.client-DBxC6xOU.mjs";
|
|
13
13
|
import { useEffect, useId, useMemo, useState } from "react";
|
|
14
14
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
15
15
|
//#region ../calendar/src/lane-packing.ts
|
|
@@ -1,8 +1,8 @@
|
|
|
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-Dcgsncxb.mjs";
|
|
2
|
+
import { n as EventCombinedIslandClient } from "./EventCombined.client-BdRjVbhH.mjs";
|
|
3
|
+
import { t as BlockApiProvider } from "./context-Bc8T6pCe.mjs";
|
|
4
4
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
5
|
-
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-
|
|
5
|
+
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-CWLP7wu3.mjs";
|
|
6
6
|
import "react";
|
|
7
7
|
import { jsx } from "react/jsx-runtime";
|
|
8
8
|
//#region src/rendering/islands/enhancers/eventCombined.tsx
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { l as formatTotalCapacity, n as formatEventPriceAmount, t as formatEventPrice } from "./pricing-
|
|
3
|
-
import { d as resolveEventLinkProps, r as formatEventDateParts } from "./dates-
|
|
1
|
+
import { Jt as CANCELLED_SESSION_STATUS, M as resolveEventRegistrationScopedEvents, Yt as resolveWholeSeriesBookingPhase, cn as toBookingTimeZone, dn as formatBookingPriceDisplay, hn as publicEventPricingDisplay, in as getBookingLocalDateKey, mn as publicEventPricingCurrency, pn as isPublicEventPricingOptionDisplayable, t as defineIslandPropsDecoder, un as toScheduledBookingDateTime, vn as publicEventPricingType, yn as formatCurrencyAmount } from "./propsDecoder-Dcgsncxb.mjs";
|
|
2
|
+
import { l as formatTotalCapacity, n as formatEventPriceAmount, t as formatEventPrice } from "./pricing-HHx3IgBz.mjs";
|
|
3
|
+
import { d as resolveEventLinkProps, r as formatEventDateParts } from "./dates-DUsCEzLb.mjs";
|
|
4
4
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
5
|
-
import { t as LeafletStaticMap } from "./LeafletStaticMap-
|
|
5
|
+
import { t as LeafletStaticMap } from "./LeafletStaticMap-mHEJKrTs.mjs";
|
|
6
6
|
import "react";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
//#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-Dcgsncxb.mjs";
|
|
2
|
+
import { t as BlockApiProvider } from "./context-Bc8T6pCe.mjs";
|
|
3
3
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
4
|
-
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-
|
|
5
|
-
import { t as EventListingClient } from "./EventListing.client-
|
|
4
|
+
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-CWLP7wu3.mjs";
|
|
5
|
+
import { t as EventListingClient } from "./EventListing.client-DBxC6xOU.mjs";
|
|
6
6
|
import "react";
|
|
7
7
|
import { jsx } from "react/jsx-runtime";
|
|
8
8
|
//#region src/rendering/islands/enhancers/eventListing.tsx
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { a as resolveBookingPaymentDueNowCents, i as buildBookingPaymentSelectionViewModel, n as StepIndicator$1, o as formatPrice, r as usePolling, t as BookingConsentAgreement } from "./BookingConsentAgreement-
|
|
3
|
-
import {
|
|
4
|
-
import { a as canJoinEventWaitlistOnAnyMode, c as formatTicketTypeRemaining, f as getRemainingPlaces, h as selectMostOpenCapacitySource, i as canJoinEventWaitlist, m as selectEventCapacitySource, o as formatEventRemainingPlaces, p as isEventFull, r as formatEventPriceDisplay, s as formatRemainingPlaces, u as getEventAvailability } from "./pricing-
|
|
5
|
-
import { n as useBlockApi, r as BlockApiError, t as BlockApiProvider } from "./context-
|
|
2
|
+
import { a as resolveBookingPaymentDueNowCents, i as buildBookingPaymentSelectionViewModel, n as StepIndicator$1, o as formatPrice, r as usePolling, t as BookingConsentAgreement } from "./BookingConsentAgreement-BQKL045f.mjs";
|
|
3
|
+
import { C as resolveDiscountContext, D as WIZARD_STEPS, E as toRegistrationRequestSubject, M as resolveEventRegistrationScopedEvents, O as getStepNumber, Qt as formatBookingDate, S as findPreSelectedEvent, T as resolveRegistrationTarget, Vt as assertNever, _ as buildEventRegistrationDisplayFromScopedEvents, _n as publicEventPricingStrategy, b as toWholeSeriesRegistrationEvents, bn as parseCurrencyCode, cn as toBookingTimeZone, en as formatBookingDateTime, ft as groupPublicEventsByRun, gn as publicEventPricingOptions, k as getWizardStepsForContext, mn as publicEventPricingCurrency, nn as formatBookingTime, t as defineIslandPropsDecoder, un as toScheduledBookingDateTime, v as getRegistrationStartAt, vn as publicEventPricingType, w as resolveEventRequiresPayment, x as findEventByOccurrenceId, y as toRegistrationEvents, yn as formatCurrencyAmount } from "./propsDecoder-Dcgsncxb.mjs";
|
|
4
|
+
import { a as canJoinEventWaitlistOnAnyMode, c as formatTicketTypeRemaining, f as getRemainingPlaces, h as selectMostOpenCapacitySource, i as canJoinEventWaitlist, m as selectEventCapacitySource, o as formatEventRemainingPlaces, p as isEventFull, r as formatEventPriceDisplay, s as formatRemainingPlaces, u as getEventAvailability } from "./pricing-HHx3IgBz.mjs";
|
|
5
|
+
import { n as useBlockApi, r as BlockApiError, t as BlockApiProvider } from "./context-Bc8T6pCe.mjs";
|
|
6
6
|
import { n as isSpamProtectionEnabled, r as AltchaWidget, t as getChallengeUrl } from "./src-B833rYRr.mjs";
|
|
7
|
-
import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-
|
|
8
|
-
import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-
|
|
9
|
-
import { i as SpinnerNode, t as ThemedButton } from "./ThemedButton-
|
|
7
|
+
import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-BNgaEUpo.mjs";
|
|
8
|
+
import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-CsOtjFY7.mjs";
|
|
9
|
+
import { i as SpinnerNode, t as ThemedButton } from "./ThemedButton-CE5KYT6z.mjs";
|
|
10
10
|
import { t as FeedbackMessage } from "./FeedbackMessage-CtLvvS_d.mjs";
|
|
11
11
|
import { n as getFieldValidationControlProps, t as FieldValidationMessage } from "./FieldValidationMessage-AYanWFb-.mjs";
|
|
12
12
|
import { t as buildCheckoutReturnUrls } from "./checkoutUrls-CW3-78uu.mjs";
|
|
13
|
+
import { t as CheckboxChoice } from "./CheckboxChoice--W2n6yKs.mjs";
|
|
13
14
|
import { t as createBodyThemePortalRoot } from "./themePortalRoot-AGs4cE7t.mjs";
|
|
14
15
|
import { n as consumeSearchParams } from "./urlParams-D71VXFGx.mjs";
|
|
15
16
|
import { t as CrossIcon } from "./CrossIcon-Dn1KRKW5.mjs";
|
|
16
17
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
17
|
-
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-
|
|
18
|
+
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-CWLP7wu3.mjs";
|
|
18
19
|
import { t as createLucideIcon } from "./createLucideIcon-PaLVMov4.mjs";
|
|
19
20
|
import { t as ModalShell } from "./ModalShell-CqkBvBIC.mjs";
|
|
20
21
|
import React, { useCallback, useEffect, useId, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore } from "react";
|
|
@@ -4550,26 +4551,24 @@ function EventConsentField({ consent, error, formData, idBase, onChange }) {
|
|
|
4550
4551
|
title: consent.title,
|
|
4551
4552
|
titleId: `${idBase}-consent-title`
|
|
4552
4553
|
}),
|
|
4553
|
-
/* @__PURE__ */
|
|
4554
|
-
|
|
4555
|
-
|
|
4556
|
-
|
|
4557
|
-
|
|
4558
|
-
|
|
4559
|
-
|
|
4560
|
-
|
|
4561
|
-
|
|
4562
|
-
consentAccepted: event.target.checked
|
|
4563
|
-
}),
|
|
4564
|
-
type: "checkbox"
|
|
4565
|
-
}),
|
|
4554
|
+
/* @__PURE__ */ jsx(CheckboxChoice, {
|
|
4555
|
+
"aria-describedby": error ? errorId : void 0,
|
|
4556
|
+
"aria-invalid": error ? true : void 0,
|
|
4557
|
+
checked: formData.consentAccepted === true,
|
|
4558
|
+
onChange: (event) => onChange({
|
|
4559
|
+
...formData,
|
|
4560
|
+
consentAccepted: event.target.checked
|
|
4561
|
+
}),
|
|
4562
|
+
label: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
4566
4563
|
consent.checkboxLabel,
|
|
4567
4564
|
" ",
|
|
4568
4565
|
/* @__PURE__ */ jsx("span", {
|
|
4569
4566
|
className: "er-required",
|
|
4570
4567
|
children: "*"
|
|
4571
4568
|
})
|
|
4572
|
-
]
|
|
4569
|
+
] }),
|
|
4570
|
+
presentation: "tile",
|
|
4571
|
+
className: "er-consent-check"
|
|
4573
4572
|
}),
|
|
4574
4573
|
error ? /* @__PURE__ */ jsx(FieldValidationMessage, {
|
|
4575
4574
|
id: errorId,
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { O as clsx } from "./colorStyles-CuJBiS-1.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import { n as useBlockApi, t as BlockApiProvider } from "./context-
|
|
3
|
+
import { Ut as err, Vt as assertNever, Wt as ok, t as defineIslandPropsDecoder } from "./propsDecoder-Dcgsncxb.mjs";
|
|
4
|
+
import { n as useBlockApi, t as BlockApiProvider } from "./context-Bc8T6pCe.mjs";
|
|
5
5
|
import { n as isSpamProtectionEnabled, r as AltchaWidget, t as getChallengeUrl } from "./src-B833rYRr.mjs";
|
|
6
|
-
import { t as ThemedButton } from "./ThemedButton-
|
|
6
|
+
import { t as ThemedButton } from "./ThemedButton-CE5KYT6z.mjs";
|
|
7
7
|
import { t as FeedbackMessage } from "./FeedbackMessage-CtLvvS_d.mjs";
|
|
8
|
+
import { t as CheckboxChoice } from "./CheckboxChoice--W2n6yKs.mjs";
|
|
8
9
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
9
10
|
import { useReducer, useRef, useState } from "react";
|
|
10
11
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -87,6 +88,136 @@ function useFormSubmission() {
|
|
|
87
88
|
};
|
|
88
89
|
}
|
|
89
90
|
//#endregion
|
|
91
|
+
//#region ../blocks/src/system/runtime/nodes/form.fields.tsx
|
|
92
|
+
function fieldBasics(field) {
|
|
93
|
+
return {
|
|
94
|
+
inputId: `f_${field.id}`,
|
|
95
|
+
label: String(field.label ?? field.id),
|
|
96
|
+
required: Boolean(field.required)
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function textInputType(type) {
|
|
100
|
+
return type === "email" || type === "url" || type === "tel" || type === "number" ? type : "text";
|
|
101
|
+
}
|
|
102
|
+
function textInputConstraints(field, inputType) {
|
|
103
|
+
if (inputType === "number") return {
|
|
104
|
+
...typeof field.min === "number" ? { min: field.min } : {},
|
|
105
|
+
...typeof field.max === "number" ? { max: field.max } : {}
|
|
106
|
+
};
|
|
107
|
+
return {
|
|
108
|
+
...typeof field.minLength === "number" ? { minLength: field.minLength } : {},
|
|
109
|
+
...typeof field.maxLength === "number" ? { maxLength: field.maxLength } : {},
|
|
110
|
+
...typeof field.pattern === "string" && field.pattern ? { pattern: field.pattern } : {}
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
function LabelledField({ basics, children }) {
|
|
114
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
115
|
+
className: "fb-field",
|
|
116
|
+
children: [/* @__PURE__ */ jsx("label", {
|
|
117
|
+
htmlFor: basics.inputId,
|
|
118
|
+
className: "form-label",
|
|
119
|
+
children: basics.label
|
|
120
|
+
}), children]
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
function TextareaField({ field }) {
|
|
124
|
+
const basics = fieldBasics(field);
|
|
125
|
+
return /* @__PURE__ */ jsx(LabelledField, {
|
|
126
|
+
basics,
|
|
127
|
+
children: /* @__PURE__ */ jsx("textarea", {
|
|
128
|
+
id: basics.inputId,
|
|
129
|
+
name: field.id,
|
|
130
|
+
required: basics.required,
|
|
131
|
+
placeholder: field.placeholder,
|
|
132
|
+
rows: field.rows,
|
|
133
|
+
className: "form-textarea"
|
|
134
|
+
})
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
function SelectField({ field }) {
|
|
138
|
+
const basics = fieldBasics(field);
|
|
139
|
+
const options = field.options ?? [];
|
|
140
|
+
const multiple = Boolean(field.multiple);
|
|
141
|
+
return /* @__PURE__ */ jsx(LabelledField, {
|
|
142
|
+
basics,
|
|
143
|
+
children: /* @__PURE__ */ jsxs("select", {
|
|
144
|
+
id: basics.inputId,
|
|
145
|
+
name: field.id,
|
|
146
|
+
multiple,
|
|
147
|
+
required: basics.required,
|
|
148
|
+
className: "form-select",
|
|
149
|
+
children: [!multiple && /* @__PURE__ */ jsx("option", {
|
|
150
|
+
value: "",
|
|
151
|
+
children: "Select…"
|
|
152
|
+
}), options.map((opt) => /* @__PURE__ */ jsx("option", {
|
|
153
|
+
value: opt.value,
|
|
154
|
+
children: opt.label
|
|
155
|
+
}, opt.value))]
|
|
156
|
+
})
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
function RadioField({ field }) {
|
|
160
|
+
const basics = fieldBasics(field);
|
|
161
|
+
const options = field.options ?? [];
|
|
162
|
+
return /* @__PURE__ */ jsxs("fieldset", {
|
|
163
|
+
className: "fb-fieldset",
|
|
164
|
+
children: [/* @__PURE__ */ jsx("legend", {
|
|
165
|
+
className: "form-label",
|
|
166
|
+
children: basics.label
|
|
167
|
+
}), options.map((opt) => /* @__PURE__ */ jsxs("label", {
|
|
168
|
+
className: "form-check",
|
|
169
|
+
children: [/* @__PURE__ */ jsx("input", {
|
|
170
|
+
type: "radio",
|
|
171
|
+
name: field.id,
|
|
172
|
+
value: opt.value,
|
|
173
|
+
required: basics.required,
|
|
174
|
+
className: "form-radio"
|
|
175
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
176
|
+
className: "form-check-label",
|
|
177
|
+
children: opt.label
|
|
178
|
+
})]
|
|
179
|
+
}, opt.value))]
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
function TextInputField({ field, type }) {
|
|
183
|
+
const basics = fieldBasics(field);
|
|
184
|
+
const inputType = textInputType(type);
|
|
185
|
+
return /* @__PURE__ */ jsx(LabelledField, {
|
|
186
|
+
basics,
|
|
187
|
+
children: /* @__PURE__ */ jsx("input", {
|
|
188
|
+
id: basics.inputId,
|
|
189
|
+
name: field.id,
|
|
190
|
+
type: inputType,
|
|
191
|
+
required: basics.required,
|
|
192
|
+
placeholder: field.placeholder,
|
|
193
|
+
...textInputConstraints(field, inputType),
|
|
194
|
+
className: "form-input"
|
|
195
|
+
})
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
function FormFieldControl({ field }) {
|
|
199
|
+
const type = String(field.type ?? "text");
|
|
200
|
+
switch (type) {
|
|
201
|
+
case "textarea": return /* @__PURE__ */ jsx(TextareaField, { field });
|
|
202
|
+
case "select": return /* @__PURE__ */ jsx(SelectField, { field });
|
|
203
|
+
case "radio": return /* @__PURE__ */ jsx(RadioField, { field });
|
|
204
|
+
case "checkbox":
|
|
205
|
+
case "consent": {
|
|
206
|
+
const basics = fieldBasics(field);
|
|
207
|
+
return /* @__PURE__ */ jsx(CheckboxChoice, {
|
|
208
|
+
name: field.id,
|
|
209
|
+
required: basics.required,
|
|
210
|
+
label: basics.label,
|
|
211
|
+
presentation: type === "consent" ? "tile" : "row"
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
default: return /* @__PURE__ */ jsx(TextInputField, {
|
|
215
|
+
field,
|
|
216
|
+
type
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
//#endregion
|
|
90
221
|
//#region ../blocks/src/system/runtime/nodes/form.client.tsx
|
|
91
222
|
const FormNodeClient = ({ render }) => {
|
|
92
223
|
const form = render.display.form;
|
|
@@ -100,107 +231,7 @@ const FormNodeClient = ({ render }) => {
|
|
|
100
231
|
children: "Missing or unknown form."
|
|
101
232
|
});
|
|
102
233
|
const groups = render.display.groups;
|
|
103
|
-
const renderField = (field) => {
|
|
104
|
-
const inputId = `f_${field.id}`;
|
|
105
|
-
const label = String(field.label ?? field.id);
|
|
106
|
-
const required = Boolean(field.required);
|
|
107
|
-
const type = String(field.type ?? "text");
|
|
108
|
-
if (type === "textarea") return /* @__PURE__ */ jsxs("div", {
|
|
109
|
-
className: "fb-field",
|
|
110
|
-
children: [/* @__PURE__ */ jsx("label", {
|
|
111
|
-
htmlFor: inputId,
|
|
112
|
-
className: "form-label",
|
|
113
|
-
children: label
|
|
114
|
-
}), /* @__PURE__ */ jsx("textarea", {
|
|
115
|
-
id: inputId,
|
|
116
|
-
name: field.id,
|
|
117
|
-
required,
|
|
118
|
-
placeholder: field.placeholder,
|
|
119
|
-
rows: field.rows,
|
|
120
|
-
className: "form-textarea"
|
|
121
|
-
})]
|
|
122
|
-
}, field.id);
|
|
123
|
-
if (type === "select") {
|
|
124
|
-
const options = field.options ?? [];
|
|
125
|
-
const multiple = Boolean(field.multiple);
|
|
126
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
127
|
-
className: "fb-field",
|
|
128
|
-
children: [/* @__PURE__ */ jsx("label", {
|
|
129
|
-
htmlFor: inputId,
|
|
130
|
-
className: "form-label",
|
|
131
|
-
children: label
|
|
132
|
-
}), /* @__PURE__ */ jsxs("select", {
|
|
133
|
-
id: inputId,
|
|
134
|
-
name: field.id,
|
|
135
|
-
multiple,
|
|
136
|
-
required,
|
|
137
|
-
className: "form-select",
|
|
138
|
-
children: [!multiple && /* @__PURE__ */ jsx("option", {
|
|
139
|
-
value: "",
|
|
140
|
-
children: "Select…"
|
|
141
|
-
}), options.map((opt) => /* @__PURE__ */ jsx("option", {
|
|
142
|
-
value: opt.value,
|
|
143
|
-
children: opt.label
|
|
144
|
-
}, opt.value))]
|
|
145
|
-
})]
|
|
146
|
-
}, field.id);
|
|
147
|
-
}
|
|
148
|
-
if (type === "radio") {
|
|
149
|
-
const options = field.options ?? [];
|
|
150
|
-
return /* @__PURE__ */ jsxs("fieldset", {
|
|
151
|
-
className: "fb-fieldset",
|
|
152
|
-
children: [/* @__PURE__ */ jsx("legend", {
|
|
153
|
-
className: "form-label",
|
|
154
|
-
children: label
|
|
155
|
-
}), options.map((opt) => /* @__PURE__ */ jsxs("label", {
|
|
156
|
-
className: "fb-inline form-label",
|
|
157
|
-
children: [/* @__PURE__ */ jsx("input", {
|
|
158
|
-
type: "radio",
|
|
159
|
-
name: field.id,
|
|
160
|
-
value: opt.value,
|
|
161
|
-
required,
|
|
162
|
-
className: "form-radio"
|
|
163
|
-
}), /* @__PURE__ */ jsx("span", { children: opt.label })]
|
|
164
|
-
}, opt.value))]
|
|
165
|
-
}, field.id);
|
|
166
|
-
}
|
|
167
|
-
if (type === "checkbox" || type === "consent") return /* @__PURE__ */ jsxs("label", {
|
|
168
|
-
className: "fb-inline form-label",
|
|
169
|
-
children: [/* @__PURE__ */ jsx("input", {
|
|
170
|
-
type: "checkbox",
|
|
171
|
-
name: field.id,
|
|
172
|
-
required,
|
|
173
|
-
className: "form-checkbox"
|
|
174
|
-
}), /* @__PURE__ */ jsx("span", { children: label })]
|
|
175
|
-
}, field.id);
|
|
176
|
-
const inputType = type === "email" || type === "url" || type === "tel" || type === "number" ? type : "text";
|
|
177
|
-
const extra = {};
|
|
178
|
-
if (inputType === "text" || inputType === "email" || inputType === "url" || inputType === "tel") {
|
|
179
|
-
if (typeof field.minLength === "number") extra.minLength = field.minLength;
|
|
180
|
-
if (typeof field.maxLength === "number") extra.maxLength = field.maxLength;
|
|
181
|
-
if (typeof field.pattern === "string" && field.pattern) extra.pattern = field.pattern;
|
|
182
|
-
}
|
|
183
|
-
if (inputType === "number") {
|
|
184
|
-
if (typeof field.min === "number") extra.min = field.min;
|
|
185
|
-
if (typeof field.max === "number") extra.max = field.max;
|
|
186
|
-
}
|
|
187
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
188
|
-
className: "fb-field",
|
|
189
|
-
children: [/* @__PURE__ */ jsx("label", {
|
|
190
|
-
htmlFor: inputId,
|
|
191
|
-
className: "form-label",
|
|
192
|
-
children: label
|
|
193
|
-
}), /* @__PURE__ */ jsx("input", {
|
|
194
|
-
id: inputId,
|
|
195
|
-
name: field.id,
|
|
196
|
-
type: inputType,
|
|
197
|
-
required,
|
|
198
|
-
placeholder: field.placeholder,
|
|
199
|
-
...extra,
|
|
200
|
-
className: "form-input"
|
|
201
|
-
})]
|
|
202
|
-
}, field.id);
|
|
203
|
-
};
|
|
234
|
+
const renderField = (field) => /* @__PURE__ */ jsx(FormFieldControl, { field }, field.id);
|
|
204
235
|
const handleSubmit = async (e) => {
|
|
205
236
|
e.preventDefault();
|
|
206
237
|
const formData = new FormData(e.currentTarget);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import { n as ThemedButtonLink, t as ThemedButton } from "./ThemedButton-
|
|
2
|
+
import { j as staticHeaderChromeRuntime, r as buildCartDisplay, t as defineIslandPropsDecoder } from "./propsDecoder-Dcgsncxb.mjs";
|
|
3
|
+
import { n as ThemedButtonLink, t as ThemedButton } from "./ThemedButton-CE5KYT6z.mjs";
|
|
4
4
|
import { t as resolveDedicatedCheckoutPath } from "./checkoutRoute-ClwHwYVA.mjs";
|
|
5
|
-
import { n as useCommerceCart } from "./shop-commerce-store-
|
|
5
|
+
import { n as useCommerceCart } from "./shop-commerce-store-DtSfkKuX.mjs";
|
|
6
6
|
import { t as ModalShell } from "./ModalShell-CqkBvBIC.mjs";
|
|
7
7
|
import * as React$1 from "react";
|
|
8
8
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|