@veztraa/report-renderer 0.1.0

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.
Files changed (77) hide show
  1. package/dist/document.d.ts +10 -0
  2. package/dist/document.d.ts.map +1 -0
  3. package/dist/document.js +352 -0
  4. package/dist/document.js.map +1 -0
  5. package/dist/elements.d.ts +6 -0
  6. package/dist/elements.d.ts.map +1 -0
  7. package/dist/elements.js +445 -0
  8. package/dist/elements.js.map +1 -0
  9. package/dist/fonts/inter-400.woff +0 -0
  10. package/dist/fonts/inter-700.woff +0 -0
  11. package/dist/fonts/lato-400-italic.woff +0 -0
  12. package/dist/fonts/lato-400.woff +0 -0
  13. package/dist/fonts/lato-700-italic.woff +0 -0
  14. package/dist/fonts/lato-700.woff +0 -0
  15. package/dist/fonts/merriweather-400-italic.woff +0 -0
  16. package/dist/fonts/merriweather-400.woff +0 -0
  17. package/dist/fonts/merriweather-700-italic.woff +0 -0
  18. package/dist/fonts/merriweather-700.woff +0 -0
  19. package/dist/fonts/montserrat-400-italic.woff +0 -0
  20. package/dist/fonts/montserrat-400.woff +0 -0
  21. package/dist/fonts/montserrat-700-italic.woff +0 -0
  22. package/dist/fonts/montserrat-700.woff +0 -0
  23. package/dist/fonts/nunito-400-italic.woff +0 -0
  24. package/dist/fonts/nunito-400.woff +0 -0
  25. package/dist/fonts/nunito-700-italic.woff +0 -0
  26. package/dist/fonts/nunito-700.woff +0 -0
  27. package/dist/fonts/open-sans-400-italic.woff +0 -0
  28. package/dist/fonts/open-sans-400.woff +0 -0
  29. package/dist/fonts/open-sans-700-italic.woff +0 -0
  30. package/dist/fonts/open-sans-700.woff +0 -0
  31. package/dist/fonts/playfair-400-italic.woff +0 -0
  32. package/dist/fonts/playfair-400.woff +0 -0
  33. package/dist/fonts/playfair-700-italic.woff +0 -0
  34. package/dist/fonts/playfair-700.woff +0 -0
  35. package/dist/fonts/poppins-400-italic.woff +0 -0
  36. package/dist/fonts/poppins-400.woff +0 -0
  37. package/dist/fonts/poppins-700-italic.woff +0 -0
  38. package/dist/fonts/poppins-700.woff +0 -0
  39. package/dist/fonts/raleway-400-italic.woff +0 -0
  40. package/dist/fonts/raleway-400.woff +0 -0
  41. package/dist/fonts/raleway-700-italic.woff +0 -0
  42. package/dist/fonts/raleway-700.woff +0 -0
  43. package/dist/fonts/roboto-400-italic.woff +0 -0
  44. package/dist/fonts/roboto-400.woff +0 -0
  45. package/dist/fonts/roboto-700-italic.woff +0 -0
  46. package/dist/fonts/roboto-700.woff +0 -0
  47. package/dist/fonts/source-code-pro-400.woff +0 -0
  48. package/dist/fonts/source-code-pro-700.woff +0 -0
  49. package/dist/fonts/ubuntu-400-italic.woff +0 -0
  50. package/dist/fonts/ubuntu-400.woff +0 -0
  51. package/dist/fonts/ubuntu-700-italic.woff +0 -0
  52. package/dist/fonts/ubuntu-700.woff +0 -0
  53. package/dist/fonts.d.ts +23 -0
  54. package/dist/fonts.d.ts.map +1 -0
  55. package/dist/fonts.js +46 -0
  56. package/dist/fonts.js.map +1 -0
  57. package/dist/index.browser.d.ts +8 -0
  58. package/dist/index.browser.d.ts.map +1 -0
  59. package/dist/index.browser.js +18 -0
  60. package/dist/index.browser.js.map +1 -0
  61. package/dist/index.d.ts +14 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +24 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/registerFonts.browser.d.ts +2 -0
  66. package/dist/registerFonts.browser.d.ts.map +1 -0
  67. package/dist/registerFonts.browser.js +15 -0
  68. package/dist/registerFonts.browser.js.map +1 -0
  69. package/dist/registerFonts.d.ts +2 -0
  70. package/dist/registerFonts.d.ts.map +1 -0
  71. package/dist/registerFonts.js +76 -0
  72. package/dist/registerFonts.js.map +1 -0
  73. package/dist/richtext.d.ts +13 -0
  74. package/dist/richtext.d.ts.map +1 -0
  75. package/dist/richtext.js +220 -0
  76. package/dist/richtext.js.map +1 -0
  77. package/package.json +35 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerFonts.browser.js","sourceRoot":"","sources":["../src/registerFonts.browser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=registerFonts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerFonts.d.ts","sourceRoot":"","sources":["../src/registerFonts.ts"],"names":[],"mappings":""}
