@riverbankcms/sdk 0.4.1 → 0.4.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 (116) hide show
  1. package/README.md +73 -0
  2. package/dist/cli/index.js +46 -5
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/client/client.d.mts +3 -3
  5. package/dist/client/client.d.ts +3 -3
  6. package/dist/client/client.js +90 -170
  7. package/dist/client/client.js.map +1 -1
  8. package/dist/client/client.mjs +90 -170
  9. package/dist/client/client.mjs.map +1 -1
  10. package/dist/client/hooks.d.mts +3 -3
  11. package/dist/client/hooks.d.ts +3 -3
  12. package/dist/client/rendering/client.d.mts +1 -1
  13. package/dist/client/rendering/client.d.ts +1 -1
  14. package/dist/client/rendering/client.js +84 -142
  15. package/dist/client/rendering/client.js.map +1 -1
  16. package/dist/client/rendering/client.mjs +84 -142
  17. package/dist/client/rendering/client.mjs.map +1 -1
  18. package/dist/client/resolver-CYyfzTQ9.d.mts +61 -0
  19. package/dist/client/resolver-CYyfzTQ9.d.ts +61 -0
  20. package/dist/client/usePage--fGlyrgj.d.mts +6439 -0
  21. package/dist/client/usePage-BC8Q2E3t.d.mts +6431 -0
  22. package/dist/client/usePage-CE7X5NcN.d.ts +6439 -0
  23. package/dist/client/usePage-CHEybPMD.d.ts +6429 -0
  24. package/dist/client/usePage-D4fxZbRR.d.mts +6429 -0
  25. package/dist/client/usePage-DpRNZUtP.d.ts +6431 -0
  26. package/dist/server/{Layout-CHG77dhK.d.ts → Layout-CXI_VkhN.d.ts} +1 -1
  27. package/dist/server/{Layout-B_zUr9ci.d.mts → Layout-p6f3TLw9.d.mts} +1 -1
  28. package/dist/server/{chunk-XK2YIISA.mjs → chunk-24F6FTCI.mjs} +2 -2
  29. package/dist/server/{chunk-BUCJWG6G.js → chunk-2SSEBAHC.js} +5 -5
  30. package/dist/server/{chunk-BUCJWG6G.js.map → chunk-2SSEBAHC.js.map} +1 -1
  31. package/dist/server/{chunk-ZIM53VP6.js → chunk-6JBKKV3G.js} +27 -4
  32. package/dist/server/chunk-6JBKKV3G.js.map +1 -0
  33. package/dist/server/{chunk-ZEAJW6T3.mjs → chunk-ES6QDZUX.mjs} +3 -2
  34. package/dist/server/chunk-ES6QDZUX.mjs.map +1 -0
  35. package/dist/server/{chunk-SWPHIUVE.js → chunk-G35R7N7B.js} +3 -2
  36. package/dist/server/chunk-G35R7N7B.js.map +1 -0
  37. package/dist/server/{chunk-BOHTTHY5.mjs → chunk-I6K5REFT.mjs} +27 -4
  38. package/dist/server/chunk-I6K5REFT.mjs.map +1 -0
  39. package/dist/server/{chunk-SFQ7VF3G.mjs → chunk-LCYGQDAB.mjs} +10 -6
  40. package/dist/server/chunk-LCYGQDAB.mjs.map +1 -0
  41. package/dist/server/{chunk-P6CDRJN3.js → chunk-TNYU5EIO.js} +16 -12
  42. package/dist/server/chunk-TNYU5EIO.js.map +1 -0
  43. package/dist/server/{chunk-NKXS4TBK.mjs → chunk-U2NI3TS3.mjs} +87 -169
  44. package/dist/server/chunk-U2NI3TS3.mjs.map +1 -0
  45. package/dist/server/{chunk-IT5ICP43.js → chunk-VHDDXCK6.js} +94 -176
  46. package/dist/server/chunk-VHDDXCK6.js.map +1 -0
  47. package/dist/server/{components-Bo3LPpVb.d.mts → components-C75e4poV.d.mts} +20 -12
  48. package/dist/server/{components-ClFs4PUa.d.ts → components-Dhiemsjd.d.ts} +20 -12
  49. package/dist/server/components.d.mts +5 -5
  50. package/dist/server/components.d.ts +5 -5
  51. package/dist/server/components.js +3 -3
  52. package/dist/server/components.mjs +2 -2
  53. package/dist/server/config-validation.d.mts +2 -2
  54. package/dist/server/config-validation.d.ts +2 -2
  55. package/dist/server/config-validation.js +3 -3
  56. package/dist/server/config-validation.mjs +2 -2
  57. package/dist/server/config.d.mts +3 -3
  58. package/dist/server/config.d.ts +3 -3
  59. package/dist/server/config.js +3 -3
  60. package/dist/server/config.mjs +2 -2
  61. package/dist/server/data.d.mts +2 -2
  62. package/dist/server/data.d.ts +2 -2
  63. package/dist/server/{index-Dj7VKH34.d.mts → index-C6o9LPvq.d.mts} +1 -1
  64. package/dist/server/{index-DbSfrRA0.d.ts → index-CAwBj3-A.d.ts} +1 -1
  65. package/dist/server/index.d.mts +4 -4
  66. package/dist/server/index.d.ts +4 -4
  67. package/dist/server/{loadContent-C_FipaAC.d.mts → loadContent-CdXfuCuE.d.mts} +3 -3
  68. package/dist/server/{loadContent-C2SwqmXy.d.ts → loadContent-CsvQRoxb.d.ts} +3 -3
  69. package/dist/server/{loadPage-naVvoua8.d.ts → loadPage-BA0HiT-6.d.ts} +72 -28
  70. package/dist/server/{loadPage-DUHBXDEW.js → loadPage-DLC7DJZP.js} +3 -3
  71. package/dist/server/{loadPage-DUHBXDEW.js.map → loadPage-DLC7DJZP.js.map} +1 -1
  72. package/dist/server/{loadPage-LYVKY3WZ.mjs → loadPage-GEGN4UAL.mjs} +2 -2
  73. package/dist/server/{loadPage-mavT3Jae.d.mts → loadPage-p3AWwwrd.d.mts} +72 -28
  74. package/dist/server/metadata.d.mts +3 -3
  75. package/dist/server/metadata.d.ts +3 -3
  76. package/dist/server/navigation.d.mts +2 -2
  77. package/dist/server/navigation.d.ts +2 -2
  78. package/dist/server/rendering/server.d.mts +4 -4
  79. package/dist/server/rendering/server.d.ts +4 -4
  80. package/dist/server/rendering/server.js +4 -4
  81. package/dist/server/rendering/server.mjs +3 -3
  82. package/dist/server/rendering.d.mts +7 -7
  83. package/dist/server/rendering.d.ts +7 -7
  84. package/dist/server/rendering.js +5 -5
  85. package/dist/server/rendering.mjs +4 -4
  86. package/dist/server/routing.d.mts +78 -5
  87. package/dist/server/routing.d.ts +78 -5
  88. package/dist/server/routing.js +57 -3
  89. package/dist/server/routing.js.map +1 -1
  90. package/dist/server/routing.mjs +55 -1
  91. package/dist/server/routing.mjs.map +1 -1
  92. package/dist/server/server.d.mts +5 -5
  93. package/dist/server/server.d.ts +5 -5
  94. package/dist/server/server.js +2 -2
  95. package/dist/server/server.mjs +1 -1
  96. package/dist/server/theme-bridge.js +7 -7
  97. package/dist/server/theme-bridge.mjs +1 -1
  98. package/dist/server/{types-BA-J9K8r.d.mts → types-BLf-hE50.d.mts} +19 -6
  99. package/dist/server/{types-5XdVD2J1.d.ts → types-BWQ-TohG.d.ts} +19 -6
  100. package/dist/server/{types-CMqVHYLG.d.ts → types-CL916r6x.d.ts} +23 -1
  101. package/dist/server/{types-BC9eB2KH.d.mts → types-CdhKJrB0.d.mts} +1 -1
  102. package/dist/server/{types-CAnC529E.d.ts → types-Dj8B3QRb.d.ts} +1 -1
  103. package/dist/server/{types-CYfHxUhe.d.mts → types-txWsSxN7.d.mts} +23 -1
  104. package/dist/server/{validation-C7W2Fe0i.d.ts → validation-CoU8uAiu.d.ts} +1 -1
  105. package/dist/server/{validation-hg1sqhrt.d.mts → validation-DzvDwwRo.d.mts} +1 -1
  106. package/package.json +3 -3
  107. package/dist/server/chunk-BOHTTHY5.mjs.map +0 -1
  108. package/dist/server/chunk-IT5ICP43.js.map +0 -1
  109. package/dist/server/chunk-NKXS4TBK.mjs.map +0 -1
  110. package/dist/server/chunk-P6CDRJN3.js.map +0 -1
  111. package/dist/server/chunk-SFQ7VF3G.mjs.map +0 -1
  112. package/dist/server/chunk-SWPHIUVE.js.map +0 -1
  113. package/dist/server/chunk-ZEAJW6T3.mjs.map +0 -1
  114. package/dist/server/chunk-ZIM53VP6.js.map +0 -1
  115. /package/dist/server/{chunk-XK2YIISA.mjs.map → chunk-24F6FTCI.mjs.map} +0 -0
  116. /package/dist/server/{loadPage-LYVKY3WZ.mjs.map → loadPage-GEGN4UAL.mjs.map} +0 -0
