@riverbankcms/sdk 0.60.0 → 0.60.1

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 (86) hide show
  1. package/README.md +20 -3
  2. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +1 -3
  3. package/dist/_dts/api/src/bookingRecords.d.ts +1 -0
  4. package/dist/_dts/api/src/endpoints.d.ts +1 -1
  5. package/dist/_dts/billing/src/plans/types.d.ts +27 -0
  6. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +1 -0
  7. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +173 -2
  8. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -2
  9. package/dist/_dts/blocks/src/system/runtime/header/shared.d.ts +1 -0
  10. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.client.d.ts +1 -0
  11. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/AgendaEventCard.d.ts +2 -0
  12. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DayEventsModal.d.ts +2 -1
  13. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventDetailModal.d.ts +2 -1
  14. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -1
  15. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +1 -0
  16. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekTimetableView.d.ts +1 -0
  17. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCapacity.d.ts +16 -0
  18. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/timetableModel.d.ts +2 -0
  19. package/dist/_dts/content-editor/src/index.d.ts +2 -2
  20. package/dist/_dts/content-editor/src/primitives/shared/activePreviewField.d.ts +9 -0
  21. package/dist/_dts/content-editor/src/primitives/shared/index.d.ts +1 -0
  22. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +10 -0
  23. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +3 -0
  24. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +4 -0
  25. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +8 -5
  26. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +7 -5
  27. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +2 -0
  28. package/dist/_dts/editor-blocks/src/block-editor/reorderControlMode.d.ts +3 -0
  29. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +4 -0
  30. package/dist/_dts/media-react/src/hooks/useApiMediaUploader.d.ts +14 -0
  31. package/dist/_dts/media-react/src/index.d.ts +1 -1
  32. package/dist/_dts/preview-next/src/client/index.d.ts +2 -0
  33. package/dist/_dts/preview-next/src/client/preview/PageDesignEditorStateContext.d.ts +11 -28
  34. package/dist/_dts/preview-next/src/client/preview/PreviewEditorUI.d.ts +1 -1
  35. package/dist/_dts/preview-next/src/client/preview/previewChromeSurface.d.ts +12 -0
  36. package/dist/_dts/preview-next/src/client/preview/previewCustomizeHistory.d.ts +41 -0
  37. package/dist/_dts/preview-next/src/client/preview/previewCustomizeRuntimePatch.d.ts +15 -0
  38. package/dist/_dts/preview-next/src/client/preview/previewCustomizeWorkflowState.d.ts +106 -0
  39. package/dist/_dts/preview-next/src/client/preview/previewUndoDomains.d.ts +34 -0
  40. package/dist/_dts/preview-next/src/client/preview/sidebarTabPreference.d.ts +2 -1
  41. package/dist/_dts/preview-next/src/client/preview/useOnboardingConfirmationCheck.d.ts +4 -9
  42. package/dist/_dts/preview-next/src/constants.d.ts +0 -1
  43. package/dist/_dts/preview-next/src/index.d.ts +1 -0
  44. package/dist/_dts/preview-next/src/onboarding-preview-planner.d.ts +89 -0
  45. package/dist/_dts/preview-next/src/route-contract.d.ts +37 -0
  46. package/dist/_dts/sdk/src/rendering/components/Block.d.ts +7 -76
  47. package/dist/_dts/sdk/src/rendering/components/Block.server.d.ts +9 -0
  48. package/dist/_dts/sdk/src/rendering/components/Block.shared.d.ts +78 -0
  49. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +5 -5
  50. package/dist/_dts/sdk/src/rendering/server.d.ts +2 -2
  51. package/dist/_dts/sdk/src/version.d.ts +1 -1
  52. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  53. package/dist/_dts/theme-core/src/index.d.ts +17 -16
  54. package/dist/_dts/theme-core/src/responsiveDisplay.d.ts +23 -0
  55. package/dist/_dts/theme-core/src/responsiveMode.d.ts +21 -0
  56. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
  57. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorErrors.d.ts +1 -0
  58. package/dist/_dts/ui/src/command-multi-select.d.ts +2 -2
  59. package/dist/cli/index.mjs +120 -40
  60. package/dist/client/bookings.mjs +27 -0
  61. package/dist/client/client.mjs +889 -497
  62. package/dist/client/hooks.mjs +61 -21
  63. package/dist/client/rendering/client.mjs +319 -128
  64. package/dist/client/rendering/islands.mjs +122 -44
  65. package/dist/client/rendering.mjs +959 -486
  66. package/dist/preview-next/before-render.mjs +5525 -0
  67. package/dist/preview-next/client/runtime.mjs +104162 -102561
  68. package/dist/preview-next/constants.mjs +0 -2
  69. package/dist/preview-next/index.mjs +0 -2
  70. package/dist/preview-next/middleware.mjs +5535 -1
  71. package/dist/server/components.mjs +7880 -7522
  72. package/dist/server/config-validation.mjs +61 -21
  73. package/dist/server/config.mjs +61 -21
  74. package/dist/server/data.mjs +61 -21
  75. package/dist/server/index.mjs +2 -2
  76. package/dist/server/next.mjs +783 -429
  77. package/dist/server/page-converter.mjs +60 -20
  78. package/dist/server/prebuild.mjs +1 -1
  79. package/dist/server/rendering/server.mjs +2461 -837
  80. package/dist/server/rendering.mjs +9276 -8840
  81. package/dist/server/routing.mjs +102 -39
  82. package/dist/server/server.mjs +62 -22
  83. package/dist/server/theme-bridge.mjs +639 -358
  84. package/dist/styles/index.css +343 -299
  85. package/package.json +1 -1
  86. package/dist/_dts/preview-next/src/client/blocks/runOptimisticCustomizeAction.d.ts +0 -21
@@ -5857,6 +5857,34 @@ var init_accordion_server = __esm({
5857
5857
  }
5858
5858
  });
5859
5859
 
5860
+ // ../theme-core/src/responsiveDisplay.ts
5861
+ function mobileOnlyDisplay(display) {
5862
+ return `${BASE_DISPLAY_CLASSES[display]} rb-lg-hidden`;
5863
+ }
5864
+ function desktopOnlyDisplay(display) {
5865
+ return `rb-hidden ${LARGE_DISPLAY_CLASSES[display]}`;
5866
+ }
5867
+ var BASE_DISPLAY_CLASSES, LARGE_DISPLAY_CLASSES;
5868
+ var init_responsiveDisplay = __esm({
5869
+ "../theme-core/src/responsiveDisplay.ts"() {
5870
+ "use strict";
5871
+ BASE_DISPLAY_CLASSES = {
5872
+ block: "rb-block",
5873
+ flex: "rb-flex",
5874
+ "inline-block": "rb-inline-block",
5875
+ "inline-flex": "rb-inline-flex",
5876
+ grid: "rb-grid"
5877
+ };
5878
+ LARGE_DISPLAY_CLASSES = {
5879
+ block: "rb-lg-block",
5880
+ flex: "rb-lg-flex",
5881
+ "inline-block": "rb-lg-inline-block",
5882
+ "inline-flex": "rb-lg-inline-flex",
5883
+ grid: "rb-lg-grid"
5884
+ };
5885
+ }
5886
+ });
5887
+
5860
5888
  // ../blocks/src/system/runtime/header/shared.ts
