@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
@@ -3,19 +3,20 @@
3
3
  *
4
4
  * Re-exports commonly used theme utilities, types, and components.
5
5
  */
6
- export * from './schema';
7
- export * from './fonts';
8
- export { ThemeScope } from './ThemeScope';
9
- export { DEFAULT_THEME_RESPONSIVE_MODE, type ThemeResponsiveMode, } from './responsiveMode';
10
- export * from './responsive/breakpoints';
11
- export { ThemeFontLoader, ThemeFontLoaderFromTheme, getThemeFontLoadingOptions, type ThemeFontLoadingOptions, type ThemeFontLoaderFromThemeProps, } from './ThemeFontLoader';
12
- export { ThemeScopeCore, type ThemeScopeCoreProps } from './ThemeScopeCore';
13
- export { type ThemeDataAttrs } from './themeScopeUtils';
14
- export { buildThemeRuntime } from './runtime/buildThemeRuntime';
15
- export { buildThemeRuntimeFromBridge, type ThemeBridgeConfigMinimal, } from './runtime/buildThemeRuntimeFromBridge';
16
- export type { CornerStyle, ShadowSize, TextTransform, FontWeight, HoverTransform, HoverColor, GradientStyle, GradientSharpness, GradientDirection, ButtonVariant, ButtonSystem, } from './buttons/types';
17
- export { mockThemes } from './mock-themes/all';
18
- export { modernMinimalTheme } from './mock-themes/modern-minimal';
19
- export { classicProfessionalTheme } from './mock-themes/classic-professional';
20
- export { vibrantCreativeTheme } from './mock-themes/vibrant-creative';
21
- export * from './customCss';
6
+ export * from "./schema";
7
+ export * from "./fonts";
8
+ export { ThemeScope } from "./ThemeScope";
9
+ export { DEFAULT_THEME_RESPONSIVE_MODE, THEME_RESPONSIVE_CONTAINER_NAME, getResponsiveScopeSpec, type ResponsiveScopeSpec, type ThemeResponsiveMode, } from "./responsiveMode";
10
+ export { desktopOnlyDisplay, mobileOnlyDisplay, type ResponsiveDisplay, } from "./responsiveDisplay";
11
+ export * from "./responsive/breakpoints";
12
+ export { ThemeFontLoader, ThemeFontLoaderFromTheme, getThemeFontLoadingOptions, type ThemeFontLoadingOptions, type ThemeFontLoaderFromThemeProps, } from "./ThemeFontLoader";
13
+ export { ThemeScopeCore, type ThemeScopeCoreProps } from "./ThemeScopeCore";
14
+ export { type ThemeDataAttrs } from "./themeScopeUtils";
15
+ export { buildThemeRuntime } from "./runtime/buildThemeRuntime";
16
+ export { buildThemeRuntimeFromBridge, type ThemeBridgeConfigMinimal, } from "./runtime/buildThemeRuntimeFromBridge";
17
+ export type { CornerStyle, ShadowSize, TextTransform, FontWeight, HoverTransform, HoverColor, GradientStyle, GradientSharpness, GradientDirection, ButtonVariant, ButtonSystem, } from "./buttons/types";
18
+ export { mockThemes } from "./mock-themes/all";
19
+ export { modernMinimalTheme } from "./mock-themes/modern-minimal";
20
+ export { classicProfessionalTheme } from "./mock-themes/classic-professional";
21
+ export { vibrantCreativeTheme } from "./mock-themes/vibrant-creative";
22
+ export * from "./customCss";
@@ -0,0 +1,23 @@
1
+ declare const BASE_DISPLAY_CLASSES: {
2
+ readonly block: "rb-block";
3
+ readonly flex: "rb-flex";
4
+ readonly "inline-block": "rb-inline-block";
5
+ readonly "inline-flex": "rb-inline-flex";
6
+ readonly grid: "rb-grid";
7
+ };
8
+ export type ResponsiveDisplay = keyof typeof BASE_DISPLAY_CLASSES;
9
+ /**
10
+ * Build a class pair for content that should render below the large breakpoint.
11
+ *
12
+ * The base display class is always included so callers cannot accidentally
13
+ * express "mobile-only" visibility without a display mode for the visible state.
14
+ */
15
+ export declare function mobileOnlyDisplay(display: ResponsiveDisplay): string;
16
+ /**
17
+ * Build a class pair for content that should render from the large breakpoint up.
18
+ *
19
+ * The hidden base class ensures the element stays out of the mobile layout until
20
+ * the large-breakpoint display class takes over.
21
+ */
22
+ export declare function desktopOnlyDisplay(display: ResponsiveDisplay): string;
23
+ export {};
@@ -1,3 +1,24 @@
1
1
  export type ThemeResponsiveMode = "viewport" | "container";
