@riverbankcms/sdk 0.75.0 → 0.76.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 (87) hide show
  1. package/README.md +2 -0
  2. package/dist/{PreviewEditorSidebar-U2IHCBYN.mjs → PreviewEditorSidebar-X2HWXFOL.mjs} +171 -88
  3. package/dist/{PreviewEditorUI-ZGH2RQNP.mjs → PreviewEditorUI-AQXIXPOH.mjs} +2 -2
  4. package/dist/SdkPreviewModeRuntime-ZQNDCASH.mjs +8 -0
  5. package/dist/_dts/api/src/bookingOperations.d.ts +12 -0
  6. package/dist/_dts/api/src/index.d.ts +1 -1
  7. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +11 -3
  8. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +0 -1
  9. package/dist/_dts/block-form/src/client/index.d.ts +1 -1
  10. package/dist/_dts/block-form/src/manifest/utils.d.ts +24 -0
  11. package/dist/_dts/blocks/src/client/events.d.ts +3 -1
  12. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
  13. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -6
  14. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
  15. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +3 -27
  16. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +163 -0
  17. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +5 -5
  18. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionCompactRow.d.ts +29 -0
  19. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionList.d.ts +13 -0
  20. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +4 -0
  21. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +4 -3
  22. package/dist/_dts/blocks/src/system/runtime/shared/utils/bookingRoute.d.ts +20 -0
  23. package/dist/_dts/blocks/src/system/runtime/shared/utils/index.d.ts +2 -1
  24. package/dist/_dts/blocks/src/system/types/link.d.ts +12 -0
  25. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +2 -0
  26. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +3 -1
  27. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +3 -1
  28. package/dist/_dts/editor-blocks/src/block-editor/BlockSettingsModal.d.ts +5 -1
  29. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +2 -0
  30. package/dist/_dts/editor-blocks/src/block-editor/actionControlMode.d.ts +2 -0
  31. package/dist/_dts/editor-blocks/src/index.d.ts +1 -1
  32. package/dist/_dts/preview-next/src/client/preview/themeOverlay.d.ts +21 -3
  33. package/dist/_dts/sdk/src/components.d.ts +2 -2
  34. package/dist/_dts/sdk/src/rendering/index.d.ts +2 -2
  35. package/dist/_dts/sdk/src/rendering/overrideResolution.d.ts +6 -0
  36. package/dist/_dts/sdk/src/rendering/overrides.d.ts +21 -1
  37. package/dist/_dts/sdk/src/rendering/server.d.ts +4 -3
  38. package/dist/_dts/sdk/src/version.d.ts +1 -1
  39. package/dist/{chunk-GFE74WRD.mjs → chunk-LYI7TEMH.mjs} +188 -90
  40. package/dist/{chunk-BGMNDF6T.mjs → chunk-Q4OLG66B.mjs} +7 -7
  41. package/dist/{chunk-RWXQBRQZ.mjs → chunk-TW2Y4RR5.mjs} +69 -14
  42. package/dist/{chunk-ZSHFGFUG.mjs → chunk-V5VORNEJ.mjs} +1 -1
  43. package/dist/cli/index.mjs +1 -1
  44. package/dist/client/{accordion-T2UD2ZTH.mjs → accordion-2YHIBOZH.mjs} +1 -1
  45. package/dist/client/{bookingForm-GUP75FKN.mjs → bookingForm-35IBDWAS.mjs} +3 -13
  46. package/dist/client/bookings.mjs +11 -11
  47. package/dist/client/{carousel-2NQA6V57.mjs → carousel-K6XG7NZQ.mjs} +1 -1
  48. package/dist/client/{cart-5TFIAFDS.mjs → cart-HCFYUTTU.mjs} +4 -4
  49. package/dist/client/{checkout-TP4WAHZE.mjs → checkout-J3U4XR7K.mjs} +4 -4
  50. package/dist/client/{chunk-FU2QRZMX.mjs → chunk-7UOSCYY4.mjs} +71 -24
  51. package/dist/client/{chunk-ZLMS67RR.mjs → chunk-BOIHIU7E.mjs} +1 -1
  52. package/dist/client/{chunk-CY2ZTSE5.mjs → chunk-FGUIVT2B.mjs} +1 -1
  53. package/dist/client/{chunk-WJXXNDSE.mjs → chunk-J227A3CQ.mjs} +1 -1
  54. package/dist/client/{chunk-NWOUL6JY.mjs → chunk-PFBX3IQL.mjs} +3 -3
  55. package/dist/client/{chunk-VUAOE3AG.mjs → chunk-SNSWVZEP.mjs} +4 -4
  56. package/dist/client/client.mjs +2261 -2279
  57. package/dist/client/{courseRegistration-5DPU6PDY.mjs → courseRegistration-ZBXS7VGI.mjs} +3 -3
  58. package/dist/client/{eventCalendar-F3GZGTEF.mjs → eventCalendar-EQQZHJBA.mjs} +5 -5
  59. package/dist/client/{eventCombined-BQOB6QMY.mjs → eventCombined-JCFTGBFQ.mjs} +5 -5
  60. package/dist/client/{eventDetails-PEM2EJWE.mjs → eventDetails-HLUTQSYY.mjs} +5 -5
  61. package/dist/client/{eventListing-YMIQPVME.mjs → eventListing-FG4MICVB.mjs} +5 -5
  62. package/dist/client/{eventRegistration-4I6ZNDUF.mjs → eventRegistration-GUEB7LBT.mjs} +5 -5
  63. package/dist/client/{form-ZJVAYZ6G.mjs → form-YQEW4YIT.mjs} +1 -1
  64. package/dist/client/{headerSection-TOT5MGTF.mjs → headerSection-GTR3TTRM.mjs} +2 -2
  65. package/dist/client/{locationMap-J66NZREU.mjs → locationMap-SPC7VGUH.mjs} +1 -1
  66. package/dist/client/{newsletterForm-ET2XUMRO.mjs → newsletterForm-4IW5BLID.mjs} +1 -1
  67. package/dist/client/{productDetail-C2XIH7C5.mjs → productDetail-KP5H2WJO.mjs} +4 -4
  68. package/dist/client/{productList-T2AZLFTP.mjs → productList-3M3M72XZ.mjs} +4 -4
  69. package/dist/client/rendering/client.mjs +3132 -3147
  70. package/dist/client/rendering/islands.mjs +18 -18
  71. package/dist/client/rendering.mjs +3344 -3354
  72. package/dist/client/{shop-UZ6IUZXD.mjs → shop-ACQKVGOM.mjs} +4 -4
  73. package/dist/preview-next/chrome.css +1 -1
  74. package/dist/preview-next/client/runtime.mjs +3 -3
  75. package/dist/preview-next/editor-base.css +2 -148
  76. package/dist/preview-next/editor-chrome.css +179 -0
  77. package/dist/{sdk-runtime-JCUQM63Y.mjs → sdk-runtime-K7HNB4U2.mjs} +4 -4
  78. package/dist/server/components.mjs +939 -891
  79. package/dist/server/index.mjs +1 -1
  80. package/dist/server/next.mjs +887 -840
  81. package/dist/server/prebuild.mjs +1 -1
  82. package/dist/server/rendering/server.mjs +951 -894
  83. package/dist/server/rendering.mjs +944 -896
  84. package/dist/server/server.mjs +1 -1
  85. package/package.json +1 -1
  86. package/dist/SdkPreviewModeRuntime-MTUGBTLQ.mjs +0 -8
  87. /package/dist/client/{chunk-2PHQZ666.mjs → chunk-JEZECJ3W.mjs} +0 -0
@@ -6363,7 +6363,7 @@ var navigationLinkInputSchema = z2.discriminatedUnion(
6363
6363
  );
6364
6364
 
6365
6365
  // ../api/src/sdkConfig/contracts.ts
6366
- import { z as z67 } from "zod";
6366
+ import { z as z68 } from "zod";
6367
6367
 
6368
6368
  // ../blocks/src/PageRenderer.tsx
6369
6369
  import * as React6 from "react";
@@ -28464,8 +28464,42 @@ function pickReadableTextColor(background) {
28464
28464
  }
28465
28465
  }
28466
28466
 
28467
- // ../blocks/src/system/runtime/nodes/events/shared/EventCompactRow.tsx
28467
+ // ../blocks/src/system/runtime/shared/components/BookingOptionCompactRow.tsx
28468
28468
  import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
