@riverbankcms/sdk 0.70.0 → 0.70.3

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 (61) hide show
  1. package/README.md +29 -0
  2. package/dist/_dts/ai/src/contracts/commandExposure.d.ts +8 -0
  3. package/dist/_dts/ai/src/contracts/feedback.d.ts +55 -0
  4. package/dist/_dts/ai/src/contracts/proposals.d.ts +34764 -0
  5. package/dist/_dts/ai/src/contracts.d.ts +5 -0
  6. package/dist/_dts/ai/src/designer/rfc6902.d.ts +16 -0
  7. package/dist/_dts/ai/src/designer/themePatch.d.ts +50 -0
  8. package/dist/_dts/api/src/aiPlayground.d.ts +1 -1
  9. package/dist/_dts/api/src/appointmentSetup.d.ts +19 -0
  10. package/dist/_dts/api/src/availability.d.ts +84 -2
  11. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +10 -1
  12. package/dist/_dts/api/src/contentRuntime.d.ts +1 -0
  13. package/dist/_dts/api/src/endpoints.d.ts +29 -0
  14. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +4 -0
  15. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +29 -1
  16. package/dist/_dts/api/src/types.d.ts +1 -1
  17. package/dist/_dts/billing/src/components/index.d.ts +41 -0
  18. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +219 -0
  19. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
  20. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -1
  21. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -1
  22. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +3 -1
  23. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +3 -1
  24. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +1 -0
  25. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +8 -0
  26. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +1 -0
  27. package/dist/_dts/sdk/src/cli/commands/delete.d.ts +3 -0
  28. package/dist/_dts/sdk/src/cli/commands/style.d.ts +37 -0
  29. package/dist/_dts/sdk/src/cli/helpers.d.ts +8 -33
  30. package/dist/_dts/sdk/src/cli/site-commands/oneOffCommands.d.ts +81 -0
  31. package/dist/_dts/sdk/src/client/management/index.d.ts +2 -1
  32. package/dist/_dts/sdk/src/client/management/theme.d.ts +3 -1
  33. package/dist/_dts/sdk/src/client/management/types.d.ts +23 -0
  34. package/dist/_dts/sdk/src/components.d.ts +2 -1
  35. package/dist/_dts/sdk/src/next/types.d.ts +4 -2
  36. package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -0
  37. package/dist/_dts/sdk/src/rendering/index.d.ts +2 -1
  38. package/dist/_dts/sdk/src/rendering/overrideResolution.d.ts +10 -0
  39. package/dist/_dts/sdk/src/rendering/overrides.d.ts +12 -0
  40. package/dist/_dts/sdk/src/version.d.ts +1 -1
  41. package/dist/_dts/site-commands/src/commands.d.ts +25 -7
  42. package/dist/_dts/site-commands/src/metadata.d.ts +2 -2
  43. package/dist/cli/index.mjs +844 -108
  44. package/dist/client/client.mjs +256 -202
  45. package/dist/client/hooks.mjs +55 -1
  46. package/dist/client/rendering.mjs +25467 -25403
  47. package/dist/preview-next/before-render.mjs +39 -0
  48. package/dist/preview-next/client/runtime.mjs +160 -39
  49. package/dist/preview-next/middleware.mjs +39 -0
  50. package/dist/server/components.mjs +65 -1
  51. package/dist/server/config-validation.mjs +55 -1
  52. package/dist/server/config.mjs +55 -1
  53. package/dist/server/data.mjs +55 -1
  54. package/dist/server/index.mjs +40 -1
  55. package/dist/server/next.mjs +137 -4
  56. package/dist/server/prebuild.mjs +1 -1
  57. package/dist/server/rendering/server.mjs +55 -1
  58. package/dist/server/rendering.mjs +65 -1
  59. package/dist/server/routing.mjs +56 -2
  60. package/dist/server/server.mjs +56 -2
  61. package/package.json +4 -3
@@ -42651,6 +42651,131 @@ var init_themeScopeUtils = __esm({
42651
42651
  }
42652
42652
  });
42653
42653
 
