@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.
Files changed (120) hide show
  1. package/dist/{PreviewEditorSidebar-CG3SSJND.mjs → PreviewEditorSidebar-TPOKCCKY.mjs} +3 -3
  2. package/dist/{PreviewEditorUI-RHNGKAAU.mjs → PreviewEditorUI-Y347GLC2.mjs} +3 -3
  3. package/dist/SdkPreviewModeRuntime-OGTXRQ4M.mjs +8 -0
  4. package/dist/_dts/ai/src/contracts/proposals.d.ts +36 -36
  5. package/dist/_dts/api/src/billing.d.ts +2 -0
  6. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +5 -1
  7. package/dist/_dts/api/src/endpoints.d.ts +8 -0
  8. package/dist/_dts/api/src/index.d.ts +1 -1
  9. package/dist/_dts/api/src/siteOperations.d.ts +65 -1
  10. package/dist/_dts/billing/src/site-arrangements.d.ts +151 -0
  11. package/dist/_dts/billing/src/subscriptions/store.d.ts +2 -0
  12. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/resolveThumbnail.d.ts +2 -1
  13. package/dist/_dts/blocks/src/PageRenderer.d.ts +6 -0
  14. package/dist/_dts/blocks/src/system/runtime/components/booking/DatePicker.d.ts +6 -2
  15. package/dist/_dts/blocks/src/system/runtime/components/booking/SuccessMessage.d.ts +3 -1
  16. package/dist/_dts/blocks/src/system/runtime/components/booking/TimeSlotSelector.d.ts +10 -4
  17. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +2 -2
  18. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +11 -0
  19. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/StepIndicator.d.ts +3 -1
  20. package/dist/_dts/blocks/src/system/runtime/shared/components/FeedbackMessage.d.ts +2 -1
  21. package/dist/_dts/blocks/src/system/runtime/{nodes/event-registration → shared/components}/SelectableOptionCard.d.ts +11 -2
  22. package/dist/_dts/blocks/src/system/runtime/shared/components/StepIndicator.d.ts +16 -5
  23. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
  24. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
  25. package/dist/_dts/blocks/src/utils/date-formatting.d.ts +17 -1
  26. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +274 -30
  27. package/dist/_dts/sdk/src/__mocks__/next-cache.d.ts +1 -1
  28. package/dist/_dts/sdk/src/cli/commands/push.d.ts +13 -0
  29. package/dist/_dts/sdk/src/cli/merge-remote/entryMergeReport.d.ts +6 -18
  30. package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +2 -4
  31. package/dist/_dts/sdk/src/cli/merge-remote/pageMergeReport.d.ts +6 -18
  32. package/dist/_dts/sdk/src/cli/merge-remote/pageSnapshots.d.ts +2 -4
  33. package/dist/_dts/sdk/src/cli/merge-remote/sharedBaseSnapshots.d.ts +32 -0
  34. package/dist/_dts/sdk/src/cli/merge-remote/sharedMergePlan.d.ts +27 -0
  35. package/dist/_dts/sdk/src/cli/merge-remote/sharedMergeReport.d.ts +63 -0
  36. package/dist/_dts/sdk/src/client/index.d.ts +6 -0
  37. package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +6 -1
  38. package/dist/_dts/sdk/src/next/types.d.ts +19 -0
  39. package/dist/_dts/sdk/src/prebuild/loader.d.ts +8 -1
  40. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -0
  41. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -0
  42. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +6 -0
  43. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +8 -0
  44. package/dist/_dts/sdk/src/rendering/index.d.ts +7 -7
  45. package/dist/_dts/sdk/src/rendering/overrides.d.ts +2 -0
  46. package/dist/_dts/sdk/src/routing/resolveRoute.d.ts +18 -0
  47. package/dist/_dts/sdk/src/test/apiClient.d.ts +17 -0
  48. package/dist/_dts/sdk/src/test/bunDom.setup.d.ts +1 -0
  49. package/dist/_dts/sdk/src/test/env.d.ts +4 -0
  50. package/dist/_dts/sdk/src/version.d.ts +1 -1
  51. package/dist/_dts/site-commands/src/commands.d.ts +3 -3
  52. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  53. package/dist/_dts/theme-core/src/interactive/generateBaseCSS.d.ts +6 -0
  54. package/dist/_dts/theme-core/src/status/contextualColors.d.ts +6 -0
  55. package/dist/_dts/theme-core/src/status/index.d.ts +1 -0
  56. package/dist/{chunk-H24OU7WG.mjs → chunk-4HXF2QLH.mjs} +2 -2
  57. package/dist/{chunk-QPXE2OUZ.mjs → chunk-EMJIT3ZJ.mjs} +1 -1
  58. package/dist/{chunk-PKDPQHB5.mjs → chunk-PM7HGDHM.mjs} +2 -2
  59. package/dist/{chunk-DBRI3PQF.mjs → chunk-XO34WBBP.mjs} +1383 -1143
  60. package/dist/{chunk-6WDBXCPX.mjs → chunk-YGTTEVUM.mjs} +7 -7
  61. package/dist/{chunk-V2BYFSPW.mjs → chunk-YWTCCOSF.mjs} +8 -0
  62. package/dist/cli/index.mjs +1010 -921
  63. package/dist/client/{accordion-Q2BDNL53.mjs → accordion-QSUEYL4L.mjs} +2 -2
  64. package/dist/client/{bookingForm-ZMP4P7EK.mjs → bookingForm-QYGAHPDP.mjs} +364 -300
  65. package/dist/client/bookings.mjs +697 -411
  66. package/dist/client/{carousel-LW3UXPWO.mjs → carousel-SM2LEWAU.mjs} +3 -3
  67. package/dist/client/{cart-Z6D3KS6K.mjs → cart-3N3SFKNQ.mjs} +7 -7
  68. package/dist/client/{checkout-YMT2QJQM.mjs → checkout-YFAYPKPZ.mjs} +7 -7
  69. package/dist/client/{chunk-XNTHVZ25.mjs → chunk-5DLGREUB.mjs} +1 -1
  70. package/dist/client/{chunk-SK2BMD22.mjs → chunk-CLZ7NBSP.mjs} +147 -75
  71. package/dist/client/{chunk-R4XK3CKR.mjs → chunk-CYJ3MUFP.mjs} +6 -5
  72. package/dist/client/{chunk-JNE6UI6U.mjs → chunk-H3H3ODO7.mjs} +1 -1
  73. package/dist/client/{chunk-IEOECM7U.mjs → chunk-HPEQ4YWW.mjs} +28 -73
  74. package/dist/client/{chunk-PCHACQEB.mjs → chunk-IIUIKJ4K.mjs} +15 -7
  75. package/dist/client/{chunk-KDP7ZRZV.mjs → chunk-IOAHWAQG.mjs} +2 -0
  76. package/dist/client/{chunk-26ZBRXFR.mjs → chunk-JTKBF3W2.mjs} +3 -3
  77. package/dist/client/{chunk-OLAOAZEO.mjs → chunk-K7KTSACR.mjs} +1 -1
  78. package/dist/client/{chunk-ET2MDQQT.mjs → chunk-R32M5HFS.mjs} +6 -6
  79. package/dist/client/{chunk-DRRQ7QSL.mjs → chunk-WEVT46PX.mjs} +3 -3
  80. package/dist/client/{chunk-HBQEAOG4.mjs → chunk-ZU65LTI3.mjs} +1 -1
  81. package/dist/client/client.mjs +1875 -1581
  82. package/dist/client/{courseRegistration-DGKCMC77.mjs → courseRegistration-LYBE7VVK.mjs} +7 -7
  83. package/dist/client/{eventCalendar-74Z2NNFM.mjs → eventCalendar-FMTB75X6.mjs} +9 -9
  84. package/dist/client/{eventCombined-GK2ODOX2.mjs → eventCombined-E4LUCJXT.mjs} +9 -9
  85. package/dist/client/{eventDetails-MONAGT3N.mjs → eventDetails-GELSRR4Z.mjs} +9 -9
  86. package/dist/client/{eventListing-SKGAO6PS.mjs → eventListing-TB623B6R.mjs} +9 -9
  87. package/dist/client/{eventRegistration-6KISGXRD.mjs → eventRegistration-NRIKHXTI.mjs} +9 -9
  88. package/dist/client/{form-FXPRTXHI.mjs → form-Y4U4IAXE.mjs} +3 -3
  89. package/dist/client/{headerSection-7NAN5WNB.mjs → headerSection-QSOVV5P7.mjs} +3 -3
  90. package/dist/client/hooks.mjs +115 -21
  91. package/dist/client/{locationMap-UERN74U4.mjs → locationMap-QYCAHH7H.mjs} +3 -3
  92. package/dist/client/{newsletterForm-SGWXMJ7U.mjs → newsletterForm-NWHY5TBY.mjs} +3 -3
  93. package/dist/client/{productDetail-HN3HWZQZ.mjs → productDetail-FYDMU2CE.mjs} +7 -7
  94. package/dist/client/{productList-YT22Z5UR.mjs → productList-D76CGACQ.mjs} +7 -7
  95. package/dist/client/rendering/client.mjs +1209 -975
  96. package/dist/client/rendering/islands.mjs +19 -19
  97. package/dist/client/rendering.mjs +1952 -1638
  98. package/dist/client/{shop-TKEDNWUS.mjs → shop-SOUACT5N.mjs} +7 -7
  99. package/dist/preview-next/before-render.mjs +8 -0
  100. package/dist/preview-next/client/runtime.mjs +5 -5
  101. package/dist/preview-next/middleware.mjs +8 -0
  102. package/dist/{sdk-runtime-LWNYCQF2.mjs → sdk-runtime-XPVE3LBA.mjs} +6 -6
  103. package/dist/server/components.mjs +917 -765
  104. package/dist/server/config-validation.mjs +100 -19
  105. package/dist/server/config.mjs +100 -19
  106. package/dist/server/data.mjs +115 -21
  107. package/dist/server/index.mjs +59 -25
  108. package/dist/server/next.mjs +1017 -816
  109. package/dist/server/page-converter.mjs +92 -19
  110. package/dist/server/prebuild-loader.mjs +42 -23
  111. package/dist/server/prebuild.mjs +1 -1
  112. package/dist/server/rendering/server.mjs +932 -767
  113. package/dist/server/rendering.mjs +968 -776
  114. package/dist/server/routing.mjs +162 -36
  115. package/dist/server/server.mjs +156 -32
  116. package/dist/server/theme-bridge.mjs +597 -505
  117. package/dist/server/theme.mjs +5 -4
  118. package/dist/styles/index.css +499 -490
  119. package/package.json +6 -4
  120. package/dist/SdkPreviewModeRuntime-OV5PNJBB.mjs +0 -8
