@pixldocs/canvas-renderer 0.5.149 → 0.5.150

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.
@@ -3,7 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jspdf = require("jspdf");
4
4
  const svg2pdf_js = require("svg2pdf.js");
5
5
  const fabric = require("fabric");
6
- const index = require("./index-C6IaOn7u.cjs");
6
+ const index = require("./index-CczB1vpO.cjs");
7
7
  const pdfFonts = require("./pdfFonts-BTEVnYX8.cjs");
8
8
  function _interopNamespaceDefault(e) {
9
9
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
@@ -1854,7 +1854,7 @@ async function collectInlinedFontFaceCss() {
1854
1854
  return cachedInlinedFontFaceCss;
1855
1855
  }
1856
1856
  async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey, options) {
1857
- var _a;
1857
+ var _a, _b;
1858
1858
  try {
1859
1859
  const parser = new DOMParser();
1860
1860
  const processedSvg = inlineNestedSvgImageDataUris(rawSvg, parser);
@@ -1873,7 +1873,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
1873
1873
  normalizeSvgViewBoxOrigin(svg);
1874
1874
  disambiguateNestedSvgIds(svg);
1875
1875
  expandSvgUseElements(svg, pageKey);
1876
- const svgToDraw = normalizeSvgExplicitColors(svg);
1876
+ let svgToDraw = normalizeSvgExplicitColors(svg);
1877
1877
  inlineComputedStyles(svgToDraw);
1878
1878
  sanitizeSvgTreeForPdf(svgToDraw);
1879
1879
  normalizeSvgGradientStopOffsets(svgToDraw);
@@ -1892,10 +1892,27 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
1892
1892
  console.warn("[Vector PDF] anchor-bake pass failed (continuing):", e);
1893
1893
  }
1894
1894
  await rasterizeShadowMarkers(svgToDraw);
1895
+ try {
1896
+ if (svgToDraw.querySelector("g[data-pd-shadow-blur] text")) {
1897
+ const { convertAllTextToPath } = await Promise.resolve().then(() => require("./svgTextToPath-DolCNU9g.cjs"));
1898
+ const outlined = await convertAllTextToPath(
1899
+ new XMLSerializer().serializeToString(svgToDraw),
1900
+ void 0,
1901
+ { mode: "shadow-bound" }
1902
+ );
1903
+ const outlinedDoc = parser.parseFromString(outlined, "image/svg+xml");
1904
+ if (!outlinedDoc.querySelector("parsererror") && ((_a = outlinedDoc.documentElement) == null ? void 0 : _a.tagName.toLowerCase()) === "svg") {
1905
+ svgToDraw = outlinedDoc.documentElement;
1906
+ console.log("[Vector PDF][parity] shadow-bound text outlined for headless alignment");
1907
+ }
1908
+ }
1909
+ } catch (outlineErr) {
1910
+ console.warn("[Vector PDF] shadow-bound text outline failed (continuing):", outlineErr);
1911
+ }
1895
1912
  await convertTextDecorationsToLines(svgToDraw);
1896
1913
  const rewritten = rewriteSvgFontsForJsPDFWithSourceMeta(new XMLSerializer().serializeToString(svgToDraw));
1897
1914
  const rewrittenDoc = parser.parseFromString(rewritten, "image/svg+xml");
1898
- if (!rewrittenDoc.querySelector("parsererror") && ((_a = rewrittenDoc.documentElement) == null ? void 0 : _a.tagName.toLowerCase()) === "svg") {
1915
+ if (!rewrittenDoc.querySelector("parsererror") && ((_b = rewrittenDoc.documentElement) == null ? void 0 : _b.tagName.toLowerCase()) === "svg") {
1899
1916
  return rewrittenDoc.documentElement;
1900
1917
  }
1901
1918
  return svgToDraw;
@@ -2477,7 +2494,7 @@ async function fetchSvgAsElement(imageUrl, colorMap) {
2477
2494
  async function getRecoloredSvgDataUrl(imageUrl, colorMap) {
2478
2495
  if (!colorMap || Object.keys(colorMap).length === 0) return null;
2479
2496
  try {
2480
- const { getNormalizedSvgUrl } = await Promise.resolve().then(() => require("./index-C6IaOn7u.cjs")).then((n) => n.canvasImageLoader);
2497
+ const { getNormalizedSvgUrl } = await Promise.resolve().then(() => require("./index-CczB1vpO.cjs")).then((n) => n.canvasImageLoader);
2481
2498
  return await getNormalizedSvgUrl(imageUrl, colorMap);
2482
2499
  } catch {
2483
2500
  return null;
@@ -3258,7 +3275,7 @@ async function fetchImageAsBase64(imageUrl, opts = {}) {
3258
3275
  }
3259
3276
  let fetchUrl = imageUrl;
3260
3277
  if (imageUrl.startsWith("http://") || imageUrl.startsWith("https://")) {
3261
- const { isPrivateUrl } = await Promise.resolve().then(() => require("./index-C6IaOn7u.cjs")).then((n) => n.canvasImageLoader);
3278
+ const { isPrivateUrl } = await Promise.resolve().then(() => require("./index-CczB1vpO.cjs")).then((n) => n.canvasImageLoader);
3262
3279
  if (isPrivateUrl(imageUrl)) return null;
3263
3280
  const proxyUrl = new URL(`${index.API_URL}/image-proxy`);
3264
3281
  proxyUrl.searchParams.set("url", imageUrl);
@@ -5240,4 +5257,4 @@ exports.exportMultiPagePdf = exportMultiPagePdf;
5240
5257
  exports.logTextMeasurementDiagnostic = logTextMeasurementDiagnostic;
5241
5258
  exports.preparePagesForExport = preparePagesForExport;
5242
5259
  exports.rewriteSvgFontsForJsPDFWithSourceMeta = rewriteSvgFontsForJsPDFWithSourceMeta;
5243
- //# sourceMappingURL=vectorPdfExport-FwEcQIPB.cjs.map
5260
+ //# sourceMappingURL=vectorPdfExport-qAWd8i87.cjs.map