@pixldocs/canvas-renderer 0.5.181 → 0.5.183
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.
- package/README.md +11 -2
- package/dist/{index-DQBzPXXr.cjs → index-B1BBI3Bg.cjs} +11 -9
- package/dist/index-B1BBI3Bg.cjs.map +1 -0
- package/dist/{index-Ck5VHk_Q.js → index-IYEhmMeo.js} +54 -52
- package/dist/index-IYEhmMeo.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +37 -37
- package/dist/previewBlur-B2SedQxb.cjs +104 -0
- package/dist/previewBlur-B2SedQxb.cjs.map +1 -0
- package/dist/previewBlur-Dkg1mMKM.js +104 -0
- package/dist/previewBlur-Dkg1mMKM.js.map +1 -0
- package/dist/{vectorPdfExport-DPng52xI.cjs → vectorPdfExport-B73_TC4T.cjs} +4 -4
- package/dist/{vectorPdfExport-DPng52xI.cjs.map → vectorPdfExport-B73_TC4T.cjs.map} +1 -1
- package/dist/{vectorPdfExport-KXmgWTkZ.js → vectorPdfExport-C09pvz-H.js} +4 -4
- package/dist/{vectorPdfExport-KXmgWTkZ.js.map → vectorPdfExport-C09pvz-H.js.map} +1 -1
- package/package.json +1 -1
- package/dist/index-Ck5VHk_Q.js.map +0 -1
- package/dist/index-DQBzPXXr.cjs.map +0 -1
- package/dist/previewBlur-BB8gxlmo.cjs +0 -51
- package/dist/previewBlur-BB8gxlmo.cjs.map +0 -1
- package/dist/previewBlur-Dj6dSSNO.js +0 -51
- package/dist/previewBlur-Dj6dSSNO.js.map +0 -1
package/README.md
CHANGED
|
@@ -351,8 +351,17 @@ UNLICENSED — Private package for Pixldocs ecosystem only.
|
|
|
351
351
|
|
|
352
352
|
Set `previewBlur: true` on any text or image element in your config to redact
|
|
353
353
|
it in watermarked previews — useful for protecting paid content (e.g. biodata
|
|
354
|
-
reference rows) from screenshot theft.
|
|
355
|
-
|
|
354
|
+
reference rows) from screenshot theft.
|
|
355
|
+
|
|
356
|
+
The element renders normally underneath, and a **translucent frosted-glass
|
|
357
|
+
overlay rectangle** is appended on top at the element's absolute bounds, so
|
|
358
|
+
layout/wrap stays identical but the content is visually obscured. The
|
|
359
|
+
overlay auto-tints (light glass on dark text, dark glass on light text) and
|
|
360
|
+
is rendered with no stroke, no shadow, and square corners so it sits flush
|
|
361
|
+
against neighboring content. In the live web preview the overlay is upgraded
|
|
362
|
+
to a CSS `backdrop-filter: blur()` rectangle for a real frosted-glass effect;
|
|
363
|
+
exported PNG/PDF use the translucent rect (the closest pure-vector
|
|
364
|
+
approximation).
|
|
356
365
|
|
|
357
366
|
Preview-blur is gated identically to the watermark: it only runs when
|
|
358
367
|
`watermark === true` (or, by default, when `template.price > 0` and the user
|
|
@@ -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 =
|
|
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() {
|
|
@@ -16498,9 +16499,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
|
|
|
16498
16499
|
}
|
|
16499
16500
|
return svgString;
|
|
16500
16501
|
}
|
|
16501
|
-
const resolvedPackageVersion = "0.5.
|
|
16502
|
+
const resolvedPackageVersion = "0.5.183";
|
|
16502
16503
|
const PACKAGE_VERSION = resolvedPackageVersion;
|
|
16503
|
-
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.
|
|
16504
|
+
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.183";
|
|
16504
16505
|
const roundParityValue = (value) => {
|
|
16505
16506
|
if (typeof value !== "number") return value;
|
|
16506
16507
|
return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
|
|
@@ -16799,7 +16800,7 @@ class PixldocsRenderer {
|
|
|
16799
16800
|
if (shouldWatermark) {
|
|
16800
16801
|
const { injectWatermark } = await Promise.resolve().then(() => require("./canvasWatermark-B0ab38Ok.cjs"));
|
|
16801
16802
|
configToRender = injectWatermark(configToRender, watermarkOptions);
|
|
16802
|
-
const { injectPreviewBlur } = await Promise.resolve().then(() => require("./previewBlur-
|
|
16803
|
+
const { injectPreviewBlur } = await Promise.resolve().then(() => require("./previewBlur-B2SedQxb.cjs"));
|
|
16803
16804
|
configToRender = injectPreviewBlur(configToRender);
|
|
16804
16805
|
}
|
|
16805
16806
|
return this.renderAllPages(configToRender, renderOpts);
|
|
@@ -16858,7 +16859,7 @@ class PixldocsRenderer {
|
|
|
16858
16859
|
if (shouldWatermark) {
|
|
16859
16860
|
const { injectWatermark } = await Promise.resolve().then(() => require("./canvasWatermark-B0ab38Ok.cjs"));
|
|
16860
16861
|
configToRender = injectWatermark(configToRender, watermarkOptions);
|
|
16861
|
-
const { injectPreviewBlur } = await Promise.resolve().then(() => require("./previewBlur-
|
|
16862
|
+
const { injectPreviewBlur } = await Promise.resolve().then(() => require("./previewBlur-B2SedQxb.cjs"));
|
|
16862
16863
|
configToRender = injectPreviewBlur(configToRender);
|
|
16863
16864
|
}
|
|
16864
16865
|
return this.renderAllPageSvgs(configToRender);
|
|
@@ -16902,7 +16903,7 @@ class PixldocsRenderer {
|
|
|
16902
16903
|
if (shouldWatermark) {
|
|
16903
16904
|
const { injectWatermark } = await Promise.resolve().then(() => require("./canvasWatermark-B0ab38Ok.cjs"));
|
|
16904
16905
|
configToRender = injectWatermark(configToRender, watermarkOptions);
|
|
16905
|
-
const { injectPreviewBlur } = await Promise.resolve().then(() => require("./previewBlur-
|
|
16906
|
+
const { injectPreviewBlur } = await Promise.resolve().then(() => require("./previewBlur-B2SedQxb.cjs"));
|
|
16906
16907
|
configToRender = injectPreviewBlur(configToRender);
|
|
16907
16908
|
}
|
|
16908
16909
|
return this.renderPdfViaClientExport(configToRender, {
|
|
@@ -17008,7 +17009,7 @@ class PixldocsRenderer {
|
|
|
17008
17009
|
await this.waitForCanvasScene(container, cloned, i);
|
|
17009
17010
|
}
|
|
17010
17011
|
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-
|
|
17012
|
+
const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-B73_TC4T.cjs"));
|
|
17012
17013
|
const prepared = preparePagesForExport(
|
|
17013
17014
|
cloned.pages,
|
|
17014
17015
|
canvasWidth,
|
|
@@ -19153,7 +19154,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
|
|
|
19153
19154
|
if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
|
|
19154
19155
|
sanitizeSvgTreeForPdf(svgToDraw);
|
|
19155
19156
|
try {
|
|
19156
|
-
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-
|
|
19157
|
+
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-B73_TC4T.cjs"));
|
|
19157
19158
|
try {
|
|
19158
19159
|
await logTextMeasurementDiagnostic(svgToDraw);
|
|
19159
19160
|
} catch {
|
|
@@ -19503,6 +19504,7 @@ exports.applyThemeToConfig = applyThemeToConfig;
|
|
|
19503
19504
|
exports.assemblePdfFromSvgs = assemblePdfFromSvgs;
|
|
19504
19505
|
exports.awaitFontsForConfig = awaitFontsForConfig;
|
|
19505
19506
|
exports.bakeEdgeFade = bakeEdgeFade;
|
|
19507
|
+
exports.baseId = baseId;
|
|
19506
19508
|
exports.buildRoundedTrianglePath = buildRoundedTrianglePath;
|
|
19507
19509
|
exports.canvasImageLoader = canvasImageLoader;
|
|
19508
19510
|
exports.captureFabricCanvasSvgForPdf = captureFabricCanvasSvgForPdf;
|
|
@@ -19546,4 +19548,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
|
|
|
19546
19548
|
exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
|
|
19547
19549
|
exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
|
|
19548
19550
|
exports.warmTemplateFromForm = warmTemplateFromForm;
|
|
19549
|
-
//# sourceMappingURL=index-
|
|
19551
|
+
//# sourceMappingURL=index-B1BBI3Bg.cjs.map
|