@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
@@ -1026,7 +1026,7 @@ var ENDPOINT_DEFINITIONS = {
1026
1026
  responseKind: "void"
1027
1027
  },
1028
1028
  googleCalendarCallback: {
1029
- path: "/sites/{siteId}/bookings/calendar/google/callback",
1029
+ path: "/bookings/calendar/google/callback",
1030
1030
  method: "GET",
1031
1031
  auth: "user",
1032
1032
  responseKind: "void"
@@ -16691,6 +16691,28 @@ function bindProp(from, opts) {
16691
16691
  };
16692
16692
  }
16693
16693
 
16694
+ // ../theme-core/src/responsiveDisplay.ts
16695
+ var BASE_DISPLAY_CLASSES = {
16696
+ block: "rb-block",
16697
+ flex: "rb-flex",
16698
+ "inline-block": "rb-inline-block",
16699
+ "inline-flex": "rb-inline-flex",
16700
+ grid: "rb-grid"
16701
+ };
16702
+ var LARGE_DISPLAY_CLASSES = {
16703
+ block: "rb-lg-block",
16704
+ flex: "rb-lg-flex",
16705
+ "inline-block": "rb-lg-inline-block",
16706
+ "inline-flex": "rb-lg-inline-flex",
16707
+ grid: "rb-lg-grid"
16708
+ };
16709
+ function mobileOnlyDisplay(display) {
16710
+ return `${BASE_DISPLAY_CLASSES[display]} rb-lg-hidden`;
16711
+ }
16712
+ function desktopOnlyDisplay(display) {
16713
+ return `rb-hidden ${LARGE_DISPLAY_CLASSES[display]}`;
16714
+ }
16715
+
16694
16716
  // ../blocks/src/system/blocks/site-header.ts