2
2
  export declare const DEFAULT_THEME_RESPONSIVE_MODE: ThemeResponsiveMode;
3
3
  export declare const THEME_RESPONSIVE_CONTAINER_NAME = "rb-site";
4
+ export declare const THEME_RESPONSIVE_MODE_ATTR = "data-rb-responsive-mode";
5
+ export type ResponsiveScopeSpec = {
6
+ kind: "viewport";
7
+ selector: `[${typeof THEME_RESPONSIVE_MODE_ATTR}="viewport"]`;
8
+ } | {
9
+ kind: "container";
10
+ selector: `[${typeof THEME_RESPONSIVE_MODE_ATTR}="container"]`;
11
+ containerName: typeof THEME_RESPONSIVE_CONTAINER_NAME;
12
+ };
13
+ export type ContainerResponsiveScopeSpec = Extract<ResponsiveScopeSpec, {
14
+ kind: "container";
15
+ }>;
16
+ export declare function getResponsiveScopeSpec(mode?: ThemeResponsiveMode): ResponsiveScopeSpec;
17
+ export declare function getContainerResponsiveScopeSpec(): ContainerResponsiveScopeSpec;
18
+ export declare function buildResponsiveScopeRule(spec: ResponsiveScopeSpec, css: string): string;
19
+ export declare function buildResponsiveScopePrelude(spec: ResponsiveScopeSpec): string;
20
+ export declare function findResponsiveScopeRuleAt(css: string, index: number): {
21
+ openBraceIndex: number;
22
+ } | null;
23
+ export declare function hasResponsiveScopeRule(css: string): boolean;
24
+ export declare function retargetResponsiveScopeRules(css: string, spec: ResponsiveScopeSpec): string;
@@ -6,6 +6,7 @@ export * from './designState';
6
6
  export * from './generatedSchemas';
7
7
  export * from './generatedDesignPipeline';
8
8
  export * from './pageDesignAuthority';
9
+ export * from './pageDesignEditorErrors';
9
10
  export * from './pageDesignEditorModel';
10
11
  export * from './pageDesignIntent';
11
12
  export * from './previewCustomization';
@@ -0,0 +1 @@
1
+ export declare const PAGE_DESIGN_EDITOR_STATE_FETCH_ERROR_MESSAGE = "Something went wrong fetching the page design state";
@@ -8,7 +8,7 @@ export type CommandMultiSelectProps = Readonly<{
8
8
  values: readonly string[];
9
9
  onValuesChange: (values: string[]) => void;
10
10
  placeholder: string;
11
- 'aria-describedby'?: string;
11
+ "aria-describedby"?: string;
12
12
  disabled?: boolean;
13
13
  emptyLabel?: string;
14
14
  isLoading?: boolean;
@@ -25,4 +25,4 @@ export type CommandMultiSelectProps = Readonly<{
25
25
  searchPlaceholder?: string;
26
26
  searchInputAriaLabel?: string;
27
27
  }>;
28
- export declare function CommandMultiSelect({ items, values, onValuesChange, placeholder, 'aria-describedby': ariaDescribedBy, disabled, emptyLabel, isLoading, loadingLabel, error, emptySelectionLabel, selectedSummary, showBadges, helpText, className, triggerClassName, popoverContentClassName, showSearch, searchPlaceholder, searchInputAriaLabel, }: CommandMultiSelectProps): import("react/jsx-runtime").JSX.Element;
28
+ export declare function CommandMultiSelect({ items, values, onValuesChange, placeholder, "aria-describedby": ariaDescribedBy, disabled, emptyLabel, isLoading, loadingLabel, error, emptySelectionLabel, selectedSummary, showBadges, helpText, className, triggerClassName, popoverContentClassName, showSearch, searchPlaceholder, searchInputAriaLabel, }: CommandMultiSelectProps): import("react/jsx-runtime").JSX.Element;
@@ -7799,6 +7799,40 @@ var init_colorConversion = __esm({
7799
7799
  }
7800
7800
  });