@@ -1,8 +1,8 @@
1
- import { normalizeCarouselProps, CarouselNodeClient } from './chunk-JNE6UI6U.mjs';
1
+ import { normalizeCarouselProps, CarouselNodeClient } from './chunk-H3H3ODO7.mjs';
2
2
  import './chunk-6N7YRNYU.mjs';
3
3
  import { mountReactIsland } from './chunk-N7PBWBWQ.mjs';
4
- import { defineIslandPropsDecoder } from './chunk-R4XK3CKR.mjs';
5
- import './chunk-PCHACQEB.mjs';
4
+ import { defineIslandPropsDecoder } from './chunk-CYJ3MUFP.mjs';
5
+ import './chunk-IIUIKJ4K.mjs';
6
6
  import { jsx } from 'react/jsx-runtime';
7
7
 
8
8
  var decode = defineIslandPropsDecoder("carousel");
@@ -1,15 +1,15 @@
1
- import { mountShopBlockIsland, CartClient } from './chunk-ET2MDQQT.mjs';
2
- import './chunk-HBQEAOG4.mjs';
3
- import './chunk-JNE6UI6U.mjs';
1
+ import { mountShopBlockIsland, CartClient } from './chunk-R32M5HFS.mjs';
2
+ import './chunk-ZU65LTI3.mjs';
3
+ import './chunk-H3H3ODO7.mjs';
4
4
  import './chunk-6N7YRNYU.mjs';
5
5
  import './chunk-L4J5Y62O.mjs';
6
- import './chunk-SK2BMD22.mjs';
6
+ import './chunk-CLZ7NBSP.mjs';
7
7
  import './chunk-3DCJ45Z2.mjs';
8
8
  import './chunk-WBQG7VJA.mjs';
9
- import './chunk-KDP7ZRZV.mjs';
9
+ import './chunk-IOAHWAQG.mjs';
10
10
  import './chunk-N7PBWBWQ.mjs';
11
- import { defineIslandPropsDecoder } from './chunk-R4XK3CKR.mjs';
12
- import './chunk-PCHACQEB.mjs';
11
+ import { defineIslandPropsDecoder } from './chunk-CYJ3MUFP.mjs';
12
+ import './chunk-IIUIKJ4K.mjs';
13
13
 
14
14
  // src/rendering/islands/enhancers/cart.tsx
15
15
  var decode = defineIslandPropsDecoder("cart");
@@ -1,15 +1,15 @@
1
- import { mountShopBlockIsland, CheckoutClient } from './chunk-ET2MDQQT.mjs';
2
- import './chunk-HBQEAOG4.mjs';
3
- import './chunk-JNE6UI6U.mjs';
1
+ import { mountShopBlockIsland, CheckoutClient } from './chunk-R32M5HFS.mjs';
2
+ import './chunk-ZU65LTI3.mjs';
3
+ import './chunk-H3H3ODO7.mjs';
4
4
  import './chunk-6N7YRNYU.mjs';
5
5
  import './chunk-L4J5Y62O.mjs';
6
- import './chunk-SK2BMD22.mjs';
6
+ import './chunk-CLZ7NBSP.mjs';
7
7
  import './chunk-3DCJ45Z2.mjs';
