[{"data":1,"prerenderedAt":3711},["ShallowReactive",2],{"navigation_docs":3,"-modules-platform-email-templates-components":587,"-modules-platform-email-templates-components-surround":3706},[4,50,155,441,504],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":49},"Get Started","i-lucide-rocket","\u002Fget-started","1.get-started",[10,15,20,25,30,35,40,45],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fget-started\u002Fintroduction","1.get-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fget-started\u002Finstallation","1.get-started\u002F2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Project structure","\u002Fget-started\u002Fproject-structure","1.get-started\u002F3.project-structure","i-lucide-folder-tree",{"title":26,"path":27,"stem":28,"icon":29},"Configuration","\u002Fget-started\u002Fconfiguration","1.get-started\u002F4.configuration","i-lucide-settings",{"title":31,"path":32,"stem":33,"icon":34},"Authentication","\u002Fget-started\u002Fauthentication","1.get-started\u002F5.authentication","i-lucide-lock",{"title":36,"path":37,"stem":38,"icon":39},"Adding modules","\u002Fget-started\u002Fadding-modules","1.get-started\u002F6.adding-modules","i-lucide-puzzle",{"title":41,"path":42,"stem":43,"icon":44},"Database","\u002Fget-started\u002Fdatabase","1.get-started\u002F7.database","i-lucide-database",{"title":46,"path":47,"stem":48,"icon":6},"Deployment","\u002Fget-started\u002Fdeployment","1.get-started\u002F8.deployment",false,{"title":51,"icon":52,"path":53,"stem":54,"children":55,"page":49},"Guide","i-lucide-book-open","\u002Fguide","2.guide",[56,90,115,125],{"title":57,"icon":49,"path":58,"stem":59,"children":60,"page":49},"Concepts","\u002Fguide\u002Fconcepts","2.guide\u002F1.concepts",[61,66,71,76,80,85],{"title":62,"path":63,"stem":64,"icon":65},"Architecture","\u002Fguide\u002Fconcepts\u002Farchitecture","2.guide\u002F1.concepts\u002F1.architecture","i-lucide-blocks",{"title":67,"path":68,"stem":69,"icon":70},"Access control","\u002Fguide\u002Fconcepts\u002Fauth-and-scopes","2.guide\u002F1.concepts\u002F2.auth-and-scopes","i-lucide-shield-check",{"title":72,"path":73,"stem":74,"icon":75},"Extension points","\u002Fguide\u002Fconcepts\u002Fextension-points","2.guide\u002F1.concepts\u002F3.extension-points","i-lucide-plug",{"title":77,"path":78,"stem":79,"icon":44},"Database extensions","\u002Fguide\u002Fconcepts\u002Fdatabase-extensions","2.guide\u002F1.concepts\u002F4.database-extensions",{"title":81,"path":82,"stem":83,"icon":84},"Identity","\u002Fguide\u002Fconcepts\u002Fidentity","2.guide\u002F1.concepts\u002F5.identity","i-lucide-fingerprint",{"title":86,"path":87,"stem":88,"icon":89},"Glossary","\u002Fguide\u002Fconcepts\u002Fglossary","2.guide\u002F1.concepts\u002F6.glossary","i-lucide-book-a",{"title":91,"icon":49,"path":92,"stem":93,"children":94,"page":49},"UX patterns","\u002Fguide\u002Fux-patterns","2.guide\u002F2.ux-patterns",[95,100,105,110],{"title":96,"path":97,"stem":98,"icon":99},"Layouts and navigation","\u002Fguide\u002Fux-patterns\u002Flayouts-and-navigation","2.guide\u002F2.ux-patterns\u002F1.layouts-and-navigation","i-lucide-layout-template",{"title":101,"path":102,"stem":103,"icon":104},"Pages","\u002Fguide\u002Fux-patterns\u002Fpages","2.guide\u002F2.ux-patterns\u002F2.pages","i-lucide-table",{"title":106,"path":107,"stem":108,"icon":109},"Forms and actions","\u002Fguide\u002Fux-patterns\u002Fforms-and-actions","2.guide\u002F2.ux-patterns\u002F3.forms-and-actions","i-lucide-square-pen",{"title":111,"path":112,"stem":113,"icon":114},"Text and formatting","\u002Fguide\u002Fux-patterns\u002Ftext-and-formatting","2.guide\u002F2.ux-patterns\u002F4.text-and-formatting","i-lucide-type",{"title":116,"icon":49,"path":117,"stem":118,"children":119,"page":49},"Best practices","\u002Fguide\u002Fbest-practices","2.guide\u002F3.best-practices",[120],{"title":121,"path":122,"stem":123,"icon":124},"HTTP routes","\u002Fguide\u002Fbest-practices\u002Fhttp-routes","2.guide\u002F3.best-practices\u002F1.http-routes","i-lucide-route",{"title":126,"icon":49,"path":127,"stem":128,"children":129,"page":49},"Going further","\u002Fguide\u002Fgoing-further","2.guide\u002F4.going-further",[130,135,140,145,150],{"title":131,"path":132,"stem":133,"icon":134},"Use your own OAuth server","\u002Fguide\u002Fgoing-further\u002Fown-oauth-server","2.guide\u002F4.going-further\u002F1.own-oauth-server","i-lucide-key-round",{"title":136,"path":137,"stem":138,"icon":139},"Create an OAuth application","\u002Fguide\u002Fgoing-further\u002Foauth-application","2.guide\u002F4.going-further\u002F2.oauth-application","i-lucide-app-window",{"title":141,"path":142,"stem":143,"icon":144},"Signing keys","\u002Fguide\u002Fgoing-further\u002Fsigning-keys","2.guide\u002F4.going-further\u002F3.signing-keys","i-lucide-key-square",{"title":146,"path":147,"stem":148,"icon":149},"Stripe setup","\u002Fguide\u002Fgoing-further\u002Fstripe-setup","2.guide\u002F4.going-further\u002F4.stripe-setup","i-lucide-credit-card",{"title":151,"path":152,"stem":153,"icon":154},"Migrate to the permission model","\u002Fguide\u002Fgoing-further\u002Fmigrate-access-control","2.guide\u002F4.going-further\u002F5.migrate-access-control","i-lucide-arrow-right-left",{"title":156,"icon":157,"path":158,"stem":159,"children":160},"Modules","i-lucide-boxes","\u002Fmodules","3.modules",[161,163,244,273,320,375],{"title":156,"path":158,"stem":162},"3.modules\u002Findex",{"title":81,"icon":49,"path":164,"stem":165,"children":166,"page":49},"\u002Fmodules\u002Fidentity","3.modules\u002F1.identity",[167,190,194,198,220,224,240],{"title":168,"path":169,"stem":170,"children":171},"Auth","\u002Fmodules\u002Fidentity\u002Fauth","3.modules\u002F1.identity\u002F1.auth\u002Findex",[172,174,178,182,186],{"title":173,"path":169,"stem":170},"Overview",{"title":175,"path":176,"stem":177},"Server API","\u002Fmodules\u002Fidentity\u002Fauth\u002Fserver","3.modules\u002F1.identity\u002F1.auth\u002F2.server",{"title":179,"path":180,"stem":181},"Reference","\u002Fmodules\u002Fidentity\u002Fauth\u002Freference","3.modules\u002F1.identity\u002F1.auth\u002F3.reference",{"title":183,"path":184,"stem":185},"Client mode","\u002Fmodules\u002Fidentity\u002Fauth\u002Fclient-mode","3.modules\u002F1.identity\u002F1.auth\u002F4.client-mode",{"title":187,"path":188,"stem":189},"OAuth providers","\u002Fmodules\u002Fidentity\u002Fauth\u002Foauth-providers","3.modules\u002F1.identity\u002F1.auth\u002F5.oauth-providers",{"title":191,"path":192,"stem":193},"Users","\u002Fmodules\u002Fidentity\u002Fusers","3.modules\u002F1.identity\u002F2.users",{"title":195,"path":196,"stem":197},"Account","\u002Fmodules\u002Fidentity\u002Faccount","3.modules\u002F1.identity\u002F3.account",{"title":199,"path":200,"stem":201,"children":202},"Authorization","\u002Fmodules\u002Fidentity\u002Fauthorization","3.modules\u002F1.identity\u002F4.authorization\u002Findex",[203,204,208,212,216],{"title":173,"path":200,"stem":201},{"title":205,"path":206,"stem":207},"Roles and requirements","\u002Fmodules\u002Fidentity\u002Fauthorization\u002Froles-and-requirements","3.modules\u002F1.identity\u002F4.authorization\u002F2.roles-and-requirements",{"title":209,"path":210,"stem":211},"Policies","\u002Fmodules\u002Fidentity\u002Fauthorization\u002Fpolicies","3.modules\u002F1.identity\u002F4.authorization\u002F3.policies",{"title":213,"path":214,"stem":215},"Client","\u002Fmodules\u002Fidentity\u002Fauthorization\u002Fclient","3.modules\u002F1.identity\u002F4.authorization\u002F4.client",{"title":217,"path":218,"stem":219},"Admin","\u002Fmodules\u002Fidentity\u002Fauthorization\u002Fadmin","3.modules\u002F1.identity\u002F4.authorization\u002F5.admin",{"title":221,"path":222,"stem":223},"Preferences","\u002Fmodules\u002Fidentity\u002Fpreferences","3.modules\u002F1.identity\u002F5.preferences",{"title":225,"path":226,"stem":227,"children":228},"OAuth Server","\u002Fmodules\u002Fidentity\u002Foauth-server","3.modules\u002F1.identity\u002F6.oauth-server\u002Findex",[229,230,233,237],{"title":173,"path":226,"stem":227},{"title":175,"path":231,"stem":232},"\u002Fmodules\u002Fidentity\u002Foauth-server\u002Fserver","3.modules\u002F1.identity\u002F6.oauth-server\u002F2.server",{"title":234,"path":235,"stem":236},"Hooks","\u002Fmodules\u002Fidentity\u002Foauth-server\u002Fhooks","3.modules\u002F1.identity\u002F6.oauth-server\u002F3.hooks",{"title":179,"path":238,"stem":239},"\u002Fmodules\u002Fidentity\u002Foauth-server\u002Froutes-and-clients","3.modules\u002F1.identity\u002F6.oauth-server\u002F4.routes-and-clients",{"title":241,"path":242,"stem":243},"OAuth Resource","\u002Fmodules\u002Fidentity\u002Foauth-resource","3.modules\u002F1.identity\u002F8.oauth-resource",{"title":245,"icon":49,"path":246,"stem":247,"children":248,"page":49},"Commerce","\u002Fmodules\u002Fcommerce","3.modules\u002F2.commerce",[249,253,257],{"title":250,"path":251,"stem":252},"Stripe","\u002Fmodules\u002Fcommerce\u002Fstripe","3.modules\u002F2.commerce\u002F1.stripe",{"title":254,"path":255,"stem":256},"Payments","\u002Fmodules\u002Fcommerce\u002Fpayments","3.modules\u002F2.commerce\u002F2.payments",{"title":258,"path":259,"stem":260,"children":261},"Subscriptions","\u002Fmodules\u002Fcommerce\u002Fsubscriptions","3.modules\u002F2.commerce\u002F3.subscriptions\u002Findex",[262,263,266,270],{"title":173,"path":259,"stem":260},{"title":175,"path":264,"stem":265},"\u002Fmodules\u002Fcommerce\u002Fsubscriptions\u002Fserver","3.modules\u002F2.commerce\u002F3.subscriptions\u002F2.server",{"title":267,"path":268,"stem":269},"App","\u002Fmodules\u002Fcommerce\u002Fsubscriptions\u002Fapp","3.modules\u002F2.commerce\u002F3.subscriptions\u002F3.app",{"title":179,"path":271,"stem":272},"\u002Fmodules\u002Fcommerce\u002Fsubscriptions\u002Freference","3.modules\u002F2.commerce\u002F3.subscriptions\u002F4.reference",{"title":274,"icon":49,"path":275,"stem":276,"children":277,"page":49},"Features","\u002Fmodules\u002Ffeatures","3.modules\u002F3.features",[278,293,312,316],{"title":279,"path":280,"stem":281,"children":282},"Events","\u002Fmodules\u002Ffeatures\u002Fevents","3.modules\u002F3.features\u002F1.events\u002Findex",[283,284,287,290],{"title":173,"path":280,"stem":281},{"title":175,"path":285,"stem":286},"\u002Fmodules\u002Ffeatures\u002Fevents\u002Fserver","3.modules\u002F3.features\u002F1.events\u002F2.server",{"title":267,"path":288,"stem":289},"\u002Fmodules\u002Ffeatures\u002Fevents\u002Fapp","3.modules\u002F3.features\u002F1.events\u002F3.app",{"title":179,"path":291,"stem":292},"\u002Fmodules\u002Ffeatures\u002Fevents\u002Freference","3.modules\u002F3.features\u002F1.events\u002F4.reference",{"title":294,"path":295,"stem":296,"children":297},"Forms","\u002Fmodules\u002Ffeatures\u002Fforms","3.modules\u002F3.features\u002F2.forms\u002Findex",[298,299,303,306,309],{"title":173,"path":295,"stem":296},{"title":300,"path":301,"stem":302},"Definition","\u002Fmodules\u002Ffeatures\u002Fforms\u002Fdefinition","3.modules\u002F3.features\u002F2.forms\u002F2.definition",{"title":175,"path":304,"stem":305},"\u002Fmodules\u002Ffeatures\u002Fforms\u002Fserver","3.modules\u002F3.features\u002F2.forms\u002F3.server",{"title":267,"path":307,"stem":308},"\u002Fmodules\u002Ffeatures\u002Fforms\u002Fapp","3.modules\u002F3.features\u002F2.forms\u002F4.app",{"title":179,"path":310,"stem":311},"\u002Fmodules\u002Ffeatures\u002Fforms\u002Freference","3.modules\u002F3.features\u002F2.forms\u002F5.reference",{"title":313,"path":314,"stem":315},"Cookie Consent","\u002Fmodules\u002Ffeatures\u002Fcookie-consent","3.modules\u002F3.features\u002F3.cookie-consent",{"title":317,"path":318,"stem":319},"MCP","\u002Fmodules\u002Ffeatures\u002Fmcp","3.modules\u002F3.features\u002F4.mcp",{"title":321,"icon":49,"path":322,"stem":323,"children":324,"page":49},"Interface","\u002Fmodules\u002Finterface","3.modules\u002F4.interface",[325,350,353,357,361],{"title":326,"path":327,"stem":328,"children":329},"UI","\u002Fmodules\u002Finterface\u002Fui","3.modules\u002F4.interface\u002F1.ui\u002Findex",[330,331,335,339,343,347],{"title":173,"path":327,"stem":328},{"title":332,"path":333,"stem":334},"Page components","\u002Fmodules\u002Finterface\u002Fui\u002Fpage-components","3.modules\u002F4.interface\u002F1.ui\u002F2.page-components",{"title":336,"path":337,"stem":338},"App shell","\u002Fmodules\u002Finterface\u002Fui\u002Fapp-shell","3.modules\u002F4.interface\u002F1.ui\u002F3.app-shell",{"title":340,"path":341,"stem":342},"Form inputs","\u002Fmodules\u002Finterface\u002Fui\u002Fform-inputs","3.modules\u002F4.interface\u002F1.ui\u002F4.form-inputs",{"title":344,"path":345,"stem":346},"Composables and helpers","\u002Fmodules\u002Finterface\u002Fui\u002Fcomposables","3.modules\u002F4.interface\u002F1.ui\u002F5.composables",{"title":179,"path":348,"stem":349},"\u002Fmodules\u002Finterface\u002Fui\u002Freference","3.modules\u002F4.interface\u002F1.ui\u002F6.reference",{"title":217,"path":351,"stem":352},"\u002Fmodules\u002Finterface\u002Fadmin","3.modules\u002F4.interface\u002F2.admin",{"title":354,"path":355,"stem":356},"Menu","\u002Fmodules\u002Finterface\u002Fmenu","3.modules\u002F4.interface\u002F3.menu",{"title":358,"path":359,"stem":360},"Widget","\u002Fmodules\u002Finterface\u002Fwidget","3.modules\u002F4.interface\u002F4.widget",{"title":362,"path":363,"stem":364,"children":365},"Mobile","\u002Fmodules\u002Finterface\u002Fmobile","3.modules\u002F4.interface\u002F5.mobile\u002Findex",[366,367,371],{"title":173,"path":363,"stem":364},{"title":368,"path":369,"stem":370},"CLI and devices","\u002Fmodules\u002Finterface\u002Fmobile\u002Fcli-and-devices","3.modules\u002F4.interface\u002F5.mobile\u002F2.cli-and-devices",{"title":372,"path":373,"stem":374},"Splash screen","\u002Fmodules\u002Finterface\u002Fmobile\u002Fsplash-screen","3.modules\u002F4.interface\u002F5.mobile\u002F3.splash-screen",{"title":376,"icon":49,"path":377,"stem":378,"children":379,"page":49},"Platform","\u002Fmodules\u002Fplatform","3.modules\u002F5.platform",[380,402,406,423],{"title":381,"path":382,"stem":383,"children":384},"Module Kit","\u002Fmodules\u002Fplatform\u002Fmodule-kit","3.modules\u002F5.platform\u002F1.module-kit\u002Findex",[385,386,390,394,398],{"title":173,"path":382,"stem":383},{"title":387,"path":388,"stem":389},"Server toolkit","\u002Fmodules\u002Fplatform\u002Fmodule-kit\u002Fserver-toolkit","3.modules\u002F5.platform\u002F1.module-kit\u002F2.server-toolkit",{"title":391,"path":392,"stem":393},"Registries and menus","\u002Fmodules\u002Fplatform\u002Fmodule-kit\u002Fregistries-and-menus","3.modules\u002F5.platform\u002F1.module-kit\u002F3.registries-and-menus",{"title":395,"path":396,"stem":397},"Translations","\u002Fmodules\u002Fplatform\u002Fmodule-kit\u002Fi18n","3.modules\u002F5.platform\u002F1.module-kit\u002F4.i18n",{"title":399,"path":400,"stem":401},"Database helpers","\u002Fmodules\u002Fplatform\u002Fmodule-kit\u002Fdatabase","3.modules\u002F5.platform\u002F1.module-kit\u002F5.database",{"title":403,"path":404,"stem":405},"Notify","\u002Fmodules\u002Fplatform\u002Fnotify","3.modules\u002F5.platform\u002F2.notify",{"title":407,"path":408,"stem":409,"children":410},"Email Templates","\u002Fmodules\u002Fplatform\u002Femail-templates","3.modules\u002F5.platform\u002F3.email-templates\u002Findex",[411,412,416,419],{"title":173,"path":408,"stem":409},{"title":413,"path":414,"stem":415},"Email components","\u002Fmodules\u002Fplatform\u002Femail-templates\u002Fcomponents","3.modules\u002F5.platform\u002F3.email-templates\u002F2.components",{"title":175,"path":417,"stem":418},"\u002Fmodules\u002Fplatform\u002Femail-templates\u002Fserver","3.modules\u002F5.platform\u002F3.email-templates\u002F3.server",{"title":420,"path":421,"stem":422},"Module emails","\u002Fmodules\u002Fplatform\u002Femail-templates\u002Fmodule-emails","3.modules\u002F5.platform\u002F3.email-templates\u002F4.module-emails",{"title":424,"path":425,"stem":426,"children":427},"Base Layer","\u002Fmodules\u002Fplatform\u002Fbase-layer","3.modules\u002F5.platform\u002F4.base-layer\u002Findex",[428,429,433,437],{"title":173,"path":425,"stem":426},{"title":430,"path":431,"stem":432},"Content collections","\u002Fmodules\u002Fplatform\u002Fbase-layer\u002Fcontent-collections","3.modules\u002F5.platform\u002F4.base-layer\u002F2.content-collections",{"title":434,"path":435,"stem":436},"Layouts and routing","\u002Fmodules\u002Fplatform\u002Fbase-layer\u002Flayouts-and-routing","3.modules\u002F5.platform\u002F4.base-layer\u002F3.layouts-and-routing",{"title":438,"path":439,"stem":440},"Composables and utils","\u002Fmodules\u002Fplatform\u002Fbase-layer\u002Fcomposables-and-utils","3.modules\u002F5.platform\u002F4.base-layer\u002F4.composables-and-utils",{"title":442,"icon":443,"path":444,"stem":445,"children":446,"page":49},"Examples","i-lucide-code-xml","\u002Fexamples","4.examples",[447,466,476],{"title":448,"icon":49,"path":449,"stem":450,"children":451,"page":49},"Starters","\u002Fexamples\u002Fstarters","4.examples\u002F1.starters",[452,456,461],{"title":453,"path":454,"stem":455,"icon":6},"Workspace starter","\u002Fexamples\u002Fstarters\u002Fworkspace","4.examples\u002F1.starters\u002F1.workspace",{"title":457,"path":458,"stem":459,"icon":460},"Mobile starter","\u002Fexamples\u002Fstarters\u002Fmobile","4.examples\u002F1.starters\u002F2.mobile","i-lucide-smartphone",{"title":462,"path":463,"stem":464,"icon":465},"Standalone mobile starter","\u002Fexamples\u002Fstarters\u002Fmobile-standalone","4.examples\u002F1.starters\u002F3.mobile-standalone","i-lucide-tablet-smartphone",{"title":467,"icon":49,"path":468,"stem":469,"children":470,"page":49},"Apps","\u002Fexamples\u002Fapps","4.examples\u002F2.apps",[471],{"title":472,"path":473,"stem":474,"icon":475},"Frigear website app","\u002Fexamples\u002Fapps\u002Ffrigear-nu-website","4.examples\u002F2.apps\u002F1.frigear-nu-website","i-lucide-layout-dashboard",{"title":477,"icon":49,"path":478,"stem":479,"children":480,"page":49},"Tasks","\u002Fexamples\u002Ftasks","4.examples\u002F3.tasks",[481,485,489,494,499],{"title":482,"path":483,"stem":484,"icon":70},"Protect a route","\u002Fexamples\u002Ftasks\u002Fprotect-a-route","4.examples\u002F3.tasks\u002F1.protect-a-route",{"title":486,"path":487,"stem":488,"icon":475},"Add an admin page","\u002Fexamples\u002Ftasks\u002Fadd-an-admin-page","4.examples\u002F3.tasks\u002F2.add-an-admin-page",{"title":490,"path":491,"stem":492,"icon":493},"Sell event tickets","\u002Fexamples\u002Ftasks\u002Fsell-event-tickets","4.examples\u002F3.tasks\u002F3.sell-event-tickets","i-lucide-ticket",{"title":495,"path":496,"stem":497,"icon":498},"Build a form","\u002Fexamples\u002Ftasks\u002Fbuild-a-form","4.examples\u002F3.tasks\u002F4.build-a-form","i-lucide-clipboard-list",{"title":500,"path":501,"stem":502,"icon":503},"Send an email","\u002Fexamples\u002Ftasks\u002Fsend-an-email","4.examples\u002F3.tasks\u002F5.send-an-email","i-lucide-mail",{"title":505,"icon":506,"path":507,"stem":508,"children":509,"page":49},"Contribute","i-lucide-git-pull-request","\u002Fcontribute","5.contribute",[510,513,518,544,549,552,556,571],{"title":173,"path":511,"stem":512,"icon":506},"\u002Fcontribute\u002Foverview","5.contribute\u002F1.overview",{"title":514,"path":515,"stem":516,"icon":517},"Local development","\u002Fcontribute\u002Flocal-development","5.contribute\u002F2.local-development","i-lucide-terminal",{"title":519,"icon":49,"path":520,"stem":521,"children":522,"page":49},"Writing a module","\u002Fcontribute\u002Fwriting-a-module","5.contribute\u002F3.writing-a-module",[523,527,532,536,541],{"title":524,"path":525,"stem":526,"icon":39},"Scaffold a module","\u002Fcontribute\u002Fwriting-a-module\u002Fscaffold","5.contribute\u002F3.writing-a-module\u002F1.scaffold",{"title":528,"path":529,"stem":530,"icon":531},"Setup checklist","\u002Fcontribute\u002Fwriting-a-module\u002Fsetup-checklist","5.contribute\u002F3.writing-a-module\u002F2.setup-checklist","i-lucide-list-checks",{"title":533,"path":534,"stem":535,"icon":44},"Database tables","\u002Fcontribute\u002Fwriting-a-module\u002Fdatabase-tables","5.contribute\u002F3.writing-a-module\u002F3.database-tables",{"title":537,"path":538,"stem":539,"icon":540},"Testing","\u002Fcontribute\u002Fwriting-a-module\u002Ftesting","5.contribute\u002F3.writing-a-module\u002F4.testing","i-lucide-flask-conical",{"title":67,"path":542,"stem":543,"icon":70},"\u002Fcontribute\u002Fwriting-a-module\u002Faccess-control","5.contribute\u002F3.writing-a-module\u002F5.access-control",{"title":545,"path":546,"stem":547,"icon":548},"Publishing","\u002Fcontribute\u002Fpublishing","5.contribute\u002F4.publishing","i-lucide-package-check",{"title":448,"path":550,"stem":551,"icon":6},"\u002Fcontribute\u002Fstarters","5.contribute\u002F5.starters",{"title":553,"path":554,"stem":555,"icon":52},"Documentation","\u002Fcontribute\u002Fdocumentation","5.contribute\u002F6.documentation",{"title":557,"icon":49,"path":558,"stem":559,"children":560,"page":49},"Tooling","\u002Fcontribute\u002Ftooling","5.contribute\u002F7.tooling",[561,566],{"title":562,"path":563,"stem":564,"icon":565},"CLI","\u002Fcontribute\u002Ftooling\u002Fcli","5.contribute\u002F7.tooling\u002F1.cli","i-lucide-square-terminal",{"title":567,"path":568,"stem":569,"icon":570},"ESLint config","\u002Fcontribute\u002Ftooling\u002Feslint-config","5.contribute\u002F7.tooling\u002F2.eslint-config","i-lucide-spell-check",{"title":572,"icon":49,"path":573,"stem":574,"children":575},"Decisions","\u002Fcontribute\u002Fdecisions","5.contribute\u002F8.decisions\u002Findex",[576,578,583],{"title":572,"path":573,"stem":574,"icon":577},"i-lucide-scale",{"title":579,"path":580,"stem":581,"icon":582},"Session lifetimes per OAuth client","\u002Fcontribute\u002Fdecisions\u002Foauth-token-lifetimes","5.contribute\u002F8.decisions\u002F1.oauth-token-lifetimes","i-lucide-timer",{"title":584,"path":585,"stem":586,"icon":70},"One permission model","\u002Fcontribute\u002Fdecisions\u002Fpermission-model","5.contribute\u002F8.decisions\u002F2.permission-model",{"id":588,"title":413,"body":589,"description":3699,"extension":3700,"links":3701,"meta":3702,"navigation":3703,"path":414,"seo":3704,"stem":415,"__hash__":3705},"docs\u002F3.modules\u002F5.platform\u002F3.email-templates\u002F2.components.md",{"type":590,"value":591,"toc":3694},"minimark",[592,600,605,617,783,787,791,814,1171,1174,1228,1234,1936,1939,2880,2883,3464,3469,3670,3674,3691],[593,594,595,596,599],"p",{},"This page shows the styled components every Frigear email is built from, and how to compose an email of your own. It\nis for app developers who write templates. Set up the module first: ",[597,598,173],"a",{"href":408},".",[601,602,604],"h2",{"id":603},"components","Components",[593,606,607,608,612,613,616],{},"Import the components from ",[609,610,611],"code",{},"@frigear-nu\u002Femail-templates\u002Fcomponents",". The renderer registers only its own ",[609,614,615],{},"E*","\ncomponents globally, and you can mix both freely. Every email has the same shape: a grey page, a white card with the\nlogo, the content and a footer.",[618,619,620,636],"table",{},[621,622,623],"thead",{},[624,625,626,630,633],"tr",{},[627,628,629],"th",{},"Component",[627,631,632],{},"Props",[627,634,635],{},"Renders",[637,638,639,674,688,710,725,743,758,771],"tbody",{},[624,640,641,647,664],{},[642,643,644],"td",{},[609,645,646],{},"EmailLayout",[642,648,649,652,653,656,657,660,661],{},[609,650,651],{},"preview?",", ",[609,654,655],{},"lang?"," (",[609,658,659],{},"en","); slots: default, ",[609,662,663],{},"footer",[642,665,666,667,670,671,599],{},"The whole document: page, card, ",[609,668,669],{},"EmailHeader"," and ",[609,672,673],{},"EmailFooter",[624,675,676,680,685],{},[642,677,678],{},[609,679,669],{},[642,681,682],{},[609,683,684],{},"logoUrl?",[642,686,687],{},"The logo, 150px wide, or the brand name when there is no logo.",[624,689,690,695,700],{},[642,691,692],{},[609,693,694],{},"EmailHeading",[642,696,697],{},[609,698,699],{},"tone?: 'default' | 'danger'",[642,701,702,703,705,706,709],{},"The ",[609,704,601],{}," title. ",[609,707,708],{},"danger"," is for security alerts.",[624,711,712,717,722],{},[642,713,714],{},[609,715,716],{},"EmailText",[642,718,719],{},[609,720,721],{},"variant?: 'default' | 'muted' | 'small'",[642,723,724],{},"A paragraph of body text, secondary text or fine print.",[624,726,727,732,740],{},[642,728,729],{},[609,730,731],{},"EmailButton",[642,733,734,652,737],{},[609,735,736],{},"href",[609,738,739],{},"color?: 'primary' | 'danger'",[642,741,742],{},"A call-to-action button.",[624,744,745,750,755],{},[642,746,747],{},[609,748,749],{},"EmailLinkFallback",[642,751,752,754],{},[609,753,736],{},"; a slot for the lead-in",[642,756,757],{},"\"Or copy this link to your browser: …\"",[624,759,760,765,768],{},[642,761,762],{},[609,763,764],{},"EmailDivider",[642,766,767],{},"none",[642,769,770],{},"A horizontal rule.",[624,772,773,777,780],{},[642,774,775],{},[609,776,673],{},[642,778,779],{},"slot",[642,781,782],{},"\"This email was sent automatically for security reasons.\"",[784,785,786],"note",{},"The components use inline styles and table layout, because email clients support neither CSS classes nor flexbox or\ngrid.",[601,788,790],{"id":789},"composing-an-email","Composing an email",[593,792,793,794,796,797,800,801,800,803,652,805,807,808,810,811,813],{},"Every template starts from ",[609,795,646],{},", which draws the page, the card, the logo and the footer. Inside it, the\nusual order is ",[609,798,799],{},"\u003CESubject>",", an ",[609,802,694],{},[609,804,764],{},[609,806,716],{}," paragraphs, then an ",[609,809,731],{}," and\nits ",[609,812,749],{},":",[815,816,817,1163],"tabs",{},[818,819,821],"tabs-item",{"label":820},"welcome.vue",[822,823,829],"pre",{"className":824,"code":825,"filename":826,"language":827,"meta":828,"style":828},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\nimport { EmailButton, EmailDivider, EmailHeading, EmailLayout, EmailLinkFallback, EmailText } from '@frigear-nu\u002Femail-templates\u002Fcomponents'\n\ndefineProps\u003C{ name: string, url: string }>()\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CEmailLayout :preview=\"`Welcome, ${name}!`\">\n    \u003CESubject>Welcome, {{ name }}\u003C\u002FESubject>\n    \u003CEmailHeading>Welcome, {{ name }}!\u003C\u002FEmailHeading>\n    \u003CEmailDivider \u002F>\n    \u003CEmailText>Thanks for signing up. Click the button below to get started.\u003C\u002FEmailText>\n    \u003CEmailButton :href=\"url\">Get started\u003C\u002FEmailButton>\n    \u003CEmailLinkFallback :href=\"url\" \u002F>\n  \u003C\u002FEmailLayout>\n\u003C\u002Ftemplate>\n","app\u002Femails\u002Fwelcome.vue","vue","",[609,830,831,866,920,927,961,971,976,986,1025,1046,1064,1074,1092,1123,1144,1154],{"__ignoreMap":828},[832,833,836,840,844,848,851,854,857,861,863],"span",{"class":834,"line":835},"line",1,[832,837,839],{"class":838},"sMK4o","\u003C",[832,841,843],{"class":842},"swJcz","script",[832,845,847],{"class":846},"spNyl"," setup",[832,849,850],{"class":846}," lang",[832,852,853],{"class":838},"=",[832,855,856],{"class":838},"\"",[832,858,860],{"class":859},"sfazB","ts",[832,862,856],{"class":838},[832,864,865],{"class":838},">\n",[832,867,869,873,876,880,883,886,888,891,893,896,898,901,903,906,909,912,915,917],{"class":834,"line":868},2,[832,870,872],{"class":871},"s7zQu","import",[832,874,875],{"class":838}," {",[832,877,879],{"class":878},"sTEyZ"," EmailButton",[832,881,882],{"class":838},",",[832,884,885],{"class":878}," EmailDivider",[832,887,882],{"class":838},[832,889,890],{"class":878}," EmailHeading",[832,892,882],{"class":838},[832,894,895],{"class":878}," EmailLayout",[832,897,882],{"class":838},[832,899,900],{"class":878}," EmailLinkFallback",[832,902,882],{"class":838},[832,904,905],{"class":878}," EmailText",[832,907,908],{"class":838}," }",[832,910,911],{"class":871}," from",[832,913,914],{"class":838}," '",[832,916,611],{"class":859},[832,918,919],{"class":838},"'\n",[832,921,923],{"class":834,"line":922},3,[832,924,926],{"emptyLinePlaceholder":925},true,"\n",[832,928,930,934,937,940,942,946,948,951,953,955,958],{"class":834,"line":929},4,[832,931,933],{"class":932},"s2Zo4","defineProps",[832,935,936],{"class":838},"\u003C{",[832,938,939],{"class":842}," name",[832,941,813],{"class":838},[832,943,945],{"class":944},"sBMFI"," string",[832,947,882],{"class":838},[832,949,950],{"class":842}," url",[832,952,813],{"class":838},[832,954,945],{"class":944},[832,956,957],{"class":838}," }>",[832,959,960],{"class":878},"()\n",[832,962,964,967,969],{"class":834,"line":963},5,[832,965,966],{"class":838},"\u003C\u002F",[832,968,843],{"class":842},[832,970,865],{"class":838},[832,972,974],{"class":834,"line":973},6,[832,975,926],{"emptyLinePlaceholder":925},[832,977,979,981,984],{"class":834,"line":978},7,[832,980,839],{"class":838},[832,982,983],{"class":842},"template",[832,985,865],{"class":838},[832,987,989,992,994,997,1000,1002,1005,1008,1011,1014,1017,1020,1023],{"class":834,"line":988},8,[832,990,991],{"class":838},"  \u003C",[832,993,646],{"class":842},[832,995,996],{"class":838}," :",[832,998,999],{"class":846},"preview",[832,1001,853],{"class":838},[832,1003,1004],{"class":838},"\"`",[832,1006,1007],{"class":859},"Welcome, ",[832,1009,1010],{"class":838},"${",[832,1012,1013],{"class":878},"name",[832,1015,1016],{"class":838},"}",[832,1018,1019],{"class":859},"!",[832,1021,1022],{"class":838},"`\"",[832,1024,865],{"class":838},[832,1026,1028,1031,1034,1037,1040,1042,1044],{"class":834,"line":1027},9,[832,1029,1030],{"class":838},"    \u003C",[832,1032,1033],{"class":842},"ESubject",[832,1035,1036],{"class":838},">",[832,1038,1039],{"class":878},"Welcome, {{ name }}",[832,1041,966],{"class":838},[832,1043,1033],{"class":842},[832,1045,865],{"class":838},[832,1047,1049,1051,1053,1055,1058,1060,1062],{"class":834,"line":1048},10,[832,1050,1030],{"class":838},[832,1052,694],{"class":842},[832,1054,1036],{"class":838},[832,1056,1057],{"class":878},"Welcome, {{ name }}!",[832,1059,966],{"class":838},[832,1061,694],{"class":842},[832,1063,865],{"class":838},[832,1065,1067,1069,1071],{"class":834,"line":1066},11,[832,1068,1030],{"class":838},[832,1070,764],{"class":842},[832,1072,1073],{"class":838}," \u002F>\n",[832,1075,1077,1079,1081,1083,1086,1088,1090],{"class":834,"line":1076},12,[832,1078,1030],{"class":838},[832,1080,716],{"class":842},[832,1082,1036],{"class":838},[832,1084,1085],{"class":878},"Thanks for signing up. Click the button below to get started.",[832,1087,966],{"class":838},[832,1089,716],{"class":842},[832,1091,865],{"class":838},[832,1093,1095,1097,1099,1101,1103,1105,1107,1110,1112,1114,1117,1119,1121],{"class":834,"line":1094},13,[832,1096,1030],{"class":838},[832,1098,731],{"class":842},[832,1100,996],{"class":838},[832,1102,736],{"class":846},[832,1104,853],{"class":838},[832,1106,856],{"class":838},[832,1108,1109],{"class":878},"url",[832,1111,856],{"class":838},[832,1113,1036],{"class":838},[832,1115,1116],{"class":878},"Get started",[832,1118,966],{"class":838},[832,1120,731],{"class":842},[832,1122,865],{"class":838},[832,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142],{"class":834,"line":1125},14,[832,1127,1030],{"class":838},[832,1129,749],{"class":842},[832,1131,996],{"class":838},[832,1133,736],{"class":846},[832,1135,853],{"class":838},[832,1137,856],{"class":838},[832,1139,1109],{"class":878},[832,1141,856],{"class":838},[832,1143,1073],{"class":838},[832,1145,1147,1150,1152],{"class":834,"line":1146},15,[832,1148,1149],{"class":838},"  \u003C\u002F",[832,1151,646],{"class":842},[832,1153,865],{"class":838},[832,1155,1157,1159,1161],{"class":834,"line":1156},16,[832,1158,966],{"class":838},[832,1160,983],{"class":842},[832,1162,865],{"class":838},[818,1164,1166],{"label":1165},"Preview",[1167,1168],"img",{"alt":1169,"src":1170},"The welcome email, built from the components","\u002Fimages\u002Femail-templates\u002Fwelcome.png",[593,1172,1173],{},"Beyond that shape:",[1175,1176,1177,1192,1205,1219],"ul",{},[1178,1179,1180,1184,1185,670,1188,1191],"li",{},[1181,1182,1183],"strong",{},"Tables and columns."," Use the renderer's ",[609,1186,1187],{},"ERow",[609,1189,1190],{},"EColumn"," for details or line items.",[1178,1193,1194,1197,1198,1201,1202,599],{},[1181,1195,1196],{},"Fine-tuning a block."," A ",[609,1199,1200],{},"style"," you pass merges into the component's own, such as ",[609,1203,1204],{},"style=\"margin: 0\"",[1178,1206,1207,1210,1211,1214,1215,1218],{},[1181,1208,1209],{},"Formatting."," Templates render outside the Nuxt app, so ",[609,1212,1213],{},"useFormat()"," and other app composables are not available.\nFormat numbers and dates with ",[609,1216,1217],{},"Intl",", or pass them in formatted.",[1178,1220,1221,1224,1225,1227],{},[1181,1222,1223],{},"Your own footer."," Fill the layout's ",[609,1226,663],{}," slot, for example with an unsubscribe link.",[593,1229,1230,1231,1233],{},"A security alert, with a details table and a ",[609,1232,708],{}," heading and button:",[815,1235,1236,1930],{},[818,1237,1239],{"label":1238},"new-sign-in.vue",[822,1240,1243],{"className":824,"code":1241,"filename":1242,"language":827,"meta":828,"style":828},"\u003Cscript setup lang=\"ts\">\nimport { EmailButton, EmailDivider, EmailHeading, EmailLayout, EmailLinkFallback, EmailText } from '@frigear-nu\u002Femail-templates\u002Fcomponents'\n\ndefineProps\u003C{\n  name: string\n  device: string\n  location: string\n  signedInAt: string\n  secureUrl: string\n}>()\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CEmailLayout preview=\"New sign-in to your account\">\n    \u003CESubject>New sign-in to your account\u003C\u002FESubject>\n    \u003CEmailHeading tone=\"danger\">\n      New sign-in detected\n    \u003C\u002FEmailHeading>\n    \u003CEmailDivider \u002F>\n    \u003CEmailText>Hi {{ name }}, your account was just signed in to from a new device.\u003C\u002FEmailText>\n\n    \u003C!-- Renderer components mix in freely: a two-column details table. -->\n    \u003CERow\n      v-for=\"[label, value] in [['Device', device], ['Location', location], ['Time', signedInAt]]\"\n      :key=\"label\"\n    >\n      \u003CEColumn style=\"width: 35%; padding: 4px 0\">\n        \u003CEmailText\n          variant=\"muted\"\n          style=\"margin: 0\"\n        >\n          {{ label }}\n        \u003C\u002FEmailText>\n      \u003C\u002FEColumn>\n      \u003CEColumn style=\"padding: 4px 0\">\n        \u003CEmailText style=\"margin: 0\">\n          {{ value }}\n        \u003C\u002FEmailText>\n      \u003C\u002FEColumn>\n    \u003C\u002FERow>\n\n    \u003CEmailDivider \u002F>\n    \u003CEmailText>If this was you, no action is needed. If not, secure your account now.\u003C\u002FEmailText>\n    \u003CEmailButton\n      :href=\"secureUrl\"\n      color=\"danger\"\n    >\n      Secure my account\n    \u003C\u002FEmailButton>\n    \u003CEmailLinkFallback :href=\"secureUrl\" \u002F>\n  \u003C\u002FEmailLayout>\n\u003C\u002Ftemplate>\n","app\u002Femails\u002Fnew-sign-in.vue",[609,1244,1245,1265,1303,1307,1314,1324,1333,1342,1351,1360,1367,1375,1379,1387,1407,1423,1442,1448,1458,1467,1485,1490,1497,1505,1577,1594,1600,1644,1653,1668,1688,1694,1700,1710,1720,1745,1768,1774,1783,1792,1801,1806,1815,1833,1841,1857,1871,1876,1882,1891,1912,1921],{"__ignoreMap":828},[832,1246,1247,1249,1251,1253,1255,1257,1259,1261,1263],{"class":834,"line":835},[832,1248,839],{"class":838},[832,1250,843],{"class":842},[832,1252,847],{"class":846},[832,1254,850],{"class":846},[832,1256,853],{"class":838},[832,1258,856],{"class":838},[832,1260,860],{"class":859},[832,1262,856],{"class":838},[832,1264,865],{"class":838},[832,1266,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301],{"class":834,"line":868},[832,1268,872],{"class":871},[832,1270,875],{"class":838},[832,1272,879],{"class":878},[832,1274,882],{"class":838},[832,1276,885],{"class":878},[832,1278,882],{"class":838},[832,1280,890],{"class":878},[832,1282,882],{"class":838},[832,1284,895],{"class":878},[832,1286,882],{"class":838},[832,1288,900],{"class":878},[832,1290,882],{"class":838},[832,1292,905],{"class":878},[832,1294,908],{"class":838},[832,1296,911],{"class":871},[832,1298,914],{"class":838},[832,1300,611],{"class":859},[832,1302,919],{"class":838},[832,1304,1305],{"class":834,"line":922},[832,1306,926],{"emptyLinePlaceholder":925},[832,1308,1309,1311],{"class":834,"line":929},[832,1310,933],{"class":932},[832,1312,1313],{"class":838},"\u003C{\n",[832,1315,1316,1319,1321],{"class":834,"line":963},[832,1317,1318],{"class":842},"  name",[832,1320,813],{"class":838},[832,1322,1323],{"class":944}," string\n",[832,1325,1326,1329,1331],{"class":834,"line":973},[832,1327,1328],{"class":842},"  device",[832,1330,813],{"class":838},[832,1332,1323],{"class":944},[832,1334,1335,1338,1340],{"class":834,"line":978},[832,1336,1337],{"class":842},"  location",[832,1339,813],{"class":838},[832,1341,1323],{"class":944},[832,1343,1344,1347,1349],{"class":834,"line":988},[832,1345,1346],{"class":842},"  signedInAt",[832,1348,813],{"class":838},[832,1350,1323],{"class":944},[832,1352,1353,1356,1358],{"class":834,"line":1027},[832,1354,1355],{"class":842},"  secureUrl",[832,1357,813],{"class":838},[832,1359,1323],{"class":944},[832,1361,1362,1365],{"class":834,"line":1048},[832,1363,1364],{"class":838},"}>",[832,1366,960],{"class":878},[832,1368,1369,1371,1373],{"class":834,"line":1066},[832,1370,966],{"class":838},[832,1372,843],{"class":842},[832,1374,865],{"class":838},[832,1376,1377],{"class":834,"line":1076},[832,1378,926],{"emptyLinePlaceholder":925},[832,1380,1381,1383,1385],{"class":834,"line":1094},[832,1382,839],{"class":838},[832,1384,983],{"class":842},[832,1386,865],{"class":838},[832,1388,1389,1391,1393,1396,1398,1400,1403,1405],{"class":834,"line":1125},[832,1390,991],{"class":838},[832,1392,646],{"class":842},[832,1394,1395],{"class":846}," preview",[832,1397,853],{"class":838},[832,1399,856],{"class":838},[832,1401,1402],{"class":859},"New sign-in to your account",[832,1404,856],{"class":838},[832,1406,865],{"class":838},[832,1408,1409,1411,1413,1415,1417,1419,1421],{"class":834,"line":1146},[832,1410,1030],{"class":838},[832,1412,1033],{"class":842},[832,1414,1036],{"class":838},[832,1416,1402],{"class":878},[832,1418,966],{"class":838},[832,1420,1033],{"class":842},[832,1422,865],{"class":838},[832,1424,1425,1427,1429,1432,1434,1436,1438,1440],{"class":834,"line":1156},[832,1426,1030],{"class":838},[832,1428,694],{"class":842},[832,1430,1431],{"class":846}," tone",[832,1433,853],{"class":838},[832,1435,856],{"class":838},[832,1437,708],{"class":859},[832,1439,856],{"class":838},[832,1441,865],{"class":838},[832,1443,1445],{"class":834,"line":1444},17,[832,1446,1447],{"class":878},"      New sign-in detected\n",[832,1449,1451,1454,1456],{"class":834,"line":1450},18,[832,1452,1453],{"class":838},"    \u003C\u002F",[832,1455,694],{"class":842},[832,1457,865],{"class":838},[832,1459,1461,1463,1465],{"class":834,"line":1460},19,[832,1462,1030],{"class":838},[832,1464,764],{"class":842},[832,1466,1073],{"class":838},[832,1468,1470,1472,1474,1476,1479,1481,1483],{"class":834,"line":1469},20,[832,1471,1030],{"class":838},[832,1473,716],{"class":842},[832,1475,1036],{"class":838},[832,1477,1478],{"class":878},"Hi {{ name }}, your account was just signed in to from a new device.",[832,1480,966],{"class":838},[832,1482,716],{"class":842},[832,1484,865],{"class":838},[832,1486,1488],{"class":834,"line":1487},21,[832,1489,926],{"emptyLinePlaceholder":925},[832,1491,1493],{"class":834,"line":1492},22,[832,1494,1496],{"class":1495},"sHwdD","    \u003C!-- Renderer components mix in freely: a two-column details table. -->\n",[832,1498,1500,1502],{"class":834,"line":1499},23,[832,1501,1030],{"class":838},[832,1503,1504],{"class":842},"ERow\n",[832,1506,1508,1511,1513,1515,1518,1521,1523,1526,1529,1532,1535,1537,1539,1542,1545,1547,1550,1552,1554,1557,1559,1561,1564,1566,1568,1571,1574],{"class":834,"line":1507},24,[832,1509,1510],{"class":871},"      v-for",[832,1512,853],{"class":838},[832,1514,856],{"class":838},[832,1516,1517],{"class":838},"[",[832,1519,1520],{"class":878},"label",[832,1522,652],{"class":838},[832,1524,1525],{"class":878},"value",[832,1527,1528],{"class":838},"] in [[",[832,1530,1531],{"class":838},"'",[832,1533,1534],{"class":859},"Device",[832,1536,1531],{"class":838},[832,1538,652],{"class":838},[832,1540,1541],{"class":878},"device",[832,1543,1544],{"class":838},"], [",[832,1546,1531],{"class":838},[832,1548,1549],{"class":859},"Location",[832,1551,1531],{"class":838},[832,1553,652],{"class":838},[832,1555,1556],{"class":878},"location",[832,1558,1544],{"class":838},[832,1560,1531],{"class":838},[832,1562,1563],{"class":859},"Time",[832,1565,1531],{"class":838},[832,1567,652],{"class":838},[832,1569,1570],{"class":878},"signedInAt",[832,1572,1573],{"class":838},"]]",[832,1575,1576],{"class":838},"\"\n",[832,1578,1580,1583,1586,1588,1590,1592],{"class":834,"line":1579},25,[832,1581,1582],{"class":838},"      :",[832,1584,1585],{"class":846},"key",[832,1587,853],{"class":838},[832,1589,856],{"class":838},[832,1591,1520],{"class":878},[832,1593,1576],{"class":838},[832,1595,1597],{"class":834,"line":1596},26,[832,1598,1599],{"class":838},"    >\n",[832,1601,1603,1606,1608,1611,1613,1615,1619,1622,1626,1629,1632,1634,1637,1640,1642],{"class":834,"line":1602},27,[832,1604,1605],{"class":838},"      \u003C",[832,1607,1190],{"class":842},[832,1609,1610],{"class":846}," style",[832,1612,853],{"class":838},[832,1614,856],{"class":838},[832,1616,1618],{"class":1617},"sqsOY","width",[832,1620,1621],{"class":838},": ",[832,1623,1625],{"class":1624},"sbssI","35%",[832,1627,1628],{"class":838},"; ",[832,1630,1631],{"class":1617},"padding",[832,1633,1621],{"class":838},[832,1635,1636],{"class":1624},"4px",[832,1638,1639],{"class":1624}," 0",[832,1641,856],{"class":838},[832,1643,865],{"class":838},[832,1645,1647,1650],{"class":834,"line":1646},28,[832,1648,1649],{"class":838},"        \u003C",[832,1651,1652],{"class":842},"EmailText\n",[832,1654,1656,1659,1661,1663,1666],{"class":834,"line":1655},29,[832,1657,1658],{"class":846},"          variant",[832,1660,853],{"class":838},[832,1662,856],{"class":838},[832,1664,1665],{"class":859},"muted",[832,1667,1576],{"class":838},[832,1669,1671,1674,1676,1678,1681,1683,1686],{"class":834,"line":1670},30,[832,1672,1673],{"class":846},"          style",[832,1675,853],{"class":838},[832,1677,856],{"class":838},[832,1679,1680],{"class":1617},"margin",[832,1682,1621],{"class":838},[832,1684,1685],{"class":1624},"0",[832,1687,1576],{"class":838},[832,1689,1691],{"class":834,"line":1690},31,[832,1692,1693],{"class":838},"        >\n",[832,1695,1697],{"class":834,"line":1696},32,[832,1698,1699],{"class":878},"          {{ label }}\n",[832,1701,1703,1706,1708],{"class":834,"line":1702},33,[832,1704,1705],{"class":838},"        \u003C\u002F",[832,1707,716],{"class":842},[832,1709,865],{"class":838},[832,1711,1713,1716,1718],{"class":834,"line":1712},34,[832,1714,1715],{"class":838},"      \u003C\u002F",[832,1717,1190],{"class":842},[832,1719,865],{"class":838},[832,1721,1723,1725,1727,1729,1731,1733,1735,1737,1739,1741,1743],{"class":834,"line":1722},35,[832,1724,1605],{"class":838},[832,1726,1190],{"class":842},[832,1728,1610],{"class":846},[832,1730,853],{"class":838},[832,1732,856],{"class":838},[832,1734,1631],{"class":1617},[832,1736,1621],{"class":838},[832,1738,1636],{"class":1624},[832,1740,1639],{"class":1624},[832,1742,856],{"class":838},[832,1744,865],{"class":838},[832,1746,1748,1750,1752,1754,1756,1758,1760,1762,1764,1766],{"class":834,"line":1747},36,[832,1749,1649],{"class":838},[832,1751,716],{"class":842},[832,1753,1610],{"class":846},[832,1755,853],{"class":838},[832,1757,856],{"class":838},[832,1759,1680],{"class":1617},[832,1761,1621],{"class":838},[832,1763,1685],{"class":1624},[832,1765,856],{"class":838},[832,1767,865],{"class":838},[832,1769,1771],{"class":834,"line":1770},37,[832,1772,1773],{"class":878},"          {{ value }}\n",[832,1775,1777,1779,1781],{"class":834,"line":1776},38,[832,1778,1705],{"class":838},[832,1780,716],{"class":842},[832,1782,865],{"class":838},[832,1784,1786,1788,1790],{"class":834,"line":1785},39,[832,1787,1715],{"class":838},[832,1789,1190],{"class":842},[832,1791,865],{"class":838},[832,1793,1795,1797,1799],{"class":834,"line":1794},40,[832,1796,1453],{"class":838},[832,1798,1187],{"class":842},[832,1800,865],{"class":838},[832,1802,1804],{"class":834,"line":1803},41,[832,1805,926],{"emptyLinePlaceholder":925},[832,1807,1809,1811,1813],{"class":834,"line":1808},42,[832,1810,1030],{"class":838},[832,1812,764],{"class":842},[832,1814,1073],{"class":838},[832,1816,1818,1820,1822,1824,1827,1829,1831],{"class":834,"line":1817},43,[832,1819,1030],{"class":838},[832,1821,716],{"class":842},[832,1823,1036],{"class":838},[832,1825,1826],{"class":878},"If this was you, no action is needed. If not, secure your account now.",[832,1828,966],{"class":838},[832,1830,716],{"class":842},[832,1832,865],{"class":838},[832,1834,1836,1838],{"class":834,"line":1835},44,[832,1837,1030],{"class":838},[832,1839,1840],{"class":842},"EmailButton\n",[832,1842,1844,1846,1848,1850,1852,1855],{"class":834,"line":1843},45,[832,1845,1582],{"class":838},[832,1847,736],{"class":846},[832,1849,853],{"class":838},[832,1851,856],{"class":838},[832,1853,1854],{"class":878},"secureUrl",[832,1856,1576],{"class":838},[832,1858,1860,1863,1865,1867,1869],{"class":834,"line":1859},46,[832,1861,1862],{"class":846},"      color",[832,1864,853],{"class":838},[832,1866,856],{"class":838},[832,1868,708],{"class":859},[832,1870,1576],{"class":838},[832,1872,1874],{"class":834,"line":1873},47,[832,1875,1599],{"class":838},[832,1877,1879],{"class":834,"line":1878},48,[832,1880,1881],{"class":878},"      Secure my account\n",[832,1883,1885,1887,1889],{"class":834,"line":1884},49,[832,1886,1453],{"class":838},[832,1888,731],{"class":842},[832,1890,865],{"class":838},[832,1892,1894,1896,1898,1900,1902,1904,1906,1908,1910],{"class":834,"line":1893},50,[832,1895,1030],{"class":838},[832,1897,749],{"class":842},[832,1899,996],{"class":838},[832,1901,736],{"class":846},[832,1903,853],{"class":838},[832,1905,856],{"class":838},[832,1907,1854],{"class":878},[832,1909,856],{"class":838},[832,1911,1073],{"class":838},[832,1913,1915,1917,1919],{"class":834,"line":1914},51,[832,1916,1149],{"class":838},[832,1918,646],{"class":842},[832,1920,865],{"class":838},[832,1922,1924,1926,1928],{"class":834,"line":1923},52,[832,1925,966],{"class":838},[832,1927,983],{"class":842},[832,1929,865],{"class":838},[818,1931,1932],{"label":1165},[1167,1933],{"alt":1934,"src":1935},"A new sign-in security alert with a details table","\u002Fimages\u002Femail-templates\u002Fnew-sign-in.png",[593,1937,1938],{},"A receipt, with line items, a computed total and a footer of its own:",[815,1940,1941,2874],{},[818,1942,1944],{"label":1943},"order-receipt.vue",[822,1945,1948],{"className":824,"code":1946,"filename":1947,"language":827,"meta":828,"style":828},"\u003Cscript setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { EmailButton, EmailDivider, EmailFooter, EmailHeading, EmailLayout, EmailText } from '@frigear-nu\u002Femail-templates\u002Fcomponents'\n\nconst props = defineProps\u003C{\n  name: string\n  orderNumber: string\n  items: { label: string, quantity: number, amount: number }[]\n  currency: string\n  orderUrl: string\n}>()\n\n\u002F\u002F Templates render outside the Nuxt app, so format with Intl rather than app composables.\nconst money = (amount: number) => new Intl.NumberFormat('en', { style: 'currency', currency: props.currency }).format(amount)\nconst total = computed(() => props.items.reduce((sum, item) => sum + item.amount * item.quantity, 0))\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CEmailLayout :preview=\"`Receipt for order ${orderNumber}`\">\n    \u003CESubject>Your receipt for order {{ orderNumber }}\u003C\u002FESubject>\n    \u003CEmailHeading>Thanks for your order, {{ name }}!\u003C\u002FEmailHeading>\n    \u003CEmailText variant=\"muted\">\n      Order {{ orderNumber }}\n    \u003C\u002FEmailText>\n    \u003CEmailDivider \u002F>\n\n    \u003CERow\n      v-for=\"item in items\"\n      :key=\"item.label\"\n    >\n      \u003CEColumn>\n        \u003CEmailText style=\"margin: 0 0 8px\">\n          {{ item.quantity }} × {{ item.label }}\n        \u003C\u002FEmailText>\n      \u003C\u002FEColumn>\n      \u003CEColumn align=\"right\">\n        \u003CEmailText style=\"margin: 0 0 8px\">\n          {{ money(item.amount * item.quantity) }}\n        \u003C\u002FEmailText>\n      \u003C\u002FEColumn>\n    \u003C\u002FERow>\n\n    \u003CEmailDivider \u002F>\n    \u003CERow>\n      \u003CEColumn>\n        \u003CEmailText style=\"font-weight: 700; margin: 0 0 16px\">\n          Total\n        \u003C\u002FEmailText>\n      \u003C\u002FEColumn>\n      \u003CEColumn align=\"right\">\n        \u003CEmailText style=\"font-weight: 700; margin: 0 0 16px\">\n          {{ money(total) }}\n        \u003C\u002FEmailText>\n      \u003C\u002FEColumn>\n    \u003C\u002FERow>\n\n    \u003CEmailButton :href=\"orderUrl\">\n      View order\n    \u003C\u002FEmailButton>\n\n    \u003Ctemplate #footer>\n      \u003CEmailFooter>Questions about your order? Just reply to this email.\u003C\u002FEmailFooter>\n    \u003C\u002Ftemplate>\n  \u003C\u002FEmailLayout>\n\u003C\u002Ftemplate>\n","app\u002Femails\u002Forder-receipt.vue",[609,1949,1950,1970,1989,2028,2032,2047,2055,2064,2104,2113,2122,2128,2132,2137,2224,2300,2308,2312,2320,2347,2364,2381,2400,2405,2413,2421,2425,2431,2449,2467,2471,2479,2506,2511,2519,2527,2545,2571,2576,2584,2592,2600,2604,2612,2620,2628,2665,2670,2678,2686,2702,2736,2741,2750,2759,2768,2773,2795,2801,2810,2815,2829,2847,2856,2865],{"__ignoreMap":828},[832,1951,1952,1954,1956,1958,1960,1962,1964,1966,1968],{"class":834,"line":835},[832,1953,839],{"class":838},[832,1955,843],{"class":842},[832,1957,847],{"class":846},[832,1959,850],{"class":846},[832,1961,853],{"class":838},[832,1963,856],{"class":838},[832,1965,860],{"class":859},[832,1967,856],{"class":838},[832,1969,865],{"class":838},[832,1971,1972,1974,1976,1979,1981,1983,1985,1987],{"class":834,"line":868},[832,1973,872],{"class":871},[832,1975,875],{"class":838},[832,1977,1978],{"class":878}," computed",[832,1980,908],{"class":838},[832,1982,911],{"class":871},[832,1984,914],{"class":838},[832,1986,827],{"class":859},[832,1988,919],{"class":838},[832,1990,1991,1993,1995,1997,1999,2001,2003,2006,2008,2010,2012,2014,2016,2018,2020,2022,2024,2026],{"class":834,"line":922},[832,1992,872],{"class":871},[832,1994,875],{"class":838},[832,1996,879],{"class":878},[832,1998,882],{"class":838},[832,2000,885],{"class":878},[832,2002,882],{"class":838},[832,2004,2005],{"class":878}," EmailFooter",[832,2007,882],{"class":838},[832,2009,890],{"class":878},[832,2011,882],{"class":838},[832,2013,895],{"class":878},[832,2015,882],{"class":838},[832,2017,905],{"class":878},[832,2019,908],{"class":838},[832,2021,911],{"class":871},[832,2023,914],{"class":838},[832,2025,611],{"class":859},[832,2027,919],{"class":838},[832,2029,2030],{"class":834,"line":929},[832,2031,926],{"emptyLinePlaceholder":925},[832,2033,2034,2037,2040,2042,2045],{"class":834,"line":963},[832,2035,2036],{"class":846},"const",[832,2038,2039],{"class":878}," props ",[832,2041,853],{"class":838},[832,2043,2044],{"class":932}," defineProps",[832,2046,1313],{"class":838},[832,2048,2049,2051,2053],{"class":834,"line":973},[832,2050,1318],{"class":842},[832,2052,813],{"class":838},[832,2054,1323],{"class":944},[832,2056,2057,2060,2062],{"class":834,"line":978},[832,2058,2059],{"class":842},"  orderNumber",[832,2061,813],{"class":838},[832,2063,1323],{"class":944},[832,2065,2066,2069,2071,2073,2076,2078,2080,2082,2085,2087,2090,2092,2095,2097,2099,2101],{"class":834,"line":988},[832,2067,2068],{"class":842},"  items",[832,2070,813],{"class":838},[832,2072,875],{"class":838},[832,2074,2075],{"class":842}," label",[832,2077,813],{"class":838},[832,2079,945],{"class":944},[832,2081,882],{"class":838},[832,2083,2084],{"class":842}," quantity",[832,2086,813],{"class":838},[832,2088,2089],{"class":944}," number",[832,2091,882],{"class":838},[832,2093,2094],{"class":842}," amount",[832,2096,813],{"class":838},[832,2098,2089],{"class":944},[832,2100,908],{"class":838},[832,2102,2103],{"class":878},"[]\n",[832,2105,2106,2109,2111],{"class":834,"line":1027},[832,2107,2108],{"class":842},"  currency",[832,2110,813],{"class":838},[832,2112,1323],{"class":944},[832,2114,2115,2118,2120],{"class":834,"line":1048},[832,2116,2117],{"class":842},"  orderUrl",[832,2119,813],{"class":838},[832,2121,1323],{"class":944},[832,2123,2124,2126],{"class":834,"line":1066},[832,2125,1364],{"class":838},[832,2127,960],{"class":878},[832,2129,2130],{"class":834,"line":1076},[832,2131,926],{"emptyLinePlaceholder":925},[832,2133,2134],{"class":834,"line":1094},[832,2135,2136],{"class":1495},"\u002F\u002F Templates render outside the Nuxt app, so format with Intl rather than app composables.\n",[832,2138,2139,2141,2144,2146,2148,2152,2154,2156,2159,2162,2165,2168,2170,2173,2176,2178,2180,2182,2184,2186,2188,2190,2192,2195,2197,2199,2202,2204,2207,2209,2212,2214,2216,2218,2221],{"class":834,"line":1125},[832,2140,2036],{"class":846},[832,2142,2143],{"class":878}," money ",[832,2145,853],{"class":838},[832,2147,656],{"class":838},[832,2149,2151],{"class":2150},"sHdIc","amount",[832,2153,813],{"class":838},[832,2155,2089],{"class":944},[832,2157,2158],{"class":838},")",[832,2160,2161],{"class":846}," =>",[832,2163,2164],{"class":838}," new",[832,2166,2167],{"class":878}," Intl",[832,2169,599],{"class":838},[832,2171,2172],{"class":932},"NumberFormat",[832,2174,2175],{"class":878},"(",[832,2177,1531],{"class":838},[832,2179,659],{"class":859},[832,2181,1531],{"class":838},[832,2183,882],{"class":838},[832,2185,875],{"class":838},[832,2187,1610],{"class":842},[832,2189,813],{"class":838},[832,2191,914],{"class":838},[832,2193,2194],{"class":859},"currency",[832,2196,1531],{"class":838},[832,2198,882],{"class":838},[832,2200,2201],{"class":842}," currency",[832,2203,813],{"class":838},[832,2205,2206],{"class":878}," props",[832,2208,599],{"class":838},[832,2210,2211],{"class":878},"currency ",[832,2213,1016],{"class":838},[832,2215,2158],{"class":878},[832,2217,599],{"class":838},[832,2219,2220],{"class":932},"format",[832,2222,2223],{"class":878},"(amount)\n",[832,2225,2226,2228,2231,2233,2235,2237,2240,2242,2244,2246,2249,2251,2254,2256,2258,2261,2263,2266,2268,2270,2273,2276,2278,2280,2283,2286,2288,2290,2293,2295,2297],{"class":834,"line":1146},[832,2227,2036],{"class":846},[832,2229,2230],{"class":878}," total ",[832,2232,853],{"class":838},[832,2234,1978],{"class":932},[832,2236,2175],{"class":878},[832,2238,2239],{"class":838},"()",[832,2241,2161],{"class":846},[832,2243,2206],{"class":878},[832,2245,599],{"class":838},[832,2247,2248],{"class":878},"items",[832,2250,599],{"class":838},[832,2252,2253],{"class":932},"reduce",[832,2255,2175],{"class":878},[832,2257,2175],{"class":838},[832,2259,2260],{"class":2150},"sum",[832,2262,882],{"class":838},[832,2264,2265],{"class":2150}," item",[832,2267,2158],{"class":838},[832,2269,2161],{"class":846},[832,2271,2272],{"class":878}," sum ",[832,2274,2275],{"class":838},"+",[832,2277,2265],{"class":878},[832,2279,599],{"class":838},[832,2281,2282],{"class":878},"amount ",[832,2284,2285],{"class":838},"*",[832,2287,2265],{"class":878},[832,2289,599],{"class":838},[832,2291,2292],{"class":878},"quantity",[832,2294,882],{"class":838},[832,2296,1639],{"class":1624},[832,2298,2299],{"class":878},"))\n",[832,2301,2302,2304,2306],{"class":834,"line":1156},[832,2303,966],{"class":838},[832,2305,843],{"class":842},[832,2307,865],{"class":838},[832,2309,2310],{"class":834,"line":1444},[832,2311,926],{"emptyLinePlaceholder":925},[832,2313,2314,2316,2318],{"class":834,"line":1450},[832,2315,839],{"class":838},[832,2317,983],{"class":842},[832,2319,865],{"class":838},[832,2321,2322,2324,2326,2328,2330,2332,2334,2337,2339,2342,2345],{"class":834,"line":1460},[832,2323,991],{"class":838},[832,2325,646],{"class":842},[832,2327,996],{"class":838},[832,2329,999],{"class":846},[832,2331,853],{"class":838},[832,2333,1004],{"class":838},[832,2335,2336],{"class":859},"Receipt for order ",[832,2338,1010],{"class":838},[832,2340,2341],{"class":878},"orderNumber",[832,2343,2344],{"class":838},"}`\"",[832,2346,865],{"class":838},[832,2348,2349,2351,2353,2355,2358,2360,2362],{"class":834,"line":1469},[832,2350,1030],{"class":838},[832,2352,1033],{"class":842},[832,2354,1036],{"class":838},[832,2356,2357],{"class":878},"Your receipt for order {{ orderNumber }}",[832,2359,966],{"class":838},[832,2361,1033],{"class":842},[832,2363,865],{"class":838},[832,2365,2366,2368,2370,2372,2375,2377,2379],{"class":834,"line":1487},[832,2367,1030],{"class":838},[832,2369,694],{"class":842},[832,2371,1036],{"class":838},[832,2373,2374],{"class":878},"Thanks for your order, {{ name }}!",[832,2376,966],{"class":838},[832,2378,694],{"class":842},[832,2380,865],{"class":838},[832,2382,2383,2385,2387,2390,2392,2394,2396,2398],{"class":834,"line":1492},[832,2384,1030],{"class":838},[832,2386,716],{"class":842},[832,2388,2389],{"class":846}," variant",[832,2391,853],{"class":838},[832,2393,856],{"class":838},[832,2395,1665],{"class":859},[832,2397,856],{"class":838},[832,2399,865],{"class":838},[832,2401,2402],{"class":834,"line":1499},[832,2403,2404],{"class":878},"      Order {{ orderNumber }}\n",[832,2406,2407,2409,2411],{"class":834,"line":1507},[832,2408,1453],{"class":838},[832,2410,716],{"class":842},[832,2412,865],{"class":838},[832,2414,2415,2417,2419],{"class":834,"line":1579},[832,2416,1030],{"class":838},[832,2418,764],{"class":842},[832,2420,1073],{"class":838},[832,2422,2423],{"class":834,"line":1596},[832,2424,926],{"emptyLinePlaceholder":925},[832,2426,2427,2429],{"class":834,"line":1602},[832,2428,1030],{"class":838},[832,2430,1504],{"class":842},[832,2432,2433,2435,2437,2439,2442,2445,2447],{"class":834,"line":1646},[832,2434,1510],{"class":871},[832,2436,853],{"class":838},[832,2438,856],{"class":838},[832,2440,2441],{"class":878},"item",[832,2443,2444],{"class":838}," in ",[832,2446,2248],{"class":878},[832,2448,1576],{"class":838},[832,2450,2451,2453,2455,2457,2459,2461,2463,2465],{"class":834,"line":1655},[832,2452,1582],{"class":838},[832,2454,1585],{"class":846},[832,2456,853],{"class":838},[832,2458,856],{"class":838},[832,2460,2441],{"class":878},[832,2462,599],{"class":838},[832,2464,1520],{"class":878},[832,2466,1576],{"class":838},[832,2468,2469],{"class":834,"line":1670},[832,2470,1599],{"class":838},[832,2472,2473,2475,2477],{"class":834,"line":1690},[832,2474,1605],{"class":838},[832,2476,1190],{"class":842},[832,2478,865],{"class":838},[832,2480,2481,2483,2485,2487,2489,2491,2493,2495,2497,2499,2502,2504],{"class":834,"line":1696},[832,2482,1649],{"class":838},[832,2484,716],{"class":842},[832,2486,1610],{"class":846},[832,2488,853],{"class":838},[832,2490,856],{"class":838},[832,2492,1680],{"class":1617},[832,2494,1621],{"class":838},[832,2496,1685],{"class":1624},[832,2498,1639],{"class":1624},[832,2500,2501],{"class":1624}," 8px",[832,2503,856],{"class":838},[832,2505,865],{"class":838},[832,2507,2508],{"class":834,"line":1702},[832,2509,2510],{"class":878},"          {{ item.quantity }} × {{ item.label }}\n",[832,2512,2513,2515,2517],{"class":834,"line":1712},[832,2514,1705],{"class":838},[832,2516,716],{"class":842},[832,2518,865],{"class":838},[832,2520,2521,2523,2525],{"class":834,"line":1722},[832,2522,1715],{"class":838},[832,2524,1190],{"class":842},[832,2526,865],{"class":838},[832,2528,2529,2531,2533,2536,2538,2541,2543],{"class":834,"line":1747},[832,2530,1605],{"class":838},[832,2532,1190],{"class":842},[832,2534,2535],{"class":838}," align=",[832,2537,856],{"class":838},[832,2539,2540],{"class":859},"right",[832,2542,856],{"class":838},[832,2544,865],{"class":838},[832,2546,2547,2549,2551,2553,2555,2557,2559,2561,2563,2565,2567,2569],{"class":834,"line":1770},[832,2548,1649],{"class":838},[832,2550,716],{"class":842},[832,2552,1610],{"class":846},[832,2554,853],{"class":838},[832,2556,856],{"class":838},[832,2558,1680],{"class":1617},[832,2560,1621],{"class":838},[832,2562,1685],{"class":1624},[832,2564,1639],{"class":1624},[832,2566,2501],{"class":1624},[832,2568,856],{"class":838},[832,2570,865],{"class":838},[832,2572,2573],{"class":834,"line":1776},[832,2574,2575],{"class":878},"          {{ money(item.amount * item.quantity) }}\n",[832,2577,2578,2580,2582],{"class":834,"line":1785},[832,2579,1705],{"class":838},[832,2581,716],{"class":842},[832,2583,865],{"class":838},[832,2585,2586,2588,2590],{"class":834,"line":1794},[832,2587,1715],{"class":838},[832,2589,1190],{"class":842},[832,2591,865],{"class":838},[832,2593,2594,2596,2598],{"class":834,"line":1803},[832,2595,1453],{"class":838},[832,2597,1187],{"class":842},[832,2599,865],{"class":838},[832,2601,2602],{"class":834,"line":1808},[832,2603,926],{"emptyLinePlaceholder":925},[832,2605,2606,2608,2610],{"class":834,"line":1817},[832,2607,1030],{"class":838},[832,2609,764],{"class":842},[832,2611,1073],{"class":838},[832,2613,2614,2616,2618],{"class":834,"line":1835},[832,2615,1030],{"class":838},[832,2617,1187],{"class":842},[832,2619,865],{"class":838},[832,2621,2622,2624,2626],{"class":834,"line":1843},[832,2623,1605],{"class":838},[832,2625,1190],{"class":842},[832,2627,865],{"class":838},[832,2629,2630,2632,2634,2636,2638,2640,2643,2645,2648,2650,2652,2654,2656,2658,2661,2663],{"class":834,"line":1859},[832,2631,1649],{"class":838},[832,2633,716],{"class":842},[832,2635,1610],{"class":846},[832,2637,853],{"class":838},[832,2639,856],{"class":838},[832,2641,2642],{"class":1617},"font-weight",[832,2644,1621],{"class":838},[832,2646,2647],{"class":1624},"700",[832,2649,1628],{"class":838},[832,2651,1680],{"class":1617},[832,2653,1621],{"class":838},[832,2655,1685],{"class":1624},[832,2657,1639],{"class":1624},[832,2659,2660],{"class":1624}," 16px",[832,2662,856],{"class":838},[832,2664,865],{"class":838},[832,2666,2667],{"class":834,"line":1873},[832,2668,2669],{"class":878},"          Total\n",[832,2671,2672,2674,2676],{"class":834,"line":1878},[832,2673,1705],{"class":838},[832,2675,716],{"class":842},[832,2677,865],{"class":838},[832,2679,2680,2682,2684],{"class":834,"line":1884},[832,2681,1715],{"class":838},[832,2683,1190],{"class":842},[832,2685,865],{"class":838},[832,2687,2688,2690,2692,2694,2696,2698,2700],{"class":834,"line":1893},[832,2689,1605],{"class":838},[832,2691,1190],{"class":842},[832,2693,2535],{"class":838},[832,2695,856],{"class":838},[832,2697,2540],{"class":859},[832,2699,856],{"class":838},[832,2701,865],{"class":838},[832,2703,2704,2706,2708,2710,2712,2714,2716,2718,2720,2722,2724,2726,2728,2730,2732,2734],{"class":834,"line":1914},[832,2705,1649],{"class":838},[832,2707,716],{"class":842},[832,2709,1610],{"class":846},[832,2711,853],{"class":838},[832,2713,856],{"class":838},[832,2715,2642],{"class":1617},[832,2717,1621],{"class":838},[832,2719,2647],{"class":1624},[832,2721,1628],{"class":838},[832,2723,1680],{"class":1617},[832,2725,1621],{"class":838},[832,2727,1685],{"class":1624},[832,2729,1639],{"class":1624},[832,2731,2660],{"class":1624},[832,2733,856],{"class":838},[832,2735,865],{"class":838},[832,2737,2738],{"class":834,"line":1923},[832,2739,2740],{"class":878},"          {{ money(total) }}\n",[832,2742,2744,2746,2748],{"class":834,"line":2743},53,[832,2745,1705],{"class":838},[832,2747,716],{"class":842},[832,2749,865],{"class":838},[832,2751,2753,2755,2757],{"class":834,"line":2752},54,[832,2754,1715],{"class":838},[832,2756,1190],{"class":842},[832,2758,865],{"class":838},[832,2760,2762,2764,2766],{"class":834,"line":2761},55,[832,2763,1453],{"class":838},[832,2765,1187],{"class":842},[832,2767,865],{"class":838},[832,2769,2771],{"class":834,"line":2770},56,[832,2772,926],{"emptyLinePlaceholder":925},[832,2774,2776,2778,2780,2782,2784,2786,2788,2791,2793],{"class":834,"line":2775},57,[832,2777,1030],{"class":838},[832,2779,731],{"class":842},[832,2781,996],{"class":838},[832,2783,736],{"class":846},[832,2785,853],{"class":838},[832,2787,856],{"class":838},[832,2789,2790],{"class":878},"orderUrl",[832,2792,856],{"class":838},[832,2794,865],{"class":838},[832,2796,2798],{"class":834,"line":2797},58,[832,2799,2800],{"class":878},"      View order\n",[832,2802,2804,2806,2808],{"class":834,"line":2803},59,[832,2805,1453],{"class":838},[832,2807,731],{"class":842},[832,2809,865],{"class":838},[832,2811,2813],{"class":834,"line":2812},60,[832,2814,926],{"emptyLinePlaceholder":925},[832,2816,2818,2820,2822,2825,2827],{"class":834,"line":2817},61,[832,2819,1030],{"class":838},[832,2821,983],{"class":842},[832,2823,2824],{"class":838}," #",[832,2826,663],{"class":846},[832,2828,865],{"class":838},[832,2830,2832,2834,2836,2838,2841,2843,2845],{"class":834,"line":2831},62,[832,2833,1605],{"class":838},[832,2835,673],{"class":842},[832,2837,1036],{"class":838},[832,2839,2840],{"class":878},"Questions about your order? Just reply to this email.",[832,2842,966],{"class":838},[832,2844,673],{"class":842},[832,2846,865],{"class":838},[832,2848,2850,2852,2854],{"class":834,"line":2849},63,[832,2851,1453],{"class":838},[832,2853,983],{"class":842},[832,2855,865],{"class":838},[832,2857,2859,2861,2863],{"class":834,"line":2858},64,[832,2860,1149],{"class":838},[832,2862,646],{"class":842},[832,2864,865],{"class":838},[832,2866,2868,2870,2872],{"class":834,"line":2867},65,[832,2869,966],{"class":838},[832,2871,983],{"class":842},[832,2873,865],{"class":838},[818,2875,2876],{"label":1165},[1167,2877],{"alt":2878,"src":2879},"An order receipt with line items and a total","\u002Fimages\u002Femail-templates\u002Forder-receipt.png",[593,2881,2882],{},"A digest with no button: a list of links, an empty state, and an unsubscribe link in the footer:",[815,2884,2885,3458],{},[818,2886,2888],{"label":2887},"weekly-digest.vue",[822,2889,2892],{"className":824,"code":2890,"filename":2891,"language":827,"meta":828,"style":828},"\u003Cscript setup lang=\"ts\">\nimport { EmailDivider, EmailFooter, EmailHeading, EmailLayout, EmailText } from '@frigear-nu\u002Femail-templates\u002Fcomponents'\n\ndefineProps\u003C{\n  name: string\n  events: { title: string, date: string, url: string }[]\n  unsubscribeUrl: string\n}>()\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CEmailLayout preview=\"Upcoming events this week\">\n    \u003CESubject>This week at Frigear\u003C\u002FESubject>\n    \u003CEmailHeading>Hi {{ name }}, here’s what’s coming up\u003C\u002FEmailHeading>\n    \u003CEmailDivider \u002F>\n\n    \u003Ctemplate\n      v-for=\"event in events\"\n      :key=\"event.url\"\n    >\n      \u003CEmailText style=\"margin: 0 0 4px; font-weight: 600\">\n        \u003CELink\n          :href=\"event.url\"\n          style=\"color: inherit\"\n        >\n          {{ event.title }}\n        \u003C\u002FELink>\n      \u003C\u002FEmailText>\n      \u003CEmailText variant=\"muted\">\n        {{ event.date }}\n      \u003C\u002FEmailText>\n    \u003C\u002Ftemplate>\n\n    \u003CEmailText v-if=\"!events.length\">\n      Nothing scheduled this week. We’ll let you know when something comes up.\n    \u003C\u002FEmailText>\n\n    \u003C!-- Replace the default footer, e.g. with an unsubscribe link. -->\n    \u003Ctemplate #footer>\n      \u003CEmailFooter>\n        You get this digest because you follow Frigear events.\n        \u003Ca\n          :href=\"unsubscribeUrl\"\n          style=\"color: inherit\"\n        >Unsubscribe\u003C\u002Fa>.\n      \u003C\u002FEmailFooter>\n    \u003C\u002Ftemplate>\n  \u003C\u002FEmailLayout>\n\u003C\u002Ftemplate>\n","app\u002Femails\u002Fweekly-digest.vue",[609,2893,2894,2914,2948,2952,2958,2966,3003,3012,3018,3026,3030,3038,3057,3074,3091,3099,3103,3110,3129,3148,3152,3188,3195,3214,3232,3236,3241,3250,3258,3276,3281,3289,3297,3301,3328,3333,3341,3345,3350,3362,3370,3375,3382,3396,3409,3426,3434,3442,3450],{"__ignoreMap":828},[832,2895,2896,2898,2900,2902,2904,2906,2908,2910,2912],{"class":834,"line":835},[832,2897,839],{"class":838},[832,2899,843],{"class":842},[832,2901,847],{"class":846},[832,2903,850],{"class":846},[832,2905,853],{"class":838},[832,2907,856],{"class":838},[832,2909,860],{"class":859},[832,2911,856],{"class":838},[832,2913,865],{"class":838},[832,2915,2916,2918,2920,2922,2924,2926,2928,2930,2932,2934,2936,2938,2940,2942,2944,2946],{"class":834,"line":868},[832,2917,872],{"class":871},[832,2919,875],{"class":838},[832,2921,885],{"class":878},[832,2923,882],{"class":838},[832,2925,2005],{"class":878},[832,2927,882],{"class":838},[832,2929,890],{"class":878},[832,2931,882],{"class":838},[832,2933,895],{"class":878},[832,2935,882],{"class":838},[832,2937,905],{"class":878},[832,2939,908],{"class":838},[832,2941,911],{"class":871},[832,2943,914],{"class":838},[832,2945,611],{"class":859},[832,2947,919],{"class":838},[832,2949,2950],{"class":834,"line":922},[832,2951,926],{"emptyLinePlaceholder":925},[832,2953,2954,2956],{"class":834,"line":929},[832,2955,933],{"class":932},[832,2957,1313],{"class":838},[832,2959,2960,2962,2964],{"class":834,"line":963},[832,2961,1318],{"class":842},[832,2963,813],{"class":838},[832,2965,1323],{"class":944},[832,2967,2968,2971,2973,2975,2978,2980,2982,2984,2987,2989,2991,2993,2995,2997,2999,3001],{"class":834,"line":973},[832,2969,2970],{"class":842},"  events",[832,2972,813],{"class":838},[832,2974,875],{"class":838},[832,2976,2977],{"class":842}," title",[832,2979,813],{"class":838},[832,2981,945],{"class":944},[832,2983,882],{"class":838},[832,2985,2986],{"class":842}," date",[832,2988,813],{"class":838},[832,2990,945],{"class":944},[832,2992,882],{"class":838},[832,2994,950],{"class":842},[832,2996,813],{"class":838},[832,2998,945],{"class":944},[832,3000,908],{"class":838},[832,3002,2103],{"class":878},[832,3004,3005,3008,3010],{"class":834,"line":978},[832,3006,3007],{"class":842},"  unsubscribeUrl",[832,3009,813],{"class":838},[832,3011,1323],{"class":944},[832,3013,3014,3016],{"class":834,"line":988},[832,3015,1364],{"class":838},[832,3017,960],{"class":878},[832,3019,3020,3022,3024],{"class":834,"line":1027},[832,3021,966],{"class":838},[832,3023,843],{"class":842},[832,3025,865],{"class":838},[832,3027,3028],{"class":834,"line":1048},[832,3029,926],{"emptyLinePlaceholder":925},[832,3031,3032,3034,3036],{"class":834,"line":1066},[832,3033,839],{"class":838},[832,3035,983],{"class":842},[832,3037,865],{"class":838},[832,3039,3040,3042,3044,3046,3048,3050,3053,3055],{"class":834,"line":1076},[832,3041,991],{"class":838},[832,3043,646],{"class":842},[832,3045,1395],{"class":846},[832,3047,853],{"class":838},[832,3049,856],{"class":838},[832,3051,3052],{"class":859},"Upcoming events this week",[832,3054,856],{"class":838},[832,3056,865],{"class":838},[832,3058,3059,3061,3063,3065,3068,3070,3072],{"class":834,"line":1094},[832,3060,1030],{"class":838},[832,3062,1033],{"class":842},[832,3064,1036],{"class":838},[832,3066,3067],{"class":878},"This week at Frigear",[832,3069,966],{"class":838},[832,3071,1033],{"class":842},[832,3073,865],{"class":838},[832,3075,3076,3078,3080,3082,3085,3087,3089],{"class":834,"line":1125},[832,3077,1030],{"class":838},[832,3079,694],{"class":842},[832,3081,1036],{"class":838},[832,3083,3084],{"class":878},"Hi {{ name }}, here’s what’s coming up",[832,3086,966],{"class":838},[832,3088,694],{"class":842},[832,3090,865],{"class":838},[832,3092,3093,3095,3097],{"class":834,"line":1146},[832,3094,1030],{"class":838},[832,3096,764],{"class":842},[832,3098,1073],{"class":838},[832,3100,3101],{"class":834,"line":1156},[832,3102,926],{"emptyLinePlaceholder":925},[832,3104,3105,3107],{"class":834,"line":1444},[832,3106,1030],{"class":838},[832,3108,3109],{"class":842},"template\n",[832,3111,3112,3114,3116,3118,3121,3124,3127],{"class":834,"line":1450},[832,3113,1510],{"class":871},[832,3115,853],{"class":838},[832,3117,856],{"class":838},[832,3119,3120],{"class":878},"event ",[832,3122,3123],{"class":838},"in",[832,3125,3126],{"class":878}," events",[832,3128,1576],{"class":838},[832,3130,3131,3133,3135,3137,3139,3142,3144,3146],{"class":834,"line":1460},[832,3132,1582],{"class":838},[832,3134,1585],{"class":846},[832,3136,853],{"class":838},[832,3138,856],{"class":838},[832,3140,3141],{"class":878},"event",[832,3143,599],{"class":838},[832,3145,1109],{"class":878},[832,3147,1576],{"class":838},[832,3149,3150],{"class":834,"line":1469},[832,3151,1599],{"class":838},[832,3153,3154,3156,3158,3160,3162,3164,3166,3168,3170,3172,3175,3177,3179,3181,3184,3186],{"class":834,"line":1487},[832,3155,1605],{"class":838},[832,3157,716],{"class":842},[832,3159,1610],{"class":846},[832,3161,853],{"class":838},[832,3163,856],{"class":838},[832,3165,1680],{"class":1617},[832,3167,1621],{"class":838},[832,3169,1685],{"class":1624},[832,3171,1639],{"class":1624},[832,3173,3174],{"class":1624}," 4px",[832,3176,1628],{"class":838},[832,3178,2642],{"class":1617},[832,3180,1621],{"class":838},[832,3182,3183],{"class":1624},"600",[832,3185,856],{"class":838},[832,3187,865],{"class":838},[832,3189,3190,3192],{"class":834,"line":1492},[832,3191,1649],{"class":838},[832,3193,3194],{"class":842},"ELink\n",[832,3196,3197,3200,3202,3204,3206,3208,3210,3212],{"class":834,"line":1499},[832,3198,3199],{"class":838},"          :",[832,3201,736],{"class":846},[832,3203,853],{"class":838},[832,3205,856],{"class":838},[832,3207,3141],{"class":878},[832,3209,599],{"class":838},[832,3211,1109],{"class":878},[832,3213,1576],{"class":838},[832,3215,3216,3218,3220,3222,3225,3227,3230],{"class":834,"line":1507},[832,3217,1673],{"class":846},[832,3219,853],{"class":838},[832,3221,856],{"class":838},[832,3223,3224],{"class":1617},"color",[832,3226,1621],{"class":838},[832,3228,3229],{"class":878},"inherit",[832,3231,1576],{"class":838},[832,3233,3234],{"class":834,"line":1579},[832,3235,1693],{"class":838},[832,3237,3238],{"class":834,"line":1596},[832,3239,3240],{"class":878},"          {{ event.title }}\n",[832,3242,3243,3245,3248],{"class":834,"line":1602},[832,3244,1705],{"class":838},[832,3246,3247],{"class":842},"ELink",[832,3249,865],{"class":838},[832,3251,3252,3254,3256],{"class":834,"line":1646},[832,3253,1715],{"class":838},[832,3255,716],{"class":842},[832,3257,865],{"class":838},[832,3259,3260,3262,3264,3266,3268,3270,3272,3274],{"class":834,"line":1655},[832,3261,1605],{"class":838},[832,3263,716],{"class":842},[832,3265,2389],{"class":846},[832,3267,853],{"class":838},[832,3269,856],{"class":838},[832,3271,1665],{"class":859},[832,3273,856],{"class":838},[832,3275,865],{"class":838},[832,3277,3278],{"class":834,"line":1670},[832,3279,3280],{"class":878},"        {{ event.date }}\n",[832,3282,3283,3285,3287],{"class":834,"line":1690},[832,3284,1715],{"class":838},[832,3286,716],{"class":842},[832,3288,865],{"class":838},[832,3290,3291,3293,3295],{"class":834,"line":1696},[832,3292,1453],{"class":838},[832,3294,983],{"class":842},[832,3296,865],{"class":838},[832,3298,3299],{"class":834,"line":1702},[832,3300,926],{"emptyLinePlaceholder":925},[832,3302,3303,3305,3307,3310,3312,3314,3316,3319,3321,3324,3326],{"class":834,"line":1712},[832,3304,1030],{"class":838},[832,3306,716],{"class":842},[832,3308,3309],{"class":871}," v-if",[832,3311,853],{"class":838},[832,3313,856],{"class":838},[832,3315,1019],{"class":838},[832,3317,3318],{"class":878},"events",[832,3320,599],{"class":838},[832,3322,3323],{"class":878},"length",[832,3325,856],{"class":838},[832,3327,865],{"class":838},[832,3329,3330],{"class":834,"line":1722},[832,3331,3332],{"class":878},"      Nothing scheduled this week. We’ll let you know when something comes up.\n",[832,3334,3335,3337,3339],{"class":834,"line":1747},[832,3336,1453],{"class":838},[832,3338,716],{"class":842},[832,3340,865],{"class":838},[832,3342,3343],{"class":834,"line":1770},[832,3344,926],{"emptyLinePlaceholder":925},[832,3346,3347],{"class":834,"line":1776},[832,3348,3349],{"class":1495},"    \u003C!-- Replace the default footer, e.g. with an unsubscribe link. -->\n",[832,3351,3352,3354,3356,3358,3360],{"class":834,"line":1785},[832,3353,1030],{"class":838},[832,3355,983],{"class":842},[832,3357,2824],{"class":838},[832,3359,663],{"class":846},[832,3361,865],{"class":838},[832,3363,3364,3366,3368],{"class":834,"line":1794},[832,3365,1605],{"class":838},[832,3367,673],{"class":842},[832,3369,865],{"class":838},[832,3371,3372],{"class":834,"line":1803},[832,3373,3374],{"class":878},"        You get this digest because you follow Frigear events.\n",[832,3376,3377,3379],{"class":834,"line":1808},[832,3378,1649],{"class":838},[832,3380,3381],{"class":842},"a\n",[832,3383,3384,3387,3389,3391,3394],{"class":834,"line":1817},[832,3385,3386],{"class":846},"          :href",[832,3388,853],{"class":838},[832,3390,856],{"class":838},[832,3392,3393],{"class":859},"unsubscribeUrl",[832,3395,1576],{"class":838},[832,3397,3398,3400,3402,3404,3407],{"class":834,"line":1835},[832,3399,1673],{"class":846},[832,3401,853],{"class":838},[832,3403,856],{"class":838},[832,3405,3406],{"class":859},"color: inherit",[832,3408,1576],{"class":838},[832,3410,3411,3414,3417,3419,3421,3423],{"class":834,"line":1843},[832,3412,3413],{"class":838},"        >",[832,3415,3416],{"class":878},"Unsubscribe",[832,3418,966],{"class":838},[832,3420,597],{"class":842},[832,3422,1036],{"class":838},[832,3424,3425],{"class":878},".\n",[832,3427,3428,3430,3432],{"class":834,"line":1859},[832,3429,1715],{"class":838},[832,3431,673],{"class":842},[832,3433,865],{"class":838},[832,3435,3436,3438,3440],{"class":834,"line":1873},[832,3437,1453],{"class":838},[832,3439,983],{"class":842},[832,3441,865],{"class":838},[832,3443,3444,3446,3448],{"class":834,"line":1878},[832,3445,1149],{"class":838},[832,3447,646],{"class":842},[832,3449,865],{"class":838},[832,3451,3452,3454,3456],{"class":834,"line":1884},[832,3453,966],{"class":838},[832,3455,983],{"class":842},[832,3457,865],{"class":838},[818,3459,3460],{"label":1165},[1167,3461],{"alt":3462,"src":3463},"A weekly digest with event links and an unsubscribe footer","\u002Fimages\u002Femail-templates\u002Fweekly-digest.png",[593,3465,3466,3467,813],{},"Send them like any other template. The props are typed from each ",[609,3468,933],{},[822,3470,3473],{"className":3471,"code":3472,"language":860,"meta":828,"style":828},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","await sendEmailTemplate('order-receipt', {\n  name: user.name,\n  orderNumber: order.number,\n  currency: 'DKK',\n  items: order.lines.map(line => ({ label: line.label, quantity: line.quantity, amount: line.amount })),\n  orderUrl: `${origin}\u002Forders\u002F${order.number}`,\n}, { to: user.email })\n",[609,3474,3475,3497,3513,3529,3544,3615,3646],{"__ignoreMap":828},[832,3476,3477,3480,3483,3485,3487,3490,3492,3494],{"class":834,"line":835},[832,3478,3479],{"class":871},"await",[832,3481,3482],{"class":932}," sendEmailTemplate",[832,3484,2175],{"class":878},[832,3486,1531],{"class":838},[832,3488,3489],{"class":859},"order-receipt",[832,3491,1531],{"class":838},[832,3493,882],{"class":838},[832,3495,3496],{"class":838}," {\n",[832,3498,3499,3501,3503,3506,3508,3510],{"class":834,"line":868},[832,3500,1318],{"class":842},[832,3502,813],{"class":838},[832,3504,3505],{"class":878}," user",[832,3507,599],{"class":838},[832,3509,1013],{"class":878},[832,3511,3512],{"class":838},",\n",[832,3514,3515,3517,3519,3522,3524,3527],{"class":834,"line":922},[832,3516,2059],{"class":842},[832,3518,813],{"class":838},[832,3520,3521],{"class":878}," order",[832,3523,599],{"class":838},[832,3525,3526],{"class":878},"number",[832,3528,3512],{"class":838},[832,3530,3531,3533,3535,3537,3540,3542],{"class":834,"line":929},[832,3532,2108],{"class":842},[832,3534,813],{"class":838},[832,3536,914],{"class":838},[832,3538,3539],{"class":859},"DKK",[832,3541,1531],{"class":838},[832,3543,3512],{"class":838},[832,3545,3546,3548,3550,3552,3554,3557,3559,3562,3564,3566,3568,3570,3573,3575,3577,3580,3582,3584,3586,3588,3590,3592,3594,3596,3598,3600,3602,3604,3606,3608,3610,3613],{"class":834,"line":963},[832,3547,2068],{"class":842},[832,3549,813],{"class":838},[832,3551,3521],{"class":878},[832,3553,599],{"class":838},[832,3555,3556],{"class":878},"lines",[832,3558,599],{"class":838},[832,3560,3561],{"class":932},"map",[832,3563,2175],{"class":878},[832,3565,834],{"class":2150},[832,3567,2161],{"class":846},[832,3569,656],{"class":878},[832,3571,3572],{"class":838},"{",[832,3574,2075],{"class":842},[832,3576,813],{"class":838},[832,3578,3579],{"class":878}," line",[832,3581,599],{"class":838},[832,3583,1520],{"class":878},[832,3585,882],{"class":838},[832,3587,2084],{"class":842},[832,3589,813],{"class":838},[832,3591,3579],{"class":878},[832,3593,599],{"class":838},[832,3595,2292],{"class":878},[832,3597,882],{"class":838},[832,3599,2094],{"class":842},[832,3601,813],{"class":838},[832,3603,3579],{"class":878},[832,3605,599],{"class":838},[832,3607,2282],{"class":878},[832,3609,1016],{"class":838},[832,3611,3612],{"class":878},"))",[832,3614,3512],{"class":838},[832,3616,3617,3619,3621,3624,3627,3629,3632,3634,3637,3639,3641,3644],{"class":834,"line":973},[832,3618,2117],{"class":842},[832,3620,813],{"class":838},[832,3622,3623],{"class":838}," `${",[832,3625,3626],{"class":878},"origin",[832,3628,1016],{"class":838},[832,3630,3631],{"class":859},"\u002Forders\u002F",[832,3633,1010],{"class":838},[832,3635,3636],{"class":878},"order",[832,3638,599],{"class":838},[832,3640,3526],{"class":878},[832,3642,3643],{"class":838},"}`",[832,3645,3512],{"class":838},[832,3647,3648,3651,3653,3656,3658,3660,3662,3665,3667],{"class":834,"line":978},[832,3649,3650],{"class":838},"},",[832,3652,875],{"class":838},[832,3654,3655],{"class":842}," to",[832,3657,813],{"class":838},[832,3659,3505],{"class":878},[832,3661,599],{"class":838},[832,3663,3664],{"class":878},"email ",[832,3666,1016],{"class":838},[832,3668,3669],{"class":878},")\n",[601,3671,3673],{"id":3672},"next-steps","Next steps",[1175,3675,3676,3686],{},[1178,3677,3678,3681,3682,3685],{},[597,3679,3680],{"href":417},"Email templates server"," – what ",[609,3683,3684],{},"sendEmailTemplate"," accepts besides props.",[1178,3687,3688,3690],{},[597,3689,420],{"href":421}," – restyle the emails that modules send.",[1200,3692,3693],{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sqsOY, html code.shiki .sqsOY{--shiki-light:#8796B0;--shiki-default:#B2CCD6;--shiki-dark:#B2CCD6}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}",{"title":828,"searchDepth":868,"depth":868,"links":3695},[3696,3697,3698],{"id":603,"depth":868,"text":604},{"id":789,"depth":868,"text":790},{"id":3672,"depth":868,"text":3673},"The styled Email* components, and how to compose a welcome email, an alert, a receipt or a digest.","md",null,{},{"title":413},{"title":413,"description":3699},"qcBIDqjayR7fJgeV2nRzJshsSepl2owj9dVvzqoyu00",[3707,3709],{"title":173,"path":408,"stem":409,"description":3708,"children":-1},"Design your app's emails, and the emails modules send, as Vue components with your own branding.",{"title":175,"path":417,"stem":418,"description":3710,"children":-1},"Send or render an email template from server code, with typed template names and props.",1794503159143]