@riverbankcms/sdk 0.127.0 → 0.128.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/dist/{PreviewEditorSidebar-BXtfF7tp.mjs → PreviewEditorSidebar-Dbvb7GIr.mjs} +9 -33
- package/dist/{PreviewEditorUI-Dou73Q0K.mjs → PreviewEditorUI-e9O9l20X.mjs} +3 -3
- package/dist/{PreviewQueryProvider-DgFDIwvK.mjs → PreviewQueryProvider-B1kbhaJD.mjs} +1 -1
- package/dist/SdkPreviewModeRuntime-BZHt6e9w.mjs +11006 -0
- package/dist/{SiteChromeCustomizeContext-DZiDBAYu.mjs → SiteChromeCustomizeContext-CvuGbHJX.mjs} +31619 -1483
- package/dist/_dts/ai/src/contracts/proposals.d.ts +288 -36
- package/dist/_dts/api/src/bookingClosures.d.ts +19 -3
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -3
- package/dist/_dts/api/src/bookingRecords.d.ts +0 -13
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +2 -2
- package/dist/_dts/api/src/communications.d.ts +2 -1
- package/dist/_dts/api/src/contactFormSummary.d.ts +15 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +2 -5
- package/dist/_dts/api/src/endpoints.d.ts +1 -1
- package/dist/_dts/api/src/footerSettings.d.ts +11 -0
- package/dist/_dts/api/src/index.d.ts +2 -1
- package/dist/_dts/api/src/occurrenceScheduling.d.ts +48 -0
- package/dist/_dts/api/src/participantMessaging.d.ts +5 -3
- package/dist/_dts/api/src/publicExperience/siteEndpoints.d.ts +7 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +7 -5
- package/dist/_dts/api/src/siteOperations.d.ts +12 -3
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +3 -2
- package/dist/_dts/blocks/src/client/form.d.ts +1 -0
- package/dist/_dts/blocks/src/client/newsletter-form.d.ts +1 -0
- package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -0
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -8
- package/dist/_dts/blocks/src/rendering/server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +41 -0
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup-destination.d.ts +14 -23
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +109 -23
- package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +42 -108
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +21 -54
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +26 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +21 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +29 -78
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +3 -6
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +27 -8
- package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +21 -0
- package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +3 -1
- package/dist/_dts/content-editor/src/FooterEngagementEditorFields.d.ts +31 -0
- package/dist/_dts/content-editor/src/FooterEngagementEditorPanel.d.ts +17 -0
- package/dist/_dts/content-editor/src/footerComposer.d.ts +3 -0
- package/dist/_dts/content-editor/src/footerEngagementDraft.d.ts +57 -0
- package/dist/_dts/content-editor/src/footerEngagementEditor.d.ts +11 -0
- package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +13 -0
- package/dist/_dts/content-editor/src/index.d.ts +1 -0
- package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +35 -0
- package/dist/_dts/core/src/footer-arrangement.d.ts +2 -0
- package/dist/_dts/core/src/footer-composition-types.d.ts +118 -0
- package/dist/_dts/core/src/footer-composition.d.ts +7 -116
- package/dist/_dts/core/src/footer-engagement.d.ts +30 -0
- package/dist/_dts/core/src/index.d.ts +4 -0
- package/dist/_dts/core/src/newsletter-signup-destination.d.ts +38 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +59 -6
- package/dist/_dts/db/src/index.d.ts +1 -0
- package/dist/_dts/db/src/schemas/forms.d.ts +72 -2
- package/dist/_dts/db/src/schemas/standard-contact.d.ts +114 -0
- package/dist/_dts/preview-next/src/client/blocks/previewBatchLoaderParams.d.ts +6 -0
- package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +2 -5
- package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +2 -5
- package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -5
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -4
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -4
- package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +6 -5
- package/dist/_dts/sdk/src/cli/commands/push/execute/footer.d.ts +9 -0
- package/dist/_dts/sdk/src/cli/content/footerFile.d.ts +10 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +3 -5
- package/dist/_dts/sdk/src/cli/site-commands/footerCommands.d.ts +15 -3
- package/dist/_dts/sdk/src/client/combineAbortSignals.d.ts +2 -0
- package/dist/_dts/sdk/src/client/management/types.d.ts +6 -15
- package/dist/_dts/sdk/src/client/types.d.ts +10 -2
- package/dist/_dts/sdk/src/client/wholeSeriesReadOperations.d.ts +11 -0
- 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/event-registration-content.d.ts +16 -0
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +4 -15
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +4 -18
- package/dist/_dts/sdk/src/public-api/teamMemberContracts.d.ts +17 -0
- package/dist/_dts/sdk/src/public-api/wholeSeriesContracts.d.ts +2 -0
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +7 -0
- package/dist/_dts/sdk/src/rendering/index.d.ts +5 -3
- package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +8 -2
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commandContract.d.ts +8 -1
- package/dist/_dts/site-commands/src/commands.d.ts +16 -2
- package/dist/_dts/theme-core/src/header/paintTargets.d.ts +10 -4
- package/dist/_dts/theme-core/src/header/surfaceRules.d.ts +2 -3
- package/dist/cli/index.mjs +5302 -4628
- package/dist/client/{courseRegistration-DTEYWL6Z.mjs → CourseRegistrationWizard-xRmA7REV.mjs} +329 -49
- package/dist/client/{DiscountCodeDisclosure-BDFRp8Y7.mjs → DiscountCodeDisclosure-B9vriL5C.mjs} +1 -1
- package/dist/client/{EventCombined.client-DJgF1_lf.mjs → EventCombined.client-BgVnVTlz.mjs} +2 -2
- package/dist/client/{EventListing.client-CnWGNjOr.mjs → EventListing.client-CqdsO7jO.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-BISs9Bl7.mjs → LeafletStaticMap-CKPxot9M.mjs} +1 -1
- package/dist/client/{StepIndicator-D8gVYkK-.mjs → StepIndicator-DGCYuBJ1.mjs} +2 -2
- package/dist/client/{accordion-DFDajgDz.mjs → accordion-BfN5Eqd-.mjs} +1 -1
- package/dist/client/{bookingForm-Bdqj9-52.mjs → bookingForm-DOvCpBFP.mjs} +5 -5
- package/dist/client/{carousel-Cvqf-kN8.mjs → carousel-DPNmiH0f.mjs} +1 -1
- package/dist/client/{cart-CuH2TJXP.mjs → cart--egVXlrR.mjs} +3 -3
- package/dist/client/{checkout-CMNPpejZ.mjs → checkout-DywWtMcq.mjs} +3 -3
- package/dist/client/client.mjs +4912 -4613
- package/dist/client/courseRegistration-Dk9qFVwt.mjs +46 -0
- package/dist/client/{eventCalendar-BW-XoxZ0.mjs → eventCalendar-Bkz2HjlS.mjs} +4 -4
- package/dist/client/{eventCombined-Bpn7s0y9.mjs → eventCombined-D4kipYWg.mjs} +2 -2
- package/dist/client/{eventDetails-D2uUSTMH.mjs → eventDetails-Dz_5ix2Q.mjs} +56 -35
- package/dist/client/{eventListing-CVr1c094.mjs → eventListing-D0vm-zST.mjs} +2 -2
- package/dist/client/{eventRegistration-Dv4AvkMw.mjs → eventRegistration-Cw1E4Q4p.mjs} +58 -6
- package/dist/client/{form-DxdKf9fs.mjs → form-C2Zf1n3K.mjs} +1 -1
- package/dist/client/{headerSection-BaXI5Sro.mjs → headerSection-CP05gzdc.mjs} +2 -2
- package/dist/client/hooks.mjs +212 -61
- package/dist/client/{locationMap-BEtW2fKz.mjs → locationMap-Cl3x9PYJ.mjs} +2 -2
- package/dist/client/{newsletterForm-BKKs0S4R.mjs → newsletterForm-DyEJoClm.mjs} +26 -20
- package/dist/client/{pricing-ClkqcElA.mjs → pricing-DGuNR1W4.mjs} +1 -1
- package/dist/client/{productDetail-H-ru8dyy.mjs → productDetail-Cq-HrGew.mjs} +3 -3
- package/dist/client/{productList-Buyi5c0C.mjs → productList-DbB3jwqd.mjs} +3 -3
- package/dist/client/{propsDecoder-BF7i6Ijg.mjs → propsDecoder-CiTuhUwY.mjs} +130 -87
- package/dist/client/rendering/client.mjs +416 -208
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +5522 -5237
- package/dist/client/{scrollToBlock-D_7t8yWb.mjs → scrollToBlock-CShkRqab.mjs} +1 -1
- package/dist/client/{shop-CF7SZQNX.mjs → shop-Cu4Ib-ZA.mjs} +5 -5
- package/dist/client/{shop-commerce-DA7_Rq5p.mjs → shop-commerce-BzpsOdh7.mjs} +4 -4
- package/dist/client/{shop-commerce-store-BmLqW7Gh.mjs → shop-commerce-store-DaE7Fhj8.mjs} +1 -1
- package/dist/client/{shopShared-WL-E1znM.mjs → shopShared-cF0c20vB.mjs} +2 -2
- package/dist/client/{useEventFilters-rc8VLeLV.mjs → useEventFilters-QZ3HMgaJ.mjs} +2 -2
- package/dist/client/{usePolling-1ncrfd4S.mjs → usePolling-BKf0GcE-.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +1 -1
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/middleware.mjs +1 -1
- package/dist/{previewAuthStore-Dev9CdG9.mjs → previewAuthStore-BesgU5Xu.mjs} +1 -1
- package/dist/{sdk-runtime-BnrCCFJq.mjs → sdk-runtime-Cn_QSCOg.mjs} +2 -2
- package/dist/{separator-CFvBx2yl.mjs → separator-CEoGABRc.mjs} +1 -1
- package/dist/server/components.mjs +473 -289
- package/dist/server/config-validation.mjs +209 -61
- package/dist/server/config.mjs +209 -61
- package/dist/server/data.mjs +212 -61
- package/dist/server/index.mjs +40 -16
- package/dist/server/next.mjs +513 -307
- package/dist/server/page-converter.mjs +211 -64
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +475 -282
- package/dist/server/rendering.mjs +482 -290
- package/dist/server/routing.mjs +254 -80
- package/dist/server/server.mjs +252 -77
- package/package.json +1 -1
- package/dist/SdkPreviewModeRuntime-B0HPXr-l.mjs +0 -39546
- package/dist/client/MagicLinkForm-b5E_HoG9.mjs +0 -327
package/dist/client/{courseRegistration-DTEYWL6Z.mjs → CourseRegistrationWizard-xRmA7REV.mjs}
RENAMED
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { At as formatBookingTime, Dt as formatBookingDate, Ft as toBookingTimeZone, Gt as assertNever, It as toScheduledBookingDateTime, Lt as parseEventPageSurfaceSubject, X as themeButtonClassName,
|
|
3
|
-
import { n as formatCoursePriceDisplay, r as resolveCoursePricingState, t as formatCoursePriceAmount } from "./pricing-
|
|
4
|
-
import { n as useBlockApi
|
|
2
|
+
import { At as formatBookingTime, Dt as formatBookingDate, Ft as toBookingTimeZone, Gt as assertNever, It as toScheduledBookingDateTime, Lt as parseEventPageSurfaceSubject, X as themeButtonClassName, yt as assertNever$1 } from "./propsDecoder-CiTuhUwY.mjs";
|
|
3
|
+
import { n as formatCoursePriceDisplay, r as resolveCoursePricingState, t as formatCoursePriceAmount } from "./pricing-DGuNR1W4.mjs";
|
|
4
|
+
import { n as useBlockApi } from "./context-CJz1Vlsz.mjs";
|
|
5
5
|
import { n as isSpamProtectionEnabled, r as AltchaWidget, t as getChallengeUrl } from "./src-B833rYRr.mjs";
|
|
6
|
-
import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-
|
|
7
|
-
import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-
|
|
8
|
-
import { n as SpinnerNode, r as formatPrice, t as StepIndicator$1 } from "./StepIndicator-
|
|
6
|
+
import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-CShkRqab.mjs";
|
|
7
|
+
import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-B9vriL5C.mjs";
|
|
8
|
+
import { n as SpinnerNode, r as formatPrice, t as StepIndicator$1 } from "./StepIndicator-DGCYuBJ1.mjs";
|
|
9
9
|
import { t as FeedbackMessage } from "./FeedbackMessage-ByMrs3cr.mjs";
|
|
10
10
|
import { n as getFieldValidationControlProps, t as FieldValidationMessage } from "./FieldValidationMessage-AYanWFb-.mjs";
|
|
11
11
|
import { t as buildCheckoutReturnUrls } from "./checkoutUrls-Ct8Mxna3.mjs";
|
|
12
|
-
import { a as ClockIcon, i as LoggedInAsUser, n as logoutPortal, r as useWaitlistClaim, t as MagicLinkForm } from "./MagicLinkForm-b5E_HoG9.mjs";
|
|
13
12
|
import { t as CrossIcon } from "./CrossIcon-Dn1KRKW5.mjs";
|
|
14
|
-
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
15
|
-
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-UNsfPcYq.mjs";
|
|
16
13
|
import { t as ModalShell } from "./ModalShell-CqkBvBIC.mjs";
|
|
17
|
-
import React, { Component, useCallback, useEffect, useMemo, useState } from "react";
|
|
14
|
+
import React, { Component, useCallback, useEffect, useMemo, useReducer, useState, useSyncExternalStore } from "react";
|
|
18
15
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
19
16
|
//#region ../blocks/src/system/runtime/shared/utils/validation.ts
|
|
20
17
|
const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
@@ -53,6 +50,23 @@ function getStepNumber(step, wizardSteps) {
|
|
|
53
50
|
return index >= 0 ? index + 1 : 1;
|
|
54
51
|
}
|
|
55
52
|
//#endregion
|
|
53
|
+
//#region ../blocks/src/system/runtime/shared/components/ClockIcon.tsx
|
|
54
|
+
function ClockIcon({ className, strokeWidth = 2 }) {
|
|
55
|
+
return /* @__PURE__ */ jsx("svg", {
|
|
56
|
+
fill: "none",
|
|
57
|
+
strokeLinecap: "round",
|
|
58
|
+
strokeLinejoin: "round",
|
|
59
|
+
strokeWidth,
|
|
60
|
+
viewBox: "0 0 24 24",
|
|
61
|
+
stroke: "currentColor",
|
|
62
|
+
className,
|
|
63
|
+
width: "1em",
|
|
64
|
+
height: "1em",
|
|
65
|
+
"aria-hidden": "true",
|
|
66
|
+
children: /* @__PURE__ */ jsx("path", { d: "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" })
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
//#endregion
|
|
56
70
|
//#region ../blocks/src/system/runtime/shared/components/MembershipHero.tsx
|
|
57
71
|
/**
|
|
58
72
|
* Celebratory UI shown when user's membership covers the course/event.
|
|
@@ -181,6 +195,29 @@ var CourseRegistrationErrorBoundary = class extends Component {
|
|
|
181
195
|
}
|
|
182
196
|
};
|
|
183
197
|
//#endregion
|
|
198
|
+
//#region ../blocks/src/system/runtime/shared/components/LoggedInAsUser.tsx
|
|
199
|
+
/**
|
|
200
|
+
* Displays the logged-in user's email with an optional logout link.
|
|
201
|
+
*
|
|
202
|
+
* Used in registration forms when the email field is locked due to portal authentication.
|
|
203
|
+
* Shows: "Logged in as {email} — Not you? Log out"
|
|
204
|
+
*/
|
|
205
|
+
function LoggedInAsUser({ email, onLogout, classPrefix }) {
|
|
206
|
+
return /* @__PURE__ */ jsxs("p", {
|
|
207
|
+
className: `${classPrefix}-logged-in-hint`,
|
|
208
|
+
children: [
|
|
209
|
+
"Logged in as ",
|
|
210
|
+
email,
|
|
211
|
+
onLogout && /* @__PURE__ */ jsxs(Fragment, { children: [" — ", /* @__PURE__ */ jsx("button", {
|
|
212
|
+
type: "button",
|
|
213
|
+
className: `${classPrefix}-link`,
|
|
214
|
+
onClick: onLogout,
|
|
215
|
+
children: "Not you? Log out"
|
|
216
|
+
})] })
|
|
217
|
+
]
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
//#endregion
|
|
184
221
|
//#region ../blocks/src/system/runtime/nodes/course-registration/components.tsx
|
|
185
222
|
function TeamMemberInlineList({ teamMembers }) {
|
|
186
223
|
return /* @__PURE__ */ jsx(Fragment, { children: teamMembers.map((teamMember, index) => /* @__PURE__ */ jsxs(React.Fragment, { children: [index > 0 ? ", " : "", teamMember.profilePath ? /* @__PURE__ */ jsx("a", {
|
|
@@ -490,6 +527,167 @@ function EnrollmentForm({ formData, errors, onChange, isEmailLocked, isLoading,
|
|
|
490
527
|
] });
|
|
491
528
|
}
|
|
492
529
|
//#endregion
|
|
530
|
+
//#region ../blocks/src/system/runtime/shared/useWaitlistClaim.state.ts
|
|
531
|
+
const DEFAULT_WAITLIST_CLAIM_ERROR = "Failed to resolve waitlist claim";
|
|
532
|
+
function createInitialWaitlistClaimState(hasToken) {
|
|
533
|
+
return hasToken ? { kind: "resolving" } : { kind: "idle" };
|
|
534
|
+
}
|
|
535
|
+
function waitlistClaimReducer(_state, action) {
|
|
536
|
+
switch (action.type) {
|
|
537
|
+
case "cleared": return { kind: "idle" };
|
|
538
|
+
case "started": return { kind: "resolving" };
|
|
539
|
+
case "resolved": return {
|
|
540
|
+
kind: "resolved",
|
|
541
|
+
claim: action.claim
|
|
542
|
+
};
|
|
543
|
+
case "failed": return action.failure;
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
function toWaitlistClaimResolveFailure(error) {
|
|
547
|
+
const message = error instanceof Error ? error.message : DEFAULT_WAITLIST_CLAIM_ERROR;
|
|
548
|
+
if (isUnauthorizedBlockApiError(error)) return {
|
|
549
|
+
kind: "portal-login-required",
|
|
550
|
+
message
|
|
551
|
+
};
|
|
552
|
+
return {
|
|
553
|
+
kind: "error",
|
|
554
|
+
message
|
|
555
|
+
};
|
|
556
|
+
}
|
|
557
|
+
function isUnauthorizedBlockApiError(error) {
|
|
558
|
+
return error instanceof Error && error.name === "BlockApiError" && hasStatus(error) && error.status === 401;
|
|
559
|
+
}
|
|
560
|
+
function hasStatus(value) {
|
|
561
|
+
return typeof value === "object" && value !== null && "status" in value;
|
|
562
|
+
}
|
|
563
|
+
function getWaitlistClaim(state) {
|
|
564
|
+
return state.kind === "resolved" ? state.claim : null;
|
|
565
|
+
}
|
|
566
|
+
function getWaitlistClaimError(state) {
|
|
567
|
+
return state.kind === "error" ? state.message : null;
|
|
568
|
+
}
|
|
569
|
+
function getWaitlistClaimLoginMessage(state) {
|
|
570
|
+
return state.kind === "portal-login-required" ? state.message : null;
|
|
571
|
+
}
|
|
572
|
+
function requiresWaitlistClaimPortalLogin(state) {
|
|
573
|
+
return state.kind === "portal-login-required";
|
|
574
|
+
}
|
|
575
|
+
function isWaitlistClaimLoading(state) {
|
|
576
|
+
return state.kind === "resolving";
|
|
577
|
+
}
|
|
578
|
+
//#endregion
|
|
579
|
+
//#region ../blocks/src/system/runtime/shared/useWaitlistClaim.ts
|
|
580
|
+
const WAITLIST_CLAIM_LOCATION_EVENT = "riverbank:waitlist-claim-location-change";
|
|
581
|
+
let historyPatched = false;
|
|
582
|
+
function emitWaitlistClaimLocationChange() {
|
|
583
|
+
if (typeof window === "undefined") return;
|
|
584
|
+
window.dispatchEvent(new Event(WAITLIST_CLAIM_LOCATION_EVENT));
|
|
585
|
+
}
|
|
586
|
+
function ensureWaitlistClaimLocationTracking() {
|
|
587
|
+
if (typeof window === "undefined" || historyPatched) return;
|
|
588
|
+
historyPatched = true;
|
|
589
|
+
const history = window.history;
|
|
590
|
+
if (history.__riverbankWaitlistClaimPatched__) return;
|
|
591
|
+
const wrapHistoryMethod = (method) => {
|
|
592
|
+
return function patched(...args) {
|
|
593
|
+
method.apply(this, args);
|
|
594
|
+
emitWaitlistClaimLocationChange();
|
|
595
|
+
};
|
|
596
|
+
};
|
|
597
|
+
try {
|
|
598
|
+
history.pushState = wrapHistoryMethod(history.pushState);
|
|
599
|
+
history.replaceState = wrapHistoryMethod(history.replaceState);
|
|
600
|
+
history.__riverbankWaitlistClaimPatched__ = true;
|
|
601
|
+
} catch {}
|
|
602
|
+
window.addEventListener("popstate", emitWaitlistClaimLocationChange);
|
|
603
|
+
}
|
|
604
|
+
function getWaitlistClaimTokenFromUrl() {
|
|
605
|
+
if (typeof window === "undefined") return null;
|
|
606
|
+
const token = new URLSearchParams(window.location.search).get("waitlist_claim")?.trim() ?? "";
|
|
607
|
+
return token.length > 0 ? token : null;
|
|
608
|
+
}
|
|
609
|
+
const useWaitlistClaimDeps = { useBlockApi };
|
|
610
|
+
function subscribeToWaitlistClaimToken(callback) {
|
|
611
|
+
if (typeof window === "undefined") return () => {};
|
|
612
|
+
ensureWaitlistClaimLocationTracking();
|
|
613
|
+
window.addEventListener(WAITLIST_CLAIM_LOCATION_EVENT, callback);
|
|
614
|
+
return () => {
|
|
615
|
+
window.removeEventListener(WAITLIST_CLAIM_LOCATION_EVENT, callback);
|
|
616
|
+
};
|
|
617
|
+
}
|
|
618
|
+
function getWaitlistClaimTokenSnapshot() {
|
|
619
|
+
return getWaitlistClaimTokenFromUrl();
|
|
620
|
+
}
|
|
621
|
+
function useWaitlistClaim() {
|
|
622
|
+
return useWaitlistClaimWithDeps(useWaitlistClaimDeps);
|
|
623
|
+
}
|
|
624
|
+
function useWaitlistClaimWithDeps(deps) {
|
|
625
|
+
const api = deps.useBlockApi();
|
|
626
|
+
const token = useSyncExternalStore(subscribeToWaitlistClaimToken, getWaitlistClaimTokenSnapshot, () => null);
|
|
627
|
+
const [state, dispatch] = useReducer(waitlistClaimReducer, Boolean(token), createInitialWaitlistClaimState);
|
|
628
|
+
useEffect(() => {
|
|
629
|
+
let cancelled = false;
|
|
630
|
+
async function resolveClaim() {
|
|
631
|
+
if (!token) {
|
|
632
|
+
dispatch({ type: "cleared" });
|
|
633
|
+
return;
|
|
634
|
+
}
|
|
635
|
+
dispatch({ type: "started" });
|
|
636
|
+
try {
|
|
637
|
+
const result = await api.resolveWaitlistClaim({ claimToken: token });
|
|
638
|
+
if (cancelled) return;
|
|
639
|
+
dispatch({
|
|
640
|
+
type: "resolved",
|
|
641
|
+
claim: result
|
|
642
|
+
});
|
|
643
|
+
} catch (claimError) {
|
|
644
|
+
if (cancelled) return;
|
|
645
|
+
dispatch({
|
|
646
|
+
type: "failed",
|
|
647
|
+
failure: toWaitlistClaimResolveFailure(claimError)
|
|
648
|
+
});
|
|
649
|
+
}
|
|
650
|
+
}
|
|
651
|
+
resolveClaim();
|
|
652
|
+
return () => {
|
|
653
|
+
cancelled = true;
|
|
654
|
+
};
|
|
655
|
+
}, [api, token]);
|
|
656
|
+
return {
|
|
657
|
+
token,
|
|
658
|
+
claim: getWaitlistClaim(state),
|
|
659
|
+
error: getWaitlistClaimError(state),
|
|
660
|
+
loginMessage: getWaitlistClaimLoginMessage(state),
|
|
661
|
+
requiresPortalLogin: requiresWaitlistClaimPortalLogin(state),
|
|
662
|
+
isLoading: isWaitlistClaimLoading(state)
|
|
663
|
+
};
|
|
664
|
+
}
|
|
665
|
+
//#endregion
|
|
666
|
+
//#region ../blocks/src/system/runtime/shared/utils/portalLogout.ts
|
|
667
|
+
/**
|
|
668
|
+
* Portal Logout Utility
|
|
669
|
+
*
|
|
670
|
+
* Logout from the customer portal by POSTing to the logout endpoint.
|
|
671
|
+
* Uses a hidden form because the httpOnly cookie can only be cleared server-side.
|
|
672
|
+
*/
|
|
673
|
+
/**
|
|
674
|
+
* Logout from the customer portal.
|
|
675
|
+
*
|
|
676
|
+
* @param anchorId - The anchor ID to redirect back to after logout
|
|
677
|
+
*/
|
|
678
|
+
function logoutPortal(anchorId) {
|
|
679
|
+
const form = document.createElement("form");
|
|
680
|
+
form.method = "POST";
|
|
681
|
+
form.action = "/api/portal/logout";
|
|
682
|
+
const redirectInput = document.createElement("input");
|
|
683
|
+
redirectInput.type = "hidden";
|
|
684
|
+
redirectInput.name = "redirect_to";
|
|
685
|
+
redirectInput.value = `${window.location.pathname}#${anchorId}`;
|
|
686
|
+
form.appendChild(redirectInput);
|
|
687
|
+
document.body.appendChild(form);
|
|
688
|
+
form.submit();
|
|
689
|
+
}
|
|
690
|
+
//#endregion
|
|
493
691
|
//#region ../blocks/src/system/runtime/nodes/course-registration/pricing.ts
|
|
494
692
|
function parseCurrencyInputToCents(value) {
|
|
495
693
|
const trimmed = value.trim();
|
|
@@ -1373,6 +1571,126 @@ function BookingModeStep({ bookingMode, onBookingModeChange, eligibleMemberships
|
|
|
1373
1571
|
});
|
|
1374
1572
|
}
|
|
1375
1573
|
//#endregion
|
|
1574
|
+
//#region ../blocks/src/system/runtime/nodes/shared/MagicLinkForm.state.ts
|
|
1575
|
+
const initialMagicLinkSubmissionState = Object.freeze({ tag: "idle" });
|
|
1576
|
+
function magicLinkSubmissionReducer(state, action) {
|
|
1577
|
+
switch (action.type) {
|
|
1578
|
+
case "submit-started":
|
|
1579
|
+
if (state.tag === "submitting") return state;
|
|
1580
|
+
return { tag: "submitting" };
|
|
1581
|
+
case "submit-succeeded":
|
|
1582
|
+
if (state.tag !== "submitting") return state;
|
|
1583
|
+
return { tag: "success" };
|
|
1584
|
+
case "submit-failed":
|
|
1585
|
+
if (state.tag !== "submitting") return state;
|
|
1586
|
+
return {
|
|
1587
|
+
tag: "error",
|
|
1588
|
+
message: action.message
|
|
1589
|
+
};
|
|
1590
|
+
case "reset": return initialMagicLinkSubmissionState;
|
|
1591
|
+
default: return assertNever$1(action);
|
|
1592
|
+
}
|
|
1593
|
+
}
|
|
1594
|
+
function isMagicLinkSubmitting(state) {
|
|
1595
|
+
return state.tag === "submitting";
|
|
1596
|
+
}
|
|
1597
|
+
function getMagicLinkError(state) {
|
|
1598
|
+
return state.tag === "error" ? state.message : null;
|
|
1599
|
+
}
|
|
1600
|
+
//#endregion
|
|
1601
|
+
//#region ../blocks/src/system/runtime/nodes/shared/MagicLinkForm.tsx
|
|
1602
|
+
/**
|
|
1603
|
+
* Reusable magic link login form.
|
|
1604
|
+
* Used by Customer Portal and Event Registration blocks.
|
|
1605
|
+
*/
|
|
1606
|
+
function MagicLinkForm({ initialEmail = "", title, subtitle, buttonText = "Send login link", successMessage = "Check your email for a login link to sign in.", onSuccess, classPrefix = "er", compact = false }) {
|
|
1607
|
+
const api = useBlockApi();
|
|
1608
|
+
const [email, setEmail] = useState(initialEmail);
|
|
1609
|
+
const [submissionState, dispatchSubmission] = useReducer(magicLinkSubmissionReducer, initialMagicLinkSubmissionState);
|
|
1610
|
+
const loading = isMagicLinkSubmitting(submissionState);
|
|
1611
|
+
const error = getMagicLinkError(submissionState);
|
|
1612
|
+
const handleSubmit = async (e) => {
|
|
1613
|
+
e.preventDefault();
|
|
1614
|
+
const normalizedEmail = email.trim().toLowerCase();
|
|
1615
|
+
if (!normalizedEmail || loading) return;
|
|
1616
|
+
dispatchSubmission({ type: "submit-started" });
|
|
1617
|
+
try {
|
|
1618
|
+
const redirectTo = `${window.location.pathname}${window.location.search}${window.location.hash}`;
|
|
1619
|
+
await api.sendMagicLink({
|
|
1620
|
+
email: normalizedEmail,
|
|
1621
|
+
redirectUrl: `${window.location.origin}/api/portal/callback?redirect_to=${encodeURIComponent(redirectTo)}`
|
|
1622
|
+
});
|
|
1623
|
+
dispatchSubmission({ type: "submit-succeeded" });
|
|
1624
|
+
onSuccess?.();
|
|
1625
|
+
} catch (err) {
|
|
1626
|
+
console.error("Magic link error:", err);
|
|
1627
|
+
dispatchSubmission({
|
|
1628
|
+
type: "submit-failed",
|
|
1629
|
+
message: getMagicLinkErrorMessage(err)
|
|
1630
|
+
});
|
|
1631
|
+
}
|
|
1632
|
+
};
|
|
1633
|
+
const handleReset = () => {
|
|
1634
|
+
setEmail("");
|
|
1635
|
+
dispatchSubmission({ type: "reset" });
|
|
1636
|
+
};
|
|
1637
|
+
if (submissionState.tag === "success") return /* @__PURE__ */ jsxs("div", {
|
|
1638
|
+
className: `${classPrefix}-magic-link-success`,
|
|
1639
|
+
children: [/* @__PURE__ */ jsx("p", {
|
|
1640
|
+
className: `${classPrefix}-portal-auth-text ${classPrefix}-portal-auth-text--success`,
|
|
1641
|
+
children: successMessage
|
|
1642
|
+
}), !compact && /* @__PURE__ */ jsx("button", {
|
|
1643
|
+
type: "button",
|
|
1644
|
+
className: classPrefix === "cp" ? themeButtonClassName({
|
|
1645
|
+
variant: "secondary",
|
|
1646
|
+
size: "md"
|
|
1647
|
+
}) : `${classPrefix}-modal-btn ${classPrefix}-modal-btn--secondary`,
|
|
1648
|
+
onClick: handleReset,
|
|
1649
|
+
children: "Try a different email"
|
|
1650
|
+
})]
|
|
1651
|
+
});
|
|
1652
|
+
return /* @__PURE__ */ jsxs("form", {
|
|
1653
|
+
onSubmit: handleSubmit,
|
|
1654
|
+
className: `${classPrefix}-magic-link-form`,
|
|
1655
|
+
children: [
|
|
1656
|
+
title && /* @__PURE__ */ jsx("h3", {
|
|
1657
|
+
className: `${classPrefix}-magic-link-title`,
|
|
1658
|
+
children: title
|
|
1659
|
+
}),
|
|
1660
|
+
subtitle && /* @__PURE__ */ jsx("p", {
|
|
1661
|
+
className: `${classPrefix}-portal-auth-text`,
|
|
1662
|
+
children: subtitle
|
|
1663
|
+
}),
|
|
1664
|
+
/* @__PURE__ */ jsx("input", {
|
|
1665
|
+
type: "email",
|
|
1666
|
+
className: classPrefix === "cp" ? "cp-input" : `${classPrefix}-form__input`,
|
|
1667
|
+
placeholder: "your@email.com",
|
|
1668
|
+
value: email,
|
|
1669
|
+
onChange: (e) => setEmail(e.target.value),
|
|
1670
|
+
autoFocus: !compact,
|
|
1671
|
+
required: true,
|
|
1672
|
+
disabled: loading
|
|
1673
|
+
}),
|
|
1674
|
+
error && /* @__PURE__ */ jsx("p", {
|
|
1675
|
+
className: `${classPrefix}-portal-auth-text ${classPrefix}-portal-auth-text--error`,
|
|
1676
|
+
children: error
|
|
1677
|
+
}),
|
|
1678
|
+
/* @__PURE__ */ jsx("button", {
|
|
1679
|
+
type: "submit",
|
|
1680
|
+
className: classPrefix === "cp" ? themeButtonClassName({
|
|
1681
|
+
variant: "primary",
|
|
1682
|
+
size: "md"
|
|
1683
|
+
}) : `${classPrefix}-modal-btn`,
|
|
1684
|
+
disabled: !email.trim() || loading,
|
|
1685
|
+
children: loading ? "Sending..." : buttonText
|
|
1686
|
+
})
|
|
1687
|
+
]
|
|
1688
|
+
});
|
|
1689
|
+
}
|
|
1690
|
+
function getMagicLinkErrorMessage(error) {
|
|
1691
|
+
return error instanceof Error ? error.message : "Failed to send. Please try again.";
|
|
1692
|
+
}
|
|
1693
|
+
//#endregion
|
|
1376
1694
|
//#region ../blocks/src/system/runtime/nodes/course-registration/PortalAuthSidebar.tsx
|
|
1377
1695
|
/**
|
|
1378
1696
|
* Portal authentication sidebar.
|
|
@@ -2012,42 +2330,4 @@ function CourseRegistrationWizard(props) {
|
|
|
2012
2330
|
});
|
|
2013
2331
|
}
|
|
2014
2332
|
//#endregion
|
|
2015
|
-
|
|
2016
|
-
function toCourseRegistrationClientProps(props) {
|
|
2017
|
-
return {
|
|
2018
|
-
...props.render.hydration,
|
|
2019
|
-
buttonText: props.render.display.summaryButtonText,
|
|
2020
|
-
className: props.render.display.className ?? void 0
|
|
2021
|
-
};
|
|
2022
|
-
}
|
|
2023
|
-
function CourseRegistrationClient(props) {
|
|
2024
|
-
return /* @__PURE__ */ jsx(CourseRegistrationErrorBoundary, {
|
|
2025
|
-
className: props.className,
|
|
2026
|
-
children: /* @__PURE__ */ jsx(CourseRegistrationWizard, { ...props })
|
|
2027
|
-
});
|
|
2028
|
-
}
|
|
2029
|
-
function CourseRegistrationIslandClient(props) {
|
|
2030
|
-
return /* @__PURE__ */ jsx(CourseRegistrationClient, { ...toCourseRegistrationClientProps(props) });
|
|
2031
|
-
}
|
|
2032
|
-
//#endregion
|
|
2033
|
-
//#region src/rendering/islands/enhancers/courseRegistration.tsx
|
|
2034
|
-
const decode = defineIslandPropsDecoder("course-registration");
|
|
2035
|
-
const enhance = (root, props) => {
|
|
2036
|
-
const { siteId, apiBaseUrl, stage, portalToken } = props;
|
|
2037
|
-
if (!siteId) throw new Error("[sdk:islands] course-registration requires siteId");
|
|
2038
|
-
if (!apiBaseUrl) throw new Error("[sdk:islands] course-registration requires apiBaseUrl");
|
|
2039
|
-
const apiConfig = buildRouteIslandApiConfig({
|
|
2040
|
-
apiBaseUrl,
|
|
2041
|
-
portalToken,
|
|
2042
|
-
siteId,
|
|
2043
|
-
stage
|
|
2044
|
-
});
|
|
2045
|
-
return mountReactIsland(root, ({ root: reactRoot }) => {
|
|
2046
|
-
reactRoot.render(/* @__PURE__ */ jsx(BlockApiProvider, {
|
|
2047
|
-
config: apiConfig,
|
|
2048
|
-
children: /* @__PURE__ */ jsx(CourseRegistrationIslandClient, { ...props })
|
|
2049
|
-
}));
|
|
2050
|
-
});
|
|
2051
|
-
};
|
|
2052
|
-
//#endregion
|
|
2053
|
-
export { decode, enhance };
|
|
2333
|
+
export { LoggedInAsUser as a, useWaitlistClaim as i, MagicLinkForm as n, CourseRegistrationErrorBoundary as o, logoutPortal as r, ClockIcon as s, CourseRegistrationWizard as t };
|
package/dist/client/{DiscountCodeDisclosure-BDFRp8Y7.mjs → DiscountCodeDisclosure-B9vriL5C.mjs}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { X as themeButtonClassName } from "./propsDecoder-
|
|
2
|
+
import { X as themeButtonClassName } from "./propsDecoder-CiTuhUwY.mjs";
|
|
3
3
|
import { useId } from "react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
//#region ../blocks/src/system/runtime/api/types/discounts.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as clsx } from "./clsx-DgIEfj3H.mjs";
|
|
3
|
-
import { A as formatDate, E as getEventRuntimeFiltersKey, F as formatEventTeacherLine, I as formatTime, L as getCardOrientation, N as formatEventPrice, R as getContainerClass, T as buildEventRuntimeFilters, U as getEventAvailability, V as resolveEventLinkProps, X as themeButtonClassName, yt as assertNever, z as groupEventsByDate } from "./propsDecoder-
|
|
4
|
-
import { a as EventCardClient, i as EventPaginatedListView, n as useEventPagination, o as EventFilters, r as toError, t as useEventFilters } from "./useEventFilters-
|
|
3
|
+
import { A as formatDate, E as getEventRuntimeFiltersKey, F as formatEventTeacherLine, I as formatTime, L as getCardOrientation, N as formatEventPrice, R as getContainerClass, T as buildEventRuntimeFilters, U as getEventAvailability, V as resolveEventLinkProps, X as themeButtonClassName, yt as assertNever, z as groupEventsByDate } from "./propsDecoder-CiTuhUwY.mjs";
|
|
4
|
+
import { a as EventCardClient, i as EventPaginatedListView, n as useEventPagination, o as EventFilters, r as toError, t as useEventFilters } from "./useEventFilters-QZ3HMgaJ.mjs";
|
|
5
5
|
import { n as useBlockApi } from "./context-CJz1Vlsz.mjs";
|
|
6
6
|
import { t as createBodyThemePortalRoot } from "./themePortalRoot-AGs4cE7t.mjs";
|
|
7
7
|
import { t as ModalShell } from "./ModalShell-CqkBvBIC.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { T as buildEventRuntimeFilters } from "./propsDecoder-
|
|
3
|
-
import { i as EventPaginatedListView, n as useEventPagination, o as EventFilters, t as useEventFilters } from "./useEventFilters-
|
|
2
|
+
import { T as buildEventRuntimeFilters } from "./propsDecoder-CiTuhUwY.mjs";
|
|
3
|
+
import { i as EventPaginatedListView, n as useEventPagination, o as EventFilters, t as useEventFilters } from "./useEventFilters-QZ3HMgaJ.mjs";
|
|
4
4
|
import { useId, useMemo } from "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region ../blocks/src/system/runtime/nodes/events/EventListing.client.tsx
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { J as isRecord } from "./propsDecoder-
|
|
2
|
+
import { J as isRecord } from "./propsDecoder-CiTuhUwY.mjs";
|
|
3
3
|
import { useEffect, useRef, useState } from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
//#region ../blocks/src/system/runtime/nodes/shared/LeafletStaticMap.tsx
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as clsx } from "./clsx-DgIEfj3H.mjs";
|
|
2
|
-
import { Wt as formatCurrencyAmount } from "./propsDecoder-
|
|
3
|
-
import { a as CheckIcon } from "./scrollToBlock-
|
|
2
|
+
import { Wt as formatCurrencyAmount } from "./propsDecoder-CiTuhUwY.mjs";
|
|
3
|
+
import { a as CheckIcon } from "./scrollToBlock-CShkRqab.mjs";
|
|
4
4
|
import "react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
//#region ../blocks/src/system/runtime/shared/utils/formatting.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as defineIslandPropsDecoder } from "./propsDecoder-
|
|
1
|
+
import { t as defineIslandPropsDecoder } from "./propsDecoder-CiTuhUwY.mjs";
|
|
2
2
|
//#region src/rendering/islands/enhancers/accordion.ts
|
|
3
3
|
const decode = defineIslandPropsDecoder("accordion");
|
|
4
4
|
function parseDefaultValues(value) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { d as unsafeAsAppointmentResourceId, f as unsafeAsAppointmentServiceId, g as unsafeAsPassId, m as unsafeAsFormId, p as unsafeAsCustomerPassId } from "./colorStyles-BWpj_h4C.mjs";
|
|
3
|
-
import { n as buildBookingPaymentSelectionViewModel, t as usePolling } from "./usePolling-
|
|
4
|
-
import { Ct as okWith, Et as addLocalScheduleDays, Nt as parseBookingLocalDate, Pt as resolveBookingTimeZoneId, Tt as reportWorkflowSuccess, Wt as formatCurrencyAmount, X as themeButtonClassName, _t as toSelectedCollectionOptionKind, at as formatBookingCentsAsCurrencyInput, bt as clearWorkflowFeedback, ct as getBookingServiceSlidingScale, dt as parseBookingCurrencyInputToCents, ft as prepareBookingSubmission, gt as resolveDefaultBookingServiceId, ht as resolveBookingSiteId, it as deriveBookingFormViewState, jt as formatLocalScheduleDate, kt as formatBookingInstant, lt as getBookingSuccessMessage, mt as resolveBookingPaymentStep, ot as formatBookingSubmissionPreparationError, pt as resolveAppointmentCheckoutVerificationState, rt as logger, st as getBookingRedirectStateFromLocation, t as defineIslandPropsDecoder, ut as isBookingServiceSlidingAmountInRange, vt as BOOKING_FORM_DATA_RESERVED_KEYS, wt as reportWorkflowError, xt as err, yt as assertNever } from "./propsDecoder-
|
|
3
|
+
import { n as buildBookingPaymentSelectionViewModel, t as usePolling } from "./usePolling-BKf0GcE-.mjs";
|
|
4
|
+
import { Ct as okWith, Et as addLocalScheduleDays, Nt as parseBookingLocalDate, Pt as resolveBookingTimeZoneId, Tt as reportWorkflowSuccess, Wt as formatCurrencyAmount, X as themeButtonClassName, _t as toSelectedCollectionOptionKind, at as formatBookingCentsAsCurrencyInput, bt as clearWorkflowFeedback, ct as getBookingServiceSlidingScale, dt as parseBookingCurrencyInputToCents, ft as prepareBookingSubmission, gt as resolveDefaultBookingServiceId, ht as resolveBookingSiteId, it as deriveBookingFormViewState, jt as formatLocalScheduleDate, kt as formatBookingInstant, lt as getBookingSuccessMessage, mt as resolveBookingPaymentStep, ot as formatBookingSubmissionPreparationError, pt as resolveAppointmentCheckoutVerificationState, rt as logger, st as getBookingRedirectStateFromLocation, t as defineIslandPropsDecoder, ut as isBookingServiceSlidingAmountInRange, vt as BOOKING_FORM_DATA_RESERVED_KEYS, wt as reportWorkflowError, xt as err, yt as assertNever } from "./propsDecoder-CiTuhUwY.mjs";
|
|
5
5
|
import { n as useBlockApi, t as BlockApiProvider } from "./context-CJz1Vlsz.mjs";
|
|
6
6
|
import { n as isSpamProtectionEnabled, r as AltchaWidget, t as getChallengeUrl } from "./src-B833rYRr.mjs";
|
|
7
|
-
import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-
|
|
8
|
-
import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-
|
|
9
|
-
import { n as SpinnerNode, t as StepIndicator } from "./StepIndicator-
|
|
7
|
+
import { a as CheckIcon, i as StateIcon, n as useDiscountCodeUi, r as TerminalPanel, t as scrollToBlock } from "./scrollToBlock-CShkRqab.mjs";
|
|
8
|
+
import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-B9vriL5C.mjs";
|
|
9
|
+
import { n as SpinnerNode, t as StepIndicator } from "./StepIndicator-DGCYuBJ1.mjs";
|
|
10
10
|
import { t as FeedbackMessage } from "./FeedbackMessage-ByMrs3cr.mjs";
|
|
11
11
|
import { n as getFieldValidationControlProps, t as FieldValidationMessage } from "./FieldValidationMessage-AYanWFb-.mjs";
|
|
12
12
|
import { t as buildCheckoutReturnUrls } from "./checkoutUrls-Ct8Mxna3.mjs";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as defineIslandPropsDecoder } from "./propsDecoder-
|
|
1
|
+
import { t as defineIslandPropsDecoder } from "./propsDecoder-CiTuhUwY.mjs";
|
|
2
2
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
3
3
|
import { n as normalizeCarouselProps, t as CarouselNodeClient } from "./carousel.client-CpwTUhIo.mjs";
|
|
4
4
|
import "react";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as defineIslandPropsDecoder } from "./propsDecoder-
|
|
2
|
-
import { t as CartController } from "./shop-commerce-
|
|
3
|
-
import { t as mountShopBlockIsland } from "./shopShared-
|
|
1
|
+
import { t as defineIslandPropsDecoder } from "./propsDecoder-CiTuhUwY.mjs";
|
|
2
|
+
import { t as CartController } from "./shop-commerce-BzpsOdh7.mjs";
|
|
3
|
+
import { t as mountShopBlockIsland } from "./shopShared-cF0c20vB.mjs";
|
|
4
4
|
import "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region ../blocks/src/system/runtime/nodes/cart.client.tsx
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as defineIslandPropsDecoder } from "./propsDecoder-
|
|
2
|
-
import { n as CheckoutController } from "./shop-commerce-
|
|
3
|
-
import { t as mountShopBlockIsland } from "./shopShared-
|
|
1
|
+
import { t as defineIslandPropsDecoder } from "./propsDecoder-CiTuhUwY.mjs";
|
|
2
|
+
import { n as CheckoutController } from "./shop-commerce-BzpsOdh7.mjs";
|
|
3
|
+
import { t as mountShopBlockIsland } from "./shopShared-cF0c20vB.mjs";
|
|
4
4
|
import "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region ../blocks/src/system/runtime/nodes/checkout.client.tsx
|