react-pdf-levelup 1.0.13 → 1.0.15

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
@@ -582,140 +582,47 @@ var Footer = ({ children, style, fixed = false }) => {
582
582
 
583
583
  // src/components/PDF/core/QRCode.tsx
584
584
  var import_react8 = __toESM(require("react"), 1);
585
- var import_react9 = require("react");
586
585
  var import_renderer8 = require("@react-pdf/renderer");
587
- var import_qr_code_styling = __toESM(require("qr-code-styling"), 1);
588
586
  var styles8 = import_renderer8.StyleSheet.create({
589
587
  qrContainer: {
590
588
  position: "relative",
591
589
  alignItems: "center",
592
590
  justifyContent: "center"
591
+ },
592
+ logo: {
593
+ position: "absolute",
594
+ zIndex: 2
595
+ },
596
+ logoBackground: {
597
+ position: "absolute",
598
+ zIndex: 1
593
599
  }
594
600
  });
595
601
  var QRCode = ({
596
- value,
602
+ dataURL,
597
603
  size = 150,
598
- dotsColor = "#000000",
599
- dotsGradient,
600
- backgroundColor = "#ffffff",
601
- dotsType = "square",
602
- cornersType = "square",
603
- cornersSquareColor,
604
- cornersDotColor,
604
+ style,
605
605
  logo,
606
606
  logoSize = 30,
607
- logoBackgroundColor,
608
- logoMargin = 5,
609
- errorCorrectionLevel = "M",
610
- margin = 10,
611
- style
607
+ logoBackgroundColor = "#ffffff",
608
+ logoMargin = 5
612
609
  }) => {
613
- const [qrDataURL, setQrDataURL] = (0, import_react9.useState)("");
614
- const qrCodeRef = (0, import_react9.useRef)(null);
615
- (0, import_react9.useEffect)(() => {
616
- if (typeof window !== "undefined" && !qrCodeRef.current) {
617
- qrCodeRef.current = new import_qr_code_styling.default({
618
- width: 300,
619
- height: 300,
620
- type: "canvas",
621
- data: "Initial",
622
- dotsOptions: {
623
- type: "square",
624
- color: "#000000"
625
- },
626
- cornersSquareOptions: {
627
- type: "square"
628
- },
629
- cornersDotOptions: {
630
- type: "square"
631
- },
632
- backgroundOptions: {
633
- color: "#ffffff"
634
- },
635
- imageOptions: {
636
- crossOrigin: "anonymous",
637
- margin: 5
638
- }
639
- });
640
- }
641
- const generateQRCode = async () => {
642
- if (typeof window === "undefined" || !qrCodeRef.current) return;
643
- try {
644
- const options = {
645
- width: size,
646
- height: size,
647
- data: value,
648
- margin,
649
- qrOptions: {
650
- errorCorrectionLevel
651
- },
652
- dotsOptions: {
653
- type: dotsType,
654
- color: dotsColor
655
- },
656
- cornersSquareOptions: {
657
- type: cornersType,
658
- color: cornersSquareColor || dotsColor
659
- },
660
- cornersDotOptions: {
661
- type: cornersType,
662
- color: cornersDotColor || dotsColor
663
- },
664
- backgroundOptions: {
665
- color: backgroundColor
666
- }
667
- };
668
- if (dotsGradient && dotsGradient.length === 2) {
669
- options.dotsOptions.gradient = {
670
- type: "linear",
671
- colorStops: [
672
- { offset: 0, color: dotsGradient[0] },
673
- { offset: 1, color: dotsGradient[1] }
674
- ]
675
- };
676
- }
677
- if (logo) {
678
- options.image = logo;
679
- options.imageOptions = {
680
- hideBackgroundDots: true,
681
- imageSize: logoSize / size,
682
- crossOrigin: "anonymous",
683
- margin: logoMargin
684
- };
685
- if (logoBackgroundColor) {
686
- options.imageOptions.margin = logoMargin;
687
- }
688
- }
689
- qrCodeRef.current.update(options);
690
- const dataURL = await qrCodeRef.current.getDataUrl();
691
- setQrDataURL(dataURL);
692
- } catch (error) {
693
- console.error("Error generating QR code:", error);
694
- }
695
- };
696
- generateQRCode();
697
- }, [
698
- value,
699
- size,
700
- dotsColor,
701
- dotsGradient,
702
- backgroundColor,
703
- dotsType,
704
- cornersType,
705
- cornersSquareColor,
706
- cornersDotColor,
707
- logo,
708
- logoSize,
709
- logoBackgroundColor,
710
- logoMargin,
711
- errorCorrectionLevel,
712
- margin
713
- ]);
714
610
  const containerStyle = __spreadValues(__spreadProps(__spreadValues({}, styles8.qrContainer), {
715
611
  width: size,
716
612
  height: size
717
613
  }), style);
718
- return /* @__PURE__ */ import_react8.default.createElement(import_renderer8.View, { style: containerStyle }, qrDataURL ? /* @__PURE__ */ import_react8.default.createElement(import_renderer8.Image, { src: qrDataURL || "/placeholder.svg", style: { width: size, height: size } }) : null);
614
+ const logoContainerSize = logoSize + logoMargin * 2;
615
+ const logoBackgroundStyle = __spreadProps(__spreadValues({}, styles8.logoBackground), {
616
+ width: logoContainerSize,
617
+ height: logoContainerSize,
618
+ backgroundColor: logoBackgroundColor,
619
+ borderRadius: logoContainerSize / 2
620
+ });
621
+ const logoStyle = __spreadProps(__spreadValues({}, styles8.logo), {
622
+ width: logoSize,
623
+ height: logoSize
624
+ });
625
+ return /* @__PURE__ */ import_react8.default.createElement(import_renderer8.View, { style: containerStyle }, dataURL ? /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, /* @__PURE__ */ import_react8.default.createElement(import_renderer8.Image, { src: dataURL || "/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);
719
626
  };
720
627
  var QRCode_default = QRCode;
721
628
  // Annotate the CommonJS export names for ESM import in node:
package/dist/index.d.cts CHANGED
@@ -114,22 +114,13 @@ declare const Header: React.FC<PageElementProps>;
114
114
  declare const Footer: React.FC<PageElementProps>;
115
115
 
116
116
  interface QRCodeProps {
117
- value: string;
117
+ dataURL: string;
118
118
  size?: number;
119
- dotsColor?: string;
120
- dotsGradient?: [string, string];
121
- backgroundColor?: string;
122
- dotsType?: "square" | "dots" | "rounded" | "classy" | "classy-rounded" | "extra-rounded";
123
- cornersType?: "square" | "dots" | "rounded" | "extra-rounded";
124
- cornersSquareColor?: string;
125
- cornersDotColor?: string;
119
+ style?: any;
126
120
  logo?: string;
127
121
  logoSize?: number;
128
122
  logoBackgroundColor?: string;
129
123
  logoMargin?: number;
130
- errorCorrectionLevel?: "L" | "M" | "Q" | "H";
131
- margin?: number;
132
- style?: any;
133
124
  }
134
125
  declare const QRCode: React.FC<QRCodeProps>;
135
126
 
package/dist/index.d.ts CHANGED
@@ -114,22 +114,13 @@ declare const Header: React.FC<PageElementProps>;
114
114
  declare const Footer: React.FC<PageElementProps>;
115
115
 
116
116
  interface QRCodeProps {
117
- value: string;
117
+ dataURL: string;
118
118
  size?: number;
119
- dotsColor?: string;
120
- dotsGradient?: [string, string];
121
- backgroundColor?: string;
122
- dotsType?: "square" | "dots" | "rounded" | "classy" | "classy-rounded" | "extra-rounded";
123
- cornersType?: "square" | "dots" | "rounded" | "extra-rounded";
124
- cornersSquareColor?: string;
125
- cornersDotColor?: string;
119
+ style?: any;
126
120
  logo?: string;
127
121
  logoSize?: number;
128
122
  logoBackgroundColor?: string;
129
123
  logoMargin?: number;
130
- errorCorrectionLevel?: "L" | "M" | "Q" | "H";
131
- margin?: number;
132
- style?: any;
133
124
  }
134
125
  declare const QRCode: React.FC<QRCodeProps>;
135
126
 
package/dist/index.js CHANGED
@@ -506,140 +506,47 @@ var Footer = ({ children, style, fixed = false }) => {
506
506
 
507
507
  // src/components/PDF/core/QRCode.tsx
508
508
  import React8 from "react";
509
- import { useEffect, useState, useRef } from "react";
510
509
  import { Image as Image2, StyleSheet as StyleSheet8, View as View5 } from "@react-pdf/renderer";
511
- import QRCodeStyling from "qr-code-styling";
512
510
  var styles8 = StyleSheet8.create({
513
511
  qrContainer: {
514
512
  position: "relative",
515
513
  alignItems: "center",
516
514
  justifyContent: "center"
515
+ },
516
+ logo: {
517
+ position: "absolute",
518
+ zIndex: 2
519
+ },
520
+ logoBackground: {
521
+ position: "absolute",
522
+ zIndex: 1
517
523
  }
518
524
  });
519
525
  var QRCode = ({
520
- value,
526
+ dataURL,
521
527
  size = 150,
522
- dotsColor = "#000000",
523
- dotsGradient,
524
- backgroundColor = "#ffffff",
525
- dotsType = "square",
526
- cornersType = "square",
527
- cornersSquareColor,
528
- cornersDotColor,
528
+ style,
529
529
  logo,
530
530
  logoSize = 30,
531
- logoBackgroundColor,
532
- logoMargin = 5,
533
- errorCorrectionLevel = "M",
534
- margin = 10,
535
- style
531
+ logoBackgroundColor = "#ffffff",
532
+ logoMargin = 5
536
533
  }) => {
537
- const [qrDataURL, setQrDataURL] = useState("");
538
- const qrCodeRef = useRef(null);
539
- useEffect(() => {
540
- if (typeof window !== "undefined" && !qrCodeRef.current) {
541
- qrCodeRef.current = new QRCodeStyling({
542
- width: 300,
543
- height: 300,
544
- type: "canvas",
545
- data: "Initial",
546
- dotsOptions: {
547
- type: "square",
548
- color: "#000000"
549
- },
550
- cornersSquareOptions: {
551
- type: "square"
552
- },
553
- cornersDotOptions: {
554
- type: "square"
555
- },
556
- backgroundOptions: {
557
- color: "#ffffff"
558
- },
559
- imageOptions: {
560
- crossOrigin: "anonymous",
561
- margin: 5
562
- }
563
- });
564
- }
565
- const generateQRCode = async () => {
566
- if (typeof window === "undefined" || !qrCodeRef.current) return;
567
- try {
568
- const options = {
569
- width: size,
570
- height: size,
571
- data: value,
572
- margin,
573
- qrOptions: {
574
- errorCorrectionLevel
575
- },
576
- dotsOptions: {
577
- type: dotsType,
578
- color: dotsColor
579
- },
580
- cornersSquareOptions: {
581
- type: cornersType,
582
- color: cornersSquareColor || dotsColor
583
- },
584
- cornersDotOptions: {
585
- type: cornersType,
586
- color: cornersDotColor || dotsColor
587
- },
588
- backgroundOptions: {
589
- color: backgroundColor
590
- }
591
- };
592
- if (dotsGradient && dotsGradient.length === 2) {
593
- options.dotsOptions.gradient = {
594
- type: "linear",
595
- colorStops: [
596
- { offset: 0, color: dotsGradient[0] },
597
- { offset: 1, color: dotsGradient[1] }
598
- ]
599
- };
600
- }
601
- if (logo) {
602
- options.image = logo;
603
- options.imageOptions = {
604
- hideBackgroundDots: true,
605
- imageSize: logoSize / size,
606
- crossOrigin: "anonymous",
607
- margin: logoMargin
608
- };
609
- if (logoBackgroundColor) {
610
- options.imageOptions.margin = logoMargin;
611
- }
612
- }
613
- qrCodeRef.current.update(options);
614
- const dataURL = await qrCodeRef.current.getDataUrl();
615
- setQrDataURL(dataURL);
616
- } catch (error) {
617
- console.error("Error generating QR code:", error);
618
- }
619
- };
620
- generateQRCode();
621
- }, [
622
- value,
623
- size,
624
- dotsColor,
625
- dotsGradient,
626
- backgroundColor,
627
- dotsType,
628
- cornersType,
629
- cornersSquareColor,
630
- cornersDotColor,
631
- logo,
632
- logoSize,
633
- logoBackgroundColor,
634
- logoMargin,
635
- errorCorrectionLevel,
636
- margin
637
- ]);
638
534
  const containerStyle = __spreadValues(__spreadProps(__spreadValues({}, styles8.qrContainer), {
639
535
  width: size,
640
536
  height: size
641
537
  }), style);
642
- return /* @__PURE__ */ React8.createElement(View5, { style: containerStyle }, qrDataURL ? /* @__PURE__ */ React8.createElement(Image2, { src: qrDataURL || "/placeholder.svg", style: { width: size, height: size } }) : null);
538
+ const logoContainerSize = logoSize + logoMargin * 2;
539
+ const logoBackgroundStyle = __spreadProps(__spreadValues({}, styles8.logoBackground), {
540
+ width: logoContainerSize,
541
+ height: logoContainerSize,
542
+ backgroundColor: logoBackgroundColor,
543
+ borderRadius: logoContainerSize / 2
544
+ });
545
+ const logoStyle = __spreadProps(__spreadValues({}, styles8.logo), {
546
+ width: logoSize,
547
+ height: logoSize
548
+ });
549
+ return /* @__PURE__ */ React8.createElement(View5, { style: containerStyle }, dataURL ? /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement(Image2, { src: dataURL || "/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);
643
550
  };
644
551
  var QRCode_default = QRCode;
645
552
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-pdf-levelup",
3
- "version": "1.0.13",
3
+ "version": "1.0.15",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -26,7 +26,6 @@
26
26
  "lucide-react": "^0.477.0",
27
27
  "next": "14.2.24",
28
28
  "next-transpile-modules": "^10.0.1",
29
- "qr-code-styling": "^1.9.1",
30
29
  "qrcode": "^1.5.4",
31
30
  "react": "^18",
32
31
  "react-dom": "^18",