8
8
  import './chunk-WBQG7VJA.mjs';
9
- import './chunk-KDP7ZRZV.mjs';
9
+ import './chunk-IOAHWAQG.mjs';
10
10
  import './chunk-N7PBWBWQ.mjs';
11
- import { defineIslandPropsDecoder } from './chunk-R4XK3CKR.mjs';
12
- import './chunk-PCHACQEB.mjs';
11
+ import { defineIslandPropsDecoder } from './chunk-CYJ3MUFP.mjs';
12
+ import './chunk-IIUIKJ4K.mjs';
13
13
 
14
14
  // src/rendering/islands/enhancers/checkout.tsx
15
15
  var decode = defineIslandPropsDecoder("checkout");
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { isRecord } from './chunk-R4XK3CKR.mjs';
2
+ import { isRecord } from './chunk-CYJ3MUFP.mjs';
3
3
  import { useRef, useState, useEffect } from 'react';
4
4
  import { jsx } from 'react/jsx-runtime';
5
5
 
@@ -1,9 +1,71 @@
1
1
  "use client";
2
- import { FeedbackMessage, discountAvailabilityHasDiscounts, getAutoAppliedDiscountPreview, discountAvailabilityAllowsManualEntry } from './chunk-KDP7ZRZV.mjs';
3
- import { themeButtonClassName } from './chunk-R4XK3CKR.mjs';
4
- import { formatCurrencyAmount, clsx_default } from './chunk-PCHACQEB.mjs';
5
- import { useReducer, useEffect, useId, useRef } from 'react';
2
+ import { FeedbackMessage, discountAvailabilityHasDiscounts, getAutoAppliedDiscountPreview, discountAvailabilityAllowsManualEntry } from './chunk-IOAHWAQG.mjs';
3
+ import { themeButtonClassName } from './chunk-CYJ3MUFP.mjs';
4
+ import { formatCurrencyAmount, clsx_default } from './chunk-IIUIKJ4K.mjs';
6
5
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
+ import { useReducer, useEffect, useId, useRef } from 'react';
7
+
8
+ function CheckIcon({ className, strokeWidth = 2 }) {
9
+ return /* @__PURE__ */ jsx(
10
+ "svg",
11
+ {
12
+ fill: "none",
13
+ strokeLinecap: "round",
14
+ strokeLinejoin: "round",
15
+ strokeWidth,
16
+ viewBox: "0 0 24 24",
17
+ stroke: "currentColor",
18
+ className,
19
+ width: "1em",
20
+ height: "1em",
21
+ "aria-hidden": "true",
22
+ children: /* @__PURE__ */ jsx("path", { d: "M5 13l4 4L19 7" })
23
+ }
24
+ );
25
+ }
26
+ function StateIcon({ variant, children }) {
27
+ return /* @__PURE__ */ jsx("div", { className: `rb-state-icon rb-state-icon--${variant}`, "aria-hidden": "true", children });
28
+ }
29
+ function joinClasses(...parts) {
30
+ return parts.filter((part) => typeof part === "string" && part.length > 0).join(" ");
31
+ }
32
+ function TerminalPanel({
33
+ tone,
34
+ title,
35
+ titleAs: Title = "h3",
36
+ body,
37
+ secondaryBody,
38
+ icon,
39
+ actions,
40
+ className,
41
+ titleClassName,
42
+ bodyClassName,
43
+ secondaryBodyClassName,
44
+ iconClassName,
45
+ actionsClassName,
46
+ role,
47
+ live
48
+ }) {
49
+ const resolvedRole = role ?? (tone === "error" ? "alert" : "status");
50
+ const resolvedLive = live ?? (resolvedRole === "alert" ? "assertive" : "polite");
51
+ return /* @__PURE__ */ jsxs(
52
+ "div",
53
+ {
54
+ className,
55
+ "data-terminal-panel": true,
56
+ "data-terminal-tone": tone,
57
+ role: resolvedRole,
58
+ "aria-live": resolvedLive === "off" ? void 0 : resolvedLive,
59
+ children: [
60
+ icon ? /* @__PURE__ */ jsx("div", { className: joinClasses(iconClassName), "data-terminal-icon": true, children: icon }) : null,
61
+ /* @__PURE__ */ jsx(Title, { className: joinClasses(titleClassName), "data-terminal-title": true, children: title }),
62
+ body ? /* @__PURE__ */ jsx("div", { className: joinClasses(bodyClassName), "data-terminal-body": true, children: body }) : null,
63
+ actions ? /* @__PURE__ */ jsx("div", { className: joinClasses(actionsClassName), "data-terminal-actions": true, children: actions }) : null,
64
+ secondaryBody ? /* @__PURE__ */ jsx("div", { className: joinClasses(secondaryBodyClassName), "data-terminal-secondary-body": true, children: secondaryBody }) : null
65
+ ]
66
+ }
67
+ );
68
+ }
7
69
 
8
70
  // ../blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.state.ts
