react-pdf-levelup 3.2.8 → 3.3.1

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/README.md CHANGED
@@ -2,11 +2,17 @@
2
2
  <img src="https://genarogg.github.io/media/react-pdf-levelup/logo-de-react-pdf-levelup.png" alt="react-pdf-levelup logo" width="160" />
3
3
  </p>
4
4
 
5
+ <h4>
6
+ <strong>📢 Esta librería ha cambiado de nombre a <a href="https://www.npmjs.com/package/@react-pdf-levelup/core">@react-pdf-levelup/core</a> 📢</strong>
7
+ </h4>
8
+
9
+
5
10
  # react-pdf-levelup
6
11
 
7
12
  Generador de PDFs dinámicos con React. Esta herramienta te permite crear plantillas PDF con componentes JSX personalizados y previsualizarlas en tiempo real dentro de una aplicación web. Ideal para etiquetas, facturas, reportes, certificados, tablas y más.
8
13
 
9
- # 🌐 **Playground en vivo:**
14
+ # 🌐 **Playground en vivo:**
15
+
10
16
  [https://react-pdf-levelup.nimbux.cloud](https://react-pdf-levelup.nimbux.cloud)
11
17
  or
12
18
  [https://react-pdf-levelup.nimbux.cloud](https://react-pdf-levelup.nimbux.cloud)
@@ -34,18 +40,19 @@ npm install react-pdf-levelup
34
40
  Genera un PDF en formato base64 a partir de un componente de React.
35
41
 
36
42
  ```typescript
37
- import { generatePDF } from 'react-pdf-levelup';
43
+ import { generatePDF } from "react-pdf-levelup";
38
44
 
39
45
  const pdfBase64 = await generatePDF({
40
46
  template: MyPDFTemplate,
41
47
  data: {
42
- title: 'Mi Documento',
43
- items: ['Item 1', 'Item 2', 'Item 3']
44
- }
48
+ title: "Mi Documento",
49
+ items: ["Item 1", "Item 2", "Item 3"],
50
+ },
45
51
  });
46
52
  ```
47
53
 
48
54
  **Parámetros:**
55
+
49
56
  - `template`: Componente de React que define la estructura del PDF
50
57
  - `data`: Datos opcionales que se pasarán al template
51
58
 
@@ -56,20 +63,22 @@ const pdfBase64 = await generatePDF({
56
63
  Decodifica un PDF en base64 y permite descargarlo o abrirlo en una nueva pestaña.
57
64
 
58
65
  ```typescript
59
- import { decodeBase64Pdf } from 'react-pdf-levelup';
66
+ import { decodeBase64Pdf } from "react-pdf-levelup";
60
67
 
61
68
  // Después de generar el PDF
62
69
  const pdfBase64 = await generatePDF({ template: MyTemplate });
63
70
 
64
71
  // Descargar y abrir el PDF
65
- decodeBase64Pdf(pdfBase64, 'mi-documento.pdf');
72
+ decodeBase64Pdf(pdfBase64, "mi-documento.pdf");
66
73
  ```
67
74
 
68
75
  **Parámetros:**
76
+
69
77
  - `base64`: String del PDF en formato base64
70
78
  - `fileName`: Nombre del archivo para la descarga
71
79
 
72
80
  **Funcionalidad:**
81
+
73
82
  - Descarga automática del archivo PDF
74
83
  - Abre el PDF en una nueva pestaña del navegador
75
84
  - Limpia automáticamente los recursos de memoria
@@ -138,10 +147,10 @@ const handleGeneratePDF = async () => {
138
147
  ]
139
148
  }
140
149
  });
141
-
150
+
142
151
  // Descargar y abrir el PDF
143
152
  decodeBase64Pdf(pdfBase64, 'lista-tareas.pdf');
144
-
153
+
145
154
  } catch (error) {
146
155
  console.error('Error generando PDF:', error);
147
156
  }
