@riverbankcms/sdk 0.98.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/dist/{PreviewEditorSidebar-CG3SSJND.mjs → PreviewEditorSidebar-TPOKCCKY.mjs} +3 -3
- package/dist/{PreviewEditorUI-RHNGKAAU.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/commercePortalEndpoints.d.ts +5 -1
- package/dist/_dts/api/src/endpoints.d.ts +8 -0
- package/dist/_dts/api/src/index.d.ts +1 -1
- package/dist/_dts/api/src/siteOperations.d.ts +65 -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 +6 -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/hooks/useHeadlessBookingFlow.state.d.ts +2 -2
- 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/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/utils/date-formatting.d.ts +17 -1
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +274 -30
- package/dist/_dts/sdk/src/__mocks__/next-cache.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/push.d.ts +13 -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/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/client/index.d.ts +6 -0
- package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +6 -1
- 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/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/loadContent.d.ts +6 -0
- package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +8 -0
- package/dist/_dts/sdk/src/rendering/index.d.ts +7 -7
- 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/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-H24OU7WG.mjs → chunk-4HXF2QLH.mjs} +2 -2
- package/dist/{chunk-QPXE2OUZ.mjs → chunk-EMJIT3ZJ.mjs} +1 -1
- package/dist/{chunk-PKDPQHB5.mjs → chunk-PM7HGDHM.mjs} +2 -2
- package/dist/{chunk-DBRI3PQF.mjs → chunk-XO34WBBP.mjs} +1383 -1143
- package/dist/{chunk-6WDBXCPX.mjs → chunk-YGTTEVUM.mjs} +7 -7
- package/dist/{chunk-V2BYFSPW.mjs → chunk-YWTCCOSF.mjs} +8 -0
- package/dist/cli/index.mjs +1010 -921
- package/dist/client/{accordion-Q2BDNL53.mjs → accordion-QSUEYL4L.mjs} +2 -2
- package/dist/client/{bookingForm-ZMP4P7EK.mjs → bookingForm-QYGAHPDP.mjs} +364 -300
- package/dist/client/bookings.mjs +697 -411
- package/dist/client/{carousel-LW3UXPWO.mjs → carousel-SM2LEWAU.mjs} +3 -3
- package/dist/client/{cart-Z6D3KS6K.mjs → cart-3N3SFKNQ.mjs} +7 -7
- package/dist/client/{checkout-YMT2QJQM.mjs → checkout-YFAYPKPZ.mjs} +7 -7
- package/dist/client/{chunk-XNTHVZ25.mjs → chunk-5DLGREUB.mjs} +1 -1
- package/dist/client/{chunk-SK2BMD22.mjs → chunk-CLZ7NBSP.mjs} +147 -75
- package/dist/client/{chunk-R4XK3CKR.mjs → chunk-CYJ3MUFP.mjs} +6 -5
- package/dist/client/{chunk-JNE6UI6U.mjs → chunk-H3H3ODO7.mjs} +1 -1
- package/dist/client/{chunk-IEOECM7U.mjs → chunk-HPEQ4YWW.mjs} +28 -73
- package/dist/client/{chunk-PCHACQEB.mjs → chunk-IIUIKJ4K.mjs} +15 -7
- package/dist/client/{chunk-KDP7ZRZV.mjs → chunk-IOAHWAQG.mjs} +2 -0
- package/dist/client/{chunk-26ZBRXFR.mjs → chunk-JTKBF3W2.mjs} +3 -3
- package/dist/client/{chunk-OLAOAZEO.mjs → chunk-K7KTSACR.mjs} +1 -1
- package/dist/client/{chunk-ET2MDQQT.mjs → chunk-R32M5HFS.mjs} +6 -6
- package/dist/client/{chunk-DRRQ7QSL.mjs → chunk-WEVT46PX.mjs} +3 -3
- package/dist/client/{chunk-HBQEAOG4.mjs → chunk-ZU65LTI3.mjs} +1 -1
- package/dist/client/client.mjs +1875 -1581
- package/dist/client/{courseRegistration-DGKCMC77.mjs → courseRegistration-LYBE7VVK.mjs} +7 -7
- package/dist/client/{eventCalendar-74Z2NNFM.mjs → eventCalendar-FMTB75X6.mjs} +9 -9
- package/dist/client/{eventCombined-GK2ODOX2.mjs → eventCombined-E4LUCJXT.mjs} +9 -9
- package/dist/client/{eventDetails-MONAGT3N.mjs → eventDetails-GELSRR4Z.mjs} +9 -9
- package/dist/client/{eventListing-SKGAO6PS.mjs → eventListing-TB623B6R.mjs} +9 -9
- package/dist/client/{eventRegistration-6KISGXRD.mjs → eventRegistration-NRIKHXTI.mjs} +9 -9
- package/dist/client/{form-FXPRTXHI.mjs → form-Y4U4IAXE.mjs} +3 -3
- package/dist/client/{headerSection-7NAN5WNB.mjs → headerSection-QSOVV5P7.mjs} +3 -3
- package/dist/client/hooks.mjs +115 -21
- package/dist/client/{locationMap-UERN74U4.mjs → locationMap-QYCAHH7H.mjs} +3 -3
- package/dist/client/{newsletterForm-SGWXMJ7U.mjs → newsletterForm-NWHY5TBY.mjs} +3 -3
- package/dist/client/{productDetail-HN3HWZQZ.mjs → productDetail-FYDMU2CE.mjs} +7 -7
- package/dist/client/{productList-YT22Z5UR.mjs → productList-D76CGACQ.mjs} +7 -7
- package/dist/client/rendering/client.mjs +1209 -975
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +1952 -1638
- package/dist/client/{shop-TKEDNWUS.mjs → shop-SOUACT5N.mjs} +7 -7
- package/dist/preview-next/before-render.mjs +8 -0
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/preview-next/middleware.mjs +8 -0
- package/dist/{sdk-runtime-LWNYCQF2.mjs → sdk-runtime-XPVE3LBA.mjs} +6 -6
- package/dist/server/components.mjs +917 -765
- package/dist/server/config-validation.mjs +100 -19
- package/dist/server/config.mjs +100 -19
- package/dist/server/data.mjs +115 -21
- package/dist/server/index.mjs +59 -25
- package/dist/server/next.mjs +1017 -816
- package/dist/server/page-converter.mjs +92 -19
- package/dist/server/prebuild-loader.mjs +42 -23
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +932 -767
- package/dist/server/rendering.mjs +968 -776
- package/dist/server/routing.mjs +162 -36
- package/dist/server/server.mjs +156 -32
- 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-OV5PNJBB.mjs +0 -8
|
@@ -1751,6 +1751,13 @@ var init_resolver = __esm({
|
|
|
1751
1751
|
}
|
|
1752
1752
|
});
|
|
1753
1753
|
|
|
1754
|
+
// ../theme-core/src/interactive/generateBaseCSS.ts
|
|
1755
|
+
var init_generateBaseCSS = __esm({
|
|
1756
|
+
"../theme-core/src/interactive/generateBaseCSS.ts"() {
|
|
1757
|
+
"use strict";
|
|
1758
|
+
}
|
|
1759
|
+
});
|
|
1760
|
+
|
|
1754
1761
|
// ../theme-core/src/buttons/effects/presets/background.ts
|
|
1755
1762
|
var init_background = __esm({
|
|
1756
1763
|
"../theme-core/src/buttons/effects/presets/background.ts"() {
|
|
@@ -1886,6 +1893,7 @@ var init_generateButtonCss = __esm({
|
|
|
1886
1893
|
init_types2();
|
|
1887
1894
|
init_classNames();
|
|
1888
1895
|
init_resolver();
|
|
1896
|
+
init_generateBaseCSS();
|
|
1889
1897
|
init_generateEffectsCSS();
|
|
1890
1898
|
init_constants();
|
|
1891
1899
|
init_generateDefaultButtonSystem();
|
|
@@ -2453,15 +2461,16 @@ var init_joy_stamp = __esm({
|
|
|
2453
2461
|
// 700, matching the mockup's chunky button labels.
|
|
2454
2462
|
typography: "heading",
|
|
2455
2463
|
fontWeight: 700,
|
|
2464
|
+
fontSize: "text-lg",
|
|
2456
2465
|
borderWidth: 2,
|
|
2457
2466
|
hoverTransform: "none",
|
|
2458
2467
|
hoverColor: "none"
|
|
2459
2468
|
},
|
|
2460
2469
|
sizes: {
|
|
2461
|
-
sm: { padding: "0.625rem 1.25rem", fontSize: "text-
|
|
2462
|
-
md: { padding: "0.875rem 1.75rem", fontSize: "text-
|
|
2463
|
-
lg: { padding: "1.125rem 2.25rem", fontSize: "text-
|
|
2464
|
-
xl: { padding: "1.25rem 2.75rem", fontSize: "text-
|
|
2470
|
+
sm: { padding: "0.625rem 1.25rem", fontSize: "text-base" },
|
|
2471
|
+
md: { padding: "0.875rem 1.75rem", fontSize: "text-lg" },
|
|
2472
|
+
lg: { padding: "1.125rem 2.25rem", fontSize: "text-xl" },
|
|
2473
|
+
xl: { padding: "1.25rem 2.75rem", fontSize: "text-2xl" }
|
|
2465
2474
|
},
|
|
2466
2475
|
variants: [
|
|
2467
2476
|
{
|
|
@@ -3605,13 +3614,14 @@ function formatBookingTime(input, format = {
|
|
|
3605
3614
|
format
|
|
3606
3615
|
});
|
|
3607
3616
|
}
|
|
3608
|
-
function formatBookingDateTime(input, format = {
|
|
3609
|
-
|
|
3610
|
-
|
|
3611
|
-
|
|
3612
|
-
|
|
3613
|
-
|
|
3614
|
-
}) {
|
|
3617
|
+
function formatBookingDateTime(input, format = DEFAULT_BOOKING_DATE_TIME_FORMAT) {
|
|
3618
|
+
if (format === DEFAULT_BOOKING_DATE_TIME_FORMAT) {
|
|
3619
|
+
return `${formatBookingDate(input, {
|
|
3620
|
+
weekday: "short",
|
|
3621
|
+
month: "short",
|
|
3622
|
+
day: "numeric"
|
|
3623
|
+
})}, ${formatBookingTime(input)}`;
|
|
3624
|
+
}
|
|
3615
3625
|
return formatBookingInstant(input.startsAt, {
|
|
3616
3626
|
locale: input.locale,
|
|
3617
3627
|
timeZone: input.timeZone,
|
|
@@ -3671,13 +3681,20 @@ function addLocalScheduleDays(date, days) {
|
|
|
3671
3681
|
day: utcDate.getUTCDate()
|
|
3672
3682
|
};
|
|
3673
3683
|
}
|
|
3674
|
-
var DEFAULT_LOCALE, FALLBACK_TIMEZONE, LOCAL_DATE_PATTERN, DEFAULT_BOOKING_TIME_ZONE;
|
|
3684
|
+
var DEFAULT_LOCALE, FALLBACK_TIMEZONE, DEFAULT_BOOKING_DATE_TIME_FORMAT, LOCAL_DATE_PATTERN, DEFAULT_BOOKING_TIME_ZONE;
|
|
3675
3685
|
var init_booking_date_time = __esm({
|
|
3676
3686
|
"../core/src/booking-date-time.ts"() {
|
|
3677
3687
|
"use strict";
|
|
3678
3688
|
init_result();
|
|
3679
3689
|
DEFAULT_LOCALE = "en-US";
|
|
3680
3690
|
FALLBACK_TIMEZONE = "UTC";
|
|
3691
|
+
DEFAULT_BOOKING_DATE_TIME_FORMAT = {
|
|
3692
|
+
weekday: "short",
|
|
3693
|
+
month: "short",
|
|
3694
|
+
day: "numeric",
|
|
3695
|
+
hour: "numeric",
|
|
3696
|
+
minute: "2-digit"
|
|
3697
|
+
};
|
|
3681
3698
|
LOCAL_DATE_PATTERN = /^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})$/u;
|
|
3682
3699
|
DEFAULT_BOOKING_TIME_ZONE = FALLBACK_TIMEZONE;
|
|
3683
3700
|
}
|
|
@@ -10055,6 +10072,13 @@ var init_generateDefaultCardSystem = __esm({
|
|
|
10055
10072
|
}
|
|
10056
10073
|
});
|
|
10057
10074
|
|
|
10075
|
+
// ../theme-core/src/status/contextualColors.ts
|
|
10076
|
+
var init_contextualColors = __esm({
|
|
10077
|
+
"../theme-core/src/status/contextualColors.ts"() {
|
|
10078
|
+
"use strict";
|
|
10079
|
+
}
|
|
10080
|
+
});
|
|
10081
|
+
|
|
10058
10082
|
// ../theme-core/src/cards/generateCardCss.ts
|
|
10059
10083
|
var init_generateCardCss = __esm({
|
|
10060
10084
|
"../theme-core/src/cards/generateCardCss.ts"() {
|
|
@@ -10062,6 +10086,7 @@ var init_generateCardCss = __esm({
|
|
|
10062
10086
|
init_resolver();
|
|
10063
10087
|
init_constants2();
|
|
10064
10088
|
init_generateDefaultCardSystem();
|
|
10089
|
+
init_contextualColors();
|
|
10065
10090
|
}
|
|
10066
10091
|
});
|
|
10067
10092
|
|
|
@@ -25103,6 +25128,7 @@ function FeedbackMessage({
|
|
|
25103
25128
|
tone,
|
|
25104
25129
|
children,
|
|
25105
25130
|
className,
|
|
25131
|
+
id,
|
|
25106
25132
|
title,
|
|
25107
25133
|
titleClassName,
|
|
25108
25134
|
bodyClassName,
|
|
@@ -25114,6 +25140,7 @@ function FeedbackMessage({
|
|
|
25114
25140
|
return /* @__PURE__ */ jsxs37(
|
|
25115
25141
|
"div",
|
|
25116
25142
|
{
|
|
25143
|
+
id,
|
|
25117
25144
|
className,
|
|
25118
25145
|
"data-feedback-tone": tone,
|
|
25119
25146
|
role,
|
|
@@ -27952,32 +27979,120 @@ var init_client2 = __esm({
|
|
|
27952
27979
|
}
|
|
27953
27980
|
});
|
|
27954
27981
|
|
|
27982
|
+
// ../blocks/src/system/runtime/shared/components/CheckIcon.tsx
|
|
27983
|
+
import { jsx as jsx60 } from "react/jsx-runtime";
|
|
27984
|
+
function CheckIcon2({ className, strokeWidth = 2 }) {
|
|
27985
|
+
return /* @__PURE__ */ jsx60(
|
|
27986
|
+
"svg",
|
|
27987
|
+
{
|
|
27988
|
+
fill: "none",
|
|
27989
|
+
strokeLinecap: "round",
|
|
27990
|
+
strokeLinejoin: "round",
|
|
27991
|
+
strokeWidth,
|
|
27992
|
+
viewBox: "0 0 24 24",
|
|
27993
|
+
stroke: "currentColor",
|
|
27994
|
+
className,
|
|
27995
|
+
width: "1em",
|
|
27996
|
+
height: "1em",
|
|
27997
|
+
"aria-hidden": "true",
|
|
27998
|
+
children: /* @__PURE__ */ jsx60("path", { d: "M5 13l4 4L19 7" })
|
|
27999
|
+
}
|
|
28000
|
+
);
|
|
28001
|
+
}
|
|
28002
|
+
var init_CheckIcon = __esm({
|
|
28003
|
+
"../blocks/src/system/runtime/shared/components/CheckIcon.tsx"() {
|
|
28004
|
+
"use strict";
|
|
28005
|
+
}
|
|
28006
|
+
});
|
|
28007
|
+
|
|
28008
|
+
// ../blocks/src/system/runtime/shared/components/StateIcon.tsx
|
|
28009
|
+
import { jsx as jsx61 } from "react/jsx-runtime";
|
|
28010
|
+
function StateIcon({ variant, children }) {
|
|
28011
|
+
return /* @__PURE__ */ jsx61("div", { className: `rb-state-icon rb-state-icon--${variant}`, "aria-hidden": "true", children });
|
|
28012
|
+
}
|
|
28013
|
+
var init_StateIcon = __esm({
|
|
28014
|
+
"../blocks/src/system/runtime/shared/components/StateIcon.tsx"() {
|
|
28015
|
+
"use strict";
|
|
28016
|
+
}
|
|
28017
|
+
});
|
|
28018
|
+
|
|
28019
|
+
// ../blocks/src/system/runtime/shared/components/TerminalPanel.tsx
|
|
28020
|
+
import { jsx as jsx62, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
28021
|
+
function joinClasses5(...parts) {
|
|
28022
|
+
return parts.filter((part) => typeof part === "string" && part.length > 0).join(" ");
|
|
28023
|
+
}
|
|
28024
|
+
function TerminalPanel({
|
|
28025
|
+
tone,
|
|
28026
|
+
title,
|
|
28027
|
+
titleAs: Title = "h3",
|
|
28028
|
+
body,
|
|
28029
|
+
secondaryBody,
|
|
28030
|
+
icon: icon2,
|
|
28031
|
+
actions,
|
|
28032
|
+
className,
|
|
28033
|
+
titleClassName,
|
|
28034
|
+
bodyClassName,
|
|
28035
|
+
secondaryBodyClassName,
|
|
28036
|
+
iconClassName,
|
|
28037
|
+
actionsClassName,
|
|
28038
|
+
role,
|
|
28039
|
+
live
|
|
28040
|
+
}) {
|
|
28041
|
+
const resolvedRole = role ?? (tone === "error" ? "alert" : "status");
|
|
28042
|
+
const resolvedLive = live ?? (resolvedRole === "alert" ? "assertive" : "polite");
|
|
28043
|
+
return /* @__PURE__ */ jsxs43(
|
|
28044
|
+
"div",
|
|
28045
|
+
{
|
|
28046
|
+
className,
|
|
28047
|
+
"data-terminal-panel": true,
|
|
28048
|
+
"data-terminal-tone": tone,
|
|
28049
|
+
role: resolvedRole,
|
|
28050
|
+
"aria-live": resolvedLive === "off" ? void 0 : resolvedLive,
|
|
28051
|
+
children: [
|
|
28052
|
+
icon2 ? /* @__PURE__ */ jsx62("div", { className: joinClasses5(iconClassName), "data-terminal-icon": true, children: icon2 }) : null,
|
|
28053
|
+
/* @__PURE__ */ jsx62(Title, { className: joinClasses5(titleClassName), "data-terminal-title": true, children: title }),
|
|
28054
|
+
body ? /* @__PURE__ */ jsx62("div", { className: joinClasses5(bodyClassName), "data-terminal-body": true, children: body }) : null,
|
|
28055
|
+
actions ? /* @__PURE__ */ jsx62("div", { className: joinClasses5(actionsClassName), "data-terminal-actions": true, children: actions }) : null,
|
|
28056
|
+
secondaryBody ? /* @__PURE__ */ jsx62("div", { className: joinClasses5(secondaryBodyClassName), "data-terminal-secondary-body": true, children: secondaryBody }) : null
|
|
28057
|
+
]
|
|
28058
|
+
}
|
|
28059
|
+
);
|
|
28060
|
+
}
|
|
28061
|
+
var init_TerminalPanel = __esm({
|
|
28062
|
+
"../blocks/src/system/runtime/shared/components/TerminalPanel.tsx"() {
|
|
28063
|
+
"use strict";
|
|
28064
|
+
}
|
|
28065
|
+
});
|
|
28066
|
+
|
|
27955
28067
|
// ../blocks/src/system/runtime/components/booking/SuccessMessage.tsx
|
|
27956
|
-
import {
|
|
28068
|
+
import { jsx as jsx63, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
27957
28069
|
var SuccessMessage;
|
|
27958
28070
|
var init_SuccessMessage = __esm({
|
|
27959
28071
|
"../blocks/src/system/runtime/components/booking/SuccessMessage.tsx"() {
|
|
27960
28072
|
"use strict";
|
|
27961
|
-
|
|
28073
|
+
init_CheckIcon();
|
|
28074
|
+
init_StateIcon();
|
|
28075
|
+
init_TerminalPanel();
|
|
27962
28076
|
SuccessMessage = ({
|
|
27963
28077
|
message,
|
|
27964
28078
|
resourceName,
|
|
27965
28079
|
className
|
|
27966
28080
|
}) => {
|
|
27967
|
-
return /* @__PURE__ */
|
|
27968
|
-
|
|
28081
|
+
return /* @__PURE__ */ jsx63(
|
|
28082
|
+
TerminalPanel,
|
|
27969
28083
|
{
|
|
27970
28084
|
tone: "success",
|
|
27971
|
-
|
|
28085
|
+
title: "Booking confirmed",
|
|
28086
|
+
icon: /* @__PURE__ */ jsx63(StateIcon, { variant: "success", children: /* @__PURE__ */ jsx63(CheckIcon2, { strokeWidth: 3 }) }),
|
|
28087
|
+
body: /* @__PURE__ */ jsx63("p", { className: "ab-text", children: message }),
|
|
28088
|
+
secondaryBody: resourceName ? /* @__PURE__ */ jsxs44("p", { className: "ab-text rb-on-surface--muted", children: [
|
|
28089
|
+
"Practitioner: ",
|
|
28090
|
+
resourceName
|
|
28091
|
+
] }) : null,
|
|
28092
|
+
className: ["ab-center", className ?? ""].join(" ").trim(),
|
|
28093
|
+
titleClassName: "ab-terminal-title",
|
|
27972
28094
|
role: "alert",
|
|
27973
|
-
live: "polite"
|
|
27974
|
-
children: /* @__PURE__ */ jsxs43(Fragment8, { children: [
|
|
27975
|
-
/* @__PURE__ */ jsx60("p", { className: "ab-text", children: message }),
|
|
27976
|
-
resourceName ? /* @__PURE__ */ jsxs43("p", { className: "ab-text ab-text--muted", children: [
|
|
27977
|
-
"Practitioner: ",
|
|
27978
|
-
resourceName
|
|
27979
|
-
] }) : null
|
|
27980
|
-
] })
|
|
28095
|
+
live: "polite"
|
|
27981
28096
|
}
|
|
27982
28097
|
);
|
|
27983
28098
|
};
|
|
@@ -28061,9 +28176,30 @@ function formatDate2(dateStr) {
|
|
|
28061
28176
|
}
|
|
28062
28177
|
});
|
|
28063
28178
|
}
|
|
28064
|
-
function
|
|
28065
|
-
|
|
28179
|
+
function formatDatePillParts(dateStr) {
|
|
28180
|
+
const instant = `${dateStr}T00:00:00.000Z`;
|
|
28181
|
+
const partFormat = (format) => formatBookingInstant(instant, {
|
|
28066
28182
|
timeZone: DEFAULT_BOOKING_TIME_ZONE,
|
|
28183
|
+
format
|
|
28184
|
+
});
|
|
28185
|
+
return {
|
|
28186
|
+
weekday: partFormat({ weekday: "short" }),
|
|
28187
|
+
day: partFormat({ day: "numeric" }),
|
|
28188
|
+
month: partFormat({ month: "short" })
|
|
28189
|
+
};
|
|
28190
|
+
}
|
|
28191
|
+
function formatTimeShort(isoString, timeZone = DEFAULT_BOOKING_TIME_ZONE) {
|
|
28192
|
+
return formatBookingInstant(isoString, {
|
|
28193
|
+
timeZone,
|
|
28194
|
+
format: {
|
|
28195
|
+
hour: "numeric",
|
|
28196
|
+
minute: "2-digit"
|
|
28197
|
+
}
|
|
28198
|
+
});
|
|
28199
|
+
}
|
|
28200
|
+
function formatTime2(isoString, timeZone = DEFAULT_BOOKING_TIME_ZONE) {
|
|
28201
|
+
return formatBookingInstant(isoString, {
|
|
28202
|
+
timeZone,
|
|
28067
28203
|
format: {
|
|
28068
28204
|
hour: "numeric",
|
|
28069
28205
|
minute: "2-digit",
|
|
@@ -29306,6 +29442,24 @@ function toBookingSlotView(slot) {
|
|
|
29306
29442
|
function toBookingSlotViews(slots) {
|
|
29307
29443
|
return slots.map(toBookingSlotView);
|
|
29308
29444
|
}
|
|
29445
|
+
function deriveBookingSlotDisplayOptions(input) {
|
|
29446
|
+
const seenStartTimes = /* @__PURE__ */ new Set();
|
|
29447
|
+
const options = [];
|
|
29448
|
+
for (const slot of input.slots) {
|
|
29449
|
+
if (!input.hasSelectedResource) {
|
|
29450
|
+
if (seenStartTimes.has(slot.startAt)) continue;
|
|
29451
|
+
seenStartTimes.add(slot.startAt);
|
|
29452
|
+
}
|
|
29453
|
+
options.push({
|
|
29454
|
+
key: slot.key,
|
|
29455
|
+
startAt: slot.startAt,
|
|
29456
|
+
endAt: slot.endAt,
|
|
29457
|
+
resourceId: slot.resourceId,
|
|
29458
|
+
slot
|
|
29459
|
+
});
|
|
29460
|
+
}
|
|
29461
|
+
return options;
|
|
29462
|
+
}
|
|
29309
29463
|
function toBookingFormData(state) {
|
|
29310
29464
|
return {
|
|
29311
29465
|
...state.fieldValues,
|
|
@@ -30675,7 +30829,17 @@ var init_useAppointmentCheckoutVerification = __esm({
|
|
|
30675
30829
|
});
|
|
30676
30830
|
|
|
30677
30831
|
// ../blocks/src/system/runtime/components/booking/DatePicker.tsx
|
|
30678
|
-
import
|
|
30832
|
+
import React6 from "react";
|
|
30833
|
+
import { jsx as jsx64, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
30834
|
+
function DateFieldLabel({
|
|
30835
|
+
labelId,
|
|
30836
|
+
required
|
|
30837
|
+
}) {
|
|
30838
|
+
return /* @__PURE__ */ jsxs45("span", { className: "form-label", id: labelId, children: [
|
|
30839
|
+
"Select Date",
|
|
30840
|
+
required && /* @__PURE__ */ jsx64("span", { className: "required-marker", children: "*" })
|
|
30841
|
+
] });
|
|
30842
|
+
}
|
|
30679
30843
|
var DatePicker;
|
|
30680
30844
|
var init_DatePicker = __esm({
|
|
30681
30845
|
"../blocks/src/system/runtime/components/booking/DatePicker.tsx"() {
|
|
@@ -30687,67 +30851,91 @@ var init_DatePicker = __esm({
|
|
|
30687
30851
|
onChange,
|
|
30688
30852
|
dateOptions,
|
|
30689
30853
|
required = true,
|
|
30854
|
+
ariaDescribedBy,
|
|
30855
|
+
ariaInvalid,
|
|
30690
30856
|
isLoading = false,
|
|
30691
30857
|
isEmpty = false,
|
|
30692
30858
|
hasMore = false,
|
|
30693
30859
|
onLoadMore
|
|
30694
30860
|
}) => {
|
|
30861
|
+
const generatedId = React6.useId();
|
|
30862
|
+
const labelId = `${generatedId}-date-label`;
|
|
30863
|
+
const gridRef = React6.useRef(null);
|
|
30864
|
+
const previousCountRef = React6.useRef(dateOptions.length);
|
|
30865
|
+
React6.useEffect(() => {
|
|
30866
|
+
const previousCount = previousCountRef.current;
|
|
30867
|
+
previousCountRef.current = dateOptions.length;
|
|
30868
|
+
if (previousCount === 0 || dateOptions.length <= previousCount) return;
|
|
30869
|
+
const pills = gridRef.current?.querySelectorAll(
|
|
30870
|
+
"button[aria-pressed]"
|
|
30871
|
+
);
|
|
30872
|
+
pills?.[previousCount]?.focus();
|
|
30873
|
+
}, [dateOptions.length]);
|
|
30695
30874
|
if (isLoading) {
|
|
30696
|
-
return /* @__PURE__ */
|
|
30697
|
-
/* @__PURE__ */
|
|
30698
|
-
|
|
30699
|
-
|
|
30700
|
-
] }),
|
|
30701
|
-
/* @__PURE__ */ jsx61("div", { className: "ab-skeleton" }),
|
|
30702
|
-
/* @__PURE__ */ jsx61("p", { className: "ab-text ab-text--muted ab-text--sm", children: "Loading available dates..." })
|
|
30875
|
+
return /* @__PURE__ */ jsxs45("div", { className: "rb-reg-stack rb-reg-stack--sm", children: [
|
|
30876
|
+
/* @__PURE__ */ jsx64(DateFieldLabel, { labelId, required }),
|
|
30877
|
+
/* @__PURE__ */ jsx64("div", { className: "rb-shell-block" }),
|
|
30878
|
+
/* @__PURE__ */ jsx64("p", { className: "ab-text ab-text--sm rb-on-surface--muted", children: "Loading available dates..." })
|
|
30703
30879
|
] });
|
|
30704
30880
|
}
|
|
30705
30881
|
if (isEmpty) {
|
|
30706
|
-
return /* @__PURE__ */
|
|
30707
|
-
/* @__PURE__ */
|
|
30708
|
-
|
|
30709
|
-
required && /* @__PURE__ */ jsx61("span", { className: "ab-required", children: "*" })
|
|
30710
|
-
] }),
|
|
30711
|
-
/* @__PURE__ */ jsx61(FeedbackMessage, { tone: "warning", className: "ab-alert ab-alert--warning", role: "status", children: /* @__PURE__ */ jsxs44("p", { className: "ab-text", children: [
|
|
30882
|
+
return /* @__PURE__ */ jsxs45("div", { className: "rb-reg-stack rb-reg-stack--sm", children: [
|
|
30883
|
+
/* @__PURE__ */ jsx64(DateFieldLabel, { labelId, required }),
|
|
30884
|
+
/* @__PURE__ */ jsx64(FeedbackMessage, { tone: "warning", className: "alert alert-warning", role: "status", children: /* @__PURE__ */ jsxs45("p", { className: "ab-text", children: [
|
|
30712
30885
|
"No available dates in this period.",
|
|
30713
|
-
hasMore && onLoadMore && /* @__PURE__ */
|
|
30886
|
+
hasMore && onLoadMore && /* @__PURE__ */ jsx64(
|
|
30714
30887
|
"button",
|
|
30715
30888
|
{
|
|
30716
30889
|
type: "button",
|
|
30717
30890
|
onClick: onLoadMore,
|
|
30718
|
-
className: "ab-link",
|
|
30891
|
+
className: "ab-link rb-ml-2",
|
|
30719
30892
|
children: "Check later dates"
|
|
30720
30893
|
}
|
|
30721
30894
|
)
|
|
30722
30895
|
] }) })
|
|
30723
30896
|
] });
|
|
30724
30897
|
}
|
|
30725
|
-
return /* @__PURE__ */
|
|
30726
|
-
/* @__PURE__ */
|
|
30727
|
-
|
|
30728
|
-
|
|
30729
|
-
] }),
|
|
30730
|
-
/* @__PURE__ */ jsxs44(
|
|
30731
|
-
"select",
|
|
30898
|
+
return /* @__PURE__ */ jsxs45("div", { className: "rb-reg-stack rb-reg-stack--sm", children: [
|
|
30899
|
+
/* @__PURE__ */ jsx64(DateFieldLabel, { labelId, required }),
|
|
30900
|
+
/* @__PURE__ */ jsx64(
|
|
30901
|
+
"div",
|
|
30732
30902
|
{
|
|
30733
|
-
|
|
30734
|
-
|
|
30735
|
-
|
|
30736
|
-
|
|
30737
|
-
|
|
30738
|
-
|
|
30739
|
-
|
|
30740
|
-
|
|
30741
|
-
|
|
30903
|
+
ref: gridRef,
|
|
30904
|
+
role: "group",
|
|
30905
|
+
"aria-labelledby": labelId,
|
|
30906
|
+
"aria-describedby": ariaDescribedBy,
|
|
30907
|
+
"aria-invalid": ariaInvalid || void 0,
|
|
30908
|
+
"aria-required": required || void 0,
|
|
30909
|
+
className: "ab-pill-grid",
|
|
30910
|
+
children: dateOptions.map((date) => {
|
|
30911
|
+
const isSelected = value === date;
|
|
30912
|
+
const parts = formatDatePillParts(date);
|
|
30913
|
+
return /* @__PURE__ */ jsxs45(
|
|
30914
|
+
"button",
|
|
30915
|
+
{
|
|
30916
|
+
type: "button",
|
|
30917
|
+
onClick: () => onChange(isSelected ? "" : date),
|
|
30918
|
+
"aria-pressed": isSelected,
|
|
30919
|
+
"aria-label": formatDate2(date),
|
|
30920
|
+
className: `rb-option-card ab-date-pill${isSelected ? " rb-option-card--selected" : ""}`,
|
|
30921
|
+
children: [
|
|
30922
|
+
/* @__PURE__ */ jsx64("span", { className: "ab-pill-caption", "aria-hidden": "true", children: parts.weekday }),
|
|
30923
|
+
/* @__PURE__ */ jsx64("span", { className: "ab-pill-value", "aria-hidden": "true", children: parts.day }),
|
|
30924
|
+
/* @__PURE__ */ jsx64("span", { className: "ab-pill-caption", "aria-hidden": "true", children: parts.month })
|
|
30925
|
+
]
|
|
30926
|
+
},
|
|
30927
|
+
date
|
|
30928
|
+
);
|
|
30929
|
+
})
|
|
30742
30930
|
}
|
|
30743
30931
|
),
|
|
30744
|
-
hasMore && onLoadMore && /* @__PURE__ */
|
|
30932
|
+
hasMore && onLoadMore && /* @__PURE__ */ jsx64(
|
|
30745
30933
|
"button",
|
|
30746
30934
|
{
|
|
30747
30935
|
type: "button",
|
|
30748
30936
|
onClick: onLoadMore,
|
|
30749
30937
|
className: "ab-link",
|
|
30750
|
-
children: "
|
|
30938
|
+
children: "More dates \u2192"
|
|
30751
30939
|
}
|
|
30752
30940
|
)
|
|
30753
30941
|
] });
|
|
@@ -30756,7 +30944,8 @@ var init_DatePicker = __esm({
|
|
|
30756
30944
|
});
|
|
30757
30945
|
|
|
30758
30946
|
// ../blocks/src/system/runtime/components/booking/TimeSlotSelector.tsx
|
|
30759
|
-
import
|
|
30947
|
+
import React7 from "react";
|
|
30948
|
+
import { jsx as jsx65, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
30760
30949
|
var TimeSlotSelector;
|
|
30761
30950
|
var init_TimeSlotSelector = __esm({
|
|
30762
30951
|
"../blocks/src/system/runtime/components/booking/TimeSlotSelector.tsx"() {
|
|
@@ -30768,25 +30957,52 @@ var init_TimeSlotSelector = __esm({
|
|
|
30768
30957
|
onChange,
|
|
30769
30958
|
slots,
|
|
30770
30959
|
isLoading,
|
|
30771
|
-
|
|
30960
|
+
timezone,
|
|
30961
|
+
required = true,
|
|
30962
|
+
ariaDescribedBy,
|
|
30963
|
+
ariaInvalid
|
|
30772
30964
|
}) => {
|
|
30773
|
-
|
|
30774
|
-
|
|
30965
|
+
const generatedId = React7.useId();
|
|
30966
|
+
const labelId = `${generatedId}-time-label`;
|
|
30967
|
+
const groupRef = React7.useRef(null);
|
|
30968
|
+
const hadSlotsRef = React7.useRef(false);
|
|
30969
|
+
React7.useEffect(() => {
|
|
30970
|
+
const hasSlots = !isLoading && slots.length > 0;
|
|
30971
|
+
if (hasSlots && !hadSlotsRef.current) {
|
|
30972
|
+
groupRef.current?.scrollIntoView({ block: "nearest", behavior: "smooth" });
|
|
30973
|
+
}
|
|
30974
|
+
hadSlotsRef.current = hasSlots;
|
|
30975
|
+
}, [isLoading, slots.length]);
|
|
30976
|
+
return /* @__PURE__ */ jsxs46("div", { className: "rb-reg-stack rb-reg-stack--sm", children: [
|
|
30977
|
+
/* @__PURE__ */ jsxs46("span", { className: "form-label", id: labelId, children: [
|
|
30775
30978
|
"Select Time",
|
|
30776
|
-
required && /* @__PURE__ */
|
|
30979
|
+
required && /* @__PURE__ */ jsx65("span", { className: "required-marker", children: "*" })
|
|
30777
30980
|
] }),
|
|
30778
|
-
isLoading ? /* @__PURE__ */
|
|
30779
|
-
"
|
|
30981
|
+
isLoading ? /* @__PURE__ */ jsx65("div", { className: "rb-shell-block" }) : slots.length === 0 ? /* @__PURE__ */ jsx65(FeedbackMessage, { tone: "info", className: "alert alert-info", role: "status", children: "No available times for this date" }) : /* @__PURE__ */ jsx65(
|
|
30982
|
+
"div",
|
|
30780
30983
|
{
|
|
30781
|
-
|
|
30782
|
-
|
|
30783
|
-
|
|
30784
|
-
|
|
30785
|
-
|
|
30786
|
-
|
|
30787
|
-
|
|
30788
|
-
|
|
30789
|
-
|
|
30984
|
+
ref: groupRef,
|
|
30985
|
+
role: "group",
|
|
30986
|
+
"aria-labelledby": labelId,
|
|
30987
|
+
"aria-describedby": ariaDescribedBy,
|
|
30988
|
+
"aria-invalid": ariaInvalid || void 0,
|
|
30989
|
+
"aria-required": required || void 0,
|
|
30990
|
+
className: "ab-pill-grid",
|
|
30991
|
+
children: slots.map((slot) => {
|
|
30992
|
+
const isSelected = value === slot.key;
|
|
30993
|
+
return /* @__PURE__ */ jsx65(
|
|
30994
|
+
"button",
|
|
30995
|
+
{
|
|
30996
|
+
type: "button",
|
|
30997
|
+
onClick: () => onChange(isSelected ? "" : slot.key),
|
|
30998
|
+
"aria-pressed": isSelected,
|
|
30999
|
+
"aria-label": formatTime2(slot.startAt, timezone),
|
|
31000
|
+
className: `rb-option-card ab-time-pill${isSelected ? " rb-option-card--selected" : ""}`,
|
|
31001
|
+
children: formatTimeShort(slot.startAt, timezone)
|
|
31002
|
+
},
|
|
31003
|
+
slot.key
|
|
31004
|
+
);
|
|
31005
|
+
})
|
|
30790
31006
|
}
|
|
30791
31007
|
)
|
|
30792
31008
|
] });
|
|
@@ -30794,9 +31010,87 @@ var init_TimeSlotSelector = __esm({
|
|
|
30794
31010
|
}
|
|
30795
31011
|
});
|
|
30796
31012
|
|
|
31013
|
+
// ../blocks/src/system/runtime/shared/components/StepIndicator.tsx
|
|
31014
|
+
import { jsx as jsx66, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
31015
|
+
function buildClassChannels(slot, classPrefix, emitSharedClasses) {
|
|
31016
|
+
const classes = [];
|
|
31017
|
+
if (emitSharedClasses) classes.push(`rb-${slot}`);
|
|
31018
|
+
if (classPrefix) classes.push(`${classPrefix}-${slot}`);
|
|
31019
|
+
return classes;
|
|
31020
|
+
}
|
|
31021
|
+
function StepIndicator({
|
|
31022
|
+
currentStep,
|
|
31023
|
+
totalSteps,
|
|
31024
|
+
stepLabels,
|
|
31025
|
+
classPrefix,
|
|
31026
|
+
emitSharedClasses
|
|
31027
|
+
}) {
|
|
31028
|
+
const slotClass = (slot, modifier) => {
|
|
31029
|
+
const base = buildClassChannels(slot, classPrefix, emitSharedClasses);
|
|
31030
|
+
if (!modifier) return base.join(" ");
|
|
31031
|
+
const modified = buildClassChannels(
|
|
31032
|
+
`${slot}--${modifier}`,
|
|
31033
|
+
classPrefix,
|
|
31034
|
+
emitSharedClasses
|
|
31035
|
+
);
|
|
31036
|
+
return [...base, ...modified].join(" ");
|
|
31037
|
+
};
|
|
31038
|
+
return /* @__PURE__ */ jsx66("nav", { "aria-label": "Registration progress", className: slotClass("steps-nav"), children: /* @__PURE__ */ jsx66("ol", { className: slotClass("steps"), children: Array.from({ length: totalSteps }, (_, i) => {
|
|
31039
|
+
const stepNum = i + 1;
|
|
31040
|
+
const isActive = stepNum === currentStep;
|
|
31041
|
+
const isComplete = stepNum < currentStep;
|
|
31042
|
+
return /* @__PURE__ */ jsxs47(
|
|
31043
|
+
"li",
|
|
31044
|
+
{
|
|
31045
|
+
className: slotClass("step"),
|
|
31046
|
+
"aria-current": isActive ? "step" : void 0,
|
|
31047
|
+
children: [
|
|
31048
|
+
/* @__PURE__ */ jsx66(
|
|
31049
|
+
"div",
|
|
31050
|
+
{
|
|
31051
|
+
className: slotClass(
|
|
31052
|
+
"step-circle",
|
|
31053
|
+
isActive ? "active" : isComplete ? "completed" : void 0
|
|
31054
|
+
),
|
|
31055
|
+
children: isComplete ? /* @__PURE__ */ jsx66(CheckIcon2, { className: slotClass("step-check"), strokeWidth: 3 }) : stepNum
|
|
31056
|
+
}
|
|
31057
|
+
),
|
|
31058
|
+
stepLabels?.[i] && /* @__PURE__ */ jsx66(
|
|
31059
|
+
"span",
|
|
31060
|
+
{
|
|
31061
|
+
className: slotClass(
|
|
31062
|
+
"step-label",
|
|
31063
|
+
isActive ? "active" : void 0
|
|
31064
|
+
),
|
|
31065
|
+
children: stepLabels[i]
|
|
31066
|
+
}
|
|
31067
|
+
),
|
|
31068
|
+
stepNum < totalSteps && /* @__PURE__ */ jsx66(
|
|
31069
|
+
"div",
|
|
31070
|
+
{
|
|
31071
|
+
className: slotClass(
|
|
31072
|
+
"step-connector",
|
|
31073
|
+
isComplete ? "completed" : void 0
|
|
31074
|
+
),
|
|
31075
|
+
"aria-hidden": "true"
|
|
31076
|
+
}
|
|
31077
|
+
)
|
|
31078
|
+
]
|
|
31079
|
+
},
|
|
31080
|
+
i
|
|
31081
|
+
);
|
|
31082
|
+
}) }) });
|
|
31083
|
+
}
|
|
31084
|
+
var init_StepIndicator = __esm({
|
|
31085
|
+
"../blocks/src/system/runtime/shared/components/StepIndicator.tsx"() {
|
|
31086
|
+
"use strict";
|
|
31087
|
+
init_CheckIcon();
|
|
31088
|
+
}
|
|
31089
|
+
});
|
|
31090
|
+
|
|
30797
31091
|
// ../blocks/src/system/runtime/shared/components/DiscountCodeDisclosure.tsx
|
|
30798
31092
|
import { useId } from "react";
|
|
30799
|
-
import { jsx as
|
|
31093
|
+
import { jsx as jsx67, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
30800
31094
|
function getDiscountCodeDisclosureClasses(surface) {
|
|
30801
31095
|
if (surface === "theme-form") return themeFormClasses;
|
|
30802
31096
|
return BLOCK_DISCOUNT_CODE_DISCLOSURE_CLASSES[surface];
|
|
@@ -30833,10 +31127,10 @@ function DiscountCodeDisclosure({
|
|
|
30833
31127
|
onApply();
|
|
30834
31128
|
};
|
|
30835
31129
|
const feedbackClassName = feedback ? `${classes.feedback} status-${feedback.tone}` : classes.feedback;
|
|
30836
|
-
return /* @__PURE__ */
|
|
30837
|
-
/* @__PURE__ */
|
|
30838
|
-
/* @__PURE__ */
|
|
30839
|
-
/* @__PURE__ */
|
|
31130
|
+
return /* @__PURE__ */ jsx67("div", { className: classes.root, children: !isOpen ? /* @__PURE__ */ jsx67("button", { type: "button", className: classes.toggle, onClick: onOpen, children: toggleLabel }) : /* @__PURE__ */ jsxs48("div", { className: classes.form, children: [
|
|
31131
|
+
/* @__PURE__ */ jsx67("label", { htmlFor: inputId, className: classes.label, children: label }),
|
|
31132
|
+
/* @__PURE__ */ jsxs48("div", { className: classes.row, children: [
|
|
31133
|
+
/* @__PURE__ */ jsx67(
|
|
30840
31134
|
"input",
|
|
30841
31135
|
{
|
|
30842
31136
|
id: inputId,
|
|
@@ -30849,7 +31143,7 @@ function DiscountCodeDisclosure({
|
|
|
30849
31143
|
disabled: disabled || isApplying
|
|
30850
31144
|
}
|
|
30851
31145
|
),
|
|
30852
|
-
onApply ? /* @__PURE__ */
|
|
31146
|
+
onApply ? /* @__PURE__ */ jsx67(
|
|
30853
31147
|
"button",
|
|
30854
31148
|
{
|
|
30855
31149
|
type: "button",
|
|
@@ -30859,7 +31153,7 @@ function DiscountCodeDisclosure({
|
|
|
30859
31153
|
children: isApplying ? "Applying..." : applyLabel
|
|
30860
31154
|
}
|
|
30861
31155
|
) : null,
|
|
30862
|
-
/* @__PURE__ */
|
|
31156
|
+
/* @__PURE__ */ jsx67(
|
|
30863
31157
|
"button",
|
|
30864
31158
|
{
|
|
30865
31159
|
type: "button",
|
|
@@ -30870,8 +31164,8 @@ function DiscountCodeDisclosure({
|
|
|
30870
31164
|
}
|
|
30871
31165
|
)
|
|
30872
31166
|
] }),
|
|
30873
|
-
/* @__PURE__ */
|
|
30874
|
-
feedback ? /* @__PURE__ */
|
|
31167
|
+
/* @__PURE__ */ jsx67("p", { className: classes.hint, children: hint }),
|
|
31168
|
+
feedback ? /* @__PURE__ */ jsx67(
|
|
30875
31169
|
"p",
|
|
30876
31170
|
{
|
|
30877
31171
|
className: feedbackClassName,
|
|
@@ -30929,7 +31223,7 @@ var init_DiscountCodeDisclosure = __esm({
|
|
|
30929
31223
|
});
|
|
30930
31224
|
|
|
30931
31225
|
// ../blocks/src/system/runtime/shared/components/FieldValidationMessage.tsx
|
|
30932
|
-
import { jsx as
|
|
31226
|
+
import { jsx as jsx68 } from "react/jsx-runtime";
|
|
30933
31227
|
function getFieldValidationControlProps({
|
|
30934
31228
|
message,
|
|
30935
31229
|
messageId,
|
|
@@ -30948,7 +31242,7 @@ function FieldValidationMessage({
|
|
|
30948
31242
|
className,
|
|
30949
31243
|
live = "assertive"
|
|
30950
31244
|
}) {
|
|
30951
|
-
return /* @__PURE__ */
|
|
31245
|
+
return /* @__PURE__ */ jsx68(
|
|
30952
31246
|
"p",
|
|
30953
31247
|
{
|
|
30954
31248
|
id,
|
|
@@ -30968,7 +31262,11 @@ var init_FieldValidationMessage = __esm({
|
|
|
30968
31262
|
});
|
|
30969
31263
|
|
|
30970
31264
|
// ../blocks/src/system/runtime/nodes/booking-form.default-ui.tsx
|
|
30971
|
-
import
|
|
31265
|
+
import React8 from "react";
|
|
31266
|
+
import { Fragment as Fragment8, jsx as jsx69, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
31267
|
+
function optionCardClassName(isSelected) {
|
|
31268
|
+
return `rb-option-card${isSelected ? " rb-option-card--selected" : ""}`;
|
|
31269
|
+
}
|
|
30972
31270
|
function formatBookingAmount(amount, currency) {
|
|
30973
31271
|
return formatCurrencyAmount(amount, currency, { decimals: "auto" });
|
|
30974
31272
|
}
|
|
@@ -30977,6 +31275,7 @@ function HeadlessBookingDefaultForm({
|
|
|
30977
31275
|
onSubmit
|
|
30978
31276
|
}) {
|
|
30979
31277
|
const currentStep = booking.currentStep;
|
|
31278
|
+
const errorSummaryId = React8.useId();
|
|
30980
31279
|
const currentStepIndex = currentStep?.visibleIndex ?? 0;
|
|
30981
31280
|
const isFirstStep = currentStepIndex === 0;
|
|
30982
31281
|
const isLastStep = currentStepIndex === booking.steps.length - 1;
|
|
@@ -30989,20 +31288,34 @@ function HeadlessBookingDefaultForm({
|
|
|
30989
31288
|
}
|
|
30990
31289
|
};
|
|
30991
31290
|
if (!currentStep) {
|
|
30992
|
-
return /* @__PURE__ */
|
|
31291
|
+
return /* @__PURE__ */ jsx69("div", { className: "rb-text-center rb-py-12", children: /* @__PURE__ */ jsx69("p", { className: "status-muted", children: "No steps available" }) });
|
|
30993
31292
|
}
|
|
30994
|
-
return /* @__PURE__ */
|
|
30995
|
-
|
|
30996
|
-
|
|
31293
|
+
return /* @__PURE__ */ jsxs49("div", { className: "multi-step-form", children: [
|
|
31294
|
+
booking.steps.length > 1 ? /* @__PURE__ */ jsx69(
|
|
31295
|
+
StepIndicator,
|
|
30997
31296
|
{
|
|
30998
|
-
|
|
30999
|
-
|
|
31297
|
+
currentStep: currentStepIndex + 1,
|
|
31298
|
+
totalSteps: booking.steps.length,
|
|
31299
|
+
stepLabels: booking.steps.map((step) => step.label),
|
|
31300
|
+
emitSharedClasses: true
|
|
31301
|
+
}
|
|
31302
|
+
) : null,
|
|
31303
|
+
/* @__PURE__ */ jsx69("div", { className: "step-content", children: /* @__PURE__ */ jsx69(
|
|
31304
|
+
DefaultBookingStepContent,
|
|
31305
|
+
{
|
|
31306
|
+
booking,
|
|
31307
|
+
errorSummaryId
|
|
31000
31308
|
}
|
|
31001
31309
|
) }),
|
|
31002
|
-
/* @__PURE__ */
|
|
31003
|
-
|
|
31004
|
-
|
|
31005
|
-
|
|
31310
|
+
/* @__PURE__ */ jsx69(
|
|
31311
|
+
DefaultBookingErrorSummary,
|
|
31312
|
+
{
|
|
31313
|
+
errors: currentStep.errors,
|
|
31314
|
+
id: errorSummaryId
|
|
31315
|
+
}
|
|
31316
|
+
),
|
|
31317
|
+
/* @__PURE__ */ jsxs49("div", { className: "rb-wizard-actions", children: [
|
|
31318
|
+
!isFirstStep ? /* @__PURE__ */ jsx69(
|
|
31006
31319
|
"button",
|
|
31007
31320
|
{
|
|
31008
31321
|
type: "button",
|
|
@@ -31011,7 +31324,7 @@ function HeadlessBookingDefaultForm({
|
|
|
31011
31324
|
children: "Back"
|
|
31012
31325
|
}
|
|
31013
31326
|
) : null,
|
|
31014
|
-
/* @__PURE__ */
|
|
31327
|
+
/* @__PURE__ */ jsx69(
|
|
31015
31328
|
"button",
|
|
31016
31329
|
{
|
|
31017
31330
|
type: "button",
|
|
@@ -31019,13 +31332,9 @@ function HeadlessBookingDefaultForm({
|
|
|
31019
31332
|
void handlePrimaryAction();
|
|
31020
31333
|
},
|
|
31021
31334
|
disabled: isSubmitting,
|
|
31022
|
-
className: themeButtonClassName({
|
|
31023
|
-
|
|
31024
|
-
|
|
31025
|
-
extraClassName: "rb-flex-1"
|
|
31026
|
-
}),
|
|
31027
|
-
children: isSubmitting ? /* @__PURE__ */ jsxs47(Fragment9, { children: [
|
|
31028
|
-
/* @__PURE__ */ jsx65(
|
|
31335
|
+
className: themeButtonClassName({ variant: "primary", size: "md" }),
|
|
31336
|
+
children: isSubmitting ? /* @__PURE__ */ jsxs49(Fragment8, { children: [
|
|
31337
|
+
/* @__PURE__ */ jsx69(
|
|
31029
31338
|
SpinnerNode,
|
|
31030
31339
|
{
|
|
31031
31340
|
size: "sm",
|
|
@@ -31039,61 +31348,32 @@ function HeadlessBookingDefaultForm({
|
|
|
31039
31348
|
}
|
|
31040
31349
|
)
|
|
31041
31350
|
] }),
|
|
31042
|
-
/* @__PURE__ */
|
|
31043
|
-
/* @__PURE__ */
|
|
31044
|
-
/* @__PURE__ */
|
|
31351
|
+
/* @__PURE__ */ jsx69(DefaultBookingDiscount, { booking }),
|
|
31352
|
+
/* @__PURE__ */ jsx69(DefaultBookingFeedback, { booking }),
|
|
31353
|
+
/* @__PURE__ */ jsx69(DefaultBookingAltcha, { booking })
|
|
31045
31354
|
] });
|
|
31046
31355
|
}
|
|
31047
|
-
function DefaultBookingProgress({
|
|
31048
|
-
steps,
|
|
31049
|
-
currentIndex
|
|
31050
|
-
}) {
|
|
31051
|
-
return /* @__PURE__ */ jsx65("div", { className: "rb-flex rb-items-center rb-justify-between", children: steps.map((step, index) => {
|
|
31052
|
-
const isActive = index === currentIndex;
|
|
31053
|
-
const isCompleted = index < currentIndex;
|
|
31054
|
-
const isLast = index === steps.length - 1;
|
|
31055
|
-
return /* @__PURE__ */ jsxs47("div", { className: "rb-flex rb-items-center rb-flex-1", children: [
|
|
31056
|
-
/* @__PURE__ */ jsxs47("div", { className: "rb-flex rb-items-center rb-gap-2 rb-cursor-default", children: [
|
|
31057
|
-
/* @__PURE__ */ jsx65(
|
|
31058
|
-
"div",
|
|
31059
|
-
{
|
|
31060
|
-
className: `
|
|
31061
|
-
step-circle transition-theme-standard
|
|
31062
|
-
${isActive ? "step-circle-active" : ""}
|
|
31063
|
-
${isCompleted ? "step-circle-complete" : ""}
|
|
31064
|
-
`,
|
|
31065
|
-
children: isCompleted ? "\u2713" : index + 1
|
|
31066
|
-
}
|
|
31067
|
-
),
|
|
31068
|
-
/* @__PURE__ */ jsx65(
|
|
31069
|
-
"span",
|
|
31070
|
-
{
|
|
31071
|
-
className: `
|
|
31072
|
-
rb-caption rb-hidden rb-sm-inline
|
|
31073
|
-
${isCompleted || !isActive ? "status-muted" : ""}
|
|
31074
|
-
`,
|
|
31075
|
-
children: step.label
|
|
31076
|
-
}
|
|
31077
|
-
)
|
|
31078
|
-
] }),
|
|
31079
|
-
!isLast ? /* @__PURE__ */ jsx65("div", { className: "step-connector rb-ml-2 rb-mr-2 rb-hidden rb-sm-block" }) : null
|
|
31080
|
-
] }, step.id);
|
|
31081
|
-
}) });
|
|
31082
|
-
}
|
|
31083
31356
|
function DefaultBookingStepContent({
|
|
31084
|
-
booking
|
|
31357
|
+
booking,
|
|
31358
|
+
errorSummaryId
|
|
31085
31359
|
}) {
|
|
31086
31360
|
const stepId = booking.currentStep?.id;
|
|
31087
31361
|
if (!stepId) return null;
|
|
31088
31362
|
switch (stepId) {
|
|
31089
31363
|
case "service-selection":
|
|
31090
|
-
return /* @__PURE__ */
|
|
31364
|
+
return /* @__PURE__ */ jsx69(DefaultServiceSelectionStep, { booking });
|
|
31091
31365
|
case "datetime-selection":
|
|
31092
|
-
return /* @__PURE__ */
|
|
31366
|
+
return /* @__PURE__ */ jsx69(
|
|
31367
|
+
DefaultDateTimeSelectionStep,
|
|
31368
|
+
{
|
|
31369
|
+
booking,
|
|
31370
|
+
errorSummaryId
|
|
31371
|
+
}
|
|
31372
|
+
);
|
|
31093
31373
|
case "payment-selection":
|
|
31094
|
-
return /* @__PURE__ */
|
|
31374
|
+
return /* @__PURE__ */ jsx69(HeadlessBookingPaymentSelectionStep, { booking });
|
|
31095
31375
|
case "custom-fields":
|
|
31096
|
-
return /* @__PURE__ */
|
|
31376
|
+
return /* @__PURE__ */ jsx69(DefaultDynamicFields, { fields: booking.fields.items, booking });
|
|
31097
31377
|
default:
|
|
31098
31378
|
return assertNever7(stepId);
|
|
31099
31379
|
}
|
|
@@ -31108,74 +31388,77 @@ function DefaultServiceSelectionStep({
|
|
|
31108
31388
|
const showServiceSelect = booking.services.requiresSelection || services.length > 1;
|
|
31109
31389
|
const showResourceSelect = booking.resources.requiresSelection || resources.length > 1;
|
|
31110
31390
|
const allowAnyResource = !booking.resources.requiresSelection;
|
|
31111
|
-
return /* @__PURE__ */
|
|
31112
|
-
/* @__PURE__ */
|
|
31113
|
-
/* @__PURE__ */
|
|
31114
|
-
/* @__PURE__ */
|
|
31391
|
+
return /* @__PURE__ */ jsxs49("div", { className: "rb-reg-stack", children: [
|
|
31392
|
+
/* @__PURE__ */ jsxs49("div", { children: [
|
|
31393
|
+
/* @__PURE__ */ jsx69("h2", { className: "ab-title", children: "Select Service" }),
|
|
31394
|
+
/* @__PURE__ */ jsx69("p", { className: "ab-text rb-on-surface--muted", children: "Choose the service you'd like to book" })
|
|
31115
31395
|
] }),
|
|
31116
|
-
showServiceSelect ? /* @__PURE__ */
|
|
31117
|
-
/* @__PURE__ */
|
|
31118
|
-
/* @__PURE__ */
|
|
31396
|
+
showServiceSelect ? /* @__PURE__ */ jsxs49("div", { className: "rb-reg-stack rb-reg-stack--sm", children: [
|
|
31397
|
+
/* @__PURE__ */ jsx69("span", { className: "ab-subtitle", children: "Service" }),
|
|
31398
|
+
/* @__PURE__ */ jsx69("div", { className: "rb-reg-grid", children: services.map((service) => {
|
|
31119
31399
|
const isSelected = selectedServiceId === service.id;
|
|
31120
|
-
return /* @__PURE__ */
|
|
31400
|
+
return /* @__PURE__ */ jsxs49(
|
|
31121
31401
|
"button",
|
|
31122
31402
|
{
|
|
31123
31403
|
type: "button",
|
|
31124
31404
|
onClick: () => booking.actions.selectService(service.id),
|
|
31125
|
-
className:
|
|
31126
|
-
|
|
31127
|
-
|
|
31128
|
-
|
|
31129
|
-
|
|
31130
|
-
service.
|
|
31405
|
+
className: optionCardClassName(isSelected),
|
|
31406
|
+
"aria-pressed": isSelected,
|
|
31407
|
+
children: [
|
|
31408
|
+
/* @__PURE__ */ jsxs49("div", { className: "rb-flex-1", children: [
|
|
31409
|
+
/* @__PURE__ */ jsx69("div", { className: "ab-subtitle", children: service.title }),
|
|
31410
|
+
service.description ? /* @__PURE__ */ jsx69("div", { className: "ab-text rb-on-surface--muted", children: service.description }) : null,
|
|
31411
|
+
service.durationMinutes ? /* @__PURE__ */ jsxs49("div", { className: "ab-text rb-on-surface--muted", children: [
|
|
31131
31412
|
service.durationMinutes,
|
|
31132
31413
|
" minutes"
|
|
31133
31414
|
] }) : null
|
|
31134
31415
|
] }),
|
|
31135
|
-
isSelected ? /* @__PURE__ */
|
|
31136
|
-
]
|
|
31416
|
+
isSelected ? /* @__PURE__ */ jsx69(SelectedCheck, {}) : null
|
|
31417
|
+
]
|
|
31137
31418
|
},
|
|
31138
31419
|
service.id
|
|
31139
31420
|
);
|
|
31140
31421
|
}) })
|
|
31141
31422
|
] }) : null,
|
|
31142
|
-
booking.resources.state.tag === "loading" ? /* @__PURE__ */
|
|
31143
|
-
/* @__PURE__ */
|
|
31144
|
-
/* @__PURE__ */
|
|
31423
|
+
booking.resources.state.tag === "loading" ? /* @__PURE__ */ jsxs49("div", { className: "ab-center", children: [
|
|
31424
|
+
/* @__PURE__ */ jsx69(SpinnerNode, { size: "md", srLabel: "Loading practitioners" }),
|
|
31425
|
+
/* @__PURE__ */ jsx69("p", { className: "ab-text rb-on-surface--muted", children: "Loading practitioners..." })
|
|
31145
31426
|
] }) : null,
|
|
31146
|
-
booking.resources.state.tag === "error" ? /* @__PURE__ */
|
|
31147
|
-
showResourceSelect && booking.resources.state.tag === "loaded" && resources.length === 0 ? /* @__PURE__ */
|
|
31148
|
-
showResourceSelect && booking.resources.state.tag !== "loading" && (allowAnyResource || resources.length > 0) ? /* @__PURE__ */
|
|
31149
|
-
/* @__PURE__ */
|
|
31427
|
+
booking.resources.state.tag === "error" ? /* @__PURE__ */ jsx69(FeedbackMessage, { tone: "error", className: "alert alert-error", role: "alert", children: booking.resources.state.message }) : null,
|
|
31428
|
+
showResourceSelect && booking.resources.state.tag === "loaded" && resources.length === 0 ? /* @__PURE__ */ jsx69(FeedbackMessage, { tone: "error", className: "alert alert-error", role: "alert", children: "No practitioners are available for this service right now." }) : null,
|
|
31429
|
+
showResourceSelect && booking.resources.state.tag !== "loading" && (allowAnyResource || resources.length > 0) ? /* @__PURE__ */ jsxs49("div", { className: "rb-reg-stack rb-reg-stack--sm", children: [
|
|
31430
|
+
/* @__PURE__ */ jsxs49("span", { className: "ab-subtitle", children: [
|
|
31150
31431
|
"Practitioner",
|
|
31151
31432
|
booking.resources.requiresSelection ? "" : " (Optional)"
|
|
31152
31433
|
] }),
|
|
31153
|
-
/* @__PURE__ */
|
|
31154
|
-
/* @__PURE__ */
|
|
31155
|
-
allowAnyResource ? /* @__PURE__ */
|
|
31434
|
+
/* @__PURE__ */ jsx69("p", { className: "ab-text rb-on-surface--muted", children: allowAnyResource ? 'Choose a specific practitioner or select "Any Available"' : "Choose the practitioner you'd like to book" }),
|
|
31435
|
+
/* @__PURE__ */ jsxs49("div", { className: "rb-reg-grid", children: [
|
|
31436
|
+
allowAnyResource ? /* @__PURE__ */ jsxs49(
|
|
31156
31437
|
"button",
|
|
31157
31438
|
{
|
|
31158
31439
|
type: "button",
|
|
31159
31440
|
onClick: () => booking.actions.selectResource(null),
|
|
31160
|
-
className:
|
|
31161
|
-
|
|
31162
|
-
|
|
31163
|
-
|
|
31164
|
-
|
|
31441
|
+
className: optionCardClassName(!selectedResourceId),
|
|
31442
|
+
"aria-pressed": !selectedResourceId,
|
|
31443
|
+
children: [
|
|
31444
|
+
/* @__PURE__ */ jsx69("div", { className: "rb-flex-1 ab-subtitle", children: "Any Available" }),
|
|
31445
|
+
!selectedResourceId ? /* @__PURE__ */ jsx69(SelectedCheck, {}) : null
|
|
31446
|
+
]
|
|
31165
31447
|
}
|
|
31166
31448
|
) : null,
|
|
31167
31449
|
resources.map((resource) => {
|
|
31168
31450
|
const isSelected = selectedResourceId === resource.id;
|
|
31169
|
-
return /* @__PURE__ */
|
|
31451
|
+
return /* @__PURE__ */ jsxs49(
|
|
31170
31452
|
"button",
|
|
31171
31453
|
{
|
|
31172
31454
|
type: "button",
|
|
31173
31455
|
onClick: () => booking.actions.selectResource(resource.id),
|
|
31174
|
-
className:
|
|
31175
|
-
|
|
31176
|
-
|
|
31177
|
-
|
|
31178
|
-
|
|
31456
|
+
className: optionCardClassName(isSelected),
|
|
31457
|
+
"aria-pressed": isSelected,
|
|
31458
|
+
children: [
|
|
31459
|
+
/* @__PURE__ */ jsx69("div", { className: "rb-flex-1 ab-subtitle", children: resource.label }),
|
|
31460
|
+
isSelected ? /* @__PURE__ */ jsx69(SelectedCheck, {}) : null
|
|
31461
|
+
]
|
|
31179
31462
|
},
|
|
31180
31463
|
resource.id
|
|
31181
31464
|
);
|
|
@@ -31185,28 +31468,31 @@ function DefaultServiceSelectionStep({
|
|
|
31185
31468
|
] });
|
|
31186
31469
|
}
|
|
31187
31470
|
function DefaultDateTimeSelectionStep({
|
|
31188
|
-
booking
|
|
31471
|
+
booking,
|
|
31472
|
+
errorSummaryId
|
|
31189
31473
|
}) {
|
|
31190
31474
|
const selectedDate = booking.availability.selectedDate ?? "";
|
|
31191
|
-
const
|
|
31475
|
+
const selectedSlotKey = booking.availability.selectedSlot?.key ?? "";
|
|
31192
31476
|
const singleService = booking.services.items.length === 1 ? booking.services.items[0] : void 0;
|
|
31193
|
-
const slots =
|
|
31477
|
+
const slots = deriveBookingSlotDisplayOptions({
|
|
31194
31478
|
slots: booking.availability.slots,
|
|
31195
31479
|
hasSelectedResource: Boolean(booking.resources.selectedResourceId)
|
|
31196
31480
|
});
|
|
31197
31481
|
const error = booking.availability.datesState.tag === "error" ? booking.availability.datesState.message : booking.availability.slotsState.tag === "error" ? booking.availability.slotsState.message : null;
|
|
31198
|
-
|
|
31199
|
-
|
|
31200
|
-
|
|
31201
|
-
|
|
31202
|
-
|
|
31482
|
+
const hasValidationError = Boolean(booking.currentStep?.errors.formError);
|
|
31483
|
+
const validationDescribedBy = hasValidationError ? errorSummaryId : void 0;
|
|
31484
|
+
return /* @__PURE__ */ jsxs49("div", { className: "rb-reg-stack", children: [
|
|
31485
|
+
singleService ? /* @__PURE__ */ jsxs49("div", { className: "rb-reg-summary", children: [
|
|
31486
|
+
/* @__PURE__ */ jsx69("h3", { className: "ab-subtitle", children: singleService.title }),
|
|
31487
|
+
singleService.description ? /* @__PURE__ */ jsx69("p", { className: "ab-text rb-on-surface--muted", children: singleService.description }) : null,
|
|
31488
|
+
singleService.durationMinutes ? /* @__PURE__ */ jsxs49("p", { className: "ab-text rb-on-surface--muted", children: [
|
|
31203
31489
|
"Duration: ",
|
|
31204
31490
|
singleService.durationMinutes,
|
|
31205
31491
|
" minutes"
|
|
31206
31492
|
] }) : null
|
|
31207
31493
|
] }) : null,
|
|
31208
|
-
error ? /* @__PURE__ */
|
|
31209
|
-
/* @__PURE__ */
|
|
31494
|
+
error ? /* @__PURE__ */ jsx69(FeedbackMessage, { tone: "error", className: "alert alert-error", role: "alert", children: error }) : null,
|
|
31495
|
+
/* @__PURE__ */ jsx69(
|
|
31210
31496
|
DatePicker,
|
|
31211
31497
|
{
|
|
31212
31498
|
value: selectedDate,
|
|
@@ -31214,23 +31500,26 @@ function DefaultDateTimeSelectionStep({
|
|
|
31214
31500
|
dateOptions: [...booking.availability.availableDates],
|
|
31215
31501
|
isLoading: booking.availability.datesState.tag === "loading",
|
|
31216
31502
|
isEmpty: booking.availability.datesState.tag !== "loading" && booking.availability.availableDates.length === 0,
|
|
31503
|
+
ariaDescribedBy: validationDescribedBy,
|
|
31504
|
+
ariaInvalid: hasValidationError,
|
|
31217
31505
|
hasMore: booking.availability.hasMoreDates,
|
|
31218
31506
|
onLoadMore: booking.availability.loadMoreDates
|
|
31219
31507
|
}
|
|
31220
31508
|
),
|
|
31221
|
-
selectedDate ? /* @__PURE__ */
|
|
31509
|
+
selectedDate ? /* @__PURE__ */ jsx69(
|
|
31222
31510
|
TimeSlotSelector,
|
|
31223
31511
|
{
|
|
31224
|
-
value:
|
|
31225
|
-
onChange: (
|
|
31512
|
+
value: selectedSlotKey,
|
|
31513
|
+
onChange: (slotKey) => {
|
|
31226
31514
|
booking.actions.selectSlot(
|
|
31227
|
-
|
|
31228
|
-
(slot) => slot.startAt === slotStartTime
|
|
31229
|
-
) ?? null
|
|
31515
|
+
slots.find((slot) => slot.key === slotKey)?.slot ?? null
|
|
31230
31516
|
);
|
|
31231
31517
|
},
|
|
31232
31518
|
slots,
|
|
31233
|
-
isLoading: booking.availability.slotsState.tag === "loading"
|
|
31519
|
+
isLoading: booking.availability.slotsState.tag === "loading",
|
|
31520
|
+
timezone: booking.availability.timezone,
|
|
31521
|
+
ariaDescribedBy: validationDescribedBy,
|
|
31522
|
+
ariaInvalid: hasValidationError
|
|
31234
31523
|
}
|
|
31235
31524
|
) : null
|
|
31236
31525
|
] });
|
|
@@ -31241,33 +31530,33 @@ function HeadlessBookingPaymentSelectionStep({
|
|
|
31241
31530
|
const service = booking.services.selected;
|
|
31242
31531
|
const viewModel = booking.payment.selection;
|
|
31243
31532
|
if (booking.payment.kind === "unsupported") {
|
|
31244
|
-
return /* @__PURE__ */
|
|
31533
|
+
return /* @__PURE__ */ jsx69(FeedbackMessage, { tone: "error", className: "alert alert-error", role: "alert", children: booking.payment.errorMessage });
|
|
31245
31534
|
}
|
|
31246
31535
|
if (!service || !viewModel) {
|
|
31247
|
-
return /* @__PURE__ */
|
|
31536
|
+
return /* @__PURE__ */ jsx69(FeedbackMessage, { tone: "error", className: "alert alert-error", role: "alert", children: "Payment options are unavailable for this service right now." });
|
|
31248
31537
|
}
|
|
31249
31538
|
const packageOptions = booking.payment.appointmentPackages.items;
|
|
31250
31539
|
const hasPackageOptions = packageOptions.length > 0;
|
|
31251
31540
|
const slidingScale = booking.payment.slidingScale;
|
|
31252
|
-
return /* @__PURE__ */
|
|
31253
|
-
/* @__PURE__ */
|
|
31254
|
-
/* @__PURE__ */
|
|
31255
|
-
/* @__PURE__ */
|
|
31541
|
+
return /* @__PURE__ */ jsxs49("div", { className: "rb-reg-stack", children: [
|
|
31542
|
+
/* @__PURE__ */ jsxs49("div", { className: "rb-reg-summary", children: [
|
|
31543
|
+
/* @__PURE__ */ jsx69("h3", { className: "ab-subtitle", children: viewModel.sectionTitle }),
|
|
31544
|
+
/* @__PURE__ */ jsx69("p", { className: "ab-text rb-on-surface--muted", children: service.title })
|
|
31256
31545
|
] }),
|
|
31257
|
-
booking.payment.appointmentPackages.state.tag === "loading" ? /* @__PURE__ */
|
|
31258
|
-
booking.payment.appointmentPackages.state.tag === "error" ? /* @__PURE__ */
|
|
31546
|
+
booking.payment.appointmentPackages.state.tag === "loading" ? /* @__PURE__ */ jsx69(FeedbackMessage, { tone: "info", className: "alert alert-info", role: "status", children: "Checking package credits..." }) : null,
|
|
31547
|
+
booking.payment.appointmentPackages.state.tag === "error" ? /* @__PURE__ */ jsxs49(FeedbackMessage, { tone: "info", className: "alert alert-info", role: "status", children: [
|
|
31259
31548
|
booking.payment.appointmentPackages.state.message,
|
|
31260
31549
|
" You can continue with the normal payment option."
|
|
31261
31550
|
] }) : null,
|
|
31262
|
-
slidingScale ? /* @__PURE__ */
|
|
31263
|
-
/* @__PURE__ */
|
|
31264
|
-
/* @__PURE__ */
|
|
31551
|
+
slidingScale ? /* @__PURE__ */ jsxs49("div", { className: "rb-space-y-2", children: [
|
|
31552
|
+
/* @__PURE__ */ jsx69("label", { htmlFor: "appointment-sliding-amount", className: "form-label", children: "Choose your price" }),
|
|
31553
|
+
/* @__PURE__ */ jsxs49("p", { className: "rb-caption status-muted", children: [
|
|
31265
31554
|
formatBookingAmount(slidingScale.minAmount, slidingScale.currency),
|
|
31266
31555
|
" to ",
|
|
31267
31556
|
formatBookingAmount(slidingScale.maxAmount, slidingScale.currency),
|
|
31268
31557
|
slidingScale.suggestedAmount !== null ? `, suggested ${formatBookingAmount(slidingScale.suggestedAmount, slidingScale.currency)}` : ""
|
|
31269
31558
|
] }),
|
|
31270
|
-
/* @__PURE__ */
|
|
31559
|
+
/* @__PURE__ */ jsx69(
|
|
31271
31560
|
"input",
|
|
31272
31561
|
{
|
|
31273
31562
|
id: "appointment-sliding-amount",
|
|
@@ -31281,47 +31570,47 @@ function HeadlessBookingPaymentSelectionStep({
|
|
|
31281
31570
|
}
|
|
31282
31571
|
)
|
|
31283
31572
|
] }) : null,
|
|
31284
|
-
/* @__PURE__ */
|
|
31285
|
-
|
|
31286
|
-
|
|
31287
|
-
|
|
31288
|
-
|
|
31289
|
-
|
|
31290
|
-
|
|
31291
|
-
|
|
31292
|
-
|
|
31293
|
-
|
|
31294
|
-
|
|
31295
|
-
style: paymentOptionLayoutStyle,
|
|
31296
|
-
onClick: () => booking.actions.selectAppointmentPackage(
|
|
31297
|
-
appointmentPackage.customerPassId
|
|
31298
|
-
),
|
|
31299
|
-
"aria-pressed": isSelected,
|
|
31300
|
-
children: /* @__PURE__ */ jsx65(
|
|
31301
|
-
PaymentOptionContent,
|
|
31573
|
+
/* @__PURE__ */ jsxs49(
|
|
31574
|
+
"div",
|
|
31575
|
+
{
|
|
31576
|
+
className: "rb-reg-stack rb-reg-stack--sm",
|
|
31577
|
+
role: "list",
|
|
31578
|
+
"aria-label": "Payment options",
|
|
31579
|
+
children: [
|
|
31580
|
+
packageOptions.map((appointmentPackage) => {
|
|
31581
|
+
const isSelected = booking.payment.selectedAppointmentPackageId === appointmentPackage.customerPassId;
|
|
31582
|
+
return /* @__PURE__ */ jsxs49(
|
|
31583
|
+
"button",
|
|
31302
31584
|
{
|
|
31303
|
-
|
|
31304
|
-
|
|
31305
|
-
|
|
31306
|
-
|
|
31307
|
-
|
|
31308
|
-
|
|
31309
|
-
|
|
31310
|
-
|
|
31311
|
-
|
|
31312
|
-
|
|
31313
|
-
|
|
31314
|
-
|
|
31315
|
-
|
|
31316
|
-
|
|
31317
|
-
|
|
31318
|
-
|
|
31319
|
-
|
|
31320
|
-
|
|
31321
|
-
|
|
31322
|
-
|
|
31323
|
-
|
|
31324
|
-
|
|
31585
|
+
type: "button",
|
|
31586
|
+
className: optionCardClassName(isSelected),
|
|
31587
|
+
onClick: () => booking.actions.selectAppointmentPackage(
|
|
31588
|
+
appointmentPackage.customerPassId
|
|
31589
|
+
),
|
|
31590
|
+
"aria-pressed": isSelected,
|
|
31591
|
+
children: [
|
|
31592
|
+
/* @__PURE__ */ jsx69(
|
|
31593
|
+
PaymentOptionContent,
|
|
31594
|
+
{
|
|
31595
|
+
id: appointmentPackage.customerPassId,
|
|
31596
|
+
title: appointmentPackage.passName,
|
|
31597
|
+
description: "Use 1 package credit",
|
|
31598
|
+
summaryRows: [{
|
|
31599
|
+
label: "Balance",
|
|
31600
|
+
value: `${appointmentPackage.creditsRemaining} of ${appointmentPackage.creditsTotal} credits remaining`
|
|
31601
|
+
}]
|
|
31602
|
+
}
|
|
31603
|
+
),
|
|
31604
|
+
isSelected ? /* @__PURE__ */ jsx69(SelectedCheck, {}) : null
|
|
31605
|
+
]
|
|
31606
|
+
},
|
|
31607
|
+
appointmentPackage.customerPassId
|
|
31608
|
+
);
|
|
31609
|
+
}),
|
|
31610
|
+
viewModel.options.map((option) => {
|
|
31611
|
+
const isSelected = !booking.payment.selectedAppointmentPackageId && (booking.payment.selectedCollectionOptionKind === option.kind || viewModel.mode === "single_option");
|
|
31612
|
+
if (viewModel.mode === "single_option" && !hasPackageOptions) {
|
|
31613
|
+
return /* @__PURE__ */ jsx69("div", { className: "rb-reg-summary", children: /* @__PURE__ */ jsx69(
|
|
31325
31614
|
PaymentOptionContent,
|
|
31326
31615
|
{
|
|
31327
31616
|
id: option.kind,
|
|
@@ -31330,37 +31619,35 @@ function HeadlessBookingPaymentSelectionStep({
|
|
|
31330
31619
|
summaryRows: option.summaryRows,
|
|
31331
31620
|
helperText: option.helperText
|
|
31332
31621
|
}
|
|
31333
|
-
)
|
|
31334
|
-
}
|
|
31335
|
-
|
|
31336
|
-
|
|
31337
|
-
}
|
|
31338
|
-
return /* @__PURE__ */ jsx65(
|
|
31339
|
-
"button",
|
|
31340
|
-
{
|
|
31341
|
-
type: "button",
|
|
31342
|
-
className: themeButtonClassName({
|
|
31343
|
-
variant: isSelected ? "primary" : "outline",
|
|
31344
|
-
size: "md"
|
|
31345
|
-
}),
|
|
31346
|
-
style: paymentOptionLayoutStyle,
|
|
31347
|
-
onClick: () => booking.actions.selectPaymentOption(option.kind),
|
|
31348
|
-
"aria-pressed": isSelected,
|
|
31349
|
-
children: /* @__PURE__ */ jsx65(
|
|
31350
|
-
PaymentOptionContent,
|
|
31622
|
+
) }, option.kind);
|
|
31623
|
+
}
|
|
31624
|
+
return /* @__PURE__ */ jsxs49(
|
|
31625
|
+
"button",
|
|
31351
31626
|
{
|
|
31352
|
-
|
|
31353
|
-
|
|
31354
|
-
|
|
31355
|
-
|
|
31356
|
-
|
|
31357
|
-
|
|
31358
|
-
|
|
31359
|
-
|
|
31360
|
-
|
|
31361
|
-
|
|
31362
|
-
|
|
31363
|
-
|
|
31627
|
+
type: "button",
|
|
31628
|
+
className: optionCardClassName(isSelected),
|
|
31629
|
+
onClick: () => booking.actions.selectPaymentOption(option.kind),
|
|
31630
|
+
"aria-pressed": isSelected,
|
|
31631
|
+
children: [
|
|
31632
|
+
/* @__PURE__ */ jsx69(
|
|
31633
|
+
PaymentOptionContent,
|
|
31634
|
+
{
|
|
31635
|
+
id: option.kind,
|
|
31636
|
+
title: option.title,
|
|
31637
|
+
description: option.description,
|
|
31638
|
+
summaryRows: option.summaryRows,
|
|
31639
|
+
helperText: option.helperText
|
|
31640
|
+
}
|
|
31641
|
+
),
|
|
31642
|
+
isSelected ? /* @__PURE__ */ jsx69(SelectedCheck, {}) : null
|
|
31643
|
+
]
|
|
31644
|
+
},
|
|
31645
|
+
option.kind
|
|
31646
|
+
);
|
|
31647
|
+
})
|
|
31648
|
+
]
|
|
31649
|
+
}
|
|
31650
|
+
)
|
|
31364
31651
|
] });
|
|
31365
31652
|
}
|
|
31366
31653
|
function PaymentOptionContent({
|
|
@@ -31370,22 +31657,22 @@ function PaymentOptionContent({
|
|
|
31370
31657
|
summaryRows,
|
|
31371
31658
|
title
|
|
31372
31659
|
}) {
|
|
31373
|
-
return /* @__PURE__ */
|
|
31374
|
-
/* @__PURE__ */
|
|
31375
|
-
/* @__PURE__ */
|
|
31376
|
-
/* @__PURE__ */
|
|
31660
|
+
return /* @__PURE__ */ jsxs49("div", { className: "rb-flex-1", children: [
|
|
31661
|
+
/* @__PURE__ */ jsx69("div", { className: "ab-subtitle", children: title }),
|
|
31662
|
+
/* @__PURE__ */ jsx69("div", { className: "ab-text rb-on-surface--muted", children: description }),
|
|
31663
|
+
/* @__PURE__ */ jsx69("div", { className: "ab-option-rows", children: summaryRows.map((row) => /* @__PURE__ */ jsxs49("span", { className: "ab-text rb-on-surface--muted", children: [
|
|
31377
31664
|
row.label,
|
|
31378
31665
|
": ",
|
|
31379
31666
|
row.value
|
|
31380
31667
|
] }, `${id}-${row.label}`)) }),
|
|
31381
|
-
helperText ? /* @__PURE__ */
|
|
31668
|
+
helperText ? /* @__PURE__ */ jsx69("div", { className: "ab-text rb-on-surface--muted", children: helperText }) : null
|
|
31382
31669
|
] });
|
|
31383
31670
|
}
|
|
31384
31671
|
function DefaultDynamicFields({
|
|
31385
31672
|
booking,
|
|
31386
31673
|
fields
|
|
31387
31674
|
}) {
|
|
31388
|
-
return /* @__PURE__ */
|
|
31675
|
+
return /* @__PURE__ */ jsx69("div", { className: "rb-space-y-6", children: fields.map((field) => /* @__PURE__ */ jsx69(DefaultDynamicField, { booking, field }, field.id)) });
|
|
31389
31676
|
}
|
|
31390
31677
|
function DefaultDynamicField({
|
|
31391
31678
|
booking,
|
|
@@ -31395,13 +31682,13 @@ function DefaultDynamicField({
|
|
|
31395
31682
|
const error = field.error;
|
|
31396
31683
|
const errorId = error ? field.errorId ?? `${field.inputId}-error` : null;
|
|
31397
31684
|
const describedBy = [field.helpTextId, errorId].filter(Boolean).join(" ") || void 0;
|
|
31398
|
-
return /* @__PURE__ */
|
|
31399
|
-
/* @__PURE__ */
|
|
31685
|
+
return /* @__PURE__ */ jsxs49("div", { className: "rb-space-y-2", children: [
|
|
31686
|
+
/* @__PURE__ */ jsxs49("label", { id: field.labelId, htmlFor: field.inputId, className: "form-label", children: [
|
|
31400
31687
|
field.label,
|
|
31401
|
-
field.required ? /* @__PURE__ */
|
|
31688
|
+
field.required ? /* @__PURE__ */ jsx69("span", { className: "required-marker", children: "*" }) : null
|
|
31402
31689
|
] }),
|
|
31403
|
-
field.helpText ? /* @__PURE__ */
|
|
31404
|
-
/* @__PURE__ */
|
|
31690
|
+
field.helpText ? /* @__PURE__ */ jsx69("p", { id: field.helpTextId ?? void 0, className: "rb-caption status-muted", children: field.helpText }) : null,
|
|
31691
|
+
/* @__PURE__ */ jsx69(
|
|
31405
31692
|
DefaultFieldInput,
|
|
31406
31693
|
{
|
|
31407
31694
|
field,
|
|
@@ -31413,7 +31700,7 @@ function DefaultDynamicField({
|
|
|
31413
31700
|
describedBy
|
|
31414
31701
|
}
|
|
31415
31702
|
),
|
|
31416
|
-
error ? /* @__PURE__ */
|
|
31703
|
+
error ? /* @__PURE__ */ jsx69(
|
|
31417
31704
|
FieldValidationMessage,
|
|
31418
31705
|
{
|
|
31419
31706
|
id: errorId ?? `${field.inputId}-error`,
|
|
@@ -31447,7 +31734,7 @@ function DefaultFieldInput({
|
|
|
31447
31734
|
};
|
|
31448
31735
|
switch (field.type) {
|
|
31449
31736
|
case "textarea":
|
|
31450
|
-
return /* @__PURE__ */
|
|
31737
|
+
return /* @__PURE__ */ jsx69(
|
|
31451
31738
|
"textarea",
|
|
31452
31739
|
{
|
|
31453
31740
|
...commonProps,
|
|
@@ -31462,7 +31749,7 @@ function DefaultFieldInput({
|
|
|
31462
31749
|
);
|
|
31463
31750
|
case "select":
|
|
31464
31751
|
if (field.field.multiple) {
|
|
31465
|
-
return /* @__PURE__ */
|
|
31752
|
+
return /* @__PURE__ */ jsx69(
|
|
31466
31753
|
"select",
|
|
31467
31754
|
{
|
|
31468
31755
|
...commonProps,
|
|
@@ -31475,11 +31762,11 @@ function DefaultFieldInput({
|
|
|
31475
31762
|
},
|
|
31476
31763
|
multiple: true,
|
|
31477
31764
|
className: "form-select rb-h-32",
|
|
31478
|
-
children: field.field.options?.map((option) => /* @__PURE__ */
|
|
31765
|
+
children: field.field.options?.map((option) => /* @__PURE__ */ jsx69("option", { value: option.value, children: option.label }, option.value))
|
|
31479
31766
|
}
|
|
31480
31767
|
);
|
|
31481
31768
|
}
|
|
31482
|
-
return /* @__PURE__ */
|
|
31769
|
+
return /* @__PURE__ */ jsxs49(
|
|
31483
31770
|
"select",
|
|
31484
31771
|
{
|
|
31485
31772
|
...commonProps,
|
|
@@ -31487,14 +31774,14 @@ function DefaultFieldInput({
|
|
|
31487
31774
|
onChange: (event) => onChange(event.target.value),
|
|
31488
31775
|
className: "form-select",
|
|
31489
31776
|
children: [
|
|
31490
|
-
/* @__PURE__ */
|
|
31491
|
-
field.field.options?.map((option) => /* @__PURE__ */
|
|
31777
|
+
/* @__PURE__ */ jsx69("option", { value: "", children: "Select an option..." }),
|
|
31778
|
+
field.field.options?.map((option) => /* @__PURE__ */ jsx69("option", { value: option.value, children: option.label }, option.value))
|
|
31492
31779
|
]
|
|
31493
31780
|
}
|
|
31494
31781
|
);
|
|
31495
31782
|
case "radio":
|
|
31496
|
-
return /* @__PURE__ */
|
|
31497
|
-
/* @__PURE__ */
|
|
31783
|
+
return /* @__PURE__ */ jsx69("div", { className: "rb-space-y-2", children: field.field.options?.map((option) => /* @__PURE__ */ jsxs49("label", { className: "rb-flex rb-items-center rb-gap-2 rb-cursor-pointer", children: [
|
|
31784
|
+
/* @__PURE__ */ jsx69(
|
|
31498
31785
|
"input",
|
|
31499
31786
|
{
|
|
31500
31787
|
type: "radio",
|
|
@@ -31508,13 +31795,13 @@ function DefaultFieldInput({
|
|
|
31508
31795
|
className: "form-radio"
|
|
31509
31796
|
}
|
|
31510
31797
|
),
|
|
31511
|
-
/* @__PURE__ */
|
|
31798
|
+
/* @__PURE__ */ jsx69("span", { className: "rb-caption", children: option.label })
|
|
31512
31799
|
] }, option.value)) });
|
|
31513
31800
|
case "checkbox":
|
|
31514
31801
|
if (field.field.options && field.field.options.length > 1) {
|
|
31515
31802
|
const checkedValues = toStringArray(value);
|
|
31516
|
-
return /* @__PURE__ */
|
|
31517
|
-
/* @__PURE__ */
|
|
31803
|
+
return /* @__PURE__ */ jsx69("div", { className: "rb-space-y-2", children: field.field.options.map((option) => /* @__PURE__ */ jsxs49("label", { className: "rb-flex rb-items-center rb-gap-2 rb-cursor-pointer", children: [
|
|
31804
|
+
/* @__PURE__ */ jsx69(
|
|
31518
31805
|
"input",
|
|
31519
31806
|
{
|
|
31520
31807
|
type: "checkbox",
|
|
@@ -31531,11 +31818,11 @@ function DefaultFieldInput({
|
|
|
31531
31818
|
className: "form-checkbox"
|
|
31532
31819
|
}
|
|
31533
31820
|
),
|
|
31534
|
-
/* @__PURE__ */
|
|
31821
|
+
/* @__PURE__ */ jsx69("span", { className: "rb-caption", children: option.label })
|
|
31535
31822
|
] }, option.value)) });
|
|
31536
31823
|
}
|
|
31537
|
-
return /* @__PURE__ */
|
|
31538
|
-
/* @__PURE__ */
|
|
31824
|
+
return /* @__PURE__ */ jsxs49("label", { className: "rb-flex rb-items-center rb-gap-2 rb-cursor-pointer", children: [
|
|
31825
|
+
/* @__PURE__ */ jsx69(
|
|
31539
31826
|
"input",
|
|
31540
31827
|
{
|
|
31541
31828
|
type: "checkbox",
|
|
@@ -31549,11 +31836,11 @@ function DefaultFieldInput({
|
|
|
31549
31836
|
className: "form-checkbox"
|
|
31550
31837
|
}
|
|
31551
31838
|
),
|
|
31552
|
-
/* @__PURE__ */
|
|
31839
|
+
/* @__PURE__ */ jsx69("span", { className: "rb-caption", children: field.field.placeholder || field.label })
|
|
31553
31840
|
] });
|
|
31554
31841
|
case "booking_requirement_consent":
|
|
31555
|
-
return /* @__PURE__ */
|
|
31556
|
-
/* @__PURE__ */
|
|
31842
|
+
return /* @__PURE__ */ jsxs49("label", { className: "rb-flex rb-items-start rb-gap-2 rb-cursor-pointer", children: [
|
|
31843
|
+
/* @__PURE__ */ jsx69(
|
|
31557
31844
|
"input",
|
|
31558
31845
|
{
|
|
31559
31846
|
type: "checkbox",
|
|
@@ -31567,10 +31854,10 @@ function DefaultFieldInput({
|
|
|
31567
31854
|
className: "form-checkbox rb-mt-0.5"
|
|
31568
31855
|
}
|
|
31569
31856
|
),
|
|
31570
|
-
/* @__PURE__ */
|
|
31857
|
+
/* @__PURE__ */ jsx69("span", { className: "rb-caption", children: field.field.placeholder || field.label })
|
|
31571
31858
|
] });
|
|
31572
31859
|
case "number":
|
|
31573
|
-
return /* @__PURE__ */
|
|
31860
|
+
return /* @__PURE__ */ jsx69(
|
|
31574
31861
|
"input",
|
|
31575
31862
|
{
|
|
31576
31863
|
...commonProps,
|
|
@@ -31584,7 +31871,7 @@ function DefaultFieldInput({
|
|
|
31584
31871
|
}
|
|
31585
31872
|
);
|
|
31586
31873
|
case "date":
|
|
31587
|
-
return /* @__PURE__ */
|
|
31874
|
+
return /* @__PURE__ */ jsx69(
|
|
31588
31875
|
"input",
|
|
31589
31876
|
{
|
|
31590
31877
|
...commonProps,
|
|
@@ -31597,7 +31884,7 @@ function DefaultFieldInput({
|
|
|
31597
31884
|
}
|
|
31598
31885
|
);
|
|
31599
31886
|
case "time":
|
|
31600
|
-
return /* @__PURE__ */
|
|
31887
|
+
return /* @__PURE__ */ jsx69(
|
|
31601
31888
|
"input",
|
|
31602
31889
|
{
|
|
31603
31890
|
...commonProps,
|
|
@@ -31611,7 +31898,7 @@ function DefaultFieldInput({
|
|
|
31611
31898
|
case "email":
|
|
31612
31899
|
case "tel":
|
|
31613
31900
|
case "url":
|
|
31614
|
-
return /* @__PURE__ */
|
|
31901
|
+
return /* @__PURE__ */ jsx69(
|
|
31615
31902
|
"input",
|
|
31616
31903
|
{
|
|
31617
31904
|
...commonProps,
|
|
@@ -31635,8 +31922,8 @@ function DefaultBookingDiscount({
|
|
|
31635
31922
|
}) {
|
|
31636
31923
|
const shouldShowDiscountSection = !booking.payment.selectedAppointmentPackageId && !booking.discount.loading && (booking.discount.manualCodeEntryAllowed || Boolean(booking.discount.autoAppliedDiscount));
|
|
31637
31924
|
if (!shouldShowDiscountSection) return null;
|
|
31638
|
-
return /* @__PURE__ */
|
|
31639
|
-
booking.discount.manualCodeEntryAllowed ? /* @__PURE__ */
|
|
31925
|
+
return /* @__PURE__ */ jsxs49("div", { className: "rb-mt-6", children: [
|
|
31926
|
+
booking.discount.manualCodeEntryAllowed ? /* @__PURE__ */ jsx69(
|
|
31640
31927
|
DiscountCodeDisclosure,
|
|
31641
31928
|
{
|
|
31642
31929
|
surface: "theme-form",
|
|
@@ -31650,7 +31937,7 @@ function DefaultBookingDiscount({
|
|
|
31650
31937
|
}
|
|
31651
31938
|
}
|
|
31652
31939
|
) : null,
|
|
31653
|
-
booking.discount.autoAppliedDiscount && booking.discount.code.trim().length === 0 ? /* @__PURE__ */
|
|
31940
|
+
booking.discount.autoAppliedDiscount && booking.discount.code.trim().length === 0 ? /* @__PURE__ */ jsx69(FeedbackMessage, { tone: "info", className: "alert alert-info rb-mt-4", role: "status", children: /* @__PURE__ */ jsxs49("p", { className: "ab-text", children: [
|
|
31654
31941
|
"Discount available: ",
|
|
31655
31942
|
booking.discount.autoAppliedDiscount.publicLabel,
|
|
31656
31943
|
" ",
|
|
@@ -31662,9 +31949,9 @@ function DefaultBookingFeedback({
|
|
|
31662
31949
|
booking
|
|
31663
31950
|
}) {
|
|
31664
31951
|
if (booking.feedback.kind !== "error") return null;
|
|
31665
|
-
return /* @__PURE__ */
|
|
31666
|
-
/* @__PURE__ */
|
|
31667
|
-
/* @__PURE__ */
|
|
31952
|
+
return /* @__PURE__ */ jsxs49(FeedbackMessage, { tone: "error", className: "alert alert-error rb-mt-4", role: "alert", children: [
|
|
31953
|
+
/* @__PURE__ */ jsx69("p", { className: "ab-text", children: booking.feedback.message }),
|
|
31954
|
+
/* @__PURE__ */ jsx69(
|
|
31668
31955
|
"button",
|
|
31669
31956
|
{
|
|
31670
31957
|
type: "button",
|
|
@@ -31679,7 +31966,7 @@ function DefaultBookingAltcha({
|
|
|
31679
31966
|
booking
|
|
31680
31967
|
}) {
|
|
31681
31968
|
if (!booking.spamProtection.enabled) return null;
|
|
31682
|
-
return /* @__PURE__ */
|
|
31969
|
+
return /* @__PURE__ */ jsx69("div", { className: "ab-altcha", children: /* @__PURE__ */ jsx69(
|
|
31683
31970
|
AltchaWidget,
|
|
31684
31971
|
{
|
|
31685
31972
|
challengeUrl: booking.spamProtection.challenge.url,
|
|
@@ -31688,45 +31975,27 @@ function DefaultBookingAltcha({
|
|
|
31688
31975
|
) });
|
|
31689
31976
|
}
|
|
31690
31977
|
function DefaultBookingErrorSummary({
|
|
31691
|
-
errors
|
|
31978
|
+
errors,
|
|
31979
|
+
id
|
|
31692
31980
|
}) {
|
|
31693
31981
|
if (!hasBookingValidationErrors(errors)) return null;
|
|
31694
|
-
return /* @__PURE__ */
|
|
31695
|
-
|
|
31696
|
-
Object.entries(errors.fieldErrors).map(([key, message]) => /* @__PURE__ */ jsx65("p", { className: "rb-caption", children: message }, key))
|
|
31697
|
-
] });
|
|
31698
|
-
}
|
|
31699
|
-
function SelectedCheck() {
|
|
31700
|
-
return /* @__PURE__ */ jsx65("div", { className: "ab-check", children: /* @__PURE__ */ jsx65(
|
|
31701
|
-
"svg",
|
|
31982
|
+
return /* @__PURE__ */ jsxs49(
|
|
31983
|
+
FeedbackMessage,
|
|
31702
31984
|
{
|
|
31703
|
-
|
|
31704
|
-
|
|
31705
|
-
|
|
31706
|
-
|
|
31707
|
-
|
|
31708
|
-
|
|
31709
|
-
|
|
31985
|
+
tone: "error",
|
|
31986
|
+
className: "rb-mt-6 alert alert-error",
|
|
31987
|
+
id,
|
|
31988
|
+
role: "alert",
|
|
31989
|
+
children: [
|
|
31990
|
+
errors.formError ? /* @__PURE__ */ jsx69("p", { className: "rb-caption", children: /* @__PURE__ */ jsx69("strong", { children: errors.formError }) }) : null,
|
|
31991
|
+
Object.entries(errors.fieldErrors).map(([key, message]) => /* @__PURE__ */ jsx69("p", { className: "rb-caption", children: message }, key))
|
|
31992
|
+
]
|
|
31710
31993
|
}
|
|
31711
|
-
)
|
|
31994
|
+
);
|
|
31712
31995
|
}
|
|
31713
|
-
function
|
|
31714
|
-
|
|
31715
|
-
const visibleSlots = [];
|
|
31716
|
-
for (const slot of input.slots) {
|
|
31717
|
-
if (!input.hasSelectedResource) {
|
|
31718
|
-
if (seenStartTimes.has(slot.startAt)) continue;
|
|
31719
|
-
seenStartTimes.add(slot.startAt);
|
|
31720
|
-
}
|
|
31721
|
-
visibleSlots.push({
|
|
31722
|
-
startAt: slot.startAt,
|
|
31723
|
-
endAt: slot.endAt,
|
|
31724
|
-
resourceId: unsafeAsAppointmentResourceId(slot.resourceId)
|
|
31725
|
-
});
|
|
31726
|
-
}
|
|
31727
|
-
return visibleSlots;
|
|
31996
|
+
function SelectedCheck() {
|
|
31997
|
+
return /* @__PURE__ */ jsx69("div", { className: "rb-option-check", children: /* @__PURE__ */ jsx69(CheckIcon2, {}) });
|
|
31728
31998
|
}
|
|
31729
|
-
var paymentOptionLayoutStyle, summaryStackStyle;
|
|
31730
31999
|
var init_booking_form_default_ui = __esm({
|
|
31731
32000
|
"../blocks/src/system/runtime/nodes/booking-form.default-ui.tsx"() {
|
|
31732
32001
|
"use strict";
|
|
@@ -31739,20 +32008,11 @@ var init_booking_form_default_ui = __esm({
|
|
|
31739
32008
|
init_DatePicker();
|
|
31740
32009
|
init_TimeSlotSelector();
|
|
31741
32010
|
init_spinner();
|
|
32011
|
+
init_CheckIcon();
|
|
32012
|
+
init_StepIndicator();
|
|
31742
32013
|
init_FeedbackMessage();
|
|
31743
32014
|
init_DiscountCodeDisclosure();
|
|
31744
32015
|
init_FieldValidationMessage();
|
|
31745
|
-
paymentOptionLayoutStyle = {
|
|
31746
|
-
alignItems: "flex-start",
|
|
31747
|
-
display: "flex",
|
|
31748
|
-
flexDirection: "column",
|
|
31749
|
-
gap: "0.25rem",
|
|
31750
|
-
justifyContent: "flex-start",
|
|
31751
|
-
width: "100%"
|
|
31752
|
-
};
|
|
31753
|
-
summaryStackStyle = {
|
|
31754
|
-
gap: "0.125rem"
|
|
31755
|
-
};
|
|
31756
32016
|
}
|
|
31757
32017
|
});
|
|
31758
32018
|
|
|
@@ -31952,36 +32212,10 @@ var init_utils2 = __esm({
|
|
|
31952
32212
|
}
|
|
31953
32213
|
});
|
|
31954
32214
|
|
|
31955
|
-
// ../blocks/src/system/runtime/shared/components/CheckIcon.tsx
|
|
31956
|
-
import { jsx as jsx66 } from "react/jsx-runtime";
|
|
31957
|
-
function CheckIcon2({ className, strokeWidth = 2 }) {
|
|
31958
|
-
return /* @__PURE__ */ jsx66(
|
|
31959
|
-
"svg",
|
|
31960
|
-
{
|
|
31961
|
-
fill: "none",
|
|
31962
|
-
strokeLinecap: "round",
|
|
31963
|
-
strokeLinejoin: "round",
|
|
31964
|
-
strokeWidth,
|
|
31965
|
-
viewBox: "0 0 24 24",
|
|
31966
|
-
stroke: "currentColor",
|
|
31967
|
-
className,
|
|
31968
|
-
width: "1em",
|
|
31969
|
-
height: "1em",
|
|
31970
|
-
"aria-hidden": "true",
|
|
31971
|
-
children: /* @__PURE__ */ jsx66("path", { d: "M5 13l4 4L19 7" })
|
|
31972
|
-
}
|
|
31973
|
-
);
|
|
31974
|
-
}
|
|
31975
|
-
var init_CheckIcon = __esm({
|
|
31976
|
-
"../blocks/src/system/runtime/shared/components/CheckIcon.tsx"() {
|
|
31977
|
-
"use strict";
|
|
31978
|
-
}
|
|
31979
|
-
});
|
|
31980
|
-
|
|
31981
32215
|
// ../blocks/src/system/runtime/shared/components/ClockIcon.tsx
|
|
31982
|
-
import { jsx as
|
|
32216
|
+
import { jsx as jsx70 } from "react/jsx-runtime";
|
|
31983
32217
|
function ClockIcon2({ className, strokeWidth = 2 }) {
|
|
31984
|
-
return /* @__PURE__ */
|
|
32218
|
+
return /* @__PURE__ */ jsx70(
|
|
31985
32219
|
"svg",
|
|
31986
32220
|
{
|
|
31987
32221
|
fill: "none",
|
|
@@ -31994,7 +32228,7 @@ function ClockIcon2({ className, strokeWidth = 2 }) {
|
|
|
31994
32228
|
width: "1em",
|
|
31995
32229
|
height: "1em",
|
|
31996
32230
|
"aria-hidden": "true",
|
|
31997
|
-
children: /* @__PURE__ */
|
|
32231
|
+
children: /* @__PURE__ */ jsx70("path", { d: "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" })
|
|
31998
32232
|
}
|
|
31999
32233
|
);
|
|
32000
32234
|
}
|
|
@@ -32005,9 +32239,9 @@ var init_ClockIcon = __esm({
|
|
|
32005
32239
|
});
|
|
32006
32240
|
|
|
32007
32241
|
// ../blocks/src/system/runtime/shared/components/CrossIcon.tsx
|
|
32008
|
-
import { jsx as
|
|
32242
|
+
import { jsx as jsx71 } from "react/jsx-runtime";
|
|
32009
32243
|
function CrossIcon({ className, strokeWidth = 2 }) {
|
|
32010
|
-
return /* @__PURE__ */
|
|
32244
|
+
return /* @__PURE__ */ jsx71(
|
|
32011
32245
|
"svg",
|
|
32012
32246
|
{
|
|
32013
32247
|
fill: "none",
|
|
@@ -32020,7 +32254,7 @@ function CrossIcon({ className, strokeWidth = 2 }) {
|
|
|
32020
32254
|
width: "1em",
|
|
32021
32255
|
height: "1em",
|
|
32022
32256
|
"aria-hidden": "true",
|
|
32023
|
-
children: /* @__PURE__ */
|
|
32257
|
+
children: /* @__PURE__ */ jsx71("path", { d: "M6 18L18 6M6 6l12 12" })
|
|
32024
32258
|
}
|
|
32025
32259
|
);
|
|
32026
32260
|
}
|
|
@@ -32031,8 +32265,8 @@ var init_CrossIcon = __esm({
|
|
|
32031
32265
|
});
|
|
32032
32266
|
|
|
32033
32267
|
// ../blocks/src/system/runtime/shared/components/ActionRow.tsx
|
|
32034
|
-
import { jsx as
|
|
32035
|
-
function
|
|
32268
|
+
import { jsx as jsx72 } from "react/jsx-runtime";
|
|
32269
|
+
function joinClasses6(...parts) {
|
|
32036
32270
|
return parts.filter((part) => typeof part === "string" && part.length > 0).join(" ");
|
|
32037
32271
|
}
|
|
32038
32272
|
function ActionRow({
|
|
@@ -32040,10 +32274,10 @@ function ActionRow({
|
|
|
32040
32274
|
className,
|
|
32041
32275
|
align = "start"
|
|
32042
32276
|
}) {
|
|
32043
|
-
return /* @__PURE__ */
|
|
32277
|
+
return /* @__PURE__ */ jsx72(
|
|
32044
32278
|
"div",
|
|
32045
32279
|
{
|
|
32046
|
-
className:
|
|
32280
|
+
className: joinClasses6("rb-flex rb-flex-wrap rb-items-center rb-gap-2", alignmentClasses[align], className),
|
|
32047
32281
|
"data-action-row": true,
|
|
32048
32282
|
children
|
|
32049
32283
|
}
|
|
@@ -32062,14 +32296,14 @@ var init_ActionRow = __esm({
|
|
|
32062
32296
|
});
|
|
32063
32297
|
|
|
32064
32298
|
// ../blocks/src/system/runtime/shared/components/LoggedInAsUser.tsx
|
|
32065
|
-
import { Fragment as
|
|
32299
|
+
import { Fragment as Fragment9, jsx as jsx73, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
32066
32300
|
function LoggedInAsUser({ email, onLogout, classPrefix }) {
|
|
32067
|
-
return /* @__PURE__ */
|
|
32301
|
+
return /* @__PURE__ */ jsxs50("p", { className: `${classPrefix}-logged-in-hint`, children: [
|
|
32068
32302
|
"Logged in as ",
|
|
32069
32303
|
email,
|
|
32070
|
-
onLogout && /* @__PURE__ */
|
|
32304
|
+
onLogout && /* @__PURE__ */ jsxs50(Fragment9, { children: [
|
|
32071
32305
|
" \u2014 ",
|
|
32072
|
-
/* @__PURE__ */
|
|
32306
|
+
/* @__PURE__ */ jsx73("button", { type: "button", className: `${classPrefix}-link`, onClick: onLogout, children: "Not you? Log out" })
|
|
32073
32307
|
] })
|
|
32074
32308
|
] });
|
|
32075
32309
|
}
|
|
@@ -32079,32 +32313,21 @@ var init_LoggedInAsUser = __esm({
|
|
|
32079
32313
|
}
|
|
32080
32314
|
});
|
|
32081
32315
|
|
|
32082
|
-
// ../blocks/src/system/runtime/shared/components/StateIcon.tsx
|
|
32083
|
-
import { jsx as jsx71 } from "react/jsx-runtime";
|
|
32084
|
-
function StateIcon({ variant, children }) {
|
|
32085
|
-
return /* @__PURE__ */ jsx71("div", { className: `rb-state-icon rb-state-icon--${variant}`, "aria-hidden": "true", children });
|
|
32086
|
-
}
|
|
32087
|
-
var init_StateIcon = __esm({
|
|
32088
|
-
"../blocks/src/system/runtime/shared/components/StateIcon.tsx"() {
|
|
32089
|
-
"use strict";
|
|
32090
|
-
}
|
|
32091
|
-
});
|
|
32092
|
-
|
|
32093
32316
|
// ../blocks/src/system/runtime/shared/components/MembershipHero.tsx
|
|
32094
|
-
import { jsx as
|
|
32317
|
+
import { jsx as jsx74, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
32095
32318
|
function MembershipHero({
|
|
32096
32319
|
membershipName,
|
|
32097
32320
|
classPrefix,
|
|
32098
32321
|
onBookForSomeoneElse
|
|
32099
32322
|
}) {
|
|
32100
|
-
return /* @__PURE__ */
|
|
32101
|
-
/* @__PURE__ */
|
|
32102
|
-
/* @__PURE__ */
|
|
32323
|
+
return /* @__PURE__ */ jsxs51(FeedbackMessage, { tone: "success", className: `${classPrefix}-membership-hero`, role: "status", children: [
|
|
32324
|
+
/* @__PURE__ */ jsx74("div", { className: `${classPrefix}-membership-hero__icon`, "aria-hidden": "true", children: "\u2728" }),
|
|
32325
|
+
/* @__PURE__ */ jsxs51("h3", { className: `${classPrefix}-membership-hero__title`, children: [
|
|
32103
32326
|
"Included with your ",
|
|
32104
32327
|
membershipName
|
|
32105
32328
|
] }),
|
|
32106
|
-
/* @__PURE__ */
|
|
32107
|
-
onBookForSomeoneElse && /* @__PURE__ */
|
|
32329
|
+
/* @__PURE__ */ jsx74("p", { className: `${classPrefix}-membership-hero__subtitle`, children: "No payment required" }),
|
|
32330
|
+
onBookForSomeoneElse && /* @__PURE__ */ jsx74(
|
|
32108
32331
|
"button",
|
|
32109
32332
|
{
|
|
32110
32333
|
type: "button",
|
|
@@ -32123,9 +32346,9 @@ var init_MembershipHero = __esm({
|
|
|
32123
32346
|
});
|
|
32124
32347
|
|
|
32125
32348
|
// ../blocks/src/system/runtime/shared/components/ModalShell.tsx
|
|
32126
|
-
import * as
|
|
32349
|
+
import * as React9 from "react";
|
|
32127
32350
|
import { createPortal } from "react-dom";
|
|
32128
|
-
import { jsx as
|
|
32351
|
+
import { jsx as jsx75, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
32129
32352
|
function lockBodyScroll() {
|
|
32130
32353
|
if (typeof document === "undefined") {
|
|
32131
32354
|
return;
|
|
@@ -32164,10 +32387,10 @@ function ModalShell({
|
|
|
32164
32387
|
closeButtonClassName,
|
|
32165
32388
|
closeIcon
|
|
32166
32389
|
}) {
|
|
32167
|
-
const closeButtonRef =
|
|
32168
|
-
const onCloseRef =
|
|
32390
|
+
const closeButtonRef = React9.useRef(null);
|
|
32391
|
+
const onCloseRef = React9.useRef(onClose);
|
|
32169
32392
|
onCloseRef.current = onClose;
|
|
32170
|
-
|
|
32393
|
+
React9.useEffect(() => {
|
|
32171
32394
|
closeButtonRef.current?.focus({ preventScroll: true });
|
|
32172
32395
|
const onKeyDown = (event) => {
|
|
32173
32396
|
if (event.key === "Escape") {
|
|
@@ -32181,7 +32404,7 @@ function ModalShell({
|
|
|
32181
32404
|
unlockBodyScroll();
|
|
32182
32405
|
};
|
|
32183
32406
|
}, []);
|
|
32184
|
-
const srOnlyTitle = renderSrOnlyTitle ? /* @__PURE__ */
|
|
32407
|
+
const srOnlyTitle = renderSrOnlyTitle ? /* @__PURE__ */ jsx75(
|
|
32185
32408
|
"h2",
|
|
32186
32409
|
{
|
|
32187
32410
|
id: titleId,
|
|
@@ -32199,9 +32422,9 @@ function ModalShell({
|
|
|
32199
32422
|
children: title
|
|
32200
32423
|
}
|
|
32201
32424
|
) : null;
|
|
32202
|
-
const header = renderHeader ? renderHeader({ title, titleId, onClose, closeButtonRef }) : /* @__PURE__ */
|
|
32203
|
-
!renderSrOnlyTitle ? /* @__PURE__ */
|
|
32204
|
-
/* @__PURE__ */
|
|
32425
|
+
const header = renderHeader ? renderHeader({ title, titleId, onClose, closeButtonRef }) : /* @__PURE__ */ jsxs52("div", { className: headerClassName, children: [
|
|
32426
|
+
!renderSrOnlyTitle ? /* @__PURE__ */ jsx75("h3", { className: titleClassName, id: titleId, children: title }) : null,
|
|
32427
|
+
/* @__PURE__ */ jsx75(
|
|
32205
32428
|
"button",
|
|
32206
32429
|
{
|
|
32207
32430
|
ref: closeButtonRef,
|
|
@@ -32213,7 +32436,7 @@ function ModalShell({
|
|
|
32213
32436
|
}
|
|
32214
32437
|
)
|
|
32215
32438
|
] });
|
|
32216
|
-
const modal = /* @__PURE__ */
|
|
32439
|
+
const modal = /* @__PURE__ */ jsx75("div", { className: overlayClassName, onClick: onClose, children: /* @__PURE__ */ jsxs52(
|
|
32217
32440
|
"div",
|
|
32218
32441
|
{
|
|
32219
32442
|
className: modalClassName,
|
|
@@ -32237,7 +32460,7 @@ function ModalShell({
|
|
|
32237
32460
|
if (!portalRoot) {
|
|
32238
32461
|
return null;
|
|
32239
32462
|
}
|
|
32240
|
-
const modalNode = portalWrapperClassName || portalWrapperProps ? /* @__PURE__ */
|
|
32463
|
+
const modalNode = portalWrapperClassName || portalWrapperProps ? /* @__PURE__ */ jsx75("div", { ...portalWrapperProps, className: portalWrapperClassName, children: modal }) : modal;
|
|
32241
32464
|
return createPortal(modalNode, portalRoot);
|
|
32242
32465
|
}
|
|
32243
32466
|
var modalBodyScrollLockCount, modalBodyOriginalOverflow;
|
|
@@ -32251,7 +32474,7 @@ var init_ModalShell = __esm({
|
|
|
32251
32474
|
});
|
|
32252
32475
|
|
|
32253
32476
|
// ../blocks/src/system/runtime/shared/components/TabBarFragment.tsx
|
|
32254
|
-
import { jsx as
|
|
32477
|
+
import { jsx as jsx76 } from "react/jsx-runtime";
|
|
32255
32478
|
function clampIndex(idx, len) {
|
|
32256
32479
|
if (len <= 0) return 0;
|
|
32257
32480
|
const mod = idx % len;
|
|
@@ -32266,7 +32489,7 @@ function TabBarFragment({
|
|
|
32266
32489
|
tabClassName,
|
|
32267
32490
|
activeTabClassName
|
|
32268
32491
|
}) {
|
|
32269
|
-
return /* @__PURE__ */
|
|
32492
|
+
return /* @__PURE__ */ jsx76(
|
|
32270
32493
|
"div",
|
|
32271
32494
|
{
|
|
32272
32495
|
className,
|
|
@@ -32274,7 +32497,7 @@ function TabBarFragment({
|
|
|
32274
32497
|
"aria-label": ariaLabel,
|
|
32275
32498
|
children: tabs.map((tab, idx) => {
|
|
32276
32499
|
const isActive = tab.id === activeTab;
|
|
32277
|
-
return /* @__PURE__ */
|
|
32500
|
+
return /* @__PURE__ */ jsx76(
|
|
32278
32501
|
"button",
|
|
32279
32502
|
{
|
|
32280
32503
|
type: "button",
|
|
@@ -32318,103 +32541,57 @@ var init_TabBarFragment = __esm({
|
|
|
32318
32541
|
}
|
|
32319
32542
|
});
|
|
32320
32543
|
|
|
32321
|
-
// ../blocks/src/system/runtime/shared/components/
|
|
32322
|
-
import { jsx as
|
|
32323
|
-
function
|
|
32324
|
-
|
|
32325
|
-
|
|
32326
|
-
|
|
32327
|
-
|
|
32328
|
-
|
|
32329
|
-
|
|
32330
|
-
|
|
32331
|
-
|
|
32332
|
-
|
|
32333
|
-
|
|
32334
|
-
|
|
32335
|
-
|
|
32336
|
-
|
|
32337
|
-
|
|
32338
|
-
|
|
32339
|
-
|
|
32340
|
-
|
|
32341
|
-
|
|
32342
|
-
|
|
32343
|
-
const
|
|
32344
|
-
|
|
32345
|
-
|
|
32346
|
-
|
|
32544
|
+
// ../blocks/src/system/runtime/shared/components/SelectableOptionCard.tsx
|
|
32545
|
+
import { jsx as jsx77, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
32546
|
+
function SelectableOptionCard(props2) {
|
|
32547
|
+
const {
|
|
32548
|
+
baseClassName,
|
|
32549
|
+
selectedClassName,
|
|
32550
|
+
disabledClassName,
|
|
32551
|
+
iconClassName,
|
|
32552
|
+
labelClassName,
|
|
32553
|
+
detailClassName,
|
|
32554
|
+
icon: icon2,
|
|
32555
|
+
label,
|
|
32556
|
+
detail,
|
|
32557
|
+
selected,
|
|
32558
|
+
disabled,
|
|
32559
|
+
tooltip,
|
|
32560
|
+
extraClassNames = [],
|
|
32561
|
+
onClick,
|
|
32562
|
+
renderCheck,
|
|
32563
|
+
renderDisabledTooltip
|
|
32564
|
+
} = props2;
|
|
32565
|
+
const isSelected = selected && !disabled;
|
|
32566
|
+
const className = [
|
|
32567
|
+
baseClassName,
|
|
32568
|
+
isSelected && selectedClassName,
|
|
32569
|
+
disabled && disabledClassName,
|
|
32570
|
+
...extraClassNames
|
|
32571
|
+
].filter(Boolean).join(" ");
|
|
32572
|
+
const showNativeTitle = Boolean(tooltip) && !(disabled && renderDisabledTooltip);
|
|
32573
|
+
return /* @__PURE__ */ jsxs53(
|
|
32574
|
+
"button",
|
|
32347
32575
|
{
|
|
32576
|
+
type: "button",
|
|
32348
32577
|
className,
|
|
32349
|
-
|
|
32350
|
-
|
|
32351
|
-
|
|
32352
|
-
"aria-live": resolvedLive === "off" ? void 0 : resolvedLive,
|
|
32578
|
+
onClick: disabled ? void 0 : onClick,
|
|
32579
|
+
title: showNativeTitle ? tooltip : void 0,
|
|
32580
|
+
"aria-disabled": disabled || void 0,
|
|
32353
32581
|
children: [
|
|
32354
|
-
|
|
32355
|
-
/* @__PURE__ */
|
|
32356
|
-
|
|
32357
|
-
|
|
32358
|
-
|
|
32582
|
+
/* @__PURE__ */ jsx77("div", { className: iconClassName, children: icon2 }),
|
|
32583
|
+
/* @__PURE__ */ jsx77("div", { className: labelClassName, children: label }),
|
|
32584
|
+
/* @__PURE__ */ jsx77("div", { className: detailClassName, children: detail }),
|
|
32585
|
+
isSelected && renderCheck?.(),
|
|
32586
|
+
disabled && tooltip && renderDisabledTooltip?.(tooltip)
|
|
32359
32587
|
]
|
|
32360
32588
|
}
|
|
32361
32589
|
);
|
|
32362
32590
|
}
|
|
32363
|
-
var
|
|
32364
|
-
"../blocks/src/system/runtime/shared/components/
|
|
32365
|
-
"use strict";
|
|
32366
|
-
}
|
|
32367
|
-
});
|
|
32368
|
-
|
|
32369
|
-
// ../blocks/src/system/runtime/shared/components/StepIndicator.tsx
|
|
32370
|
-
import { jsx as jsx76, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
32371
|
-
function StepIndicator({
|
|
32372
|
-
currentStep,
|
|
32373
|
-
totalSteps,
|
|
32374
|
-
stepLabels,
|
|
32375
|
-
classPrefix
|
|
32376
|
-
}) {
|
|
32377
|
-
return /* @__PURE__ */ jsx76("nav", { "aria-label": "Registration progress", className: `${classPrefix}-steps-nav`, children: /* @__PURE__ */ jsx76("ol", { className: `${classPrefix}-steps`, children: Array.from({ length: totalSteps }, (_, i) => {
|
|
32378
|
-
const stepNum = i + 1;
|
|
32379
|
-
const isActive = stepNum === currentStep;
|
|
32380
|
-
const isComplete = stepNum < currentStep;
|
|
32381
|
-
return /* @__PURE__ */ jsxs52(
|
|
32382
|
-
"li",
|
|
32383
|
-
{
|
|
32384
|
-
className: `${classPrefix}-step`,
|
|
32385
|
-
"aria-current": isActive ? "step" : void 0,
|
|
32386
|
-
children: [
|
|
32387
|
-
/* @__PURE__ */ jsx76(
|
|
32388
|
-
"div",
|
|
32389
|
-
{
|
|
32390
|
-
className: `${classPrefix}-step-circle${isActive ? ` ${classPrefix}-step-circle--active` : ""}${isComplete ? ` ${classPrefix}-step-circle--completed` : ""}`,
|
|
32391
|
-
children: isComplete ? /* @__PURE__ */ jsx76(CheckIcon2, { className: `${classPrefix}-step-check`, strokeWidth: 3 }) : stepNum
|
|
32392
|
-
}
|
|
32393
|
-
),
|
|
32394
|
-
stepLabels?.[i] && /* @__PURE__ */ jsx76(
|
|
32395
|
-
"span",
|
|
32396
|
-
{
|
|
32397
|
-
className: `${classPrefix}-step-label${isActive ? ` ${classPrefix}-step-label--active` : ""}`,
|
|
32398
|
-
children: stepLabels[i]
|
|
32399
|
-
}
|
|
32400
|
-
),
|
|
32401
|
-
stepNum < totalSteps && /* @__PURE__ */ jsx76(
|
|
32402
|
-
"div",
|
|
32403
|
-
{
|
|
32404
|
-
className: `${classPrefix}-step-connector${isComplete ? ` ${classPrefix}-step-connector--completed` : ""}`,
|
|
32405
|
-
"aria-hidden": "true"
|
|
32406
|
-
}
|
|
32407
|
-
)
|
|
32408
|
-
]
|
|
32409
|
-
},
|
|
32410
|
-
i
|
|
32411
|
-
);
|
|
32412
|
-
}) }) });
|
|
32413
|
-
}
|
|
32414
|
-
var init_StepIndicator = __esm({
|
|
32415
|
-
"../blocks/src/system/runtime/shared/components/StepIndicator.tsx"() {
|
|
32591
|
+
var init_SelectableOptionCard = __esm({
|
|
32592
|
+
"../blocks/src/system/runtime/shared/components/SelectableOptionCard.tsx"() {
|
|
32416
32593
|
"use strict";
|
|
32417
|
-
|
|
32594
|
+
"use client";
|
|
32418
32595
|
}
|
|
32419
32596
|
});
|
|
32420
32597
|
|
|
@@ -32432,6 +32609,7 @@ var init_components = __esm({
|
|
|
32432
32609
|
init_MembershipHero();
|
|
32433
32610
|
init_TerminalPanel();
|
|
32434
32611
|
init_StepIndicator();
|
|
32612
|
+
init_SelectableOptionCard();
|
|
32435
32613
|
}
|
|
32436
32614
|
});
|
|
32437
32615
|
|
|
@@ -32446,8 +32624,8 @@ var init_shared6 = __esm({
|
|
|
32446
32624
|
});
|
|
32447
32625
|
|
|
32448
32626
|
// ../blocks/src/system/runtime/nodes/booking-form.client.tsx
|
|
32449
|
-
import
|
|
32450
|
-
import { jsx as
|
|
32627
|
+
import React10, { useRef as useRef9, useState as useState2 } from "react";
|
|
32628
|
+
import { jsx as jsx78, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
32451
32629
|
function getBookingRedirectLocationSnapshot() {
|
|
32452
32630
|
if (typeof window === "undefined") {
|
|
32453
32631
|
return { search: "", hash: "" };
|
|
@@ -32468,6 +32646,14 @@ function appendRebookFlag(url, enabled) {
|
|
|
32468
32646
|
);
|
|
32469
32647
|
return nextUrl.toString();
|
|
32470
32648
|
}
|
|
32649
|
+
function BookingSurface({
|
|
32650
|
+
id,
|
|
32651
|
+
className,
|
|
32652
|
+
children
|
|
32653
|
+
}) {
|
|
32654
|
+
const classes = ["rb-reg-surface", className ?? ""].join(" ").trim();
|
|
32655
|
+
return /* @__PURE__ */ jsx78("div", { id, className: classes, children });
|
|
32656
|
+
}
|
|
32471
32657
|
function buildBookingFormNodeClientProps(props2) {
|
|
32472
32658
|
return buildBookingFormInteractiveIslandProps(props2);
|
|
32473
32659
|
}
|
|
@@ -32528,7 +32714,7 @@ var init_booking_form_client = __esm({
|
|
|
32528
32714
|
successMessage: render.display.successMessage ?? void 0,
|
|
32529
32715
|
viewerTimeZone
|
|
32530
32716
|
});
|
|
32531
|
-
|
|
32717
|
+
React10.useEffect(() => {
|
|
32532
32718
|
if (!siteId) {
|
|
32533
32719
|
console.error("[BookingFormClient] ERROR: siteId is missing!");
|
|
32534
32720
|
}
|
|
@@ -32545,7 +32731,7 @@ var init_booking_form_client = __esm({
|
|
|
32545
32731
|
redirectState,
|
|
32546
32732
|
verificationState: verification.state
|
|
32547
32733
|
});
|
|
32548
|
-
|
|
32734
|
+
React10.useEffect(() => {
|
|
32549
32735
|
if (viewState.kind === "error") {
|
|
32550
32736
|
scrollToBlock(bookingAnchorId);
|
|
32551
32737
|
}
|
|
@@ -32554,12 +32740,12 @@ var init_booking_form_client = __esm({
|
|
|
32554
32740
|
viewState.kind,
|
|
32555
32741
|
viewState.kind === "error" ? viewState.message : null
|
|
32556
32742
|
]);
|
|
32557
|
-
|
|
32743
|
+
React10.useEffect(() => {
|
|
32558
32744
|
if (viewState.kind === "success" && redirectState.kind === "success") {
|
|
32559
32745
|
scrollToBlock(bookingAnchorId);
|
|
32560
32746
|
}
|
|
32561
32747
|
}, [bookingAnchorId, redirectState.kind, viewState.kind]);
|
|
32562
|
-
|
|
32748
|
+
React10.useEffect(() => {
|
|
32563
32749
|
if (!isPortalRebook || viewState.kind !== "success") {
|
|
32564
32750
|
return;
|
|
32565
32751
|
}
|
|
@@ -32585,13 +32771,13 @@ var init_booking_form_client = __esm({
|
|
|
32585
32771
|
viewState.kind
|
|
32586
32772
|
]);
|
|
32587
32773
|
if (render.display.state === "missing" || !form2 || !render.hydration.formId) {
|
|
32588
|
-
return /* @__PURE__ */
|
|
32774
|
+
return /* @__PURE__ */ jsx78(
|
|
32589
32775
|
FeedbackMessage,
|
|
32590
32776
|
{
|
|
32591
32777
|
tone: "error",
|
|
32592
|
-
className: `
|
|
32778
|
+
className: `alert alert-error ${render.display.className ?? ""}`.trim(),
|
|
32593
32779
|
role: "alert",
|
|
32594
|
-
children: /* @__PURE__ */
|
|
32780
|
+
children: /* @__PURE__ */ jsx78("p", { className: "ab-text", children: render.display.message ?? "Booking form not found. Please check your configuration." })
|
|
32595
32781
|
}
|
|
32596
32782
|
);
|
|
32597
32783
|
}
|
|
@@ -32611,39 +32797,31 @@ var init_booking_form_client = __esm({
|
|
|
32611
32797
|
}
|
|
32612
32798
|
};
|
|
32613
32799
|
if (viewState.kind === "success") {
|
|
32614
|
-
return /* @__PURE__ */
|
|
32800
|
+
return /* @__PURE__ */ jsx78(BookingSurface, { id: bookingAnchorId, className: render.display.className, children: /* @__PURE__ */ jsx78(
|
|
32615
32801
|
SuccessMessage,
|
|
32616
32802
|
{
|
|
32617
32803
|
message: getBookingSuccessMessage(render.display.successMessage),
|
|
32618
|
-
resourceName: viewState.resourceName
|
|
32619
|
-
className: render.display.className ?? void 0
|
|
32804
|
+
resourceName: viewState.resourceName
|
|
32620
32805
|
}
|
|
32621
|
-
);
|
|
32806
|
+
) });
|
|
32622
32807
|
}
|
|
32623
32808
|
if (viewState.kind === "verifying") {
|
|
32624
|
-
return /* @__PURE__ */
|
|
32625
|
-
"div",
|
|
32626
|
-
{
|
|
32627
|
-
id: bookingAnchorId,
|
|
32628
|
-
className: render.display.className ?? void 0,
|
|
32629
|
-
children: /* @__PURE__ */ jsx77(FeedbackMessage, { tone: "info", className: "ab-alert ab-alert--info", role: "status", children: /* @__PURE__ */ jsx77("p", { className: "ab-text", children: viewState.message }) })
|
|
32630
|
-
}
|
|
32631
|
-
);
|
|
32809
|
+
return /* @__PURE__ */ jsx78(BookingSurface, { id: bookingAnchorId, className: render.display.className, children: /* @__PURE__ */ jsx78(FeedbackMessage, { tone: "info", className: "alert alert-info", role: "status", children: /* @__PURE__ */ jsx78("p", { className: "ab-text", children: viewState.message }) }) });
|
|
32632
32810
|
}
|
|
32633
|
-
return /* @__PURE__ */
|
|
32634
|
-
render.hydration.noticeMessage ? /* @__PURE__ */
|
|
32635
|
-
viewState.kind === "error" ? /* @__PURE__ */
|
|
32636
|
-
/* @__PURE__ */
|
|
32811
|
+
return /* @__PURE__ */ jsxs54(BookingSurface, { id: bookingAnchorId, className: render.display.className, children: [
|
|
32812
|
+
render.hydration.noticeMessage ? /* @__PURE__ */ jsx78(FeedbackMessage, { tone: "info", className: "alert alert-info rb-mb-4", role: "status", children: /* @__PURE__ */ jsx78("p", { className: "ab-text", children: render.hydration.noticeMessage }) }) : null,
|
|
32813
|
+
viewState.kind === "error" ? /* @__PURE__ */ jsx78(FeedbackMessage, { tone: "error", className: "alert alert-error rb-mb-4", role: "alert", children: /* @__PURE__ */ jsx78("p", { className: "ab-text", children: viewState.message }) }) : null,
|
|
32814
|
+
/* @__PURE__ */ jsx78(HeadlessBookingDefaultForm, { booking, onSubmit: handleComplete })
|
|
32637
32815
|
] });
|
|
32638
32816
|
};
|
|
32639
|
-
BookingFormNodeClient = (props2) => /* @__PURE__ */
|
|
32817
|
+
BookingFormNodeClient = (props2) => /* @__PURE__ */ jsx78(BookingFormClient, { ...buildBookingFormNodeClientProps(props2) });
|
|
32640
32818
|
}
|
|
32641
32819
|
});
|
|
32642
32820
|
|
|
32643
32821
|
// ../blocks/src/system/runtime/nodes/event-registration/StepIndicator.tsx
|
|
32644
|
-
import { jsx as
|
|
32822
|
+
import { jsx as jsx79 } from "react/jsx-runtime";
|
|
32645
32823
|
function StepIndicator2(props2) {
|
|
32646
|
-
return /* @__PURE__ */
|
|
32824
|
+
return /* @__PURE__ */ jsx79(StepIndicator, { ...props2, classPrefix: "er", emitSharedClasses: true });
|
|
32647
32825
|
}
|
|
32648
32826
|
var init_StepIndicator2 = __esm({
|
|
32649
32827
|
"../blocks/src/system/runtime/nodes/event-registration/StepIndicator.tsx"() {
|
|
@@ -33558,7 +33736,7 @@ var init_sessionStorage = __esm({
|
|
|
33558
33736
|
});
|
|
33559
33737
|
|
|
33560
33738
|
// ../blocks/src/system/runtime/nodes/event-registration/EventSelectionStep.tsx
|
|
33561
|
-
import { Fragment as
|
|
33739
|
+
import { Fragment as Fragment10, jsx as jsx80, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
33562
33740
|
function getEventSelectionMode(events) {
|
|
33563
33741
|
const firstSeriesId = events[0]?.seriesId;
|
|
33564
33742
|
if (events.length > 1 && firstSeriesId && events.every((event) => event.seriesId === firstSeriesId)) {
|
|
@@ -33581,9 +33759,9 @@ var init_EventSelectionStep = __esm({
|
|
|
33581
33759
|
}) => {
|
|
33582
33760
|
const selectionMode = getEventSelectionMode(events);
|
|
33583
33761
|
const isDateSelection2 = selectionMode === "date";
|
|
33584
|
-
return /* @__PURE__ */
|
|
33585
|
-
/* @__PURE__ */
|
|
33586
|
-
/* @__PURE__ */
|
|
33762
|
+
return /* @__PURE__ */ jsxs55("div", { className: "rb-reg-stack er-stack", children: [
|
|
33763
|
+
/* @__PURE__ */ jsx80("h3", { className: "er-title", children: isDateSelection2 ? "Choose a date" : "Select an event" }),
|
|
33764
|
+
/* @__PURE__ */ jsx80("div", { className: "er-event-grid", children: events.map((event) => {
|
|
33587
33765
|
const isSelected = selectedEvent?.publicEventId === event.publicEventId;
|
|
33588
33766
|
const isSoldOut = event.capacity !== null && event.availableSpots === 0;
|
|
33589
33767
|
const canJoinWaitlist = isSoldOut && event.waitlistEnabled === true;
|
|
@@ -33601,25 +33779,25 @@ var init_EventSelectionStep = __esm({
|
|
|
33601
33779
|
isLowCapacity && "er-capacity-badge--low",
|
|
33602
33780
|
(canJoinWaitlist || !isUnavailable && !isLowCapacity) && "er-capacity-badge--available"
|
|
33603
33781
|
].filter(Boolean).join(" ");
|
|
33604
|
-
return /* @__PURE__ */
|
|
33782
|
+
return /* @__PURE__ */ jsx80(
|
|
33605
33783
|
"button",
|
|
33606
33784
|
{
|
|
33607
33785
|
type: "button",
|
|
33608
33786
|
onClick: () => !isUnavailable && onSelect(event),
|
|
33609
33787
|
disabled: isUnavailable,
|
|
33610
33788
|
className: cardClasses,
|
|
33611
|
-
children: /* @__PURE__ */
|
|
33612
|
-
/* @__PURE__ */
|
|
33613
|
-
/* @__PURE__ */
|
|
33614
|
-
/* @__PURE__ */
|
|
33789
|
+
children: /* @__PURE__ */ jsxs55("div", { className: "er-event-option", children: [
|
|
33790
|
+
/* @__PURE__ */ jsxs55("div", { className: "er-event-option-main", children: [
|
|
33791
|
+
/* @__PURE__ */ jsx80("h4", { className: "er-event-title", children: isDateSelection2 ? formatDate3(event.startsAt, { timeZone }) : event.title }),
|
|
33792
|
+
/* @__PURE__ */ jsxs55("p", { className: "er-text er-text--muted", children: [
|
|
33615
33793
|
isDateSelection2 ? formatTime3(event.startsAt, { timeZone }) : `${formatDate3(event.startsAt, { timeZone })} at ${formatTime3(event.startsAt, { timeZone })}`,
|
|
33616
|
-
showVenue && event.venue && /* @__PURE__ */
|
|
33617
|
-
/* @__PURE__ */
|
|
33794
|
+
showVenue && event.venue && /* @__PURE__ */ jsxs55(Fragment10, { children: [
|
|
33795
|
+
/* @__PURE__ */ jsx80("span", { "aria-hidden": "true", children: " \xB7 " }),
|
|
33618
33796
|
event.venue.name
|
|
33619
33797
|
] })
|
|
33620
33798
|
] })
|
|
33621
33799
|
] }),
|
|
33622
|
-
showCapacity && event.capacity !== null && /* @__PURE__ */
|
|
33800
|
+
showCapacity && event.capacity !== null && /* @__PURE__ */ jsx80("span", { className: badgeClasses, children: canJoinWaitlist ? "Waitlist" : isUnavailable ? "Sold Out" : `${event.availableSpots ?? 0} spots left` })
|
|
33623
33801
|
] })
|
|
33624
33802
|
},
|
|
33625
33803
|
event.publicEventId
|
|
@@ -33631,7 +33809,7 @@ var init_EventSelectionStep = __esm({
|
|
|
33631
33809
|
});
|
|
33632
33810
|
|
|
33633
33811
|
// ../blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.tsx
|
|
33634
|
-
import { Fragment as
|
|
33812
|
+
import { Fragment as Fragment11, jsx as jsx81, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
33635
33813
|
function getEventAttendanceModeLabel(mode) {
|
|
33636
33814
|
switch (mode) {
|
|
33637
33815
|
case "in_person":
|
|
@@ -33643,8 +33821,8 @@ function getEventAttendanceModeLabel(mode) {
|
|
|
33643
33821
|
function TicketCounter(props2) {
|
|
33644
33822
|
const { ticketsCount, maxAllowed, label, onTicketsChange } = props2;
|
|
33645
33823
|
const minAllowed = props2.minAllowed ?? 1;
|
|
33646
|
-
return /* @__PURE__ */
|
|
33647
|
-
/* @__PURE__ */
|
|
33824
|
+
return /* @__PURE__ */ jsxs56("div", { className: "rb-reg-row er-row er-counter", children: [
|
|
33825
|
+
/* @__PURE__ */ jsx81(
|
|
33648
33826
|
"button",
|
|
33649
33827
|
{
|
|
33650
33828
|
type: "button",
|
|
@@ -33655,8 +33833,8 @@ function TicketCounter(props2) {
|
|
|
33655
33833
|
children: "-"
|
|
33656
33834
|
}
|
|
33657
33835
|
),
|
|
33658
|
-
/* @__PURE__ */
|
|
33659
|
-
/* @__PURE__ */
|
|
33836
|
+
/* @__PURE__ */ jsx81("span", { className: "er-counter-value", children: ticketsCount }),
|
|
33837
|
+
/* @__PURE__ */ jsx81(
|
|
33660
33838
|
"button",
|
|
33661
33839
|
{
|
|
33662
33840
|
type: "button",
|
|
@@ -33670,11 +33848,11 @@ function TicketCounter(props2) {
|
|
|
33670
33848
|
] });
|
|
33671
33849
|
}
|
|
33672
33850
|
function TicketCounterLimit(props2) {
|
|
33673
|
-
return /* @__PURE__ */
|
|
33674
|
-
/* @__PURE__ */
|
|
33675
|
-
props2.availabilityLabel ? /* @__PURE__ */
|
|
33676
|
-
/* @__PURE__ */
|
|
33677
|
-
/* @__PURE__ */
|
|
33851
|
+
return /* @__PURE__ */ jsxs56("p", { className: "er-ticket-counter-limit", children: [
|
|
33852
|
+
/* @__PURE__ */ jsx81("span", { children: props2.maximumLabel }),
|
|
33853
|
+
props2.availabilityLabel ? /* @__PURE__ */ jsxs56(Fragment11, { children: [
|
|
33854
|
+
/* @__PURE__ */ jsx81("br", {}),
|
|
33855
|
+
/* @__PURE__ */ jsx81("span", { children: props2.availabilityLabel })
|
|
33678
33856
|
] }) : null
|
|
33679
33857
|
] });
|
|
33680
33858
|
}
|
|
@@ -33686,9 +33864,9 @@ function SlidingScaleAmountField(props2) {
|
|
|
33686
33864
|
const minLabel = formatPrice(props2.slidingScale.minAmount, props2.currency);
|
|
33687
33865
|
const maxLabel = formatPrice(props2.slidingScale.maxAmount, props2.currency);
|
|
33688
33866
|
const suggestedLabel = props2.slidingScale.suggestedAmount !== null ? formatPrice(props2.slidingScale.suggestedAmount, props2.currency) : null;
|
|
33689
|
-
return /* @__PURE__ */
|
|
33690
|
-
/* @__PURE__ */
|
|
33691
|
-
/* @__PURE__ */
|
|
33867
|
+
return /* @__PURE__ */ jsxs56("div", { className: "er-field", children: [
|
|
33868
|
+
/* @__PURE__ */ jsx81("label", { htmlFor: "er-sliding-amount", className: "er-label", children: "Amount" }),
|
|
33869
|
+
/* @__PURE__ */ jsx81(
|
|
33692
33870
|
"input",
|
|
33693
33871
|
{
|
|
33694
33872
|
id: "er-sliding-amount",
|
|
@@ -33702,7 +33880,7 @@ function SlidingScaleAmountField(props2) {
|
|
|
33702
33880
|
onChange: (event) => props2.onChange?.(event.target.value)
|
|
33703
33881
|
}
|
|
33704
33882
|
),
|
|
33705
|
-
/* @__PURE__ */
|
|
33883
|
+
/* @__PURE__ */ jsxs56("p", { className: "er-text er-text--muted", children: [
|
|
33706
33884
|
"Choose between ",
|
|
33707
33885
|
minLabel,
|
|
33708
33886
|
" and ",
|
|
@@ -33710,13 +33888,13 @@ function SlidingScaleAmountField(props2) {
|
|
|
33710
33888
|
suggestedLabel ? `; suggested ${suggestedLabel}` : "",
|
|
33711
33889
|
"."
|
|
33712
33890
|
] }),
|
|
33713
|
-
props2.message ? /* @__PURE__ */
|
|
33891
|
+
props2.message ? /* @__PURE__ */ jsx81("p", { className: "er-text er-text--muted", children: props2.message }) : null
|
|
33714
33892
|
] });
|
|
33715
33893
|
}
|
|
33716
33894
|
function TicketTypeQuantityRows(props2) {
|
|
33717
33895
|
const totalSelectedQuantity = getTicketSelectionTotal(props2.ticketSelections);
|
|
33718
|
-
return /* @__PURE__ */
|
|
33719
|
-
/* @__PURE__ */
|
|
33896
|
+
return /* @__PURE__ */ jsxs56("div", { className: "er-ticket-lines", children: [
|
|
33897
|
+
/* @__PURE__ */ jsx81("div", { className: "er-ticket-line-list", role: "list", "aria-label": "Tickets", children: props2.ticketTypes.map((ticketType) => {
|
|
33720
33898
|
const quantity = getTicketLineQuantity(props2.ticketSelections, ticketType.id);
|
|
33721
33899
|
const disabled = ticketType.availability.kind === "unavailable";
|
|
33722
33900
|
const availabilityLabel = getTicketTypeAvailabilityLabel(ticketType);
|
|
@@ -33728,24 +33906,24 @@ function TicketTypeQuantityRows(props2) {
|
|
|
33728
33906
|
availableSpots: props2.availableSpots,
|
|
33729
33907
|
ticketTypeRemainingCapacity: ticketType.availability.remainingCapacity
|
|
33730
33908
|
});
|
|
33731
|
-
return /* @__PURE__ */
|
|
33909
|
+
return /* @__PURE__ */ jsxs56(
|
|
33732
33910
|
"div",
|
|
33733
33911
|
{
|
|
33734
33912
|
className: `er-ticket-line${disabled ? " er-ticket-line--disabled" : ""}`,
|
|
33735
33913
|
role: "listitem",
|
|
33736
33914
|
children: [
|
|
33737
|
-
/* @__PURE__ */
|
|
33738
|
-
/* @__PURE__ */
|
|
33739
|
-
/* @__PURE__ */
|
|
33740
|
-
/* @__PURE__ */
|
|
33915
|
+
/* @__PURE__ */ jsxs56("div", { className: "er-ticket-line-main", children: [
|
|
33916
|
+
/* @__PURE__ */ jsxs56("div", { className: "er-ticket-line-heading", children: [
|
|
33917
|
+
/* @__PURE__ */ jsx81("span", { className: "er-ticket-line-name", children: ticketType.name }),
|
|
33918
|
+
/* @__PURE__ */ jsx81("span", { className: "er-ticket-line-price", children: priceLabel })
|
|
33741
33919
|
] }),
|
|
33742
|
-
ticketType.description ? /* @__PURE__ */
|
|
33743
|
-
availabilityLabel ? /* @__PURE__ */
|
|
33920
|
+
ticketType.description ? /* @__PURE__ */ jsx81("p", { className: "er-ticket-line-detail", children: ticketType.description }) : null,
|
|
33921
|
+
availabilityLabel ? /* @__PURE__ */ jsx81("p", { className: "er-ticket-line-detail", children: availabilityLabel }) : ticketType.availability.remainingCapacity !== null ? /* @__PURE__ */ jsxs56("p", { className: "er-ticket-line-detail", children: [
|
|
33744
33922
|
ticketType.availability.remainingCapacity,
|
|
33745
33923
|
" remaining for this ticket type"
|
|
33746
33924
|
] }) : null
|
|
33747
33925
|
] }),
|
|
33748
|
-
/* @__PURE__ */
|
|
33926
|
+
/* @__PURE__ */ jsx81(
|
|
33749
33927
|
TicketCounter,
|
|
33750
33928
|
{
|
|
33751
33929
|
ticketsCount: quantity,
|
|
@@ -33766,14 +33944,14 @@ function TicketTypeQuantityRows(props2) {
|
|
|
33766
33944
|
ticketType.id
|
|
33767
33945
|
);
|
|
33768
33946
|
}) }),
|
|
33769
|
-
/* @__PURE__ */
|
|
33947
|
+
/* @__PURE__ */ jsx81(
|
|
33770
33948
|
TicketCounterLimit,
|
|
33771
33949
|
{
|
|
33772
33950
|
maximumLabel: `${props2.maxTickets} tickets maximum`,
|
|
33773
33951
|
availabilityLabel: props2.availableSpots != null ? `${props2.availableSpots} spots available` : null
|
|
33774
33952
|
}
|
|
33775
33953
|
),
|
|
33776
|
-
totalSelectedQuantity === 0 && props2.hasAvailableTicketTypes ? /* @__PURE__ */
|
|
33954
|
+
totalSelectedQuantity === 0 && props2.hasAvailableTicketTypes ? /* @__PURE__ */ jsx81("p", { className: "er-text er-text--muted", children: "Choose at least one ticket to continue." }) : totalSelectedQuantity === 0 ? /* @__PURE__ */ jsx81("p", { className: "er-text er-text--muted", children: "No ticket types are currently available." }) : null
|
|
33777
33955
|
] });
|
|
33778
33956
|
}
|
|
33779
33957
|
function getAttendanceModeDetail(attendanceMode) {
|
|
@@ -33786,9 +33964,9 @@ function getAttendanceModeDetail(attendanceMode) {
|
|
|
33786
33964
|
return `${attendanceMode.availableSpots} spots available`;
|
|
33787
33965
|
}
|
|
33788
33966
|
function AttendanceModeTiles(props2) {
|
|
33789
|
-
return /* @__PURE__ */
|
|
33967
|
+
return /* @__PURE__ */ jsx81("div", { className: "er-payment-tiles", role: "list", "aria-label": "Attendance mode", children: props2.attendanceModes.map((attendanceMode) => {
|
|
33790
33968
|
const isSelected = props2.selectedAttendanceMode === attendanceMode.mode;
|
|
33791
|
-
return /* @__PURE__ */
|
|
33969
|
+
return /* @__PURE__ */ jsx81("div", { role: "listitem", children: /* @__PURE__ */ jsxs56(
|
|
33792
33970
|
"button",
|
|
33793
33971
|
{
|
|
33794
33972
|
type: "button",
|
|
@@ -33796,8 +33974,8 @@ function AttendanceModeTiles(props2) {
|
|
|
33796
33974
|
className: `er-payment-tile${isSelected ? " er-payment-tile--selected" : ""}`,
|
|
33797
33975
|
onClick: () => props2.onAttendanceModeChange?.(attendanceMode.mode),
|
|
33798
33976
|
children: [
|
|
33799
|
-
/* @__PURE__ */
|
|
33800
|
-
/* @__PURE__ */
|
|
33977
|
+
/* @__PURE__ */ jsx81("div", { className: "er-payment-tile-label", children: getEventAttendanceModeLabel(attendanceMode.mode) }),
|
|
33978
|
+
/* @__PURE__ */ jsx81("div", { className: "er-payment-tile-detail", children: getAttendanceModeDetail(attendanceMode) })
|
|
33801
33979
|
]
|
|
33802
33980
|
}
|
|
33803
33981
|
) }, attendanceMode.mode);
|
|
@@ -33877,9 +34055,9 @@ var init_TicketSelectionStep = __esm({
|
|
|
33877
34055
|
});
|
|
33878
34056
|
const eventAvailabilityLabel = !canJoinWaitlist && event?.availableSpots != null ? `${event.availableSpots} spots available` : null;
|
|
33879
34057
|
if (deliveryMode === "hybrid" && !selectedAttendanceMode) {
|
|
33880
|
-
return /* @__PURE__ */
|
|
33881
|
-
/* @__PURE__ */
|
|
33882
|
-
/* @__PURE__ */
|
|
34058
|
+
return /* @__PURE__ */ jsxs56("div", { className: "rb-reg-stack er-stack", children: [
|
|
34059
|
+
/* @__PURE__ */ jsx81("h3", { className: "er-title", children: "How will you attend?" }),
|
|
34060
|
+
/* @__PURE__ */ jsx81(
|
|
33883
34061
|
AttendanceModeTiles,
|
|
33884
34062
|
{
|
|
33885
34063
|
attendanceModes,
|
|
@@ -33887,19 +34065,19 @@ var init_TicketSelectionStep = __esm({
|
|
|
33887
34065
|
onAttendanceModeChange
|
|
33888
34066
|
}
|
|
33889
34067
|
),
|
|
33890
|
-
/* @__PURE__ */
|
|
34068
|
+
/* @__PURE__ */ jsx81("p", { className: "er-text er-text--muted", children: "Choose whether you want to attend in person or online." })
|
|
33891
34069
|
] });
|
|
33892
34070
|
}
|
|
33893
34071
|
if (isSoldOut && !canJoinWaitlist) {
|
|
33894
|
-
return /* @__PURE__ */
|
|
33895
|
-
/* @__PURE__ */
|
|
33896
|
-
/* @__PURE__ */
|
|
34072
|
+
return /* @__PURE__ */ jsxs56("div", { className: "rb-reg-stack er-stack", children: [
|
|
34073
|
+
/* @__PURE__ */ jsx81("h3", { className: "er-title", children: "Sold Out" }),
|
|
34074
|
+
/* @__PURE__ */ jsx81("p", { className: "er-text er-text--muted", children: "Sorry you missed out! This event is fully booked." })
|
|
33897
34075
|
] });
|
|
33898
34076
|
}
|
|
33899
|
-
return /* @__PURE__ */
|
|
33900
|
-
deliveryMode === "hybrid" ? /* @__PURE__ */
|
|
33901
|
-
/* @__PURE__ */
|
|
33902
|
-
/* @__PURE__ */
|
|
34077
|
+
return /* @__PURE__ */ jsxs56("div", { className: "rb-reg-stack er-stack", children: [
|
|
34078
|
+
deliveryMode === "hybrid" ? /* @__PURE__ */ jsxs56(Fragment11, { children: [
|
|
34079
|
+
/* @__PURE__ */ jsx81("h3", { className: "er-title", children: "How will you attend?" }),
|
|
34080
|
+
/* @__PURE__ */ jsx81(
|
|
33903
34081
|
AttendanceModeTiles,
|
|
33904
34082
|
{
|
|
33905
34083
|
attendanceModes,
|
|
@@ -33908,9 +34086,9 @@ var init_TicketSelectionStep = __esm({
|
|
|
33908
34086
|
}
|
|
33909
34087
|
)
|
|
33910
34088
|
] }) : null,
|
|
33911
|
-
usesTicketTypes ? /* @__PURE__ */
|
|
33912
|
-
/* @__PURE__ */
|
|
33913
|
-
/* @__PURE__ */
|
|
34089
|
+
usesTicketTypes ? /* @__PURE__ */ jsx81(Fragment11, { children: noVisibleTicketTypes ? /* @__PURE__ */ jsx81("p", { className: "er-text er-text--muted", children: "No ticket types are currently available." }) : /* @__PURE__ */ jsxs56(Fragment11, { children: [
|
|
34090
|
+
/* @__PURE__ */ jsx81("h3", { className: "er-title", children: "Choose tickets" }),
|
|
34091
|
+
/* @__PURE__ */ jsx81(
|
|
33914
34092
|
TicketTypeQuantityRows,
|
|
33915
34093
|
{
|
|
33916
34094
|
ticketTypes: visibleTicketTypes,
|
|
@@ -33922,8 +34100,8 @@ var init_TicketSelectionStep = __esm({
|
|
|
33922
34100
|
onTicketSelectionsChange
|
|
33923
34101
|
}
|
|
33924
34102
|
)
|
|
33925
|
-
] }) }) : /* @__PURE__ */
|
|
33926
|
-
slidingScale ? /* @__PURE__ */
|
|
34103
|
+
] }) }) : /* @__PURE__ */ jsxs56(Fragment11, { children: [
|
|
34104
|
+
slidingScale ? /* @__PURE__ */ jsx81(
|
|
33927
34105
|
SlidingScaleAmountField,
|
|
33928
34106
|
{
|
|
33929
34107
|
slidingScale,
|
|
@@ -33933,9 +34111,9 @@ var init_TicketSelectionStep = __esm({
|
|
|
33933
34111
|
onChange: onSlidingAmountChange
|
|
33934
34112
|
}
|
|
33935
34113
|
) : null,
|
|
33936
|
-
/* @__PURE__ */
|
|
33937
|
-
/* @__PURE__ */
|
|
33938
|
-
/* @__PURE__ */
|
|
34114
|
+
/* @__PURE__ */ jsx81("h3", { className: "er-title", children: canJoinWaitlist ? "How many waitlist spots?" : "How many tickets?" }),
|
|
34115
|
+
/* @__PURE__ */ jsxs56("div", { className: "er-ticket-counter-group", children: [
|
|
34116
|
+
/* @__PURE__ */ jsx81(
|
|
33939
34117
|
TicketCounter,
|
|
33940
34118
|
{
|
|
33941
34119
|
ticketsCount,
|
|
@@ -33944,7 +34122,7 @@ var init_TicketSelectionStep = __esm({
|
|
|
33944
34122
|
onTicketsChange
|
|
33945
34123
|
}
|
|
33946
34124
|
),
|
|
33947
|
-
/* @__PURE__ */
|
|
34125
|
+
/* @__PURE__ */ jsx81(
|
|
33948
34126
|
TicketCounterLimit,
|
|
33949
34127
|
{
|
|
33950
34128
|
maximumLabel: `${maxAllowed} ${canJoinWaitlist ? "waitlist spots" : "tickets"} maximum`,
|
|
@@ -33953,7 +34131,7 @@ var init_TicketSelectionStep = __esm({
|
|
|
33953
34131
|
)
|
|
33954
34132
|
] })
|
|
33955
34133
|
] }),
|
|
33956
|
-
canJoinWaitlist && /* @__PURE__ */
|
|
34134
|
+
canJoinWaitlist && /* @__PURE__ */ jsx81("p", { className: "er-text er-text--muted", children: "This event is currently full. Continue to join the waitlist if a spot opens up." })
|
|
33957
34135
|
] });
|
|
33958
34136
|
};
|
|
33959
34137
|
}
|
|
@@ -33961,7 +34139,7 @@ var init_TicketSelectionStep = __esm({
|
|
|
33961
34139
|
|
|
33962
34140
|
// ../blocks/src/system/runtime/nodes/event-registration/GuestDetailsSection.tsx
|
|
33963
34141
|
import { useRef as useRef11, useEffect as useEffect10 } from "react";
|
|
33964
|
-
import { jsx as
|
|
34142
|
+
import { jsx as jsx82, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
33965
34143
|
function hasGuestErrors(errors) {
|
|
33966
34144
|
return Object.keys(errors).length > 0;
|
|
33967
34145
|
}
|
|
@@ -34004,16 +34182,16 @@ var init_GuestDetailsSection = __esm({
|
|
|
34004
34182
|
if (guests.length === 0) return null;
|
|
34005
34183
|
const showErrorBanner = hasGuestErrors(errors);
|
|
34006
34184
|
const firstErrorIndex = Object.keys(errors).length > 0 ? Math.min(...Object.keys(errors).map(Number)) : -1;
|
|
34007
|
-
return /* @__PURE__ */
|
|
34185
|
+
return /* @__PURE__ */ jsxs57(
|
|
34008
34186
|
"div",
|
|
34009
34187
|
{
|
|
34010
34188
|
ref: sectionRef,
|
|
34011
34189
|
className: `er-guest-section ${shake ? "er-guest-section--shake" : ""}`,
|
|
34012
34190
|
onAnimationEnd: handleAnimationEnd,
|
|
34013
34191
|
children: [
|
|
34014
|
-
/* @__PURE__ */
|
|
34015
|
-
showErrorBanner && /* @__PURE__ */
|
|
34016
|
-
/* @__PURE__ */
|
|
34192
|
+
/* @__PURE__ */ jsx82("h3", { className: "er-title", children: "Who else is coming?" }),
|
|
34193
|
+
showErrorBanner && /* @__PURE__ */ jsx82(FeedbackMessage, { tone: "error", className: "er-guest-section-error", role: "alert", children: errorMessage }),
|
|
34194
|
+
/* @__PURE__ */ jsx82("div", { className: "er-guest-cards", children: guests.map((guest, index) => {
|
|
34017
34195
|
const guestError = errors?.[index]?.name;
|
|
34018
34196
|
const guestErrorId = `guest-${index}-error`;
|
|
34019
34197
|
const guestValidationProps = getFieldValidationControlProps({
|
|
@@ -34021,13 +34199,13 @@ var init_GuestDetailsSection = __esm({
|
|
|
34021
34199
|
messageId: guestErrorId
|
|
34022
34200
|
});
|
|
34023
34201
|
const isFirstError = index === firstErrorIndex;
|
|
34024
|
-
return /* @__PURE__ */
|
|
34025
|
-
/* @__PURE__ */
|
|
34026
|
-
/* @__PURE__ */
|
|
34202
|
+
return /* @__PURE__ */ jsxs57("div", { className: "er-guest-card", children: [
|
|
34203
|
+
/* @__PURE__ */ jsxs57("div", { className: "er-field", children: [
|
|
34204
|
+
/* @__PURE__ */ jsxs57("label", { className: "er-label", children: [
|
|
34027
34205
|
"Name ",
|
|
34028
|
-
/* @__PURE__ */
|
|
34206
|
+
/* @__PURE__ */ jsx82("span", { className: "er-required", children: "*" })
|
|
34029
34207
|
] }),
|
|
34030
|
-
/* @__PURE__ */
|
|
34208
|
+
/* @__PURE__ */ jsx82(
|
|
34031
34209
|
"input",
|
|
34032
34210
|
{
|
|
34033
34211
|
ref: isFirstError ? firstErrorRef : void 0,
|
|
@@ -34039,11 +34217,11 @@ var init_GuestDetailsSection = __esm({
|
|
|
34039
34217
|
...guestValidationProps
|
|
34040
34218
|
}
|
|
34041
34219
|
),
|
|
34042
|
-
guestError && /* @__PURE__ */
|
|
34220
|
+
guestError && /* @__PURE__ */ jsx82(FieldValidationMessage, { id: guestErrorId, className: "er-error", children: guestError })
|
|
34043
34221
|
] }),
|
|
34044
|
-
/* @__PURE__ */
|
|
34045
|
-
/* @__PURE__ */
|
|
34046
|
-
/* @__PURE__ */
|
|
34222
|
+
/* @__PURE__ */ jsxs57("div", { className: "er-field", children: [
|
|
34223
|
+
/* @__PURE__ */ jsx82("label", { className: "er-label", children: "Email" }),
|
|
34224
|
+
/* @__PURE__ */ jsx82(
|
|
34047
34225
|
"input",
|
|
34048
34226
|
{
|
|
34049
34227
|
type: "email",
|
|
@@ -34054,9 +34232,9 @@ var init_GuestDetailsSection = __esm({
|
|
|
34054
34232
|
}
|
|
34055
34233
|
)
|
|
34056
34234
|
] }),
|
|
34057
|
-
/* @__PURE__ */
|
|
34058
|
-
/* @__PURE__ */
|
|
34059
|
-
/* @__PURE__ */
|
|
34235
|
+
/* @__PURE__ */ jsxs57("div", { className: "er-field", children: [
|
|
34236
|
+
/* @__PURE__ */ jsx82("label", { className: "er-label", children: "Phone" }),
|
|
34237
|
+
/* @__PURE__ */ jsx82(
|
|
34060
34238
|
"input",
|
|
34061
34239
|
{
|
|
34062
34240
|
type: "tel",
|
|
@@ -34078,7 +34256,7 @@ var init_GuestDetailsSection = __esm({
|
|
|
34078
34256
|
|
|
34079
34257
|
// ../blocks/src/system/runtime/nodes/event-registration/AttendeeDetailsStep.tsx
|
|
34080
34258
|
import { useId as useId2 } from "react";
|
|
34081
|
-
import { jsx as
|
|
34259
|
+
import { jsx as jsx83, jsxs as jsxs58 } from "react/jsx-runtime";
|
|
34082
34260
|
var AttendeeDetailsStep;
|
|
34083
34261
|
var init_AttendeeDetailsStep = __esm({
|
|
34084
34262
|
"../blocks/src/system/runtime/nodes/event-registration/AttendeeDetailsStep.tsx"() {
|
|
@@ -34117,15 +34295,15 @@ var init_AttendeeDetailsStep = __esm({
|
|
|
34117
34295
|
messageId: emailErrorId
|
|
34118
34296
|
});
|
|
34119
34297
|
const showGuestSection = requireGuestDetails && ticketsCount > 1 && onGuestsChange;
|
|
34120
|
-
return /* @__PURE__ */
|
|
34121
|
-
/* @__PURE__ */
|
|
34122
|
-
/* @__PURE__ */
|
|
34123
|
-
/* @__PURE__ */
|
|
34124
|
-
/* @__PURE__ */
|
|
34298
|
+
return /* @__PURE__ */ jsxs58("div", { className: "rb-reg-stack er-stack", children: [
|
|
34299
|
+
/* @__PURE__ */ jsx83("h3", { className: "er-title", children: "Your Information" }),
|
|
34300
|
+
/* @__PURE__ */ jsxs58("div", { children: [
|
|
34301
|
+
/* @__PURE__ */ jsxs58("div", { className: "er-field", children: [
|
|
34302
|
+
/* @__PURE__ */ jsxs58("label", { className: "er-label", htmlFor: nameId, children: [
|
|
34125
34303
|
"Name ",
|
|
34126
|
-
/* @__PURE__ */
|
|
34304
|
+
/* @__PURE__ */ jsx83("span", { className: "er-required", children: "*" })
|
|
34127
34305
|
] }),
|
|
34128
|
-
/* @__PURE__ */
|
|
34306
|
+
/* @__PURE__ */ jsx83(
|
|
34129
34307
|
"input",
|
|
34130
34308
|
{
|
|
34131
34309
|
id: nameId,
|
|
@@ -34137,14 +34315,14 @@ var init_AttendeeDetailsStep = __esm({
|
|
|
34137
34315
|
...nameValidationProps
|
|
34138
34316
|
}
|
|
34139
34317
|
),
|
|
34140
|
-
errors.name && /* @__PURE__ */
|
|
34318
|
+
errors.name && /* @__PURE__ */ jsx83(FieldValidationMessage, { id: nameErrorId, className: "er-error", children: errors.name })
|
|
34141
34319
|
] }),
|
|
34142
|
-
/* @__PURE__ */
|
|
34143
|
-
/* @__PURE__ */
|
|
34320
|
+
/* @__PURE__ */ jsxs58("div", { className: "er-field", children: [
|
|
34321
|
+
/* @__PURE__ */ jsxs58("label", { className: "er-label", htmlFor: emailId, children: [
|
|
34144
34322
|
"Email ",
|
|
34145
|
-
/* @__PURE__ */
|
|
34323
|
+
/* @__PURE__ */ jsx83("span", { className: "er-required", children: "*" })
|
|
34146
34324
|
] }),
|
|
34147
|
-
/* @__PURE__ */
|
|
34325
|
+
/* @__PURE__ */ jsx83(
|
|
34148
34326
|
"input",
|
|
34149
34327
|
{
|
|
34150
34328
|
id: emailId,
|
|
@@ -34157,7 +34335,7 @@ var init_AttendeeDetailsStep = __esm({
|
|
|
34157
34335
|
...emailValidationProps
|
|
34158
34336
|
}
|
|
34159
34337
|
),
|
|
34160
|
-
emailLocked && /* @__PURE__ */
|
|
34338
|
+
emailLocked && /* @__PURE__ */ jsx83(
|
|
34161
34339
|
LoggedInAsUser,
|
|
34162
34340
|
{
|
|
34163
34341
|
email: formData.email,
|
|
@@ -34165,11 +34343,11 @@ var init_AttendeeDetailsStep = __esm({
|
|
|
34165
34343
|
classPrefix: "er"
|
|
34166
34344
|
}
|
|
34167
34345
|
),
|
|
34168
|
-
errors.email && /* @__PURE__ */
|
|
34346
|
+
errors.email && /* @__PURE__ */ jsx83(FieldValidationMessage, { id: emailErrorId, className: "er-error", children: errors.email })
|
|
34169
34347
|
] }),
|
|
34170
|
-
/* @__PURE__ */
|
|
34171
|
-
/* @__PURE__ */
|
|
34172
|
-
/* @__PURE__ */
|
|
34348
|
+
/* @__PURE__ */ jsxs58("div", { className: "er-field", children: [
|
|
34349
|
+
/* @__PURE__ */ jsx83("label", { className: "er-label", htmlFor: phoneId, children: "Phone" }),
|
|
34350
|
+
/* @__PURE__ */ jsx83(
|
|
34173
34351
|
"input",
|
|
34174
34352
|
{
|
|
34175
34353
|
id: phoneId,
|
|
@@ -34181,9 +34359,9 @@ var init_AttendeeDetailsStep = __esm({
|
|
|
34181
34359
|
}
|
|
34182
34360
|
)
|
|
34183
34361
|
] }),
|
|
34184
|
-
/* @__PURE__ */
|
|
34185
|
-
/* @__PURE__ */
|
|
34186
|
-
/* @__PURE__ */
|
|
34362
|
+
/* @__PURE__ */ jsxs58("div", { className: "er-field", children: [
|
|
34363
|
+
/* @__PURE__ */ jsx83("label", { className: "er-label", htmlFor: notesId, children: "Notes" }),
|
|
34364
|
+
/* @__PURE__ */ jsx83(
|
|
34187
34365
|
"textarea",
|
|
34188
34366
|
{
|
|
34189
34367
|
id: notesId,
|
|
@@ -34196,7 +34374,7 @@ var init_AttendeeDetailsStep = __esm({
|
|
|
34196
34374
|
)
|
|
34197
34375
|
] })
|
|
34198
34376
|
] }),
|
|
34199
|
-
showGuestSection && /* @__PURE__ */
|
|
34377
|
+
showGuestSection && /* @__PURE__ */ jsx83(
|
|
34200
34378
|
GuestDetailsSection,
|
|
34201
34379
|
{
|
|
34202
34380
|
guests,
|
|
@@ -34574,7 +34752,7 @@ var init_lucide_react = __esm({
|
|
|
34574
34752
|
});
|
|
34575
34753
|
|
|
34576
34754
|
// ../blocks/src/system/runtime/nodes/event-registration/MembershipHero.tsx
|
|
34577
|
-
import { jsx as
|
|
34755
|
+
import { jsx as jsx84, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
34578
34756
|
var MembershipHero2;
|
|
34579
34757
|
var init_MembershipHero2 = __esm({
|
|
34580
34758
|
"../blocks/src/system/runtime/nodes/event-registration/MembershipHero.tsx"() {
|
|
@@ -34584,14 +34762,14 @@ var init_MembershipHero2 = __esm({
|
|
|
34584
34762
|
MembershipHero2 = ({
|
|
34585
34763
|
membershipName
|
|
34586
34764
|
}) => {
|
|
34587
|
-
return /* @__PURE__ */
|
|
34588
|
-
/* @__PURE__ */
|
|
34589
|
-
/* @__PURE__ */
|
|
34590
|
-
/* @__PURE__ */
|
|
34765
|
+
return /* @__PURE__ */ jsx84("div", { className: "rb-reg-stack er-stack", children: /* @__PURE__ */ jsxs59("div", { className: "er-booking-mode-hero", children: [
|
|
34766
|
+
/* @__PURE__ */ jsx84("div", { className: "er-booking-mode-hero-icon", children: /* @__PURE__ */ jsx84(Sparkles, { size: 20, fill: "currentColor", "aria-hidden": "true" }) }),
|
|
34767
|
+
/* @__PURE__ */ jsxs59("div", { className: "er-booking-mode-hero-content", children: [
|
|
34768
|
+
/* @__PURE__ */ jsxs59("h3", { className: "er-booking-mode-hero-title", children: [
|
|
34591
34769
|
"This event is included with your ",
|
|
34592
34770
|
membershipName
|
|
34593
34771
|
] }),
|
|
34594
|
-
/* @__PURE__ */
|
|
34772
|
+
/* @__PURE__ */ jsx84("p", { className: "er-booking-mode-hero-subtitle", children: "No payment required - your membership covers this event." })
|
|
34595
34773
|
] })
|
|
34596
34774
|
] }) });
|
|
34597
34775
|
};
|
|
@@ -34606,60 +34784,6 @@ var init_CheckIcon2 = __esm({
|
|
|
34606
34784
|
}
|
|
34607
34785
|
});
|
|
34608
34786
|
|
|
34609
|
-
// ../blocks/src/system/runtime/nodes/event-registration/SelectableOptionCard.tsx
|
|
34610
|
-
import { jsx as jsx84, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
34611
|
-
function SelectableOptionCard(props2) {
|
|
34612
|
-
const {
|
|
34613
|
-
baseClassName,
|
|
34614
|
-
selectedClassName,
|
|
34615
|
-
disabledClassName,
|
|
34616
|
-
iconClassName,
|
|
34617
|
-
labelClassName,
|
|
34618
|
-
detailClassName,
|
|
34619
|
-
icon: icon2,
|
|
34620
|
-
label,
|
|
34621
|
-
detail,
|
|
34622
|
-
selected,
|
|
34623
|
-
disabled,
|
|
34624
|
-
tooltip,
|
|
34625
|
-
extraClassNames = [],
|
|
34626
|
-
onClick,
|
|
34627
|
-
renderCheck,
|
|
34628
|
-
renderDisabledTooltip
|
|
34629
|
-
} = props2;
|
|
34630
|
-
const isSelected = selected && !disabled;
|
|
34631
|
-
const className = [
|
|
34632
|
-
baseClassName,
|
|
34633
|
-
isSelected && selectedClassName,
|
|
34634
|
-
disabled && disabledClassName,
|
|
34635
|
-
...extraClassNames
|
|
34636
|
-
].filter(Boolean).join(" ");
|
|
34637
|
-
const showNativeTitle = Boolean(tooltip) && !(disabled && renderDisabledTooltip);
|
|
34638
|
-
return /* @__PURE__ */ jsxs59(
|
|
34639
|
-
"button",
|
|
34640
|
-
{
|
|
34641
|
-
type: "button",
|
|
34642
|
-
className,
|
|
34643
|
-
onClick: disabled ? void 0 : onClick,
|
|
34644
|
-
title: showNativeTitle ? tooltip : void 0,
|
|
34645
|
-
"aria-disabled": disabled || void 0,
|
|
34646
|
-
children: [
|
|
34647
|
-
/* @__PURE__ */ jsx84("div", { className: iconClassName, children: icon2 }),
|
|
34648
|
-
/* @__PURE__ */ jsx84("div", { className: labelClassName, children: label }),
|
|
34649
|
-
/* @__PURE__ */ jsx84("div", { className: detailClassName, children: detail }),
|
|
34650
|
-
isSelected && renderCheck?.(),
|
|
34651
|
-
disabled && tooltip && renderDisabledTooltip?.(tooltip)
|
|
34652
|
-
]
|
|
34653
|
-
}
|
|
34654
|
-
);
|
|
34655
|
-
}
|
|
34656
|
-
var init_SelectableOptionCard = __esm({
|
|
34657
|
-
"../blocks/src/system/runtime/nodes/event-registration/SelectableOptionCard.tsx"() {
|
|
34658
|
-
"use strict";
|
|
34659
|
-
"use client";
|
|
34660
|
-
}
|
|
34661
|
-
});
|
|
34662
|
-
|
|
34663
34787
|
// ../blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.ts
|
|
34664
34788
|
function buildEventRegistrationPaymentOptionsViewModel(input) {
|
|
34665
34789
|
const supportedOptions = selectSupportedEventDirectPaymentOptions(
|
|
@@ -34749,9 +34873,9 @@ var init_eventPaymentOptions = __esm({
|
|
|
34749
34873
|
|
|
34750
34874
|
// ../blocks/src/system/runtime/nodes/event-registration/PaymentSelectionStep.tsx
|
|
34751
34875
|
import { useEffect as useEffect11, useCallback as useCallback6 } from "react";
|
|
34752
|
-
import { Fragment as
|
|
34876
|
+
import { Fragment as Fragment12, jsx as jsx85, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
34753
34877
|
function PaymentCheckIcon() {
|
|
34754
|
-
return /* @__PURE__ */ jsx85("div", { className: "er-check", children: /* @__PURE__ */ jsx85(CheckIcon2, {}) });
|
|
34878
|
+
return /* @__PURE__ */ jsx85("div", { className: "rb-option-check er-check", children: /* @__PURE__ */ jsx85(CheckIcon2, {}) });
|
|
34755
34879
|
}
|
|
34756
34880
|
function PaymentTile({
|
|
34757
34881
|
icon: icon2,
|
|
@@ -34808,7 +34932,7 @@ var init_PaymentSelectionStep = __esm({
|
|
|
34808
34932
|
init_spinner();
|
|
34809
34933
|
init_buttons();
|
|
34810
34934
|
init_CheckIcon2();
|
|
34811
|
-
|
|
34935
|
+
init_shared6();
|
|
34812
34936
|
init_eventPaymentOptions();
|
|
34813
34937
|
PaymentSelectionStep = ({
|
|
34814
34938
|
event,
|
|
@@ -34900,25 +35024,25 @@ var init_PaymentSelectionStep = __esm({
|
|
|
34900
35024
|
getButtonText
|
|
34901
35025
|
]);
|
|
34902
35026
|
if (eligibilityLoading) {
|
|
34903
|
-
return /* @__PURE__ */ jsx85("div", { className: "er-stack", children: /* @__PURE__ */ jsxs60("div", { className: "er-center", children: [
|
|
35027
|
+
return /* @__PURE__ */ jsx85("div", { className: "rb-reg-stack er-stack", children: /* @__PURE__ */ jsxs60("div", { className: "er-center", children: [
|
|
34904
35028
|
/* @__PURE__ */ jsx85(SpinnerNode, { size: "lg", srLabel: "Checking payment options" }),
|
|
34905
35029
|
/* @__PURE__ */ jsx85("p", { className: "er-text--muted", children: "Checking payment options..." })
|
|
34906
35030
|
] }) });
|
|
34907
35031
|
}
|
|
34908
35032
|
if (eligibilityError) {
|
|
34909
|
-
return /* @__PURE__ */ jsx85("div", { className: "er-stack", children: /* @__PURE__ */ jsx85("div", { className: "er-center", children: /* @__PURE__ */ jsx85("p", { className: "er-text er-text--error", children: eligibilityError }) }) });
|
|
35033
|
+
return /* @__PURE__ */ jsx85("div", { className: "rb-reg-stack er-stack", children: /* @__PURE__ */ jsx85("div", { className: "er-center", children: /* @__PURE__ */ jsx85("p", { className: "er-text er-text--error", children: eligibilityError }) }) });
|
|
34910
35034
|
}
|
|
34911
35035
|
if (!eligibility) {
|
|
34912
35036
|
const missing = [];
|
|
34913
35037
|
if (!occurrenceId) missing.push("occurrenceId");
|
|
34914
35038
|
if (!email) missing.push("email");
|
|
34915
|
-
return /* @__PURE__ */ jsx85("div", { className: "er-stack", children: /* @__PURE__ */ jsx85("div", { className: "er-center", children: /* @__PURE__ */ jsxs60("p", { className: "er-text er-text--error", children: [
|
|
35039
|
+
return /* @__PURE__ */ jsx85("div", { className: "rb-reg-stack er-stack", children: /* @__PURE__ */ jsx85("div", { className: "er-center", children: /* @__PURE__ */ jsxs60("p", { className: "er-text er-text--error", children: [
|
|
34916
35040
|
"Unable to determine payment options",
|
|
34917
35041
|
missing.length > 0 && ` (missing: ${missing.join(", ")})`
|
|
34918
35042
|
] }) }) });
|
|
34919
35043
|
}
|
|
34920
35044
|
if (eligibility.isFree) {
|
|
34921
|
-
return /* @__PURE__ */ jsxs60("div", { className: "er-stack", children: [
|
|
35045
|
+
return /* @__PURE__ */ jsxs60("div", { className: "rb-reg-stack er-stack", children: [
|
|
34922
35046
|
/* @__PURE__ */ jsx85("h3", { className: "er-title", children: "Payment" }),
|
|
34923
35047
|
/* @__PURE__ */ jsxs60("div", { className: "er-payment-summary", children: [
|
|
34924
35048
|
/* @__PURE__ */ jsx85("p", { className: "er-text er-text--success", children: "This event is free!" }),
|
|
@@ -34932,15 +35056,15 @@ var init_PaymentSelectionStep = __esm({
|
|
|
34932
35056
|
}
|
|
34933
35057
|
if (!eligibility.eligible) {
|
|
34934
35058
|
if (eligibility.isFull && !eligibility.canJoinWaitlist) {
|
|
34935
|
-
return /* @__PURE__ */ jsxs60("div", { className: "er-stack", children: [
|
|
35059
|
+
return /* @__PURE__ */ jsxs60("div", { className: "rb-reg-stack er-stack", children: [
|
|
34936
35060
|
/* @__PURE__ */ jsx85("h3", { className: "er-title", children: "Sold Out" }),
|
|
34937
35061
|
/* @__PURE__ */ jsx85("div", { className: "er-center", children: /* @__PURE__ */ jsx85("p", { className: "er-text er-text--muted", children: "This event is fully booked and there is no waitlist available for this booking." }) })
|
|
34938
35062
|
] });
|
|
34939
35063
|
}
|
|
34940
35064
|
const shouldPromptLogin = !isAuthenticated && (eligibility.requiresAuthForPasses || eligibility.requiresAuthForMemberships);
|
|
34941
|
-
return /* @__PURE__ */ jsxs60("div", { className: "er-stack", children: [
|
|
35065
|
+
return /* @__PURE__ */ jsxs60("div", { className: "rb-reg-stack er-stack", children: [
|
|
34942
35066
|
/* @__PURE__ */ jsx85("h3", { className: "er-title", children: shouldPromptLogin ? "Log In Required" : "Payment Required" }),
|
|
34943
|
-
/* @__PURE__ */ jsx85("div", { className: "er-center", children: shouldPromptLogin ? /* @__PURE__ */ jsxs60(
|
|
35067
|
+
/* @__PURE__ */ jsx85("div", { className: "er-center", children: shouldPromptLogin ? /* @__PURE__ */ jsxs60(Fragment12, { children: [
|
|
34944
35068
|
/* @__PURE__ */ jsx85("p", { className: "er-text er-text--muted", children: "Have a pass or membership? Log in to use it." }),
|
|
34945
35069
|
/* @__PURE__ */ jsx85(
|
|
34946
35070
|
"button",
|
|
@@ -34956,7 +35080,7 @@ var init_PaymentSelectionStep = __esm({
|
|
|
34956
35080
|
}
|
|
34957
35081
|
),
|
|
34958
35082
|
!email.trim() && /* @__PURE__ */ jsx85("p", { className: "er-text er-text--muted", children: "Enter your email to request a login link." })
|
|
34959
|
-
] }) : /* @__PURE__ */ jsxs60(
|
|
35083
|
+
] }) : /* @__PURE__ */ jsxs60(Fragment12, { children: [
|
|
34960
35084
|
/* @__PURE__ */ jsx85("p", { className: "er-text er-text--error", children: "This event requires a valid pass or membership to register." }),
|
|
34961
35085
|
eligibility.eventAcceptsPasses && !eligibility.eventAcceptsMemberships && /* @__PURE__ */ jsx85("p", { className: "er-text er-text--muted", children: "You need a pass with credits for this event category." }),
|
|
34962
35086
|
eligibility.eventAcceptsMemberships && !eligibility.eventAcceptsPasses && /* @__PURE__ */ jsx85("p", { className: "er-text er-text--muted", children: "You need an active membership for this event category." })
|
|
@@ -34964,10 +35088,10 @@ var init_PaymentSelectionStep = __esm({
|
|
|
34964
35088
|
] });
|
|
34965
35089
|
}
|
|
34966
35090
|
const isMultiTicket = areEntitlementsDisabledForTicketCount(ticketsCount);
|
|
34967
|
-
return /* @__PURE__ */ jsxs60("div", { className: "er-stack", children: [
|
|
35091
|
+
return /* @__PURE__ */ jsxs60("div", { className: "rb-reg-stack er-stack", children: [
|
|
34968
35092
|
/* @__PURE__ */ jsx85("h3", { className: "er-title", children: "Payment Options" }),
|
|
34969
35093
|
/* @__PURE__ */ jsxs60("div", { className: "er-payment-tiles", children: [
|
|
34970
|
-
canShowDirectPaymentOptions && /* @__PURE__ */ jsx85(
|
|
35094
|
+
canShowDirectPaymentOptions && /* @__PURE__ */ jsx85(Fragment12, { children: directPaymentOptions.map((option) => /* @__PURE__ */ jsx85(
|
|
34971
35095
|
PaymentTile,
|
|
34972
35096
|
{
|
|
34973
35097
|
icon: /* @__PURE__ */ jsx85(CreditCard, { size: 24, "aria-hidden": "true" }),
|
|
@@ -35066,7 +35190,7 @@ var init_PaymentSelectionStep = __esm({
|
|
|
35066
35190
|
});
|
|
35067
35191
|
|
|
35068
35192
|
// ../blocks/src/system/runtime/nodes/event-registration/SuccessStep.tsx
|
|
35069
|
-
import { Fragment as
|
|
35193
|
+
import { Fragment as Fragment13, jsx as jsx86, jsxs as jsxs61 } from "react/jsx-runtime";
|
|
35070
35194
|
var SuccessStep;
|
|
35071
35195
|
var init_SuccessStep = __esm({
|
|
35072
35196
|
"../blocks/src/system/runtime/nodes/event-registration/SuccessStep.tsx"() {
|
|
@@ -35087,7 +35211,7 @@ var init_SuccessStep = __esm({
|
|
|
35087
35211
|
iconClassName: "er-icon",
|
|
35088
35212
|
titleClassName: "er-title--lg er-message",
|
|
35089
35213
|
bodyClassName: "er-text--muted",
|
|
35090
|
-
icon: /* @__PURE__ */ jsx86(StateIcon, { variant: variant === "info" ? "info" : "success", children: /* @__PURE__ */ jsx86("svg", { fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: variant === "info" ? /* @__PURE__ */ jsxs61(
|
|
35214
|
+
icon: /* @__PURE__ */ jsx86(StateIcon, { variant: variant === "info" ? "info" : "success", children: /* @__PURE__ */ jsx86("svg", { fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: variant === "info" ? /* @__PURE__ */ jsxs61(Fragment13, { children: [
|
|
35091
35215
|
/* @__PURE__ */ jsx86("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 8h.01" }),
|
|
35092
35216
|
/* @__PURE__ */ jsx86("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M11 12h1v4h1" }),
|
|
35093
35217
|
/* @__PURE__ */ jsx86("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z" })
|
|
@@ -35250,7 +35374,7 @@ var init_event_registration = __esm({
|
|
|
35250
35374
|
});
|
|
35251
35375
|
|
|
35252
35376
|
// ../blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardContent.tsx
|
|
35253
|
-
import { Fragment as
|
|
35377
|
+
import { Fragment as Fragment14, jsx as jsx91, jsxs as jsxs64 } from "react/jsx-runtime";
|
|
35254
35378
|
function EventRegistrationWizardContent(props2) {
|
|
35255
35379
|
const { wizard } = props2;
|
|
35256
35380
|
const showSpamProtection = props2.showSpamProtection ?? isSpamProtectionEnabled();
|
|
@@ -35277,7 +35401,7 @@ function EventRegistrationWizardContent(props2) {
|
|
|
35277
35401
|
case "select-tickets": {
|
|
35278
35402
|
if (!wizard.selectedEvent && !wizard.occurrenceContext) return null;
|
|
35279
35403
|
const hasExistingRegistration = wizard.portalAuthState === "authenticated" && wizard.existingRegistration !== null;
|
|
35280
|
-
return /* @__PURE__ */ jsxs64(
|
|
35404
|
+
return /* @__PURE__ */ jsxs64(Fragment14, { children: [
|
|
35281
35405
|
hasExistingRegistration && /* @__PURE__ */ jsx91(
|
|
35282
35406
|
TerminalPanel,
|
|
35283
35407
|
{
|
|
@@ -35322,7 +35446,7 @@ function EventRegistrationWizardContent(props2) {
|
|
|
35322
35446
|
}
|
|
35323
35447
|
case "enter-details": {
|
|
35324
35448
|
const showMembershipNotice = wizard.portalAuthState === "authenticated" && wizard.ticketsCount === 1 && wizard.eligibility?.eligibleMemberships[0];
|
|
35325
|
-
return /* @__PURE__ */ jsxs64(
|
|
35449
|
+
return /* @__PURE__ */ jsxs64(Fragment14, { children: [
|
|
35326
35450
|
showMembershipNotice && /* @__PURE__ */ jsx91(MembershipHero2, { membershipName: showMembershipNotice.membershipName }),
|
|
35327
35451
|
/* @__PURE__ */ jsx91(
|
|
35328
35452
|
AttendeeDetailsStep,
|
|
@@ -35346,7 +35470,7 @@ function EventRegistrationWizardContent(props2) {
|
|
|
35346
35470
|
}
|
|
35347
35471
|
case "select-payment":
|
|
35348
35472
|
if (!wizard.api.config.siteId) return null;
|
|
35349
|
-
return /* @__PURE__ */ jsxs64(
|
|
35473
|
+
return /* @__PURE__ */ jsxs64(Fragment14, { children: [
|
|
35350
35474
|
/* @__PURE__ */ jsx91(
|
|
35351
35475
|
PaymentSelectionStep,
|
|
35352
35476
|
{
|
|
@@ -35434,7 +35558,7 @@ function EventRegistrationWizardActions(props2) {
|
|
|
35434
35558
|
const ticketTypeSelectionBlocked = wizard.ticketTypeSelectionRequired && !wizard.hasValidTicketSelection;
|
|
35435
35559
|
const isContinueDisabled = isWaitingForEligibility || isCheckingExistingRegistration || hasExistingRegistration || isSoldOutWithoutWaitlist || ticketTypeSelectionBlocked;
|
|
35436
35560
|
const continueLabel = isCheckingExistingRegistration ? "Checking registration..." : hasExistingRegistration ? "Already registered" : isSoldOutWithoutWaitlist ? "Sold out" : ticketTypeSelectionBlocked ? "Choose a ticket" : "Continue";
|
|
35437
|
-
return /* @__PURE__ */ jsxs65("div", { className: "er-actions", children: [
|
|
35561
|
+
return /* @__PURE__ */ jsxs65("div", { className: "rb-wizard-actions er-actions", children: [
|
|
35438
35562
|
!wizard.hasPreSelectedContext && /* @__PURE__ */ jsx92("button", { type: "button", onClick: () => wizard.setStep("select-event"), className: "er-back-btn", children: "\u2190 Back" }),
|
|
35439
35563
|
/* @__PURE__ */ jsx92(
|
|
35440
35564
|
"button",
|
|
@@ -35456,7 +35580,7 @@ function EventRegistrationWizardActions(props2) {
|
|
|
35456
35580
|
const isSoldOut = !hasWaitlistClaim && wizard.eligibility?.isFull === true && wizard.eligibility.canJoinWaitlist !== true;
|
|
35457
35581
|
const isContinueDisabled = isCheckingEligibility || isSoldOut;
|
|
35458
35582
|
const continueLabel = isCheckingEligibility ? "Checking availability..." : getDetailsButtonText();
|
|
35459
|
-
return /* @__PURE__ */ jsxs65("div", { className: "er-actions", children: [
|
|
35583
|
+
return /* @__PURE__ */ jsxs65("div", { className: "rb-wizard-actions er-actions", children: [
|
|
35460
35584
|
/* @__PURE__ */ jsx92("button", { type: "button", onClick: () => wizard.setStep(prevStepForDetails), className: "er-back-btn", children: "\u2190 Back" }),
|
|
35461
35585
|
/* @__PURE__ */ jsx92(
|
|
35462
35586
|
"button",
|
|
@@ -35475,7 +35599,7 @@ function EventRegistrationWizardActions(props2) {
|
|
|
35475
35599
|
const handlePaymentContinue = () => {
|
|
35476
35600
|
void wizard.handlePaymentSelect();
|
|
35477
35601
|
};
|
|
35478
|
-
return /* @__PURE__ */ jsxs65("div", { className: "er-actions", children: [
|
|
35602
|
+
return /* @__PURE__ */ jsxs65("div", { className: "rb-wizard-actions er-actions", children: [
|
|
35479
35603
|
/* @__PURE__ */ jsx92("button", { type: "button", onClick: () => wizard.setStep("enter-details"), className: "er-back-btn", children: "\u2190 Back" }),
|
|
35480
35604
|
status === "ready" && /* @__PURE__ */ jsx92(
|
|
35481
35605
|
"button",
|
|
@@ -35502,7 +35626,7 @@ var init_EventRegistrationWizardActions = __esm({
|
|
|
35502
35626
|
});
|
|
35503
35627
|
|
|
35504
35628
|
// ../blocks/src/system/runtime/nodes/event-registration/EventRegistrationSummaryBar.tsx
|
|
35505
|
-
import { Fragment as
|
|
35629
|
+
import { Fragment as Fragment15, jsx as jsx93, jsxs as jsxs66 } from "react/jsx-runtime";
|
|
35506
35630
|
function isProductMethod(method) {
|
|
35507
35631
|
return method !== null && ["pass", "membership", "pass_bundle", "membership_bundle"].includes(method);
|
|
35508
35632
|
}
|
|
@@ -35555,7 +35679,7 @@ function EventRegistrationSummaryBar(props2) {
|
|
|
35555
35679
|
} : null;
|
|
35556
35680
|
if (!summaryTitle) return null;
|
|
35557
35681
|
const productMethod = isProductMethod(wizard.paymentSelection.method);
|
|
35558
|
-
return /* @__PURE__ */ jsxs66(
|
|
35682
|
+
return /* @__PURE__ */ jsxs66(Fragment15, { children: [
|
|
35559
35683
|
productMethod && wizard.paymentSelection.productName && /* @__PURE__ */ jsxs66("div", { className: "er-summary-bar-product", children: [
|
|
35560
35684
|
/* @__PURE__ */ jsxs66("div", { children: [
|
|
35561
35685
|
/* @__PURE__ */ jsx93("div", { className: "er-summary-bar-product-name", children: wizard.paymentSelection.productName }),
|
|
@@ -35577,7 +35701,7 @@ function EventRegistrationSummaryBar(props2) {
|
|
|
35577
35701
|
/* @__PURE__ */ jsx93("h4", { className: "er-summary-bar-event", children: summaryTitle }),
|
|
35578
35702
|
/* @__PURE__ */ jsxs66("span", { className: "er-summary-bar-meta", children: [
|
|
35579
35703
|
summaryDate && formatEventDateTime(summaryDate, { timeZone: summaryTimeZone }),
|
|
35580
|
-
wizard.step !== "select-event" && wizard.step !== "select-tickets" && wizard.ticketsCount > 0 && /* @__PURE__ */ jsxs66(
|
|
35704
|
+
wizard.step !== "select-event" && wizard.step !== "select-tickets" && wizard.ticketsCount > 0 && /* @__PURE__ */ jsxs66(Fragment15, { children: [
|
|
35581
35705
|
" \xB7 ",
|
|
35582
35706
|
wizard.ticketsCount,
|
|
35583
35707
|
" ticket",
|
|
@@ -35589,10 +35713,10 @@ function EventRegistrationSummaryBar(props2) {
|
|
|
35589
35713
|
teamMemberNames.join(", ")
|
|
35590
35714
|
] })
|
|
35591
35715
|
] }),
|
|
35592
|
-
subtotalCents > 0 && /* @__PURE__ */ jsx93("div", { className: "er-summary-bar-pricing", children: productMethod ? /* @__PURE__ */ jsxs66(
|
|
35716
|
+
subtotalCents > 0 && /* @__PURE__ */ jsx93("div", { className: "er-summary-bar-pricing", children: productMethod ? /* @__PURE__ */ jsxs66(Fragment15, { children: [
|
|
35593
35717
|
/* @__PURE__ */ jsx93("span", { className: "er-summary-bar-price er-summary-bar-price--struck", children: formatPrice(subtotalCents, summaryCurrency) }),
|
|
35594
35718
|
/* @__PURE__ */ jsx93("div", { className: "er-summary-bar-included", children: wizard.paymentSelection.method === "pass" || wizard.paymentSelection.method === "pass_bundle" ? "1 pass credit" : "Included in membership" })
|
|
35595
|
-
] }) : flexibleBalanceSummary ? /* @__PURE__ */ jsxs66(
|
|
35719
|
+
] }) : flexibleBalanceSummary ? /* @__PURE__ */ jsxs66(Fragment15, { children: [
|
|
35596
35720
|
flexibleBalanceSummary.total ? /* @__PURE__ */ jsxs66("div", { className: "er-summary-bar-product-detail", children: [
|
|
35597
35721
|
"Total: ",
|
|
35598
35722
|
flexibleBalanceSummary.total
|
|
@@ -35608,7 +35732,7 @@ function EventRegistrationSummaryBar(props2) {
|
|
|
35608
35732
|
"Deposit: ",
|
|
35609
35733
|
flexibleBalanceSummary.depositPolicy
|
|
35610
35734
|
] }) : null
|
|
35611
|
-
] }) : autoAppliedDiscount && autoAppliedDiscountCents > 0 ? /* @__PURE__ */ jsxs66(
|
|
35735
|
+
] }) : autoAppliedDiscount && autoAppliedDiscountCents > 0 ? /* @__PURE__ */ jsxs66(Fragment15, { children: [
|
|
35612
35736
|
/* @__PURE__ */ jsx93("span", { className: "er-summary-bar-price er-summary-bar-price--struck", children: formatPrice(subtotalCents, summaryCurrency) }),
|
|
35613
35737
|
/* @__PURE__ */ jsx93("div", { className: "er-summary-bar-price", children: formatPrice(discountedTotalCents, summaryCurrency) }),
|
|
35614
35738
|
/* @__PURE__ */ jsxs66("div", { className: "er-summary-bar-included", children: [
|
|
@@ -36946,9 +37070,9 @@ var init_MagicLinkForm = __esm({
|
|
|
36946
37070
|
});
|
|
36947
37071
|
|
|
36948
37072
|
// ../blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizard.tsx
|
|
36949
|
-
import
|
|
37073
|
+
import React15, { useEffect as useEffect15, useMemo as useMemo8, useState as useState6 } from "react";
|
|
36950
37074
|
import { createPortal as createPortal2 } from "react-dom";
|
|
36951
|
-
import { Fragment as
|
|
37075
|
+
import { Fragment as Fragment16, jsx as jsx95, jsxs as jsxs68 } from "react/jsx-runtime";
|
|
36952
37076
|
function EventPortalAuthPrompt(props2) {
|
|
36953
37077
|
return /* @__PURE__ */ jsxs68("div", { className: "er-portal-auth", children: [
|
|
36954
37078
|
/* @__PURE__ */ jsx95("p", { className: "er-portal-auth-title", children: props2.copy.title }),
|
|
@@ -36984,7 +37108,7 @@ function EventRegistrationWizard(props2) {
|
|
|
36984
37108
|
const showSpamProtection = spamProtectionEnabled ?? isSpamProtectionEnabled();
|
|
36985
37109
|
const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
|
|
36986
37110
|
const registrationRootClassName = `event-registration ${className || ""}`;
|
|
36987
|
-
const registrationRootRef =
|
|
37111
|
+
const registrationRootRef = React15.useRef(null);
|
|
36988
37112
|
const wizard = useEventRegistrationWizard({
|
|
36989
37113
|
anchorId: EVENT_REGISTRATION_ANCHOR_ID,
|
|
36990
37114
|
occurrenceContext: occurrenceContext ?? null,
|
|
@@ -37081,7 +37205,7 @@ function EventRegistrationWizard(props2) {
|
|
|
37081
37205
|
description: wizard.waitlistClaim.loginMessage ?? "Log in to continue with your waitlist claim."
|
|
37082
37206
|
} : EVENT_PORTAL_AUTH_COPY.membership;
|
|
37083
37207
|
const showPortalAuthPrompt = waitlistClaimRequiresPortalLogin || wizard.step === "select-tickets" && wizard.portalAuthState !== "authenticated" && wizard.portalAuthState !== "checking" && hasPassOrMembershipProducts && summaryEventPricingType !== "free";
|
|
37084
|
-
const renderRegistrationSurface = (variant) => /* @__PURE__ */ jsxs68("div", { className: `er-container${variant === "overlay" ? " er-container--overlay" : ""}`, children: [
|
|
37208
|
+
const renderRegistrationSurface = (variant) => /* @__PURE__ */ jsxs68("div", { className: `rb-reg-surface er-container${variant === "overlay" ? " er-container--overlay" : ""}`, children: [
|
|
37085
37209
|
isWizardStep && /* @__PURE__ */ jsxs68("div", { className: "er-payment-layout er-payment-layout--no-sidebar", children: [
|
|
37086
37210
|
/* @__PURE__ */ jsxs68("div", { className: "er-payment-layout-main", children: [
|
|
37087
37211
|
totalSteps > 1 && /* @__PURE__ */ jsx95(StepIndicator2, { currentStep: currentStepNumber, totalSteps, stepLabels }),
|
|
@@ -37167,7 +37291,7 @@ function EventRegistrationWizard(props2) {
|
|
|
37167
37291
|
const bookingSummaryMeta = [summaryPriceLabel, summaryAvailabilityLabel].filter(Boolean).join(" \xB7 ");
|
|
37168
37292
|
const bookingTicketTypes = getActiveTicketTypes2(summaryEvent);
|
|
37169
37293
|
const bookingTicketTypesCurrency = summaryEvent?.pricing.kind === "ticket_types" ? summaryEvent.pricing.currency : null;
|
|
37170
|
-
const renderBookingEntry = (base) => /* @__PURE__ */ jsxs68(
|
|
37294
|
+
const renderBookingEntry = (base) => /* @__PURE__ */ jsxs68(Fragment16, { children: [
|
|
37171
37295
|
/* @__PURE__ */ jsxs68("div", { className: `${base}__info`, children: [
|
|
37172
37296
|
/* @__PURE__ */ jsx95("span", { className: `${base}__title`, children: "Book this event" }),
|
|
37173
37297
|
bookingSummaryMeta && /* @__PURE__ */ jsx95("span", { className: `${base}__meta`, children: bookingSummaryMeta }),
|
|
@@ -37576,7 +37700,7 @@ var init_BookingModeStep = __esm({
|
|
|
37576
37700
|
|
|
37577
37701
|
// ../blocks/src/system/runtime/nodes/course-registration/PortalAuthSidebar.tsx
|
|
37578
37702
|
import { useEffect as useEffect17, useState as useState8 } from "react";
|
|
37579
|
-
import { Fragment as
|
|
37703
|
+
import { Fragment as Fragment17, jsx as jsx101, jsxs as jsxs71 } from "react/jsx-runtime";
|
|
37580
37704
|
function PortalAuthSidebar({
|
|
37581
37705
|
onMagicLinkSent,
|
|
37582
37706
|
autoOpen = false,
|
|
@@ -37590,7 +37714,7 @@ function PortalAuthSidebar({
|
|
|
37590
37714
|
if (!autoOpen) return;
|
|
37591
37715
|
setShowModal(true);
|
|
37592
37716
|
}, [autoOpen]);
|
|
37593
|
-
return /* @__PURE__ */ jsxs71(
|
|
37717
|
+
return /* @__PURE__ */ jsxs71(Fragment17, { children: [
|
|
37594
37718
|
/* @__PURE__ */ jsxs71("div", { className: "cr-portal-sidebar", children: [
|
|
37595
37719
|
/* @__PURE__ */ jsx101("div", { className: "cr-portal-sidebar__icon", "aria-hidden": "true", children: "\u{1F464}" }),
|
|
37596
37720
|
/* @__PURE__ */ jsx101("h3", { className: "cr-portal-sidebar__title", children: copy.title }),
|
|
@@ -37685,7 +37809,7 @@ var init_PortalAuthSidebar = __esm({
|
|
|
37685
37809
|
});
|
|
37686
37810
|
|
|
37687
37811
|
// ../blocks/src/system/runtime/nodes/course-registration/SuccessStep.tsx
|
|
37688
|
-
import { Fragment as
|
|
37812
|
+
import { Fragment as Fragment18, jsx as jsx102, jsxs as jsxs72 } from "react/jsx-runtime";
|
|
37689
37813
|
function SuccessStep2({
|
|
37690
37814
|
usedMembership,
|
|
37691
37815
|
successMessage,
|
|
@@ -37699,7 +37823,7 @@ function SuccessStep2({
|
|
|
37699
37823
|
titleClassName: "cr-success__title",
|
|
37700
37824
|
icon: /* @__PURE__ */ jsx102(StateIcon, { variant: "success", children: /* @__PURE__ */ jsx102(CheckIcon2, { strokeWidth: 2 }) }),
|
|
37701
37825
|
title: "Enrollment Complete!",
|
|
37702
|
-
body: /* @__PURE__ */ jsxs72(
|
|
37826
|
+
body: /* @__PURE__ */ jsxs72(Fragment18, { children: [
|
|
37703
37827
|
/* @__PURE__ */ jsx102("p", { className: "cr-success__message", children: usedMembership ? membershipMessage : successMessage }),
|
|
37704
37828
|
usedMembership && /* @__PURE__ */ jsx102("p", { className: "cr-success__membership", children: "Enrolled using your membership" })
|
|
37705
37829
|
] })
|
|
@@ -37745,7 +37869,7 @@ var init_ErrorStep2 = __esm({
|
|
|
37745
37869
|
});
|
|
37746
37870
|
|
|
37747
37871
|
// ../blocks/src/system/runtime/nodes/course-registration/VerifyingTimeoutStep.tsx
|
|
37748
|
-
import { Fragment as
|
|
37872
|
+
import { Fragment as Fragment19, jsx as jsx104, jsxs as jsxs73 } from "react/jsx-runtime";
|
|
37749
37873
|
function VerifyingTimeoutStep2({
|
|
37750
37874
|
buttonText = "Check Again",
|
|
37751
37875
|
buttonVariant = "primary",
|
|
@@ -37761,7 +37885,7 @@ function VerifyingTimeoutStep2({
|
|
|
37761
37885
|
titleClassName: "cr-error__title",
|
|
37762
37886
|
icon: /* @__PURE__ */ jsx104(StateIcon, { variant: "warning", children: /* @__PURE__ */ jsx104(ClockIcon2, {}) }),
|
|
37763
37887
|
title: "Payment Verification Taking Longer",
|
|
37764
|
-
body: /* @__PURE__ */ jsxs73(
|
|
37888
|
+
body: /* @__PURE__ */ jsxs73(Fragment19, { children: [
|
|
37765
37889
|
/* @__PURE__ */ jsx104("p", { className: "cr-error__message", children: "Your payment may still be processing. Please check your email for confirmation." }),
|
|
37766
37890
|
supportEmail && /* @__PURE__ */ jsxs73("p", { className: "cr-error__message", children: [
|
|
37767
37891
|
"If you need help, contact us at",
|
|
@@ -37814,7 +37938,7 @@ var init_PaymentFailedStep2 = __esm({
|
|
|
37814
37938
|
});
|
|
37815
37939
|
|
|
37816
37940
|
// ../blocks/src/system/runtime/nodes/course-registration/WaitlistStep.tsx
|
|
37817
|
-
import { Fragment as
|
|
37941
|
+
import { Fragment as Fragment20, jsx as jsx106, jsxs as jsxs74 } from "react/jsx-runtime";
|
|
37818
37942
|
function WaitlistStep({ message, position }) {
|
|
37819
37943
|
return /* @__PURE__ */ jsx106(
|
|
37820
37944
|
TerminalPanel,
|
|
@@ -37824,7 +37948,7 @@ function WaitlistStep({ message, position }) {
|
|
|
37824
37948
|
titleClassName: "cr-waitlist__title",
|
|
37825
37949
|
icon: /* @__PURE__ */ jsx106(StateIcon, { variant: "waitlist", children: /* @__PURE__ */ jsx106(ClockIcon2, {}) }),
|
|
37826
37950
|
title: "Added to Waitlist",
|
|
37827
|
-
body: /* @__PURE__ */ jsxs74(
|
|
37951
|
+
body: /* @__PURE__ */ jsxs74(Fragment20, { children: [
|
|
37828
37952
|
/* @__PURE__ */ jsx106("p", { className: "cr-waitlist__message", children: message }),
|
|
37829
37953
|
typeof position === "number" && /* @__PURE__ */ jsxs74("p", { className: "cr-waitlist__position", children: [
|
|
37830
37954
|
"Your position: #",
|
|
@@ -37891,12 +38015,12 @@ var init_CourseRegistrationErrorBoundary = __esm({
|
|
|
37891
38015
|
});
|
|
37892
38016
|
|
|
37893
38017
|
// ../blocks/src/system/runtime/nodes/course-registration/components.tsx
|
|
37894
|
-
import
|
|
37895
|
-
import { Fragment as
|
|
38018
|
+
import React18 from "react";
|
|
38019
|
+
import { Fragment as Fragment21, jsx as jsx108, jsxs as jsxs76 } from "react/jsx-runtime";
|
|
37896
38020
|
function TeamMemberInlineList({
|
|
37897
38021
|
teamMembers
|
|
37898
38022
|
}) {
|
|
37899
|
-
return /* @__PURE__ */ jsx108(
|
|
38023
|
+
return /* @__PURE__ */ jsx108(Fragment21, { children: teamMembers.map((teamMember, index) => /* @__PURE__ */ jsxs76(React18.Fragment, { children: [
|
|
37900
38024
|
index > 0 ? ", " : "",
|
|
37901
38025
|
teamMember.profilePath ? /* @__PURE__ */ jsx108("a", { href: teamMember.profilePath, children: teamMember.name }) : teamMember.name
|
|
37902
38026
|
] }, teamMember.id)) });
|
|
@@ -38084,7 +38208,7 @@ function EnrollmentForm({ formData, errors, onChange, isEmailLocked, isLoading,
|
|
|
38084
38208
|
message: errors.email,
|
|
38085
38209
|
messageId: emailErrorId
|
|
38086
38210
|
});
|
|
38087
|
-
return /* @__PURE__ */ jsxs76(
|
|
38211
|
+
return /* @__PURE__ */ jsxs76(Fragment21, { children: [
|
|
38088
38212
|
/* @__PURE__ */ jsxs76("div", { className: "cr-form__field", children: [
|
|
38089
38213
|
/* @__PURE__ */ jsx108("label", { htmlFor: "cr-name", className: "cr-form__label", children: "Name *" }),
|
|
38090
38214
|
/* @__PURE__ */ jsx108(
|
|
@@ -38804,7 +38928,7 @@ var init_useCourseRegistrationWizard = __esm({
|
|
|
38804
38928
|
});
|
|
38805
38929
|
|
|
38806
38930
|
// ../blocks/src/system/runtime/nodes/course-registration/CourseRegistrationWizard.tsx
|
|
38807
|
-
import { Fragment as
|
|
38931
|
+
import { Fragment as Fragment22, jsx as jsx109, jsxs as jsxs77 } from "react/jsx-runtime";
|
|
38808
38932
|
function getCourseSlidingScaleMessage(pricing) {
|
|
38809
38933
|
if (!pricing.slidingScale) {
|
|
38810
38934
|
return null;
|
|
@@ -38930,7 +39054,7 @@ function CourseRegistrationWizard(props2) {
|
|
|
38930
39054
|
id: COURSE_REGISTRATION_ANCHOR_ID,
|
|
38931
39055
|
className: `course-registration ${className || ""}`,
|
|
38932
39056
|
"data-block": "course-registration",
|
|
38933
|
-
children: /* @__PURE__ */ jsx109("div", { className: "cr-container", children: /* @__PURE__ */ jsxs77(
|
|
39057
|
+
children: /* @__PURE__ */ jsx109("div", { className: "rb-reg-surface cr-container", children: /* @__PURE__ */ jsxs77(
|
|
38934
39058
|
"div",
|
|
38935
39059
|
{
|
|
38936
39060
|
className: `cr-layout${showSidebarLayout ? " cr-layout--with-sidebar" : ""}`,
|
|
@@ -38980,7 +39104,7 @@ function CourseRegistrationWizard(props2) {
|
|
|
38980
39104
|
}
|
|
38981
39105
|
) }),
|
|
38982
39106
|
/* @__PURE__ */ jsx109("p", { className: "cr-text cr-text--muted", children: "Registration closed." })
|
|
38983
|
-
] }) : /* @__PURE__ */ jsxs77(
|
|
39107
|
+
] }) : /* @__PURE__ */ jsxs77(Fragment22, { children: [
|
|
38984
39108
|
/* @__PURE__ */ jsxs77(
|
|
38985
39109
|
"form",
|
|
38986
39110
|
{
|
|
@@ -39622,7 +39746,7 @@ var init_location_map_client = __esm({
|
|
|
39622
39746
|
});
|
|
39623
39747
|
|
|
39624
39748
|
// ../blocks/src/system/runtime/nodes/shop-commerce-store.ts
|
|
39625
|
-
import * as
|
|
39749
|
+
import * as React20 from "react";
|
|
39626
39750
|
function storageKey(siteId) {
|
|
39627
39751
|
return `riverbank:shop-cart:${siteId}`;
|
|
39628
39752
|
}
|
|
@@ -39638,8 +39762,8 @@ function addPassToCommerceCart(siteId, input) {
|
|
|
39638
39762
|
}
|
|
39639
39763
|
function useCommerceCart(siteId) {
|
|
39640
39764
|
const effectiveSiteId = siteId ?? "unknown";
|
|
39641
|
-
const store =
|
|
39642
|
-
const state =
|
|
39765
|
+
const store = React20.useMemo(() => getStore(effectiveSiteId), [effectiveSiteId]);
|
|
39766
|
+
const state = React20.useSyncExternalStore(
|
|
39643
39767
|
(listener) => store.subscribe(listener),
|
|
39644
39768
|
() => store.getSnapshot(),
|
|
39645
39769
|
() => EMPTY_STATE
|
|
@@ -39735,11 +39859,11 @@ var init_shop_commerce_store = __esm({
|
|
|
39735
39859
|
});
|
|
39736
39860
|
|
|
39737
39861
|
// ../blocks/src/system/runtime/nodes/shop-add-feedback.tsx
|
|
39738
|
-
import * as
|
|
39862
|
+
import * as React21 from "react";
|
|
39739
39863
|
import { jsx as jsx114, jsxs as jsxs80 } from "react/jsx-runtime";
|
|
39740
39864
|
function useTransientShopAddFeedback(timeoutMs = DEFAULT_TIMEOUT_MS) {
|
|
39741
|
-
const [activeKey, setActiveKey] =
|
|
39742
|
-
|
|
39865
|
+
const [activeKey, setActiveKey] = React21.useState(null);
|
|
39866
|
+
React21.useEffect(() => {
|
|
39743
39867
|
if (!activeKey) return;
|
|
39744
39868
|
const timeoutId = window.setTimeout(() => {
|
|
39745
39869
|
setActiveKey((current) => current === activeKey ? null : current);
|
|
@@ -40218,8 +40342,8 @@ var init_useDiscountApply = __esm({
|
|
|
40218
40342
|
});
|
|
40219
40343
|
|
|
40220
40344
|
// ../blocks/src/system/runtime/nodes/shop.client.tsx
|
|
40221
|
-
import
|
|
40222
|
-
import { Fragment as
|
|
40345
|
+
import React22, { useCallback as useCallback9, useEffect as useEffect21, useRef as useRef13, useState as useState12 } from "react";
|
|
40346
|
+
import { Fragment as Fragment23, jsx as jsx115, jsxs as jsxs81 } from "react/jsx-runtime";
|
|
40223
40347
|
function ShopClient(props2) {
|
|
40224
40348
|
return /* @__PURE__ */ jsx115(PassesMembershipsController, { render: props2.render });
|
|
40225
40349
|
}
|
|
@@ -40243,11 +40367,11 @@ function getCheckoutDiscountApplyLine(checkout2) {
|
|
|
40243
40367
|
}
|
|
40244
40368
|
function PassesMembershipsController({ render }) {
|
|
40245
40369
|
const api = useBlockApi();
|
|
40246
|
-
const [state, dispatch] =
|
|
40370
|
+
const [state, dispatch] = React22.useReducer(
|
|
40247
40371
|
shopPassesMembershipsReducer,
|
|
40248
40372
|
initialShopPassesMembershipsState
|
|
40249
40373
|
);
|
|
40250
|
-
const [discountApply, dispatchDiscountApply] =
|
|
40374
|
+
const [discountApply, dispatchDiscountApply] = React22.useReducer(
|
|
40251
40375
|
discountApplyReducer,
|
|
40252
40376
|
initialDiscountApplyState
|
|
40253
40377
|
);
|
|
@@ -40260,7 +40384,7 @@ function PassesMembershipsController({ render }) {
|
|
|
40260
40384
|
const display = render.display;
|
|
40261
40385
|
const hydration = render.hydration;
|
|
40262
40386
|
const checkoutTitle = getCheckoutModalTitle(checkout2);
|
|
40263
|
-
const discountContext =
|
|
40387
|
+
const discountContext = React22.useMemo(() => {
|
|
40264
40388
|
if (!checkout2) return null;
|
|
40265
40389
|
return checkout2.item.productType === "pass" ? { type: "pass", passId: checkout2.item.product.id } : { type: "membership", membershipId: checkout2.item.product.id };
|
|
40266
40390
|
}, [checkout2]);
|
|
@@ -40398,12 +40522,12 @@ function PassesMembershipsController({ render }) {
|
|
|
40398
40522
|
const handleConfirmDuplicate = useCallback9(() => {
|
|
40399
40523
|
void submitCheckout(true);
|
|
40400
40524
|
}, [submitCheckout]);
|
|
40401
|
-
return /* @__PURE__ */ jsxs81(
|
|
40525
|
+
return /* @__PURE__ */ jsxs81(Fragment23, { children: [
|
|
40402
40526
|
/* @__PURE__ */ jsx115("div", { ref: shopRootRef, children: /* @__PURE__ */ jsx115(
|
|
40403
40527
|
PassesMembershipsSectionView,
|
|
40404
40528
|
{
|
|
40405
40529
|
display,
|
|
40406
|
-
beforeContent: /* @__PURE__ */ jsx115(
|
|
40530
|
+
beforeContent: /* @__PURE__ */ jsx115(Fragment23, { children: state.returnNotice ? /* @__PURE__ */ jsx115(
|
|
40407
40531
|
TerminalPanel,
|
|
40408
40532
|
{
|
|
40409
40533
|
tone: state.returnNotice.kind === "success" ? "success" : "warning",
|
|
@@ -40517,7 +40641,7 @@ function PassesMembershipsController({ render }) {
|
|
|
40517
40641
|
/* @__PURE__ */ jsxs81("p", { className: "shop__modal-warning-text", children: [
|
|
40518
40642
|
"Your current membership: ",
|
|
40519
40643
|
/* @__PURE__ */ jsx115("strong", { children: checkout2.duplicateWarning.existingMembership.name }),
|
|
40520
|
-
checkout2.duplicateWarning.existingMembership.expiresAt ? /* @__PURE__ */ jsxs81(
|
|
40644
|
+
checkout2.duplicateWarning.existingMembership.expiresAt ? /* @__PURE__ */ jsxs81(Fragment23, { children: [
|
|
40521
40645
|
" (expires ",
|
|
40522
40646
|
new Date(checkout2.duplicateWarning.existingMembership.expiresAt).toLocaleDateString(),
|
|
40523
40647
|
")"
|
|
@@ -42585,8 +42709,8 @@ var init_embla_carousel_react_esm = __esm({
|
|
|
42585
42709
|
});
|
|
42586
42710
|
|
|
42587
42711
|
// ../blocks/src/system/runtime/nodes/carousel.client.tsx
|
|
42588
|
-
import
|
|
42589
|
-
import { Fragment as
|
|
42712
|
+
import React23 from "react";
|
|
42713
|
+
import { Fragment as Fragment24, jsx as jsx116, jsxs as jsxs82 } from "react/jsx-runtime";
|
|
42590
42714
|
function normalizeCarouselProps(input) {
|
|
42591
42715
|
const transition = input.transition === "fade" ? "fade" : "slide";
|
|
42592
42716
|
const arrowVisibility = input.arrowVisibility === "never" ? "never" : input.arrowVisibility === "hover" ? "hover" : "always";
|
|
@@ -42640,8 +42764,8 @@ var init_carousel_client = __esm({
|
|
|
42640
42764
|
autoplayDelay,
|
|
42641
42765
|
loop
|
|
42642
42766
|
}) => {
|
|
42643
|
-
const slides =
|
|
42644
|
-
const normalized =
|
|
42767
|
+
const slides = React23.Children.toArray(children).filter(Boolean);
|
|
42768
|
+
const normalized = React23.useMemo(
|
|
42645
42769
|
() => normalizeCarouselProps({
|
|
42646
42770
|
slidesToShow,
|
|
42647
42771
|
transition,
|
|
@@ -42665,11 +42789,11 @@ var init_carousel_client = __esm({
|
|
|
42665
42789
|
);
|
|
42666
42790
|
const resolvedSlides = resolveSlidesToShowMobile(normalized.slidesToShow);
|
|
42667
42791
|
const canAutoplay = normalized.autoplay && slides.length > 1;
|
|
42668
|
-
const cssVars =
|
|
42792
|
+
const cssVars = React23.useMemo(
|
|
42669
42793
|
() => getCarouselSlidesToShowCssVars(normalized.slidesToShow),
|
|
42670
42794
|
[normalized.slidesToShow]
|
|
42671
42795
|
);
|
|
42672
|
-
const plugins =
|
|
42796
|
+
const plugins = React23.useMemo(() => {
|
|
42673
42797
|
if (!canAutoplay) return void 0;
|
|
42674
42798
|
return [
|
|
42675
42799
|
Autoplay({
|
|
@@ -42691,11 +42815,11 @@ var init_carousel_client = __esm({
|
|
|
42691
42815
|
},
|
|
42692
42816
|
plugins
|
|
42693
42817
|
);
|
|
42694
|
-
const [selectedIndex, setSelectedIndex] =
|
|
42695
|
-
const [scrollSnaps, setScrollSnaps] =
|
|
42696
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
42697
|
-
const [canScrollNext, setCanScrollNext] =
|
|
42698
|
-
|
|
42818
|
+
const [selectedIndex, setSelectedIndex] = React23.useState(0);
|
|
42819
|
+
const [scrollSnaps, setScrollSnaps] = React23.useState([]);
|
|
42820
|
+
const [canScrollPrev, setCanScrollPrev] = React23.useState(false);
|
|
42821
|
+
const [canScrollNext, setCanScrollNext] = React23.useState(false);
|
|
42822
|
+
React23.useEffect(() => {
|
|
42699
42823
|
if (!api) return;
|
|
42700
42824
|
const onInit = () => {
|
|
42701
42825
|
setScrollSnaps(api.scrollSnapList());
|
|
@@ -42718,7 +42842,7 @@ var init_carousel_client = __esm({
|
|
|
42718
42842
|
api.off("reInit", onSelect);
|
|
42719
42843
|
};
|
|
42720
42844
|
}, [api]);
|
|
42721
|
-
|
|
42845
|
+
React23.useEffect(() => {
|
|
42722
42846
|
if (!api || !canAutoplay) return;
|
|
42723
42847
|
const autoplayPlugin = api.plugins()?.autoplay;
|
|
42724
42848
|
if (!autoplayPlugin) return;
|
|
@@ -42729,7 +42853,7 @@ var init_carousel_client = __esm({
|
|
|
42729
42853
|
document.addEventListener("visibilitychange", handleVisibility);
|
|
42730
42854
|
return () => document.removeEventListener("visibilitychange", handleVisibility);
|
|
42731
42855
|
}, [api, canAutoplay]);
|
|
42732
|
-
const inner = /* @__PURE__ */ jsxs82(
|
|
42856
|
+
const inner = /* @__PURE__ */ jsxs82(Fragment24, { children: [
|
|
42733
42857
|
/* @__PURE__ */ jsx116("div", { className: "carousel-frame rb-overflow-hidden rb-w-full", children: /* @__PURE__ */ jsx116(
|
|
42734
42858
|
"div",
|
|
42735
42859
|
{
|
|
@@ -42793,7 +42917,7 @@ var init_carousel_client = __esm({
|
|
|
42793
42917
|
canScrollNext
|
|
42794
42918
|
}) => {
|
|
42795
42919
|
if (slidesCount <= resolvedSlides) return null;
|
|
42796
|
-
return /* @__PURE__ */ jsxs82(
|
|
42920
|
+
return /* @__PURE__ */ jsxs82(Fragment24, { children: [
|
|
42797
42921
|
/* @__PURE__ */ jsx116(
|
|
42798
42922
|
"button",
|
|
42799
42923
|
{
|
|
@@ -42969,16 +43093,16 @@ var init_shop_cart_discount_ui = __esm({
|
|
|
42969
43093
|
});
|
|
42970
43094
|
|
|
42971
43095
|
// ../blocks/src/system/runtime/nodes/shop-commerce.tsx
|
|
42972
|
-
import * as
|
|
42973
|
-
import { Fragment as
|
|
43096
|
+
import * as React24 from "react";
|
|
43097
|
+
import { Fragment as Fragment25, jsx as jsx117, jsxs as jsxs83 } from "react/jsx-runtime";
|
|
42974
43098
|
function ProductListController(props2) {
|
|
42975
43099
|
const api = useBlockApi();
|
|
42976
43100
|
const cart2 = useCommerceCart(api.config.siteId);
|
|
42977
43101
|
const addFeedback = useTransientShopAddFeedback();
|
|
42978
|
-
const [variantSelection, setVariantSelection] =
|
|
43102
|
+
const [variantSelection, setVariantSelection] = React24.useState(
|
|
42979
43103
|
() => Object.fromEntries(props2.render.display.cards.map((card) => [card.productId, card.selectedVariantId]))
|
|
42980
43104
|
);
|
|
42981
|
-
const cards =
|
|
43105
|
+
const cards = React24.useMemo(
|
|
42982
43106
|
() => props2.render.hydration.products.map(
|
|
42983
43107
|
(product) => buildProductCardDisplay(
|
|
42984
43108
|
product,
|
|
@@ -42992,7 +43116,7 @@ function ProductListController(props2) {
|
|
|
42992
43116
|
),
|
|
42993
43117
|
[props2.render.hydration, variantSelection]
|
|
42994
43118
|
);
|
|
42995
|
-
const display =
|
|
43119
|
+
const display = React24.useMemo(
|
|
42996
43120
|
() => ({
|
|
42997
43121
|
...props2.render.display,
|
|
42998
43122
|
state: cards.length === 0 ? "empty" : "ready",
|
|
@@ -43016,7 +43140,7 @@ function ProductListController(props2) {
|
|
|
43016
43140
|
}))
|
|
43017
43141
|
}
|
|
43018
43142
|
),
|
|
43019
|
-
actions: /* @__PURE__ */ jsxs83(
|
|
43143
|
+
actions: /* @__PURE__ */ jsxs83(Fragment25, { children: [
|
|
43020
43144
|
/* @__PURE__ */ jsx117(
|
|
43021
43145
|
"button",
|
|
43022
43146
|
{
|
|
@@ -43061,17 +43185,17 @@ function ProductDetailController(props2) {
|
|
|
43061
43185
|
const api = useBlockApi();
|
|
43062
43186
|
const cart2 = useCommerceCart(api.config.siteId);
|
|
43063
43187
|
const addFeedback = useTransientShopAddFeedback();
|
|
43064
|
-
const selectedProduct =
|
|
43188
|
+
const selectedProduct = React24.useMemo(
|
|
43065
43189
|
() => props2.render.hydration.products.find((product) => product.id === props2.render.hydration.productId) ?? null,
|
|
43066
43190
|
[props2.render.hydration.productId, props2.render.hydration.products]
|
|
43067
43191
|
);
|
|
43068
|
-
const [variantId, setVariantId] =
|
|
43192
|
+
const [variantId, setVariantId] = React24.useState(
|
|
43069
43193
|
props2.render.display.state === "ready" ? props2.render.display.selectedVariantId : null
|
|
43070
43194
|
);
|
|
43071
|
-
|
|
43195
|
+
React24.useEffect(() => {
|
|
43072
43196
|
setVariantId(props2.render.display.state === "ready" ? props2.render.display.selectedVariantId : null);
|
|
43073
43197
|
}, [props2.render.display]);
|
|
43074
|
-
const display =
|
|
43198
|
+
const display = React24.useMemo(
|
|
43075
43199
|
() => buildProductDetailDisplay(
|
|
43076
43200
|
selectedProduct,
|
|
43077
43201
|
{
|
|
@@ -43138,7 +43262,7 @@ function ProductDetailController(props2) {
|
|
|
43138
43262
|
function CartController(props2) {
|
|
43139
43263
|
const api = useBlockApi();
|
|
43140
43264
|
const cart2 = useCommerceCart(api.config.siteId);
|
|
43141
|
-
const display =
|
|
43265
|
+
const display = React24.useMemo(
|
|
43142
43266
|
() => getShopDisplayForItems(props2.render, cart2.items),
|
|
43143
43267
|
[cart2.items, props2.render]
|
|
43144
43268
|
);
|
|
@@ -43146,7 +43270,7 @@ function CartController(props2) {
|
|
|
43146
43270
|
CartShellView,
|
|
43147
43271
|
{
|
|
43148
43272
|
display,
|
|
43149
|
-
renderControls: (item) => /* @__PURE__ */ jsxs83(
|
|
43273
|
+
renderControls: (item) => /* @__PURE__ */ jsxs83(Fragment25, { children: [
|
|
43150
43274
|
/* @__PURE__ */ jsx117(
|
|
43151
43275
|
"input",
|
|
43152
43276
|
{
|
|
@@ -43169,7 +43293,7 @@ function CartController(props2) {
|
|
|
43169
43293
|
}
|
|
43170
43294
|
)
|
|
43171
43295
|
] }),
|
|
43172
|
-
footerActions: /* @__PURE__ */ jsxs83(
|
|
43296
|
+
footerActions: /* @__PURE__ */ jsxs83(Fragment25, { children: [
|
|
43173
43297
|
/* @__PURE__ */ jsx117(
|
|
43174
43298
|
"button",
|
|
43175
43299
|
{
|
|
@@ -43197,15 +43321,15 @@ function CartController(props2) {
|
|
|
43197
43321
|
function CheckoutController(props2) {
|
|
43198
43322
|
const api = useBlockApi();
|
|
43199
43323
|
const cart2 = useCommerceCart(api.config.siteId);
|
|
43200
|
-
const [state, dispatch] =
|
|
43324
|
+
const [state, dispatch] = React24.useReducer(
|
|
43201
43325
|
shopCheckoutReducer,
|
|
43202
43326
|
initialShopCheckoutState
|
|
43203
43327
|
);
|
|
43204
|
-
const [discountApply, dispatchDiscountApply] =
|
|
43328
|
+
const [discountApply, dispatchDiscountApply] = React24.useReducer(
|
|
43205
43329
|
discountApplyReducer,
|
|
43206
43330
|
initialDiscountApplyState
|
|
43207
43331
|
);
|
|
43208
|
-
|
|
43332
|
+
React24.useEffect(() => {
|
|
43209
43333
|
const checkout2 = consumeSearchParam("checkout");
|
|
43210
43334
|
if (checkout2 === "success") {
|
|
43211
43335
|
cart2.clear();
|
|
@@ -43214,15 +43338,15 @@ function CheckoutController(props2) {
|
|
|
43214
43338
|
dispatch({ type: "setNotice", notice: "cancelled" });
|
|
43215
43339
|
}
|
|
43216
43340
|
}, [cart2]);
|
|
43217
|
-
const display =
|
|
43341
|
+
const display = React24.useMemo(
|
|
43218
43342
|
() => getShopDisplayForItems(props2.render, cart2.items),
|
|
43219
43343
|
[cart2.items, props2.render]
|
|
43220
43344
|
);
|
|
43221
|
-
const checkoutState =
|
|
43345
|
+
const checkoutState = React24.useMemo(
|
|
43222
43346
|
() => deriveCommerceCheckoutState({ items: cart2.items }),
|
|
43223
43347
|
[cart2.items]
|
|
43224
43348
|
);
|
|
43225
|
-
const discountAvailabilityPlan =
|
|
43349
|
+
const discountAvailabilityPlan = React24.useMemo(
|
|
43226
43350
|
() => planCartDiscountAvailabilityRequests(checkoutState),
|
|
43227
43351
|
[checkoutState]
|
|
43228
43352
|
);
|
|
@@ -43231,15 +43355,15 @@ function CheckoutController(props2) {
|
|
|
43231
43355
|
discountApply.status,
|
|
43232
43356
|
formatCommercePrice
|
|
43233
43357
|
);
|
|
43234
|
-
|
|
43358
|
+
React24.useEffect(() => {
|
|
43235
43359
|
if (discountUiState.type === "manual-allowed") return;
|
|
43236
43360
|
dispatchDiscountApply({ type: "remove" });
|
|
43237
43361
|
}, [discountUiState.type]);
|
|
43238
|
-
const checkoutIdentity =
|
|
43362
|
+
const checkoutIdentity = React24.useMemo(() => {
|
|
43239
43363
|
if (checkoutState.kind !== "ready") return checkoutState.kind;
|
|
43240
43364
|
return checkoutState.items.map((item) => `${item.key}:${item.quantity}:${item.unitPriceCents}`).join("|");
|
|
43241
43365
|
}, [checkoutState]);
|
|
43242
|
-
|
|
43366
|
+
React24.useEffect(() => {
|
|
43243
43367
|
dispatchDiscountApply({ type: "resetApplied" });
|
|
43244
43368
|
}, [checkoutIdentity, state.form.email]);
|
|
43245
43369
|
const applyDiscountCode = useDiscountApply({
|
|
@@ -43468,7 +43592,7 @@ var init_navDropdownSizing = __esm({
|
|
|
43468
43592
|
});
|
|
43469
43593
|
|
|
43470
43594
|
// ../blocks/src/system/runtime/header/HeaderCartDrawer.tsx
|
|
43471
|
-
import * as
|
|
43595
|
+
import * as React40 from "react";
|
|
43472
43596
|
import { jsx as jsx131, jsxs as jsxs86 } from "react/jsx-runtime";
|
|
43473
43597
|
function normalizeQuantityInput(value) {
|
|
43474
43598
|
const parsed = Number(value);
|
|
@@ -43518,8 +43642,8 @@ function HeaderCartDrawerItems(props2) {
|
|
|
43518
43642
|
)) });
|
|
43519
43643
|
}
|
|
43520
43644
|
function HeaderCartDrawer(props2) {
|
|
43521
|
-
const titleId =
|
|
43522
|
-
const display =
|
|
43645
|
+
const titleId = React40.useId();
|
|
43646
|
+
const display = React40.useMemo(
|
|
43523
43647
|
() => buildCartDisplay(props2.cart.items, {
|
|
43524
43648
|
heading: "Cart",
|
|
43525
43649
|
emptyMessage: "Your cart is empty.",
|
|
@@ -43742,22 +43866,22 @@ var init_HeaderCartTrigger = __esm({
|
|
|
43742
43866
|
});
|
|
43743
43867
|
|
|
43744
43868
|
// ../blocks/src/system/runtime/header/headerCartRuntime.tsx
|
|
43745
|
-
import * as
|
|
43869
|
+
import * as React41 from "react";
|
|
43746
43870
|
import { createPortal as createPortal3 } from "react-dom";
|
|
43747
43871
|
import { createRoot } from "react-dom/client";
|
|
43748
|
-
import { Fragment as
|
|
43872
|
+
import { Fragment as Fragment27, jsx as jsx133, jsxs as jsxs88 } from "react/jsx-runtime";
|
|
43749
43873
|
function HeaderCartRuntime(props2) {
|
|
43750
43874
|
const cart2 = useCommerceCart(props2.siteId);
|
|
43751
|
-
const itemCount =
|
|
43752
|
-
const [open, setOpen] =
|
|
43753
|
-
const checkoutHref =
|
|
43875
|
+
const itemCount = React41.useMemo(() => getCartItemCount(cart2.items), [cart2.items]);
|
|
43876
|
+
const [open, setOpen] = React41.useState(false);
|
|
43877
|
+
const checkoutHref = React41.useMemo(
|
|
43754
43878
|
() => resolveHeaderCartCheckoutHref(
|
|
43755
43879
|
props2.mounts,
|
|
43756
43880
|
typeof window === "undefined" ? null : window.location.pathname
|
|
43757
43881
|
),
|
|
43758
43882
|
[props2.mounts]
|
|
43759
43883
|
);
|
|
43760
|
-
return /* @__PURE__ */ jsxs88(
|
|
43884
|
+
return /* @__PURE__ */ jsxs88(Fragment27, { children: [
|
|
43761
43885
|
props2.mounts.map(
|
|
43762
43886
|
(mount) => createPortal3(
|
|
43763
43887
|
/* @__PURE__ */ jsx133(
|
|
@@ -44480,7 +44604,7 @@ var init_EventCard_client = __esm({
|
|
|
44480
44604
|
});
|
|
44481
44605
|
|
|
44482
44606
|
// ../blocks/src/system/runtime/nodes/events/shared/EventPaginatedListView.client.tsx
|
|
44483
|
-
import { Fragment as
|
|
44607
|
+
import { Fragment as Fragment28, jsx as jsx137, jsxs as jsxs90 } from "react/jsx-runtime";
|
|
44484
44608
|
var EventPaginatedListView;
|
|
44485
44609
|
var init_EventPaginatedListView_client = __esm({
|
|
44486
44610
|
"../blocks/src/system/runtime/nodes/events/shared/EventPaginatedListView.client.tsx"() {
|
|
@@ -44523,7 +44647,7 @@ var init_EventPaginatedListView_client = __esm({
|
|
|
44523
44647
|
resetFiltersText
|
|
44524
44648
|
}
|
|
44525
44649
|
),
|
|
44526
|
-
footer: /* @__PURE__ */ jsxs90(
|
|
44650
|
+
footer: /* @__PURE__ */ jsxs90(Fragment28, { children: [
|
|
44527
44651
|
error ? /* @__PURE__ */ jsxs90("div", { className: "rb-mt-6 rb-text-center", children: [
|
|
44528
44652
|
/* @__PURE__ */ jsx137("p", { className: "status-error rb-caption rb-mb-2", children: "Failed to load more events" }),
|
|
44529
44653
|
/* @__PURE__ */ jsx137(
|
|
@@ -45839,18 +45963,18 @@ var init_DayEventsModal = __esm({
|
|
|
45839
45963
|
});
|
|
45840
45964
|
|
|
45841
45965
|
// ../blocks/src/system/runtime/nodes/events/shared/EventModals.tsx
|
|
45842
|
-
import
|
|
45843
|
-
import { Fragment as
|
|
45966
|
+
import React46 from "react";
|
|
45967
|
+
import { Fragment as Fragment29, jsx as jsx144, jsxs as jsxs93 } from "react/jsx-runtime";
|
|
45844
45968
|
function EventModals({
|
|
45845
45969
|
showCapacity,
|
|
45846
45970
|
cardVariant,
|
|
45847
45971
|
buttonVariant,
|
|
45848
45972
|
buttonText
|
|
45849
45973
|
}) {
|
|
45850
|
-
const markerRef =
|
|
45851
|
-
const [portalRoot, setPortalRoot] =
|
|
45974
|
+
const markerRef = React46.useRef(null);
|
|
45975
|
+
const [portalRoot, setPortalRoot] = React46.useState(null);
|
|
45852
45976
|
const { modalState, openEventModal, closeModal } = useEventModal();
|
|
45853
|
-
|
|
45977
|
+
React46.useEffect(() => {
|
|
45854
45978
|
const sourceEl = markerRef.current;
|
|
45855
45979
|
if (!sourceEl) return;
|
|
45856
45980
|
const portal = createBodyThemePortalRoot(sourceEl);
|
|
@@ -45869,7 +45993,7 @@ function EventModals({
|
|
|
45869
45993
|
return marker;
|
|
45870
45994
|
}
|
|
45871
45995
|
if (modalState.type === "event") {
|
|
45872
|
-
return /* @__PURE__ */ jsxs93(
|
|
45996
|
+
return /* @__PURE__ */ jsxs93(Fragment29, { children: [
|
|
45873
45997
|
marker,
|
|
45874
45998
|
/* @__PURE__ */ jsx144(
|
|
45875
45999
|
EventDetailModal,
|
|
@@ -45886,7 +46010,7 @@ function EventModals({
|
|
|
45886
46010
|
] });
|
|
45887
46011
|
}
|
|
45888
46012
|
if (modalState.type === "day") {
|
|
45889
|
-
return /* @__PURE__ */ jsxs93(
|
|
46013
|
+
return /* @__PURE__ */ jsxs93(Fragment29, { children: [
|
|
45890
46014
|
marker,
|
|
45891
46015
|
/* @__PURE__ */ jsx144(
|
|
45892
46016
|
DayEventsModal,
|
|
@@ -48725,7 +48849,7 @@ var init_newsletterForm2 = __esm({
|
|
|
48725
48849
|
});
|
|
48726
48850
|
|
|
48727
48851
|
// ../blocks/src/system/runtime/components/registry.client.tsx
|
|
48728
|
-
import
|
|
48852
|
+
import React54 from "react";
|
|
48729
48853
|
|
|
48730
48854
|
// ../blocks/src/primitives/layout/Section.tsx
|
|
48731
48855
|
init_clsx();
|
|
@@ -50759,14 +50883,27 @@ function BookingFormSSR({
|
|
|
50759
50883
|
return /* @__PURE__ */ jsxs8(
|
|
50760
50884
|
"div",
|
|
50761
50885
|
{
|
|
50762
|
-
className: `booking-form-ssr ${className ?? ""}`.trim(),
|
|
50886
|
+
className: `rb-reg-surface booking-form-ssr ${display.state === "missing" ? "" : "ab-shell "}${className ?? ""}`.trim(),
|
|
50763
50887
|
...getIslandRootProps("booking-form", blockId),
|
|
50888
|
+
"aria-busy": display.state === "missing" ? void 0 : true,
|
|
50889
|
+
"aria-label": display.state === "missing" ? void 0 : "Loading booking form",
|
|
50890
|
+
role: display.state === "missing" ? void 0 : "status",
|
|
50764
50891
|
children: [
|
|
50765
50892
|
/* @__PURE__ */ jsx23(IslandPropsScript, { value: islandProps }),
|
|
50766
|
-
/* @__PURE__ */ jsx23("div", { className: "
|
|
50767
|
-
/* @__PURE__ */ jsx23("
|
|
50768
|
-
|
|
50769
|
-
|
|
50893
|
+
display.state === "missing" ? /* @__PURE__ */ jsx23("div", { className: "alert alert-error", role: "alert", children: /* @__PURE__ */ jsx23("p", { className: "ab-text", children: display.message }) }) : /* @__PURE__ */ jsxs8(Fragment3, { children: [
|
|
50894
|
+
/* @__PURE__ */ jsx23("span", { className: "rb-sr-only", children: "Loading booking form..." }),
|
|
50895
|
+
/* @__PURE__ */ jsxs8("div", { className: "rb-reg-stack", "aria-hidden": "true", children: [
|
|
50896
|
+
/* @__PURE__ */ jsx23("div", { className: "rb-reg-summary", children: /* @__PURE__ */ jsxs8("div", { className: "rb-reg-stack rb-reg-stack--sm", children: [
|
|
50897
|
+
/* @__PURE__ */ jsx23("div", { className: "rb-shell-line rb-shell-line--md" }),
|
|
50898
|
+
/* @__PURE__ */ jsx23("div", { className: "rb-shell-line rb-shell-line--sm" })
|
|
50899
|
+
] }) }),
|
|
50900
|
+
/* @__PURE__ */ jsxs8("div", { className: "rb-reg-stack rb-reg-stack--sm", children: [
|
|
50901
|
+
/* @__PURE__ */ jsx23("div", { className: "rb-shell-line rb-shell-line--lg" }),
|
|
50902
|
+
/* @__PURE__ */ jsx23("div", { className: "rb-shell-line rb-shell-line--xs" })
|
|
50903
|
+
] }),
|
|
50904
|
+
/* @__PURE__ */ jsx23("div", { className: "rb-wizard-actions", children: /* @__PURE__ */ jsx23("div", { className: "ab-shell-button", children: display.submitLabel }) })
|
|
50905
|
+
] })
|
|
50906
|
+
] }),
|
|
50770
50907
|
children
|
|
50771
50908
|
]
|
|
50772
50909
|
}
|
|
@@ -55236,20 +55373,38 @@ function EventRegistrationShell({
|
|
|
55236
55373
|
"div",
|
|
55237
55374
|
{
|
|
55238
55375
|
id: EVENT_REGISTRATION_ANCHOR_ID,
|
|
55239
|
-
className: "er-container er-registration-shell",
|
|
55376
|
+
className: "rb-reg-surface er-container er-registration-shell",
|
|
55240
55377
|
"aria-busy": "true",
|
|
55241
55378
|
role: "status",
|
|
55242
55379
|
children: /* @__PURE__ */ jsxs36("div", { className: "er-payment-layout er-payment-layout--no-sidebar", children: [
|
|
55243
55380
|
/* @__PURE__ */ jsxs36("div", { className: "er-payment-layout-main", children: [
|
|
55244
|
-
/* @__PURE__ */ jsx53("div", { className: "er-steps-nav er-registration-shell__steps", "aria-hidden": "true", children: /* @__PURE__ */ jsx53("ol", { className: "er-steps", children: display.stepLabels.map((label, index) => {
|
|
55381
|
+
/* @__PURE__ */ jsx53("div", { className: "rb-steps-nav er-steps-nav er-registration-shell__steps", "aria-hidden": "true", children: /* @__PURE__ */ jsx53("ol", { className: "rb-steps er-steps", children: display.stepLabels.map((label, index) => {
|
|
55245
55382
|
const isActive = index === 0;
|
|
55246
|
-
return /* @__PURE__ */ jsxs36("li", { className: "er-step", children: [
|
|
55247
|
-
/* @__PURE__ */ jsx53(
|
|
55248
|
-
|
|
55249
|
-
|
|
55383
|
+
return /* @__PURE__ */ jsxs36("li", { className: "rb-step er-step", children: [
|
|
55384
|
+
/* @__PURE__ */ jsx53(
|
|
55385
|
+
"span",
|
|
55386
|
+
{
|
|
55387
|
+
className: cx(
|
|
55388
|
+
"rb-step-circle er-step-circle",
|
|
55389
|
+
isActive && "rb-step-circle--active er-step-circle--active"
|
|
55390
|
+
),
|
|
55391
|
+
children: index + 1
|
|
55392
|
+
}
|
|
55393
|
+
),
|
|
55394
|
+
/* @__PURE__ */ jsx53(
|
|
55395
|
+
"span",
|
|
55396
|
+
{
|
|
55397
|
+
className: cx(
|
|
55398
|
+
"rb-step-label er-step-label",
|
|
55399
|
+
isActive && "rb-step-label--active er-step-label--active"
|
|
55400
|
+
),
|
|
55401
|
+
children: label
|
|
55402
|
+
}
|
|
55403
|
+
),
|
|
55404
|
+
index < display.stepLabels.length - 1 ? /* @__PURE__ */ jsx53("span", { className: "rb-step-connector er-step-connector" }) : null
|
|
55250
55405
|
] }, label);
|
|
55251
55406
|
}) }) }),
|
|
55252
|
-
/* @__PURE__ */ jsxs36("div", { className: "er-stack", children: [
|
|
55407
|
+
/* @__PURE__ */ jsxs36("div", { className: "rb-reg-stack er-stack", children: [
|
|
55253
55408
|
/* @__PURE__ */ jsxs36("div", { children: [
|
|
55254
55409
|
/* @__PURE__ */ jsx53("p", { className: "er-registration-shell__eyebrow", children: "Registration" }),
|
|
55255
55410
|
/* @__PURE__ */ jsx53("h3", { className: "er-title er-registration-shell__title", children: display.titleText }),
|
|
@@ -55257,20 +55412,20 @@ function EventRegistrationShell({
|
|
|
55257
55412
|
] }),
|
|
55258
55413
|
/* @__PURE__ */ jsxs36("div", { className: "er-event-grid er-registration-shell__cards", "aria-hidden": "true", children: [
|
|
55259
55414
|
/* @__PURE__ */ jsxs36("div", { className: "er-event-card er-registration-shell__card", children: [
|
|
55260
|
-
/* @__PURE__ */ jsx53("div", { className: "er-registration-shell__line er-registration-shell__line--lg" }),
|
|
55261
|
-
/* @__PURE__ */ jsx53("div", { className: "er-registration-shell__line er-registration-shell__line--sm" })
|
|
55415
|
+
/* @__PURE__ */ jsx53("div", { className: "rb-shell-line rb-shell-line--lg er-registration-shell__line er-registration-shell__line--lg" }),
|
|
55416
|
+
/* @__PURE__ */ jsx53("div", { className: "rb-shell-line rb-shell-line--sm er-registration-shell__line er-registration-shell__line--sm" })
|
|
55262
55417
|
] }),
|
|
55263
55418
|
/* @__PURE__ */ jsxs36("div", { className: "er-event-card er-registration-shell__card", children: [
|
|
55264
|
-
/* @__PURE__ */ jsx53("div", { className: "er-registration-shell__line er-registration-shell__line--md" }),
|
|
55265
|
-
/* @__PURE__ */ jsx53("div", { className: "er-registration-shell__line er-registration-shell__line--xs" })
|
|
55419
|
+
/* @__PURE__ */ jsx53("div", { className: "rb-shell-line rb-shell-line--md er-registration-shell__line er-registration-shell__line--md" }),
|
|
55420
|
+
/* @__PURE__ */ jsx53("div", { className: "rb-shell-line rb-shell-line--xs er-registration-shell__line er-registration-shell__line--xs" })
|
|
55266
55421
|
] })
|
|
55267
55422
|
] })
|
|
55268
55423
|
] })
|
|
55269
55424
|
] }),
|
|
55270
55425
|
/* @__PURE__ */ jsx53("div", { className: "er-payment-layout-footer", children: /* @__PURE__ */ jsxs36("div", { className: "er-summary-bar er-registration-shell__summary", "aria-hidden": "true", children: [
|
|
55271
55426
|
/* @__PURE__ */ jsxs36("div", { className: "er-summary-bar-info", children: [
|
|
55272
|
-
/* @__PURE__ */ jsx53("div", { className: "er-registration-shell__line er-registration-shell__line--md" }),
|
|
55273
|
-
/* @__PURE__ */ jsx53("div", { className: "er-registration-shell__line er-registration-shell__line--xs" })
|
|
55427
|
+
/* @__PURE__ */ jsx53("div", { className: "rb-shell-line rb-shell-line--md er-registration-shell__line er-registration-shell__line--md" }),
|
|
55428
|
+
/* @__PURE__ */ jsx53("div", { className: "rb-shell-line rb-shell-line--xs er-registration-shell__line er-registration-shell__line--xs" })
|
|
55274
55429
|
] }),
|
|
55275
55430
|
/* @__PURE__ */ jsx53("div", { className: "er-registration-shell__button-placeholder", children: display.summaryButtonText })
|
|
55276
55431
|
] }) })
|
|
@@ -56197,28 +56352,28 @@ var gifting_client_default = GiftingClient;
|
|
|
56197
56352
|
init_carousel_client();
|
|
56198
56353
|
|
|
56199
56354
|
// ../../node_modules/.pnpm/@radix-ui+react-accordion@1.2.14_@types+react-dom@19.2.3_@types+react@19.2.17__@types+r_267762ff3d1a7aac1f1135a6d591f0f8/node_modules/@radix-ui/react-accordion/dist/index.mjs
|
|
56200
|
-
import * as
|
|
56355
|
+
import * as React37 from "react";
|
|
56201
56356
|
|
|
56202
56357
|
// ../../node_modules/.pnpm/@radix-ui+react-context@1.1.4_@types+react@19.2.17_react@19.2.7/node_modules/@radix-ui/react-context/dist/index.mjs
|
|
56203
|
-
import * as
|
|
56358
|
+
import * as React26 from "react";
|
|
56204
56359
|
import { jsx as jsx123 } from "react/jsx-runtime";
|
|
56205
56360
|
function createContextScope(scopeName, createContextScopeDeps = []) {
|
|
56206
56361
|
let defaultContexts = [];
|
|
56207
56362
|
function createContext32(rootComponentName, defaultContext) {
|
|
56208
|
-
const BaseContext =
|
|
56363
|
+
const BaseContext = React26.createContext(defaultContext);
|
|
56209
56364
|
BaseContext.displayName = rootComponentName + "Context";
|
|
56210
56365
|
const index = defaultContexts.length;
|
|
56211
56366
|
defaultContexts = [...defaultContexts, defaultContext];
|
|
56212
56367
|
const Provider = (props2) => {
|
|
56213
56368
|
const { scope, children, ...context } = props2;
|
|
56214
56369
|
const Context = scope?.[scopeName]?.[index] || BaseContext;
|
|
56215
|
-
const value =
|
|
56370
|
+
const value = React26.useMemo(() => context, Object.values(context));
|
|
56216
56371
|
return /* @__PURE__ */ jsx123(Context.Provider, { value, children });
|
|
56217
56372
|
};
|
|
56218
56373
|
Provider.displayName = rootComponentName + "Provider";
|
|
56219
56374
|
function useContext22(consumerName, scope) {
|
|
56220
56375
|
const Context = scope?.[scopeName]?.[index] || BaseContext;
|
|
56221
|
-
const context =
|
|
56376
|
+
const context = React26.useContext(Context);
|
|
56222
56377
|
if (context) return context;
|
|
56223
56378
|
if (defaultContext !== void 0) return defaultContext;
|
|
56224
56379
|
throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``);
|
|
@@ -56227,11 +56382,11 @@ function createContextScope(scopeName, createContextScopeDeps = []) {
|
|
|
56227
56382
|
}
|
|
56228
56383
|
const createScope = () => {
|
|
56229
56384
|
const scopeContexts = defaultContexts.map((defaultContext) => {
|
|
56230
|
-
return
|
|
56385
|
+
return React26.createContext(defaultContext);
|
|
56231
56386
|
});
|
|
56232
56387
|
return function useScope(scope) {
|
|
56233
56388
|
const contexts = scope?.[scopeName] || scopeContexts;
|
|
56234
|
-
return
|
|
56389
|
+
return React26.useMemo(
|
|
56235
56390
|
() => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),
|
|
56236
56391
|
[scope, contexts]
|
|
56237
56392
|
);
|
|
@@ -56254,7 +56409,7 @@ function composeContextScopes(...scopes) {
|
|
|
56254
56409
|
const currentScope = scopeProps[`__scope${scopeName}`];
|
|
56255
56410
|
return { ...nextScopes2, ...currentScope };
|
|
56256
56411
|
}, {});
|
|
56257
|
-
return
|
|
56412
|
+
return React26.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);
|
|
56258
56413
|
};
|
|
56259
56414
|
};
|
|
56260
56415
|
createScope.scopeName = baseScope.scopeName;
|
|
@@ -56262,10 +56417,10 @@ function composeContextScopes(...scopes) {
|
|
|
56262
56417
|
}
|
|
56263
56418
|
|
|
56264
56419
|
// ../../node_modules/.pnpm/@radix-ui+react-collection@1.1.10_@types+react-dom@19.2.3_@types+react@19.2.17__@types+_d2514901a83655b2339c16df2b5b40ad/node_modules/@radix-ui/react-collection/dist/index.mjs
|
|
56265
|
-
import * as
|
|
56420
|
+
import * as React29 from "react";
|
|
56266
56421
|
|
|
56267
56422
|
// ../../node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.3_@types+react@19.2.17_react@19.2.7/node_modules/@radix-ui/react-compose-refs/dist/index.mjs
|
|
56268
|
-
import * as
|
|
56423
|
+
import * as React27 from "react";
|
|
56269
56424
|
function setRef(ref, value) {
|
|
56270
56425
|
if (typeof ref === "function") {
|
|
56271
56426
|
return ref(value);
|
|
@@ -56298,14 +56453,14 @@ function composeRefs(...refs) {
|
|
|
56298
56453
|
};
|
|
56299
56454
|
}
|
|
56300
56455
|
function useComposedRefs(...refs) {
|
|
56301
|
-
return
|
|
56456
|
+
return React27.useCallback(composeRefs(...refs), refs);
|
|
56302
56457
|
}
|
|
56303
56458
|
|
|
56304
56459
|
// ../../node_modules/.pnpm/@radix-ui+react-slot@1.3.0_@types+react@19.2.17_react@19.2.7/node_modules/@radix-ui/react-slot/dist/index.mjs
|
|
56305
|
-
import * as
|
|
56460
|
+
import * as React28 from "react";
|
|
56306
56461
|
// @__NO_SIDE_EFFECTS__
|
|
56307
56462
|
function createSlot(ownerName) {
|
|
56308
|
-
const Slot2 =
|
|
56463
|
+
const Slot2 = React28.forwardRef((props2, forwardedRef) => {
|
|
56309
56464
|
let { children, ...slotProps } = props2;
|
|
56310
56465
|
let slottableElement = null;
|
|
56311
56466
|
let hasSlottable = false;
|
|
@@ -56313,7 +56468,7 @@ function createSlot(ownerName) {
|
|
|
56313
56468
|
if (isLazyComponent(children) && typeof use === "function") {
|
|
56314
56469
|
children = use(children._payload);
|
|
56315
56470
|
}
|
|
56316
|
-
|
|
56471
|
+
React28.Children.forEach(children, (maybeSlottable) => {
|
|
56317
56472
|
if (isSlottable(maybeSlottable)) {
|
|
56318
56473
|
hasSlottable = true;
|
|
56319
56474
|
const slottable = maybeSlottable;
|
|
@@ -56328,13 +56483,13 @@ function createSlot(ownerName) {
|
|
|
56328
56483
|
}
|
|
56329
56484
|
});
|
|
56330
56485
|
if (slottableElement) {
|
|
56331
|
-
slottableElement =
|
|
56486
|
+
slottableElement = React28.cloneElement(slottableElement, void 0, newChildren);
|
|
56332
56487
|
} else if (
|
|
56333
56488
|
// A `Slottable` was found but it didn't resolve to a single element (e.g.
|
|
56334
56489
|
// it wrapped multiple elements, text, or a render-prop `child` that
|
|
56335
56490
|
// wasn't an element). Don't fall back to treating the `Slottable` wrapper
|
|
56336
56491
|
// itself as the slot target — throw a descriptive error below instead.
|
|
56337
|
-
!hasSlottable &&
|
|
56492
|
+
!hasSlottable && React28.Children.count(children) === 1 && React28.isValidElement(children)
|
|
56338
56493
|
) {
|
|
56339
56494
|
slottableElement = children;
|
|
56340
56495
|
}
|
|
@@ -56349,10 +56504,10 @@ function createSlot(ownerName) {
|
|
|
56349
56504
|
return children;
|
|
56350
56505
|
}
|
|
56351
56506
|
const mergedProps = mergeProps(slotProps, slottableElement.props ?? {});
|
|
56352
|
-
if (slottableElement.type !==
|
|
56507
|
+
if (slottableElement.type !== React28.Fragment) {
|
|
56353
56508
|
mergedProps.ref = forwardedRef ? composedRef : slottableElementRef;
|
|
56354
56509
|
}
|
|
56355
|
-
return
|
|
56510
|
+
return React28.cloneElement(slottableElement, mergedProps);
|
|
56356
56511
|
});
|
|
56357
56512
|
Slot2.displayName = `${ownerName}.Slot`;
|
|
56358
56513
|
return Slot2;
|
|
@@ -56361,10 +56516,10 @@ var SLOTTABLE_IDENTIFIER = /* @__PURE__ */ Symbol.for("radix.slottable");
|
|
|
56361
56516
|
var getSlottableElementFromSlottable = (slottable, child) => {
|
|
56362
56517
|
if ("child" in slottable.props) {
|
|
56363
56518
|
const child2 = slottable.props.child;
|
|
56364
|
-
if (!
|
|
56365
|
-
return
|
|
56519
|
+
if (!React28.isValidElement(child2)) return null;
|
|
56520
|
+
return React28.cloneElement(child2, void 0, slottable.props.children(child2.props.children));
|
|
56366
56521
|
}
|
|
56367
|
-
return
|
|
56522
|
+
return React28.isValidElement(child) ? child : null;
|
|
56368
56523
|
};
|
|
56369
56524
|
function mergeProps(slotProps, childProps) {
|
|
56370
56525
|
const overrideProps = { ...childProps };
|
|
@@ -56404,7 +56559,7 @@ function getElementRef(element) {
|
|
|
56404
56559
|
return element.props.ref || element.ref;
|
|
56405
56560
|
}
|
|
56406
56561
|
function isSlottable(child) {
|
|
56407
|
-
return
|
|
56562
|
+
return React28.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
|
|
56408
56563
|
}
|
|
56409
56564
|
var REACT_LAZY_TYPE = /* @__PURE__ */ Symbol.for("react.lazy");
|
|
56410
56565
|
function isLazyComponent(element) {
|
|
@@ -56419,11 +56574,11 @@ var createSlotError = (ownerName) => {
|
|
|
56419
56574
|
var createSlottableError = (ownerName) => {
|
|
56420
56575
|
return `${ownerName} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`;
|
|
56421
56576
|
};
|
|
56422
|
-
var use =
|
|
56577
|
+
var use = React28[" use ".trim().toString()];
|
|
56423
56578
|
|
|
56424
56579
|
// ../../node_modules/.pnpm/@radix-ui+react-collection@1.1.10_@types+react-dom@19.2.3_@types+react@19.2.17__@types+_d2514901a83655b2339c16df2b5b40ad/node_modules/@radix-ui/react-collection/dist/index.mjs
|
|
56425
56580
|
import { jsx as jsx124 } from "react/jsx-runtime";
|
|
56426
|
-
import * as
|
|
56581
|
+
import * as React210 from "react";
|
|
56427
56582
|
import { jsx as jsx210 } from "react/jsx-runtime";
|
|
56428
56583
|
function createCollection(name) {
|
|
56429
56584
|
const PROVIDER_NAME = name + "CollectionProvider";
|
|
@@ -56434,14 +56589,14 @@ function createCollection(name) {
|
|
|
56434
56589
|
);
|
|
56435
56590
|
const CollectionProvider = (props2) => {
|
|
56436
56591
|
const { scope, children } = props2;
|
|
56437
|
-
const ref =
|
|
56438
|
-
const itemMap =
|
|
56592
|
+
const ref = React29.useRef(null);
|
|
56593
|
+
const itemMap = React29.useRef(/* @__PURE__ */ new Map()).current;
|
|
56439
56594
|
return /* @__PURE__ */ jsx124(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });
|
|
56440
56595
|
};
|
|
56441
56596
|
CollectionProvider.displayName = PROVIDER_NAME;
|
|
56442
56597
|
const COLLECTION_SLOT_NAME = name + "CollectionSlot";
|
|
56443
56598
|
const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME);
|
|
56444
|
-
const CollectionSlot =
|
|
56599
|
+
const CollectionSlot = React29.forwardRef(
|
|
56445
56600
|
(props2, forwardedRef) => {
|
|
56446
56601
|
const { scope, children } = props2;
|
|
56447
56602
|
const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);
|
|
@@ -56453,13 +56608,13 @@ function createCollection(name) {
|
|
|
56453
56608
|
const ITEM_SLOT_NAME = name + "CollectionItemSlot";
|
|
56454
56609
|
const ITEM_DATA_ATTR = "data-radix-collection-item";
|
|
56455
56610
|
const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME);
|
|
56456
|
-
const CollectionItemSlot =
|
|
56611
|
+
const CollectionItemSlot = React29.forwardRef(
|
|
56457
56612
|
(props2, forwardedRef) => {
|
|
56458
56613
|
const { scope, children, ...itemData } = props2;
|
|
56459
|
-
const ref =
|
|
56614
|
+
const ref = React29.useRef(null);
|
|
56460
56615
|
const composedRefs = useComposedRefs(forwardedRef, ref);
|
|
56461
56616
|
const context = useCollectionContext(ITEM_SLOT_NAME, scope);
|
|
56462
|
-
|
|
56617
|
+
React29.useEffect(() => {
|
|
56463
56618
|
context.itemMap.set(ref, { ref, ...itemData });
|
|
56464
56619
|
return () => void context.itemMap.delete(ref);
|
|
56465
56620
|
});
|
|
@@ -56469,7 +56624,7 @@ function createCollection(name) {
|
|
|
56469
56624
|
CollectionItemSlot.displayName = ITEM_SLOT_NAME;
|
|
56470
56625
|
function useCollection2(scope) {
|
|
56471
56626
|
const context = useCollectionContext(name + "CollectionConsumer", scope);
|
|
56472
|
-
const getItems =
|
|
56627
|
+
const getItems = React29.useCallback(() => {
|
|
56473
56628
|
const collectionNode = context.collectionRef.current;
|
|
56474
56629
|
if (!collectionNode) return [];
|
|
56475
56630
|
const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));
|
|
@@ -56500,16 +56655,16 @@ function composeEventHandlers(originalEventHandler, ourEventHandler, { checkForD
|
|
|
56500
56655
|
}
|
|
56501
56656
|
|
|
56502
56657
|
// ../../node_modules/.pnpm/@radix-ui+react-use-controllable-state@1.2.3_@types+react@19.2.17_react@19.2.7/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs
|
|
56503
|
-
import * as
|
|
56658
|
+
import * as React31 from "react";
|
|
56504
56659
|
|
|
56505
56660
|
// ../../node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.1.2_@types+react@19.2.17_react@19.2.7/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs
|
|
56506
|
-
import * as
|
|
56507
|
-
var useLayoutEffect22 = globalThis?.document ?
|
|
56661
|
+
import * as React30 from "react";
|
|
56662
|
+
var useLayoutEffect22 = globalThis?.document ? React30.useLayoutEffect : () => {
|
|
56508
56663
|
};
|
|
56509
56664
|
|
|
56510
56665
|
// ../../node_modules/.pnpm/@radix-ui+react-use-controllable-state@1.2.3_@types+react@19.2.17_react@19.2.7/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs
|
|
56511
|
-
import * as
|
|
56512
|
-
var useInsertionEffect =
|
|
56666
|
+
import * as React211 from "react";
|
|
56667
|
+
var useInsertionEffect = React31[" useInsertionEffect ".trim().toString()] || useLayoutEffect22;
|
|
56513
56668
|
function useControllableState({
|
|
56514
56669
|
prop,
|
|
56515
56670
|
defaultProp,
|
|
@@ -56524,8 +56679,8 @@ function useControllableState({
|
|
|
56524
56679
|
const isControlled = prop !== void 0;
|
|
56525
56680
|
const value = isControlled ? prop : uncontrolledProp;
|
|
56526
56681
|
if (true) {
|
|
56527
|
-
const isControlledRef =
|
|
56528
|
-
|
|
56682
|
+
const isControlledRef = React31.useRef(prop !== void 0);
|
|
56683
|
+
React31.useEffect(() => {
|
|
56529
56684
|
const wasControlled = isControlledRef.current;
|
|
56530
56685
|
if (wasControlled !== isControlled) {
|
|
56531
56686
|
const from = wasControlled ? "controlled" : "uncontrolled";
|
|
@@ -56537,7 +56692,7 @@ function useControllableState({
|
|
|
56537
56692
|
isControlledRef.current = isControlled;
|
|
56538
56693
|
}, [isControlled, caller]);
|
|
56539
56694
|
}
|
|
56540
|
-
const setValue =
|
|
56695
|
+
const setValue = React31.useCallback(
|
|
56541
56696
|
(nextValue) => {
|
|
56542
56697
|
if (isControlled) {
|
|
56543
56698
|
const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;
|
|
@@ -56556,13 +56711,13 @@ function useUncontrolledState({
|
|
|
56556
56711
|
defaultProp,
|
|
56557
56712
|
onChange
|
|
56558
56713
|
}) {
|
|
56559
|
-
const [value, setValue] =
|
|
56560
|
-
const prevValueRef =
|
|
56561
|
-
const onChangeRef =
|
|
56714
|
+
const [value, setValue] = React31.useState(defaultProp);
|
|
56715
|
+
const prevValueRef = React31.useRef(value);
|
|
56716
|
+
const onChangeRef = React31.useRef(onChange);
|
|
56562
56717
|
useInsertionEffect(() => {
|
|
56563
56718
|
onChangeRef.current = onChange;
|
|
56564
56719
|
}, [onChange]);
|
|
56565
|
-
|
|
56720
|
+
React31.useEffect(() => {
|
|
56566
56721
|
if (prevValueRef.current !== value) {
|
|
56567
56722
|
onChangeRef.current?.(value);
|
|
56568
56723
|
prevValueRef.current = value;
|
|
@@ -56575,7 +56730,7 @@ function isFunction(value) {
|
|
|
56575
56730
|
}
|
|
56576
56731
|
|
|
56577
56732
|
// ../../node_modules/.pnpm/@radix-ui+react-primitive@2.1.6_@types+react-dom@19.2.3_@types+react@19.2.17__@types+re_2b211ae514f45e2eda250184528d6c49/node_modules/@radix-ui/react-primitive/dist/index.mjs
|
|
56578
|
-
import * as
|
|
56733
|
+
import * as React32 from "react";
|
|
56579
56734
|
import * as ReactDOM from "react-dom";
|
|
56580
56735
|
import { jsx as jsx125 } from "react/jsx-runtime";
|
|
56581
56736
|
var NODES = [
|
|
@@ -56599,7 +56754,7 @@ var NODES = [
|
|
|
56599
56754
|
];
|
|
56600
56755
|
var Primitive = NODES.reduce((primitive, node) => {
|
|
56601
56756
|
const Slot = createSlot(`Primitive.${node}`);
|
|
56602
|
-
const Node2 =
|
|
56757
|
+
const Node2 = React32.forwardRef((props2, forwardedRef) => {
|
|
56603
56758
|
const { asChild, ...primitiveProps } = props2;
|
|
56604
56759
|
const Comp = asChild ? Slot : node;
|
|
56605
56760
|
if (typeof window !== "undefined") {
|
|
@@ -56612,13 +56767,13 @@ var Primitive = NODES.reduce((primitive, node) => {
|
|
|
56612
56767
|
}, {});
|
|
56613
56768
|
|
|
56614
56769
|
// ../../node_modules/.pnpm/@radix-ui+react-collapsible@1.1.14_@types+react-dom@19.2.3_@types+react@19.2.17__@types_e92b6f0788ff52b38e85f3f44ff92ede/node_modules/@radix-ui/react-collapsible/dist/index.mjs
|
|
56615
|
-
import * as
|
|
56770
|
+
import * as React35 from "react";
|
|
56616
56771
|
|
|
56617
56772
|
// ../../node_modules/.pnpm/@radix-ui+react-presence@1.1.6_@types+react-dom@19.2.3_@types+react@19.2.17__@types+rea_dcd2172d161be68b0f7e3bfe31aff518/node_modules/@radix-ui/react-presence/dist/index.mjs
|
|
56618
|
-
import * as
|
|
56619
|
-
import * as
|
|
56773
|
+
import * as React212 from "react";
|
|
56774
|
+
import * as React33 from "react";
|
|
56620
56775
|
function useStateMachine(initialState, machine) {
|
|
56621
|
-
return
|
|
56776
|
+
return React33.useReducer((state, event) => {
|
|
56622
56777
|
const nextState = machine[state][event];
|
|
56623
56778
|
return nextState ?? state;
|
|
56624
56779
|
}, initialState);
|
|
@@ -56626,17 +56781,17 @@ function useStateMachine(initialState, machine) {
|
|
|
56626
56781
|
var Presence = (props2) => {
|
|
56627
56782
|
const { present, children } = props2;
|
|
56628
56783
|
const presence = usePresence(present);
|
|
56629
|
-
const child = typeof children === "function" ? children({ present: presence.isPresent }) :
|
|
56784
|
+
const child = typeof children === "function" ? children({ present: presence.isPresent }) : React212.Children.only(children);
|
|
56630
56785
|
const ref = useStableComposedRefs(presence.ref, getElementRef2(child));
|
|
56631
56786
|
const forceMount = typeof children === "function";
|
|
56632
|
-
return forceMount || presence.isPresent ?
|
|
56787
|
+
return forceMount || presence.isPresent ? React212.cloneElement(child, { ref }) : null;
|
|
56633
56788
|
};
|
|
56634
56789
|
Presence.displayName = "Presence";
|
|
56635
56790
|
function usePresence(present) {
|
|
56636
|
-
const [node, setNode] =
|
|
56637
|
-
const stylesRef =
|
|
56638
|
-
const prevPresentRef =
|
|
56639
|
-
const prevAnimationNameRef =
|
|
56791
|
+
const [node, setNode] = React212.useState();
|
|
56792
|
+
const stylesRef = React212.useRef(null);
|
|
56793
|
+
const prevPresentRef = React212.useRef(present);
|
|
56794
|
+
const prevAnimationNameRef = React212.useRef("none");
|
|
56640
56795
|
const initialState = present ? "mounted" : "unmounted";
|
|
56641
56796
|
const [state, send] = useStateMachine(initialState, {
|
|
56642
56797
|
mounted: {
|
|
@@ -56651,7 +56806,7 @@ function usePresence(present) {
|
|
|
56651
56806
|
MOUNT: "mounted"
|
|
56652
56807
|
}
|
|
56653
56808
|
});
|
|
56654
|
-
|
|
56809
|
+
React212.useEffect(() => {
|
|
56655
56810
|
const currentAnimationName = getAnimationName(stylesRef.current);
|
|
56656
56811
|
prevAnimationNameRef.current = state === "mounted" ? currentAnimationName : "none";
|
|
56657
56812
|
}, [state]);
|
|
@@ -56717,7 +56872,7 @@ function usePresence(present) {
|
|
|
56717
56872
|
}, [node, send]);
|
|
56718
56873
|
return {
|
|
56719
56874
|
isPresent: ["mounted", "unmountSuspended"].includes(state),
|
|
56720
|
-
ref:
|
|
56875
|
+
ref: React212.useCallback((node2) => {
|
|
56721
56876
|
stylesRef.current = node2 ? getComputedStyle(node2) : null;
|
|
56722
56877
|
setNode(node2);
|
|
56723
56878
|
}, [])
|
|
@@ -56731,9 +56886,9 @@ function setRef2(ref, value) {
|
|
|
56731
56886
|
}
|
|
56732
56887
|
}
|
|
56733
56888
|
function useStableComposedRefs(...refs) {
|
|
56734
|
-
const refsRef =
|
|
56889
|
+
const refsRef = React212.useRef(refs);
|
|
56735
56890
|
refsRef.current = refs;
|
|
56736
|
-
return
|
|
56891
|
+
return React212.useCallback((node) => {
|
|
56737
56892
|
const currentRefs = refsRef.current;
|
|
56738
56893
|
let hasCleanup = false;
|
|
56739
56894
|
const cleanups = currentRefs.map((ref) => {
|
|
@@ -56775,11 +56930,11 @@ function getElementRef2(element) {
|
|
|
56775
56930
|
}
|
|
56776
56931
|
|
|
56777
56932
|
// ../../node_modules/.pnpm/@radix-ui+react-id@1.1.2_@types+react@19.2.17_react@19.2.7/node_modules/@radix-ui/react-id/dist/index.mjs
|
|
56778
|
-
import * as
|
|
56779
|
-
var useReactId =
|
|
56933
|
+
import * as React34 from "react";
|
|
56934
|
+
var useReactId = React34[" useId ".trim().toString()] || (() => void 0);
|
|
56780
56935
|
var count = 0;
|
|
56781
56936
|
function useId3(deterministicId) {
|
|
56782
|
-
const [id, setId] =
|
|
56937
|
+
const [id, setId] = React34.useState(useReactId());
|
|
56783
56938
|
useLayoutEffect22(() => {
|
|
56784
56939
|
if (!deterministicId) setId((reactId) => reactId ?? String(count++));
|
|
56785
56940
|
}, [deterministicId]);
|
|
@@ -56791,7 +56946,7 @@ import { jsx as jsx126 } from "react/jsx-runtime";
|
|
|
56791
56946
|
var COLLAPSIBLE_NAME = "Collapsible";
|
|
56792
56947
|
var [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);
|
|
56793
56948
|
var [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);
|
|
56794
|
-
var Collapsible =
|
|
56949
|
+
var Collapsible = React35.forwardRef(
|
|
56795
56950
|
(props2, forwardedRef) => {
|
|
56796
56951
|
const {
|
|
56797
56952
|
__scopeCollapsible,
|
|
@@ -56814,7 +56969,7 @@ var Collapsible = React33.forwardRef(
|
|
|
56814
56969
|
disabled,
|
|
56815
56970
|
contentId: useId3(),
|
|
56816
56971
|
open,
|
|
56817
|
-
onOpenToggle:
|
|
56972
|
+
onOpenToggle: React35.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
|
|
56818
56973
|
children: /* @__PURE__ */ jsx126(
|
|
56819
56974
|
Primitive.div,
|
|
56820
56975
|
{
|
|
@@ -56830,7 +56985,7 @@ var Collapsible = React33.forwardRef(
|
|
|
56830
56985
|
);
|
|
56831
56986
|
Collapsible.displayName = COLLAPSIBLE_NAME;
|
|
56832
56987
|
var TRIGGER_NAME = "CollapsibleTrigger";
|
|
56833
|
-
var CollapsibleTrigger =
|
|
56988
|
+
var CollapsibleTrigger = React35.forwardRef(
|
|
56834
56989
|
(props2, forwardedRef) => {
|
|
56835
56990
|
const { __scopeCollapsible, ...triggerProps } = props2;
|
|
56836
56991
|
const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);
|
|
@@ -56852,7 +57007,7 @@ var CollapsibleTrigger = React33.forwardRef(
|
|
|
56852
57007
|
);
|
|
56853
57008
|
CollapsibleTrigger.displayName = TRIGGER_NAME;
|
|
56854
57009
|
var CONTENT_NAME = "CollapsibleContent";
|
|
56855
|
-
var CollapsibleContent =
|
|
57010
|
+
var CollapsibleContent = React35.forwardRef(
|
|
56856
57011
|
(props2, forwardedRef) => {
|
|
56857
57012
|
const { forceMount, ...contentProps } = props2;
|
|
56858
57013
|
const context = useCollapsibleContext(CONTENT_NAME, props2.__scopeCollapsible);
|
|
@@ -56860,20 +57015,20 @@ var CollapsibleContent = React33.forwardRef(
|
|
|
56860
57015
|
}
|
|
56861
57016
|
);
|
|
56862
57017
|
CollapsibleContent.displayName = CONTENT_NAME;
|
|
56863
|
-
var CollapsibleContentImpl =
|
|
57018
|
+
var CollapsibleContentImpl = React35.forwardRef((props2, forwardedRef) => {
|
|
56864
57019
|
const { __scopeCollapsible, present, children, ...contentProps } = props2;
|
|
56865
57020
|
const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);
|
|
56866
|
-
const [isPresent, setIsPresent] =
|
|
56867
|
-
const ref =
|
|
57021
|
+
const [isPresent, setIsPresent] = React35.useState(present);
|
|
57022
|
+
const ref = React35.useRef(null);
|
|
56868
57023
|
const composedRefs = useComposedRefs(forwardedRef, ref);
|
|
56869
|
-
const heightRef =
|
|
57024
|
+
const heightRef = React35.useRef(0);
|
|
56870
57025
|
const height = heightRef.current;
|
|
56871
|
-
const widthRef =
|
|
57026
|
+
const widthRef = React35.useRef(0);
|
|
56872
57027
|
const width = widthRef.current;
|
|
56873
57028
|
const isOpen = context.open || isPresent;
|
|
56874
|
-
const isMountAnimationPreventedRef =
|
|
56875
|
-
const originalStylesRef =
|
|
56876
|
-
|
|
57029
|
+
const isMountAnimationPreventedRef = React35.useRef(isOpen);
|
|
57030
|
+
const originalStylesRef = React35.useRef(void 0);
|
|
57031
|
+
React35.useEffect(() => {
|
|
56877
57032
|
const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);
|
|
56878
57033
|
return () => cancelAnimationFrame(rAF);
|
|
56879
57034
|
}, []);
|
|
@@ -56922,11 +57077,11 @@ var Trigger = CollapsibleTrigger;
|
|
|
56922
57077
|
var Content = CollapsibleContent;
|
|
56923
57078
|
|
|
56924
57079
|
// ../../node_modules/.pnpm/@radix-ui+react-direction@1.1.2_@types+react@19.2.17_react@19.2.7/node_modules/@radix-ui/react-direction/dist/index.mjs
|
|
56925
|
-
import * as
|
|
57080
|
+
import * as React36 from "react";
|
|
56926
57081
|
import { jsx as jsx127 } from "react/jsx-runtime";
|
|
56927
|
-
var DirectionContext =
|
|
57082
|
+
var DirectionContext = React36.createContext(void 0);
|
|
56928
57083
|
function useDirection(localDir) {
|
|
56929
|
-
const globalDir =
|
|
57084
|
+
const globalDir = React36.useContext(DirectionContext);
|
|
56930
57085
|
return localDir || globalDir || "ltr";
|
|
56931
57086
|
}
|
|
56932
57087
|
|
|
@@ -56940,7 +57095,7 @@ var [createAccordionContext, createAccordionScope] = createContextScope(ACCORDIO
|
|
|
56940
57095
|
createCollapsibleScope
|
|
56941
57096
|
]);
|
|
56942
57097
|
var useCollapsibleScope = createCollapsibleScope();
|
|
56943
|
-
var Accordion =
|
|
57098
|
+
var Accordion = React37.forwardRef(
|
|
56944
57099
|
(props2, forwardedRef) => {
|
|
56945
57100
|
const { type, ...accordionProps } = props2;
|
|
56946
57101
|
const singleProps = accordionProps;
|
|
@@ -56954,7 +57109,7 @@ var [AccordionCollapsibleProvider, useAccordionCollapsibleContext] = createAccor
|
|
|
56954
57109
|
ACCORDION_NAME,
|
|
56955
57110
|
{ collapsible: false }
|
|
56956
57111
|
);
|
|
56957
|
-
var AccordionImplSingle =
|
|
57112
|
+
var AccordionImplSingle = React37.forwardRef(
|
|
56958
57113
|
(props2, forwardedRef) => {
|
|
56959
57114
|
const {
|
|
56960
57115
|
value: valueProp,
|
|
@@ -56974,15 +57129,15 @@ var AccordionImplSingle = React35.forwardRef(
|
|
|
56974
57129
|
AccordionValueProvider,
|
|
56975
57130
|
{
|
|
56976
57131
|
scope: props2.__scopeAccordion,
|
|
56977
|
-
value:
|
|
57132
|
+
value: React37.useMemo(() => value ? [value] : [], [value]),
|
|
56978
57133
|
onItemOpen: setValue,
|
|
56979
|
-
onItemClose:
|
|
57134
|
+
onItemClose: React37.useCallback(() => collapsible && setValue(""), [collapsible, setValue]),
|
|
56980
57135
|
children: /* @__PURE__ */ jsx128(AccordionCollapsibleProvider, { scope: props2.__scopeAccordion, collapsible, children: /* @__PURE__ */ jsx128(AccordionImpl, { ...accordionSingleProps, ref: forwardedRef }) })
|
|
56981
57136
|
}
|
|
56982
57137
|
);
|
|
56983
57138
|
}
|
|
56984
57139
|
);
|
|
56985
|
-
var AccordionImplMultiple =
|
|
57140
|
+
var AccordionImplMultiple = React37.forwardRef((props2, forwardedRef) => {
|
|
56986
57141
|
const {
|
|
56987
57142
|
value: valueProp,
|
|
56988
57143
|
defaultValue,
|
|
@@ -56996,11 +57151,11 @@ var AccordionImplMultiple = React35.forwardRef((props2, forwardedRef) => {
|
|
|
56996
57151
|
onChange: onValueChange,
|
|
56997
57152
|
caller: ACCORDION_NAME
|
|
56998
57153
|
});
|
|
56999
|
-
const handleItemOpen =
|
|
57154
|
+
const handleItemOpen = React37.useCallback(
|
|
57000
57155
|
(itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),
|
|
57001
57156
|
[setValue]
|
|
57002
57157
|
);
|
|
57003
|
-
const handleItemClose =
|
|
57158
|
+
const handleItemClose = React37.useCallback(
|
|
57004
57159
|
(itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),
|
|
57005
57160
|
[setValue]
|
|
57006
57161
|
);
|
|
@@ -57016,10 +57171,10 @@ var AccordionImplMultiple = React35.forwardRef((props2, forwardedRef) => {
|
|
|
57016
57171
|
);
|
|
57017
57172
|
});
|
|
57018
57173
|
var [AccordionImplProvider, useAccordionContext] = createAccordionContext(ACCORDION_NAME);
|
|
57019
|
-
var AccordionImpl =
|
|
57174
|
+
var AccordionImpl = React37.forwardRef(
|
|
57020
57175
|
(props2, forwardedRef) => {
|
|
57021
57176
|
const { __scopeAccordion, disabled, dir, orientation = "vertical", ...accordionProps } = props2;
|
|
57022
|
-
const accordionRef =
|
|
57177
|
+
const accordionRef = React37.useRef(null);
|
|
57023
57178
|
const composedRefs = useComposedRefs(accordionRef, forwardedRef);
|
|
57024
57179
|
const getItems = useCollection(__scopeAccordion);
|
|
57025
57180
|
const direction = useDirection(dir);
|
|
@@ -57108,7 +57263,7 @@ var AccordionImpl = React35.forwardRef(
|
|
|
57108
57263
|
);
|
|
57109
57264
|
var ITEM_NAME = "AccordionItem";
|
|
57110
57265
|
var [AccordionItemProvider, useAccordionItemContext] = createAccordionContext(ITEM_NAME);
|
|
57111
|
-
var AccordionItem =
|
|
57266
|
+
var AccordionItem = React37.forwardRef(
|
|
57112
57267
|
(props2, forwardedRef) => {
|
|
57113
57268
|
const { __scopeAccordion, value, ...accordionItemProps } = props2;
|
|
57114
57269
|
const accordionContext = useAccordionContext(ITEM_NAME, __scopeAccordion);
|
|
@@ -57149,7 +57304,7 @@ var AccordionItem = React35.forwardRef(
|
|
|
57149
57304
|
);
|
|
57150
57305
|
AccordionItem.displayName = ITEM_NAME;
|
|
57151
57306
|
var HEADER_NAME = "AccordionHeader";
|
|
57152
|
-
var AccordionHeader =
|
|
57307
|
+
var AccordionHeader = React37.forwardRef(
|
|
57153
57308
|
(props2, forwardedRef) => {
|
|
57154
57309
|
const { __scopeAccordion, ...headerProps } = props2;
|
|
57155
57310
|
const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);
|
|
@@ -57168,7 +57323,7 @@ var AccordionHeader = React35.forwardRef(
|
|
|
57168
57323
|
);
|
|
57169
57324
|
AccordionHeader.displayName = HEADER_NAME;
|
|
57170
57325
|
var TRIGGER_NAME2 = "AccordionTrigger";
|
|
57171
|
-
var AccordionTrigger =
|
|
57326
|
+
var AccordionTrigger = React37.forwardRef(
|
|
57172
57327
|
(props2, forwardedRef) => {
|
|
57173
57328
|
const { __scopeAccordion, ...triggerProps } = props2;
|
|
57174
57329
|
const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);
|
|
@@ -57190,7 +57345,7 @@ var AccordionTrigger = React35.forwardRef(
|
|
|
57190
57345
|
);
|
|
57191
57346
|
AccordionTrigger.displayName = TRIGGER_NAME2;
|
|
57192
57347
|
var CONTENT_NAME2 = "AccordionContent";
|
|
57193
|
-
var AccordionContent =
|
|
57348
|
+
var AccordionContent = React37.forwardRef(
|
|
57194
57349
|
(props2, forwardedRef) => {
|
|
57195
57350
|
const { __scopeAccordion, ...contentProps } = props2;
|
|
57196
57351
|
const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);
|
|
@@ -57225,14 +57380,14 @@ var Trigger2 = AccordionTrigger;
|
|
|
57225
57380
|
var Content2 = AccordionContent;
|
|
57226
57381
|
|
|
57227
57382
|
// ../blocks/src/system/runtime/shared/accordionPrimitives.tsx
|
|
57228
|
-
import * as
|
|
57383
|
+
import * as React38 from "react";
|
|
57229
57384
|
import { jsx as jsx129 } from "react/jsx-runtime";
|
|
57230
57385
|
var Accordion2 = Root2;
|
|
57231
|
-
var AccordionItem2 =
|
|
57386
|
+
var AccordionItem2 = React38.forwardRef(({ className, ...props2 }, ref) => /* @__PURE__ */ jsx129(Item, { ref, className, ...props2 }));
|
|
57232
57387
|
AccordionItem2.displayName = "AccordionItem";
|
|
57233
|
-
var AccordionTrigger2 =
|
|
57388
|
+
var AccordionTrigger2 = React38.forwardRef(({ className, children, ...props2 }, ref) => /* @__PURE__ */ jsx129(Header, { className: "accordion-header", children: /* @__PURE__ */ jsx129(Trigger2, { ref, className, ...props2, children }) }));
|
|
57234
57389
|
AccordionTrigger2.displayName = "AccordionTrigger";
|
|
57235
|
-
var AccordionContent2 =
|
|
57390
|
+
var AccordionContent2 = React38.forwardRef(({ className, children, ...props2 }, ref) => /* @__PURE__ */ jsx129(
|
|
57236
57391
|
Content2,
|
|
57237
57392
|
{
|
|
57238
57393
|
ref,
|
|
@@ -57248,7 +57403,7 @@ AccordionContent2.displayName = "AccordionContent";
|
|
|
57248
57403
|
init_clsx();
|
|
57249
57404
|
init_lucide_react();
|
|
57250
57405
|
init_RichText();
|
|
57251
|
-
import
|
|
57406
|
+
import React39 from "react";
|
|
57252
57407
|
init_richText_coerce();
|
|
57253
57408
|
init_types6();
|
|
57254
57409
|
import { jsx as jsx130, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
@@ -57318,7 +57473,7 @@ var AccordionItemNode = ({
|
|
|
57318
57473
|
pathBase: _pathBase,
|
|
57319
57474
|
...rest
|
|
57320
57475
|
}) => {
|
|
57321
|
-
const generatedId =
|
|
57476
|
+
const generatedId = React39.useId();
|
|
57322
57477
|
const resolvedValue = value !== void 0 && value !== null ? String(value) : generatedId;
|
|
57323
57478
|
const triggerSource = trigger ?? question;
|
|
57324
57479
|
const contentSource = content ?? answer;
|
|
@@ -57547,7 +57702,7 @@ init_api();
|
|
|
57547
57702
|
|
|
57548
57703
|
// ../blocks/src/system/runtime/nodes/weekly-slot-availability.client.controller.ts
|
|
57549
57704
|
init_date_formatting();
|
|
57550
|
-
import * as
|
|
57705
|
+
import * as React53 from "react";
|
|
57551
57706
|
|
|
57552
57707
|
// ../blocks/src/system/runtime/nodes/weekly-slot-availability.client.state.ts
|
|
57553
57708
|
function normalizeWeeklySlotAvailabilityHorizonWeeks(value) {
|
|
@@ -57573,14 +57728,14 @@ function useWeeklySlotAvailabilityLoadState(api, input) {
|
|
|
57573
57728
|
const canUseInitialAvailability = Boolean(
|
|
57574
57729
|
initialAvailability && hasExplicitTimezone
|
|
57575
57730
|
);
|
|
57576
|
-
const [availability, setAvailability] =
|
|
57731
|
+
const [availability, setAvailability] = React53.useState(
|
|
57577
57732
|
initialAvailability ?? null
|
|
57578
57733
|
);
|
|
57579
|
-
const [loading, setLoading] =
|
|
57734
|
+
const [loading, setLoading] = React53.useState(
|
|
57580
57735
|
() => Boolean(serviceId) && !initialAvailability
|
|
57581
57736
|
);
|
|
57582
|
-
const [error, setError] =
|
|
57583
|
-
|
|
57737
|
+
const [error, setError] = React53.useState(null);
|
|
57738
|
+
React53.useEffect(() => {
|
|
57584
57739
|
if (!serviceId) {
|
|
57585
57740
|
setAvailability(null);
|
|
57586
57741
|
setLoading(false);
|
|
@@ -57753,7 +57908,7 @@ function defineRuntimeBackedBlockClientEntry(kind, client) {
|
|
|
57753
57908
|
const NormalizedClient = (props2) => {
|
|
57754
57909
|
const ClientComponent = client;
|
|
57755
57910
|
const normalizedProps = normalizeLegacyInteractiveRenderProps(serverEntry.definition.runtime, mode, props2);
|
|
57756
|
-
return
|
|
57911
|
+
return React54.createElement(ClientComponent, normalizedProps);
|
|
57757
57912
|
};
|
|
57758
57913
|
NormalizedClient.displayName = `RuntimeBackedBlockClient(${kind})`;
|
|
57759
57914
|
return {
|
|
@@ -57838,6 +57993,7 @@ init_resolver();
|
|
|
57838
57993
|
init_types14();
|
|
57839
57994
|
init_expandPalette();
|
|
57840
57995
|
init_colorConversion();
|
|
57996
|
+
init_generateBaseCSS();
|
|
57841
57997
|
init_generateEffectsCSS();
|
|
57842
57998
|
|
|
57843
57999
|
// ../theme-core/src/navigation/presets.ts
|
|
@@ -58013,6 +58169,12 @@ function svgDataUrl(svg) {
|
|
|
58013
58169
|
return `data:image/svg+xml,${encodeURIComponent(svg)}`;
|
|
58014
58170
|
}
|
|
58015
58171
|
|
|
58172
|
+
// ../theme-core/src/status/generateStatusCss.ts
|
|
58173
|
+
init_contextualColors();
|
|
58174
|
+
|
|
58175
|
+
// ../theme-core/src/status/index.ts
|
|
58176
|
+
init_contextualColors();
|
|
58177
|
+
|
|
58016
58178
|
// ../theme-core/src/runtime/buildThemeRuntime.ts
|
|
58017
58179
|
init_tokens2();
|
|
58018
58180
|
|
|
@@ -58088,6 +58250,34 @@ ${root} {
|
|
|
58088
58250
|
/* Order summary */
|
|
58089
58251
|
--er-summary-bg: rgba(var(--tb-primary), 0.1);
|
|
58090
58252
|
--er-summary-border: rgb(var(--tb-border));
|
|
58253
|
+
|
|
58254
|
+
/* Shared registration-surface mappings (issue 1174).
|
|
58255
|
+
Route the shared --rb-reg-* contract through this block's documented
|
|
58256
|
+
Tier 3 vars so existing --er-* overrides keep working unchanged. */
|
|
58257
|
+
--rb-reg-radius: var(--er-radius);
|
|
58258
|
+
--rb-reg-border: var(--er-border);
|
|
58259
|
+
--rb-reg-border-hover: var(--er-border-hover);
|
|
58260
|
+
--rb-reg-border-selected: var(--er-border-selected);
|
|
58261
|
+
--rb-reg-bg-selected: var(--er-payment-bg-selected);
|
|
58262
|
+
--rb-reg-option-bg: var(--er-control-bg);
|
|
58263
|
+
--rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
|
|
58264
|
+
--rb-reg-surface-bg: rgb(var(--tb-surface));
|
|
58265
|
+
--rb-reg-on-surface: var(--er-on-surface);
|
|
58266
|
+
--rb-reg-on-surface-muted: var(--er-on-surface-muted);
|
|
58267
|
+
--rb-reg-on-surface-subtle: var(--er-on-surface-subtle);
|
|
58268
|
+
--rb-reg-on-surface-faint: var(--er-on-surface-faint);
|
|
58269
|
+
--rb-reg-check-bg: var(--er-check-bg);
|
|
58270
|
+
--rb-reg-check-text: var(--er-check-text);
|
|
58271
|
+
--rb-reg-step-active: var(--er-step-active);
|
|
58272
|
+
--rb-reg-step-completed: var(--er-step-completed);
|
|
58273
|
+
--rb-reg-step-inactive: var(--er-step-inactive);
|
|
58274
|
+
--rb-reg-step-text: var(--er-step-text);
|
|
58275
|
+
--rb-reg-step-text-active: var(--er-step-text-active);
|
|
58276
|
+
--rb-reg-step-connector: var(--er-step-connector);
|
|
58277
|
+
--rb-reg-summary-bg: var(--er-surface-muted);
|
|
58278
|
+
--rb-reg-summary-border: var(--er-border);
|
|
58279
|
+
--rb-reg-focus-ring: var(--er-focus-ring);
|
|
58280
|
+
--rb-reg-shell-line: var(--er-shell-line);
|
|
58091
58281
|
}
|
|
58092
58282
|
`;
|
|
58093
58283
|
}
|
|
@@ -58220,25 +58410,40 @@ ${root} {
|
|
|
58220
58410
|
--ab-info-bg: rgba(var(--tb-info), 0.1);
|
|
58221
58411
|
--ab-info-text: rgb(var(--tb-info));
|
|
58222
58412
|
|
|
58223
|
-
/*
|
|
58413
|
+
/* Muted summary state */
|
|
58224
58414
|
--ab-muted-bg: rgba(var(--tb-text), 0.05);
|
|
58225
|
-
--ab-muted-text: rgba(var(--tb-text), 0.6);
|
|
58226
|
-
--ab-spinner-color: rgb(var(--tb-primary));
|
|
58227
58415
|
|
|
58228
|
-
/*
|
|
58229
|
-
--ab-input-border: rgb(var(--tb-border));
|
|
58416
|
+
/* Focus ring used by shared registration-surface controls */
|
|
58230
58417
|
--ab-input-focus-ring: rgba(var(--tb-primary), 0.3);
|
|
58231
58418
|
|
|
58232
|
-
/*
|
|
58233
|
-
|
|
58234
|
-
|
|
58235
|
-
|
|
58236
|
-
--
|
|
58237
|
-
--
|
|
58238
|
-
|
|
58239
|
-
|
|
58240
|
-
--
|
|
58241
|
-
--
|
|
58419
|
+
/* Shared registration-surface mappings (issue 1174).
|
|
58420
|
+
Route the shared --rb-reg-* contract through this block's Tier 3 vars
|
|
58421
|
+
(palette tokens where no --ab-* var exists) so --ab-* overrides keep
|
|
58422
|
+
working as the block adopts the shared classes. */
|
|
58423
|
+
--rb-reg-radius: var(--ab-card-radius, var(--rb-block-radius));
|
|
58424
|
+
--rb-reg-border: var(--ab-card-border);
|
|
58425
|
+
--rb-reg-border-hover: var(--ab-card-border-hover);
|
|
58426
|
+
--rb-reg-border-selected: var(--ab-card-border-selected);
|
|
58427
|
+
--rb-reg-bg-selected: var(--ab-card-bg-selected);
|
|
58428
|
+
--rb-reg-option-bg: transparent;
|
|
58429
|
+
--rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
|
|
58430
|
+
--rb-reg-surface-bg: rgb(var(--tb-surface));
|
|
58431
|
+
--rb-reg-on-surface: rgb(var(--tb-onSurface, var(--tb-text)));
|
|
58432
|
+
--rb-reg-on-surface-muted: rgba(var(--tb-onSurface, var(--tb-text)), 0.7);
|
|
58433
|
+
--rb-reg-on-surface-subtle: rgba(var(--tb-onSurface, var(--tb-text)), 0.6);
|
|
58434
|
+
--rb-reg-on-surface-faint: rgba(var(--tb-onSurface, var(--tb-text)), 0.5);
|
|
58435
|
+
--rb-reg-check-bg: var(--ab-check-bg);
|
|
58436
|
+
--rb-reg-check-text: var(--ab-check-text);
|
|
58437
|
+
--rb-reg-step-active: rgb(var(--tb-primary));
|
|
58438
|
+
--rb-reg-step-completed: rgb(var(--tb-success));
|
|
58439
|
+
--rb-reg-step-inactive: rgb(var(--tb-mutedText));
|
|
58440
|
+
--rb-reg-step-text: rgb(255 255 255);
|
|
58441
|
+
--rb-reg-step-text-active: rgb(var(--tb-primaryText, 255 255 255));
|
|
58442
|
+
--rb-reg-step-connector: rgba(var(--tb-border), 0.5);
|
|
58443
|
+
--rb-reg-summary-bg: var(--ab-muted-bg);
|
|
58444
|
+
--rb-reg-summary-border: var(--ab-card-border);
|
|
58445
|
+
--rb-reg-focus-ring: var(--ab-input-focus-ring);
|
|
58446
|
+
--rb-reg-shell-line: rgba(var(--tb-mutedText, 100 116 139), 0.22);
|
|
58242
58447
|
}
|
|
58243
58448
|
`;
|
|
58244
58449
|
}
|
|
@@ -58530,6 +58735,35 @@ ${root} {
|
|
|
58530
58735
|
/* Summary */
|
|
58531
58736
|
--cr-summary-bg: rgba(var(--tb-primary), 0.1);
|
|
58532
58737
|
--cr-summary-border: rgb(var(--tb-border));
|
|
58738
|
+
|
|
58739
|
+
/* Shared registration-surface mappings (issue 1174).
|
|
58740
|
+
Route the shared --rb-reg-* contract through this block's Tier 3 vars
|
|
58741
|
+
(palette tokens where no --cr-* var exists) so existing --cr-* overrides
|
|
58742
|
+
keep working unchanged. */
|
|
58743
|
+
--rb-reg-radius: var(--rb-block-radius);
|
|
58744
|
+
--rb-reg-border: var(--cr-border);
|
|
58745
|
+
--rb-reg-border-hover: var(--cr-border-hover);
|
|
58746
|
+
--rb-reg-border-selected: var(--cr-border-selected);
|
|
58747
|
+
--rb-reg-bg-selected: var(--cr-payment-bg-selected);
|
|
58748
|
+
--rb-reg-option-bg: rgb(var(--tb-background));
|
|
58749
|
+
--rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
|
|
58750
|
+
--rb-reg-surface-bg: rgb(var(--tb-surface));
|
|
58751
|
+
--rb-reg-on-surface: var(--cr-on-surface);
|
|
58752
|
+
--rb-reg-on-surface-muted: rgba(var(--tb-onSurface, var(--tb-text)), 0.7);
|
|
58753
|
+
--rb-reg-on-surface-subtle: rgba(var(--tb-onSurface, var(--tb-text)), 0.6);
|
|
58754
|
+
--rb-reg-on-surface-faint: rgba(var(--tb-onSurface, var(--tb-text)), 0.5);
|
|
58755
|
+
--rb-reg-check-bg: var(--cr-check-bg);
|
|
58756
|
+
--rb-reg-check-text: var(--cr-check-text);
|
|
58757
|
+
--rb-reg-step-active: var(--cr-step-active);
|
|
58758
|
+
--rb-reg-step-completed: var(--cr-step-completed);
|
|
58759
|
+
--rb-reg-step-inactive: var(--cr-step-inactive);
|
|
58760
|
+
--rb-reg-step-text: var(--cr-step-text);
|
|
58761
|
+
--rb-reg-step-text-active: var(--cr-step-text-active);
|
|
58762
|
+
--rb-reg-step-connector: var(--cr-step-connector);
|
|
58763
|
+
--rb-reg-summary-bg: var(--cr-summary-bg);
|
|
58764
|
+
--rb-reg-summary-border: var(--cr-summary-border);
|
|
58765
|
+
--rb-reg-focus-ring: var(--cr-focus-ring);
|
|
58766
|
+
--rb-reg-shell-line: rgba(var(--tb-mutedText, 100 116 139), 0.22);
|
|
58533
58767
|
}
|
|
58534
58768
|
`;
|
|
58535
58769
|
}
|