@pixldocs/canvas-renderer 0.5.182 → 0.5.184

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.
@@ -3430,6 +3430,7 @@ const setupFontLoadingListener = (canvas, afterRerender, options = {}) => {
3430
3430
  };
3431
3431
  };
3432
3432
  preloadAllFonts();
3433
+ const EMPTY_IMAGE_PLACEHOLDER_DATA_URL = "data:image/png;base64,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";
3433
3434
  const svgTextCache = /* @__PURE__ */ new Map();
3434
3435
  const htmlImageCache = /* @__PURE__ */ new Map();
3435
3436
  const MAX_CACHE_ENTRIES = 200;
@@ -3662,7 +3663,7 @@ async function normalizeSvgImageDimensions(fabricImage, imageUrl, sourceFormat)
3662
3663
  fabricImage.setCoords();
3663
3664
  }
3664
3665
  }
3665
- const EMPTY_IMAGE_PLACEHOLDER_URL = "/image-placeholder.png";
3666
+ const EMPTY_IMAGE_PLACEHOLDER_URL = EMPTY_IMAGE_PLACEHOLDER_DATA_URL;
3666
3667
  let placeholderTileImage = null;
3667
3668
  let placeholderTilePromise = null;
3668
3669
  function loadPlaceholderTile() {
@@ -16161,7 +16162,39 @@ function countUnderlinedNodes(config) {
16161
16162
  for (const page of config.pages) walk(page.children || []);
16162
16163
  return count;
16163
16164
  }
16165
+ function getNum(v, fallback = 0) {
16166
+ return typeof v === "number" && Number.isFinite(v) ? v : fallback;
16167
+ }
16168
+ function collectBlurBounds(node, parentLeft, parentTop, inheritedBlur, out) {
16169
+ if (!node || typeof node !== "object") return;
16170
+ const isBlurred = inheritedBlur || node.previewBlur === true;
16171
+ const absLeft = parentLeft + getNum(node.left, 0);
16172
+ const absTop = parentTop + getNum(node.top, 0);
16173
+ if (node.type === "group") {
16174
+ const children = node.children || node.elements;
16175
+ if (Array.isArray(children)) {
16176
+ for (const c of children) collectBlurBounds(c, absLeft, absTop, isBlurred, out);
16177
+ }
16178
+ return;
16179
+ }
16180
+ if (!isBlurred) return;
16181
+ const sx = getNum(node.scaleX, 1) || 1;
16182
+ const sy = getNum(node.scaleY, 1) || 1;
16183
+ const w = Math.max(4, getNum(node.width, 0) * sx);
16184
+ const h = Math.max(4, getNum(node.height, 0) * sy);
16185
+ out.push({ left: absLeft, top: absTop, width: w, height: h });
16186
+ }
16187
+ function computeFrostedBoundsForPage(config, pageIndex) {
16188
+ var _a;
16189
+ const page = (_a = config == null ? void 0 : config.pages) == null ? void 0 : _a[pageIndex];
16190
+ const children = (page == null ? void 0 : page.children) || (page == null ? void 0 : page.elements);
16191
+ if (!Array.isArray(children)) return [];
16192
+ const out = [];
16193
+ for (const c of children) collectBlurBounds(c, 0, 0, false, out);
16194
+ return out;
16195
+ }
16164
16196
  function PixldocsPreview(props) {
16197
+ var _a, _b;
16165
16198
  const {
16166
16199
  pageIndex = 0,
16167
16200
  zoom = 1,
@@ -16185,7 +16218,9 @@ function PixldocsPreview(props) {
16185
16218
  // `captureSvgViaPreviewCanvas`) already pass `skipFontReadyWait: false`
16186
16219
  // for this exact reason — that's why the downloaded PDF was correct
16187
16220
  // while the on-screen preview wasn't.
16188
- skipFontReadyWait = false
16221
+ skipFontReadyWait = false,
16222
+ frostedBlur = true,
16223
+ frostedBlurOptions
16189
16224
  } = props;
16190
16225
  react.useEffect(() => {
16191
16226
  setPackageApiUrl(imageProxyUrl);
@@ -16222,10 +16257,10 @@ function PixldocsPreview(props) {
16222
16257
  supabaseUrl: p.supabaseUrl,
16223
16258
  supabaseAnonKey: p.supabaseAnonKey
16224
16259
  }).then((resolved) => {
16225
- var _a, _b;
16260
+ var _a2, _b2;
16226
16261
  if (!cancelled) {
16227
16262
  console.log(PREVIEW_DEBUG_PREFIX, "resolve-done", {
16228
- pages: ((_b = (_a = resolved.config) == null ? void 0 : _a.pages) == null ? void 0 : _b.length) ?? 0,
16263
+ pages: ((_b2 = (_a2 = resolved.config) == null ? void 0 : _a2.pages) == null ? void 0 : _b2.length) ?? 0,
16229
16264
  underlinedNodes: countUnderlinedNodes(resolved.config)
16230
16265
  });
16231
16266
  setResolvedConfig(resolved.config);
@@ -16301,6 +16336,16 @@ function PixldocsPreview(props) {
16301
16336
  setCanvasSettled(true);
16302
16337
  onReady == null ? void 0 : onReady();
16303
16338
  }, [onReady, pageIndex]);
16339
+ const frostedBounds = react.useMemo(
16340
+ () => frostedBlur ? computeFrostedBoundsForPage(config, pageIndex) : [],
16341
+ [frostedBlur, config, pageIndex]
16342
+ );
16343
+ const blurPx = (frostedBlurOptions == null ? void 0 : frostedBlurOptions.blurPx) ?? 5;
16344
+ const satPct = (frostedBlurOptions == null ? void 0 : frostedBlurOptions.saturatePct) ?? 130;
16345
+ const bgTint = (frostedBlurOptions == null ? void 0 : frostedBlurOptions.background) ?? "rgba(255,255,255,0.12)";
16346
+ const canvasW = getNum((_a = config == null ? void 0 : config.canvas) == null ? void 0 : _a.width, 0);
16347
+ const canvasH = getNum((_b = config == null ? void 0 : config.canvas) == null ? void 0 : _b.height, 0);
16348
+ const hasOverlays = frostedBounds.length > 0 && canvasW > 0 && canvasH > 0;
16304
16349
  if (isLoading) {
16305
16350
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className, style: { ...style, display: "flex", alignItems: "center", justifyContent: "center", minHeight: 200 }, children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: { color: "#888", fontSize: 14 }, children: "Loading preview..." }) });
16306
16351
  }
@@ -16309,19 +16354,55 @@ function PixldocsPreview(props) {
16309
16354
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className, style: { ...style, display: "flex", alignItems: "center", justifyContent: "center", minHeight: 200 }, children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: { color: "#888", fontSize: 14 }, children: "Loading preview..." }) });
16310
16355
  }