@@ -175,12 +184,12 @@ const InvoiceTemplate = ({ data }) => (
175
184
  <Text style={styles.companyName}>{data.company}</Text>
176
185
  <Text>Factura #{data.invoiceNumber}</Text>
177
186
  </View>
178
-
187
+
179
188
  <View style={styles.customerInfo}>
180
189
  <Text>Cliente: {data.customer.name}</Text>
181
190
  <Text>Email: {data.customer.email}</Text>
182
191
  </View>
183
-
192
+
184
193
  <View style={styles.itemsTable}>
185
194
  {data.items.map((item, index) => (
186
195
  <View key={index} style={styles.tableRow}>
@@ -190,7 +199,7 @@ const InvoiceTemplate = ({ data }) => (
190
199
  </View>
191
200
  ))}
192
201
  </View>
193
-
202
+
194
203
  <View style={styles.total}>
195
204
  <Text>Total: ${data.total}</Text>
196
205
  </View>
@@ -208,16 +217,15 @@ const handlePDFGeneration = async () => {
208
217
  try {
209
218
  const pdfBase64 = await generatePDF({
210
219
  template: MyTemplate,
211
- data: myData
220
+ data: myData,
212
221
  });
213
-
214
- decodeBase64Pdf(pdfBase64, 'documento.pdf');
215
-
222
+
223
+ decodeBase64Pdf(pdfBase64, "documento.pdf");
216
224
  } catch (error) {
217
- if (error.message.includes('Template not provided')) {
218
- console.error('Error: No se proporcionó un template válido');
225
+ if (error.message.includes("Template not provided")) {
226
+ console.error("Error: No se proporcionó un template válido");
219
227
  } else {
220
- console.error('Error inesperado:', error.message);
228
+ console.error("Error inesperado:", error.message);
221
229
  }
222
230
  }
223
231
  };
@@ -229,11 +237,11 @@ const handlePDFGeneration = async () => {
229
237
  const generatePDFOnly = async () => {
230
238
  const pdfBase64 = await generatePDF({
231
239
  template: MyTemplate,
232
- data: myData
240
+ data: myData,
233
241
  });
234
-
242
+
235
243
  // Usar el base64 para otros propósitos (envío por API, almacenamiento, etc.)
236
- console.log('PDF generado:', pdfBase64);
244
+ console.log("PDF generado:", pdfBase64);
237
245
  return pdfBase64;
238
246
  };
239
247
  ```
@@ -241,6 +249,7 @@ const generatePDFOnly = async () => {
241
249
  ## 🛠 Dependencias
242
250
 
243
251
  Esta librería utiliza internamente:
252
+
244
253
  - `@react-pdf/renderer` - Para la generación de PDFs
245
254
  - `react` - Para los componentes JSX
246
255
 
@@ -299,7 +308,13 @@ import path from "path";
299
308
  type ApiResponse = { data?: { pdf?: string } };
300
309
  const ENDPOINT_API = "https://react-pdf-levelup.nimbux.cloud/api";
301
310
 
302
- const petition = async ({ template, data }: { template: string, data: any }): Promise<string> => {
311
+ const petition = async ({
312
+ template,
313
+ data,
314
+ }: {
315
+ template: string;
316
+ data: any;
317
+ }): Promise<string> => {
303
318
  const templatePath = path.join(process.cwd(), "src", "useExample", template);
304
319
  const tsxCode = fs.readFileSync(templatePath, "utf-8");
305
320
  const templateBase64 = Buffer.from(tsxCode, "utf-8").toString("base64");
@@ -309,17 +324,18 @@ const petition = async ({ template, data }: { template: string, data: any }): Pr
309
324
  headers: { "Content-Type": "application/json" },
310
325
  body: JSON.stringify({ template: templateBase64, data }),
311
326
  });
312
- if (!res.ok) throw new Error(`API error (${res.status}): ${await res.text()}`);
313
- const json = await res.json() as ApiResponse;
327
+ if (!res.ok)
328
+ throw new Error(`API error (${res.status}): ${await res.text()}`);
329
+ const json = (await res.json()) as ApiResponse;
314
330
  return json?.data?.pdf ?? "";
315
- }
331
+ };
316
332
 
317
333
  const savePDF = (base64: string) => {
318
334
  const buffer = Buffer.from(base64, "base64");
319
335
  const outputPath = path.join(process.cwd(), "example.pdf");
320
336
  fs.writeFileSync(outputPath, buffer);
321
337
  console.log("PDF guardado:", outputPath);
322
- }
338
+ };
323
339
  ```
324
340
 
325
341
  ### Self‑hosting propio
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- 'use strict';var renderer=require('@react-pdf/renderer'),O=require('react'),jsxRuntime=require('react/jsx-runtime'),Dt=require('qrcode');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var O__default=/*#__PURE__*/_interopDefault(O);var Dt__default=/*#__PURE__*/_interopDefault(Dt);var ht=(e,t)=>{let o=atob(e),n=new Array(o.length);for(let a=0;a<o.length;a++)n[a]=o.charCodeAt(a);let i=new Uint8Array(n),s=new Blob([i],{type:"application/pdf"}),r=URL.createObjectURL(s);if(document===void 0){console.error("document is undefined, only works in browser context");return}let l=document.createElement("a");l.href=r,l.download=t,document.body.appendChild(l),l.click(),document.body.removeChild(l),window.open(r,"_blank"),setTimeout(()=>{URL.revokeObjectURL(r);},100);},X=ht;var yt=async({template:e,data:t})=>{try{if(!e)throw new Error("Template not provided");let o=O.createElement(e,{data:t}),n=await renderer.renderToStream(o);return await new Promise((s,r)=>{let l=[];n.on("data",a=>l.push(a)),n.on("end",()=>s(Buffer.concat(l).toString("base64"))),n.on("error",a=>r(a));})}catch(o){throw new Error("Error generating PDF: "+(o instanceof Error?o.message:"Unknown error"))}},G=yt;var re=renderer.StyleSheet.create({page:{backgroundColor:"white",padding:30,fontFamily:"Helvetica",fontSize:14},footer:{position:"absolute",left:0,right:0,textAlign:"center"}}),xt=({children:e,size:t="A4",orientation:o="vertical",backgroundColor:n="white",padding:i=30,margen:s="normal",style:r={},pagination:l=true,footer:a,lines:c=a?2:1,rule:d=false})=>{let x=c*20+10,L=(h,P)=>{let w=P.toUpperCase();switch(h){case "apa":return w==="LETTER"||w==="LEGAL"?{paddingTop:72,paddingRight:72,paddingBottom:72,paddingLeft:72}:{paddingTop:72,paddingRight:72,paddingBottom:72,paddingLeft:72};case "estrecho":return {paddingTop:36,paddingRight:36,paddingBottom:36,paddingLeft:36};case "ancho":return {paddingTop:108,paddingRight:108,paddingBottom:108,paddingLeft:108};default:return {paddingTop:i,paddingRight:i,paddingBottom:i,paddingLeft:i}}},T=t,V=o,M=n,te=s;try{typeof t=="string"&&!["A0","A1","A2","A3","A4","A5","A6","A7","A8","A9","LETTER","LEGAL","TABLOID"].includes(t.toUpperCase())&&(console.warn(`Invalid page size: ${t}. Using A4 as default.`),T="A4");let P=["vertical","horizontal","portrait","landscape","h","v"],w=typeof o=="string"?o.toLowerCase():"vertical";P.includes(w)?V=o:(console.warn(`Invalid orientation: ${o}. Using vertical as default.`),V="vertical"),typeof n!="string"&&(console.warn(`Invalid background color: ${n}. Using white as default.`),M="white"),["apa","normal","estrecho","ancho"].includes(s)||(console.warn(`Invalid margin type: ${s}. Using normal as default.`),te="normal"),(typeof c!="number"||c<1)&&console.warn(`Invalid lines value: ${c}. Using 1 as default.`);}catch(h){console.warn("Error processing props in LayoutPDF:",h);}let ct=h=>{switch(h){case "vertical":case "portrait":case "v":return "portrait";case "horizontal":case "landscape":case "h":return "landscape";default:return console.warn(`Unrecognized orientation: ${h}. Using portrait as default.`),"portrait"}},dt=(h,P,w)=>{let v={A0:{width:841,height:1189},A1:{width:594,height:841},A2:{width:420,height:594},A3:{width:297,height:420},A4:{width:210,height:297},A5:{width:148,height:210},A6:{width:105,height:148},A7:{width:74,height:105},A8:{width:52,height:74},A9:{width:37,height:52},LETTER:{width:216,height:279},LEGAL:{width:216,height:356},TABLOID:{width:279,height:432}},I=2.834645669,A=v[h.toUpperCase()];if(!A)return P==="landscape"?595-w-10:842-w-10;let q=A.height*I,C=A.width*I;return P==="landscape"?C-w-10:q-w-10},z=ct(V),U=L(te,T),gt=dt(T,z,x),pt=()=>{if(!d)return null;let h=28.3465,P={A0:{width:841*2.834645669,height:1189*2.834645669},A1:{width:594*2.834645669,height:841*2.834645669},A2:{width:420*2.834645669,height:594*2.834645669},A3:{width:297*2.834645669,height:420*2.834645669},A4:{width:210*2.834645669,height:297*2.834645669},A5:{width:148*2.834645669,height:210*2.834645669},A6:{width:105*2.834645669,height:148*2.834645669},A7:{width:74*2.834645669,height:105*2.834645669},A8:{width:52*2.834645669,height:74*2.834645669},A9:{width:37*2.834645669,height:52*2.834645669},LETTER:{width:216*2.834645669,height:279*2.834645669},LEGAL:{width:216*2.834645669,height:356*2.834645669},TABLOID:{width:279*2.834645669,height:432*2.834645669}},w=P[T.toUpperCase()]||P.A4,v=z==="landscape"?w.height:w.width,I=z==="landscape"?w.width:w.height,A=[],q=[];for(let C=0;C<=Math.ceil(I/h);C++)A.push(jsxRuntime.jsx(renderer.View,{style:{position:"absolute",top:C*h,left:0,right:0,height:C%5===0?1:.5,backgroundColor:C%5===0?"rgba(255, 0, 0, 0.8)":"rgba(100, 100, 100, 0.5)"}},`h-${C}`));for(let C=0;C<=Math.ceil(v/h);C++)q.push(jsxRuntime.jsx(renderer.View,{style:{position:"absolute",left:C*h,top:0,bottom:0,width:C%5===0?1:.5,backgroundColor:C%5===0?"rgba(255, 0, 0, 0.8)":"rgba(100, 100, 100, 0.5)"}},`v-${C}`));return jsxRuntime.jsxs(renderer.View,{style:{position:"absolute",top:0,left:0,right:0,bottom:0},fixed:true,children:[A,q]})},mt={...re.page,backgroundColor:M,paddingTop:r?.paddingTop??r?.padding??U.paddingTop,paddingRight:r?.paddingRight??r?.padding??U.paddingRight,paddingLeft:r?.paddingLeft??r?.padding??U.paddingLeft,paddingBottom:(r?.paddingBottom??r?.padding??U.paddingBottom)+x,...(()=>{let{padding:h,paddingTop:P,paddingRight:w,paddingBottom:v,paddingLeft:I,...A}=r||{};return A})()},oe={...re.footer,top:gt,height:x,display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",fontSize:10,color:"grey"};return jsxRuntime.jsx(renderer.Document,{children:jsxRuntime.jsxs(renderer.Page,{size:T,orientation:z,style:mt,wrap:true,children:[pt(),jsxRuntime.jsx(renderer.View,{style:{paddingBottom:x},children:e}),jsxRuntime.jsxs(renderer.View,{style:oe,fixed:true,children:[a&&a,l&&jsxRuntime.jsx(renderer.Text,{style:{fontSize:oe.fontSize},render:({pageNumber:h,totalPages:P})=>`${h} / ${P}`})]})]})})},ne=xt;var Lt=renderer.StyleSheet.create({image:{width:"100%",height:"auto",marginBottom:14}}),Ft=({src:e,style:t})=>jsxRuntime.jsx(renderer.Image,{src:e,style:[Lt.image,t]}),ie=Ft;var J=renderer.StyleSheet.create({left:{textAlign:"left"},right:{textAlign:"right"},center:{textAlign:"center"}}),ae=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[J.left,t],children:e}),se=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[J.right,t],children:e}),le=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[J.center,t],children:e});var f=renderer.StyleSheet.create({p:{fontSize:12,marginBottom:5,lineHeight:1.2},h1:{fontSize:24,fontWeight:"bold",marginBottom:12},h2:{fontSize:20,fontWeight:"bold",marginBottom:10},h3:{fontSize:18,fontWeight:"bold",marginBottom:8},h4:{fontSize:16,fontWeight:"bold",marginBottom:6},h5:{fontSize:14,fontWeight:"bold",marginBottom:4},h6:{fontSize:12,fontWeight:"bold",marginBottom:0},strong:{fontWeight:"bold"},em:{fontStyle:"italic"},u:{textDecoration:"underline"},small:{fontSize:10},blockquote:{marginLeft:20,marginRight:20,fontStyle:"italic",borderLeft:"4px solid #ccc",paddingLeft:10},mark:{backgroundColor:"yellow"},A:{color:"#3d65fd",textDecoration:"none"},br:{width:"100%",height:1,marginTop:7,marginBottom:7},header:{position:"absolute",top:20,left:0,right:0,textAlign:"center",fontSize:10,color:"#666",paddingHorizontal:40},hr:{width:"100%",borderTop:"1px solid #000",marginTop:8,marginBottom:8}}),ce=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.p,t],children:e}),de=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h1,t],children:e}),ge=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h2,t],children:e}),pe=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h3,t],children:e}),me=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h4,t],children:e}),he=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h5,t],children:e}),fe=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h6,t],children:e}),ue=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.strong,t],children:e}),ye=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.em,t],children:e}),we=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.u,t],children:e}),Ce=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.small,t],children:e}),Re=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.blockquote,t],children:e}),be=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.mark,t],children:e}),xe=({children:e,style:t,href:o})=>jsxRuntime.jsx(renderer.Link,{src:o,style:[f.A,t],children:e}),Pe=({style:e})=>jsxRuntime.jsx(renderer.Text,{style:[f.br,e],children:`
2
- `}),Te=({style:e})=>jsxRuntime.jsx(renderer.View,{style:[f.hr,e]}),Le=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[t],children:e}),Fe=({children:e,style:t,fixed:o=false})=>jsxRuntime.jsx(renderer.View,{style:[f.header,t],fixed:o,children:typeof e=="string"?jsxRuntime.jsx(renderer.Text,{children:e}):e}),Ae=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:t,children:e});var D=O.createContext({cellHeight:22,textAlign:"left"}),S=renderer.StyleSheet.create({table:{width:"100%",borderWidth:1,borderColor:"#000",marginBottom:20},thead:{backgroundColor:"#ccc"},tr:{flexDirection:"row"},textBold:{fontSize:10,fontFamily:"Helvetica",fontWeight:"bold",paddingLeft:8,paddingRight:8,justifyContent:"center"},text:{fontSize:10,fontFamily:"Helvetica",paddingLeft:8,paddingRight:8,justifyContent:"center"},zebraOdd:{backgroundColor:"#eeeeee"}}),Oe=({children:e,style:t,cellHeight:o=22})=>jsxRuntime.jsx(D.Provider,{value:{cellHeight:o,textAlign:"left"},children:jsxRuntime.jsx(renderer.View,{style:[S.table,t],children:e})}),Ve=({children:e,style:t,textAlign:o="left"})=>{let{cellHeight:n}=O.useContext(D);return jsxRuntime.jsx(D.Provider,{value:{cellHeight:n,textAlign:o},children:jsxRuntime.jsx(renderer.View,{style:[S.thead,t],children:e})})},ve=({children:e})=>{let t=O__default.default.Children.toArray(e),o=t.length;return jsxRuntime.jsx(jsxRuntime.Fragment,{children:t.map((n,i)=>O__default.default.cloneElement(n,{isLastRow:i===o-1,isOdd:i%2===1}))})},Ie=({children:e,style:t,isLastRow:o=false,isOdd:n=false})=>{let i=O__default.default.Children.toArray(e),s=i.length;return jsxRuntime.jsx(renderer.View,{style:[S.tr,t],children:i.map((r,l)=>{let a=l===s-1,c=`${(100/s).toFixed(2)}%`;return O__default.default.cloneElement(r,{width:c,isLast:a,isLastRow:o,isOdd:n})})})},Be=({children:e,style:t,width:o,height:n,colSpan:i,isLast:s=false,isLastRow:r=false,textAlign:l})=>{let{cellHeight:a,textAlign:c}=O.useContext(D),d=l||c||"left",g=typeof o=="string"&&i?`${(parseFloat(o)*i).toFixed(2)}%`:o,x={borderRightWidth:s?0:1,borderBottomWidth:r?0:1,borderColor:"#000",minHeight:n!==void 0?n:a};return jsxRuntime.jsx(renderer.View,{style:[S.textBold,{width:g},x,t],children:jsxRuntime.jsx(renderer.Text,{style:{textAlign:d},children:e})})},ke=({children:e,style:t,width:o,height:n,colSpan:i,isLast:s=false,isLastRow:r=false,isOdd:l=false,textAlign:a})=>{let{cellHeight:c,textAlign:d}=O.useContext(D),g=a||d||"left",y=typeof o=="string"&&i?`${(parseFloat(o)*i).toFixed(2)}%`:o,L={borderRightWidth:s?0:1,borderBottomWidth:r?0:1,borderColor:"#000",minHeight:n!==void 0?n:c};return jsxRuntime.jsx(renderer.View,{style:[S.text,l&&S.zebraOdd,{width:y},L,t],children:jsxRuntime.jsx(renderer.Text,{style:{textAlign:g},children:e})})};var p=renderer.StyleSheet.create({container:{width:"100%",paddingHorizontal:20},row:{flexDirection:"row",flexWrap:"wrap",marginHorizontal:-5},col:{paddingHorizontal:5},col1:{width:"8.33%"},col2:{width:"16.66%"},col3:{width:"25%"},col4:{width:"33.33%"},col5:{width:"41.66%"},col6:{width:"50%"},col7:{width:"58.33%"},col8:{width:"66.66%"},col9:{width:"75%"},col10:{width:"83.33%"},col11:{width:"91.66%"},col12:{width:"100%"}}),De=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.container,t],children:e}),He=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.row,t],children:e}),Ee=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col1,t],children:e}),Qe=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col2,t],children:e}),Me=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col3,t],children:e}),ze=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col4,t],children:e}),Ue=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col5,t],children:e}),qe=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col6,t],children:e}),Ne=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col7,t],children:e}),$e=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col8,t],children:e}),We=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col9,t],children:e}),Xe=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col10,t],children:e}),Ge=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col11,t],children:e}),_e=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col12,t],children:e});var $=async({value:e,size:t=150,colorDark:o="#000000",colorLight:n="#ffffff",margin:i=0,errorCorrectionLevel:s="M"})=>{try{let r={errorCorrectionLevel:s,type:"image/png",quality:.92,margin:i,color:{dark:o,light:n},width:t};return Dt__default.default.toDataURL(e,r)}catch(r){return console.error("Error generando QR:",r),""}},je=async(e,t,o,n)=>new Promise(async i=>{if(!e||!t){i(e);return}try{let s=typeof window<"u"&&typeof window.document<"u",r,l,a;if(s)r=document.createElement("canvas"),l=r.getContext("2d"),a=window.Image;else try{let{createCanvas:d,Image:g}=await import('canvas');r=d(100,100),l=r.getContext("2d"),a=g;}catch(d){console.error("Canvas not available in Node environment for addLogoToQR",d),i(e);return}if(!l){i(e);return}let c=new a;s&&(c.crossOrigin="anonymous"),c.onload=()=>{r.width=c.width,r.height=c.height,l.drawImage(c,0,0,r.width,r.height);let d=new a;s&&(d.crossOrigin="anonymous"),d.onload=()=>{let g=(r.width-o)/2,y=(r.height-n)/2;l.fillStyle="#FFFFFF",l.fillRect(g-5,y-5,o+10,n+10),l.drawImage(d,g,y,o,n);let x=r.toDataURL("image/png");i(x);},d.onerror=g=>{console.error("Error cargando el logo:",g),i(e);},d.src=t;},c.onerror=d=>{console.error("Error cargando el QR:",d),i("");},c.src=e;}catch(s){console.error("Error procesando el QR con logo:",s),i(e);}});var Ut=renderer.StyleSheet.create({qrContainer:{display:"flex",alignItems:"center",justifyContent:"center",margin:10}}),qt={0:"L",1:"M",2:"Q",3:"H"},Nt=({value:e,size:t=150,style:o,colorDark:n="#000000",colorLight:i="#ffffff",margin:s=0,logo:r="",logoWidth:l=30,logoHeight:a=30,errorCorrectionLevel:c=r?"H":"M"})=>{let[d,g]=O.useState("");O.useEffect(()=>{(async()=>{try{let L=await $({value:e,size:t,colorDark:n,colorLight:i,margin:s,errorCorrectionLevel:typeof c=="number"?qt[c]||"M":c});if(r&&l&&a){let T=await je(L,r,l,a);g(T);}else g(L);}catch(L){console.error("Error generando QR:",L);let T=`https://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(e)}&size=${t}x${t}&color=${encodeURIComponent(n.replace("#",""))}&bgcolor=${encodeURIComponent(i.replace("#",""))}`;g(T);}})();},[e,t,n,i,s,r,l,a,c]);let y=`https://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(e)}&size=${t}x${t}`;return jsxRuntime.jsx(renderer.View,{style:[Ut.qrContainer,o],children:jsxRuntime.jsx(renderer.Image,{src:d||y,style:{width:t,height:t}})})},Ke=Nt;var Ye=async e=>{try{let t=typeof window<"u"&&typeof window.document<"u",o,n={};if(t)try{let c=await import('qr-code-styling');o=c.default||c;}catch(c){throw console.error("Failed to load qr-code-styling in browser",c),c}else {let c="jsdom",d="canvas",g="qr-code-styling/lib/qr-code-styling.common.js";try{let[y,x,L]=await Promise.all([import(c),import(d),import(g)]),{JSDOM:T}=y,V=x.default||x,{QRCodeStyling:M}=L;o=M,n={jsdom:T,nodeCanvas:V};}catch(y){throw console.error("Failed to load Node dependencies for QR generation",y),y}}let i=typeof e.width=="number"&&isFinite(e.width)?Math.round(e.width):300,s=typeof e.height=="number"&&isFinite(e.height)?Math.round(e.height):300,r={width:i,height:s,data:e.value,image:e.image,dotsOptions:e.dotsOptions,backgroundOptions:{color:e.backgroundOptions?.color||"#ffffff",...e.backgroundOptions},imageOptions:{crossOrigin:"anonymous",margin:typeof e.imageOptions?.margin=="number"&&isFinite(e.imageOptions.margin)?e.imageOptions.margin:0,saveAsBlob:!0,imageSize:typeof e.imageOptions?.imageSize=="number"&&isFinite(e.imageOptions.imageSize)?Math.max(0,Math.min(1,e.imageOptions.imageSize)):.4},cornersSquareOptions:e.cornersSquareOptions,cornersDotOptions:e.cornersDotOptions},a=await new o({type:"png",...n,...r}).getRawData("png");if(!a)throw new Error("Failed to generate raw data from qr-code-styling");if(t){if(a instanceof Blob)return new Promise((c,d)=>{let g=new FileReader;g.onloadend=()=>{typeof g.result=="string"?c(g.result):d(new Error("Failed to convert blob to base64"));},g.onerror=d,g.readAsDataURL(a);});console.warn("Unexpected rawData type in browser:",a);}if(typeof Buffer<"u"&&Buffer.isBuffer(a))return `data:image/png;base64,${a.toString("base64")}`;throw new Error(`Unexpected raw data type: ${typeof a}`)}catch(t){return console.error("Error generating QR V2, falling back to V1:",t),$({value:e.value,size:e.width,colorDark:e.fallbackColorDark||e.dotsOptions?.color,colorLight:e.fallbackColorLight||e.backgroundOptions?.color,margin:e.fallbackMargin||0,errorCorrectionLevel:e.fallbackErrorCorrectionLevel||"M"})}};var Gt=renderer.StyleSheet.create({qrContainer:{display:"flex",alignItems:"center",justifyContent:"center"}}),_t=({value:e,size:t=300,style:o,image:n,dotsOptions:i,backgroundOptions:s,imageOptions:r,cornersSquareOptions:l,cornersDotOptions:a,colorDark:c,colorLight:d,margin:g,errorCorrectionLevel:y})=>jsxRuntime.jsx(renderer.View,{style:[Gt.qrContainer,o],children:jsxRuntime.jsx(renderer.Image,{style:{width:t,height:t},src:Ye({value:e,width:t,height:t,image:n,dotsOptions:i||(c?{color:c}:void 0),backgroundOptions:s||(d?{color:d}:void 0),imageOptions:{...r,margin:r?.margin!==void 0?r.margin:g},cornersSquareOptions:l,cornersDotOptions:a,fallbackColorDark:c,fallbackColorLight:d,fallbackMargin:g,fallbackErrorCorrectionLevel:y})})}),et=_t;var E=renderer.StyleSheet.create({ul:{marginBottom:10,paddingLeft:15},ol:{marginBottom:10,paddingLeft:15},li:{marginBottom:5,flexDirection:"row"},bulletPoint:{width:15,marginRight:5,fontSize:12},itemContent:{flex:1}}),Jt=(e="disc")=>{switch(e){case "circle":return "\u25CB";case "square":return "\u25A0";default:return "\u2022"}},Kt=(e,t="decimal",o=1)=>{let n=o+e-1;switch(t){case "lower-alpha":return String.fromCharCode(97+n%26)+".";case "upper-alpha":return String.fromCharCode(65+n%26)+".";case "lower-roman":return ot(n).toLowerCase()+".";case "upper-roman":return ot(n)+".";default:return n+"."}},ot=e=>{if(e<=0||e>3999)return String(e);let t=[["","I","II","III","IV","V","VI","VII","VIII","IX"],["","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"],["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"],["","M","MM","MMM"]];return t[3][Math.floor(e/1e3)]+t[2][Math.floor(e%1e3/100)]+t[1][Math.floor(e%100/10)]+t[0][e%10]},rt=({children:e,style:t,type:o="disc"})=>{let n=O__default.default.Children.map(e,(i,s)=>O__default.default.isValidElement(i)?O__default.default.cloneElement(i,{bulletType:o,isOrdered:false,index:s+1}):i);return jsxRuntime.jsx(renderer.View,{style:[E.ul,t],children:n})},nt=({children:e,style:t,type:o="decimal",start:n=1})=>{let i=O__default.default.Children.map(e,(s,r)=>O__default.default.isValidElement(s)?O__default.default.cloneElement(s,{bulletType:o,isOrdered:true,index:r+1,start:n}):s);return jsxRuntime.jsx(renderer.View,{style:[E.ol,t],children:i})},it=({children:e,style:t,bulletType:o="disc",isOrdered:n=false,index:i=1,start:s=1,value:r})=>{let l;if(n){let a=r!==void 0?Number(r):i;l=Kt(a,o,s);}else l=Jt(o);return jsxRuntime.jsxs(renderer.View,{style:[E.li,t],children:[jsxRuntime.jsx(renderer.Text,{style:E.bulletPoint,children:l}),jsxRuntime.jsx(renderer.View,{style:E.itemContent,children:typeof e=="string"?jsxRuntime.jsx(renderer.Text,{children:e}):e})]})};var ee=renderer.StyleSheet.create({container:{position:"relative",width:"100%",height:"100%"},background:{position:"absolute",top:0,left:0,right:0,bottom:0},content:{position:"relative"}}),to=({src:e,width:t="100%",height:o="100%",opacity:n=.2,children:i,style:s,fixed:r=false,objectFit:l="cover",objectPosition:a="center"})=>jsxRuntime.jsxs(renderer.View,{style:[ee.container,s],children:[jsxRuntime.jsx(renderer.Image,{src:e,style:[ee.background,{width:t,height:o,opacity:n,objectFit:l,objectPosition:a}],fixed:r}),jsxRuntime.jsx(renderer.View,{style:ee.content,children:i})]}),lt=to;
3
- Object.defineProperty(exports,"Font",{enumerable:true,get:function(){return renderer.Font}});Object.defineProperty(exports,"StyleSheet",{enumerable:true,get:function(){return renderer.StyleSheet}});Object.defineProperty(exports,"Text",{enumerable:true,get:function(){return renderer.Text}});Object.defineProperty(exports,"View",{enumerable:true,get:function(){return renderer.View}});Object.defineProperty(exports,"renderToStream",{enumerable:true,get:function(){return renderer.renderToStream}});exports.A=xe;exports.BR=Pe;exports.Blockquote=Re;exports.Center=le;exports.Col1=Ee;exports.Col10=Xe;exports.Col11=Ge;exports.Col12=_e;exports.Col2=Qe;exports.Col3=Me;exports.Col4=ze;exports.Col5=Ue;exports.Col6=qe;exports.Col7=Ne;exports.Col8=$e;exports.Col9=We;exports.Container=De;exports.Div=Ae;exports.Em=ye;exports.H1=de;exports.H2=ge;exports.H3=pe;exports.H4=me;exports.H5=he;exports.H6=fe;exports.HR=Te;exports.Header=Fe;exports.Img=ie;exports.ImgBg=lt;exports.LI=it;exports.LayoutPDF=ne;exports.Left=ae;exports.Mark=be;exports.OL=nt;exports.P=ce;exports.QR=Ke;exports.QRV2=et;exports.Right=se;exports.Row=He;exports.Small=Ce;exports.Span=Le;exports.Strong=ue;exports.Table=Oe;exports.Tbody=ve;exports.Td=ke;exports.Th=Be;exports.Thead=Ve;exports.Tr=Ie;exports.U=we;exports.UL=rt;exports.decodeBase64Pdf=X;exports.generatePDF=G;//# sourceMappingURL=index.cjs.map
1
+ 'use strict';var renderer=require('@react-pdf/renderer'),O=require('react'),jsxRuntime=require('react/jsx-runtime'),Dt=require('qrcode');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var O__default=/*#__PURE__*/_interopDefault(O);var Dt__default=/*#__PURE__*/_interopDefault(Dt);var ht=(e,t)=>{let o=atob(e),n=new Array(o.length);for(let a=0;a<o.length;a++)n[a]=o.charCodeAt(a);let i=new Uint8Array(n),s=new Blob([i],{type:"application/pdf"}),r=URL.createObjectURL(s);if(document===void 0){console.error("document is undefined, only works in browser context");return}let c=document.createElement("a");c.href=r,c.download=t,document.body.appendChild(c),c.click(),document.body.removeChild(c),window.open(r,"_blank"),setTimeout(()=>{URL.revokeObjectURL(r);},100);},X=ht;var yt=async({template:e,data:t})=>{try{if(!e)throw new Error("Template not provided");let o=O.createElement(e,{data:t}),n=await renderer.renderToStream(o);return await new Promise((s,r)=>{let c=[];n.on("data",a=>c.push(a)),n.on("end",()=>s(Buffer.concat(c).toString("base64"))),n.on("error",a=>r(a));})}catch(o){throw new Error("Error generating PDF: "+(o instanceof Error?o.message:"Unknown error"))}},G=yt;var re=renderer.StyleSheet.create({page:{backgroundColor:"white",padding:30,fontFamily:"Helvetica",fontSize:14},footer:{position:"absolute",left:0,right:0,textAlign:"center"}}),xt=({children:e,size:t="A4",orientation:o="vertical",backgroundColor:n="white",padding:i=30,margen:s="normal",style:r={},pagination:c=true,footer:a,lines:l=a?2:1,rule:d=false})=>{let x=l*20+10,L=(h,P)=>{let w=P.toUpperCase();switch(h){case "apa":return w==="LETTER"||w==="LEGAL"?{paddingTop:72,paddingRight:72,paddingBottom:72,paddingLeft:72}:{paddingTop:72,paddingRight:72,paddingBottom:72,paddingLeft:72};case "estrecho":return {paddingTop:36,paddingRight:36,paddingBottom:36,paddingLeft:36};case "ancho":return {paddingTop:108,paddingRight:108,paddingBottom:108,paddingLeft:108};default:return {paddingTop:i,paddingRight:i,paddingBottom:i,paddingLeft:i}}},T=t,V=o,M=n,te=s;try{typeof t=="string"&&!["A0","A1","A2","A3","A4","A5","A6","A7","A8","A9","LETTER","LEGAL","TABLOID"].includes(t.toUpperCase())&&(console.warn(`Invalid page size: ${t}. Using A4 as default.`),T="A4");let P=["vertical","horizontal","portrait","landscape","h","v"],w=typeof o=="string"?o.toLowerCase():"vertical";P.includes(w)?V=o:(console.warn(`Invalid orientation: ${o}. Using vertical as default.`),V="vertical"),typeof n!="string"&&(console.warn(`Invalid background color: ${n}. Using white as default.`),M="white"),["apa","normal","estrecho","ancho"].includes(s)||(console.warn(`Invalid margin type: ${s}. Using normal as default.`),te="normal"),(typeof l!="number"||l<1)&&console.warn(`Invalid lines value: ${l}. Using 1 as default.`);}catch(h){console.warn("Error processing props in LayoutPDF:",h);}let lt=h=>{switch(h){case "vertical":case "portrait":case "v":return "portrait";case "horizontal":case "landscape":case "h":return "landscape";default:return console.warn(`Unrecognized orientation: ${h}. Using portrait as default.`),"portrait"}},dt=(h,P,w)=>{let I={A0:{width:841,height:1189},A1:{width:594,height:841},A2:{width:420,height:594},A3:{width:297,height:420},A4:{width:210,height:297},A5:{width:148,height:210},A6:{width:105,height:148},A7:{width:74,height:105},A8:{width:52,height:74},A9:{width:37,height:52},LETTER:{width:216,height:279},LEGAL:{width:216,height:356},TABLOID:{width:279,height:432}},v=2.834645669,A=I[h.toUpperCase()];if(!A)return P==="landscape"?595-w-10:842-w-10;let q=A.height*v,C=A.width*v;return P==="landscape"?C-w-10:q-w-10},z=lt(V),U=L(te,T),gt=dt(T,z,x),pt=()=>{if(!d)return null;let h=28.3465,P={A0:{width:841*2.834645669,height:1189*2.834645669},A1:{width:594*2.834645669,height:841*2.834645669},A2:{width:420*2.834645669,height:594*2.834645669},A3:{width:297*2.834645669,height:420*2.834645669},A4:{width:210*2.834645669,height:297*2.834645669},A5:{width:148*2.834645669,height:210*2.834645669},A6:{width:105*2.834645669,height:148*2.834645669},A7:{width:74*2.834645669,height:105*2.834645669},A8:{width:52*2.834645669,height:74*2.834645669},A9:{width:37*2.834645669,height:52*2.834645669},LETTER:{width:216*2.834645669,height:279*2.834645669},LEGAL:{width:216*2.834645669,height:356*2.834645669},TABLOID:{width:279*2.834645669,height:432*2.834645669}},w=P[T.toUpperCase()]||P.A4,I=z==="landscape"?w.height:w.width,v=z==="landscape"?w.width:w.height,A=[],q=[];for(let C=0;C<=Math.ceil(v/h);C++)A.push(jsxRuntime.jsx(renderer.View,{style:{position:"absolute",top:C*h,left:0,right:0,height:C%5===0?1:.5,backgroundColor:C%5===0?"rgba(255, 0, 0, 0.8)":"rgba(100, 100, 100, 0.5)"}},`h-${C}`));for(let C=0;C<=Math.ceil(I/h);C++)q.push(jsxRuntime.jsx(renderer.View,{style:{position:"absolute",left:C*h,top:0,bottom:0,width:C%5===0?1:.5,backgroundColor:C%5===0?"rgba(255, 0, 0, 0.8)":"rgba(100, 100, 100, 0.5)"}},`v-${C}`));return jsxRuntime.jsxs(renderer.View,{style:{position:"absolute",top:0,left:0,right:0,bottom:0},fixed:true,children:[A,q]})},mt={...re.page,backgroundColor:M,paddingTop:r?.paddingTop??r?.padding??U.paddingTop,paddingRight:r?.paddingRight??r?.padding??U.paddingRight,paddingLeft:r?.paddingLeft??r?.padding??U.paddingLeft,paddingBottom:(r?.paddingBottom??r?.padding??U.paddingBottom)+x,...(()=>{let{padding:h,paddingTop:P,paddingRight:w,paddingBottom:I,paddingLeft:v,...A}=r||{};return A})()},oe={...re.footer,top:gt,height:x,display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",fontSize:10,color:"grey"};return jsxRuntime.jsx(renderer.Document,{children:jsxRuntime.jsxs(renderer.Page,{size:T,orientation:z,style:mt,wrap:true,children:[pt(),jsxRuntime.jsx(renderer.View,{style:{paddingBottom:x},children:e}),jsxRuntime.jsxs(renderer.View,{style:oe,fixed:true,children:[a&&a,c&&jsxRuntime.jsx(renderer.Text,{style:{fontSize:oe.fontSize},render:({pageNumber:h,totalPages:P})=>`${h} / ${P}`})]})]})})},ne=xt;var Lt=renderer.StyleSheet.create({image:{width:"100%",height:"auto",marginBottom:14}}),Ft=({src:e,style:t})=>jsxRuntime.jsx(renderer.Image,{src:e,style:[Lt.image,t]}),ie=Ft;var J=renderer.StyleSheet.create({left:{textAlign:"left"},right:{textAlign:"right"},center:{textAlign:"center"}}),ae=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[J.left,t],children:e}),se=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[J.right,t],children:e}),ce=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[J.center,t],children:e});var f=renderer.StyleSheet.create({p:{fontSize:12,marginBottom:5,lineHeight:1.2},h1:{fontSize:24,fontWeight:"bold",marginBottom:12},h2:{fontSize:20,fontWeight:"bold",marginBottom:10},h3:{fontSize:18,fontWeight:"bold",marginBottom:8},h4:{fontSize:16,fontWeight:"bold",marginBottom:6},h5:{fontSize:14,fontWeight:"bold",marginBottom:4},h6:{fontSize:12,fontWeight:"bold",marginBottom:0},strong:{fontWeight:"bold"},em:{fontStyle:"italic"},u:{textDecoration:"underline"},small:{fontSize:10},blockquote:{marginLeft:20,marginRight:20,fontStyle:"italic",borderLeft:"4px solid #ccc",paddingLeft:10},mark:{backgroundColor:"yellow"},A:{color:"#3d65fd",textDecoration:"none"},br:{width:"100%",height:1,marginTop:7,marginBottom:7},header:{position:"absolute",top:20,left:0,right:0,textAlign:"center",fontSize:10,color:"#666",paddingHorizontal:40},hr:{width:"100%",borderTop:"1px solid #000",marginTop:8,marginBottom:8}}),le=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.p,t],children:e}),de=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h1,t],children:e}),ge=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h2,t],children:e}),pe=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h3,t],children:e}),me=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h4,t],children:e}),he=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h5,t],children:e}),fe=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h6,t],children:e}),ue=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.strong,t],children:e}),ye=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.em,t],children:e}),we=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.u,t],children:e}),Ce=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.small,t],children:e}),Re=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.blockquote,t],children:e}),be=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.mark,t],children:e}),xe=({children:e,style:t,href:o})=>jsxRuntime.jsx(renderer.Link,{src:o,style:[f.A,t],children:e}),Pe=({style:e})=>jsxRuntime.jsx(renderer.Text,{style:[f.br,e],children:`
2
+ `}),Te=({style:e})=>jsxRuntime.jsx(renderer.View,{style:[f.hr,e]}),Le=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[t],children:e}),Fe=({children:e,style:t,fixed:o=false})=>jsxRuntime.jsx(renderer.View,{style:[f.header,t],fixed:o,children:typeof e=="string"?jsxRuntime.jsx(renderer.Text,{children:e}):e}),Ae=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:t,children:e});var D=O.createContext({cellHeight:22,textAlign:"left"}),S=renderer.StyleSheet.create({table:{width:"100%",borderWidth:1,borderColor:"#000",marginBottom:20},thead:{backgroundColor:"#ccc"},tr:{flexDirection:"row"},textBold:{fontSize:10,fontWeight:"bold",paddingLeft:8,paddingRight:8,justifyContent:"center"},text:{fontSize:10,paddingLeft:8,paddingRight:8,justifyContent:"center"},zebraOdd:{backgroundColor:"#eeeeee"}}),Oe=({children:e,style:t,cellHeight:o=22})=>jsxRuntime.jsx(D.Provider,{value:{cellHeight:o,textAlign:"left"},children:jsxRuntime.jsx(renderer.View,{style:[S.table,t],children:e})}),Ve=({children:e,style:t,textAlign:o="left"})=>{let{cellHeight:n}=O.useContext(D);return jsxRuntime.jsx(D.Provider,{value:{cellHeight:n,textAlign:o},children:jsxRuntime.jsx(renderer.View,{style:[S.thead,t],children:e})})},Ie=({children:e})=>{let t=O__default.default.Children.toArray(e),o=t.length;return jsxRuntime.jsx(jsxRuntime.Fragment,{children:t.map((n,i)=>O__default.default.cloneElement(n,{isLastRow:i===o-1,isOdd:i%2===1}))})},ve=({children:e,style:t,isLastRow:o=false,isOdd:n=false})=>{let i=O__default.default.Children.toArray(e),s=i.length;return jsxRuntime.jsx(renderer.View,{style:[S.tr,t],children:i.map((r,c)=>{let a=c===s-1,l=`${(100/s).toFixed(2)}%`;return O__default.default.cloneElement(r,{width:l,isLast:a,isLastRow:o,isOdd:n})})})},Be=({children:e,style:t,width:o,height:n,colSpan:i,isLast:s=false,isLastRow:r=false,textAlign:c})=>{let{cellHeight:a,textAlign:l}=O.useContext(D),d=c||l||"left",g=typeof o=="string"&&i?`${(parseFloat(o)*i).toFixed(2)}%`:o,x={borderRightWidth:s?0:1,borderBottomWidth:r?0:1,borderColor:"#000",minHeight:n!==void 0?n:a};return jsxRuntime.jsx(renderer.View,{style:[S.textBold,{width:g},x,t],children:jsxRuntime.jsx(renderer.Text,{style:{textAlign:d},children:e})})},ke=({children:e,style:t,width:o,height:n,colSpan:i,isLast:s=false,isLastRow:r=false,isOdd:c=false,textAlign:a})=>{let{cellHeight:l,textAlign:d}=O.useContext(D),g=a||d||"left",y=typeof o=="string"&&i?`${(parseFloat(o)*i).toFixed(2)}%`:o,L={borderRightWidth:s?0:1,borderBottomWidth:r?0:1,borderColor:"#000",minHeight:n!==void 0?n:l};return jsxRuntime.jsx(renderer.View,{style:[S.text,c&&S.zebraOdd,{width:y},L,t],children:jsxRuntime.jsx(renderer.Text,{style:{textAlign:g},children:e})})};var p=renderer.StyleSheet.create({container:{width:"100%",paddingHorizontal:20},row:{flexDirection:"row",flexWrap:"wrap",marginHorizontal:-5},col:{paddingHorizontal:5},col1:{width:"8.33%"},col2:{width:"16.66%"},col3:{width:"25%"},col4:{width:"33.33%"},col5:{width:"41.66%"},col6:{width:"50%"},col7:{width:"58.33%"},col8:{width:"66.66%"},col9:{width:"75%"},col10:{width:"83.33%"},col11:{width:"91.66%"},col12:{width:"100%"}}),De=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.container,t],children:e}),Ee=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.row,t],children:e}),He=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col1,t],children:e}),Qe=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col2,t],children:e}),Me=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col3,t],children:e}),ze=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col4,t],children:e}),Ue=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col5,t],children:e}),qe=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col6,t],children:e}),Ne=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col7,t],children:e}),$e=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col8,t],children:e}),We=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col9,t],children:e}),Xe=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col10,t],children:e}),Ge=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col11,t],children:e}),_e=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col12,t],children:e});var $=async({value:e,size:t=150,colorDark:o="#000000",colorLight:n="#ffffff",margin:i=0,errorCorrectionLevel:s="M"})=>{try{let r={errorCorrectionLevel:s,type:"image/png",quality:.92,margin:i,color:{dark:o,light:n},width:t};return Dt__default.default.toDataURL(e,r)}catch(r){return console.error("Error generando QR:",r),""}},je=async(e,t,o,n)=>new Promise(async i=>{if(!e||!t){i(e);return}try{let s=typeof window<"u"&&typeof window.document<"u",r,c,a;if(s)r=document.createElement("canvas"),c=r.getContext("2d"),a=window.Image;else try{let{createCanvas:d,Image:g}=await import('canvas');r=d(100,100),c=r.getContext("2d"),a=g;}catch(d){console.error("Canvas not available in Node environment for addLogoToQR",d),i(e);return}if(!c){i(e);return}let l=new a;s&&(l.crossOrigin="anonymous"),l.onload=()=>{r.width=l.width,r.height=l.height,c.drawImage(l,0,0,r.width,r.height);let d=new a;s&&(d.crossOrigin="anonymous"),d.onload=()=>{let g=(r.width-o)/2,y=(r.height-n)/2;c.fillStyle="#FFFFFF",c.fillRect(g-5,y-5,o+10,n+10),c.drawImage(d,g,y,o,n);let x=r.toDataURL("image/png");i(x);},d.onerror=g=>{console.error("Error cargando el logo:",g),i(e);},d.src=t;},l.onerror=d=>{console.error("Error cargando el QR:",d),i("");},l.src=e;}catch(s){console.error("Error procesando el QR con logo:",s),i(e);}});var Ut=renderer.StyleSheet.create({qrContainer:{display:"flex",alignItems:"center",justifyContent:"center",margin:10}}),qt={0:"L",1:"M",2:"Q",3:"H"},Nt=({value:e,size:t=150,style:o,colorDark:n="#000000",colorLight:i="#ffffff",margin:s=0,logo:r="",logoWidth:c=30,logoHeight:a=30,errorCorrectionLevel:l=r?"H":"M"})=>{let[d,g]=O.useState("");O.useEffect(()=>{(async()=>{try{let L=await $({value:e,size:t,colorDark:n,colorLight:i,margin:s,errorCorrectionLevel:typeof l=="number"?qt[l]||"M":l});if(r&&c&&a){let T=await je(L,r,c,a);g(T);}else g(L);}catch(L){console.error("Error generando QR:",L);let T=`https://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(e)}&size=${t}x${t}&color=${encodeURIComponent(n.replace("#",""))}&bgcolor=${encodeURIComponent(i.replace("#",""))}`;g(T);}})();},[e,t,n,i,s,r,c,a,l]);let y=`https://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(e)}&size=${t}x${t}`;return jsxRuntime.jsx(renderer.View,{style:[Ut.qrContainer,o],children:jsxRuntime.jsx(renderer.Image,{src:d||y,style:{width:t,height:t}})})},Ke=Nt;var Ye=async e=>{try{let t=typeof window<"u"&&typeof window.document<"u",o,n={};if(t)try{let l=await import('qr-code-styling');o=l.default||l;}catch(l){throw console.error("Failed to load qr-code-styling in browser",l),l}else {let l="jsdom",d="canvas",g="qr-code-styling/lib/qr-code-styling.common.js";try{let[y,x,L]=await Promise.all([import(l),import(d),import(g)]),{JSDOM:T}=y,V=x.default||x,{QRCodeStyling:M}=L;o=M,n={jsdom:T,nodeCanvas:V};}catch(y){throw console.error("Failed to load Node dependencies for QR generation",y),y}}let i=typeof e.width=="number"&&isFinite(e.width)?Math.round(e.width):300,s=typeof e.height=="number"&&isFinite(e.height)?Math.round(e.height):300,r={width:i,height:s,data:e.value,image:e.image,dotsOptions:e.dotsOptions,backgroundOptions:{color:e.backgroundOptions?.color||"#ffffff",...e.backgroundOptions},imageOptions:{crossOrigin:"anonymous",margin:typeof e.imageOptions?.margin=="number"&&isFinite(e.imageOptions.margin)?e.imageOptions.margin:0,saveAsBlob:!0,imageSize:typeof e.imageOptions?.imageSize=="number"&&isFinite(e.imageOptions.imageSize)?Math.max(0,Math.min(1,e.imageOptions.imageSize)):.4},cornersSquareOptions:e.cornersSquareOptions,cornersDotOptions:e.cornersDotOptions},a=await new o({type:"png",...n,...r}).getRawData("png");if(!a)throw new Error("Failed to generate raw data from qr-code-styling");if(t){if(a instanceof Blob)return new Promise((l,d)=>{let g=new FileReader;g.onloadend=()=>{typeof g.result=="string"?l(g.result):d(new Error("Failed to convert blob to base64"));},g.onerror=d,g.readAsDataURL(a);});console.warn("Unexpected rawData type in browser:",a);}if(typeof Buffer<"u"&&Buffer.isBuffer(a))return `data:image/png;base64,${a.toString("base64")}`;throw new Error(`Unexpected raw data type: ${typeof a}`)}catch(t){return console.error("Error generating QR V2, falling back to V1:",t),$({value:e.value,size:e.width,colorDark:e.fallbackColorDark||e.dotsOptions?.color,colorLight:e.fallbackColorLight||e.backgroundOptions?.color,margin:e.fallbackMargin||0,errorCorrectionLevel:e.fallbackErrorCorrectionLevel||"M"})}};var Gt=renderer.StyleSheet.create({qrContainer:{display:"flex",alignItems:"center",justifyContent:"center"}}),_t=({value:e,size:t=300,style:o,image:n,dotsOptions:i,backgroundOptions:s,imageOptions:r,cornersSquareOptions:c,cornersDotOptions:a,colorDark:l,colorLight:d,margin:g,errorCorrectionLevel:y})=>jsxRuntime.jsx(renderer.View,{style:[Gt.qrContainer,o],children:jsxRuntime.jsx(renderer.Image,{style:{width:t,height:t},src:Ye({value:e,width:t,height:t,image:n,dotsOptions:i||(l?{color:l}:void 0),backgroundOptions:s||(d?{color:d}:void 0),imageOptions:{...r,margin:r?.margin!==void 0?r.margin:g},cornersSquareOptions:c,cornersDotOptions:a,fallbackColorDark:l,fallbackColorLight:d,fallbackMargin:g,fallbackErrorCorrectionLevel:y})})}),et=_t;var H=renderer.StyleSheet.create({ul:{marginBottom:10,paddingLeft:15},ol:{marginBottom:10,paddingLeft:15},li:{marginBottom:5,flexDirection:"row"},bulletPoint:{width:15,marginRight:5,fontSize:12},itemContent:{flex:1}}),Jt=(e="disc")=>{switch(e){case "circle":return "\u25CB";case "square":return "\u25A0";default:return "\u2022"}},Kt=(e,t="decimal",o=1)=>{let n=o+e-1;switch(t){case "lower-alpha":return String.fromCharCode(97+n%26)+".";case "upper-alpha":return String.fromCharCode(65+n%26)+".";case "lower-roman":return ot(n).toLowerCase()+".";case "upper-roman":return ot(n)+".";default:return n+"."}},ot=e=>{if(e<=0||e>3999)return String(e);let t=[["","I","II","III","IV","V","VI","VII","VIII","IX"],["","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"],["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"],["","M","MM","MMM"]];return t[3][Math.floor(e/1e3)]+t[2][Math.floor(e%1e3/100)]+t[1][Math.floor(e%100/10)]+t[0][e%10]},rt=({children:e,style:t,type:o="disc"})=>{let n=O__default.default.Children.map(e,(i,s)=>O__default.default.isValidElement(i)?O__default.default.cloneElement(i,{bulletType:o,isOrdered:false,index:s+1}):i);return jsxRuntime.jsx(renderer.View,{style:[H.ul,t],children:n})},nt=({children:e,style:t,type:o="decimal",start:n=1})=>{let i=O__default.default.Children.map(e,(s,r)=>O__default.default.isValidElement(s)?O__default.default.cloneElement(s,{bulletType:o,isOrdered:true,index:r+1,start:n}):s);return jsxRuntime.jsx(renderer.View,{style:[H.ol,t],children:i})},it=({children:e,style:t,bulletType:o="disc",isOrdered:n=false,index:i=1,start:s=1,value:r})=>{let c;if(n){let a=r!==void 0?Number(r):i;c=Kt(a,o,s);}else c=Jt(o);return jsxRuntime.jsxs(renderer.View,{style:[H.li,t],children:[jsxRuntime.jsx(renderer.Text,{style:H.bulletPoint,children:c}),jsxRuntime.jsx(renderer.View,{style:H.itemContent,children:typeof e=="string"?jsxRuntime.jsx(renderer.Text,{children:e}):e})]})};var ee=renderer.StyleSheet.create({container:{position:"relative",width:"100%",height:"100%"},background:{position:"absolute",top:0,left:0,right:0,bottom:0},content:{position:"relative"}}),to=({src:e,width:t="100%",height:o="100%",opacity:n=.2,children:i,style:s,fixed:r=false,objectFit:c="cover",objectPosition:a="center"})=>jsxRuntime.jsxs(renderer.View,{style:[ee.container,s],children:[jsxRuntime.jsx(renderer.Image,{src:e,style:[ee.background,{width:t,height:o,opacity:n,objectFit:c,objectPosition:a}],fixed:r}),jsxRuntime.jsx(renderer.View,{style:ee.content,children:i})]}),ct=to;
3
+ Object.defineProperty(exports,"Font",{enumerable:true,get:function(){return renderer.Font}});Object.defineProperty(exports,"StyleSheet",{enumerable:true,get:function(){return renderer.StyleSheet}});Object.defineProperty(exports,"Text",{enumerable:true,get:function(){return renderer.Text}});Object.defineProperty(exports,"View",{enumerable:true,get:function(){return renderer.View}});Object.defineProperty(exports,"renderToStream",{enumerable:true,get:function(){return renderer.renderToStream}});exports.A=xe;exports.BR=Pe;exports.Blockquote=Re;exports.Center=ce;exports.Col1=He;exports.Col10=Xe;exports.Col11=Ge;exports.Col12=_e;exports.Col2=Qe;exports.Col3=Me;exports.Col4=ze;exports.Col5=Ue;exports.Col6=qe;exports.Col7=Ne;exports.Col8=$e;exports.Col9=We;exports.Container=De;exports.Div=Ae;exports.Em=ye;exports.H1=de;exports.H2=ge;exports.H3=pe;exports.H4=me;exports.H5=he;exports.H6=fe;exports.HR=Te;exports.Header=Fe;exports.Img=ie;exports.ImgBg=ct;exports.LI=it;exports.LayoutPDF=ne;exports.Left=ae;exports.Mark=be;exports.OL=nt;exports.P=le;exports.QR=Ke;exports.QRV2=et;exports.Right=se;exports.Row=Ee;exports.Small=Ce;exports.Span=Le;exports.Strong=ue;exports.Table=Oe;exports.Tbody=Ie;exports.Td=ke;exports.Th=Be;exports.Thead=Ve;exports.Tr=ve;exports.U=we;exports.UL=rt;exports.decodeBase64Pdf=X;exports.generatePDF=G;//# sourceMappingURL=index.cjs.map
4
4
  //# sourceMappingURL=index.cjs.map