@riverbankcms/sdk 0.84.0 → 0.84.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{PreviewEditorSidebar-HML67UDA.mjs → PreviewEditorSidebar-4PH35ZIE.mjs} +3 -3
- package/dist/{PreviewEditorUI-I4BQUU6K.mjs → PreviewEditorUI-WHMCRJGM.mjs} +11 -6
- package/dist/SdkPreviewModeRuntime-4FGSVUYI.mjs +8 -0
- package/dist/_dts/api/src/bookingConfig.d.ts +2 -0
- package/dist/_dts/api/src/index.d.ts +2 -2
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +2 -1
- package/dist/_dts/api/src/sdk-event-payment-terms.d.ts +16 -0
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +11 -2
- package/dist/_dts/api/src/sdkContracts.d.ts +3 -0
- package/dist/_dts/api/src/types.d.ts +1 -0
- package/dist/_dts/api/src/url.d.ts +12 -4
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
- package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -6
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizard.d.ts +0 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/constants.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +275 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.override.d.ts +10 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +22 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.state.d.ts +3 -303
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +9 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +8 -6
- package/dist/_dts/content-editor/src/hooks/useSimpleAutosave.d.ts +8 -0
- package/dist/_dts/editor-blocks/src/BlockForm.d.ts +6 -4
- package/dist/_dts/preview-next/src/client/preview/MaintenanceModeBadge.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorUI.d.ts +2 -1
- package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
- package/dist/_dts/sdk/src/client/management/types.d.ts +6 -0
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/{chunk-LBBPD2IW.mjs → chunk-4QNLOTES.mjs} +11 -16
- package/dist/{chunk-5E33VO6J.mjs → chunk-NFWGLRZZ.mjs} +1 -70
- package/dist/{chunk-HFMGVJCE.mjs → chunk-OCGTXHSO.mjs} +8 -7
- package/dist/{chunk-3LXFQS7T.mjs → chunk-PYDHOMEO.mjs} +1 -1
- package/dist/{chunk-6X2OVO3S.mjs → chunk-WFPYN7KA.mjs} +2 -2
- package/dist/{chunk-MSHZO4SL.mjs → chunk-ZR2GQK2A.mjs} +274 -223
- package/dist/cli/index.mjs +332 -45
- package/dist/cli/init-docs/content/agents-section.md +5 -0
- package/dist/cli/init-docs/content/cli-reference.md +13 -0
- package/dist/cli/init-docs/content/content-management.md +31 -0
- package/dist/cli/init-docs/content/getting-started.md +12 -0
- package/dist/cli/init-docs/content/workflow-add-block.md +3 -1
- package/dist/cli/init-docs/content/workflow-agent-safe-sync.md +81 -0
- package/dist/cli/init-docs/content/workflow-create-page.md +13 -3
- package/dist/cli/init-docs/content/workflow-custom-block.md +9 -0
- package/dist/cli/init-docs/content/workflow-templates.md +14 -0
- package/dist/client/{accordion-ESY65T56.mjs → accordion-2UZPBMYM.mjs} +1 -1
- package/dist/client/{bookingForm-JRFNZUHD.mjs → bookingForm-36CWQUMV.mjs} +4 -4
- package/dist/client/bookings.mjs +156 -138
- package/dist/client/{carousel-CPR5VWIP.mjs → carousel-QH77HR6X.mjs} +2 -2
- package/dist/client/{cart-ZUX5BA7O.mjs → cart-X4YK4FTW.mjs} +5 -5
- package/dist/client/{checkout-RULGBADZ.mjs → checkout-OM2BEPWD.mjs} +5 -5
- package/dist/client/{chunk-RDJFCPY3.mjs → chunk-3C2VTPWI.mjs} +34 -117
- package/dist/client/{chunk-BT6AEIKN.mjs → chunk-3DTWLTXM.mjs} +1 -1
- package/dist/client/{chunk-JWEYB4V6.mjs → chunk-4OXKTA3D.mjs} +1 -1
- package/dist/client/{chunk-URQCZD5W.mjs → chunk-52CGCQ7B.mjs} +4 -4
- package/dist/client/{chunk-52I7BGEK.mjs → chunk-7UCLJ5SP.mjs} +1 -1
- package/dist/client/{chunk-Z5OBQ5I4.mjs → chunk-F5VRX5Y6.mjs} +1 -1
- package/dist/client/{chunk-GFSQNTRW.mjs → chunk-SDIYSQAY.mjs} +0 -4
- package/dist/client/{chunk-HXPWP5EN.mjs → chunk-VGDBVNOO.mjs} +175 -14
- package/dist/client/{chunk-5ZEAZ33K.mjs → chunk-ZKUO52W3.mjs} +1 -1
- package/dist/client/client.mjs +348 -232
- package/dist/client/{courseRegistration-QTUDC35T.mjs → courseRegistration-TMKU6ABO.mjs} +4 -4
- package/dist/client/{eventCalendar-Q7NS4XLD.mjs → eventCalendar-G6TI32X6.mjs} +6 -6
- package/dist/client/{eventCombined-QAO7VUO5.mjs → eventCombined-SCKEMNAR.mjs} +6 -6
- package/dist/client/{eventDetails-WTNNU6Q3.mjs → eventDetails-XPIFXXPK.mjs} +6 -6
- package/dist/client/{eventListing-5TA2ELDT.mjs → eventListing-7QFMEMGT.mjs} +6 -6
- package/dist/client/{eventRegistration-M6USZGRF.mjs → eventRegistration-TOODSZUI.mjs} +6 -6
- package/dist/client/{form-DGVGXLMH.mjs → form-MTCMVCZT.mjs} +2 -2
- package/dist/client/{headerSection-O2AGMPCU.mjs → headerSection-Y5TMR3TW.mjs} +2 -2
- package/dist/client/hooks.mjs +315 -35
- package/dist/client/{locationMap-EJRNRIKJ.mjs → locationMap-RH2LG7FZ.mjs} +1 -1
- package/dist/client/{newsletterForm-7NTC2DTR.mjs → newsletterForm-PCAIPFMA.mjs} +2 -2
- package/dist/client/{productDetail-HH4LP53D.mjs → productDetail-OIGDR4YE.mjs} +5 -5
- package/dist/client/{productList-YVHYM2AF.mjs → productList-4MA5S2CX.mjs} +5 -5
- package/dist/client/rendering/client.mjs +312 -195
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +312 -195
- package/dist/client/{shop-UIFX7XRK.mjs → shop-WXSYV5QO.mjs} +5 -5
- package/dist/client/spam-protection.mjs +0 -4
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/{sdk-runtime-ZENAOYMN.mjs → sdk-runtime-QLOCYKVU.mjs} +6 -6
- package/dist/server/components.mjs +188 -61
- package/dist/server/config-validation.mjs +313 -33
- package/dist/server/config.mjs +313 -33
- package/dist/server/data.mjs +315 -35
- package/dist/server/index.mjs +10 -11
- package/dist/server/next.mjs +198 -72
- package/dist/server/page-converter.mjs +315 -35
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +188 -61
- package/dist/server/rendering.mjs +188 -61
- package/dist/server/routing.mjs +334 -34
- package/dist/server/server.mjs +331 -52
- package/package.json +1 -1
- package/dist/SdkPreviewModeRuntime-MCKMVDTK.mjs +0 -8
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { LeafletStaticMap } from './chunk-XSV6KW4D.mjs';
|
|
3
|
-
import { MagicLinkForm, useWaitlistClaim } from './chunk-
|
|
4
|
-
import { usePolling } from './chunk-
|
|
3
|
+
import { MagicLinkForm, useWaitlistClaim } from './chunk-3DTWLTXM.mjs';
|
|
4
|
+
import { usePolling } from './chunk-ZKUO52W3.mjs';
|
|
5
5
|
import { SpinnerNode } from './chunk-SYIJ5JO2.mjs';
|
|
6
6
|
import { useDiscountCodeUi } from './chunk-ZFHRN6W2.mjs';
|
|
7
|
-
import { createBodyThemePortalRoot, TabBarFragment, logoutPortal, StepIndicator, DiscountCodeDisclosure, TerminalPanel, StateIcon, formatPrice, CrossIcon, ClockIcon, consumeSearchParam, LoggedInAsUser, CheckIcon } from './chunk-
|
|
7
|
+
import { createBodyThemePortalRoot, TabBarFragment, logoutPortal, StepIndicator, DiscountCodeDisclosure, TerminalPanel, StateIcon, formatPrice, CrossIcon, ClockIcon, consumeSearchParam, LoggedInAsUser, CheckIcon } from './chunk-7UCLJ5SP.mjs';
|
|
8
8
|
import { getFieldValidationControlProps, FieldValidationMessage } from './chunk-3DCJ45Z2.mjs';
|
|
9
9
|
import { ModalShell } from './chunk-DVNUDUVT.mjs';
|
|
10
|
-
import { isSpamProtectionEnabled, AltchaWidget, getChallengeUrl } from './chunk-
|
|
10
|
+
import { isSpamProtectionEnabled, AltchaWidget, getChallengeUrl } from './chunk-SDIYSQAY.mjs';
|
|
11
11
|
import { useBlockApi, FeedbackMessage } from './chunk-UDNSI5PY.mjs';
|
|
12
|
-
import { buildEventRuntimeFilters, buildEventCalendarListingRender, groupEventsByDate, getOrderedDayNames, formatDateKey, getEventRuntimeFiltersKey, themeButtonClassName, normalizeCsvIds, normalizeOptionalId, normalizeEventBlockKind, normalizeCsvString, EventCompactRow, EmptyState, getContainerClass, getCardOrientation, isToday, MAX_EVENTS_PER_DAY, formatTime, resolveCoursePricingState, resolveRuntimeEventPricing, formatEventPrice, formatEventDateParts, DateTimeTile, EventCard, buildCalendarViewport, shiftCalendarAnchorDate, addMonths, getThreeMonthRange, buildTimetableModel, formatDate, isEventContentType, formatCoursePriceAmount, formatCoursePriceDisplay, MONTH_NAMES, getEventAvailability, formatEventTeacherLine, CreditCard, Ticket, Star, Sparkles, assertNever11 } from './chunk-
|
|
12
|
+
import { buildEventRuntimeFilters, buildEventCalendarListingRender, groupEventsByDate, getOrderedDayNames, formatDateKey, getEventRuntimeFiltersKey, themeButtonClassName, normalizeCsvIds, normalizeOptionalId, normalizeEventBlockKind, normalizeCsvString, EventCompactRow, EmptyState, getContainerClass, getCardOrientation, isToday, MAX_EVENTS_PER_DAY, formatTime, WIZARD_STEPS, getWizardStepsForContext, getStepNumber, resolveCoursePricingState, resolveRuntimeEventPricing, formatEventPrice, formatEventDateParts, DateTimeTile, EventCard, buildCalendarViewport, shiftCalendarAnchorDate, addMonths, getThreeMonthRange, buildTimetableModel, formatDate, toRegistrationEvents, isEventContentType, findPreSelectedEvent, resolveRegistrationTarget, findEventByOccurrenceId, resolveEventRequiresPayment, resolveDiscountContext, formatCoursePriceAmount, formatCoursePriceDisplay, MONTH_NAMES, getEventAvailability, formatEventTeacherLine, CreditCard, Ticket, Star, Sparkles, assertNever11 } from './chunk-VGDBVNOO.mjs';
|
|
13
13
|
import { publicEventPricingType, getBookingLocalDateKey, toScheduledBookingDateTime, toBookingTimeZone, publicEventPricingCurrency, formatBookingDateTime, publicEventPricingMode, publicEventScalarPrice, publicEventTicketTypes, formatBookingDate, formatBookingTime } from './chunk-ZE5G642V.mjs';
|
|
14
14
|
import React9, { createContext, useId, useMemo, useState, useRef, useEffect, useCallback, useContext, useReducer } from 'react';
|
|
15
15
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -18,25 +18,6 @@ function StepIndicator2(props) {
|
|
|
18
18
|
return /* @__PURE__ */ jsx(StepIndicator, { ...props, classPrefix: "er" });
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
// ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
|
|
22
|
-
var WIZARD_STEPS = [
|
|
23
|
-
"select-event",
|
|
24
|
-
"select-tickets",
|
|
25
|
-
"enter-details",
|
|
26
|
-
"select-payment"
|
|
27
|
-
];
|
|
28
|
-
function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
|
|
29
|
-
const baseSteps = hasPreSelectedContext ? ["select-tickets", "enter-details"] : ["select-event", "select-tickets", "enter-details"];
|
|
30
|
-
if (!needsPaymentStep) {
|
|
31
|
-
return baseSteps;
|
|
32
|
-
}
|
|
33
|
-
return [...baseSteps, "select-payment"];
|
|
34
|
-
}
|
|
35
|
-
function getStepNumber(step, wizardSteps) {
|
|
36
|
-
const index = wizardSteps.indexOf(step);
|
|
37
|
-
return index >= 0 ? index + 1 : 1;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
21
|
// ../blocks/src/system/runtime/nodes/event-registration/registrationStateMachine.ts
|
|
41
22
|
function createInitialRegistrationFlowState(hasPreSelectedContext) {
|
|
42
23
|
return {
|
|
@@ -190,8 +171,10 @@ function requiresPaymentStep(params) {
|
|
|
190
171
|
return !isEntitlementSelection(params.paymentSelection);
|
|
191
172
|
}
|
|
192
173
|
|
|
193
|
-
// ../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.
|
|
174
|
+
// ../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.ts
|
|
194
175
|
var DEFAULT_EVENT_REGISTRATION_MAX_TICKETS = 5;
|
|
176
|
+
|
|
177
|
+
// ../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.ts
|
|
195
178
|
function getRegistrableStatuses(isPreview) {
|
|
196
179
|
return isPreview ? ["active", "draft"] : ["active"];
|
|
197
180
|
}
|
|
@@ -1485,7 +1468,7 @@ var PaymentSelectionStep = ({
|
|
|
1485
1468
|
label: "Pay by Card",
|
|
1486
1469
|
detail: formatPrice(totalPrice, eligibility.currency),
|
|
1487
1470
|
selected: selectedMethod === "stripe",
|
|
1488
|
-
onClick: () => onSelectionChange({ method: "stripe" })
|
|
1471
|
+
onClick: () => onSelectionChange({ method: "stripe", collectionOptionKind: "upfront" })
|
|
1489
1472
|
}
|
|
1490
1473
|
),
|
|
1491
1474
|
isAuthenticated && eligibility.eligiblePasses.map((pass) => /* @__PURE__ */ jsx(
|
|
@@ -2161,6 +2144,7 @@ function useEventRegistrationSubmit(options) {
|
|
|
2161
2144
|
checkoutType,
|
|
2162
2145
|
productId: bundleProductId,
|
|
2163
2146
|
discountCode: options.discountCode.trim() ? options.discountCode.trim() : void 0,
|
|
2147
|
+
collectionOptionKind: selectionSnapshot.collectionOptionKind,
|
|
2164
2148
|
successUrl,
|
|
2165
2149
|
cancelUrl
|
|
2166
2150
|
});
|
|
@@ -2230,89 +2214,6 @@ function useEventRegistrationSubmit(options) {
|
|
|
2230
2214
|
};
|
|
2231
2215
|
}
|
|
2232
2216
|
|
|
2233
|
-
// ../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts
|
|
2234
|
-
function eventMatchesOccurrenceId(event, occurrenceId) {
|
|
2235
|
-
return event.registrationOccurrenceId === occurrenceId || event.publicEventId === occurrenceId;
|
|
2236
|
-
}
|
|
2237
|
-
function findEventByOccurrenceId(events, occurrenceId) {
|
|
2238
|
-
return events.find((event) => eventMatchesOccurrenceId(event, occurrenceId)) ?? null;
|
|
2239
|
-
}
|
|
2240
|
-
function findPreSelectedEvent(input) {
|
|
2241
|
-
const occurrenceContext = input.occurrenceContext;
|
|
2242
|
-
if (!occurrenceContext) {
|
|
2243
|
-
return null;
|
|
2244
|
-
}
|
|
2245
|
-
const contextDate = getBookingLocalDateKey(toScheduledBookingDateTime({
|
|
2246
|
-
startsAt: occurrenceContext.startsAt,
|
|
2247
|
-
timeZone: occurrenceContext.timeZone
|
|
2248
|
-
}));
|
|
2249
|
-
return input.scopedEvents.find(
|
|
2250
|
-
(event) => eventMatchesOccurrenceId(event, occurrenceContext.id) || getBookingLocalDateKey(toScheduledBookingDateTime({
|
|
2251
|
-
startsAt: event.startsAt,
|
|
2252
|
-
timeZone: event.timeZone
|
|
2253
|
-
})) === contextDate
|
|
2254
|
-
) ?? null;
|
|
2255
|
-
}
|
|
2256
|
-
function resolveRegistrationTarget(input) {
|
|
2257
|
-
const occurrenceId = input.occurrenceContext?.id ?? input.selectedEvent?.registrationOccurrenceId ?? null;
|
|
2258
|
-
if (!occurrenceId) {
|
|
2259
|
-
return null;
|
|
2260
|
-
}
|
|
2261
|
-
return {
|
|
2262
|
-
occurrenceId,
|
|
2263
|
-
selectedEventId: input.selectedEvent?.publicEventId ?? null
|
|
2264
|
-
};
|
|
2265
|
-
}
|
|
2266
|
-
function resolveEventRequiresPayment(input) {
|
|
2267
|
-
if (input.eligibility) {
|
|
2268
|
-
return input.eligibility.requiresPayment;
|
|
2269
|
-
}
|
|
2270
|
-
if (input.selectedTicketType) {
|
|
2271
|
-
return input.selectedTicketType.priceAmount > 0;
|
|
2272
|
-
}
|
|
2273
|
-
if (!input.event) {
|
|
2274
|
-
return false;
|
|
2275
|
-
}
|
|
2276
|
-
return publicEventPricingType(resolveRuntimeEventPricing(input.event)) !== "free";
|
|
2277
|
-
}
|
|
2278
|
-
function resolveDiscountContext(input) {
|
|
2279
|
-
const selection = input.paymentSelection.method ? input.paymentSelection : null;
|
|
2280
|
-
if (!input.event) {
|
|
2281
|
-
return null;
|
|
2282
|
-
}
|
|
2283
|
-
if (selection?.method === "pass_bundle" && selection.bundlePassId) {
|
|
2284
|
-
return { type: "pass", passId: selection.bundlePassId };
|
|
2285
|
-
}
|
|
2286
|
-
if (selection?.method === "membership_bundle" && selection.bundleMembershipId) {
|
|
2287
|
-
return { type: "membership", membershipId: selection.bundleMembershipId };
|
|
2288
|
-
}
|
|
2289
|
-
if (!input.eventRequiresPayment) {
|
|
2290
|
-
return null;
|
|
2291
|
-
}
|
|
2292
|
-
if (selection?.method && selection.method !== "stripe") {
|
|
2293
|
-
return null;
|
|
2294
|
-
}
|
|
2295
|
-
return {
|
|
2296
|
-
type: "event",
|
|
2297
|
-
eventSeriesId: input.event.seriesId,
|
|
2298
|
-
eventCategoryId: input.event.eventCategory?.id ?? null,
|
|
2299
|
-
ticketsCount: input.ticketsCount
|
|
2300
|
-
};
|
|
2301
|
-
}
|
|
2302
|
-
|
|
2303
|
-
// ../blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.ts
|
|
2304
|
-
function toRegistrationEvent(event) {
|
|
2305
|
-
return {
|
|
2306
|
-
...event,
|
|
2307
|
-
pricing: resolveRuntimeEventPricing(event),
|
|
2308
|
-
publicEventId: event.id,
|
|
2309
|
-
registrationOccurrenceId: event.occurrenceId
|
|
2310
|
-
};
|
|
2311
|
-
}
|
|
2312
|
-
function toRegistrationEvents(events) {
|
|
2313
|
-
return events.map(toRegistrationEvent);
|
|
2314
|
-
}
|
|
2315
|
-
|
|
2316
2217
|
// ../blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.ts
|
|
2317
2218
|
function useEventRegistrationWizard(options) {
|
|
2318
2219
|
const api = useBlockApi();
|
|
@@ -2606,23 +2507,29 @@ function useEventRegistrationWizard(options) {
|
|
|
2606
2507
|
);
|
|
2607
2508
|
const handleDetailsComplete = async () => {
|
|
2608
2509
|
if (ticketTypeSelectionRequired && !hasValidSelectedTicketType) {
|
|
2609
|
-
|
|
2510
|
+
const message = "Select a ticket type to continue.";
|
|
2511
|
+
setErrorMessage(message);
|
|
2610
2512
|
setStep("error");
|
|
2611
|
-
return;
|
|
2513
|
+
return { ok: false, reason: "blocked", message };
|
|
2612
2514
|
}
|
|
2613
2515
|
if (!validateForm()) {
|
|
2614
2516
|
setGuestSectionShake(true);
|
|
2615
|
-
return
|
|
2517
|
+
return {
|
|
2518
|
+
ok: false,
|
|
2519
|
+
reason: "validation-failed",
|
|
2520
|
+
message: "Check the highlighted fields and try again."
|
|
2521
|
+
};
|
|
2616
2522
|
}
|
|
2617
2523
|
if (waitlistClaim.claim === null && eligibility?.isFull && !eligibility.canJoinWaitlist) {
|
|
2618
|
-
|
|
2524
|
+
const message = "This event is sold out.";
|
|
2525
|
+
setErrorMessage(message);
|
|
2619
2526
|
setStep("error");
|
|
2620
|
-
return;
|
|
2527
|
+
return { ok: false, reason: "blocked", message };
|
|
2621
2528
|
}
|
|
2622
2529
|
const shouldCollectPayment = !eligibility?.canJoinWaitlist && requiresPaymentStep({ eventRequiresPayment, paymentSelection });
|
|
2623
2530
|
if (shouldCollectPayment) {
|
|
2624
2531
|
setStep("select-payment");
|
|
2625
|
-
return;
|
|
2532
|
+
return { ok: true, outcome: "payment-step" };
|
|
2626
2533
|
}
|
|
2627
2534
|
const submitPlan = resolveEventRegistrationSubmitPlan({
|
|
2628
2535
|
paymentSelection,
|
|
@@ -2632,14 +2539,22 @@ function useEventRegistrationWizard(options) {
|
|
|
2632
2539
|
if (!submitPlan.ok) {
|
|
2633
2540
|
setErrorMessage(submitPlan.message);
|
|
2634
2541
|
setStep("error");
|
|
2635
|
-
return;
|
|
2542
|
+
return { ok: false, reason: "blocked", message: submitPlan.message };
|
|
2636
2543
|
}
|
|
2637
|
-
await handleSubmit(
|
|
2544
|
+
const submitResult = await handleSubmit(
|
|
2638
2545
|
submitPlan.args.method,
|
|
2639
2546
|
submitPlan.args.passId,
|
|
2640
2547
|
submitPlan.args.membershipId,
|
|
2641
2548
|
submitPlan.args.selection
|
|
2642
2549
|
);
|
|
2550
|
+
if (!submitResult.ok) {
|
|
2551
|
+
return {
|
|
2552
|
+
ok: false,
|
|
2553
|
+
reason: submitResult.reason === "submission-failed" ? "submission-failed" : "blocked",
|
|
2554
|
+
message: submitResult.message
|
|
2555
|
+
};
|
|
2556
|
+
}
|
|
2557
|
+
return { ok: true, outcome: "submitted" };
|
|
2643
2558
|
};
|
|
2644
2559
|
const handlePaymentSelect = async () => {
|
|
2645
2560
|
const submitPlan = resolveEventRegistrationSubmitPlan({
|
|
@@ -2808,6 +2723,8 @@ function useEventRegistrationWizard(options) {
|
|
|
2808
2723
|
handleRetry
|
|
2809
2724
|
};
|
|
2810
2725
|
}
|
|
2726
|
+
|
|
2727
|
+
// ../blocks/src/system/runtime/nodes/event-registration/constants.ts
|
|
2811
2728
|
var EVENT_REGISTRATION_ANCHOR_ID = "event-registration";
|
|
2812
2729
|
var EVENT_PORTAL_AUTH_COPY = {
|
|
2813
2730
|
membership: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useBlockApi, BlockApiError } from './chunk-UDNSI5PY.mjs';
|
|
3
|
-
import { themeButtonClassName } from './chunk-
|
|
3
|
+
import { themeButtonClassName } from './chunk-VGDBVNOO.mjs';
|
|
4
4
|
import { useState, useSyncExternalStore, useEffect } from 'react';
|
|
5
5
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
6
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { ChevronLeft, ChevronRight } from './chunk-
|
|
2
|
+
import { ChevronLeft, ChevronRight } from './chunk-VGDBVNOO.mjs';
|
|
3
3
|
import { clsx_default } from './chunk-ZE5G642V.mjs';
|
|
4
4
|
import React, { useRef, useState, useCallback, useEffect } from 'react';
|
|
5
5
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { addPassToCommerceCart, useCommerceCart } from './chunk-
|
|
3
|
-
import { CarouselNodeClient } from './chunk-
|
|
2
|
+
import { addPassToCommerceCart, useCommerceCart } from './chunk-F5VRX5Y6.mjs';
|
|
3
|
+
import { CarouselNodeClient } from './chunk-4OXKTA3D.mjs';
|
|
4
4
|
import { isRecord } from './chunk-I2MMZO53.mjs';
|
|
5
5
|
import { useDiscountCodeUi } from './chunk-ZFHRN6W2.mjs';
|
|
6
6
|
import { buildRouteIslandApiConfig } from './chunk-L4J5Y62O.mjs';
|
|
7
|
-
import { createBodyThemePortalRoot, consumeSearchParams, scrollToBlock, TerminalPanel, StateIcon, CheckIcon, CrossIcon, ActionRow, DiscountCodeDisclosure, consumeSearchParam, buildCheckoutReturnUrls } from './chunk-
|
|
7
|
+
import { createBodyThemePortalRoot, consumeSearchParams, scrollToBlock, TerminalPanel, StateIcon, CheckIcon, CrossIcon, ActionRow, DiscountCodeDisclosure, consumeSearchParam, buildCheckoutReturnUrls } from './chunk-7UCLJ5SP.mjs';
|
|
8
8
|
import { ModalShell, resolveDedicatedCheckoutPath } from './chunk-DVNUDUVT.mjs';
|
|
9
9
|
import { useBlockApi, FeedbackMessage, BlockApiProvider } from './chunk-UDNSI5PY.mjs';
|
|
10
10
|
import { mountReactIsland } from './chunk-N7PBWBWQ.mjs';
|
|
11
|
-
import { themeButtonClassName, formatCommercePrice, formatInterval, getShopDisplayForItems, deriveCommerceCheckoutState, buildProductDetailDisplay, productItemKey, buildProductCartItem, buildProductCardDisplay, assertNever11, reportWorkflowError, clearWorkflowFeedback } from './chunk-
|
|
11
|
+
import { themeButtonClassName, formatCommercePrice, formatInterval, getShopDisplayForItems, deriveCommerceCheckoutState, buildProductDetailDisplay, productItemKey, buildProductCartItem, buildProductCardDisplay, assertNever11, reportWorkflowError, clearWorkflowFeedback } from './chunk-VGDBVNOO.mjs';
|
|
12
12
|
import { assertNever, ok, err, getCurrentResolveImageUrlContext, resolveImageUrlWithContext, ImagePresets } from './chunk-ZE5G642V.mjs';
|
|
13
13
|
import * as React3 from 'react';
|
|
14
14
|
import React3__default, { useState, useRef, useCallback, useEffect } from 'react';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FeedbackMessage } from './chunk-UDNSI5PY.mjs';
|
|
2
|
-
import { themeButtonClassName } from './chunk-
|
|
2
|
+
import { themeButtonClassName } from './chunk-VGDBVNOO.mjs';
|
|
3
3
|
import { clsx_default } from './chunk-ZE5G642V.mjs';
|
|
4
4
|
import { useId } from 'react';
|
|
5
5
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EMPTY_COMMERCE_CART_STATE, parseStoredCommerceCartState, reduceCommerceCart, buildPassCartItem } from './chunk-
|
|
1
|
+
import { EMPTY_COMMERCE_CART_STATE, parseStoredCommerceCartState, reduceCommerceCart, buildPassCartItem } from './chunk-VGDBVNOO.mjs';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
|
|
4
4
|
var EMPTY_STATE = EMPTY_COMMERCE_CART_STATE;
|
|
@@ -71,10 +71,6 @@ function getCmsApiUrl() {
|
|
|
71
71
|
if (dashboardUrl) {
|
|
72
72
|
return `${dashboardUrl.replace(/\/$/, "")}/api`;
|
|
73
73
|
}
|
|
74
|
-
const legacyApiUrl = process.env.NEXT_PUBLIC_CMS_API_URL;
|
|
75
|
-
if (legacyApiUrl) {
|
|
76
|
-
return legacyApiUrl.replace(/\/$/, "");
|
|
77
|
-
}
|
|
78
74
|
throw new Error("Dashboard URL not configured. Set NEXT_PUBLIC_DASHBOARD_URL");
|
|
79
75
|
}
|
|
80
76
|
function getChallengeUrl() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { parseAspectRatioValue, parseColorTokenParts, toBookingTimeZone, resolvePlanningDateInput, formatBookingDate, toScheduledBookingDateTime, formatBookingTime, toScheduledBookingDateRange, formatBookingDateParts, publicEventPricingDisplay, ImagePresets, getCurrentResolveImageUrlContext, renderVideo, renderAudio, resolveMediaNodeResponsiveImage, MediaPlaceholder, computeMediaTransformStyle, rgbColorValue } from './chunk-ZE5G642V.mjs';
|
|
2
|
+
import { parseAspectRatioValue, parseColorTokenParts, toBookingTimeZone, resolvePlanningDateInput, formatBookingDate, toScheduledBookingDateTime, formatBookingTime, toScheduledBookingDateRange, formatBookingDateParts, publicEventPricingDisplay, ImagePresets, getBookingLocalDateKey, publicEventPricingType, getCurrentResolveImageUrlContext, renderVideo, renderAudio, resolveMediaNodeResponsiveImage, MediaPlaceholder, computeMediaTransformStyle, rgbColorValue } from './chunk-ZE5G642V.mjs';
|
|
3
3
|
import z2, { z } from 'zod';
|
|
4
4
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
5
5
|
import { createContext, forwardRef, useContext, createElement } from 'react';
|
|
@@ -7115,12 +7115,112 @@ var eventCombinedInteractiveIslandPropsCodec = createInteractiveIslandCodec({
|
|
|
7115
7115
|
stage: value.stage
|
|
7116
7116
|
})
|
|
7117
7117
|
});
|
|
7118
|
+
|
|
7119
|
+
// ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
|
|
7120
|
+
var WIZARD_STEPS = [
|
|
7121
|
+
"select-event",
|
|
7122
|
+
"select-tickets",
|
|
7123
|
+
"enter-details",
|
|
7124
|
+
"select-payment"
|
|
7125
|
+
];
|
|
7126
|
+
function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
|
|
7127
|
+
const baseSteps = hasPreSelectedContext ? ["select-tickets", "enter-details"] : ["select-event", "select-tickets", "enter-details"];
|
|
7128
|
+
if (!needsPaymentStep) {
|
|
7129
|
+
return baseSteps;
|
|
7130
|
+
}
|
|
7131
|
+
return [...baseSteps, "select-payment"];
|
|
7132
|
+
}
|
|
7133
|
+
function getStepNumber(step, wizardSteps) {
|
|
7134
|
+
const index = wizardSteps.indexOf(step);
|
|
7135
|
+
return index >= 0 ? index + 1 : 1;
|
|
7136
|
+
}
|
|
7137
|
+
|
|
7138
|
+
// ../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts
|
|
7139
|
+
function eventMatchesOccurrenceId(event, occurrenceId) {
|
|
7140
|
+
return event.registrationOccurrenceId === occurrenceId || event.publicEventId === occurrenceId;
|
|
7141
|
+
}
|
|
7142
|
+
function findEventByOccurrenceId(events, occurrenceId) {
|
|
7143
|
+
return events.find((event) => eventMatchesOccurrenceId(event, occurrenceId)) ?? null;
|
|
7144
|
+
}
|
|
7145
|
+
function findPreSelectedEvent(input) {
|
|
7146
|
+
const occurrenceContext = input.occurrenceContext;
|
|
7147
|
+
if (!occurrenceContext) {
|
|
7148
|
+
return null;
|
|
7149
|
+
}
|
|
7150
|
+
const contextDate = getBookingLocalDateKey(toScheduledBookingDateTime({
|
|
7151
|
+
startsAt: occurrenceContext.startsAt,
|
|
7152
|
+
timeZone: occurrenceContext.timeZone
|
|
7153
|
+
}));
|
|
7154
|
+
return input.scopedEvents.find(
|
|
7155
|
+
(event) => eventMatchesOccurrenceId(event, occurrenceContext.id) || getBookingLocalDateKey(toScheduledBookingDateTime({
|
|
7156
|
+
startsAt: event.startsAt,
|
|
7157
|
+
timeZone: event.timeZone
|
|
7158
|
+
})) === contextDate
|
|
7159
|
+
) ?? null;
|
|
7160
|
+
}
|
|
7161
|
+
function resolveRegistrationTarget(input) {
|
|
7162
|
+
const occurrenceId = input.occurrenceContext?.id ?? input.selectedEvent?.registrationOccurrenceId ?? null;
|
|
7163
|
+
if (!occurrenceId) {
|
|
7164
|
+
return null;
|
|
7165
|
+
}
|
|
7166
|
+
return {
|
|
7167
|
+
occurrenceId,
|
|
7168
|
+
selectedEventId: input.selectedEvent?.publicEventId ?? null
|
|
7169
|
+
};
|
|
7170
|
+
}
|
|
7171
|
+
function resolveEventRequiresPayment(input) {
|
|
7172
|
+
if (input.eligibility) {
|
|
7173
|
+
return input.eligibility.requiresPayment;
|
|
7174
|
+
}
|
|
7175
|
+
if (input.selectedTicketType) {
|
|
7176
|
+
return input.selectedTicketType.priceAmount > 0;
|
|
7177
|
+
}
|
|
7178
|
+
if (!input.event) {
|
|
7179
|
+
return false;
|
|
7180
|
+
}
|
|
7181
|
+
return publicEventPricingType(resolveRuntimeEventPricing(input.event)) !== "free";
|
|
7182
|
+
}
|
|
7183
|
+
function resolveDiscountContext(input) {
|
|
7184
|
+
const selection = input.paymentSelection.method ? input.paymentSelection : null;
|
|
7185
|
+
if (!input.event) {
|
|
7186
|
+
return null;
|
|
7187
|
+
}
|
|
7188
|
+
if (selection?.method === "pass_bundle" && selection.bundlePassId) {
|
|
7189
|
+
return { type: "pass", passId: selection.bundlePassId };
|
|
7190
|
+
}
|
|
7191
|
+
if (selection?.method === "membership_bundle" && selection.bundleMembershipId) {
|
|
7192
|
+
return { type: "membership", membershipId: selection.bundleMembershipId };
|
|
7193
|
+
}
|
|
7194
|
+
if (!input.eventRequiresPayment) {
|
|
7195
|
+
return null;
|
|
7196
|
+
}
|
|
7197
|
+
if (selection?.method && selection.method !== "stripe") {
|
|
7198
|
+
return null;
|
|
7199
|
+
}
|
|
7200
|
+
return {
|
|
7201
|
+
type: "event",
|
|
7202
|
+
eventSeriesId: input.event.seriesId,
|
|
7203
|
+
eventCategoryId: input.event.eventCategory?.id ?? null,
|
|
7204
|
+
ticketsCount: input.ticketsCount
|
|
7205
|
+
};
|
|
7206
|
+
}
|
|
7207
|
+
|
|
7208
|
+
// ../blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.ts
|
|
7209
|
+
function toRegistrationEvent(event) {
|
|
7210
|
+
return {
|
|
7211
|
+
...event,
|
|
7212
|
+
pricing: resolveRuntimeEventPricing(event),
|
|
7213
|
+
publicEventId: event.id,
|
|
7214
|
+
registrationOccurrenceId: event.occurrenceId
|
|
7215
|
+
};
|
|
7216
|
+
}
|
|
7217
|
+
function toRegistrationEvents(events) {
|
|
7218
|
+
return events.map(toRegistrationEvent);
|
|
7219
|
+
}
|
|
7220
|
+
|
|
7221
|
+
// ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
|
|
7118
7222
|
var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
|
|
7119
|
-
var [
|
|
7120
|
-
eventRegistrationGenericDateStepLabel,
|
|
7121
|
-
eventRegistrationGenericTicketsStepLabel,
|
|
7122
|
-
eventRegistrationGenericDetailsStepLabel
|
|
7123
|
-
] = EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
|
|
7223
|
+
var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
|
|
7124
7224
|
var contentEntrySchema2 = z.object({
|
|
7125
7225
|
id: z.string(),
|
|
7126
7226
|
slug: z.string(),
|
|
@@ -7156,11 +7256,7 @@ var eventRegistrationDisplaySchema = z.object({
|
|
|
7156
7256
|
className: z.string().nullable(),
|
|
7157
7257
|
titleText: z.string(),
|
|
7158
7258
|
bodyText: z.string(),
|
|
7159
|
-
stepLabels: z.
|
|
7160
|
-
z.literal(eventRegistrationGenericDateStepLabel),
|
|
7161
|
-
z.literal(eventRegistrationGenericTicketsStepLabel),
|
|
7162
|
-
z.literal(eventRegistrationGenericDetailsStepLabel)
|
|
7163
|
-
]),
|
|
7259
|
+
stepLabels: z.array(z.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
|
|
7164
7260
|
summaryButtonText: z.string()
|
|
7165
7261
|
});
|
|
7166
7262
|
var eventRegistrationHydrationSchema = z.object({
|
|
@@ -7195,16 +7291,81 @@ var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
|
|
|
7195
7291
|
"stage"
|
|
7196
7292
|
);
|
|
7197
7293
|
function buildEventRegistrationDisplay(source) {
|
|
7294
|
+
const stepLabels = buildEventRegistrationShellStepLabels(source);
|
|
7198
7295
|
return {
|
|
7199
7296
|
kind: "event-registration",
|
|
7200
7297
|
state: "generic-shell",
|
|
7201
7298
|
className: source.className ?? null,
|
|
7202
7299
|
titleText: "Event registration",
|
|
7203
|
-
bodyText:
|
|
7204
|
-
stepLabels
|
|
7300
|
+
bodyText: buildEventRegistrationShellBodyText(stepLabels),
|
|
7301
|
+
stepLabels,
|
|
7205
7302
|
summaryButtonText: source.buttonText?.trim() || "Register"
|
|
7206
7303
|
};
|
|
7207
7304
|
}
|
|
7305
|
+
function buildEventRegistrationShellStepLabels(source) {
|
|
7306
|
+
const scopedEvents = scopeEventRegistrationEvents(source);
|
|
7307
|
+
if (scopedEvents.length === 0) {
|
|
7308
|
+
return EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
|
|
7309
|
+
}
|
|
7310
|
+
const preSelectedEvent = findPreSelectedEvent({
|
|
7311
|
+
scopedEvents,
|
|
7312
|
+
occurrenceContext: source.occurrenceContext
|
|
7313
|
+
});
|
|
7314
|
+
const hasPreSelectedContext = Boolean(source.occurrenceContext || preSelectedEvent);
|
|
7315
|
+
const needsPaymentStep = hasPreSelectedContext && preSelectedEvent ? resolveEventRequiresPayment({
|
|
7316
|
+
eligibility: null,
|
|
7317
|
+
selectedTicketType: null,
|
|
7318
|
+
event: preSelectedEvent
|
|
7319
|
+
}) : false;
|
|
7320
|
+
return getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep).map((step) => shellLabelForRegistrationStep(step, scopedEvents));
|
|
7321
|
+
}
|
|
7322
|
+
function scopeEventRegistrationEvents(source) {
|
|
7323
|
+
const events = toRegistrationEvents(source.events ?? []);
|
|
7324
|
+
if (source.occurrenceContext?.seriesId) {
|
|
7325
|
+
return events.filter((event) => event.seriesId === source.occurrenceContext?.seriesId);
|
|
7326
|
+
}
|
|
7327
|
+
const entrySlug = source.contentEntry?.slug;
|
|
7328
|
+
const entryContentType = source.contentEntry?.contentTypeSlug;
|
|
7329
|
+
if (entrySlug && entryContentType && isEventContentType(entryContentType)) {
|
|
7330
|
+
return events.filter((event) => event.slug === entrySlug);
|
|
7331
|
+
}
|
|
7332
|
+
return events;
|
|
7333
|
+
}
|
|
7334
|
+
function shellLabelForRegistrationStep(step, events) {
|
|
7335
|
+
switch (step) {
|
|
7336
|
+
case "select-event":
|
|
7337
|
+
return isDateSelection(events) ? "Date" : "Event";
|
|
7338
|
+
case "select-tickets":
|
|
7339
|
+
return "Tickets";
|
|
7340
|
+
case "enter-details":
|
|
7341
|
+
return "Details";
|
|
7342
|
+
case "select-payment":
|
|
7343
|
+
return "Payment";
|
|
7344
|
+
case "error":
|
|
7345
|
+
case "success":
|
|
7346
|
+
case "submitting":
|
|
7347
|
+
case "redirecting":
|
|
7348
|
+
case "verifying-payment":
|
|
7349
|
+
case "verifying-timeout":
|
|
7350
|
+
case "payment-failed":
|
|
7351
|
+
return "Details";
|
|
7352
|
+
}
|
|
7353
|
+
}
|
|
7354
|
+
function isDateSelection(events) {
|
|
7355
|
+
const firstSeriesId = events[0]?.seriesId;
|
|
7356
|
+
return Boolean(
|
|
7357
|
+
events.length > 1 && firstSeriesId && events.every((event) => event.seriesId === firstSeriesId)
|
|
7358
|
+
);
|
|
7359
|
+
}
|
|
7360
|
+
function buildEventRegistrationShellBodyText(stepLabels) {
|
|
7361
|
+
if (stepLabels.includes("Payment")) {
|
|
7362
|
+
return "Preparing tickets, details, and payment options.";
|
|
7363
|
+
}
|
|
7364
|
+
if (stepLabels[0] === "Tickets") {
|
|
7365
|
+
return "Preparing tickets and booking details.";
|
|
7366
|
+
}
|
|
7367
|
+
return "Preparing dates, tickets, and booking details.";
|
|
7368
|
+
}
|
|
7208
7369
|
var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
7209
7370
|
kind: "client-owned",
|
|
7210
7371
|
contracts: {
|
|
@@ -8597,4 +8758,4 @@ lucide-react/dist/esm/lucide-react.mjs:
|
|
|
8597
8758
|
*)
|
|
8598
8759
|
*/
|
|
8599
8760
|
|
|
8600
|
-
export { BOOKING_FORM_DATA_RESERVED_KEYS, ChevronLeft, ChevronRight, CreditCard, DateTimeTile, EMPTY_COMMERCE_CART_STATE, EmptyState, EventCard, EventCompactRow, MAX_EVENTS_PER_DAY, MONTH_NAMES, Sparkles, Star, Ticket, addMonths, assertNever11, buildCalendarViewport, buildCartDisplay, buildEventCalendarListingRender, buildEventRuntimeFilters, buildPassCartItem, buildProductCardDisplay, buildProductCartItem, buildProductDetailDisplay, buildTimetableModel, clearWorkflowFeedback, defineIslandPropsDecoder, deriveBookingFormViewState, deriveCommerceCheckoutState, err2, formatBookingSubmissionPreparationError, formatCommercePrice, formatCoursePriceAmount, formatCoursePriceDisplay, formatDate, formatDateKey, formatEventDateParts, formatEventPrice, formatEventTeacherLine, formatInterval, formatTime, getBookingRedirectStateFromLocation, getBookingSuccessMessage, getCardOrientation, getContainerClass, getEventAvailability, getEventRuntimeFiltersKey, getOrderedDayNames, getShopDisplayForItems, getThreeMonthRange, groupEventsByDate, isEventContentType, isToday, logger, normalizeCsvIds, normalizeCsvString, normalizeEventBlockKind, normalizeOptionalId, ok, okWith2, parseStoredCommerceCartState, prepareBookingSubmission, productItemKey, reduceCommerceCart, reportWorkflowError, reportWorkflowSuccess, resolveAppointmentCheckoutVerificationState, resolveBookingPaymentStep, resolveBookingSiteId, resolveCoursePricingState, resolveDefaultBookingServiceId, resolveRuntimeEventPricing, shiftCalendarAnchorDate, themeButtonClassName, toSelectedCollectionOptionKind };
|
|
8761
|
+
export { BOOKING_FORM_DATA_RESERVED_KEYS, ChevronLeft, ChevronRight, CreditCard, DateTimeTile, EMPTY_COMMERCE_CART_STATE, EmptyState, EventCard, EventCompactRow, MAX_EVENTS_PER_DAY, MONTH_NAMES, Sparkles, Star, Ticket, WIZARD_STEPS, addMonths, assertNever11, buildCalendarViewport, buildCartDisplay, buildEventCalendarListingRender, buildEventRuntimeFilters, buildPassCartItem, buildProductCardDisplay, buildProductCartItem, buildProductDetailDisplay, buildTimetableModel, clearWorkflowFeedback, defineIslandPropsDecoder, deriveBookingFormViewState, deriveCommerceCheckoutState, err2, findEventByOccurrenceId, findPreSelectedEvent, formatBookingSubmissionPreparationError, formatCommercePrice, formatCoursePriceAmount, formatCoursePriceDisplay, formatDate, formatDateKey, formatEventDateParts, formatEventPrice, formatEventTeacherLine, formatInterval, formatTime, getBookingRedirectStateFromLocation, getBookingSuccessMessage, getCardOrientation, getContainerClass, getEventAvailability, getEventRuntimeFiltersKey, getOrderedDayNames, getShopDisplayForItems, getStepNumber, getThreeMonthRange, getWizardStepsForContext, groupEventsByDate, isEventContentType, isToday, logger, normalizeCsvIds, normalizeCsvString, normalizeEventBlockKind, normalizeOptionalId, ok, okWith2, parseStoredCommerceCartState, prepareBookingSubmission, productItemKey, reduceCommerceCart, reportWorkflowError, reportWorkflowSuccess, resolveAppointmentCheckoutVerificationState, resolveBookingPaymentStep, resolveBookingSiteId, resolveCoursePricingState, resolveDefaultBookingServiceId, resolveDiscountContext, resolveEventRequiresPayment, resolveRegistrationTarget, resolveRuntimeEventPricing, shiftCalendarAnchorDate, themeButtonClassName, toRegistrationEvents, toSelectedCollectionOptionKind };
|