@pixldocs/canvas-renderer 0.5.184 → 0.5.185
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 +41 -0
- package/dist/{index-D2deevHj.js → index-NWuzIM_r.js} +8 -8
- package/dist/{index-D2deevHj.js.map → index-NWuzIM_r.js.map} +1 -1
- package/dist/{index-DUJw7ypl.cjs → index-bI33y64A.cjs} +8 -8
- package/dist/{index-DUJw7ypl.cjs.map → index-bI33y64A.cjs.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/{previewBlur-Dwbjk5sM.js → previewBlur-B5SlBl4a.js} +2 -2
- package/dist/{previewBlur-Dwbjk5sM.js.map → previewBlur-B5SlBl4a.js.map} +1 -1
- package/dist/{previewBlur-Dbd6dn62.cjs → previewBlur-CORNmaPO.cjs} +2 -2
- package/dist/{previewBlur-Dbd6dn62.cjs.map → previewBlur-CORNmaPO.cjs.map} +1 -1
- package/dist/{vectorPdfExport-BIgSi-Ef.cjs → vectorPdfExport-CHO9VGGL.cjs} +4 -4
- package/dist/{vectorPdfExport-BIgSi-Ef.cjs.map → vectorPdfExport-CHO9VGGL.cjs.map} +1 -1
- package/dist/{vectorPdfExport-CBUTexHq.js → vectorPdfExport-CfmlwA1-.js} +4 -4
- package/dist/{vectorPdfExport-CBUTexHq.js.map → vectorPdfExport-CfmlwA1-.js.map} +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -406,3 +406,44 @@ rectangle (the closest pure-vector approximation), unchanged.
|
|
|
406
406
|
|
|
407
407
|
No API change is required on the consumer side — the same `renderFromForm`,
|
|
408
408
|
`renderPdfFromForm`, etc. respect the flag automatically.
|
|
409
|
+
|
|
410
|
+
### Example: per-field blur for a biodata form (use page)
|
|
411
|
+
|
|
412
|
+
On pixldocs.com's Use page for the Biodata preset, every form field renders
|
|
413
|
+
a small **🔒 Blur in preview** checkbox next to it. Toggling it redacts only
|
|
414
|
+
that field's text in the watermarked preview — perfect for hiding reference
|
|
415
|
+
rows, phone numbers, or addresses behind the paywall while leaving the rest
|
|
416
|
+
of the biodata visible. Paid / clean downloads always render the original
|
|
417
|
+
content.
|
|
418
|
+
|
|
419
|
+
Under the hood the flow is:
|
|
420
|
+
|
|
421
|
+
1. Keep a `Set<string>` of "blurred field ids" in component state — each id
|
|
422
|
+
encodes the field's path (single field, repeatable entry, or nested
|
|
423
|
+
repeatable entry), e.g.
|
|
424
|
+
`__bioPreviewBlur__:nested:family:1:siblings:2:name`.
|
|
425
|
+
2. Resolve each blurred field id to the **exact cloned element ids** in the
|
|
426
|
+
paginated config (a single repeatable field may map to N cloned elements,
|
|
427
|
+
one per entry).
|
|
428
|
+
3. Pass that set to `injectPreviewBlur` as `extraElementExactIds` (or
|
|
429
|
+
`extraElementBaseIds` if you only know the source/base id), then render
|
|
430
|
+
the returned config like any other.
|
|
431
|
+
|
|
432
|
+
```tsx
|
|
433
|
+
import { injectPreviewBlur } from '@pixldocs/canvas-renderer';
|
|
434
|
+
|
|
435
|
+
// `blurredElementIds` = the resolved Set<string> of exact cloned element ids
|
|
436
|
+
// you built from the user's checkbox state.
|
|
437
|
+
const previewConfig = injectPreviewBlur(paginatedConfig, {
|
|
438
|
+
extraElementExactIds: blurredElementIds,
|
|
439
|
+
});
|
|
440
|
+
|
|
441
|
+
// Then render `previewConfig` with <PixldocsPreview config={previewConfig} />
|
|
442
|
+
// or `renderer.renderAllPages(previewConfig)`. The live React preview will
|
|
443
|
+
// additionally upgrade the static rectangles to real CSS
|
|
444
|
+
// `backdrop-filter: blur()` overlays automatically.
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
This is exactly how the Biodata preset on pixldocs.com wires its per-field
|
|
448
|
+
🔒 checkboxes — no template authoring required, the user picks at runtime
|
|
449
|
+
which fields stay visible in the watermarked preview.
|
|
@@ -16561,9 +16561,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
|
|
|
16561
16561
|
}
|
|
16562
16562
|
return svgString;
|
|
16563
16563
|
}
|
|
16564
|
-
const resolvedPackageVersion = "0.5.
|
|
16564
|
+
const resolvedPackageVersion = "0.5.185";
|
|
16565
16565
|
const PACKAGE_VERSION = resolvedPackageVersion;
|
|
16566
|
-
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.
|
|
16566
|
+
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.185";
|
|
16567
16567
|
const roundParityValue = (value) => {
|
|
16568
16568
|
if (typeof value !== "number") return value;
|
|
16569
16569
|
return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
|
|
@@ -16862,7 +16862,7 @@ class PixldocsRenderer {
|
|
|
16862
16862
|
if (shouldWatermark) {
|
|
16863
16863
|
const { injectWatermark } = await import("./canvasWatermark-pkhacGge.js");
|
|
16864
16864
|
configToRender = injectWatermark(configToRender, watermarkOptions);
|
|
16865
|
-
const { injectPreviewBlur } = await import("./previewBlur-
|
|
16865
|
+
const { injectPreviewBlur } = await import("./previewBlur-B5SlBl4a.js");
|
|
16866
16866
|
configToRender = injectPreviewBlur(configToRender);
|
|
16867
16867
|
}
|
|
16868
16868
|
return this.renderAllPages(configToRender, renderOpts);
|
|
@@ -16921,7 +16921,7 @@ class PixldocsRenderer {
|
|
|
16921
16921
|
if (shouldWatermark) {
|
|
16922
16922
|
const { injectWatermark } = await import("./canvasWatermark-pkhacGge.js");
|
|
16923
16923
|
configToRender = injectWatermark(configToRender, watermarkOptions);
|
|
16924
|
-
const { injectPreviewBlur } = await import("./previewBlur-
|
|
16924
|
+
const { injectPreviewBlur } = await import("./previewBlur-B5SlBl4a.js");
|
|
16925
16925
|
configToRender = injectPreviewBlur(configToRender);
|
|
16926
16926
|
}
|
|
16927
16927
|
return this.renderAllPageSvgs(configToRender);
|
|
@@ -16965,7 +16965,7 @@ class PixldocsRenderer {
|
|
|
16965
16965
|
if (shouldWatermark) {
|
|
16966
16966
|
const { injectWatermark } = await import("./canvasWatermark-pkhacGge.js");
|
|
16967
16967
|
configToRender = injectWatermark(configToRender, watermarkOptions);
|
|
16968
|
-
const { injectPreviewBlur } = await import("./previewBlur-
|
|
16968
|
+
const { injectPreviewBlur } = await import("./previewBlur-B5SlBl4a.js");
|
|
16969
16969
|
configToRender = injectPreviewBlur(configToRender);
|
|
16970
16970
|
}
|
|
16971
16971
|
return this.renderPdfViaClientExport(configToRender, {
|
|
@@ -17071,7 +17071,7 @@ class PixldocsRenderer {
|
|
|
17071
17071
|
await this.waitForCanvasScene(container, cloned, i);
|
|
17072
17072
|
}
|
|
17073
17073
|
console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
|
|
17074
|
-
const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-
|
|
17074
|
+
const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-CfmlwA1-.js");
|
|
17075
17075
|
const prepared = preparePagesForExport(
|
|
17076
17076
|
cloned.pages,
|
|
17077
17077
|
canvasWidth,
|
|
@@ -19216,7 +19216,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
|
|
|
19216
19216
|
if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
|
|
19217
19217
|
sanitizeSvgTreeForPdf(svgToDraw);
|
|
19218
19218
|
try {
|
|
19219
|
-
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-
|
|
19219
|
+
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-CfmlwA1-.js");
|
|
19220
19220
|
try {
|
|
19221
19221
|
await logTextMeasurementDiagnostic(svgToDraw);
|
|
19222
19222
|
} catch {
|
|
@@ -19613,4 +19613,4 @@ export {
|
|
|
19613
19613
|
awaitFontsForConfig as y,
|
|
19614
19614
|
collectFontDescriptorsFromConfig as z
|
|
19615
19615
|
};
|
|
19616
|
-
//# sourceMappingURL=index-
|
|
19616
|
+
//# sourceMappingURL=index-NWuzIM_r.js.map
|