16695
16717
  var logoRow = link(
16696
16718
  {
@@ -16771,7 +16793,7 @@ var headerCta = ctaButton({
16771
16793
  whenPath: "menu.ctaItem.label",
16772
16794
  variantPath: "menu.ctaItem.variant",
16773
16795
  linkPath: "menu.ctaItem.link",
16774
- className: "header-cta btn-sm rb-hidden rb-lg-inline-flex rb-ml-6"
16796
+ className: `header-cta btn-sm ${desktopOnlyDisplay("inline-flex")} rb-ml-6`
16775
16797
  });
16776
16798
  var mobileCta = ctaButton({
16777
16799
  basePath: "menu.ctaItem",
@@ -16799,7 +16821,7 @@ var mobileToggleButton = {
16799
16821
  props: {
16800
16822
  type: "button",
16801
16823
  variantId: "",
16802
- 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",
16824
+ 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`,
16803
16825
  "aria-label": "Open menu",
16804
16826
  "aria-expanded": "false",
16805
16827
  "aria-controls": "nav-mobile-overlay",
@@ -16854,7 +16876,7 @@ var mobileOverlay = {
16854
16876
  type: "div",
16855
16877
  props: {
16856
16878
  id: "nav-mobile-overlay",
16857
- className: "nav-mobile-overlay rb-fixed rb-inset-0 rb-z-50 rb-lg-hidden",
16879
+ className: `nav-mobile-overlay ${mobileOnlyDisplay("block")} rb-fixed rb-inset-0 rb-z-50`,
16858
16880
  role: "dialog",
16859
16881
  "aria-modal": "true",
16860
16882
  "aria-label": "Main menu",
@@ -16883,10 +16905,10 @@ var mobileHeaderBar = inline(
16883
16905
  className: bindProp("$root.theme.header.maxWidth", {
16884
16906
  transforms: pipe(
16885
16907
  tx("layout.maxWidthClass", {
16886
- base: "rb-header-layout rb-flex rb-w-full rb-items-center rb-justify-between rb-lg-hidden"
16908
+ base: `rb-header-layout ${mobileOnlyDisplay("flex")} rb-w-full rb-items-center rb-justify-between`
16887
16909
  })
16888
16910
  ),
16889
- fallback: "rb-container rb-header-layout rb-flex rb-w-full rb-items-center rb-justify-between rb-lg-hidden"
16911
+ fallback: `rb-container rb-header-layout ${mobileOnlyDisplay("flex")} rb-w-full rb-items-center rb-justify-between`
16890
16912
  }),
16891
16913
  align: "center",
16892
16914
  justify: "between"
@@ -16898,16 +16920,16 @@ var classicLayout2 = inline(
16898
16920
  className: bindProp("$root.theme.header.maxWidth", {
16899
16921
  transforms: pipe(
16900
16922
  tx("layout.maxWidthClass", {
16901
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
16923
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
16902
16924
  })
16903
16925
  ),
16904
- fallback: "rb-container rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
16926
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
16905
16927
  }),
16906
16928
  align: "center"
16907
16929
  },
16908
16930
  [
16909
16931
  logoRow,
16910
- createNavRow("rb-ml-auto rb-hidden rb-lg-flex rb-gap-6"),
16932
+ createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
16911
16933
  headerCta
16912
16934
  ],
16913
16935
  when("$root.theme.header.variant", { equals: "classic" })
@@ -16919,16 +16941,16 @@ var centeredLayout = stack(
16919
16941
  className: bindProp("$root.theme.header.maxWidth", {
16920
16942
  transforms: pipe(
16921
16943
  tx("layout.maxWidthClass", {
16922
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center"
16944
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center`
16923
16945
  })
16924
16946
  ),
16925
- 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"
16947
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center`
16926
16948
  })
16927
16949
  },
16928
16950
  [
16929
16951
  centeredLogoRow,
16930
16952
  createNavRow(
16931
- "rb-hidden rb-lg-flex rb-flex-wrap rb-justify-center rb-gap-x-6 rb-gap-y-3",
16953
+ `${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-6 rb-gap-y-3`,
16932
16954
  "center"
16933
16955
  )
16934
16956
  ],
@@ -16939,16 +16961,16 @@ var transparentLayout = inline(
16939
16961
  className: bindProp("$root.theme.header.maxWidth", {
16940
16962
  transforms: pipe(
16941
16963
  tx("layout.maxWidthClass", {
16942
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
16964
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
16943
16965
  })
16944
16966
  ),
16945
- fallback: "rb-container rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
16967
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
16946
16968
  }),
16947
16969
  align: "center"
16948
16970
  },
16949
16971
  [
16950
16972
  logoRow,
16951
- createNavRow("rb-ml-auto rb-hidden rb-lg-flex rb-gap-6"),
16973
+ createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
16952
16974
  headerCta
16953
16975
  ],
16954
16976
  when("$root.theme.header.variant", { equals: "transparent" })
@@ -16958,18 +16980,18 @@ var floatingLayout = inline(
16958
16980
  className: bindProp("$root.theme.header.maxWidth", {
16959
16981
  transforms: pipe(
16960
16982
  tx("layout.maxWidthClass", {
16961
- 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",
16983
+ 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`,
16962
16984
  container: "",
16963
16985
  full: ""
16964
16986
  })
16965
16987
  ),
16966
- 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"
16988
+ 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`
16967
16989
  }),
16968
16990
  align: "center"
16969
16991
  },
16970
16992
  [
16971
16993
  logoRow,
16972
- createNavRow("rb-ml-auto rb-hidden rb-lg-flex rb-gap-6"),
16994
+ createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
16973
16995
  headerCta
16974
16996
  ],
16975
16997
  when("$root.theme.header.variant", { equals: "floating" })
@@ -16981,16 +17003,16 @@ var editorialLayout = stack(
16981
17003
  className: bindProp("$root.theme.header.maxWidth", {
16982
17004
  transforms: pipe(
16983
17005
  tx("layout.maxWidthClass", {
16984
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center"
17006
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
16985
17007
  })
16986
17008
  ),
16987
- 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"
17009
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
16988
17010
  })
16989
17011
  },
16990
17012
  [
16991
17013
  centeredLogoRow,
16992
17014
  createNavRow(
16993
- "rb-hidden rb-lg-flex rb-flex-wrap rb-justify-center rb-gap-x-8 rb-gap-y-3",
17015
+ `${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-8 rb-gap-y-3`,
16994
17016
  "center"
16995
17017
  )
16996
17018
  ],
@@ -21009,6 +21031,21 @@ var eventCalendarManifest = createBlockManifest({
21009
21031
  visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
21010
21032
  }
21011
21033
  },
21034
+ {
21035
+ id: "showCapacity",
21036
+ type: "boolean",
21037
+ label: "Show available spots",
21038
+ description: "Display remaining capacity on event cards and timetable cells",
21039
+ required: false,
21040
+ defaultValue: true,
21041
+ ui: {
21042
+ intent: "display",
21043
+ visibleWhen: {
21044
+ field: "displayMode",
21045
+ oneOf: ["combined", "list", "week", "timetable"]
21046
+ }
21047
+ }
21048
+ },
21012
21049
  // Block-level pre-filtering
21013
21050
  {
21014
21051
  id: "eventSurface",
@@ -21200,6 +21237,9 @@ var eventCalendarManifest = createBlockManifest({
21200
21237
  showStaffFilter: {
21201
21238
  $bind: { from: "content.showStaffFilter", fallback: true }
21202
21239
  },
21240
+ showCapacity: {
21241
+ $bind: { from: "content.showCapacity", fallback: true }
21242
+ },
21203
21243
  kind: { $bind: { from: "content.kind", fallback: "all" } },
21204
21244
  eventSurface: {
21205
21245
  $bind: { from: "content.eventSurface", fallback: "all" }
@@ -1071,7 +1071,7 @@ var ENDPOINT_DEFINITIONS = {
1071
1071
  responseKind: "void"
1072
1072
  },
1073
1073
  googleCalendarCallback: {
1074
- path: "/sites/{siteId}/bookings/calendar/google/callback",
1074
+ path: "/bookings/calendar/google/callback",
1075
1075
  method: "GET",
1076
1076
  auth: "user",
1077
1077
  responseKind: "void"
@@ -16736,6 +16736,28 @@ function bindProp(from, opts) {
16736
16736
  };
16737
16737
  }
16738
16738
 
16739
+ // ../theme-core/src/responsiveDisplay.ts
16740
+ var BASE_DISPLAY_CLASSES = {
16741
+ block: "rb-block",
16742
+ flex: "rb-flex",
16743
+ "inline-block": "rb-inline-block",
16744
+ "inline-flex": "rb-inline-flex",
16745
+ grid: "rb-grid"
16746
+ };
16747
+ var LARGE_DISPLAY_CLASSES = {
16748
+ block: "rb-lg-block",
16749
+ flex: "rb-lg-flex",
16750
+ "inline-block": "rb-lg-inline-block",
16751
+ "inline-flex": "rb-lg-inline-flex",
16752
+ grid: "rb-lg-grid"
16753
+ };
16754
+ function mobileOnlyDisplay(display) {
16755
+ return `${BASE_DISPLAY_CLASSES[display]} rb-lg-hidden`;
16756
+ }
16757
+ function desktopOnlyDisplay(display) {
16758
+ return `rb-hidden ${LARGE_DISPLAY_CLASSES[display]}`;
16759
+ }
16760
+
16739
16761
  // ../blocks/src/system/blocks/site-header.ts
16740
16762
  var logoRow = link(
16741
16763
  {
@@ -16816,7 +16838,7 @@ var headerCta = ctaButton({
16816
16838
  whenPath: "menu.ctaItem.label",
16817
16839
  variantPath: "menu.ctaItem.variant",
16818
16840
  linkPath: "menu.ctaItem.link",
16819
- className: "header-cta btn-sm rb-hidden rb-lg-inline-flex rb-ml-6"
16841
+ className: `header-cta btn-sm ${desktopOnlyDisplay("inline-flex")} rb-ml-6`
16820
16842
  });
16821
16843
  var mobileCta = ctaButton({
16822
16844
  basePath: "menu.ctaItem",
@@ -16844,7 +16866,7 @@ var mobileToggleButton = {
16844
16866
  props: {
16845
16867
  type: "button",
16846
16868
  variantId: "",
16847
- 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",
16869
+ 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`,
16848
16870
  "aria-label": "Open menu",
16849
16871
  "aria-expanded": "false",
16850
16872
  "aria-controls": "nav-mobile-overlay",
@@ -16899,7 +16921,7 @@ var mobileOverlay = {
16899
16921
  type: "div",
16900
16922
  props: {
16901
16923
  id: "nav-mobile-overlay",
16902
- className: "nav-mobile-overlay rb-fixed rb-inset-0 rb-z-50 rb-lg-hidden",
16924
+ className: `nav-mobile-overlay ${mobileOnlyDisplay("block")} rb-fixed rb-inset-0 rb-z-50`,
16903
16925
  role: "dialog",
16904
16926
  "aria-modal": "true",
16905
16927
  "aria-label": "Main menu",
@@ -16928,10 +16950,10 @@ var mobileHeaderBar = inline(
16928
16950
  className: bindProp("$root.theme.header.maxWidth", {
16929
16951
  transforms: pipe(
16930
16952
  tx("layout.maxWidthClass", {
16931
- base: "rb-header-layout rb-flex rb-w-full rb-items-center rb-justify-between rb-lg-hidden"
16953
+ base: `rb-header-layout ${mobileOnlyDisplay("flex")} rb-w-full rb-items-center rb-justify-between`
16932
16954
  })
16933
16955
  ),
16934
- fallback: "rb-container rb-header-layout rb-flex rb-w-full rb-items-center rb-justify-between rb-lg-hidden"
16956
+ fallback: `rb-container rb-header-layout ${mobileOnlyDisplay("flex")} rb-w-full rb-items-center rb-justify-between`
16935
16957
  }),
16936
16958
  align: "center",
16937
16959
  justify: "between"
@@ -16943,16 +16965,16 @@ var classicLayout2 = inline(
16943
16965
  className: bindProp("$root.theme.header.maxWidth", {
16944
16966
  transforms: pipe(
16945
16967
  tx("layout.maxWidthClass", {
16946
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
16968
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
16947
16969
  })
16948
16970
  ),
16949
- fallback: "rb-container rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
16971
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
16950
16972
  }),
16951
16973
  align: "center"
16952
16974
  },
16953
16975
  [
16954
16976
  logoRow,
16955
- createNavRow("rb-ml-auto rb-hidden rb-lg-flex rb-gap-6"),
16977
+ createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
16956
16978
  headerCta
16957
16979
  ],
16958
16980
  when("$root.theme.header.variant", { equals: "classic" })
@@ -16964,16 +16986,16 @@ var centeredLayout = stack(
16964
16986
  className: bindProp("$root.theme.header.maxWidth", {
16965
16987
  transforms: pipe(
16966
16988
  tx("layout.maxWidthClass", {
16967
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center"
16989
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center`
16968
16990
  })
16969
16991
  ),
16970
- 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"
16992
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center`
16971
16993
  })
16972
16994
  },
16973
16995
  [
16974
16996
  centeredLogoRow,
16975
16997
  createNavRow(
16976
- "rb-hidden rb-lg-flex rb-flex-wrap rb-justify-center rb-gap-x-6 rb-gap-y-3",
16998
+ `${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-6 rb-gap-y-3`,
16977
16999
  "center"
16978
17000
  )
16979
17001
  ],
@@ -16984,16 +17006,16 @@ var transparentLayout = inline(
16984
17006
  className: bindProp("$root.theme.header.maxWidth", {
16985
17007
  transforms: pipe(
16986
17008
  tx("layout.maxWidthClass", {
16987
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
17009
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
16988
17010
  })
16989
17011
  ),
16990
- fallback: "rb-container rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
17012
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
16991
17013
  }),
16992
17014
  align: "center"
16993
17015
  },
16994
17016
  [
16995
17017
  logoRow,
16996
- createNavRow("rb-ml-auto rb-hidden rb-lg-flex rb-gap-6"),
17018
+ createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
16997
17019
  headerCta
16998
17020
  ],
16999
17021
  when("$root.theme.header.variant", { equals: "transparent" })
@@ -17003,18 +17025,18 @@ var floatingLayout = inline(
17003
17025
  className: bindProp("$root.theme.header.maxWidth", {
17004
17026
  transforms: pipe(
17005
17027
  tx("layout.maxWidthClass", {
17006
- 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",
17028
+ 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`,
17007
17029
  container: "",
17008
17030
  full: ""
17009
17031
  })
17010
17032
  ),
17011
- 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"
17033
+ 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`
17012
17034
  }),
17013
17035
  align: "center"
17014
17036
  },
17015
17037
  [
17016
17038
  logoRow,
17017
- createNavRow("rb-ml-auto rb-hidden rb-lg-flex rb-gap-6"),
17039
+ createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
17018
17040
  headerCta
17019
17041
  ],
17020
17042
  when("$root.theme.header.variant", { equals: "floating" })
@@ -17026,16 +17048,16 @@ var editorialLayout = stack(
17026
17048
  className: bindProp("$root.theme.header.maxWidth", {
17027
17049
  transforms: pipe(
17028
17050
  tx("layout.maxWidthClass", {
17029
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center"
17051
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
17030
17052
  })
17031
17053
  ),
17032
- 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"
17054
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
17033
17055
  })
17034
17056
  },
17035
17057
  [
17036
17058
  centeredLogoRow,
17037
17059
  createNavRow(
17038
- "rb-hidden rb-lg-flex rb-flex-wrap rb-justify-center rb-gap-x-8 rb-gap-y-3",
17060
+ `${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-8 rb-gap-y-3`,
17039
17061
  "center"
17040
17062
  )
17041
17063
  ],
@@ -21054,6 +21076,21 @@ var eventCalendarManifest = createBlockManifest({
21054
21076
  visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
21055
21077
  }
21056
21078
  },
21079
+ {
21080
+ id: "showCapacity",
21081
+ type: "boolean",
21082
+ label: "Show available spots",
21083
+ description: "Display remaining capacity on event cards and timetable cells",
21084
+ required: false,
21085
+ defaultValue: true,
21086
+ ui: {
21087
+ intent: "display",
21088
+ visibleWhen: {
21089
+ field: "displayMode",
21090
+ oneOf: ["combined", "list", "week", "timetable"]
21091
+ }
21092
+ }
21093
+ },
21057
21094
  // Block-level pre-filtering
21058
21095
  {
21059
21096
  id: "eventSurface",
@@ -21245,6 +21282,9 @@ var eventCalendarManifest = createBlockManifest({
21245
21282
  showStaffFilter: {
21246
21283
  $bind: { from: "content.showStaffFilter", fallback: true }
21247
21284
  },
21285
+ showCapacity: {
21286
+ $bind: { from: "content.showCapacity", fallback: true }
21287
+ },
21248
21288
  kind: { $bind: { from: "content.kind", fallback: "all" } },
21249
21289
  eventSurface: {
21250
21290
  $bind: { from: "content.eventSurface", fallback: "all" }
@@ -1023,7 +1023,7 @@ var ENDPOINT_DEFINITIONS = {
1023
1023
  responseKind: "void"
1024
1024
  },
1025
1025
  googleCalendarCallback: {
1026
- path: "/sites/{siteId}/bookings/calendar/google/callback",
1026
+ path: "/bookings/calendar/google/callback",
1027
1027
  method: "GET",
1028
1028
  auth: "user",
1029
1029
  responseKind: "void"
@@ -16559,6 +16559,28 @@ function bindProp(from, opts) {
16559
16559
  };
16560
16560
  }
16561
16561
 
16562
+ // ../theme-core/src/responsiveDisplay.ts
16563
+ var BASE_DISPLAY_CLASSES = {
16564
+ block: "rb-block",
16565
+ flex: "rb-flex",
16566
+ "inline-block": "rb-inline-block",
16567
+ "inline-flex": "rb-inline-flex",
16568
+ grid: "rb-grid"
16569
+ };
16570
+ var LARGE_DISPLAY_CLASSES = {
16571
+ block: "rb-lg-block",
16572
+ flex: "rb-lg-flex",
16573
+ "inline-block": "rb-lg-inline-block",
16574
+ "inline-flex": "rb-lg-inline-flex",
16575
+ grid: "rb-lg-grid"
16576
+ };
16577
+ function mobileOnlyDisplay(display) {
16578
+ return `${BASE_DISPLAY_CLASSES[display]} rb-lg-hidden`;
16579
+ }
16580
+ function desktopOnlyDisplay(display) {
16581
+ return `rb-hidden ${LARGE_DISPLAY_CLASSES[display]}`;
16582
+ }
16583
+
16562
16584
  // ../blocks/src/system/blocks/site-header.ts
16563
16585
  var logoRow = link(
16564
16586
  {
@@ -16639,7 +16661,7 @@ var headerCta = ctaButton({
16639
16661
  whenPath: "menu.ctaItem.label",
16640
16662
  variantPath: "menu.ctaItem.variant",
16641
16663
  linkPath: "menu.ctaItem.link",
16642
- className: "header-cta btn-sm rb-hidden rb-lg-inline-flex rb-ml-6"
16664
+ className: `header-cta btn-sm ${desktopOnlyDisplay("inline-flex")} rb-ml-6`
16643
16665
  });
16644
16666
  var mobileCta = ctaButton({
16645
16667
  basePath: "menu.ctaItem",
@@ -16667,7 +16689,7 @@ var mobileToggleButton = {
16667
16689
  props: {
16668
16690
  type: "button",
16669
16691
  variantId: "",
16670
- 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",
16692
+ 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`,
16671
16693
  "aria-label": "Open menu",
16672
16694
  "aria-expanded": "false",
16673
16695
  "aria-controls": "nav-mobile-overlay",
@@ -16722,7 +16744,7 @@ var mobileOverlay = {
16722
16744
  type: "div",
16723
16745
  props: {
16724
16746
  id: "nav-mobile-overlay",
16725
- className: "nav-mobile-overlay rb-fixed rb-inset-0 rb-z-50 rb-lg-hidden",
16747
+ className: `nav-mobile-overlay ${mobileOnlyDisplay("block")} rb-fixed rb-inset-0 rb-z-50`,
16726
16748
  role: "dialog",
16727
16749
  "aria-modal": "true",
16728
16750
  "aria-label": "Main menu",
@@ -16751,10 +16773,10 @@ var mobileHeaderBar = inline(
16751
16773
  className: bindProp("$root.theme.header.maxWidth", {
16752
16774
  transforms: pipe(
16753
16775
  tx("layout.maxWidthClass", {
16754
- base: "rb-header-layout rb-flex rb-w-full rb-items-center rb-justify-between rb-lg-hidden"
16776
+ base: `rb-header-layout ${mobileOnlyDisplay("flex")} rb-w-full rb-items-center rb-justify-between`
16755
16777
  })
16756
16778
  ),
16757
- fallback: "rb-container rb-header-layout rb-flex rb-w-full rb-items-center rb-justify-between rb-lg-hidden"
16779
+ fallback: `rb-container rb-header-layout ${mobileOnlyDisplay("flex")} rb-w-full rb-items-center rb-justify-between`
16758
16780
  }),
16759
16781
  align: "center",
16760
16782
  justify: "between"
@@ -16766,16 +16788,16 @@ var classicLayout2 = inline(
16766
16788
  className: bindProp("$root.theme.header.maxWidth", {
16767
16789
  transforms: pipe(
16768
16790
  tx("layout.maxWidthClass", {
16769
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
16791
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
16770
16792
  })
16771
16793
  ),
16772
- fallback: "rb-container rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
16794
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
16773
16795
  }),
16774
16796
  align: "center"
16775
16797
  },
16776
16798
  [
16777
16799
  logoRow,
16778
- createNavRow("rb-ml-auto rb-hidden rb-lg-flex rb-gap-6"),
16800
+ createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
16779
16801
  headerCta
16780
16802
  ],
16781
16803
  when("$root.theme.header.variant", { equals: "classic" })
@@ -16787,16 +16809,16 @@ var centeredLayout = stack(
16787
16809
  className: bindProp("$root.theme.header.maxWidth", {
16788
16810
  transforms: pipe(
16789
16811
  tx("layout.maxWidthClass", {
16790
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center"
16812
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center`
16791
16813
  })
16792
16814
  ),
16793
- 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"
16815
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-5 rb-text-center`
16794
16816
  })
16795
16817
  },
16796
16818
  [
16797
16819
  centeredLogoRow,
16798
16820
  createNavRow(
16799
- "rb-hidden rb-lg-flex rb-flex-wrap rb-justify-center rb-gap-x-6 rb-gap-y-3",
16821
+ `${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-6 rb-gap-y-3`,
16800
16822
  "center"
16801
16823
  )
16802
16824
  ],
@@ -16807,16 +16829,16 @@ var transparentLayout = inline(
16807
16829
  className: bindProp("$root.theme.header.maxWidth", {
16808
16830
  transforms: pipe(
16809
16831
  tx("layout.maxWidthClass", {
16810
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
16832
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
16811
16833
  })
16812
16834
  ),
16813
- fallback: "rb-container rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-items-center rb-gap-6"
16835
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-items-center rb-gap-6`
16814
16836
  }),
16815
16837
  align: "center"
16816
16838
  },
16817
16839
  [
16818
16840
  logoRow,
16819
- createNavRow("rb-ml-auto rb-hidden rb-lg-flex rb-gap-6"),
16841
+ createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
16820
16842
  headerCta
16821
16843
  ],
16822
16844
  when("$root.theme.header.variant", { equals: "transparent" })
@@ -16826,18 +16848,18 @@ var floatingLayout = inline(
16826
16848
  className: bindProp("$root.theme.header.maxWidth", {
16827
16849
  transforms: pipe(
16828
16850
  tx("layout.maxWidthClass", {
16829
- 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",
16851
+ 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`,
16830
16852
  container: "",
16831
16853
  full: ""
16832
16854
  })
16833
16855
  ),
16834
- 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"
16856
+ 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`
16835
16857
  }),
16836
16858
  align: "center"
16837
16859
  },
16838
16860
  [
16839
16861
  logoRow,
16840
- createNavRow("rb-ml-auto rb-hidden rb-lg-flex rb-gap-6"),
16862
+ createNavRow(`rb-ml-auto ${desktopOnlyDisplay("flex")} rb-gap-6`),
16841
16863
  headerCta
16842
16864
  ],
16843
16865
  when("$root.theme.header.variant", { equals: "floating" })
@@ -16849,16 +16871,16 @@ var editorialLayout = stack(
16849
16871
  className: bindProp("$root.theme.header.maxWidth", {
16850
16872
  transforms: pipe(
16851
16873
  tx("layout.maxWidthClass", {
16852
- base: "rb-header-layout rb-hidden rb-lg-flex rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center"
16874
+ base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
16853
16875
  })
16854
16876
  ),
16855
- 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"
16877
+ fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
16856
16878
  })
16857
16879
  },
16858
16880
  [
16859
16881
  centeredLogoRow,
16860
16882
  createNavRow(
16861
- "rb-hidden rb-lg-flex rb-flex-wrap rb-justify-center rb-gap-x-8 rb-gap-y-3",
16883
+ `${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-8 rb-gap-y-3`,
16862
16884
  "center"
16863
16885
  )
16864
16886
  ],
@@ -20877,6 +20899,21 @@ var eventCalendarManifest = createBlockManifest({
20877
20899
  visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
20878
20900
  }
20879
20901
  },
20902
+ {
20903
+ id: "showCapacity",
20904
+ type: "boolean",
20905
+ label: "Show available spots",
20906
+ description: "Display remaining capacity on event cards and timetable cells",
20907
+ required: false,
20908
+ defaultValue: true,
20909
+ ui: {
20910
+ intent: "display",
20911
+ visibleWhen: {
20912
+ field: "displayMode",
20913
+ oneOf: ["combined", "list", "week", "timetable"]
20914
+ }
20915
+ }
20916
+ },
20880
20917
  // Block-level pre-filtering
20881
20918
  {
20882
20919
  id: "eventSurface",
@@ -21068,6 +21105,9 @@ var eventCalendarManifest = createBlockManifest({
21068
21105
  showStaffFilter: {
21069
21106
  $bind: { from: "content.showStaffFilter", fallback: true }
21070
21107
  },
21108
+ showCapacity: {
21109
+ $bind: { from: "content.showCapacity", fallback: true }
21110
+ },
21071
21111
  kind: { $bind: { from: "content.kind", fallback: "all" } },
21072
21112
  eventSurface: {
21073
21113
  $bind: { from: "content.eventSurface", fallback: "all" }
@@ -1045,7 +1045,7 @@ var ENDPOINT_DEFINITIONS = {
1045
1045
  responseKind: "void"
1046
1046
  },
1047
1047
  googleCalendarCallback: {
1048
- path: "/sites/{siteId}/bookings/calendar/google/callback",
1048
+ path: "/bookings/calendar/google/callback",
1049
1049
  method: "GET",
1050
1050
  auth: "user",
1051
1051
  responseKind: "void"
@@ -6066,7 +6066,7 @@ var SimpleCache = class {
6066
6066
  };
6067
6067
 
6068
6068
  // src/version.ts
6069
- var SDK_VERSION = "0.60.0";
6069
+ var SDK_VERSION = "0.60.1";
6070
6070
 
6071
6071
  // src/client/error.ts
6072
6072
  var RiverbankApiError = class _RiverbankApiError extends Error {