7801
7801
 
7802
+ // ../theme-core/src/responsiveDisplay.ts
7803
+ function mobileOnlyDisplay(display) {
7804
+ return `${BASE_DISPLAY_CLASSES[display]} rb-lg-hidden`;
7805
+ }
7806
+ function desktopOnlyDisplay(display) {
7807
+ return `rb-hidden ${LARGE_DISPLAY_CLASSES[display]}`;
7808
+ }
7809
+ var BASE_DISPLAY_CLASSES, LARGE_DISPLAY_CLASSES;
7810
+ var init_responsiveDisplay = __esm({
7811
+ "../theme-core/src/responsiveDisplay.ts"() {
7812
+ BASE_DISPLAY_CLASSES = {
7813
+ block: "rb-block",
7814
+ flex: "rb-flex",
7815
+ "inline-block": "rb-inline-block",
7816
+ "inline-flex": "rb-inline-flex",
7817
+ grid: "rb-grid"
7818
+ };
7819
+ LARGE_DISPLAY_CLASSES = {
7820
+ block: "rb-lg-block",
7821
+ flex: "rb-lg-flex",
7822
+ "inline-block": "rb-lg-inline-block",
7823
+ "inline-flex": "rb-lg-inline-flex",
7824
+ grid: "rb-lg-grid"
7825
+ };
7826
+ }
7827
+ });
7828
+
7829
+ // ../blocks/src/system/runtime/header/shared.ts
7830
+ var init_shared2 = __esm({
7831
+ "../blocks/src/system/runtime/header/shared.ts"() {
7832
+ init_responsiveDisplay();
7833
+ }
7834
+ });
7835
+
7802
7836
  // ../blocks/src/system/blocks/events/shared/types.ts