42654
+ // src/rendering/islands/enhancers/accordion.ts
42655
+ var accordion_exports = {};
42656
+ __export(accordion_exports, {
42657
+ enhance: () => enhance
42658
+ });
42659
+ function parseDefaultValues(value) {
42660
+ if (!value) return [];
42661
+ return value.split(",").map((v) => v.trim()).filter(Boolean);
42662
+ }
42663
+ function getItemValue(item, index) {
42664
+ return item.getAttribute("data-accordion-value") ?? String(index);
42665
+ }
42666
+ function normalizeType(domValue, propsValue) {
42667
+ if (propsValue === "multiple") return "multiple";
42668
+ if (propsValue === "single") return "single";
42669
+ return domValue === "multiple" ? "multiple" : "single";
42670
+ }
42671
+ function normalizeCollapsible(propsValue) {
42672
+ if (propsValue === false) return false;
42673
+ return true;
42674
+ }
42675
+ function normalizeDefaultValues(domValue, propsValue) {
42676
+ if (Array.isArray(propsValue)) return propsValue.map(String).filter(Boolean);
42677
+ if (typeof propsValue === "string" && propsValue.trim()) return [propsValue.trim()];
42678
+ return parseDefaultValues(domValue);
42679
+ }
42680
+ var enhance;
42681
+ var init_accordion = __esm({
42682
+ "src/rendering/islands/enhancers/accordion.ts"() {
42683
+ "use strict";
42684
+ enhance = (root, props2) => {
42685
+ if (root.dataset.rbAccordionEnhanced === "true") return;
42686
+ root.dataset.rbAccordionEnhanced = "true";
42687
+ const type = normalizeType(root.getAttribute("data-accordion-type"), props2?.type);
42688
+ const collapsible = type === "single" ? normalizeCollapsible(props2?.collapsible) : true;
42689
+ const defaultValues = new Set(
42690
+ normalizeDefaultValues(root.getAttribute("data-default-value"), props2?.defaultValue)
42691
+ );
42692
+ const items = Array.from(root.querySelectorAll(".accordion-item"));
42693
+ const cleanups = [];
42694
+ const closeAnimations = /* @__PURE__ */ new WeakMap();
42695
+ const setMeasuredContentHeight = (content) => {
42696
+ content.style.setProperty("--radix-accordion-content-height", `${content.scrollHeight}px`);
42697
+ };
42698
+ const setOpen = (item, open, options) => {
42699
+ const trigger = item.querySelector(".accordion-trigger");
42700
+ const content = item.querySelector(".accordion-content");
42701
+ if (!trigger || !content) return;
42702
+ const cancelPendingClose = closeAnimations.get(content);
42703
+ if (cancelPendingClose) {
42704
+ cancelPendingClose();
42705
+ closeAnimations.delete(content);
42706
+ }
42707
+ if (open && content.hidden) content.hidden = false;
42708
+ setMeasuredContentHeight(content);
42709
+ item.dataset.state = open ? "open" : "closed";
42710
+ content.dataset.state = open ? "open" : "closed";
42711
+ if (!content.dataset.animation) content.dataset.animation = "accordion";
42712
+ trigger.setAttribute("role", "button");
42713
+ trigger.tabIndex = 0;
42714
+ trigger.setAttribute("aria-expanded", open ? "true" : "false");
42715
+ if (open) {
42716
+ content.hidden = false;
42717
+ content.setAttribute("aria-hidden", "false");
42718
+ content.removeAttribute("inert");
42719
+ return;
42720
+ }
42721
+ content.setAttribute("aria-hidden", "true");
42722
+ content.setAttribute("inert", "");
42723
+ const onAnimationEnd = () => {
42724
+ if (content.dataset.state !== "closed") return;
42725
+ content.hidden = true;
42726
+ closeAnimations.delete(content);
42727
+ };
42728
+ if (options?.immediateClose) {
42729
+ content.hidden = true;
42730
+ return;
42731
+ }
42732
+ content.addEventListener("animationend", onAnimationEnd, { once: true });
42733
+ closeAnimations.set(content, () => {
42734
+ content.removeEventListener("animationend", onAnimationEnd);
42735
+ });
42736
+ };
42737
+ const closeAllExcept = (keep) => {
42738
+ items.forEach((item) => {
42739
+ if (keep && item === keep) return;
42740
+ setOpen(item, false);
42741
+ });
42742
+ };
42743
+ items.forEach((item, index) => {
42744
+ const value = getItemValue(item, index);
42745
+ const initiallyOpen = defaultValues.has(value);
42746
+ setOpen(item, initiallyOpen, initiallyOpen ? void 0 : { immediateClose: true });
42747
+ const trigger = item.querySelector(".accordion-trigger");
42748
+ if (!trigger) return;
42749
+ const toggle = () => {
42750
+ const expanded = trigger.getAttribute("aria-expanded") === "true";
42751
+ const nextOpen = !expanded;
42752
+ if (type === "single" && expanded && !collapsible) return;
42753
+ if (type === "single" && nextOpen) closeAllExcept(item);
42754
+ setOpen(item, nextOpen);
42755
+ };
42756
+ const onClick = (event) => {
42757
+ event.preventDefault();
42758
+ toggle();
42759
+ };
42760
+ const onKeyDown = (event) => {
42761
+ if (event.key !== "Enter" && event.key !== " ") return;
42762
+ event.preventDefault();
42763
+ toggle();
42764
+ };
42765
+ trigger.addEventListener("click", onClick);
42766
+ trigger.addEventListener("keydown", onKeyDown);
42767
+ cleanups.push(() => {
42768
+ trigger.removeEventListener("click", onClick);
42769
+ trigger.removeEventListener("keydown", onKeyDown);
42770
+ });
42771
+ });
42772
+ return () => {
42773
+ cleanups.forEach((fn2) => fn2());
42774
+ };
42775
+ };
42776
+ }
42777
+ });
42778
+
42654
42779
  // ../blocks/src/system/runtime/api/deduplication.ts
