1import{u as D,r as j,j as s,k as L,B as R}from"./index-FWKSGZPO.js";import{C as H,a as M,b as q,c as V}from"./card-DTQVPU97.js";const t={paper:"#FAFAF9",cream:"#F4F3F0",card:"#FFFFFF",ink:"#0A0A0A",mute:"#6B6B6B",border:"#E7E5E4",gold:"#FFB800",goldHover:"#D68A00",goldSoft:"#FFE9B3"},o="'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, Arial, sans-serif",$="'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace",r=e=>String(e??"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),b=()=>new Date().getFullYear();function w(e){const{previewText:a,title:n,headerRight:d,bodyHtml:l,footerExtraHtml:i}=e;return`<!doctype html> 2<html lang="pt-BR"> 3<head> 4<meta charset="utf-8" /> 5<meta name="viewport" content="width=device-width,initial-scale=1" /> 6<meta name="x-apple-disable-message-reformatting" /> 7<title>${r(n)}</title> 8<link rel="preconnect" href="https://fonts.googleapis.com" /> 9<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> 10<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet" /> 11</head> 12<body style="margin:0;padding:0;background:${t.paper};font-family:${o};color:${t.ink};-webkit-font-smoothing:antialiased;"> 13<div style="display:none;visibility:hidden;opacity:0;color:transparent;height:0;width:0;overflow:hidden;mso-hide:all;">${r(a)}</div> 14<table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0" style="background:${t.paper};"> 15 <tr><td align="center" style="padding:32px 16px;"> 16 <table role="presentation" width="600" cellpadding="0" cellspacing="0" border="0" style="width:600px;max-width:100%;"> 17 <!-- header --> 18 <tr><td style="padding:0 4px 20px 4px;"> 19 <table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0"> 20 <tr> 21 <td align="left" style="font-family:${o};font-weight:600;font-size:22px;letter-spacing:-0.02em;color:${t.ink};">xpark</td> 22 <td align="right" style="font-family:${$};font-size:12px;color:${t.mute};">${d?r(d):""}</td> 23 </tr> 24 </table> 25 </td></tr> 26 <!-- body --> 27 <tr><td>${l}</td></tr> 28 <!-- footer --> 29 <tr><td style="padding:28px 8px 8px 8px;"> 30 <table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0"> 31 ${i??""} 32 <tr><td style="padding-top:16px;border-top:1px solid ${t.border};font-family:${o};font-size:13px;color:${t.mute};line-height:1.6;"> 33 <div style="font-weight:500;color:${t.ink};letter-spacing:-0.01em;">Quanto vale o seu tempo?</div> 34 <div style="margin-top:6px;">© xpark ${b()} · atendemos GRU e VCP</div> 35 </td></tr> 36 </table> 37 </td></tr> 38 </table> 39 </td></tr> 40</table> 41</body></html>`}function S(e){return`<h1 style="margin:0 0 12px 0;font-family:${o};font-weight:600;font-size:32px;line-height:1.15;letter-spacing:-0.02em;color:${t.ink};">${r(e)}</h1> 42<div style="width:44px;height:3px;background:${t.gold};border-radius:2px;margin:0 0 20px 0;"></div>`}function z(e){return`<p style="margin:0 0 24px 0;font-family:${o};font-size:16px;line-height:1.55;color:${t.mute};">${r(e)}</p>`}function E(e){return`<table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0" style="background:${t.card};border:1px solid ${t.border};border-radius:12px;box-shadow:0 1px 2px rgba(10,10,10,0.04);"> 43 <tr><td style="padding:24px;">${e}</td></tr> 44 </table>`}function x(e,a,n=!1){return`<table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0" style="margin-bottom:14px;"> 45 <tr> 46 <td style="font-family:${o};font-size:11px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:${t.mute};padding-bottom:4px;">${r(e)}</td> 47 </tr> 48 <tr> 49 <td style="font-family:${n?$:o};font-size:15px;color:${t.ink};line-height:1.4;">${r(a)}</td> 50 </tr> 51 </table>`}function F(e){return`<span style="display:inline-block;background:${t.goldSoft};color:${t.ink};font-family:${$};font-size:15px;font-weight:500;padding:8px 14px;border-radius:8px;letter-spacing:0.04em;">${r(e)}</span>`}function k(e,a){return`<table role="presentation" cellpadding="0" cellspacing="0" border="0" style="margin:8px 0;"><tr><td style="border-radius:12px;background:${t.ink};"> 52 <a href="${r(a)}" style="display:inline-block;padding:14px 28px;font-family:${o};font-size:15px;font-weight:500;color:${t.paper};text-decoration:none;border-radius:12px;letter-spacing:-0.01em;">${r(e)}</a> 53 </td></tr></table>`}function G(e,a){return`<table role="presentation" cellpadding="0" cellspacing="0" border="0" style="margin:8px 0;"><tr><td style="border-radius:12px;border:1px solid ${t.ink};background:${t.paper};"> 54 <a href="${r(a)}" style="display:inline-block;
54padding:13px 26px;font-family:${o};font-size:15px;font-weight:500;color:${t.ink};text-decoration:none;border-radius:12px;letter-spacing:-0.01em;">${r(e)}</a> 55 </td></tr></table>`}function U(e){return`<ul style="margin:0;padding:0 0 0 18px;font-family:${o};font-size:14px;color:${t.ink};line-height:1.7;"> 56 ${e.map(a=>`<li style="margin-bottom:4px;">${r(a)}</li>`).join("")} 57 </ul>`}function N(e){return`<h2 style="margin:28px 0 12px 0;font-family:${o};font-weight:600;font-size:16px;letter-spacing:-0.01em;color:${t.ink};">${r(e)}</h2>`}function A(e,a="Duvidas? Fale com a gente no"){return`<tr><td style="padding-bottom:14px;font-family:${o};font-size:13px;color:${t.mute};"> 58 ${r(a)} <a href="${r(e)}" style="color:${t.ink};text-decoration:underline;">WhatsApp</a>. 59 </td></tr>`}function O(e={}){const a=e.customerName??"viajante",n=e.airportLabel??"GRU - Guarulhos",d=e.entryDateTime??"",l=e.exitDateTime??"",i=e.amountLabel??"R$ 0,00",p=e.accessCode??"",m=e.bookingUrl??"https://www.xpark.ai/minhas-reservas",c=e.whatsappUrl??"https://wa.me/5511000000000",h=e.bookingRef??(p?`Reserva #${p}`:""),u=(e.paymentMethodLabel??"").trim(),g=u?u.charAt(0).toUpperCase()+u.slice(1):"",f=g?`Valor pago · ${g}`:"Valor pago",y="Sua reserva no xpark esta confirmada",C=`Vaga garantida em ${n}. Codigo ${p}.`,T=` 60 ${S("Reserva confirmada")} 61 ${z(`Sua vaga esta garantida, ${a}. Chegue no horario e siga direto para o embarque.`)} 62 ${E(` 63 ${x("Aeroporto",n)} 64 ${x("Entrada",d,!0)} 65 ${x("Saida",l,!0)} 66 ${x(f,i,!0)} 67 <div style="font-family:${o};font-size:11px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:${t.mute};margin-bottom:6px;">Codigo de acesso</div> 68 ${F(p)} 69 `)} 70 ${N("O que levar")} 71 ${U(["Documento com foto","Este codigo de acesso (impresso ou no celular)","Cartao de embarque a mao"])} 72 <div style="margin-top:24px;">${k("Ver detalhes da reserva",m)}</div> 73 `,P=w({previewText:C,title:y,headerRight:h,bodyHtml:T,footerExtraHtml:A(c)}),B=["Reserva confirmada no xpark","",`Ola ${a}, sua vaga esta garantida.`,"",`Aeroporto: ${n}`,`Entrada: ${d}`,`Saida: ${l}`,g?`Valor pago (${g}): ${i}`:`Valor pago: ${i}`,`Codigo de acesso: ${p}`,"","O que levar:","- Documento com foto","- Codigo de acesso (impresso ou no celular)","- Cartao de embarque a mao","",`Detalhes: ${m}`,`WhatsApp: ${c}`,"","Quanto vale o seu tempo?",`© xpark ${b()}`].join(` 74`);return{subject:y,html:P,text:B}}function Q(e={}){const a=e.customerName??"viajante",n=e.address??"",d=e.entryDateTime??"",l=e.terminalMinutes??8,i=e.accessCode??"",p=e.mapsUrl??"#",m=e.whatsappUrl??"https://wa.me/5511000000000",c="Sua viagem e amanha - tudo pronto no xpark",h=`A ${l} min do terminal. Codigo ${i}.`,u=` 75 ${S("Sua viagem e amanha")} 76 ${z(`Tudo pronto, ${a}. Chegue com tranquilidade, deixamos voce a ${l} minutos do terminal.`)} 77 ${E(` 78 ${x("Endereco",n)} 79 ${x("Horario de entrada",d,!0)} 80 ${x("Tempo ate o terminal",`${l} min · shuttle gratuito`)} 81 <div style="font-family:${o};font-size:11px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:${t.mute};margin-bottom:6px;">Codigo de acesso</div> 82 ${F(i)} 83 `)} 84 <div style="margin-top:20px;"> 85 <table role="presentation" cellpadding="0" cellspacing="0" border="0"><tr> 86 <td style="padding-right:10px;">${k("Como chegar",p)}</td> 87 <td>${G("Falar no WhatsApp",m)}</td> 88 </tr></table> 89 </div> 90 ${N("Antes de sair de casa")} 91 ${U(["Confira se trancou o carro","Leve seus documentos e o codigo","Saia com folga para o check-in"])} 92 `,g=w({previewText:h,title:c,bodyHtml:u,footerExtraHtml:A(m)}),f=["Sua viagem e amanha","",`Tudo pronto, ${a}. A ${l} min do terminal (shuttle gratuito).`,"",`Endereco: ${n}`,`Entrada: ${d}`,`Codigo de acesso: ${i}`,"",`Como chegar: ${p}`,`WhatsApp: ${m}`,"","Antes de sair de casa:","- Confira se trancou o carro","- Leve seus documentos e o codigo","- Saia com folga para o check-in","","Quanto vale o seu tempo?",`© xpark ${b()}`].join(` 93`);return{subject:c,html:g,text:f}}function W(e={}){const a=e.customerName??"viajante",n=e.reviewUrl??"https://www.xpark.ai/avaliar",d=e.whatsappUrl??"https://wa.me/5511000000000",l="Como foi
93sua experiencia de compra com o xpark?",i="Sua avaliacao da plataforma leva menos de 1 minuto.",p=` 94 <div style="text-align:center;padding:8px 0;"> 95 <h1 style="margin:0 0 12px 0;font-family:${o};font-weight:600;font-size:30px;line-height:1.15;letter-spacing:-0.02em;color:${t.ink};">Bem-vindo de volta, ${r(a)}</h1> 96 <div style="width:44px;height:3px;background:${t.gold};border-radius:2px;margin:0 auto 20px auto;"></div> 97 <p style="margin:0 0 28px 0;font-family:${o};font-size:16px;line-height:1.55;color:${t.mute};">Esperamos que sua viagem tenha sido leve. Uma ultima coisa:</p> 98 <div style="font-family:${o};font-size:34px;color:${t.gold};letter-spacing:6px;line-height:1;">â â â â â </div> 99 <h2 style="margin:22px 0 20px 0;font-family:${o};font-weight:600;font-size:22px;letter-spacing:-0.01em;color:${t.ink};">Como foi sua experiencia de compra com o xpark?</h2> 100 <div style="display:inline-block;">${k("Avaliar o xpark",n)}</div> 101 <p style="margin:16px 0 0 0;font-family:${o};font-size:13px;color:${t.mute};">Leva menos de 1 minuto e ajuda muito outros viajantes.</p> 102 </div> 103 `,m=w({previewText:i,title:l,bodyHtml:p,footerExtraHtml:A(d,"Algo nao saiu como esperado? Fale com a gente no")}),c=[`Bem-vindo de volta, ${a}
103`,"","Como foi sua experiencia de compra com o xpark? A avaliacao e sobre a plataforma (buscar, reservar, pagar e atendimento) e leva menos de 1 minuto.","",`Avaliar: ${n}`,`WhatsApp: ${d}`,"","Quanto vale o seu tempo?",`© xpark ${b()}`].join(` 104`);return{subject:l,html:m,text:c}}function I(e={}){const a=e.promoPriceLabel??"R$ 89",n=e.oldPriceLabel??"R$ 119",d=e.ctaUrl??"https://www.xpark.ai/escolher",l=e.whatsappUrl??"https://wa.me/5511000000000",i=e.unsubscribeUrl??"https://www.xpark.ai/unsubscribe",p=`Quanto vale o seu tempo? Diaria por ${a}`,m="Coberto, perto do terminal, reserva em menos de 1 minuto.",c=(y,C)=>` 105 <td align="center" valign="top" style="padding:0 6px;width:33%;"> 106 <div style="width:44px;height:44px;background:${t.goldSoft};border-radius:10px;display:inline-block;line-height:44px;font-family:${o};font-weight:600;font-size:20px;color:${t.goldHover};">â¦</div> 107 <div style="margin-top:10px;font-family:${o};font-size:13px;font-weight:600;color:${t.ink};letter-spacing:-0.01em;">${r(y)}</div> 108 <div style="margin-top:3px;font-family:${o};font-size:12px;color:${t.mute};line-height:1.4;">${r(C)}</div> 109 </td>`,h=` 110 <h1 style="margin:0 0 16px 0;font-family:${o};font-weight:600;font-size:36px;line-height:1.1;letter-spacing:-0.02em;color:${t.ink};"> 111 Quanto vale o<br /> 112 <span style="display:inline-block;background:${t.ink};color:${t.gold};padding:4px 12px;border-radius:6px;margin-top:6px;">seu tempo?</span> 113 </h1> 114 ${z("Sem comparar 15 sites. Reserve coberto, perto do terminal, em menos de um minuto.")} 115 116 <table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0" style="background:${t.ink};border-radius:14px;margin:8px 0 24px 0;"> 117 <tr><td align="center" style="padding:32px 24px;"> 118 <div style="font-family:${o};font-size:12px;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;color:${t.gold};">Diaria promocional</div> 119 <div style="margin-top:14px;"> 120 <span style="font-family:${$};font-size:52px;font-weight:500;color:${t.paper};letter-spacing:-0.02em;">${r(a)}</span> 121 <span style="font-family:${$};font-size:20px;color:${t.mute};text-decoration:line-through;margin-left:12px;">${r(n)}</span> 122 </div> 123 <div style="margin-top:12px;font-family:${o};font-size:14px;color:#B8B8B8;">Coberto · 8 min do terminal · vaga garantida</div> 124 </td></tr> 125 </table> 126 127 <table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0" style="margin:8px 0 24px 0;"> 128 <tr> 129 ${c("xpark Certificado","Parceiro auditado")} 130 ${c("Trust Score","Nota real dos clientes")} 131 ${c("xpark Guarantee","Vaga ou dinheiro de volta")} 132 </tr> 133 </table> 134 135 <div>${k("Reservar agora",d)}</div> 136 `,u=` 137 <tr><td style="padding-bottom:14px;font-family:${o};font-size:13px;color:${t.mute};"> 138 Atendemos GRU e VCP · <a href="${r(l)}" style="color:${t.ink};text-decoration:underline;">Fale no WhatsApp</a> 139 </td></tr>`,g=w({previewText:m,title:p,bodyHtml:h,footerExtraHtml:u+`<tr><td style="padding-top:4px;font-family:${o};font-size:12px;color:${t.mute};"> 140 <a href="${r(i)}" style="color:${t.mute};text-decoration:underline;">Cancelar inscricao</a> 141 </td></tr>`}),f=["Quanto vale o seu tempo?","","Sem comparar 15 sites. Reserve coberto, perto do terminal, em menos de um minuto.","",`Diaria promocional: ${a} (de ${n})`,"Coberto · 8 min do terminal · vaga garantida","",`Reservar: ${d}`,`WhatsApp: ${l}`,"","Quanto vale o seu tempo?",`© xpark ${b()}`,`Cancelar inscricao: ${i}`].join(` 142`);return{subject:p,html:g,text:f}}const v={customerName:"Joao",airportLabel:"GRU - Guarulhos",entryDateTime:"12/08/2026 18:40",exitDateTime:"19/08/2026 22:10",amountLabel:"R$ 89,00",accessCode:"XPK-4829",bookingRef:"Reserva #XPK-4829",bookingUrl:"https://www.xpark.ai/minhas-reservas",whatsappUrl:"https://wa.me/5511999999999",address:"Av. Monteiro Lobato, 1234 - Guarulhos/SP",terminalMinutes:8,mapsUrl:"https://maps.google.com/?q=xpark+guarulhos",reviewUrl:"https://www.xpark.ai/avaliar",promoPriceLabel:"R$ 89",oldPriceLabel:"R$ 119",ctaUrl:"https://www.xpark.ai/escolher?airport=GRU",unsubscribeUrl:"https://www.xpark.ai/unsubscribe?e=demo"};function J(e){switch(e){case"confirmation":return O(v);case"reminder":return Q(v);case"review":return W(v);case"promo":return I(v)}}const K=[{key:"confirmation",label:"Confirmacao",hint:"transacional · pos-pagamento"},{key:"reminder",label:"Lembrete",hint:"transacional · 24-48h antes"},{key:"review",label:"Pos-saida",hint:"transacional · pedir avaliacao"},{key:"promo",label:"Promo",hint:"marketing · newsletter"}];function _(){D();const[e,a]=j.useState("confirmation"),[n,d]=j.useState("html"),l=j.useMemo(()=>J(e),[e]);return s.jsxs("div",{className:"space-y-6",children:[s.jsx(L,{title:"Email Preview · xpark",description:"Preview dos templates de e-mail.",path:"/admin/email-preview",noindex:!0}),s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-semibold tracking-tight",children:"Kit de e-mails"}),s.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"Preview visual dos templates. Nenhum envio e disparado nesta pagina."})]}),s.jsx("div",{className:"flex flex-wrap gap-2",children:K.map(i=>s.jsxs("button",{onClick:()=>a(i.key),className:`rounded-md border px-3 py-2 text-left transition ${e===i.key?"bg-primary text-primary-foreground border-primary":"bg-card hover:bg-muted"}`,children:[s.jsx("div",{className:"text-sm font-medium",children:i.label}),s.jsx("div",{className:`text-xs ${e===i.key?"opacity-80":"text-muted-foreground"}`,children:i.hint})]},i.key))}
142),s.jsxs(H,{children:[s.jsxs(M,{className:"flex-row items-center justify-between space-y-0",children:[s.jsxs("div",{children:[s.jsx(q,{className:"text-base",children:"Assunto"}),s.jsx("div",{className:"mt-1 font-mono text-sm",children:l.subject})]}),s.jsxs("div",{className:"flex gap-2",children:[s.jsx(R,{size:"sm",variant:n==="html"?"default":"outline",onClick:()=>d("html"),children:"HTML"}),s.jsx(R,{size:"sm",variant:n==="text"?"default":"outline",onClick:()=>d("text"),children:"Texto"})]})]}),s.jsx(V,{children:n==="html"?s.jsx("iframe",{title:`preview-${e}`,srcDoc:l.html,sandbox:"allow-same-origin",className:"w-full h-[900px] rounded-md border bg-white"},e):s.jsx("pre",{className:"whitespace-pre-wrap rounded-md border bg-muted/50 p-4 font-mono text-xs leading-relaxed",children:l.text})})]})]})}export{_ as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.