7803
7837
  var init_types7 = __esm({
7804
7838
  "../blocks/src/system/blocks/events/shared/types.ts"() {
@@ -8343,7 +8377,7 @@ var init_filtering = __esm({
8343
8377
  });
8344
8378
 
8345
8379
  // ../blocks/src/system/blocks/events/shared/index.ts
8346
- var init_shared2 = __esm({
8380
+ var init_shared3 = __esm({
8347
8381
  "../blocks/src/system/blocks/events/shared/index.ts"() {
8348
8382
  init_types7();
8349
8383
  init_schemas2();
@@ -8480,7 +8514,7 @@ var init_event_registration = __esm({
8480
8514
  init_styledSection();
8481
8515
  init_fragments();
8482
8516
  init_api_bindings();
8483
- init_shared2();
8517
+ init_shared3();
8484
8518
  init_defineBlock();
8485
8519
  init_event_registration_shared();
8486
8520
  init_event_registration_interactive();
@@ -8684,7 +8718,7 @@ var init_pricing = __esm({
8684
8718
  });
8685
8719
 
8686
8720
  // ../blocks/src/system/blocks/courses/shared/index.ts
8687
- var init_shared3 = __esm({
8721
+ var init_shared4 = __esm({
8688
8722
  "../blocks/src/system/blocks/courses/shared/index.ts"() {
8689
8723
  init_types8();
8690
8724
  init_schemas();
@@ -8809,7 +8843,7 @@ var init_course_registration = __esm({
8809
8843
  init_styledSection();
8810
8844
  init_fragments();
8811
8845
  init_api_bindings();
8812
- init_shared3();
8846
+ init_shared4();
8813
8847
  init_defineBlock();
8814
8848
  init_course_registration_interactive();
8815
8849
  courseRegistrationManifest = createBlockManifest({
@@ -9184,7 +9218,7 @@ var init_media2 = __esm({
9184
9218
  });
9185
9219
 
9186
9220
  // ../blocks/src/system/runtime/nodes/events/shared/index.ts
9187
- var init_shared4 = __esm({
9221
+ var init_shared5 = __esm({
9188
9222
  "../blocks/src/system/runtime/nodes/events/shared/index.ts"() {
9189
9223
  init_utils();
9190
9224
  }
@@ -9193,10 +9227,10 @@ var cardVariantSchema2, cardOrientationSchema, eventBlockKindSchema, eventSurfac
9193
9227
  var init_EventListing_interactive = __esm({
9194
9228
  "../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts"() {
9195
9229
  init_schemas2();
9196
- init_shared2();
9230
+ init_shared3();
9197
9231
  init_islands();
9198
9232
  init_runtime();
9199
- init_shared4();
9233
+ init_shared5();
9200
9234
  init_contract_schemas();
9201
9235
  cardVariantSchema2 = z.enum(["default", "variant1", "variant2"]);
9202
9236
  cardOrientationSchema = z.enum(["vertical", "horizontal"]);
@@ -9356,7 +9390,7 @@ var init_event_listing = __esm({
9356
9390
  init_api_bindings();
9357
9391
  init_defineBlock();
9358
9392
  init_EventListing_interactive();
9359
- init_shared2();
9393
+ init_shared3();
9360
9394
  eventListingManifest = createBlockManifest({
9361
9395
  id: "block.event-listing",
9362
9396
  version: "1.1.0",
@@ -9634,7 +9668,7 @@ var displayModeSchema, eventBlockKindSchema2, eventSurfaceScopeSchema2, eventSch
9634
9668
  var init_EventCalendar_interactive = __esm({
9635
9669
  "../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts"() {
9636
9670
  init_schemas2();
9637
- init_shared2();
9671
+ init_shared3();
9638
9672
  init_islands();
9639
9673
  init_runtime();
9640
9674
  init_contract_schemas();
@@ -9777,7 +9811,7 @@ var init_event_calendar = __esm({
9777
9811
  init_boxStyles();
9778
9812
  init_api_bindings();
9779
9813
  init_defineBlock();
9780
- init_shared2();
9814
+ init_shared3();
9781
9815
  init_EventCalendar_interactive();
9782
9816
  eventCalendarManifest = createBlockManifest({
9783
9817
  id: "block.event-calendar",
@@ -10003,6 +10037,21 @@ var init_event_calendar = __esm({
10003
10037
  visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
10004
10038
  }
10005
10039
  },
10040
+ {
10041
+ id: "showCapacity",
10042
+ type: "boolean",
10043
+ label: "Show available spots",
10044
+ description: "Display remaining capacity on event cards and timetable cells",
10045
+ required: false,
10046
+ defaultValue: true,
10047
+ ui: {
10048
+ intent: "display",
10049
+ visibleWhen: {
10050
+ field: "displayMode",
10051
+ oneOf: ["combined", "list", "week", "timetable"]
10052
+ }
10053
+ }
10054
+ },
10006
10055
  // Block-level pre-filtering
10007
10056
  {
10008
10057
  id: "eventSurface",
@@ -10194,6 +10243,9 @@ var init_event_calendar = __esm({
10194
10243
  showStaffFilter: {
10195
10244
  $bind: { from: "content.showStaffFilter", fallback: true }
10196
10245
  },
10246
+ showCapacity: {
10247
+ $bind: { from: "content.showCapacity", fallback: true }
10248
+ },
10197
10249
  kind: { $bind: { from: "content.kind", fallback: "all" } },
10198
10250
  eventSurface: {
10199
10251
  $bind: { from: "content.eventSurface", fallback: "all" }
@@ -10264,7 +10316,7 @@ var init_event_calendar = __esm({
10264
10316
  }
10265
10317
  });
10266
10318
  var publicProductVariantSchema, publicProductSchema, publicProductsResponseSchema;
10267
- var init_shared5 = __esm({
10319
+ var init_shared6 = __esm({
10268
10320
  "../blocks/src/system/blocks/products/shared.ts"() {
10269
10321
  publicProductVariantSchema = z.object({
10270
10322
  id: z.string(),
@@ -10651,7 +10703,7 @@ var shopModeSchema, contentEntrySchema3, shopSourceSchema, productVariantOptionD
10651
10703
  var init_shop_interactive = __esm({
10652
10704
  "../blocks/src/system/runtime/nodes/shop.interactive.ts"() {
10653
10705
  init_shop_shared();
10654
- init_shared5();
10706
+ init_shared6();
10655
10707
  init_display();
10656
10708
  init_shop_commerce_shared();
10657
10709
  init_islands();
@@ -11245,7 +11297,7 @@ var init_product_list = __esm({
11245
11297
  init_api_bindings();
11246
11298
  init_defineBlock();
11247
11299
  init_shop_interactive();
11248
- init_shared5();
11300
+ init_shared6();
11249
11301
  productListManifest = createBlockManifest({
11250
11302
  id: "block.product-list",
11251
11303
  version: "1.0.0",
@@ -11404,7 +11456,7 @@ var init_product_detail = __esm({
11404
11456
  init_api_bindings();
11405
11457
  init_defineBlock();
11406
11458
  init_shop_interactive();
11407
- init_shared5();
11459
+ init_shared6();
11408
11460
  productDetailManifest = createBlockManifest({
11409
11461
  id: "block.product-detail",
11410
11462
  version: "1.0.0",
@@ -13014,8 +13066,34 @@ var init_compile = __esm({
13014
13066
  });
13015
13067
 
13016
13068
  // ../theme-core/src/responsiveMode.ts
13069
+ function escapeRegExp(value) {
13070
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
13071
+ }
13072
+ function buildResponsiveScopeRulePatternSource() {
13073
+ return [
13074
+ "@scope",
13075
+ "\\(\\[",
13076
+ escapeRegExp(THEME_RESPONSIVE_MODE_ATTR),
13077
+ '="(?:viewport|container)"\\]\\)',
13078
+ "to",
13079
+ "\\((?::scope )?\\[",
13080
+ escapeRegExp(THEME_RESPONSIVE_MODE_ATTR),
13081
+ "\\]\\)",
13082
+ "\\{"
13083
+ ].join("\\s*");
13084
+ }
13085
+ var THEME_RESPONSIVE_MODE_ATTR;
13017
13086
  var init_responsiveMode = __esm({
13018
13087
  "../theme-core/src/responsiveMode.ts"() {
13088
+ THEME_RESPONSIVE_MODE_ATTR = "data-rb-responsive-mode";
13089
+ new RegExp(
13090
+ buildResponsiveScopeRulePatternSource(),
13091
+ "g"
13092
+ );
13093
+ new RegExp(
13094
+ buildResponsiveScopeRulePatternSource(),
13095
+ "y"
13096
+ );
13019
13097
  }
13020
13098
  });
13021
13099
 
@@ -14193,7 +14271,7 @@ var ENDPOINT_DEFINITIONS = {
14193
14271
  responseKind: "void"
14194
14272
  },
14195
14273
  googleCalendarCallback: {
14196
- path: "/sites/{siteId}/bookings/calendar/google/callback",
14274
+ path: "/bookings/calendar/google/callback",
14197
14275
  method: "GET",
14198
14276
  auth: "user",
14199
14277
  responseKind: "void"
@@ -23979,6 +24057,7 @@ function bindProp(from, opts) {
23979
24057
 
23980
24058
  // ../blocks/src/system/blocks/site-header.ts
23981
24059
  init_defineBlock();
24060
+ init_shared2();
23982
24061
  init_colorStyles();
23983
24062
  var logoRow = link(
23984
24063
  {
@@ -24059,7 +24138,7 @@ var headerCta = ctaButton({
24059
24138
  whenPath: "menu.ctaItem.label",
24060
24139
  variantPath: "menu.ctaItem.variant",
24061
24140
  linkPath: "menu.ctaItem.link",
24062
- className: "header-cta btn-sm rb-hidden rb-lg-inline-flex rb-ml-6"
24141
+ className: `header-cta btn-sm ${desktopOnlyDisplay("inline-flex")} rb-ml-6`
24063
24142
  });
24064
24143
  var mobileCta = ctaButton({
24065
24144
  basePath: "menu.ctaItem",
@@ -24087,7 +24166,7 @@ var mobileToggleButton = {
24087
24166
  props: {
24088
24167
  type: "button",
24089
24168
  variantId: "",
24090
- 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",
24169
+ 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`,
24091
24170
  "aria-label": "Open menu",
24092
24171
  "aria-expanded": "false",
24093
24172
  "aria-controls": "nav-mobile-overlay",
@@ -24142,7 +24221,7 @@ var mobileOverlay = {
24142
24221
  type: "div",
24143
24222
  props: {
24144
24223
  id: "nav-mobile-overlay",
24145
- className: "nav-mobile-overlay rb-fixed rb-inset-0 rb-z-50 rb-lg-hidden",
24224
+ className: `nav-mobile-overlay ${mobileOnlyDisplay("block")} rb-fixed rb-inset-0 rb-z-50`,
24146
24225
  role: "dialog",
24147
24226
  "aria-modal": "true",
24148
24227
  "aria-label": "Main menu",
@@ -24171,10 +24250,10 @@ var mobileHeaderBar = inline(
24171
24250
  className: bindProp("$root.theme.header.maxWidth", {
24172
24251
  transforms: pipe(
24173
24252
  tx("layout.maxWidthClass", {
24174
- base: "rb-header-layout rb-flex rb-w-full rb-items-center rb-justify-between rb-lg-hidden"
24253
+ base: `rb-header-layout ${mobileOnlyDisplay("flex")} rb-w-full rb-items-center rb-justify-between`
24175
24254
  })
24176
24255
  ),
24177
- fallback: "rb-container rb-header-layout rb-flex rb-w-full rb-items-center rb-justify-between rb-lg-hidden"
24256
+ fallback: `rb-container rb-header-layout ${mobileOnlyDisplay("flex")} rb-w-full rb-items-center rb-justify-between`
24178
24257
  }),
24179
24258
  align: "center",
24180
24259
  justify: "between"
@@ -24186,16 +24265,16 @@ var classicLayout2 = inline(
24186
24265
  className: bindProp("$root.theme.header.maxWidth", {
24187
24266
  transforms: pipe(
24188
24267
  tx("layout.maxWidthClass", {
24189
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
24268
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
24190
24269
  })
24191
24270
  ),
24192
- fallback: "rb-container rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
24271
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
24193
24272
  }),
24194
24273
  align: "center"
24195
24274
  },
24196
24275
  [
24197
24276
  logoRow,
24198
- createNavRow("rb-ml-auto rb-hidden rb-lg-flex rb-gap-6"),
24277
+ createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
24199
24278
  headerCta
24200
24279
  ],
24201
24280
  when("$root.theme.header.variant", { equals: "classic" })
@@ -24207,16 +24286,16 @@ var centeredLayout = stack(
24207
24286
  className: bindProp("$root.theme.header.maxWidth", {
24208
24287
  transforms: pipe(
24209
24288
  tx("layout.maxWidthClass", {
24210
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center"
24289
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center`
24211
24290
  })
24212
24291
  ),
24213
- 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"
24292
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center`
24214
24293
  })
24215
24294
  },
24216
24295
  [
24217
24296
  centeredLogoRow,
24218
24297
  createNavRow(
24219
- "rb-hidden rb-lg-flex rb-flex-wrap rb-justify-center rb-gap-x-6 rb-gap-y-3",
24298
+ `${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-6 rb-gap-y-3`,
24220
24299
  "center"
24221
24300
  )
24222
24301
  ],
@@ -24227,16 +24306,16 @@ var transparentLayout = inline(
24227
24306
  className: bindProp("$root.theme.header.maxWidth", {
24228
24307
  transforms: pipe(
24229
24308
  tx("layout.maxWidthClass", {
24230
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
24309
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
24231
24310
  })
24232
24311
  ),
24233
- fallback: "rb-container rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
24312
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
24234
24313
  }),
24235
24314
  align: "center"
24236
24315
  },
24237
24316
  [
24238
24317
  logoRow,
24239
- createNavRow("rb-ml-auto rb-hidden rb-lg-flex rb-gap-6"),
24318
+ createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
24240
24319
  headerCta
24241
24320
  ],
24242
24321
  when("$root.theme.header.variant", { equals: "transparent" })
@@ -24246,18 +24325,18 @@ var floatingLayout = inline(
24246
24325
  className: bindProp("$root.theme.header.maxWidth", {
24247
24326
  transforms: pipe(
24248
24327
  tx("layout.maxWidthClass", {
24249
- 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",
24328
+ 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`,
24250
24329
  container: "",
24251
24330
  full: ""
24252
24331
  })
24253
24332
  ),
24254
- 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"
24333
+ 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`
24255
24334
  }),
24256
24335
  align: "center"
24257
24336
  },
24258
24337
  [
24259
24338
  logoRow,
24260
- createNavRow("rb-ml-auto rb-hidden rb-lg-flex rb-gap-6"),
24339
+ createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
24261
24340
  headerCta
24262
24341
  ],
24263
24342
  when("$root.theme.header.variant", { equals: "floating" })
@@ -24269,16 +24348,16 @@ var editorialLayout = stack(
24269
24348
  className: bindProp("$root.theme.header.maxWidth", {
24270
24349
  transforms: pipe(
24271
24350
  tx("layout.maxWidthClass", {
24272
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center"
24351
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
24273
24352
  })
24274
24353
  ),
24275
- 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"
24354
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
24276
24355
  })
24277
24356
  },
24278
24357
  [
24279
24358
  centeredLogoRow,
24280
24359
  createNavRow(
24281
- "rb-hidden rb-lg-flex rb-flex-wrap rb-justify-center rb-gap-x-8 rb-gap-y-3",
24360
+ `${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-8 rb-gap-y-3`,
24282
24361
  "center"
24283
24362
  )
24284
24363
  ],
@@ -25787,7 +25866,7 @@ init_builder();
25787
25866
  init_builder();
25788
25867
  init_styledSection();
25789
25868
  init_fragments();
25790
- init_shared2();
25869
+ init_shared3();
25791
25870
  init_shop_shared();
25792
25871
  init_defineBlock();
25793
25872
  var eventDetailsManifest = createBlockManifest({
@@ -25957,7 +26036,7 @@ var eventDetailsBlockDefinition = {
25957
26036
  init_builder();
25958
26037
  init_styledSection();
25959
26038
  init_fragments();
25960
- init_shared3();
26039
+ init_shared4();
25961
26040
  init_defineBlock();
25962
26041
  var courseDetailsManifest = createBlockManifest({
25963
26042
  id: "block.course-details",
@@ -26139,7 +26218,7 @@ var courseDetailsBlockDefinition = {
26139
26218
  };
26140
26219
 
26141
26220
  // ../blocks/src/system/blocks/events/index.ts
26142
- init_shared2();
26221
+ init_shared3();
26143
26222
 
26144
26223
  // ../blocks/src/system/blocks/events/event-spotlight.ts
26145
26224
  init_builder();
@@ -26148,7 +26227,7 @@ init_styledSection();
26148
26227
  init_fragments();
26149
26228
  init_boxStyles();
26150
26229
  init_defineBlock();
26151
- init_shared2();
26230
+ init_shared3();
26152
26231
  var eventSpotlightManifest = createBlockManifest({
26153
26232
  id: "block.event-spotlight",
26154
26233
  version: "1.1.0",
@@ -43364,6 +43443,7 @@ init_load_config();
43364
43443
 
43365
43444
  // ../theme-core/src/index.ts
43366
43445
  init_responsiveMode();
43446
+ init_responsiveDisplay();
43367
43447
  init_breakpoints();
43368
43448
  init_ThemeScopeCore();
43369
43449
  init_buildThemeRuntime();
@@ -43489,7 +43569,7 @@ var SimpleCache = class {
43489
43569
  };
43490
43570
 
43491
43571
  // src/version.ts
43492
- var SDK_VERSION = "0.60.0";
43572
+ var SDK_VERSION = "0.60.1";
43493
43573
 
43494
43574
  // src/client/error.ts
43495
43575
  var RiverbankApiError = class _RiverbankApiError extends Error {
@@ -7463,6 +7463,33 @@ var customCssAtRuleSchema = z8.discriminatedUnion("type", [
7463
7463
  ]);
7464
7464
  var customCssAtRulesSchema = z8.array(customCssAtRuleSchema).optional();
7465
7465
 
7466
+ // ../theme-core/src/responsiveMode.ts
7467
+ var THEME_RESPONSIVE_MODE_ATTR = "data-rb-responsive-mode";
7468
+ function escapeRegExp(value) {
7469
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
7470
+ }
7471
+ var RESPONSIVE_SCOPE_RULE_PATTERN = new RegExp(
7472
+ buildResponsiveScopeRulePatternSource(),
7473
+ "g"
7474
+ );
7475
+ var RESPONSIVE_SCOPE_RULE_AT_PATTERN = new RegExp(
7476
+ buildResponsiveScopeRulePatternSource(),
7477
+ "y"
7478
+ );
7479
+ function buildResponsiveScopeRulePatternSource() {
7480
+ return [
7481
+ "@scope",
7482
+ "\\(\\[",
7483
+ escapeRegExp(THEME_RESPONSIVE_MODE_ATTR),
7484
+ '="(?:viewport|container)"\\]\\)',
7485
+ "to",
7486
+ "\\((?::scope )?\\[",
7487
+ escapeRegExp(THEME_RESPONSIVE_MODE_ATTR),
7488
+ "\\]\\)",
7489
+ "\\{"
7490
+ ].join("\\s*");
7491
+ }
7492
+
7466
7493
  // ../theme-core/src/ThemeScopeCore.tsx
7467
7494
  import { jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
7468
7495