react-pdf-levelup 1.0.11 → 1.0.14

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/dist/index.cjs CHANGED
@@ -78,6 +78,7 @@ __export(index_exports, {
78
78
  Left: () => Left,
79
79
  Mark: () => Mark,
80
80
  P: () => P,
81
+ QRCode: () => QRCode_default,
81
82
  Right: () => Right,
82
83
  Row: () => Row,
83
84
  Small: () => Small,
@@ -578,6 +579,79 @@ var Header = ({ children, style, fixed = false }) => {
578
579
  var Footer = ({ children, style, fixed = false }) => {
579
580
  return /* @__PURE__ */ import_react7.default.createElement(import_renderer7.View, { style: [styles7.footer, style], fixed }, typeof children === "string" ? /* @__PURE__ */ import_react7.default.createElement(import_renderer7.Text, null, children) : children);
580
581
  };
582
+
583
+ // src/components/PDF/core/QRCode.tsx
584
+ var import_react8 = __toESM(require("react"), 1);
585
+ var import_react9 = require("react");
586
+ var import_renderer8 = require("@react-pdf/renderer");
587
+ var import_qrcode = __toESM(require("qrcode"), 1);
588
+ var styles8 = import_renderer8.StyleSheet.create({
589
+ qrContainer: {
590
+ position: "relative",
591
+ alignItems: "center",
592
+ justifyContent: "center"
593
+ },
594
+ logo: {
595
+ position: "absolute",
596
+ zIndex: 2
597
+ },
598
+ logoBackground: {
599
+ position: "absolute",
600
+ zIndex: 1
601
+ }
602
+ });
603
+ var QRCode = ({
604
+ value,
605
+ size = 150,
606
+ color = "#000000",
607
+ backgroundColor = "#ffffff",
608
+ errorCorrectionLevel = "M",
609
+ style,
610
+ includeMargin = true,
611
+ logo,
612
+ logoSize = 30,
613
+ logoBackgroundColor = "#ffffff",
614
+ logoMargin = 5
615
+ }) => {
616
+ const [qrDataURL, setQrDataURL] = (0, import_react9.useState)("");
617
+ (0, import_react9.useEffect)(() => {
618
+ const generateQRCode = async () => {
619
+ try {
620
+ const options = {
621
+ errorCorrectionLevel,
622
+ margin: includeMargin ? 4 : 0,
623
+ color: {
624
+ dark: color,
625
+ light: backgroundColor
626
+ },
627
+ width: size
628
+ };
629
+ const dataURL = await import_qrcode.default.toDataURL(value, options);
630
+ setQrDataURL(dataURL);
631
+ } catch (error) {
632
+ console.error("Error generating QR code:", error);
633
+ }
634
+ };
635
+ generateQRCode();
636
+ }, [value, size, color, backgroundColor, errorCorrectionLevel, includeMargin]);
637
+ const containerStyle = __spreadValues(__spreadProps(__spreadValues({}, styles8.qrContainer), {
638
+ width: size,
639
+ height: size
640
+ }), style);
641
+ const logoContainerSize = logoSize + logoMargin * 2;
642
+ const logoBackgroundStyle = __spreadProps(__spreadValues({}, styles8.logoBackground), {
643
+ width: logoContainerSize,
644
+ height: logoContainerSize,
645
+ backgroundColor: logoBackgroundColor,
646
+ borderRadius: logoContainerSize / 2
647
+ });
648
+ const logoStyle = __spreadProps(__spreadValues({}, styles8.logo), {
649
+ width: logoSize,
650
+ height: logoSize
651
+ });
652
+ return /* @__PURE__ */ import_react8.default.createElement(import_renderer8.View, { style: containerStyle }, qrDataURL ? /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, /* @__PURE__ */ import_react8.default.createElement(import_renderer8.Image, { src: qrDataURL || "/placeholder.svg", style: { width: size, height: size } }), logo && /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, /* @__PURE__ */ import_react8.default.createElement(import_renderer8.View, { style: logoBackgroundStyle }), /* @__PURE__ */ import_react8.default.createElement(import_renderer8.Image, { src: logo || "/placeholder.svg", style: logoStyle }))) : null);
653
+ };
654
+ var QRCode_default = QRCode;
581
655
  // Annotate the CommonJS export names for ESM import in node:
582
656
  0 && (module.exports = {
583
657
  A,
@@ -611,6 +685,7 @@ var Footer = ({ children, style, fixed = false }) => {
611
685
  Left,
612
686
  Mark,
613
687
  P,
688
+ QRCode,
614
689
  Right,
615
690
  Row,
616
691
  Small,
package/dist/index.d.cts CHANGED
@@ -113,4 +113,19 @@ interface PageElementProps {
113
113
  declare const Header: React.FC<PageElementProps>;
114
114
  declare const Footer: React.FC<PageElementProps>;
115
115
 
116
- export { A, BR, Blockquote, Center, Col1, Col10, Col11, Col12, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Container, Em, Footer, H1, H2, H3, H4, H5, H6, Header, Img, LayoutPDF, Left, Mark, P, Right, Row, Small, Span, Strong, Table, Tbody, Td, Th, Thead, Tr, U };
116
+ interface QRCodeProps {
117
+ value: string;
118
+ size?: number;
119
+ color?: string;
120
+ backgroundColor?: string;
121
+ errorCorrectionLevel?: "L" | "M" | "Q" | "H";
122
+ style?: any;
123
+ includeMargin?: boolean;
124
+ logo?: string;
125
+ logoSize?: number;
126
+ logoBackgroundColor?: string;
127
+ logoMargin?: number;
128
+ }
129
+ declare const QRCode: React.FC<QRCodeProps>;
130
+
131
+ export { A, BR, Blockquote, Center, Col1, Col10, Col11, Col12, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Container, Em, Footer, H1, H2, H3, H4, H5, H6, Header, Img, LayoutPDF, Left, Mark, P, QRCode, Right, Row, Small, Span, Strong, Table, Tbody, Td, Th, Thead, Tr, U };
package/dist/index.d.ts CHANGED
@@ -113,4 +113,19 @@ interface PageElementProps {
113
113
  declare const Header: React.FC<PageElementProps>;
114
114
  declare const Footer: React.FC<PageElementProps>;
115
115
 
116
- export { A, BR, Blockquote, Center, Col1, Col10, Col11, Col12, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Container, Em, Footer, H1, H2, H3, H4, H5, H6, Header, Img, LayoutPDF, Left, Mark, P, Right, Row, Small, Span, Strong, Table, Tbody, Td, Th, Thead, Tr, U };
116
+ interface QRCodeProps {
117
+ value: string;
118
+ size?: number;
119
+ color?: string;
120
+ backgroundColor?: string;
121
+ errorCorrectionLevel?: "L" | "M" | "Q" | "H";
122
+ style?: any;
123
+ includeMargin?: boolean;
124
+ logo?: string;
125
+ logoSize?: number;
126
+ logoBackgroundColor?: string;
127
+ logoMargin?: number;
128
+ }
129
+ declare const QRCode: React.FC<QRCodeProps>;
130
+
131
+ export { A, BR, Blockquote, Center, Col1, Col10, Col11, Col12, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Container, Em, Footer, H1, H2, H3, H4, H5, H6, Header, Img, LayoutPDF, Left, Mark, P, QRCode, Right, Row, Small, Span, Strong, Table, Tbody, Td, Th, Thead, Tr, U };
package/dist/index.js CHANGED
@@ -503,6 +503,79 @@ var Header = ({ children, style, fixed = false }) => {
503
503
  var Footer = ({ children, style, fixed = false }) => {
504
504
  return /* @__PURE__ */ React7.createElement(View4, { style: [styles7.footer, style], fixed }, typeof children === "string" ? /* @__PURE__ */ React7.createElement(Text4, null, children) : children);
505
505
  };
506
+
507
+ // src/components/PDF/core/QRCode.tsx
508
+ import React8 from "react";
509
+ import { useEffect, useState } from "react";
510
+ import { Image as Image2, StyleSheet as StyleSheet8, View as View5 } from "@react-pdf/renderer";
511
+ import QRCodeLib from "qrcode";
512
+ var styles8 = StyleSheet8.create({
513
+ qrContainer: {
514
+ position: "relative",
515
+ alignItems: "center",
516
+ justifyContent: "center"
517
+ },
518
+ logo: {
519
+ position: "absolute",
520
+ zIndex: 2
521
+ },
522
+ logoBackground: {
523
+ position: "absolute",
524
+ zIndex: 1
525
+ }
526
+ });
527
+ var QRCode = ({
528
+ value,
529
+ size = 150,
530
+ color = "#000000",
531
+ backgroundColor = "#ffffff",
532
+ errorCorrectionLevel = "M",
533
+ style,
534
+ includeMargin = true,
535
+ logo,
536
+ logoSize = 30,
537
+ logoBackgroundColor = "#ffffff",
538
+ logoMargin = 5
539
+ }) => {
540
+ const [qrDataURL, setQrDataURL] = useState("");
541
+ useEffect(() => {
542
+ const generateQRCode = async () => {
543
+ try {
544
+ const options = {
545
+ errorCorrectionLevel,
546
+ margin: includeMargin ? 4 : 0,
547
+ color: {
548
+ dark: color,
549
+ light: backgroundColor
550
+ },
551
+ width: size
552
+ };
553
+ const dataURL = await QRCodeLib.toDataURL(value, options);
554
+ setQrDataURL(dataURL);
555
+ } catch (error) {
556
+ console.error("Error generating QR code:", error);
557
+ }
558
+ };
559
+ generateQRCode();
560
+ }, [value, size, color, backgroundColor, errorCorrectionLevel, includeMargin]);
561
+ const containerStyle = __spreadValues(__spreadProps(__spreadValues({}, styles8.qrContainer), {
562
+ width: size,
563
+ height: size
564
+ }), style);
565
+ const logoContainerSize = logoSize + logoMargin * 2;
566
+ const logoBackgroundStyle = __spreadProps(__spreadValues({}, styles8.logoBackground), {
567
+ width: logoContainerSize,
568
+ height: logoContainerSize,
569
+ backgroundColor: logoBackgroundColor,
570
+ borderRadius: logoContainerSize / 2
571
+ });
572
+ const logoStyle = __spreadProps(__spreadValues({}, styles8.logo), {
573
+ width: logoSize,
574
+ height: logoSize
575
+ });
576
+ return /* @__PURE__ */ React8.createElement(View5, { style: containerStyle }, qrDataURL ? /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement(Image2, { src: qrDataURL || "/placeholder.svg", style: { width: size, height: size } }), logo && /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement(View5, { style: logoBackgroundStyle }), /* @__PURE__ */ React8.createElement(Image2, { src: logo || "/placeholder.svg", style: logoStyle }))) : null);
577
+ };
578
+ var QRCode_default = QRCode;
506
579
  export {
507
580
  A,
508
581
  BR,
@@ -535,6 +608,7 @@ export {
535
608
  Left,
536
609
  Mark,
537
610
  P,
611
+ QRCode_default as QRCode,
538
612
  Right,
539
613
  Row,
540
614
  Small,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-pdf-levelup",
3
- "version": "1.0.11",
3
+ "version": "1.0.14",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -26,6 +26,7 @@
26
26
  "lucide-react": "^0.477.0",
27
27
  "next": "14.2.24",
28
28
  "next-transpile-modules": "^10.0.1",
29
+ "qrcode": "^1.5.4",
29
30
  "react": "^18",
30
31
  "react-dom": "^18",
31
32
  "react-pdf": "^9.2.1"
@@ -33,6 +34,7 @@
33
34
  "devDependencies": {
34
35
  "@react-pdf/types": "^2.9.0",
35
36
  "@types/node": "^20",
37
+ "@types/qrcode": "^1.5.5",
36
38
  "@types/react": "^18",
37
39
  "@types/react-dom": "^18",
38
40
  "eslint": "^8",