react-pdf-levelup 3.1.59 → 3.1.63

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../frontend/src/functions/decodeBase64Pdf.ts","../../frontend/src/functions/generatePDF.ts","../../frontend/src/components/core/LayoutPDF.tsx","../../frontend/src/components/core/Img.tsx","../../frontend/src/components/core/Position.tsx","../../frontend/src/components/core/Etiquetas.tsx","../../frontend/src/components/core/Tablet.tsx","../../frontend/src/components/core/Grid.tsx","../../frontend/src/components/core/QRGenerator.ts","../../frontend/src/components/core/QR.tsx","../../frontend/src/components/core/QRGeneratorV2.ts","../../frontend/src/components/core/QRV2.tsx","../../frontend/src/components/core/Lista.tsx","../../frontend/src/components/core/ImgBg.tsx"],"names":["decodeBase64Pdf","base64","fileName","byteCharacters","byteNumbers","i","byteArray","blob","blobUrl","link","decodeBase64Pdf_default","generatePDF","Template","data","MyDocument","createElement","stream","renderToStream","resolve","reject","chunks","chunk","error","generatePDF_default","styles","StyleSheet","LayoutPDF","children","size","orientation","backgroundColor","padding","margen","style","pagination","footer","lines","rule","footerHeight","getMargins","pageSize","normalizedSize","safeSize","safeOrientation","safeBackgroundColor","safeLines","safeMargen","e","transformOrientation","getFooterPosition","pageDimensions","mmToPoints","dimensions","heightInPoints","widthInPoints","pdfOrientation","margins","footerTop","renderGrid","cmToPoints","pageWidth","pageHeight","horizontalLines","verticalLines","jsx","View","jsxs","pageStyle","footerStyle","Document","Page","Text","pageNumber","totalPages","LayoutPDF_default","Img","src","Image","Img_default","Left","Right","Center","P","H1","H2","H3","H4","H5","H6","Strong","Em","U","Small","Blockquote","Mark","A","href","Link","BR","HR","Span","Header","fixed","Div","TableContext","createContext","Table","cellHeight","Thead","textAlign","useContext","Tbody","rows","React","count","Fragment","row","idx","Tr","isLastRow","isOdd","elements","child","isLast","width","Th","height","colSpan","propTextAlign","contextTextAlign","finalTextAlign","baseWidth","borders","Td","Container","Row","Col1","Col2","Col3","Col4","Col5","Col6","Col7","Col8","Col9","Col10","Col11","Col12","generateQRAsBase64","value","colorDark","colorLight","margin","errorCorrectionLevel","options","QRCode","addLogoToQR","qrDataUrl","logoUrl","logoWidth","logoHeight","isBrowser","canvas","ctx","ImageConstructor","createCanvas","qrImage","logoImage","x","y","finalQrDataUrl","err","errorLevelMap","QR","logo","setQrDataUrl","useState","useEffect","baseQrDataUrl","qrWithLogo","fallbackUrl","QR_default","generateQRV2AsBase64","QRCodeStylingConstructor","extraOptions","mod","jsdomName","canvasName","qrCommonName","jsdomMod","canvasMod","qrCommonMod","JSDOM","nodeCanvas","QRCodeStyling","hasImage","qrOptions","rawData","reader","QRV2","image","dotsOptions","backgroundOptions","imageOptions","cornersSquareOptions","cornersDotOptions","isMounted","finalDotsOptions","finalBackgroundOptions","finalImageOptions","dataUrl","QRV2_default","getBulletPoint","type","getOrderedMarker","index","start","actualIndex","toRoman","num","romanNumerals","UL","childrenWithBullets","OL","childrenWithNumbers","LI","bulletType","isOrdered","marker","ImgBg","opacity","objectFit","objectPosition","ImgBg_default"],"mappings":"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","file":"index.cjs","sourcesContent":["const decodeBase64Pdf = (base64: string, fileName: string) => {\r\n const byteCharacters = atob(base64);\r\n const byteNumbers = new Array(byteCharacters.length);\r\n for (let i = 0; i < byteCharacters.length; i++) {\r\n byteNumbers[i] = byteCharacters.charCodeAt(i);\r\n }\r\n const byteArray = new Uint8Array(byteNumbers);\r\n const blob = new Blob([byteArray], { type: 'application/pdf' });\r\n const blobUrl = URL.createObjectURL(blob);\r\n\r\n\r\n if (document === undefined) {\r\n console.error(\"document is undefined, only works in browser context\");\r\n return;\r\n }\r\n\r\n // Crear un enlace para descargar el archivo\r\n const link = document.createElement('a');\r\n link.href = blobUrl;\r\n link.download = fileName;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n\r\n // Abrir el PDF en una nueva pestaña\r\n window.open(blobUrl, '_blank');\r\n\r\n // Revocar el objeto URL después de un tiempo\r\n setTimeout(() => {\r\n URL.revokeObjectURL(blobUrl);\r\n }, 100);\r\n};\r\n\r\nexport default decodeBase64Pdf;","import { renderToStream } from \"@react-pdf/renderer\";\r\nimport { createElement } from \"react\";\r\n\r\ninterface PDFData {\r\n template: React.ElementType;\r\n data?: any;\r\n}\r\n\r\nconst generatePDF = async ({ template: Template, data }: PDFData): Promise<string> => {\r\n try {\r\n if (!Template) {\r\n throw new Error(\"Template not provided\");\r\n }\r\n\r\n // Crear el componente con los datos\r\n const MyDocument = createElement(Template, { data });\r\n\r\n // Renderizar a stream\r\n const stream = await renderToStream(MyDocument);\r\n\r\n const base64String: string = await new Promise((resolve, reject) => {\r\n const chunks: Buffer[] = [];\r\n stream.on(\"data\", (chunk) => chunks.push(chunk));\r\n stream.on(\"end\", () => resolve(Buffer.concat(chunks).toString(\"base64\")));\r\n stream.on(\"error\", (error) => reject(error));\r\n });\r\n\r\n return base64String;\r\n } catch (error) {\r\n throw new Error(\"Error generating PDF: \" + (error instanceof Error ? error.message : \"Unknown error\"));\r\n }\r\n};\r\n\r\nexport default generatePDF;\r\n","import React from \"react\"\r\nimport { Page, Document, StyleSheet, Text, View } from \"@react-pdf/renderer\"\r\n\r\nconst styles = StyleSheet.create({\r\n page: {\r\n backgroundColor: \"white\",\r\n padding: 30,\r\n fontFamily: \"Helvetica\",\r\n fontSize: 14,\r\n },\r\n footer: {\r\n position: \"absolute\",\r\n left: 0,\r\n right: 0,\r\n textAlign: \"center\",\r\n }\r\n})\r\n\r\ninterface LayoutPDFProps {\r\n children: React.ReactNode\r\n size?: string\r\n orientation?: \"vertical\" | \"horizontal\" | \"h\" | \"v\" | \"portrait\" | \"landscape\"\r\n backgroundColor?: string\r\n padding?: number\r\n margen?: \"apa\" | \"normal\" | \"estrecho\" | \"ancho\"\r\n style?: any\r\n pagination?: boolean\r\n footer?: React.ReactNode\r\n lines?: number\r\n rule?: boolean\r\n}\r\n\r\nconst LayoutPDF: React.FC<LayoutPDFProps> = ({\r\n children,\r\n size = \"A4\",\r\n orientation = \"vertical\",\r\n backgroundColor = \"white\",\r\n padding = 30,\r\n margen = \"normal\",\r\n style = {},\r\n pagination = true,\r\n footer,\r\n lines = footer ? 2 : 1,\r\n rule = false,\r\n}) => {\r\n // Calculate footer height based on number of lines\r\n // Each line is approximately 20 points (considering font size and line height)\r\n const LINE_HEIGHT = 20\r\n const FOOTER_PADDING = 10\r\n const footerHeight = (lines * LINE_HEIGHT) + FOOTER_PADDING\r\n\r\n // Función para obtener márgenes según las normas APA y otros estándares\r\n const getMargins = (margen: string, pageSize: string) => {\r\n const normalizedSize = pageSize.toUpperCase()\r\n\r\n switch (margen) {\r\n case \"apa\":\r\n // Normas APA: 1 pulgada en todos los lados (72 puntos)\r\n if (normalizedSize === \"LETTER\" || normalizedSize === \"LEGAL\") {\r\n return {\r\n paddingTop: 72,\r\n paddingRight: 72,\r\n paddingBottom: 72,\r\n paddingLeft: 72\r\n }\r\n }\r\n // Para otros tamaños, usar equivalente proporcional\r\n return {\r\n paddingTop: 72,\r\n paddingRight: 72,\r\n paddingBottom: 72,\r\n paddingLeft: 72\r\n }\r\n\r\n case \"estrecho\":\r\n return {\r\n paddingTop: 36,\r\n paddingRight: 36,\r\n paddingBottom: 36,\r\n paddingLeft: 36\r\n }\r\n\r\n case \"ancho\":\r\n return {\r\n paddingTop: 108,\r\n paddingRight: 108,\r\n paddingBottom: 108,\r\n paddingLeft: 108\r\n }\r\n\r\n case \"normal\":\r\n default:\r\n return {\r\n paddingTop: padding,\r\n paddingRight: padding,\r\n paddingBottom: padding,\r\n paddingLeft: padding\r\n }\r\n }\r\n }\r\n\r\n // Validar y sanitizar props\r\n let safeSize = size\r\n let safeOrientation = orientation\r\n let safeBackgroundColor = backgroundColor\r\n let safeLines = Math.max(1, Math.min(lines, 10)) // Limit between 1 and 10 lines\r\n let safeMargen = margen\r\n\r\n try {\r\n // Validar size\r\n const validSizes = [\"A0\", \"A1\", \"A2\", \"A3\", \"A4\", \"A5\", \"A6\", \"A7\", \"A8\", \"A9\", \"LETTER\", \"LEGAL\", \"TABLOID\"]\r\n if (typeof size === \"string\" && !validSizes.includes(size.toUpperCase())) {\r\n console.warn(`Invalid page size: ${size}. Using A4 as default.`)\r\n safeSize = \"A4\"\r\n }\r\n\r\n // Validar orientation\r\n if (orientation !== \"vertical\" && orientation !== \"horizontal\") {\r\n console.warn(`Invalid orientation: ${orientation}. Using vertical as default.`)\r\n safeOrientation = \"vertical\"\r\n }\r\n\r\n // Validar backgroundColor\r\n if (typeof backgroundColor !== \"string\") {\r\n console.warn(`Invalid background color: ${backgroundColor}. Using white as default.`)\r\n safeBackgroundColor = \"white\"\r\n }\r\n\r\n // Validar margen\r\n const validMargins = [\"apa\", \"normal\", \"estrecho\", \"ancho\"]\r\n if (!validMargins.includes(margen)) {\r\n console.warn(`Invalid margin type: ${margen}. Using normal as default.`)\r\n safeMargen = \"normal\"\r\n }\r\n\r\n // Validar lines\r\n if (typeof lines !== \"number\" || lines < 1) {\r\n console.warn(`Invalid lines value: ${lines}. Using 1 as default.`)\r\n safeLines = 1\r\n }\r\n } catch (e) {\r\n console.warn(\"Error processing props in LayoutPDF:\", e)\r\n }\r\n\r\n // Transform orientation from \"vertical\"/\"horizontal\" to \"portrait\"/\"landscape\"\r\n const transformOrientation = (orientation: \"vertical\" | \"horizontal\" | \"h\" | \"v\" | \"portrait\" | \"landscape\"): \"portrait\" | \"landscape\" => {\r\n switch (orientation) {\r\n case \"vertical\":\r\n case \"portrait\":\r\n case \"v\":\r\n return \"portrait\"\r\n case \"horizontal\":\r\n case \"landscape\":\r\n case \"h\":\r\n return \"landscape\"\r\n default:\r\n console.warn(`Unrecognized orientation: ${orientation}. Using portrait as default.`)\r\n return \"portrait\"\r\n }\r\n }\r\n\r\n // Function to calculate footer position based on size and orientation\r\n const getFooterPosition = (pageSize: string, orientation: \"portrait\" | \"landscape\", footerHeight: number) => {\r\n // Dimensions in millimeters according to ISO 216 standard\r\n const pageDimensions: Record<string, { width: number; height: number }> = {\r\n A0: { width: 841, height: 1189 },\r\n A1: { width: 594, height: 841 },\r\n A2: { width: 420, height: 594 },\r\n A3: { width: 297, height: 420 },\r\n A4: { width: 210, height: 297 },\r\n A5: { width: 148, height: 210 },\r\n A6: { width: 105, height: 148 },\r\n A7: { width: 74, height: 105 },\r\n A8: { width: 52, height: 74 },\r\n A9: { width: 37, height: 52 },\r\n LETTER: { width: 216, height: 279 },\r\n LEGAL: { width: 216, height: 356 },\r\n TABLOID: { width: 279, height: 432 },\r\n }\r\n\r\n // Convert mm to points (1mm = 2.834645669 points)\r\n const mmToPoints = 2.834645669\r\n\r\n const dimensions = pageDimensions[pageSize.toUpperCase()]\r\n if (!dimensions) {\r\n // A4 default in points\r\n return orientation === \"landscape\" ? 595 - footerHeight - 10 : 842 - footerHeight - 10\r\n }\r\n\r\n const heightInPoints = dimensions.height * mmToPoints\r\n const widthInPoints = dimensions.width * mmToPoints\r\n\r\n // Subtract footer height and additional margin\r\n return orientation === \"landscape\"\r\n ? widthInPoints - footerHeight - 10\r\n : heightInPoints - footerHeight - 10\r\n }\r\n\r\n const pdfOrientation = transformOrientation(safeOrientation)\r\n\r\n // Obtener márgenes según el tipo seleccionado\r\n const margins = getMargins(safeMargen, safeSize)\r\n\r\n // Calculate footer position based on calculated footer height\r\n const footerTop = getFooterPosition(safeSize, pdfOrientation, footerHeight)\r\n\r\n // Function to render grid (ruler)\r\n const renderGrid = () => {\r\n if (!rule) return null\r\n\r\n // 1 cm = 28.3465 points\r\n const cmToPoints = 28.3465\r\n \r\n // Get page dimensions in points\r\n const pageDimensions: Record<string, { width: number; height: number }> = {\r\n A0: { width: 841 * 2.834645669, height: 1189 * 2.834645669 },\r\n A1: { width: 594 * 2.834645669, height: 841 * 2.834645669 },\r\n A2: { width: 420 * 2.834645669, height: 594 * 2.834645669 },\r\n A3: { width: 297 * 2.834645669, height: 420 * 2.834645669 },\r\n A4: { width: 210 * 2.834645669, height: 297 * 2.834645669 },\r\n A5: { width: 148 * 2.834645669, height: 210 * 2.834645669 },\r\n A6: { width: 105 * 2.834645669, height: 148 * 2.834645669 },\r\n A7: { width: 74 * 2.834645669, height: 105 * 2.834645669 },\r\n A8: { width: 52 * 2.834645669, height: 74 * 2.834645669 },\r\n A9: { width: 37 * 2.834645669, height: 52 * 2.834645669 },\r\n LETTER: { width: 216 * 2.834645669, height: 279 * 2.834645669 },\r\n LEGAL: { width: 216 * 2.834645669, height: 356 * 2.834645669 },\r\n TABLOID: { width: 279 * 2.834645669, height: 432 * 2.834645669 },\r\n }\r\n\r\n const dimensions = pageDimensions[safeSize.toUpperCase()] || pageDimensions.A4\r\n const pageWidth = pdfOrientation === \"landscape\" ? dimensions.height : dimensions.width\r\n const pageHeight = pdfOrientation === \"landscape\" ? dimensions.width : dimensions.height\r\n\r\n const horizontalLines = []\r\n const verticalLines = []\r\n\r\n // Generate horizontal lines (every cm)\r\n for (let i = 0; i <= Math.ceil(pageHeight / cmToPoints); i++) {\r\n horizontalLines.push(\r\n <View\r\n key={`h-${i}`}\r\n style={{\r\n position: \"absolute\",\r\n top: i * cmToPoints,\r\n left: 0,\r\n right: 0,\r\n height: i % 5 === 0 ? 1 : 0.5,\r\n backgroundColor: i % 5 === 0 ? \"rgba(255, 0, 0, 0.8)\" : \"rgba(100, 100, 100, 0.5)\",\r\n }}\r\n />\r\n )\r\n }\r\n\r\n // Generate vertical lines (every cm)\r\n for (let i = 0; i <= Math.ceil(pageWidth / cmToPoints); i++) {\r\n verticalLines.push(\r\n <View\r\n key={`v-${i}`}\r\n style={{\r\n position: \"absolute\",\r\n left: i * cmToPoints,\r\n top: 0,\r\n bottom: 0,\r\n width: i % 5 === 0 ? 1 : 0.5,\r\n backgroundColor: i % 5 === 0 ? \"rgba(255, 0, 0, 0.8)\" : \"rgba(100, 100, 100, 0.5)\",\r\n }}\r\n />\r\n )\r\n }\r\n\r\n return (\r\n <View style={{ position: \"absolute\", top: 0, left: 0, right: 0, bottom: 0 }} fixed>\r\n {horizontalLines}\r\n {verticalLines}\r\n </View>\r\n )\r\n }\r\n\r\n const pageStyle = {\r\n ...styles.page,\r\n backgroundColor: safeBackgroundColor,\r\n ...margins,\r\n paddingBottom: margins.paddingBottom + footerHeight,\r\n ...style,\r\n }\r\n\r\n const footerStyle = {\r\n ...styles.footer,\r\n top: footerTop,\r\n height: footerHeight,\r\n display: \"flex\" as const,\r\n flexDirection: \"column\" as const,\r\n justifyContent: \"center\" as const,\r\n alignItems: \"center\" as const,\r\n fontSize: 10,\r\n color: \"grey\"\r\n }\r\n\r\n return (\r\n <Document>\r\n <Page size={safeSize as any} orientation={pdfOrientation} style={pageStyle} wrap>\r\n {renderGrid()}\r\n <View style={{ paddingBottom: footerHeight }}>\r\n {children}\r\n </View>\r\n {pagination ? (\r\n <View style={footerStyle} fixed>\r\n {footer}\r\n <Text style={{ fontSize: footerStyle.fontSize }} render={({ pageNumber, totalPages }) => (\r\n `${pageNumber} / ${totalPages}`\r\n )} />\r\n </View>\r\n ) : null}\r\n </Page>\r\n </Document>\r\n )\r\n}\r\n\r\nexport default LayoutPDF","import React from \"react\"\r\nimport { Image, StyleSheet } from \"@react-pdf/renderer\"\r\n\r\ninterface ImgProps {\r\n src?: string\r\n style?: any\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n image: {\r\n width: \"100%\",\r\n height: \"auto\",\r\n marginBottom: 14,\r\n },\r\n})\r\n\r\nconst Img: React.FC<ImgProps> = ({ src, style }) => {\r\n return <Image src={src} style={[styles.image, style]} />\r\n}\r\n\r\nexport default Img\r\n\r\n","import React from \"react\"\r\nimport { View, StyleSheet } from \"@react-pdf/renderer\"\r\n\r\ninterface PositionProps {\r\n children: React.ReactNode\r\n style?: any\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n left: {\r\n textAlign: \"left\",\r\n },\r\n right: {\r\n textAlign: \"right\",\r\n },\r\n center: {\r\n textAlign: \"center\",\r\n },\r\n})\r\n\r\nconst Left: React.FC<PositionProps> = ({ children, style }) => {\r\n return <View style={[styles.left, style]}>{children}</View>\r\n}\r\n\r\nconst Right: React.FC<PositionProps> = ({ children, style }) => {\r\n return <View style={[styles.right, style]}>{children}</View>\r\n}\r\n\r\nconst Center: React.FC<PositionProps> = ({ children, style }) => {\r\n return <View style={[styles.center, style]}>{children}</View>\r\n}\r\n\r\nexport { Left, Right, Center }\r\n\r\n","import React from \"react\"\r\nimport { Text, StyleSheet, Link, View } from \"@react-pdf/renderer\"\r\n\r\ninterface TextProps {\r\n children: React.ReactNode\r\n style?: any\r\n href?: string\r\n}\r\n\r\ninterface DivProps {\r\n children: React.ReactNode\r\n style?: any\r\n}\r\n\r\ninterface HeaderProps {\r\n children: React.ReactNode\r\n style?: any\r\n fixed?: boolean\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n p: {\r\n fontSize: 12,\r\n marginBottom: 5,\r\n lineHeight: 1.2,\r\n },\r\n h1: {\r\n fontSize: 24,\r\n fontWeight: \"bold\",\r\n marginBottom: 12,\r\n },\r\n h2: {\r\n fontSize: 20,\r\n fontWeight: \"bold\",\r\n marginBottom: 10,\r\n },\r\n h3: {\r\n fontSize: 18,\r\n fontWeight: \"bold\",\r\n marginBottom: 8,\r\n },\r\n h4: {\r\n fontSize: 16,\r\n fontWeight: \"bold\",\r\n marginBottom: 6,\r\n },\r\n h5: {\r\n fontSize: 14,\r\n fontWeight: \"bold\",\r\n marginBottom: 4,\r\n },\r\n h6: {\r\n fontSize: 12,\r\n fontWeight: \"bold\",\r\n marginBottom: 0,\r\n },\r\n strong: {\r\n fontWeight: \"bold\",\r\n },\r\n em: {\r\n fontStyle: \"italic\",\r\n },\r\n u: {\r\n textDecoration: \"underline\",\r\n },\r\n small: {\r\n fontSize: 10,\r\n },\r\n blockquote: {\r\n marginLeft: 20,\r\n marginRight: 20,\r\n fontStyle: \"italic\",\r\n borderLeft: \"4px solid #ccc\",\r\n paddingLeft: 10,\r\n },\r\n mark: {\r\n backgroundColor: \"yellow\",\r\n },\r\n A: {\r\n color: \"#3d65fd\",\r\n textDecoration: \"none\",\r\n },\r\n br: {\r\n width: \"100%\",\r\n height: 1,\r\n marginTop: 7,\r\n marginBottom: 7,\r\n },\r\n header: {\r\n position: \"absolute\",\r\n top: 20,\r\n left: 0,\r\n right: 0,\r\n textAlign: \"center\",\r\n fontSize: 10,\r\n color: \"#666\",\r\n paddingHorizontal: 40,\r\n },\r\n hr: {\r\n width: \"100%\",\r\n borderTop: \"1px solid #000\",\r\n marginTop: 8,\r\n marginBottom: 8,\r\n },\r\n})\r\n\r\nconst P: React.FC<TextProps> = ({ children, style }) => {\r\n return <Text style={[styles.p, style]}>{children}</Text>\r\n}\r\n\r\nconst H1: React.FC<TextProps> = ({ children, style }) => {\r\n return <Text style={[styles.h1, style]}>{children}</Text>\r\n}\r\n\r\nconst H2: React.FC<TextProps> = ({ children, style }) => {\r\n return <Text style={[styles.h2, style]}>{children}</Text>\r\n}\r\n\r\nconst H3: React.FC<TextProps> = ({ children, style }) => {\r\n return <Text style={[styles.h3, style]}>{children}</Text>\r\n}\r\n\r\nconst H4: React.FC<TextProps> = ({ children, style }) => {\r\n return <Text style={[styles.h4, style]}>{children}</Text>\r\n}\r\n\r\nconst H5: React.FC<TextProps> = ({ children, style }) => {\r\n return <Text style={[styles.h5, style]}>{children}</Text>\r\n}\r\n\r\nconst H6: React.FC<TextProps> = ({ children, style }) => {\r\n return <Text style={[styles.h6, style]}>{children}</Text>\r\n}\r\n\r\nconst Strong: React.FC<TextProps> = ({ children, style }) => {\r\n return <Text style={[styles.strong, style]}>{children}</Text>\r\n}\r\n\r\nconst Em: React.FC<TextProps> = ({ children, style }) => {\r\n return <Text style={[styles.em, style]}>{children}</Text>\r\n}\r\n\r\nconst U: React.FC<TextProps> = ({ children, style }) => {\r\n return <Text style={[styles.u, style]}>{children}</Text>\r\n}\r\n\r\nconst Small: React.FC<TextProps> = ({ children, style }) => {\r\n return <Text style={[styles.small, style]}>{children}</Text>\r\n}\r\n\r\nconst Blockquote: React.FC<TextProps> = ({ children, style }) => {\r\n return <Text style={[styles.blockquote, style]}>{children}</Text>\r\n}\r\n\r\nconst Mark: React.FC<TextProps> = ({ children, style }) => {\r\n return <Text style={[styles.mark, style]}>{children}</Text>\r\n}\r\n\r\nconst A: React.FC<TextProps> = ({ children, style, href }) => {\r\n return (\r\n <Link src={href} style={[styles.A, style]}>\r\n {children}\r\n </Link>\r\n )\r\n}\r\n\r\nconst BR: React.FC<{ style?: any }> = ({ style }) => {\r\n return <Text style={[styles.br, style]}>{\"\\n\"}</Text>\r\n}\r\n\r\nconst HR: React.FC<{ style?: any }> = ({ style }) => {\r\n return <View style={[styles.hr, style]} />\r\n}\r\n\r\nconst Span: React.FC<TextProps> = ({ children, style }) => {\r\n return <Text style={[style]}>{children}</Text>\r\n}\r\n\r\nconst Header: React.FC<HeaderProps> = ({ children, style, fixed = false }) => {\r\n return (\r\n <View style={[styles.header, style]} fixed={fixed}>\r\n {typeof children === \"string\" ? <Text>{children}</Text> : children}\r\n </View>\r\n )\r\n}\r\n\r\nconst Div: React.FC<DivProps> = ({ children, style }) => {\r\n return <View style={style}>{children}</View>\r\n}\r\n\r\nexport { P, A, H1, H2, H3, H4, H5, H6, Strong, Em, U, Small, Blockquote, Mark, Span, BR, HR, Header, Div }","import React, { createContext, useContext } from \"react\";\r\nimport { View, Text, StyleSheet } from \"@react-pdf/renderer\";\r\n\r\ninterface TableProps {\r\n children: React.ReactNode;\r\n style?: any;\r\n cellHeight?: number;\r\n}\r\n\r\ninterface TheadProps {\r\n children: React.ReactNode;\r\n style?: any;\r\n textAlign?: \"left\" | \"center\" | \"right\" | any;\r\n}\r\n\r\ninterface CellProps {\r\n children?: React.ReactNode;\r\n style?: any;\r\n width?: string | number;\r\n height?: string | number;\r\n colSpan?: number;\r\n isLast?: boolean;\r\n isLastRow?: boolean;\r\n isOdd?: boolean;\r\n textAlign?: \"left\" | \"center\" | \"right\" | any;\r\n}\r\n\r\n// Context para pasar cellHeight y textAlign a los componentes hijos\r\nconst TableContext = createContext<{\r\n cellHeight: number;\r\n textAlign?: \"left\" | \"center\" | \"right\" | any;\r\n}>({\r\n cellHeight: 22,\r\n textAlign: \"left\",\r\n});\r\n\r\nconst styles = StyleSheet.create({\r\n table: {\r\n width: \"100%\",\r\n borderWidth: 1,\r\n borderColor: \"#000\",\r\n marginBottom: 20,\r\n },\r\n thead: {\r\n backgroundColor: \"#ccc\",\r\n },\r\n tr: {\r\n flexDirection: \"row\",\r\n },\r\n textBold: {\r\n fontSize: 10,\r\n fontFamily: \"Helvetica\",\r\n fontWeight: \"bold\",\r\n paddingLeft: 8,\r\n paddingRight: 8,\r\n justifyContent: \"center\",\r\n\r\n },\r\n text: {\r\n fontSize: 10,\r\n fontFamily: \"Helvetica\",\r\n paddingLeft: 8,\r\n paddingRight: 8,\r\n justifyContent: \"center\",\r\n\r\n },\r\n zebraOdd: {\r\n backgroundColor: \"#eeeeee\",\r\n },\r\n});\r\n\r\nconst Table: React.FC<TableProps> = ({ children, style, cellHeight = 22 }) => (\r\n <TableContext.Provider value={{ cellHeight, textAlign: \"left\" }}>\r\n <View style={[styles.table, style]}>{children}</View>\r\n </TableContext.Provider>\r\n);\r\n\r\nconst Thead: React.FC<TheadProps> = ({\r\n children,\r\n style,\r\n textAlign = \"left\",\r\n}) => {\r\n const { cellHeight } = useContext(TableContext);\r\n\r\n return (\r\n <TableContext.Provider value={{ cellHeight, textAlign }}>\r\n <View style={[styles.thead, style]}>{children}</View>\r\n </TableContext.Provider>\r\n );\r\n};\r\n\r\nconst Tbody: React.FC<TableProps> = ({ children, style }) => {\r\n const rows = React.Children.toArray(children) as React.ReactElement<any>[];\r\n const count = rows.length;\r\n return (\r\n <>\r\n {rows.map((row, idx) =>\r\n React.cloneElement(row, {\r\n isLastRow: idx === count - 1,\r\n isOdd: idx % 2 === 1,\r\n })\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nconst Tr: React.FC<TableProps & { isLastRow?: boolean; isOdd?: boolean }> = ({\r\n children,\r\n style,\r\n isLastRow = false,\r\n isOdd = false,\r\n}) => {\r\n const elements = React.Children.toArray(\r\n children\r\n ) as React.ReactElement<CellProps>[];\r\n const count = elements.length;\r\n return (\r\n <View style={[styles.tr, style]}>\r\n {elements.map((child, idx) => {\r\n const isLast = idx === count - 1;\r\n const width = `${(100 / count).toFixed(2)}%`;\r\n return React.cloneElement(child, { width, isLast, isLastRow, isOdd });\r\n })}\r\n </View>\r\n );\r\n};\r\n\r\nconst Th: React.FC<CellProps> = ({\r\n children,\r\n style,\r\n width,\r\n height,\r\n colSpan,\r\n isLast = false,\r\n isLastRow = false,\r\n textAlign: propTextAlign,\r\n}) => {\r\n const { cellHeight, textAlign: contextTextAlign } = useContext(TableContext);\r\n\r\n // Usar textAlign del prop si está definido, sino el del contexto\r\n const finalTextAlign = propTextAlign || contextTextAlign || \"left\";\r\n\r\n const baseWidth =\r\n typeof width === \"string\" && colSpan\r\n ? `${(parseFloat(width) * colSpan).toFixed(2)}%`\r\n : width;\r\n\r\n const cellHeightValue = height !== undefined ? height : cellHeight;\r\n\r\n const borders = {\r\n borderRightWidth: isLast ? 0 : 1,\r\n borderBottomWidth: isLastRow ? 0 : 1,\r\n borderColor: \"#000\",\r\n minHeight: cellHeightValue,\r\n };\r\n\r\n return (\r\n <View\r\n style={[\r\n styles.textBold,\r\n {\r\n width: baseWidth,\r\n },\r\n borders,\r\n style,\r\n ]}\r\n >\r\n <Text style={{ textAlign: finalTextAlign }}>{children}</Text>\r\n </View>\r\n );\r\n};\r\n\r\nconst Td: React.FC<CellProps> = ({\r\n children,\r\n style,\r\n width,\r\n height,\r\n colSpan,\r\n isLast = false,\r\n isLastRow = false,\r\n isOdd = false,\r\n textAlign: propTextAlign,\r\n}) => {\r\n const { cellHeight, textAlign: contextTextAlign } = useContext(TableContext);\r\n\r\n // Usar textAlign del prop si está definido, sino el del contexto, sino 'left'\r\n const finalTextAlign = propTextAlign || contextTextAlign || \"left\";\r\n\r\n const baseWidth =\r\n typeof width === \"string\" && colSpan\r\n ? `${(parseFloat(width) * colSpan).toFixed(2)}%`\r\n : width;\r\n\r\n const cellHeightValue = height !== undefined ? height : cellHeight;\r\n\r\n const borders = {\r\n borderRightWidth: isLast ? 0 : 1,\r\n borderBottomWidth: isLastRow ? 0 : 1,\r\n borderColor: \"#000\",\r\n minHeight: cellHeightValue,\r\n };\r\n\r\n return (\r\n <View\r\n style={[\r\n styles.text,\r\n isOdd && styles.zebraOdd,\r\n {\r\n width: baseWidth,\r\n },\r\n borders,\r\n style,\r\n ]}\r\n >\r\n <Text style={{ textAlign: finalTextAlign }}>{children}</Text>\r\n </View>\r\n );\r\n};\r\n\r\nexport { Table, Thead, Tbody, Tr, Th, Td };\r\n","import React from \"react\"\r\nimport { View, StyleSheet } from \"@react-pdf/renderer\"\r\n\r\ninterface ContainerProps {\r\n children: React.ReactNode\r\n style?: any\r\n}\r\n\r\ninterface RowProps {\r\n children: React.ReactNode\r\n style?: any\r\n}\r\n\r\ninterface ColProps {\r\n children: React.ReactNode\r\n style?: any\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n width: \"100%\",\r\n paddingHorizontal: 20,\r\n },\r\n row: {\r\n flexDirection: \"row\",\r\n flexWrap: \"wrap\",\r\n marginHorizontal: -5,\r\n },\r\n col: {\r\n paddingHorizontal: 5,\r\n },\r\n col1: { width: \"8.33%\" },\r\n col2: { width: \"16.66%\" },\r\n col3: { width: \"25%\" },\r\n col4: { width: \"33.33%\" },\r\n col5: { width: \"41.66%\" },\r\n col6: { width: \"50%\" },\r\n col7: { width: \"58.33%\" },\r\n col8: { width: \"66.66%\" },\r\n col9: { width: \"75%\" },\r\n col10: { width: \"83.33%\" },\r\n col11: { width: \"91.66%\" },\r\n col12: { width: \"100%\" },\r\n})\r\n\r\nexport const Container: React.FC<ContainerProps> = ({ children, style }) => {\r\n return <View style={[styles.container, style]}>{children}</View>\r\n}\r\n\r\nexport const Row: React.FC<RowProps> = ({ children, style }) => {\r\n return <View style={[styles.row, style]}>{children}</View>\r\n}\r\n\r\nexport const Col1: React.FC<ColProps> = ({ children, style }) => {\r\n return <View style={[styles.col, styles.col1, style]}>{children}</View>\r\n}\r\n\r\nexport const Col2: React.FC<ColProps> = ({ children, style }) => {\r\n return <View style={[styles.col, styles.col2, style]}>{children}</View>\r\n}\r\n\r\nexport const Col3: React.FC<ColProps> = ({ children, style }) => {\r\n return <View style={[styles.col, styles.col3, style]}>{children}</View>\r\n}\r\n\r\nexport const Col4: React.FC<ColProps> = ({ children, style }) => {\r\n return <View style={[styles.col, styles.col4, style]}>{children}</View>\r\n}\r\n\r\nexport const Col5: React.FC<ColProps> = ({ children, style }) => {\r\n return <View style={[styles.col, styles.col5, style]}>{children}</View>\r\n}\r\n\r\nexport const Col6: React.FC<ColProps> = ({ children, style }) => {\r\n return <View style={[styles.col, styles.col6, style]}>{children}</View>\r\n}\r\n\r\nexport const Col7: React.FC<ColProps> = ({ children, style }) => {\r\n return <View style={[styles.col, styles.col7, style]}>{children}</View>\r\n}\r\n\r\nexport const Col8: React.FC<ColProps> = ({ children, style }) => {\r\n return <View style={[styles.col, styles.col8, style]}>{children}</View>\r\n}\r\n\r\nexport const Col9: React.FC<ColProps> = ({ children, style }) => {\r\n return <View style={[styles.col, styles.col9, style]}>{children}</View>\r\n}\r\n\r\nexport const Col10: React.FC<ColProps> = ({ children, style }) => {\r\n return <View style={[styles.col, styles.col10, style]}>{children}</View>\r\n}\r\n\r\nexport const Col11: React.FC<ColProps> = ({ children, style }) => {\r\n return <View style={[styles.col, styles.col11, style]}>{children}</View>\r\n}\r\n\r\nexport const Col12: React.FC<ColProps> = ({ children, style }) => {\r\n return <View style={[styles.col, styles.col12, style]}>{children}</View>\r\n}\r\n\r\n","import QRCode from \"qrcode\"\r\n\r\ninterface QROptions {\r\n value: string\r\n size?: number\r\n colorDark?: string\r\n colorLight?: string\r\n margin?: number\r\n logoImage?: string\r\n logoWidth?: number\r\n logoHeight?: number\r\n errorCorrectionLevel?: \"L\" | \"M\" | \"Q\" | \"H\"\r\n}\r\n\r\nexport const generateQRAsBase64 = async ({\r\n value,\r\n size = 150,\r\n colorDark = \"#000000\",\r\n colorLight = \"#ffffff\",\r\n margin = 0,\r\n errorCorrectionLevel = \"M\",\r\n}: QROptions): Promise<string> => {\r\n try {\r\n // Configuración para QRCode\r\n const options = {\r\n errorCorrectionLevel: errorCorrectionLevel,\r\n type: \"image/png\" as const,\r\n quality: 0.92,\r\n margin: margin,\r\n color: {\r\n dark: colorDark,\r\n light: colorLight,\r\n },\r\n width: size,\r\n }\r\n\r\n // Generar el código QR como base64\r\n const qrDataUrl = QRCode.toDataURL(value, options)\r\n return qrDataUrl\r\n } catch (error) {\r\n console.error(\"Error generando QR:\", error)\r\n return \"\"\r\n }\r\n}\r\n\r\n// Función para añadir un logo al QR generado\r\nexport const addLogoToQR = async (\r\n qrDataUrl: string,\r\n logoUrl: string,\r\n logoWidth: number,\r\n logoHeight: number,\r\n): Promise<string> => {\r\n return new Promise(async (resolve) => {\r\n if (!qrDataUrl || !logoUrl) {\r\n resolve(qrDataUrl)\r\n return\r\n }\r\n\r\n try {\r\n const isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';\r\n let canvas: any;\r\n let ctx: any;\r\n let ImageConstructor: any;\r\n\r\n if (isBrowser) {\r\n canvas = document.createElement(\"canvas\")\r\n ctx = canvas.getContext(\"2d\")\r\n ImageConstructor = window.Image;\r\n } else {\r\n // Node environment\r\n try {\r\n // Use dynamic imports to avoid bundling canvas in browser build if possible\r\n // although typically 'canvas' is excluded from browser bundles or shimmed.\r\n const { createCanvas, Image } = await import('canvas');\r\n canvas = createCanvas(100, 100); // Initial size, will be resized\r\n ctx = canvas.getContext(\"2d\");\r\n ImageConstructor = Image;\r\n } catch (e) {\r\n console.error(\"Canvas not available in Node environment for addLogoToQR\", e);\r\n resolve(qrDataUrl);\r\n return;\r\n }\r\n }\r\n\r\n if (!ctx) {\r\n resolve(qrDataUrl)\r\n return\r\n }\r\n\r\n // Cargar la imagen del QR\r\n const qrImage = new ImageConstructor()\r\n // crossOrigin is only needed in browser usually, but node-canvas might support/ignore it\r\n if (isBrowser) qrImage.crossOrigin = \"anonymous\"\r\n \r\n qrImage.onload = () => {\r\n // Establecer el tamaño del canvas\r\n canvas.width = qrImage.width\r\n canvas.height = qrImage.height\r\n\r\n // Dibujar el QR en el canvas\r\n ctx.drawImage(qrImage, 0, 0, canvas.width, canvas.height)\r\n\r\n // Cargar el logo\r\n const logoImage = new ImageConstructor()\r\n if (isBrowser) logoImage.crossOrigin = \"anonymous\"\r\n \r\n logoImage.onload = () => {\r\n // Calcular la posición central para el logo\r\n const x = (canvas.width - logoWidth) / 2\r\n const y = (canvas.height - logoHeight) / 2\r\n\r\n // Dibujar un fondo blanco para el logo (opcional)\r\n ctx.fillStyle = \"#FFFFFF\"\r\n ctx.fillRect(x - 5, y - 5, logoWidth + 10, logoHeight + 10)\r\n\r\n // Dibujar el logo\r\n ctx.drawImage(logoImage, x, y, logoWidth, logoHeight)\r\n\r\n // Convertir el canvas a base64\r\n const finalQrDataUrl = canvas.toDataURL(\"image/png\")\r\n resolve(finalQrDataUrl)\r\n }\r\n\r\n logoImage.onerror = (err: any) => {\r\n console.error(\"Error cargando el logo:\", err)\r\n resolve(qrDataUrl) // Devolver el QR sin logo en caso de error\r\n }\r\n\r\n logoImage.src = logoUrl\r\n }\r\n\r\n qrImage.onerror = (err: any) => {\r\n console.error(\"Error cargando el QR:\", err)\r\n resolve(\"\")\r\n }\r\n\r\n qrImage.src = qrDataUrl\r\n } catch (error) {\r\n console.error(\"Error procesando el QR con logo:\", error)\r\n resolve(qrDataUrl) // Devolver el QR sin logo en caso de error\r\n }\r\n })\r\n}\r\n","\"use client\"\r\n\r\nimport React from \"react\"\r\nimport { Image, StyleSheet, View } from \"@react-pdf/renderer\"\r\nimport { useEffect, useState } from \"react\"\r\nimport { generateQRAsBase64, addLogoToQR } from \"./QRGenerator\"\r\n\r\n// Define the props for the QR component\r\ninterface QRProps {\r\n value: string\r\n size?: number\r\n style?: any\r\n colorDark?: string\r\n colorLight?: string\r\n margin?: number\r\n logo?: string\r\n logoWidth?: number\r\n logoHeight?: number\r\n errorCorrectionLevel?: \"L\" | \"M\" | \"Q\" | \"H\"\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n qrContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n margin: 10,\r\n },\r\n})\r\n\r\n// Mapa para convertir niveles de corrección numéricos a letras\r\nconst errorLevelMap: Record<number, \"L\" | \"M\" | \"Q\" | \"H\"> = {\r\n 0: \"L\",\r\n 1: \"M\",\r\n 2: \"Q\",\r\n 3: \"H\",\r\n}\r\n\r\n// Este componente funciona con React PDF\r\nconst QR: React.FC<QRProps> = ({\r\n value,\r\n size = 150,\r\n style,\r\n colorDark = \"#000000\",\r\n colorLight = \"#ffffff\",\r\n margin = 0,\r\n logo = \"\",\r\n logoWidth = 30,\r\n logoHeight = 30,\r\n errorCorrectionLevel = logo ? \"H\" : \"M\",\r\n}) => {\r\n const [qrDataUrl, setQrDataUrl] = useState<string>(\"\")\r\n\r\n // Generar el código QR cuando el componente se monta o cuando cambian las props\r\n useEffect(() => {\r\n const generateQR = async () => {\r\n try {\r\n // Primero generamos el QR básico\r\n const baseQrDataUrl = await generateQRAsBase64({\r\n value,\r\n size,\r\n colorDark,\r\n colorLight,\r\n margin,\r\n errorCorrectionLevel:\r\n typeof errorCorrectionLevel === \"number\"\r\n ? errorLevelMap[errorCorrectionLevel] || \"M\"\r\n : errorCorrectionLevel,\r\n })\r\n\r\n // Si hay un logo, lo añadimos al QR\r\n if (logo && logoWidth && logoHeight) {\r\n const qrWithLogo = await addLogoToQR(baseQrDataUrl, logo, logoWidth, logoHeight)\r\n setQrDataUrl(qrWithLogo)\r\n } else {\r\n setQrDataUrl(baseQrDataUrl)\r\n }\r\n } catch (error) {\r\n console.error(\"Error generando QR:\", error)\r\n // En caso de error, generamos un QR básico usando una API externa\r\n const fallbackUrl = `https://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(\r\n value,\r\n )}&size=${size}x${size}&color=${encodeURIComponent(colorDark.replace(\"#\", \"\"))}&bgcolor=${encodeURIComponent(\r\n colorLight.replace(\"#\", \"\"),\r\n )}`\r\n setQrDataUrl(fallbackUrl)\r\n }\r\n }\r\n\r\n generateQR()\r\n }, [value, size, colorDark, colorLight, margin, logo, logoWidth, logoHeight, errorCorrectionLevel])\r\n\r\n // Mostrar un QR de respaldo mientras se genera el QR personalizado\r\n const fallbackUrl = `https://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(\r\n value,\r\n )}&size=${size}x${size}`\r\n\r\n return (\r\n <View style={[styles.qrContainer, style]}>\r\n <Image src={qrDataUrl || fallbackUrl} style={{ width: size, height: size }} />\r\n </View>\r\n )\r\n}\r\n\r\nexport default QR\r\n\r\n","import { generateQRAsBase64 } from \"./QRGenerator\"\r\n\r\nexport interface QRV2Options {\r\n value: string\r\n width?: number\r\n height?: number\r\n image?: string\r\n dotsOptions?: {\r\n color?: string\r\n type?: \"rounded\" | \"dots\" | \"classy\" | \"classy-rounded\" | \"square\" | \"extra-rounded\"\r\n }\r\n backgroundOptions?: {\r\n color?: string\r\n }\r\n imageOptions?: {\r\n crossOrigin?: string\r\n margin?: number\r\n imageSize?: number // 0-1 (e.g., 0.4)\r\n }\r\n cornersSquareOptions?: {\r\n type?: \"dot\" | \"square\" | \"extra-rounded\"\r\n color?: string\r\n }\r\n cornersDotOptions?: {\r\n type?: \"dot\" | \"square\"\r\n color?: string\r\n }\r\n // Fallback options\r\n fallbackColorDark?: string\r\n fallbackColorLight?: string\r\n fallbackMargin?: number\r\n fallbackErrorCorrectionLevel?: \"L\" | \"M\" | \"Q\" | \"H\"\r\n}\r\n\r\nexport const generateQRV2AsBase64 = async (options: QRV2Options): Promise<string> => {\r\n try {\r\n const isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';\r\n \r\n let QRCodeStylingConstructor: any;\r\n let extraOptions = {};\r\n\r\n if (isBrowser) {\r\n // Dynamic import for browser\r\n try {\r\n const mod = await import('qr-code-styling');\r\n QRCodeStylingConstructor = mod.default || mod;\r\n } catch (e) {\r\n console.error(\"Failed to load qr-code-styling in browser\", e);\r\n throw e;\r\n }\r\n } else {\r\n // Node environment\r\n // We use variable names to prevent bundlers (like Vite) from analyzing/bundling these dependencies\r\n // when building for the browser.\r\n const jsdomName = \"jsdom\";\r\n const canvasName = \"canvas\";\r\n const qrCommonName = \"qr-code-styling/lib/qr-code-styling.common.js\";\r\n \r\n try {\r\n const [jsdomMod, canvasMod, qrCommonMod] = await Promise.all([\r\n import(/* @vite-ignore */ jsdomName),\r\n import(/* @vite-ignore */ canvasName),\r\n import(/* @vite-ignore */ qrCommonName)\r\n ]);\r\n\r\n const { JSDOM } = jsdomMod;\r\n // canvas might be default export or named export depending on version/bundling\r\n const nodeCanvas = canvasMod.default || canvasMod;\r\n const { QRCodeStyling } = qrCommonMod;\r\n\r\n QRCodeStylingConstructor = QRCodeStyling;\r\n extraOptions = {\r\n jsdom: JSDOM,\r\n nodeCanvas: nodeCanvas\r\n };\r\n } catch (e) {\r\n console.error(\"Failed to load Node dependencies for QR generation\", e);\r\n throw e;\r\n }\r\n }\r\n\r\n const width = typeof options.width === \"number\" && isFinite(options.width) ? Math.round(options.width) : 300;\r\n const height = typeof options.height === \"number\" && isFinite(options.height) ? Math.round(options.height) : 300;\r\n const hasImage = !!options.image;\r\n\r\n const qrOptions = {\r\n width,\r\n height,\r\n data: options.value,\r\n image: options.image,\r\n dotsOptions: options.dotsOptions,\r\n backgroundOptions: {\r\n // Default to white background if not specified to prevent transparency issues\r\n // The \"blue stripe\" or weird artifacts can happen if the background is transparent or handled incorrectly\r\n color: options.backgroundOptions?.color || \"#ffffff\",\r\n ...options.backgroundOptions\r\n },\r\n imageOptions: {\r\n crossOrigin: \"anonymous\",\r\n margin: typeof options.imageOptions?.margin === \"number\" && isFinite(options.imageOptions.margin) ? options.imageOptions.margin : 0,\r\n saveAsBlob: true,\r\n imageSize: typeof options.imageOptions?.imageSize === \"number\" && isFinite(options.imageOptions.imageSize)\r\n ? Math.max(0, Math.min(1, options.imageOptions.imageSize))\r\n : 0.4,\r\n },\r\n cornersSquareOptions: options.cornersSquareOptions,\r\n cornersDotOptions: options.cornersDotOptions,\r\n }\r\n\r\n // @ts-ignore\r\n const qrCodeImage = new QRCodeStylingConstructor({\r\n type: \"png\", // Force PNG type\r\n ...extraOptions,\r\n ...qrOptions,\r\n })\r\n\r\n const rawData = await qrCodeImage.getRawData(\"png\")\r\n \r\n if (!rawData) throw new Error(\"Failed to generate raw data from qr-code-styling\")\r\n\r\n // Handle Blob (Browser) vs Buffer (Node)\r\n if (isBrowser) {\r\n if (rawData instanceof Blob) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onloadend = () => {\r\n if (typeof reader.result === 'string') {\r\n resolve(reader.result);\r\n } else {\r\n reject(new Error(\"Failed to convert blob to base64\"));\r\n }\r\n };\r\n reader.onerror = reject;\r\n reader.readAsDataURL(rawData);\r\n });\r\n } else {\r\n // Sometimes in browser it might return something else if configured differently?\r\n // But usually Blob.\r\n console.warn(\"Unexpected rawData type in browser:\", rawData);\r\n }\r\n } \r\n \r\n // Node environment usually returns Buffer\r\n if (typeof Buffer !== 'undefined' && Buffer.isBuffer(rawData)) {\r\n return `data:image/png;base64,${rawData.toString(\"base64\")}`;\r\n }\r\n \r\n // Fallback if type is unexpected\r\n // Try to handle if it's a blob-like object in Node (unlikely but possible with polyfills)\r\n throw new Error(`Unexpected raw data type: ${typeof rawData}`);\r\n\r\n } catch (error) {\r\n console.error(\"Error generating QR V2, falling back to V1:\", error)\r\n \r\n // Fallback to existing implementation\r\n return generateQRAsBase64({\r\n value: options.value,\r\n size: options.width,\r\n colorDark: options.fallbackColorDark || options.dotsOptions?.color,\r\n colorLight: options.fallbackColorLight || options.backgroundOptions?.color,\r\n margin: options.fallbackMargin || 0,\r\n errorCorrectionLevel: options.fallbackErrorCorrectionLevel || \"M\",\r\n })\r\n }\r\n}\r\n","\"use client\"\r\n\r\nimport React, { useEffect, useState } from \"react\"\r\nimport { Image, StyleSheet, View } from \"@react-pdf/renderer\"\r\nimport { generateQRV2AsBase64, type QRV2Options } from \"./QRGeneratorV2\"\r\n\r\n// Define props\r\nexport interface QRV2Props {\r\n value: string\r\n size?: number\r\n style?: any\r\n image?: string\r\n dotsOptions?: QRV2Options[\"dotsOptions\"]\r\n backgroundOptions?: QRV2Options[\"backgroundOptions\"]\r\n imageOptions?: QRV2Options[\"imageOptions\"]\r\n cornersSquareOptions?: QRV2Options[\"cornersSquareOptions\"]\r\n cornersDotOptions?: QRV2Options[\"cornersDotOptions\"]\r\n // Fallback/Compatibility props\r\n colorDark?: string\r\n colorLight?: string\r\n margin?: number\r\n errorCorrectionLevel?: \"L\" | \"M\" | \"Q\" | \"H\"\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n qrContainer: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n})\r\n\r\nconst QRV2: React.FC<QRV2Props> = ({\r\n value,\r\n size = 300,\r\n style,\r\n image,\r\n dotsOptions,\r\n backgroundOptions,\r\n imageOptions,\r\n cornersSquareOptions,\r\n cornersDotOptions,\r\n colorDark,\r\n colorLight,\r\n margin,\r\n errorCorrectionLevel,\r\n}) => {\r\n const [qrDataUrl, setQrDataUrl] = useState<string>(\"\")\r\n\r\n useEffect(() => {\r\n let isMounted = true;\r\n const generate = async () => {\r\n // Construct options with intelligent defaults/mapping\r\n const finalDotsOptions = dotsOptions || (colorDark ? { color: colorDark } : undefined)\r\n const finalBackgroundOptions = backgroundOptions || (colorLight ? { color: colorLight } : undefined)\r\n \r\n const finalImageOptions = {\r\n ...imageOptions,\r\n margin: imageOptions?.margin !== undefined ? imageOptions.margin : margin\r\n }\r\n\r\n try {\r\n const dataUrl = await generateQRV2AsBase64({\r\n value,\r\n width: size,\r\n height: size,\r\n image,\r\n dotsOptions: finalDotsOptions,\r\n backgroundOptions: finalBackgroundOptions,\r\n imageOptions: finalImageOptions,\r\n cornersSquareOptions,\r\n cornersDotOptions,\r\n fallbackColorDark: colorDark,\r\n fallbackColorLight: colorLight,\r\n fallbackMargin: margin,\r\n fallbackErrorCorrectionLevel: errorCorrectionLevel,\r\n })\r\n \r\n if (isMounted) {\r\n setQrDataUrl(dataUrl)\r\n }\r\n } catch (err) {\r\n console.error(\"QRV2 Generation Error:\", err);\r\n }\r\n }\r\n \r\n // In Node/Server-side rendering context for React-PDF, useEffect might behave differently \r\n // depending on how the document is rendered (e.g., renderToStream, renderToString).\r\n // React-PDF 2.0+ supports useEffect for async operations like loading images.\r\n generate()\r\n \r\n return () => { isMounted = false; }\r\n }, [\r\n value,\r\n size,\r\n image,\r\n // JSON.stringify can be expensive, use simpler dependency tracking if possible or keep as is for deep comparison\r\n JSON.stringify(dotsOptions),\r\n JSON.stringify(backgroundOptions),\r\n JSON.stringify(imageOptions),\r\n JSON.stringify(cornersSquareOptions),\r\n JSON.stringify(cornersDotOptions),\r\n colorDark,\r\n colorLight,\r\n margin,\r\n errorCorrectionLevel,\r\n ])\r\n\r\n // If we don't have a URL yet, we return null.\r\n // This might be the issue in Node if the render happens before the effect completes.\r\n // React-PDF usually waits for images to load, but async state updates might be tricky.\r\n // However, React-PDF renderer waits for all promises in the document to resolve? \r\n // No, it waits for *Image src promises* if src is a promise or URL.\r\n // But here we are setting state asynchronously. \r\n \r\n // CRITICAL FIX: In Node generation, we need to ensure the async operation completes.\r\n // Since we can't easily pause the render until state updates in a standard React functional component\r\n // without Suspense (which React-PDF might not fully support for this case), \r\n // we might need to verify if generateQRV2AsBase64 can be run synchronously or if we are using the component correctly.\r\n \r\n // Actually, for React-PDF in Node, if we use `renderToStream` or `renderToFile`, it renders once.\r\n // `useEffect` does NOT run in the standard `renderToString` / static rendering flow of React usually,\r\n // BUT `@react-pdf/renderer` is special. It does execute hooks in its layout engine?\r\n // \r\n // Wait, standard React SSR does NOT run useEffect. \r\n // If `react-pdf-levelup` uses `@react-pdf/renderer`'s `renderToStream` or `renderToFile` in Node,\r\n // it behaves like SSR. useEffect won't run.\r\n // \r\n // The original QR component (QR.tsx) uses useEffect:\r\n // `useEffect(() => { const generateQR = async () => { ... } ... }, [...])`\r\n // So if the original QR works, then `react-pdf` MUST be supporting useEffect or re-rendering somehow?\r\n //\r\n // Let's check `src/components/core/QR.tsx` again.\r\n // It uses `useEffect` and `useState`.\r\n //\r\n // If the user says \"QR normal (el que ya tenia)\" works, and it uses `useEffect`, \r\n // then maybe the environment where `render` is called is actually supporting it (e.g. client side rendering or some specific react-pdf setup).\r\n //\r\n // HOWEVER, if the user is running `tsx ./src/useExample/index.ts` (implied by \"tengo un template ... en index.ts\"),\r\n // this is a Node process.\r\n // In a pure Node process, `useEffect` usually doesn't run during a single-pass render.\r\n // \r\n // But wait, `QR.tsx` implementation:\r\n // `const [qrDataUrl, setQrDataUrl] = useState<string>(\"\")`\r\n // `useEffect(...)`\r\n // `return <Image src={qrDataUrl || fallbackUrl} ... />`\r\n //\r\n // `fallbackUrl` is set SYNCHRONOUSLY in `QR.tsx`:\r\n // `const fallbackUrl = https://api.qrserver.com/...`\r\n // So `QR.tsx` ALWAYS has a valid `src` (the fallback) on the first render!\r\n // That is why `QR.tsx` works! It renders the fallback URL immediately.\r\n // The `useEffect` might run later or never, but the PDF gets the fallback URL.\r\n //\r\n // My `QRV2` implementation returns `null` or empty string initially:\r\n // `{qrDataUrl ? <Image src={qrDataUrl} ... /> : null}`\r\n // So on first render (SSR/Node), it renders NOTHING.\r\n //\r\n // We need to either:\r\n // 1. Generate the QR synchronously (impossible with qr-code-styling in Node as it's async-ish or we made it async).\r\n // 2. Provide a synchronous fallback.\r\n // 3. Or use a mechanism to suspend rendering (Suspense) - but React-PDF support is limited.\r\n //\r\n // The best bet is to check if we can make `generateQRV2AsBase64` synchronous or if we should provide a fallback.\r\n // But the user wants the custom style.\r\n //\r\n // If `generateQRV2AsBase64` is async, we are stuck in Node unless we use a \"Resource\" pattern that React-PDF can wait on.\r\n // React-PDF `Image` component can accept a Promise as `src`.\r\n //\r\n // Let's try passing the Promise directly to `Image src`!\r\n // `src` prop of `Image` in `@react-pdf/renderer` supports: string | SourceObject | Buffer | Blob | Promise<...>\r\n \r\n return (\r\n <View style={[styles.qrContainer, style]}>\r\n {/* We pass a function that returns the promise/result or use the state if available. \r\n Actually, we can pass the promise directly to src! */}\r\n <Image \r\n style={{ width: size, height: size }} \r\n src={generateQRV2AsBase64({\r\n value,\r\n width: size,\r\n height: size,\r\n image,\r\n dotsOptions: dotsOptions || (colorDark ? { color: colorDark } : undefined),\r\n backgroundOptions: backgroundOptions || (colorLight ? { color: colorLight } : undefined),\r\n imageOptions: {\r\n ...imageOptions,\r\n margin: imageOptions?.margin !== undefined ? imageOptions.margin : margin\r\n },\r\n cornersSquareOptions,\r\n cornersDotOptions,\r\n fallbackColorDark: colorDark,\r\n fallbackColorLight: colorLight,\r\n fallbackMargin: margin,\r\n fallbackErrorCorrectionLevel: errorCorrectionLevel,\r\n })} \r\n />\r\n </View>\r\n )\r\n}\r\n\r\nexport default QRV2\r\n","import React from \"react\"\r\nimport { View, Text, StyleSheet } from \"@react-pdf/renderer\"\r\n\r\ninterface ListProps {\r\n children: React.ReactNode\r\n style?: any\r\n start?: number // Para listas ordenadas, desde qué número empezar\r\n type?: \"disc\" | \"circle\" | \"square\" | \"decimal\" | \"lower-alpha\" | \"upper-alpha\" | \"lower-roman\" | \"upper-roman\"\r\n}\r\n\r\ninterface ListItemProps {\r\n children: React.ReactNode\r\n style?: any\r\n value?: number | string // Valor específico para este elemento de lista\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n ul: {\r\n marginBottom: 10,\r\n paddingLeft: 15,\r\n },\r\n ol: {\r\n marginBottom: 10,\r\n paddingLeft: 15,\r\n },\r\n li: {\r\n marginBottom: 5,\r\n flexDirection: \"row\",\r\n },\r\n bulletPoint: {\r\n width: 15,\r\n marginRight: 5,\r\n fontSize: 12,\r\n },\r\n itemContent: {\r\n flex: 1,\r\n },\r\n})\r\n\r\n// Función para generar marcadores de lista desordenada\r\nconst getBulletPoint = (type = \"disc\") => {\r\n switch (type) {\r\n case \"circle\":\r\n return \"○\"\r\n case \"square\":\r\n return \"■\"\r\n case \"disc\":\r\n default:\r\n return \"•\"\r\n }\r\n}\r\n\r\n// Función para generar marcadores de lista ordenada\r\nconst getOrderedMarker = (index: number, type = \"decimal\", start = 1) => {\r\n const actualIndex = start + index - 1\r\n\r\n switch (type) {\r\n case \"lower-alpha\":\r\n return String.fromCharCode(97 + (actualIndex % 26)) + \".\"\r\n case \"upper-alpha\":\r\n return String.fromCharCode(65 + (actualIndex % 26)) + \".\"\r\n case \"lower-roman\":\r\n return toRoman(actualIndex).toLowerCase() + \".\"\r\n case \"upper-roman\":\r\n return toRoman(actualIndex) + \".\"\r\n case \"decimal\":\r\n default:\r\n return actualIndex + \".\"\r\n }\r\n}\r\n\r\n// Función para convertir números a numerales romanos\r\nconst toRoman = (num: number): string => {\r\n if (num <= 0 || num > 3999) return String(num)\r\n\r\n const romanNumerals = [\r\n [\"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"],\r\n [\"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\"],\r\n [\"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\"],\r\n [\"\", \"M\", \"MM\", \"MMM\"],\r\n ]\r\n\r\n return (\r\n romanNumerals[3][Math.floor(num / 1000)] +\r\n romanNumerals[2][Math.floor((num % 1000) / 100)] +\r\n romanNumerals[1][Math.floor((num % 100) / 10)] +\r\n romanNumerals[0][num % 10]\r\n )\r\n}\r\n\r\n// Componente de lista desordenada (UL)\r\nexport const UL: React.FC<ListProps> = ({ children, style, type = \"disc\" }) => {\r\n // Clonar los hijos para añadir el tipo de marcador\r\n const childrenWithBullets = React.Children.map(children, (child, index) => {\r\n if (React.isValidElement(child)) {\r\n return React.cloneElement(child as React.ReactElement<any>, {\r\n bulletType: type,\r\n isOrdered: false,\r\n index: index + 1,\r\n })\r\n }\r\n return child\r\n })\r\n\r\n return <View style={[styles.ul, style]}>{childrenWithBullets}</View>\r\n}\r\n\r\n// Componente de lista ordenada (OL)\r\nexport const OL: React.FC<ListProps> = ({ children, style, type = \"decimal\", start = 1 }) => {\r\n // Clonar los hijos para añadir el tipo de marcador y el índice\r\n const childrenWithNumbers = React.Children.map(children, (child, index) => {\r\n if (React.isValidElement(child)) {\r\n return React.cloneElement(child as React.ReactElement<any>, {\r\n bulletType: type,\r\n isOrdered: true,\r\n index: index + 1,\r\n start,\r\n })\r\n }\r\n return child\r\n })\r\n\r\n return <View style={[styles.ol, style]}>{childrenWithNumbers}</View>\r\n}\r\n\r\n// Componente de elemento de lista (LI)\r\nexport const LI: React.FC<\r\n ListItemProps & {\r\n bulletType?: string\r\n isOrdered?: boolean\r\n index?: number\r\n start?: number\r\n }\r\n> = ({ children, style, bulletType = \"disc\", isOrdered = false, index = 1, start = 1, value }) => {\r\n // Determinar el marcador a mostrar\r\n let marker\r\n if (isOrdered) {\r\n // Si se proporciona un valor específico, usarlo en lugar del índice\r\n const actualIndex = value !== undefined ? Number(value) : index\r\n marker = getOrderedMarker(actualIndex, bulletType, start)\r\n } else {\r\n marker = getBulletPoint(bulletType)\r\n }\r\n\r\n return (\r\n <View style={[styles.li, style]}>\r\n <Text style={styles.bulletPoint}>{marker}</Text>\r\n <View style={styles.itemContent}>{typeof children === \"string\" ? <Text>{children}</Text> : children}</View>\r\n </View>\r\n )\r\n}\r\n\r\n","import React from \"react\"\r\nimport { Image, StyleSheet, View } from \"@react-pdf/renderer\"\r\n\r\ninterface ImgBgProps {\r\n src: string\r\n width?: number | string\r\n height?: number | string\r\n opacity?: number\r\n children?: React.ReactNode\r\n style?: any\r\n fixed?: boolean\r\n objectFit?: \"cover\" | \"contain\" | \"fill\" | \"none\" | \"scale-down\"\r\n objectPosition?: string // ej: \"center\", \"top\", \"left top\"\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n position: \"relative\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n },\r\n background: {\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n },\r\n content: {\r\n position: \"relative\",\r\n },\r\n})\r\n\r\nconst ImgBg: React.FC<ImgBgProps> = ({\r\n src,\r\n width = \"100%\",\r\n height = \"100%\",\r\n opacity = 0.2,\r\n children,\r\n style,\r\n fixed = false,\r\n objectFit = \"cover\",\r\n objectPosition = \"center\",\r\n}) => {\r\n return (\r\n <View style={[styles.container, style]}>\r\n <Image\r\n src={src}\r\n style={[\r\n styles.background,\r\n { width, height, opacity, objectFit, objectPosition },\r\n ]}\r\n fixed={fixed}\r\n />\r\n <View style={styles.content}>{children}</View>\r\n </View>\r\n )\r\n}\r\n\r\nexport default ImgBg\r\n"]}
package/dist/index.d.cts CHANGED
@@ -1,5 +1,13 @@
1
- import React$1 from 'react';
2
1
  export { Font, StyleSheet, Text, View, renderToStream } from '@react-pdf/renderer';
2
+ import React$1 from 'react';
3
+
4
+ declare const decodeBase64Pdf: (base64: string, fileName: string) => void;
5
+
6
+ interface PDFData {
7
+ template: React.ElementType;
8
+ data?: any;
9
+ }
10
+ declare const generatePDF: ({ template: Template, data }: PDFData) => Promise<string>;
3
11
 
4
12
  interface LayoutPDFProps {
5
13
  children: React$1.ReactNode;
@@ -9,7 +17,7 @@ interface LayoutPDFProps {
9
17
  padding?: number;
10
18
  margen?: "apa" | "normal" | "estrecho" | "ancho";
11
19
  style?: any;
12
- pagination: boolean;
20
+ pagination?: boolean;
13
21
  footer?: React$1.ReactNode;
14
22
  lines?: number;
15
23
  rule?: boolean;
@@ -140,6 +148,54 @@ interface QRProps {
140
148
  }
141
149
  declare const QR: React$1.FC<QRProps>;
142
150
 
151
+ interface QRV2Options {
152
+ value: string;
153
+ width?: number;
154
+ height?: number;
155
+ image?: string;
156
+ dotsOptions?: {
157
+ color?: string;
158
+ type?: "rounded" | "dots" | "classy" | "classy-rounded" | "square" | "extra-rounded";
159
+ };
160
+ backgroundOptions?: {
161
+ color?: string;
162
+ };
163
+ imageOptions?: {
164
+ crossOrigin?: string;
165
+ margin?: number;
166
+ imageSize?: number;
167
+ };
168
+ cornersSquareOptions?: {
169
+ type?: "dot" | "square" | "extra-rounded";
170
+ color?: string;
171
+ };
172
+ cornersDotOptions?: {
173
+ type?: "dot" | "square";
174
+ color?: string;
175
+ };
176
+ fallbackColorDark?: string;
177
+ fallbackColorLight?: string;
178
+ fallbackMargin?: number;
179
+ fallbackErrorCorrectionLevel?: "L" | "M" | "Q" | "H";
180
+ }
181
+
182
+ interface QRV2Props {
183
+ value: string;
184
+ size?: number;
185
+ style?: any;
186
+ image?: string;
187
+ dotsOptions?: QRV2Options["dotsOptions"];
188
+ backgroundOptions?: QRV2Options["backgroundOptions"];
189
+ imageOptions?: QRV2Options["imageOptions"];
190
+ cornersSquareOptions?: QRV2Options["cornersSquareOptions"];
191
+ cornersDotOptions?: QRV2Options["cornersDotOptions"];
192
+ colorDark?: string;
193
+ colorLight?: string;
194
+ margin?: number;
195
+ errorCorrectionLevel?: "L" | "M" | "Q" | "H";
196
+ }
197
+ declare const QRV2: React$1.FC<QRV2Props>;
198
+
143
199
  interface ListProps {
144
200
  children: React$1.ReactNode;
145
201
  style?: any;
@@ -160,14 +216,6 @@ declare const LI: React$1.FC<ListItemProps & {
160
216
  start?: number;
161
217
  }>;
162
218
 
163
- declare const decodeBase64Pdf: (base64: string, fileName: string) => void;
164
-
165
- interface PDFData {
166
- template: React.ElementType;
167
- data?: any;
168
- }
169
- declare const generatePDF: ({ template: Template, data }: PDFData) => Promise<string>;
170
-
171
219
  interface ImgBgProps {
172
220
  src: string;
173
221
  width?: number | string;
@@ -181,4 +229,4 @@ interface ImgBgProps {
181
229
  }
182
230
  declare const ImgBg: React$1.FC<ImgBgProps>;
183
231
 
184
- export { A, BR, Blockquote, Center, Col1, Col10, Col11, Col12, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Container, Div, Em, H1, H2, H3, H4, H5, H6, HR, Header, Img, ImgBg, LI, LayoutPDF, Left, Mark, OL, P, QR, Right, Row, Small, Span, Strong, Table, Tbody, Td, Th, Thead, Tr, U, UL, decodeBase64Pdf, generatePDF };
232
+ export { A, BR, Blockquote, Center, Col1, Col10, Col11, Col12, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Container, Div, Em, H1, H2, H3, H4, H5, H6, HR, Header, Img, ImgBg, LI, LayoutPDF, Left, Mark, OL, P, QR, QRV2, Right, Row, Small, Span, Strong, Table, Tbody, Td, Th, Thead, Tr, U, UL, decodeBase64Pdf, generatePDF };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,13 @@
1
- import React$1 from 'react';
2
1
  export { Font, StyleSheet, Text, View, renderToStream } from '@react-pdf/renderer';
2
+ import React$1 from 'react';
3
+
4
+ declare const decodeBase64Pdf: (base64: string, fileName: string) => void;
5
+
6
+ interface PDFData {
7
+ template: React.ElementType;
8
+ data?: any;
9
+ }
10
+ declare const generatePDF: ({ template: Template, data }: PDFData) => Promise<string>;
3
11
 
4
12
  interface LayoutPDFProps {
5
13
  children: React$1.ReactNode;
@@ -9,7 +17,7 @@ interface LayoutPDFProps {
9
17
  padding?: number;
10
18
  margen?: "apa" | "normal" | "estrecho" | "ancho";
11
19
  style?: any;
12
- pagination: boolean;
20
+ pagination?: boolean;
13
21
  footer?: React$1.ReactNode;
14
22
  lines?: number;
15
23
  rule?: boolean;
@@ -140,6 +148,54 @@ interface QRProps {
140
148
  }
141
149
  declare const QR: React$1.FC<QRProps>;
142
150
 
151
+ interface QRV2Options {
152
+ value: string;
153
+ width?: number;
154
+ height?: number;
155
+ image?: string;
156
+ dotsOptions?: {
157
+ color?: string;
158
+ type?: "rounded" | "dots" | "classy" | "classy-rounded" | "square" | "extra-rounded";
159
+ };
160
+ backgroundOptions?: {
161
+ color?: string;
162
+ };
163
+ imageOptions?: {
164
+ crossOrigin?: string;
165
+ margin?: number;
166
+ imageSize?: number;
167
+ };
168
+ cornersSquareOptions?: {
169
+ type?: "dot" | "square" | "extra-rounded";
170
+ color?: string;
171
+ };
172
+ cornersDotOptions?: {
173
+ type?: "dot" | "square";
174
+ color?: string;
175
+ };
176
+ fallbackColorDark?: string;
177
+ fallbackColorLight?: string;
178
+ fallbackMargin?: number;
179
+ fallbackErrorCorrectionLevel?: "L" | "M" | "Q" | "H";
180
+ }
181
+
182
+ interface QRV2Props {
183
+ value: string;
184
+ size?: number;
185
+ style?: any;
186
+ image?: string;
187
+ dotsOptions?: QRV2Options["dotsOptions"];
188
+ backgroundOptions?: QRV2Options["backgroundOptions"];
189
+ imageOptions?: QRV2Options["imageOptions"];
190
+ cornersSquareOptions?: QRV2Options["cornersSquareOptions"];
191
+ cornersDotOptions?: QRV2Options["cornersDotOptions"];
192
+ colorDark?: string;
193
+ colorLight?: string;
194
+ margin?: number;
195
+ errorCorrectionLevel?: "L" | "M" | "Q" | "H";
196
+ }
197
+ declare const QRV2: React$1.FC<QRV2Props>;
198
+
143
199
  interface ListProps {
144
200
  children: React$1.ReactNode;
145
201
  style?: any;
@@ -160,14 +216,6 @@ declare const LI: React$1.FC<ListItemProps & {
160
216
  start?: number;
161
217
  }>;
162
218
 
163
- declare const decodeBase64Pdf: (base64: string, fileName: string) => void;
164
-
165
- interface PDFData {
166
- template: React.ElementType;
167
- data?: any;
168
- }
169
- declare const generatePDF: ({ template: Template, data }: PDFData) => Promise<string>;
170
-
171
219
  interface ImgBgProps {
172
220
  src: string;
173
221
  width?: number | string;
@@ -181,4 +229,4 @@ interface ImgBgProps {
181
229
  }
182
230
  declare const ImgBg: React$1.FC<ImgBgProps>;
183
231
 
184
- export { A, BR, Blockquote, Center, Col1, Col10, Col11, Col12, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Container, Div, Em, H1, H2, H3, H4, H5, H6, HR, Header, Img, ImgBg, LI, LayoutPDF, Left, Mark, OL, P, QR, Right, Row, Small, Span, Strong, Table, Tbody, Td, Th, Thead, Tr, U, UL, decodeBase64Pdf, generatePDF };
232
+ export { A, BR, Blockquote, Center, Col1, Col10, Col11, Col12, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Container, Div, Em, H1, H2, H3, H4, H5, H6, HR, Header, Img, ImgBg, LI, LayoutPDF, Left, Mark, OL, P, QR, QRV2, Right, Row, Small, Span, Strong, Table, Tbody, Td, Th, Thead, Tr, U, UL, decodeBase64Pdf, generatePDF };