42655
42780
  function createDeduplicationCache(options = {}) {
42656
42781
  const { ttl = 100 } = options;
@@ -43940,7 +44065,7 @@ function ze() {
43940
44065
  /* @__PURE__ */ Te(P)
43941
44066
  );
43942
44067
  }
43943
- function z72(e) {
44068
+ function z73(e) {
43944
44069
  if (L) {
43945
44070
  if (/* @__PURE__ */ Te(P) !== null)
43946
44071
  throw Tt(), Je;
@@ -45969,12 +46094,12 @@ function ha(e, t) {
45969
46094
  var mt = we(Dr, 2);
45970
46095
  let Pr;
45971
46096
  var We = X2(mt);
45972
- en(We), We.__change = ui, z72(mt);
46097
+ en(We), We.__change = ui, z73(mt);
45973
46098
  var Ut = we(mt, 2), wi = X2(Ut);
45974
46099
  {
45975
46100
  var pi = (n) => {
45976
46101
  var u = na(), _ = Gr(u), y = X2(_);
45977
- Ge(y, () => c(re).verified), z72(_);
46102
+ Ge(y, () => c(re).verified), z73(_);
45978
46103
  var T = we(_, 2);
45979
46104
  en(T), Pe(() => {
45980
46105
  se(T, "name", V()), jo(T, c(Le));
@@ -45983,10 +46108,10 @@ function ha(e, t) {
45983
46108
  {
45984
46109
  var _ = (T) => {
45985
46110
  var E = ia(), p = X2(E);
45986
- Ge(p, () => c(re).verifying), z72(E), ne(T, E);
46111
+ Ge(p, () => c(re).verifying), z73(E), ne(T, E);
45987
46112
  }, y = (T) => {
45988
46113
  var E = oa(), p = X2(E);
45989
- Ge(p, () => c(re).label), z72(E), Pe(() => se(E, "for", c(cr))), ne(T, E);
46114
+ Ge(p, () => c(re).label), z73(E), Pe(() => se(E, "for", c(cr))), ne(T, E);
45990
46115
  };
45991
46116
  $e(
45992
46117
  n,
@@ -46001,18 +46126,18 @@ function ha(e, t) {
46001
46126
  c(C) === b.VERIFIED ? n(pi) : n(bi, false);
46002
46127
  });
46003
46128
  }
46004
- z72(Ut);
46129
+ z73(Ut);
46005
46130
  var yi = we(Ut, 2);
46006
46131
  {
46007
46132
  var Ei = (n) => {
46008
46133
  var u = aa(), _ = X2(u);
46009
- se(_, "href", sr), z72(u), Pe(() => se(_, "aria-label", c(re).ariaLinkLabel)), ne(n, u);
46134
+ se(_, "href", sr), z73(u), Pe(() => se(_, "aria-label", c(re).ariaLinkLabel)), ne(n, u);
46010
46135
  };
46011
46136
  $e(yi, (n) => {
46012
46137
  (N() !== true || c(Dt)) && n(Ei);
46013
46138
  });
46014
46139
  }
46015
- z72(Mt);
46140
+ z73(Mt);
46016
46141
  var Or = we(Mt, 2);
46017
46142
  {
46018
46143
  var xi = (n) => {
@@ -46020,16 +46145,16 @@ function ha(e, t) {
46020
46145
  {
46021
46146
  var y = (E) => {
46022
46147
  var p = la(), x = X2(p);
46023
- Ge(x, () => c(re).expired), z72(p), Pe(() => se(p, "title", c(He))), ne(E, p);
46148
+ Ge(x, () => c(re).expired), z73(p), Pe(() => se(p, "title", c(He))), ne(E, p);
46024
46149
  }, T = (E) => {
46025
46150
  var p = sa(), x = X2(p);
46026
- Ge(x, () => c(re).error), z72(p), Pe(() => se(p, "title", c(He))), ne(E, p);
46151
+ Ge(x, () => c(re).error), z73(p), Pe(() => se(p, "title", c(He))), ne(E, p);
46027
46152
  };
46028
46153
  $e(_, (E) => {
46029
46154
  c(C) === b.EXPIRED ? E(y) : E(T, false);
46030
46155
  });
46031
46156
  }
46032
- z72(u), ne(n, u);
46157
+ z73(u), ne(n, u);
46033
46158
  };
46034
46159
  $e(Or, (n) => {
46035
46160
  (c(He) || c(C) === b.EXPIRED) && n(xi);
@@ -46039,7 +46164,7 @@ function ha(e, t) {
46039
46164
  {
46040
46165
  var $i = (n) => {
46041
46166
  var u = ua(), _ = X2(u), y = X2(_);
46042
- Ge(y, () => c(re).footer), z72(_), z72(u), ne(n, u);
46167
+ Ge(y, () => c(re).footer), z73(_), z73(u), ne(n, u);
46043
46168
  };
46044
46169
  $e(Fr, (n) => {
46045
46170
  c(re).footer && (k() !== true || c(Dt)) && n($i);
@@ -46055,7 +46180,7 @@ function ha(e, t) {
46055
46180
  v() && n(Ci);
46056
46181
  });
46057
46182
  }
46058
- return z72(ot), nn(ot, (n) => D(B, n), () => c(B)), Pe(
46183
+ return z73(ot), nn(ot, (n) => D(B, n), () => c(B)), Pe(
46059
46184
  (n) => {
46060
46185
  se(ot, "data-state", c(C)), se(ot, "data-floating", v()), Pr = Fo(mt, 1, "altcha-checkbox", null, Pr, n), se(We, "id", c(cr)), We.required = r2() !== "onsubmit" && (!v() || r2() !== "off");
46061
46186
  },
@@ -63618,131 +63743,6 @@ var init_client3 = __esm({
63618
63743
  }
63619
63744
  });
63620
63745
 
63621
- // src/rendering/islands/enhancers/accordion.ts
63622
- var accordion_exports = {};
63623
- __export(accordion_exports, {
63624
- enhance: () => enhance
63625
- });
63626
- function parseDefaultValues(value) {
63627
- if (!value) return [];
63628
- return value.split(",").map((v) => v.trim()).filter(Boolean);
63629
- }
63630
- function getItemValue(item, index) {
63631
- return item.getAttribute("data-accordion-value") ?? String(index);
63632
- }
63633
- function normalizeType(domValue, propsValue) {
63634
- if (propsValue === "multiple") return "multiple";
63635
- if (propsValue === "single") return "single";
63636
- return domValue === "multiple" ? "multiple" : "single";
63637
- }
63638
- function normalizeCollapsible(propsValue) {
63639
- if (propsValue === false) return false;
63640
- return true;
63641
- }
63642
- function normalizeDefaultValues(domValue, propsValue) {
63643
- if (Array.isArray(propsValue)) return propsValue.map(String).filter(Boolean);
63644
- if (typeof propsValue === "string" && propsValue.trim()) return [propsValue.trim()];
63645
- return parseDefaultValues(domValue);
63646
- }
63647
- var enhance;
63648
- var init_accordion = __esm({
63649
- "src/rendering/islands/enhancers/accordion.ts"() {
63650
- "use strict";
63651
- enhance = (root, props2) => {
63652
- if (root.dataset.rbAccordionEnhanced === "true") return;
63653
- root.dataset.rbAccordionEnhanced = "true";
63654
- const type = normalizeType(root.getAttribute("data-accordion-type"), props2?.type);
63655
- const collapsible = type === "single" ? normalizeCollapsible(props2?.collapsible) : true;
63656
- const defaultValues = new Set(
63657
- normalizeDefaultValues(root.getAttribute("data-default-value"), props2?.defaultValue)
63658
- );
63659
- const items = Array.from(root.querySelectorAll(".accordion-item"));
63660
- const cleanups = [];
63661
- const closeAnimations = /* @__PURE__ */ new WeakMap();
63662
- const setMeasuredContentHeight = (content) => {
63663
- content.style.setProperty("--radix-accordion-content-height", `${content.scrollHeight}px`);
63664
- };
63665
- const setOpen = (item, open, options) => {
63666
- const trigger = item.querySelector(".accordion-trigger");
63667
- const content = item.querySelector(".accordion-content");
63668
- if (!trigger || !content) return;
63669
- const cancelPendingClose = closeAnimations.get(content);
63670
- if (cancelPendingClose) {
63671
- cancelPendingClose();
63672
- closeAnimations.delete(content);
63673
- }
63674
- if (open && content.hidden) content.hidden = false;
63675
- setMeasuredContentHeight(content);
63676
- item.dataset.state = open ? "open" : "closed";
63677
- content.dataset.state = open ? "open" : "closed";
63678
- if (!content.dataset.animation) content.dataset.animation = "accordion";
63679
- trigger.setAttribute("role", "button");
63680
- trigger.tabIndex = 0;
63681
- trigger.setAttribute("aria-expanded", open ? "true" : "false");
63682
- if (open) {
63683
- content.hidden = false;
63684
- content.setAttribute("aria-hidden", "false");
63685
- content.removeAttribute("inert");
63686
- return;
63687
- }
63688
- content.setAttribute("aria-hidden", "true");
63689
- content.setAttribute("inert", "");
63690
- const onAnimationEnd = () => {
63691
- if (content.dataset.state !== "closed") return;
63692
- content.hidden = true;
63693
- closeAnimations.delete(content);
63694
- };
63695
- if (options?.immediateClose) {
63696
- content.hidden = true;
63697
- return;
63698
- }
63699
- content.addEventListener("animationend", onAnimationEnd, { once: true });
63700
- closeAnimations.set(content, () => {
63701
- content.removeEventListener("animationend", onAnimationEnd);
63702
- });
63703
- };
63704
- const closeAllExcept = (keep) => {
63705
- items.forEach((item) => {
63706
- if (keep && item === keep) return;
63707
- setOpen(item, false);
63708
- });
63709
- };
63710
- items.forEach((item, index) => {
63711
- const value = getItemValue(item, index);
63712
- const initiallyOpen = defaultValues.has(value);
63713
- setOpen(item, initiallyOpen, initiallyOpen ? void 0 : { immediateClose: true });
63714
- const trigger = item.querySelector(".accordion-trigger");
63715
- if (!trigger) return;
63716
- const toggle = () => {
63717
- const expanded = trigger.getAttribute("aria-expanded") === "true";
63718
- const nextOpen = !expanded;
63719
- if (type === "single" && expanded && !collapsible) return;
63720
- if (type === "single" && nextOpen) closeAllExcept(item);
63721
- setOpen(item, nextOpen);
63722
- };
63723
- const onClick = (event) => {
63724
- event.preventDefault();
63725
- toggle();
63726
- };
63727
- const onKeyDown = (event) => {
63728
- if (event.key !== "Enter" && event.key !== " ") return;
63729
- event.preventDefault();
63730
- toggle();
63731
- };
63732
- trigger.addEventListener("click", onClick);
63733
- trigger.addEventListener("keydown", onKeyDown);
63734
- cleanups.push(() => {
63735
- trigger.removeEventListener("click", onClick);
63736
- trigger.removeEventListener("keydown", onKeyDown);
63737
- });
63738
- });
63739
- return () => {
63740
- cleanups.forEach((fn2) => fn2());
63741
- };
63742
- };
63743
- }
63744
- });
63745
-
63746
63746
  // src/rendering/islands/enhancers/headerSection.ts
63747
63747
  var headerSection_exports = {};
63748
63748
  __export(headerSection_exports, {
@@ -65556,6 +65556,24 @@ var ENDPOINT_DEFINITIONS = {
65556
65556
  "server:internal_error"
65557
65557
  ]
65558
65558
  },
65559
+ setServiceSpecificAvailability: {
65560
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/service-availability",
65561
+ method: "PUT",
65562
+ auth: "user",
65563
+ responseKind: "json",
65564
+ errors: [
65565
+ "validation:invalid_input",
65566
+ "resource:not_found",
65567
+ "server:internal_error"
65568
+ ]
65569
+ },
65570
+ deleteServiceSpecificAvailability: {
65571
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/service-availability/{scheduleId}",
65572
+ method: "DELETE",
65573
+ auth: "user",
65574
+ responseKind: "json",
65575
+ errors: ["resource:not_found", "server:internal_error"]
65576
+ },
65559
65577
  listBlackouts: {
65560
65578
  path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts",
65561
65579
  method: "GET",
@@ -67191,6 +67209,20 @@ var ENDPOINT_DEFINITIONS = {
67191
67209
  auth: "user",
67192
67210
  responseKind: "json"
67193
67211
  },
67212
+ applySiteStyleSelection: {
67213
+ path: "/sites/{siteId}/theme/style-selection/apply",
67214
+ method: "POST",
67215
+ tags: [TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme],
67216
+ auth: "user",
67217
+ errors: [
67218
+ "validation:invalid_input",
67219
+ "auth:forbidden",
67220
+ "resource:not_found",
67221
+ "resource:conflict",
67222
+ "server:internal_error"
67223
+ ],
67224
+ responseKind: "json"
67225
+ },
67194
67226
  saveSiteChromeLookSelection: {
67195
67227
  path: "/sites/{siteId}/theme/site-chrome-look",
67196
67228
  method: "POST",
@@ -69934,6 +69966,13 @@ var ENDPOINT_DEFINITIONS = {
69934
69966
  auth: "service",
69935
69967
  responseKind: "json"
69936
69968
  },
69969
+ sdkApplySiteStyleSelection: {
69970
+ path: "/sdk/{siteId}/theme/style-selection/apply",
69971
+ method: "POST",
69972
+ auth: "service",
69973
+ responseKind: "json",
69974
+ errors: ["validation:invalid_input", "resource:not_found", "resource:conflict", "server:internal_error"]
69975
+ },
69937
69976
  sdkUpsertFooter: {
69938
69977
  path: "/sdk/{siteId}/footer",
69939
69978
  method: "POST",
@@ -82691,11 +82730,26 @@ var appointmentSetupWeeklyWindowDraftSchema = z69.object({
82691
82730
  startTime: z69.string(),
82692
82731
  endTime: z69.string()
82693
82732
  });
82733
+ var appointmentSetupStartTimePolicyDraftSchema = z69.discriminatedUnion("kind", [
82734
+ z69.object({ kind: z69.literal("automatic_spacing") }),
82735
+ z69.object({
82736
+ kind: z69.literal("regular_interval"),
82737
+ intervalMinutes: z69.union([
82738
+ z69.literal(10),
82739
+ z69.literal(15),
82740
+ z69.literal(20),
82741
+ z69.literal(30),
82742
+ z69.literal(45),
82743
+ z69.literal(60)
82744
+ ])
82745
+ })
82746
+ ]);
82694
82747
  var appointmentSetupAvailabilityDraftSchema = z69.object({
82695
82748
  kind: z69.literal("weekly_windows"),
82696
82749
  resourceRef: appointmentSetupRefSchema,
82697
82750
  serviceRef: appointmentSetupRefSchema.nullable(),
82698
- windows: z69.array(appointmentSetupWeeklyWindowDraftSchema)
82751
+ windows: z69.array(appointmentSetupWeeklyWindowDraftSchema),
82752
+ startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
82699
82753
  });
82700
82754
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
82701
82755
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
@@ -83583,72 +83637,72 @@ import { useEffect as useEffect29 } from "react";
83583
83637
  init_runtime();
83584
83638
  init_shop_shared();
83585
83639
  init_schemas2();
83586
- import { z as z73 } from "zod";
83587
- var accordionIslandSchema = z73.object({
83588
- type: z73.enum(["single", "multiple"]).optional(),
83589
- defaultValue: z73.union([z73.string(), z73.array(z73.string())]).optional(),
83590
- collapsible: z73.boolean().optional()
83591
- });
83592
- var headerSectionIslandSchema = z73.object({
83593
- enabled: z73.boolean().optional(),
83594
- scrollEnabled: z73.boolean().optional()
83595
- });
83596
- var responsiveSlidesToShowSchema = z73.object({
83597
- mobile: z73.union([z73.number(), z73.string()]).optional(),
83598
- tablet: z73.union([z73.number(), z73.string()]).optional(),
83599
- desktop: z73.union([z73.number(), z73.string()]).optional()
83600
- });
83601
- var carouselIslandSchema = z73.object({
83602
- slidesToShow: z73.union([z73.number(), z73.string(), responsiveSlidesToShowSchema]).optional(),
83603
- transition: z73.enum(["slide", "fade"]).optional(),
83604
- showControls: z73.union([z73.boolean(), z73.string()]).optional(),
83605
- showDots: z73.union([z73.boolean(), z73.string()]).optional(),
83606
- arrowVisibility: z73.enum(["always", "hover", "never"]).optional(),
83607
- autoplay: z73.union([z73.boolean(), z73.string()]).optional(),
83608
- autoplayDelay: z73.union([z73.number(), z73.string()]).optional(),
83609
- loop: z73.union([z73.boolean(), z73.string()]).optional()
83610
- });
83611
- var eventDetailsOccurrenceContextSchema = z73.object({
83612
- id: z73.string(),
83613
- seriesId: z73.string(),
83614
- startsAt: z73.string(),
83615
- endsAt: z73.string(),
83616
- timeZone: z73.string()
83617
- });
83618
- var eventDetailsContentEntrySchema = z73.object({
83619
- id: z73.string(),
83620
- slug: z73.string(),
83621
- contentTypeSlug: z73.string()
83622
- });
83623
- var eventDetailsIslandSchema = z73.object({
83640
+ import { z as z72 } from "zod";
83641
+ var accordionIslandSchema = z72.object({
83642
+ type: z72.enum(["single", "multiple"]).optional(),
83643
+ defaultValue: z72.union([z72.string(), z72.array(z72.string())]).optional(),
83644
+ collapsible: z72.boolean().optional()
83645
+ });
83646
+ var headerSectionIslandSchema = z72.object({
83647
+ enabled: z72.boolean().optional(),
83648
+ scrollEnabled: z72.boolean().optional()
83649
+ });
83650
+ var responsiveSlidesToShowSchema = z72.object({
83651
+ mobile: z72.union([z72.number(), z72.string()]).optional(),
83652
+ tablet: z72.union([z72.number(), z72.string()]).optional(),
83653
+ desktop: z72.union([z72.number(), z72.string()]).optional()
83654
+ });
83655
+ var carouselIslandSchema = z72.object({
83656
+ slidesToShow: z72.union([z72.number(), z72.string(), responsiveSlidesToShowSchema]).optional(),
83657
+ transition: z72.enum(["slide", "fade"]).optional(),
83658
+ showControls: z72.union([z72.boolean(), z72.string()]).optional(),
83659
+ showDots: z72.union([z72.boolean(), z72.string()]).optional(),
83660
+ arrowVisibility: z72.enum(["always", "hover", "never"]).optional(),
83661
+ autoplay: z72.union([z72.boolean(), z72.string()]).optional(),
83662
+ autoplayDelay: z72.union([z72.number(), z72.string()]).optional(),
83663
+ loop: z72.union([z72.boolean(), z72.string()]).optional()
83664
+ });
83665
+ var eventDetailsOccurrenceContextSchema = z72.object({
83666
+ id: z72.string(),
83667
+ seriesId: z72.string(),
83668
+ startsAt: z72.string(),
83669
+ endsAt: z72.string(),
83670
+ timeZone: z72.string()
83671
+ });
83672
+ var eventDetailsContentEntrySchema = z72.object({
83673
+ id: z72.string(),
83674
+ slug: z72.string(),
83675
+ contentTypeSlug: z72.string()
83676
+ });
83677
+ var eventDetailsIslandSchema = z72.object({
83624
83678
  occurrenceContext: eventDetailsOccurrenceContextSchema.nullable().optional(),
83625
83679
  contentEntry: eventDetailsContentEntrySchema.nullable().optional(),
83626
- events: z73.array(publicEventSchema).nullable().optional(),
83627
- showVenue: z73.boolean().optional(),
83628
- showMap: z73.boolean().optional(),
83629
- showOtherDates: z73.boolean().optional(),
83630
- otherDatesLimit: z73.string().optional(),
83631
- showCost: z73.boolean().optional(),
83632
- showAcceptedPasses: z73.boolean().optional(),
83633
- showAcceptedMemberships: z73.boolean().optional(),
83634
- sitePasses: z73.object({ passes: z73.array(publicPassProductSchema) }).nullable().optional(),
83635
- siteMemberships: z73.object({ memberships: z73.array(publicMembershipProductSchema) }).nullable().optional(),
83680
+ events: z72.array(publicEventSchema).nullable().optional(),
83681
+ showVenue: z72.boolean().optional(),
83682
+ showMap: z72.boolean().optional(),
83683
+ showOtherDates: z72.boolean().optional(),
83684
+ otherDatesLimit: z72.string().optional(),
83685
+ showCost: z72.boolean().optional(),
83686
+ showAcceptedPasses: z72.boolean().optional(),
83687
+ showAcceptedMemberships: z72.boolean().optional(),
83688
+ sitePasses: z72.object({ passes: z72.array(publicPassProductSchema) }).nullable().optional(),
83689
+ siteMemberships: z72.object({ memberships: z72.array(publicMembershipProductSchema) }).nullable().optional(),
83636
83690
  autoApplyDiscount: eventAutoApplyDiscountPreviewSchema.nullable().optional(),
83637
- className: z73.string().nullable().optional(),
83638
- nowIso: z73.string().optional()
83639
- });
83640
- var locationMapIslandSchema = z73.object({
83641
- location: z73.object({
83642
- addressText: z73.string().nullable(),
83643
- lat: z73.number().nullable(),
83644
- lng: z73.number().nullable()
83691
+ className: z72.string().nullable().optional(),
83692
+ nowIso: z72.string().optional()
83693
+ });
83694
+ var locationMapIslandSchema = z72.object({
83695
+ location: z72.object({
83696
+ addressText: z72.string().nullable(),
83697
+ lat: z72.number().nullable(),
83698
+ lng: z72.number().nullable()
83645
83699
  }).nullable().optional(),
83646
- zoom: z73.number().nullable().optional(),
83647
- heightPx: z73.number().nullable().optional(),
83648
- showAddressText: z73.boolean().optional(),
83649
- showDirections: z73.boolean().optional(),
83650
- directionsLabel: z73.string().nullable().optional(),
83651
- className: z73.string().nullable().optional()
83700
+ zoom: z72.number().nullable().optional(),
83701
+ heightPx: z72.number().nullable().optional(),
83702
+ showAddressText: z72.boolean().optional(),
83703
+ showDirections: z72.boolean().optional(),
83704
+ directionsLabel: z72.string().nullable().optional(),
83705
+ className: z72.string().nullable().optional()
83652
83706
  });
83653
83707
  var accordionIslandPropsCodec = createZodCodec(accordionIslandSchema);
83654
83708
  var headerSectionIslandPropsCodec = createZodCodec(headerSectionIslandSchema);
@@ -84242,7 +84296,7 @@ var SimpleCache = class {
84242
84296
  };
84243
84297
 
84244
84298
  // src/version.ts
84245
- var SDK_VERSION = "0.70.0";
84299
+ var SDK_VERSION = "0.70.3";
84246
84300
 
84247
84301
  // src/client/error.ts
84248
84302
  var RiverbankApiError = class _RiverbankApiError extends Error {
@@ -1202,6 +1202,24 @@ var ENDPOINT_DEFINITIONS = {
1202
1202
  "server:internal_error"
1203
1203
  ]
1204
1204
  },
1205
+ setServiceSpecificAvailability: {
1206
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/service-availability",
1207
+ method: "PUT",
1208
+ auth: "user",
1209
+ responseKind: "json",
1210
+ errors: [
1211
+ "validation:invalid_input",
1212
+ "resource:not_found",
1213
+ "server:internal_error"
1214
+ ]
1215
+ },
1216
+ deleteServiceSpecificAvailability: {
1217
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/service-availability/{scheduleId}",
1218
+ method: "DELETE",
1219
+ auth: "user",
1220
+ responseKind: "json",
1221
+ errors: ["resource:not_found", "server:internal_error"]
1222
+ },
1205
1223
  listBlackouts: {
1206
1224
  path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts",
1207
1225
  method: "GET",
@@ -2837,6 +2855,20 @@ var ENDPOINT_DEFINITIONS = {
2837
2855
  auth: "user",
2838
2856
  responseKind: "json"
2839
2857
  },
2858
+ applySiteStyleSelection: {
2859
+ path: "/sites/{siteId}/theme/style-selection/apply",
2860
+ method: "POST",
2861
+ tags: [TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme],
2862
+ auth: "user",
2863
+ errors: [
2864
+ "validation:invalid_input",
2865
+ "auth:forbidden",
2866
+ "resource:not_found",
2867
+ "resource:conflict",
2868
+ "server:internal_error"
2869
+ ],
2870
+ responseKind: "json"
2871
+ },
2840
2872
  saveSiteChromeLookSelection: {
2841
2873
  path: "/sites/{siteId}/theme/site-chrome-look",
2842
2874
  method: "POST",
@@ -5580,6 +5612,13 @@ var ENDPOINT_DEFINITIONS = {
5580
5612
  auth: "service",
5581
5613
  responseKind: "json"
5582
5614
  },
5615
+ sdkApplySiteStyleSelection: {
5616
+ path: "/sdk/{siteId}/theme/style-selection/apply",
5617
+ method: "POST",
5618
+ auth: "service",
5619
+ responseKind: "json",
5620
+ errors: ["validation:invalid_input", "resource:not_found", "resource:conflict", "server:internal_error"]
5621
+ },
5583
5622
  sdkUpsertFooter: {
5584
5623
  path: "/sdk/{siteId}/footer",
5585
5624
  method: "POST",
@@ -31469,11 +31508,26 @@ var appointmentSetupWeeklyWindowDraftSchema = z63.object({
31469
31508
  startTime: z63.string(),
31470
31509
  endTime: z63.string()
31471
31510
  });
31511
+ var appointmentSetupStartTimePolicyDraftSchema = z63.discriminatedUnion("kind", [
31512
+ z63.object({ kind: z63.literal("automatic_spacing") }),
31513
+ z63.object({
31514
+ kind: z63.literal("regular_interval"),
31515
+ intervalMinutes: z63.union([
31516
+ z63.literal(10),
31517
+ z63.literal(15),
31518
+ z63.literal(20),
31519
+ z63.literal(30),
31520
+ z63.literal(45),
31521
+ z63.literal(60)
31522
+ ])
31523
+ })
31524
+ ]);
31472
31525
  var appointmentSetupAvailabilityDraftSchema = z63.object({
31473
31526
  kind: z63.literal("weekly_windows"),
31474
31527
  resourceRef: appointmentSetupRefSchema,
31475
31528
  serviceRef: appointmentSetupRefSchema.nullable(),
31476
- windows: z63.array(appointmentSetupWeeklyWindowDraftSchema)
31529
+ windows: z63.array(appointmentSetupWeeklyWindowDraftSchema),
31530
+ startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
31477
31531
  });
31478
31532
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
31479
31533
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;