[{"data":1,"prerenderedAt":2950},["ShallowReactive",2],{"docs-nav":3,"\u002Fdocs\u002Finstallation\u002Fframeworks\u002Fadonisjs":316},[4,9,15,19,24,28,33,37,41,45,49,53,57,60,63,67,70,74,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,156,159,162,165,168,171,175,178,181,184,186,189,192,195,198,201,204,207,210,213,216,219,222,225,228,231,234,237,240,244,247,250,253,257,261,264,267,270,273,276,279,282,285,287,290,293,296,299,302,305,308,311,313],{"path":5,"title":6,"section":7,"order":7,"sidebar":8},"\u002Fbrand","Brand",null,false,{"path":10,"title":11,"section":12,"order":13,"sidebar":14},"\u002Fdocs\u002Fapi\u002Fcomposables","Composables","API",2,true,{"path":16,"title":17,"section":12,"order":18,"sidebar":14},"\u002Fdocs\u002Fapi\u002Futilities","Utilities",1,{"path":20,"title":21,"section":22,"order":23,"sidebar":14},"\u002Fdocs\u002Fcli","CLI","Getting Started",9,{"path":25,"title":26,"section":22,"order":27,"sidebar":14},"\u002Fdocs\u002Fcompatibility","Compatibility",4,{"path":29,"title":30,"section":31,"order":32,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fbody","Body","Components",3,{"path":34,"title":35,"section":31,"order":36,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fbutton","Button",13,{"path":38,"title":39,"section":31,"order":40,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fcodeblock","CodeBlock",18,{"path":42,"title":43,"section":31,"order":44,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fcodeinline","CodeInline",19,{"path":46,"title":47,"section":31,"order":48,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fcolumn","Column",8,{"path":50,"title":51,"section":31,"order":52,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fcontainer","Container",5,{"path":54,"title":55,"section":31,"order":56,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Ffont","Font",11,{"path":58,"title":59,"section":31,"order":13,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fhead","Head",{"path":61,"title":62,"section":31,"order":23,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fheading","Heading",{"path":64,"title":65,"section":31,"order":66,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fhr","Hr",16,{"path":68,"title":69,"section":31,"order":18,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fhtml","Html",{"path":71,"title":72,"section":31,"order":73,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fimg","Img",14,{"path":75,"title":76,"section":31,"order":27,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Flayout","Layout",{"path":78,"title":79,"section":31,"order":80,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Flink","Link",12,{"path":82,"title":83,"section":31,"order":84,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fmarkdown","Markdown",20,{"path":86,"title":87,"section":31,"order":88,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fnotoutlook","NotOutlook",22,{"path":90,"title":91,"section":31,"order":92,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fnowidows","NoWidows",26,{"path":94,"title":95,"section":31,"order":96,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Foutlook","Outlook",21,{"path":98,"title":99,"section":31,"order":100,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Foutlookbg","OutlookBg",23,{"path":102,"title":103,"section":31,"order":104,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Foverview","Overview",0,{"path":106,"title":107,"section":31,"order":108,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fplaintext","Plaintext",31,{"path":110,"title":111,"section":31,"order":112,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fpreheader","Preheader",17,{"path":114,"title":115,"section":31,"order":116,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fqrcode","QrCode",30,{"path":118,"title":119,"section":31,"order":120,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fraw","Raw",28,{"path":122,"title":123,"section":31,"order":124,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Frow","Row",7,{"path":126,"title":127,"section":31,"order":128,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fsection","Section",6,{"path":130,"title":131,"section":31,"order":132,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fspacer","Spacer",15,{"path":134,"title":135,"section":31,"order":136,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Ftailwind","Tailwind",29,{"path":138,"title":139,"section":31,"order":140,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Ftext","Text",10,{"path":142,"title":143,"section":31,"order":144,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fvml","Vml",24,{"path":146,"title":147,"section":31,"order":148,"sidebar":14},"\u002Fdocs\u002Fcomponents\u002Fwithurl","WithUrl",27,{"path":150,"title":151,"section":152,"order":128,"sidebar":14},"\u002Fdocs\u002Fdeploy\u002Faws-ses","AWS SES","Deploy",{"path":154,"title":155,"section":152,"order":124,"sidebar":14},"\u002Fdocs\u002Fdeploy\u002Fcloudflare","Cloudflare",{"path":157,"title":158,"section":152,"order":32,"sidebar":14},"\u002Fdocs\u002Fdeploy\u002Fmailgun","Mailgun",{"path":160,"title":161,"section":152,"order":18,"sidebar":14},"\u002Fdocs\u002Fdeploy\u002Fnodemailer","Nodemailer",{"path":163,"title":164,"section":152,"order":27,"sidebar":14},"\u002Fdocs\u002Fdeploy\u002Fpostmark","Postmark",{"path":166,"title":167,"section":152,"order":52,"sidebar":14},"\u002Fdocs\u002Fdeploy\u002Fresend","Resend",{"path":169,"title":170,"section":152,"order":13,"sidebar":14},"\u002Fdocs\u002Fdeploy\u002Fsendgrid","SendGrid",{"path":172,"title":173,"section":174,"order":32,"sidebar":14},"\u002Fdocs\u002Fdevelopment\u002Fconfiguration","Configuration","Development",{"path":176,"title":177,"section":174,"order":52,"sidebar":14},"\u002Fdocs\u002Fdevelopment\u002Fevents","Events",{"path":179,"title":180,"section":174,"order":128,"sidebar":14},"\u002Fdocs\u002Fdevelopment\u002Fi18n","i18n",{"path":182,"title":183,"section":174,"order":13,"sidebar":14},"\u002Fdocs\u002Fdevelopment\u002Flocal","Dev Server",{"path":185,"title":107,"section":174,"order":27,"sidebar":14},"\u002Fdocs\u002Fdevelopment\u002Fplaintext",{"path":187,"title":188,"section":174,"order":18,"sidebar":14},"\u002Fdocs\u002Fdevelopment\u002Ftemplates","Templates",{"path":190,"title":191,"section":22,"order":32,"sidebar":14},"\u002Fdocs\u002Feditor-setup","Editor Setup",{"path":193,"title":194,"section":22,"order":48,"sidebar":14},"\u002Fdocs\u002Fglossary","Glossary",{"path":196,"title":197,"section":22,"order":128,"sidebar":8},"\u002Fdocs\u002Finstallation\u002Fframeworks","Framework Guides",{"path":199,"title":200,"section":197,"order":52,"sidebar":14},"\u002Fdocs\u002Finstallation\u002Fframeworks\u002Fadonisjs","AdonisJS",{"path":202,"title":203,"section":197,"order":32,"sidebar":14},"\u002Fdocs\u002Finstallation\u002Fframeworks\u002Fastro","Astro",{"path":205,"title":206,"section":197,"order":18,"sidebar":14},"\u002Fdocs\u002Finstallation\u002Fframeworks\u002Flaravel","Laravel",{"path":208,"title":209,"section":197,"order":48,"sidebar":14},"\u002Fdocs\u002Finstallation\u002Fframeworks\u002Fnextjs","Next.js",{"path":211,"title":212,"section":197,"order":13,"sidebar":14},"\u002Fdocs\u002Finstallation\u002Fframeworks\u002Fnuxt","Nuxt",{"path":214,"title":215,"section":197,"order":124,"sidebar":14},"\u002Fdocs\u002Finstallation\u002Fframeworks\u002Fqwik","Qwik",{"path":217,"title":218,"section":197,"order":128,"sidebar":14},"\u002Fdocs\u002Finstallation\u002Fframeworks\u002Fsolid","Solid",{"path":220,"title":221,"section":197,"order":27,"sidebar":14},"\u002Fdocs\u002Finstallation\u002Fframeworks\u002Fsveltekit","SvelteKit",{"path":223,"title":224,"section":197,"order":23,"sidebar":14},"\u002Fdocs\u002Finstallation\u002Fframeworks\u002Ftanstack","TanStack Start",{"path":226,"title":227,"section":22,"order":13,"sidebar":14},"\u002Fdocs\u002Finstallation","Installation",{"path":229,"title":230,"section":22,"order":32,"sidebar":8},"\u002Fdocs\u002Finstallation\u002Fmanual","Manual Installation",{"path":232,"title":233,"section":22,"order":27,"sidebar":8},"\u002Fdocs\u002Finstallation\u002Fmonorepo","Monorepo Installation",{"path":235,"title":236,"section":22,"order":52,"sidebar":8},"\u002Fdocs\u002Finstallation\u002Fvite","Vite Plugin",{"path":238,"title":239,"section":22,"order":18,"sidebar":14},"\u002Fdocs\u002Fintroduction","What is Maizzle?",{"path":241,"title":242,"section":243,"order":13,"sidebar":14},"\u002Fdocs\u002Fmigrate\u002Fmjml","MJML","Migrate to Maizzle",{"path":245,"title":246,"section":243,"order":18,"sidebar":14},"\u002Fdocs\u002Fmigrate\u002Freact-email","React Email",{"path":248,"title":249,"section":22,"order":124,"sidebar":14},"\u002Fdocs\u002Fresources","Resources",{"path":251,"title":252,"section":22,"order":128,"sidebar":14},"\u002Fdocs\u002Fskill","Agent Skill",{"path":254,"title":255,"section":256,"order":18,"sidebar":14},"\u002Fdocs\u002Ftailwindcss","Tailwind CSS","Core Concepts",{"path":258,"title":259,"section":260,"order":13,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fadd-attributes","Add Attributes","Transformers",{"path":262,"title":263,"section":260,"order":48,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fattribute-to-style","Attribute to Style",{"path":265,"title":266,"section":260,"order":36,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fbase-url","Base URL",{"path":268,"title":269,"section":260,"order":66,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fentities","Entities",{"path":271,"title":272,"section":260,"order":80,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Ffilters","Filters",{"path":274,"title":275,"section":260,"order":112,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fformat","Format",{"path":277,"title":278,"section":260,"order":32,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Finline-css","Inline CSS",{"path":280,"title":281,"section":260,"order":56,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Finline-link","Inline Link",{"path":283,"title":284,"section":260,"order":40,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fminify","Minify",{"path":286,"title":103,"section":260,"order":18,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Foverview",{"path":288,"title":289,"section":260,"order":27,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fpurge-css","Purge CSS",{"path":291,"title":292,"section":260,"order":140,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fremove-attributes","Remove Attributes",{"path":294,"title":295,"section":260,"order":132,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Freplace-strings","Replace Strings",{"path":297,"title":298,"section":260,"order":52,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fsafe-selectors","Safe Selectors",{"path":300,"title":301,"section":260,"order":128,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fshorthand-css","Shorthand CSS",{"path":303,"title":304,"section":260,"order":124,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Fsix-hex","Six-digit HEX",{"path":306,"title":307,"section":260,"order":73,"sidebar":14},"\u002Fdocs\u002Ftransformers\u002Furl-parameters","URL Parameters",{"path":309,"title":310,"section":22,"order":52,"sidebar":14},"\u002Fdocs\u002Fupgrade-guide","Upgrade Guide",{"path":312,"title":236,"section":256,"order":13,"sidebar":14},"\u002Fdocs\u002Fvite-plugin",{"path":314,"title":315,"section":7,"order":7,"sidebar":8},"\u002Fprivacy","Privacy Policy",{"id":317,"title":200,"body":318,"description":2944,"extension":2945,"meta":2946,"navigation":14,"order":52,"path":199,"section":197,"seo":2947,"sidebar":14,"stem":2948,"toc":14,"__hash__":2949},"docs\u002Fdocs\u002Finstallation\u002Fframeworks\u002Fadonisjs.md",{"type":319,"value":320,"toc":2925},"minimark",[321,325,329,332,336,339,364,368,373,380,438,442,449,774,781,785,795,995,1000,1151,1155,1169,1369,1372,1379,1394,1411,1414,1418,1431,1445,1449,1456,1462,1466,1473,1627,1630,1780,1784,1787,2060,2064,2074,2331,2334,2400,2407,2410,2779,2783,2790,2908,2911,2915,2918,2921],[322,323,200],"h1",{"id":324},"adonisjs",[326,327,328],"p",{},"Maizzle integrates with AdonisJS through a Vite plugin, allowing you to build and preview email templates alongside your web application.",[326,330,331],{},"During development, Maizzle runs its own dev server with a preview UI on a separate port. When you build for production, email templates are compiled to HTML alongside your AdonisJS app.",[333,334,227],"h2",{"id":335},"installation",[326,337,338],{},"Install Maizzle in your AdonisJS project:",[340,341,346],"pre",{"className":342,"code":343,"language":344,"meta":345,"style":345},"language-bash shiki shiki-themes laserwave","npm install @maizzle\u002Fframework\n","bash","",[347,348,349],"code",{"__ignoreMap":345},[350,351,353,357,361],"span",{"class":352,"line":18},"line",[350,354,356],{"class":355},"sZNF3","npm",[350,358,360],{"class":359},"sXiT_"," install",[350,362,363],{"class":359}," @maizzle\u002Fframework\n",[333,365,367],{"id":366},"setup","Setup",[369,370,372],"h3",{"id":371},"project-structure","Project structure",[326,374,375,376,379],{},"Create an ",[347,377,378],{},"emails"," directory in your AdonisJS project root for your email templates:",[340,381,387],{"className":382,"code":383,"filename":384,"highlights":385,"language":386,"meta":345,"style":345},"language-text shiki shiki-themes laserwave","├── app\u002F\n├── emails\u002F\n│   ├── welcome.vue\n│   └── tsconfig.json\n├── inertia\u002F\n├── resources\u002F\n├── vite.config.ts\n├── tsconfig.json\n└── package.json\n","your-adonisjs-app",[13,32,27],"text",[347,388,389,394,401,407,413,418,423,428,433],{"__ignoreMap":345},[350,390,391],{"class":352,"line":18},[350,392,393],{},"├── app\u002F\n",[350,395,398],{"class":396,"line":13},[352,397],"highlight",[350,399,400],{},"├── emails\u002F\n",[350,402,404],{"class":403,"line":32},[352,397],[350,405,406],{},"│   ├── welcome.vue\n",[350,408,410],{"class":409,"line":27},[352,397],[350,411,412],{},"│   └── tsconfig.json\n",[350,414,415],{"class":352,"line":52},[350,416,417],{},"├── inertia\u002F\n",[350,419,420],{"class":352,"line":128},[350,421,422],{},"├── resources\u002F\n",[350,424,425],{"class":352,"line":124},[350,426,427],{},"├── vite.config.ts\n",[350,429,430],{"class":352,"line":48},[350,431,432],{},"├── tsconfig.json\n",[350,434,435],{"class":352,"line":23},[350,436,437],{},"└── package.json\n",[369,439,441],{"id":440},"vite-config","Vite config",[326,443,444,445,448],{},"Register the Maizzle Vite plugin in your ",[347,446,447],{},"vite.config.ts",":",[340,450,454],{"className":451,"code":452,"filename":447,"language":453,"meta":345,"style":345},"language-ts shiki shiki-themes laserwave has-diff","import { defineConfig } from 'vite'\nimport vue from '@vitejs\u002Fplugin-vue'\nimport adonisjs from '@adonisjs\u002Fvite\u002Fclient'\nimport inertia from '@adonisjs\u002Finertia\u002Fvite'\nimport { maizzle } from '@maizzle\u002Fframework' \u002F\u002F [!code ++]\n\nexport default defineConfig({\n  plugins: [\n    vue(),\n    inertia({ ssr: { enabled: false, entrypoint: 'inertia\u002Fssr.ts' } }),\n    adonisjs({ entrypoints: ['inertia\u002Fapp.ts'], reload: ['resources\u002Fviews\u002F**\u002F*.edge'] }),\n    maizzle({ \u002F\u002F [!code ++]\n      root: 'emails', \u002F\u002F [!code ++]\n      content: ['.\u002F**\u002F*.vue'], \u002F\u002F [!code ++]\n      output: { \u002F\u002F [!code ++]\n        path: 'build\u002Femails', \u002F\u002F [!code ++]\n      }, \u002F\u002F [!code ++]\n    }), \u002F\u002F [!code ++]\n  ],\n})\n","ts",[347,455,456,485,501,517,533,557,562,575,586,594,638,682,690,706,725,735,752,758,764,769],{"__ignoreMap":345},[350,457,458,462,466,470,473,476,479,482],{"class":352,"line":18},[350,459,461],{"class":460},"s0ZPN","import",[350,463,465],{"class":464},"sGGKt"," {",[350,467,469],{"class":468},"sU-n2"," defineConfig",[350,471,472],{"class":464}," }",[350,474,475],{"class":460}," from",[350,477,478],{"class":464}," '",[350,480,481],{"class":359},"vite",[350,483,484],{"class":464},"'\n",[350,486,487,489,492,494,496,499],{"class":352,"line":13},[350,488,461],{"class":460},[350,490,491],{"class":468}," vue",[350,493,475],{"class":460},[350,495,478],{"class":464},[350,497,498],{"class":359},"@vitejs\u002Fplugin-vue",[350,500,484],{"class":464},[350,502,503,505,508,510,512,515],{"class":352,"line":32},[350,504,461],{"class":460},[350,506,507],{"class":468}," adonisjs",[350,509,475],{"class":460},[350,511,478],{"class":464},[350,513,514],{"class":359},"@adonisjs\u002Fvite\u002Fclient",[350,516,484],{"class":464},[350,518,519,521,524,526,528,531],{"class":352,"line":27},[350,520,461],{"class":460},[350,522,523],{"class":468}," inertia",[350,525,475],{"class":460},[350,527,478],{"class":464},[350,529,530],{"class":359},"@adonisjs\u002Finertia\u002Fvite",[350,532,484],{"class":464},[350,534,538,540,542,545,547,549,551,554],{"class":535,"line":52},[352,536,537],"diff","add",[350,539,461],{"class":460},[350,541,465],{"class":464},[350,543,544],{"class":468}," maizzle",[350,546,472],{"class":464},[350,548,475],{"class":460},[350,550,478],{"class":464},[350,552,553],{"class":359},"@maizzle\u002Fframework",[350,555,556],{"class":464},"'",[350,558,559],{"class":352,"line":128},[350,560,561],{"emptyLinePlaceholder":14},"\n",[350,563,564,567,570,572],{"class":352,"line":124},[350,565,566],{"class":460},"export",[350,568,569],{"class":460}," default",[350,571,469],{"class":355},[350,573,574],{"class":464},"({\n",[350,576,577,581,583],{"class":352,"line":48},[350,578,580],{"class":579},"sLaUg","  plugins",[350,582,448],{"class":464},[350,584,585],{"class":464}," [\n",[350,587,588,591],{"class":352,"line":23},[350,589,590],{"class":355},"    vue",[350,592,593],{"class":464},"(),\n",[350,595,596,599,602,605,607,609,612,614,618,621,624,626,628,631,633,635],{"class":352,"line":140},[350,597,598],{"class":355},"    inertia",[350,600,601],{"class":464},"({",[350,603,604],{"class":579}," ssr",[350,606,448],{"class":464},[350,608,465],{"class":464},[350,610,611],{"class":579}," enabled",[350,613,448],{"class":464},[350,615,617],{"class":616},"skd8d"," false",[350,619,620],{"class":464},",",[350,622,623],{"class":579}," entrypoint",[350,625,448],{"class":464},[350,627,478],{"class":464},[350,629,630],{"class":359},"inertia\u002Fssr.ts",[350,632,556],{"class":464},[350,634,472],{"class":464},[350,636,637],{"class":464}," }),\n",[350,639,640,643,645,648,650,653,655,658,660,663,666,668,670,672,675,677,680],{"class":352,"line":56},[350,641,642],{"class":355},"    adonisjs",[350,644,601],{"class":464},[350,646,647],{"class":579}," entrypoints",[350,649,448],{"class":464},[350,651,652],{"class":464}," [",[350,654,556],{"class":464},[350,656,657],{"class":359},"inertia\u002Fapp.ts",[350,659,556],{"class":464},[350,661,662],{"class":464},"],",[350,664,665],{"class":579}," reload",[350,667,448],{"class":464},[350,669,652],{"class":464},[350,671,556],{"class":464},[350,673,674],{"class":359},"resources\u002Fviews\u002F**\u002F*.edge",[350,676,556],{"class":464},[350,678,679],{"class":464},"]",[350,681,637],{"class":464},[350,683,685,688],{"class":684,"line":80},[352,536,537],[350,686,687],{"class":355},"    maizzle",[350,689,601],{"class":464},[350,691,693,696,698,700,702,704],{"class":692,"line":36},[352,536,537],[350,694,695],{"class":579},"      root",[350,697,448],{"class":464},[350,699,478],{"class":464},[350,701,378],{"class":359},[350,703,556],{"class":464},[350,705,620],{"class":464},[350,707,709,712,714,716,718,721,723],{"class":708,"line":73},[352,536,537],[350,710,711],{"class":579},"      content",[350,713,448],{"class":464},[350,715,652],{"class":464},[350,717,556],{"class":464},[350,719,720],{"class":359},".\u002F**\u002F*.vue",[350,722,556],{"class":464},[350,724,662],{"class":464},[350,726,728,731,733],{"class":727,"line":132},[352,536,537],[350,729,730],{"class":579},"      output",[350,732,448],{"class":464},[350,734,465],{"class":464},[350,736,738,741,743,745,748,750],{"class":737,"line":66},[352,536,537],[350,739,740],{"class":579},"        path",[350,742,448],{"class":464},[350,744,478],{"class":464},[350,746,747],{"class":359},"build\u002Femails",[350,749,556],{"class":464},[350,751,620],{"class":464},[350,753,755],{"class":754,"line":112},[352,536,537],[350,756,757],{"class":464},"      },",[350,759,761],{"class":760,"line":40},[352,536,537],[350,762,763],{"class":464},"    }),",[350,765,766],{"class":352,"line":44},[350,767,768],{"class":464},"  ],\n",[350,770,771],{"class":352,"line":84},[350,772,773],{"class":464},"})\n",[326,775,776,777,780],{},"See ",[778,779,173],"a",{"href":172}," for all available options.",[369,782,784],{"id":783},"typescript","TypeScript",[326,786,787,788,791,792,448],{},"Maizzle generates type declarations for auto-imported components and composables in ",[347,789,790],{},"emails\u002F.maizzle\u002F",". To enable type checking for your email templates, create a ",[347,793,794],{},"tsconfig.json",[340,796,801],{"className":797,"code":798,"filename":799,"language":800,"meta":345,"style":345},"language-json shiki shiki-themes laserwave","{\n  \"compilerOptions\": {\n    \"target\": \"ES2022\",\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"bundler\",\n    \"composite\": true,\n    \"strict\": true,\n    \"esModuleInterop\": true,\n    \"skipLibCheck\": true\n  },\n  \"include\": [\n    \".\u002F**\u002F*.vue\",\n    \".\u002F.maizzle\u002F*.d.ts\"\n  ]\n}\n","emails\u002Ftsconfig.json","json",[347,802,803,808,824,847,867,887,903,918,933,947,952,965,975,985,990],{"__ignoreMap":345},[350,804,805],{"class":352,"line":18},[350,806,807],{"class":464},"{\n",[350,809,810,813,816,819,821],{"class":352,"line":13},[350,811,812],{"class":464},"  \"",[350,814,815],{"class":460},"compilerOptions",[350,817,818],{"class":464},"\"",[350,820,448],{"class":464},[350,822,823],{"class":464}," {\n",[350,825,826,829,832,834,836,839,842,844],{"class":352,"line":32},[350,827,828],{"class":464},"    \"",[350,830,831],{"class":460},"target",[350,833,818],{"class":464},[350,835,448],{"class":464},[350,837,838],{"class":464}," \"",[350,840,841],{"class":359},"ES2022",[350,843,818],{"class":464},[350,845,846],{"class":464},",\n",[350,848,849,851,854,856,858,860,863,865],{"class":352,"line":27},[350,850,828],{"class":464},[350,852,853],{"class":460},"module",[350,855,818],{"class":464},[350,857,448],{"class":464},[350,859,838],{"class":464},[350,861,862],{"class":359},"ESNext",[350,864,818],{"class":464},[350,866,846],{"class":464},[350,868,869,871,874,876,878,880,883,885],{"class":352,"line":52},[350,870,828],{"class":464},[350,872,873],{"class":460},"moduleResolution",[350,875,818],{"class":464},[350,877,448],{"class":464},[350,879,838],{"class":464},[350,881,882],{"class":359},"bundler",[350,884,818],{"class":464},[350,886,846],{"class":464},[350,888,889,891,894,896,898,901],{"class":352,"line":128},[350,890,828],{"class":464},[350,892,893],{"class":460},"composite",[350,895,818],{"class":464},[350,897,448],{"class":464},[350,899,900],{"class":616}," true",[350,902,846],{"class":464},[350,904,905,907,910,912,914,916],{"class":352,"line":124},[350,906,828],{"class":464},[350,908,909],{"class":460},"strict",[350,911,818],{"class":464},[350,913,448],{"class":464},[350,915,900],{"class":616},[350,917,846],{"class":464},[350,919,920,922,925,927,929,931],{"class":352,"line":48},[350,921,828],{"class":464},[350,923,924],{"class":460},"esModuleInterop",[350,926,818],{"class":464},[350,928,448],{"class":464},[350,930,900],{"class":616},[350,932,846],{"class":464},[350,934,935,937,940,942,944],{"class":352,"line":23},[350,936,828],{"class":464},[350,938,939],{"class":460},"skipLibCheck",[350,941,818],{"class":464},[350,943,448],{"class":464},[350,945,946],{"class":616}," true\n",[350,948,949],{"class":352,"line":140},[350,950,951],{"class":464},"  },\n",[350,953,954,956,959,961,963],{"class":352,"line":56},[350,955,812],{"class":464},[350,957,958],{"class":460},"include",[350,960,818],{"class":464},[350,962,448],{"class":464},[350,964,585],{"class":464},[350,966,967,969,971,973],{"class":352,"line":80},[350,968,828],{"class":464},[350,970,720],{"class":359},[350,972,818],{"class":464},[350,974,846],{"class":464},[350,976,977,979,982],{"class":352,"line":36},[350,978,828],{"class":464},[350,980,981],{"class":359},".\u002F.maizzle\u002F*.d.ts",[350,983,984],{"class":464},"\"\n",[350,986,987],{"class":352,"line":73},[350,988,989],{"class":464},"  ]\n",[350,991,992],{"class":352,"line":132},[350,993,994],{"class":464},"}\n",[326,996,997,998,448],{},"Then add it as a project reference in your root ",[347,999,794],{},[340,1001,1004],{"className":1002,"code":1003,"filename":794,"language":800,"meta":345,"style":345},"language-json shiki shiki-themes laserwave has-diff","{\n  \"extends\": \"@adonisjs\u002Ftsconfig\u002Ftsconfig.app.json\",\n  \"compilerOptions\": {\n    \"rootDir\": \".\u002F\",\n    \"outDir\": \".\u002Fbuild\"\n  },\n  \"references\": [\n    { \"path\": \".\u002Ftsconfig.inertia.json\" },\n    { \"path\": \".\u002Femails\" } \u002F\u002F [!code ++]\n  ]\n}\n",[347,1005,1006,1010,1030,1042,1062,1080,1084,1097,1121,1143,1147],{"__ignoreMap":345},[350,1007,1008],{"class":352,"line":18},[350,1009,807],{"class":464},[350,1011,1012,1014,1017,1019,1021,1023,1026,1028],{"class":352,"line":13},[350,1013,812],{"class":464},[350,1015,1016],{"class":460},"extends",[350,1018,818],{"class":464},[350,1020,448],{"class":464},[350,1022,838],{"class":464},[350,1024,1025],{"class":359},"@adonisjs\u002Ftsconfig\u002Ftsconfig.app.json",[350,1027,818],{"class":464},[350,1029,846],{"class":464},[350,1031,1032,1034,1036,1038,1040],{"class":352,"line":32},[350,1033,812],{"class":464},[350,1035,815],{"class":460},[350,1037,818],{"class":464},[350,1039,448],{"class":464},[350,1041,823],{"class":464},[350,1043,1044,1046,1049,1051,1053,1055,1058,1060],{"class":352,"line":27},[350,1045,828],{"class":464},[350,1047,1048],{"class":460},"rootDir",[350,1050,818],{"class":464},[350,1052,448],{"class":464},[350,1054,838],{"class":464},[350,1056,1057],{"class":359},".\u002F",[350,1059,818],{"class":464},[350,1061,846],{"class":464},[350,1063,1064,1066,1069,1071,1073,1075,1078],{"class":352,"line":52},[350,1065,828],{"class":464},[350,1067,1068],{"class":460},"outDir",[350,1070,818],{"class":464},[350,1072,448],{"class":464},[350,1074,838],{"class":464},[350,1076,1077],{"class":359},".\u002Fbuild",[350,1079,984],{"class":464},[350,1081,1082],{"class":352,"line":128},[350,1083,951],{"class":464},[350,1085,1086,1088,1091,1093,1095],{"class":352,"line":124},[350,1087,812],{"class":464},[350,1089,1090],{"class":460},"references",[350,1092,818],{"class":464},[350,1094,448],{"class":464},[350,1096,585],{"class":464},[350,1098,1099,1102,1104,1107,1109,1111,1113,1116,1118],{"class":352,"line":48},[350,1100,1101],{"class":464},"    {",[350,1103,838],{"class":464},[350,1105,1106],{"class":460},"path",[350,1108,818],{"class":464},[350,1110,448],{"class":464},[350,1112,838],{"class":464},[350,1114,1115],{"class":359},".\u002Ftsconfig.inertia.json",[350,1117,818],{"class":464},[350,1119,1120],{"class":464}," },\n",[350,1122,1124,1126,1128,1130,1132,1134,1136,1139,1141],{"class":1123,"line":23},[352,536,537],[350,1125,1101],{"class":464},[350,1127,838],{"class":464},[350,1129,1106],{"class":460},[350,1131,818],{"class":464},[350,1133,448],{"class":464},[350,1135,838],{"class":464},[350,1137,1138],{"class":359},".\u002Femails",[350,1140,818],{"class":464},[350,1142,472],{"class":464},[350,1144,1145],{"class":352,"line":140},[350,1146,989],{"class":464},[350,1148,1149],{"class":352,"line":56},[350,1150,994],{"class":464},[333,1152,1154],{"id":1153},"usage","Usage",[326,1156,1157,1158,1160,1161,1163,1164,1163,1166,1168],{},"Create Vue SFC email templates in your ",[347,1159,378],{}," directory. Maizzle components like ",[347,1162,76],{},", ",[347,1165,51],{},[347,1167,35],{},", etc. are auto-imported:",[340,1170,1175],{"className":1171,"code":1172,"filename":1173,"language":1174,"meta":345,"style":345},"language-vue shiki shiki-themes laserwave","\u003Cscript setup>\n  const name = 'World'\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CLayout>\n    \u003CContainer class=\"max-w-xl\">\n      \u003CHeading class=\"text-2xl\">Hello, {{ name }}!\u003C\u002FHeading>\n      \u003CButton\n        href=\"https:\u002F\u002Fexample.com\"\n        class=\"bg-slate-950 hover:bg-slate-800\"\n      >Get Started\u003C\u002FButton>\n    \u003C\u002FContainer>\n  \u003C\u002FLayout>\n\u003C\u002Ftemplate>\n","emails\u002Fwelcome.vue","vue",[347,1176,1177,1192,1211,1220,1224,1233,1242,1264,1294,1301,1315,1329,1343,1352,1361],{"__ignoreMap":345},[350,1178,1179,1182,1186,1189],{"class":352,"line":18},[350,1180,1181],{"class":464},"\u003C",[350,1183,1185],{"class":1184},"sb4Pa","script",[350,1187,1188],{"class":355}," setup",[350,1190,1191],{"class":464},">\n",[350,1193,1194,1198,1201,1204,1206,1209],{"class":352,"line":13},[350,1195,1197],{"class":1196},"sIihq","  const",[350,1199,1200],{"class":616}," name",[350,1202,1203],{"class":1184}," =",[350,1205,478],{"class":464},[350,1207,1208],{"class":359},"World",[350,1210,484],{"class":464},[350,1212,1213,1216,1218],{"class":352,"line":32},[350,1214,1215],{"class":464},"\u003C\u002F",[350,1217,1185],{"class":1184},[350,1219,1191],{"class":464},[350,1221,1222],{"class":352,"line":27},[350,1223,561],{"emptyLinePlaceholder":14},[350,1225,1226,1228,1231],{"class":352,"line":52},[350,1227,1181],{"class":464},[350,1229,1230],{"class":1184},"template",[350,1232,1191],{"class":464},[350,1234,1235,1238,1240],{"class":352,"line":128},[350,1236,1237],{"class":464},"  \u003C",[350,1239,76],{"class":1184},[350,1241,1191],{"class":464},[350,1243,1244,1247,1249,1252,1255,1257,1260,1262],{"class":352,"line":124},[350,1245,1246],{"class":464},"    \u003C",[350,1248,51],{"class":1184},[350,1250,1251],{"class":355}," class",[350,1253,1254],{"class":464},"=",[350,1256,818],{"class":464},[350,1258,1259],{"class":359},"max-w-xl",[350,1261,818],{"class":464},[350,1263,1191],{"class":464},[350,1265,1266,1269,1271,1273,1275,1277,1280,1282,1285,1288,1290,1292],{"class":352,"line":48},[350,1267,1268],{"class":464},"      \u003C",[350,1270,62],{"class":1184},[350,1272,1251],{"class":355},[350,1274,1254],{"class":464},[350,1276,818],{"class":464},[350,1278,1279],{"class":359},"text-2xl",[350,1281,818],{"class":464},[350,1283,1284],{"class":464},">",[350,1286,1287],{"class":579},"Hello, {{ name }}!",[350,1289,1215],{"class":464},[350,1291,62],{"class":1184},[350,1293,1191],{"class":464},[350,1295,1296,1298],{"class":352,"line":23},[350,1297,1268],{"class":464},[350,1299,1300],{"class":1184},"Button\n",[350,1302,1303,1306,1308,1310,1313],{"class":352,"line":140},[350,1304,1305],{"class":355},"        href",[350,1307,1254],{"class":464},[350,1309,818],{"class":464},[350,1311,1312],{"class":359},"https:\u002F\u002Fexample.com",[350,1314,984],{"class":464},[350,1316,1317,1320,1322,1324,1327],{"class":352,"line":56},[350,1318,1319],{"class":355},"        class",[350,1321,1254],{"class":464},[350,1323,818],{"class":464},[350,1325,1326],{"class":359},"bg-slate-950 hover:bg-slate-800",[350,1328,984],{"class":464},[350,1330,1331,1334,1337,1339,1341],{"class":352,"line":80},[350,1332,1333],{"class":464},"      >",[350,1335,1336],{"class":579},"Get Started",[350,1338,1215],{"class":464},[350,1340,35],{"class":1184},[350,1342,1191],{"class":464},[350,1344,1345,1348,1350],{"class":352,"line":36},[350,1346,1347],{"class":464},"    \u003C\u002F",[350,1349,51],{"class":1184},[350,1351,1191],{"class":464},[350,1353,1354,1357,1359],{"class":352,"line":73},[350,1355,1356],{"class":464},"  \u003C\u002F",[350,1358,76],{"class":1184},[350,1360,1191],{"class":464},[350,1362,1363,1365,1367],{"class":352,"line":132},[350,1364,1215],{"class":464},[350,1366,1230],{"class":1184},[350,1368,1191],{"class":464},[369,1370,174],{"id":1371},"development",[326,1373,1374,1375,1378],{},"Run ",[347,1376,1377],{},"node ace serve --hmr"," as usual. Maizzle starts its own dev server alongside AdonisJS:",[340,1380,1382],{"className":342,"code":1381,"language":344,"meta":345,"style":345},"npm run dev\n",[347,1383,1384],{"__ignoreMap":345},[350,1385,1386,1388,1391],{"class":352,"line":18},[350,1387,356],{"class":355},[350,1389,1390],{"class":359}," run",[350,1392,1393],{"class":359}," dev\n",[1395,1396,1397,1405],"ul",{},[1398,1399,1400,1401,1404],"li",{},"Your AdonisJS app runs on its default port (typically ",[347,1402,1403],{},"3333",")",[1398,1406,1407,1408,1404],{},"The Maizzle email preview UI runs on the port you configured (default ",[347,1409,1410],{},"3000",[326,1412,1413],{},"Changes to email templates are automatically reflected in the Maizzle preview UI.",[369,1415,1417],{"id":1416},"production-build","Production build",[326,1419,1420,1421,1424,1425,1428,1429,448],{},"When you run ",[347,1422,1423],{},"node ace build",", Maizzle compiles your email templates to static HTML files in the configured ",[347,1426,1427],{},"output.path",", which in our example is ",[347,1430,747],{},[340,1432,1434],{"className":342,"code":1433,"language":344,"meta":345,"style":345},"npm run build\n",[347,1435,1436],{"__ignoreMap":345},[350,1437,1438,1440,1442],{"class":352,"line":18},[350,1439,356],{"class":355},[350,1441,1390],{"class":359},[350,1443,1444],{"class":359}," build\n",[333,1446,1448],{"id":1447},"server-api","Server API",[326,1450,1451,1452,1455],{},"You can also render email templates on-demand using Maizzle's ",[347,1453,1454],{},"render"," function in an AdonisJS controller or route. This is useful when you need to render emails dynamically, for example with user data from a database.",[326,1457,1458,1459,1461],{},"The ",[347,1460,1454],{}," function accepts either a file path or an SFC string directly, and returns compiled HTML with CSS inlined, purged, and formatted.",[369,1463,1465],{"id":1464},"api-route","API route",[326,1467,1468,1469,1472],{},"Create a route that renders an email template. You can read a ",[347,1470,1471],{},".vue"," file from disk:",[340,1474,1478],{"className":1475,"code":1476,"filename":1477,"language":453,"meta":345,"style":345},"language-ts shiki shiki-themes laserwave","import { resolve } from 'node:path'\nimport { render } from '@maizzle\u002Fframework'\nimport router from '@adonisjs\u002Fcore\u002Fservices\u002Frouter'\n\nrouter.post('\u002Fapi\u002Frender', async () => {\n  const { html } = await render(resolve('emails\u002Fwelcome.vue'))\n\n  return { html }\n})\n","start\u002Froutes.ts",[347,1479,1480,1500,1519,1535,1539,1573,1607,1611,1623],{"__ignoreMap":345},[350,1481,1482,1484,1486,1489,1491,1493,1495,1498],{"class":352,"line":18},[350,1483,461],{"class":460},[350,1485,465],{"class":464},[350,1487,1488],{"class":468}," resolve",[350,1490,472],{"class":464},[350,1492,475],{"class":460},[350,1494,478],{"class":464},[350,1496,1497],{"class":359},"node:path",[350,1499,484],{"class":464},[350,1501,1502,1504,1506,1509,1511,1513,1515,1517],{"class":352,"line":13},[350,1503,461],{"class":460},[350,1505,465],{"class":464},[350,1507,1508],{"class":468}," render",[350,1510,472],{"class":464},[350,1512,475],{"class":460},[350,1514,478],{"class":464},[350,1516,553],{"class":359},[350,1518,484],{"class":464},[350,1520,1521,1523,1526,1528,1530,1533],{"class":352,"line":32},[350,1522,461],{"class":460},[350,1524,1525],{"class":468}," router",[350,1527,475],{"class":460},[350,1529,478],{"class":464},[350,1531,1532],{"class":359},"@adonisjs\u002Fcore\u002Fservices\u002Frouter",[350,1534,484],{"class":464},[350,1536,1537],{"class":352,"line":27},[350,1538,561],{"emptyLinePlaceholder":14},[350,1540,1541,1544,1547,1550,1553,1555,1558,1560,1562,1565,1568,1571],{"class":352,"line":52},[350,1542,1543],{"class":468},"router",[350,1545,1546],{"class":1184},".",[350,1548,1549],{"class":355},"post",[350,1551,1552],{"class":464},"(",[350,1554,556],{"class":464},[350,1556,1557],{"class":359},"\u002Fapi\u002Frender",[350,1559,556],{"class":464},[350,1561,620],{"class":464},[350,1563,1564],{"class":579}," async ",[350,1566,1567],{"class":464},"()",[350,1569,1570],{"class":1184}," =>",[350,1572,823],{"class":464},[350,1574,1575,1577,1579,1582,1584,1586,1589,1591,1593,1596,1598,1600,1602,1604],{"class":352,"line":128},[350,1576,1197],{"class":1196},[350,1578,465],{"class":464},[350,1580,1581],{"class":468}," html",[350,1583,472],{"class":464},[350,1585,1203],{"class":1184},[350,1587,1588],{"class":460}," await",[350,1590,1508],{"class":355},[350,1592,1552],{"class":464},[350,1594,1595],{"class":355},"resolve",[350,1597,1552],{"class":464},[350,1599,556],{"class":464},[350,1601,1173],{"class":359},[350,1603,556],{"class":464},[350,1605,1606],{"class":464},"))\n",[350,1608,1609],{"class":352,"line":124},[350,1610,561],{"emptyLinePlaceholder":14},[350,1612,1613,1616,1618,1620],{"class":352,"line":48},[350,1614,1615],{"class":460},"  return",[350,1617,465],{"class":464},[350,1619,1581],{"class":468},[350,1621,1622],{"class":464}," }\n",[350,1624,1625],{"class":352,"line":23},[350,1626,773],{"class":464},[326,1628,1629],{},"Or accept an SFC string in the request body:",[340,1631,1633],{"className":1475,"code":1632,"filename":1477,"language":453,"meta":345,"style":345},"import { render } from '@maizzle\u002Fframework'\nimport router from '@adonisjs\u002Fcore\u002Fservices\u002Frouter'\n\nrouter.post('\u002Fapi\u002Frender', async ({ request }) => {\n  const { template } = request.only(['template'])\n\n  const { html } = await render(template)\n\n  return { html }\n})\n",[347,1634,1635,1653,1667,1671,1703,1735,1739,1762,1766,1776],{"__ignoreMap":345},[350,1636,1637,1639,1641,1643,1645,1647,1649,1651],{"class":352,"line":18},[350,1638,461],{"class":460},[350,1640,465],{"class":464},[350,1642,1508],{"class":468},[350,1644,472],{"class":464},[350,1646,475],{"class":460},[350,1648,478],{"class":464},[350,1650,553],{"class":359},[350,1652,484],{"class":464},[350,1654,1655,1657,1659,1661,1663,1665],{"class":352,"line":13},[350,1656,461],{"class":460},[350,1658,1525],{"class":468},[350,1660,475],{"class":460},[350,1662,478],{"class":464},[350,1664,1532],{"class":359},[350,1666,484],{"class":464},[350,1668,1669],{"class":352,"line":32},[350,1670,561],{"emptyLinePlaceholder":14},[350,1672,1673,1675,1677,1679,1681,1683,1685,1687,1689,1691,1693,1696,1699,1701],{"class":352,"line":27},[350,1674,1543],{"class":468},[350,1676,1546],{"class":1184},[350,1678,1549],{"class":355},[350,1680,1552],{"class":464},[350,1682,556],{"class":464},[350,1684,1557],{"class":359},[350,1686,556],{"class":464},[350,1688,620],{"class":464},[350,1690,1564],{"class":579},[350,1692,601],{"class":464},[350,1694,1695],{"class":468}," request",[350,1697,1698],{"class":464}," })",[350,1700,1570],{"class":1184},[350,1702,823],{"class":464},[350,1704,1705,1707,1709,1712,1714,1716,1718,1720,1723,1726,1728,1730,1732],{"class":352,"line":52},[350,1706,1197],{"class":1196},[350,1708,465],{"class":464},[350,1710,1711],{"class":468}," template",[350,1713,472],{"class":464},[350,1715,1203],{"class":1184},[350,1717,1695],{"class":468},[350,1719,1546],{"class":1184},[350,1721,1722],{"class":355},"only",[350,1724,1725],{"class":464},"([",[350,1727,556],{"class":464},[350,1729,1230],{"class":359},[350,1731,556],{"class":464},[350,1733,1734],{"class":464},"])\n",[350,1736,1737],{"class":352,"line":128},[350,1738,561],{"emptyLinePlaceholder":14},[350,1740,1741,1743,1745,1747,1749,1751,1753,1755,1757,1759],{"class":352,"line":124},[350,1742,1197],{"class":1196},[350,1744,465],{"class":464},[350,1746,1581],{"class":468},[350,1748,472],{"class":464},[350,1750,1203],{"class":1184},[350,1752,1588],{"class":460},[350,1754,1508],{"class":355},[350,1756,1552],{"class":464},[350,1758,1230],{"class":468},[350,1760,1761],{"class":464},")\n",[350,1763,1764],{"class":352,"line":48},[350,1765,561],{"emptyLinePlaceholder":14},[350,1767,1768,1770,1772,1774],{"class":352,"line":23},[350,1769,1615],{"class":460},[350,1771,465],{"class":464},[350,1773,1581],{"class":468},[350,1775,1622],{"class":464},[350,1777,1778],{"class":352,"line":140},[350,1779,773],{"class":464},[369,1781,1783],{"id":1782},"displaying-the-result","Displaying the result",[326,1785,1786],{},"Since the rendered email is a full HTML document, use an iframe to display it in your Inertia\u002FVue page:",[340,1788,1791],{"className":1171,"code":1789,"filename":1790,"language":1174,"meta":345,"style":345},"\u003Cscript setup lang=\"ts\">\nimport { ref, onMounted } from 'vue'\n\nconst iframeRef = ref\u003CHTMLIFrameElement>()\n\nonMounted(async () => {\n  const res = await fetch('\u002Fapi\u002Frender', { method: 'POST' })\n  const { html } = await res.json()\n\n  if (iframeRef.value) {\n    iframeRef.value.srcdoc = html\n  }\n})\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Ciframe ref=\"iframeRef\" style=\"width: 100%; height: 100vh; border: none;\" \u002F>\n\u003C\u002Ftemplate>\n","inertia\u002Fpages\u002Fpreview.vue",[347,1792,1793,1814,1838,1842,1862,1866,1882,1923,1946,1950,1970,1989,1994,1998,2006,2010,2018,2052],{"__ignoreMap":345},[350,1794,1795,1797,1799,1801,1804,1806,1808,1810,1812],{"class":352,"line":18},[350,1796,1181],{"class":464},[350,1798,1185],{"class":1184},[350,1800,1188],{"class":355},[350,1802,1803],{"class":355}," lang",[350,1805,1254],{"class":464},[350,1807,818],{"class":464},[350,1809,453],{"class":359},[350,1811,818],{"class":464},[350,1813,1191],{"class":464},[350,1815,1816,1818,1820,1823,1825,1828,1830,1832,1834,1836],{"class":352,"line":13},[350,1817,461],{"class":460},[350,1819,465],{"class":464},[350,1821,1822],{"class":468}," ref",[350,1824,620],{"class":464},[350,1826,1827],{"class":468}," onMounted",[350,1829,472],{"class":464},[350,1831,475],{"class":460},[350,1833,478],{"class":464},[350,1835,1174],{"class":359},[350,1837,484],{"class":464},[350,1839,1840],{"class":352,"line":32},[350,1841,561],{"emptyLinePlaceholder":14},[350,1843,1844,1847,1850,1852,1854,1856,1859],{"class":352,"line":27},[350,1845,1846],{"class":1196},"const",[350,1848,1849],{"class":468}," iframeRef",[350,1851,1203],{"class":1184},[350,1853,1822],{"class":355},[350,1855,1181],{"class":464},[350,1857,1858],{"class":1184},"HTMLIFrameElement",[350,1860,1861],{"class":464},">()\n",[350,1863,1864],{"class":352,"line":52},[350,1865,561],{"emptyLinePlaceholder":14},[350,1867,1868,1871,1873,1876,1878,1880],{"class":352,"line":128},[350,1869,1870],{"class":355},"onMounted",[350,1872,1552],{"class":464},[350,1874,1875],{"class":579},"async ",[350,1877,1567],{"class":464},[350,1879,1570],{"class":1184},[350,1881,823],{"class":464},[350,1883,1884,1886,1889,1891,1893,1896,1898,1900,1902,1904,1906,1908,1911,1913,1915,1918,1920],{"class":352,"line":124},[350,1885,1197],{"class":1196},[350,1887,1888],{"class":468}," res",[350,1890,1203],{"class":1184},[350,1892,1588],{"class":460},[350,1894,1895],{"class":355}," fetch",[350,1897,1552],{"class":464},[350,1899,556],{"class":464},[350,1901,1557],{"class":359},[350,1903,556],{"class":464},[350,1905,620],{"class":464},[350,1907,465],{"class":464},[350,1909,1910],{"class":579}," method",[350,1912,448],{"class":464},[350,1914,478],{"class":464},[350,1916,1917],{"class":359},"POST",[350,1919,556],{"class":464},[350,1921,1922],{"class":464}," })\n",[350,1924,1925,1927,1929,1931,1933,1935,1937,1939,1941,1943],{"class":352,"line":48},[350,1926,1197],{"class":1196},[350,1928,465],{"class":464},[350,1930,1581],{"class":468},[350,1932,472],{"class":464},[350,1934,1203],{"class":1184},[350,1936,1588],{"class":460},[350,1938,1888],{"class":468},[350,1940,1546],{"class":1184},[350,1942,800],{"class":355},[350,1944,1945],{"class":464},"()\n",[350,1947,1948],{"class":352,"line":23},[350,1949,561],{"emptyLinePlaceholder":14},[350,1951,1952,1955,1958,1961,1963,1966,1968],{"class":352,"line":140},[350,1953,1954],{"class":460},"  if",[350,1956,1957],{"class":464}," (",[350,1959,1960],{"class":468},"iframeRef",[350,1962,1546],{"class":1184},[350,1964,1965],{"class":460},"value",[350,1967,1404],{"class":464},[350,1969,823],{"class":464},[350,1971,1972,1975,1977,1979,1981,1984,1986],{"class":352,"line":56},[350,1973,1974],{"class":468},"    iframeRef",[350,1976,1546],{"class":1184},[350,1978,1965],{"class":468},[350,1980,1546],{"class":1184},[350,1982,1983],{"class":460},"srcdoc",[350,1985,1203],{"class":1184},[350,1987,1988],{"class":468}," html\n",[350,1990,1991],{"class":352,"line":80},[350,1992,1993],{"class":464},"  }\n",[350,1995,1996],{"class":352,"line":36},[350,1997,773],{"class":464},[350,1999,2000,2002,2004],{"class":352,"line":73},[350,2001,1215],{"class":464},[350,2003,1185],{"class":1184},[350,2005,1191],{"class":464},[350,2007,2008],{"class":352,"line":132},[350,2009,561],{"emptyLinePlaceholder":14},[350,2011,2012,2014,2016],{"class":352,"line":66},[350,2013,1181],{"class":464},[350,2015,1230],{"class":1184},[350,2017,1191],{"class":464},[350,2019,2020,2022,2025,2027,2029,2031,2033,2035,2038,2040,2042,2045,2047,2050],{"class":352,"line":112},[350,2021,1237],{"class":464},[350,2023,2024],{"class":1184},"iframe",[350,2026,1822],{"class":355},[350,2028,1254],{"class":464},[350,2030,818],{"class":464},[350,2032,1960],{"class":359},[350,2034,818],{"class":464},[350,2036,2037],{"class":355}," style",[350,2039,1254],{"class":464},[350,2041,818],{"class":464},[350,2043,2044],{"class":359},"width: 100%; height: 100vh; border: none;",[350,2046,818],{"class":464},[350,2048,2049],{"class":579}," \u002F",[350,2051,1191],{"class":464},[350,2053,2054,2056,2058],{"class":352,"line":40},[350,2055,1215],{"class":464},[350,2057,1230],{"class":1184},[350,2059,1191],{"class":464},[369,2061,2063],{"id":2062},"sending-emails","Sending emails",[326,2065,2066,2067,448],{},"You can use the rendered HTML to send emails with AdonisJS Mail. Here's an example using the ",[778,2068,2073],{"href":2069,"rel":2070,"target":2072},"https:\u002F\u002Fdocs.adonisjs.com\u002Fguides\u002Fdigging-deeper\u002Fmail",[2071],"nofollow","_blank","AdonisJS mail package",[340,2075,2078],{"className":1475,"code":2076,"filename":2077,"language":453,"meta":345,"style":345},"import { resolve } from 'node:path'\nimport { render } from '@maizzle\u002Fframework'\nimport { BaseMail } from '@adonisjs\u002Fmail'\n\nexport default class WelcomeMail extends BaseMail {\n  from = 'no-reply@example.com'\n  subject = 'Welcome!'\n\n  constructor(private user: { email: string }) {\n    super()\n  }\n\n  async prepare() {\n    const { html } = await render(resolve('emails\u002Fwelcome.vue'))\n\n    this.message.to(this.user.email).html(html)\n  }\n}\n","app\u002Fmails\u002Fwelcome.ts",[347,2079,2080,2098,2116,2136,2140,2159,2173,2187,2191,2221,2228,2232,2236,2245,2276,2280,2323,2327],{"__ignoreMap":345},[350,2081,2082,2084,2086,2088,2090,2092,2094,2096],{"class":352,"line":18},[350,2083,461],{"class":460},[350,2085,465],{"class":464},[350,2087,1488],{"class":468},[350,2089,472],{"class":464},[350,2091,475],{"class":460},[350,2093,478],{"class":464},[350,2095,1497],{"class":359},[350,2097,484],{"class":464},[350,2099,2100,2102,2104,2106,2108,2110,2112,2114],{"class":352,"line":13},[350,2101,461],{"class":460},[350,2103,465],{"class":464},[350,2105,1508],{"class":468},[350,2107,472],{"class":464},[350,2109,475],{"class":460},[350,2111,478],{"class":464},[350,2113,553],{"class":359},[350,2115,484],{"class":464},[350,2117,2118,2120,2122,2125,2127,2129,2131,2134],{"class":352,"line":32},[350,2119,461],{"class":460},[350,2121,465],{"class":464},[350,2123,2124],{"class":468}," BaseMail",[350,2126,472],{"class":464},[350,2128,475],{"class":460},[350,2130,478],{"class":464},[350,2132,2133],{"class":359},"@adonisjs\u002Fmail",[350,2135,484],{"class":464},[350,2137,2138],{"class":352,"line":27},[350,2139,561],{"emptyLinePlaceholder":14},[350,2141,2142,2144,2146,2148,2151,2154,2157],{"class":352,"line":52},[350,2143,566],{"class":460},[350,2145,569],{"class":460},[350,2147,1251],{"class":460},[350,2149,2150],{"class":1196}," WelcomeMail",[350,2152,2153],{"class":1196}," extends",[350,2155,2156],{"class":579}," BaseMail ",[350,2158,807],{"class":464},[350,2160,2161,2164,2166,2168,2171],{"class":352,"line":128},[350,2162,2163],{"class":579},"  from ",[350,2165,1254],{"class":1184},[350,2167,478],{"class":464},[350,2169,2170],{"class":359},"no-reply@example.com",[350,2172,484],{"class":464},[350,2174,2175,2178,2180,2182,2185],{"class":352,"line":124},[350,2176,2177],{"class":579},"  subject ",[350,2179,1254],{"class":1184},[350,2181,478],{"class":464},[350,2183,2184],{"class":359},"Welcome!",[350,2186,484],{"class":464},[350,2188,2189],{"class":352,"line":48},[350,2190,561],{"emptyLinePlaceholder":14},[350,2192,2193,2196,2198,2201,2204,2206,2208,2211,2213,2216,2219],{"class":352,"line":23},[350,2194,2195],{"class":1196},"  constructor",[350,2197,1552],{"class":464},[350,2199,2200],{"class":1196},"private",[350,2202,2203],{"class":468}," user",[350,2205,448],{"class":1184},[350,2207,465],{"class":464},[350,2209,2210],{"class":1196}," email",[350,2212,448],{"class":1184},[350,2214,2215],{"class":1196}," string ",[350,2217,2218],{"class":464},"})",[350,2220,823],{"class":464},[350,2222,2223,2226],{"class":352,"line":140},[350,2224,2225],{"class":355},"    super",[350,2227,1945],{"class":464},[350,2229,2230],{"class":352,"line":56},[350,2231,1993],{"class":464},[350,2233,2234],{"class":352,"line":80},[350,2235,561],{"emptyLinePlaceholder":14},[350,2237,2238,2241,2243],{"class":352,"line":36},[350,2239,2240],{"class":355},"  async prepare",[350,2242,1567],{"class":464},[350,2244,823],{"class":464},[350,2246,2247,2250,2252,2254,2256,2258,2260,2262,2264,2266,2268,2270,2272,2274],{"class":352,"line":73},[350,2248,2249],{"class":1196},"    const",[350,2251,465],{"class":464},[350,2253,1581],{"class":468},[350,2255,472],{"class":464},[350,2257,1203],{"class":1184},[350,2259,1588],{"class":460},[350,2261,1508],{"class":355},[350,2263,1552],{"class":464},[350,2265,1595],{"class":355},[350,2267,1552],{"class":464},[350,2269,556],{"class":464},[350,2271,1173],{"class":359},[350,2273,556],{"class":464},[350,2275,1606],{"class":464},[350,2277,2278],{"class":352,"line":132},[350,2279,561],{"emptyLinePlaceholder":14},[350,2281,2282,2285,2287,2290,2292,2295,2297,2300,2302,2305,2307,2310,2312,2314,2317,2319,2321],{"class":352,"line":66},[350,2283,2284],{"class":616},"    this",[350,2286,1546],{"class":1184},[350,2288,2289],{"class":468},"message",[350,2291,1546],{"class":1184},[350,2293,2294],{"class":355},"to",[350,2296,1552],{"class":464},[350,2298,2299],{"class":616},"this",[350,2301,1546],{"class":1184},[350,2303,2304],{"class":468},"user",[350,2306,1546],{"class":1184},[350,2308,2309],{"class":460},"email",[350,2311,1404],{"class":464},[350,2313,1546],{"class":1184},[350,2315,2316],{"class":355},"html",[350,2318,1552],{"class":464},[350,2320,2316],{"class":468},[350,2322,1761],{"class":464},[350,2324,2325],{"class":352,"line":112},[350,2326,1993],{"class":464},[350,2328,2329],{"class":352,"line":40},[350,2330,994],{"class":464},[326,2332,2333],{},"Then send it from a controller or route:",[340,2335,2338],{"className":1475,"code":2336,"filename":2337,"language":453,"meta":345,"style":345},"import mail from '@adonisjs\u002Fmail\u002Fservices\u002Fmain'\nimport WelcomeMail from '#mails\u002Fwelcome'\n\nawait mail.send(new WelcomeMail(user))\n","app\u002Fcontrollers\u002Fusers_controller.ts",[347,2339,2340,2356,2371,2375],{"__ignoreMap":345},[350,2341,2342,2344,2347,2349,2351,2354],{"class":352,"line":18},[350,2343,461],{"class":460},[350,2345,2346],{"class":468}," mail",[350,2348,475],{"class":460},[350,2350,478],{"class":464},[350,2352,2353],{"class":359},"@adonisjs\u002Fmail\u002Fservices\u002Fmain",[350,2355,484],{"class":464},[350,2357,2358,2360,2362,2364,2366,2369],{"class":352,"line":13},[350,2359,461],{"class":460},[350,2361,2150],{"class":468},[350,2363,475],{"class":460},[350,2365,478],{"class":464},[350,2367,2368],{"class":359},"#mails\u002Fwelcome",[350,2370,484],{"class":464},[350,2372,2373],{"class":352,"line":32},[350,2374,561],{"emptyLinePlaceholder":14},[350,2376,2377,2380,2382,2384,2387,2389,2392,2394,2396,2398],{"class":352,"line":27},[350,2378,2379],{"class":460},"await",[350,2381,2346],{"class":468},[350,2383,1546],{"class":1184},[350,2385,2386],{"class":355},"send",[350,2388,1552],{"class":464},[350,2390,2391],{"class":1196},"new",[350,2393,2150],{"class":355},[350,2395,1552],{"class":464},[350,2397,2304],{"class":468},[350,2399,1606],{"class":464},[326,2401,2402,2403,2406],{},"Use ",[347,2404,2405],{},"mail.sendLater(new WelcomeMail(user))"," instead if you want the email to be queued for background delivery.",[326,2408,2409],{},"Or use Nodemailer directly:",[340,2411,2413],{"className":1475,"code":2412,"filename":1477,"language":453,"meta":345,"style":345},"import { resolve } from 'node:path'\nimport { render } from '@maizzle\u002Fframework'\nimport { createTransport } from 'nodemailer'\nimport router from '@adonisjs\u002Fcore\u002Fservices\u002Frouter'\n\nconst transporter = createTransport({\n  host: 'smtp.example.com',\n  port: 587,\n  auth: {\n    user: process.env.SMTP_USER,\n    pass: process.env.SMTP_PASS,\n  },\n})\n\nrouter.post('\u002Fapi\u002Fsend', async ({ request }) => {\n  const { to } = request.only(['to'])\n\n  const { html } = await render(resolve('emails\u002Fwelcome.vue'))\n\n  await transporter.sendMail({\n    from: 'no-reply@example.com',\n    to,\n    subject: 'Welcome!',\n    html,\n  })\n\n  return { success: true }\n})\n",[347,2414,2415,2433,2451,2471,2485,2489,2502,2518,2531,2540,2562,2582,2586,2590,2594,2625,2654,2658,2688,2692,2706,2721,2728,2743,2750,2756,2760,2775],{"__ignoreMap":345},[350,2416,2417,2419,2421,2423,2425,2427,2429,2431],{"class":352,"line":18},[350,2418,461],{"class":460},[350,2420,465],{"class":464},[350,2422,1488],{"class":468},[350,2424,472],{"class":464},[350,2426,475],{"class":460},[350,2428,478],{"class":464},[350,2430,1497],{"class":359},[350,2432,484],{"class":464},[350,2434,2435,2437,2439,2441,2443,2445,2447,2449],{"class":352,"line":13},[350,2436,461],{"class":460},[350,2438,465],{"class":464},[350,2440,1508],{"class":468},[350,2442,472],{"class":464},[350,2444,475],{"class":460},[350,2446,478],{"class":464},[350,2448,553],{"class":359},[350,2450,484],{"class":464},[350,2452,2453,2455,2457,2460,2462,2464,2466,2469],{"class":352,"line":32},[350,2454,461],{"class":460},[350,2456,465],{"class":464},[350,2458,2459],{"class":468}," createTransport",[350,2461,472],{"class":464},[350,2463,475],{"class":460},[350,2465,478],{"class":464},[350,2467,2468],{"class":359},"nodemailer",[350,2470,484],{"class":464},[350,2472,2473,2475,2477,2479,2481,2483],{"class":352,"line":27},[350,2474,461],{"class":460},[350,2476,1525],{"class":468},[350,2478,475],{"class":460},[350,2480,478],{"class":464},[350,2482,1532],{"class":359},[350,2484,484],{"class":464},[350,2486,2487],{"class":352,"line":52},[350,2488,561],{"emptyLinePlaceholder":14},[350,2490,2491,2493,2496,2498,2500],{"class":352,"line":128},[350,2492,1846],{"class":1196},[350,2494,2495],{"class":468}," transporter",[350,2497,1203],{"class":1184},[350,2499,2459],{"class":355},[350,2501,574],{"class":464},[350,2503,2504,2507,2509,2511,2514,2516],{"class":352,"line":124},[350,2505,2506],{"class":579},"  host",[350,2508,448],{"class":464},[350,2510,478],{"class":464},[350,2512,2513],{"class":359},"smtp.example.com",[350,2515,556],{"class":464},[350,2517,846],{"class":464},[350,2519,2520,2523,2525,2529],{"class":352,"line":48},[350,2521,2522],{"class":579},"  port",[350,2524,448],{"class":464},[350,2526,2528],{"class":2527},"s0EtI"," 587",[350,2530,846],{"class":464},[350,2532,2533,2536,2538],{"class":352,"line":23},[350,2534,2535],{"class":579},"  auth",[350,2537,448],{"class":464},[350,2539,823],{"class":464},[350,2541,2542,2545,2547,2550,2552,2555,2557,2560],{"class":352,"line":140},[350,2543,2544],{"class":579},"    user",[350,2546,448],{"class":464},[350,2548,2549],{"class":468}," process",[350,2551,1546],{"class":1184},[350,2553,2554],{"class":468},"env",[350,2556,1546],{"class":1184},[350,2558,2559],{"class":468},"SMTP_USER",[350,2561,846],{"class":464},[350,2563,2564,2567,2569,2571,2573,2575,2577,2580],{"class":352,"line":56},[350,2565,2566],{"class":579},"    pass",[350,2568,448],{"class":464},[350,2570,2549],{"class":468},[350,2572,1546],{"class":1184},[350,2574,2554],{"class":468},[350,2576,1546],{"class":1184},[350,2578,2579],{"class":468},"SMTP_PASS",[350,2581,846],{"class":464},[350,2583,2584],{"class":352,"line":80},[350,2585,951],{"class":464},[350,2587,2588],{"class":352,"line":36},[350,2589,773],{"class":464},[350,2591,2592],{"class":352,"line":73},[350,2593,561],{"emptyLinePlaceholder":14},[350,2595,2596,2598,2600,2602,2604,2606,2609,2611,2613,2615,2617,2619,2621,2623],{"class":352,"line":132},[350,2597,1543],{"class":468},[350,2599,1546],{"class":1184},[350,2601,1549],{"class":355},[350,2603,1552],{"class":464},[350,2605,556],{"class":464},[350,2607,2608],{"class":359},"\u002Fapi\u002Fsend",[350,2610,556],{"class":464},[350,2612,620],{"class":464},[350,2614,1564],{"class":579},[350,2616,601],{"class":464},[350,2618,1695],{"class":468},[350,2620,1698],{"class":464},[350,2622,1570],{"class":1184},[350,2624,823],{"class":464},[350,2626,2627,2629,2631,2634,2636,2638,2640,2642,2644,2646,2648,2650,2652],{"class":352,"line":66},[350,2628,1197],{"class":1196},[350,2630,465],{"class":464},[350,2632,2633],{"class":468}," to",[350,2635,472],{"class":464},[350,2637,1203],{"class":1184},[350,2639,1695],{"class":468},[350,2641,1546],{"class":1184},[350,2643,1722],{"class":355},[350,2645,1725],{"class":464},[350,2647,556],{"class":464},[350,2649,2294],{"class":359},[350,2651,556],{"class":464},[350,2653,1734],{"class":464},[350,2655,2656],{"class":352,"line":112},[350,2657,561],{"emptyLinePlaceholder":14},[350,2659,2660,2662,2664,2666,2668,2670,2672,2674,2676,2678,2680,2682,2684,2686],{"class":352,"line":40},[350,2661,1197],{"class":1196},[350,2663,465],{"class":464},[350,2665,1581],{"class":468},[350,2667,472],{"class":464},[350,2669,1203],{"class":1184},[350,2671,1588],{"class":460},[350,2673,1508],{"class":355},[350,2675,1552],{"class":464},[350,2677,1595],{"class":355},[350,2679,1552],{"class":464},[350,2681,556],{"class":464},[350,2683,1173],{"class":359},[350,2685,556],{"class":464},[350,2687,1606],{"class":464},[350,2689,2690],{"class":352,"line":44},[350,2691,561],{"emptyLinePlaceholder":14},[350,2693,2694,2697,2699,2701,2704],{"class":352,"line":84},[350,2695,2696],{"class":460},"  await",[350,2698,2495],{"class":468},[350,2700,1546],{"class":1184},[350,2702,2703],{"class":355},"sendMail",[350,2705,574],{"class":464},[350,2707,2708,2711,2713,2715,2717,2719],{"class":352,"line":96},[350,2709,2710],{"class":579},"    from",[350,2712,448],{"class":464},[350,2714,478],{"class":464},[350,2716,2170],{"class":359},[350,2718,556],{"class":464},[350,2720,846],{"class":464},[350,2722,2723,2726],{"class":352,"line":88},[350,2724,2725],{"class":468},"    to",[350,2727,846],{"class":464},[350,2729,2730,2733,2735,2737,2739,2741],{"class":352,"line":100},[350,2731,2732],{"class":579},"    subject",[350,2734,448],{"class":464},[350,2736,478],{"class":464},[350,2738,2184],{"class":359},[350,2740,556],{"class":464},[350,2742,846],{"class":464},[350,2744,2745,2748],{"class":352,"line":144},[350,2746,2747],{"class":468},"    html",[350,2749,846],{"class":464},[350,2751,2753],{"class":352,"line":2752},25,[350,2754,2755],{"class":464},"  })\n",[350,2757,2758],{"class":352,"line":92},[350,2759,561],{"emptyLinePlaceholder":14},[350,2761,2762,2764,2766,2769,2771,2773],{"class":352,"line":148},[350,2763,1615],{"class":460},[350,2765,465],{"class":464},[350,2767,2768],{"class":579}," success",[350,2770,448],{"class":464},[350,2772,900],{"class":616},[350,2774,1622],{"class":464},[350,2776,2777],{"class":352,"line":120},[350,2778,773],{"class":464},[333,2780,2782],{"id":2781},"static-assets","Static assets",[326,2784,2785,2786,2789],{},"To include images or other static files with your emails, configure the ",[347,2787,2788],{},"static"," option:",[340,2791,2793],{"className":451,"code":2792,"filename":447,"language":453,"meta":345,"style":345},"\u002F\u002F ...\n\nexport default defineConfig({\n  plugins: [\n    \u002F\u002F ...\n    maizzle({\n      output: {\n        path: 'build\u002Femails',\n      },\n      static: { \u002F\u002F [!code ++]\n        source: ['emails\u002Fimages'], \u002F\u002F [!code ++]\n      }, \u002F\u002F [!code ++]\n    }),\n  ],\n})\n",[347,2794,2795,2801,2805,2815,2823,2828,2834,2842,2856,2861,2871,2890,2895,2900,2904],{"__ignoreMap":345},[350,2796,2797],{"class":352,"line":18},[350,2798,2800],{"class":2799},"sVsQ9","\u002F\u002F ...\n",[350,2802,2803],{"class":352,"line":13},[350,2804,561],{"emptyLinePlaceholder":14},[350,2806,2807,2809,2811,2813],{"class":352,"line":32},[350,2808,566],{"class":460},[350,2810,569],{"class":460},[350,2812,469],{"class":355},[350,2814,574],{"class":464},[350,2816,2817,2819,2821],{"class":352,"line":27},[350,2818,580],{"class":579},[350,2820,448],{"class":464},[350,2822,585],{"class":464},[350,2824,2825],{"class":352,"line":52},[350,2826,2827],{"class":2799},"    \u002F\u002F ...\n",[350,2829,2830,2832],{"class":352,"line":128},[350,2831,687],{"class":355},[350,2833,574],{"class":464},[350,2835,2836,2838,2840],{"class":352,"line":124},[350,2837,730],{"class":579},[350,2839,448],{"class":464},[350,2841,823],{"class":464},[350,2843,2844,2846,2848,2850,2852,2854],{"class":352,"line":48},[350,2845,740],{"class":579},[350,2847,448],{"class":464},[350,2849,478],{"class":464},[350,2851,747],{"class":359},[350,2853,556],{"class":464},[350,2855,846],{"class":464},[350,2857,2858],{"class":352,"line":23},[350,2859,2860],{"class":464},"      },\n",[350,2862,2864,2867,2869],{"class":2863,"line":140},[352,536,537],[350,2865,2866],{"class":579},"      static",[350,2868,448],{"class":464},[350,2870,465],{"class":464},[350,2872,2874,2877,2879,2881,2883,2886,2888],{"class":2873,"line":56},[352,536,537],[350,2875,2876],{"class":579},"        source",[350,2878,448],{"class":464},[350,2880,652],{"class":464},[350,2882,556],{"class":464},[350,2884,2885],{"class":359},"emails\u002Fimages",[350,2887,556],{"class":464},[350,2889,662],{"class":464},[350,2891,2893],{"class":2892,"line":80},[352,536,537],[350,2894,757],{"class":464},[350,2896,2897],{"class":352,"line":36},[350,2898,2899],{"class":464},"    }),\n",[350,2901,2902],{"class":352,"line":73},[350,2903,768],{"class":464},[350,2905,2906],{"class":352,"line":132},[350,2907,773],{"class":464},[326,2909,2910],{},"Static files are copied to the output directory during production builds.",[333,2912,2914],{"id":2913},"other-frameworks","Other frameworks",[326,2916,2917],{},"Not using AdonisJS? Check out the other framework guides:",[2919,2920],"framework-guides",{":exclude":324},[2922,2923,2924],"style",{},"html pre.shiki code .sZNF3, html code.shiki .sZNF3{--shiki-default:#EB64B9}html pre.shiki code .sXiT_, html code.shiki .sXiT_{--shiki-default:#B4DCE7}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .s0ZPN, html code.shiki .s0ZPN{--shiki-default:#40B4C4}html pre.shiki code .sGGKt, html code.shiki .sGGKt{--shiki-default:#7B6995}html pre.shiki code .sU-n2, html code.shiki .sU-n2{--shiki-default:#FFF}html pre.shiki code .sLaUg, html code.shiki .sLaUg{--shiki-default:#FFFFFF}html pre.shiki code .skd8d, html code.shiki .skd8d{--shiki-default:#FFE261}html pre.shiki code .sb4Pa, html code.shiki .sb4Pa{--shiki-default:#74DFC4}html pre.shiki code .sIihq, html code.shiki .sIihq{--shiki-default:#A96BC0}html pre.shiki code .s0EtI, html code.shiki .s0EtI{--shiki-default:#B381C5}html pre.shiki code .sVsQ9, html code.shiki .sVsQ9{--shiki-default:#91889B}",{"title":345,"searchDepth":13,"depth":13,"links":2926},[2927,2928,2933,2937,2942,2943],{"id":335,"depth":13,"text":227},{"id":366,"depth":13,"text":367,"children":2929},[2930,2931,2932],{"id":371,"depth":32,"text":372},{"id":440,"depth":32,"text":441},{"id":783,"depth":32,"text":784},{"id":1153,"depth":13,"text":1154,"children":2934},[2935,2936],{"id":1371,"depth":32,"text":174},{"id":1416,"depth":32,"text":1417},{"id":1447,"depth":13,"text":1448,"children":2938},[2939,2940,2941],{"id":1464,"depth":32,"text":1465},{"id":1782,"depth":32,"text":1783},{"id":2062,"depth":32,"text":2063},{"id":2781,"depth":13,"text":2782},{"id":2913,"depth":13,"text":2914},"How to use Maizzle with AdonisJS to build email templates alongside your web application.","md",{},{"title":200,"description":2944},"docs\u002Finstallation\u002Fframeworks\u002Fadonisjs","NyBI0zn4ysheuxC4P8cgBw4XHkDBRanoAQJrCP_EWd8",1781015475965]