@pixldocs/canvas-renderer 0.5.185 → 0.5.186

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.
@@ -16165,15 +16165,18 @@ function countUnderlinedNodes(config) {
16165
16165
  function getNum(v, fallback = 0) {
16166
16166
  return typeof v === "number" && Number.isFinite(v) ? v : fallback;
16167
16167
  }
16168
- function collectBlurBounds(node, parentLeft, parentTop, inheritedBlur, out) {
16168
+ function collectBlurBounds(node, parentLeft, parentTop, inheritedBlur, extraBaseIds, extraExactIds, out) {
16169
16169
  if (!node || typeof node !== "object") return;
16170
- const isBlurred = inheritedBlur || node.previewBlur === true;
16170
+ const matchesBase = !!(extraBaseIds && typeof node.id === "string" && extraBaseIds.has(baseId(node.id)));
16171
+ const matchesExact = !!(extraExactIds && typeof node.id === "string" && extraExactIds.has(node.id));
16172
+ const isBlurred = inheritedBlur || node.previewBlur === true || matchesBase || matchesExact;
16171
16173
  const absLeft = parentLeft + getNum(node.left, 0);
16172
16174
  const absTop = parentTop + getNum(node.top, 0);
16173
16175
  if (node.type === "group") {
16174
16176
  const children = node.children || node.elements;
16175
16177
  if (Array.isArray(children)) {
16176
- for (const c of children) collectBlurBounds(c, absLeft, absTop, isBlurred, out);
16178
+ for (const c of children)
16179
+ collectBlurBounds(c, absLeft, absTop, isBlurred, extraBaseIds, extraExactIds, out);
16177
16180
  }
16178
16181
  return;
16179
16182
  }
@@ -16184,13 +16187,14 @@ function collectBlurBounds(node, parentLeft, parentTop, inheritedBlur, out) {
16184
16187
  const h = Math.max(4, getNum(node.height, 0) * sy);
16185
16188
  out.push({ left: absLeft, top: absTop, width: w, height: h });
16186
16189
  }
16187
- function computeFrostedBoundsForPage(config, pageIndex) {
16190
+ function computeFrostedBoundsForPage(config, pageIndex, extraBaseIds, extraExactIds) {
16188
16191
  var _a;
16189
16192
  const page = (_a = config == null ? void 0 : config.pages) == null ? void 0 : _a[pageIndex];
16190
16193
  const children = (page == null ? void 0 : page.children) || (page == null ? void 0 : page.elements);
16191
16194
  if (!Array.isArray(children)) return [];
16192
16195
  const out = [];
16193
- for (const c of children) collectBlurBounds(c, 0, 0, false, out);
16196
+ for (const c of children)
16197
+ collectBlurBounds(c, 0, 0, false, extraBaseIds, extraExactIds, out);
16194
16198
  return out;
16195
16199
  }
16196
16200
  function PixldocsPreview(props) {
@@ -16220,7 +16224,9 @@ function PixldocsPreview(props) {
16220
16224
  // while the on-screen preview wasn't.
16221
16225
  skipFontReadyWait = false,
16222
16226
  frostedBlur = true,
16223
- frostedBlurOptions
16227
+ frostedBlurOptions,
16228
+ blurFieldIds,
16229
+ blurElementExactIds
16224
16230
  } = props;
16225
16231
  react.useEffect(() => {
16226
16232
  setPackageApiUrl(imageProxyUrl);
@@ -16336,9 +16342,17 @@ function PixldocsPreview(props) {
16336
16342
  setCanvasSettled(true);
16337
16343
  onReady == null ? void 0 : onReady();
16338
16344
  }, [onReady, pageIndex]);
16345
+ const blurBaseSet = react.useMemo(
16346
+ () => blurFieldIds && blurFieldIds.length ? new Set(blurFieldIds) : void 0,
16347
+ [blurFieldIds ? blurFieldIds.join("|") : ""]
16348
+ );
16349
+ const blurExactSet = react.useMemo(
16350
+ () => blurElementExactIds && blurElementExactIds.length ? new Set(blurElementExactIds) : void 0,
16351
+ [blurElementExactIds ? blurElementExactIds.join("|") : ""]
16352
+ );
16339
16353
  const frostedBounds = react.useMemo(
16340
- () => frostedBlur ? computeFrostedBoundsForPage(config, pageIndex) : [],
16341
- [frostedBlur, config, pageIndex]
16354
+ () => frostedBlur ? computeFrostedBoundsForPage(config, pageIndex, blurBaseSet, blurExactSet) : [],
16355
+ [frostedBlur, config, pageIndex, blurBaseSet, blurExactSet]
16342
16356
  );
16343
16357
  const blurPx = (frostedBlurOptions == null ? void 0 : frostedBlurOptions.blurPx) ?? 5;
16344
16358
  const satPct = (frostedBlurOptions == null ? void 0 : frostedBlurOptions.saturatePct) ?? 130;
@@ -16579,9 +16593,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
16579
16593
  }
16580
16594
  return svgString;
16581
16595
  }
16582
- const resolvedPackageVersion = "0.5.185";
16596
+ const resolvedPackageVersion = "0.5.186";
16583
16597
  const PACKAGE_VERSION = resolvedPackageVersion;
16584
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.185";
16598
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.186";
16585
16599
  const roundParityValue = (value) => {
16586
16600
  if (typeof value !== "number") return value;
16587
16601
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -16880,7 +16894,7 @@ class PixldocsRenderer {
16880
16894
  if (shouldWatermark) {
16881
16895
  const { injectWatermark } = await Promise.resolve().then(() => require("./canvasWatermark-B0ab38Ok.cjs"));
16882
16896
  configToRender = injectWatermark(configToRender, watermarkOptions);
16883
- const { injectPreviewBlur } = await Promise.resolve().then(() => require("./previewBlur-CORNmaPO.cjs"));
16897
+ const { injectPreviewBlur } = await Promise.resolve().then(() => require("./previewBlur-D2aWUrre.cjs"));
16884
16898
  configToRender = injectPreviewBlur(configToRender);
16885
16899
  }
16886
16900
  return this.renderAllPages(configToRender, renderOpts);
@@ -16939,7 +16953,7 @@ class PixldocsRenderer {
16939
16953
  if (shouldWatermark) {
16940
16954
  const { injectWatermark } = await Promise.resolve().then(() => require("./canvasWatermark-B0ab38Ok.cjs"));
16941
16955
  configToRender = injectWatermark(configToRender, watermarkOptions);
16942
- const { injectPreviewBlur } = await Promise.resolve().then(() => require("./previewBlur-CORNmaPO.cjs"));
16956
+ const { injectPreviewBlur } = await Promise.resolve().then(() => require("./previewBlur-D2aWUrre.cjs"));
16943
16957
  configToRender = injectPreviewBlur(configToRender);
16944
16958
  }
16945
16959
  return this.renderAllPageSvgs(configToRender);
@@ -16983,7 +16997,7 @@ class PixldocsRenderer {
16983
16997
  if (shouldWatermark) {
16984
16998
  const { injectWatermark } = await Promise.resolve().then(() => require("./canvasWatermark-B0ab38Ok.cjs"));
16985
16999
  configToRender = injectWatermark(configToRender, watermarkOptions);
16986
- const { injectPreviewBlur } = await Promise.resolve().then(() => require("./previewBlur-CORNmaPO.cjs"));
17000
+ const { injectPreviewBlur } = await Promise.resolve().then(() => require("./previewBlur-D2aWUrre.cjs"));
16987
17001
  configToRender = injectPreviewBlur(configToRender);
16988
17002
  }
16989
17003
  return this.renderPdfViaClientExport(configToRender, {
@@ -17089,7 +17103,7 @@ class PixldocsRenderer {
17089
17103
  await this.waitForCanvasScene(container, cloned, i);
17090
17104
  }
17091
17105
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
17092
- const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-CHO9VGGL.cjs"));
17106
+ const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-Dh3el4F0.cjs"));
17093
17107
  const prepared = preparePagesForExport(
17094
17108
  cloned.pages,
17095
17109
  canvasWidth,
@@ -19234,7 +19248,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
19234
19248
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
19235
19249
  sanitizeSvgTreeForPdf(svgToDraw);
19236
19250
  try {
19237
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-CHO9VGGL.cjs"));
19251
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-Dh3el4F0.cjs"));
19238
19252
  try {
19239
19253
  await logTextMeasurementDiagnostic(svgToDraw);
19240
19254
  } catch {
@@ -19628,4 +19642,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
19628
19642
  exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
19629
19643
  exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
19630
19644
  exports.warmTemplateFromForm = warmTemplateFromForm;
19631
- //# sourceMappingURL=index-bI33y64A.cjs.map
19645
+ //# sourceMappingURL=index-_ogxqALr.cjs.map