@@ -7125,121 +7125,53 @@ var LinkNode = ({
7125
7125
  return /* @__PURE__ */ jsx8("a", { href, ...rest, children });
7126
7126
  };
7127
7127
 
7128
- // ../media-core/dist/chunk-JAKU4BKA.mjs
7129
- var DEFAULT_BASE_PATH = "/api/img";
7130
- var formatNumber = (value) => Number.isInteger(value) ? value.toString() : value.toFixed(6).replace(/0+$/, "").replace(/\.$/, "");
7131
- var addParam = (search, key, value) => {
7132
- if (value === void 0) return;
7133
- switch (key) {
7134
- case "fpX":
7135
- search.set("fp-x", formatNumber(value));
7136
- break;
7137
- case "fpY":
7138
- search.set("fp-y", formatNumber(value));
7139
- break;
7140
- case "rect": {
7141
- const rect = value;
7142
- if (!rect) break;
7143
- search.set("rect", rect.map(formatNumber).join(","));
7144
- break;
7145
- }
7146
- case "autoFormat":
7147
- if (value) {
7148
- search.append("auto", "format");
7149
- }
7150
- break;
7151
- case "invert":
7152
- search.set("invert", value ? "true" : "false");
7153
- break;
7154
- default:
7155
- search.set(
7156
- key,
7157
- typeof value === "number" ? formatNumber(value) : String(value)
7158
- );
7159
- }
7160
- };
7161
- var ORDER = [
7162
- "w",
7163
- "h",
7164
- "dpr",
7165
- "fit",
7166
- "crop",
7167
- "fpX",
7168
- "fpY",
7169
- "rect",
7170
- "q",
7171
- "fm",
7172
- "autoFormat",
7173
- "bg",
7174
- "flip",
7175
- "or",
7176
- "pad",
7177
- "blur",
7178
- "sharp",
7179
- "invert",
7180
- "sat",
7181
- "cs"
7182
- ];
7183
- var getImageUrl = (asset, params = {}, basePath = DEFAULT_BASE_PATH) => {
7184
- const trimmedBase = basePath.endsWith("/") ? basePath.slice(0, Math.max(basePath.length - 1, 0)) : basePath;
7185
- const path = `${trimmedBase}/${encodeURIComponent(asset.id)}`;
7186
- const searchParams = new URLSearchParams();
7187
- ORDER.forEach((key) => {
7188
- addParam(searchParams, key, params[key]);
7189
- });
7190
- const query = searchParams.toString();
7191
- return query ? `${path}?${query}` : path;
7192
- };
7128
+ // ../media-core/dist/chunk-ZBK775TB.mjs
7129
+ function getDirectImageUrl(supabaseUrl, storagePath, storageBucket = "media", options) {
7130
+ const baseUrl = supabaseUrl.replace(/\/$/, "");
7131
+ const encodedPath = storagePath.split("/").map((segment) => encodeURIComponent(segment)).join("/");
7132
+ const isSvg = storagePath.toLowerCase().endsWith(".svg");
7133
+ if (options && !isSvg && (options.width || options.height)) {
7134
+ const params = new URLSearchParams();
7135
+ if (options.width) params.set("width", String(options.width));
7136
+ if (options.height) params.set("height", String(options.height));
7137
+ if (options.quality) params.set("quality", String(options.quality));
7138
+ if (options.resize) params.set("resize", options.resize);
7139
+ return `${baseUrl}/storage/v1/render/image/public/${storageBucket}/${encodedPath}?${params.toString()}`;
7140
+ }
7141
+ return `${baseUrl}/storage/v1/object/public/${storageBucket}/${encodedPath}`;
7142
+ }
7193
7143
 
7194
- // ../blocks/src/system/runtime/utils/api-url.ts
7195
- function resolveMultiEnvDashboardUrl() {
7196
- const env = process.env.RIVERBANK_ENV;
7197
- if (!env) return null;
7198
- const envKey = `RIVERBANK_${env.toUpperCase()}_DASHBOARD_URL`;
7199
- const dashboardUrl = process.env[envKey];
7200
- if (dashboardUrl) {
7201
- return dashboardUrl.replace(/\/$/, "");
7202
- }
7203
- return null;
7144
+ // ../blocks/src/system/runtime/nodes/media.tsx
7145
+ import { jsx as jsx9 } from "react/jsx-runtime";
7146
+ var _contextSupabaseUrl;
7147
+ function setContextSupabaseUrl(url) {
7148
+ _contextSupabaseUrl = url?.replace(/\/$/, "");
7204
7149
  }
7205
- function getCmsApiUrl() {
7206
- const multiEnvDashboard = resolveMultiEnvDashboardUrl();
7207
- if (multiEnvDashboard) {
7208
- return `${multiEnvDashboard}/api`;
7150
+ function getSupabaseUrl() {
7151
+ if (_contextSupabaseUrl) {
7152
+ return _contextSupabaseUrl;
7209
7153
  }
7210
- const builderApiUrl = process.env.NEXT_PUBLIC_BUILDER_API_URL;
7211
- if (builderApiUrl) {
7212
- return builderApiUrl.replace(/\/$/, "");
7213
- }
7214
- const dashboardUrl = process.env.NEXT_PUBLIC_DASHBOARD_URL;
7215
- if (dashboardUrl) {
7216
- const base = dashboardUrl.replace(/\/$/, "");
7217
- return `${base}/api`;
7218
- }
7219
- const legacyApiUrl = process.env.NEXT_PUBLIC_CMS_API_URL;
7220
- if (legacyApiUrl) {
7221
- return legacyApiUrl.replace(/\/$/, "");
7154
+ const url = process.env.NEXT_PUBLIC_SUPABASE_URL;
7155
+ if (!url) {
7156
+ throw new Error(
7157
+ "NEXT_PUBLIC_SUPABASE_URL is not configured. Set it to your Supabase project URL (e.g., https://xxx.supabase.co)"
7158
+ );
7222
7159
  }
7223
- throw new Error(
7224
- "Dashboard URL not configured. Either:\n 1. Set RIVERBANK_ENV with RIVERBANK_LOCAL_DASHBOARD_URL / RIVERBANK_REMOTE_DASHBOARD_URL\n 2. Set NEXT_PUBLIC_BUILDER_API_URL (SDK sites)\n 3. Set NEXT_PUBLIC_DASHBOARD_URL (frontend app)"
7225
- );
7160
+ return url.replace(/\/$/, "");
7226
7161
  }
7227
-
7228
- // ../blocks/src/system/runtime/nodes/media.tsx
7229
- import { jsx as jsx9 } from "react/jsx-runtime";
7230
7162
  var debugMediaNodeLog = (...args) => {
7231
7163
  if (typeof window !== "undefined" && window.__DEBUG_MEDIA_NODE__) {
7232
7164
  console.log("[MediaNode]", ...args);
7233
7165
  }
7234
7166
  };
7235
- var MediaNode = ({ value, className, style, previewKey }) => {
7167
+ var MediaNode = ({ value, className, style }) => {
7236
7168
  if (!value) return null;
7237
7169
  if (value.type === "video") {
7238
7170
  const src = value.src;
7239
7171
  if (!src) return null;
7240
7172
  return /* @__PURE__ */ jsx9("video", { className, style, src, autoPlay: true, muted: true, loop: true, playsInline: true, "aria-label": value.alt ?? "" });
7241
7173
  }
7242
- const imageUrl = resolveImageUrl(value, { previewKey });
7174
+ const imageUrl = resolveImageUrl(value);
7243
7175
  if (!imageUrl) {
7244
7176
  return /* @__PURE__ */ jsx9(
7245
7177
  "div",
@@ -7250,56 +7182,36 @@ var MediaNode = ({ value, className, style, previewKey }) => {
7250
7182
  }
7251
7183
  );
7252
7184
  }
7253
- const isCrossOrigin = typeof window !== "undefined" && imageUrl.startsWith("http") && !imageUrl.startsWith(window.location.origin);
7254
- const isApiRoute = imageUrl.includes("/api/img") || imageUrl.includes("/api/public/img");
7255
- const crossOriginMode = isCrossOrigin && isApiRoute ? "use-credentials" : isCrossOrigin ? "anonymous" : void 0;
7185
+ const hotspotStyle = value.transform?.hotspot ? { objectPosition: `${value.transform.hotspot.x * 100}% ${value.transform.hotspot.y * 100}%` } : void 0;
7256
7186
  return /* @__PURE__ */ jsx9(
7257
7187
  "img",
7258
7188
  {
7259
7189
  src: imageUrl,
7260
7190
  alt: value.alt ?? "",
7261
7191
  className,
7262
- style,
7263
- loading: "lazy",
7264
- crossOrigin: crossOriginMode
7192
+ style: mergeStyles(style, hotspotStyle),
7193
+ loading: "lazy"
7265
7194
  }
7266
7195
  );
7267
7196
  };
7268
- function resolveImageUrl(value, options = {}) {
7197
+ function resolveImageUrl(value) {
7269
7198
  if (value.type !== "image") return void 0;
7270
- const params = {};
7271
- const rect = value.transform?.rect;
7272
- const hotspot = value.transform?.hotspot;
7273
- if (rect && Array.isArray(rect) && rect.length === 4) {
7274
- params.rect = rect.join(",");
7275
- }
7276
- if (hotspot && typeof hotspot.x === "number" && typeof hotspot.y === "number") {
7277
- const x = clamp(hotspot.x);
7278
- const y = clamp(hotspot.y);
7279
- params.hotspot = `${x.toFixed(4)},${y.toFixed(4)}`;
7280
- }
7281
7199
  debugMediaNodeLog("resolveImageUrl input", {
7282
7200
  assetId: value.assetId,
7201
+ storagePath: value.storagePath,
7283
7202
  src: value.src,
7284
- type: value.type,
7285
- hasPreviewKey: !!options.previewKey
7203
+ type: value.type
7286
7204
  });
7287
- if (value.assetId) {
7288
- const cmsApiBase = getCmsApiUrl();
7289
- const basePath = `${cmsApiBase}/public/img`;
7290
- let resolved = getImageUrl({ id: value.assetId }, params, basePath);
7291
- if (options.previewKey) {
7292
- const separator = resolved.includes("?") ? "&" : "?";
7293
- resolved = `${resolved}${separator}preview_key=${encodeURIComponent(options.previewKey)}`;
7294
- }
7295
- debugMediaNodeLog("resolve:asset-id", {
7296
- assetId: value.assetId,
7297
- cmsApiBase,
7298
- basePath,
7299
- resolvedUrl: resolved,
7300
- hasPreviewKey: !!options.previewKey
7205
+ if (value.storagePath && value.storagePath.length > 0) {
7206
+ const supabaseUrl = getSupabaseUrl();
7207
+ const bucket = value.storageBucket ?? "media";
7208
+ const directUrl = getDirectImageUrl(supabaseUrl, value.storagePath, bucket);
7209
+ debugMediaNodeLog("resolve:direct-supabase", {
7210
+ storagePath: value.storagePath,
7211
+ bucket,
7212
+ directUrl
7301
7213
  });
7302
- return resolved;
7214
+ return directUrl;
7303
7215
  }
7304
7216
  if (typeof value.src === "string" && value.src.length > 0) {
7305
7217
  debugMediaNodeLog("resolve:explicit-src", { src: value.src });
@@ -7308,9 +7220,6 @@ function resolveImageUrl(value, options = {}) {
7308
7220
  debugMediaNodeLog("resolve:fallback-url", { fallbackUrl: value.url ?? null });
7309
7221
  return value.url ?? void 0;
7310
7222
  }
7311
- function clamp(v, min6 = 0, max6 = 1) {
7312
- return Math.min(Math.max(v, min6), max6);
7313
- }
7314
7223
 
7315
7224
  // ../blocks/src/system/runtime/nodes/form.server.tsx
7316
7225
  import { jsx as jsx10, jsxs } from "react/jsx-runtime";
@@ -14741,6 +14650,7 @@ function PageRenderer({
14741
14650
  blockOverrides,
14742
14651
  sdkConfig
14743
14652
  }) {
14653
+ setContextSupabaseUrl(dataContext?.supabaseUrl);
14744
14654
  if (!page || page.blocks.length === 0) {
14745
14655
  return /* @__PURE__ */ jsx21("div", { className: "p-6 text-sm", style: textColorStyle("mutedText"), children: "No blocks found." });
14746
14656
  }
@@ -14853,8 +14763,6 @@ var MemoBlockSection = React5.memo(function MemoBlockSection2({
14853
14763
  return wrapBlock && block.id ? /* @__PURE__ */ jsx21(Fragment2, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx21(Fragment2, { children: rendered });
14854
14764
  }
14855
14765
  try {
14856
- const BlockComponent = OverrideComponent ?? getCachedBlockComponent(definition.manifest);
14857
- const pathBase = typeof block.id === "string" && block.id.length > 0 ? `blocks.${block.id}.` : void 0;
14858
14766
  const routes = routeMap ?? dataContext?.routes;
14859
14767
  const hydratedContent = routes ? hydrateManifestLinks(definition.manifest, data, routes) : data;
14860
14768
  const resolved = resolveBlockData({
@@ -14862,35 +14770,45 @@ var MemoBlockSection = React5.memo(function MemoBlockSection2({
14862
14770
  definition,
14863
14771
  dataContext
14864
14772
  });
14865
- const rootContext = {
14866
- $root: {
14867
- siteId: dataContext?.siteId ?? null,
14868
- pageId: dataContext?.pageId ?? null,
14869
- previewStage: dataContext?.previewStage ?? "published",
14870
- ...routes ? { routes } : {},
14871
- // Occurrence and content entry context for template pages
14872
- occurrenceContext: dataContext?.occurrenceContext ?? null,
14873
- contentEntry: dataContext?.contentEntry ?? null
14874
- }
14773
+ const baseProps = {
14774
+ content: hydratedContent,
14775
+ theme: themeTokens,
14776
+ themeConfig,
14777
+ data: resolved,
14778
+ blockId: block.id ?? null,
14779
+ blockKind: block.kind
14875
14780
  };
14876
- const blockBindings = block.bindings ?? void 0;
14877
- const fragmentRegistry2 = getFragmentRegistry();
14878
- const rendered = /* @__PURE__ */ jsx21(
14879
- BlockComponent,
14880
- {
14881
- content: hydratedContent,
14882
- theme: themeTokens,
14883
- themeConfig,
14884
- registry,
14885
- pathBase,
14886
- data: resolved,
14887
- blockId: block.id ?? null,
14888
- blockKind: block.kind,
14889
- blockBindings,
14890
- viewModelOverrides: rootContext,
14891
- fragmentRegistry: fragmentRegistry2
14892
- }
14893
- );
14781
+ let rendered;
14782
+ if (OverrideComponent) {
14783
+ rendered = /* @__PURE__ */ jsx21(OverrideComponent, { ...baseProps });
14784
+ } else {
14785
+ const BlockComponent = getCachedBlockComponent(definition.manifest);
14786
+ const pathBase = typeof block.id === "string" && block.id.length > 0 ? `blocks.${block.id}.` : void 0;
14787
+ const rootContext = {
14788
+ $root: {
14789
+ siteId: dataContext?.siteId ?? null,
14790
+ pageId: dataContext?.pageId ?? null,
14791
+ previewStage: dataContext?.previewStage ?? "published",
14792
+ ...routes ? { routes } : {},
14793
+ // Occurrence and content entry context for template pages
14794
+ occurrenceContext: dataContext?.occurrenceContext ?? null,
14795
+ contentEntry: dataContext?.contentEntry ?? null
14796
+ }
14797
+ };
14798
+ const blockBindings = block.bindings ?? void 0;
14799
+ const fragmentRegistry2 = getFragmentRegistry();
14800
+ rendered = /* @__PURE__ */ jsx21(
14801
+ BlockComponent,
14802
+ {
14803
+ ...baseProps,
14804
+ registry,
14805
+ pathBase,
14806
+ blockBindings,
14807
+ viewModelOverrides: rootContext,
14808
+ fragmentRegistry: fragmentRegistry2
14809
+ }
14810
+ );
14811
+ }
14894
14812
  if (wrapBlock && block.id) {
14895
14813
  return /* @__PURE__ */ jsx21(Fragment2, { children: wrapBlock(block.id, rendered) });
14896
14814
  }
@@ -14969,6 +14887,7 @@ function Page({
14969
14887
  usePlaceholders = false,
14970
14888
  blockOverrides,
14971
14889
  sdkConfig,
14890
+ supabaseUrl,
14972
14891
  dataContext
14973
14892
  }) {
14974
14893
  const baseTokens = providedTokens ?? buildThemeRuntime(theme).tokens;
@@ -14985,7 +14904,8 @@ function Page({
14985
14904
  resolvedData,
14986
14905
  routes: routeMap,
14987
14906
  occurrenceContext: dataContext?.occurrenceContext ?? null,
14988
- contentEntry: dataContext?.contentEntry ?? null
14907
+ contentEntry: dataContext?.contentEntry ?? null,
14908
+ supabaseUrl
14989
14909
  },
14990
14910
  routeMap,
14991
14911
  wrapBlock,
@@ -16590,7 +16510,7 @@ var ENDPOINT_DEFINITIONS = {
16590
16510
  var API_ENDPOINTS = ENDPOINT_DEFINITIONS;
16591
16511
 
16592
16512
  // ../api/src/url.ts
16593
- function getCmsApiUrl2() {
16513
+ function getCmsApiUrl() {
16594
16514
  if (typeof window !== "undefined") {
16595
16515
  return "/api";
16596
16516
  }
@@ -16612,7 +16532,7 @@ function getCmsApiUrl2() {
16612
16532
  );
16613
16533
  }
16614
16534
  function resolveApiBaseUrl() {
16615
- return getCmsApiUrl2();
16535
+ return getCmsApiUrl();
16616
16536
  }
16617
16537
 
16618
16538
  // ../api/src/request.ts