@riverbankcms/sdk 0.74.0 → 0.76.0

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 (145) hide show
  1. package/README.md +2 -0
  2. package/dist/{PreviewEditorSidebar-5XL7M3OM.mjs → PreviewEditorSidebar-X2HWXFOL.mjs} +172 -89
  3. package/dist/{PreviewEditorUI-ZDFRDJID.mjs → PreviewEditorUI-AQXIXPOH.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-ZQNDCASH.mjs +8 -0
  5. package/dist/_dts/api/src/bookingOperations.d.ts +12 -0
  6. package/dist/_dts/api/src/cache-tags.d.ts +22 -0
  7. package/dist/_dts/api/src/contentRuntime.d.ts +1 -0
  8. package/dist/_dts/api/src/endpoints.d.ts +24 -24
  9. package/dist/_dts/api/src/index.d.ts +1 -1
  10. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +13 -4
  11. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +4 -2
  12. package/dist/_dts/block-form/src/client/index.d.ts +1 -1
  13. package/dist/_dts/block-form/src/manifest/utils.d.ts +24 -0
  14. package/dist/_dts/blocks/src/client/booking-form.d.ts +2 -0
  15. package/dist/_dts/blocks/src/client/carousel.d.ts +1 -0
  16. package/dist/_dts/blocks/src/client/course-registration.d.ts +2 -0
  17. package/dist/_dts/blocks/src/client/events.d.ts +6 -0
  18. package/dist/_dts/blocks/src/client/form.d.ts +2 -0
  19. package/dist/_dts/blocks/src/client/header.d.ts +1 -0
  20. package/dist/_dts/blocks/src/client/location-map.d.ts +1 -0
  21. package/dist/_dts/blocks/src/client/newsletter-form.d.ts +2 -0
  22. package/dist/_dts/blocks/src/client/shop.d.ts +6 -0
  23. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
  24. package/dist/_dts/blocks/src/lib/video.d.ts +2 -0
  25. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +21 -1
  26. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +7 -6
  27. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
  28. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +3 -2
  29. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +3 -27
  30. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +163 -0
  31. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +5 -5
  32. package/dist/_dts/blocks/src/system/runtime/nodes/events/index.d.ts +3 -0
  33. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +1 -0
  34. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.server.d.ts +1 -0
  35. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionCompactRow.d.ts +29 -0
  36. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionList.d.ts +13 -0
  37. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +4 -0
  38. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +4 -3
  39. package/dist/_dts/blocks/src/system/runtime/shared/utils/bookingRoute.d.ts +20 -0
  40. package/dist/_dts/blocks/src/system/runtime/shared/utils/index.d.ts +2 -1
  41. package/dist/_dts/blocks/src/system/types/link.d.ts +12 -0
  42. package/dist/_dts/content-editor/src/hooks/validateBlocksForPublish.d.ts +5 -0
  43. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +2 -0
  44. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +3 -1
  45. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +3 -1
  46. package/dist/_dts/editor-blocks/src/block-editor/BlockSettingsModal.d.ts +5 -1
  47. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +2 -0
  48. package/dist/_dts/editor-blocks/src/block-editor/actionControlMode.d.ts +2 -0
  49. package/dist/_dts/editor-blocks/src/index.d.ts +1 -1
  50. package/dist/_dts/preview-next/src/client/preview/SiteChromeEditableSurface.d.ts +12 -2
  51. package/dist/_dts/preview-next/src/client/preview/themeOverlay.d.ts +21 -3
  52. package/dist/_dts/sdk/src/components.d.ts +2 -2
  53. package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -0
  54. package/dist/_dts/sdk/src/rendering/index.d.ts +2 -2
  55. package/dist/_dts/sdk/src/rendering/islands/deferredVideoEmbeds.d.ts +2 -0
  56. package/dist/_dts/sdk/src/rendering/overrideResolution.d.ts +6 -0
  57. package/dist/_dts/sdk/src/rendering/overrides.d.ts +21 -1
  58. package/dist/_dts/sdk/src/rendering/server.d.ts +4 -0
  59. package/dist/_dts/sdk/src/version.d.ts +1 -1
  60. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  61. package/dist/{chunk-2MIWNFJM.mjs → chunk-LYI7TEMH.mjs} +494 -171
  62. package/dist/{chunk-YY7K3QD2.mjs → chunk-Q4OLG66B.mjs} +9 -9
  63. package/dist/{chunk-CEQBBLMJ.mjs → chunk-TW2Y4RR5.mjs} +69 -14
  64. package/dist/{chunk-CBD47MTM.mjs → chunk-V5VORNEJ.mjs} +2 -2
  65. package/dist/{chunk-7RX72SK2.mjs → chunk-VX7B5VAC.mjs} +36 -25
  66. package/dist/{chunk-YRJKZEQ3.mjs → chunk-Z7JLNTJR.mjs} +1 -1
  67. package/dist/cli/index.mjs +3395 -3753
  68. package/dist/client/{accordion-ZZVXWV3N.mjs → accordion-2YHIBOZH.mjs} +1 -1
  69. package/dist/client/bookingForm-35IBDWAS.mjs +3012 -0
  70. package/dist/client/bookings.mjs +30 -21
  71. package/dist/client/{carousel-25WK2H7G.mjs → carousel-K6XG7NZQ.mjs} +3 -2
  72. package/dist/client/cart-HCFYUTTU.mjs +18 -0
  73. package/dist/client/checkout-J3U4XR7K.mjs +18 -0
  74. package/dist/client/chunk-3DCJ45Z2.mjs +36 -0
  75. package/dist/client/chunk-3PEDD5KJ.mjs +146 -0
  76. package/dist/client/{chunk-6VGXRE34.mjs → chunk-7UOSCYY4.mjs} +76 -29
  77. package/dist/client/chunk-BOIHIU7E.mjs +106 -0
  78. package/dist/client/chunk-F7LHOKEH.mjs +146 -0
  79. package/dist/client/chunk-FGUIVT2B.mjs +204 -0
  80. package/dist/client/chunk-I2MMZO53.mjs +6 -0
  81. package/dist/client/chunk-II7O4XN3.mjs +2206 -0
  82. package/dist/client/chunk-J227A3CQ.mjs +245 -0
  83. package/dist/client/chunk-JEZECJ3W.mjs +383 -0
  84. package/dist/client/chunk-M3L3KYYR.mjs +1181 -0
  85. package/dist/client/chunk-OJPZEZU2.mjs +31 -0
  86. package/dist/client/chunk-PFBX3IQL.mjs +1378 -0
  87. package/dist/client/chunk-RTZ3JKKX.mjs +178 -0
  88. package/dist/client/chunk-SNSWVZEP.mjs +5592 -0
  89. package/dist/client/chunk-TQ5MSPDX.mjs +74 -0
  90. package/dist/client/chunk-YLMKMCSJ.mjs +86 -0
  91. package/dist/client/client.mjs +54052 -54518
  92. package/dist/client/courseRegistration-ZBXS7VGI.mjs +1737 -0
  93. package/dist/client/{eventCalendar-X6GIPYFM.mjs → eventCalendar-EQQZHJBA.mjs} +13 -2
  94. package/dist/client/{eventCombined-EZUOPM3G.mjs → eventCombined-JCFTGBFQ.mjs} +13 -2
  95. package/dist/client/eventDetails-HLUTQSYY.mjs +25 -0
  96. package/dist/client/{eventListing-HEFGAETC.mjs → eventListing-FG4MICVB.mjs} +13 -2
  97. package/dist/client/{eventRegistration-3LCP2V3P.mjs → eventRegistration-GUEB7LBT.mjs} +13 -2
  98. package/dist/client/form-YQEW4YIT.mjs +300 -0
  99. package/dist/client/headerSection-GTR3TTRM.mjs +729 -0
  100. package/dist/client/hooks.mjs +49 -33
  101. package/dist/client/locationMap-SPC7VGUH.mjs +227 -0
  102. package/dist/client/newsletterForm-4IW5BLID.mjs +208 -0
  103. package/dist/client/productDetail-KP5H2WJO.mjs +18 -0
  104. package/dist/client/productList-3M3M72XZ.mjs +18 -0
  105. package/dist/client/rendering/client.mjs +15580 -16277
  106. package/dist/client/rendering/islands.mjs +98 -21
  107. package/dist/client/rendering.mjs +48730 -49191
  108. package/dist/client/shop-ACQKVGOM.mjs +20 -0
  109. package/dist/preview-next/before-render.mjs +37 -25
  110. package/dist/preview-next/chrome.css +1 -1
  111. package/dist/preview-next/client/runtime.mjs +5 -5
  112. package/dist/preview-next/editor-base.css +2 -148
  113. package/dist/preview-next/editor-chrome.css +179 -0
  114. package/dist/preview-next/middleware.mjs +37 -25
  115. package/dist/{sdk-runtime-OHNONZ5U.mjs → sdk-runtime-K7HNB4U2.mjs} +6 -6
  116. package/dist/server/components.mjs +1294 -1103
  117. package/dist/server/config-validation.mjs +49 -33
  118. package/dist/server/config.mjs +49 -33
  119. package/dist/server/data.mjs +49 -33
  120. package/dist/server/index.mjs +45 -33
  121. package/dist/server/next.mjs +1240 -1050
  122. package/dist/server/page-converter.mjs +12 -8
  123. package/dist/server/prebuild.mjs +1 -1
  124. package/dist/server/rendering/server.mjs +1389 -1104
  125. package/dist/server/rendering.mjs +1300 -1109
  126. package/dist/server/routing.mjs +49 -33
  127. package/dist/server/server.mjs +50 -34
  128. package/dist/server/theme-bridge.mjs +5 -0
  129. package/dist/styles/index.css +5 -0
  130. package/package.json +2 -1
  131. package/dist/SdkPreviewModeRuntime-CRYNDSPL.mjs +0 -8
  132. package/dist/client/bookingForm-4X77HKDS.mjs +0 -34
  133. package/dist/client/cart-JWD2VRFU.mjs +0 -11
  134. package/dist/client/checkout-V7KYGWL7.mjs +0 -11
  135. package/dist/client/chunk-5IYGMTUE.mjs +0 -18614
  136. package/dist/client/chunk-RKCFVIMS.mjs +0 -26
  137. package/dist/client/courseRegistration-O6ZPK4YT.mjs +0 -29
  138. package/dist/client/eventDetails-3WODIXET.mjs +0 -14
  139. package/dist/client/form-AKXQMY6Z.mjs +0 -85
  140. package/dist/client/headerSection-5KHCMU6B.mjs +0 -12
  141. package/dist/client/locationMap-7HIADW76.mjs +0 -14
  142. package/dist/client/newsletterForm-5N4YTMU3.mjs +0 -60
  143. package/dist/client/productDetail-IZUA7ZP3.mjs +0 -11
  144. package/dist/client/productList-KWIIJE6I.mjs +0 -11
  145. package/dist/client/shop-XZQFRQWZ.mjs +0 -13
@@ -2,26 +2,102 @@
2
2
  import { buildResolveImageUrlContext, setContextResolveImageUrlContext } from '../chunk-PMAIXMAB.mjs';
3
3
  import { useEffect } from 'react';
4
4
 
5
+ // src/rendering/islands/deferredVideoEmbeds.ts
6
+ var DEFERRED_IFRAME_SELECTOR = 'iframe[data-rb-video-embed-deferred="true"]';
7
+ var WRAPPER_SELECTOR = '[data-rb-video-embed-wrapper="true"]';
8
+ var DEFERRED_SRC_ATTRIBUTE = "data-rb-video-embed-src";
9
+ var LOADED_ATTRIBUTE = "data-rb-video-embed-loaded";
10
+ var OBSERVER_ROOT_MARGIN = "800px";
11
+ var observer = null;
12
+ var observedTargets = /* @__PURE__ */ new WeakMap();
13
+ function enhanceDeferredVideoEmbeds(root = document) {
14
+ const iframes = Array.from(root.querySelectorAll(DEFERRED_IFRAME_SELECTOR));
15
+ if (iframes.length === 0) return;
16
+ if (typeof IntersectionObserver === "undefined") {
17
+ iframes.forEach(loadDeferredIframe);
18
+ return;
19
+ }
20
+ const sharedObserver = getOrCreateObserver();
21
+ iframes.forEach((iframe) => {
22
+ if (iframe.getAttribute("src")) {
23
+ markLoaded(iframe);
24
+ return;
25
+ }
26
+ const target = getObservationTarget(iframe);
27
+ if (observedTargets.has(target)) return;
28
+ observedTargets.set(target, iframe);
29
+ sharedObserver.observe(target);
30
+ });
31
+ }
32
+ function getOrCreateObserver() {
33
+ if (observer) return observer;
34
+ observer = new IntersectionObserver(
35
+ (entries) => {
36
+ for (const entry of entries) {
37
+ if (!entry.isIntersecting) continue;
38
+ const iframe = observedTargets.get(entry.target) ?? findDeferredIframe(entry.target);
39
+ observer?.unobserve(entry.target);
40
+ observedTargets.delete(entry.target);
41
+ if (!iframe) continue;
42
+ loadDeferredIframe(iframe);
43
+ }
44
+ },
45
+ { rootMargin: OBSERVER_ROOT_MARGIN }
46
+ );
47
+ return observer;
48
+ }
49
+ function getObservationTarget(iframe) {
50
+ return iframe.closest(WRAPPER_SELECTOR) ?? iframe;
51
+ }
52
+ function findDeferredIframe(target) {
53
+ if (target instanceof HTMLIFrameElement) {
54
+ return target.matches(DEFERRED_IFRAME_SELECTOR) ? target : null;
55
+ }
56
+ return target.querySelector(DEFERRED_IFRAME_SELECTOR);
57
+ }
58
+ function loadDeferredIframe(iframe) {
59
+ if (iframe.getAttribute("src")) {
60
+ markLoaded(iframe);
61
+ return;
62
+ }
63
+ const src = iframe.getAttribute(DEFERRED_SRC_ATTRIBUTE);
64
+ if (!isSafeHttpsUrl(src)) return;
65
+ iframe.setAttribute("src", src);
66
+ markLoaded(iframe);
67
+ }
68
+ function markLoaded(iframe) {
69
+ iframe.removeAttribute("data-rb-video-embed-deferred");
70
+ iframe.setAttribute(LOADED_ATTRIBUTE, "true");
71
+ }
72
+ function isSafeHttpsUrl(value) {
73
+ if (!value) return false;
74
+ try {
75
+ return new URL(value).protocol === "https:";
76
+ } catch {
77
+ return false;
78
+ }
79
+ }
80
+
5
81
  // src/rendering/islands/hydrateBlocksIslands.ts
6
82
  var defaultEnhancerLoaders = {
7
- accordion: () => import('../accordion-ZZVXWV3N.mjs'),
8
- headerSection: () => import('../headerSection-5KHCMU6B.mjs'),
9
- carousel: () => import('../carousel-25WK2H7G.mjs'),
10
- form: () => import('../form-AKXQMY6Z.mjs'),
11
- "booking-form": () => import('../bookingForm-4X77HKDS.mjs'),
12
- "event-registration": () => import('../eventRegistration-3LCP2V3P.mjs'),
13
- "event-details": () => import('../eventDetails-3WODIXET.mjs'),
14
- "location-map": () => import('../locationMap-7HIADW76.mjs'),
15
- "course-registration": () => import('../courseRegistration-O6ZPK4YT.mjs'),
16
- "event-listing": () => import('../eventListing-HEFGAETC.mjs'),
17
- "event-calendar": () => import('../eventCalendar-X6GIPYFM.mjs'),
18
- "event-combined": () => import('../eventCombined-EZUOPM3G.mjs'),
19
- "product-list": () => import('../productList-KWIIJE6I.mjs'),
20
- "product-detail": () => import('../productDetail-IZUA7ZP3.mjs'),
21
- "cart": () => import('../cart-JWD2VRFU.mjs'),
22
- "checkout": () => import('../checkout-V7KYGWL7.mjs'),
23
- shop: () => import('../shop-XZQFRQWZ.mjs'),
24
- "newsletter-form": () => import('../newsletterForm-5N4YTMU3.mjs')
83
+ accordion: () => import('../accordion-2YHIBOZH.mjs'),
84
+ headerSection: () => import('../headerSection-GTR3TTRM.mjs'),
85
+ carousel: () => import('../carousel-K6XG7NZQ.mjs'),
86
+ form: () => import('../form-YQEW4YIT.mjs'),
87
+ "booking-form": () => import('../bookingForm-35IBDWAS.mjs'),
88
+ "event-registration": () => import('../eventRegistration-GUEB7LBT.mjs'),
89
+ "event-details": () => import('../eventDetails-HLUTQSYY.mjs'),
90
+ "location-map": () => import('../locationMap-SPC7VGUH.mjs'),
91
+ "course-registration": () => import('../courseRegistration-ZBXS7VGI.mjs'),
92
+ "event-listing": () => import('../eventListing-FG4MICVB.mjs'),
93
+ "event-calendar": () => import('../eventCalendar-EQQZHJBA.mjs'),
94
+ "event-combined": () => import('../eventCombined-JCFTGBFQ.mjs'),
95
+ "product-list": () => import('../productList-3M3M72XZ.mjs'),
96
+ "product-detail": () => import('../productDetail-KP5H2WJO.mjs'),
97
+ "cart": () => import('../cart-HCFYUTTU.mjs'),
98
+ "checkout": () => import('../checkout-J3U4XR7K.mjs'),
99
+ shop: () => import('../shop-ACQKVGOM.mjs'),
100
+ "newsletter-form": () => import('../newsletterForm-4IW5BLID.mjs')
25
101
  };
26
102
  var DEFAULT_MAX_RETRIES = 2;
27
103
  var RETRY_DELAYS_MS = [250, 1e3];
@@ -153,6 +229,7 @@ async function mountIsland(island, options) {
153
229
  }
154
230
  function hydrateBlocksIslands(options = {}) {
155
231
  const root = options.root ?? document;
232
+ enhanceDeferredVideoEmbeds(root);
156
233
  const loaders = resolveLoaders(options);
157
234
  const islands = collectIslands(root, loaders);
158
235
  if (islands.length === 0) return;
@@ -167,12 +244,12 @@ function hydrateBlocksIslands(options = {}) {
167
244
  lazy.forEach(run);
168
245
  return;
169
246
  }
170
- const observer = new IntersectionObserver(
247
+ const observer2 = new IntersectionObserver(
171
248
  (entries) => {
172
249
  for (const entry of entries) {
173
250
  if (!entry.isIntersecting) continue;
174
251
  const element = entry.target;
175
- observer.unobserve(element);
252
+ observer2.unobserve(element);
176
253
  const kind = element.dataset.rbIsland;
177
254
  if (!kind || !isIslandKind(kind, loaders)) continue;
178
255
  run({ element, kind });
@@ -180,7 +257,7 @@ function hydrateBlocksIslands(options = {}) {
180
257
  },
181
258
  { rootMargin: "200px" }
182
259
  );
183
- lazy.forEach((island) => observer.observe(island.element));
260
+ lazy.forEach((island) => observer2.observe(island.element));
184
261
  }
185
262
 
186
263
  // src/rendering/islands/BlocksIslandsHydrator.tsx