@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
@@ -1063,7 +1063,7 @@ var ENDPOINT_DEFINITIONS = {
1063
1063
  responseKind: "void"
1064
1064
  },
1065
1065
  googleCalendarCallback: {
1066
- path: "/sites/{siteId}/bookings/calendar/google/callback",
1066
+ path: "/bookings/calendar/google/callback",
1067
1067
  method: "GET",
1068
1068
  auth: "user",
1069
1069
  responseKind: "void"
@@ -20123,6 +20123,59 @@ function bindProp(from, opts) {
20123
20123
  };
20124
20124
  }
20125
20125
 
20126
+ // ../theme-core/src/responsiveDisplay.ts
20127
+ var BASE_DISPLAY_CLASSES = {
20128
+ block: "rb-block",
20129
+ flex: "rb-flex",
20130
+ "inline-block": "rb-inline-block",
20131
+ "inline-flex": "rb-inline-flex",
20132
+ grid: "rb-grid"
20133
+ };
20134
+ var LARGE_DISPLAY_CLASSES = {
20135
+ block: "rb-lg-block",
20136
+ flex: "rb-lg-flex",
20137
+ "inline-block": "rb-lg-inline-block",
20138
+ "inline-flex": "rb-lg-inline-flex",
20139
+ grid: "rb-lg-grid"
20140
+ };
20141
+ function mobileOnlyDisplay(display) {
20142
+ return `${BASE_DISPLAY_CLASSES[display]} rb-lg-hidden`;
20143
+ }
20144
+ function desktopOnlyDisplay(display) {
20145
+ return `rb-hidden ${LARGE_DISPLAY_CLASSES[display]}`;
20146
+ }
20147
+
20148
+ // ../blocks/src/system/runtime/header/shared.ts
20149
+ var POSITIONING_CLASSES = [
20150
+ "rb-sticky",
20151
+ "rb-fixed",
20152
+ "rb-absolute",
20153
+ "rb-relative",
20154
+ "rb-top-0",
20155
+ "rb-left-0",
20156
+ "rb-right-0",
20157
+ "rb-bottom-0",
20158
+ "rb-z-40",
20159
+ "rb-z-50"
20160
+ ];
20161
+ function splitPositioningClasses(className) {
20162
+ if (!className) return { wrapperClasses: "", sectionClasses: "" };
20163
+ const classes = className.split(/\s+/).filter(Boolean);
20164
+ const wrapperParts = [];
20165
+ const sectionParts = [];
20166
+ for (const cls of classes) {
20167
+ if (POSITIONING_CLASSES.includes(cls)) {
20168
+ wrapperParts.push(cls);
20169
+ } else {
20170
+ sectionParts.push(cls);
20171
+ }
20172
+ }
20173
+ return {
20174
+ wrapperClasses: wrapperParts.join(" "),
20175
+ sectionClasses: sectionParts.join(" ")
20176
+ };
20177
+ }
20178
+
20126
20179
  // ../blocks/src/system/blocks/site-header.ts