16311
16356
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className, style: { ...style, position: "relative" }, children: [
16312
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: { visibility: canvasSettled ? "visible" : "hidden" }, children: /* @__PURE__ */ jsxRuntime.jsx(
16313
- PreviewCanvas,
16357
+ /* @__PURE__ */ jsxRuntime.jsxs(
16358
+ "div",
16314
16359
  {
16315
- config,
16316
- pageIndex,
16317
- zoom,
16318
- absoluteZoom,
16319
- skipFontReadyWait,
16320
- onDynamicFieldClick,
16321
- onReady: handleCanvasReady
16322
- },
16323
- previewKey
16324
- ) }),
16360
+ style: hasOverlays ? { visibility: canvasSettled ? "visible" : "hidden", position: "relative", width: canvasW * zoom, height: canvasH * zoom } : { visibility: canvasSettled ? "visible" : "hidden" },
16361
+ children: [
16362
+ /* @__PURE__ */ jsxRuntime.jsx(
16363
+ PreviewCanvas,
16364
+ {
16365
+ config,
16366
+ pageIndex,
16367
+ zoom,
16368
+ absoluteZoom,
16369
+ skipFontReadyWait,
16370
+ onDynamicFieldClick,
16371
+ onReady: handleCanvasReady
16372
+ },
16373
+ previewKey
16374
+ ),
16375
+ hasOverlays && /* @__PURE__ */ jsxRuntime.jsx(
16376
+ "div",
16377
+ {
16378
+ style: {
16379
+ position: "absolute",
16380
+ inset: 0,
16381
+ pointerEvents: "none",
16382
+ zIndex: 5
16383
+ },
16384
+ children: frostedBounds.map((b, i) => /* @__PURE__ */ jsxRuntime.jsx(
16385
+ "div",
16386
+ {
16387
+ style: {
16388
+ position: "absolute",
16389
+ left: b.left * zoom,
16390
+ top: b.top * zoom,
16391
+ width: b.width * zoom,
16392
+ height: b.height * zoom,
16393
+ borderRadius: 0,
16394
+ backdropFilter: `blur(${blurPx}px) saturate(${satPct}%)`,
16395
+ WebkitBackdropFilter: `blur(${blurPx}px) saturate(${satPct}%)`,
16396
+ background: bgTint
16397
+ }
16398
+ },
16399
+ `frost-${pageIndex}-${i}`
16400
+ ))
16401
+ }
16402
+ )
16403
+ ]
16404
+ }
16405
+ ),
16325
16406
  !canvasSettled && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { position: "absolute", inset: 0, display: "flex", alignItems: "center", justifyContent: "center", minHeight: 200 }, children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: { color: "#888", fontSize: 14 }, children: "Loading preview..." }) })