@@ -0,0 +1,76 @@
1
+ import { Font } from "@react-pdf/renderer";
2
+ import { fileURLToPath } from "url";
3
+ import { join, dirname } from "path";
4
+ const __dirname = dirname(fileURLToPath(import.meta.url));
5
+ function f(name) {
6
+ return join(__dirname, "..", "fonts", name);
7
+ }
8
+ Font.register({ family: "Roboto", fonts: [
9
+ { src: f("roboto-400.woff") },
10
+ { src: f("roboto-700.woff"), fontWeight: 700 },
11
+ { src: f("roboto-400-italic.woff"), fontStyle: "italic" },
12
+ { src: f("roboto-700-italic.woff"), fontWeight: 700, fontStyle: "italic" },
13
+ ] });
14
+ Font.register({ family: "Open Sans", fonts: [
15
+ { src: f("open-sans-400.woff") },
16
+ { src: f("open-sans-700.woff"), fontWeight: 700 },
17
+ { src: f("open-sans-400-italic.woff"), fontStyle: "italic" },
18
+ { src: f("open-sans-700-italic.woff"), fontWeight: 700, fontStyle: "italic" },
19
+ ] });
20
+ Font.register({ family: "Lato", fonts: [
21
+ { src: f("lato-400.woff") },
22
+ { src: f("lato-700.woff"), fontWeight: 700 },
23
+ { src: f("lato-400-italic.woff"), fontStyle: "italic" },
24
+ { src: f("lato-700-italic.woff"), fontWeight: 700, fontStyle: "italic" },
25
+ ] });
26
+ Font.register({ family: "Montserrat", fonts: [
27
+ { src: f("montserrat-400.woff") },
28
+ { src: f("montserrat-700.woff"), fontWeight: 700 },
29
+ { src: f("montserrat-400-italic.woff"), fontStyle: "italic" },
30
+ { src: f("montserrat-700-italic.woff"), fontWeight: 700, fontStyle: "italic" },
31
+ ] });
32
+ Font.register({ family: "Inter", fonts: [
33
+ { src: f("inter-400.woff") },
34
+ { src: f("inter-700.woff"), fontWeight: 700 },
35
+ ] });
36
+ Font.register({ family: "Poppins", fonts: [
37
+ { src: f("poppins-400.woff") },
38
+ { src: f("poppins-700.woff"), fontWeight: 700 },
39
+ { src: f("poppins-400-italic.woff"), fontStyle: "italic" },
40
+ { src: f("poppins-700-italic.woff"), fontWeight: 700, fontStyle: "italic" },
41
+ ] });
42
+ Font.register({ family: "Nunito", fonts: [
43
+ { src: f("nunito-400.woff") },
44
+ { src: f("nunito-700.woff"), fontWeight: 700 },
45
+ { src: f("nunito-400-italic.woff"), fontStyle: "italic" },
46
+ { src: f("nunito-700-italic.woff"), fontWeight: 700, fontStyle: "italic" },
47
+ ] });
48
+ Font.register({ family: "Raleway", fonts: [
49
+ { src: f("raleway-400.woff") },
50
+ { src: f("raleway-700.woff"), fontWeight: 700 },
51
+ { src: f("raleway-400-italic.woff"), fontStyle: "italic" },
52
+ { src: f("raleway-700-italic.woff"), fontWeight: 700, fontStyle: "italic" },
53
+ ] });
54
+ Font.register({ family: "Ubuntu", fonts: [
55
+ { src: f("ubuntu-400.woff") },
56
+ { src: f("ubuntu-700.woff"), fontWeight: 700 },
57
+ { src: f("ubuntu-400-italic.woff"), fontStyle: "italic" },
58
+ { src: f("ubuntu-700-italic.woff"), fontWeight: 700, fontStyle: "italic" },
59
+ ] });
60
+ Font.register({ family: "Playfair Display", fonts: [
61
+ { src: f("playfair-400.woff") },
62
+ { src: f("playfair-700.woff"), fontWeight: 700 },
63
+ { src: f("playfair-400-italic.woff"), fontStyle: "italic" },
64
+ { src: f("playfair-700-italic.woff"), fontWeight: 700, fontStyle: "italic" },
65
+ ] });
66
+ Font.register({ family: "Merriweather", fonts: [
67
+ { src: f("merriweather-400.woff") },
68
+ { src: f("merriweather-700.woff"), fontWeight: 700 },
69
+ { src: f("merriweather-400-italic.woff"), fontStyle: "italic" },
70
+ { src: f("merriweather-700-italic.woff"), fontWeight: 700, fontStyle: "italic" },
71
+ ] });
72
+ Font.register({ family: "Source Code Pro", fonts: [
73
+ { src: f("source-code-pro-400.woff") },
74
+ { src: f("source-code-pro-700.woff"), fontWeight: 700 },
75
+ ] });
76
+ //# sourceMappingURL=registerFonts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerFonts.js","sourceRoot":"","sources":["../src/registerFonts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export declare const AVG_CHAR_EM = 0.5;
2
+ export interface RichSeg {
3
+ text: string;
4
+ bold?: boolean;
5
+ italic?: boolean;
6
+ underline?: boolean;
7
+ strike?: boolean;
8
+ }
9
+ export type WrappedLine = RichSeg[];
10
+ export declare function parseRichText(html: string): RichSeg[];
11
+ export declare function measureText(text: string, fontSize: number, fontFamily?: string, bold?: boolean, letterSpacing?: number): number;
12
+ export declare function wrapRichText(segs: RichSeg[], width: number, fontSize: number, fontFamily?: string, letterSpacing?: number): WrappedLine[];
13
+ //# sourceMappingURL=richtext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"richtext.d.ts","sourceRoot":"","sources":["../src/richtext.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAID,MAAM,MAAM,WAAW,GAAG,OAAO,EAAE,CAAC;AAqBpC,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAoCrD;AAgCD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,UAAQ,EAAE,aAAa,SAAI,GAAG,MAAM,CAQxH;AAiCD,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,aAAa,SAAI,GAAG,WAAW,EAAE,CA+CpI"}
@@ -0,0 +1,220 @@
1
+ // Lightweight inline-HTML support for richtext elements. The designer's rich
2
+ // text editor stores content as a small subset of HTML (<b>, <i>, <u>, <s>,
3
+ // <br>, block tags); this module turns that into styled runs so the renderer
4
+ // can draw real formatting instead of printing the raw tags, and wraps those
5
+ // runs into lines for pagination — mirroring how plain text is handled.
6
+ // Fallback average glyph width (fraction of font size) for non-Helvetica fonts,
7
+ // whose metrics we don't bundle. Helvetica — the default — is measured exactly
8
+ // (see measureText), so this only affects custom Google fonts. Biased a touch
9
+ // wide so estimates round up (a small gap) rather than down (overlap/clip).
10
+ export const AVG_CHAR_EM = 0.5;
11
+ const ENTITIES = {
12
+ amp: "&", lt: "<", gt: ">", quot: '"', apos: "'", nbsp: " ", "#39": "'",
13
+ };
14
+ function decodeEntities(s) {
15
+ return s.replace(/&(#?[a-zA-Z0-9]+);/g, (m, e) => {
16
+ if (e[0] === "#") {
17
+ const code = e[1] === "x" || e[1] === "X"
18
+ ? parseInt(e.slice(2), 16)
19
+ : parseInt(e.slice(1), 10);
20
+ return Number.isNaN(code) ? m : String.fromCharCode(code);
21
+ }
22
+ return ENTITIES[e] ?? m;
23
+ });
24
+ }
25
+ // Parse a subset of inline HTML into a flat list of styled segments. Line breaks
26
+ // (from <br>, closing block tags, or literal newlines) are encoded as a segment
27
+ // whose text is "\n". Unknown tags are dropped; their text content is kept.
28
+ export function parseRichText(html) {
29
+ const segs = [];
30
+ const depth = { bold: 0, italic: 0, underline: 0, strike: 0 };
31
+ const push = (raw) => {
32
+ if (!raw)
33
+ return;
34
+ segs.push({
35
+ text: raw,
36
+ bold: depth.bold > 0 || undefined,
37
+ italic: depth.italic > 0 || undefined,
38
+ underline: depth.underline > 0 || undefined,
39
+ strike: depth.strike > 0 || undefined,
40
+ });
41
+ };
42
+ for (const tok of html.split(/(<[^>]+>)/)) {
43
+ if (!tok)
44
+ continue;
45
+ if (tok[0] === "<") {
46
+ const m = /^<\s*(\/?)\s*([a-zA-Z0-9]+)/.exec(tok);
47
+ if (!m)
48
+ continue;
49
+ const inc = m[1] === "/" ? -1 : 1;
50
+ const name = m[2].toLowerCase();
51
+ switch (name) {
52
+ case "b":
53
+ case "strong":
54
+ depth.bold = Math.max(0, depth.bold + inc);
55
+ break;
56
+ case "i":
57
+ case "em":
58
+ depth.italic = Math.max(0, depth.italic + inc);
59
+ break;
60
+ case "u":
61
+ depth.underline = Math.max(0, depth.underline + inc);
62
+ break;
63
+ case "s":
64
+ case "strike":
65
+ case "del":
66
+ depth.strike = Math.max(0, depth.strike + inc);
67
+ break;
68
+ case "br":
69
+ push("\n");
70
+ break;
71
+ case "p":
72
+ case "div":
73
+ case "li":
74
+ if (inc === -1)
75
+ push("\n");
76
+ break;
77
+ default: break;
78
+ }
79
+ }
80
+ else {
81
+ push(decodeEntities(tok));
82
+ }
83
+ }
84
+ return segs;
85
+ }
86
+ // Helvetica advance widths (AFM, 1/1000 em) for ASCII 32–126 — regular and bold.
87
+ // Italic/oblique share the regular advances, so these two cover all four styles.
88
+ // They let us measure text width exactly (the default font) so an auto-grow
89
+ // block's wrapped lines match what actually renders and stacked blocks sit flush.
90
+ // Other fonts fall back to the em approximation.
91
+ const HELV_W = [
92
+ 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278, 333, 278, 278,
93
+ 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, 584, 584, 584, 556,
94
+ 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500, 667, 556, 833, 722, 778,
95
+ 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278, 469, 556,
96
+ 333, 556, 556, 500, 556, 556, 278, 556, 556, 222, 222, 500, 222, 833, 556, 556,
97
+ 556, 556, 333, 500, 278, 556, 500, 722, 500, 500, 500, 334, 260, 334, 584,
98
+ ];
99
+ const HELVB_W = [
100
+ 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278, 333, 278, 278,
101
+ 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333, 584, 584, 584, 611,
102
+ 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556, 722, 611, 833, 722, 778,
103
+ 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 333, 278, 333, 584, 556,
104
+ 333, 556, 611, 556, 611, 556, 333, 611, 611, 278, 278, 556, 278, 889, 611, 611,
105
+ 611, 611, 389, 556, 333, 611, 556, 778, 556, 556, 500, 389, 280, 389, 584,
106
+ ];
107
+ function charW(code, bold) {
108
+ const i = code - 32;
109
+ const table = bold ? HELVB_W : HELV_W;
110
+ return i >= 0 && i < table.length ? table[i] : (bold ? 611 : 556);
111
+ }
112
+ // Advance width of `text` in points. Exact for the default Helvetica (regular or
113
+ // bold) via its AFM table; other fonts fall back to the average-em approximation
114
+ // (no metrics bundled). Used to wrap/measure text to match what actually renders.
115
+ export function measureText(text, fontSize, fontFamily, bold = false, letterSpacing = 0) {
116
+ const ls = letterSpacing * text.length; // spacing applied after each glyph
117
+ if (fontFamily && fontFamily !== "Helvetica") {
118
+ return text.length * fontSize * AVG_CHAR_EM + ls;
119
+ }
120
+ let w = 0;
121
+ for (let i = 0; i < text.length; i++)
122
+ w += charW(text.charCodeAt(i), bold);
123
+ return (w * fontSize) / 1000 + ls;
124
+ }
125
+ function sameStyle(a, b) {
126
+ return !!a.bold === !!b.bold && !!a.italic === !!b.italic
127
+ && !!a.underline === !!b.underline && !!a.strike === !!b.strike;
128
+ }
129
+ // Split parsed segments into words and explicit line-breaks, preserving which
130
+ // character runs belong to the same word so glued punctuation keeps no space.
131
+ function tokenize(segs) {
132
+ const toks = [];
133
+ let cur = [];
134
+ const flush = () => { if (cur.length) {
135
+ toks.push(cur);
136
+ cur = [];
137
+ } };
138
+ for (const seg of segs) {
139
+ if (seg.text === "\n") {
140
+ flush();
141
+ toks.push("\n");
142
+ continue;
143
+ }
144
+ for (const part of seg.text.split(/(\s+)/)) {
145
+ if (!part)
146
+ continue;
147
+ if (/^\s+$/.test(part))
148
+ flush(); // whitespace ends the word
149
+ else
150
+ cur.push({ ...seg, text: part }); // glue run onto current word
151
+ }
152
+ }
153
+ flush();
154
+ return toks;
155
+ }
156
+ // Word-wrap parsed segments into lines, measuring real glyph widths (bold-aware)
157
+ // so the line count matches what the renderer draws (it renders these exact
158
+ // lines, one Text block each). Honours "\n" breaks; spaces are inserted only
159
+ // where the source had whitespace; over-long words are hard-broken to fit.
160
+ export function wrapRichText(segs, width, fontSize, fontFamily, letterSpacing = 0) {
161
+ const spaceW = measureText(" ", fontSize, fontFamily, false, letterSpacing);
162
+ const segW = (w) => w.reduce((acc, s) => acc + measureText(s.text, fontSize, fontFamily, !!s.bold, letterSpacing), 0);
163
+ const lines = [];
164
+ let line = [];
165
+ let lineW = 0;
166
+ const flush = () => { lines.push(line); line = []; lineW = 0; };
167
+ const append = (s) => {
168
+ const last = line[line.length - 1];
169
+ if (last && sameStyle(last, s))
170
+ last.text += s.text;
171
+ else
172
+ line.push({ ...s });
173
+ };
174
+ const pushWord = (w) => { for (const s of w)
175
+ append(s); };
176
+ for (const tok of tokenize(segs)) {
177
+ if (tok === "\n") {
178
+ flush();
179
+ continue;
180
+ } // explicit break
181
+ const ww = segW(tok);
182
+ if (ww > width) { // hard-break an over-long word
183
+ if (lineW > 0)
184
+ flush();
185
+ for (const s of tok) {
186
+ let txt = s.text;
187
+ while (txt.length > 0) {
188
+ let i = 0, w = 0;
189
+ while (i < txt.length) {
190
+ const cw = measureText(txt[i], fontSize, fontFamily, !!s.bold, letterSpacing);
191
+ if (w + cw > width && i > 0)
192
+ break;
193
+ w += cw;
194
+ i++;
195
+ }
196
+ append({ ...s, text: txt.slice(0, i) });
197
+ lineW = w;
198
+ txt = txt.slice(i);
199
+ if (txt.length > 0)
200
+ flush();
201
+ }
202
+ }
203
+ continue;
204
+ }
205
+ if (lineW > 0 && lineW + spaceW + ww > width)
206
+ flush(); // soft width-wrap
207
+ if (lineW > 0) {
208
+ append({ text: " " });
209
+ lineW += spaceW;
210
+ } // space only between words
211
+ pushWord(tok);
212
+ lineW += ww;
213
+ }
214
+ if (line.length > 0)
215
+ flush();
216
+ if (lines.length === 0)
217
+ lines.push([]);
218
+ return lines;
219
+ }
220
+ //# sourceMappingURL=richtext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"richtext.js","sourceRoot":"","sources":["../src/richtext.ts"],"names":[],"mappings":"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C,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG;IAC/D,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG;CAC5D,CAAC;AACF,MAAM,OAAO,GAAG;IACd,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG;IAC/D,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG;IAC/D,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG;IAC/D,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG;IAC/D,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG;IAC/D,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,G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"}
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@veztraa/report-renderer",
3
+ "version": "0.1.0",
4
+ "description": "PDF rendering engine for ReportForge",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "files": ["dist"],
10
+ "publishConfig": { "access": "public" },
11
+ "exports": {
12
+ ".": {
13
+ "browser": "./dist/index.browser.js",
14
+ "import": "./dist/index.js",
15
+ "types": "./dist/index.d.ts"
16
+ }
17
+ },
18
+ "scripts": {
19
+ "build": "node scripts/generate-browser-fonts.mjs && tsc && cp -r fonts dist/fonts",
20
+ "dev": "tsc --watch",
21
+ "clean": "rm -rf dist"
22
+ },
23
+ "dependencies": {
24
+ "@react-pdf/renderer": "^4.1.6",
25
+ "@veztraa/report-core": "workspace:*",
26
+ "qrcode": "^1.5.4",
27
+ "react": "^18.3.1"
28
+ },
29
+ "devDependencies": {
30
+ "@types/node": "^22.10.2",
31
+ "@types/qrcode": "^1.5.6",
32
+ "@types/react": "^18.3.12",
33
+ "typescript": "^5.7.2"
34
+ }
35
+ }