5861
5889
  function splitPositioningClasses(className) {
5862
5890
  if (!className) return { wrapperClasses: "", sectionClasses: "" };
@@ -5879,6 +5907,7 @@ var POSITIONING_CLASSES;
5879
5907
  var init_shared = __esm({
5880
5908
  "../blocks/src/system/runtime/header/shared.ts"() {
5881
5909
  "use strict";
5910
+ init_responsiveDisplay();
5882
5911
  POSITIONING_CLASSES = [
5883
5912
  "rb-sticky",
5884
5913
  "rb-fixed",
@@ -7336,6 +7365,23 @@ var init_shared2 = __esm({
7336
7365
  }
7337
7366
  });
7338
7367
 
7368
+ // ../blocks/src/system/runtime/nodes/events/shared/eventCapacity.ts
7369
+ function getEventAvailability(event) {
7370
+ if (event.capacity == null) {
7371
+ return { available: null, isFull: false };
7372
+ }
7373
+ const available = event.availableSpots ?? event.capacity - event.registeredCount;
7374
+ if (available <= 0) {
7375
+ return { available: 0, isFull: true };
7376
+ }
7377
+ return { available, isFull: false };
7378
+ }
7379
+ var init_eventCapacity = __esm({
7380
+ "../blocks/src/system/runtime/nodes/events/shared/eventCapacity.ts"() {
7381
+ "use strict";
7382
+ }
7383
+ });
7384
+
7339
7385
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
7340
7386
  function getContainerClass(layout, columns) {
7341
7387
  if (layout === "compact") {
@@ -7560,7 +7606,7 @@ function formatEventPrice(event) {
7560
7606
  }
7561
7607
  }
7562
7608
  function resolveEventCta(event, buttonText) {
7563
- const isSoldOut = event.capacity !== null && event.availableSpots === 0;
7609
+ const { isFull: isSoldOut } = getEventAvailability(event);
7564
7610
  const defaultButtonText = event.kind === "course_session" ? "View course" : "View event";
7565
7611
  const effectiveButtonText = buttonText ?? defaultButtonText;
7566
7612
  if (isSoldOut) {
@@ -7576,6 +7622,7 @@ var init_utils = __esm({
7576
7622
  "use strict";
7577
7623
  init_src();
7578
7624
  init_shared2();
7625
+ init_eventCapacity();
7579
7626
  COLUMN_CLASSES = {
7580
7627
  "2": "rb-sm-grid-cols-2",
7581
7628
  "3": "rb-sm-grid-cols-2 rb-lg-grid-cols-3",
@@ -8744,6 +8791,7 @@ var init_EventCard = __esm({
8744
8791
  init_media();
8745
8792
  init_media_server();
8746
8793
  init_EventCardIcons();
8794
+ init_eventCapacity();
8747
8795
  init_utils();
8748
8796
  EventCard = ({
8749
8797
  event,
@@ -8768,7 +8816,7 @@ var init_EventCard = __esm({
8768
8816
  )}`;
8769
8817
  const cta = resolveEventCta(event, buttonText);
8770
8818
  const isSoldOut = cta.hidden;
8771
- const spotsLeft = event.availableSpots;
8819
+ const { available: spotsLeft } = getEventAvailability(event);
8772
8820
  const cardClass = `card-${cardVariant}`;
8773
8821
  const buttonClass = `${buttonVariant} button-${buttonVariant}`;
8774
8822
  const title = event.title;
@@ -18943,6 +18991,21 @@ var init_event_calendar = __esm({
18943
18991
  visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
18944
18992
  }
18945
18993
  },
18994
+ {
18995
+ id: "showCapacity",
18996
+ type: "boolean",
18997
+ label: "Show available spots",
18998
+ description: "Display remaining capacity on event cards and timetable cells",
18999
+ required: false,
19000
+ defaultValue: true,
19001
+ ui: {
19002
+ intent: "display",
19003
+ visibleWhen: {
19004
+ field: "displayMode",
19005
+ oneOf: ["combined", "list", "week", "timetable"]
19006
+ }
19007
+ }
19008
+ },
18946
19009
  // Block-level pre-filtering
18947
19010
  {
18948
19011
  id: "eventSurface",
@@ -19134,6 +19197,9 @@ var init_event_calendar = __esm({
19134
19197
  showStaffFilter: {
19135
19198
  $bind: { from: "content.showStaffFilter", fallback: true }
19136
19199
  },
19200
+ showCapacity: {
19201
+ $bind: { from: "content.showCapacity", fallback: true }
19202
+ },
19137
19203
  kind: { $bind: { from: "content.kind", fallback: "all" } },
19138
19204
  eventSurface: {
19139
19205
  $bind: { from: "content.eventSurface", fallback: "all" }
@@ -20978,21 +21044,26 @@ function buildTimetableModel(input) {
20978
21044
  for (const [dateKey, dayDrafts] of groupDraftsByDate(drafts)) {
20979
21045
  cellsByDate.set(
20980
21046
  dateKey,
20981
- assignTimetableLanes(dayDrafts).map((draft) => ({
20982
- event: draft.event,
20983
- startsAtMinutes: draft.startsAtMinutes,
20984
- endsAtMinutes: draft.endsAtMinutes,
20985
- topPercent: toRangePercent(draft.startsAtMinutes - rangeStartMinutes, rangeMinutes),
20986
- heightPercent: Math.max(
20987
- MIN_EVENT_HEIGHT_PERCENT,
20988
- toRangePercent(draft.endsAtMinutes - draft.startsAtMinutes, rangeMinutes)
20989
- ),
20990
- laneIndex: draft.laneIndex,
20991
- laneCount: draft.laneCount,
20992
- categoryColor: draft.event.eventCategory?.color || "rgb(var(--tb-accent))",
20993
- timeLabel: formatEventTimeRange(draft.event),
20994
- teacherLine: formatEventTeacherLine(draft.event)
20995
- }))
21047
+ assignTimetableLanes(dayDrafts).map((draft) => {
21048
+ const capacity = formatTimetableCapacity(draft.event);
21049
+ return {
21050
+ event: draft.event,
21051
+ startsAtMinutes: draft.startsAtMinutes,
21052
+ endsAtMinutes: draft.endsAtMinutes,
21053
+ topPercent: toRangePercent(draft.startsAtMinutes - rangeStartMinutes, rangeMinutes),
21054
+ heightPercent: Math.max(
21055
+ MIN_EVENT_HEIGHT_PERCENT,
21056
+ toRangePercent(draft.endsAtMinutes - draft.startsAtMinutes, rangeMinutes)
21057
+ ),
21058
+ laneIndex: draft.laneIndex,
21059
+ laneCount: draft.laneCount,
21060
+ categoryColor: draft.event.eventCategory?.color || "rgb(var(--tb-accent))",
21061
+ timeLabel: formatEventTimeRange(draft.event),
21062
+ teacherLine: formatEventTeacherLine(draft.event),
21063
+ capacityLabel: capacity.label,
21064
+ isFull: capacity.isFull
21065
+ };
21066
+ })
20996
21067
  );
20997
21068
  }
20998
21069
  return {
@@ -21125,6 +21196,12 @@ function formatShortDayLabel(date) {
21125
21196
  const dayName = FULL_DAY_NAMES[date.getDay()] ?? "";
21126
21197
  return `${dayName.slice(0, 3)} ${date.getDate()}`;
21127
21198
  }
21199
+ function formatTimetableCapacity(event) {
21200
+ const { available, isFull } = getEventAvailability(event);
21201
+ if (available == null) return { label: null, isFull: false };
21202
+ if (isFull) return { label: "Full", isFull: true };
21203
+ return { label: `${available} spots left`, isFull: false };
21204
+ }
21128
21205
  function formatEventTimeRange(event) {
21129
21206
  const timeZone = event.timeZone ?? null;
21130
21207
  return `${formatTime(event.startsAt, { timeZone })} - ${formatTime(event.endsAt, { timeZone })}`;
@@ -21137,6 +21214,7 @@ var init_timetableModel = __esm({
21137
21214
  "../blocks/src/system/runtime/nodes/events/shared/timetableModel.ts"() {
21138
21215
  "use strict";
21139
21216
  init_src();
21217
+ init_eventCapacity();
21140
21218
  init_utils();
21141
21219
  DEFAULT_START_HOUR = 6;
21142
21220
  DEFAULT_END_HOUR = 21;
@@ -21395,7 +21473,17 @@ function renderTimetableSsr(display) {
21395
21473
  /* @__PURE__ */ jsx43("span", { className: "event-timetable-event-time", children: cell.timeLabel }),
21396
21474
  /* @__PURE__ */ jsx43("span", { className: "event-timetable-event-title", children: cell.event.title }),
21397
21475
  cell.teacherLine ? /* @__PURE__ */ jsx43("span", { className: "event-timetable-event-teacher", children: cell.teacherLine }) : null,
21398
- cell.event.venue ? /* @__PURE__ */ jsx43("span", { className: "event-timetable-event-meta", children: cell.event.venue.name }) : null
21476
+ cell.event.venue ? /* @__PURE__ */ jsx43("span", { className: "event-timetable-event-meta", children: cell.event.venue.name }) : null,
21477
+ display.showCapacity && cell.capacityLabel ? /* @__PURE__ */ jsx43(
21478
+ "span",
21479
+ {
21480
+ className: clsx_default(
21481
+ "event-timetable-event-capacity",
21482
+ cell.isFull && "event-timetable-event-capacity--full"
21483
+ ),
21484
+ children: cell.capacityLabel
21485
+ }
21486
+ ) : null
21399
21487
  ]
21400
21488
  },
21401
21489
  cell.event.occurrenceId || cell.event.id
@@ -39388,30 +39476,22 @@ var init_CalendarDayCell = __esm({
39388
39476
 
39389
39477
  // ../blocks/src/system/runtime/nodes/events/shared/AgendaEventCard.tsx
39390
39478
  import { Fragment as Fragment22, jsx as jsx129, jsxs as jsxs92 } from "react/jsx-runtime";
39391
- function formatCapacity(event) {
39392
- if (event.capacity == null) {
39393
- return null;
39394
- }
39395
- const available = event.availableSpots ?? event.capacity - event.registeredCount;
39396
- if (available <= 0) {
39397
- return "Full";
39398
- }
39399
- return `${available} spots left`;
39400
- }
39401
39479
  var AgendaEventCard;
39402
39480
  var init_AgendaEventCard = __esm({
39403
39481
  "../blocks/src/system/runtime/nodes/events/shared/AgendaEventCard.tsx"() {
39404
39482
  "use strict";
39483
+ init_eventCapacity();
39405
39484
  init_utils();
39406
39485
  AgendaEventCard = ({
39407
39486
  event,
39487
+ showCapacity,
39408
39488
  onClick
39409
39489
  }) => {
39410
39490
  const eventUrl = event.path;
39411
39491
  const categoryColor = event.eventCategory?.color || "rgb(var(--tb-accent))";
39412
39492
  const price = formatEventPrice(event);
39413
- const capacity = formatCapacity(event);
39414
- const isFull = capacity === "Full";
39493
+ const { available, isFull } = getEventAvailability(event);
39494
+ const capacity = showCapacity && available != null ? isFull ? "Full" : `${available} spots left` : null;
39415
39495
  const title = event.title;
39416
39496
  const timeZone = event.timeZone ?? null;
39417
39497
  const teacherLine = formatEventTeacherLine(event);
@@ -39491,6 +39571,7 @@ var init_WeekAgendaView = __esm({
39491
39571
  viewDate,
39492
39572
  events,
39493
39573
  startOfWeek,
39574
+ showCapacity,
39494
39575
  emptyMessage = "No events scheduled"
39495
39576
  }) => {
39496
39577
  const weekDays = getWeekCalendarDays(viewDate, startOfWeek);
@@ -39511,7 +39592,8 @@ var init_WeekAgendaView = __esm({
39511
39592
  /* @__PURE__ */ jsx130("div", { className: "event-agenda-day-content", children: dayEvents.length === 0 ? /* @__PURE__ */ jsx130("p", { className: "event-agenda-day-empty", children: emptyMessage }) : /* @__PURE__ */ jsx130("div", { className: "event-agenda-day-events", children: dayEvents.map((event) => /* @__PURE__ */ jsx130(
39512
39593
  AgendaEventCard,
39513
39594
  {
39514
- event
39595
+ event,
39596
+ showCapacity
39515
39597
  },
39516
39598
  event.occurrenceId || event.id
39517
39599
  )) }) })
@@ -39528,6 +39610,7 @@ var init_WeekAgendaView = __esm({
39528
39610
  import { jsx as jsx131 } from "react/jsx-runtime";
39529
39611
  function EventDetailModal({
39530
39612
  event,
39613
+ showCapacity,
39531
39614
  onClose,
39532
39615
  cardVariant = "default",
39533
39616
  buttonVariant = "primary",
@@ -39568,7 +39651,7 @@ function EventDetailModal({
39568
39651
  showVenue: true,
39569
39652
  showMap,
39570
39653
  allowMap: true,
39571
- showCapacity: true
39654
+ showCapacity
39572
39655
  }
39573
39656
  ) })
39574
39657
  }
@@ -39588,6 +39671,7 @@ import { jsx as jsx132, jsxs as jsxs94 } from "react/jsx-runtime";
39588
39671
  function DayEventsModal({
39589
39672
  date,
39590
39673
  events,
39674
+ showCapacity,
39591
39675
  onClose,
39592
39676
  onSelectEvent
39593
39677
  }) {
@@ -39624,7 +39708,8 @@ function DayEventsModal({
39624
39708
  AgendaEventCard,
39625
39709
  {
39626
39710
  event,
39627
- onClick: onSelectEvent
39711
+ onClick: onSelectEvent,
39712
+ showCapacity
39628
39713
  },
39629
39714
  event.occurrenceId || event.id
39630
39715
  )) })
@@ -39645,6 +39730,7 @@ var init_DayEventsModal = __esm({
39645
39730
  // ../blocks/src/system/runtime/nodes/events/shared/EventModals.tsx
39646
39731
  import { jsx as jsx133 } from "react/jsx-runtime";
39647
39732
  function EventModals({
39733
+ showCapacity,
39648
39734
  cardVariant,
39649
39735
  buttonVariant,
39650
39736
  buttonText
@@ -39661,7 +39747,8 @@ function EventModals({
39661
39747
  onClose: closeModal,
39662
39748
  cardVariant,
39663
39749
  buttonVariant,
39664
- buttonText
39750
+ buttonText,
39751
+ showCapacity
39665
39752
  }
39666
39753
  );
39667
39754
  }
@@ -39674,7 +39761,8 @@ function EventModals({
39674
39761
  onClose: closeModal,
39675
39762
  onSelectEvent: (event) => {
39676
39763
  openEventModal(event);
39677
- }
39764
+ },
39765
+ showCapacity
39678
39766
  }
39679
39767
  );
39680
39768
  }
@@ -40077,7 +40165,8 @@ var init_EventCombined_client = __esm({
40077
40165
  viewDate,
40078
40166
  events: calendarEventsRaw,
40079
40167
  startOfWeek,
40080
- emptyMessage: "No events scheduled"
40168
+ emptyMessage: "No events scheduled",
40169
+ showCapacity: resolvedShowCapacity
40081
40170
  }
40082
40171
  ) : /* @__PURE__ */ jsxs95("div", { className: "event-calendar-container", children: [
40083
40172
  /* @__PURE__ */ jsx134("div", { className: "event-calendar-day-headers", children: dayNames.map((day) => /* @__PURE__ */ jsx134("div", { className: "event-calendar-day-header", children: day }, day)) }),
@@ -40097,7 +40186,14 @@ var init_EventCombined_client = __esm({
40097
40186
  ] }),
40098
40187
  calendarEventsRaw.length === 0 && !calendarLoading && /* @__PURE__ */ jsx134("p", { className: "event-calendar-empty", children: emptyMessage })
40099
40188
  ] }),
40100
- /* @__PURE__ */ jsx134(EventModals, { buttonVariant, buttonText })
40189
+ /* @__PURE__ */ jsx134(
40190
+ EventModals,
40191
+ {
40192
+ buttonVariant,
40193
+ buttonText,
40194
+ showCapacity: resolvedShowCapacity
40195
+ }
40196
+ )
40101
40197
  ] })
40102
40198
  ]
40103
40199
  }
@@ -40132,6 +40228,7 @@ var init_WeekTimetableView = __esm({
40132
40228
  viewDate,
40133
40229
  events,
40134
40230
  startOfWeek,
40231
+ showCapacity,
40135
40232
  emptyMessage = "No classes scheduled"
40136
40233
  }) => {
40137
40234
  const { openEventModal } = useEventModal();
@@ -40164,7 +40261,8 @@ var init_WeekTimetableView = __esm({
40164
40261
  hours: model.hourTicks,
40165
40262
  rangeMinutes: model.rangeMinutes,
40166
40263
  selected: day.dateKey === selectedDayKey,
40167
- onEventClick: openEventModal
40264
+ onEventClick: openEventModal,
40265
+ showCapacity
40168
40266
  },
40169
40267
  day.dateKey
40170
40268
  ))
@@ -40184,7 +40282,7 @@ var init_WeekTimetableView = __esm({
40184
40282
  hour
40185
40283
  )) })
40186
40284
  ] });
40187
- TimetableDayColumn = ({ day, hours, rangeMinutes, selected, onEventClick }) => /* @__PURE__ */ jsxs96(
40285
+ TimetableDayColumn = ({ day, hours, rangeMinutes, selected, onEventClick, showCapacity }) => /* @__PURE__ */ jsxs96(
40188
40286
  "section",
40189
40287
  {
40190
40288
  className: `event-timetable-day ${day.isToday ? "event-timetable-day--today" : ""}`,
@@ -40213,7 +40311,8 @@ var init_WeekTimetableView = __esm({
40213
40311
  TimetableEventButton,
40214
40312
  {
40215
40313
  cell,
40216
- onClick: onEventClick
40314
+ onClick: onEventClick,
40315
+ showCapacity
40217
40316
  },
40218
40317
  cell.event.occurrenceId || cell.event.id
40219
40318
  ))
@@ -40223,7 +40322,7 @@ var init_WeekTimetableView = __esm({
40223
40322
  ]
40224
40323
  }
40225
40324
  );
40226
- TimetableEventButton = ({ cell, onClick }) => /* @__PURE__ */ jsxs96(
40325
+ TimetableEventButton = ({ cell, onClick, showCapacity }) => /* @__PURE__ */ jsxs96(
40227
40326
  "button",
40228
40327
  {
40229
40328
  type: "button",
@@ -40241,7 +40340,14 @@ var init_WeekTimetableView = __esm({
40241
40340
  /* @__PURE__ */ jsx135("span", { className: "event-timetable-event-time", children: cell.timeLabel }),
40242
40341
  /* @__PURE__ */ jsx135("span", { className: "event-timetable-event-title", children: cell.event.title }),
40243
40342
  cell.teacherLine ? /* @__PURE__ */ jsx135("span", { className: "event-timetable-event-teacher", children: cell.teacherLine }) : null,
40244
- cell.event.venue ? /* @__PURE__ */ jsx135("span", { className: "event-timetable-event-meta", children: cell.event.venue.name }) : null
40343
+ cell.event.venue ? /* @__PURE__ */ jsx135("span", { className: "event-timetable-event-meta", children: cell.event.venue.name }) : null,
40344
+ showCapacity && cell.capacityLabel ? /* @__PURE__ */ jsx135(
40345
+ "span",
40346
+ {
40347
+ className: cell.isFull ? "event-timetable-event-capacity event-timetable-event-capacity--full" : "event-timetable-event-capacity",
40348
+ children: cell.capacityLabel
40349
+ }
40350
+ ) : null
40245
40351
  ]
40246
40352
  }
40247
40353
  );
@@ -40463,7 +40569,8 @@ var init_EventCalendar_client = __esm({
40463
40569
  viewDate,
40464
40570
  events,
40465
40571
  startOfWeek: display.startOfWeek,
40466
- emptyMessage: display.emptyMessage
40572
+ emptyMessage: display.emptyMessage,
40573
+ showCapacity: display.showCapacity
40467
40574
  }
40468
40575
  )
40469
40576
  }
@@ -40472,7 +40579,8 @@ var init_EventCalendar_client = __esm({
40472
40579
  EventModals,
40473
40580
  {
40474
40581
  buttonVariant: display.buttonVariant,
40475
- buttonText: display.buttonText
40582
+ buttonText: display.buttonText,
40583
+ showCapacity: display.showCapacity
40476
40584
  }
40477
40585
  )
40478
40586
  ] });
@@ -40554,7 +40662,8 @@ var init_EventCalendar_client = __esm({
40554
40662
  EventModals,
40555
40663
  {
40556
40664
  buttonVariant: display.buttonVariant,
40557
- buttonText: display.buttonText
40665
+ buttonText: display.buttonText,
40666
+ showCapacity: display.showCapacity
40558
40667
  }
40559
40668
  )
40560
40669
  ] });
@@ -46723,12 +46832,50 @@ var init_compile = __esm({
46723
46832
  });
46724
46833
 
46725
46834
  // ../theme-core/src/responsiveMode.ts
46726
- var DEFAULT_THEME_RESPONSIVE_MODE, THEME_RESPONSIVE_CONTAINER_NAME;
46835
+ function getResponsiveScopeSpec(mode = DEFAULT_THEME_RESPONSIVE_MODE) {
46836
+ if (mode === "container") {
46837
+ return {
46838
+ kind: "container",
46839
+ selector: `[${THEME_RESPONSIVE_MODE_ATTR}="container"]`,
46840
+ containerName: THEME_RESPONSIVE_CONTAINER_NAME
46841
+ };
46842
+ }
46843
+ return {
46844
+ kind: "viewport",
46845
+ selector: `[${THEME_RESPONSIVE_MODE_ATTR}="viewport"]`
46846
+ };
46847
+ }
46848
+ function escapeRegExp(value) {
46849
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
46850
+ }
46851
+ function buildResponsiveScopeRulePatternSource() {
46852
+ return [
46853
+ "@scope",
46854
+ "\\(\\[",
46855
+ escapeRegExp(THEME_RESPONSIVE_MODE_ATTR),
46856
+ '="(?:viewport|container)"\\]\\)',
46857
+ "to",
46858
+ "\\((?::scope )?\\[",
46859
+ escapeRegExp(THEME_RESPONSIVE_MODE_ATTR),
46860
+ "\\]\\)",
46861
+ "\\{"
46862
+ ].join("\\s*");
46863
+ }
46864
+ var DEFAULT_THEME_RESPONSIVE_MODE, THEME_RESPONSIVE_CONTAINER_NAME, THEME_RESPONSIVE_MODE_ATTR, RESPONSIVE_SCOPE_RULE_PATTERN, RESPONSIVE_SCOPE_RULE_AT_PATTERN;
46727
46865
  var init_responsiveMode = __esm({
46728
46866
  "../theme-core/src/responsiveMode.ts"() {
46729
46867
  "use strict";
46730
46868
  DEFAULT_THEME_RESPONSIVE_MODE = "viewport";
46731
46869
  THEME_RESPONSIVE_CONTAINER_NAME = "rb-site";
46870
+ THEME_RESPONSIVE_MODE_ATTR = "data-rb-responsive-mode";
46871
+ RESPONSIVE_SCOPE_RULE_PATTERN = new RegExp(
46872
+ buildResponsiveScopeRulePatternSource(),
46873
+ "g"
46874
+ );
46875
+ RESPONSIVE_SCOPE_RULE_AT_PATTERN = new RegExp(
46876
+ buildResponsiveScopeRulePatternSource(),
46877
+ "y"
46878
+ );
46732
46879
  }
46733
46880
  });
46734
46881
 
@@ -47777,45 +47924,53 @@ var init_containerResponsiveThemeCss = __esm({
47777
47924
  flex-basis: 16.666667%;
47778
47925
  }
47779
47926
  @container rb-site (min-width: 768px) {
47780
- .rb-md-basis-full {
47781
- flex-basis: 100%;
47782
- }
47783
- .rb-md-basis-1-2 {
47784
- flex-basis: 50%;
47785
- }
47786
- .rb-md-basis-1-3 {
47787
- flex-basis: 33.333333%;
47788
- }
47789
- .rb-md-basis-1-4 {
47790
- flex-basis: 25%;
47791
- }
47792
- .rb-md-basis-1-5 {
47793
- flex-basis: 20%;
47794
- }
47795
- .rb-md-basis-1-6 {
47796
- flex-basis: 16.666667%;
47927
+
47928
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
47929
+ .rb-md-basis-full {
47930
+ flex-basis: 100%;
47931
+ }
47932
+ .rb-md-basis-1-2 {
47933
+ flex-basis: 50%;
47934
+ }
47935
+ .rb-md-basis-1-3 {
47936
+ flex-basis: 33.333333%;
47937
+ }
47938
+ .rb-md-basis-1-4 {
47939
+ flex-basis: 25%;
47940
+ }
47941
+ .rb-md-basis-1-5 {
47942
+ flex-basis: 20%;
47943
+ }
47944
+ .rb-md-basis-1-6 {
47945
+ flex-basis: 16.666667%;
47946
+ }
47797
47947
  }
47798
- }
47948
+
47949
+ }
47799
47950
  @container rb-site (min-width: 1024px) {
47800
- .rb-lg-basis-full {
47801
- flex-basis: 100%;
47802
- }
47803
- .rb-lg-basis-1-2 {
47804
- flex-basis: 50%;
47805
- }
47806
- .rb-lg-basis-1-3 {
47807
- flex-basis: 33.333333%;
47808
- }
47809
- .rb-lg-basis-1-4 {
47810
- flex-basis: 25%;
47811
- }
47812
- .rb-lg-basis-1-5 {
47813
- flex-basis: 20%;
47814
- }
47815
- .rb-lg-basis-1-6 {
47816
- flex-basis: 16.666667%;
47951
+
47952
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
47953
+ .rb-lg-basis-full {
47954
+ flex-basis: 100%;
47955
+ }
47956
+ .rb-lg-basis-1-2 {
47957
+ flex-basis: 50%;
47958
+ }
47959
+ .rb-lg-basis-1-3 {
47960
+ flex-basis: 33.333333%;
47961
+ }
47962
+ .rb-lg-basis-1-4 {
47963
+ flex-basis: 25%;
47964
+ }
47965
+ .rb-lg-basis-1-5 {
47966
+ flex-basis: 20%;
47967
+ }
47968
+ .rb-lg-basis-1-6 {
47969
+ flex-basis: 16.666667%;
47970
+ }
47817
47971
  }
47818
- }
47972
+
47973
+ }
47819
47974
  .rb-shrink-0 {
47820
47975
  flex-shrink: 0;
47821
47976
  }
@@ -47837,64 +47992,80 @@ var init_containerResponsiveThemeCss = __esm({
47837
47992
  grid-template-columns: repeat(4, minmax(0, 1fr));
47838
47993
  }
47839
47994
  @container rb-site (min-width: 640px) {
47840
- .rb-sm-grid-cols-2 {
47841
- grid-template-columns: repeat(2, minmax(0, 1fr));
47842
- }
47843
- .rb-sm-grid-cols-3 {
47844
- grid-template-columns: repeat(3, minmax(0, 1fr));
47845
- }
47846
- .rb-sm-grid-cols-4 {
47847
- grid-template-columns: repeat(4, minmax(0, 1fr));
47995
+
47996
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
47997
+ .rb-sm-grid-cols-2 {
47998
+ grid-template-columns: repeat(2, minmax(0, 1fr));
47999
+ }
48000
+ .rb-sm-grid-cols-3 {
48001
+ grid-template-columns: repeat(3, minmax(0, 1fr));
48002
+ }
48003
+ .rb-sm-grid-cols-4 {
48004
+ grid-template-columns: repeat(4, minmax(0, 1fr));
48005
+ }
47848
48006
  }
47849
- }
48007
+
48008
+ }
47850
48009
  @container rb-site (min-width: 768px) {
47851
- .rb-md-grid-cols-2 {
47852
- grid-template-columns: repeat(2, minmax(0, 1fr));
47853
- }
47854
- .rb-md-grid-cols-3 {
47855
- grid-template-columns: repeat(3, minmax(0, 1fr));
47856
- }
47857
- .rb-md-grid-cols-4 {
47858
- grid-template-columns: repeat(4, minmax(0, 1fr));
48010
+
48011
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
48012
+ .rb-md-grid-cols-2 {
48013
+ grid-template-columns: repeat(2, minmax(0, 1fr));
48014
+ }
48015
+ .rb-md-grid-cols-3 {
48016
+ grid-template-columns: repeat(3, minmax(0, 1fr));
48017
+ }
48018
+ .rb-md-grid-cols-4 {
48019
+ grid-template-columns: repeat(4, minmax(0, 1fr));
48020
+ }
47859
48021
  }
47860
- }
48022
+
48023
+ }
47861
48024
  @container rb-site (min-width: 1024px) {
47862
- .rb-lg-grid-cols-2 {
47863
- grid-template-columns: repeat(2, minmax(0, 1fr));
47864
- }
47865
- .rb-lg-grid-cols-3 {
47866
- grid-template-columns: repeat(3, minmax(0, 1fr));
47867
- }
47868
- .rb-lg-grid-cols-4 {
47869
- grid-template-columns: repeat(4, minmax(0, 1fr));
47870
- }
47871
- .rb-lg-w-3\\/4 {
47872
- width: 75%;
47873
- }
47874
- .rb-lg-col-span-1 {
47875
- grid-column: span 1 / span 1;
47876
- }
47877
- .rb-lg-col-span-2 {
47878
- grid-column: span 2 / span 2;
47879
- }
47880
- .rb-lg-col-span-3 {
47881
- grid-column: span 3 / span 3;
47882
- }
47883
- .rb-lg-col-span-4 {
47884
- grid-column: span 4 / span 4;
48025
+
48026
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
48027
+ .rb-lg-grid-cols-2 {
48028
+ grid-template-columns: repeat(2, minmax(0, 1fr));
48029
+ }
48030
+ .rb-lg-grid-cols-3 {
48031
+ grid-template-columns: repeat(3, minmax(0, 1fr));
48032
+ }
48033
+ .rb-lg-grid-cols-4 {
48034
+ grid-template-columns: repeat(4, minmax(0, 1fr));
48035
+ }
48036
+ .rb-lg-w-3\\/4 {
48037
+ width: 75%;
48038
+ }
48039
+ .rb-lg-col-span-1 {
48040
+ grid-column: span 1 / span 1;
48041
+ }
48042
+ .rb-lg-col-span-2 {
48043
+ grid-column: span 2 / span 2;
48044
+ }
48045
+ .rb-lg-col-span-3 {
48046
+ grid-column: span 3 / span 3;
48047
+ }
48048
+ .rb-lg-col-span-4 {
48049
+ grid-column: span 4 / span 4;
48050
+ }
47885
48051
  }
47886
- }
48052
+
48053
+ }
47887
48054
  @container rb-site (min-width: 1280px) {
47888
- .rb-xl-grid-cols-2 {
47889
- grid-template-columns: repeat(2, minmax(0, 1fr));
47890
- }
47891
- .rb-xl-grid-cols-3 {
47892
- grid-template-columns: repeat(3, minmax(0, 1fr));
47893
- }
47894
- .rb-xl-grid-cols-4 {
47895
- grid-template-columns: repeat(4, minmax(0, 1fr));
48055
+
48056
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
48057
+ .rb-xl-grid-cols-2 {
48058
+ grid-template-columns: repeat(2, minmax(0, 1fr));
48059
+ }
48060
+ .rb-xl-grid-cols-3 {
48061
+ grid-template-columns: repeat(3, minmax(0, 1fr));
48062
+ }
48063
+ .rb-xl-grid-cols-4 {
48064
+ grid-template-columns: repeat(4, minmax(0, 1fr));
48065
+ }
47896
48066
  }
47897
- }
48067
+
48068
+ }
47898
48069
 
47899
48070
  /* Alignment */
47900
48071
  .rb-items-start {
@@ -47963,13 +48134,17 @@ var init_containerResponsiveThemeCss = __esm({
47963
48134
  row-gap: 0.75rem;
47964
48135
  }
47965
48136
  @container rb-site (min-width: 768px) {
47966
- .rb-md-gap-0 {
47967
- gap: 0;
47968
- }
47969
- .rb-md-gap-10 {
47970
- gap: 2.5rem;
48137
+
48138
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
48139
+ .rb-md-gap-0 {
48140
+ gap: 0;
48141
+ }
48142
+ .rb-md-gap-10 {
48143
+ gap: 2.5rem;
48144
+ }
47971
48145
  }
47972
- }
48146
+
48147
+ }
47973
48148
 
47974
48149
  .rb-space-y-1 > :not([hidden]) ~ :not([hidden]) {
47975
48150
  margin-top: 0.25rem;
@@ -48071,137 +48246,149 @@ var init_containerResponsiveThemeCss = __esm({
48071
48246
  }
48072
48247
 
48073
48248
  @container rb-site (min-width: 640px) {
48074
- .rb-sm-py-16 {
48075
- padding-top: 4rem;
48076
- padding-bottom: 4rem;
48077
- }
48078
- .rb-sm-py-20 {
48079
- padding-top: 5rem;
48080
- padding-bottom: 5rem;
48081
- }
48082
- .rb-sm-p-6 {
48083
- padding: 1.5rem;
48084
- }
48085
- .rb-sm-flex {
48086
- display: flex;
48087
- }
48088
- .rb-sm-block {
48089
- display: block;
48090
- }
48091
- .rb-sm-inline {
48092
- display: inline;
48093
- }
48094
- .rb-sm-inline-block {
48095
- display: inline-block;
48096
- }
48097
- .rb-sm-inline-flex {
48098
- display: inline-flex;
48099
- }
48100
- .rb-sm-grid {
48101
- display: grid;
48102
- }
48103
- .rb-sm-hidden {
48104
- display: none;
48105
- }
48106
- .rb-sm-flex-row {
48107
- flex-direction: row;
48108
- }
48109
- .rb-sm-items-start {
48110
- align-items: flex-start;
48111
- }
48112
- .rb-sm-items-center {
48113
- align-items: center;
48114
- }
48115
- .rb-sm-justify-between {
48116
- justify-content: space-between;
48117
- }
48118
- .rb-sm-p-8 {
48119
- padding: 2rem;
48120
- }
48121
- .rb-sm-text-lg {
48122
- font-size: 1.125rem;
48123
- line-height: 1.75rem;
48124
- }
48125
- .rb-sm-text-xl {
48126
- font-size: 1.25rem;
48127
- line-height: 1.75rem;
48128
- }
48129
- .rb-sm-text-4xl {
48130
- font-size: 2.25rem;
48131
- line-height: 2.5rem;
48132
- }
48133
48249
 
48134
- .rb-sm-w-auto {
48135
- width: auto;
48250
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
48251
+ .rb-sm-py-16 {
48252
+ padding-top: 4rem;
48253
+ padding-bottom: 4rem;
48254
+ }
48255
+ .rb-sm-py-20 {
48256
+ padding-top: 5rem;
48257
+ padding-bottom: 5rem;
48258
+ }
48259
+ .rb-sm-p-6 {
48260
+ padding: 1.5rem;
48261
+ }
48262
+ .rb-sm-flex {
48263
+ display: flex;
48264
+ }
48265
+ .rb-sm-block {
48266
+ display: block;
48267
+ }
48268
+ .rb-sm-inline {
48269
+ display: inline;
48270
+ }
48271
+ .rb-sm-inline-block {
48272
+ display: inline-block;
48273
+ }
48274
+ .rb-sm-inline-flex {
48275
+ display: inline-flex;
48276
+ }
48277
+ .rb-sm-grid {
48278
+ display: grid;
48279
+ }
48280
+ .rb-sm-hidden {
48281
+ display: none;
48282
+ }
48283
+ .rb-sm-flex-row {
48284
+ flex-direction: row;
48285
+ }
48286
+ .rb-sm-items-start {
48287
+ align-items: flex-start;
48288
+ }
48289
+ .rb-sm-items-center {
48290
+ align-items: center;
48291
+ }
48292
+ .rb-sm-justify-between {
48293
+ justify-content: space-between;
48294
+ }
48295
+ .rb-sm-p-8 {
48296
+ padding: 2rem;
48297
+ }
48298
+ .rb-sm-text-lg {
48299
+ font-size: 1.125rem;
48300
+ line-height: 1.75rem;
48301
+ }
48302
+ .rb-sm-text-xl {
48303
+ font-size: 1.25rem;
48304
+ line-height: 1.75rem;
48305
+ }
48306
+ .rb-sm-text-4xl {
48307
+ font-size: 2.25rem;
48308
+ line-height: 2.5rem;
48309
+ }
48310
+
48311
+ .rb-sm-w-auto {
48312
+ width: auto;
48313
+ }
48136
48314
  }
48137
- }
48315
+
48316
+ }
48138
48317
  @container rb-site (min-width: 768px) {
48139
- .rb-md-py-20 {
48140
- padding-top: 5rem;
48141
- padding-bottom: 5rem;
48142
- }
48143
- .rb-md-py-24 {
48144
- padding-top: 6rem;
48145
- padding-bottom: 6rem;
48146
- }
48147
- .rb-md-w-1\\/3 {
48148
- width: 33.333333%;
48149
- }
48150
48318
 
48151
- .rb-md-flex {
48152
- display: flex;
48153
- }
48154
- .rb-md-block {
48155
- display: block;
48156
- }
48157
- .rb-md-inline {
48158
- display: inline;
48159
- }
48160
- .rb-md-inline-block {
48161
- display: inline-block;
48162
- }
48163
- .rb-md-inline-flex {
48164
- display: inline-flex;
48165
- }
48166
- .rb-md-grid {
48167
- display: grid;
48168
- }
48169
- .rb-md-hidden {
48170
- display: none;
48171
- }
48172
- .rb-md-flex-row {
48173
- flex-direction: row;
48174
- }
48175
- .rb-md-flex-row-reverse {
48176
- flex-direction: row-reverse;
48177
- }
48178
- .rb-md-items-start {
48179
- align-items: flex-start;
48319
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
48320
+ .rb-md-py-20 {
48321
+ padding-top: 5rem;
48322
+ padding-bottom: 5rem;
48323
+ }
48324
+ .rb-md-py-24 {
48325
+ padding-top: 6rem;
48326
+ padding-bottom: 6rem;
48327
+ }
48328
+ .rb-md-w-1\\/3 {
48329
+ width: 33.333333%;
48330
+ }
48331
+
48332
+ .rb-md-flex {
48333
+ display: flex;
48334
+ }
48335
+ .rb-md-block {
48336
+ display: block;
48337
+ }
48338
+ .rb-md-inline {
48339
+ display: inline;
48340
+ }
48341
+ .rb-md-inline-block {
48342
+ display: inline-block;
48343
+ }
48344
+ .rb-md-inline-flex {
48345
+ display: inline-flex;
48346
+ }
48347
+ .rb-md-grid {
48348
+ display: grid;
48349
+ }
48350
+ .rb-md-hidden {
48351
+ display: none;
48352
+ }
48353
+ .rb-md-flex-row {
48354
+ flex-direction: row;
48355
+ }
48356
+ .rb-md-flex-row-reverse {
48357
+ flex-direction: row-reverse;
48358
+ }
48359
+ .rb-md-items-start {
48360
+ align-items: flex-start;
48361
+ }
48180
48362
  }
48181
- }
48363
+
48364
+ }
48182
48365
  @container rb-site (min-width: 1024px) {
48183
- .rb-lg-flex {
48184
- display: flex;
48185
- }
48186
- .rb-lg-block {
48187
- display: block;
48188
- }
48189
- .rb-lg-inline {
48190
- display: inline;
48191
- }
48192
- .rb-lg-inline-block {
48193
- display: inline-block;
48194
- }
48195
- .rb-lg-inline-flex {
48196
- display: inline-flex;
48197
- }
48198
- .rb-lg-grid {
48199
- display: grid;
48200
- }
48201
- .rb-lg-hidden {
48202
- display: none;
48366
+
48367
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
48368
+ .rb-lg-flex {
48369
+ display: flex;
48370
+ }
48371
+ .rb-lg-block {
48372
+ display: block;
48373
+ }
48374
+ .rb-lg-inline {
48375
+ display: inline;
48376
+ }
48377
+ .rb-lg-inline-block {
48378
+ display: inline-block;
48379
+ }
48380
+ .rb-lg-inline-flex {
48381
+ display: inline-flex;
48382
+ }
48383
+ .rb-lg-grid {
48384
+ display: grid;
48385
+ }
48386
+ .rb-lg-hidden {
48387
+ display: none;
48388
+ }
48203
48389
  }
48204
- }
48390
+
48391
+ }
48205
48392
 
48206
48393
  /* Margin */
48207
48394
  .rb-m-0 {
@@ -48458,8 +48645,9 @@ var init_containerResponsiveThemeCss = __esm({
48458
48645
  font-weight: 700;
48459
48646
  }
48460
48647
  .rb-font-mono {
48461
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
48462
- "Liberation Mono", "Courier New", monospace;
48648
+ font-family:
48649
+ ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
48650
+ "Courier New", monospace;
48463
48651
  }
48464
48652
  .rb-leading-relaxed {
48465
48653
  line-height: 1.625;
@@ -48677,39 +48865,44 @@ var init_containerResponsiveThemeCss = __esm({
48677
48865
  }
48678
48866
 
48679
48867
  @container rb-site (max-width: 639px) {
48680
- .rb-image-gallery-marquee {
48681
- overflow-x: auto;
48682
- overflow-y: hidden;
48683
- -webkit-overflow-scrolling: touch;
48684
- touch-action: pan-x;
48685
- scrollbar-width: none;
48686
- }
48687
48868
 
48688
- .rb-image-gallery-marquee::-webkit-scrollbar {
48689
- display: none;
48690
- }
48869
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
48870
+ .rb-image-gallery-marquee {
48871
+ overflow-x: auto;
48872
+ overflow-y: hidden;
48873
+ -webkit-overflow-scrolling: touch;
48874
+ touch-action: pan-x;
48875
+ scrollbar-width: none;
48876
+ }
48691
48877
 
48692
- /* Let users swipe smoothly without fighting autoplay while interacting. */
48693
- .rb-image-gallery-marquee:active .rb-animate-marquee,
48694
- .rb-image-gallery-marquee:focus-within .rb-animate-marquee {
48695
- animation-play-state: paused;
48696
- }
48878
+ .rb-image-gallery-marquee::-webkit-scrollbar {
48879
+ display: none;
48880
+ }
48697
48881
 
48698
- .rb-container-full.rb-image-gallery-marquee-container {
48699
- padding-left: 0;
48700
- padding-right: 0;
48701
- }
48882
+ /* Let users swipe smoothly without fighting autoplay while interacting. */
48883
+ .rb-image-gallery-marquee:active .rb-animate-marquee,
48884
+ .rb-image-gallery-marquee:focus-within .rb-animate-marquee {
48885
+ animation-play-state: paused;
48886
+ }
48702
48887
 
48703
- /* Marquee variant: keep images in color on mobile for legibility. */
48704
- .rb-image-gallery-marquee-container .rb-filter-grayscale,
48705
- .rb-image-gallery-marquee-container .rb-filter-grayscale-hover-reveal {
48706
- filter: none;
48707
- }
48888
+ .rb-container-full.rb-image-gallery-marquee-container {
48889
+ padding-left: 0;
48890
+ padding-right: 0;
48891
+ }
48892
+
48893
+ /* Marquee variant: keep images in color on mobile for legibility. */
48894
+ .rb-image-gallery-marquee-container .rb-filter-grayscale,
48895
+ .rb-image-gallery-marquee-container .rb-filter-grayscale-hover-reveal {
48896
+ filter: none;
48897
+ }
48708
48898
 
48709
- .rb-image-gallery-marquee-container .rb-filter-grayscale-hover-reveal:hover {
48710
- filter: none;
48899
+ .rb-image-gallery-marquee-container
48900
+ .rb-filter-grayscale-hover-reveal:hover {
48901
+ filter: none;
48902
+ }
48711
48903
  }
48712
- }
48904
+
48905
+ }
48713
48906
 
48714
48907
  @media (prefers-reduced-motion: reduce) {
48715
48908
  .rb-animate-marquee {
@@ -48814,12 +49007,16 @@ var init_containerResponsiveThemeCss = __esm({
48814
49007
  }
48815
49008
 
48816
49009
  @container rb-site (min-width: 640px) {
48817
- .rb-container,
48818
- .rb-container-full {
48819
- padding-left: 1.5rem;
48820
- padding-right: 1.5rem;
49010
+
49011
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
49012
+ .rb-container,
49013
+ .rb-container-full {
49014
+ padding-left: 1.5rem;
49015
+ padding-right: 1.5rem;
49016
+ }
48821
49017
  }
48822
- }
49018
+
49019
+ }
48823
49020
 
48824
49021
  /* Flex alignment */
48825
49022
  .rb-self-start {
@@ -48853,27 +49050,31 @@ var init_containerResponsiveThemeCss = __esm({
48853
49050
  }
48854
49051
 
48855
49052
  @container rb-site (min-width: 640px) {
48856
- .rb-section-pad-compact {
48857
- padding-top: 2rem;
48858
- padding-bottom: 2rem;
48859
- }
48860
- .rb-section-pad-cozy {
48861
- padding-top: 3.5rem;
48862
- padding-bottom: 3.5rem;
48863
- }
48864
- .rb-section-pad-medium {
48865
- padding-top: 4rem;
48866
- padding-bottom: 4rem;
48867
- }
48868
- .rb-section-pad-comfortable {
48869
- padding-top: 5rem;
48870
- padding-bottom: 5rem;
48871
- }
48872
- .rb-section-pad-spacious {
48873
- padding-top: 7rem;
48874
- padding-bottom: 7rem;
49053
+
49054
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
49055
+ .rb-section-pad-compact {
49056
+ padding-top: 2rem;
49057
+ padding-bottom: 2rem;
49058
+ }
49059
+ .rb-section-pad-cozy {
49060
+ padding-top: 3.5rem;
49061
+ padding-bottom: 3.5rem;
49062
+ }
49063
+ .rb-section-pad-medium {
49064
+ padding-top: 4rem;
49065
+ padding-bottom: 4rem;
49066
+ }
49067
+ .rb-section-pad-comfortable {
49068
+ padding-top: 5rem;
49069
+ padding-bottom: 5rem;
49070
+ }
49071
+ .rb-section-pad-spacious {
49072
+ padding-top: 7rem;
49073
+ padding-bottom: 7rem;
49074
+ }
48875
49075
  }
48876
- }
49076
+
49077
+ }
48877
49078
 
48878
49079
  .rb-container-pad-none {
48879
49080
  padding: 0;
@@ -48895,22 +49096,26 @@ var init_containerResponsiveThemeCss = __esm({
48895
49096
  }
48896
49097
 
48897
49098
  @container rb-site (min-width: 640px) {
48898
- .rb-container-pad-compact {
48899
- padding: 1.5rem;
48900
- }
48901
- .rb-container-pad-cozy {
48902
- padding: 2rem;
48903
- }
48904
- .rb-container-pad-medium {
48905
- padding: 2rem;
48906
- }
48907
- .rb-container-pad-comfortable {
48908
- padding: 2.5rem;
48909
- }
48910
- .rb-container-pad-spacious {
48911
- padding: 3.5rem;
49099
+
49100
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
49101
+ .rb-container-pad-compact {
49102
+ padding: 1.5rem;
49103
+ }
49104
+ .rb-container-pad-cozy {
49105
+ padding: 2rem;
49106
+ }
49107
+ .rb-container-pad-medium {
49108
+ padding: 2rem;
49109
+ }
49110
+ .rb-container-pad-comfortable {
49111
+ padding: 2.5rem;
49112
+ }
49113
+ .rb-container-pad-spacious {
49114
+ padding: 3.5rem;
49115
+ }
48912
49116
  }
48913
- }
49117
+
49118
+ }
48914
49119
 
48915
49120
  /* Semantic gap tokens (theme-aware via --space-mult) */
48916
49121
  .rb-gap-semantic-none {
@@ -48939,27 +49144,31 @@ var init_containerResponsiveThemeCss = __esm({
48939
49144
  }
48940
49145
 
48941
49146
  @container rb-site (min-width: 768px) {
48942
- .rb-gap-semantic-compact {
48943
- --rb-semantic-gap: calc(1.25rem * var(--space-mult, 1));
48944
- gap: calc(1.25rem * var(--space-mult, 1));
48945
- }
48946
- .rb-gap-semantic-cozy {
48947
- --rb-semantic-gap: calc(2.25rem * var(--space-mult, 1));
48948
- gap: calc(2.25rem * var(--space-mult, 1));
48949
- }
48950
- .rb-gap-semantic-medium {
48951
- --rb-semantic-gap: calc(3.5rem * var(--space-mult, 1));
48952
- gap: calc(3.5rem * var(--space-mult, 1));
48953
- }
48954
- .rb-gap-semantic-comfortable {
48955
- --rb-semantic-gap: calc(5.75rem * var(--space-mult, 1));
48956
- gap: calc(5.75rem * var(--space-mult, 1));
48957
- }
48958
- .rb-gap-semantic-spacious {
48959
- --rb-semantic-gap: calc(8.75rem * var(--space-mult, 1));
48960
- gap: calc(8.75rem * var(--space-mult, 1));
49147
+
49148
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
49149
+ .rb-gap-semantic-compact {
49150
+ --rb-semantic-gap: calc(1.25rem * var(--space-mult, 1));
49151
+ gap: calc(1.25rem * var(--space-mult, 1));
49152
+ }
49153
+ .rb-gap-semantic-cozy {
49154
+ --rb-semantic-gap: calc(2.25rem * var(--space-mult, 1));
49155
+ gap: calc(2.25rem * var(--space-mult, 1));
49156
+ }
49157
+ .rb-gap-semantic-medium {
49158
+ --rb-semantic-gap: calc(3.5rem * var(--space-mult, 1));
49159
+ gap: calc(3.5rem * var(--space-mult, 1));
49160
+ }
49161
+ .rb-gap-semantic-comfortable {
49162
+ --rb-semantic-gap: calc(5.75rem * var(--space-mult, 1));
49163
+ gap: calc(5.75rem * var(--space-mult, 1));
49164
+ }
49165
+ .rb-gap-semantic-spacious {
49166
+ --rb-semantic-gap: calc(8.75rem * var(--space-mult, 1));
49167
+ gap: calc(8.75rem * var(--space-mult, 1));
49168
+ }
48961
49169
  }
48962
- }
49170
+
49171
+ }
48963
49172
 
48964
49173
  /* Backdrop blur helpers */
48965
49174
  .rb-backdrop-blur {
@@ -49313,11 +49522,13 @@ var init_containerResponsiveThemeCss = __esm({
49313
49522
  line-height: var(--rb-prose-lg-line-height);
49314
49523
  }
49315
49524
  @container rb-site (min-width: 640px) {
49316
- :where(.theme-scope) .rb-prose-xl-sm {
49525
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
49526
+ :where(.theme-scope) .rb-prose-xl-sm {
49317
49527
  font-size: var(--rb-prose-xl-sm-font-size);
49318
49528
  line-height: var(--rb-prose-xl-sm-line-height);
49319
49529
  }
49320
49530
  }
49531
+ }
49321
49532
 
49322
49533
  /* Neutral prose uses theme text color by default */
49323
49534
  :where(.theme-scope) .rb-prose-neutral {
@@ -49401,22 +49612,28 @@ var init_containerResponsiveThemeCss = __esm({
49401
49612
  }
49402
49613
 
49403
49614
  @container rb-site (min-width: 768px) {
49404
- :where(.theme-scope) .rb-columns-equal-height {
49615
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
49616
+ :where(.theme-scope) .rb-columns-equal-height {
49405
49617
  --rb-columns-cols: var(--rb-columns-cols-md, var(--rb-columns-cols));
49406
49618
  }
49407
49619
  }
49620
+ }
49408
49621
 
49409
49622
  @container rb-site (min-width: 1024px) {
49410
- :where(.theme-scope) .rb-columns-equal-height {
49623
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
49624
+ :where(.theme-scope) .rb-columns-equal-height {
49411
49625
  --rb-columns-cols: var(--rb-columns-cols-lg, var(--rb-columns-cols));
49412
49626
  }
49413
49627
  }
49628
+ }
49414
49629
 
49415
49630
  @container rb-site (min-width: 1280px) {
49416
- :where(.theme-scope) .rb-columns-equal-height {
49631
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
49632
+ :where(.theme-scope) .rb-columns-equal-height {
49417
49633
  --rb-columns-cols: var(--rb-columns-cols-xl, var(--rb-columns-cols));
49418
49634
  }
49419
49635
  }
49636
+ }
49420
49637
 
49421
49638
  :where(.theme-scope) .rb-columns-equal-height > * {
49422
49639
  height: var(--rb-columns-tile-h);
@@ -50038,7 +50255,8 @@ var init_containerResponsiveThemeCss = __esm({
50038
50255
 
50039
50256
  /* Mobile: reduce site title size (~30%) to keep header compact */
50040
50257
  @container rb-site (max-width: 767px) {
50041
- :where(.theme-scope) .header-logo-text {
50258
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
50259
+ :where(.theme-scope) .header-logo-text {
50042
50260
  font-size: 0.8rem;
50043
50261
  line-height: 1.25rem;
50044
50262
  }
@@ -50049,6 +50267,7 @@ var init_containerResponsiveThemeCss = __esm({
50049
50267
  line-height: 1.25rem;
50050
50268
  }
50051
50269
  }
50270
+ }
50052
50271
 
50053
50272
  /* Centered/editorial variants use larger title */
50054
50273
  :where(.theme-scope) .header-variant-centered .header-logo-text,
@@ -50072,10 +50291,12 @@ var init_containerResponsiveThemeCss = __esm({
50072
50291
  }
50073
50292
 
50074
50293
  @container rb-site (max-width: 767px) {
50075
- :where(.theme-scope) .rb-header-shrink.header-scrolled .header-logo-text {
50294
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
50295
+ :where(.theme-scope) .rb-header-shrink.header-scrolled .header-logo-text {
50076
50296
  font-size: 0.75rem;
50077
50297
  }
50078
50298
  }
50299
+ }
50079
50300
 
50080
50301
  /* =================================================================
50081
50302
  Accessibility: Reduced Motion
@@ -50519,10 +50740,12 @@ var init_containerResponsiveThemeCss = __esm({
50519
50740
  }
50520
50741
 
50521
50742
  @container rb-site (min-width: 768px) {
50522
- :where(.theme-scope) :where([data-block="event-registration"]) .er-event-grid {
50743
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
50744
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-event-grid {
50523
50745
  grid-template-columns: repeat(2, minmax(0, 1fr));
50524
50746
  }
50525
50747
  }
50748
+ }
50526
50749
 
50527
50750
  :where(.theme-scope) :where([data-block="event-registration"]) .er-row {
50528
50751
  display: flex;
@@ -50755,12 +50978,14 @@ var init_containerResponsiveThemeCss = __esm({
50755
50978
  }
50756
50979
 
50757
50980
  @container rb-site (min-width: 768px) {
50758
- :where(.theme-scope) :where([data-block="event-registration"]) .er-layout {
50981
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
50982
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-layout {
50759
50983
  /* Desktop: main + sidebar */
50760
50984
  grid-template-columns: 1fr 300px;
50761
50985
  grid-template-areas: "main summary";
50762
50986
  }
50763
50987
  }
50988
+ }
50764
50989
 
50765
50990
  :where(.theme-scope) :where([data-block="event-registration"]) .er-layout-main {
50766
50991
  grid-area: main;
@@ -50842,10 +51067,12 @@ var init_containerResponsiveThemeCss = __esm({
50842
51067
  }
50843
51068
 
50844
51069
  @container rb-site (min-width: 640px) {
50845
- :where(.theme-scope) :where([data-block="event-registration"]) .er-step-label {
51070
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
51071
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-step-label {
50846
51072
  display: inline;
50847
51073
  }
50848
51074
  }
51075
+ }
50849
51076
 
50850
51077
  /* Sticky order summary */
50851
51078
  :where(.theme-scope) :where([data-block="event-registration"]) .er-summary {
@@ -50862,11 +51089,13 @@ var init_containerResponsiveThemeCss = __esm({
50862
51089
  }
50863
51090
 
50864
51091
  @container rb-site (min-width: 768px) {
50865
- :where(.theme-scope) :where([data-block="event-registration"]) .er-summary {
51092
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
51093
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-summary {
50866
51094
  position: sticky;
50867
51095
  top: 1rem;
50868
51096
  }
50869
51097
  }
51098
+ }
50870
51099
 
50871
51100
  :where(.theme-scope) :where([data-block="event-registration"]) .er-summary-event {
50872
51101
  font-weight: 600;
@@ -50936,12 +51165,14 @@ var init_containerResponsiveThemeCss = __esm({
50936
51165
  }
50937
51166
 
50938
51167
  @container rb-site (min-width: 768px) {
50939
- :where(.theme-scope) :where([data-block="event-registration"]) .er-guest-card {
51168
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
51169
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-guest-card {
50940
51170
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
50941
51171
  column-gap: 1rem;
50942
51172
  align-items: start;
50943
51173
  }
50944
51174
  }
51175
+ }
50945
51176
 
50946
51177
  /* Shake animation for validation errors */
50947
51178
  @keyframes er-shake {
@@ -51086,7 +51317,8 @@ var init_containerResponsiveThemeCss = __esm({
51086
51317
  * ============================================================================= */
51087
51318
 
51088
51319
  @container rb-site (min-width: 768px) {
51089
- :where(.theme-scope)
51320
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
51321
+ :where(.theme-scope)
51090
51322
  :where([data-block="event-listing"], [data-block="event-spotlight"], [data-block="event-calendar"], [data-block="event-combined"])
51091
51323
  .event-card[data-orientation="horizontal"] {
51092
51324
  display: flex;
@@ -51137,6 +51369,7 @@ var init_containerResponsiveThemeCss = __esm({
51137
51369
  text-align: right;
51138
51370
  }
51139
51371
  }
51372
+ }
51140
51373
 
51141
51374
  /* Keep token list in sync with \`EVENT_CATEGORY_BADGE_TOKENS\` in \`packages/blocks/src/system/constants/events.ts\`. */
51142
51375
  :where(.theme-scope)
@@ -51216,7 +51449,8 @@ var init_containerResponsiveThemeCss = __esm({
51216
51449
  }
51217
51450
 
51218
51451
  @container rb-site (min-width: 768px) {
51219
- :where(.theme-scope) :where([data-block="event-registration"]) .er-payment-layout {
51452
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
51453
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-payment-layout {
51220
51454
  grid-template-columns: 1fr 260px;
51221
51455
  grid-template-areas:
51222
51456
  "main sidebar"
@@ -51231,6 +51465,7 @@ var init_containerResponsiveThemeCss = __esm({
51231
51465
  "footer";
51232
51466
  }
51233
51467
  }
51468
+ }
51234
51469
 
51235
51470
  :where(.theme-scope) :where([data-block="event-registration"]) .er-payment-layout-main {
51236
51471
  grid-area: main;
@@ -52510,7 +52745,8 @@ var init_containerResponsiveThemeCss = __esm({
52510
52745
  :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-time,
52511
52746
  :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-title,
52512
52747
  :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-teacher,
52513
- :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-meta {
52748
+ :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-meta,
52749
+ :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-capacity {
52514
52750
  display: block;
52515
52751
  min-width: 0;
52516
52752
  overflow: hidden;
@@ -52536,6 +52772,17 @@ var init_containerResponsiveThemeCss = __esm({
52536
52772
  opacity: 0.72;
52537
52773
  }
52538
52774
 
52775
+ :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-capacity {
52776
+ font-size: 0.6875rem;
52777
+ font-weight: 600;
52778
+ opacity: 0.85;
52779
+ }
52780
+
52781
+ :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-capacity--full {
52782
+ color: rgb(var(--tb-danger, 220 38 38));
52783
+ opacity: 1;
52784
+ }
52785
+
52539
52786
  :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-day-empty {
52540
52787
  margin: 0;
52541
52788
  padding: 1rem 0.5rem;
@@ -52552,7 +52799,8 @@ var init_containerResponsiveThemeCss = __esm({
52552
52799
  }
52553
52800
 
52554
52801
  @container rb-site (max-width: 767px) {
52555
- :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-day-selector {
52802
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
52803
+ :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-day-selector {
52556
52804
  display: flex;
52557
52805
  }
52558
52806
 
@@ -52582,6 +52830,7 @@ var init_containerResponsiveThemeCss = __esm({
52582
52830
  padding-inline: 0.75rem;
52583
52831
  }
52584
52832
  }
52833
+ }
52585
52834
 
52586
52835
  /* -----------------------------------------------------------------------------
52587
52836
  * Event Calendar Modals
@@ -52720,7 +52969,8 @@ var init_containerResponsiveThemeCss = __esm({
52720
52969
 
52721
52970
  /* Responsive adjustments */
52722
52971
  @container rb-site (max-width: 640px) {
52723
- :where(.theme-scope) :where([data-block="event-calendar"]) .event-calendar-container {
52972
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
52973
+ :where(.theme-scope) :where([data-block="event-calendar"]) .event-calendar-container {
52724
52974
  margin-left: -1.5rem;
52725
52975
  margin-right: -1.5rem;
52726
52976
  border-left: none;
@@ -52781,6 +53031,7 @@ var init_containerResponsiveThemeCss = __esm({
52781
53031
  margin: 0 0.5rem;
52782
53032
  }
52783
53033
  }
53034
+ }
52784
53035
 
52785
53036
  /*
52786
53037
  * Shared: Tab bar (underline style)
@@ -53143,10 +53394,12 @@ var init_containerResponsiveThemeCss = __esm({
53143
53394
  }
53144
53395
 
53145
53396
  @container rb-site (min-width: 768px) {
53146
- :where(.theme-scope) :where([data-block="form"]) .fb-row-2 {
53397
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
53398
+ :where(.theme-scope) :where([data-block="form"]) .fb-row-2 {
53147
53399
  grid-template-columns: 1fr 1fr;
53148
53400
  }
53149
53401
  }
53402
+ }
53150
53403
 
53151
53404
  /* Field wrapper */
53152
53405
  :where(.theme-scope) :where([data-block="form"]) .fb-field {
@@ -53227,10 +53480,12 @@ var init_containerResponsiveThemeCss = __esm({
53227
53480
  }
53228
53481
 
53229
53482
  @container rb-site (min-width: 640px) {
53230
- :where(.theme-scope) :where([data-block="hero"]) .hero-subheadline {
53483
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
53484
+ :where(.theme-scope) :where([data-block="hero"]) .hero-subheadline {
53231
53485
  font-size: 1.25rem;
53232
53486
  }
53233
53487
  }
53488
+ }
53234
53489
 
53235
53490
  /* =============================================================================
53236
53491
  * Shared: Heading Group (used by CTA, single-button, etc.)
@@ -53444,16 +53699,19 @@ var init_containerResponsiveThemeCss = __esm({
53444
53699
  }
53445
53700
 
53446
53701
  @container rb-site (min-width: 768px) {
53447
- :where(.theme-scope) .carousel-root {
53702
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
53703
+ :where(.theme-scope) .carousel-root {
53448
53704
  --rb-carousel-slides-to-show: var(
53449
53705
  --rb-carousel-slides-to-show-tablet,
53450
53706
  var(--rb-carousel-slides-to-show-mobile, 1)
53451
53707
  );
53452
53708
  }
53453
53709
  }
53710
+ }
53454
53711
 
53455
53712
  @container rb-site (min-width: 1024px) {
53456
- :where(.theme-scope) .carousel-root {
53713
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
53714
+ :where(.theme-scope) .carousel-root {
53457
53715
  --rb-carousel-slides-to-show: var(
53458
53716
  --rb-carousel-slides-to-show-desktop,
53459
53717
  var(
@@ -53463,6 +53721,7 @@ var init_containerResponsiveThemeCss = __esm({
53463
53721
  );
53464
53722
  }
53465
53723
  }
53724
+ }
53466
53725
 
53467
53726
  /* Slides take exact percentage width with internal padding for gaps.
53468
53727
  * Padding is more reliable than margin (no collapsing, consistent on all slides). */
@@ -53736,10 +53995,12 @@ var init_containerResponsiveThemeCss = __esm({
53736
53995
 
53737
53996
  /* Responsive grid */
53738
53997
  @container rb-site (max-width: 768px) {
53739
- :where(.theme-scope) .shop__products--grid {
53998
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
53999
+ :where(.theme-scope) .shop__products--grid {
53740
54000
  grid-template-columns: 1fr;
53741
54001
  }
53742
54002
  }
54003
+ }
53743
54004
 
53744
54005
  :where(.theme-scope) .shop__modal-product {
53745
54006
  font-size: 0.9375rem;
@@ -53841,11 +54102,13 @@ var init_containerResponsiveThemeCss = __esm({
53841
54102
 
53842
54103
  /* Mobile: full-width CTA buttons inside cards */
53843
54104
  @container rb-site (max-width: 640px) {
53844
- :where(.theme-scope) .shop__cta {
54105
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
54106
+ :where(.theme-scope) .shop__cta {
53845
54107
  align-self: stretch;
53846
54108
  width: 100%;
53847
54109
  }
53848
54110
  }
54111
+ }
53849
54112
 
53850
54113
  /* =============================================================================
53851
54114
  * Block: Customer Portal
@@ -54551,7 +54814,8 @@ var init_containerResponsiveThemeCss = __esm({
54551
54814
 
54552
54815
  /* Responsive: show everything without horizontal scrolling */
54553
54816
  @container rb-site (max-width: 640px) {
54554
- :where(.theme-scope) :where([data-block="customer-portal"]) .cp-only-mobile {
54817
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
54818
+ :where(.theme-scope) :where([data-block="customer-portal"]) .cp-only-mobile {
54555
54819
  display: flex;
54556
54820
  }
54557
54821
 
@@ -54591,6 +54855,7 @@ var init_containerResponsiveThemeCss = __esm({
54591
54855
  align-self: stretch;
54592
54856
  }
54593
54857
  }
54858
+ }
54594
54859
 
54595
54860
  /* Placeholder (SSR) */
54596
54861
  :where(.theme-scope) :where([data-block="customer-portal"]) .cp-placeholder {
@@ -54680,7 +54945,8 @@ var init_containerResponsiveThemeCss = __esm({
54680
54945
 
54681
54946
  /* Position arrows outside the carousel content area */
54682
54947
  @container rb-site (max-width: 639px) {
54683
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonials-carousel.carousel-root .carousel-nav-btn--prev {
54948
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
54949
+ :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonials-carousel.carousel-root .carousel-nav-btn--prev {
54684
54950
  /* Move arrows closer to viewport edge than container edge on mobile. */
54685
54951
  left: calc(0.5rem - 1.5rem);
54686
54952
  }
@@ -54690,10 +54956,12 @@ var init_containerResponsiveThemeCss = __esm({
54690
54956
  right: calc(0.5rem - 1.5rem);
54691
54957
  }
54692
54958
  }
54959
+ }
54693
54960
 
54694
54961
  /* Position arrows further out on larger breakpoints */
54695
54962
  @container rb-site (min-width: 640px) {
54696
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonials-carousel.carousel-root .carousel-nav-btn--prev {
54963
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
54964
+ :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonials-carousel.carousel-root .carousel-nav-btn--prev {
54697
54965
  left: calc(-1 * (var(--rb-testimonial-carousel-arrow-size) / 2 + var(--rb-testimonial-carousel-arrow-gap)));
54698
54966
  }
54699
54967
 
@@ -54701,6 +54969,7 @@ var init_containerResponsiveThemeCss = __esm({
54701
54969
  right: calc(-1 * (var(--rb-testimonial-carousel-arrow-size) / 2 + var(--rb-testimonial-carousel-arrow-gap)));
54702
54970
  }
54703
54971
  }
54972
+ }
54704
54973
 
54705
54974
  /*
54706
54975
  * Event Details (runtime node)
@@ -54752,10 +55021,12 @@ var init_containerResponsiveThemeCss = __esm({
54752
55021
  }
54753
55022
 
54754
55023
  @container rb-site (min-width: 768px) {
54755
- :where(.theme-scope) .rb-tiles-grid {
55024
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
55025
+ :where(.theme-scope) .rb-tiles-grid {
54756
55026
  grid-template-columns: repeat(var(--rb-tiles-grid-cols-md, var(--rb-tiles-grid-cols-sm, 2)), minmax(0, 1fr));
54757
55027
  }
54758
55028
  }
55029
+ }
54759
55030
 
54760
55031
  :where(.theme-scope) :where(.rb-tile--interactive, .er-event-card) {
54761
55032
  cursor: pointer;
@@ -54860,10 +55131,12 @@ var init_containerResponsiveThemeCss = __esm({
54860
55131
  }
54861
55132
 
54862
55133
  @container rb-site (min-width: 768px) {
54863
- :where(.theme-scope) :where([data-block="course-registration"]) .cr-layout--with-sidebar {
55134
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
55135
+ :where(.theme-scope) :where([data-block="course-registration"]) .cr-layout--with-sidebar {
54864
55136
  grid-template-columns: 1fr 280px;
54865
55137
  }
54866
55138
  }
55139
+ }
54867
55140
 
54868
55141
  :where(.theme-scope) :where([data-block="course-registration"]) .cr-layout__main {
54869
55142
  min-width: 0;
@@ -54874,10 +55147,12 @@ var init_containerResponsiveThemeCss = __esm({
54874
55147
  }
54875
55148
 
54876
55149
  @container rb-site (min-width: 768px) {
54877
- :where(.theme-scope) :where([data-block="course-registration"]) .cr-layout__sidebar {
55150
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
55151
+ :where(.theme-scope) :where([data-block="course-registration"]) .cr-layout__sidebar {
54878
55152
  display: block;
54879
55153
  }
54880
55154
  }
55155
+ }
54881
55156
 
54882
55157
  /* =============================================================================
54883
55158
  * Step Indicator
@@ -54928,10 +55203,12 @@ var init_containerResponsiveThemeCss = __esm({
54928
55203
  }
54929
55204
 
54930
55205
  @container rb-site (min-width: 640px) {
54931
- :where(.theme-scope) :where([data-block="course-registration"]) .cr-step-label {
55206
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
55207
+ :where(.theme-scope) :where([data-block="course-registration"]) .cr-step-label {
54932
55208
  display: block;
54933
55209
  }
54934
55210
  }
55211
+ }
54935
55212
 
54936
55213
  :where(.theme-scope) :where([data-block="course-registration"]) .cr-step-label--active {
54937
55214
  color: var(--cr-on-surface);
@@ -55814,7 +56091,8 @@ var init_containerResponsiveThemeCss = __esm({
55814
56091
 
55815
56092
  /* Mobile fallback for inline variant */
55816
56093
  @container rb-site (max-width: 640px) {
55817
- :where(.theme-scope) .newsletter-inline .newsletter-form-fields {
56094
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
56095
+ :where(.theme-scope) .newsletter-inline .newsletter-form-fields {
55818
56096
  flex-direction: column;
55819
56097
  }
55820
56098
 
@@ -55822,6 +56100,7 @@ var init_containerResponsiveThemeCss = __esm({
55822
56100
  min-width: 100%;
55823
56101
  }
55824
56102
  }
56103
+ }
55825
56104
 
55826
56105
  /* =============================================================================
55827
56106
  * Success State
@@ -55859,12 +56138,14 @@ var init_containerResponsiveThemeCss = __esm({
55859
56138
  }
55860
56139
 
55861
56140
  @container rb-site (min-width: 1024px) {
55862
- :where(.theme-scope) :where([data-block="team-members"]) :where(.rb-team-members[data-layout-width="lg-3-4-left"]) {
56141
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
56142
+ :where(.theme-scope) :where([data-block="team-members"]) :where(.rb-team-members[data-layout-width="lg-3-4-left"]) {
55863
56143
  width: 75%;
55864
56144
  margin-left: 0;
55865
56145
  margin-right: auto;
55866
56146
  }
55867
56147
  }
56148
+ }
55868
56149
 
55869
56150
  :where(.theme-scope) :where([data-block="team-members"]) .rb-team-member-photo {
55870
56151
  display: block;
@@ -55939,7 +56220,8 @@ var init_containerResponsiveThemeCss = __esm({
55939
56220
  }
55940
56221
 
55941
56222
  @container rb-site (min-width: 768px) {
55942
- /* Stack variant: enforce real column ratio at md+ (fixes transform/fallback pitfalls). */
56223
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
56224
+ /* Stack variant: enforce real column ratio at md+ (fixes transform/fallback pitfalls). */
55943
56225
  :where(.theme-scope) :where([data-block="team-members"][data-block-variant="stack"]) :where(.rb-team-member-photo-col) {
55944
56226
  flex: 0 0 var(--rb-team-image-basis);
55945
56227
  }
@@ -55963,6 +56245,7 @@ var init_containerResponsiveThemeCss = __esm({
55963
56245
  flex-direction: row-reverse;
55964
56246
  }
55965
56247
  }
56248
+ }
55966
56249
 
55967
56250
  /* Thumbnail padding (space around image inside the item) */
55968
56251
  :where(.theme-scope) :where([data-block="team-members"]) .rb-team-members[data-thumb-pad="sm"] .rb-team-member-photo-wrap {
@@ -56167,18 +56450,19 @@ function ThemeScopeCore({
56167
56450
  children,
56168
56451
  className
56169
56452
  }) {
56170
- const isContainerResponsive = responsiveMode === "container";
56453
+ const responsiveScope = getResponsiveScopeSpec(responsiveMode);
56454
+ const isContainerResponsive = responsiveScope.kind === "container";
56171
56455
  const wrapperStyle = isContainerResponsive ? {
56172
56456
  ...cssVars,
56173
56457
  containerType: "inline-size",
56174
- containerName: THEME_RESPONSIVE_CONTAINER_NAME
56458
+ containerName: responsiveScope.containerName
56175
56459
  } : cssVars;
56176
56460
  return /* @__PURE__ */ jsxs100(
56177
56461
  "div",
56178
56462
  {
56179
56463
  className: className ? `theme-scope ${className}` : "theme-scope",
56180
56464
  style: wrapperStyle,
56181
- "data-rb-responsive-mode": responsiveMode,
56465
+ "data-rb-responsive-mode": responsiveScope.kind,
56182
56466
  ...dataAttrs,
56183
56467
  suppressHydrationWarning,
56184
56468
  children: [
@@ -56186,25 +56470,131 @@ function ThemeScopeCore({
56186
56470
  "style",
56187
56471
  {
56188
56472
  "data-container-responsive-overrides": true,
56189
- dangerouslySetInnerHTML: { __html: escapeStyleContent(containerResponsiveThemeCss) }
56473
+ dangerouslySetInnerHTML: {
56474
+ __html: escapeStyleContent(containerResponsiveThemeCss)
56475
+ }
56476
+ }
56477
+ ),
56478
+ layoutCss && /* @__PURE__ */ jsx139(
56479
+ "style",
56480
+ {
56481
+ "data-layout-styles": true,
56482
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(layoutCss) }
56483
+ }
56484
+ ),
56485
+ buttonCss && /* @__PURE__ */ jsx139(
56486
+ "style",
56487
+ {
56488
+ "data-button-effects": true,
56489
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(buttonCss) }
56490
+ }
56491
+ ),
56492
+ headerCss && /* @__PURE__ */ jsx139(
56493
+ "style",
56494
+ {
56495
+ "data-header-styles": true,
56496
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(headerCss) }
56497
+ }
56498
+ ),
56499
+ footerCss && /* @__PURE__ */ jsx139(
56500
+ "style",
56501
+ {
56502
+ "data-footer-styles": true,
56503
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(footerCss) }
56504
+ }
56505
+ ),
56506
+ cardCss && /* @__PURE__ */ jsx139(
56507
+ "style",
56508
+ {
56509
+ "data-card-styles": true,
56510
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(cardCss) }
56511
+ }
56512
+ ),
56513
+ accordionCss && /* @__PURE__ */ jsx139(
56514
+ "style",
56515
+ {
56516
+ "data-accordion-styles": true,
56517
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(accordionCss) }
56518
+ }
56519
+ ),
56520
+ inputCss && /* @__PURE__ */ jsx139(
56521
+ "style",
56522
+ {
56523
+ "data-input-styles": true,
56524
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(inputCss) }
56525
+ }
56526
+ ),
56527
+ statusCss && /* @__PURE__ */ jsx139(
56528
+ "style",
56529
+ {
56530
+ "data-status-styles": true,
56531
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(statusCss) }
56532
+ }
56533
+ ),
56534
+ progressCss && /* @__PURE__ */ jsx139(
56535
+ "style",
56536
+ {
56537
+ "data-progress-styles": true,
56538
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(progressCss) }
56539
+ }
56540
+ ),
56541
+ typographyCss && /* @__PURE__ */ jsx139(
56542
+ "style",
56543
+ {
56544
+ "data-typography-styles": true,
56545
+ dangerouslySetInnerHTML: {
56546
+ __html: escapeStyleContent(typographyCss)
56547
+ }
56548
+ }
56549
+ ),
56550
+ eventCalendarCss && /* @__PURE__ */ jsx139(
56551
+ "style",
56552
+ {
56553
+ "data-event-calendar-styles": true,
56554
+ dangerouslySetInnerHTML: {
56555
+ __html: escapeStyleContent(eventCalendarCss)
56556
+ }
56557
+ }
56558
+ ),
56559
+ blockVarsCss && /* @__PURE__ */ jsx139(
56560
+ "style",
56561
+ {
56562
+ "data-block-vars-styles": true,
56563
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(blockVarsCss) }
56564
+ }
56565
+ ),
56566
+ blockCustomVarsCss && /* @__PURE__ */ jsx139(
56567
+ "style",
56568
+ {
56569
+ "data-block-custom-vars-styles": true,
56570
+ dangerouslySetInnerHTML: {
56571
+ __html: escapeStyleContent(blockCustomVarsCss)
56572
+ }
56573
+ }
56574
+ ),
56575
+ blockCustomCss && /* @__PURE__ */ jsx139(
56576
+ "style",
56577
+ {
56578
+ "data-block-custom-styles": true,
56579
+ dangerouslySetInnerHTML: {
56580
+ __html: escapeStyleContent(blockCustomCss)
56581
+ }
56582
+ }
56583
+ ),
56584
+ atRulesCss && /* @__PURE__ */ jsx139(
56585
+ "style",
56586
+ {
56587
+ "data-at-rules-styles": true,
56588
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(atRulesCss) }
56589
+ }
56590
+ ),
56591
+ customCss && /* @__PURE__ */ jsx139(
56592
+ "style",
56593
+ {
56594
+ "data-custom-theme-styles": true,
56595
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(customCss) }
56190
56596
  }
56191
56597
  ),
56192
- layoutCss && /* @__PURE__ */ jsx139("style", { "data-layout-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(layoutCss) } }),
56193
- buttonCss && /* @__PURE__ */ jsx139("style", { "data-button-effects": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(buttonCss) } }),
56194
- headerCss && /* @__PURE__ */ jsx139("style", { "data-header-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(headerCss) } }),
56195
- footerCss && /* @__PURE__ */ jsx139("style", { "data-footer-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(footerCss) } }),
56196
- cardCss && /* @__PURE__ */ jsx139("style", { "data-card-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(cardCss) } }),
56197
- accordionCss && /* @__PURE__ */ jsx139("style", { "data-accordion-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(accordionCss) } }),
56198
- inputCss && /* @__PURE__ */ jsx139("style", { "data-input-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(inputCss) } }),
56199
- statusCss && /* @__PURE__ */ jsx139("style", { "data-status-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(statusCss) } }),
56200
- progressCss && /* @__PURE__ */ jsx139("style", { "data-progress-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(progressCss) } }),
56201
- typographyCss && /* @__PURE__ */ jsx139("style", { "data-typography-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(typographyCss) } }),
56202
- eventCalendarCss && /* @__PURE__ */ jsx139("style", { "data-event-calendar-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(eventCalendarCss) } }),
56203
- blockVarsCss && /* @__PURE__ */ jsx139("style", { "data-block-vars-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(blockVarsCss) } }),
56204
- blockCustomVarsCss && /* @__PURE__ */ jsx139("style", { "data-block-custom-vars-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(blockCustomVarsCss) } }),
56205
- blockCustomCss && /* @__PURE__ */ jsx139("style", { "data-block-custom-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(blockCustomCss) } }),
56206
- atRulesCss && /* @__PURE__ */ jsx139("style", { "data-at-rules-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(atRulesCss) } }),
56207
- customCss && /* @__PURE__ */ jsx139("style", { "data-custom-theme-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(customCss) } }),
56208
56598
  children
56209
56599
  ]
56210
56600
  }
@@ -61633,6 +62023,7 @@ function bindProp(from, opts) {
61633
62023
 
61634
62024
  // ../blocks/src/system/blocks/site-header.ts
61635
62025
  init_defineBlock();
62026
+ init_shared();
61636
62027
  init_colorStyles();
61637
62028
  var logoRow = link(
61638
62029
  {
@@ -61713,7 +62104,7 @@ var headerCta = ctaButton({
61713
62104
  whenPath: "menu.ctaItem.label",
61714
62105
  variantPath: "menu.ctaItem.variant",
61715
62106
  linkPath: "menu.ctaItem.link",
61716
- className: "header-cta btn-sm rb-hidden rb-lg-inline-flex rb-ml-6"
62107
+ className: `header-cta btn-sm ${desktopOnlyDisplay("inline-flex")} rb-ml-6`
61717
62108
  });
61718
62109
  var mobileCta = ctaButton({
61719
62110
  basePath: "menu.ctaItem",
@@ -61741,7 +62132,7 @@ var mobileToggleButton = {
61741
62132
  props: {
61742
62133
  type: "button",
61743
62134
  variantId: "",
61744
- className: "nav-mobile-toggle rb-inline-flex rb-h-10 rb-w-10 rb-items-center rb-justify-center rb-rounded-md transition-theme-standard rb-lg-hidden",
62135
+ className: `nav-mobile-toggle ${mobileOnlyDisplay("inline-flex")} rb-h-10 rb-w-10 rb-items-center rb-justify-center rb-rounded-md transition-theme-standard`,
61745
62136
  "aria-label": "Open menu",
61746
62137
  "aria-expanded": "false",
61747
62138
  "aria-controls": "nav-mobile-overlay",
@@ -61796,7 +62187,7 @@ var mobileOverlay = {
61796
62187
  type: "div",
61797
62188
  props: {
61798
62189
  id: "nav-mobile-overlay",
61799
- className: "nav-mobile-overlay rb-fixed rb-inset-0 rb-z-50 rb-lg-hidden",
62190
+ className: `nav-mobile-overlay ${mobileOnlyDisplay("block")} rb-fixed rb-inset-0 rb-z-50`,
61800
62191
  role: "dialog",
61801
62192
  "aria-modal": "true",
61802
62193
  "aria-label": "Main menu",
@@ -61825,10 +62216,10 @@ var mobileHeaderBar = inline(
61825
62216
  className: bindProp("$root.theme.header.maxWidth", {
61826
62217
  transforms: pipe(
61827
62218
  tx("layout.maxWidthClass", {
61828
- base: "rb-header-layout rb-flex rb-w-full rb-items-center rb-justify-between rb-lg-hidden"
62219
+ base: `rb-header-layout ${mobileOnlyDisplay("flex")} rb-w-full rb-items-center rb-justify-between`
61829
62220
  })
61830
62221
  ),
61831
- fallback: "rb-container rb-header-layout rb-flex rb-w-full rb-items-center rb-justify-between rb-lg-hidden"
62222
+ fallback: `rb-container rb-header-layout ${mobileOnlyDisplay("flex")} rb-w-full rb-items-center rb-justify-between`
61832
62223
  }),
61833
62224
  align: "center",
61834
62225
  justify: "between"
@@ -61840,16 +62231,16 @@ var classicLayout2 = inline(
61840
62231
  className: bindProp("$root.theme.header.maxWidth", {
61841
62232
  transforms: pipe(
61842
62233
  tx("layout.maxWidthClass", {
61843
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
62234
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
61844
62235
  })
61845
62236
  ),
61846
- fallback: "rb-container rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
62237
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
61847
62238
  }),
61848
62239
  align: "center"
61849
62240
  },
61850
62241
  [
61851
62242
  logoRow,
61852
- createNavRow("rb-ml-auto rb-hidden rb-lg-flex rb-gap-6"),
62243
+ createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
61853
62244
  headerCta
61854
62245
  ],
61855
62246
  when("$root.theme.header.variant", { equals: "classic" })
@@ -61861,16 +62252,16 @@ var centeredLayout = stack(
61861
62252
  className: bindProp("$root.theme.header.maxWidth", {
61862
62253
  transforms: pipe(
61863
62254
  tx("layout.maxWidthClass", {
61864
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center"
62255
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center`
61865
62256
  })
61866
62257
  ),
61867
- fallback: "rb-container rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center"
62258
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center`
61868
62259
  })
61869
62260
  },
61870
62261
  [
61871
62262
  centeredLogoRow,
61872
62263
  createNavRow(
61873
- "rb-hidden rb-lg-flex rb-flex-wrap rb-justify-center rb-gap-x-6 rb-gap-y-3",
62264
+ `${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-6 rb-gap-y-3`,
61874
62265
  "center"
61875
62266
  )
61876
62267
  ],
@@ -61881,16 +62272,16 @@ var transparentLayout = inline(
61881
62272
  className: bindProp("$root.theme.header.maxWidth", {
61882
62273
  transforms: pipe(
61883
62274
  tx("layout.maxWidthClass", {
61884
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
62275
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
61885
62276
  })
61886
62277
  ),
61887
- fallback: "rb-container rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
62278
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
61888
62279
  }),
61889
62280
  align: "center"
61890
62281
  },
61891
62282
  [
61892
62283
  logoRow,
61893
- createNavRow("rb-ml-auto rb-hidden rb-lg-flex rb-gap-6"),
62284
+ createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
61894
62285
  headerCta
61895
62286
  ],
61896
62287
  when("$root.theme.header.variant", { equals: "transparent" })
@@ -61900,18 +62291,18 @@ var floatingLayout = inline(
61900
62291
  className: bindProp("$root.theme.header.maxWidth", {
61901
62292
  transforms: pipe(
61902
62293
  tx("layout.maxWidthClass", {
61903
- base: "rb-header-layout header-floating-container rb-absolute rb-left-1/2 rb-top-4 rb-hidden rb-w-calc-100-minus-2rem rb-max-w-7xl rb-translate-x-neg-1/2 rb-items-center rb-gap-6 rb-px-6 rb-lg-flex",
62294
+ base: `rb-header-layout header-floating-container rb-absolute rb-left-1/2 rb-top-4 ${desktopOnlyDisplay("flex")} rb-w-calc-100-minus-2rem rb-max-w-7xl rb-translate-x-neg-1/2 rb-items-center rb-gap-6 rb-px-6`,
61904
62295
  container: "",
61905
62296
  full: ""
61906
62297
  })
61907
62298
  ),
61908
- fallback: "rb-header-layout header-floating-container rb-absolute rb-left-1/2 rb-top-4 rb-hidden rb-w-calc-100-minus-2rem rb-max-w-7xl rb-translate-x-neg-1/2 rb-items-center rb-gap-6 rb-px-6 rb-lg-flex"
62299
+ fallback: `rb-header-layout header-floating-container rb-absolute rb-left-1/2 rb-top-4 ${desktopOnlyDisplay("flex")} rb-w-calc-100-minus-2rem rb-max-w-7xl rb-translate-x-neg-1/2 rb-items-center rb-gap-6 rb-px-6`
61909
62300
  }),
61910
62301
  align: "center"
61911
62302
  },
61912
62303
  [
61913
62304
  logoRow,
61914
- createNavRow("rb-ml-auto rb-hidden rb-lg-flex rb-gap-6"),
62305
+ createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
61915
62306
  headerCta
61916
62307
  ],
61917
62308
  when("$root.theme.header.variant", { equals: "floating" })
@@ -61923,16 +62314,16 @@ var editorialLayout = stack(
61923
62314
  className: bindProp("$root.theme.header.maxWidth", {
61924
62315
  transforms: pipe(
61925
62316
  tx("layout.maxWidthClass", {
61926
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center"
62317
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
61927
62318
  })
61928
62319
  ),
61929
- fallback: "rb-container rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center"
62320
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
61930
62321
  })
61931
62322
  },
61932
62323
  [
61933
62324
  centeredLogoRow,
61934
62325
  createNavRow(
61935
- "rb-hidden rb-lg-flex rb-flex-wrap rb-justify-center rb-gap-x-8 rb-gap-y-3",
62326
+ `${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-8 rb-gap-y-3`,
61936
62327
  "center"
61937
62328
  )
61938
62329
  ],
@@ -69812,6 +70203,7 @@ init_schema2();
69812
70203
 
69813
70204
  // ../theme-core/src/index.ts
69814
70205
  init_responsiveMode();
70206
+ init_responsiveDisplay();
69815
70207
  init_breakpoints();
69816
70208
  init_ThemeScopeCore();
69817
70209
  init_buildThemeRuntime();
@@ -71604,7 +71996,7 @@ var ENDPOINT_DEFINITIONS = {
71604
71996
  responseKind: "void"
71605
71997
  },
71606
71998
  googleCalendarCallback: {
71607
- path: "/sites/{siteId}/bookings/calendar/google/callback",
71999
+ path: "/bookings/calendar/google/callback",
71608
72000
  method: "GET",
71609
72001
  auth: "user",
71610
72002
  responseKind: "void"
@@ -77280,83 +77672,164 @@ async function prefetchBlockData2(page, context, client, options) {
77280
77672
  });
77281
77673
  }
77282
77674
 
77283
- // src/rendering/components/Block.tsx
77675
+ // src/rendering/components/Block.shared.tsx
77284
77676
  import { jsx as jsx161, jsxs as jsxs106 } from "react/jsx-runtime";
77285
- async function Block({
77677
+ function toBlockHydrationBootstrapConfig(props2) {
77678
+ return {
77679
+ siteId: props2.siteId,
77680
+ supabaseUrl: props2.supabaseUrl,
77681
+ mediaAssets: props2.mediaAssets
77682
+ };
77683
+ }
77684
+ function renderUnknownBlock(blockKind) {
77685
+ return /* @__PURE__ */ jsx161("div", { className: "p-4 border border-red-300 bg-red-50 rounded", children: /* @__PURE__ */ jsxs106("p", { className: "text-red-800 font-semibold", children: [
77686
+ "Unknown block type: ",
77687
+ blockKind
77688
+ ] }) });
77689
+ }
77690
+ function buildBlockContentRuntime({
77691
+ theme,
77692
+ siteId,
77693
+ supabaseUrl,
77694
+ mediaAssets
77695
+ }) {
77696
+ const themeRuntime = buildThemeRuntime2(theme);
77697
+ const blocksTheme = parseBlocksTheme(theme);
77698
+ const imageResolveContext = siteId || supabaseUrl || mediaAssets?.length ? { siteId, supabaseUrl, mediaAssets } : void 0;
77699
+ if (imageResolveContext) {
77700
+ setContextResolveImageUrlContext(buildResolveImageUrlContext(imageResolveContext));
77701
+ }
77702
+ return { themeRuntime, blocksTheme, imageResolveContext };
77703
+ }
77704
+ function buildSingleBlockPageOutline({
77705
+ blockId,
77706
+ blockKind
77707
+ }) {
77708
+ return {
77709
+ name: "Single Block",
77710
+ path: "/block",
77711
+ purpose: "Block preview",
77712
+ blocks: [{
77713
+ id: blockId,
77714
+ kind: blockKind,
77715
+ purpose: "preview"
77716
+ }]
77717
+ };
77718
+ }
77719
+ async function loadStandaloneBlockData({
77286
77720
  blockKind,
77287
77721
  blockId,
77288
- content,
77289
- theme,
77290
77722
  siteId,
77291
77723
  pageId,
77292
77724
  previewStage,
77293
77725
  client,
77294
- usePlaceholders: _usePlaceholders = false,
77295
- override: OverrideComponent
77726
+ hasDefinition
77727
+ }) {
77728
+ if (!client || !blockId || !siteId || !hasDefinition) return void 0;
77729
+ const allResolvedData = await prefetchBlockData2(
77730
+ buildSingleBlockPageOutline({ blockId, blockKind }),
77731
+ { siteId, pageId, previewStage },
77732
+ client
77733
+ );
77734
+ return allResolvedData[blockId];
77735
+ }
77736
+ function buildStandaloneBlockViewModel({
77737
+ siteId,
77738
+ pageId,
77739
+ previewStage,
77740
+ apiBaseUrl,
77741
+ portalToken,
77742
+ routeMap,
77743
+ pagesByIdentifier,
77744
+ entriesByIdentifier
77745
+ }) {
77746
+ return {
77747
+ $root: {
77748
+ siteId: siteId ?? null,
77749
+ pageId: pageId ?? null,
77750
+ previewStage: previewStage ?? "published",
77751
+ apiBaseUrl: apiBaseUrl ?? null,
77752
+ portalToken: portalToken ?? null,
77753
+ ...routeMap ? { routes: routeMap } : {},
77754
+ ...pagesByIdentifier ? { pagesByIdentifier } : {},
77755
+ ...entriesByIdentifier ? { entriesByIdentifier } : {}
77756
+ }
77757
+ };
77758
+ }
77759
+ function renderBlockOverride({
77760
+ OverrideComponent,
77761
+ props: props2,
77762
+ runtime,
77763
+ resolvedData
77764
+ }) {
77765
+ return /* @__PURE__ */ jsx161(
77766
+ OverrideComponent,
77767
+ {
77768
+ content: props2.content,
77769
+ theme: runtime.themeRuntime.tokens,
77770
+ themeConfig: props2.theme,
77771
+ data: resolvedData,
77772
+ siteId: props2.siteId,
77773
+ supabaseUrl: props2.supabaseUrl,
77774
+ imageResolveContext: runtime.imageResolveContext,
77775
+ blockId: props2.blockId ?? null,
77776
+ blockKind: props2.blockKind
77777
+ }
77778
+ );
77779
+ }
77780
+ function renderManifestBlock({
77781
+ definition,
77782
+ props: props2,
77783
+ runtime,
77784
+ resolvedData
77296
77785
  }) {
77297
- const definition = getBlockDefinition(blockKind);
77298
- if (!definition && !OverrideComponent) {
77299
- return /* @__PURE__ */ jsx161("div", { className: "p-4 border border-red-300 bg-red-50 rounded", children: /* @__PURE__ */ jsxs106("p", { className: "text-red-800 font-semibold", children: [
77300
- "Unknown block type: ",
77301
- blockKind
77302
- ] }) });
77303
- }
77304
- const themeRuntime = buildThemeRuntime2(theme);
77305
- const blocksTheme = parseBlocksTheme(theme);
77306
- let resolvedData;
77307
- if (client && blockId && definition) {
77308
- const pageOutline = {
77309
- name: "Single Block",
77310
- path: "/block",
77311
- purpose: "Block preview",
77312
- blocks: [{
77313
- id: blockId,
77314
- kind: blockKind,
77315
- purpose: "preview"
77316
- }]
77317
- };
77318
- const allResolvedData = await prefetchBlockData2(
77319
- pageOutline,
77320
- { siteId, pageId, previewStage },
77321
- client
77322
- );
77323
- resolvedData = allResolvedData[blockId];
77324
- }
77325
- if (OverrideComponent) {
77326
- return /* @__PURE__ */ jsx161(
77327
- OverrideComponent,
77328
- {
77329
- content,
77330
- theme: themeRuntime.tokens,
77331
- themeConfig: theme,
77332
- data: resolvedData,
77333
- blockId: blockId ?? null,
77334
- blockKind
77335
- }
77336
- );
77337
- }
77338
- if (!definition) {
77339
- return /* @__PURE__ */ jsx161("div", { className: "p-4 border border-red-300 bg-red-50 rounded", children: /* @__PURE__ */ jsxs106("p", { className: "text-red-800 font-semibold", children: [
77340
- "Unknown block type: ",
77341
- blockKind
77342
- ] }) });
77343
- }
77344
77786
  const BlockComponent = makeDefaultBlockComponent({ manifest: definition.manifest });
77345
77787
  const registry = getDefaultComponentRegistry();
77346
- const blocksThemeConfig = blocksTheme;
77788
+ const blocksThemeConfig = runtime.blocksTheme;
77347
77789
  return /* @__PURE__ */ jsx161(
77348
77790
  BlockComponent,
77349
77791
  {
77350
- blockId: blockId ?? void 0,
77351
- blockKind,
77352
- theme: themeRuntime.tokens,
77792
+ blockId: props2.blockId ?? void 0,
77793
+ blockKind: props2.blockKind,
77794
+ theme: runtime.themeRuntime.tokens,
77353
77795
  themeConfig: blocksThemeConfig,
77354
- content,
77796
+ content: props2.content,
77355
77797
  data: resolvedData,
77356
- registry
77798
+ registry,
77799
+ viewModelOverrides: buildStandaloneBlockViewModel(props2)
77357
77800
  }
77358
77801
  );
77359
77802
  }
77803
+ async function BlockContent(props2) {
77804
+ const definition = getBlockDefinition(props2.blockKind);
77805
+ const OverrideComponent = props2.override;
77806
+ if (!definition && !OverrideComponent) {
77807
+ return renderUnknownBlock(props2.blockKind);
77808
+ }
77809
+ const runtime = buildBlockContentRuntime(props2);
77810
+ const resolvedData = await loadStandaloneBlockData({
77811
+ ...props2,
77812
+ hasDefinition: Boolean(definition)
77813
+ });
77814
+ if (OverrideComponent) {
77815
+ return renderBlockOverride({ OverrideComponent, props: props2, runtime, resolvedData });
77816
+ }
77817
+ return renderManifestBlock({
77818
+ definition,
77819
+ props: props2,
77820
+ runtime,
77821
+ resolvedData
77822
+ });
77823
+ }
77824
+
77825
+ // src/rendering/components/Block.tsx
77826
+ import { Fragment as Fragment27, jsx as jsx162, jsxs as jsxs107 } from "react/jsx-runtime";
77827
+ function Block(props2) {
77828
+ return /* @__PURE__ */ jsxs107(Fragment27, { children: [
77829
+ /* @__PURE__ */ jsx162(BlocksIslandsHydrator, { ...toBlockHydrationBootstrapConfig(props2) }),
77830
+ /* @__PURE__ */ jsx162(BlockContent, { ...props2 })
77831
+ ] });
77832
+ }
77360
77833
 
77361
77834
  // src/data/executeCodeLoaders.ts
77362
77835
  async function executeCodeLoaders(page, context, overrides) {
@@ -77955,9 +78428,9 @@ var ImagePresets2 = {
77955
78428
  };
77956
78429
 
77957
78430
  // src/rendering/primitives/RichText.tsx
77958
- import { jsx as jsx162 } from "react/jsx-runtime";
78431
+ import { jsx as jsx163 } from "react/jsx-runtime";
77959
78432
  function RichText3(props2) {
77960
- return /* @__PURE__ */ jsx162(RichText2, { ...props2 });
78433
+ return /* @__PURE__ */ jsx163(RichText2, { ...props2 });
77961
78434
  }
77962
78435
 
77963
78436
  // src/rendering/image.ts