16326
16407
  ] });
16327
16408
  }
@@ -16498,9 +16579,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
16498
16579
  }
16499
16580
  return svgString;
16500
16581
  }
16501
- const resolvedPackageVersion = "0.5.182";
16582
+ const resolvedPackageVersion = "0.5.184";
16502
16583
  const PACKAGE_VERSION = resolvedPackageVersion;
16503
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.182";
16584
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.184";
16504
16585
  const roundParityValue = (value) => {
16505
16586
  if (typeof value !== "number") return value;
16506
16587
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -16799,7 +16880,7 @@ class PixldocsRenderer {
16799
16880
  if (shouldWatermark) {
16800
16881
  const { injectWatermark } = await Promise.resolve().then(() => require("./canvasWatermark-B0ab38Ok.cjs"));
16801
16882
  configToRender = injectWatermark(configToRender, watermarkOptions);
16802
- const { injectPreviewBlur } = await Promise.resolve().then(() => require("./previewBlur-D1laq3kn.cjs"));
16883
+ const { injectPreviewBlur } = await Promise.resolve().then(() => require("./previewBlur-Dbd6dn62.cjs"));
16803
16884
  configToRender = injectPreviewBlur(configToRender);
16804
16885
  }
16805
16886
  return this.renderAllPages(configToRender, renderOpts);
@@ -16858,7 +16939,7 @@ class PixldocsRenderer {
16858
16939
  if (shouldWatermark) {
16859
16940
  const { injectWatermark } = await Promise.resolve().then(() => require("./canvasWatermark-B0ab38Ok.cjs"));
16860
16941
  configToRender = injectWatermark(configToRender, watermarkOptions);
16861
- const { injectPreviewBlur } = await Promise.resolve().then(() => require("./previewBlur-D1laq3kn.cjs"));
16942
+ const { injectPreviewBlur } = await Promise.resolve().then(() => require("./previewBlur-Dbd6dn62.cjs"));
16862
16943
  configToRender = injectPreviewBlur(configToRender);
16863
16944
  }
16864
16945
  return this.renderAllPageSvgs(configToRender);
@@ -16902,7 +16983,7 @@ class PixldocsRenderer {
16902
16983
  if (shouldWatermark) {
16903
16984
  const { injectWatermark } = await Promise.resolve().then(() => require("./canvasWatermark-B0ab38Ok.cjs"));
16904
16985
  configToRender = injectWatermark(configToRender, watermarkOptions);
16905
- const { injectPreviewBlur } = await Promise.resolve().then(() => require("./previewBlur-D1laq3kn.cjs"));
16986
+ const { injectPreviewBlur } = await Promise.resolve().then(() => require("./previewBlur-Dbd6dn62.cjs"));
16906
16987
  configToRender = injectPreviewBlur(configToRender);
16907
16988
  }
16908
16989
  return this.renderPdfViaClientExport(configToRender, {
@@ -17008,7 +17089,7 @@ class PixldocsRenderer {
17008
17089
  await this.waitForCanvasScene(container, cloned, i);
17009
17090
  }
17010
17091
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
17011
- const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-0dwbE8Kn.cjs"));
17092
+ const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-BIgSi-Ef.cjs"));
17012
17093
  const prepared = preparePagesForExport(
17013
17094
  cloned.pages,
17014
17095
  canvasWidth,
@@ -19153,7 +19234,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
19153
19234
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
19154
19235
  sanitizeSvgTreeForPdf(svgToDraw);
19155
19236
  try {
19156
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-0dwbE8Kn.cjs"));
19237
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-BIgSi-Ef.cjs"));
19157
19238
  try {
19158
19239
  await logTextMeasurementDiagnostic(svgToDraw);
19159
19240
  } catch {
@@ -19547,4 +19628,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
19547
19628
  exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
19548
19629
  exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
19549
19630
  exports.warmTemplateFromForm = warmTemplateFromForm;
19550
- //# sourceMappingURL=index-CUINpGhe.cjs.map
19631
+ //# sourceMappingURL=index-DUJw7ypl.cjs.map