20127
20180
  var logoRow = link(
20128
20181
  {
@@ -20203,7 +20256,7 @@ var headerCta = ctaButton({
20203
20256
  whenPath: "menu.ctaItem.label",
20204
20257
  variantPath: "menu.ctaItem.variant",
20205
20258
  linkPath: "menu.ctaItem.link",
20206
- className: "header-cta btn-sm rb-hidden rb-lg-inline-flex rb-ml-6"
20259
+ className: `header-cta btn-sm ${desktopOnlyDisplay("inline-flex")} rb-ml-6`
20207
20260
  });
20208
20261
  var mobileCta = ctaButton({
20209
20262
  basePath: "menu.ctaItem",
@@ -20231,7 +20284,7 @@ var mobileToggleButton = {
20231
20284
  props: {
20232
20285
  type: "button",
20233
20286
  variantId: "",
20234
- 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",
20287
+ 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`,
20235
20288
  "aria-label": "Open menu",
20236
20289
  "aria-expanded": "false",
20237
20290
  "aria-controls": "nav-mobile-overlay",
@@ -20286,7 +20339,7 @@ var mobileOverlay = {
20286
20339
  type: "div",
20287
20340
  props: {
20288
20341
  id: "nav-mobile-overlay",
20289
- className: "nav-mobile-overlay rb-fixed rb-inset-0 rb-z-50 rb-lg-hidden",
20342
+ className: `nav-mobile-overlay ${mobileOnlyDisplay("block")} rb-fixed rb-inset-0 rb-z-50`,
20290
20343
  role: "dialog",
20291
20344
  "aria-modal": "true",
20292
20345
  "aria-label": "Main menu",
@@ -20315,10 +20368,10 @@ var mobileHeaderBar = inline(
20315
20368
  className: bindProp("$root.theme.header.maxWidth", {
20316
20369
  transforms: pipe(
20317
20370
  tx("layout.maxWidthClass", {
20318
- base: "rb-header-layout rb-flex rb-w-full rb-items-center rb-justify-between rb-lg-hidden"
20371
+ base: `rb-header-layout ${mobileOnlyDisplay("flex")} rb-w-full rb-items-center rb-justify-between`
20319
20372
  })
20320
20373
  ),
20321
- fallback: "rb-container rb-header-layout rb-flex rb-w-full rb-items-center rb-justify-between rb-lg-hidden"
20374
+ fallback: `rb-container rb-header-layout ${mobileOnlyDisplay("flex")} rb-w-full rb-items-center rb-justify-between`
20322
20375
  }),
20323
20376
  align: "center",
20324
20377
  justify: "between"
@@ -20330,16 +20383,16 @@ var classicLayout2 = inline(
20330
20383
  className: bindProp("$root.theme.header.maxWidth", {
20331
20384
  transforms: pipe(
20332
20385
  tx("layout.maxWidthClass", {
20333
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
20386
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
20334
20387
  })
20335
20388
  ),
20336
- fallback: "rb-container rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
20389
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
20337
20390
  }),
20338
20391
  align: "center"
20339
20392
  },
20340
20393
  [
20341
20394
  logoRow,
20342
- createNavRow("rb-ml-auto rb-hidden rb-lg-flex rb-gap-6"),
20395
+ createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
20343
20396
  headerCta
20344
20397
  ],
20345
20398
  when("$root.theme.header.variant", { equals: "classic" })
@@ -20351,16 +20404,16 @@ var centeredLayout = stack(
20351
20404
  className: bindProp("$root.theme.header.maxWidth", {
20352
20405
  transforms: pipe(
20353
20406
  tx("layout.maxWidthClass", {
20354
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center"
20407
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center`
20355
20408
  })
20356
20409
  ),
20357
- 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"
20410
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center`
20358
20411
  })
20359
20412
  },
20360
20413
  [
20361
20414
  centeredLogoRow,
20362
20415
  createNavRow(
20363
- "rb-hidden rb-lg-flex rb-flex-wrap rb-justify-center rb-gap-x-6 rb-gap-y-3",
20416
+ `${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-6 rb-gap-y-3`,
20364
20417
  "center"
20365
20418
  )
20366
20419
  ],
@@ -20371,16 +20424,16 @@ var transparentLayout = inline(
20371
20424
  className: bindProp("$root.theme.header.maxWidth", {
20372
20425
  transforms: pipe(
20373
20426
  tx("layout.maxWidthClass", {
20374
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
20427
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
20375
20428
  })
20376
20429
  ),
20377
- fallback: "rb-container rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
20430
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
20378
20431
  }),
20379
20432
  align: "center"
20380
20433
  },
20381
20434
  [
20382
20435
  logoRow,
20383
- createNavRow("rb-ml-auto rb-hidden rb-lg-flex rb-gap-6"),
20436
+ createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
20384
20437
  headerCta
20385
20438
  ],
20386
20439
  when("$root.theme.header.variant", { equals: "transparent" })
@@ -20390,18 +20443,18 @@ var floatingLayout = inline(
20390
20443
  className: bindProp("$root.theme.header.maxWidth", {
20391
20444
  transforms: pipe(
20392
20445
  tx("layout.maxWidthClass", {
20393
- 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",
20446
+ 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`,
20394
20447
  container: "",
20395
20448
  full: ""
20396
20449
  })
20397
20450
  ),
20398
- 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"
20451
+ 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`
20399
20452
  }),
20400
20453
  align: "center"
20401
20454
  },
20402
20455
  [
20403
20456
  logoRow,
20404
- createNavRow("rb-ml-auto rb-hidden rb-lg-flex rb-gap-6"),
20457
+ createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
20405
20458
  headerCta
20406
20459
  ],
20407
20460
  when("$root.theme.header.variant", { equals: "floating" })
@@ -20413,16 +20466,16 @@ var editorialLayout = stack(
20413
20466
  className: bindProp("$root.theme.header.maxWidth", {
20414
20467
  transforms: pipe(
20415
20468
  tx("layout.maxWidthClass", {
20416
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center"
20469
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
20417
20470
  })
20418
20471
  ),
20419
- 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"
20472
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
20420
20473
  })
20421
20474
  },
20422
20475
  [
20423
20476
  centeredLogoRow,
20424
20477
  createNavRow(
20425
- "rb-hidden rb-lg-flex rb-flex-wrap rb-justify-center rb-gap-x-8 rb-gap-y-3",
20478
+ `${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-8 rb-gap-y-3`,
20426
20479
  "center"
20427
20480
  )
20428
20481
  ],
@@ -23693,6 +23746,18 @@ var eventSpotlightBlockDefinition = {
23693
23746
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
23694
23747
  import { z as z50 } from "zod";
23695
23748
 
23749
+ // ../blocks/src/system/runtime/nodes/events/shared/eventCapacity.ts
23750
+ function getEventAvailability(event) {
23751
+ if (event.capacity == null) {
23752
+ return { available: null, isFull: false };
23753
+ }
23754
+ const available = event.availableSpots ?? event.capacity - event.registeredCount;
23755
+ if (available <= 0) {
23756
+ return { available: 0, isFull: true };
23757
+ }
23758
+ return { available, isFull: false };
23759
+ }
23760
+
23696
23761
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
23697
23762
  var COLUMN_CLASSES = {
23698
23763
  "2": "rb-sm-grid-cols-2",
@@ -23915,7 +23980,7 @@ function formatEventPrice(event) {
23915
23980
  }
23916
23981
  }
23917
23982
  function resolveEventCta(event, buttonText) {
23918
- const isSoldOut = event.capacity !== null && event.availableSpots === 0;
23983
+ const { isFull: isSoldOut } = getEventAvailability(event);
23919
23984
  const defaultButtonText = event.kind === "course_session" ? "View course" : "View event";
23920
23985
  const effectiveButtonText = buttonText ?? defaultButtonText;
23921
23986
  if (isSoldOut) {
@@ -25297,7 +25362,7 @@ var EventCard = ({
25297
25362
  )}`;
25298
25363
  const cta = resolveEventCta(event, buttonText);
25299
25364
  const isSoldOut = cta.hidden;
25300
- const spotsLeft = event.availableSpots;
25365
+ const { available: spotsLeft } = getEventAvailability(event);
25301
25366
  const cardClass = `card-${cardVariant}`;
25302
25367
  const buttonClass = `${buttonVariant} button-${buttonVariant}`;
25303
25368
  const title = event.title;
@@ -26322,6 +26387,21 @@ var eventCalendarManifest = createBlockManifest({
26322
26387
  visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
26323
26388
  }
26324
26389
  },
26390
+ {
26391
+ id: "showCapacity",
26392
+ type: "boolean",
26393
+ label: "Show available spots",
26394
+ description: "Display remaining capacity on event cards and timetable cells",
26395
+ required: false,
26396
+ defaultValue: true,
26397
+ ui: {
26398
+ intent: "display",
26399
+ visibleWhen: {
26400
+ field: "displayMode",
26401
+ oneOf: ["combined", "list", "week", "timetable"]
26402
+ }
26403
+ }
26404
+ },
26325
26405
  // Block-level pre-filtering
26326
26406
  {
26327
26407
  id: "eventSurface",
@@ -26513,6 +26593,9 @@ var eventCalendarManifest = createBlockManifest({
26513
26593
  showStaffFilter: {
26514
26594
  $bind: { from: "content.showStaffFilter", fallback: true }
26515
26595
  },
26596
+ showCapacity: {
26597
+ $bind: { from: "content.showCapacity", fallback: true }
26598
+ },
26516
26599
  kind: { $bind: { from: "content.kind", fallback: "all" } },
26517
26600
  eventSurface: {
26518
26601
  $bind: { from: "content.eventSurface", fallback: "all" }
@@ -34022,37 +34105,6 @@ function resolveNode(value) {
34022
34105
  return value;
34023
34106
  }
34024
34107
 
34025
- // ../blocks/src/system/runtime/header/shared.ts
34026
- var POSITIONING_CLASSES = [
34027
- "rb-sticky",
34028
- "rb-fixed",
34029
- "rb-absolute",
34030
- "rb-relative",
34031
- "rb-top-0",
34032
- "rb-left-0",
34033
- "rb-right-0",
34034
- "rb-bottom-0",
34035
- "rb-z-40",
34036
- "rb-z-50"
34037
- ];
34038
- function splitPositioningClasses(className) {
34039
- if (!className) return { wrapperClasses: "", sectionClasses: "" };
34040
- const classes = className.split(/\s+/).filter(Boolean);
34041
- const wrapperParts = [];
34042
- const sectionParts = [];
34043
- for (const cls of classes) {
34044
- if (POSITIONING_CLASSES.includes(cls)) {
34045
- wrapperParts.push(cls);
34046
- } else {
34047
- sectionParts.push(cls);
34048
- }
34049
- }
34050
- return {
34051
- wrapperClasses: wrapperParts.join(" "),
34052
- sectionClasses: sectionParts.join(" ")
34053
- };
34054
- }
34055
-
34056
34108
  // ../blocks/src/system/runtime/nodes/header-section.server.tsx
34057
34109
  import { jsx as jsx22, jsxs as jsxs9 } from "react/jsx-runtime";
34058
34110
  function hasShrinkClasses(className) {
@@ -36027,21 +36079,26 @@ function buildTimetableModel(input) {
36027
36079
  for (const [dateKey, dayDrafts] of groupDraftsByDate(drafts)) {
36028
36080
  cellsByDate.set(
36029
36081
  dateKey,
36030
- assignTimetableLanes(dayDrafts).map((draft) => ({
36031
- event: draft.event,
36032
- startsAtMinutes: draft.startsAtMinutes,
36033
- endsAtMinutes: draft.endsAtMinutes,
36034
- topPercent: toRangePercent(draft.startsAtMinutes - rangeStartMinutes, rangeMinutes),
36035
- heightPercent: Math.max(
36036
- MIN_EVENT_HEIGHT_PERCENT,
36037
- toRangePercent(draft.endsAtMinutes - draft.startsAtMinutes, rangeMinutes)
36038
- ),
36039
- laneIndex: draft.laneIndex,
36040
- laneCount: draft.laneCount,
36041
- categoryColor: draft.event.eventCategory?.color || "rgb(var(--tb-accent))",
36042
- timeLabel: formatEventTimeRange(draft.event),
36043
- teacherLine: formatEventTeacherLine(draft.event)
36044
- }))
36082
+ assignTimetableLanes(dayDrafts).map((draft) => {
36083
+ const capacity = formatTimetableCapacity(draft.event);
36084
+ return {
36085
+ event: draft.event,
36086
+ startsAtMinutes: draft.startsAtMinutes,
36087
+ endsAtMinutes: draft.endsAtMinutes,
36088
+ topPercent: toRangePercent(draft.startsAtMinutes - rangeStartMinutes, rangeMinutes),
36089
+ heightPercent: Math.max(
36090
+ MIN_EVENT_HEIGHT_PERCENT,
36091
+ toRangePercent(draft.endsAtMinutes - draft.startsAtMinutes, rangeMinutes)
36092
+ ),
36093
+ laneIndex: draft.laneIndex,
36094
+ laneCount: draft.laneCount,
36095
+ categoryColor: draft.event.eventCategory?.color || "rgb(var(--tb-accent))",
36096
+ timeLabel: formatEventTimeRange(draft.event),
36097
+ teacherLine: formatEventTeacherLine(draft.event),
36098
+ capacityLabel: capacity.label,
36099
+ isFull: capacity.isFull
36100
+ };
36101
+ })
36045
36102
  );
36046
36103
  }
36047
36104
  return {
@@ -36174,6 +36231,12 @@ function formatShortDayLabel(date) {
36174
36231
  const dayName = FULL_DAY_NAMES[date.getDay()] ?? "";
36175
36232
  return `${dayName.slice(0, 3)} ${date.getDate()}`;
36176
36233
  }
36234
+ function formatTimetableCapacity(event) {
36235
+ const { available, isFull } = getEventAvailability(event);
36236
+ if (available == null) return { label: null, isFull: false };
36237
+ if (isFull) return { label: "Full", isFull: true };
36238
+ return { label: `${available} spots left`, isFull: false };
36239
+ }
36177
36240
  function formatEventTimeRange(event) {
36178
36241
  const timeZone = event.timeZone ?? null;
36179
36242
  return `${formatTime(event.startsAt, { timeZone })} - ${formatTime(event.endsAt, { timeZone })}`;
@@ -36430,7 +36493,17 @@ function renderTimetableSsr(display) {
36430
36493
  /* @__PURE__ */ jsx42("span", { className: "event-timetable-event-time", children: cell.timeLabel }),
36431
36494
  /* @__PURE__ */ jsx42("span", { className: "event-timetable-event-title", children: cell.event.title }),
36432
36495
  cell.teacherLine ? /* @__PURE__ */ jsx42("span", { className: "event-timetable-event-teacher", children: cell.teacherLine }) : null,
36433
- cell.event.venue ? /* @__PURE__ */ jsx42("span", { className: "event-timetable-event-meta", children: cell.event.venue.name }) : null
36496
+ cell.event.venue ? /* @__PURE__ */ jsx42("span", { className: "event-timetable-event-meta", children: cell.event.venue.name }) : null,
36497
+ display.showCapacity && cell.capacityLabel ? /* @__PURE__ */ jsx42(
36498
+ "span",
36499
+ {
36500
+ className: clsx_default(
36501
+ "event-timetable-event-capacity",
36502
+ cell.isFull && "event-timetable-event-capacity--full"
36503
+ ),
36504
+ children: cell.capacityLabel
36505
+ }
36506
+ ) : null
36434
36507
  ]
36435
36508
  },
36436
36509
  cell.event.occurrenceId || cell.event.id
@@ -40450,6 +40523,44 @@ ${declarationLines}
40450
40523
  // ../theme-core/src/responsiveMode.ts
40451
40524
  var DEFAULT_THEME_RESPONSIVE_MODE = "viewport";
40452
40525
  var THEME_RESPONSIVE_CONTAINER_NAME = "rb-site";
40526
+ var THEME_RESPONSIVE_MODE_ATTR = "data-rb-responsive-mode";
40527
+ function getResponsiveScopeSpec(mode = DEFAULT_THEME_RESPONSIVE_MODE) {
40528
+ if (mode === "container") {
40529
+ return {
40530
+ kind: "container",
40531
+ selector: `[${THEME_RESPONSIVE_MODE_ATTR}="container"]`,
40532
+ containerName: THEME_RESPONSIVE_CONTAINER_NAME
40533
+ };
40534
+ }
40535
+ return {
40536
+ kind: "viewport",
40537
+ selector: `[${THEME_RESPONSIVE_MODE_ATTR}="viewport"]`
40538
+ };
40539
+ }
40540
+ function escapeRegExp(value) {
40541
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
40542
+ }
40543
+ var RESPONSIVE_SCOPE_RULE_PATTERN = new RegExp(
40544
+ buildResponsiveScopeRulePatternSource(),
40545
+ "g"
40546
+ );
40547
+ var RESPONSIVE_SCOPE_RULE_AT_PATTERN = new RegExp(
40548
+ buildResponsiveScopeRulePatternSource(),
40549
+ "y"
40550
+ );
40551
+ function buildResponsiveScopeRulePatternSource() {
40552
+ return [
40553
+ "@scope",
40554
+ "\\(\\[",
40555
+ escapeRegExp(THEME_RESPONSIVE_MODE_ATTR),
40556
+ '="(?:viewport|container)"\\]\\)',
40557
+ "to",
40558
+ "\\((?::scope )?\\[",
40559
+ escapeRegExp(THEME_RESPONSIVE_MODE_ATTR),
40560
+ "\\]\\)",
40561
+ "\\{"
40562
+ ].join("\\s*");
40563
+ }
40453
40564
 
40454
40565
  // ../theme-core/src/responsive/mediaQuery.ts
40455
40566
  function convertMediaQueryToContainerQuery(query) {
@@ -41998,45 +42109,53 @@ var containerResponsiveThemeCss = `/*
41998
42109
  flex-basis: 16.666667%;
41999
42110
  }
42000
42111
  @container rb-site (min-width: 768px) {
42001
- .rb-md-basis-full {
42002
- flex-basis: 100%;
42003
- }
42004
- .rb-md-basis-1-2 {
42005
- flex-basis: 50%;
42006
- }
42007
- .rb-md-basis-1-3 {
42008
- flex-basis: 33.333333%;
42009
- }
42010
- .rb-md-basis-1-4 {
42011
- flex-basis: 25%;
42012
- }
42013
- .rb-md-basis-1-5 {
42014
- flex-basis: 20%;
42015
- }
42016
- .rb-md-basis-1-6 {
42017
- flex-basis: 16.666667%;
42112
+
42113
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
42114
+ .rb-md-basis-full {
42115
+ flex-basis: 100%;
42116
+ }
42117
+ .rb-md-basis-1-2 {
42118
+ flex-basis: 50%;
42119
+ }
42120
+ .rb-md-basis-1-3 {
42121
+ flex-basis: 33.333333%;
42122
+ }
42123
+ .rb-md-basis-1-4 {
42124
+ flex-basis: 25%;
42125
+ }
42126
+ .rb-md-basis-1-5 {
42127
+ flex-basis: 20%;
42128
+ }
42129
+ .rb-md-basis-1-6 {
42130
+ flex-basis: 16.666667%;
42131
+ }
42018
42132
  }
42019
- }
42133
+
42134
+ }
42020
42135
  @container rb-site (min-width: 1024px) {
42021
- .rb-lg-basis-full {
42022
- flex-basis: 100%;
42023
- }
42024
- .rb-lg-basis-1-2 {
42025
- flex-basis: 50%;
42026
- }
42027
- .rb-lg-basis-1-3 {
42028
- flex-basis: 33.333333%;
42029
- }
42030
- .rb-lg-basis-1-4 {
42031
- flex-basis: 25%;
42032
- }
42033
- .rb-lg-basis-1-5 {
42034
- flex-basis: 20%;
42035
- }
42036
- .rb-lg-basis-1-6 {
42037
- flex-basis: 16.666667%;
42136
+
42137
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
42138
+ .rb-lg-basis-full {
42139
+ flex-basis: 100%;
42140
+ }
42141
+ .rb-lg-basis-1-2 {
42142
+ flex-basis: 50%;
42143
+ }
42144
+ .rb-lg-basis-1-3 {
42145
+ flex-basis: 33.333333%;
42146
+ }
42147
+ .rb-lg-basis-1-4 {
42148
+ flex-basis: 25%;
42149
+ }
42150
+ .rb-lg-basis-1-5 {
42151
+ flex-basis: 20%;
42152
+ }
42153
+ .rb-lg-basis-1-6 {
42154
+ flex-basis: 16.666667%;
42155
+ }
42038
42156
  }
42039
- }
42157
+
42158
+ }
42040
42159
  .rb-shrink-0 {
42041
42160
  flex-shrink: 0;
42042
42161
  }
@@ -42058,64 +42177,80 @@ var containerResponsiveThemeCss = `/*
42058
42177
  grid-template-columns: repeat(4, minmax(0, 1fr));
42059
42178
  }
42060
42179
  @container rb-site (min-width: 640px) {
42061
- .rb-sm-grid-cols-2 {
42062
- grid-template-columns: repeat(2, minmax(0, 1fr));
42063
- }
42064
- .rb-sm-grid-cols-3 {
42065
- grid-template-columns: repeat(3, minmax(0, 1fr));
42066
- }
42067
- .rb-sm-grid-cols-4 {
42068
- grid-template-columns: repeat(4, minmax(0, 1fr));
42180
+
42181
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
42182
+ .rb-sm-grid-cols-2 {
42183
+ grid-template-columns: repeat(2, minmax(0, 1fr));
42184
+ }
42185
+ .rb-sm-grid-cols-3 {
42186
+ grid-template-columns: repeat(3, minmax(0, 1fr));
42187
+ }
42188
+ .rb-sm-grid-cols-4 {
42189
+ grid-template-columns: repeat(4, minmax(0, 1fr));
42190
+ }
42069
42191
  }
42070
- }
42192
+
42193
+ }
42071
42194
  @container rb-site (min-width: 768px) {
42072
- .rb-md-grid-cols-2 {
42073
- grid-template-columns: repeat(2, minmax(0, 1fr));
42074
- }
42075
- .rb-md-grid-cols-3 {
42076
- grid-template-columns: repeat(3, minmax(0, 1fr));
42077
- }
42078
- .rb-md-grid-cols-4 {
42079
- grid-template-columns: repeat(4, minmax(0, 1fr));
42195
+
42196
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
42197
+ .rb-md-grid-cols-2 {
42198
+ grid-template-columns: repeat(2, minmax(0, 1fr));
42199
+ }
42200
+ .rb-md-grid-cols-3 {
42201
+ grid-template-columns: repeat(3, minmax(0, 1fr));
42202
+ }
42203
+ .rb-md-grid-cols-4 {
42204
+ grid-template-columns: repeat(4, minmax(0, 1fr));
42205
+ }
42080
42206
  }
42081
- }
42207
+
42208
+ }
42082
42209
  @container rb-site (min-width: 1024px) {
42083
- .rb-lg-grid-cols-2 {
42084
- grid-template-columns: repeat(2, minmax(0, 1fr));
42085
- }
42086
- .rb-lg-grid-cols-3 {
42087
- grid-template-columns: repeat(3, minmax(0, 1fr));
42088
- }
42089
- .rb-lg-grid-cols-4 {
42090
- grid-template-columns: repeat(4, minmax(0, 1fr));
42091
- }
42092
- .rb-lg-w-3\\/4 {
42093
- width: 75%;
42094
- }
42095
- .rb-lg-col-span-1 {
42096
- grid-column: span 1 / span 1;
42097
- }
42098
- .rb-lg-col-span-2 {
42099
- grid-column: span 2 / span 2;
42100
- }
42101
- .rb-lg-col-span-3 {
42102
- grid-column: span 3 / span 3;
42103
- }
42104
- .rb-lg-col-span-4 {
42105
- grid-column: span 4 / span 4;
42210
+
42211
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
42212
+ .rb-lg-grid-cols-2 {
42213
+ grid-template-columns: repeat(2, minmax(0, 1fr));
42214
+ }
42215
+ .rb-lg-grid-cols-3 {
42216
+ grid-template-columns: repeat(3, minmax(0, 1fr));
42217
+ }
42218
+ .rb-lg-grid-cols-4 {
42219
+ grid-template-columns: repeat(4, minmax(0, 1fr));
42220
+ }
42221
+ .rb-lg-w-3\\/4 {
42222
+ width: 75%;
42223
+ }
42224
+ .rb-lg-col-span-1 {
42225
+ grid-column: span 1 / span 1;
42226
+ }
42227
+ .rb-lg-col-span-2 {
42228
+ grid-column: span 2 / span 2;
42229
+ }
42230
+ .rb-lg-col-span-3 {
42231
+ grid-column: span 3 / span 3;
42232
+ }
42233
+ .rb-lg-col-span-4 {
42234
+ grid-column: span 4 / span 4;
42235
+ }
42106
42236
  }
42107
- }
42237
+
42238
+ }
42108
42239
  @container rb-site (min-width: 1280px) {
42109
- .rb-xl-grid-cols-2 {
42110
- grid-template-columns: repeat(2, minmax(0, 1fr));
42111
- }
42112
- .rb-xl-grid-cols-3 {
42113
- grid-template-columns: repeat(3, minmax(0, 1fr));
42114
- }
42115
- .rb-xl-grid-cols-4 {
42116
- grid-template-columns: repeat(4, minmax(0, 1fr));
42240
+
42241
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
42242
+ .rb-xl-grid-cols-2 {
42243
+ grid-template-columns: repeat(2, minmax(0, 1fr));
42244
+ }
42245
+ .rb-xl-grid-cols-3 {
42246
+ grid-template-columns: repeat(3, minmax(0, 1fr));
42247
+ }
42248
+ .rb-xl-grid-cols-4 {
42249
+ grid-template-columns: repeat(4, minmax(0, 1fr));
42250
+ }
42117
42251
  }
42118
- }
42252
+
42253
+ }
42119
42254
 
42120
42255
  /* Alignment */
42121
42256
  .rb-items-start {
@@ -42184,13 +42319,17 @@ var containerResponsiveThemeCss = `/*
42184
42319
  row-gap: 0.75rem;
42185
42320
  }
42186
42321
  @container rb-site (min-width: 768px) {
42187
- .rb-md-gap-0 {
42188
- gap: 0;
42189
- }
42190
- .rb-md-gap-10 {
42191
- gap: 2.5rem;
42322
+
42323
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
42324
+ .rb-md-gap-0 {
42325
+ gap: 0;
42326
+ }
42327
+ .rb-md-gap-10 {
42328
+ gap: 2.5rem;
42329
+ }
42192
42330
  }
42193
- }
42331
+
42332
+ }
42194
42333
 
42195
42334
  .rb-space-y-1 > :not([hidden]) ~ :not([hidden]) {
42196
42335
  margin-top: 0.25rem;
@@ -42292,137 +42431,149 @@ var containerResponsiveThemeCss = `/*
42292
42431
  }
42293
42432
 
42294
42433
  @container rb-site (min-width: 640px) {
42295
- .rb-sm-py-16 {
42296
- padding-top: 4rem;
42297
- padding-bottom: 4rem;
42298
- }
42299
- .rb-sm-py-20 {
42300
- padding-top: 5rem;
42301
- padding-bottom: 5rem;
42302
- }
42303
- .rb-sm-p-6 {
42304
- padding: 1.5rem;
42305
- }
42306
- .rb-sm-flex {
42307
- display: flex;
42308
- }
42309
- .rb-sm-block {
42310
- display: block;
42311
- }
42312
- .rb-sm-inline {
42313
- display: inline;
42314
- }
42315
- .rb-sm-inline-block {
42316
- display: inline-block;
42317
- }
42318
- .rb-sm-inline-flex {
42319
- display: inline-flex;
42320
- }
42321
- .rb-sm-grid {
42322
- display: grid;
42323
- }
42324
- .rb-sm-hidden {
42325
- display: none;
42326
- }
42327
- .rb-sm-flex-row {
42328
- flex-direction: row;
42329
- }
42330
- .rb-sm-items-start {
42331
- align-items: flex-start;
42332
- }
42333
- .rb-sm-items-center {
42334
- align-items: center;
42335
- }
42336
- .rb-sm-justify-between {
42337
- justify-content: space-between;
42338
- }
42339
- .rb-sm-p-8 {
42340
- padding: 2rem;
42341
- }
42342
- .rb-sm-text-lg {
42343
- font-size: 1.125rem;
42344
- line-height: 1.75rem;
42345
- }
42346
- .rb-sm-text-xl {
42347
- font-size: 1.25rem;
42348
- line-height: 1.75rem;
42349
- }
42350
- .rb-sm-text-4xl {
42351
- font-size: 2.25rem;
42352
- line-height: 2.5rem;
42353
- }
42354
42434
 
42355
- .rb-sm-w-auto {
42356
- width: auto;
42435
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
42436
+ .rb-sm-py-16 {
42437
+ padding-top: 4rem;
42438
+ padding-bottom: 4rem;
42439
+ }
42440
+ .rb-sm-py-20 {
42441
+ padding-top: 5rem;
42442
+ padding-bottom: 5rem;
42443
+ }
42444
+ .rb-sm-p-6 {
42445
+ padding: 1.5rem;
42446
+ }
42447
+ .rb-sm-flex {
42448
+ display: flex;
42449
+ }
42450
+ .rb-sm-block {
42451
+ display: block;
42452
+ }
42453
+ .rb-sm-inline {
42454
+ display: inline;
42455
+ }
42456
+ .rb-sm-inline-block {
42457
+ display: inline-block;
42458
+ }
42459
+ .rb-sm-inline-flex {
42460
+ display: inline-flex;
42461
+ }
42462
+ .rb-sm-grid {
42463
+ display: grid;
42464
+ }
42465
+ .rb-sm-hidden {
42466
+ display: none;
42467
+ }
42468
+ .rb-sm-flex-row {
42469
+ flex-direction: row;
42470
+ }
42471
+ .rb-sm-items-start {
42472
+ align-items: flex-start;
42473
+ }
42474
+ .rb-sm-items-center {
42475
+ align-items: center;
42476
+ }
42477
+ .rb-sm-justify-between {
42478
+ justify-content: space-between;
42479
+ }
42480
+ .rb-sm-p-8 {
42481
+ padding: 2rem;
42482
+ }
42483
+ .rb-sm-text-lg {
42484
+ font-size: 1.125rem;
42485
+ line-height: 1.75rem;
42486
+ }
42487
+ .rb-sm-text-xl {
42488
+ font-size: 1.25rem;
42489
+ line-height: 1.75rem;
42490
+ }
42491
+ .rb-sm-text-4xl {
42492
+ font-size: 2.25rem;
42493
+ line-height: 2.5rem;
42494
+ }
42495
+
42496
+ .rb-sm-w-auto {
42497
+ width: auto;
42498
+ }
42357
42499
  }
42358
- }
42500
+
42501
+ }
42359
42502
  @container rb-site (min-width: 768px) {
42360
- .rb-md-py-20 {
42361
- padding-top: 5rem;
42362
- padding-bottom: 5rem;
42363
- }
42364
- .rb-md-py-24 {
42365
- padding-top: 6rem;
42366
- padding-bottom: 6rem;
42367
- }
42368
- .rb-md-w-1\\/3 {
42369
- width: 33.333333%;
42370
- }
42371
42503
 
42372
- .rb-md-flex {
42373
- display: flex;
42374
- }
42375
- .rb-md-block {
42376
- display: block;
42377
- }
42378
- .rb-md-inline {
42379
- display: inline;
42380
- }
42381
- .rb-md-inline-block {
42382
- display: inline-block;
42383
- }
42384
- .rb-md-inline-flex {
42385
- display: inline-flex;
42386
- }
42387
- .rb-md-grid {
42388
- display: grid;
42389
- }
42390
- .rb-md-hidden {
42391
- display: none;
42392
- }
42393
- .rb-md-flex-row {
42394
- flex-direction: row;
42395
- }
42396
- .rb-md-flex-row-reverse {
42397
- flex-direction: row-reverse;
42398
- }
42399
- .rb-md-items-start {
42400
- align-items: flex-start;
42504
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
42505
+ .rb-md-py-20 {
42506
+ padding-top: 5rem;
42507
+ padding-bottom: 5rem;
42508
+ }
42509
+ .rb-md-py-24 {
42510
+ padding-top: 6rem;
42511
+ padding-bottom: 6rem;
42512
+ }
42513
+ .rb-md-w-1\\/3 {
42514
+ width: 33.333333%;
42515
+ }
42516
+
42517
+ .rb-md-flex {
42518
+ display: flex;
42519
+ }
42520
+ .rb-md-block {
42521
+ display: block;
42522
+ }
42523
+ .rb-md-inline {
42524
+ display: inline;
42525
+ }
42526
+ .rb-md-inline-block {
42527
+ display: inline-block;
42528
+ }
42529
+ .rb-md-inline-flex {
42530
+ display: inline-flex;
42531
+ }
42532
+ .rb-md-grid {
42533
+ display: grid;
42534
+ }
42535
+ .rb-md-hidden {
42536
+ display: none;
42537
+ }
42538
+ .rb-md-flex-row {
42539
+ flex-direction: row;
42540
+ }
42541
+ .rb-md-flex-row-reverse {
42542
+ flex-direction: row-reverse;
42543
+ }
42544
+ .rb-md-items-start {
42545
+ align-items: flex-start;
42546
+ }
42401
42547
  }
42402
- }
42548
+
42549
+ }
42403
42550
  @container rb-site (min-width: 1024px) {
42404
- .rb-lg-flex {
42405
- display: flex;
42406
- }
42407
- .rb-lg-block {
42408
- display: block;
42409
- }
42410
- .rb-lg-inline {
42411
- display: inline;
42412
- }
42413
- .rb-lg-inline-block {
42414
- display: inline-block;
42415
- }
42416
- .rb-lg-inline-flex {
42417
- display: inline-flex;
42418
- }
42419
- .rb-lg-grid {
42420
- display: grid;
42421
- }
42422
- .rb-lg-hidden {
42423
- display: none;
42551
+
42552
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
42553
+ .rb-lg-flex {
42554
+ display: flex;
42555
+ }
42556
+ .rb-lg-block {
42557
+ display: block;
42558
+ }
42559
+ .rb-lg-inline {
42560
+ display: inline;
42561
+ }
42562
+ .rb-lg-inline-block {
42563
+ display: inline-block;
42564
+ }
42565
+ .rb-lg-inline-flex {
42566
+ display: inline-flex;
42567
+ }
42568
+ .rb-lg-grid {
42569
+ display: grid;
42570
+ }
42571
+ .rb-lg-hidden {
42572
+ display: none;
42573
+ }
42424
42574
  }
42425
- }
42575
+
42576
+ }
42426
42577
 
42427
42578
  /* Margin */
42428
42579
  .rb-m-0 {
@@ -42679,8 +42830,9 @@ var containerResponsiveThemeCss = `/*
42679
42830
  font-weight: 700;
42680
42831
  }
42681
42832
  .rb-font-mono {
42682
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
42683
- "Liberation Mono", "Courier New", monospace;
42833
+ font-family:
42834
+ ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
42835
+ "Courier New", monospace;
42684
42836
  }
42685
42837
  .rb-leading-relaxed {
42686
42838
  line-height: 1.625;
@@ -42898,39 +43050,44 @@ var containerResponsiveThemeCss = `/*
42898
43050
  }
42899
43051
 
42900
43052
  @container rb-site (max-width: 639px) {
42901
- .rb-image-gallery-marquee {
42902
- overflow-x: auto;
42903
- overflow-y: hidden;
42904
- -webkit-overflow-scrolling: touch;
42905
- touch-action: pan-x;
42906
- scrollbar-width: none;
42907
- }
42908
43053
 
42909
- .rb-image-gallery-marquee::-webkit-scrollbar {
42910
- display: none;
42911
- }
43054
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
43055
+ .rb-image-gallery-marquee {
43056
+ overflow-x: auto;
43057
+ overflow-y: hidden;
43058
+ -webkit-overflow-scrolling: touch;
43059
+ touch-action: pan-x;
43060
+ scrollbar-width: none;
43061
+ }
42912
43062
 
42913
- /* Let users swipe smoothly without fighting autoplay while interacting. */
42914
- .rb-image-gallery-marquee:active .rb-animate-marquee,
42915
- .rb-image-gallery-marquee:focus-within .rb-animate-marquee {
42916
- animation-play-state: paused;
42917
- }
43063
+ .rb-image-gallery-marquee::-webkit-scrollbar {
43064
+ display: none;
43065
+ }
42918
43066
 
42919
- .rb-container-full.rb-image-gallery-marquee-container {
42920
- padding-left: 0;
42921
- padding-right: 0;
42922
- }
43067
+ /* Let users swipe smoothly without fighting autoplay while interacting. */
43068
+ .rb-image-gallery-marquee:active .rb-animate-marquee,
43069
+ .rb-image-gallery-marquee:focus-within .rb-animate-marquee {
43070
+ animation-play-state: paused;
43071
+ }
42923
43072
 
42924
- /* Marquee variant: keep images in color on mobile for legibility. */
42925
- .rb-image-gallery-marquee-container .rb-filter-grayscale,
42926
- .rb-image-gallery-marquee-container .rb-filter-grayscale-hover-reveal {
42927
- filter: none;
42928
- }
43073
+ .rb-container-full.rb-image-gallery-marquee-container {
43074
+ padding-left: 0;
43075
+ padding-right: 0;
43076
+ }
43077
+
43078
+ /* Marquee variant: keep images in color on mobile for legibility. */
43079
+ .rb-image-gallery-marquee-container .rb-filter-grayscale,
43080
+ .rb-image-gallery-marquee-container .rb-filter-grayscale-hover-reveal {
43081
+ filter: none;
43082
+ }
42929
43083
 
42930
- .rb-image-gallery-marquee-container .rb-filter-grayscale-hover-reveal:hover {
42931
- filter: none;
43084
+ .rb-image-gallery-marquee-container
43085
+ .rb-filter-grayscale-hover-reveal:hover {
43086
+ filter: none;
43087
+ }
42932
43088
  }
42933
- }
43089
+
43090
+ }
42934
43091
 
42935
43092
  @media (prefers-reduced-motion: reduce) {
42936
43093
  .rb-animate-marquee {
@@ -43035,12 +43192,16 @@ var containerResponsiveThemeCss = `/*
43035
43192
  }
43036
43193
 
43037
43194
  @container rb-site (min-width: 640px) {
43038
- .rb-container,
43039
- .rb-container-full {
43040
- padding-left: 1.5rem;
43041
- padding-right: 1.5rem;
43195
+
43196
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
43197
+ .rb-container,
43198
+ .rb-container-full {
43199
+ padding-left: 1.5rem;
43200
+ padding-right: 1.5rem;
43201
+ }
43042
43202
  }
43043
- }
43203
+
43204
+ }
43044
43205
 
43045
43206
  /* Flex alignment */
43046
43207
  .rb-self-start {
@@ -43074,27 +43235,31 @@ var containerResponsiveThemeCss = `/*
43074
43235
  }
43075
43236
 
43076
43237
  @container rb-site (min-width: 640px) {
43077
- .rb-section-pad-compact {
43078
- padding-top: 2rem;
43079
- padding-bottom: 2rem;
43080
- }
43081
- .rb-section-pad-cozy {
43082
- padding-top: 3.5rem;
43083
- padding-bottom: 3.5rem;
43084
- }
43085
- .rb-section-pad-medium {
43086
- padding-top: 4rem;
43087
- padding-bottom: 4rem;
43088
- }
43089
- .rb-section-pad-comfortable {
43090
- padding-top: 5rem;
43091
- padding-bottom: 5rem;
43092
- }
43093
- .rb-section-pad-spacious {
43094
- padding-top: 7rem;
43095
- padding-bottom: 7rem;
43238
+
43239
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
43240
+ .rb-section-pad-compact {
43241
+ padding-top: 2rem;
43242
+ padding-bottom: 2rem;
43243
+ }
43244
+ .rb-section-pad-cozy {
43245
+ padding-top: 3.5rem;
43246
+ padding-bottom: 3.5rem;
43247
+ }
43248
+ .rb-section-pad-medium {
43249
+ padding-top: 4rem;
43250
+ padding-bottom: 4rem;
43251
+ }
43252
+ .rb-section-pad-comfortable {
43253
+ padding-top: 5rem;
43254
+ padding-bottom: 5rem;
43255
+ }
43256
+ .rb-section-pad-spacious {
43257
+ padding-top: 7rem;
43258
+ padding-bottom: 7rem;
43259
+ }
43096
43260
  }
43097
- }
43261
+
43262
+ }
43098
43263
 
43099
43264
  .rb-container-pad-none {
43100
43265
  padding: 0;
@@ -43116,22 +43281,26 @@ var containerResponsiveThemeCss = `/*
43116
43281
  }
43117
43282
 
43118
43283
  @container rb-site (min-width: 640px) {
43119
- .rb-container-pad-compact {
43120
- padding: 1.5rem;
43121
- }
43122
- .rb-container-pad-cozy {
43123
- padding: 2rem;
43124
- }
43125
- .rb-container-pad-medium {
43126
- padding: 2rem;
43127
- }
43128
- .rb-container-pad-comfortable {
43129
- padding: 2.5rem;
43130
- }
43131
- .rb-container-pad-spacious {
43132
- padding: 3.5rem;
43284
+
43285
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
43286
+ .rb-container-pad-compact {
43287
+ padding: 1.5rem;
43288
+ }
43289
+ .rb-container-pad-cozy {
43290
+ padding: 2rem;
43291
+ }
43292
+ .rb-container-pad-medium {
43293
+ padding: 2rem;
43294
+ }
43295
+ .rb-container-pad-comfortable {
43296
+ padding: 2.5rem;
43297
+ }
43298
+ .rb-container-pad-spacious {
43299
+ padding: 3.5rem;
43300
+ }
43133
43301
  }
43134
- }
43302
+
43303
+ }
43135
43304
 
43136
43305
  /* Semantic gap tokens (theme-aware via --space-mult) */
43137
43306
  .rb-gap-semantic-none {
@@ -43160,27 +43329,31 @@ var containerResponsiveThemeCss = `/*
43160
43329
  }
43161
43330
 
43162
43331
  @container rb-site (min-width: 768px) {
43163
- .rb-gap-semantic-compact {
43164
- --rb-semantic-gap: calc(1.25rem * var(--space-mult, 1));
43165
- gap: calc(1.25rem * var(--space-mult, 1));
43166
- }
43167
- .rb-gap-semantic-cozy {
43168
- --rb-semantic-gap: calc(2.25rem * var(--space-mult, 1));
43169
- gap: calc(2.25rem * var(--space-mult, 1));
43170
- }
43171
- .rb-gap-semantic-medium {
43172
- --rb-semantic-gap: calc(3.5rem * var(--space-mult, 1));
43173
- gap: calc(3.5rem * var(--space-mult, 1));
43174
- }
43175
- .rb-gap-semantic-comfortable {
43176
- --rb-semantic-gap: calc(5.75rem * var(--space-mult, 1));
43177
- gap: calc(5.75rem * var(--space-mult, 1));
43178
- }
43179
- .rb-gap-semantic-spacious {
43180
- --rb-semantic-gap: calc(8.75rem * var(--space-mult, 1));
43181
- gap: calc(8.75rem * var(--space-mult, 1));
43332
+
43333
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
43334
+ .rb-gap-semantic-compact {
43335
+ --rb-semantic-gap: calc(1.25rem * var(--space-mult, 1));
43336
+ gap: calc(1.25rem * var(--space-mult, 1));
43337
+ }
43338
+ .rb-gap-semantic-cozy {
43339
+ --rb-semantic-gap: calc(2.25rem * var(--space-mult, 1));
43340
+ gap: calc(2.25rem * var(--space-mult, 1));
43341
+ }
43342
+ .rb-gap-semantic-medium {
43343
+ --rb-semantic-gap: calc(3.5rem * var(--space-mult, 1));
43344
+ gap: calc(3.5rem * var(--space-mult, 1));
43345
+ }
43346
+ .rb-gap-semantic-comfortable {
43347
+ --rb-semantic-gap: calc(5.75rem * var(--space-mult, 1));
43348
+ gap: calc(5.75rem * var(--space-mult, 1));
43349
+ }
43350
+ .rb-gap-semantic-spacious {
43351
+ --rb-semantic-gap: calc(8.75rem * var(--space-mult, 1));
43352
+ gap: calc(8.75rem * var(--space-mult, 1));
43353
+ }
43182
43354
  }
43183
- }
43355
+
43356
+ }
43184
43357
 
43185
43358
  /* Backdrop blur helpers */
43186
43359
  .rb-backdrop-blur {
@@ -43534,11 +43707,13 @@ var containerResponsiveThemeCss = `/*
43534
43707
  line-height: var(--rb-prose-lg-line-height);
43535
43708
  }
43536
43709
  @container rb-site (min-width: 640px) {
43537
- :where(.theme-scope) .rb-prose-xl-sm {
43710
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
43711
+ :where(.theme-scope) .rb-prose-xl-sm {
43538
43712
  font-size: var(--rb-prose-xl-sm-font-size);
43539
43713
  line-height: var(--rb-prose-xl-sm-line-height);
43540
43714
  }
43541
43715
  }
43716
+ }
43542
43717
 
43543
43718
  /* Neutral prose uses theme text color by default */
43544
43719
  :where(.theme-scope) .rb-prose-neutral {
@@ -43622,22 +43797,28 @@ var containerResponsiveThemeCss = `/*
43622
43797
  }
43623
43798
 
43624
43799
  @container rb-site (min-width: 768px) {
43625
- :where(.theme-scope) .rb-columns-equal-height {
43800
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
43801
+ :where(.theme-scope) .rb-columns-equal-height {
43626
43802
  --rb-columns-cols: var(--rb-columns-cols-md, var(--rb-columns-cols));
43627
43803
  }
43628
43804
  }
43805
+ }
43629
43806
 
43630
43807
  @container rb-site (min-width: 1024px) {
43631
- :where(.theme-scope) .rb-columns-equal-height {
43808
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
43809
+ :where(.theme-scope) .rb-columns-equal-height {
43632
43810
  --rb-columns-cols: var(--rb-columns-cols-lg, var(--rb-columns-cols));
43633
43811
  }
43634
43812
  }
43813
+ }
43635
43814
 
43636
43815
  @container rb-site (min-width: 1280px) {
43637
- :where(.theme-scope) .rb-columns-equal-height {
43816
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
43817
+ :where(.theme-scope) .rb-columns-equal-height {
43638
43818
  --rb-columns-cols: var(--rb-columns-cols-xl, var(--rb-columns-cols));
43639
43819
  }
43640
43820
  }
43821
+ }
43641
43822
 
43642
43823
  :where(.theme-scope) .rb-columns-equal-height > * {
43643
43824
  height: var(--rb-columns-tile-h);
@@ -44259,7 +44440,8 @@ var containerResponsiveThemeCss = `/*
44259
44440
 
44260
44441
  /* Mobile: reduce site title size (~30%) to keep header compact */
44261
44442
  @container rb-site (max-width: 767px) {
44262
- :where(.theme-scope) .header-logo-text {
44443
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
44444
+ :where(.theme-scope) .header-logo-text {
44263
44445
  font-size: 0.8rem;
44264
44446
  line-height: 1.25rem;
44265
44447
  }
@@ -44270,6 +44452,7 @@ var containerResponsiveThemeCss = `/*
44270
44452
  line-height: 1.25rem;
44271
44453
  }
44272
44454
  }
44455
+ }
44273
44456
 
44274
44457
  /* Centered/editorial variants use larger title */
44275
44458
  :where(.theme-scope) .header-variant-centered .header-logo-text,
@@ -44293,10 +44476,12 @@ var containerResponsiveThemeCss = `/*
44293
44476
  }
44294
44477
 
44295
44478
  @container rb-site (max-width: 767px) {
44296
- :where(.theme-scope) .rb-header-shrink.header-scrolled .header-logo-text {
44479
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
44480
+ :where(.theme-scope) .rb-header-shrink.header-scrolled .header-logo-text {
44297
44481
  font-size: 0.75rem;
44298
44482
  }
44299
44483
  }
44484
+ }
44300
44485
 
44301
44486
  /* =================================================================
44302
44487
  Accessibility: Reduced Motion
@@ -44740,10 +44925,12 @@ var containerResponsiveThemeCss = `/*
44740
44925
  }
44741
44926
 
44742
44927
  @container rb-site (min-width: 768px) {
44743
- :where(.theme-scope) :where([data-block="event-registration"]) .er-event-grid {
44928
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
44929
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-event-grid {
44744
44930
  grid-template-columns: repeat(2, minmax(0, 1fr));
44745
44931
  }
44746
44932
  }
44933
+ }
44747
44934
 
44748
44935
  :where(.theme-scope) :where([data-block="event-registration"]) .er-row {
44749
44936
  display: flex;
@@ -44976,12 +45163,14 @@ var containerResponsiveThemeCss = `/*
44976
45163
  }
44977
45164
 
44978
45165
  @container rb-site (min-width: 768px) {
44979
- :where(.theme-scope) :where([data-block="event-registration"]) .er-layout {
45166
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
45167
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-layout {
44980
45168
  /* Desktop: main + sidebar */
44981
45169
  grid-template-columns: 1fr 300px;
44982
45170
  grid-template-areas: "main summary";
44983
45171
  }
44984
45172
  }
45173
+ }
44985
45174
 
44986
45175
  :where(.theme-scope) :where([data-block="event-registration"]) .er-layout-main {
44987
45176
  grid-area: main;
@@ -45063,10 +45252,12 @@ var containerResponsiveThemeCss = `/*
45063
45252
  }
45064
45253
 
45065
45254
  @container rb-site (min-width: 640px) {
45066
- :where(.theme-scope) :where([data-block="event-registration"]) .er-step-label {
45255
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
45256
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-step-label {
45067
45257
  display: inline;
45068
45258
  }
45069
45259
  }
45260
+ }
45070
45261
 
45071
45262
  /* Sticky order summary */
45072
45263
  :where(.theme-scope) :where([data-block="event-registration"]) .er-summary {
@@ -45083,11 +45274,13 @@ var containerResponsiveThemeCss = `/*
45083
45274
  }
45084
45275
 
45085
45276
  @container rb-site (min-width: 768px) {
45086
- :where(.theme-scope) :where([data-block="event-registration"]) .er-summary {
45277
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
45278
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-summary {
45087
45279
  position: sticky;
45088
45280
  top: 1rem;
45089
45281
  }
45090
45282
  }
45283
+ }
45091
45284
 
45092
45285
  :where(.theme-scope) :where([data-block="event-registration"]) .er-summary-event {
45093
45286
  font-weight: 600;
@@ -45157,12 +45350,14 @@ var containerResponsiveThemeCss = `/*
45157
45350
  }
45158
45351
 
45159
45352
  @container rb-site (min-width: 768px) {
45160
- :where(.theme-scope) :where([data-block="event-registration"]) .er-guest-card {
45353
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
45354
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-guest-card {
45161
45355
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
45162
45356
  column-gap: 1rem;
45163
45357
  align-items: start;
45164
45358
  }
45165
45359
  }
45360
+ }
45166
45361
 
45167
45362
  /* Shake animation for validation errors */
45168
45363
  @keyframes er-shake {
@@ -45307,7 +45502,8 @@ var containerResponsiveThemeCss = `/*
45307
45502
  * ============================================================================= */
45308
45503
 
45309
45504
  @container rb-site (min-width: 768px) {
45310
- :where(.theme-scope)
45505
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
45506
+ :where(.theme-scope)
45311
45507
  :where([data-block="event-listing"], [data-block="event-spotlight"], [data-block="event-calendar"], [data-block="event-combined"])
45312
45508
  .event-card[data-orientation="horizontal"] {
45313
45509
  display: flex;
@@ -45358,6 +45554,7 @@ var containerResponsiveThemeCss = `/*
45358
45554
  text-align: right;
45359
45555
  }
45360
45556
  }
45557
+ }
45361
45558
 
45362
45559
  /* Keep token list in sync with \`EVENT_CATEGORY_BADGE_TOKENS\` in \`packages/blocks/src/system/constants/events.ts\`. */
45363
45560
  :where(.theme-scope)
@@ -45437,7 +45634,8 @@ var containerResponsiveThemeCss = `/*
45437
45634
  }
45438
45635
 
45439
45636
  @container rb-site (min-width: 768px) {
45440
- :where(.theme-scope) :where([data-block="event-registration"]) .er-payment-layout {
45637
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
45638
+ :where(.theme-scope) :where([data-block="event-registration"]) .er-payment-layout {
45441
45639
  grid-template-columns: 1fr 260px;
45442
45640
  grid-template-areas:
45443
45641
  "main sidebar"
@@ -45452,6 +45650,7 @@ var containerResponsiveThemeCss = `/*
45452
45650
  "footer";
45453
45651
  }
45454
45652
  }
45653
+ }
45455
45654
 
45456
45655
  :where(.theme-scope) :where([data-block="event-registration"]) .er-payment-layout-main {
45457
45656
  grid-area: main;
@@ -46731,7 +46930,8 @@ var containerResponsiveThemeCss = `/*
46731
46930
  :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-time,
46732
46931
  :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-title,
46733
46932
  :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-teacher,
46734
- :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-meta {
46933
+ :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-meta,
46934
+ :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-capacity {
46735
46935
  display: block;
46736
46936
  min-width: 0;
46737
46937
  overflow: hidden;
@@ -46757,6 +46957,17 @@ var containerResponsiveThemeCss = `/*
46757
46957
  opacity: 0.72;
46758
46958
  }
46759
46959
 
46960
+ :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-capacity {
46961
+ font-size: 0.6875rem;
46962
+ font-weight: 600;
46963
+ opacity: 0.85;
46964
+ }
46965
+
46966
+ :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-event-capacity--full {
46967
+ color: rgb(var(--tb-danger, 220 38 38));
46968
+ opacity: 1;
46969
+ }
46970
+
46760
46971
  :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-day-empty {
46761
46972
  margin: 0;
46762
46973
  padding: 1rem 0.5rem;
@@ -46773,7 +46984,8 @@ var containerResponsiveThemeCss = `/*
46773
46984
  }
46774
46985
 
46775
46986
  @container rb-site (max-width: 767px) {
46776
- :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-day-selector {
46987
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
46988
+ :where(.theme-scope) :where([data-block="event-calendar"]) .event-timetable-day-selector {
46777
46989
  display: flex;
46778
46990
  }
46779
46991
 
@@ -46803,6 +47015,7 @@ var containerResponsiveThemeCss = `/*
46803
47015
  padding-inline: 0.75rem;
46804
47016
  }
46805
47017
  }
47018
+ }
46806
47019
 
46807
47020
  /* -----------------------------------------------------------------------------
46808
47021
  * Event Calendar Modals
@@ -46941,7 +47154,8 @@ var containerResponsiveThemeCss = `/*
46941
47154
 
46942
47155
  /* Responsive adjustments */
46943
47156
  @container rb-site (max-width: 640px) {
46944
- :where(.theme-scope) :where([data-block="event-calendar"]) .event-calendar-container {
47157
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
47158
+ :where(.theme-scope) :where([data-block="event-calendar"]) .event-calendar-container {
46945
47159
  margin-left: -1.5rem;
46946
47160
  margin-right: -1.5rem;
46947
47161
  border-left: none;
@@ -47002,6 +47216,7 @@ var containerResponsiveThemeCss = `/*
47002
47216
  margin: 0 0.5rem;
47003
47217
  }
47004
47218
  }
47219
+ }
47005
47220
 
47006
47221
  /*
47007
47222
  * Shared: Tab bar (underline style)
@@ -47364,10 +47579,12 @@ var containerResponsiveThemeCss = `/*
47364
47579
  }
47365
47580
 
47366
47581
  @container rb-site (min-width: 768px) {
47367
- :where(.theme-scope) :where([data-block="form"]) .fb-row-2 {
47582
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
47583
+ :where(.theme-scope) :where([data-block="form"]) .fb-row-2 {
47368
47584
  grid-template-columns: 1fr 1fr;
47369
47585
  }
47370
47586
  }
47587
+ }
47371
47588
 
47372
47589
  /* Field wrapper */
47373
47590
  :where(.theme-scope) :where([data-block="form"]) .fb-field {
@@ -47448,10 +47665,12 @@ var containerResponsiveThemeCss = `/*
47448
47665
  }
47449
47666
 
47450
47667
  @container rb-site (min-width: 640px) {
47451
- :where(.theme-scope) :where([data-block="hero"]) .hero-subheadline {
47668
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
47669
+ :where(.theme-scope) :where([data-block="hero"]) .hero-subheadline {
47452
47670
  font-size: 1.25rem;
47453
47671
  }
47454
47672
  }
47673
+ }
47455
47674
 
47456
47675
  /* =============================================================================
47457
47676
  * Shared: Heading Group (used by CTA, single-button, etc.)
@@ -47665,16 +47884,19 @@ var containerResponsiveThemeCss = `/*
47665
47884
  }
47666
47885
 
47667
47886
  @container rb-site (min-width: 768px) {
47668
- :where(.theme-scope) .carousel-root {
47887
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
47888
+ :where(.theme-scope) .carousel-root {
47669
47889
  --rb-carousel-slides-to-show: var(
47670
47890
  --rb-carousel-slides-to-show-tablet,
47671
47891
  var(--rb-carousel-slides-to-show-mobile, 1)
47672
47892
  );
47673
47893
  }
47674
47894
  }
47895
+ }
47675
47896
 
47676
47897
  @container rb-site (min-width: 1024px) {
47677
- :where(.theme-scope) .carousel-root {
47898
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
47899
+ :where(.theme-scope) .carousel-root {
47678
47900
  --rb-carousel-slides-to-show: var(
47679
47901
  --rb-carousel-slides-to-show-desktop,
47680
47902
  var(
@@ -47684,6 +47906,7 @@ var containerResponsiveThemeCss = `/*
47684
47906
  );
47685
47907
  }
47686
47908
  }
47909
+ }
47687
47910
 
47688
47911
  /* Slides take exact percentage width with internal padding for gaps.
47689
47912
  * Padding is more reliable than margin (no collapsing, consistent on all slides). */
@@ -47957,10 +48180,12 @@ var containerResponsiveThemeCss = `/*
47957
48180
 
47958
48181
  /* Responsive grid */
47959
48182
  @container rb-site (max-width: 768px) {
47960
- :where(.theme-scope) .shop__products--grid {
48183
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
48184
+ :where(.theme-scope) .shop__products--grid {
47961
48185
  grid-template-columns: 1fr;
47962
48186
  }
47963
48187
  }
48188
+ }
47964
48189
 
47965
48190
  :where(.theme-scope) .shop__modal-product {
47966
48191
  font-size: 0.9375rem;
@@ -48062,11 +48287,13 @@ var containerResponsiveThemeCss = `/*
48062
48287
 
48063
48288
  /* Mobile: full-width CTA buttons inside cards */
48064
48289
  @container rb-site (max-width: 640px) {
48065
- :where(.theme-scope) .shop__cta {
48290
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
48291
+ :where(.theme-scope) .shop__cta {
48066
48292
  align-self: stretch;
48067
48293
  width: 100%;
48068
48294
  }
48069
48295
  }
48296
+ }
48070
48297
 
48071
48298
  /* =============================================================================
48072
48299
  * Block: Customer Portal
@@ -48772,7 +48999,8 @@ var containerResponsiveThemeCss = `/*
48772
48999
 
48773
49000
  /* Responsive: show everything without horizontal scrolling */
48774
49001
  @container rb-site (max-width: 640px) {
48775
- :where(.theme-scope) :where([data-block="customer-portal"]) .cp-only-mobile {
49002
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
49003
+ :where(.theme-scope) :where([data-block="customer-portal"]) .cp-only-mobile {
48776
49004
  display: flex;
48777
49005
  }
48778
49006
 
@@ -48812,6 +49040,7 @@ var containerResponsiveThemeCss = `/*
48812
49040
  align-self: stretch;
48813
49041
  }
48814
49042
  }
49043
+ }
48815
49044
 
48816
49045
  /* Placeholder (SSR) */
48817
49046
  :where(.theme-scope) :where([data-block="customer-portal"]) .cp-placeholder {
@@ -48901,7 +49130,8 @@ var containerResponsiveThemeCss = `/*
48901
49130
 
48902
49131
  /* Position arrows outside the carousel content area */
48903
49132
  @container rb-site (max-width: 639px) {
48904
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonials-carousel.carousel-root .carousel-nav-btn--prev {
49133
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
49134
+ :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonials-carousel.carousel-root .carousel-nav-btn--prev {
48905
49135
  /* Move arrows closer to viewport edge than container edge on mobile. */
48906
49136
  left: calc(0.5rem - 1.5rem);
48907
49137
  }
@@ -48911,10 +49141,12 @@ var containerResponsiveThemeCss = `/*
48911
49141
  right: calc(0.5rem - 1.5rem);
48912
49142
  }
48913
49143
  }
49144
+ }
48914
49145
 
48915
49146
  /* Position arrows further out on larger breakpoints */
48916
49147
  @container rb-site (min-width: 640px) {
48917
- :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonials-carousel.carousel-root .carousel-nav-btn--prev {
49148
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
49149
+ :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonials-carousel.carousel-root .carousel-nav-btn--prev {
48918
49150
  left: calc(-1 * (var(--rb-testimonial-carousel-arrow-size) / 2 + var(--rb-testimonial-carousel-arrow-gap)));
48919
49151
  }
48920
49152
 
@@ -48922,6 +49154,7 @@ var containerResponsiveThemeCss = `/*
48922
49154
  right: calc(-1 * (var(--rb-testimonial-carousel-arrow-size) / 2 + var(--rb-testimonial-carousel-arrow-gap)));
48923
49155
  }
48924
49156
  }
49157
+ }
48925
49158
 
48926
49159
  /*
48927
49160
  * Event Details (runtime node)
@@ -48973,10 +49206,12 @@ var containerResponsiveThemeCss = `/*
48973
49206
  }
48974
49207
 
48975
49208
  @container rb-site (min-width: 768px) {
48976
- :where(.theme-scope) .rb-tiles-grid {
49209
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
49210
+ :where(.theme-scope) .rb-tiles-grid {
48977
49211
  grid-template-columns: repeat(var(--rb-tiles-grid-cols-md, var(--rb-tiles-grid-cols-sm, 2)), minmax(0, 1fr));
48978
49212
  }
48979
49213
  }
49214
+ }
48980
49215
 
48981
49216
  :where(.theme-scope) :where(.rb-tile--interactive, .er-event-card) {
48982
49217
  cursor: pointer;
@@ -49081,10 +49316,12 @@ var containerResponsiveThemeCss = `/*
49081
49316
  }
49082
49317
 
49083
49318
  @container rb-site (min-width: 768px) {
49084
- :where(.theme-scope) :where([data-block="course-registration"]) .cr-layout--with-sidebar {
49319
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
49320
+ :where(.theme-scope) :where([data-block="course-registration"]) .cr-layout--with-sidebar {
49085
49321
  grid-template-columns: 1fr 280px;
49086
49322
  }
49087
49323
  }
49324
+ }
49088
49325
 
49089
49326
  :where(.theme-scope) :where([data-block="course-registration"]) .cr-layout__main {
49090
49327
  min-width: 0;
@@ -49095,10 +49332,12 @@ var containerResponsiveThemeCss = `/*
49095
49332
  }
49096
49333
 
49097
49334
  @container rb-site (min-width: 768px) {
49098
- :where(.theme-scope) :where([data-block="course-registration"]) .cr-layout__sidebar {
49335
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
49336
+ :where(.theme-scope) :where([data-block="course-registration"]) .cr-layout__sidebar {
49099
49337
  display: block;
49100
49338
  }
49101
49339
  }
49340
+ }
49102
49341
 
49103
49342
  /* =============================================================================
49104
49343
  * Step Indicator
@@ -49149,10 +49388,12 @@ var containerResponsiveThemeCss = `/*
49149
49388
  }
49150
49389
 
49151
49390
  @container rb-site (min-width: 640px) {
49152
- :where(.theme-scope) :where([data-block="course-registration"]) .cr-step-label {
49391
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
49392
+ :where(.theme-scope) :where([data-block="course-registration"]) .cr-step-label {
49153
49393
  display: block;
49154
49394
  }
49155
49395
  }
49396
+ }
49156
49397
 
49157
49398
  :where(.theme-scope) :where([data-block="course-registration"]) .cr-step-label--active {
49158
49399
  color: var(--cr-on-surface);
@@ -50035,7 +50276,8 @@ var containerResponsiveThemeCss = `/*
50035
50276
 
50036
50277
  /* Mobile fallback for inline variant */
50037
50278
  @container rb-site (max-width: 640px) {
50038
- :where(.theme-scope) .newsletter-inline .newsletter-form-fields {
50279
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
50280
+ :where(.theme-scope) .newsletter-inline .newsletter-form-fields {
50039
50281
  flex-direction: column;
50040
50282
  }
50041
50283
 
@@ -50043,6 +50285,7 @@ var containerResponsiveThemeCss = `/*
50043
50285
  min-width: 100%;
50044
50286
  }
50045
50287
  }
50288
+ }
50046
50289
 
50047
50290
  /* =============================================================================
50048
50291
  * Success State
@@ -50080,12 +50323,14 @@ var containerResponsiveThemeCss = `/*
50080
50323
  }
50081
50324
 
50082
50325
  @container rb-site (min-width: 1024px) {
50083
- :where(.theme-scope) :where([data-block="team-members"]) :where(.rb-team-members[data-layout-width="lg-3-4-left"]) {
50326
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
50327
+ :where(.theme-scope) :where([data-block="team-members"]) :where(.rb-team-members[data-layout-width="lg-3-4-left"]) {
50084
50328
  width: 75%;
50085
50329
  margin-left: 0;
50086
50330
  margin-right: auto;
50087
50331
  }
50088
50332
  }
50333
+ }
50089
50334
 
50090
50335
  :where(.theme-scope) :where([data-block="team-members"]) .rb-team-member-photo {
50091
50336
  display: block;
@@ -50160,7 +50405,8 @@ var containerResponsiveThemeCss = `/*
50160
50405
  }
50161
50406
 
50162
50407
  @container rb-site (min-width: 768px) {
50163
- /* Stack variant: enforce real column ratio at md+ (fixes transform/fallback pitfalls). */
50408
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
50409
+ /* Stack variant: enforce real column ratio at md+ (fixes transform/fallback pitfalls). */
50164
50410
  :where(.theme-scope) :where([data-block="team-members"][data-block-variant="stack"]) :where(.rb-team-member-photo-col) {
50165
50411
  flex: 0 0 var(--rb-team-image-basis);
50166
50412
  }
@@ -50184,6 +50430,7 @@ var containerResponsiveThemeCss = `/*
50184
50430
  flex-direction: row-reverse;
50185
50431
  }
50186
50432
  }
50433
+ }
50187
50434
 
50188
50435
  /* Thumbnail padding (space around image inside the item) */
50189
50436
  :where(.theme-scope) :where([data-block="team-members"]) .rb-team-members[data-thumb-pad="sm"] .rb-team-member-photo-wrap {
@@ -50386,18 +50633,19 @@ function ThemeScopeCore({
50386
50633
  children,
50387
50634
  className
50388
50635
  }) {
50389
- const isContainerResponsive = responsiveMode === "container";
50636
+ const responsiveScope = getResponsiveScopeSpec(responsiveMode);
50637
+ const isContainerResponsive = responsiveScope.kind === "container";
50390
50638
  const wrapperStyle = isContainerResponsive ? {
50391
50639
  ...cssVars,
50392
50640
  containerType: "inline-size",
50393
- containerName: THEME_RESPONSIVE_CONTAINER_NAME
50641
+ containerName: responsiveScope.containerName
50394
50642
  } : cssVars;
50395
50643
  return /* @__PURE__ */ jsxs36(
50396
50644
  "div",
50397
50645
  {
50398
50646
  className: className ? `theme-scope ${className}` : "theme-scope",
50399
50647
  style: wrapperStyle,
50400
- "data-rb-responsive-mode": responsiveMode,
50648
+ "data-rb-responsive-mode": responsiveScope.kind,
50401
50649
  ...dataAttrs,
50402
50650
  suppressHydrationWarning,
50403
50651
  children: [
@@ -50405,25 +50653,131 @@ function ThemeScopeCore({
50405
50653
  "style",
50406
50654
  {
50407
50655
  "data-container-responsive-overrides": true,
50408
- dangerouslySetInnerHTML: { __html: escapeStyleContent(containerResponsiveThemeCss) }
50656
+ dangerouslySetInnerHTML: {
50657
+ __html: escapeStyleContent(containerResponsiveThemeCss)
50658
+ }
50659
+ }
50660
+ ),
50661
+ layoutCss && /* @__PURE__ */ jsx51(
50662
+ "style",
50663
+ {
50664
+ "data-layout-styles": true,
50665
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(layoutCss) }
50666
+ }
50667
+ ),
50668
+ buttonCss && /* @__PURE__ */ jsx51(
50669
+ "style",
50670
+ {
50671
+ "data-button-effects": true,
50672
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(buttonCss) }
50673
+ }
50674
+ ),
50675
+ headerCss && /* @__PURE__ */ jsx51(
50676
+ "style",
50677
+ {
50678
+ "data-header-styles": true,
50679
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(headerCss) }
50680
+ }
50681
+ ),
50682
+ footerCss && /* @__PURE__ */ jsx51(
50683
+ "style",
50684
+ {
50685
+ "data-footer-styles": true,
50686
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(footerCss) }
50687
+ }
50688
+ ),
50689
+ cardCss && /* @__PURE__ */ jsx51(
50690
+ "style",
50691
+ {
50692
+ "data-card-styles": true,
50693
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(cardCss) }
50694
+ }
50695
+ ),
50696
+ accordionCss && /* @__PURE__ */ jsx51(
50697
+ "style",
50698
+ {
50699
+ "data-accordion-styles": true,
50700
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(accordionCss) }
50701
+ }
50702
+ ),
50703
+ inputCss && /* @__PURE__ */ jsx51(
50704
+ "style",
50705
+ {
50706
+ "data-input-styles": true,
50707
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(inputCss) }
50708
+ }
50709
+ ),
50710
+ statusCss && /* @__PURE__ */ jsx51(
50711
+ "style",
50712
+ {
50713
+ "data-status-styles": true,
50714
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(statusCss) }
50715
+ }
50716
+ ),
50717
+ progressCss && /* @__PURE__ */ jsx51(
50718
+ "style",
50719
+ {
50720
+ "data-progress-styles": true,
50721
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(progressCss) }
50722
+ }
50723
+ ),
50724
+ typographyCss && /* @__PURE__ */ jsx51(
50725
+ "style",
50726
+ {
50727
+ "data-typography-styles": true,
50728
+ dangerouslySetInnerHTML: {
50729
+ __html: escapeStyleContent(typographyCss)
50730
+ }
50731
+ }
50732
+ ),
50733
+ eventCalendarCss && /* @__PURE__ */ jsx51(
50734
+ "style",
50735
+ {
50736
+ "data-event-calendar-styles": true,
50737
+ dangerouslySetInnerHTML: {
50738
+ __html: escapeStyleContent(eventCalendarCss)
50739
+ }
50740
+ }
50741
+ ),
50742
+ blockVarsCss && /* @__PURE__ */ jsx51(
50743
+ "style",
50744
+ {
50745
+ "data-block-vars-styles": true,
50746
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(blockVarsCss) }
50747
+ }
50748
+ ),
50749
+ blockCustomVarsCss && /* @__PURE__ */ jsx51(
50750
+ "style",
50751
+ {
50752
+ "data-block-custom-vars-styles": true,
50753
+ dangerouslySetInnerHTML: {
50754
+ __html: escapeStyleContent(blockCustomVarsCss)
50755
+ }
50756
+ }
50757
+ ),
50758
+ blockCustomCss && /* @__PURE__ */ jsx51(
50759
+ "style",
50760
+ {
50761
+ "data-block-custom-styles": true,
50762
+ dangerouslySetInnerHTML: {
50763
+ __html: escapeStyleContent(blockCustomCss)
50764
+ }
50765
+ }
50766
+ ),
50767
+ atRulesCss && /* @__PURE__ */ jsx51(
50768
+ "style",
50769
+ {
50770
+ "data-at-rules-styles": true,
50771
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(atRulesCss) }
50772
+ }
50773
+ ),
50774
+ customCss && /* @__PURE__ */ jsx51(
50775
+ "style",
50776
+ {
50777
+ "data-custom-theme-styles": true,
50778
+ dangerouslySetInnerHTML: { __html: escapeStyleContent(customCss) }
50409
50779
  }
50410
50780
  ),
50411
- layoutCss && /* @__PURE__ */ jsx51("style", { "data-layout-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(layoutCss) } }),
50412
- buttonCss && /* @__PURE__ */ jsx51("style", { "data-button-effects": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(buttonCss) } }),
50413
- headerCss && /* @__PURE__ */ jsx51("style", { "data-header-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(headerCss) } }),
50414
- footerCss && /* @__PURE__ */ jsx51("style", { "data-footer-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(footerCss) } }),
50415
- cardCss && /* @__PURE__ */ jsx51("style", { "data-card-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(cardCss) } }),
50416
- accordionCss && /* @__PURE__ */ jsx51("style", { "data-accordion-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(accordionCss) } }),
50417
- inputCss && /* @__PURE__ */ jsx51("style", { "data-input-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(inputCss) } }),
50418
- statusCss && /* @__PURE__ */ jsx51("style", { "data-status-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(statusCss) } }),
50419
- progressCss && /* @__PURE__ */ jsx51("style", { "data-progress-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(progressCss) } }),
50420
- typographyCss && /* @__PURE__ */ jsx51("style", { "data-typography-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(typographyCss) } }),
50421
- eventCalendarCss && /* @__PURE__ */ jsx51("style", { "data-event-calendar-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(eventCalendarCss) } }),
50422
- blockVarsCss && /* @__PURE__ */ jsx51("style", { "data-block-vars-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(blockVarsCss) } }),
50423
- blockCustomVarsCss && /* @__PURE__ */ jsx51("style", { "data-block-custom-vars-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(blockCustomVarsCss) } }),
50424
- blockCustomCss && /* @__PURE__ */ jsx51("style", { "data-block-custom-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(blockCustomCss) } }),
50425
- atRulesCss && /* @__PURE__ */ jsx51("style", { "data-at-rules-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(atRulesCss) } }),
50426
- customCss && /* @__PURE__ */ jsx51("style", { "data-custom-theme-styles": true, dangerouslySetInnerHTML: { __html: escapeStyleContent(customCss) } }),
50427
50781
  children
50428
50782
  ]
50429
50783
  }
@@ -51633,7 +51987,7 @@ var SimpleCache = class {
51633
51987
  };
51634
51988
 
51635
51989
  // src/version.ts
51636
- var SDK_VERSION = "0.60.0";
51990
+ var SDK_VERSION = "0.60.1";
51637
51991
 
51638
51992
  // src/client/error.ts
51639
51993
  var RiverbankApiError = class _RiverbankApiError extends Error {