28469
+ function BookingOptionCompactRow({
28470
+ option,
28471
+ buttonVariant = "primary"
28472
+ }) {
28473
+ const primaryMeta = option.primaryMeta?.filter((item) => item.length > 0) ?? [];
28474
+ const secondaryMeta = option.secondaryMeta?.filter((item) => item.label.length > 0) ?? [];
28475
+ const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "sm" });
28476
+ return /* @__PURE__ */ jsxs3("div", { className: "event-compact-row", children: [
28477
+ /* @__PURE__ */ jsxs3("div", { className: "event-compact-row-content", children: [
28478
+ /* @__PURE__ */ jsxs3("div", { className: "event-compact-row-top", children: [
28479
+ /* @__PURE__ */ jsx5("span", { className: "event-compact-row-title", children: option.title }),
28480
+ primaryMeta.length > 0 && /* @__PURE__ */ jsx5("span", { className: "event-compact-row-datetime", children: primaryMeta.join(" \xB7 ") })
28481
+ ] }),
28482
+ /* @__PURE__ */ jsxs3("div", { className: "event-compact-row-bottom", children: [
28483
+ secondaryMeta.map((item) => /* @__PURE__ */ jsxs3(
28484
+ "span",
28485
+ {
28486
+ className: item.className,
28487
+ children: [
28488
+ item.icon,
28489
+ item.label
28490
+ ]
28491
+ },
28492
+ item.id ?? `${item.className ?? "meta"}:${item.label}`
28493
+ )),
28494
+ option.priceLabel && /* @__PURE__ */ jsx5("span", { className: "event-compact-row-price", children: option.priceLabel })
28495
+ ] })
28496
+ ] }),
28497
+ option.action.kind === "status" ? /* @__PURE__ */ jsx5("span", { className: "event-compact-row-status", children: option.action.label }) : /* @__PURE__ */ jsx5("a", { href: option.action.href, className: `${buttonClass} event-compact-row-cta`, children: option.action.label })
28498
+ ] });
28499
+ }
28500
+
28501
+ // ../blocks/src/system/runtime/nodes/events/shared/EventCompactRow.tsx
28502
+ import { jsx as jsx6 } from "react/jsx-runtime";
28469
28503
  var EventCompactRow = ({
28470
28504
  event,
28471
28505
  buttonVariant = "primary",
@@ -28477,32 +28511,35 @@ var EventCompactRow = ({
28477
28511
  const price = formatEventPrice(event);
28478
28512
  const teacherLine = formatEventTeacherLine(event);
28479
28513
  const cta = resolveEventCta(event, buttonText);
28480
- const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "sm" });
28481
- return /* @__PURE__ */ jsxs3("div", { className: "event-compact-row", children: [
28482
- /* @__PURE__ */ jsxs3("div", { className: "event-compact-row-content", children: [
28483
- /* @__PURE__ */ jsxs3("div", { className: "event-compact-row-top", children: [
28484
- /* @__PURE__ */ jsx5("span", { className: "event-compact-row-title", children: event.title }),
28485
- /* @__PURE__ */ jsxs3("span", { className: "event-compact-row-datetime", children: [
28486
- formattedDate,
28487
- " \xB7 ",
28488
- formattedTime
28489
- ] })
28490
- ] }),
28491
- /* @__PURE__ */ jsxs3("div", { className: "event-compact-row-bottom", children: [
28492
- event.venue && /* @__PURE__ */ jsxs3("span", { className: "event-compact-row-venue", children: [
28493
- /* @__PURE__ */ jsx5(MapPinIcon, { className: "rb-shrink-0" }),
28494
- event.venue.name
28495
- ] }),
28496
- teacherLine && /* @__PURE__ */ jsx5("span", { className: "event-compact-row-teacher", children: teacherLine }),
28497
- /* @__PURE__ */ jsx5("span", { className: "event-compact-row-price", children: price })
28498
- ] })
28499
- ] }),
28500
- cta.hidden ? /* @__PURE__ */ jsx5("span", { className: "event-compact-row-status", children: cta.label }) : /* @__PURE__ */ jsx5("a", { href: cta.href, className: `${buttonClass} event-compact-row-cta`, children: cta.label })
28501
- ] });
28514
+ const option = {
28515
+ id: event.occurrenceId ?? event.id,
28516
+ title: event.title,
28517
+ primaryMeta: [formattedDate, formattedTime],
28518
+ secondaryMeta: [
28519
+ ...event.venue ? [
28520
+ {
28521
+ id: "venue",
28522
+ label: event.venue.name,
28523
+ icon: /* @__PURE__ */ jsx6(MapPinIcon, { className: "rb-shrink-0" }),
28524
+ className: "event-compact-row-venue"
28525
+ }
28526
+ ] : [],
28527
+ ...teacherLine ? [
28528
+ {
28529
+ id: "teacher",
28530
+ label: teacherLine,
28531
+ className: "event-compact-row-teacher"
28532
+ }
28533
+ ] : []
28534
+ ],
28535
+ priceLabel: price,
28536
+ action: cta.hidden ? { kind: "status", label: cta.label } : { kind: "action", label: cta.label, href: cta.href }
28537
+ };
28538
+ return /* @__PURE__ */ jsx6(BookingOptionCompactRow, { buttonVariant, option });
28502
28539
  };
28503
28540
 
28504
28541
  // ../blocks/src/system/runtime/nodes/events/shared/EmptyState.tsx
28505
- import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
28542
+ import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
28506
28543
  var EmptyState = ({
28507
28544
  message = "No upcoming events scheduled.",
28508
28545
  className,
@@ -28511,8 +28548,8 @@ var EmptyState = ({
28511
28548
  resetFiltersText = "Reset filters"
28512
28549
  }) => {
28513
28550
  return /* @__PURE__ */ jsxs4("div", { className: `event-list-empty ${className || ""}`, children: [
28514
- /* @__PURE__ */ jsx6("p", { className: "rb-caption status-muted", children: message }),
28515
- hasActiveFilters && onResetFilters && /* @__PURE__ */ jsx6(
28551
+ /* @__PURE__ */ jsx7("p", { className: "rb-caption status-muted", children: message }),
28552
+ hasActiveFilters && onResetFilters && /* @__PURE__ */ jsx7(
28516
28553
  "button",
28517
28554
  {
28518
28555
  type: "button",
@@ -28525,12 +28562,12 @@ var EmptyState = ({
28525
28562
  };
28526
28563
 
28527
28564
  // ../blocks/src/system/runtime/nodes/events/shared/DateTimeTile.tsx
28528
- import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
28565
+ import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
28529
28566
  function DateTimeTile({ startsAt, endsAt, timeZone }) {
28530
28567
  const { date, timeRange } = formatEventDateParts({ startsAt, endsAt, timeZone });
28531
28568
  return /* @__PURE__ */ jsxs5("div", { className: "rb-flex rb-flex-col rb-gap-1", children: [
28532
- /* @__PURE__ */ jsx7("strong", { className: "rb-caption", children: date }),
28533
- /* @__PURE__ */ jsx7("div", { className: "rb-caption", children: timeRange })
28569
+ /* @__PURE__ */ jsx8("strong", { className: "rb-caption", children: date }),
28570
+ /* @__PURE__ */ jsx8("div", { className: "rb-caption", children: timeRange })
28534
28571
  ] });
28535
28572
  }
28536
28573
 
@@ -34891,7 +34928,7 @@ import React4 from "react";
34891
34928
 
34892
34929
  // ../blocks/src/primitives/layout/Section.tsx
34893
34930
  import { forwardRef } from "react";
34894
- import { jsx as jsx8 } from "react/jsx-runtime";
34931
+ import { jsx as jsx9 } from "react/jsx-runtime";
34895
34932
  var Section = forwardRef(function Section2({
34896
34933
  as: Comp = "section",
34897
34934
  children,
@@ -34904,7 +34941,7 @@ var Section = forwardRef(function Section2({
34904
34941
  const overflowClass = allowOverflow ? "rb-overflow-visible" : "rb-overflow-hidden";
34905
34942
  const alwaysClass = clsx_default("rb-relative rb-isolate", overflowClass, className);
34906
34943
  const backgroundStyle = typeof background === "string" && background.trim().length > 0 ? backgroundColorStyle(background.trim()) : void 0;
34907
- return /* @__PURE__ */ jsx8(
34944
+ return /* @__PURE__ */ jsx9(
34908
34945
  Comp,
34909
34946
  {
34910
34947
  ref,
@@ -34918,7 +34955,7 @@ var Section = forwardRef(function Section2({
34918
34955
  var Section_default = Section;
34919
34956
 
34920
34957
  // ../blocks/src/primitives/layout/Stack.tsx
34921
- import { jsx as jsx9 } from "react/jsx-runtime";
34958
+ import { jsx as jsx10 } from "react/jsx-runtime";
34922
34959
  function Stack({
34923
34960
  as: Comp = "div",
34924
34961
  gap = "md",
@@ -34929,7 +34966,7 @@ function Stack({
34929
34966
  "data-slot": dataSlot,
34930
34967
  ...rest
34931
34968
  }) {
34932
- return /* @__PURE__ */ jsx9(
34969
+ return /* @__PURE__ */ jsx10(
34933
34970
  Comp,
34934
34971
  {
34935
34972
  ...rest,
@@ -34959,7 +34996,7 @@ function Stack({
34959
34996
  }
34960
34997
 
34961
34998
  // ../blocks/src/primitives/layout/Inline.tsx
34962
- import { jsx as jsx10 } from "react/jsx-runtime";
34999
+ import { jsx as jsx11 } from "react/jsx-runtime";
34963
35000
  function Inline({
34964
35001
  as: Comp = "div",
34965
35002
  gap = "md",
@@ -34971,7 +35008,7 @@ function Inline({
34971
35008
  "data-slot": dataSlot,
34972
35009
  ...rest
34973
35010
  }) {
34974
- return /* @__PURE__ */ jsx10(
35011
+ return /* @__PURE__ */ jsx11(
34975
35012
  Comp,
34976
35013
  {
34977
35014
  ...rest,
@@ -35003,7 +35040,7 @@ function Inline({
35003
35040
  }
35004
35041
 
35005
35042
  // ../blocks/src/primitives/layout/Grid.tsx
35006
- import { jsx as jsx11 } from "react/jsx-runtime";
35043
+ import { jsx as jsx12 } from "react/jsx-runtime";
35007
35044
  function Grid({
35008
35045
  as: Comp = "div",
35009
35046
  cols = { base: 1, md: 2 },
@@ -35021,7 +35058,7 @@ function Grid({
35021
35058
  colsObj.lg && `rb-lg-grid-cols-${colsObj.lg}`,
35022
35059
  colsObj.xl && `rb-xl-grid-cols-${colsObj.xl}`
35023
35060
  ];
35024
- return /* @__PURE__ */ jsx11(
35061
+ return /* @__PURE__ */ jsx12(
35025
35062
  Comp,
35026
35063
  {
35027
35064
  ...rest,
@@ -35051,7 +35088,7 @@ function Grid({
35051
35088
  }
35052
35089
 
35053
35090
  // ../blocks/src/system/runtime/nodes/layout.tsx
35054
- import { jsx as jsx12 } from "react/jsx-runtime";
35091
+ import { jsx as jsx13 } from "react/jsx-runtime";
35055
35092
  var SectionNode = ({
35056
35093
  blockId: _blockId,
35057
35094
  blockKind: _blockKind,
@@ -35060,7 +35097,7 @@ var SectionNode = ({
35060
35097
  pathBase: _pathBase,
35061
35098
  allowOverflow,
35062
35099
  ...props2
35063
- }) => /* @__PURE__ */ jsx12(Section_default, { ...props2, allowOverflow });
35100
+ }) => /* @__PURE__ */ jsx13(Section_default, { ...props2, allowOverflow });
35064
35101
  var StackNode = ({
35065
35102
  blockId: _blockId,
35066
35103
  blockKind: _blockKind,
@@ -35068,7 +35105,7 @@ var StackNode = ({
35068
35105
  fragmentRegistry: _fragmentRegistry,
35069
35106
  pathBase: _pathBase,
35070
35107
  ...props2
35071
- }) => /* @__PURE__ */ jsx12(Stack, { ...props2 });
35108
+ }) => /* @__PURE__ */ jsx13(Stack, { ...props2 });
35072
35109
  var InlineNode = ({
35073
35110
  blockId: _blockId,
35074
35111
  blockKind: _blockKind,
@@ -35076,7 +35113,7 @@ var InlineNode = ({
35076
35113
  fragmentRegistry: _fragmentRegistry,
35077
35114
  pathBase: _pathBase,
35078
35115
  ...props2
35079
- }) => /* @__PURE__ */ jsx12(Inline, { ...props2 });
35116
+ }) => /* @__PURE__ */ jsx13(Inline, { ...props2 });
35080
35117
  var GridNode = ({
35081
35118
  blockId: _blockId,
35082
35119
  blockKind: _blockKind,
@@ -35084,7 +35121,7 @@ var GridNode = ({
35084
35121
  fragmentRegistry: _fragmentRegistry,
35085
35122
  pathBase: _pathBase,
35086
35123
  ...props2
35087
- }) => /* @__PURE__ */ jsx12(Grid, { ...props2 });
35124
+ }) => /* @__PURE__ */ jsx13(Grid, { ...props2 });
35088
35125
  var DivNode = ({
35089
35126
  blockId: _blockId,
35090
35127
  blockKind: _blockKind,
@@ -35092,7 +35129,7 @@ var DivNode = ({
35092
35129
  fragmentRegistry: _fragmentRegistry,
35093
35130
  pathBase: _pathBase,
35094
35131
  ...props2
35095
- }) => /* @__PURE__ */ jsx12("div", { ...props2 });
35132
+ }) => /* @__PURE__ */ jsx13("div", { ...props2 });
35096
35133
  var FigureNode = ({
35097
35134
  blockId: _blockId,
35098
35135
  blockKind: _blockKind,
@@ -35100,7 +35137,7 @@ var FigureNode = ({
35100
35137
  fragmentRegistry: _fragmentRegistry,
35101
35138
  pathBase: _pathBase,
35102
35139
  ...props2
35103
- }) => /* @__PURE__ */ jsx12("figure", { ...props2 });
35140
+ }) => /* @__PURE__ */ jsx13("figure", { ...props2 });
35104
35141
 
35105
35142
  // ../blocks/src/primitives/content/components/RichText.tsx
35106
35143
  import React2 from "react";
@@ -35144,7 +35181,7 @@ function sanitizeHref(raw) {
35144
35181
  }
35145
35182
 
35146
35183
  // ../blocks/src/primitives/content/components/RichText.tsx
35147
- import { Fragment, jsx as jsx13 } from "react/jsx-runtime";
35184
+ import { Fragment, jsx as jsx14 } from "react/jsx-runtime";
35148
35185
  function parseDimension(value) {
35149
35186
  if (typeof value === "number" && Number.isFinite(value) && value > 0) {
35150
35187
  return Math.round(value);
@@ -35175,10 +35212,10 @@ function renderMarks(text2, marks, key) {
35175
35212
  switch (mark.type) {
35176
35213
  case "bold":
35177
35214
  case "strong":
35178
- return /* @__PURE__ */ jsx13("strong", { children: acc }, `${key}-b`);
35215
+ return /* @__PURE__ */ jsx14("strong", { children: acc }, `${key}-b`);
35179
35216
  case "italic":
35180
35217
  case "em":
35181
- return /* @__PURE__ */ jsx13("em", { children: acc }, `${key}-i`);
35218
+ return /* @__PURE__ */ jsx14("em", { children: acc }, `${key}-i`);
35182
35219
  case "link": {
35183
35220
  if (typeof acc === "string" && acc.length === 0) return acc;
35184
35221
  const attrs = mark.attrs ?? {};
@@ -35186,7 +35223,7 @@ function renderMarks(text2, marks, key) {
35186
35223
  if (!href) return acc;
35187
35224
  const target = typeof attrs.target === "string" && attrs.target.trim().length > 0 ? attrs.target.trim() : void 0;
35188
35225
  const rel = typeof attrs.rel === "string" ? attrs.rel : void 0;
35189
- return /* @__PURE__ */ jsx13("a", { href, target, rel: normalizeRel(target, rel), children: acc }, `${key}-l`);
35226
+ return /* @__PURE__ */ jsx14("a", { href, target, rel: normalizeRel(target, rel), children: acc }, `${key}-l`);
35190
35227
  }
35191
35228
  default:
35192
35229
  return acc;
@@ -35198,25 +35235,25 @@ function renderDoc(node, key, imageResolveContext) {
35198
35235
  const children = node.content?.map((child, index) => renderDoc(child, `${key}-${index}`, imageResolveContext));
35199
35236
  switch (node.type) {
35200
35237
  case "doc":
35201
- return /* @__PURE__ */ jsx13(Fragment, { children });
35238
+ return /* @__PURE__ */ jsx14(Fragment, { children });
35202
35239
  case "paragraph":
35203
- if (!children && !node.text) return /* @__PURE__ */ jsx13("p", {}, key);
35204
- return /* @__PURE__ */ jsx13("p", { children: children ?? renderMarks(node.text ?? "", node.marks, key) }, key);
35240
+ if (!children && !node.text) return /* @__PURE__ */ jsx14("p", {}, key);
35241
+ return /* @__PURE__ */ jsx14("p", { children: children ?? renderMarks(node.text ?? "", node.marks, key) }, key);
35205
35242
  case "heading": {
35206
35243
  const level = Math.min(Math.max(node.attrs?.level ?? 2, 1), 6);
35207
35244
  const headingTag = `h${level}`;
35208
35245
  return React2.createElement(headingTag, { key }, children);
35209
35246
  }
35210
35247
  case "bulletList":
35211
- return /* @__PURE__ */ jsx13("ul", { children }, key);
35248
+ return /* @__PURE__ */ jsx14("ul", { children }, key);
35212
35249
  case "orderedList":
35213
- return /* @__PURE__ */ jsx13("ol", { children }, key);
35250
+ return /* @__PURE__ */ jsx14("ol", { children }, key);
35214
35251
  case "listItem":
35215
- return /* @__PURE__ */ jsx13("li", { children }, key);
35252
+ return /* @__PURE__ */ jsx14("li", { children }, key);
35216
35253
  case "blockquote":
35217
- return /* @__PURE__ */ jsx13("blockquote", { children }, key);
35254
+ return /* @__PURE__ */ jsx14("blockquote", { children }, key);
35218
35255
  case "horizontalRule":
35219
- return /* @__PURE__ */ jsx13("hr", {}, key);
35256
+ return /* @__PURE__ */ jsx14("hr", {}, key);
35220
35257
  case "image": {
35221
35258
  const attrs = node.attrs ?? {};
35222
35259
  const src = typeof attrs.src === "string" ? attrs.src.trim() : "";
@@ -35231,7 +35268,7 @@ function renderDoc(node, key, imageResolveContext) {
35231
35268
  imageResolveContext ?? void 0
35232
35269
  ) ?? "" : "");
35233
35270
  if (!resolvedSrc) return null;
35234
- return /* @__PURE__ */ jsx13(
35271
+ return /* @__PURE__ */ jsx14(
35235
35272
  "img",
35236
35273
  {
35237
35274
  src: resolvedSrc,
@@ -35257,14 +35294,14 @@ function RichText({ as: Comp = "div", className, doc, path }) {
35257
35294
  const content = doc ? renderDoc(doc, "doc", imageResolveContext) : null;
35258
35295
  const dataAttributes = path ? { "data-builder-richtext": path } : void 0;
35259
35296
  const resolvedClassName = className?.trim() || DEFAULT_RICH_TEXT_CLASS;
35260
- return /* @__PURE__ */ jsx13(Comp, { className: resolvedClassName, ...dataAttributes, children: content });
35297
+ return /* @__PURE__ */ jsx14(Comp, { className: resolvedClassName, ...dataAttributes, children: content });
35261
35298
  }
35262
35299
 
35263
35300
  // ../blocks/src/primitives/content/components/Text.tsx
35264
- import { jsx as jsx14 } from "react/jsx-runtime";
35301
+ import { jsx as jsx15 } from "react/jsx-runtime";
35265
35302
  function Text({ as: Comp = "span", children, className = "", path }) {
35266
35303
  const dataAttributes = path ? { "data-builder-text": path } : void 0;
35267
- return /* @__PURE__ */ jsx14(Comp, { className, ...dataAttributes, children });
35304
+ return /* @__PURE__ */ jsx15(Comp, { className, ...dataAttributes, children });
35268
35305
  }
35269
35306
 
35270
35307
  // ../blocks/src/system/manifest/richTextSchema.ts
@@ -35353,13 +35390,13 @@ function coerceRichTextDoc(value) {
35353
35390
  }
35354
35391
 
35355
35392
  // ../blocks/src/system/runtime/nodes/basic.tsx
35356
- import { jsx as jsx15 } from "react/jsx-runtime";
35393
+ import { jsx as jsx16 } from "react/jsx-runtime";
35357
35394
  var TextNode = ({ value, children, blockId: _blockId, blockKind: _blockKind, blockContent: _blockContent, fragmentRegistry: _fragmentRegistry, pathBase: _pathBase, ...rest }) => {
35358
- return /* @__PURE__ */ jsx15(Text, { ...rest, children: value ?? children });
35395
+ return /* @__PURE__ */ jsx16(Text, { ...rest, children: value ?? children });
35359
35396
  };
35360
35397
  var RichTextNode = ({ value, blockId: _blockId, blockKind: _blockKind, blockContent: _blockContent, fragmentRegistry: _fragmentRegistry, pathBase: _pathBase, ...rest }) => {
35361
35398
  const doc = coerceRichTextDoc(value);
35362
- return /* @__PURE__ */ jsx15(RichText, { doc: doc ?? void 0, ...rest });
35399
+ return /* @__PURE__ */ jsx16(RichText, { doc: doc ?? void 0, ...rest });
35363
35400
  };
35364
35401
  var ButtonNode = ({
35365
35402
  value,
@@ -35399,7 +35436,7 @@ var ButtonNode = ({
35399
35436
  extraClassName: className
35400
35437
  }) : className;
35401
35438
  if (resolvedHref) {
35402
- return /* @__PURE__ */ jsx15(
35439
+ return /* @__PURE__ */ jsx16(
35403
35440
  "a",
35404
35441
  {
35405
35442
  href: resolvedHref,
@@ -35411,7 +35448,7 @@ var ButtonNode = ({
35411
35448
  }
35412
35449
  );
35413
35450
  }
35414
- return /* @__PURE__ */ jsx15(
35451
+ return /* @__PURE__ */ jsx16(
35415
35452
  "button",
35416
35453
  {
35417
35454
  type,
@@ -35443,9 +35480,9 @@ var LinkNode = ({
35443
35480
  console.warn("[LinkNode] Missing href for link-required link");
35444
35481
  }
35445
35482
  if (linkRequired) return null;
35446
- return /* @__PURE__ */ jsx15("span", { className, ...rest, children });
35483
+ return /* @__PURE__ */ jsx16("span", { className, ...rest, children });
35447
35484
  }
35448
- return /* @__PURE__ */ jsx15("a", { href: resolvedHref, className, target, rel, ...rest, children });
35485
+ return /* @__PURE__ */ jsx16("a", { href: resolvedHref, className, target, rel, ...rest, children });
35449
35486
  };
35450
35487
 
35451
35488
  // ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/createLucideIcon.js
@@ -35850,7 +35887,7 @@ function getCtaIconComponent(name) {
35850
35887
  }
35851
35888
 
35852
35889
  // ../blocks/src/system/runtime/nodes/icon.tsx
35853
- import { jsx as jsx16 } from "react/jsx-runtime";
35890
+ import { jsx as jsx17 } from "react/jsx-runtime";
35854
35891
  var IconNode = ({
35855
35892
  value,
35856
35893
  title,
@@ -35866,7 +35903,7 @@ var IconNode = ({
35866
35903
  if (!Icon2) return null;
35867
35904
  const ariaLabel = rest["aria-label"];
35868
35905
  const decorative = !ariaLabel && !title;
35869
- return /* @__PURE__ */ jsx16(
35906
+ return /* @__PURE__ */ jsx17(
35870
35907
  Icon2,
35871
35908
  {
35872
35909
  className,
@@ -35878,7 +35915,7 @@ var IconNode = ({
35878
35915
  };
35879
35916
 
35880
35917
  // ../blocks/src/system/runtime/nodes/file-download.tsx
35881
- import { jsx as jsx17, jsxs as jsxs6 } from "react/jsx-runtime";
35918
+ import { jsx as jsx18, jsxs as jsxs6 } from "react/jsx-runtime";
35882
35919
  var FILE_DOWNLOAD_BUTTON_VARIANTS = [
35883
35920
  "primary",
35884
35921
  "secondary",
@@ -35898,13 +35935,13 @@ function displayFilename(value) {
35898
35935
  function iconForMediaType(type) {
35899
35936
  switch (type) {
35900
35937
  case "audio":
35901
- return /* @__PURE__ */ jsx17(FileHeadphone, { "aria-hidden": "true" });
35938
+ return /* @__PURE__ */ jsx18(FileHeadphone, { "aria-hidden": "true" });
35902
35939
  case "document":
35903
- return /* @__PURE__ */ jsx17(FileText, { "aria-hidden": "true" });
35940
+ return /* @__PURE__ */ jsx18(FileText, { "aria-hidden": "true" });
35904
35941
  case "spreadsheet":
35905
- return /* @__PURE__ */ jsx17(FileSpreadsheet, { "aria-hidden": "true" });
35942
+ return /* @__PURE__ */ jsx18(FileSpreadsheet, { "aria-hidden": "true" });
35906
35943
  case "archive":
35907
- return /* @__PURE__ */ jsx17(FileArchive, { "aria-hidden": "true" });
35944
+ return /* @__PURE__ */ jsx18(FileArchive, { "aria-hidden": "true" });
35908
35945
  }
35909
35946
  }
35910
35947
  function normalizeButtonVariant(value) {
@@ -35926,9 +35963,9 @@ function FileDownloadNode({
35926
35963
  const body = description?.trim();
35927
35964
  const label = buttonLabel?.trim() || "Download";
35928
35965
  const variant = normalizeButtonVariant(buttonVariant);
35929
- return /* @__PURE__ */ jsx17("div", { className, children: /* @__PURE__ */ jsxs6("div", { className: "card-surface rb-flex rb-flex-col rb-gap-4 rb-p-5 rb-sm-flex-row rb-sm-items-center rb-sm-justify-between", children: [
35966
+ return /* @__PURE__ */ jsx18("div", { className, children: /* @__PURE__ */ jsxs6("div", { className: "card-surface rb-flex rb-flex-col rb-gap-4 rb-p-5 rb-sm-flex-row rb-sm-items-center rb-sm-justify-between", children: [
35930
35967
  /* @__PURE__ */ jsxs6("div", { className: "rb-flex rb-min-w-0 rb-items-start rb-gap-3", children: [
35931
- /* @__PURE__ */ jsx17(
35968
+ /* @__PURE__ */ jsx18(
35932
35969
  "span",
35933
35970
  {
35934
35971
  className: "rb-mt-1 rb-flex rb-h-10 rb-w-10 rb-shrink-0 rb-items-center rb-justify-center rb-rounded-full rb-border",
@@ -35937,7 +35974,7 @@ function FileDownloadNode({
35937
35974
  }
35938
35975
  ),
35939
35976
  /* @__PURE__ */ jsxs6("div", { className: "rb-min-w-0 rb-space-y-1", children: [
35940
- /* @__PURE__ */ jsx17(
35977
+ /* @__PURE__ */ jsx18(
35941
35978
  "h2",
35942
35979
  {
35943
35980
  className: "rb-m-0 rb-text-lg rb-font-semibold",
@@ -35945,7 +35982,7 @@ function FileDownloadNode({
35945
35982
  children: heading
35946
35983
  }
35947
35984
  ),
35948
- body ? /* @__PURE__ */ jsx17(
35985
+ body ? /* @__PURE__ */ jsx18(
35949
35986
  "p",
35950
35987
  {
35951
35988
  className: "rb-m-0 rb-text-sm",
@@ -35953,7 +35990,7 @@ function FileDownloadNode({
35953
35990
  children: body
35954
35991
  }
35955
35992
  ) : null,
35956
- /* @__PURE__ */ jsx17(
35993
+ /* @__PURE__ */ jsx18(
35957
35994
  "p",
35958
35995
  {
35959
35996
  className: "rb-m-0 rb-truncate rb-text-xs",
@@ -35974,7 +36011,7 @@ function FileDownloadNode({
35974
36011
  extraClassName: "rb-inline-flex rb-shrink-0 rb-items-center rb-justify-center rb-gap-2"
35975
36012
  }),
35976
36013
  children: [
35977
- /* @__PURE__ */ jsx17(Download, { "aria-hidden": "true" }),
36014
+ /* @__PURE__ */ jsx18(Download, { "aria-hidden": "true" }),
35978
36015
  label
35979
36016
  ]
35980
36017
  }
@@ -36126,7 +36163,7 @@ function getVideoEmbed(url) {
36126
36163
  }
36127
36164
 
36128
36165
  // ../blocks/src/system/runtime/nodes/video-embed.tsx
36129
- import { jsx as jsx18, jsxs as jsxs7 } from "react/jsx-runtime";
36166
+ import { jsx as jsx19, jsxs as jsxs7 } from "react/jsx-runtime";
36130
36167
  var VideoEmbedNode = ({
36131
36168
  value,
36132
36169
  className,
@@ -36146,7 +36183,7 @@ var VideoEmbedNode = ({
36146
36183
  }
36147
36184
  const embedInfo = getVideoEmbed(value);
36148
36185
  if (!embedInfo) {
36149
- return /* @__PURE__ */ jsx18(
36186
+ return /* @__PURE__ */ jsx19(
36150
36187
  "div",
36151
36188
  {
36152
36189
  className,
@@ -36171,7 +36208,7 @@ var VideoEmbedNode = ({
36171
36208
  const title = getVideoTitle(embedInfo);
36172
36209
  const loadingStrategy = getVideoEmbedLoadingStrategy(embedInfo.provider);
36173
36210
  const shouldDeferSrc = loadingStrategy === "defer-until-near-viewport";
36174
- return /* @__PURE__ */ jsx18("div", { ...rest, children: /* @__PURE__ */ jsxs7(
36211
+ return /* @__PURE__ */ jsx19("div", { ...rest, children: /* @__PURE__ */ jsxs7(
36175
36212
  "div",
36176
36213
  {
36177
36214
  className,
@@ -36183,7 +36220,7 @@ var VideoEmbedNode = ({
36183
36220
  width: "100%"
36184
36221
  },
36185
36222
  children: [
36186
- /* @__PURE__ */ jsx18(
36223
+ /* @__PURE__ */ jsx19(
36187
36224
  "iframe",
36188
36225
  {
36189
36226
  src: shouldDeferSrc ? void 0 : embedInfo.embedUrl,
@@ -36204,7 +36241,7 @@ var VideoEmbedNode = ({
36204
36241
  allowFullScreen: true
36205
36242
  }
36206
36243
  ),
36207
- shouldDeferSrc ? /* @__PURE__ */ jsx18("noscript", { children: /* @__PURE__ */ jsx18("a", { href: embedInfo.url, children: "View on Instagram" }) }) : null
36244
+ shouldDeferSrc ? /* @__PURE__ */ jsx19("noscript", { children: /* @__PURE__ */ jsx19("a", { href: embedInfo.url, children: "View on Instagram" }) }) : null
36208
36245
  ]
36209
36246
  }
36210
36247
  ) });
@@ -36247,7 +36284,7 @@ function normalizeAspectRatio(value) {
36247
36284
  import React3 from "react";
36248
36285
 
36249
36286
  // ../blocks/src/system/runtime/islands/ssr.tsx
36250
- import { jsx as jsx19 } from "react/jsx-runtime";
36287
+ import { jsx as jsx20 } from "react/jsx-runtime";
36251
36288
  function getIslandRootProps(kind, id) {
36252
36289
  const resolved = { "data-rb-island": kind };
36253
36290
  if (id) resolved["data-rb-island-id"] = id;
@@ -36257,7 +36294,7 @@ function serializeIslandProps(value) {
36257
36294
  return JSON.stringify(value).replace(/</g, "\\u003c");
36258
36295
  }
36259
36296
  function IslandPropsScript({ value }) {
36260
- return /* @__PURE__ */ jsx19(
36297
+ return /* @__PURE__ */ jsx20(
36261
36298
  "script",
36262
36299
  {
36263
36300
  type: "application/json",
@@ -36304,7 +36341,7 @@ function getCarouselSlidesToShowCssVars(value) {
36304
36341
  }
36305
36342
 
36306
36343
  // ../blocks/src/system/runtime/nodes/carousel.server.tsx
36307
- import { jsx as jsx20, jsxs as jsxs8 } from "react/jsx-runtime";
36344
+ import { jsx as jsx21, jsxs as jsxs8 } from "react/jsx-runtime";
36308
36345
  var CarouselNodeSSR = ({
36309
36346
  blockId,
36310
36347
  children,
@@ -36335,7 +36372,7 @@ var CarouselNodeSSR = ({
36335
36372
  "data-show-controls": controlsEnabled ? "true" : "false",
36336
36373
  ...getIslandRootProps("carousel", blockId),
36337
36374
  children: [
36338
- /* @__PURE__ */ jsx20(
36375
+ /* @__PURE__ */ jsx21(
36339
36376
  IslandPropsScript,
36340
36377
  {
36341
36378
  value: {
@@ -36350,7 +36387,7 @@ var CarouselNodeSSR = ({
36350
36387
  }
36351
36388
  }
36352
36389
  ),
36353
- /* @__PURE__ */ jsx20("div", { className: "carousel-frame rb-overflow-hidden rb-w-full", children: /* @__PURE__ */ jsx20(
36390
+ /* @__PURE__ */ jsx21("div", { className: "carousel-frame rb-overflow-hidden rb-w-full", children: /* @__PURE__ */ jsx21(
36354
36391
  "div",
36355
36392
  {
36356
36393
  className: clsx_default(
@@ -36358,7 +36395,7 @@ var CarouselNodeSSR = ({
36358
36395
  "rb-overflow-x-auto",
36359
36396
  shouldSnap && "rb-snap-x rb-snap-mandatory"
36360
36397
  ),
36361
- children: /* @__PURE__ */ jsx20("div", { className: "carousel-track rb-flex rb-w-full", children: slides.map((slide, index) => /* @__PURE__ */ jsx20(
36398
+ children: /* @__PURE__ */ jsx21("div", { className: "carousel-track rb-flex rb-w-full", children: slides.map((slide, index) => /* @__PURE__ */ jsx21(
36362
36399
  "div",
36363
36400
  {
36364
36401
  "data-carousel-slide": true,
@@ -36387,7 +36424,7 @@ function normalizeBoolean2(value) {
36387
36424
  }
36388
36425
 
36389
36426
  // ../blocks/src/system/runtime/nodes/accordion.server.tsx
36390
- import { jsx as jsx21, jsxs as jsxs9 } from "react/jsx-runtime";
36427
+ import { jsx as jsx22, jsxs as jsxs9 } from "react/jsx-runtime";
36391
36428
  var ACCORDION_ICONS = {
36392
36429
  Plus,
36393
36430
  Minus,
@@ -36412,7 +36449,7 @@ var AccordionNodeSSR = ({
36412
36449
  "data-default-value": Array.isArray(defaultValue) ? defaultValue.join(",") : defaultValue,
36413
36450
  ...getIslandRootProps("accordion", blockId),
36414
36451
  children: [
36415
- /* @__PURE__ */ jsx21(IslandPropsScript, { value: { type, defaultValue, collapsible } }),
36452
+ /* @__PURE__ */ jsx22(IslandPropsScript, { value: { type, defaultValue, collapsible } }),
36416
36453
  children
36417
36454
  ]
36418
36455
  }
@@ -36442,13 +36479,13 @@ var AccordionItemNodeSSR = ({
36442
36479
  "data-state": "closed",
36443
36480
  children: [
36444
36481
  /* @__PURE__ */ jsxs9("div", { className: "accordion-trigger", role: "button", tabIndex: 0, "aria-expanded": "false", children: [
36445
- /* @__PURE__ */ jsx21("span", { className: "accordion-trigger-text", children: resolveNode(triggerSource) }),
36482
+ /* @__PURE__ */ jsx22("span", { className: "accordion-trigger-text", children: resolveNode(triggerSource) }),
36446
36483
  /* @__PURE__ */ jsxs9("span", { className: "accordion-icon", "aria-hidden": "true", children: [
36447
- ClosedIconComponent && /* @__PURE__ */ jsx21(ClosedIconComponent, { className: "accordion-icon-closed" }),
36448
- OpenIconComponent && /* @__PURE__ */ jsx21(OpenIconComponent, { className: "accordion-icon-open" })
36484
+ ClosedIconComponent && /* @__PURE__ */ jsx22(ClosedIconComponent, { className: "accordion-icon-closed" }),
36485
+ OpenIconComponent && /* @__PURE__ */ jsx22(OpenIconComponent, { className: "accordion-icon-open" })
36449
36486
  ] })
36450
36487
  ] }),
36451
- /* @__PURE__ */ jsx21(
36488
+ /* @__PURE__ */ jsx22(
36452
36489
  "div",
36453
36490
  {
36454
36491
  className: "accordion-content",
@@ -36457,7 +36494,7 @@ var AccordionItemNodeSSR = ({
36457
36494
  hidden: true,
36458
36495
  "aria-hidden": "true",
36459
36496
  inert: true,
36460
- children: /* @__PURE__ */ jsx21("div", { className: "accordion-content-inner", children: resolveNode(contentSource) })
36497
+ children: /* @__PURE__ */ jsx22("div", { className: "accordion-content-inner", children: resolveNode(contentSource) })
36461
36498
  }
36462
36499
  )
36463
36500
  ]
@@ -36467,12 +36504,12 @@ var AccordionItemNodeSSR = ({
36467
36504
  function resolveNode(value) {
36468
36505
  if (typeof value === "string" || typeof value === "number") return String(value);
36469
36506
  const doc = coerceRichTextDoc(value);
36470
- if (doc) return /* @__PURE__ */ jsx21(RichText, { doc });
36507
+ if (doc) return /* @__PURE__ */ jsx22(RichText, { doc });
36471
36508
  return value;
36472
36509
  }
36473
36510
 
36474
36511
  // ../blocks/src/system/runtime/nodes/header-section.server.tsx
36475
- import { jsx as jsx22, jsxs as jsxs10 } from "react/jsx-runtime";
36512
+ import { jsx as jsx23, jsxs as jsxs10 } from "react/jsx-runtime";
36476
36513
  function hasShrinkClasses(className) {
36477
36514
  return typeof className === "string" && className.includes("rb-header-shrink");
36478
36515
  }
@@ -36506,8 +36543,8 @@ var HeaderSectionNode = ({
36506
36543
  "data-block-id": blockId ?? void 0,
36507
36544
  "data-preview-site-chrome-surface": previewSiteChromeSurface,
36508
36545
  children: [
36509
- /* @__PURE__ */ jsx22(IslandPropsScript, { value: { enabled: hasShrinkClasses(className) } }),
36510
- /* @__PURE__ */ jsx22(
36546
+ /* @__PURE__ */ jsx23(IslandPropsScript, { value: { enabled: hasShrinkClasses(className) } }),
36547
+ /* @__PURE__ */ jsx23(
36511
36548
  Section_default,
36512
36549
  {
36513
36550
  as: asProp,
@@ -36526,7 +36563,7 @@ var HeaderSectionNode = ({
36526
36563
  var header_section_server_default = HeaderSectionNode;
36527
36564
 
36528
36565
  // ../blocks/src/system/runtime/nodes/spinner.tsx
36529
- import { jsx as jsx23, jsxs as jsxs11 } from "react/jsx-runtime";
36566
+ import { jsx as jsx24, jsxs as jsxs11 } from "react/jsx-runtime";
36530
36567
  function resolveColorStyle(color) {
36531
36568
  switch (color) {
36532
36569
  case "inherit":
@@ -36570,7 +36607,7 @@ function SpinnerNode({
36570
36607
  ...rest,
36571
36608
  children: [
36572
36609
  /* @__PURE__ */ jsxs11("svg", { viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
36573
- /* @__PURE__ */ jsx23(
36610
+ /* @__PURE__ */ jsx24(
36574
36611
  "circle",
36575
36612
  {
36576
36613
  cx: "12",
@@ -36581,7 +36618,7 @@ function SpinnerNode({
36581
36618
  opacity: trackOpacity
36582
36619
  }
36583
36620
  ),
36584
- /* @__PURE__ */ jsx23(
36621
+ /* @__PURE__ */ jsx24(
36585
36622
  "path",
36586
36623
  {
36587
36624
  d: "M12 2a10 10 0 0 1 10 10",
@@ -36591,14 +36628,14 @@ function SpinnerNode({
36591
36628
  }
36592
36629
  )
36593
36630
  ] }),
36594
- srLabel ? /* @__PURE__ */ jsx23("span", { className: "rb-sr-only", children: srLabel }) : null
36631
+ srLabel ? /* @__PURE__ */ jsx24("span", { className: "rb-sr-only", children: srLabel }) : null
36595
36632
  ]
36596
36633
  }
36597
36634
  );
36598
36635
  }
36599
36636
 
36600
36637
  // ../blocks/src/system/runtime/nodes/booking-form.interactive.ts
36601
- import { z as z64 } from "zod";
36638
+ import { z as z65 } from "zod";
36602
36639
 
36603
36640
  // ../blocks/src/system/runtime/nodes/booking-form.state.ts
36604
36641
  function toTrimmedString(value) {
@@ -36735,7 +36772,8 @@ function isRecord4(value) {
36735
36772
  return typeof value === "object" && value !== null;
36736
36773
  }
36737
36774
 
36738
- // ../blocks/src/system/runtime/nodes/booking-form.interactive.ts
36775
+ // ../blocks/src/system/runtime/nodes/booking-runtime-sources.ts
36776
+ import { z as z64 } from "zod";
36739
36777
  var bookingFieldOptionSchema = z64.object({
36740
36778
  value: z64.string(),
36741
36779
  label: z64.string()
@@ -36789,100 +36827,102 @@ var bookingSourceFormSchema = z64.object({
36789
36827
  createdAt: z64.string(),
36790
36828
  updatedAt: z64.string()
36791
36829
  });
36792
- var blockBookingPaymentTermsAvailabilitySchema = z64.union([
36793
- z64.object({
36794
- kind: z64.literal("available"),
36830
+
36831
+ // ../blocks/src/system/runtime/nodes/booking-form.interactive.ts
36832
+ var blockBookingPaymentTermsAvailabilitySchema = z65.union([
36833
+ z65.object({
36834
+ kind: z65.literal("available"),
36795
36835
  paymentTerms: blockBookingPaymentTermsSchema
36796
36836
  }),
36797
- z64.object({
36798
- kind: z64.literal("pending_stripe_setup"),
36837
+ z65.object({
36838
+ kind: z65.literal("pending_stripe_setup"),
36799
36839
  paymentTerms: blockBookingPaymentTermsSchema,
36800
- reason: z64.literal("online_payment_configured_before_launch")
36840
+ reason: z65.literal("online_payment_configured_before_launch")
36801
36841
  })
36802
36842
  ]);
36803
- var bookingServiceSchema = z64.object({
36804
- id: z64.string(),
36805
- siteId: z64.string(),
36806
- title: z64.string(),
36807
- description: z64.string().nullable().optional().transform((value) => value ?? void 0),
36808
- durationMinutes: z64.number().optional(),
36809
- priceAmount: z64.number().nullable().optional(),
36810
- priceCurrency: z64.string().nullable().optional(),
36843
+ var bookingServiceSchema = z65.object({
36844
+ id: z65.string(),
36845
+ siteId: z65.string(),
36846
+ title: z65.string(),
36847
+ description: z65.string().nullable().optional().transform((value) => value ?? void 0),
36848
+ durationMinutes: z65.number().optional(),
36849
+ priceAmount: z65.number().nullable().optional(),
36850
+ priceCurrency: z65.string().nullable().optional(),
36811
36851
  paymentTerms: blockBookingPaymentTermsSchema.optional(),
36812
36852
  paymentTermsAvailability: blockBookingPaymentTermsAvailabilitySchema.optional()
36813
36853
  });
36814
- var bookingServicesSourceSchema = z64.union([
36815
- z64.array(bookingServiceSchema),
36816
- z64.object({
36817
- services: z64.array(bookingServiceSchema).optional()
36854
+ var bookingServicesSourceSchema = z65.union([
36855
+ z65.array(bookingServiceSchema),
36856
+ z65.object({
36857
+ services: z65.array(bookingServiceSchema).optional()
36818
36858
  }),
36819
- z64.record(z64.string(), bookingServiceSchema)
36859
+ z65.record(z65.string(), bookingServiceSchema)
36820
36860
  ]);
36821
- var bookingConfigSchema = z64.object({
36822
- id: z64.string(),
36823
- name: z64.string(),
36824
- slug: z64.string(),
36861
+ var bookingConfigSchema = z65.object({
36862
+ id: z65.string(),
36863
+ name: z65.string(),
36864
+ slug: z65.string(),
36825
36865
  settings: bookingSettingsSchema.optional(),
36826
- schema: z64.object({
36827
- version: z64.string().optional(),
36828
- fields: z64.array(bookingFieldSchema)
36866
+ schema: z65.object({
36867
+ version: z65.string().optional(),
36868
+ fields: z65.array(bookingFieldSchema)
36829
36869
  }).optional()
36830
36870
  });
36831
- var bookingSourceSchema = z64.object({
36832
- siteId: z64.string().optional(),
36833
- apiBaseUrl: z64.string().optional(),
36834
- portalToken: z64.string().nullable().optional(),
36835
- formId: z64.string().optional(),
36836
- serviceId: z64.string().nullable().optional(),
36837
- resourceId: z64.string().nullable().optional(),
36838
- initialData: z64.record(z64.string(), z64.unknown()).nullable().optional(),
36839
- noticeMessage: z64.string().nullable().optional(),
36840
- requiresServiceSelection: z64.boolean().optional(),
36841
- requiresResourceSelection: z64.boolean().optional(),
36842
- shouldAutoSelectSingleResource: z64.boolean().optional(),
36843
- rebookContext: z64.object({
36844
- kind: z64.literal("portal_rebook")
36871
+ var bookingSourceSchema = z65.object({
36872
+ siteId: z65.string().optional(),
36873
+ apiBaseUrl: z65.string().optional(),
36874
+ portalToken: z65.string().nullable().optional(),
36875
+ formId: z65.string().optional(),
36876
+ serviceId: z65.string().nullable().optional(),
36877
+ resourceId: z65.string().nullable().optional(),
36878
+ initialData: z65.record(z65.string(), z65.unknown()).nullable().optional(),
36879
+ noticeMessage: z65.string().nullable().optional(),
36880
+ requiresServiceSelection: z65.boolean().optional(),
36881
+ requiresResourceSelection: z65.boolean().optional(),
36882
+ shouldAutoSelectSingleResource: z65.boolean().optional(),
36883
+ rebookContext: z65.object({
36884
+ kind: z65.literal("portal_rebook")
36845
36885
  }).nullable().optional(),
36846
- submitLabel: z64.string().nullable().optional(),
36847
- successMessage: z64.string().nullable().optional(),
36886
+ submitLabel: z65.string().nullable().optional(),
36887
+ successMessage: z65.string().nullable().optional(),
36848
36888
  form: bookingSourceFormSchema.nullable().optional(),
36849
36889
  services: bookingServicesSourceSchema.nullable().optional(),
36850
- spamProtectionEnabled: z64.boolean().optional(),
36851
- className: z64.string().nullable().optional()
36852
- });
36853
- var bookingDisplaySchema = z64.object({
36854
- kind: z64.literal("booking-form"),
36855
- state: z64.enum(["missing", "ready"]),
36856
- className: z64.string().nullable(),
36857
- submitLabel: z64.string(),
36858
- successMessage: z64.string().nullable(),
36859
- message: z64.string().nullable()
36860
- });
36861
- var bookingHydrationSchema = z64.object({
36862
- formId: z64.string().nullable(),
36863
- serviceId: z64.string().nullable(),
36864
- resourceId: z64.string().nullable(),
36865
- initialData: z64.record(z64.string(), z64.unknown()).nullable().optional(),
36866
- noticeMessage: z64.string().nullable().optional(),
36867
- requiresServiceSelection: z64.boolean().optional(),
36868
- requiresResourceSelection: z64.boolean().optional(),
36869
- shouldAutoSelectSingleResource: z64.boolean().optional(),
36870
- rebookContext: z64.object({
36871
- kind: z64.literal("portal_rebook")
36890
+ spamProtectionEnabled: z65.boolean().optional(),
36891
+ className: z65.string().nullable().optional()
36892
+ });
36893
+ var bookingDisplaySchema = z65.object({
36894
+ kind: z65.literal("booking-form"),
36895
+ state: z65.enum(["missing", "ready"]),
36896
+ className: z65.string().nullable(),
36897
+ submitLabel: z65.string(),
36898
+ successMessage: z65.string().nullable(),
36899
+ message: z65.string().nullable()
36900
+ });
36901
+ var bookingHydrationSchema = z65.object({
36902
+ formId: z65.string().nullable(),
36903
+ serviceId: z65.string().nullable(),
36904
+ resourceId: z65.string().nullable(),
36905
+ initialData: z65.record(z65.string(), z65.unknown()).nullable().optional(),
36906
+ noticeMessage: z65.string().nullable().optional(),
36907
+ requiresServiceSelection: z65.boolean().optional(),
36908
+ requiresResourceSelection: z65.boolean().optional(),
36909
+ shouldAutoSelectSingleResource: z65.boolean().optional(),
36910
+ rebookContext: z65.object({
36911
+ kind: z65.literal("portal_rebook")
36872
36912
  }).nullable().optional(),
36873
36913
  form: bookingConfigSchema.nullable(),
36874
- services: z64.array(bookingServiceSchema),
36875
- spamProtectionEnabled: z64.boolean().optional()
36914
+ services: z65.array(bookingServiceSchema),
36915
+ spamProtectionEnabled: z65.boolean().optional()
36876
36916
  });
36877
- var bookingRenderSchema = z64.object({
36917
+ var bookingRenderSchema = z65.object({
36878
36918
  display: bookingDisplaySchema,
36879
36919
  hydration: bookingHydrationSchema
36880
36920
  });
36881
36921
  var bookingFormIslandMetaCodec = createZodCodec(
36882
- z64.object({
36883
- siteId: z64.string().optional(),
36884
- apiBaseUrl: z64.string().optional(),
36885
- portalToken: z64.string().nullable().optional()
36922
+ z65.object({
36923
+ siteId: z65.string().optional(),
36924
+ apiBaseUrl: z65.string().optional(),
36925
+ portalToken: z65.string().nullable().optional()
36886
36926
  })
36887
36927
  );
36888
36928
  var bookingFormIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -36953,7 +36993,7 @@ function buildBookingFormInteractiveIslandProps(props2) {
36953
36993
  }
36954
36994
 
36955
36995
  // ../blocks/src/system/runtime/nodes/booking-form.server.tsx
36956
- import { Fragment as Fragment2, jsx as jsx24, jsxs as jsxs12 } from "react/jsx-runtime";
36996
+ import { Fragment as Fragment2, jsx as jsx25, jsxs as jsxs12 } from "react/jsx-runtime";
36957
36997
  function BookingFormSSR({
36958
36998
  blockId,
36959
36999
  siteId,
@@ -37003,10 +37043,10 @@ function BookingFormSSR({
37003
37043
  className: `booking-form-ssr ${className ?? ""}`.trim(),
37004
37044
  ...getIslandRootProps("booking-form", blockId),
37005
37045
  children: [
37006
- /* @__PURE__ */ jsx24(IslandPropsScript, { value: islandProps }),
37007
- /* @__PURE__ */ jsx24("div", { className: "booking-form-ssr__summary", children: display.state === "missing" ? /* @__PURE__ */ jsx24("p", { className: "booking-form-ssr__error", children: display.message }) : /* @__PURE__ */ jsxs12(Fragment2, { children: [
37008
- /* @__PURE__ */ jsx24("strong", { children: display.submitLabel }),
37009
- display.successMessage ? /* @__PURE__ */ jsx24("p", { className: "booking-form-ssr__success", children: display.successMessage }) : null
37046
+ /* @__PURE__ */ jsx25(IslandPropsScript, { value: islandProps }),
37047
+ /* @__PURE__ */ jsx25("div", { className: "booking-form-ssr__summary", children: display.state === "missing" ? /* @__PURE__ */ jsx25("p", { className: "booking-form-ssr__error", children: display.message }) : /* @__PURE__ */ jsxs12(Fragment2, { children: [
37048
+ /* @__PURE__ */ jsx25("strong", { children: display.submitLabel }),
37049
+ display.successMessage ? /* @__PURE__ */ jsx25("p", { className: "booking-form-ssr__success", children: display.successMessage }) : null
37010
37050
  ] }) }),
37011
37051
  children
37012
37052
  ]
@@ -37114,21 +37154,21 @@ function filterMembershipsForEvent(siteMemberships, event) {
37114
37154
  }
37115
37155
 
37116
37156
  // ../blocks/src/system/runtime/nodes/event-details/CoursePricingDisplay.tsx
37117
- import { jsx as jsx25, jsxs as jsxs13 } from "react/jsx-runtime";
37157
+ import { jsx as jsx26, jsxs as jsxs13 } from "react/jsx-runtime";
37118
37158
  function CoursePricingDisplay({
37119
37159
  pricing,
37120
37160
  acceptedItems
37121
37161
  }) {
37122
37162
  return /* @__PURE__ */ jsxs13("div", { className: "rb-mt-6", children: [
37123
- /* @__PURE__ */ jsx25("div", { className: "rb-label rb-mb-2", children: pricing.selectableOptions.length > 1 ? "Pricing" : "Cost" }),
37124
- pricing.selectableOptions.length > 1 ? /* @__PURE__ */ jsx25("div", { className: "rb-flex rb-flex-col rb-gap-2", children: pricing.selectableOptions.map((option) => /* @__PURE__ */ jsxs13("div", { children: [
37163
+ /* @__PURE__ */ jsx26("div", { className: "rb-label rb-mb-2", children: pricing.selectableOptions.length > 1 ? "Pricing" : "Cost" }),
37164
+ pricing.selectableOptions.length > 1 ? /* @__PURE__ */ jsx26("div", { className: "rb-flex rb-flex-col rb-gap-2", children: pricing.selectableOptions.map((option) => /* @__PURE__ */ jsxs13("div", { children: [
37125
37165
  /* @__PURE__ */ jsxs13("strong", { children: [
37126
37166
  option.name,
37127
37167
  ": ",
37128
37168
  formatCoursePriceAmount(option.priceAmount, pricing.currency)
37129
37169
  ] }),
37130
- option.description ? /* @__PURE__ */ jsx25("p", { className: "rb-caption status-muted", children: option.description }) : null
37131
- ] }, option.id)) }) : /* @__PURE__ */ jsx25("p", { children: /* @__PURE__ */ jsx25("strong", { children: formatCoursePriceDisplay(pricing.display) }) }),
37170
+ option.description ? /* @__PURE__ */ jsx26("p", { className: "rb-caption status-muted", children: option.description }) : null
37171
+ ] }, option.id)) }) : /* @__PURE__ */ jsx26("p", { children: /* @__PURE__ */ jsx26("strong", { children: formatCoursePriceDisplay(pricing.display) }) }),
37132
37172
  acceptedItems.length > 0 ? /* @__PURE__ */ jsxs13("p", { className: "rb-caption rb-mt-1", children: [
37133
37173
  "You can also attend with: ",
37134
37174
  acceptedItems.join(", ")
@@ -37137,7 +37177,7 @@ function CoursePricingDisplay({
37137
37177
  }
37138
37178
 
37139
37179
  // ../blocks/src/system/runtime/nodes/event-details/view.tsx
37140
- import { Fragment as Fragment3, jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
37180
+ import { Fragment as Fragment3, jsx as jsx27, jsxs as jsxs14 } from "react/jsx-runtime";
37141
37181
  function formatAutoApplyDiscountLine(preview, currency) {
37142
37182
  const rate = preview.discountType === "percent" ? `${preview.discountPercent}% off` : `${formatCoursePriceAmount(preview.discountAmountCents, currency)} off`;
37143
37183
  const label = preview.publicLabel.trim() || "Discount";
@@ -37147,7 +37187,7 @@ function TeamMemberName({
37147
37187
  name,
37148
37188
  profilePath
37149
37189
  }) {
37150
- return profilePath ? /* @__PURE__ */ jsx26("a", { href: profilePath, className: "rb-hover-opacity-80", children: /* @__PURE__ */ jsx26("strong", { children: name }) }) : /* @__PURE__ */ jsx26("strong", { children: name });
37190
+ return profilePath ? /* @__PURE__ */ jsx27("a", { href: profilePath, className: "rb-hover-opacity-80", children: /* @__PURE__ */ jsx27("strong", { children: name }) }) : /* @__PURE__ */ jsx27("strong", { children: name });
37151
37191
  }
37152
37192
  function EventDetailsView({
37153
37193
  selection,
@@ -37166,7 +37206,7 @@ function EventDetailsView({
37166
37206
  }) {
37167
37207
  const selected = selection.selected;
37168
37208
  if (!selected) {
37169
- return /* @__PURE__ */ jsx26("p", { className: "rb-caption status-muted", children: "No upcoming dates scheduled." });
37209
+ return /* @__PURE__ */ jsx27("p", { className: "rb-caption status-muted", children: "No upcoming dates scheduled." });
37170
37210
  }
37171
37211
  const venue = showVenue ? selected.venue : void 0;
37172
37212
  const isDropIn = selected.kind !== "course_session" && selected.requiresRegistration === false;
@@ -37192,7 +37232,7 @@ function EventDetailsView({
37192
37232
  /* @__PURE__ */ jsxs14("div", { className: "rb-grid rb-grid-cols-1 rb-gap-6 rb-items-start rb-sm-grid-cols-2", children: [
37193
37233
  /* @__PURE__ */ jsxs14("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
37194
37234
  /* @__PURE__ */ jsxs14("div", { children: [
37195
- /* @__PURE__ */ jsx26("div", { className: "rb-label rb-mb-2", children: selection.mode === "next" ? "Next date" : "Date" }),
37235
+ /* @__PURE__ */ jsx27("div", { className: "rb-label rb-mb-2", children: selection.mode === "next" ? "Next date" : "Date" }),
37196
37236
  (() => {
37197
37237
  const { date, timeRange } = formatEventDateParts({
37198
37238
  startsAt: selected.startsAt,
@@ -37200,61 +37240,61 @@ function EventDetailsView({
37200
37240
  timeZone: selection.timeZone
37201
37241
  });
37202
37242
  return /* @__PURE__ */ jsxs14(Fragment3, { children: [
37203
- /* @__PURE__ */ jsx26("p", { children: /* @__PURE__ */ jsx26("strong", { children: date }) }),
37204
- /* @__PURE__ */ jsx26("p", { className: "rb-caption", children: timeRange })
37243
+ /* @__PURE__ */ jsx27("p", { children: /* @__PURE__ */ jsx27("strong", { children: date }) }),
37244
+ /* @__PURE__ */ jsx27("p", { className: "rb-caption", children: timeRange })
37205
37245
  ] });
37206
37246
  })()
37207
37247
  ] }),
37208
37248
  venue ? /* @__PURE__ */ jsxs14("div", { className: "rb-mt-6", children: [
37209
- /* @__PURE__ */ jsx26("div", { className: "rb-label rb-mb-2", children: "Venue" }),
37210
- /* @__PURE__ */ jsx26("p", { children: /* @__PURE__ */ jsx26("strong", { children: venue.name }) }),
37211
- venue.address ? /* @__PURE__ */ jsx26("p", { className: "rb-caption", children: venue.address }) : null
37249
+ /* @__PURE__ */ jsx27("div", { className: "rb-label rb-mb-2", children: "Venue" }),
37250
+ /* @__PURE__ */ jsx27("p", { children: /* @__PURE__ */ jsx27("strong", { children: venue.name }) }),
37251
+ venue.address ? /* @__PURE__ */ jsx27("p", { className: "rb-caption", children: venue.address }) : null
37212
37252
  ] }) : null,
37213
37253
  teamMembers.length > 0 ? /* @__PURE__ */ jsxs14("div", { className: "rb-mt-6", children: [
37214
- /* @__PURE__ */ jsx26("div", { className: "rb-label rb-mb-2", children: "Team members" }),
37215
- /* @__PURE__ */ jsx26("div", { className: "rb-flex rb-flex-col rb-gap-3", children: teamMembers.map((teamMember) => /* @__PURE__ */ jsxs14("div", { children: [
37216
- /* @__PURE__ */ jsx26("p", { children: /* @__PURE__ */ jsx26(
37254
+ /* @__PURE__ */ jsx27("div", { className: "rb-label rb-mb-2", children: "Team members" }),
37255
+ /* @__PURE__ */ jsx27("div", { className: "rb-flex rb-flex-col rb-gap-3", children: teamMembers.map((teamMember) => /* @__PURE__ */ jsxs14("div", { children: [
37256
+ /* @__PURE__ */ jsx27("p", { children: /* @__PURE__ */ jsx27(
37217
37257
  TeamMemberName,
37218
37258
  {
37219
37259
  name: teamMember.name,
37220
37260
  profilePath: teamMember.profilePath
37221
37261
  }
37222
37262
  ) }),
37223
- teamMember.summary ? /* @__PURE__ */ jsx26("p", { className: "rb-caption status-muted", children: teamMember.summary }) : null
37263
+ teamMember.summary ? /* @__PURE__ */ jsx27("p", { className: "rb-caption status-muted", children: teamMember.summary }) : null
37224
37264
  ] }, teamMember.id)) })
37225
37265
  ] }) : null,
37226
37266
  isDropIn ? /* @__PURE__ */ jsxs14("div", { className: "rb-mt-6", children: [
37227
- /* @__PURE__ */ jsx26("div", { className: "rb-label rb-mb-2", children: "Registration" }),
37228
- /* @__PURE__ */ jsx26("p", { className: "rb-caption status-muted", children: "No registration required - just show up" })
37229
- ] }) : shouldShowCoursePricing ? /* @__PURE__ */ jsx26(
37267
+ /* @__PURE__ */ jsx27("div", { className: "rb-label rb-mb-2", children: "Registration" }),
37268
+ /* @__PURE__ */ jsx27("p", { className: "rb-caption status-muted", children: "No registration required - just show up" })
37269
+ ] }) : shouldShowCoursePricing ? /* @__PURE__ */ jsx27(
37230
37270
  CoursePricingDisplay,
37231
37271
  {
37232
37272
  pricing: coursePricing,
37233
37273
  acceptedItems
37234
37274
  }
37235
37275
  ) : shouldShowEventCost ? /* @__PURE__ */ jsxs14("div", { className: "rb-mt-6", children: [
37236
- /* @__PURE__ */ jsx26("div", { className: "rb-label rb-mb-2", children: "Cost" }),
37237
- eventPrice !== null ? /* @__PURE__ */ jsx26("p", { children: /* @__PURE__ */ jsx26("strong", { children: formatCoursePriceAmount(eventPrice, selected.currency ?? "USD") }) }) : /* @__PURE__ */ jsx26("p", { className: "rb-caption status-muted", children: "See checkout for details" }),
37238
- autoApplyDiscount ? /* @__PURE__ */ jsx26("p", { className: "rb-caption rb-mt-1", children: formatAutoApplyDiscountLine(autoApplyDiscount, selected.currency ?? "USD") }) : null,
37276
+ /* @__PURE__ */ jsx27("div", { className: "rb-label rb-mb-2", children: "Cost" }),
37277
+ eventPrice !== null ? /* @__PURE__ */ jsx27("p", { children: /* @__PURE__ */ jsx27("strong", { children: formatCoursePriceAmount(eventPrice, selected.currency ?? "USD") }) }) : /* @__PURE__ */ jsx27("p", { className: "rb-caption status-muted", children: "See checkout for details" }),
37278
+ autoApplyDiscount ? /* @__PURE__ */ jsx27("p", { className: "rb-caption rb-mt-1", children: formatAutoApplyDiscountLine(autoApplyDiscount, selected.currency ?? "USD") }) : null,
37239
37279
  hasAcceptedItems ? /* @__PURE__ */ jsxs14("p", { className: "rb-caption rb-mt-1", children: [
37240
37280
  "You can also attend with: ",
37241
37281
  acceptedItems.join(", ")
37242
37282
  ] }) : null
37243
- ] }) : hasAcceptedItems ? /* @__PURE__ */ jsx26("div", { className: "rb-mt-6", children: /* @__PURE__ */ jsxs14("p", { className: "rb-caption", children: [
37283
+ ] }) : hasAcceptedItems ? /* @__PURE__ */ jsx27("div", { className: "rb-mt-6", children: /* @__PURE__ */ jsxs14("p", { className: "rb-caption", children: [
37244
37284
  "You can also attend with: ",
37245
37285
  acceptedItems.join(", ")
37246
37286
  ] }) }) : null
37247
37287
  ] }),
37248
- showMap && renderVenueMap && venue?.location ? /* @__PURE__ */ jsx26(Fragment3, { children: renderVenueMap({ venueName: venue.name, location: venue.location, className: mapClassName, height: mapHeight }) }) : null
37288
+ showMap && renderVenueMap && venue?.location ? /* @__PURE__ */ jsx27(Fragment3, { children: renderVenueMap({ venueName: venue.name, location: venue.location, className: mapClassName, height: mapHeight }) }) : null
37249
37289
  ] }),
37250
37290
  showOtherDates && selection.otherDates.length > 0 ? /* @__PURE__ */ jsxs14("div", { children: [
37251
- /* @__PURE__ */ jsx26("div", { className: "rb-label", children: "Other dates" }),
37252
- /* @__PURE__ */ jsx26("div", { className: "rb-mt-2 rb-tiles-grid", children: selection.otherDates.map((e) => /* @__PURE__ */ jsx26(
37291
+ /* @__PURE__ */ jsx27("div", { className: "rb-label", children: "Other dates" }),
37292
+ /* @__PURE__ */ jsx27("div", { className: "rb-mt-2 rb-tiles-grid", children: selection.otherDates.map((e) => /* @__PURE__ */ jsx27(
37253
37293
  "a",
37254
37294
  {
37255
37295
  className: "rb-tile rb-tile--interactive",
37256
37296
  href: e.path,
37257
- children: /* @__PURE__ */ jsx26(
37297
+ children: /* @__PURE__ */ jsx27(
37258
37298
  DateTimeTile,
37259
37299
  {
37260
37300
  startsAt: e.startsAt,
@@ -37270,7 +37310,7 @@ function EventDetailsView({
37270
37310
  }
37271
37311
 
37272
37312
  // ../blocks/src/system/runtime/nodes/event-details.server.tsx
37273
- import { jsx as jsx27, jsxs as jsxs15 } from "react/jsx-runtime";
37313
+ import { jsx as jsx28, jsxs as jsxs15 } from "react/jsx-runtime";
37274
37314
  function EventDetailsSSR({
37275
37315
  blockId,
37276
37316
  occurrenceContext,
@@ -37306,7 +37346,7 @@ function EventDetailsSSR({
37306
37346
  "data-block": "event-details",
37307
37347
  ...getIslandRootProps("event-details", blockId),
37308
37348
  children: [
37309
- /* @__PURE__ */ jsx27(
37349
+ /* @__PURE__ */ jsx28(
37310
37350
  IslandPropsScript,
37311
37351
  {
37312
37352
  value: {
@@ -37327,7 +37367,7 @@ function EventDetailsSSR({
37327
37367
  }
37328
37368
  }
37329
37369
  ),
37330
- /* @__PURE__ */ jsx27(
37370
+ /* @__PURE__ */ jsx28(
37331
37371
  EventDetailsView,
37332
37372
  {
37333
37373
  selection,
@@ -37341,7 +37381,7 @@ function EventDetailsSSR({
37341
37381
  applicableMemberships,
37342
37382
  autoApplyDiscount: autoApplyDiscount ?? null,
37343
37383
  mapClassName: "venue-map event-details-map",
37344
- renderVenueMap: ({ venueName, className: className2, height }) => /* @__PURE__ */ jsx27("div", { className: "event-details-map-wrap rb-w-full rb-ml-auto", children: /* @__PURE__ */ jsx27(
37384
+ renderVenueMap: ({ venueName, className: className2, height }) => /* @__PURE__ */ jsx28("div", { className: "event-details-map-wrap rb-w-full rb-ml-auto", children: /* @__PURE__ */ jsx28(
37345
37385
  "div",
37346
37386
  {
37347
37387
  className: className2,
@@ -37365,7 +37405,7 @@ function EventDetailsSSR({
37365
37405
  var event_details_server_default = EventDetailsSSR;
37366
37406
 
37367
37407
  // ../blocks/src/system/runtime/nodes/location-map.view.tsx
37368
- import { jsx as jsx28, jsxs as jsxs16 } from "react/jsx-runtime";
37408
+ import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
37369
37409
  function LocationMapView({
37370
37410
  addressText,
37371
37411
  location: location2,
@@ -37379,7 +37419,7 @@ function LocationMapView({
37379
37419
  }) {
37380
37420
  const directionsUrl = buildGoogleMapsDirectionsUrl({ addressText, location: location2 });
37381
37421
  if (!location2 && !addressText && !directionsUrl) {
37382
- return /* @__PURE__ */ jsx28("p", { className: "rb-caption", style: textColorStyle("mutedText"), children: unresolvedMessage ?? "Location details coming soon." });
37422
+ return /* @__PURE__ */ jsx29("p", { className: "rb-caption", style: textColorStyle("mutedText"), children: unresolvedMessage ?? "Location details coming soon." });
37383
37423
  }
37384
37424
  return /* @__PURE__ */ jsxs16("div", { className: "rb-flex rb-flex-col rb-gap-4 rb-text-left", children: [
37385
37425
  location2 && renderMap ? renderMap({
@@ -37389,8 +37429,8 @@ function LocationMapView({
37389
37429
  height: heightPx,
37390
37430
  zoom
37391
37431
  }) : null,
37392
- showAddressText && addressText ? /* @__PURE__ */ jsx28("p", { className: "rb-caption", style: textColorStyle("mutedText"), children: addressText }) : null,
37393
- showDirections && directionsUrl ? /* @__PURE__ */ jsx28(
37432
+ showAddressText && addressText ? /* @__PURE__ */ jsx29("p", { className: "rb-caption", style: textColorStyle("mutedText"), children: addressText }) : null,
37433
+ showDirections && directionsUrl ? /* @__PURE__ */ jsx29(
37394
37434
  "a",
37395
37435
  {
37396
37436
  href: directionsUrl,
@@ -37409,7 +37449,7 @@ function LocationMapView({
37409
37449
  }
37410
37450
 
37411
37451
  // ../blocks/src/system/runtime/nodes/location-map.server.tsx
37412
- import { jsx as jsx29, jsxs as jsxs17 } from "react/jsx-runtime";
37452
+ import { jsx as jsx30, jsxs as jsxs17 } from "react/jsx-runtime";
37413
37453
  function LocationMapSSR(props2) {
37414
37454
  const normalized = normalizeLocationMapProps(props2);
37415
37455
  const hydrationProps = toLocationMapHydrationProps(props2);
@@ -37420,8 +37460,8 @@ function LocationMapSSR(props2) {
37420
37460
  "data-block": "location-map",
37421
37461
  ...getIslandRootProps("location-map", props2.blockId),
37422
37462
  children: [
37423
- /* @__PURE__ */ jsx29(IslandPropsScript, { value: hydrationProps }),
37424
- /* @__PURE__ */ jsx29(
37463
+ /* @__PURE__ */ jsx30(IslandPropsScript, { value: hydrationProps }),
37464
+ /* @__PURE__ */ jsx30(
37425
37465
  LocationMapView,
37426
37466
  {
37427
37467
  addressText: normalized.addressText,
@@ -37432,7 +37472,7 @@ function LocationMapSSR(props2) {
37432
37472
  showDirections: normalized.showDirections,
37433
37473
  directionsLabel: normalized.directionsLabel,
37434
37474
  unresolvedMessage: normalized.unresolvedMessage,
37435
- renderMap: ({ addressText, className, height }) => /* @__PURE__ */ jsx29(
37475
+ renderMap: ({ addressText, className, height }) => /* @__PURE__ */ jsx30(
37436
37476
  "div",
37437
37477
  {
37438
37478
  className,
@@ -37568,12 +37608,12 @@ function formatCourseDateRange(range) {
37568
37608
  }
37569
37609
 
37570
37610
  // ../blocks/src/system/runtime/nodes/course-details/view.tsx
37571
- import { jsx as jsx30, jsxs as jsxs18 } from "react/jsx-runtime";
37611
+ import { jsx as jsx31, jsxs as jsxs18 } from "react/jsx-runtime";
37572
37612
  function TeamMemberName2({
37573
37613
  name,
37574
37614
  profilePath
37575
37615
  }) {
37576
- return profilePath ? /* @__PURE__ */ jsx30("a", { href: profilePath, className: "rb-hover-opacity-80", children: /* @__PURE__ */ jsx30("strong", { children: name }) }) : /* @__PURE__ */ jsx30("strong", { children: name });
37616
+ return profilePath ? /* @__PURE__ */ jsx31("a", { href: profilePath, className: "rb-hover-opacity-80", children: /* @__PURE__ */ jsx31("strong", { children: name }) }) : /* @__PURE__ */ jsx31("strong", { children: name });
37577
37617
  }
37578
37618
  function parseLimit2(value, fallback2) {
37579
37619
  if (value === "all") return "all";
@@ -37594,7 +37634,7 @@ function CourseDetailsView(props2) {
37594
37634
  showMembershipNote = true
37595
37635
  } = props2;
37596
37636
  if (!course) {
37597
- return /* @__PURE__ */ jsx30("p", { className: "rb-caption status-muted", children: "Course details unavailable." });
37637
+ return /* @__PURE__ */ jsx31("p", { className: "rb-caption status-muted", children: "Course details unavailable." });
37598
37638
  }
37599
37639
  const pricing = resolveCoursePricingState(course);
37600
37640
  const sessionLimit = parseLimit2(sessionsLimit, 10);
@@ -37604,12 +37644,12 @@ function CourseDetailsView(props2) {
37604
37644
  const descriptionDoc = showDescription ? coerceRichTextDoc(course.description) : null;
37605
37645
  const teamMembers = course.teamMembers ?? [];
37606
37646
  return /* @__PURE__ */ jsxs18("div", { className: "rb-flex rb-flex-col rb-gap-6", children: [
37607
- showTitle && /* @__PURE__ */ jsx30("h3", { children: course.title }),
37647
+ showTitle && /* @__PURE__ */ jsx31("h3", { children: course.title }),
37608
37648
  /* @__PURE__ */ jsxs18("div", { className: "rb-grid rb-grid-cols-1 rb-gap-6 rb-items-start rb-sm-grid-cols-2", children: [
37609
37649
  /* @__PURE__ */ jsxs18("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
37610
37650
  showPrice && /* @__PURE__ */ jsxs18("div", { children: [
37611
- /* @__PURE__ */ jsx30("div", { className: "rb-label rb-mb-2", children: pricing.selectableOptions.length > 0 ? "Pricing" : "Price" }),
37612
- pricing.selectableOptions.length > 1 ? /* @__PURE__ */ jsx30("div", { className: "rb-flex rb-flex-col rb-gap-2", children: pricing.selectableOptions.map((option) => /* @__PURE__ */ jsxs18("div", { children: [
37651
+ /* @__PURE__ */ jsx31("div", { className: "rb-label rb-mb-2", children: pricing.selectableOptions.length > 0 ? "Pricing" : "Price" }),
37652
+ pricing.selectableOptions.length > 1 ? /* @__PURE__ */ jsx31("div", { className: "rb-flex rb-flex-col rb-gap-2", children: pricing.selectableOptions.map((option) => /* @__PURE__ */ jsxs18("div", { children: [
37613
37653
  /* @__PURE__ */ jsxs18("strong", { children: [
37614
37654
  option.name,
37615
37655
  ": ",
@@ -37618,47 +37658,47 @@ function CourseDetailsView(props2) {
37618
37658
  pricing.currency
37619
37659
  )
37620
37660
  ] }),
37621
- option.description ? /* @__PURE__ */ jsx30("p", { className: "rb-caption status-muted", children: option.description }) : null
37622
- ] }, option.id)) }) : /* @__PURE__ */ jsx30("div", { children: /* @__PURE__ */ jsx30("strong", { children: formatCoursePriceDisplay(pricing.display) }) })
37661
+ option.description ? /* @__PURE__ */ jsx31("p", { className: "rb-caption status-muted", children: option.description }) : null
37662
+ ] }, option.id)) }) : /* @__PURE__ */ jsx31("div", { children: /* @__PURE__ */ jsx31("strong", { children: formatCoursePriceDisplay(pricing.display) }) })
37623
37663
  ] }),
37624
37664
  showCapacity && /* @__PURE__ */ jsxs18("div", { children: [
37625
- /* @__PURE__ */ jsx30("div", { className: "rb-label rb-mb-2", children: "Spots" }),
37626
- /* @__PURE__ */ jsx30("div", { children: /* @__PURE__ */ jsx30("strong", { children: course.enrollmentCapacity === null ? "Unlimited" : `${course.availableSpots ?? Math.max(0, course.enrollmentCapacity - course.enrolledCount)} left` }) })
37665
+ /* @__PURE__ */ jsx31("div", { className: "rb-label rb-mb-2", children: "Spots" }),
37666
+ /* @__PURE__ */ jsx31("div", { children: /* @__PURE__ */ jsx31("strong", { children: course.enrollmentCapacity === null ? "Unlimited" : `${course.availableSpots ?? Math.max(0, course.enrollmentCapacity - course.enrolledCount)} left` }) })
37627
37667
  ] }),
37628
37668
  showMembershipNote && course.acceptsMemberships && /* @__PURE__ */ jsxs18("div", { children: [
37629
- /* @__PURE__ */ jsx30("div", { className: "rb-label rb-mb-2", children: "Membership" }),
37630
- /* @__PURE__ */ jsx30("p", { className: "rb-caption status-muted", children: "Eligible memberships can be used for free enrollment" })
37669
+ /* @__PURE__ */ jsx31("div", { className: "rb-label rb-mb-2", children: "Membership" }),
37670
+ /* @__PURE__ */ jsx31("p", { className: "rb-caption status-muted", children: "Eligible memberships can be used for free enrollment" })
37631
37671
  ] }),
37632
37672
  teamMembers.length > 0 && /* @__PURE__ */ jsxs18("div", { children: [
37633
- /* @__PURE__ */ jsx30("div", { className: "rb-label rb-mb-2", children: "Team members" }),
37634
- /* @__PURE__ */ jsx30("div", { className: "rb-flex rb-flex-col rb-gap-3", children: teamMembers.map((teamMember) => /* @__PURE__ */ jsxs18("div", { children: [
37635
- /* @__PURE__ */ jsx30("p", { children: /* @__PURE__ */ jsx30(
37673
+ /* @__PURE__ */ jsx31("div", { className: "rb-label rb-mb-2", children: "Team members" }),
37674
+ /* @__PURE__ */ jsx31("div", { className: "rb-flex rb-flex-col rb-gap-3", children: teamMembers.map((teamMember) => /* @__PURE__ */ jsxs18("div", { children: [
37675
+ /* @__PURE__ */ jsx31("p", { children: /* @__PURE__ */ jsx31(
37636
37676
  TeamMemberName2,
37637
37677
  {
37638
37678
  name: teamMember.name,
37639
37679
  profilePath: teamMember.profilePath
37640
37680
  }
37641
37681
  ) }),
37642
- teamMember.summary && /* @__PURE__ */ jsx30("p", { className: "rb-caption status-muted", children: teamMember.summary })
37682
+ teamMember.summary && /* @__PURE__ */ jsx31("p", { className: "rb-caption status-muted", children: teamMember.summary })
37643
37683
  ] }, teamMember.id)) })
37644
37684
  ] })
37645
37685
  ] }),
37646
37686
  /* @__PURE__ */ jsxs18("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
37647
37687
  showVenue && course.venue && /* @__PURE__ */ jsxs18("div", { children: [
37648
- /* @__PURE__ */ jsx30("div", { className: "rb-label rb-mb-2", children: "Venue" }),
37649
- /* @__PURE__ */ jsx30("h3", { children: course.venue.name }),
37650
- course.venue.address && /* @__PURE__ */ jsx30("p", { className: "rb-caption status-muted", children: course.venue.address })
37688
+ /* @__PURE__ */ jsx31("div", { className: "rb-label rb-mb-2", children: "Venue" }),
37689
+ /* @__PURE__ */ jsx31("h3", { children: course.venue.name }),
37690
+ course.venue.address && /* @__PURE__ */ jsx31("p", { className: "rb-caption status-muted", children: course.venue.address })
37651
37691
  ] }),
37652
37692
  showEnrollmentStatus && /* @__PURE__ */ jsxs18("div", { children: [
37653
- /* @__PURE__ */ jsx30("div", { className: "rb-label rb-mb-2", children: "Enrollment" }),
37654
- /* @__PURE__ */ jsx30("p", { className: course.enrollmentOpen ? "cd-enrollment--open" : "cd-enrollment--closed", children: /* @__PURE__ */ jsx30("strong", { children: course.enrollmentOpen ? "Open" : "Closed" }) })
37693
+ /* @__PURE__ */ jsx31("div", { className: "rb-label rb-mb-2", children: "Enrollment" }),
37694
+ /* @__PURE__ */ jsx31("p", { className: course.enrollmentOpen ? "cd-enrollment--open" : "cd-enrollment--closed", children: /* @__PURE__ */ jsx31("strong", { children: course.enrollmentOpen ? "Open" : "Closed" }) })
37655
37695
  ] })
37656
37696
  ] })
37657
37697
  ] }),
37658
- descriptionDoc && /* @__PURE__ */ jsx30("div", { className: "cd-description", children: /* @__PURE__ */ jsx30(RichText, { doc: descriptionDoc }) }),
37698
+ descriptionDoc && /* @__PURE__ */ jsx31("div", { className: "cd-description", children: /* @__PURE__ */ jsx31(RichText, { doc: descriptionDoc }) }),
37659
37699
  showSessions && visibleSessions.length > 0 && /* @__PURE__ */ jsxs18("div", { children: [
37660
- /* @__PURE__ */ jsx30("div", { className: "rb-label", children: "Sessions" }),
37661
- /* @__PURE__ */ jsx30("div", { className: "rb-mt-2 rb-tiles-grid", children: visibleSessions.map((s) => /* @__PURE__ */ jsx30("div", { className: "rb-tile", children: /* @__PURE__ */ jsx30(DateTimeTile, { startsAt: s.startsAt, endsAt: s.endsAt }) }, s.id)) }),
37700
+ /* @__PURE__ */ jsx31("div", { className: "rb-label", children: "Sessions" }),
37701
+ /* @__PURE__ */ jsx31("div", { className: "rb-mt-2 rb-tiles-grid", children: visibleSessions.map((s) => /* @__PURE__ */ jsx31("div", { className: "rb-tile", children: /* @__PURE__ */ jsx31(DateTimeTile, { startsAt: s.startsAt, endsAt: s.endsAt }) }, s.id)) }),
37662
37702
  hasMoreSessions && /* @__PURE__ */ jsxs18("p", { className: "cd-sessions__more", children: [
37663
37703
  "Showing ",
37664
37704
  visibleSessions.length,
@@ -37671,7 +37711,7 @@ function CourseDetailsView(props2) {
37671
37711
  }
37672
37712
 
37673
37713
  // ../blocks/src/system/runtime/nodes/course-details.server.tsx
37674
- import { jsx as jsx31, jsxs as jsxs19 } from "react/jsx-runtime";
37714
+ import { jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
37675
37715
  function CourseDetailsSSR({
37676
37716
  courses,
37677
37717
  contentEntry,
@@ -37710,7 +37750,7 @@ function CourseDetailsSSR({
37710
37750
  const lastPastRun = pastRuns[0] ?? null;
37711
37751
  const nonPastRuns = scopedSorted.filter(({ range }) => !(range.end && range.end <= now));
37712
37752
  return /* @__PURE__ */ jsxs19("div", { className: `course-details ${className ?? ""}`.trim(), "data-block": "course-details", children: [
37713
- selection.selected ? /* @__PURE__ */ jsx31(
37753
+ selection.selected ? /* @__PURE__ */ jsx32(
37714
37754
  CourseDetailsView,
37715
37755
  {
37716
37756
  course: selection.selected,
@@ -37726,30 +37766,30 @@ function CourseDetailsSSR({
37726
37766
  }
37727
37767
  ) : selection.scoped.length > 0 ? /* @__PURE__ */ jsxs19("div", { className: "rb-flex rb-flex-col rb-gap-3", children: [
37728
37768
  /* @__PURE__ */ jsxs19("div", { children: [
37729
- /* @__PURE__ */ jsx31("div", { className: "rb-label rb-mb-2", children: "Upcoming runs" }),
37730
- /* @__PURE__ */ jsx31("p", { className: "rb-caption status-muted", children: "Choose a run to see sessions and details." })
37769
+ /* @__PURE__ */ jsx32("div", { className: "rb-label rb-mb-2", children: "Upcoming runs" }),
37770
+ /* @__PURE__ */ jsx32("p", { className: "rb-caption status-muted", children: "Choose a run to see sessions and details." })
37731
37771
  ] }),
37732
- nonPastRuns.length > 0 ? /* @__PURE__ */ jsx31("ul", { className: "rb-flex rb-flex-col rb-gap-2", children: nonPastRuns.map(({ course, range }) => {
37772
+ nonPastRuns.length > 0 ? /* @__PURE__ */ jsx32("ul", { className: "rb-flex rb-flex-col rb-gap-2", children: nonPastRuns.map(({ course, range }) => {
37733
37773
  const start = range.start;
37734
37774
  const end = range.end;
37735
37775
  const isInProgress = Boolean(start && end && start <= now && end > now);
37736
37776
  const href = basePath ? `${basePath.replace(/\/$/, "")}/${course.slug}` : null;
37737
- return /* @__PURE__ */ jsx31("li", { className: "rb-rounded-md rb-border rb-p-3", children: /* @__PURE__ */ jsx31("div", { className: "rb-flex rb-flex-col rb-gap-1", children: /* @__PURE__ */ jsxs19("div", { className: "rb-flex rb-items-center rb-justify-between rb-gap-3", children: [
37777
+ return /* @__PURE__ */ jsx32("li", { className: "rb-rounded-md rb-border rb-p-3", children: /* @__PURE__ */ jsx32("div", { className: "rb-flex rb-flex-col rb-gap-1", children: /* @__PURE__ */ jsxs19("div", { className: "rb-flex rb-items-center rb-justify-between rb-gap-3", children: [
37738
37778
  /* @__PURE__ */ jsxs19("div", { className: "rb-min-w-0", children: [
37739
- href ? /* @__PURE__ */ jsx31("a", { href, className: "rb-truncate", children: /* @__PURE__ */ jsx31("strong", { children: course.title }) }) : /* @__PURE__ */ jsx31("div", { className: "rb-truncate", children: /* @__PURE__ */ jsx31("strong", { children: course.title }) }),
37740
- /* @__PURE__ */ jsx31("div", { className: "rb-caption status-muted", children: formatCourseDateRange(range) })
37779
+ href ? /* @__PURE__ */ jsx32("a", { href, className: "rb-truncate", children: /* @__PURE__ */ jsx32("strong", { children: course.title }) }) : /* @__PURE__ */ jsx32("div", { className: "rb-truncate", children: /* @__PURE__ */ jsx32("strong", { children: course.title }) }),
37780
+ /* @__PURE__ */ jsx32("div", { className: "rb-caption status-muted", children: formatCourseDateRange(range) })
37741
37781
  ] }),
37742
- /* @__PURE__ */ jsx31("div", { className: "rb-caption status-muted rb-shrink-0", children: course.enrollmentOpen ? "Enrollment open" : isInProgress ? "Currently in progress" : "Enrollment closed" })
37782
+ /* @__PURE__ */ jsx32("div", { className: "rb-caption status-muted rb-shrink-0", children: course.enrollmentOpen ? "Enrollment open" : isInProgress ? "Currently in progress" : "Enrollment closed" })
37743
37783
  ] }) }) }, course.id);
37744
- }) }) : /* @__PURE__ */ jsx31("p", { className: "rb-caption status-muted", children: "No upcoming runs." }),
37784
+ }) }) : /* @__PURE__ */ jsx32("p", { className: "rb-caption status-muted", children: "No upcoming runs." }),
37745
37785
  lastPastRun ? /* @__PURE__ */ jsxs19("div", { className: "rb-caption status-muted", children: [
37746
37786
  "Last run: ",
37747
- /* @__PURE__ */ jsx31("strong", { children: lastPastRun.course.title }),
37787
+ /* @__PURE__ */ jsx32("strong", { children: lastPastRun.course.title }),
37748
37788
  " (",
37749
37789
  formatCourseDateRange(lastPastRun.range),
37750
37790
  ")"
37751
37791
  ] }) : null
37752
- ] }) : /* @__PURE__ */ jsx31(
37792
+ ] }) : /* @__PURE__ */ jsx32(
37753
37793
  CourseDetailsView,
37754
37794
  {
37755
37795
  course: null,
@@ -37770,7 +37810,7 @@ function CourseDetailsSSR({
37770
37810
  var course_details_server_default = CourseDetailsSSR;
37771
37811
 
37772
37812
  // ../blocks/src/system/runtime/nodes/events/EventSpotlight.tsx
37773
- import { jsx as jsx32, jsxs as jsxs20 } from "react/jsx-runtime";
37813
+ import { jsx as jsx33, jsxs as jsxs20 } from "react/jsx-runtime";
37774
37814
  var EventSpotlight = ({
37775
37815
  events,
37776
37816
  layout = "grid",
@@ -37788,13 +37828,13 @@ var EventSpotlight = ({
37788
37828
  }) => {
37789
37829
  const normalizedEvents = events ?? [];
37790
37830
  if (normalizedEvents.length === 0) {
37791
- return /* @__PURE__ */ jsx32(EmptyState, { message: emptyMessage, className });
37831
+ return /* @__PURE__ */ jsx33(EmptyState, { message: emptyMessage, className });
37792
37832
  }
37793
37833
  const containerClass = getContainerClass(layout, columns);
37794
37834
  const cardOrientation = getCardOrientation(layout);
37795
37835
  const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
37796
37836
  return /* @__PURE__ */ jsxs20("div", { className: `event-spotlight-section ${className || ""}`, "data-block": "event-spotlight", children: [
37797
- /* @__PURE__ */ jsx32("div", { className: `event-spotlight ${containerClass}`, children: normalizedEvents.map((event) => /* @__PURE__ */ jsx32(
37837
+ /* @__PURE__ */ jsx33("div", { className: `event-spotlight ${containerClass}`, children: normalizedEvents.map((event) => /* @__PURE__ */ jsx33(
37798
37838
  EventCard,
37799
37839
  {
37800
37840
  event,
@@ -37808,93 +37848,93 @@ var EventSpotlight = ({
37808
37848
  },
37809
37849
  event.occurrenceId || event.id
37810
37850
  )) }),
37811
- ctaLabel && ctaUrl ? /* @__PURE__ */ jsx32("div", { className: "rb-mt-8 rb-text-center", children: /* @__PURE__ */ jsx32("a", { href: ctaUrl, className: buttonClass, children: ctaLabel }) }) : null
37851
+ ctaLabel && ctaUrl ? /* @__PURE__ */ jsx33("div", { className: "rb-mt-8 rb-text-center", children: /* @__PURE__ */ jsx33("a", { href: ctaUrl, className: buttonClass, children: ctaLabel }) }) : null
37812
37852
  ] });
37813
37853
  };
37814
37854
 
37815
37855
  // ../blocks/src/system/runtime/nodes/events/EventCombined.interactive.ts
37816
- import { z as z65 } from "zod";
37817
- var eventBlockKindSchema3 = z65.enum(eventBlockKindValues);
37818
- var eventSurfaceScopeSchema3 = z65.enum(eventSurfaceScopeValues);
37819
- var eventScheduleScopeSchema4 = z65.enum(eventScheduleScopeValues);
37820
- var eventCombinedSourceSchema = z65.object(
37856
+ import { z as z66 } from "zod";
37857
+ var eventBlockKindSchema3 = z66.enum(eventBlockKindValues);
37858
+ var eventSurfaceScopeSchema3 = z66.enum(eventSurfaceScopeValues);
37859
+ var eventScheduleScopeSchema4 = z66.enum(eventScheduleScopeValues);
37860
+ var eventCombinedSourceSchema = z66.object(
37821
37861
  {
37822
- events: z65.array(publicEventSchema).nullable().optional(),
37823
- siteId: z65.string(),
37824
- apiBaseUrl: z65.string().optional(),
37862
+ events: z66.array(publicEventSchema).nullable().optional(),
37863
+ siteId: z66.string(),
37864
+ apiBaseUrl: z66.string().optional(),
37825
37865
  stage: previewStageSchema.optional(),
37826
37866
  listLayout: eventLayoutSchema.optional(),
37827
37867
  listColumns: columnOptionSchema.optional(),
37828
- eventsPerPage: z65.string().optional(),
37829
- compactEventsPerPage: z65.string().optional(),
37830
- loadMoreText: z65.string().optional(),
37868
+ eventsPerPage: z66.string().optional(),
37869
+ compactEventsPerPage: z66.string().optional(),
37870
+ loadMoreText: z66.string().optional(),
37831
37871
  startOfWeek: weekStartSchema.optional(),
37832
37872
  calendarTabViews: calendarTabViewsSchema.optional(),
37833
- showFilters: z65.boolean().nullable().optional(),
37873
+ showFilters: z66.boolean().nullable().optional(),
37834
37874
  showCategoryFilter: filterAutoShowSchema.optional(),
37835
- showVenueFilter: z65.boolean().nullable().optional(),
37836
- showStaffFilter: z65.boolean().nullable().optional(),
37875
+ showVenueFilter: z66.boolean().nullable().optional(),
37876
+ showStaffFilter: z66.boolean().nullable().optional(),
37837
37877
  eventKind: eventBlockKindSchema3.nullable().optional(),
37838
37878
  eventSurface: eventSurfaceScopeSchema3.nullable().optional(),
37839
- filterEventPresets: z65.union([z65.string(), z65.array(z65.string())]).nullable().optional(),
37879
+ filterEventPresets: z66.union([z66.string(), z66.array(z66.string())]).nullable().optional(),
37840
37880
  scheduleScope: eventScheduleScopeSchema4.nullable().optional(),
37841
- filterCategoryIds: z65.union([z65.string(), z65.array(z65.string())]).nullable().optional(),
37842
- filterStaffMemberId: z65.string().nullable().optional(),
37843
- filterVenueId: z65.string().nullable().optional(),
37844
- showVenue: z65.boolean().nullable().optional(),
37845
- showMap: z65.boolean().nullable().optional(),
37846
- showCapacity: z65.boolean().nullable().optional(),
37881
+ filterCategoryIds: z66.union([z66.string(), z66.array(z66.string())]).nullable().optional(),
37882
+ filterStaffMemberId: z66.string().nullable().optional(),
37883
+ filterVenueId: z66.string().nullable().optional(),
37884
+ showVenue: z66.boolean().nullable().optional(),
37885
+ showMap: z66.boolean().nullable().optional(),
37886
+ showCapacity: z66.boolean().nullable().optional(),
37847
37887
  buttonVariant: eventButtonVariantSchema.optional(),
37848
- buttonText: z65.string().optional(),
37849
- emptyMessage: z65.string().optional(),
37850
- className: z65.string().optional()
37888
+ buttonText: z66.string().optional(),
37889
+ emptyMessage: z66.string().optional(),
37890
+ className: z66.string().optional()
37851
37891
  }
37852
37892
  );
37853
- var eventCombinedDisplaySchema = z65.object({
37854
- kind: z65.literal("event-combined"),
37855
- className: z65.string().nullable(),
37856
- events: z65.array(publicEventSchema),
37893
+ var eventCombinedDisplaySchema = z66.object({
37894
+ kind: z66.literal("event-combined"),
37895
+ className: z66.string().nullable(),
37896
+ events: z66.array(publicEventSchema),
37857
37897
  listLayout: eventLayoutSchema,
37858
37898
  listColumns: columnOptionSchema,
37859
- eventsPerPage: z65.string(),
37860
- loadMoreText: z65.string(),
37899
+ eventsPerPage: z66.string(),
37900
+ loadMoreText: z66.string(),
37861
37901
  startOfWeek: weekStartSchema,
37862
37902
  calendarTabViews: calendarTabViewsSchema,
37863
- showFilters: z65.boolean(),
37903
+ showFilters: z66.boolean(),
37864
37904
  showCategoryFilter: filterAutoShowSchema,
37865
- showVenueFilter: z65.boolean(),
37866
- showStaffFilter: z65.boolean(),
37905
+ showVenueFilter: z66.boolean(),
37906
+ showStaffFilter: z66.boolean(),
37867
37907
  eventKind: eventBlockKindSchema3,
37868
37908
  eventSurface: eventSurfaceScopeSchema3,
37869
- filterEventPresets: z65.string().nullable(),
37909
+ filterEventPresets: z66.string().nullable(),
37870
37910
  scheduleScope: eventScheduleScopeSchema4,
37871
- filterCategoryIds: z65.string().nullable(),
37872
- filterStaffMemberId: z65.string().nullable(),
37873
- filterVenueId: z65.string().nullable(),
37874
- showVenue: z65.boolean(),
37875
- showMap: z65.boolean(),
37876
- showCapacity: z65.boolean(),
37911
+ filterCategoryIds: z66.string().nullable(),
37912
+ filterStaffMemberId: z66.string().nullable(),
37913
+ filterVenueId: z66.string().nullable(),
37914
+ showVenue: z66.boolean(),
37915
+ showMap: z66.boolean(),
37916
+ showCapacity: z66.boolean(),
37877
37917
  buttonVariant: eventButtonVariantSchema,
37878
- buttonText: z65.string(),
37879
- emptyMessage: z65.string()
37918
+ buttonText: z66.string(),
37919
+ emptyMessage: z66.string()
37880
37920
  });
37881
- var eventCombinedHydrationSchema = z65.object({
37882
- siteId: z65.string(),
37921
+ var eventCombinedHydrationSchema = z66.object({
37922
+ siteId: z66.string(),
37883
37923
  stage: previewStageSchema.optional(),
37884
- prefetchedEvents: z65.boolean(),
37924
+ prefetchedEvents: z66.boolean(),
37885
37925
  eventKind: eventBlockKindSchema3,
37886
37926
  eventSurface: eventSurfaceScopeSchema3,
37887
- filterEventPresets: z65.string().nullable(),
37927
+ filterEventPresets: z66.string().nullable(),
37888
37928
  scheduleScope: eventScheduleScopeSchema4
37889
37929
  });
37890
- var eventCombinedRenderSchema = z65.object({
37930
+ var eventCombinedRenderSchema = z66.object({
37891
37931
  display: eventCombinedDisplaySchema,
37892
37932
  hydration: eventCombinedHydrationSchema
37893
37933
  });
37894
37934
  var eventCombinedIslandMetaCodec = createZodCodec(
37895
- z65.object({
37896
- siteId: z65.string(),
37897
- apiBaseUrl: z65.string().optional(),
37935
+ z66.object({
37936
+ siteId: z66.string(),
37937
+ apiBaseUrl: z66.string().optional(),
37898
37938
  stage: previewStageSchema.optional()
37899
37939
  })
37900
37940
  );
@@ -38001,10 +38041,10 @@ function buildEventCombinedInteractiveIslandProps(props2) {
38001
38041
  }
38002
38042
 
38003
38043
  // ../blocks/src/system/runtime/nodes/events/shared/renderEventListItem.tsx
38004
- import { jsx as jsx33 } from "react/jsx-runtime";
38044
+ import { jsx as jsx34 } from "react/jsx-runtime";
38005
38045
  function renderEventListItem(event, display) {
38006
38046
  if (display.listLayout === "compact") {
38007
- return /* @__PURE__ */ jsx33(
38047
+ return /* @__PURE__ */ jsx34(
38008
38048
  EventCompactRow,
38009
38049
  {
38010
38050
  event,
@@ -38014,7 +38054,7 @@ function renderEventListItem(event, display) {
38014
38054
  event.occurrenceId || event.id
38015
38055
  );
38016
38056
  }
38017
- return /* @__PURE__ */ jsx33(
38057
+ return /* @__PURE__ */ jsx34(
38018
38058
  EventCard,
38019
38059
  {
38020
38060
  event,
@@ -38032,7 +38072,7 @@ function renderEventListItem(event, display) {
38032
38072
  }
38033
38073
 
38034
38074
  // ../blocks/src/system/runtime/nodes/events/EventCombined.server.tsx
38035
- import { jsx as jsx34, jsxs as jsxs21 } from "react/jsx-runtime";
38075
+ import { jsx as jsx35, jsxs as jsxs21 } from "react/jsx-runtime";
38036
38076
  var EventCombinedSSR = ({
38037
38077
  blockId,
38038
38078
  ...source
@@ -38048,9 +38088,9 @@ var EventCombinedSSR = ({
38048
38088
  "data-block": "event-combined",
38049
38089
  ...getIslandRootProps("event-combined", blockId),
38050
38090
  children: [
38051
- /* @__PURE__ */ jsx34(IslandPropsScript, { value: islandProps }),
38091
+ /* @__PURE__ */ jsx35(IslandPropsScript, { value: islandProps }),
38052
38092
  /* @__PURE__ */ jsxs21("div", { className: "nav-tabs", role: "tablist", children: [
38053
- /* @__PURE__ */ jsx34(
38093
+ /* @__PURE__ */ jsx35(
38054
38094
  "button",
38055
38095
  {
38056
38096
  type: "button",
@@ -38060,7 +38100,7 @@ var EventCombinedSSR = ({
38060
38100
  children: "List"
38061
38101
  }
38062
38102
  ),
38063
- /* @__PURE__ */ jsx34(
38103
+ /* @__PURE__ */ jsx35(
38064
38104
  "button",
38065
38105
  {
38066
38106
  type: "button",
@@ -38071,17 +38111,17 @@ var EventCombinedSSR = ({
38071
38111
  }
38072
38112
  )
38073
38113
  ] }),
38074
- /* @__PURE__ */ jsx34("div", { className: "event-combined-content", children: listDisplay.events.length === 0 ? /* @__PURE__ */ jsx34(EmptyState, { message: ssrEmptyMessage }) : /* @__PURE__ */ jsx34("div", { className: listDisplay.containerClass, children: listDisplay.events.map((event) => renderEventListItem(event, listDisplay)) }) })
38114
+ /* @__PURE__ */ jsx35("div", { className: "event-combined-content", children: listDisplay.events.length === 0 ? /* @__PURE__ */ jsx35(EmptyState, { message: ssrEmptyMessage }) : /* @__PURE__ */ jsx35("div", { className: listDisplay.containerClass, children: listDisplay.events.map((event) => renderEventListItem(event, listDisplay)) }) })
38075
38115
  ]
38076
38116
  }
38077
38117
  );
38078
38118
  };
38079
38119
 
38080
38120
  // ../blocks/src/system/runtime/nodes/commerce/shared/view.tsx
38081
- import { Fragment as Fragment4, jsx as jsx35, jsxs as jsxs22 } from "react/jsx-runtime";
38121
+ import { Fragment as Fragment4, jsx as jsx36, jsxs as jsxs22 } from "react/jsx-runtime";
38082
38122
  function ProductBadgesView({ badges }) {
38083
38123
  if (badges.length === 0) return null;
38084
- return /* @__PURE__ */ jsx35("div", { className: "rb-flex rb-flex-wrap rb-gap-2", children: badges.map((badge) => /* @__PURE__ */ jsx35(
38124
+ return /* @__PURE__ */ jsx36("div", { className: "rb-flex rb-flex-wrap rb-gap-2", children: badges.map((badge) => /* @__PURE__ */ jsx36(
38085
38125
  "span",
38086
38126
  {
38087
38127
  className: "rb-inline-flex rb-items-center rb-rounded-full rb-border rb-px-3 rb-py-1 rb-text-xs",
@@ -38094,8 +38134,8 @@ function VariantSelectView(props2) {
38094
38134
  const { options, selectedVariantId, disabled = false, onChange } = props2;
38095
38135
  if (options.length === 0) return null;
38096
38136
  return /* @__PURE__ */ jsxs22("label", { className: "rb-flex rb-flex-col rb-gap-1", children: [
38097
- /* @__PURE__ */ jsx35("span", { className: "rb-label", children: "Variant" }),
38098
- /* @__PURE__ */ jsx35(
38137
+ /* @__PURE__ */ jsx36("span", { className: "rb-label", children: "Variant" }),
38138
+ /* @__PURE__ */ jsx36(
38099
38139
  "select",
38100
38140
  {
38101
38141
  className: "form-input",
@@ -38114,30 +38154,30 @@ function VariantSelectView(props2) {
38114
38154
  function ProductCardView(props2) {
38115
38155
  const { display, layout, variantControl, actions, feedback } = props2;
38116
38156
  return /* @__PURE__ */ jsxs22("article", { className: `rb-flex rb-gap-4 rb-rounded-2xl rb-border rb-p-4 ${layout === "list" ? "rb-flex-row" : "rb-flex-col"}`, children: [
38117
- display.image ? /* @__PURE__ */ jsx35("a", { href: display.path ?? void 0, className: "rb-block rb-overflow-hidden rb-rounded-xl rb-border", children: /* @__PURE__ */ jsx35("img", { src: display.image.url, alt: display.image.alt ?? "", className: "rb-h-48 rb-w-full rb-object-cover" }) }) : null,
38157
+ display.image ? /* @__PURE__ */ jsx36("a", { href: display.path ?? void 0, className: "rb-block rb-overflow-hidden rb-rounded-xl rb-border", children: /* @__PURE__ */ jsx36("img", { src: display.image.url, alt: display.image.alt ?? "", className: "rb-h-48 rb-w-full rb-object-cover" }) }) : null,
38118
38158
  /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-flex-1 rb-flex-col rb-gap-3", children: [
38119
38159
  /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-flex-col rb-gap-2", children: [
38120
38160
  /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-items-start rb-justify-between rb-gap-3", children: [
38121
38161
  /* @__PURE__ */ jsxs22("div", { children: [
38122
- display.path ? /* @__PURE__ */ jsx35("a", { href: display.path, children: /* @__PURE__ */ jsx35("h3", { children: display.title }) }) : /* @__PURE__ */ jsx35("h3", { children: display.title }),
38123
- display.summary ? /* @__PURE__ */ jsx35("p", { className: "rb-caption status-muted", children: display.summary }) : null
38162
+ display.path ? /* @__PURE__ */ jsx36("a", { href: display.path, children: /* @__PURE__ */ jsx36("h3", { children: display.title }) }) : /* @__PURE__ */ jsx36("h3", { children: display.title }),
38163
+ display.summary ? /* @__PURE__ */ jsx36("p", { className: "rb-caption status-muted", children: display.summary }) : null
38124
38164
  ] }),
38125
- display.priceLabel ? /* @__PURE__ */ jsx35("div", { className: "rb-text-right", children: /* @__PURE__ */ jsx35("strong", { children: display.priceLabel }) }) : null
38165
+ display.priceLabel ? /* @__PURE__ */ jsx36("div", { className: "rb-text-right", children: /* @__PURE__ */ jsx36("strong", { children: display.priceLabel }) }) : null
38126
38166
  ] }),
38127
- /* @__PURE__ */ jsx35(ProductBadgesView, { badges: display.badges })
38167
+ /* @__PURE__ */ jsx36(ProductBadgesView, { badges: display.badges })
38128
38168
  ] }),
38129
38169
  variantControl,
38130
- /* @__PURE__ */ jsx35("div", { className: "rb-mt-auto rb-flex rb-items-center rb-gap-3", children: actions }),
38170
+ /* @__PURE__ */ jsx36("div", { className: "rb-mt-auto rb-flex rb-items-center rb-gap-3", children: actions }),
38131
38171
  feedback,
38132
- /* @__PURE__ */ jsx35("span", { className: "rb-caption status-muted", children: display.selectionLabel })
38172
+ /* @__PURE__ */ jsx36("span", { className: "rb-caption status-muted", children: display.selectionLabel })
38133
38173
  ] })
38134
38174
  ] });
38135
38175
  }
38136
38176
  function ProductListSectionView(props2) {
38137
38177
  const { display, children } = props2;
38138
38178
  return /* @__PURE__ */ jsxs22("div", { className: `shop shop--product-list ${display.className ?? ""}`.trim(), "data-block": "shop", children: [
38139
- display.heading ? /* @__PURE__ */ jsx35("h2", { children: display.heading }) : null,
38140
- display.state === "empty" ? /* @__PURE__ */ jsx35("p", { className: "rb-caption status-muted", children: display.emptyMessage }) : /* @__PURE__ */ jsx35(
38179
+ display.heading ? /* @__PURE__ */ jsx36("h2", { children: display.heading }) : null,
38180
+ display.state === "empty" ? /* @__PURE__ */ jsx36("p", { className: "rb-caption status-muted", children: display.emptyMessage }) : /* @__PURE__ */ jsx36(
38141
38181
  "div",
38142
38182
  {
38143
38183
  className: `rb-grid rb-gap-4 ${display.layout === "list" ? "rb-grid-cols-1" : ""}`,
@@ -38150,22 +38190,22 @@ function ProductListSectionView(props2) {
38150
38190
  function ProductDetailView(props2) {
38151
38191
  const { display, gallery, variantControl, actions, feedback, body } = props2;
38152
38192
  if (display.state === "empty") {
38153
- return /* @__PURE__ */ jsx35("div", { className: `shop shop--product-detail ${display.className ?? ""}`.trim(), "data-block": "shop", children: /* @__PURE__ */ jsx35("p", { className: "rb-caption status-muted", children: display.emptyMessage }) });
38193
+ return /* @__PURE__ */ jsx36("div", { className: `shop shop--product-detail ${display.className ?? ""}`.trim(), "data-block": "shop", children: /* @__PURE__ */ jsx36("p", { className: "rb-caption status-muted", children: display.emptyMessage }) });
38154
38194
  }
38155
38195
  return /* @__PURE__ */ jsxs22("div", { className: `shop shop--product-detail rb-grid rb-gap-6 rb-md-grid-cols-2 ${display.className ?? ""}`.trim(), "data-block": "shop", children: [
38156
- /* @__PURE__ */ jsx35("div", { className: "rb-flex rb-flex-col rb-gap-4", children: gallery }),
38196
+ /* @__PURE__ */ jsx36("div", { className: "rb-flex rb-flex-col rb-gap-4", children: gallery }),
38157
38197
  /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
38158
- display.heading ? /* @__PURE__ */ jsx35("p", { className: "rb-label", children: display.heading }) : null,
38198
+ display.heading ? /* @__PURE__ */ jsx36("p", { className: "rb-label", children: display.heading }) : null,
38159
38199
  /* @__PURE__ */ jsxs22("div", { children: [
38160
- /* @__PURE__ */ jsx35("h2", { children: display.title }),
38161
- /* @__PURE__ */ jsx35("div", { className: "rb-mt-2", children: /* @__PURE__ */ jsx35("strong", { children: display.priceLabel }) })
38200
+ /* @__PURE__ */ jsx36("h2", { children: display.title }),
38201
+ /* @__PURE__ */ jsx36("div", { className: "rb-mt-2", children: /* @__PURE__ */ jsx36("strong", { children: display.priceLabel }) })
38162
38202
  ] }),
38163
- /* @__PURE__ */ jsx35(ProductBadgesView, { badges: display.badges }),
38164
- display.summary ? /* @__PURE__ */ jsx35("p", { className: "rb-caption status-muted", children: display.summary }) : null,
38203
+ /* @__PURE__ */ jsx36(ProductBadgesView, { badges: display.badges }),
38204
+ display.summary ? /* @__PURE__ */ jsx36("p", { className: "rb-caption status-muted", children: display.summary }) : null,
38165
38205
  variantControl,
38166
38206
  /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-items-center rb-gap-3", children: [
38167
38207
  actions,
38168
- display.categoryLabel ? /* @__PURE__ */ jsx35("span", { className: "rb-caption status-muted", children: display.categoryLabel }) : null
38208
+ display.categoryLabel ? /* @__PURE__ */ jsx36("span", { className: "rb-caption status-muted", children: display.categoryLabel }) : null
38169
38209
  ] }),
38170
38210
  feedback,
38171
38211
  body
@@ -38175,7 +38215,7 @@ function ProductDetailView(props2) {
38175
38215
  function ProductGalleryFrameView(props2) {
38176
38216
  const { gallery, renderCarousel } = props2;
38177
38217
  if (gallery.length === 0) return null;
38178
- const slides = gallery.map((image, index) => /* @__PURE__ */ jsx35("div", { className: "rb-overflow-hidden rb-rounded-xl rb-border", children: /* @__PURE__ */ jsx35(
38218
+ const slides = gallery.map((image, index) => /* @__PURE__ */ jsx36("div", { className: "rb-overflow-hidden rb-rounded-xl rb-border", children: /* @__PURE__ */ jsx36(
38179
38219
  "img",
38180
38220
  {
38181
38221
  src: image.url,
@@ -38186,23 +38226,23 @@ function ProductGalleryFrameView(props2) {
38186
38226
  if (slides.length === 1) {
38187
38227
  return slides[0] ?? null;
38188
38228
  }
38189
- return /* @__PURE__ */ jsx35(Fragment4, { children: renderCarousel(slides) });
38229
+ return /* @__PURE__ */ jsx36(Fragment4, { children: renderCarousel(slides) });
38190
38230
  }
38191
38231
  function PassCardView(props2) {
38192
38232
  return /* @__PURE__ */ jsxs22("article", { className: "shop__card shop__card--pass", children: [
38193
38233
  /* @__PURE__ */ jsxs22("div", { className: "shop__card-header", children: [
38194
- /* @__PURE__ */ jsx35("h4", { className: "shop__card-name", children: props2.display.title }),
38195
- /* @__PURE__ */ jsx35("div", { className: "shop__card-price", children: props2.display.priceLabel })
38234
+ /* @__PURE__ */ jsx36("h4", { className: "shop__card-name", children: props2.display.title }),
38235
+ /* @__PURE__ */ jsx36("div", { className: "shop__card-price", children: props2.display.priceLabel })
38196
38236
  ] }),
38197
- props2.display.description ? /* @__PURE__ */ jsx35("p", { className: "shop__card-description", children: props2.display.description }) : null,
38237
+ props2.display.description ? /* @__PURE__ */ jsx36("p", { className: "shop__card-description", children: props2.display.description }) : null,
38198
38238
  /* @__PURE__ */ jsxs22("div", { className: "shop__card-details", children: [
38199
- /* @__PURE__ */ jsx35("span", { className: "shop__card-credits", children: props2.display.creditsLabel }),
38239
+ /* @__PURE__ */ jsx36("span", { className: "shop__card-credits", children: props2.display.creditsLabel }),
38200
38240
  props2.display.perCreditLabel ? /* @__PURE__ */ jsxs22("span", { className: "shop__card-per-credit", children: [
38201
38241
  "(",
38202
38242
  props2.display.perCreditLabel,
38203
38243
  ")"
38204
38244
  ] }) : null,
38205
- props2.display.validityLabel ? /* @__PURE__ */ jsx35("span", { className: "shop__card-validity", children: props2.display.validityLabel }) : null
38245
+ props2.display.validityLabel ? /* @__PURE__ */ jsx36("span", { className: "shop__card-validity", children: props2.display.validityLabel }) : null
38206
38246
  ] }),
38207
38247
  props2.action,
38208
38248
  props2.feedback
@@ -38211,14 +38251,14 @@ function PassCardView(props2) {
38211
38251
  function MembershipCardView(props2) {
38212
38252
  return /* @__PURE__ */ jsxs22("article", { className: "shop__card shop__card--membership", children: [
38213
38253
  /* @__PURE__ */ jsxs22("div", { className: "shop__card-header", children: [
38214
- /* @__PURE__ */ jsx35("h4", { className: "shop__card-name", children: props2.display.title }),
38254
+ /* @__PURE__ */ jsx36("h4", { className: "shop__card-name", children: props2.display.title }),
38215
38255
  /* @__PURE__ */ jsxs22("div", { className: "shop__card-price", children: [
38216
38256
  props2.display.priceLabel,
38217
- /* @__PURE__ */ jsx35("span", { className: "shop__card-interval", children: props2.display.intervalLabel })
38257
+ /* @__PURE__ */ jsx36("span", { className: "shop__card-interval", children: props2.display.intervalLabel })
38218
38258
  ] })
38219
38259
  ] }),
38220
- props2.display.description ? /* @__PURE__ */ jsx35("p", { className: "shop__card-description", children: props2.display.description }) : null,
38221
- /* @__PURE__ */ jsx35("div", { className: "shop__card-details", children: /* @__PURE__ */ jsx35("span", { className: "shop__card-unlimited", children: "Unlimited classes" }) }),
38260
+ props2.display.description ? /* @__PURE__ */ jsx36("p", { className: "shop__card-description", children: props2.display.description }) : null,
38261
+ /* @__PURE__ */ jsx36("div", { className: "shop__card-details", children: /* @__PURE__ */ jsx36("span", { className: "shop__card-unlimited", children: "Unlimited classes" }) }),
38222
38262
  props2.action
38223
38263
  ] });
38224
38264
  }
@@ -38235,14 +38275,14 @@ function PassesMembershipsSectionView(props2) {
38235
38275
  style: gridStyle,
38236
38276
  children: [
38237
38277
  beforeContent,
38238
- display.state === "empty" ? /* @__PURE__ */ jsx35("p", { className: "shop__empty-text", children: display.emptyMessage }) : null,
38278
+ display.state === "empty" ? /* @__PURE__ */ jsx36("p", { className: "shop__empty-text", children: display.emptyMessage }) : null,
38239
38279
  display.passes.length > 0 ? /* @__PURE__ */ jsxs22("section", { className: "shop__section shop__section--passes", children: [
38240
- /* @__PURE__ */ jsx35("h3", { className: "shop__section-heading", children: display.passesHeading }),
38241
- /* @__PURE__ */ jsx35("div", { className: productsClass, children: passCards })
38280
+ /* @__PURE__ */ jsx36("h3", { className: "shop__section-heading", children: display.passesHeading }),
38281
+ /* @__PURE__ */ jsx36("div", { className: productsClass, children: passCards })
38242
38282
  ] }) : null,
38243
38283
  display.memberships.length > 0 ? /* @__PURE__ */ jsxs22("section", { className: "shop__section shop__section--memberships", children: [
38244
- /* @__PURE__ */ jsx35("h3", { className: "shop__section-heading", children: display.membershipsHeading }),
38245
- /* @__PURE__ */ jsx35("div", { className: productsClass, children: membershipCards })
38284
+ /* @__PURE__ */ jsx36("h3", { className: "shop__section-heading", children: display.membershipsHeading }),
38285
+ /* @__PURE__ */ jsx36("div", { className: productsClass, children: membershipCards })
38246
38286
  ] }) : null
38247
38287
  ]
38248
38288
  }
@@ -38251,41 +38291,41 @@ function PassesMembershipsSectionView(props2) {
38251
38291
  function CartShellView(props2) {
38252
38292
  const { display, renderControls, footerActions } = props2;
38253
38293
  return /* @__PURE__ */ jsxs22("div", { className: `shop shop--cart ${display.className ?? ""}`.trim(), "data-block": "shop", id: "shop-cart", children: [
38254
- display.heading ? /* @__PURE__ */ jsx35("h2", { children: display.heading }) : null,
38294
+ display.heading ? /* @__PURE__ */ jsx36("h2", { children: display.heading }) : null,
38255
38295
  display.state === "empty" ? /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-flex-col rb-gap-2", children: [
38256
- /* @__PURE__ */ jsx35("p", { className: "rb-caption status-muted", children: display.emptyMessage }),
38257
- display.supportText ? /* @__PURE__ */ jsx35("p", { className: "rb-caption status-muted", children: display.supportText }) : null
38296
+ /* @__PURE__ */ jsx36("p", { className: "rb-caption status-muted", children: display.emptyMessage }),
38297
+ display.supportText ? /* @__PURE__ */ jsx36("p", { className: "rb-caption status-muted", children: display.supportText }) : null
38258
38298
  ] }) : /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
38259
- /* @__PURE__ */ jsx35("div", { className: "rb-flex rb-flex-col rb-gap-3", children: display.items.map((item) => /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-items-center rb-justify-between rb-gap-4 rb-rounded-xl rb-border rb-p-4", children: [
38299
+ /* @__PURE__ */ jsx36("div", { className: "rb-flex rb-flex-col rb-gap-3", children: display.items.map((item) => /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-items-center rb-justify-between rb-gap-4 rb-rounded-xl rb-border rb-p-4", children: [
38260
38300
  /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-flex-col rb-gap-1", children: [
38261
- /* @__PURE__ */ jsx35("strong", { children: item.title }),
38262
- /* @__PURE__ */ jsx35("span", { className: "rb-caption status-muted", children: item.priceLabel })
38301
+ /* @__PURE__ */ jsx36("strong", { children: item.title }),
38302
+ /* @__PURE__ */ jsx36("span", { className: "rb-caption status-muted", children: item.priceLabel })
38263
38303
  ] }),
38264
- /* @__PURE__ */ jsx35("div", { className: "rb-flex rb-items-center rb-gap-2", children: renderControls ? renderControls(item) : null })
38304
+ /* @__PURE__ */ jsx36("div", { className: "rb-flex rb-items-center rb-gap-2", children: renderControls ? renderControls(item) : null })
38265
38305
  ] }, item.key)) }),
38266
38306
  /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-items-center rb-justify-between rb-gap-4", children: [
38267
38307
  /* @__PURE__ */ jsxs22("div", { children: [
38268
- /* @__PURE__ */ jsx35("strong", { children: "Subtotal" }),
38269
- /* @__PURE__ */ jsx35("div", { children: display.subtotalLabel })
38308
+ /* @__PURE__ */ jsx36("strong", { children: "Subtotal" }),
38309
+ /* @__PURE__ */ jsx36("div", { children: display.subtotalLabel })
38270
38310
  ] }),
38271
- /* @__PURE__ */ jsx35("div", { className: "rb-flex rb-gap-2", children: footerActions })
38311
+ /* @__PURE__ */ jsx36("div", { className: "rb-flex rb-gap-2", children: footerActions })
38272
38312
  ] })
38273
38313
  ] })
38274
38314
  ] });
38275
38315
  }
38276
38316
  function CheckoutShellView(props2) {
38277
38317
  return /* @__PURE__ */ jsxs22("div", { className: `shop shop--checkout ${props2.display.className ?? ""}`.trim(), "data-block": "shop", id: "shop-checkout", children: [
38278
- props2.display.heading ? /* @__PURE__ */ jsx35("h2", { children: props2.display.heading }) : null,
38318
+ props2.display.heading ? /* @__PURE__ */ jsx36("h2", { children: props2.display.heading }) : null,
38279
38319
  props2.notice,
38280
- props2.display.state === "ready" ? props2.body : /* @__PURE__ */ jsx35("p", { className: "rb-caption status-muted", children: props2.display.message })
38320
+ props2.display.state === "ready" ? props2.body : /* @__PURE__ */ jsx36("p", { className: "rb-caption status-muted", children: props2.display.message })
38281
38321
  ] });
38282
38322
  }
38283
38323
 
38284
38324
  // ../blocks/src/system/runtime/nodes/shop-commerce.server.tsx
38285
- import { Fragment as Fragment5, jsx as jsx36, jsxs as jsxs23 } from "react/jsx-runtime";
38325
+ import { Fragment as Fragment5, jsx as jsx37, jsxs as jsxs23 } from "react/jsx-runtime";
38286
38326
  function renderServerPendingAction(label, soldOut) {
38287
38327
  return /* @__PURE__ */ jsxs23(Fragment5, { children: [
38288
- /* @__PURE__ */ jsx36(
38328
+ /* @__PURE__ */ jsx37(
38289
38329
  "button",
38290
38330
  {
38291
38331
  type: "button",
@@ -38295,16 +38335,16 @@ function renderServerPendingAction(label, soldOut) {
38295
38335
  children: soldOut ? "Sold out" : label
38296
38336
  }
38297
38337
  ),
38298
- !soldOut ? /* @__PURE__ */ jsx36("p", { className: "rb-caption status-muted", children: "Cart actions become interactive after page load." }) : null
38338
+ !soldOut ? /* @__PURE__ */ jsx37("p", { className: "rb-caption status-muted", children: "Cart actions become interactive after page load." }) : null
38299
38339
  ] });
38300
38340
  }
38301
38341
  function ProductListServerContent(props2) {
38302
- return /* @__PURE__ */ jsx36(ProductListSectionView, { display: props2.render.display, children: props2.render.display.cards.map((card) => /* @__PURE__ */ jsx36(
38342
+ return /* @__PURE__ */ jsx37(ProductListSectionView, { display: props2.render.display, children: props2.render.display.cards.map((card) => /* @__PURE__ */ jsx37(
38303
38343
  ProductCardView,
38304
38344
  {
38305
38345
  display: card,
38306
38346
  layout: props2.render.display.layout,
38307
- variantControl: /* @__PURE__ */ jsx36(
38347
+ variantControl: /* @__PURE__ */ jsx37(
38308
38348
  VariantSelectView,
38309
38349
  {
38310
38350
  options: card.variantOptions,
@@ -38314,7 +38354,7 @@ function ProductListServerContent(props2) {
38314
38354
  ),
38315
38355
  actions: /* @__PURE__ */ jsxs23(Fragment5, { children: [
38316
38356
  renderServerPendingAction(card.actionLabel, card.soldOut),
38317
- card.path ? /* @__PURE__ */ jsx36(
38357
+ card.path ? /* @__PURE__ */ jsx37(
38318
38358
  "a",
38319
38359
  {
38320
38360
  href: card.path,
@@ -38328,18 +38368,18 @@ function ProductListServerContent(props2) {
38328
38368
  )) });
38329
38369
  }
38330
38370
  function ProductDetailServerContent(props2) {
38331
- return /* @__PURE__ */ jsx36(
38371
+ return /* @__PURE__ */ jsx37(
38332
38372
  ProductDetailView,
38333
38373
  {
38334
38374
  display: props2.render.display,
38335
- gallery: props2.render.display.state === "ready" ? /* @__PURE__ */ jsx36(
38375
+ gallery: props2.render.display.state === "ready" ? /* @__PURE__ */ jsx37(
38336
38376
  ProductGalleryFrameView,
38337
38377
  {
38338
38378
  gallery: props2.render.display.gallery,
38339
- renderCarousel: (slides) => /* @__PURE__ */ jsx36(CarouselNodeSSR, { slidesToShow: 1, showDots: true, showControls: true, className: "rb-w-full", children: slides })
38379
+ renderCarousel: (slides) => /* @__PURE__ */ jsx37(CarouselNodeSSR, { slidesToShow: 1, showDots: true, showControls: true, className: "rb-w-full", children: slides })
38340
38380
  }
38341
38381
  ) : null,
38342
- variantControl: props2.render.display.state === "ready" ? /* @__PURE__ */ jsx36(
38382
+ variantControl: props2.render.display.state === "ready" ? /* @__PURE__ */ jsx37(
38343
38383
  VariantSelectView,
38344
38384
  {
38345
38385
  options: props2.render.display.variantOptions,
@@ -38351,19 +38391,19 @@ function ProductDetailServerContent(props2) {
38351
38391
  props2.render.display.actionLabel,
38352
38392
  props2.render.display.soldOut
38353
38393
  ) : null,
38354
- body: props2.render.display.state === "ready" && props2.render.display.body ? /* @__PURE__ */ jsx36("div", { className: "rb-prose rb-max-w-none", children: /* @__PURE__ */ jsx36(RichText, { doc: coerceRichTextDoc(props2.render.display.body) }) }) : null
38394
+ body: props2.render.display.state === "ready" && props2.render.display.body ? /* @__PURE__ */ jsx37("div", { className: "rb-prose rb-max-w-none", children: /* @__PURE__ */ jsx37(RichText, { doc: coerceRichTextDoc(props2.render.display.body) }) }) : null
38355
38395
  }
38356
38396
  );
38357
38397
  }
38358
38398
  function CartServerContent(props2) {
38359
- return /* @__PURE__ */ jsx36(CartShellView, { display: props2.render.display });
38399
+ return /* @__PURE__ */ jsx37(CartShellView, { display: props2.render.display });
38360
38400
  }
38361
38401
  function CheckoutServerContent(props2) {
38362
- return /* @__PURE__ */ jsx36(CheckoutShellView, { display: props2.render.display });
38402
+ return /* @__PURE__ */ jsx37(CheckoutShellView, { display: props2.render.display });
38363
38403
  }
38364
38404
 
38365
38405
  // ../blocks/src/system/runtime/nodes/cart.server.tsx
38366
- import { jsx as jsx37, jsxs as jsxs24 } from "react/jsx-runtime";
38406
+ import { jsx as jsx38, jsxs as jsxs24 } from "react/jsx-runtime";
38367
38407
  function CartSSR({
38368
38408
  blockId,
38369
38409
  siteId,
@@ -38388,8 +38428,8 @@ function CartSSR({
38388
38428
  "data-site-id": siteId ?? void 0,
38389
38429
  ...getIslandRootProps("cart", blockId),
38390
38430
  children: [
38391
- /* @__PURE__ */ jsx37(IslandPropsScript, { value: islandProps }),
38392
- /* @__PURE__ */ jsx37(CartServerContent, { render: islandProps.render }),
38431
+ /* @__PURE__ */ jsx38(IslandPropsScript, { value: islandProps }),
38432
+ /* @__PURE__ */ jsx38(CartServerContent, { render: islandProps.render }),
38393
38433
  children
38394
38434
  ]
38395
38435
  }
@@ -38398,7 +38438,7 @@ function CartSSR({
38398
38438
  var cart_server_default = CartSSR;
38399
38439
 
38400
38440
  // ../blocks/src/system/runtime/nodes/checkout.server.tsx
38401
- import { jsx as jsx38, jsxs as jsxs25 } from "react/jsx-runtime";
38441
+ import { jsx as jsx39, jsxs as jsxs25 } from "react/jsx-runtime";
38402
38442
  function CheckoutSSR({
38403
38443
  blockId,
38404
38444
  siteId,
@@ -38423,8 +38463,8 @@ function CheckoutSSR({
38423
38463
  "data-site-id": siteId ?? void 0,
38424
38464
  ...getIslandRootProps("checkout", blockId),
38425
38465
  children: [
38426
- /* @__PURE__ */ jsx38(IslandPropsScript, { value: islandProps }),
38427
- /* @__PURE__ */ jsx38(CheckoutServerContent, { render: islandProps.render }),
38466
+ /* @__PURE__ */ jsx39(IslandPropsScript, { value: islandProps }),
38467
+ /* @__PURE__ */ jsx39(CheckoutServerContent, { render: islandProps.render }),
38428
38468
  children
38429
38469
  ]
38430
38470
  }
@@ -38433,7 +38473,7 @@ function CheckoutSSR({
38433
38473
  var checkout_server_default = CheckoutSSR;
38434
38474
 
38435
38475
  // ../blocks/src/system/runtime/nodes/course-registration.server.tsx
38436
- import { jsx as jsx39, jsxs as jsxs26 } from "react/jsx-runtime";
38476
+ import { jsx as jsx40, jsxs as jsxs26 } from "react/jsx-runtime";
38437
38477
  function CourseRegistrationSSR({
38438
38478
  blockId,
38439
38479
  siteId,
@@ -38481,8 +38521,8 @@ function CourseRegistrationSSR({
38481
38521
  "data-block": "course-registration",
38482
38522
  ...getIslandRootProps("course-registration", blockId),
38483
38523
  children: [
38484
- /* @__PURE__ */ jsx39(IslandPropsScript, { value: islandProps }),
38485
- /* @__PURE__ */ jsx39("div", { className: "course-registration__summary", children: /* @__PURE__ */ jsx39("strong", { children: islandProps.render.display.summaryButtonText }) }),
38524
+ /* @__PURE__ */ jsx40(IslandPropsScript, { value: islandProps }),
38525
+ /* @__PURE__ */ jsx40("div", { className: "course-registration__summary", children: /* @__PURE__ */ jsx40("strong", { children: islandProps.render.display.summaryButtonText }) }),
38486
38526
  children
38487
38527
  ]
38488
38528
  }
@@ -38491,7 +38531,7 @@ function CourseRegistrationSSR({
38491
38531
  var course_registration_server_default = CourseRegistrationSSR;
38492
38532
 
38493
38533
  // ../blocks/src/system/runtime/nodes/gifting.server.tsx
38494
- import { jsx as jsx40, jsxs as jsxs27 } from "react/jsx-runtime";
38534
+ import { jsx as jsx41, jsxs as jsxs27 } from "react/jsx-runtime";
38495
38535
  function GiftingSSR({ blockId, ...rest }) {
38496
38536
  const islandProps = buildGiftingInteractiveIslandProps(rest);
38497
38537
  const offers = islandProps.render.hydration.offers;
@@ -38508,7 +38548,7 @@ function GiftingSSR({ blockId, ...rest }) {
38508
38548
  },
38509
38549
  ...getIslandRootProps("gifting", blockId),
38510
38550
  children: [
38511
- /* @__PURE__ */ jsx40(IslandPropsScript, { value: islandProps }),
38551
+ /* @__PURE__ */ jsx41(IslandPropsScript, { value: islandProps }),
38512
38552
  /* @__PURE__ */ jsxs27(
38513
38553
  "div",
38514
38554
  {
@@ -38518,13 +38558,13 @@ function GiftingSSR({ blockId, ...rest }) {
38518
38558
  },
38519
38559
  children: [
38520
38560
  /* @__PURE__ */ jsxs27("div", { className: "rb-grid", style: { gap: "0.5rem" }, children: [
38521
- /* @__PURE__ */ jsx40("h2", { style: { fontSize: "clamp(1.75rem, 3vw, 2.5rem)", fontWeight: 700, margin: 0 }, children: islandProps.render.display.heading }),
38522
- islandProps.render.display.intro ? /* @__PURE__ */ jsx40("p", { style: { margin: 0, color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: islandProps.render.display.intro }) : null
38561
+ /* @__PURE__ */ jsx41("h2", { style: { fontSize: "clamp(1.75rem, 3vw, 2.5rem)", fontWeight: 700, margin: 0 }, children: islandProps.render.display.heading }),
38562
+ islandProps.render.display.intro ? /* @__PURE__ */ jsx41("p", { style: { margin: 0, color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: islandProps.render.display.intro }) : null
38523
38563
  ] }),
38524
38564
  hasOffers ? /* @__PURE__ */ jsxs27("div", { className: "rb-grid", style: { gap: "1.5rem" }, children: [
38525
38565
  (offers?.giftCards.length ?? 0) > 0 ? /* @__PURE__ */ jsxs27("div", { className: "rb-grid", style: { gap: "1rem" }, children: [
38526
- /* @__PURE__ */ jsx40("h3", { style: { margin: 0, fontSize: "1.25rem", fontWeight: 700 }, children: islandProps.render.display.giftCardsHeading }),
38527
- /* @__PURE__ */ jsx40("div", { className: "rb-grid", style: { gap: "1rem" }, children: offers?.giftCards.map((offer) => /* @__PURE__ */ jsxs27(
38566
+ /* @__PURE__ */ jsx41("h3", { style: { margin: 0, fontSize: "1.25rem", fontWeight: 700 }, children: islandProps.render.display.giftCardsHeading }),
38567
+ /* @__PURE__ */ jsx41("div", { className: "rb-grid", style: { gap: "1rem" }, children: offers?.giftCards.map((offer) => /* @__PURE__ */ jsxs27(
38528
38568
  "article",
38529
38569
  {
38530
38570
  style: {
@@ -38534,16 +38574,16 @@ function GiftingSSR({ blockId, ...rest }) {
38534
38574
  background: "rgb(var(--tb-surface, 255 255 255) / 0.92)"
38535
38575
  },
38536
38576
  children: [
38537
- /* @__PURE__ */ jsx40("h4", { style: { margin: 0, fontSize: "1.05rem", fontWeight: 700 }, children: offer.title }),
38538
- offer.description ? /* @__PURE__ */ jsx40("p", { style: { margin: "0.5rem 0 0", color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: offer.description }) : null
38577
+ /* @__PURE__ */ jsx41("h4", { style: { margin: 0, fontSize: "1.05rem", fontWeight: 700 }, children: offer.title }),
38578
+ offer.description ? /* @__PURE__ */ jsx41("p", { style: { margin: "0.5rem 0 0", color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: offer.description }) : null
38539
38579
  ]
38540
38580
  },
38541
38581
  offer.id
38542
38582
  )) })
38543
38583
  ] }) : null,
38544
38584
  (offers?.vouchers.length ?? 0) > 0 ? /* @__PURE__ */ jsxs27("div", { className: "rb-grid", style: { gap: "1rem" }, children: [
38545
- /* @__PURE__ */ jsx40("h3", { style: { margin: 0, fontSize: "1.25rem", fontWeight: 700 }, children: islandProps.render.display.vouchersHeading }),
38546
- /* @__PURE__ */ jsx40("div", { className: "rb-grid", style: { gap: "1rem" }, children: offers?.vouchers.map((offer) => /* @__PURE__ */ jsxs27(
38585
+ /* @__PURE__ */ jsx41("h3", { style: { margin: 0, fontSize: "1.25rem", fontWeight: 700 }, children: islandProps.render.display.vouchersHeading }),
38586
+ /* @__PURE__ */ jsx41("div", { className: "rb-grid", style: { gap: "1rem" }, children: offers?.vouchers.map((offer) => /* @__PURE__ */ jsxs27(
38547
38587
  "article",
38548
38588
  {
38549
38589
  style: {
@@ -38553,14 +38593,14 @@ function GiftingSSR({ blockId, ...rest }) {
38553
38593
  background: "rgb(var(--tb-surface, 255 255 255) / 0.92)"
38554
38594
  },
38555
38595
  children: [
38556
- /* @__PURE__ */ jsx40("h4", { style: { margin: 0, fontSize: "1.05rem", fontWeight: 700 }, children: offer.title }),
38557
- offer.description ? /* @__PURE__ */ jsx40("p", { style: { margin: "0.5rem 0 0", color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: offer.description }) : null
38596
+ /* @__PURE__ */ jsx41("h4", { style: { margin: 0, fontSize: "1.05rem", fontWeight: 700 }, children: offer.title }),
38597
+ offer.description ? /* @__PURE__ */ jsx41("p", { style: { margin: "0.5rem 0 0", color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: offer.description }) : null
38558
38598
  ]
38559
38599
  },
38560
38600
  offer.id
38561
38601
  )) })
38562
38602
  ] }) : null
38563
- ] }) : /* @__PURE__ */ jsx40("p", { style: { margin: 0 }, children: islandProps.render.display.emptyStateText })
38603
+ ] }) : /* @__PURE__ */ jsx41("p", { style: { margin: 0 }, children: islandProps.render.display.emptyStateText })
38564
38604
  ]
38565
38605
  }
38566
38606
  )
@@ -38571,12 +38611,12 @@ function GiftingSSR({ blockId, ...rest }) {
38571
38611
  var gifting_server_default = GiftingSSR;
38572
38612
 
38573
38613
  // ../blocks/src/system/runtime/nodes/events/EventListing.view.tsx
38574
- import { jsx as jsx41, jsxs as jsxs28 } from "react/jsx-runtime";
38614
+ import { jsx as jsx42, jsxs as jsxs28 } from "react/jsx-runtime";
38575
38615
  function EventListingFrameView(props2) {
38576
38616
  const { display, filters, emptyState: emptyState4, footer, renderEventCard: renderEventCard2 } = props2;
38577
38617
  return /* @__PURE__ */ jsxs28("div", { className: `event-listing ${display.className ?? ""}`, "data-block": "event-listing", children: [
38578
38618
  filters,
38579
- display.state === "loading" ? /* @__PURE__ */ jsx41(EmptyState, { message: display.loadingMessage }) : display.state === "empty" ? emptyState4 ?? /* @__PURE__ */ jsx41(EmptyState, { message: display.emptyMessage }) : /* @__PURE__ */ jsx41("div", { className: display.containerClass, children: display.events.map((event) => renderEventCard2(event)) }),
38619
+ display.state === "loading" ? /* @__PURE__ */ jsx42(EmptyState, { message: display.loadingMessage }) : display.state === "empty" ? emptyState4 ?? /* @__PURE__ */ jsx42(EmptyState, { message: display.emptyMessage }) : /* @__PURE__ */ jsx42("div", { className: display.containerClass, children: display.events.map((event) => renderEventCard2(event)) }),
38580
38620
  footer
38581
38621
  ] });
38582
38622
  }
@@ -38653,7 +38693,7 @@ function formatShortDayLabel(date) {
38653
38693
  }
38654
38694
 
38655
38695
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.server.tsx
38656
- import { jsx as jsx42, jsxs as jsxs29 } from "react/jsx-runtime";
38696
+ import { jsx as jsx43, jsxs as jsxs29 } from "react/jsx-runtime";
38657
38697
  function assertNeverDisplayMode(value) {
38658
38698
  throw new Error(`Unsupported event-calendar displayMode: ${String(value)}`);
38659
38699
  }
@@ -38667,7 +38707,7 @@ function renderCombinedSsr(display, prefetchedEvents) {
38667
38707
  const listDisplay = buildEventCalendarListingDisplay(display, prefetchedEvents, "event-combined-content");
38668
38708
  return /* @__PURE__ */ jsxs29("div", { className: clsx_default("event-combined", display.className ?? void 0), "data-block": "event-combined", children: [
38669
38709
  /* @__PURE__ */ jsxs29("div", { className: "nav-tabs", role: "tablist", children: [
38670
- /* @__PURE__ */ jsx42(
38710
+ /* @__PURE__ */ jsx43(
38671
38711
  "button",
38672
38712
  {
38673
38713
  type: "button",
@@ -38677,7 +38717,7 @@ function renderCombinedSsr(display, prefetchedEvents) {
38677
38717
  children: "List"
38678
38718
  }
38679
38719
  ),
38680
- /* @__PURE__ */ jsx42(
38720
+ /* @__PURE__ */ jsx43(
38681
38721
  "button",
38682
38722
  {
38683
38723
  type: "button",
@@ -38688,7 +38728,7 @@ function renderCombinedSsr(display, prefetchedEvents) {
38688
38728
  }
38689
38729
  )
38690
38730
  ] }),
38691
- /* @__PURE__ */ jsx42(
38731
+ /* @__PURE__ */ jsx43(
38692
38732
  EventListingFrameView,
38693
38733
  {
38694
38734
  display: listDisplay,
@@ -38699,7 +38739,7 @@ function renderCombinedSsr(display, prefetchedEvents) {
38699
38739
  }
38700
38740
  function renderListSsr(display, prefetchedEvents) {
38701
38741
  const listDisplay = buildEventCalendarListingDisplay(display, prefetchedEvents);
38702
- return /* @__PURE__ */ jsx42(
38742
+ return /* @__PURE__ */ jsx43(
38703
38743
  EventListingFrameView,
38704
38744
  {
38705
38745
  display: listDisplay,
@@ -38717,27 +38757,27 @@ function renderCalendarGrid(display) {
38717
38757
  return /* @__PURE__ */ jsxs29("div", { className: clsx_default("event-calendar", display.className ?? void 0), "data-block": "event-calendar", children: [
38718
38758
  /* @__PURE__ */ jsxs29("div", { className: "event-calendar-header", children: [
38719
38759
  /* @__PURE__ */ jsxs29("div", { className: "event-calendar-nav", children: [
38720
- /* @__PURE__ */ jsx42(
38760
+ /* @__PURE__ */ jsx43(
38721
38761
  "button",
38722
38762
  {
38723
38763
  type: "button",
38724
38764
  className: "event-calendar-nav-btn",
38725
38765
  "aria-label": calendarView === "week" ? "Previous week" : "Previous month",
38726
- children: /* @__PURE__ */ jsx42("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx42("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
38766
+ children: /* @__PURE__ */ jsx43("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx43("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
38727
38767
  }
38728
38768
  ),
38729
- /* @__PURE__ */ jsx42("h3", { className: "event-calendar-title", children: headerTitle }),
38730
- /* @__PURE__ */ jsx42(
38769
+ /* @__PURE__ */ jsx43("h3", { className: "event-calendar-title", children: headerTitle }),
38770
+ /* @__PURE__ */ jsx43(
38731
38771
  "button",
38732
38772
  {
38733
38773
  type: "button",
38734
38774
  className: "event-calendar-nav-btn",
38735
38775
  "aria-label": calendarView === "week" ? "Next week" : "Next month",
38736
- children: /* @__PURE__ */ jsx42("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx42("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
38776
+ children: /* @__PURE__ */ jsx43("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx43("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
38737
38777
  }
38738
38778
  )
38739
38779
  ] }),
38740
- /* @__PURE__ */ jsx42(
38780
+ /* @__PURE__ */ jsx43(
38741
38781
  "button",
38742
38782
  {
38743
38783
  type: "button",
@@ -38750,8 +38790,8 @@ function renderCalendarGrid(display) {
38750
38790
  )
38751
38791
  ] }),
38752
38792
  /* @__PURE__ */ jsxs29("div", { className: "event-calendar-container", children: [
38753
- /* @__PURE__ */ jsx42("div", { className: "event-calendar-day-headers", children: dayNames.map((day) => /* @__PURE__ */ jsx42("div", { className: "event-calendar-day-header", children: day }, day)) }),
38754
- /* @__PURE__ */ jsx42("div", { className: "event-calendar-grid", children: calendarDays.map((date) => {
38793
+ /* @__PURE__ */ jsx43("div", { className: "event-calendar-day-headers", children: dayNames.map((day) => /* @__PURE__ */ jsx43("div", { className: "event-calendar-day-header", children: day }, day)) }),
38794
+ /* @__PURE__ */ jsx43("div", { className: "event-calendar-grid", children: calendarDays.map((date) => {
38755
38795
  const dateKey = formatDateKey2(date);
38756
38796
  const dayEvents = eventsByDate.get(dateKey) || [];
38757
38797
  const isCurrentMonth = date.getMonth() === viewDate.getMonth();
@@ -38762,7 +38802,7 @@ function renderCalendarGrid(display) {
38762
38802
  today && "event-calendar-day--today"
38763
38803
  );
38764
38804
  return /* @__PURE__ */ jsxs29("div", { className: dayClasses, children: [
38765
- /* @__PURE__ */ jsx42("div", { className: "event-calendar-day-number", children: date.getDate() }),
38805
+ /* @__PURE__ */ jsx43("div", { className: "event-calendar-day-number", children: date.getDate() }),
38766
38806
  /* @__PURE__ */ jsxs29("div", { className: "event-calendar-events", children: [
38767
38807
  dayEvents.slice(0, MAX_EVENTS_PER_DAY).map((event) => /* @__PURE__ */ jsxs29(
38768
38808
  "a",
@@ -38771,9 +38811,9 @@ function renderCalendarGrid(display) {
38771
38811
  className: "event-calendar-event",
38772
38812
  title: `${event.title} at ${formatTime(event.startsAt, { timeZone: getEventTimeZone(event) })}`,
38773
38813
  children: [
38774
- /* @__PURE__ */ jsx42("span", { className: "event-calendar-event-time", children: formatTime(event.startsAt, { timeZone: getEventTimeZone(event) }) }),
38814
+ /* @__PURE__ */ jsx43("span", { className: "event-calendar-event-time", children: formatTime(event.startsAt, { timeZone: getEventTimeZone(event) }) }),
38775
38815
  " ",
38776
- /* @__PURE__ */ jsx42("span", { className: "event-calendar-event-title", children: event.title })
38816
+ /* @__PURE__ */ jsx43("span", { className: "event-calendar-event-title", children: event.title })
38777
38817
  ]
38778
38818
  },
38779
38819
  event.occurrenceId || event.id
@@ -38787,7 +38827,7 @@ function renderCalendarGrid(display) {
38787
38827
  ] }, dateKey);
38788
38828
  }) })
38789
38829
  ] }),
38790
- display.events.length === 0 ? /* @__PURE__ */ jsx42("p", { className: "event-calendar-empty", children: display.emptyMessage }) : null
38830
+ display.events.length === 0 ? /* @__PURE__ */ jsx43("p", { className: "event-calendar-empty", children: display.emptyMessage }) : null
38791
38831
  ] });
38792
38832
  }
38793
38833
  function renderTimetableSsr(display) {
@@ -38803,27 +38843,27 @@ function renderTimetableSsr(display) {
38803
38843
  return /* @__PURE__ */ jsxs29("div", { className: clsx_default("event-calendar", "event-calendar--timetable", display.className ?? void 0), "data-block": "event-calendar", children: [
38804
38844
  /* @__PURE__ */ jsxs29("div", { className: "event-calendar-header", children: [
38805
38845
  /* @__PURE__ */ jsxs29("div", { className: "event-calendar-nav", children: [
38806
- /* @__PURE__ */ jsx42(
38846
+ /* @__PURE__ */ jsx43(
38807
38847
  "button",
38808
38848
  {
38809
38849
  type: "button",
38810
38850
  className: "event-calendar-nav-btn",
38811
38851
  "aria-label": "Previous week",
38812
- children: /* @__PURE__ */ jsx42("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx42("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
38852
+ children: /* @__PURE__ */ jsx43("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx43("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
38813
38853
  }
38814
38854
  ),
38815
- /* @__PURE__ */ jsx42("h3", { className: "event-calendar-title", children: headerTitle }),
38816
- /* @__PURE__ */ jsx42(
38855
+ /* @__PURE__ */ jsx43("h3", { className: "event-calendar-title", children: headerTitle }),
38856
+ /* @__PURE__ */ jsx43(
38817
38857
  "button",
38818
38858
  {
38819
38859
  type: "button",
38820
38860
  className: "event-calendar-nav-btn",
38821
38861
  "aria-label": "Next week",
38822
- children: /* @__PURE__ */ jsx42("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx42("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
38862
+ children: /* @__PURE__ */ jsx43("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx43("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
38823
38863
  }
38824
38864
  )
38825
38865
  ] }),
38826
- /* @__PURE__ */ jsx42(
38866
+ /* @__PURE__ */ jsx43(
38827
38867
  "button",
38828
38868
  {
38829
38869
  type: "button",
@@ -38836,7 +38876,7 @@ function renderTimetableSsr(display) {
38836
38876
  )
38837
38877
  ] }),
38838
38878
  /* @__PURE__ */ jsxs29("div", { className: "event-timetable", children: [
38839
- /* @__PURE__ */ jsx42("div", { className: "event-timetable-day-selector", "aria-label": "Choose timetable day", children: model.days.map((day) => /* @__PURE__ */ jsx42(
38879
+ /* @__PURE__ */ jsx43("div", { className: "event-timetable-day-selector", "aria-label": "Choose timetable day", children: model.days.map((day) => /* @__PURE__ */ jsx43(
38840
38880
  "button",
38841
38881
  {
38842
38882
  type: "button",
@@ -38848,10 +38888,10 @@ function renderTimetableSsr(display) {
38848
38888
  },
38849
38889
  day.dateKey
38850
38890
  )) }),
38851
- /* @__PURE__ */ jsx42("div", { className: "event-timetable-container", children: /* @__PURE__ */ jsxs29("div", { className: "event-timetable-grid", "aria-label": "Weekly timetable", children: [
38891
+ /* @__PURE__ */ jsx43("div", { className: "event-timetable-container", children: /* @__PURE__ */ jsxs29("div", { className: "event-timetable-grid", "aria-label": "Weekly timetable", children: [
38852
38892
  /* @__PURE__ */ jsxs29("div", { className: "event-timetable-time-rail", "aria-hidden": "true", children: [
38853
- /* @__PURE__ */ jsx42("div", { className: "event-timetable-day-heading" }),
38854
- /* @__PURE__ */ jsx42("div", { className: "event-timetable-time-body", children: model.hourTicks.map((hour) => /* @__PURE__ */ jsx42(
38893
+ /* @__PURE__ */ jsx43("div", { className: "event-timetable-day-heading" }),
38894
+ /* @__PURE__ */ jsx43("div", { className: "event-timetable-time-body", children: model.hourTicks.map((hour) => /* @__PURE__ */ jsx43(
38855
38895
  "div",
38856
38896
  {
38857
38897
  className: "event-timetable-time-label",
@@ -38872,7 +38912,7 @@ function renderTimetableSsr(display) {
38872
38912
  children: [
38873
38913
  /* @__PURE__ */ jsxs29("h4", { className: "event-timetable-day-heading", children: [
38874
38914
  day.label,
38875
- day.isToday ? /* @__PURE__ */ jsx42("span", { className: "event-timetable-today-badge", children: "Today" }) : null
38915
+ day.isToday ? /* @__PURE__ */ jsx43("span", { className: "event-timetable-today-badge", children: "Today" }) : null
38876
38916
  ] }),
38877
38917
  /* @__PURE__ */ jsxs29(
38878
38918
  "div",
@@ -38880,7 +38920,7 @@ function renderTimetableSsr(display) {
38880
38920
  className: "event-timetable-day-body",
38881
38921
  style: { "--event-timetable-range-minutes": String(model.rangeMinutes) },
38882
38922
  children: [
38883
- model.hourTicks.map((hour) => /* @__PURE__ */ jsx42(
38923
+ model.hourTicks.map((hour) => /* @__PURE__ */ jsx43(
38884
38924
  "div",
38885
38925
  {
38886
38926
  className: "event-timetable-hour-line",
@@ -38889,7 +38929,7 @@ function renderTimetableSsr(display) {
38889
38929
  },
38890
38930
  hour
38891
38931
  )),
38892
- day.events.length === 0 ? /* @__PURE__ */ jsx42("p", { className: "event-timetable-day-empty", children: "No classes" }) : day.events.map((cell) => /* @__PURE__ */ jsxs29(
38932
+ day.events.length === 0 ? /* @__PURE__ */ jsx43("p", { className: "event-timetable-day-empty", children: "No classes" }) : day.events.map((cell) => /* @__PURE__ */ jsxs29(
38893
38933
  "a",
38894
38934
  {
38895
38935
  href: cell.event.path,
@@ -38903,11 +38943,11 @@ function renderTimetableSsr(display) {
38903
38943
  borderColor: cell.categoryColor
38904
38944
  },
38905
38945
  children: [
38906
- /* @__PURE__ */ jsx42("span", { className: "event-timetable-event-time", children: cell.timeLabel }),
38907
- /* @__PURE__ */ jsx42("span", { className: "event-timetable-event-title", children: cell.event.title }),
38908
- cell.teacherLine ? /* @__PURE__ */ jsx42("span", { className: "event-timetable-event-teacher", children: cell.teacherLine }) : null,
38909
- cell.event.venue ? /* @__PURE__ */ jsx42("span", { className: "event-timetable-event-meta", children: cell.event.venue.name }) : null,
38910
- display.showCapacity && cell.capacityLabel ? /* @__PURE__ */ jsx42(
38946
+ /* @__PURE__ */ jsx43("span", { className: "event-timetable-event-time", children: cell.timeLabel }),
38947
+ /* @__PURE__ */ jsx43("span", { className: "event-timetable-event-title", children: cell.event.title }),
38948
+ cell.teacherLine ? /* @__PURE__ */ jsx43("span", { className: "event-timetable-event-teacher", children: cell.teacherLine }) : null,
38949
+ cell.event.venue ? /* @__PURE__ */ jsx43("span", { className: "event-timetable-event-meta", children: cell.event.venue.name }) : null,
38950
+ display.showCapacity && cell.capacityLabel ? /* @__PURE__ */ jsx43(
38911
38951
  "span",
38912
38952
  {
38913
38953
  className: clsx_default(
@@ -38929,7 +38969,7 @@ function renderTimetableSsr(display) {
38929
38969
  day.dateKey
38930
38970
  ))
38931
38971
  ] }) }),
38932
- !model.hasEvents ? /* @__PURE__ */ jsx42("p", { className: "event-timetable-empty", children: display.emptyMessage }) : null
38972
+ !model.hasEvents ? /* @__PURE__ */ jsx43("p", { className: "event-timetable-empty", children: display.emptyMessage }) : null
38933
38973
  ] })
38934
38974
  ] });
38935
38975
  }
@@ -38967,19 +39007,19 @@ var EventCalendarSSR = (props2) => {
38967
39007
  content = assertNeverDisplayMode(display.displayMode);
38968
39008
  }
38969
39009
  return /* @__PURE__ */ jsxs29("div", { ...getIslandRootProps("event-calendar", props2.blockId), children: [
38970
- /* @__PURE__ */ jsx42(IslandPropsScript, { value: islandProps }),
39010
+ /* @__PURE__ */ jsx43(IslandPropsScript, { value: islandProps }),
38971
39011
  content
38972
39012
  ] });
38973
39013
  };
38974
39014
 
38975
39015
  // ../blocks/src/system/runtime/nodes/events/EventListing.server.tsx
38976
- import { jsx as jsx43, jsxs as jsxs30 } from "react/jsx-runtime";
39016
+ import { jsx as jsx44, jsxs as jsxs30 } from "react/jsx-runtime";
38977
39017
  var EventListingSSR = (props2) => {
38978
39018
  const islandProps = buildEventListingInteractiveIslandProps(props2);
38979
39019
  const display = islandProps.render.display;
38980
39020
  return /* @__PURE__ */ jsxs30("div", { ...getIslandRootProps("event-listing", props2.blockId), children: [
38981
- /* @__PURE__ */ jsx43(IslandPropsScript, { value: islandProps }),
38982
- /* @__PURE__ */ jsx43(
39021
+ /* @__PURE__ */ jsx44(IslandPropsScript, { value: islandProps }),
39022
+ /* @__PURE__ */ jsx44(
38983
39023
  EventListingFrameView,
38984
39024
  {
38985
39025
  display,
@@ -38990,7 +39030,7 @@ var EventListingSSR = (props2) => {
38990
39030
  };
38991
39031
 
38992
39032
  // ../blocks/src/system/runtime/nodes/event-registration.server.tsx
38993
- import { jsx as jsx44, jsxs as jsxs31 } from "react/jsx-runtime";
39033
+ import { jsx as jsx45, jsxs as jsxs31 } from "react/jsx-runtime";
38994
39034
  function EventRegistrationSSR({
38995
39035
  blockId,
38996
39036
  siteId,
@@ -39037,8 +39077,8 @@ function EventRegistrationSSR({
39037
39077
  className: `event-registration ${className ?? ""}`.trim(),
39038
39078
  ...getIslandRootProps("event-registration", blockId),
39039
39079
  children: [
39040
- /* @__PURE__ */ jsx44(IslandPropsScript, { value: islandProps }),
39041
- /* @__PURE__ */ jsx44("div", { className: "event-registration__summary", children: /* @__PURE__ */ jsx44("strong", { children: islandProps.render.display.summaryButtonText }) }),
39080
+ /* @__PURE__ */ jsx45(IslandPropsScript, { value: islandProps }),
39081
+ /* @__PURE__ */ jsx45("div", { className: "event-registration__summary", children: /* @__PURE__ */ jsx45("strong", { children: islandProps.render.display.summaryButtonText }) }),
39042
39082
  children
39043
39083
  ]
39044
39084
  }
@@ -39047,7 +39087,7 @@ function EventRegistrationSSR({
39047
39087
  var event_registration_server_default = EventRegistrationSSR;
39048
39088
 
39049
39089
  // ../blocks/src/system/runtime/shared/components/FeedbackMessage.tsx
39050
- import { jsx as jsx45, jsxs as jsxs32 } from "react/jsx-runtime";
39090
+ import { jsx as jsx46, jsxs as jsxs32 } from "react/jsx-runtime";
39051
39091
  function joinClasses5(...parts) {
39052
39092
  return parts.filter((part) => typeof part === "string" && part.length > 0).join(" ");
39053
39093
  }
@@ -39071,15 +39111,15 @@ function FeedbackMessage({
39071
39111
  role,
39072
39112
  "aria-live": resolvedLive === "off" ? void 0 : resolvedLive,
39073
39113
  children: [
39074
- title ? /* @__PURE__ */ jsx45("p", { className: joinClasses5(titleClassName), "data-feedback-title": true, children: title }) : null,
39075
- shouldWrapBody ? /* @__PURE__ */ jsx45("div", { className: joinClasses5(bodyClassName), "data-feedback-body": true, children }) : children
39114
+ title ? /* @__PURE__ */ jsx46("p", { className: joinClasses5(titleClassName), "data-feedback-title": true, children: title }) : null,
39115
+ shouldWrapBody ? /* @__PURE__ */ jsx46("div", { className: joinClasses5(bodyClassName), "data-feedback-body": true, children }) : children
39076
39116
  ]
39077
39117
  }
39078
39118
  );
39079
39119
  }
39080
39120
 
39081
39121
  // ../blocks/src/system/runtime/nodes/form.server.tsx
39082
- import { jsx as jsx46, jsxs as jsxs33 } from "react/jsx-runtime";
39122
+ import { jsx as jsx47, jsxs as jsxs33 } from "react/jsx-runtime";
39083
39123
  var FormNodeSSR = ({
39084
39124
  blockId,
39085
39125
  value,
@@ -39105,8 +39145,8 @@ var FormNodeSSR = ({
39105
39145
  const form2 = display.form;
39106
39146
  if (!form2) {
39107
39147
  return /* @__PURE__ */ jsxs33("div", { ...getIslandRootProps("form", blockId), children: [
39108
- /* @__PURE__ */ jsx46(IslandPropsScript, { value: islandProps }),
39109
- /* @__PURE__ */ jsx46(FeedbackMessage, { tone: "warning", className: clsx_default("fb-empty", className), role: "status", children: "Missing or unknown form." })
39148
+ /* @__PURE__ */ jsx47(IslandPropsScript, { value: islandProps }),
39149
+ /* @__PURE__ */ jsx47(FeedbackMessage, { tone: "warning", className: clsx_default("fb-empty", className), role: "status", children: "Missing or unknown form." })
39110
39150
  ] });
39111
39151
  }
39112
39152
  const groups = display.groups;
@@ -39117,8 +39157,8 @@ var FormNodeSSR = ({
39117
39157
  const type = String(field.type ?? "text");
39118
39158
  if (type === "textarea") {
39119
39159
  return /* @__PURE__ */ jsxs33("div", { className: "fb-field", children: [
39120
- /* @__PURE__ */ jsx46("label", { htmlFor: inputId, className: "form-label", children: label }),
39121
- /* @__PURE__ */ jsx46(
39160
+ /* @__PURE__ */ jsx47("label", { htmlFor: inputId, className: "form-label", children: label }),
39161
+ /* @__PURE__ */ jsx47(
39122
39162
  "textarea",
39123
39163
  {
39124
39164
  id: inputId,
@@ -39135,19 +39175,19 @@ var FormNodeSSR = ({
39135
39175
  const options = field.options ?? [];
39136
39176
  const multiple = Boolean(field.multiple);
39137
39177
  return /* @__PURE__ */ jsxs33("div", { className: "fb-field", children: [
39138
- /* @__PURE__ */ jsx46("label", { htmlFor: inputId, className: "form-label", children: label }),
39178
+ /* @__PURE__ */ jsx47("label", { htmlFor: inputId, className: "form-label", children: label }),
39139
39179
  /* @__PURE__ */ jsxs33("select", { id: inputId, name: field.id, multiple, required, className: "form-select", children: [
39140
- !multiple && /* @__PURE__ */ jsx46("option", { value: "", children: "Select\u2026" }),
39141
- options.map((opt) => /* @__PURE__ */ jsx46("option", { value: opt.value, children: opt.label }, opt.value))
39180
+ !multiple && /* @__PURE__ */ jsx47("option", { value: "", children: "Select\u2026" }),
39181
+ options.map((opt) => /* @__PURE__ */ jsx47("option", { value: opt.value, children: opt.label }, opt.value))
39142
39182
  ] })
39143
39183
  ] }, field.id);
39144
39184
  }
39145
39185
  if (type === "radio") {
39146
39186
  const options = field.options ?? [];
39147
39187
  return /* @__PURE__ */ jsxs33("fieldset", { className: "fb-fieldset", children: [
39148
- /* @__PURE__ */ jsx46("legend", { className: "form-label", children: label }),
39188
+ /* @__PURE__ */ jsx47("legend", { className: "form-label", children: label }),
39149
39189
  options.map((opt) => /* @__PURE__ */ jsxs33("label", { className: "fb-inline form-label", children: [
39150
- /* @__PURE__ */ jsx46(
39190
+ /* @__PURE__ */ jsx47(
39151
39191
  "input",
39152
39192
  {
39153
39193
  type: "radio",
@@ -39157,14 +39197,14 @@ var FormNodeSSR = ({
39157
39197
  className: "form-radio"
39158
39198
  }
39159
39199
  ),
39160
- /* @__PURE__ */ jsx46("span", { children: opt.label })
39200
+ /* @__PURE__ */ jsx47("span", { children: opt.label })
39161
39201
  ] }, opt.value))
39162
39202
  ] }, field.id);
39163
39203
  }
39164
39204
  if (type === "checkbox" || type === "consent") {
39165
39205
  return /* @__PURE__ */ jsxs33("label", { className: "fb-inline form-label", children: [
39166
- /* @__PURE__ */ jsx46("input", { type: "checkbox", name: field.id, required, className: "form-checkbox" }),
39167
- /* @__PURE__ */ jsx46("span", { children: label })
39206
+ /* @__PURE__ */ jsx47("input", { type: "checkbox", name: field.id, required, className: "form-checkbox" }),
39207
+ /* @__PURE__ */ jsx47("span", { children: label })
39168
39208
  ] }, field.id);
39169
39209
  }
39170
39210
  const inputType = type === "email" || type === "url" || type === "tel" || type === "number" ? type : "text";
@@ -39179,8 +39219,8 @@ var FormNodeSSR = ({
39179
39219
  if (typeof field.max === "number") extra.max = field.max;
39180
39220
  }
39181
39221
  return /* @__PURE__ */ jsxs33("div", { className: "fb-field", children: [
39182
- /* @__PURE__ */ jsx46("label", { htmlFor: inputId, className: "form-label", children: label }),
39183
- /* @__PURE__ */ jsx46(
39222
+ /* @__PURE__ */ jsx47("label", { htmlFor: inputId, className: "form-label", children: label }),
39223
+ /* @__PURE__ */ jsx47(
39184
39224
  "input",
39185
39225
  {
39186
39226
  id: inputId,
@@ -39195,7 +39235,7 @@ var FormNodeSSR = ({
39195
39235
  ] }, field.id);
39196
39236
  };
39197
39237
  return /* @__PURE__ */ jsxs33("div", { ...getIslandRootProps("form", blockId), children: [
39198
- /* @__PURE__ */ jsx46(IslandPropsScript, { value: islandProps }),
39238
+ /* @__PURE__ */ jsx47(IslandPropsScript, { value: islandProps }),
39199
39239
  /* @__PURE__ */ jsxs33(
39200
39240
  "form",
39201
39241
  {
@@ -39204,15 +39244,15 @@ var FormNodeSSR = ({
39204
39244
  onSubmit,
39205
39245
  className: clsx_default("fb-form", display.className ?? void 0),
39206
39246
  children: [
39207
- /* @__PURE__ */ jsx46("input", { type: "hidden", name: "form_id", value: form2.id }),
39208
- /* @__PURE__ */ jsx46("input", { type: "text", name: "company", className: "hidden", tabIndex: -1, autoComplete: "off" }),
39247
+ /* @__PURE__ */ jsx47("input", { type: "hidden", name: "form_id", value: form2.id }),
39248
+ /* @__PURE__ */ jsx47("input", { type: "text", name: "company", className: "hidden", tabIndex: -1, autoComplete: "off" }),
39209
39249
  groups.map((group) => {
39210
39250
  if (group.type === "row") {
39211
- return /* @__PURE__ */ jsx46("div", { className: "fb-row fb-row-2", children: group.fields.map(renderField) }, group.key);
39251
+ return /* @__PURE__ */ jsx47("div", { className: "fb-row fb-row-2", children: group.fields.map(renderField) }, group.key);
39212
39252
  }
39213
39253
  return renderField(group.field);
39214
39254
  }),
39215
- /* @__PURE__ */ jsx46("div", { className: "fb-actions", children: /* @__PURE__ */ jsx46("div", { className: "fb-actions-inner", children: /* @__PURE__ */ jsx46(
39255
+ /* @__PURE__ */ jsx47("div", { className: "fb-actions", children: /* @__PURE__ */ jsx47("div", { className: "fb-actions-inner", children: /* @__PURE__ */ jsx47(
39216
39256
  "button",
39217
39257
  {
39218
39258
  type: "submit",
@@ -39231,7 +39271,7 @@ var FormNodeSSR = ({
39231
39271
  };
39232
39272
 
39233
39273
  // ../blocks/src/system/runtime/nodes/newsletter-form.server.tsx
39234
- import { jsx as jsx47, jsxs as jsxs34 } from "react/jsx-runtime";
39274
+ import { jsx as jsx48, jsxs as jsxs34 } from "react/jsx-runtime";
39235
39275
  function NewsletterFormSSR({
39236
39276
  blockId,
39237
39277
  siteId,
@@ -39266,9 +39306,9 @@ function NewsletterFormSSR({
39266
39306
  return /* @__PURE__ */ jsxs34("div", { className: "fb-field newsletter-field", children: [
39267
39307
  /* @__PURE__ */ jsxs34("label", { htmlFor: inputId, className: "form-label", children: [
39268
39308
  field.label,
39269
- field.required && /* @__PURE__ */ jsx47("span", { className: "newsletter-required", "aria-hidden": "true", children: "*" })
39309
+ field.required && /* @__PURE__ */ jsx48("span", { className: "newsletter-required", "aria-hidden": "true", children: "*" })
39270
39310
  ] }),
39271
- /* @__PURE__ */ jsx47(
39311
+ /* @__PURE__ */ jsx48(
39272
39312
  "input",
39273
39313
  {
39274
39314
  id: inputId,
@@ -39288,9 +39328,9 @@ function NewsletterFormSSR({
39288
39328
  ...getIslandRootProps("newsletter-form", blockId),
39289
39329
  className: clsx_default("newsletter-form-ssr", className),
39290
39330
  children: [
39291
- /* @__PURE__ */ jsx47(IslandPropsScript, { value: islandProps }),
39331
+ /* @__PURE__ */ jsx48(IslandPropsScript, { value: islandProps }),
39292
39332
  /* @__PURE__ */ jsxs34("form", { method: "POST", className: "newsletter-form fb-form", children: [
39293
- /* @__PURE__ */ jsx47(
39333
+ /* @__PURE__ */ jsx48(
39294
39334
  "input",
39295
39335
  {
39296
39336
  type: "text",
@@ -39303,7 +39343,7 @@ function NewsletterFormSSR({
39303
39343
  ),
39304
39344
  /* @__PURE__ */ jsxs34("div", { className: "newsletter-form-fields", children: [
39305
39345
  fields3.map(renderField),
39306
- /* @__PURE__ */ jsx47("div", { className: "newsletter-submit", children: /* @__PURE__ */ jsx47(
39346
+ /* @__PURE__ */ jsx48("div", { className: "newsletter-submit", children: /* @__PURE__ */ jsx48(
39307
39347
  "button",
39308
39348
  {
39309
39349
  type: "submit",
@@ -39312,7 +39352,7 @@ function NewsletterFormSSR({
39312
39352
  }
39313
39353
  ) })
39314
39354
  ] }),
39315
- display.privacyNote && /* @__PURE__ */ jsx47("p", { className: "newsletter-privacy-note", children: display.privacyNote })
39355
+ display.privacyNote && /* @__PURE__ */ jsx48("p", { className: "newsletter-privacy-note", children: display.privacyNote })
39316
39356
  ] })
39317
39357
  ]
39318
39358
  }
@@ -39321,7 +39361,7 @@ function NewsletterFormSSR({
39321
39361
  var newsletter_form_server_default = NewsletterFormSSR;
39322
39362
 
39323
39363
  // ../blocks/src/system/runtime/nodes/product-detail.server.tsx
39324
- import { jsx as jsx48, jsxs as jsxs35 } from "react/jsx-runtime";
39364
+ import { jsx as jsx49, jsxs as jsxs35 } from "react/jsx-runtime";
39325
39365
  function ProductDetailSSR({
39326
39366
  blockId,
39327
39367
  siteId,
@@ -39346,8 +39386,8 @@ function ProductDetailSSR({
39346
39386
  "data-site-id": siteId ?? void 0,
39347
39387
  ...getIslandRootProps("product-detail", blockId),
39348
39388
  children: [
39349
- /* @__PURE__ */ jsx48(IslandPropsScript, { value: islandProps }),
39350
- /* @__PURE__ */ jsx48(ProductDetailServerContent, { render: islandProps.render }),
39389
+ /* @__PURE__ */ jsx49(IslandPropsScript, { value: islandProps }),
39390
+ /* @__PURE__ */ jsx49(ProductDetailServerContent, { render: islandProps.render }),
39351
39391
  children
39352
39392
  ]
39353
39393
  }
@@ -39356,7 +39396,7 @@ function ProductDetailSSR({
39356
39396
  var product_detail_server_default = ProductDetailSSR;
39357
39397
 
39358
39398
  // ../blocks/src/system/runtime/nodes/product-list.server.tsx
39359
- import { jsx as jsx49, jsxs as jsxs36 } from "react/jsx-runtime";
39399
+ import { jsx as jsx50, jsxs as jsxs36 } from "react/jsx-runtime";
39360
39400
  function ProductListSSR({
39361
39401
  blockId,
39362
39402
  siteId,
@@ -39381,8 +39421,8 @@ function ProductListSSR({
39381
39421
  "data-site-id": siteId ?? void 0,
39382
39422
  ...getIslandRootProps("product-list", blockId),
39383
39423
  children: [
39384
- /* @__PURE__ */ jsx49(IslandPropsScript, { value: islandProps }),
39385
- /* @__PURE__ */ jsx49(ProductListServerContent, { render: islandProps.render }),
39424
+ /* @__PURE__ */ jsx50(IslandPropsScript, { value: islandProps }),
39425
+ /* @__PURE__ */ jsx50(ProductListServerContent, { render: islandProps.render }),
39386
39426
  children
39387
39427
  ]
39388
39428
  }
@@ -39391,7 +39431,7 @@ function ProductListSSR({
39391
39431
  var product_list_server_default = ProductListSSR;
39392
39432
 
39393
39433
  // ../blocks/src/system/runtime/nodes/shop.server.tsx
39394
- import { jsx as jsx50, jsxs as jsxs37 } from "react/jsx-runtime";
39434
+ import { jsx as jsx51, jsxs as jsxs37 } from "react/jsx-runtime";
39395
39435
  function ShopSSR({
39396
39436
  blockId,
39397
39437
  siteId,
@@ -39418,16 +39458,16 @@ function ShopSSR({
39418
39458
  "data-site-id": siteId ?? void 0,
39419
39459
  ...getIslandRootProps("shop", blockId),
39420
39460
  children: [
39421
- /* @__PURE__ */ jsx50(IslandPropsScript, { value: islandProps }),
39422
- /* @__PURE__ */ jsx50(
39461
+ /* @__PURE__ */ jsx51(IslandPropsScript, { value: islandProps }),
39462
+ /* @__PURE__ */ jsx51(
39423
39463
  PassesMembershipsSectionView,
39424
39464
  {
39425
39465
  display: render.display,
39426
- passCards: render.display.passes.map((pass) => /* @__PURE__ */ jsx50(
39466
+ passCards: render.display.passes.map((pass) => /* @__PURE__ */ jsx51(
39427
39467
  PassCardView,
39428
39468
  {
39429
39469
  display: pass,
39430
- action: /* @__PURE__ */ jsx50(
39470
+ action: /* @__PURE__ */ jsx51(
39431
39471
  "button",
39432
39472
  {
39433
39473
  type: "button",
@@ -39440,11 +39480,11 @@ function ShopSSR({
39440
39480
  },
39441
39481
  pass.id
39442
39482
  )),
39443
- membershipCards: render.display.memberships.map((membership) => /* @__PURE__ */ jsx50(
39483
+ membershipCards: render.display.memberships.map((membership) => /* @__PURE__ */ jsx51(
39444
39484
  MembershipCardView,
39445
39485
  {
39446
39486
  display: membership,
39447
- action: /* @__PURE__ */ jsx50(
39487
+ action: /* @__PURE__ */ jsx51(
39448
39488
  "button",
39449
39489
  {
39450
39490
  type: "button",
@@ -43831,7 +43871,7 @@ function transformSdkBlockToDefinition(sdkBlock) {
43831
43871
  }
43832
43872
 
43833
43873
  // ../blocks/src/PageRenderer.tsx
43834
- import { Fragment as Fragment6, jsx as jsx51 } from "react/jsx-runtime";
43874
+ import { Fragment as Fragment6, jsx as jsx52 } from "react/jsx-runtime";
43835
43875
  function PageRenderer({
43836
43876
  theme,
43837
43877
  page,
@@ -43855,12 +43895,12 @@ function PageRenderer({
43855
43895
  ]
43856
43896
  );
43857
43897
  if (!page || page.blocks.length === 0) {
43858
- return /* @__PURE__ */ jsx51("div", { className: "rb-p-6 rb-caption", style: textColorStyle("mutedText"), children: "No blocks found." });
43898
+ return /* @__PURE__ */ jsx52("div", { className: "rb-p-6 rb-caption", style: textColorStyle("mutedText"), children: "No blocks found." });
43859
43899
  }
43860
43900
  const themeTokens = providedThemeTokens ?? buildThemeRuntime(theme).tokens;
43861
43901
  const resolvedRegistry = registry ?? getDefaultComponentRegistry();
43862
43902
  setContextResolveImageUrlContext(imageResolveContext);
43863
- return /* @__PURE__ */ jsx51("div", { children: page.blocks.map((block, index) => {
43903
+ return /* @__PURE__ */ jsx52("div", { children: page.blocks.map((block, index) => {
43864
43904
  const blockKey = block.id ?? `${block.kind}-${index}`;
43865
43905
  const cleanKind = block.kind.replace(/^block\./, "");
43866
43906
  const definition = getBlockDefinition(block.kind);
@@ -43883,14 +43923,14 @@ function PageRenderer({
43883
43923
  customBlocks
43884
43924
  };
43885
43925
  if (!shouldUseWrapper) {
43886
- return /* @__PURE__ */ jsx51(MemoBlockSection, { ...blockSectionProps }, blockKey);
43926
+ return /* @__PURE__ */ jsx52(MemoBlockSection, { ...blockSectionProps }, blockKey);
43887
43927
  }
43888
43928
  const wrapperClassName = [
43889
43929
  `block-${cleanKind}`,
43890
43930
  wrapBlock ? "group relative" : null
43891
43931
  ].filter(Boolean).join(" ");
43892
43932
  const styleGroup = typeof renderableContent.styleGroup === "string" ? renderableContent.styleGroup : void 0;
43893
- return /* @__PURE__ */ jsx51(
43933
+ return /* @__PURE__ */ jsx52(
43894
43934
  "div",
43895
43935
  {
43896
43936
  className: wrapperClassName,
@@ -43900,7 +43940,7 @@ function PageRenderer({
43900
43940
  "data-variant": variantKey ?? void 0,
43901
43941
  "data-block-variant": variantKey ?? void 0,
43902
43942
  "data-style-group": styleGroup,
43903
- children: /* @__PURE__ */ jsx51(MemoBlockSection, { ...blockSectionProps })
43943
+ children: /* @__PURE__ */ jsx52(MemoBlockSection, { ...blockSectionProps })
43904
43944
  },
43905
43945
  blockKey
43906
43946
  );
@@ -44024,8 +44064,8 @@ var MemoBlockSection = React6.memo(
44024
44064
  blockId: block.id ?? null,
44025
44065
  blockKind: block.kind
44026
44066
  };
44027
- const rendered2 = /* @__PURE__ */ jsx51(OverrideComponent, { ...baseProps });
44028
- const node2 = wrapBlock && block.id ? /* @__PURE__ */ jsx51(Fragment6, { children: wrapBlock(block.id, rendered2) }) : /* @__PURE__ */ jsx51(Fragment6, { children: rendered2 });
44067
+ const rendered2 = /* @__PURE__ */ jsx52(OverrideComponent, { ...baseProps });
44068
+ const node2 = wrapBlock && block.id ? /* @__PURE__ */ jsx52(Fragment6, { children: wrapBlock(block.id, rendered2) }) : /* @__PURE__ */ jsx52(Fragment6, { children: rendered2 });
44029
44069
  return finish(node2, {
44030
44070
  outcome: "overrideWithoutDefinition",
44031
44071
  override: true,
@@ -44047,7 +44087,7 @@ var MemoBlockSection = React6.memo(
44047
44087
  const rendered = fallback(
44048
44088
  block.kind.startsWith("custom.") ? `No renderer available for block kind "${block.kind}". The custom block definition was not found (missing manifest).` : `No renderer available for block kind "${block.kind}".`
44049
44089
  );
44050
- const node = wrapBlock && block.id ? /* @__PURE__ */ jsx51(Fragment6, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx51(Fragment6, { children: rendered });
44090
+ const node = wrapBlock && block.id ? /* @__PURE__ */ jsx52(Fragment6, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx52(Fragment6, { children: rendered });
44051
44091
  return finish(node, { outcome: "missingDefinition", override: false });
44052
44092
  }
44053
44093
  const manifestHasLayout = Boolean(definition.manifest.layout) || definition.manifest.variants && Object.keys(definition.manifest.variants).length > 0;
@@ -44066,7 +44106,7 @@ var MemoBlockSection = React6.memo(
44066
44106
  const rendered = fallback(
44067
44107
  block.kind.startsWith("custom.") ? `No renderer available for block kind "${block.kind}". This custom block has no layout/variants, so it must be rendered via blockOverrides["${block.kind}"].` : `No renderer available for block kind "${block.kind}".`
44068
44108
  );
44069
- const node = wrapBlock && block.id ? /* @__PURE__ */ jsx51(Fragment6, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx51(Fragment6, { children: rendered });
44109
+ const node = wrapBlock && block.id ? /* @__PURE__ */ jsx52(Fragment6, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx52(Fragment6, { children: rendered });
44070
44110
  return finish(node, { outcome: "missingLayout", override: false });
44071
44111
  }
44072
44112
  const content = getRenderableContent(block);
@@ -44102,14 +44142,14 @@ var MemoBlockSection = React6.memo(
44102
44142
  const rendered = fallback(
44103
44143
  `Unable to render block kind "${block.kind}".`
44104
44144
  );
44105
- const node = wrapBlock && block.id ? /* @__PURE__ */ jsx51(Fragment6, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx51(Fragment6, { children: rendered });
44145
+ const node = wrapBlock && block.id ? /* @__PURE__ */ jsx52(Fragment6, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx52(Fragment6, { children: rendered });
44106
44146
  return finish(node, { outcome: "invalidPlaceholder", override: false });
44107
44147
  }
44108
44148
  } else {
44109
44149
  const rendered = fallback(
44110
44150
  `Invalid content for block kind "${block.kind}".`
44111
44151
  );
44112
- const node = wrapBlock && block.id ? /* @__PURE__ */ jsx51(Fragment6, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx51(Fragment6, { children: rendered });
44152
+ const node = wrapBlock && block.id ? /* @__PURE__ */ jsx52(Fragment6, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx52(Fragment6, { children: rendered });
44113
44153
  return finish(node, { outcome: "invalidContent", override: false });
44114
44154
  }
44115
44155
  try {
@@ -44142,7 +44182,7 @@ var MemoBlockSection = React6.memo(
44142
44182
  };
44143
44183
  let rendered;
44144
44184
  if (OverrideComponent) {
44145
- rendered = /* @__PURE__ */ jsx51(OverrideComponent, { ...baseProps });
44185
+ rendered = /* @__PURE__ */ jsx52(OverrideComponent, { ...baseProps });
44146
44186
  } else {
44147
44187
  const BlockComponent = getCachedBlockComponent(definition.manifest);
44148
44188
  const pathBase = typeof block.id === "string" && block.id.length > 0 ? `blocks.${block.id}.` : void 0;
@@ -44165,7 +44205,7 @@ var MemoBlockSection = React6.memo(
44165
44205
  };
44166
44206
  const blockBindings = block.bindings;
44167
44207
  const fragmentRegistry2 = getFragmentRegistry();
44168
- rendered = /* @__PURE__ */ jsx51(
44208
+ rendered = /* @__PURE__ */ jsx52(
44169
44209
  BlockComponent,
44170
44210
  {
44171
44211
  ...baseProps,
@@ -44179,18 +44219,18 @@ var MemoBlockSection = React6.memo(
44179
44219
  );
44180
44220
  }
44181
44221
  if (wrapBlock && block.id) {
44182
- return finish(/* @__PURE__ */ jsx51(Fragment6, { children: wrapBlock(block.id, rendered) }), {
44222
+ return finish(/* @__PURE__ */ jsx52(Fragment6, { children: wrapBlock(block.id, rendered) }), {
44183
44223
  override: Boolean(OverrideComponent),
44184
44224
  hasResolvedData
44185
44225
  });
44186
44226
  }
44187
- return finish(/* @__PURE__ */ jsx51(Fragment6, { children: rendered }), {
44227
+ return finish(/* @__PURE__ */ jsx52(Fragment6, { children: rendered }), {
44188
44228
  override: Boolean(OverrideComponent),
44189
44229
  hasResolvedData
44190
44230
  });
44191
44231
  } catch {
44192
44232
  const rendered = usePlaceholders ? fallback(`Unable to render block kind "${block.kind}".`) : fallback(`Invalid content for block kind "${block.kind}".`);
44193
- const node = wrapBlock && block.id ? /* @__PURE__ */ jsx51(Fragment6, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx51(Fragment6, { children: rendered });
44233
+ const node = wrapBlock && block.id ? /* @__PURE__ */ jsx52(Fragment6, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx52(Fragment6, { children: rendered });
44194
44234
  return finish(node, { outcome: "exception", override: false });
44195
44235
  }
44196
44236
  },
@@ -44199,7 +44239,7 @@ var MemoBlockSection = React6.memo(
44199
44239
  }
44200
44240
  );
44201
44241
  function fallback(message) {
44202
- return /* @__PURE__ */ jsx51("div", { className: "rb-p-6 rb-caption", style: textColorStyle("mutedText"), children: message });
44242
+ return /* @__PURE__ */ jsx52("div", { className: "rb-p-6 rb-caption", style: textColorStyle("mutedText"), children: message });
44203
44243
  }
44204
44244
  function shouldDebugCustomBlocks() {
44205
44245
  try {
@@ -44262,10 +44302,10 @@ function summarizeValue(value) {
44262
44302
  }
44263
44303
 
44264
44304
  // ../theme-core/src/mock-themes/components/swatch.tsx
44265
- import { jsx as jsx52, jsxs as jsxs38 } from "react/jsx-runtime";
44305
+ import { jsx as jsx53, jsxs as jsxs38 } from "react/jsx-runtime";
44266
44306
 
44267
44307
  // ../theme-core/src/mock-themes/components/PaletteCard.tsx
44268
- import { jsx as jsx53, jsxs as jsxs39 } from "react/jsx-runtime";
44308
+ import { jsx as jsx54, jsxs as jsxs39 } from "react/jsx-runtime";
44269
44309
 
44270
44310
  // ../../node_modules/.pnpm/@vibrant+image@4.0.4/node_modules/@vibrant/image/dist/esm/histogram.js
44271
44311
  var Histogram = class {
@@ -54449,7 +54489,7 @@ var containerResponsiveThemeCss = `/*
54449
54489
  }`;
54450
54490
 
54451
54491
  // ../theme-core/src/ThemeScopeCore.tsx
54452
- import { jsx as jsx54, jsxs as jsxs40 } from "react/jsx-runtime";
54492
+ import { jsx as jsx55, jsxs as jsxs40 } from "react/jsx-runtime";
54453
54493
  function ThemeScopeCore({
54454
54494
  cssVars,
54455
54495
  buttonCss,
@@ -54490,7 +54530,7 @@ function ThemeScopeCore({
54490
54530
  ...dataAttrs,
54491
54531
  suppressHydrationWarning,
54492
54532
  children: [
54493
- isContainerResponsive && /* @__PURE__ */ jsx54(
54533
+ isContainerResponsive && /* @__PURE__ */ jsx55(
54494
54534
  "style",
54495
54535
  {
54496
54536
  "data-container-responsive-overrides": true,
@@ -54499,70 +54539,70 @@ function ThemeScopeCore({
54499
54539
  }
54500
54540
  }
54501
54541
  ),
54502
- layoutCss && /* @__PURE__ */ jsx54(
54542
+ layoutCss && /* @__PURE__ */ jsx55(
54503
54543
  "style",
54504
54544
  {
54505
54545
  "data-layout-styles": true,
54506
54546
  dangerouslySetInnerHTML: { __html: escapeStyleContent(layoutCss) }
54507
54547
  }
54508
54548
  ),
54509
- buttonCss && /* @__PURE__ */ jsx54(
54549
+ buttonCss && /* @__PURE__ */ jsx55(
54510
54550
  "style",
54511
54551
  {
54512
54552
  "data-button-effects": true,
54513
54553
  dangerouslySetInnerHTML: { __html: escapeStyleContent(buttonCss) }
54514
54554
  }
54515
54555
  ),
54516
- headerCss && /* @__PURE__ */ jsx54(
54556
+ headerCss && /* @__PURE__ */ jsx55(
54517
54557
  "style",
54518
54558
  {
54519
54559
  "data-header-styles": true,
54520
54560
  dangerouslySetInnerHTML: { __html: escapeStyleContent(headerCss) }
54521
54561
  }
54522
54562
  ),
54523
- footerCss && /* @__PURE__ */ jsx54(
54563
+ footerCss && /* @__PURE__ */ jsx55(
54524
54564
  "style",
54525
54565
  {
54526
54566
  "data-footer-styles": true,
54527
54567
  dangerouslySetInnerHTML: { __html: escapeStyleContent(footerCss) }
54528
54568
  }
54529
54569
  ),
54530
- cardCss && /* @__PURE__ */ jsx54(
54570
+ cardCss && /* @__PURE__ */ jsx55(
54531
54571
  "style",
54532
54572
  {
54533
54573
  "data-card-styles": true,
54534
54574
  dangerouslySetInnerHTML: { __html: escapeStyleContent(cardCss) }
54535
54575
  }
54536
54576
  ),
54537
- accordionCss && /* @__PURE__ */ jsx54(
54577
+ accordionCss && /* @__PURE__ */ jsx55(
54538
54578
  "style",
54539
54579
  {
54540
54580
  "data-accordion-styles": true,
54541
54581
  dangerouslySetInnerHTML: { __html: escapeStyleContent(accordionCss) }
54542
54582
  }
54543
54583
  ),
54544
- inputCss && /* @__PURE__ */ jsx54(
54584
+ inputCss && /* @__PURE__ */ jsx55(
54545
54585
  "style",
54546
54586
  {
54547
54587
  "data-input-styles": true,
54548
54588
  dangerouslySetInnerHTML: { __html: escapeStyleContent(inputCss) }
54549
54589
  }
54550
54590
  ),
54551
- statusCss && /* @__PURE__ */ jsx54(
54591
+ statusCss && /* @__PURE__ */ jsx55(
54552
54592
  "style",
54553
54593
  {
54554
54594
  "data-status-styles": true,
54555
54595
  dangerouslySetInnerHTML: { __html: escapeStyleContent(statusCss) }
54556
54596
  }
54557
54597
  ),
54558
- progressCss && /* @__PURE__ */ jsx54(
54598
+ progressCss && /* @__PURE__ */ jsx55(
54559
54599
  "style",
54560
54600
  {
54561
54601
  "data-progress-styles": true,
54562
54602
  dangerouslySetInnerHTML: { __html: escapeStyleContent(progressCss) }
54563
54603
  }
54564
54604
  ),
54565
- typographyCss && /* @__PURE__ */ jsx54(
54605
+ typographyCss && /* @__PURE__ */ jsx55(
54566
54606
  "style",
54567
54607
  {
54568
54608
  "data-typography-styles": true,
@@ -54571,7 +54611,7 @@ function ThemeScopeCore({
54571
54611
  }
54572
54612
  }
54573
54613
  ),
54574
- eventCalendarCss && /* @__PURE__ */ jsx54(
54614
+ eventCalendarCss && /* @__PURE__ */ jsx55(
54575
54615
  "style",
54576
54616
  {
54577
54617
  "data-event-calendar-styles": true,
@@ -54580,14 +54620,14 @@ function ThemeScopeCore({
54580
54620
  }
54581
54621
  }
54582
54622
  ),
54583
- blockVarsCss && /* @__PURE__ */ jsx54(
54623
+ blockVarsCss && /* @__PURE__ */ jsx55(
54584
54624
  "style",
54585
54625
  {
54586
54626
  "data-block-vars-styles": true,
54587
54627
  dangerouslySetInnerHTML: { __html: escapeStyleContent(blockVarsCss) }
54588
54628
  }
54589
54629
  ),
54590
- blockCustomVarsCss && /* @__PURE__ */ jsx54(
54630
+ blockCustomVarsCss && /* @__PURE__ */ jsx55(
54591
54631
  "style",
54592
54632
  {
54593
54633
  "data-block-custom-vars-styles": true,
@@ -54596,7 +54636,7 @@ function ThemeScopeCore({
54596
54636
  }
54597
54637
  }
54598
54638
  ),
54599
- blockCustomCss && /* @__PURE__ */ jsx54(
54639
+ blockCustomCss && /* @__PURE__ */ jsx55(
54600
54640
  "style",
54601
54641
  {
54602
54642
  "data-block-custom-styles": true,
@@ -54605,14 +54645,14 @@ function ThemeScopeCore({
54605
54645
  }
54606
54646
  }
54607
54647
  ),
54608
- atRulesCss && /* @__PURE__ */ jsx54(
54648
+ atRulesCss && /* @__PURE__ */ jsx55(
54609
54649
  "style",
54610
54650
  {
54611
54651
  "data-at-rules-styles": true,
54612
54652
  dangerouslySetInnerHTML: { __html: escapeStyleContent(atRulesCss) }
54613
54653
  }
54614
54654
  ),
54615
- customCss && /* @__PURE__ */ jsx54(
54655
+ customCss && /* @__PURE__ */ jsx55(
54616
54656
  "style",
54617
54657
  {
54618
54658
  "data-custom-theme-styles": true,
@@ -54639,7 +54679,7 @@ function buildThemeDataAttrs(axes, themeId) {
54639
54679
  }
54640
54680
 
54641
54681
  // ../theme-core/src/ThemeScope.tsx
54642
- import { jsx as jsx55 } from "react/jsx-runtime";
54682
+ import { jsx as jsx56 } from "react/jsx-runtime";
54643
54683
  function ThemeScope({
54644
54684
  theme,
54645
54685
  children,
@@ -54649,7 +54689,7 @@ function ThemeScope({
54649
54689
  }) {
54650
54690
  const runtime = buildThemeRuntime(theme, { themeId, responsiveMode });
54651
54691
  const dataAttrs = buildThemeDataAttrs(theme.axes, themeId);
54652
- return /* @__PURE__ */ jsx55(
54692
+ return /* @__PURE__ */ jsx56(
54653
54693
  ThemeScopeCore,
54654
54694
  {
54655
54695
  cssVars: runtime.cssVars,
@@ -54680,41 +54720,41 @@ function ThemeScope({
54680
54720
 
54681
54721
  // ../theme-core/src/ThemeFontLoader.tsx
54682
54722
  import * as React7 from "react";
54683
- import { Fragment as Fragment7, jsx as jsx56, jsxs as jsxs41 } from "react/jsx-runtime";
54723
+ import { Fragment as Fragment7, jsx as jsx57, jsxs as jsxs41 } from "react/jsx-runtime";
54684
54724
 
54685
54725
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
54686
- import { z as z66 } from "zod";
54687
- var themeBridgeConfigSchema = z66.object({
54688
- tokens: z66.record(z66.string(), z66.string()),
54689
- typography: z66.object({
54690
- headingFamily: z66.string().optional(),
54691
- bodyFamily: z66.string().optional(),
54692
- headingWeight: z66.number().optional(),
54693
- bodyWeight: z66.number().optional()
54726
+ import { z as z67 } from "zod";
54727
+ var themeBridgeConfigSchema = z67.object({
54728
+ tokens: z67.record(z67.string(), z67.string()),
54729
+ typography: z67.object({
54730
+ headingFamily: z67.string().optional(),
54731
+ bodyFamily: z67.string().optional(),
54732
+ headingWeight: z67.number().optional(),
54733
+ bodyWeight: z67.number().optional()
54694
54734
  }).optional(),
54695
- spacing: z66.enum(["comfortable", "standard", "dense"]).optional(),
54696
- corners: z66.enum(["square", "soft", "rounded", "pill"]).optional(),
54697
- shadows: z66.enum(["none", "low", "medium", "high"]).optional(),
54698
- components: z66.object({
54699
- buttons: z66.union([
54700
- z66.boolean(),
54701
- z66.object({
54702
- variants: z66.array(z66.enum(["primary", "secondary", "outline", "ghost"])).optional()
54735
+ spacing: z67.enum(["comfortable", "standard", "dense"]).optional(),
54736
+ corners: z67.enum(["square", "soft", "rounded", "pill"]).optional(),
54737
+ shadows: z67.enum(["none", "low", "medium", "high"]).optional(),
54738
+ components: z67.object({
54739
+ buttons: z67.union([
54740
+ z67.boolean(),
54741
+ z67.object({
54742
+ variants: z67.array(z67.enum(["primary", "secondary", "outline", "ghost"])).optional()
54703
54743
  })
54704
54744
  ]).optional(),
54705
- cards: z66.union([
54706
- z66.boolean(),
54707
- z66.object({
54708
- variants: z66.array(z66.enum(["default", "elevated", "outlined"])).optional()
54745
+ cards: z67.union([
54746
+ z67.boolean(),
54747
+ z67.object({
54748
+ variants: z67.array(z67.enum(["default", "elevated", "outlined"])).optional()
54709
54749
  })
54710
54750
  ]).optional(),
54711
- inputs: z66.boolean().optional()
54751
+ inputs: z67.boolean().optional()
54712
54752
  }).optional(),
54713
- overrides: z66.record(z66.string(), z66.string()).optional()
54753
+ overrides: z67.record(z67.string(), z67.string()).optional()
54714
54754
  }).passthrough();
54715
54755
 
54716
54756
  // ../theme-core/src/siteChrome.tsx
54717
- import { Fragment as Fragment8, jsx as jsx57, jsxs as jsxs42 } from "react/jsx-runtime";
54757
+ import { Fragment as Fragment8, jsx as jsx58, jsxs as jsxs42 } from "react/jsx-runtime";
54718
54758
 
54719
54759
  // ../blocks/src/system/runtime/bindings.ts
54720
54760
  var shouldLogWarnings = isNonProductionEnv();
@@ -55069,17 +55109,17 @@ function normalizeLoaderParams(endpoint, params, context) {
55069
55109
  function unsafeRetypeZodSchema(schema) {
55070
55110
  return schema;
55071
55111
  }
55072
- var navIdListSchema = z67.preprocess((value) => {
55112
+ var navIdListSchema = z68.preprocess((value) => {
55073
55113
  if (!Array.isArray(value)) return void 0;
55074
55114
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
55075
55115
  return filtered.length > 0 ? filtered : void 0;
55076
- }, z67.array(z67.string()).max(200).optional());
55077
- var dashboardNavVisibilityBaseSchema = z67.object({
55078
- mode: z67.enum(["augment", "restrict"]).optional(),
55116
+ }, z68.array(z68.string()).max(200).optional());
55117
+ var dashboardNavVisibilityBaseSchema = z68.object({
55118
+ mode: z68.enum(["augment", "restrict"]).optional(),
55079
55119
  allowIds: navIdListSchema,
55080
55120
  denyIds: navIdListSchema
55081
55121
  }).strip();
55082
- var dashboardNavVisibilityRolesSchema = z67.object({
55122
+ var dashboardNavVisibilityRolesSchema = z68.object({
55083
55123
  administrator: dashboardNavVisibilityBaseSchema.optional(),
55084
55124
  editor: dashboardNavVisibilityBaseSchema.optional(),
55085
55125
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -55087,57 +55127,57 @@ var dashboardNavVisibilityRolesSchema = z67.object({
55087
55127
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
55088
55128
  roles: dashboardNavVisibilityRolesSchema
55089
55129
  }).strip();
55090
- var dashboardNavigationConfigSchema = z67.object({
55130
+ var dashboardNavigationConfigSchema = z68.object({
55091
55131
  siteNav: dashboardNavVisibilitySchema.optional(),
55092
55132
  settingsNav: dashboardNavVisibilitySchema.optional()
55093
55133
  }).strip();
55094
- var dashboardConfigSchema = z67.object({
55095
- previewEditingEnabled: z67.boolean().optional(),
55134
+ var dashboardConfigSchema = z68.object({
55135
+ previewEditingEnabled: z68.boolean().optional(),
55096
55136
  navigation: dashboardNavigationConfigSchema.optional()
55097
55137
  }).strip();
55098
55138
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
55099
55139
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
55100
- var sdkLoaderEndpointSchema = z67.enum(SUPPORTED_LOADER_ENDPOINTS);
55101
- var loaderParamBindingSchema = z67.object({
55102
- $bind: z67.object({
55103
- from: z67.string().min(1, "Binding path is required"),
55104
- fallback: z67.string().optional()
55140
+ var sdkLoaderEndpointSchema = z68.enum(SUPPORTED_LOADER_ENDPOINTS);
55141
+ var loaderParamBindingSchema = z68.object({
55142
+ $bind: z68.object({
55143
+ from: z68.string().min(1, "Binding path is required"),
55144
+ fallback: z68.string().optional()
55105
55145
  })
55106
55146
  });
55107
- var loaderParamValueSchema = z67.union([
55108
- z67.string(),
55109
- z67.number(),
55110
- z67.boolean(),
55147
+ var loaderParamValueSchema = z68.union([
55148
+ z68.string(),
55149
+ z68.number(),
55150
+ z68.boolean(),
55111
55151
  loaderParamBindingSchema
55112
55152
  ]);
55113
- var sdkConfigLoaderSchema = z67.object({
55153
+ var sdkConfigLoaderSchema = z68.object({
55114
55154
  endpoint: sdkLoaderEndpointSchema,
55115
- params: z67.record(z67.string(), loaderParamValueSchema),
55116
- mode: z67.enum(["server", "client"]).default("server")
55155
+ params: z68.record(z68.string(), loaderParamValueSchema),
55156
+ mode: z68.enum(["server", "client"]).default("server")
55117
55157
  });
55118
- var sdkDataLoadersSchema = z67.record(z67.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
55119
- var sdkCustomBlockIdSchema = z67.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
55158
+ var sdkDataLoadersSchema = z68.record(z68.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
55159
+ var sdkCustomBlockIdSchema = z68.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
55120
55160
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
55121
55161
  }).transform((value) => value);
55122
- var sdkCustomBlockInputSchema = z67.object({
55162
+ var sdkCustomBlockInputSchema = z68.object({
55123
55163
  id: sdkCustomBlockIdSchema,
55124
- title: z67.string().min(1),
55125
- titleSource: z67.union([z67.string().min(1), z67.array(z67.string().min(1)).min(1)]).optional(),
55126
- description: z67.string().optional(),
55164
+ title: z68.string().min(1),
55165
+ titleSource: z68.union([z68.string().min(1), z68.array(z68.string().min(1)).min(1)]).optional(),
55166
+ description: z68.string().optional(),
55127
55167
  category: blockCategoryEnum,
55128
- icon: z67.string().optional(),
55129
- tags: z67.array(z67.string()).optional(),
55168
+ icon: z68.string().optional(),
55169
+ tags: z68.array(z68.string()).optional(),
55130
55170
  fields: fieldDefinitionInputSchema.array().min(1),
55131
55171
  dataLoaders: sdkDataLoadersSchema,
55132
55172
  layout: NodeSchema.optional(),
55133
- variants: z67.record(z67.string().min(1), NodeSchema).optional(),
55134
- defaultVariant: z67.string().min(1).optional(),
55135
- variantOptions: z67.record(
55136
- z67.string().min(1),
55137
- z67.object({
55138
- label: z67.string().min(1).optional(),
55139
- description: z67.string().min(1).optional(),
55140
- icon: z67.string().min(1).optional()
55173
+ variants: z68.record(z68.string().min(1), NodeSchema).optional(),
55174
+ defaultVariant: z68.string().min(1).optional(),
55175
+ variantOptions: z68.record(
55176
+ z68.string().min(1),
55177
+ z68.object({
55178
+ label: z68.string().min(1).optional(),
55179
+ description: z68.string().min(1).optional(),
55180
+ icon: z68.string().min(1).optional()
55141
55181
  })
55142
55182
  ).optional()
55143
55183
  }).superRefine((data, ctx) => {
@@ -55147,7 +55187,7 @@ var sdkCustomBlockInputSchema = z67.object({
55147
55187
  const exists = data.fields.some((field) => field.id === source);
55148
55188
  if (!exists) {
55149
55189
  ctx.addIssue({
55150
- code: z67.ZodIssueCode.custom,
55190
+ code: z68.ZodIssueCode.custom,
55151
55191
  message: `titleSource must reference a valid field ID (got "${source}")`,
55152
55192
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
55153
55193
  });
@@ -55156,7 +55196,7 @@ var sdkCustomBlockInputSchema = z67.object({
55156
55196
  }
55157
55197
  if (data.layout && data.variants) {
55158
55198
  ctx.addIssue({
55159
- code: z67.ZodIssueCode.custom,
55199
+ code: z68.ZodIssueCode.custom,
55160
55200
  message: "Custom block must define either `layout` or `variants`, not both",
55161
55201
  path: ["variants"]
55162
55202
  });
@@ -55165,14 +55205,14 @@ var sdkCustomBlockInputSchema = z67.object({
55165
55205
  const keys = Object.keys(data.variants);
55166
55206
  if (keys.length === 0) {
55167
55207
  ctx.addIssue({
55168
- code: z67.ZodIssueCode.custom,
55208
+ code: z68.ZodIssueCode.custom,
55169
55209
  message: "`variants` must contain at least one variant key",
55170
55210
  path: ["variants"]
55171
55211
  });
55172
55212
  }
55173
55213
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
55174
55214
  ctx.addIssue({
55175
- code: z67.ZodIssueCode.custom,
55215
+ code: z68.ZodIssueCode.custom,
55176
55216
  message: "`defaultVariant` must be a key present in `variants`",
55177
55217
  path: ["defaultVariant"]
55178
55218
  });
@@ -55181,7 +55221,7 @@ var sdkCustomBlockInputSchema = z67.object({
55181
55221
  for (const key of Object.keys(data.variantOptions)) {
55182
55222
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
55183
55223
  ctx.addIssue({
55184
- code: z67.ZodIssueCode.custom,
55224
+ code: z68.ZodIssueCode.custom,
55185
55225
  message: "`variantOptions` key must exist in `variants`",
55186
55226
  path: ["variantOptions", key]
55187
55227
  });
@@ -55190,74 +55230,74 @@ var sdkCustomBlockInputSchema = z67.object({
55190
55230
  }
55191
55231
  }
55192
55232
  });
55193
- var sdkBlockFieldExtensionInputSchema = z67.object({
55233
+ var sdkBlockFieldExtensionInputSchema = z68.object({
55194
55234
  fields: fieldDefinitionInputSchema.array().min(1)
55195
55235
  });
55196
- var sdkBlockFieldExtensionsInputSchema = z67.record(
55197
- z67.string().min(1),
55236
+ var sdkBlockFieldExtensionsInputSchema = z68.record(
55237
+ z68.string().min(1),
55198
55238
  sdkBlockFieldExtensionInputSchema
55199
55239
  );
55200
- var sdkThemePaletteSchema = z67.record(z67.string(), z67.string());
55201
- var sdkThemeConfigSchema = z67.object({
55240
+ var sdkThemePaletteSchema = z68.record(z68.string(), z68.string());
55241
+ var sdkThemeConfigSchema = z68.object({
55202
55242
  palette: sdkThemePaletteSchema
55203
55243
  });
55204
- var sdkSectionBackgroundSchema = z67.object({
55205
- id: z67.string().min(1),
55206
- label: z67.string().min(1),
55207
- token: z67.string().min(1)
55244
+ var sdkSectionBackgroundSchema = z68.object({
55245
+ id: z68.string().min(1),
55246
+ label: z68.string().min(1),
55247
+ token: z68.string().min(1)
55208
55248
  });
55209
- var sdkSectionOptionsConfigSchema = z67.object({
55210
- backgroundColor: z67.boolean().optional(),
55211
- backgroundImage: z67.boolean().optional(),
55212
- backgroundGradient: z67.boolean().optional(),
55213
- spacing: z67.union([z67.array(z67.enum(["compact", "default", "spacious"])), z67.boolean()]).optional(),
55214
- textColor: z67.boolean().optional()
55249
+ var sdkSectionOptionsConfigSchema = z68.object({
55250
+ backgroundColor: z68.boolean().optional(),
55251
+ backgroundImage: z68.boolean().optional(),
55252
+ backgroundGradient: z68.boolean().optional(),
55253
+ spacing: z68.union([z68.array(z68.enum(["compact", "default", "spacious"])), z68.boolean()]).optional(),
55254
+ textColor: z68.boolean().optional()
55215
55255
  });
55216
- var sdkContainerOptionsConfigSchema = z67.object({
55217
- maxWidth: z67.union([z67.array(z67.enum(["narrow", "default", "wide", "full"])), z67.boolean()]).optional(),
55218
- alignment: z67.union([z67.array(z67.enum(["left", "center", "right"])), z67.boolean()]).optional()
55256
+ var sdkContainerOptionsConfigSchema = z68.object({
55257
+ maxWidth: z68.union([z68.array(z68.enum(["narrow", "default", "wide", "full"])), z68.boolean()]).optional(),
55258
+ alignment: z68.union([z68.array(z68.enum(["left", "center", "right"])), z68.boolean()]).optional()
55219
55259
  });
55220
- var sdkSiteStyleConfigSchema = z67.object({
55221
- sectionBackgrounds: z67.array(sdkSectionBackgroundSchema).optional(),
55260
+ var sdkSiteStyleConfigSchema = z68.object({
55261
+ sectionBackgrounds: z68.array(sdkSectionBackgroundSchema).optional(),
55222
55262
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
55223
55263
  containerOptions: sdkContainerOptionsConfigSchema.optional()
55224
55264
  });
55225
- var sdkSiteLayoutConfigSchema = z67.object({
55226
- footerBlocks: z67.array(
55227
- z67.object({
55228
- id: z67.string().min(1).optional(),
55229
- kind: z67.string().min(1),
55230
- content: z67.record(z67.string(), z67.unknown()).optional()
55265
+ var sdkSiteLayoutConfigSchema = z68.object({
55266
+ footerBlocks: z68.array(
55267
+ z68.object({
55268
+ id: z68.string().min(1).optional(),
55269
+ kind: z68.string().min(1),
55270
+ content: z68.record(z68.string(), z68.unknown()).optional()
55231
55271
  })
55232
55272
  ).optional()
55233
55273
  });
55234
- var sdkFieldSelectOptionSchema = z67.object({
55235
- value: z67.string(),
55236
- label: z67.string()
55274
+ var sdkFieldSelectOptionSchema = z68.object({
55275
+ value: z68.string(),
55276
+ label: z68.string()
55237
55277
  });
55238
- var sdkBlockFieldConfigSchema = z67.object({
55239
- options: z67.array(sdkFieldSelectOptionSchema).optional()
55278
+ var sdkBlockFieldConfigSchema = z68.object({
55279
+ options: z68.array(sdkFieldSelectOptionSchema).optional()
55240
55280
  });
55241
- var sdkBlockFieldOptionsMapSchema = z67.record(
55242
- z67.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
55281
+ var sdkBlockFieldOptionsMapSchema = z68.record(
55282
+ z68.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
55243
55283
  message: "Block ID must be 'block.*' or 'custom.*' format"
55244
55284
  }),
55245
- z67.record(z67.string().min(1), sdkBlockFieldConfigSchema)
55285
+ z68.record(z68.string().min(1), sdkBlockFieldConfigSchema)
55246
55286
  ).optional();
55247
- var sdkContentTypeTemplateConfigSchema = z67.object({
55248
- blocks: z67.array(z67.unknown())
55287
+ var sdkContentTypeTemplateConfigSchema = z68.object({
55288
+ blocks: z68.array(z68.unknown())
55249
55289
  }).passthrough();
55250
- var sdkContentTypeConfigSchema = z67.object({
55251
- key: z67.string().min(1),
55252
- fields: z67.array(z67.unknown()),
55290
+ var sdkContentTypeConfigSchema = z68.object({
55291
+ key: z68.string().min(1),
55292
+ fields: z68.array(z68.unknown()),
55253
55293
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
55254
55294
  }).passthrough();
55255
- var sdkContentConfigSchema = z67.object({
55256
- contentTypes: z67.array(sdkContentTypeConfigSchema).optional(),
55257
- pages: z67.array(z67.unknown()).optional(),
55258
- entries: z67.array(z67.unknown()).optional(),
55259
- navigationMenus: z67.array(z67.unknown()).optional(),
55260
- settings: z67.unknown().optional()
55295
+ var sdkContentConfigSchema = z68.object({
55296
+ contentTypes: z68.array(sdkContentTypeConfigSchema).optional(),
55297
+ pages: z68.array(z68.unknown()).optional(),
55298
+ entries: z68.array(z68.unknown()).optional(),
55299
+ navigationMenus: z68.array(z68.unknown()).optional(),
55300
+ settings: z68.unknown().optional()
55261
55301
  }).passthrough();
55262
55302
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
55263
55303
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -55272,62 +55312,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
55272
55312
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
55273
55313
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
55274
55314
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
55275
- var sdkWorkflowIdSchema = z67.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
55315
+ var sdkWorkflowIdSchema = z68.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
55276
55316
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
55277
55317
  });
55278
- var sdkWorkflowEndpointSchema = z67.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
55279
- var sdkWorkflowManualTriggerSchema = z67.object({
55280
- type: z67.literal("manual")
55318
+ var sdkWorkflowEndpointSchema = z68.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
55319
+ var sdkWorkflowManualTriggerSchema = z68.object({
55320
+ type: z68.literal("manual")
55281
55321
  }).strict();
55282
- var sdkWorkflowTriggerFieldSchema = z67.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
55322
+ var sdkWorkflowTriggerFieldSchema = z68.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
55283
55323
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
55284
55324
  });
55285
- var sdkWorkflowFieldChangedConditionSchema = z67.object({
55325
+ var sdkWorkflowFieldChangedConditionSchema = z68.object({
55286
55326
  field: sdkWorkflowTriggerFieldSchema,
55287
- changed: z67.literal(true)
55327
+ changed: z68.literal(true)
55288
55328
  }).strict();
55289
- var sdkWorkflowFieldEmptyConditionSchema = z67.object({
55329
+ var sdkWorkflowFieldEmptyConditionSchema = z68.object({
55290
55330
  field: sdkWorkflowTriggerFieldSchema,
55291
- isEmpty: z67.boolean()
55331
+ isEmpty: z68.boolean()
55292
55332
  }).strict();
55293
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z67.object({
55294
- type: z67.literal("entry.draft.updated"),
55295
- when: z67.array(
55296
- z67.union([
55333
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z68.object({
55334
+ type: z68.literal("entry.draft.updated"),
55335
+ when: z68.array(
55336
+ z68.union([
55297
55337
  sdkWorkflowFieldChangedConditionSchema,
55298
55338
  sdkWorkflowFieldEmptyConditionSchema
55299
55339
  ])
55300
55340
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
55301
55341
  }).strict();
55302
- var sdkWorkflowTriggerSchema = z67.discriminatedUnion("type", [
55342
+ var sdkWorkflowTriggerSchema = z68.discriminatedUnion("type", [
55303
55343
  sdkWorkflowManualTriggerSchema,
55304
55344
  sdkWorkflowEntryDraftUpdatedTriggerSchema
55305
55345
  ]);
55306
- var sdkWorkflowConfirmationSchema = z67.object({
55307
- title: z67.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
55308
- body: z67.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
55346
+ var sdkWorkflowConfirmationSchema = z68.object({
55347
+ title: z68.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
55348
+ body: z68.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
55309
55349
  }).strict();
55310
- var sdkWorkflowConfigSchema = z67.object({
55350
+ var sdkWorkflowConfigSchema = z68.object({
55311
55351
  id: sdkWorkflowIdSchema,
55312
- title: z67.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
55313
- description: z67.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
55314
- contentType: z67.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
55352
+ title: z68.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
55353
+ description: z68.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
55354
+ contentType: z68.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
55315
55355
  endpoint: sdkWorkflowEndpointSchema,
55316
- triggers: z67.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
55356
+ triggers: z68.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
55317
55357
  confirmation: sdkWorkflowConfirmationSchema.optional()
55318
55358
  }).strict();
55319
- var sdkWorkflowsSchema = z67.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
55359
+ var sdkWorkflowsSchema = z68.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
55320
55360
  const ids = workflows.map((workflow) => workflow.id);
55321
55361
  return ids.length === new Set(ids).size;
55322
55362
  }, { message: "Workflow IDs must be unique" }).optional();
55323
- var riverbankSiteConfigInputSchema = z67.object({
55324
- siteId: z67.string().uuid(),
55325
- previewUrl: z67.string().url().optional(),
55326
- liveUrl: z67.string().url().optional(),
55363
+ var riverbankSiteConfigInputSchema = z68.object({
55364
+ siteId: z68.string().uuid(),
55365
+ previewUrl: z68.string().url().optional(),
55366
+ liveUrl: z68.string().url().optional(),
55327
55367
  theme: sdkThemeConfigSchema.optional(),
55328
55368
  styles: sdkSiteStyleConfigSchema.optional(),
55329
55369
  layout: sdkSiteLayoutConfigSchema.optional(),
55330
- customBlocks: z67.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
55370
+ customBlocks: z68.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
55331
55371
  const ids = blocks.map((b) => b.id);
55332
55372
  return ids.length === new Set(ids).size;
55333
55373
  }, { message: "Block IDs must be unique" }).optional(),
@@ -55335,50 +55375,50 @@ var riverbankSiteConfigInputSchema = z67.object({
55335
55375
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
55336
55376
  workflows: sdkWorkflowsSchema,
55337
55377
  content: sdkContentConfigSchema.optional(),
55338
- contentDir: z67.string().optional(),
55339
- sync: z67.object({
55340
- existingEntries: z67.enum(["skip", "update"]).optional()
55378
+ contentDir: z68.string().optional(),
55379
+ sync: z68.object({
55380
+ existingEntries: z68.enum(["skip", "update"]).optional()
55341
55381
  }).optional(),
55342
- deploy: z67.object({
55343
- verifyCommand: z67.string().optional(),
55344
- prebuildOutput: z67.string().optional()
55382
+ deploy: z68.object({
55383
+ verifyCommand: z68.string().optional(),
55384
+ prebuildOutput: z68.string().optional()
55345
55385
  }).optional(),
55346
- themeSource: z67.enum(["local", "cms"]).optional(),
55347
- activeTheme: z67.string().optional(),
55348
- enablePortal: z67.boolean().optional(),
55386
+ themeSource: z68.enum(["local", "cms"]).optional(),
55387
+ activeTheme: z68.string().optional(),
55388
+ enablePortal: z68.boolean().optional(),
55349
55389
  dashboard: dashboardConfigSchema.optional()
55350
55390
  }).strict();
55351
- var pushSdkConfigBodySchema = z67.object({
55391
+ var pushSdkConfigBodySchema = z68.object({
55352
55392
  config: riverbankSiteConfigInputSchema,
55353
- forceContentTypes: z67.boolean().optional()
55393
+ forceContentTypes: z68.boolean().optional()
55354
55394
  }).strict();
55355
55395
 
55356
55396
  // ../api/src/siteOnboarding.ts
55357
- import { z as z68 } from "zod";
55397
+ import { z as z69 } from "zod";
55358
55398
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
55359
55399
  configure_appointments: {
55360
55400
  requirementId: "configure_appointments",
55361
55401
  reason: "launch_anyway"
55362
55402
  }
55363
55403
  };
55364
- var acknowledgeLaunchRequirementRequestSchema = z68.discriminatedUnion(
55404
+ var acknowledgeLaunchRequirementRequestSchema = z69.discriminatedUnion(
55365
55405
  "requirementId",
55366
55406
  [
55367
- z68.object({
55368
- requirementId: z68.literal("review_generated_site")
55407
+ z69.object({
55408
+ requirementId: z69.literal("review_generated_site")
55369
55409
  }),
55370
- z68.object({
55371
- requirementId: z68.literal(
55410
+ z69.object({
55411
+ requirementId: z69.literal(
55372
55412
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
55373
55413
  ),
55374
- overrideReason: z68.literal(
55414
+ overrideReason: z69.literal(
55375
55415
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
55376
55416
  )
55377
55417
  })
55378
55418
  ]
55379
55419
  );
55380
- var goLiveSiteRequestSchema = z68.object({
55381
- acceptExtraSiteCharge: z68.boolean().optional()
55420
+ var goLiveSiteRequestSchema = z69.object({
55421
+ acceptExtraSiteCharge: z69.boolean().optional()
55382
55422
  });
55383
55423
 
55384
55424
  // ../surfaces/src/index.ts
@@ -55983,51 +56023,51 @@ function isRecord5(value) {
55983
56023
  }
55984
56024
 
55985
56025
  // ../api/src/appointmentSetup.ts
55986
- import { z as z69 } from "zod";
56026
+ import { z as z70 } from "zod";
55987
56027
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
55988
- var appointmentSetupRefSchema = z69.discriminatedUnion("kind", [
55989
- z69.object({ kind: z69.literal("existing"), id: z69.string().min(1) }),
55990
- z69.object({ kind: z69.literal("new"), draftId: z69.string().min(1) })
56028
+ var appointmentSetupRefSchema = z70.discriminatedUnion("kind", [
56029
+ z70.object({ kind: z70.literal("existing"), id: z70.string().min(1) }),
56030
+ z70.object({ kind: z70.literal("new"), draftId: z70.string().min(1) })
55991
56031
  ]);
55992
- var appointmentSetupVenueChoiceSchema = z69.discriminatedUnion("kind", [
55993
- z69.object({ kind: z69.literal("none") }),
55994
- z69.object({ kind: z69.literal("existing"), venueId: z69.string().min(1) }),
55995
- z69.object({
55996
- kind: z69.literal("create"),
55997
- draftId: z69.string().min(1),
55998
- title: z69.string().trim().min(1),
55999
- description: z69.string().nullable(),
56000
- timezone: z69.string().trim().min(1).nullable(),
56001
- addressJson: z69.record(z69.string(), z69.unknown()),
56002
- locationJson: z69.object({ lat: z69.number(), lng: z69.number() }).nullable()
56032
+ var appointmentSetupVenueChoiceSchema = z70.discriminatedUnion("kind", [
56033
+ z70.object({ kind: z70.literal("none") }),
56034
+ z70.object({ kind: z70.literal("existing"), venueId: z70.string().min(1) }),
56035
+ z70.object({
56036
+ kind: z70.literal("create"),
56037
+ draftId: z70.string().min(1),
56038
+ title: z70.string().trim().min(1),
56039
+ description: z70.string().nullable(),
56040
+ timezone: z70.string().trim().min(1).nullable(),
56041
+ addressJson: z70.record(z70.string(), z70.unknown()),
56042
+ locationJson: z70.object({ lat: z70.number(), lng: z70.number() }).nullable()
56003
56043
  })
56004
56044
  ]);
56005
- var appointmentSetupPaymentDraftSchema = z69.object({
56006
- priceType: z69.union([z69.literal("free"), z69.literal("paid")])
56007
- });
56008
- var appointmentSetupServiceAssignmentDraftSchema = z69.discriminatedUnion("kind", [
56009
- z69.object({ kind: z69.literal("all_practitioners") }),
56010
- z69.object({
56011
- kind: z69.literal("selected_practitioners"),
56012
- resourceRefs: z69.array(appointmentSetupRefSchema)
56045
+ var appointmentSetupPaymentDraftSchema = z70.object({
56046
+ priceType: z70.union([z70.literal("free"), z70.literal("paid")])
56047
+ });
56048
+ var appointmentSetupServiceAssignmentDraftSchema = z70.discriminatedUnion("kind", [
56049
+ z70.object({ kind: z70.literal("all_practitioners") }),
56050
+ z70.object({
56051
+ kind: z70.literal("selected_practitioners"),
56052
+ resourceRefs: z70.array(appointmentSetupRefSchema)
56013
56053
  })
56014
56054
  ]);
56015
- var appointmentSetupServiceDraftSchema = z69.object({
56055
+ var appointmentSetupServiceDraftSchema = z70.object({
56016
56056
  ref: appointmentSetupRefSchema,
56017
- title: z69.string().trim().min(1),
56018
- description: z69.string().nullable(),
56019
- durationMinutes: z69.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
56020
- prepMinutes: z69.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
56021
- cleanupMinutes: z69.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
56022
- priceAmount: z69.number().int().nonnegative().nullable(),
56023
- isActive: z69.boolean(),
56024
- locationType: z69.union([
56025
- z69.literal("virtual"),
56026
- z69.literal("in_person"),
56027
- z69.literal("hybrid")
56057
+ title: z70.string().trim().min(1),
56058
+ description: z70.string().nullable(),
56059
+ durationMinutes: z70.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
56060
+ prepMinutes: z70.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
56061
+ cleanupMinutes: z70.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
56062
+ priceAmount: z70.number().int().nonnegative().nullable(),
56063
+ isActive: z70.boolean(),
56064
+ locationType: z70.union([
56065
+ z70.literal("virtual"),
56066
+ z70.literal("in_person"),
56067
+ z70.literal("hybrid")
56028
56068
  ]),
56029
56069
  venue: appointmentSetupVenueChoiceSchema,
56030
- timezone: z69.string().trim().min(1).nullable(),
56070
+ timezone: z70.string().trim().min(1).nullable(),
56031
56071
  payment: appointmentSetupPaymentDraftSchema,
56032
56072
  assignment: appointmentSetupServiceAssignmentDraftSchema
56033
56073
  }).superRefine((service, ctx) => {
@@ -56046,49 +56086,49 @@ var appointmentSetupServiceDraftSchema = z69.object({
56046
56086
  });
56047
56087
  }
56048
56088
  });
56049
- var appointmentSetupPractitionerDraftSchema = z69.object({
56089
+ var appointmentSetupPractitionerDraftSchema = z70.object({
56050
56090
  ref: appointmentSetupRefSchema,
56051
- displayName: z69.string().trim().min(1),
56052
- bio: z69.string().nullable(),
56053
- timezone: z69.string().trim().min(1),
56054
- colorHex: z69.string().nullable()
56055
- });
56056
- var appointmentSetupWeeklyWindowDraftSchema = z69.object({
56057
- weekday: z69.number().int().min(0).max(6),
56058
- startTime: z69.string(),
56059
- endTime: z69.string()
56060
- });
56061
- var appointmentSetupStartTimePolicyDraftSchema = z69.discriminatedUnion("kind", [
56062
- z69.object({ kind: z69.literal("automatic_spacing") }),
56063
- z69.object({
56064
- kind: z69.literal("regular_interval"),
56065
- intervalMinutes: z69.union([
56066
- z69.literal(10),
56067
- z69.literal(15),
56068
- z69.literal(20),
56069
- z69.literal(30),
56070
- z69.literal(45),
56071
- z69.literal(60)
56091
+ displayName: z70.string().trim().min(1),
56092
+ bio: z70.string().nullable(),
56093
+ timezone: z70.string().trim().min(1),
56094
+ colorHex: z70.string().nullable()
56095
+ });
56096
+ var appointmentSetupWeeklyWindowDraftSchema = z70.object({
56097
+ weekday: z70.number().int().min(0).max(6),
56098
+ startTime: z70.string(),
56099
+ endTime: z70.string()
56100
+ });
56101
+ var appointmentSetupStartTimePolicyDraftSchema = z70.discriminatedUnion("kind", [
56102
+ z70.object({ kind: z70.literal("automatic_spacing") }),
56103
+ z70.object({
56104
+ kind: z70.literal("regular_interval"),
56105
+ intervalMinutes: z70.union([
56106
+ z70.literal(10),
56107
+ z70.literal(15),
56108
+ z70.literal(20),
56109
+ z70.literal(30),
56110
+ z70.literal(45),
56111
+ z70.literal(60)
56072
56112
  ])
56073
56113
  })
56074
56114
  ]);
56075
- var appointmentSetupAvailabilityDraftSchema = z69.object({
56076
- kind: z69.literal("weekly_windows"),
56115
+ var appointmentSetupAvailabilityDraftSchema = z70.object({
56116
+ kind: z70.literal("weekly_windows"),
56077
56117
  resourceRef: appointmentSetupRefSchema,
56078
56118
  serviceRef: appointmentSetupRefSchema.nullable(),
56079
- windows: z69.array(appointmentSetupWeeklyWindowDraftSchema),
56119
+ windows: z70.array(appointmentSetupWeeklyWindowDraftSchema),
56080
56120
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
56081
56121
  });
56082
56122
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
56083
56123
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
56084
- var appointmentSetupBookingNoticeSchema = z69.object({
56085
- minLeadMinutes: z69.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
56086
- maxBookingNoticeMinutes: z69.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
56087
- });
56088
- var applyAppointmentSetupRequestSchema = z69.object({
56089
- services: z69.array(appointmentSetupServiceDraftSchema),
56090
- practitioners: z69.array(appointmentSetupPractitionerDraftSchema),
56091
- availability: z69.array(appointmentSetupAvailabilityDraftSchema),
56124
+ var appointmentSetupBookingNoticeSchema = z70.object({
56125
+ minLeadMinutes: z70.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
56126
+ maxBookingNoticeMinutes: z70.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
56127
+ });
56128
+ var applyAppointmentSetupRequestSchema = z70.object({
56129
+ services: z70.array(appointmentSetupServiceDraftSchema),
56130
+ practitioners: z70.array(appointmentSetupPractitionerDraftSchema),
56131
+ availability: z70.array(appointmentSetupAvailabilityDraftSchema),
56092
56132
  bookingNotice: appointmentSetupBookingNoticeSchema
56093
56133
  });
56094
56134
 
@@ -56121,24 +56161,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
56121
56161
  ];
56122
56162
 
56123
56163
  // ../api/src/siteBanner.ts
56124
- import { z as z70 } from "zod";
56164
+ import { z as z71 } from "zod";
56125
56165
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
56126
56166
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
56127
56167
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
56128
56168
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
56129
- var siteBannerScopeSchema = z70.enum(SITE_BANNER_SCOPE_VALUES);
56130
- var siteBannerToneSchema = z70.enum(SITE_BANNER_TONE_VALUES);
56131
- var siteBannerBodySchema = z70.unknown().transform(unwrapRichTextValue);
56132
- var siteBannerCtaSchema = z70.object({
56133
- label: z70.string().trim().min(1),
56169
+ var siteBannerScopeSchema = z71.enum(SITE_BANNER_SCOPE_VALUES);
56170
+ var siteBannerToneSchema = z71.enum(SITE_BANNER_TONE_VALUES);
56171
+ var siteBannerBodySchema = z71.unknown().transform(unwrapRichTextValue);
56172
+ var siteBannerCtaSchema = z71.object({
56173
+ label: z71.string().trim().min(1),
56134
56174
  link: linkPayloadSchema
56135
56175
  });
56136
- var siteBannerSettingsSchema = z70.discriminatedUnion("enabled", [
56137
- z70.object({
56138
- enabled: z70.literal(false)
56176
+ var siteBannerSettingsSchema = z71.discriminatedUnion("enabled", [
56177
+ z71.object({
56178
+ enabled: z71.literal(false)
56139
56179
  }),
56140
- z70.object({
56141
- enabled: z70.literal(true),
56180
+ z71.object({
56181
+ enabled: z71.literal(true),
56142
56182
  scope: siteBannerScopeSchema,
56143
56183
  tone: siteBannerToneSchema,
56144
56184
  body: siteBannerBodySchema,
@@ -56152,7 +56192,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
56152
56192
  const analysis = analyzeSiteBannerBody(value.body);
56153
56193
  for (const issue2 of analysis.issues) {
56154
56194
  ctx.addIssue({
56155
- code: z70.ZodIssueCode.custom,
56195
+ code: z71.ZodIssueCode.custom,
56156
56196
  path: ["body"],
56157
56197
  message: siteBannerBodyIssueMessage(issue2)
56158
56198
  });
@@ -56396,71 +56436,71 @@ function parsePublicProductCategorySelector(value) {
56396
56436
  }
56397
56437
 
56398
56438
  // ../api/src/aiPlayground.ts
56399
- import { z as z71 } from "zod";
56400
- var Rfc6902PatchOp = z71.discriminatedUnion("op", [
56439
+ import { z as z72 } from "zod";
56440
+ var Rfc6902PatchOp = z72.discriminatedUnion("op", [
56401
56441
  // Standard RFC-6902 operations
56402
- z71.object({
56403
- op: z71.literal("add"),
56404
- path: z71.string(),
56405
- value: z71.unknown()
56442
+ z72.object({
56443
+ op: z72.literal("add"),
56444
+ path: z72.string(),
56445
+ value: z72.unknown()
56406
56446
  }),
56407
- z71.object({
56408
- op: z71.literal("remove"),
56409
- path: z71.string()
56447
+ z72.object({
56448
+ op: z72.literal("remove"),
56449
+ path: z72.string()
56410
56450
  }),
56411
- z71.object({
56412
- op: z71.literal("replace"),
56413
- path: z71.string(),
56414
- value: z71.unknown()
56451
+ z72.object({
56452
+ op: z72.literal("replace"),
56453
+ path: z72.string(),
56454
+ value: z72.unknown()
56415
56455
  }),
56416
- z71.object({
56417
- op: z71.literal("move"),
56418
- from: z71.string(),
56419
- path: z71.string()
56456
+ z72.object({
56457
+ op: z72.literal("move"),
56458
+ from: z72.string(),
56459
+ path: z72.string()
56420
56460
  }),
56421
- z71.object({
56422
- op: z71.literal("copy"),
56423
- from: z71.string(),
56424
- path: z71.string()
56461
+ z72.object({
56462
+ op: z72.literal("copy"),
56463
+ from: z72.string(),
56464
+ path: z72.string()
56425
56465
  }),
56426
56466
  // Block-level operations (Phase 2)
56427
- z71.object({
56428
- op: z71.literal("add_block"),
56429
- blockKind: z71.string(),
56430
- afterBlockId: z71.string().nullable(),
56431
- content: z71.record(z71.string(), z71.unknown()),
56432
- rationale: z71.string()
56467
+ z72.object({
56468
+ op: z72.literal("add_block"),
56469
+ blockKind: z72.string(),
56470
+ afterBlockId: z72.string().nullable(),
56471
+ content: z72.record(z72.string(), z72.unknown()),
56472
+ rationale: z72.string()
56433
56473
  }),
56434
- z71.object({
56435
- op: z71.literal("delete_block"),
56436
- blockId: z71.string(),
56437
- rationale: z71.string()
56474
+ z72.object({
56475
+ op: z72.literal("delete_block"),
56476
+ blockId: z72.string(),
56477
+ rationale: z72.string()
56438
56478
  }),
56439
- z71.object({
56440
- op: z71.literal("reorder_block"),
56441
- blockId: z71.string(),
56442
- afterBlockId: z71.string().nullable(),
56443
- rationale: z71.string()
56479
+ z72.object({
56480
+ op: z72.literal("reorder_block"),
56481
+ blockId: z72.string(),
56482
+ afterBlockId: z72.string().nullable(),
56483
+ rationale: z72.string()
56444
56484
  })
56445
56485
  ]);
56446
- var PlaygroundProposeRequest = z71.object({
56447
- request: z71.string().min(1).max(2e3)
56486
+ var PlaygroundProposeRequest = z72.object({
56487
+ request: z72.string().min(1).max(2e3)
56448
56488
  });
56449
- var MultiPagePatchEnvelope = z71.object({
56450
- pageId: z71.string(),
56451
- blockId: z71.string().optional(),
56489
+ var MultiPagePatchEnvelope = z72.object({
56490
+ pageId: z72.string(),
56491
+ blockId: z72.string().optional(),
56452
56492
  // Not present for page-level ops
56453
- blockKind: z71.string().optional(),
56454
- blockPurpose: z71.string().optional().nullable(),
56455
- ops: z71.array(Rfc6902PatchOp),
56456
- rationale: z71.string(),
56457
- currentContent: z71.record(z71.string(), z71.unknown()).optional()
56493
+ blockKind: z72.string().optional(),
56494
+ blockPurpose: z72.string().optional().nullable(),
56495
+ ops: z72.array(Rfc6902PatchOp),
56496
+ rationale: z72.string(),
56497
+ currentContent: z72.record(z72.string(), z72.unknown()).optional()
56458
56498
  });
56459
- var MultiPageUpdateResponse = z71.object({
56460
- patches: z71.array(MultiPagePatchEnvelope),
56461
- assistantMessage: z71.string(),
56462
- pagesModified: z71.number(),
56463
- toolCallsUsed: z71.number()
56499
+ var MultiPageUpdateResponse = z72.object({
56500
+ patches: z72.array(MultiPagePatchEnvelope),
56501
+ assistantMessage: z72.string(),
56502
+ pagesModified: z72.number(),
56503
+ toolCallsUsed: z72.number()
56464
56504
  });
56465
56505
 
56466
56506
  // src/data/prefetchBlockData.ts
@@ -57265,7 +57305,7 @@ function ThemeScope2(props2) {
57265
57305
  }
57266
57306
 
57267
57307
  // src/rendering/components/pageShared.tsx
57268
- import { jsx as jsx58 } from "react/jsx-runtime";
57308
+ import { jsx as jsx59 } from "react/jsx-runtime";
57269
57309
  function toPageHydrationBootstrapConfig(props2) {
57270
57310
  return {
57271
57311
  siteId: props2.siteId,
@@ -57297,7 +57337,7 @@ function PageContent({
57297
57337
  }) {
57298
57338
  const baseTokens = providedTokens ?? buildThemeRuntime2(theme).tokens;
57299
57339
  const themeTokens = sdkConfig?.theme?.palette ? { ...baseTokens, palette: { ...baseTokens.palette, ...sdkConfig.theme.palette } } : baseTokens;
57300
- const content = /* @__PURE__ */ jsx58(
57340
+ const content = /* @__PURE__ */ jsx59(
57301
57341
  PageRenderer2,
57302
57342
  {
57303
57343
  theme,
@@ -57333,13 +57373,13 @@ function PageContent({
57333
57373
  customBlocks
57334
57374
  }
57335
57375
  );
57336
- return useThemeScope ? /* @__PURE__ */ jsx58(ThemeScope2, { theme, children: content }) : content;
57376
+ return useThemeScope ? /* @__PURE__ */ jsx59(ThemeScope2, { theme, children: content }) : content;
57337
57377
  }
57338
57378
 
57339
57379
  // src/rendering/components/Page.server.tsx
57340
- import { jsx as jsx59 } from "react/jsx-runtime";
57380
+ import { jsx as jsx60 } from "react/jsx-runtime";
57341
57381
  function Page(props2) {
57342
- return /* @__PURE__ */ jsx59(PageContent, { ...props2 });
57382
+ return /* @__PURE__ */ jsx60(PageContent, { ...props2 });
57343
57383
  }
57344
57384
 
57345
57385
  // src/rendering/overrides.ts
@@ -57370,7 +57410,7 @@ function collectBlockKindsFromValue(value, usedKinds, seen) {
57370
57410
  collectBlockKindsFromValue(child, usedKinds, seen);
57371
57411
  }
57372
57412
  }
57373
- function collectUsedBlockKinds(page) {
57413
+ function collectUsedBlockKindsFromPageOutline(page) {
57374
57414
  const usedKinds = /* @__PURE__ */ new Set();
57375
57415
  const seen = /* @__PURE__ */ new WeakSet();
57376
57416
  for (const block of page?.blocks ?? []) {
@@ -57378,6 +57418,12 @@ function collectUsedBlockKinds(page) {
57378
57418
  }
57379
57419
  return usedKinds;
57380
57420
  }
57421
+ function buildPageBlockKindIndex(page) {
57422
+ return {
57423
+ kind: "page-block-kind-index",
57424
+ blockKinds: collectUsedBlockKindsFromPageOutline(page)
57425
+ };
57426
+ }
57381
57427
  function shortBlockKind(blockKind) {
57382
57428
  return blockKind.replace(/^block\./, "");
57383
57429
  }
@@ -57409,7 +57455,8 @@ async function resolveBlockOverridesForPage(registrations, page) {
57409
57455
  if (!registrations) return void 0;
57410
57456
  const entries = Object.entries(registrations);
57411
57457
  if (entries.length === 0) return void 0;
57412
- const selectedKeys = selectOverrideKeysForUsedKinds(collectUsedBlockKinds(page), entries);
57458
+ const pageBlockKindIndex = buildPageBlockKindIndex(page);
57459
+ const selectedKeys = selectOverrideKeysForUsedKinds(pageBlockKindIndex.blockKinds, entries);
57413
57460
  if (selectedKeys.size === 0) return void 0;
57414
57461
  const resolved = {};
57415
57462
  for (const [key, registration] of entries) {
@@ -58024,7 +58071,7 @@ function getEntrySubrouteMetadataOverrides(args) {
58024
58071
  }
58025
58072
 
58026
58073
  // src/next/catch-all.tsx
58027
- import { jsx as jsx60, jsxs as jsxs43 } from "react/jsx-runtime";
58074
+ import { jsx as jsx61, jsxs as jsxs43 } from "react/jsx-runtime";
58028
58075
  function isExpectedNotFoundError(error) {
58029
58076
  return typeof error === "object" && error !== null && "status" in error && Reflect.get(error, "status") === 404;
58030
58077
  }
@@ -58106,7 +58153,7 @@ function createCatchAllPage(options) {
58106
58153
  if (beforeRender) {
58107
58154
  const intercepted = await beforeRender({ content, path, preview, useThemeScope, searchParams });
58108
58155
  if (intercepted !== null) {
58109
- return Wrapper ? /* @__PURE__ */ jsx60(Wrapper, { children: intercepted }) : intercepted;
58156
+ return Wrapper ? /* @__PURE__ */ jsx61(Wrapper, { children: intercepted }) : intercepted;
58110
58157
  }
58111
58158
  }
58112
58159
  const isDevelopment = process.env.NODE_ENV !== "production";
@@ -58142,7 +58189,7 @@ function createCatchAllPage(options) {
58142
58189
  let rendered;
58143
58190
  if (isPageContent(content)) {
58144
58191
  const resolvedBlockOverrides = await resolveBlockOverridesForPage(blockOverrides, content.page);
58145
- rendered = /* @__PURE__ */ jsx60(
58192
+ rendered = /* @__PURE__ */ jsx61(
58146
58193
  Page,
58147
58194
  {
58148
58195
  page: content.page,
@@ -58166,7 +58213,7 @@ function createCatchAllPage(options) {
58166
58213
  return notFound();
58167
58214
  }
58168
58215
  const resolvedBlockOverrides = await resolveBlockOverridesForPage(blockOverrides, content.templatePage);
58169
- rendered = /* @__PURE__ */ jsx60(
58216
+ rendered = /* @__PURE__ */ jsx61(
58170
58217
  Page,
58171
58218
  {
58172
58219
  page: content.templatePage,
@@ -58194,7 +58241,7 @@ function createCatchAllPage(options) {
58194
58241
  const hydrationBootstrap = (
58195
58242
  // #813: keep automatic hydration at the catch-all seam so Layout/Page.server
58196
58243
  // remain RSC-safe while canonical Next SDK sites still bootstrap islands.
58197
- /* @__PURE__ */ jsx60(
58244
+ /* @__PURE__ */ jsx61(
58198
58245
  BlocksIslandsHydrator,
58199
58246
  {
58200
58247
  ...toPageHydrationBootstrapConfig({
@@ -58209,7 +58256,7 @@ function createCatchAllPage(options) {
58209
58256
  hydrationBootstrap,
58210
58257
  rendered
58211
58258
  ] });
58212
- return Wrapper ? /* @__PURE__ */ jsx60(Wrapper, { children: pageWithLayout }) : pageWithLayout;
58259
+ return Wrapper ? /* @__PURE__ */ jsx61(Wrapper, { children: pageWithLayout }) : pageWithLayout;
58213
58260
  }
58214
58261
  async function generateMetadataFn({ params, searchParams: searchParamsPromise }) {
58215
58262
  const [{ slug }, searchParams] = await Promise.all([
@@ -58387,7 +58434,7 @@ var SimpleCache = class {
58387
58434
  };
58388
58435
 
58389
58436
  // src/version.ts
58390
- var SDK_VERSION = "0.75.0";
58437
+ var SDK_VERSION = "0.76.0";
58391
58438
 
58392
58439
  // src/client/error.ts
58393
58440
  var RiverbankApiError = class _RiverbankApiError extends Error {