@riverbankcms/sdk 0.96.0 → 0.99.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -1
- package/dist/{PreviewEditorSidebar-46VT4QVU.mjs → PreviewEditorSidebar-TPOKCCKY.mjs} +3 -3
- package/dist/{PreviewEditorUI-JD75GE5F.mjs → PreviewEditorUI-Y347GLC2.mjs} +3 -3
- package/dist/SdkPreviewModeRuntime-OGTXRQ4M.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +36 -36
- package/dist/_dts/api/src/billing.d.ts +2 -0
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +35 -1
- package/dist/_dts/api/src/bookingOperations.d.ts +246 -0
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +5 -1
- package/dist/_dts/api/src/contentRuntime.d.ts +109 -40
- package/dist/_dts/api/src/endpoints.d.ts +88 -0
- package/dist/_dts/api/src/index.d.ts +3 -2
- package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +10 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +2 -1
- package/dist/_dts/api/src/siteOperations.d.ts +65 -1
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +7 -1
- package/dist/_dts/billing/src/site-arrangements.d.ts +151 -0
- package/dist/_dts/billing/src/subscriptions/store.d.ts +2 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/utils/resolveThumbnail.d.ts +2 -1
- package/dist/_dts/blocks/src/PageRenderer.d.ts +8 -1
- package/dist/_dts/blocks/src/bindings/types.d.ts +0 -4
- package/dist/_dts/blocks/src/client/site-chrome.d.ts +7 -0
- package/dist/_dts/blocks/src/contracts/index.d.ts +1 -0
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +12 -12
- package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +4 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/layout.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/weekly-slot-availability.d.ts +34 -0
- package/dist/_dts/blocks/src/system/componentFactory.d.ts +1 -0
- package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
- package/dist/_dts/blocks/src/system/customize/facets.d.ts +2 -2
- package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
- package/dist/_dts/blocks/src/system/data/prefetchBlockData.d.ts +4 -1
- package/dist/_dts/blocks/src/system/node/builder.d.ts +2 -0
- package/dist/_dts/blocks/src/system/node/schema.d.ts +13 -0
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
- package/dist/_dts/blocks/src/system/registry.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +24 -0
- package/dist/_dts/blocks/src/system/runtime/components/booking/DatePicker.d.ts +6 -2
- package/dist/_dts/blocks/src/system/runtime/components/booking/SuccessMessage.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/components/booking/TimeSlotSelector.d.ts +10 -4
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useAppointmentCheckoutVerification.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableSlots.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/usePaymentVerification.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +11 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/StepIndicator.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +8 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +133 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.controller.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.client.state.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.server.d.ts +10 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/weekly-slot-availability.view.d.ts +11 -0
- package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +31 -1
- package/dist/_dts/blocks/src/system/runtime/shared/components/FeedbackMessage.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/{nodes/event-registration → shared/components}/SelectableOptionCard.d.ts +11 -2
- package/dist/_dts/blocks/src/system/runtime/shared/components/StepIndicator.d.ts +16 -5
- package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +5 -0
- package/dist/_dts/blocks/src/utils/date-formatting.d.ts +18 -2
- package/dist/_dts/content-editor/src/primitives/PreviewInlineTextEditor.d.ts +1 -1
- package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +1 -1
- package/dist/_dts/content-model/src/templates/defaults.d.ts +5 -5
- package/dist/_dts/content-model/src/templates/types.d.ts +2 -6
- package/dist/_dts/core/src/branded.d.ts +8 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +767 -20
- package/dist/_dts/field-primitives/src/bindings/index.d.ts +8 -0
- package/dist/_dts/sdk/src/__mocks__/next-cache.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/push/publishGuidance.d.ts +15 -0
- package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +2 -1
- package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +3 -1
- package/dist/_dts/sdk/src/cli/commands/push/stale-resolution.d.ts +9 -3
- package/dist/_dts/sdk/src/cli/commands/push/workflowPlan.d.ts +34 -0
- package/dist/_dts/sdk/src/cli/commands/push.d.ts +13 -0
- package/dist/_dts/sdk/src/cli/commands/setup.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/config-loader.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/content/metadataStore.d.ts +29 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +16 -14
- package/dist/_dts/sdk/src/cli/content/writer.d.ts +6 -4
- package/dist/_dts/sdk/src/cli/env-scope.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/helpers.d.ts +6 -7
- package/dist/_dts/sdk/src/cli/merge-remote/entryMergePush.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/merge-remote/entryMergeReport.d.ts +6 -18
- package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +2 -4
- package/dist/_dts/sdk/src/cli/merge-remote/pageMergePush.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/merge-remote/pageMergeReport.d.ts +6 -18
- package/dist/_dts/sdk/src/cli/merge-remote/pageSnapshots.d.ts +2 -4
- package/dist/_dts/sdk/src/cli/merge-remote/sharedBaseSnapshots.d.ts +32 -0
- package/dist/_dts/sdk/src/cli/merge-remote/sharedMergePlan.d.ts +27 -0
- package/dist/_dts/sdk/src/cli/merge-remote/sharedMergeReport.d.ts +63 -0
- package/dist/_dts/sdk/src/cli/push-config.d.ts +13 -2
- package/dist/_dts/sdk/src/cli/setup/setupPlan.d.ts +51 -0
- package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +21 -0
- package/dist/_dts/sdk/src/client/index.d.ts +6 -0
- package/dist/_dts/sdk/src/client/runtimeCachePolicy.d.ts +1 -1
- package/dist/_dts/sdk/src/client/types.d.ts +18 -2
- package/dist/_dts/sdk/src/config/types.d.ts +1 -1
- package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
- package/dist/_dts/sdk/src/contracts/bindings.d.ts +3 -7
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +13 -0
- package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +6 -1
- package/dist/_dts/sdk/src/next/route-outcome-proxy.d.ts +3 -3
- package/dist/_dts/sdk/src/next/types.d.ts +19 -0
- package/dist/_dts/sdk/src/prebuild/loader.d.ts +8 -1
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +174 -78
- package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -0
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -0
- package/dist/_dts/sdk/src/rendering/helpers/bindings.d.ts +4 -4
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +58 -1
- package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +8 -0
- package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +2 -2
- package/dist/_dts/sdk/src/rendering/index.d.ts +7 -7
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +18 -66
- package/dist/_dts/sdk/src/rendering/overrides.d.ts +2 -0
- package/dist/_dts/sdk/src/routing/resolveRoute.d.ts +18 -0
- package/dist/_dts/sdk/src/test/apiClient.d.ts +17 -0
- package/dist/_dts/sdk/src/test/bunDom.setup.d.ts +1 -0
- package/dist/_dts/sdk/src/test/env.d.ts +4 -0
- package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +3 -3
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/interactive/generateBaseCSS.d.ts +6 -0
- package/dist/_dts/theme-core/src/status/contextualColors.d.ts +6 -0
- package/dist/_dts/theme-core/src/status/index.d.ts +1 -0
- package/dist/{chunk-VHIMXQ7Z.mjs → chunk-4HXF2QLH.mjs} +2 -2
- package/dist/{chunk-VTPPVAOL.mjs → chunk-EMJIT3ZJ.mjs} +1 -1
- package/dist/{chunk-4TLTV7OB.mjs → chunk-PM7HGDHM.mjs} +2 -2
- package/dist/{chunk-XMATDBXO.mjs → chunk-XO34WBBP.mjs} +2139 -1348
- package/dist/{chunk-EL55VV6Q.mjs → chunk-YGTTEVUM.mjs} +31 -10
- package/dist/{chunk-7ED5UNHL.mjs → chunk-YWTCCOSF.mjs} +117 -0
- package/dist/cli/index.mjs +2690 -1503
- package/dist/cli/init-docs/content/cli-reference.md +29 -1
- package/dist/cli/init-docs/content/getting-started.md +8 -0
- package/dist/cli/init-docs/content/workflow-agent-safe-sync.md +3 -1
- package/dist/cli/init-docs/content/workflow-preview-mode.md +6 -0
- package/dist/cli/init-docs/content/workflow-remote-setup.md +51 -0
- package/dist/client/{accordion-GUNXIIZR.mjs → accordion-QSUEYL4L.mjs} +2 -2
- package/dist/client/{bookingForm-AOU4VHP5.mjs → bookingForm-QYGAHPDP.mjs} +376 -302
- package/dist/client/bookings.mjs +795 -429
- package/dist/client/{carousel-4QSX2JPC.mjs → carousel-SM2LEWAU.mjs} +3 -3
- package/dist/client/{cart-JKN6C4ZB.mjs → cart-3N3SFKNQ.mjs} +7 -7
- package/dist/client/{checkout-YY6YMITW.mjs → checkout-YFAYPKPZ.mjs} +7 -7
- package/dist/client/{chunk-SY543WZ3.mjs → chunk-5DLGREUB.mjs} +1 -1
- package/dist/client/{chunk-A3YN7M3G.mjs → chunk-CLZ7NBSP.mjs} +147 -75
- package/dist/client/{chunk-GWCRCJLB.mjs → chunk-CYJ3MUFP.mjs} +18 -6
- package/dist/client/{chunk-JNE6UI6U.mjs → chunk-H3H3ODO7.mjs} +1 -1
- package/dist/client/{chunk-CPKMJVBD.mjs → chunk-HPEQ4YWW.mjs} +83 -109
- package/dist/client/{chunk-PCHACQEB.mjs → chunk-IIUIKJ4K.mjs} +15 -7
- package/dist/client/{chunk-TNGL2WJF.mjs → chunk-IOAHWAQG.mjs} +18 -0
- package/dist/client/{chunk-6H27K6AA.mjs → chunk-JTKBF3W2.mjs} +10 -4
- package/dist/client/{chunk-OLAOAZEO.mjs → chunk-K7KTSACR.mjs} +1 -1
- package/dist/client/{chunk-BFCJZODD.mjs → chunk-R32M5HFS.mjs} +6 -6
- package/dist/client/{chunk-VJROUYOQ.mjs → chunk-WEVT46PX.mjs} +3 -3
- package/dist/client/{chunk-H7A6PUGM.mjs → chunk-ZU65LTI3.mjs} +1 -1
- package/dist/client/client.mjs +5052 -4083
- package/dist/client/{courseRegistration-UU2KMPSQ.mjs → courseRegistration-LYBE7VVK.mjs} +7 -7
- package/dist/client/{eventCalendar-WIVNS2TM.mjs → eventCalendar-FMTB75X6.mjs} +9 -9
- package/dist/client/{eventCombined-P3G5MW4J.mjs → eventCombined-E4LUCJXT.mjs} +9 -9
- package/dist/client/{eventDetails-2VHJ2RDG.mjs → eventDetails-GELSRR4Z.mjs} +9 -9
- package/dist/client/{eventListing-TGO6JI3R.mjs → eventListing-TB623B6R.mjs} +9 -9
- package/dist/client/{eventRegistration-B46HEJES.mjs → eventRegistration-NRIKHXTI.mjs} +9 -9
- package/dist/client/{form-VKRTFUNQ.mjs → form-Y4U4IAXE.mjs} +3 -3
- package/dist/client/{headerSection-XUX4ZJLO.mjs → headerSection-QSOVV5P7.mjs} +3 -3
- package/dist/client/hooks.mjs +1776 -1355
- package/dist/client/{locationMap-NQFI5MJO.mjs → locationMap-QYCAHH7H.mjs} +3 -3
- package/dist/client/{newsletterForm-P2GETCQK.mjs → newsletterForm-NWHY5TBY.mjs} +3 -3
- package/dist/client/{productDetail-7NQ7O5IF.mjs → productDetail-FYDMU2CE.mjs} +7 -7
- package/dist/client/{productList-RX6ZJ7BL.mjs → productList-D76CGACQ.mjs} +7 -7
- package/dist/client/rendering/client.mjs +2990 -2470
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +3236 -2236
- package/dist/client/{shop-BHN5AKY6.mjs → shop-SOUACT5N.mjs} +7 -7
- package/dist/preview-next/before-render.mjs +117 -0
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/preview-next/middleware.mjs +117 -0
- package/dist/{sdk-runtime-X2LXQ5IC.mjs → sdk-runtime-XPVE3LBA.mjs} +6 -6
- package/dist/server/components.mjs +3115 -2484
- package/dist/server/config-template-validation.mjs +6 -2
- package/dist/server/config-validation.mjs +1961 -1580
- package/dist/server/config.mjs +1961 -1580
- package/dist/server/data.mjs +1762 -1352
- package/dist/server/index.mjs +266 -33
- package/dist/server/next/middleware.mjs +2 -2
- package/dist/server/next.mjs +3399 -2504
- package/dist/server/page-converter.mjs +1553 -1295
- package/dist/server/prebuild-loader.mjs +42 -23
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +3151 -2489
- package/dist/server/rendering.mjs +3363 -2555
- package/dist/server/routing.mjs +1877 -1388
- package/dist/server/server.mjs +2057 -1402
- package/dist/server/theme-bridge.mjs +597 -505
- package/dist/server/theme.mjs +5 -4
- package/dist/styles/index.css +499 -490
- package/package.json +6 -4
- package/dist/SdkPreviewModeRuntime-MJUSYUFB.mjs +0 -8
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { LeafletStaticMap } from './chunk-
|
|
3
|
-
import { resolveCoursePricingState,
|
|
2
|
+
import { LeafletStaticMap } from './chunk-5DLGREUB.mjs';
|
|
3
|
+
import { resolveCoursePricingState, MagicLinkForm, formatCoursePriceAmount, formatCoursePriceDisplay, useWaitlistClaim } from './chunk-JTKBF3W2.mjs';
|
|
4
4
|
import { CreditCard, Ticket, Star, Sparkles } from './chunk-6N7YRNYU.mjs';
|
|
5
|
-
import {
|
|
6
|
-
import { SpinnerNode } from './chunk-
|
|
7
|
-
import { createBodyThemePortalRoot, TabBarFragment,
|
|
5
|
+
import { buildBookingPaymentSelectionViewModel, usePolling } from './chunk-WEVT46PX.mjs';
|
|
6
|
+
import { SpinnerNode } from './chunk-K7KTSACR.mjs';
|
|
7
|
+
import { createBodyThemePortalRoot, TabBarFragment, logoutPortal, StepIndicator, DiscountCodeDisclosure, TerminalPanel, StateIcon, formatPrice, CrossIcon, ClockIcon, LoggedInAsUser, SelectableOptionCard, CheckIcon, useDiscountCodeUi, consumeSearchParam } from './chunk-CLZ7NBSP.mjs';
|
|
8
8
|
import { getFieldValidationControlProps, FieldValidationMessage } from './chunk-3DCJ45Z2.mjs';
|
|
9
9
|
import { ModalShell } from './chunk-WBQG7VJA.mjs';
|
|
10
10
|
import { isSpamProtectionEnabled, AltchaWidget, getChallengeUrl } from './chunk-LJCX6V7Q.mjs';
|
|
11
|
-
import { useBlockApi, FeedbackMessage } 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, formatEventPriceDisplay, resolveRuntimeEventPricing, formatEventPrice, formatEventDateParts, resolveEventLinkProps, DateTimeTile, assertNever, EventCard, buildCalendarViewport, shiftCalendarAnchorDate, addMonths, getThreeMonthRange, buildTimetableModel, formatDate, MONTH_NAMES, getEventAvailability, formatEventTeacherLine, toRegistrationEvents, isEventContentType, findPreSelectedEvent, resolveRegistrationTarget, findEventByOccurrenceId, resolveEventRequiresPayment, resolveDiscountContext } from './chunk-
|
|
13
|
-
import { publicEventPricingType, getBookingLocalDateKey, toScheduledBookingDateTime, toBookingTimeZone, publicEventPricingCurrency, formatBookingDateTime, publicEventPricingMode, publicEventScalarPrice,
|
|
11
|
+
import { useBlockApi, FeedbackMessage } from './chunk-IOAHWAQG.mjs';
|
|
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, formatEventPriceDisplay, resolveRuntimeEventPricing, formatEventPrice, formatEventDateParts, resolveEventLinkProps, DateTimeTile, assertNever, EventCard, buildCalendarViewport, shiftCalendarAnchorDate, addMonths, getThreeMonthRange, buildTimetableModel, formatDate, MONTH_NAMES, getEventAvailability, formatEventTeacherLine, toRegistrationEvents, isEventContentType, findPreSelectedEvent, resolveRegistrationTarget, findEventByOccurrenceId, resolveEventRequiresPayment, resolveDiscountContext } from './chunk-CYJ3MUFP.mjs';
|
|
13
|
+
import { publicEventPricingType, getBookingLocalDateKey, toScheduledBookingDateTime, toBookingTimeZone, publicEventPricingCurrency, formatBookingDateTime, publicEventPricingMode, publicEventScalarPrice, formatCurrencyAmount, publicEventTicketTypes, formatBookingDate, formatBookingTime } from './chunk-IIUIKJ4K.mjs';
|
|
14
14
|
import React9, { createContext, useId, useMemo, useReducer, useState, useRef, useEffect, useCallback, useContext } from 'react';
|
|
15
15
|
import { createPortal } from 'react-dom';
|
|
16
16
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
17
17
|
|
|
18
18
|
function StepIndicator2(props) {
|
|
19
|
-
return /* @__PURE__ */ jsx(StepIndicator, { ...props, classPrefix: "er" });
|
|
19
|
+
return /* @__PURE__ */ jsx(StepIndicator, { ...props, classPrefix: "er", emitSharedClasses: true });
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
// ../blocks/src/system/runtime/nodes/event-registration/registrationStateMachine.ts
|
|
@@ -516,8 +516,14 @@ function existingRegistrationLookupReducer(state, action) {
|
|
|
516
516
|
}
|
|
517
517
|
|
|
518
518
|
// ../blocks/src/system/runtime/nodes/event-registration/hooks.ts
|
|
519
|
+
var eventRegistrationHooksDeps = {
|
|
520
|
+
useBlockApi
|
|
521
|
+
};
|
|
519
522
|
function usePortalAuth() {
|
|
520
|
-
|
|
523
|
+
return usePortalAuthWithDeps(eventRegistrationHooksDeps);
|
|
524
|
+
}
|
|
525
|
+
function usePortalAuthWithDeps(deps) {
|
|
526
|
+
const api = deps.useBlockApi();
|
|
521
527
|
const [authState, setAuthState] = useState("checking");
|
|
522
528
|
const [profile, setProfile] = useState(null);
|
|
523
529
|
useEffect(() => {
|
|
@@ -565,7 +571,10 @@ function usePortalAuth() {
|
|
|
565
571
|
};
|
|
566
572
|
}
|
|
567
573
|
function useEligibility(params) {
|
|
568
|
-
|
|
574
|
+
return useEligibilityWithDeps(params, eventRegistrationHooksDeps);
|
|
575
|
+
}
|
|
576
|
+
function useEligibilityWithDeps(params, deps) {
|
|
577
|
+
const api = deps.useBlockApi();
|
|
569
578
|
const ticketSelectionsKey = JSON.stringify(normalizeTicketSelectionLines(params.ticketSelections));
|
|
570
579
|
const [state, dispatch] = useReducer(
|
|
571
580
|
eligibilityLookupReducer,
|
|
@@ -634,7 +643,16 @@ function useExistingEventRegistration({
|
|
|
634
643
|
isAuthenticated,
|
|
635
644
|
occurrenceId
|
|
636
645
|
}) {
|
|
637
|
-
|
|
646
|
+
return useExistingEventRegistrationWithDeps(
|
|
647
|
+
{ isAuthenticated, occurrenceId },
|
|
648
|
+
eventRegistrationHooksDeps
|
|
649
|
+
);
|
|
650
|
+
}
|
|
651
|
+
function useExistingEventRegistrationWithDeps({
|
|
652
|
+
isAuthenticated,
|
|
653
|
+
occurrenceId
|
|
654
|
+
}, deps) {
|
|
655
|
+
const api = deps.useBlockApi();
|
|
638
656
|
const [state, dispatch] = useReducer(
|
|
639
657
|
existingRegistrationLookupReducer,
|
|
640
658
|
initialExistingRegistrationLookupState
|
|
@@ -841,7 +859,7 @@ var EventSelectionStep = ({
|
|
|
841
859
|
}) => {
|
|
842
860
|
const selectionMode = getEventSelectionMode(events);
|
|
843
861
|
const isDateSelection = selectionMode === "date";
|
|
844
|
-
return /* @__PURE__ */ jsxs("div", { className: "er-stack", children: [
|
|
862
|
+
return /* @__PURE__ */ jsxs("div", { className: "rb-reg-stack er-stack", children: [
|
|
845
863
|
/* @__PURE__ */ jsx("h3", { className: "er-title", children: isDateSelection ? "Choose a date" : "Select an event" }),
|
|
846
864
|
/* @__PURE__ */ jsx("div", { className: "er-event-grid", children: events.map((event) => {
|
|
847
865
|
const isSelected = selectedEvent?.publicEventId === event.publicEventId;
|
|
@@ -898,7 +916,7 @@ function getEventAttendanceModeLabel(mode) {
|
|
|
898
916
|
function TicketCounter(props) {
|
|
899
917
|
const { ticketsCount, maxAllowed, label, onTicketsChange } = props;
|
|
900
918
|
const minAllowed = props.minAllowed ?? 1;
|
|
901
|
-
return /* @__PURE__ */ jsxs("div", { className: "er-row er-counter", children: [
|
|
919
|
+
return /* @__PURE__ */ jsxs("div", { className: "rb-reg-row er-row er-counter", children: [
|
|
902
920
|
/* @__PURE__ */ jsx(
|
|
903
921
|
"button",
|
|
904
922
|
{
|
|
@@ -970,9 +988,6 @@ function SlidingScaleAmountField(props) {
|
|
|
970
988
|
}
|
|
971
989
|
function TicketTypeQuantityRows(props) {
|
|
972
990
|
const totalSelectedQuantity = getTicketSelectionTotal(props.ticketSelections);
|
|
973
|
-
const selectedTicketTypes = props.ticketTypes.filter(
|
|
974
|
-
(ticketType) => getTicketLineQuantity(props.ticketSelections, ticketType.id) > 0
|
|
975
|
-
);
|
|
976
991
|
return /* @__PURE__ */ jsxs("div", { className: "er-ticket-lines", children: [
|
|
977
992
|
/* @__PURE__ */ jsx("div", { className: "er-ticket-line-list", role: "list", "aria-label": "Tickets", children: props.ticketTypes.map((ticketType) => {
|
|
978
993
|
const quantity = getTicketLineQuantity(props.ticketSelections, ticketType.id);
|
|
@@ -1031,22 +1046,7 @@ function TicketTypeQuantityRows(props) {
|
|
|
1031
1046
|
availabilityLabel: props.availableSpots != null ? `${props.availableSpots} spots available` : null
|
|
1032
1047
|
}
|
|
1033
1048
|
),
|
|
1034
|
-
|
|
1035
|
-
/* @__PURE__ */ jsxs("div", { className: "er-ticket-line-summary-title", children: [
|
|
1036
|
-
totalSelectedQuantity,
|
|
1037
|
-
" ticket",
|
|
1038
|
-
totalSelectedQuantity === 1 ? "" : "s",
|
|
1039
|
-
" selected"
|
|
1040
|
-
] }),
|
|
1041
|
-
/* @__PURE__ */ jsx("ul", { className: "er-ticket-line-summary-list", children: selectedTicketTypes.map((ticketType) => {
|
|
1042
|
-
const quantity = getTicketLineQuantity(props.ticketSelections, ticketType.id);
|
|
1043
|
-
return /* @__PURE__ */ jsxs("li", { children: [
|
|
1044
|
-
quantity,
|
|
1045
|
-
" x ",
|
|
1046
|
-
ticketType.name
|
|
1047
|
-
] }, ticketType.id);
|
|
1048
|
-
}) })
|
|
1049
|
-
] }) : props.hasAvailableTicketTypes ? /* @__PURE__ */ jsx("p", { className: "er-text er-text--muted", children: "Choose at least one ticket to continue." }) : /* @__PURE__ */ jsx("p", { className: "er-text er-text--muted", children: "No ticket types are currently available." })
|
|
1049
|
+
totalSelectedQuantity === 0 && props.hasAvailableTicketTypes ? /* @__PURE__ */ jsx("p", { className: "er-text er-text--muted", children: "Choose at least one ticket to continue." }) : totalSelectedQuantity === 0 ? /* @__PURE__ */ jsx("p", { className: "er-text er-text--muted", children: "No ticket types are currently available." }) : null
|
|
1050
1050
|
] });
|
|
1051
1051
|
}
|
|
1052
1052
|
function getAttendanceModeDetail(attendanceMode) {
|
|
@@ -1141,7 +1141,7 @@ var TicketSelectionStep = ({
|
|
|
1141
1141
|
});
|
|
1142
1142
|
const eventAvailabilityLabel = !canJoinWaitlist && event?.availableSpots != null ? `${event.availableSpots} spots available` : null;
|
|
1143
1143
|
if (deliveryMode === "hybrid" && !selectedAttendanceMode) {
|
|
1144
|
-
return /* @__PURE__ */ jsxs("div", { className: "er-stack", children: [
|
|
1144
|
+
return /* @__PURE__ */ jsxs("div", { className: "rb-reg-stack er-stack", children: [
|
|
1145
1145
|
/* @__PURE__ */ jsx("h3", { className: "er-title", children: "How will you attend?" }),
|
|
1146
1146
|
/* @__PURE__ */ jsx(
|
|
1147
1147
|
AttendanceModeTiles,
|
|
@@ -1155,12 +1155,12 @@ var TicketSelectionStep = ({
|
|
|
1155
1155
|
] });
|
|
1156
1156
|
}
|
|
1157
1157
|
if (isSoldOut && !canJoinWaitlist) {
|
|
1158
|
-
return /* @__PURE__ */ jsxs("div", { className: "er-stack", children: [
|
|
1158
|
+
return /* @__PURE__ */ jsxs("div", { className: "rb-reg-stack er-stack", children: [
|
|
1159
1159
|
/* @__PURE__ */ jsx("h3", { className: "er-title", children: "Sold Out" }),
|
|
1160
1160
|
/* @__PURE__ */ jsx("p", { className: "er-text er-text--muted", children: "Sorry you missed out! This event is fully booked." })
|
|
1161
1161
|
] });
|
|
1162
1162
|
}
|
|
1163
|
-
return /* @__PURE__ */ jsxs("div", { className: "er-stack", children: [
|
|
1163
|
+
return /* @__PURE__ */ jsxs("div", { className: "rb-reg-stack er-stack", children: [
|
|
1164
1164
|
deliveryMode === "hybrid" ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1165
1165
|
/* @__PURE__ */ jsx("h3", { className: "er-title", children: "How will you attend?" }),
|
|
1166
1166
|
/* @__PURE__ */ jsx(
|
|
@@ -1354,7 +1354,7 @@ var AttendeeDetailsStep = ({
|
|
|
1354
1354
|
messageId: emailErrorId
|
|
1355
1355
|
});
|
|
1356
1356
|
const showGuestSection = requireGuestDetails && ticketsCount > 1 && onGuestsChange;
|
|
1357
|
-
return /* @__PURE__ */ jsxs("div", { className: "er-stack", children: [
|
|
1357
|
+
return /* @__PURE__ */ jsxs("div", { className: "rb-reg-stack er-stack", children: [
|
|
1358
1358
|
/* @__PURE__ */ jsx("h3", { className: "er-title", children: "Your Information" }),
|
|
1359
1359
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
1360
1360
|
/* @__PURE__ */ jsxs("div", { className: "er-field", children: [
|
|
@@ -1448,7 +1448,7 @@ var AttendeeDetailsStep = ({
|
|
|
1448
1448
|
var MembershipHero = ({
|
|
1449
1449
|
membershipName
|
|
1450
1450
|
}) => {
|
|
1451
|
-
return /* @__PURE__ */ jsx("div", { className: "er-stack", children: /* @__PURE__ */ jsxs("div", { className: "er-booking-mode-hero", children: [
|
|
1451
|
+
return /* @__PURE__ */ jsx("div", { className: "rb-reg-stack er-stack", children: /* @__PURE__ */ jsxs("div", { className: "er-booking-mode-hero", children: [
|
|
1452
1452
|
/* @__PURE__ */ jsx("div", { className: "er-booking-mode-hero-icon", children: /* @__PURE__ */ jsx(Sparkles, { size: 20, fill: "currentColor", "aria-hidden": "true" }) }),
|
|
1453
1453
|
/* @__PURE__ */ jsxs("div", { className: "er-booking-mode-hero-content", children: [
|
|
1454
1454
|
/* @__PURE__ */ jsxs("h3", { className: "er-booking-mode-hero-title", children: [
|
|
@@ -1459,51 +1459,6 @@ var MembershipHero = ({
|
|
|
1459
1459
|
] })
|
|
1460
1460
|
] }) });
|
|
1461
1461
|
};
|
|
1462
|
-
function SelectableOptionCard(props) {
|
|
1463
|
-
const {
|
|
1464
|
-
baseClassName,
|
|
1465
|
-
selectedClassName,
|
|
1466
|
-
disabledClassName,
|
|
1467
|
-
iconClassName,
|
|
1468
|
-
labelClassName,
|
|
1469
|
-
detailClassName,
|
|
1470
|
-
icon,
|
|
1471
|
-
label,
|
|
1472
|
-
detail,
|
|
1473
|
-
selected,
|
|
1474
|
-
disabled,
|
|
1475
|
-
tooltip,
|
|
1476
|
-
extraClassNames = [],
|
|
1477
|
-
onClick,
|
|
1478
|
-
renderCheck,
|
|
1479
|
-
renderDisabledTooltip
|
|
1480
|
-
} = props;
|
|
1481
|
-
const isSelected = selected && !disabled;
|
|
1482
|
-
const className = [
|
|
1483
|
-
baseClassName,
|
|
1484
|
-
isSelected && selectedClassName,
|
|
1485
|
-
disabled && disabledClassName,
|
|
1486
|
-
...extraClassNames
|
|
1487
|
-
].filter(Boolean).join(" ");
|
|
1488
|
-
const showNativeTitle = Boolean(tooltip) && !(disabled && renderDisabledTooltip);
|
|
1489
|
-
return /* @__PURE__ */ jsxs(
|
|
1490
|
-
"button",
|
|
1491
|
-
{
|
|
1492
|
-
type: "button",
|
|
1493
|
-
className,
|
|
1494
|
-
onClick: disabled ? void 0 : onClick,
|
|
1495
|
-
title: showNativeTitle ? tooltip : void 0,
|
|
1496
|
-
"aria-disabled": disabled || void 0,
|
|
1497
|
-
children: [
|
|
1498
|
-
/* @__PURE__ */ jsx("div", { className: iconClassName, children: icon }),
|
|
1499
|
-
/* @__PURE__ */ jsx("div", { className: labelClassName, children: label }),
|
|
1500
|
-
/* @__PURE__ */ jsx("div", { className: detailClassName, children: detail }),
|
|
1501
|
-
isSelected && renderCheck?.(),
|
|
1502
|
-
disabled && tooltip && renderDisabledTooltip?.(tooltip)
|
|
1503
|
-
]
|
|
1504
|
-
}
|
|
1505
|
-
);
|
|
1506
|
-
}
|
|
1507
1462
|
|
|
1508
1463
|
// ../blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.ts
|
|
1509
1464
|
var DEFAULT_EVENT_DIRECT_PAYMENT_OPTION = {
|
|
@@ -1585,7 +1540,7 @@ function resolveEventRegistrationDirectPaymentSelection(input) {
|
|
|
1585
1540
|
};
|
|
1586
1541
|
}
|
|
1587
1542
|
function PaymentCheckIcon() {
|
|
1588
|
-
return /* @__PURE__ */ jsx("div", { className: "er-check", children: /* @__PURE__ */ jsx(CheckIcon, {}) });
|
|
1543
|
+
return /* @__PURE__ */ jsx("div", { className: "rb-option-check er-check", children: /* @__PURE__ */ jsx(CheckIcon, {}) });
|
|
1589
1544
|
}
|
|
1590
1545
|
function PaymentTile({
|
|
1591
1546
|
icon,
|
|
@@ -1722,25 +1677,25 @@ var PaymentSelectionStep = ({
|
|
|
1722
1677
|
getButtonText
|
|
1723
1678
|
]);
|
|
1724
1679
|
if (eligibilityLoading) {
|
|
1725
|
-
return /* @__PURE__ */ jsx("div", { className: "er-stack", children: /* @__PURE__ */ jsxs("div", { className: "er-center", children: [
|
|
1680
|
+
return /* @__PURE__ */ jsx("div", { className: "rb-reg-stack er-stack", children: /* @__PURE__ */ jsxs("div", { className: "er-center", children: [
|
|
1726
1681
|
/* @__PURE__ */ jsx(SpinnerNode, { size: "lg", srLabel: "Checking payment options" }),
|
|
1727
1682
|
/* @__PURE__ */ jsx("p", { className: "er-text--muted", children: "Checking payment options..." })
|
|
1728
1683
|
] }) });
|
|
1729
1684
|
}
|
|
1730
1685
|
if (eligibilityError) {
|
|
1731
|
-
return /* @__PURE__ */ jsx("div", { className: "er-stack", children: /* @__PURE__ */ jsx("div", { className: "er-center", children: /* @__PURE__ */ jsx("p", { className: "er-text er-text--error", children: eligibilityError }) }) });
|
|
1686
|
+
return /* @__PURE__ */ jsx("div", { className: "rb-reg-stack er-stack", children: /* @__PURE__ */ jsx("div", { className: "er-center", children: /* @__PURE__ */ jsx("p", { className: "er-text er-text--error", children: eligibilityError }) }) });
|
|
1732
1687
|
}
|
|
1733
1688
|
if (!eligibility) {
|
|
1734
1689
|
const missing = [];
|
|
1735
1690
|
if (!occurrenceId) missing.push("occurrenceId");
|
|
1736
1691
|
if (!email) missing.push("email");
|
|
1737
|
-
return /* @__PURE__ */ jsx("div", { className: "er-stack", children: /* @__PURE__ */ jsx("div", { className: "er-center", children: /* @__PURE__ */ jsxs("p", { className: "er-text er-text--error", children: [
|
|
1692
|
+
return /* @__PURE__ */ jsx("div", { className: "rb-reg-stack er-stack", children: /* @__PURE__ */ jsx("div", { className: "er-center", children: /* @__PURE__ */ jsxs("p", { className: "er-text er-text--error", children: [
|
|
1738
1693
|
"Unable to determine payment options",
|
|
1739
1694
|
missing.length > 0 && ` (missing: ${missing.join(", ")})`
|
|
1740
1695
|
] }) }) });
|
|
1741
1696
|
}
|
|
1742
1697
|
if (eligibility.isFree) {
|
|
1743
|
-
return /* @__PURE__ */ jsxs("div", { className: "er-stack", children: [
|
|
1698
|
+
return /* @__PURE__ */ jsxs("div", { className: "rb-reg-stack er-stack", children: [
|
|
1744
1699
|
/* @__PURE__ */ jsx("h3", { className: "er-title", children: "Payment" }),
|
|
1745
1700
|
/* @__PURE__ */ jsxs("div", { className: "er-payment-summary", children: [
|
|
1746
1701
|
/* @__PURE__ */ jsx("p", { className: "er-text er-text--success", children: "This event is free!" }),
|
|
@@ -1754,13 +1709,13 @@ var PaymentSelectionStep = ({
|
|
|
1754
1709
|
}
|
|
1755
1710
|
if (!eligibility.eligible) {
|
|
1756
1711
|
if (eligibility.isFull && !eligibility.canJoinWaitlist) {
|
|
1757
|
-
return /* @__PURE__ */ jsxs("div", { className: "er-stack", children: [
|
|
1712
|
+
return /* @__PURE__ */ jsxs("div", { className: "rb-reg-stack er-stack", children: [
|
|
1758
1713
|
/* @__PURE__ */ jsx("h3", { className: "er-title", children: "Sold Out" }),
|
|
1759
1714
|
/* @__PURE__ */ jsx("div", { className: "er-center", children: /* @__PURE__ */ jsx("p", { className: "er-text er-text--muted", children: "This event is fully booked and there is no waitlist available for this booking." }) })
|
|
1760
1715
|
] });
|
|
1761
1716
|
}
|
|
1762
1717
|
const shouldPromptLogin = !isAuthenticated && (eligibility.requiresAuthForPasses || eligibility.requiresAuthForMemberships);
|
|
1763
|
-
return /* @__PURE__ */ jsxs("div", { className: "er-stack", children: [
|
|
1718
|
+
return /* @__PURE__ */ jsxs("div", { className: "rb-reg-stack er-stack", children: [
|
|
1764
1719
|
/* @__PURE__ */ jsx("h3", { className: "er-title", children: shouldPromptLogin ? "Log In Required" : "Payment Required" }),
|
|
1765
1720
|
/* @__PURE__ */ jsx("div", { className: "er-center", children: shouldPromptLogin ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1766
1721
|
/* @__PURE__ */ jsx("p", { className: "er-text er-text--muted", children: "Have a pass or membership? Log in to use it." }),
|
|
@@ -1786,7 +1741,7 @@ var PaymentSelectionStep = ({
|
|
|
1786
1741
|
] });
|
|
1787
1742
|
}
|
|
1788
1743
|
const isMultiTicket = areEntitlementsDisabledForTicketCount(ticketsCount);
|
|
1789
|
-
return /* @__PURE__ */ jsxs("div", { className: "er-stack", children: [
|
|
1744
|
+
return /* @__PURE__ */ jsxs("div", { className: "rb-reg-stack er-stack", children: [
|
|
1790
1745
|
/* @__PURE__ */ jsx("h3", { className: "er-title", children: "Payment Options" }),
|
|
1791
1746
|
/* @__PURE__ */ jsxs("div", { className: "er-payment-tiles", children: [
|
|
1792
1747
|
canShowDirectPaymentOptions && /* @__PURE__ */ jsx(Fragment, { children: directPaymentOptions.map((option) => /* @__PURE__ */ jsx(
|
|
@@ -2161,7 +2116,7 @@ function EventRegistrationWizardActions(props) {
|
|
|
2161
2116
|
const ticketTypeSelectionBlocked = wizard.ticketTypeSelectionRequired && !wizard.hasValidTicketSelection;
|
|
2162
2117
|
const isContinueDisabled = isWaitingForEligibility || isCheckingExistingRegistration || hasExistingRegistration || isSoldOutWithoutWaitlist || ticketTypeSelectionBlocked;
|
|
2163
2118
|
const continueLabel = isCheckingExistingRegistration ? "Checking registration..." : hasExistingRegistration ? "Already registered" : isSoldOutWithoutWaitlist ? "Sold out" : ticketTypeSelectionBlocked ? "Choose a ticket" : "Continue";
|
|
2164
|
-
return /* @__PURE__ */ jsxs("div", { className: "er-actions", children: [
|
|
2119
|
+
return /* @__PURE__ */ jsxs("div", { className: "rb-wizard-actions er-actions", children: [
|
|
2165
2120
|
!wizard.hasPreSelectedContext && /* @__PURE__ */ jsx("button", { type: "button", onClick: () => wizard.setStep("select-event"), className: "er-back-btn", children: "\u2190 Back" }),
|
|
2166
2121
|
/* @__PURE__ */ jsx(
|
|
2167
2122
|
"button",
|
|
@@ -2183,7 +2138,7 @@ function EventRegistrationWizardActions(props) {
|
|
|
2183
2138
|
const isSoldOut = !hasWaitlistClaim && wizard.eligibility?.isFull === true && wizard.eligibility.canJoinWaitlist !== true;
|
|
2184
2139
|
const isContinueDisabled = isCheckingEligibility || isSoldOut;
|
|
2185
2140
|
const continueLabel = isCheckingEligibility ? "Checking availability..." : getDetailsButtonText();
|
|
2186
|
-
return /* @__PURE__ */ jsxs("div", { className: "er-actions", children: [
|
|
2141
|
+
return /* @__PURE__ */ jsxs("div", { className: "rb-wizard-actions er-actions", children: [
|
|
2187
2142
|
/* @__PURE__ */ jsx("button", { type: "button", onClick: () => wizard.setStep(prevStepForDetails), className: "er-back-btn", children: "\u2190 Back" }),
|
|
2188
2143
|
/* @__PURE__ */ jsx(
|
|
2189
2144
|
"button",
|
|
@@ -2202,7 +2157,7 @@ function EventRegistrationWizardActions(props) {
|
|
|
2202
2157
|
const handlePaymentContinue = () => {
|
|
2203
2158
|
void wizard.handlePaymentSelect();
|
|
2204
2159
|
};
|
|
2205
|
-
return /* @__PURE__ */ jsxs("div", { className: "er-actions", children: [
|
|
2160
|
+
return /* @__PURE__ */ jsxs("div", { className: "rb-wizard-actions er-actions", children: [
|
|
2206
2161
|
/* @__PURE__ */ jsx("button", { type: "button", onClick: () => wizard.setStep("enter-details"), className: "er-back-btn", children: "\u2190 Back" }),
|
|
2207
2162
|
status === "ready" && /* @__PURE__ */ jsx(
|
|
2208
2163
|
"button",
|
|
@@ -2258,7 +2213,6 @@ function EventRegistrationSummaryBar(props) {
|
|
|
2258
2213
|
const autoAppliedDiscount = wizard.discountCode.trim().length > 0 ? null : wizard.autoAppliedDiscount;
|
|
2259
2214
|
const autoAppliedDiscountCents = Math.max(0, autoAppliedDiscount?.computedAmountCents ?? 0);
|
|
2260
2215
|
const discountedTotalCents = Math.max(0, subtotalCents - autoAppliedDiscountCents);
|
|
2261
|
-
const selectedLineSummary = (wizard.ticketSelectionSummaryLines ?? []).filter((line) => line.ticketTypeId !== null).map((line) => `${line.quantity} x ${line.label}`).join(", ");
|
|
2262
2216
|
const selectedDirectPaymentOption = getSelectedDirectPaymentOption({
|
|
2263
2217
|
wizard,
|
|
2264
2218
|
totalCents: discountedTotalCents,
|
|
@@ -2295,10 +2249,6 @@ function EventRegistrationSummaryBar(props) {
|
|
|
2295
2249
|
/* @__PURE__ */ jsx("h4", { className: "er-summary-bar-event", children: summaryTitle }),
|
|
2296
2250
|
/* @__PURE__ */ jsxs("span", { className: "er-summary-bar-meta", children: [
|
|
2297
2251
|
summaryDate && formatEventDateTime(summaryDate, { timeZone: summaryTimeZone }),
|
|
2298
|
-
selectedLineSummary ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2299
|
-
" \xB7 ",
|
|
2300
|
-
selectedLineSummary
|
|
2301
|
-
] }) : null,
|
|
2302
2252
|
wizard.step !== "select-event" && wizard.step !== "select-tickets" && wizard.ticketsCount > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2303
2253
|
" \xB7 ",
|
|
2304
2254
|
wizard.ticketsCount,
|
|
@@ -2356,8 +2306,14 @@ function validateFormData(formData) {
|
|
|
2356
2306
|
}
|
|
2357
2307
|
return errors;
|
|
2358
2308
|
}
|
|
2309
|
+
var paymentVerificationDeps = {
|
|
2310
|
+
useBlockApi
|
|
2311
|
+
};
|
|
2359
2312
|
function usePaymentVerification(config) {
|
|
2360
|
-
|
|
2313
|
+
return usePaymentVerificationWithDeps(config, paymentVerificationDeps);
|
|
2314
|
+
}
|
|
2315
|
+
function usePaymentVerificationWithDeps(config, deps) {
|
|
2316
|
+
const api = deps.useBlockApi();
|
|
2361
2317
|
const pollingConfig = useMemo(() => {
|
|
2362
2318
|
if (!config) return null;
|
|
2363
2319
|
return {
|
|
@@ -2467,7 +2423,13 @@ function useEventRegistrationStripeReturn(options) {
|
|
|
2467
2423
|
}
|
|
2468
2424
|
|
|
2469
2425
|
// ../blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.ts
|
|
2426
|
+
var eventRegistrationSubmitDeps = {
|
|
2427
|
+
savePendingRegistration
|
|
2428
|
+
};
|
|
2470
2429
|
function useEventRegistrationSubmit(options) {
|
|
2430
|
+
return useEventRegistrationSubmitWithDeps(options, eventRegistrationSubmitDeps);
|
|
2431
|
+
}
|
|
2432
|
+
function useEventRegistrationSubmitWithDeps(options, deps) {
|
|
2471
2433
|
return async (method, passId, membershipId, selection, submitOptions) => {
|
|
2472
2434
|
const submitOccurrenceId = options.registrationTarget?.occurrenceId;
|
|
2473
2435
|
if (!submitOccurrenceId) {
|
|
@@ -2556,7 +2518,7 @@ function useEventRegistrationSubmit(options) {
|
|
|
2556
2518
|
}
|
|
2557
2519
|
const siteId = options.api.config.siteId;
|
|
2558
2520
|
if (siteId && submitOccurrenceId) {
|
|
2559
|
-
savePendingRegistration(siteId, submitOccurrenceId, {
|
|
2521
|
+
deps.savePendingRegistration(siteId, submitOccurrenceId, {
|
|
2560
2522
|
attendeeId: result.attendeeId,
|
|
2561
2523
|
formData: options.formData,
|
|
2562
2524
|
ticketSelections,
|
|
@@ -2612,6 +2574,15 @@ function useEventRegistrationSubmit(options) {
|
|
|
2612
2574
|
}
|
|
2613
2575
|
|
|
2614
2576
|
// ../blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.ts
|
|
2577
|
+
var eventRegistrationWizardDeps = {
|
|
2578
|
+
usePortalAuth,
|
|
2579
|
+
useEligibility,
|
|
2580
|
+
useExistingEventRegistration,
|
|
2581
|
+
useWaitlistClaim,
|
|
2582
|
+
useEventRegistrationStripeReturn,
|
|
2583
|
+
useEventRegistrationSubmit,
|
|
2584
|
+
useDiscountCodeUi
|
|
2585
|
+
};
|
|
2615
2586
|
function parseCurrencyInputToCents(value) {
|
|
2616
2587
|
const trimmed = value.trim();
|
|
2617
2588
|
if (!trimmed) return null;
|
|
@@ -2642,6 +2613,9 @@ function getSlidingScaleSelectionMessage(input) {
|
|
|
2642
2613
|
return null;
|
|
2643
2614
|
}
|
|
2644
2615
|
function useEventRegistrationWizard(options) {
|
|
2616
|
+
return useEventRegistrationWizardWithDeps(options, eventRegistrationWizardDeps);
|
|
2617
|
+
}
|
|
2618
|
+
function useEventRegistrationWizardWithDeps(options, deps) {
|
|
2645
2619
|
const api = useBlockApi();
|
|
2646
2620
|
const registrationEvents = useMemo(
|
|
2647
2621
|
() => toRegistrationEvents(options.events ?? []),
|
|
@@ -2691,8 +2665,8 @@ function useEventRegistrationWizard(options) {
|
|
|
2691
2665
|
const [registrationResult, setRegistrationResult] = useState(null);
|
|
2692
2666
|
const [errorMessage, setErrorMessage] = useState("");
|
|
2693
2667
|
const [altchaSolution, setAltchaSolution] = useState(null);
|
|
2694
|
-
const { authState: portalAuthState, profile: portalProfile } = usePortalAuth();
|
|
2695
|
-
const waitlistClaim = useWaitlistClaim();
|
|
2668
|
+
const { authState: portalAuthState, profile: portalProfile } = deps.usePortalAuth();
|
|
2669
|
+
const waitlistClaim = deps.useWaitlistClaim();
|
|
2696
2670
|
const [showMagicLinkModal, setShowMagicLinkModal] = useState(false);
|
|
2697
2671
|
const [pendingAttendeeId, setPendingAttendeeId] = useState(null);
|
|
2698
2672
|
const [paymentStepState, setPaymentStepState] = useState({
|
|
@@ -2757,7 +2731,7 @@ function useEventRegistrationWizard(options) {
|
|
|
2757
2731
|
if (flowState.ticketsCount === ticketsCount) return;
|
|
2758
2732
|
dispatchFlow({ type: "set-tickets-count", ticketsCount });
|
|
2759
2733
|
}, [flowState.ticketsCount, ticketsCount]);
|
|
2760
|
-
const eligibilityResult = useEligibility({
|
|
2734
|
+
const eligibilityResult = deps.useEligibility({
|
|
2761
2735
|
enabled: portalAuthState === "authenticated" || step === "enter-details" || step === "select-payment",
|
|
2762
2736
|
occurrenceId,
|
|
2763
2737
|
attendanceMode: selectedAttendanceMode,
|
|
@@ -2765,7 +2739,7 @@ function useEventRegistrationWizard(options) {
|
|
|
2765
2739
|
selectedSlidingAmount: parseCurrencyInputToCents(selectedSlidingAmountInput),
|
|
2766
2740
|
email: formData.email
|
|
2767
2741
|
});
|
|
2768
|
-
const existingRegistrationResult = useExistingEventRegistration({
|
|
2742
|
+
const existingRegistrationResult = deps.useExistingEventRegistration({
|
|
2769
2743
|
isAuthenticated: portalAuthState === "authenticated",
|
|
2770
2744
|
occurrenceId
|
|
2771
2745
|
});
|
|
@@ -2859,7 +2833,7 @@ function useEventRegistrationWizard(options) {
|
|
|
2859
2833
|
useEffect(() => {
|
|
2860
2834
|
dispatchFlow({ type: "eligibility-updated", eligibility });
|
|
2861
2835
|
}, [eligibility]);
|
|
2862
|
-
const verification = useEventRegistrationStripeReturn({
|
|
2836
|
+
const verification = deps.useEventRegistrationStripeReturn({
|
|
2863
2837
|
api,
|
|
2864
2838
|
events: registrationEvents,
|
|
2865
2839
|
occurrenceId,
|
|
@@ -3123,10 +3097,10 @@ function useEventRegistrationWizard(options) {
|
|
|
3123
3097
|
if (discountContext?.type !== "event") return void 0;
|
|
3124
3098
|
return ticketSelectionSubtotalCents;
|
|
3125
3099
|
}, [discountContext, ticketSelectionSubtotalCents]);
|
|
3126
|
-
const discountUi = useDiscountCodeUi({ api, discountContext, subtotalCents: discountSubtotalCents });
|
|
3100
|
+
const discountUi = deps.useDiscountCodeUi({ api, discountContext, subtotalCents: discountSubtotalCents });
|
|
3127
3101
|
const selectionMethod = paymentSelection.method;
|
|
3128
3102
|
const shouldShowDiscountToggle = discountContext !== null && discountUi.manualCodeEntryAllowed && (selectionMethod === "stripe" || selectionMethod === "pass_bundle" || selectionMethod === "membership_bundle");
|
|
3129
|
-
const handleSubmit = useEventRegistrationSubmit({
|
|
3103
|
+
const handleSubmit = deps.useEventRegistrationSubmit({
|
|
3130
3104
|
api,
|
|
3131
3105
|
registrationTarget,
|
|
3132
3106
|
selectedAttendanceMode,
|
|
@@ -3446,7 +3420,7 @@ function EventRegistrationWizard(props) {
|
|
|
3446
3420
|
description: wizard.waitlistClaim.loginMessage ?? "Log in to continue with your waitlist claim."
|
|
3447
3421
|
} : EVENT_PORTAL_AUTH_COPY.membership;
|
|
3448
3422
|
const showPortalAuthPrompt = waitlistClaimRequiresPortalLogin || wizard.step === "select-tickets" && wizard.portalAuthState !== "authenticated" && wizard.portalAuthState !== "checking" && hasPassOrMembershipProducts && summaryEventPricingType !== "free";
|
|
3449
|
-
const renderRegistrationSurface = (variant) => /* @__PURE__ */ jsxs("div", { className: `er-container${variant === "overlay" ? " er-container--overlay" : ""}`, children: [
|
|
3423
|
+
const renderRegistrationSurface = (variant) => /* @__PURE__ */ jsxs("div", { className: `rb-reg-surface er-container${variant === "overlay" ? " er-container--overlay" : ""}`, children: [
|
|
3450
3424
|
isWizardStep && /* @__PURE__ */ jsxs("div", { className: "er-payment-layout er-payment-layout--no-sidebar", children: [
|
|
3451
3425
|
/* @__PURE__ */ jsxs("div", { className: "er-payment-layout-main", children: [
|
|
3452
3426
|
totalSteps > 1 && /* @__PURE__ */ jsx(StepIndicator2, { currentStep: currentStepNumber, totalSteps, stepLabels }),
|
|
@@ -307,6 +307,13 @@ function assertNever3(value) {
|
|
|
307
307
|
// ../core/src/booking-date-time.ts
|
|
308
308
|
var DEFAULT_LOCALE = "en-US";
|
|
309
309
|
var FALLBACK_TIMEZONE = "UTC";
|
|
310
|
+
var DEFAULT_BOOKING_DATE_TIME_FORMAT = {
|
|
311
|
+
weekday: "short",
|
|
312
|
+
month: "short",
|
|
313
|
+
day: "numeric",
|
|
314
|
+
hour: "numeric",
|
|
315
|
+
minute: "2-digit"
|
|
316
|
+
};
|
|
310
317
|
var LOCAL_DATE_PATTERN = /^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})$/u;
|
|
311
318
|
function isValidTimeZone(timeZone) {
|
|
312
319
|
try {
|
|
@@ -509,13 +516,14 @@ function formatBookingTime(input, format = {
|
|
|
509
516
|
format
|
|
510
517
|
});
|
|
511
518
|
}
|
|
512
|
-
function formatBookingDateTime(input, format = {
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
}) {
|
|
519
|
+
function formatBookingDateTime(input, format = DEFAULT_BOOKING_DATE_TIME_FORMAT) {
|
|
520
|
+
if (format === DEFAULT_BOOKING_DATE_TIME_FORMAT) {
|
|
521
|
+
return `${formatBookingDate(input, {
|
|
522
|
+
weekday: "short",
|
|
523
|
+
month: "short",
|
|
524
|
+
day: "numeric"
|
|
525
|
+
})}, ${formatBookingTime(input)}`;
|
|
526
|
+
}
|
|
519
527
|
return formatBookingInstant(input.startsAt, {
|
|
520
528
|
locale: input.locale,
|
|
521
529
|
timeZone: input.timeZone,
|
|
@@ -119,6 +119,10 @@ var BOOKINGS = {
|
|
|
119
119
|
path: "/public/bookings/availability/slots",
|
|
120
120
|
method: "GET"
|
|
121
121
|
},
|
|
122
|
+
getWeeklySlotAvailability: {
|
|
123
|
+
path: "/public/bookings/weekly-slot-availability",
|
|
124
|
+
method: "GET"
|
|
125
|
+
},
|
|
122
126
|
getAvailableDates: {
|
|
123
127
|
path: "/public/bookings/availability/dates",
|
|
124
128
|
method: "GET"
|
|
@@ -661,6 +665,18 @@ function createBlockApi(config) {
|
|
|
661
665
|
}
|
|
662
666
|
});
|
|
663
667
|
},
|
|
668
|
+
async getWeeklySlotAvailability(params) {
|
|
669
|
+
const sid = requireSiteId();
|
|
670
|
+
return request(BOOKINGS.getWeeklySlotAvailability, {
|
|
671
|
+
query: {
|
|
672
|
+
siteId: sid,
|
|
673
|
+
serviceId: params.serviceId,
|
|
674
|
+
resourceId: params.resourceId,
|
|
675
|
+
horizonWeeks: params.horizonWeeks,
|
|
676
|
+
timezone: params.timezone
|
|
677
|
+
}
|
|
678
|
+
});
|
|
679
|
+
},
|
|
664
680
|
async getAvailableDates(params) {
|
|
665
681
|
const sid = requireSiteId();
|
|
666
682
|
return request(BOOKINGS.getAvailableDates, {
|
|
@@ -1185,6 +1201,7 @@ function FeedbackMessage({
|
|
|
1185
1201
|
tone,
|
|
1186
1202
|
children,
|
|
1187
1203
|
className,
|
|
1204
|
+
id,
|
|
1188
1205
|
title,
|
|
1189
1206
|
titleClassName,
|
|
1190
1207
|
bodyClassName,
|
|
@@ -1196,6 +1213,7 @@ function FeedbackMessage({
|
|
|
1196
1213
|
return /* @__PURE__ */ jsxs(
|
|
1197
1214
|
"div",
|
|
1198
1215
|
{
|
|
1216
|
+
id,
|
|
1199
1217
|
className,
|
|
1200
1218
|
"data-feedback-tone": tone,
|
|
1201
1219
|
role,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useBlockApi } from './chunk-
|
|
3
|
-
import { themeButtonClassName, assertNever } from './chunk-
|
|
4
|
-
import { resolvePlanningDateInput, formatBookingPriceDisplay } from './chunk-
|
|
2
|
+
import { useBlockApi } from './chunk-IOAHWAQG.mjs';
|
|
3
|
+
import { themeButtonClassName, assertNever } from './chunk-CYJ3MUFP.mjs';
|
|
4
|
+
import { resolvePlanningDateInput, formatBookingPriceDisplay } from './chunk-IIUIKJ4K.mjs';
|
|
5
5
|
import { useState, useReducer, useSyncExternalStore, useEffect } from 'react';
|
|
6
6
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
7
7
|
|
|
@@ -373,6 +373,9 @@ function getWaitlistClaimTokenFromUrl() {
|
|
|
373
373
|
const token = new URLSearchParams(window.location.search).get("waitlist_claim")?.trim() ?? "";
|
|
374
374
|
return token.length > 0 ? token : null;
|
|
375
375
|
}
|
|
376
|
+
var useWaitlistClaimDeps = {
|
|
377
|
+
useBlockApi
|
|
378
|
+
};
|
|
376
379
|
function subscribeToWaitlistClaimToken(callback) {
|
|
377
380
|
if (typeof window === "undefined") {
|
|
378
381
|
return () => {
|
|
@@ -388,7 +391,10 @@ function getWaitlistClaimTokenSnapshot() {
|
|
|
388
391
|
return getWaitlistClaimTokenFromUrl();
|
|
389
392
|
}
|
|
390
393
|
function useWaitlistClaim() {
|
|
391
|
-
|
|
394
|
+
return useWaitlistClaimWithDeps(useWaitlistClaimDeps);
|
|
395
|
+
}
|
|
396
|
+
function useWaitlistClaimWithDeps(deps) {
|
|
397
|
+
const api = deps.useBlockApi();
|
|
392
398
|
const token = useSyncExternalStore(
|
|
393
399
|
subscribeToWaitlistClaimToken,
|
|
394
400
|
getWaitlistClaimTokenSnapshot,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { addPassToCommerceCart, useCommerceCart } from './chunk-
|
|
3
|
-
import { CarouselNodeClient } from './chunk-
|
|
2
|
+
import { addPassToCommerceCart, useCommerceCart } from './chunk-ZU65LTI3.mjs';
|
|
3
|
+
import { CarouselNodeClient } from './chunk-H3H3ODO7.mjs';
|
|
4
4
|
import { buildRouteIslandApiConfig } from './chunk-L4J5Y62O.mjs';
|
|
5
|
-
import { useDiscountCodeUi, createBodyThemePortalRoot, consumeSearchParams, scrollToBlock, TerminalPanel, StateIcon, CheckIcon, CrossIcon, ActionRow, DiscountCodeDisclosure, consumeSearchParam, buildCheckoutReturnUrls } from './chunk-
|
|
5
|
+
import { useDiscountCodeUi, createBodyThemePortalRoot, consumeSearchParams, scrollToBlock, TerminalPanel, StateIcon, CheckIcon, CrossIcon, ActionRow, DiscountCodeDisclosure, consumeSearchParam, buildCheckoutReturnUrls } from './chunk-CLZ7NBSP.mjs';
|
|
6
6
|
import { ModalShell, resolveDedicatedCheckoutPath } from './chunk-WBQG7VJA.mjs';
|
|
7
|
-
import { useBlockApi, FeedbackMessage, BlockApiProvider, discountAvailabilityHasDiscounts, discountAvailabilityAllowsManualEntry, getAutoAppliedDiscountPreview } from './chunk-
|
|
7
|
+
import { useBlockApi, FeedbackMessage, BlockApiProvider, discountAvailabilityHasDiscounts, discountAvailabilityAllowsManualEntry, getAutoAppliedDiscountPreview } from './chunk-IOAHWAQG.mjs';
|
|
8
8
|
import { mountReactIsland } from './chunk-N7PBWBWQ.mjs';
|
|
9
|
-
import { themeButtonClassName, formatCommercePrice, formatInterval, getShopDisplayForItems, deriveCommerceCheckoutState, buildProductDetailDisplay, productItemKey, buildProductCartItem, buildProductCardDisplay, assertNever as assertNever$1, reportWorkflowError, clearWorkflowFeedback, unwrapRichTextRoot, createRichTextDocFromMarkdown, isRecord } from './chunk-
|
|
10
|
-
import { assertNever, ok, err, getCurrentResolveImageUrlContext, resolveImageUrlWithContext, ImagePresets } from './chunk-
|
|
9
|
+
import { themeButtonClassName, formatCommercePrice, formatInterval, getShopDisplayForItems, deriveCommerceCheckoutState, buildProductDetailDisplay, productItemKey, buildProductCartItem, buildProductCardDisplay, assertNever as assertNever$1, reportWorkflowError, clearWorkflowFeedback, unwrapRichTextRoot, createRichTextDocFromMarkdown, isRecord } from './chunk-CYJ3MUFP.mjs';
|
|
10
|
+
import { assertNever, ok, err, getCurrentResolveImageUrlContext, resolveImageUrlWithContext, ImagePresets } from './chunk-IIUIKJ4K.mjs';
|
|
11
11
|
import * as React3 from 'react';
|
|
12
12
|
import React3__default, { useState, useRef, useCallback, useEffect } from 'react';
|
|
13
13
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { formatPrice } from './chunk-
|
|
3
|
-
import { assertNever } from './chunk-
|
|
4
|
-
import { resolveFlexibleBalanceInitialPaymentCents, resolveFlexibleBalanceDueAt, getBookingInstalmentDepositRefundability, splitAmountWithRemainderInFirst, addIntervalPreservingMonthAnchor, clampConfiguredAmount, getBookingInstalmentPlanIntervalCount, omitZeroAmountFutureRows } from './chunk-
|
|
2
|
+
import { formatPrice } from './chunk-CLZ7NBSP.mjs';
|
|
3
|
+
import { assertNever } from './chunk-CYJ3MUFP.mjs';
|
|
4
|
+
import { resolveFlexibleBalanceInitialPaymentCents, resolveFlexibleBalanceDueAt, getBookingInstalmentDepositRefundability, splitAmountWithRemainderInFirst, addIntervalPreservingMonthAnchor, clampConfiguredAmount, getBookingInstalmentPlanIntervalCount, omitZeroAmountFutureRows } from './chunk-IIUIKJ4K.mjs';
|
|
5
5
|
import { useReducer, useRef, useCallback, useEffect } from 'react';
|
|
6
6
|
|
|
7
7
|
// ../blocks/src/system/runtime/shared/bookingPaymentOptionCopy.ts
|
|
@@ -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-CYJ3MUFP.mjs';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
|
|
4
4
|
var EMPTY_STATE = EMPTY_COMMERCE_CART_STATE;
|