9
71
  var initialDiscountCodeUiState = {
@@ -402,24 +464,6 @@ function getStepNumber(step, wizardSteps) {
402
464
  const index = wizardSteps.indexOf(step);
403
465
  return index >= 0 ? index + 1 : 1;
404
466
  }
405
- function CheckIcon({ className, strokeWidth = 2 }) {
406
- return /* @__PURE__ */ jsx(
407
- "svg",
408
- {
409
- fill: "none",
410
- strokeLinecap: "round",
411
- strokeLinejoin: "round",
412
- strokeWidth,
413
- viewBox: "0 0 24 24",
414
- stroke: "currentColor",
415
- className,
416
- width: "1em",
417
- height: "1em",
418
- "aria-hidden": "true",
419
- children: /* @__PURE__ */ jsx("path", { d: "M5 13l4 4L19 7" })
420
- }
421
- );
422
- }
423
467
  function CrossIcon({ className, strokeWidth = 2 }) {
424
468
  return /* @__PURE__ */ jsx(
425
469
  "svg",
@@ -443,7 +487,7 @@ var alignmentClasses = {
443
487
  end: "rb-justify-end",
444
488
  between: "rb-justify-between"
445
489
  };
446
- function joinClasses(...parts) {
490
+ function joinClasses2(...parts) {
447
491
  return parts.filter((part) => typeof part === "string" && part.length > 0).join(" ");
448
492
  }
449
493
  function ActionRow({
@@ -454,55 +498,12 @@ function ActionRow({
454
498
  return /* @__PURE__ */ jsx(
455
499
  "div",
456
500
  {
457
- className: joinClasses("rb-flex rb-flex-wrap rb-items-center rb-gap-2", alignmentClasses[align], className),
501
+ className: joinClasses2("rb-flex rb-flex-wrap rb-items-center rb-gap-2", alignmentClasses[align], className),
458
502
  "data-action-row": true,
459
503
  children
460
504
  }
461
505
  );
462
506
  }
463
- function StateIcon({ variant, children }) {
464
- return /* @__PURE__ */ jsx("div", { className: `rb-state-icon rb-state-icon--${variant}`, "aria-hidden": "true", children });
465
- }
466
- function joinClasses2(...parts) {
467
- return parts.filter((part) => typeof part === "string" && part.length > 0).join(" ");
468
- }
469
- function TerminalPanel({
470
- tone,
471
- title,
472
- titleAs: Title = "h3",
473
- body,
474
- secondaryBody,
475
- icon,
476
- actions,
477
- className,
478
- titleClassName,
479
- bodyClassName,
480
- secondaryBodyClassName,
481
- iconClassName,
482
- actionsClassName,
483
- role,
484
- live
485
- }) {
486
- const resolvedRole = role ?? (tone === "error" ? "alert" : "status");
487
- const resolvedLive = live ?? (resolvedRole === "alert" ? "assertive" : "polite");
488
- return /* @__PURE__ */ jsxs(
489
- "div",
490
- {
491
- className,
492
- "data-terminal-panel": true,
493
- "data-terminal-tone": tone,
494
- role: resolvedRole,
495
- "aria-live": resolvedLive === "off" ? void 0 : resolvedLive,
496
- children: [
497
- icon ? /* @__PURE__ */ jsx("div", { className: joinClasses2(iconClassName), "data-terminal-icon": true, children: icon }) : null,
498
- /* @__PURE__ */ jsx(Title, { className: joinClasses2(titleClassName), "data-terminal-title": true, children: title }),
499
- body ? /* @__PURE__ */ jsx("div", { className: joinClasses2(bodyClassName), "data-terminal-body": true, children: body }) : null,
500
- actions ? /* @__PURE__ */ jsx("div", { className: joinClasses2(actionsClassName), "data-terminal-actions": true, children: actions }) : null,
501
- secondaryBody ? /* @__PURE__ */ jsx("div", { className: joinClasses2(secondaryBodyClassName), "data-terminal-secondary-body": true, children: secondaryBody }) : null
502
- ]
503
- }
504
- );
505
- }
506
507
  function ClockIcon({ className, strokeWidth = 2 }) {
507
508
  return /* @__PURE__ */ jsx(
508
509
  "svg",
@@ -612,40 +613,66 @@ function TabBarFragment({
612
613
  }
613
614
  );
614
615
  }
616
+ function buildClassChannels(slot, classPrefix, emitSharedClasses) {
617
+ const classes = [];
618
+ if (emitSharedClasses) classes.push(`rb-${slot}`);
619
+ if (classPrefix) classes.push(`${classPrefix}-${slot}`);
620
+ return classes;
621
+ }
615
622
  function StepIndicator({
616
623
  currentStep,
617
624
  totalSteps,
618
625
  stepLabels,
619
- classPrefix
626
+ classPrefix,
627
+ emitSharedClasses
620
628
  }) {
621
- return /* @__PURE__ */ jsx("nav", { "aria-label": "Registration progress", className: `${classPrefix}-steps-nav`, children: /* @__PURE__ */ jsx("ol", { className: `${classPrefix}-steps`, children: Array.from({ length: totalSteps }, (_, i) => {
629
+ const slotClass = (slot, modifier) => {
630
+ const base = buildClassChannels(slot, classPrefix, emitSharedClasses);
631
+ if (!modifier) return base.join(" ");
632
+ const modified = buildClassChannels(
633
+ `${slot}--${modifier}`,
634
+ classPrefix,
635
+ emitSharedClasses
636
+ );
637
+ return [...base, ...modified].join(" ");
638
+ };
639
+ return /* @__PURE__ */ jsx("nav", { "aria-label": "Registration progress", className: slotClass("steps-nav"), children: /* @__PURE__ */ jsx("ol", { className: slotClass("steps"), children: Array.from({ length: totalSteps }, (_, i) => {
622
640
  const stepNum = i + 1;
623
641
  const isActive = stepNum === currentStep;
624
642
  const isComplete = stepNum < currentStep;
625
643
  return /* @__PURE__ */ jsxs(
626
644
  "li",
627
645
  {
628
- className: `${classPrefix}-step`,
646
+ className: slotClass("step"),
629
647
  "aria-current": isActive ? "step" : void 0,
630
648
  children: [
631
649
  /* @__PURE__ */ jsx(
632
650
  "div",
633
651
  {
634
- className: `${classPrefix}-step-circle${isActive ? ` ${classPrefix}-step-circle--active` : ""}${isComplete ? ` ${classPrefix}-step-circle--completed` : ""}`,
635
- children: isComplete ? /* @__PURE__ */ jsx(CheckIcon, { className: `${classPrefix}-step-check`, strokeWidth: 3 }) : stepNum
652
+ className: slotClass(
653
+ "step-circle",
654
+ isActive ? "active" : isComplete ? "completed" : void 0
655
+ ),
656
+ children: isComplete ? /* @__PURE__ */ jsx(CheckIcon, { className: slotClass("step-check"), strokeWidth: 3 }) : stepNum
636
657
  }
637
658
  ),
638
659
  stepLabels?.[i] && /* @__PURE__ */ jsx(
639
660
  "span",
640
661
  {
641
- className: `${classPrefix}-step-label${isActive ? ` ${classPrefix}-step-label--active` : ""}`,
662
+ className: slotClass(
663
+ "step-label",
664
+ isActive ? "active" : void 0
665
+ ),
642
666
  children: stepLabels[i]
643
667
  }
644
668
  ),
645
669
  stepNum < totalSteps && /* @__PURE__ */ jsx(
646
670
  "div",
647
671
  {
648
- className: `${classPrefix}-step-connector${isComplete ? ` ${classPrefix}-step-connector--completed` : ""}`,
672
+ className: slotClass(
673
+ "step-connector",
674
+ isComplete ? "completed" : void 0
675
+ ),
649
676
  "aria-hidden": "true"
650
677
  }
651
678
  )
@@ -655,5 +682,50 @@ function StepIndicator({
655
682
  );
656
683
  }) }) });
657
684
  }
685
+ function SelectableOptionCard(props) {
686
+ const {
687
+ baseClassName,
688
+ selectedClassName,
689
+ disabledClassName,
690
+ iconClassName,
691
+ labelClassName,
692
+ detailClassName,
693
+ icon,
694
+ label,
695
+ detail,
696
+ selected,
697
+ disabled,
698
+ tooltip,
699
+ extraClassNames = [],
700
+ onClick,
701
+ renderCheck,
702
+ renderDisabledTooltip
703
+ } = props;
704
+ const isSelected = selected && !disabled;
705
+ const className = [
706
+ baseClassName,
707
+ isSelected && selectedClassName,
708
+ disabled && disabledClassName,
709
+ ...extraClassNames
710
+ ].filter(Boolean).join(" ");
711
+ const showNativeTitle = Boolean(tooltip) && !(disabled && renderDisabledTooltip);
712
+ return /* @__PURE__ */ jsxs(
713
+ "button",
714
+ {
715
+ type: "button",
716
+ className,
717
+ onClick: disabled ? void 0 : onClick,
718
+ title: showNativeTitle ? tooltip : void 0,
719
+ "aria-disabled": disabled || void 0,
720
+ children: [
721
+ /* @__PURE__ */ jsx("div", { className: iconClassName, children: icon }),
722
+ /* @__PURE__ */ jsx("div", { className: labelClassName, children: label }),
723
+ /* @__PURE__ */ jsx("div", { className: detailClassName, children: detail }),
724
+ isSelected && renderCheck?.(),
725
+ disabled && tooltip && renderDisabledTooltip?.(tooltip)
726
+ ]
727
+ }
728
+ );
729
+ }
658
730
 
659
- export { ActionRow, CheckIcon, ClockIcon, CrossIcon, DiscountCodeDisclosure, LoggedInAsUser, MembershipHero, StateIcon, StepIndicator, TabBarFragment, TerminalPanel, buildCheckoutReturnUrls, consumeSearchParam, consumeSearchParams, createBodyThemePortalRoot, formatPrice, getStepNumber, logoutPortal, scrollToBlock, useDiscountCodeUi, validateFormData };
731
+ export { ActionRow, CheckIcon, ClockIcon, CrossIcon, DiscountCodeDisclosure, LoggedInAsUser, MembershipHero, SelectableOptionCard, StateIcon, StepIndicator, TabBarFragment, TerminalPanel, buildCheckoutReturnUrls, consumeSearchParam, consumeSearchParams, createBodyThemePortalRoot, formatPrice, getStepNumber, logoutPortal, scrollToBlock, useDiscountCodeUi, validateFormData };
@@ -1,4 +1,4 @@
1
- import { parseAspectRatioValue, parseColorTokenParts, toBookingTimeZone, formatBookingDate, toScheduledBookingDateTime, formatBookingTime, toScheduledBookingDateRange, formatBookingDateParts, formatEventPricing, ImagePresets, getBookingLocalDateKey, publicEventPricingType, formatCurrencyAmount, getCurrentResolveImageUrlContext, renderVideo, renderAudio, resolveMediaNodeResponsiveImage, MediaPlaceholder, computeMediaTransformStyle, rgbColorValue } from './chunk-PCHACQEB.mjs';
1
+ import { parseAspectRatioValue, parseColorTokenParts, toBookingTimeZone, formatBookingDate, toScheduledBookingDateTime, formatBookingTime, toScheduledBookingDateRange, formatBookingDateParts, formatEventPricing, ImagePresets, getBookingLocalDateKey, publicEventPricingType, formatCurrencyAmount, getCurrentResolveImageUrlContext, renderVideo, renderAudio, resolveMediaNodeResponsiveImage, MediaPlaceholder, computeMediaTransformStyle, rgbColorValue } from './chunk-IIUIKJ4K.mjs';
2
2
  import z2, { z } from 'zod';
3
3
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
4
4
 
@@ -1705,15 +1705,16 @@ var joyStamp = defineButtonPersonality({
1705
1705
  // 700, matching the mockup's chunky button labels.
1706
1706
  typography: "heading",
1707
1707
  fontWeight: 700,
1708
+ fontSize: "text-lg",
1708
1709
  borderWidth: 2,
1709
1710
  hoverTransform: "none",
1710
1711
  hoverColor: "none"
1711
1712
  },
1712
1713
  sizes: {
1713
- sm: { padding: "0.625rem 1.25rem", fontSize: "text-sm" },
1714
- md: { padding: "0.875rem 1.75rem", fontSize: "text-base" },
1715
- lg: { padding: "1.125rem 2.25rem", fontSize: "text-lg" },
1716
- xl: { padding: "1.25rem 2.75rem", fontSize: "text-xl" }
1714
+ sm: { padding: "0.625rem 1.25rem", fontSize: "text-base" },
1715
+ md: { padding: "0.875rem 1.75rem", fontSize: "text-lg" },
1716
+ lg: { padding: "1.125rem 2.25rem", fontSize: "text-xl" },
1717
+ xl: { padding: "1.25rem 2.75rem", fontSize: "text-2xl" }
1717
1718
  },
1718
1719
  variants: [
1719
1720
  {
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { ChevronLeft, ChevronRight } from './chunk-6N7YRNYU.mjs';
3
- import { clsx_default } from './chunk-PCHACQEB.mjs';
3
+ import { clsx_default } from './chunk-IIUIKJ4K.mjs';
4
4
  import React, { useRef, useState, useCallback, useEffect } from 'react';
5
5
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
6
6
 
@@ -1,22 +1,22 @@
1
1
  "use client";
2
- import { LeafletStaticMap } from './chunk-XNTHVZ25.mjs';
3
- import { resolveCoursePricingState, MagicLinkForm, formatCoursePriceAmount, formatCoursePriceDisplay, useWaitlistClaim } from './chunk-26ZBRXFR.mjs';
2
+ import { LeafletStaticMap } from './chunk-5DLGREUB.mjs';
3
+ import { resolveCoursePricingState, MagicLinkForm, formatCoursePriceAmount, formatCoursePriceDisplay, useWaitlistClaim } from './chunk-JTKBF3W2.mjs';
4
4
  import { CreditCard, Ticket, Star, Sparkles } from './chunk-6N7YRNYU.mjs';
5
- import { buildBookingPaymentSelectionViewModel, usePolling } from './chunk-DRRQ7QSL.mjs';
6
- import { SpinnerNode } from './chunk-OLAOAZEO.mjs';
7
- import { createBodyThemePortalRoot, TabBarFragment, logoutPortal, StepIndicator, DiscountCodeDisclosure, TerminalPanel, StateIcon, formatPrice, CrossIcon, ClockIcon, LoggedInAsUser, CheckIcon, useDiscountCodeUi, consumeSearchParam } from './chunk-SK2BMD22.mjs';
5
+ import { buildBookingPaymentSelectionViewModel, usePolling } from './chunk-WEVT46PX.mjs';
6
+ import { SpinnerNode } from './chunk-K7KTSACR.mjs';
7
+ import { createBodyThemePortalRoot, TabBarFragment, logoutPortal, StepIndicator, DiscountCodeDisclosure, TerminalPanel, StateIcon, formatPrice, CrossIcon, ClockIcon, LoggedInAsUser, SelectableOptionCard, CheckIcon, useDiscountCodeUi, consumeSearchParam } from './chunk-CLZ7NBSP.mjs';
8
8
  import { getFieldValidationControlProps, FieldValidationMessage } from './chunk-3DCJ45Z2.mjs';
9
9
  import { ModalShell } from './chunk-WBQG7VJA.mjs';
10
10
  import { isSpamProtectionEnabled, AltchaWidget, getChallengeUrl } from './chunk-LJCX6V7Q.mjs';
11
- import { useBlockApi, FeedbackMessage } from './chunk-KDP7ZRZV.mjs';
12
- import { buildEventRuntimeFilters, buildEventCalendarListingRender, groupEventsByDate, getOrderedDayNames, formatDateKey, getEventRuntimeFiltersKey, themeButtonClassName, normalizeCsvIds, normalizeOptionalId, normalizeEventBlockKind, normalizeCsvString, EventCompactRow, EmptyState, getContainerClass, getCardOrientation, isToday, MAX_EVENTS_PER_DAY, formatTime, WIZARD_STEPS, getWizardStepsForContext, getStepNumber, formatEventPriceDisplay, resolveRuntimeEventPricing, formatEventPrice, formatEventDateParts, resolveEventLinkProps, DateTimeTile, assertNever, EventCard, buildCalendarViewport, shiftCalendarAnchorDate, addMonths, getThreeMonthRange, buildTimetableModel, formatDate, MONTH_NAMES, getEventAvailability, formatEventTeacherLine, toRegistrationEvents, isEventContentType, findPreSelectedEvent, resolveRegistrationTarget, findEventByOccurrenceId, resolveEventRequiresPayment, resolveDiscountContext } from './chunk-R4XK3CKR.mjs';
13
- import { publicEventPricingType, getBookingLocalDateKey, toScheduledBookingDateTime, toBookingTimeZone, publicEventPricingCurrency, formatBookingDateTime, publicEventPricingMode, publicEventScalarPrice, formatCurrencyAmount, publicEventTicketTypes, formatBookingDate, formatBookingTime } from './chunk-PCHACQEB.mjs';
11
+ import { useBlockApi, FeedbackMessage } from './chunk-IOAHWAQG.mjs';
12
+ import { buildEventRuntimeFilters, buildEventCalendarListingRender, groupEventsByDate, getOrderedDayNames, formatDateKey, getEventRuntimeFiltersKey, themeButtonClassName, normalizeCsvIds, normalizeOptionalId, normalizeEventBlockKind, normalizeCsvString, EventCompactRow, EmptyState, getContainerClass, getCardOrientation, isToday, MAX_EVENTS_PER_DAY, formatTime, WIZARD_STEPS, getWizardStepsForContext, getStepNumber, formatEventPriceDisplay, resolveRuntimeEventPricing, formatEventPrice, formatEventDateParts, resolveEventLinkProps, DateTimeTile, assertNever, EventCard, buildCalendarViewport, shiftCalendarAnchorDate, addMonths, getThreeMonthRange, buildTimetableModel, formatDate, MONTH_NAMES, getEventAvailability, formatEventTeacherLine, toRegistrationEvents, isEventContentType, findPreSelectedEvent, resolveRegistrationTarget, findEventByOccurrenceId, resolveEventRequiresPayment, resolveDiscountContext } from './chunk-CYJ3MUFP.mjs';
13
+ import { publicEventPricingType, getBookingLocalDateKey, toScheduledBookingDateTime, toBookingTimeZone, publicEventPricingCurrency, formatBookingDateTime, publicEventPricingMode, publicEventScalarPrice, formatCurrencyAmount, publicEventTicketTypes, formatBookingDate, formatBookingTime } from './chunk-IIUIKJ4K.mjs';
14
14
  import React9, { createContext, useId, useMemo, useReducer, useState, useRef, useEffect, useCallback, useContext } from 'react';
15
15
  import { createPortal } from 'react-dom';
16
16
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
17
17
 
18
18
  function StepIndicator2(props) {
19
- return /* @__PURE__ */ jsx(StepIndicator, { ...props, classPrefix: "er" });
19
+ return /* @__PURE__ */ jsx(StepIndicator, { ...props, classPrefix: "er", emitSharedClasses: true });
20
20
  }
21
21
 
22
22
  // ../blocks/src/system/runtime/nodes/event-registration/registrationStateMachine.ts
@@ -859,7 +859,7 @@ var EventSelectionStep = ({
859
859
  }) => {
860
860
  const selectionMode = getEventSelectionMode(events);
861
861
  const isDateSelection = selectionMode === "date";
862
- return /* @__PURE__ */ jsxs("div", { className: "er-stack", children: [
862
+ return /* @__PURE__ */ jsxs("div", { className: "rb-reg-stack er-stack", children: [
863
863
  /* @__PURE__ */ jsx("h3", { className: "er-title", children: isDateSelection ? "Choose a date" : "Select an event" }),
864
864
  /* @__PURE__ */ jsx("div", { className: "er-event-grid", children: events.map((event) => {
865
865
  const isSelected = selectedEvent?.publicEventId === event.publicEventId;
@@ -916,7 +916,7 @@ function getEventAttendanceModeLabel(mode) {
916
916
  function TicketCounter(props) {
917
917
  const { ticketsCount, maxAllowed, label, onTicketsChange } = props;
918
918
  const minAllowed = props.minAllowed ?? 1;
919
- return /* @__PURE__ */ jsxs("div", { className: "er-row er-counter", children: [
919
+ return /* @__PURE__ */ jsxs("div", { className: "rb-reg-row er-row er-counter", children: [
920
920
  /* @__PURE__ */ jsx(
921
921
  "button",
922
922
  {
@@ -1141,7 +1141,7 @@ var TicketSelectionStep = ({
1141
1141
  });
1142
1142
  const eventAvailabilityLabel = !canJoinWaitlist && event?.availableSpots != null ? `${event.availableSpots} spots available` : null;
1143
1143
  if (deliveryMode === "hybrid" && !selectedAttendanceMode) {
1144
- return /* @__PURE__ */ jsxs("div", { className: "er-stack", children: [
1144
+ return /* @__PURE__ */ jsxs("div", { className: "rb-reg-stack er-stack", children: [
1145
1145
  /* @__PURE__ */ jsx("h3", { className: "er-title", children: "How will you attend?" }),
1146
1146
  /* @__PURE__ */ jsx(
1147
1147
  AttendanceModeTiles,
@@ -1155,12 +1155,12 @@ var TicketSelectionStep = ({
1155
1155
  ] });
1156
1156
  }
1157
1157
  if (isSoldOut && !canJoinWaitlist) {
1158
- return /* @__PURE__ */ jsxs("div", { className: "er-stack", children: [
1158
+ return /* @__PURE__ */ jsxs("div", { className: "rb-reg-stack er-stack", children: [
1159
1159
  /* @__PURE__ */ jsx("h3", { className: "er-title", children: "Sold Out" }),
1160
1160
  /* @__PURE__ */ jsx("p", { className: "er-text er-text--muted", children: "Sorry you missed out! This event is fully booked." })
1161
1161
  ] });
1162
1162
  }
1163
- return /* @__PURE__ */ jsxs("div", { className: "er-stack", children: [
1163
+ return /* @__PURE__ */ jsxs("div", { className: "rb-reg-stack er-stack", children: [
1164
1164
  deliveryMode === "hybrid" ? /* @__PURE__ */ jsxs(Fragment, { children: [
1165
1165
  /* @__PURE__ */ jsx("h3", { className: "er-title", children: "How will you attend?" }),
1166
1166
  /* @__PURE__ */ jsx(
@@ -1354,7 +1354,7 @@ var AttendeeDetailsStep = ({
1354
1354
  messageId: emailErrorId
1355
1355
  });
1356
1356
  const showGuestSection = requireGuestDetails && ticketsCount > 1 && onGuestsChange;
1357
- return /* @__PURE__ */ jsxs("div", { className: "er-stack", children: [
1357
+ return /* @__PURE__ */ jsxs("div", { className: "rb-reg-stack er-stack", children: [
1358
1358
  /* @__PURE__ */ jsx("h3", { className: "er-title", children: "Your Information" }),
1359
1359
  /* @__PURE__ */ jsxs("div", { children: [
1360
1360
  /* @__PURE__ */ jsxs("div", { className: "er-field", children: [
@@ -1448,7 +1448,7 @@ var AttendeeDetailsStep = ({
1448
1448
  var MembershipHero = ({
1449
1449
  membershipName
1450
1450
  }) => {
1451
- return /* @__PURE__ */ jsx("div", { className: "er-stack", children: /* @__PURE__ */ jsxs("div", { className: "er-booking-mode-hero", children: [
1451
+ return /* @__PURE__ */ jsx("div", { className: "rb-reg-stack er-stack", children: /* @__PURE__ */ jsxs("div", { className: "er-booking-mode-hero", children: [
1452
1452
  /* @__PURE__ */ jsx("div", { className: "er-booking-mode-hero-icon", children: /* @__PURE__ */ jsx(Sparkles, { size: 20, fill: "currentColor", "aria-hidden": "true" }) }),
1453
1453
  /* @__PURE__ */ jsxs("div", { className: "er-booking-mode-hero-content", children: [
1454
1454
  /* @__PURE__ */ jsxs("h3", { className: "er-booking-mode-hero-title", children: [
@@ -1459,51 +1459,6 @@ var MembershipHero = ({
1459
1459
  ] })
1460
1460
  ] }) });
1461
1461
  };
1462
- function SelectableOptionCard(props) {
1463
- const {
1464
- baseClassName,
1465
- selectedClassName,
1466
- disabledClassName,
1467
- iconClassName,
1468
- labelClassName,
1469
- detailClassName,
1470
- icon,
1471
- label,
1472
- detail,
1473
- selected,
1474
- disabled,
1475
- tooltip,
1476
- extraClassNames = [],
1477
- onClick,
1478
- renderCheck,
1479
- renderDisabledTooltip
1480
- } = props;
1481
- const isSelected = selected && !disabled;
1482
- const className = [
1483
- baseClassName,
1484
- isSelected && selectedClassName,
1485
- disabled && disabledClassName,
1486
- ...extraClassNames
1487
- ].filter(Boolean).join(" ");
1488
- const showNativeTitle = Boolean(tooltip) && !(disabled && renderDisabledTooltip);
1489
- return /* @__PURE__ */ jsxs(
1490
- "button",
1491
- {
1492
- type: "button",
1493
- className,
1494
- onClick: disabled ? void 0 : onClick,
1495
- title: showNativeTitle ? tooltip : void 0,
1496
- "aria-disabled": disabled || void 0,
1497
- children: [
1498
- /* @__PURE__ */ jsx("div", { className: iconClassName, children: icon }),
1499
- /* @__PURE__ */ jsx("div", { className: labelClassName, children: label }),
1500
- /* @__PURE__ */ jsx("div", { className: detailClassName, children: detail }),
1501
- isSelected && renderCheck?.(),
1502
- disabled && tooltip && renderDisabledTooltip?.(tooltip)
1503
- ]
1504
- }
1505
- );
1506
- }
1507
1462
 
1508
1463
  // ../blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.ts
1509
1464
  var DEFAULT_EVENT_DIRECT_PAYMENT_OPTION = {
@@ -1585,7 +1540,7 @@ function resolveEventRegistrationDirectPaymentSelection(input) {
1585
1540
  };
1586
1541
  }
1587
1542
  function PaymentCheckIcon() {
1588
- return /* @__PURE__ */ jsx("div", { className: "er-check", children: /* @__PURE__ */ jsx(CheckIcon, {}) });
1543
+ return /* @__PURE__ */ jsx("div", { className: "rb-option-check er-check", children: /* @__PURE__ */ jsx(CheckIcon, {}) });
1589
1544
  }
1590
1545
  function PaymentTile({
1591
1546
  icon,
@@ -1722,25 +1677,25 @@ var PaymentSelectionStep = ({
1722
1677
  getButtonText
1723
1678
  ]);
1724
1679
  if (eligibilityLoading) {
1725
- return /* @__PURE__ */ jsx("div", { className: "er-stack", children: /* @__PURE__ */ jsxs("div", { className: "er-center", children: [
1680
+ return /* @__PURE__ */ jsx("div", { className: "rb-reg-stack er-stack", children: /* @__PURE__ */ jsxs("div", { className: "er-center", children: [
1726
1681
  /* @__PURE__ */ jsx(SpinnerNode, { size: "lg", srLabel: "Checking payment options" }),
1727
1682
  /* @__PURE__ */ jsx("p", { className: "er-text--muted", children: "Checking payment options..." })
1728
1683
  ] }) });
1729
1684
  }
1730
1685
  if (eligibilityError) {
1731
- return /* @__PURE__ */ jsx("div", { className: "er-stack", children: /* @__PURE__ */ jsx("div", { className: "er-center", children: /* @__PURE__ */ jsx("p", { className: "er-text er-text--error", children: eligibilityError }) }) });
1686
+ return /* @__PURE__ */ jsx("div", { className: "rb-reg-stack er-stack", children: /* @__PURE__ */ jsx("div", { className: "er-center", children: /* @__PURE__ */ jsx("p", { className: "er-text er-text--error", children: eligibilityError }) }) });
1732
1687
  }
1733
1688
  if (!eligibility) {
1734
1689
  const missing = [];
1735
1690
  if (!occurrenceId) missing.push("occurrenceId");
1736
1691
  if (!email) missing.push("email");
1737
- return /* @__PURE__ */ jsx("div", { className: "er-stack", children: /* @__PURE__ */ jsx("div", { className: "er-center", children: /* @__PURE__ */ jsxs("p", { className: "er-text er-text--error", children: [
1692
+ return /* @__PURE__ */ jsx("div", { className: "rb-reg-stack er-stack", children: /* @__PURE__ */ jsx("div", { className: "er-center", children: /* @__PURE__ */ jsxs("p", { className: "er-text er-text--error", children: [
1738
1693
  "Unable to determine payment options",
1739
1694
  missing.length > 0 && ` (missing: ${missing.join(", ")})`
1740
1695
  ] }) }) });
1741
1696
  }
1742
1697
  if (eligibility.isFree) {
1743
- return /* @__PURE__ */ jsxs("div", { className: "er-stack", children: [
1698
+ return /* @__PURE__ */ jsxs("div", { className: "rb-reg-stack er-stack", children: [
1744
1699
  /* @__PURE__ */ jsx("h3", { className: "er-title", children: "Payment" }),
1745
1700
  /* @__PURE__ */ jsxs("div", { className: "er-payment-summary", children: [
1746
1701
  /* @__PURE__ */ jsx("p", { className: "er-text er-text--success", children: "This event is free!" }),
@@ -1754,13 +1709,13 @@ var PaymentSelectionStep = ({
1754
1709
  }
1755
1710
  if (!eligibility.eligible) {
1756
1711
  if (eligibility.isFull && !eligibility.canJoinWaitlist) {
1757
- return /* @__PURE__ */ jsxs("div", { className: "er-stack", children: [
1712
+ return /* @__PURE__ */ jsxs("div", { className: "rb-reg-stack er-stack", children: [
1758
1713
  /* @__PURE__ */ jsx("h3", { className: "er-title", children: "Sold Out" }),
1759
1714
  /* @__PURE__ */ jsx("div", { className: "er-center", children: /* @__PURE__ */ jsx("p", { className: "er-text er-text--muted", children: "This event is fully booked and there is no waitlist available for this booking." }) })
1760
1715
  ] });
1761
1716
  }
1762
1717
  const shouldPromptLogin = !isAuthenticated && (eligibility.requiresAuthForPasses || eligibility.requiresAuthForMemberships);
1763
- return /* @__PURE__ */ jsxs("div", { className: "er-stack", children: [
1718
+ return /* @__PURE__ */ jsxs("div", { className: "rb-reg-stack er-stack", children: [
1764
1719
  /* @__PURE__ */ jsx("h3", { className: "er-title", children: shouldPromptLogin ? "Log In Required" : "Payment Required" }),
1765
1720
  /* @__PURE__ */ jsx("div", { className: "er-center", children: shouldPromptLogin ? /* @__PURE__ */ jsxs(Fragment, { children: [
1766
1721
  /* @__PURE__ */ jsx("p", { className: "er-text er-text--muted", children: "Have a pass or membership? Log in to use it." }),
@@ -1786,7 +1741,7 @@ var PaymentSelectionStep = ({
1786
1741
  ] });
1787
1742
  }
1788
1743
  const isMultiTicket = areEntitlementsDisabledForTicketCount(ticketsCount);
1789
- return /* @__PURE__ */ jsxs("div", { className: "er-stack", children: [
1744
+ return /* @__PURE__ */ jsxs("div", { className: "rb-reg-stack er-stack", children: [
1790
1745
  /* @__PURE__ */ jsx("h3", { className: "er-title", children: "Payment Options" }),
1791
1746
  /* @__PURE__ */ jsxs("div", { className: "er-payment-tiles", children: [
1792
1747
  canShowDirectPaymentOptions && /* @__PURE__ */ jsx(Fragment, { children: directPaymentOptions.map((option) => /* @__PURE__ */ jsx(
@@ -2161,7 +2116,7 @@ function EventRegistrationWizardActions(props) {
2161
2116
  const ticketTypeSelectionBlocked = wizard.ticketTypeSelectionRequired && !wizard.hasValidTicketSelection;
2162
2117
  const isContinueDisabled = isWaitingForEligibility || isCheckingExistingRegistration || hasExistingRegistration || isSoldOutWithoutWaitlist || ticketTypeSelectionBlocked;
2163
2118
  const continueLabel = isCheckingExistingRegistration ? "Checking registration..." : hasExistingRegistration ? "Already registered" : isSoldOutWithoutWaitlist ? "Sold out" : ticketTypeSelectionBlocked ? "Choose a ticket" : "Continue";
2164
- return /* @__PURE__ */ jsxs("div", { className: "er-actions", children: [
2119
+ return /* @__PURE__ */ jsxs("div", { className: "rb-wizard-actions er-actions", children: [
2165
2120
  !wizard.hasPreSelectedContext && /* @__PURE__ */ jsx("button", { type: "button", onClick: () => wizard.setStep("select-event"), className: "er-back-btn", children: "\u2190 Back" }),
2166
2121
  /* @__PURE__ */ jsx(
2167
2122
  "button",
@@ -2183,7 +2138,7 @@ function EventRegistrationWizardActions(props) {
2183
2138
  const isSoldOut = !hasWaitlistClaim && wizard.eligibility?.isFull === true && wizard.eligibility.canJoinWaitlist !== true;
2184
2139
  const isContinueDisabled = isCheckingEligibility || isSoldOut;
2185
2140
  const continueLabel = isCheckingEligibility ? "Checking availability..." : getDetailsButtonText();
2186
- return /* @__PURE__ */ jsxs("div", { className: "er-actions", children: [
2141
+ return /* @__PURE__ */ jsxs("div", { className: "rb-wizard-actions er-actions", children: [
2187
2142
  /* @__PURE__ */ jsx("button", { type: "button", onClick: () => wizard.setStep(prevStepForDetails), className: "er-back-btn", children: "\u2190 Back" }),
2188
2143
  /* @__PURE__ */ jsx(
2189
2144
  "button",
@@ -2202,7 +2157,7 @@ function EventRegistrationWizardActions(props) {
2202
2157
  const handlePaymentContinue = () => {
2203
2158
  void wizard.handlePaymentSelect();
2204
2159
  };
2205
- return /* @__PURE__ */ jsxs("div", { className: "er-actions", children: [
2160
+ return /* @__PURE__ */ jsxs("div", { className: "rb-wizard-actions er-actions", children: [
2206
2161
  /* @__PURE__ */ jsx("button", { type: "button", onClick: () => wizard.setStep("enter-details"), className: "er-back-btn", children: "\u2190 Back" }),
2207
2162
  status === "ready" && /* @__PURE__ */ jsx(
2208
2163
  "button",
@@ -3465,7 +3420,7 @@ function EventRegistrationWizard(props) {
3465
3420
  description: wizard.waitlistClaim.loginMessage ?? "Log in to continue with your waitlist claim."
3466
3421
  } : EVENT_PORTAL_AUTH_COPY.membership;
3467
3422
  const showPortalAuthPrompt = waitlistClaimRequiresPortalLogin || wizard.step === "select-tickets" && wizard.portalAuthState !== "authenticated" && wizard.portalAuthState !== "checking" && hasPassOrMembershipProducts && summaryEventPricingType !== "free";
3468
- const renderRegistrationSurface = (variant) => /* @__PURE__ */ jsxs("div", { className: `er-container${variant === "overlay" ? " er-container--overlay" : ""}`, children: [
3423
+ const renderRegistrationSurface = (variant) => /* @__PURE__ */ jsxs("div", { className: `rb-reg-surface er-container${variant === "overlay" ? " er-container--overlay" : ""}`, children: [
3469
3424
  isWizardStep && /* @__PURE__ */ jsxs("div", { className: "er-payment-layout er-payment-layout--no-sidebar", children: [
3470
3425
  /* @__PURE__ */ jsxs("div", { className: "er-payment-layout-main", children: [
3471
3426
  totalSteps > 1 && /* @__PURE__ */ jsx(StepIndicator2, { currentStep: currentStepNumber, totalSteps, stepLabels }),