[{"data":1,"prerenderedAt":832},["ShallowReactive",2],{"navigation":3,"\u002Fnuxt-module\u002Fcwa-layer\u002Foverview":358,"\u002Fnuxt-module\u002Fcwa-layer\u002Foverview-surround":827},[4,14,36,69,140,341],{"title":5,"path":6,"stem":7,"children":8},"Introduction","\u002Fgetting-started","1.getting-started\u002F1.index",[9,10],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":15,"path":16,"stem":17,"children":18,"page":35},"Guides","\u002Fguides","2.guides",[19,23,27,31],{"title":20,"path":21,"stem":22},"Your First Layout","\u002Fguides\u002Fyour-first-layout","2.guides\u002F1.your-first-layout",{"title":24,"path":25,"stem":26},"Your First Page Template","\u002Fguides\u002Fyour-first-page-template","2.guides\u002F2.your-first-page-template",{"title":28,"path":29,"stem":30},"Your First Component","\u002Fguides\u002Fyour-first-component","2.guides\u002F3.your-first-component",{"title":32,"path":33,"stem":34},"Alternative UI Variants","\u002Fguides\u002Falternative-ui-variants","2.guides\u002F4.alternative-ui-variants",false,{"title":37,"path":38,"stem":39,"children":40,"page":35},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[41,45,49,53,57,61,65],{"title":42,"path":43,"stem":44},"How It All Works","\u002Fcore-concepts\u002Farchitecture","3.core-concepts\u002F1.architecture",{"title":46,"path":47,"stem":48},"The Data Model","\u002Fcore-concepts\u002Fthe-data-model","3.core-concepts\u002F2.the-data-model",{"title":50,"path":51,"stem":52},"Layouts & Pages","\u002Fcore-concepts\u002Flayouts-and-pages","3.core-concepts\u002F3.layouts-and-pages",{"title":54,"path":55,"stem":56},"Dynamic Pages","\u002Fcore-concepts\u002Fdynamic-pages","3.core-concepts\u002F4.dynamic-pages",{"title":58,"path":59,"stem":60},"Components","\u002Fcore-concepts\u002Fcomponents","3.core-concepts\u002F5.components",{"title":62,"path":63,"stem":64},"Draft & Publish Workflow","\u002Fcore-concepts\u002Fdraft-and-publish","3.core-concepts\u002F6.draft-and-publish",{"title":66,"path":67,"stem":68},"The Admin Panel","\u002Fcore-concepts\u002Fadmin-panel","3.core-concepts\u002F7.admin-panel",{"title":70,"path":71,"stem":72,"children":73,"page":35},"Api","\u002Fapi","4.api",[74,78,116,120,124,128,132,136],{"title":75,"path":76,"stem":77},"Bundle Setup","\u002Fapi\u002Fbundle-setup","4.api\u002F1.bundle-setup",{"title":58,"path":79,"stem":80,"children":81,"page":35},"\u002Fapi\u002Fcomponents","4.api\u002F2.components",[82,86,103],{"title":83,"path":84,"stem":85},"Creating Components","\u002Fapi\u002Fcomponents\u002Fcreating-components","4.api\u002F2.components\u002F1.creating-components",{"title":87,"path":88,"stem":89,"children":90,"page":35},"Annotations","\u002Fapi\u002Fcomponents\u002Fannotations","4.api\u002F2.components\u002F2.annotations",[91,95,99],{"title":92,"path":93,"stem":94},"Publishable","\u002Fapi\u002Fcomponents\u002Fannotations\u002Fpublishable","4.api\u002F2.components\u002F2.annotations\u002F1.publishable",{"title":96,"path":97,"stem":98},"Uploadable","\u002Fapi\u002Fcomponents\u002Fannotations\u002Fuploadable","4.api\u002F2.components\u002F2.annotations\u002F2.uploadable",{"title":100,"path":101,"stem":102},"Timestamped","\u002Fapi\u002Fcomponents\u002Fannotations\u002Ftimestamped","4.api\u002F2.components\u002F2.annotations\u002F3.timestamped",{"title":104,"path":105,"stem":106,"children":107,"page":35},"Built Ins","\u002Fapi\u002Fcomponents\u002Fbuilt-ins","4.api\u002F2.components\u002F3.built-ins",[108,112],{"title":109,"path":110,"stem":111},"Collection Component","\u002Fapi\u002Fcomponents\u002Fbuilt-ins\u002Fcollection-component","4.api\u002F2.components\u002F3.built-ins\u002F1.collection-component",{"title":113,"path":114,"stem":115},"Form Component","\u002Fapi\u002Fcomponents\u002Fbuilt-ins\u002Fform-component","4.api\u002F2.components\u002F3.built-ins\u002F2.form-component",{"title":117,"path":118,"stem":119},"Dynamic & Nested Pages","\u002Fapi\u002Fdynamic-pages","4.api\u002F3.dynamic-pages",{"title":121,"path":122,"stem":123},"Users & Security","\u002Fapi\u002Fusers-and-security","4.api\u002F4.users-and-security",{"title":125,"path":126,"stem":127},"Data Fixtures","\u002Fapi\u002Fdata-fixtures","4.api\u002F5.data-fixtures",{"title":129,"path":130,"stem":131},"Configuration Reference","\u002Fapi\u002Fconfiguration","4.api\u002F6.configuration",{"title":133,"path":134,"stem":135},"Console Commands","\u002Fapi\u002Fconsole-commands","4.api\u002F7.console-commands",{"title":137,"path":138,"stem":139},"Debugging & Profiler","\u002Fapi\u002Fdebugging","4.api\u002F8.debugging",{"title":141,"path":142,"stem":143,"children":144,"page":35},"Nuxt Module","\u002Fnuxt-module","5.nuxt-module",[145,149,162,182,207,211,295,320,324],{"title":146,"path":147,"stem":148},"Module Setup","\u002Fnuxt-module\u002Fmodule-setup","5.nuxt-module\u002F1.module-setup",{"title":150,"path":151,"stem":152,"children":153,"page":35},"Configuration","\u002Fnuxt-module\u002Fconfiguration","5.nuxt-module\u002F2.configuration",[154,158],{"title":155,"path":156,"stem":157},"Nuxt Config","\u002Fnuxt-module\u002Fconfiguration\u002Fnuxt-config","5.nuxt-module\u002F2.configuration\u002F1.nuxt-config",{"title":159,"path":160,"stem":161},"Site Config & SEO","\u002Fnuxt-module\u002Fconfiguration\u002Fsite-config-and-seo","5.nuxt-module\u002F2.configuration\u002F2.site-config-and-seo",{"title":163,"path":164,"stem":165,"children":166,"page":35},"Building Your Ui","\u002Fnuxt-module\u002Fbuilding-your-ui","5.nuxt-module\u002F3.building-your-ui",[167,171,175,178],{"title":168,"path":169,"stem":170},"Layouts","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-layouts","5.nuxt-module\u002F3.building-your-ui\u002F1.creating-layouts",{"title":172,"path":173,"stem":174},"Page Templates","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-page-templates","5.nuxt-module\u002F3.building-your-ui\u002F2.creating-page-templates",{"title":83,"path":176,"stem":177},"\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-components","5.nuxt-module\u002F3.building-your-ui\u002F3.creating-components",{"title":179,"path":180,"stem":181},"CLI Generator","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcwa-cli","5.nuxt-module\u002F3.building-your-ui\u002F4.cwa-cli",{"title":183,"path":184,"stem":185,"children":186,"page":35},"Cwa Components","\u002Fnuxt-module\u002Fcwa-components","5.nuxt-module\u002F4.cwa-components",[187,191,195,199,203],{"title":188,"path":189,"stem":190},"\u003CCwaComponentGroup \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-component-group","5.nuxt-module\u002F4.cwa-components\u002F1.cwa-component-group",{"title":192,"path":193,"stem":194},"\u003CCwaPage \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-page","5.nuxt-module\u002F4.cwa-components\u002F2.cwa-page",{"title":196,"path":197,"stem":198},"\u003CCwaLink \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-link","5.nuxt-module\u002F4.cwa-components\u002F3.cwa-link",{"title":200,"path":201,"stem":202},"\u003CCwaImage \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-image","5.nuxt-module\u002F4.cwa-components\u002F4.cwa-image",{"title":204,"path":205,"stem":206},"\u003CCwaDefaultLayout \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-default-layout","5.nuxt-module\u002F4.cwa-components\u002F5.cwa-default-layout",{"title":208,"path":209,"stem":210},"The useCwa() API","\u002Fnuxt-module\u002Fcwa-api","5.nuxt-module\u002F5.cwa-api",{"title":212,"path":213,"stem":214,"children":215,"page":35},"Composables","\u002Fnuxt-module\u002Fcomposables","5.nuxt-module\u002F6.composables",[216,224,261,278],{"title":217,"path":218,"stem":219,"children":220,"page":35},"Layout","\u002Fnuxt-module\u002Fcomposables\u002Flayout","5.nuxt-module\u002F6.composables\u002F0.layout",[221],{"title":217,"path":222,"stem":223},"\u002Fnuxt-module\u002Fcomposables\u002Flayout\u002Fuse-cwa-layout","5.nuxt-module\u002F6.composables\u002F0.layout\u002F1.use-cwa-layout",{"title":225,"path":226,"stem":227,"children":228,"page":35},"Component","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent","5.nuxt-module\u002F6.composables\u002F1.component",[229,233,237,241,245,249,253,257],{"title":230,"path":231,"stem":232},"Component (recommended)","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-component","5.nuxt-module\u002F6.composables\u002F1.component\u002F0.use-cwa-component",{"title":234,"path":235,"stem":236},"Resource","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-resource","5.nuxt-module\u002F6.composables\u002F1.component\u002F1.use-cwa-resource",{"title":238,"path":239,"stem":240},"Collection Resource","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-collection-resource","5.nuxt-module\u002F6.composables\u002F1.component\u002F2.use-cwa-collection-resource",{"title":242,"path":243,"stem":244},"Image Resource","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-image-resource","5.nuxt-module\u002F6.composables\u002F1.component\u002F3.use-cwa-image-resource",{"title":246,"path":247,"stem":248},"Form","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form","5.nuxt-module\u002F6.composables\u002F1.component\u002F4.use-cwa-form",{"title":250,"path":251,"stem":252},"Form Input","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form-input","5.nuxt-module\u002F6.composables\u002F1.component\u002F5.use-cwa-form-input",{"title":254,"path":255,"stem":256},"Form Repeated","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form-repeated","5.nuxt-module\u002F6.composables\u002F1.component\u002F6.use-cwa-form-repeated",{"title":258,"path":259,"stem":260},"Form Collection","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form-collection","5.nuxt-module\u002F6.composables\u002F1.component\u002F7.use-cwa-form-collection",{"title":262,"path":263,"stem":264,"children":265,"page":35},"Admin Manager","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager","5.nuxt-module\u002F6.composables\u002F2.admin-manager",[266,270,274],{"title":267,"path":268,"stem":269},"Manager Tab","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-resource-manager-tab","5.nuxt-module\u002F6.composables\u002F2.admin-manager\u002F1.use-cwa-resource-manager-tab",{"title":271,"path":272,"stem":273},"Resource Model","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-resource-model","5.nuxt-module\u002F6.composables\u002F2.admin-manager\u002F2.use-cwa-resource-model",{"title":275,"path":276,"stem":277},"Resource Upload","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-resource-upload","5.nuxt-module\u002F6.composables\u002F2.admin-manager\u002F3.use-cwa-resource-upload",{"title":279,"path":280,"stem":281,"children":282,"page":35},"Utilities","\u002Fnuxt-module\u002Fcomposables\u002Futilities","5.nuxt-module\u002F6.composables\u002F3.utilities",[283,287,291],{"title":284,"path":285,"stem":286},"Resource Endpoint","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-cwa-resource-endpoint","5.nuxt-module\u002F6.composables\u002F3.utilities\u002F1.use-cwa-resource-endpoint",{"title":288,"path":289,"stem":290},"Query Model","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-query-bound-model","5.nuxt-module\u002F6.composables\u002F3.utilities\u002F2.use-query-bound-model",{"title":292,"path":293,"stem":294},"Resource Route","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-cwa-resource-route","5.nuxt-module\u002F6.composables\u002F3.utilities\u002F3.use-cwa-resource-route",{"title":296,"path":297,"stem":298,"children":299,"page":35},"Component Helpers","\u002Fnuxt-module\u002Fcomponent-helpers","5.nuxt-module\u002F7.component-helpers",[300,304,308,312,316],{"title":301,"path":302,"stem":303},"Images & Media","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fimages-and-uploads","5.nuxt-module\u002F7.component-helpers\u002F1.images-and-uploads",{"title":305,"path":306,"stem":307},"Collections & Pagination","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fcollections-and-pagination","5.nuxt-module\u002F7.component-helpers\u002F2.collections-and-pagination",{"title":309,"path":310,"stem":311},"HTML Content","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fhtml-content","5.nuxt-module\u002F7.component-helpers\u002F3.html-content",{"title":313,"path":314,"stem":315},"Real-Time Updates","\u002Fnuxt-module\u002Fcomponent-helpers\u002Freal-time-updates","5.nuxt-module\u002F7.component-helpers\u002F4.real-time-updates",{"title":317,"path":318,"stem":319},"Forms","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fforms","5.nuxt-module\u002F7.component-helpers\u002F5.forms",{"title":321,"path":322,"stem":323},"Authentication","\u002Fnuxt-module\u002Fauthentication","5.nuxt-module\u002F8.authentication",{"title":325,"path":326,"stem":327,"children":328,"page":35},"Cwa Layer","\u002Fnuxt-module\u002Fcwa-layer","5.nuxt-module\u002F9.cwa-layer",[329,333,337],{"title":330,"path":331,"stem":332},"Overview","\u002Fnuxt-module\u002Fcwa-layer\u002Foverview","5.nuxt-module\u002F9.cwa-layer\u002F1.overview",{"title":334,"path":335,"stem":336},"Auth Pages","\u002Fnuxt-module\u002Fcwa-layer\u002Fauth-pages","5.nuxt-module\u002F9.cwa-layer\u002F2.auth-pages",{"title":338,"path":339,"stem":340},"Admin Panel","\u002Fnuxt-module\u002Fcwa-layer\u002Fadmin-panel","5.nuxt-module\u002F9.cwa-layer\u002F3.admin-panel",{"title":342,"path":343,"stem":344,"children":345,"page":35},"Deployment","\u002Fdeployment","6.deployment",[346,350,354],{"title":347,"path":348,"stem":349},"Docker","\u002Fdeployment\u002Fdocker","6.deployment\u002F1.docker",{"title":351,"path":352,"stem":353},"Kubernetes & Helm","\u002Fdeployment\u002Fkubernetes","6.deployment\u002F2.kubernetes",{"title":355,"path":356,"stem":357},"CI\u002FCD","\u002Fdeployment\u002Fci-cd","6.deployment\u002F3.ci-cd",{"id":359,"title":330,"badge":360,"body":363,"description":820,"extension":821,"links":822,"meta":823,"navigation":824,"path":331,"seo":825,"stem":332,"__hash__":826},"docs\u002F5.nuxt-module\u002F9.cwa-layer\u002F1.overview.md",{"label":361,"color":362},"Draft","amber",{"type":364,"value":365,"toc":810},"minimark",[366,375,380,385,388,395,465,471,497,503,585,588,602,612,659,663,670,773,780,784,791,799,806],[367,368,369,370,374],"p",{},"The ",[371,372,373],"code",{},"@cwa\u002Fnuxt"," module ships as a Nuxt layer. A layer is a self-contained Nuxt application whose pages, layouts, components, and plugins are merged into your project automatically. You don't install it manually — the module registers it for you.",[376,377,379],"h2",{"id":378},"what-the-layer-provides","What the Layer Provides",[381,382,384],"h3",{"id":383},"pages-auto-registered","Pages (auto-registered)",[367,386,387],{},"CWA registers several pages automatically. These work out-of-the-box and require no configuration:",[367,389,390,394],{},[391,392,393],"strong",{},"Auth pages"," (public):",[396,397,398,411],"table",{},[399,400,401],"thead",{},[402,403,404,408],"tr",{},[405,406,407],"th",{},"Route",[405,409,410],{},"Purpose",[412,413,414,425,435,445,455],"tbody",{},[402,415,416,422],{},[417,418,419],"td",{},[371,420,421],{},"\u002Flogin",[417,423,424],{},"Email + password login",[402,426,427,432],{},[417,428,429],{},[371,430,431],{},"\u002Fforgot-password",[417,433,434],{},"Request a password reset email",[402,436,437,442],{},[417,438,439],{},[371,440,441],{},"\u002Freset-password\u002F[username]\u002F[token]",[417,443,444],{},"Set a new password",[402,446,447,452],{},[417,448,449],{},[371,450,451],{},"\u002Fverify-email\u002F[username]\u002F[token]",[417,453,454],{},"Verify email on registration",[402,456,457,462],{},[417,458,459],{},[371,460,461],{},"\u002Fconfirm-new-email\u002F[username]\u002F[newEmail]\u002F[token]",[417,463,464],{},"Confirm email address change",[367,466,467,470],{},[391,468,469],{},"Content pages"," (dynamic, SSR):",[396,472,473,481],{},[399,474,475],{},[402,476,477,479],{},[405,478,407],{},[405,480,410],{},[412,482,483],{},[402,484,485,494],{},[417,486,487,490,491],{},[371,488,489],{},"\u002F"," and ",[371,492,493],{},"\u002F*",[417,495,496],{},"Catch-all CWA content route — resolves routes from the API manifest and renders your layout + page template",[367,498,499,502],{},[391,500,501],{},"Admin panel"," (client-only, admin users only):",[396,504,505,513],{},[399,506,507],{},[402,508,509,511],{},[405,510,407],{},[405,512,410],{},[412,514,515,525,535,545,555,565,575],{},[402,516,517,522],{},[417,518,519],{},[371,520,521],{},"\u002F_cwa",[417,523,524],{},"Admin dashboard",[402,526,527,532],{},[417,528,529],{},[371,530,531],{},"\u002F_cwa\u002Fpages",[417,533,534],{},"Manage page records",[402,536,537,542],{},[417,538,539],{},[371,540,541],{},"\u002F_cwa\u002Flayouts",[417,543,544],{},"Manage layout records",[402,546,547,552],{},[417,548,549],{},[371,550,551],{},"\u002F_cwa\u002Froutes",[417,553,554],{},"Manage routes",[402,556,557,562],{},[417,558,559],{},[371,560,561],{},"\u002F_cwa\u002Fdata",[417,563,564],{},"Browse and edit any resource by type",[402,566,567,572],{},[417,568,569],{},[371,570,571],{},"\u002F_cwa\u002Fsettings",[417,573,574],{},"Site config, SEO, maintenance mode",[402,576,577,582],{},[417,578,579],{},[371,580,581],{},"\u002F_cwa\u002Fusers",[417,583,584],{},"User management",[381,586,217],{"id":587},"layout",[367,589,590,593,594,597,598,601],{},[371,591,592],{},"cwa-root-layout"," is registered by the layer. It is the Nuxt layout used on all CWA content pages. It mounts the admin header and resource manager panel when ",[371,595,596],{},"auth.isAdmin"," is true, then renders the ",[371,599,600],{},"\u003Cslot \u002F>"," — which is where your CWA-resolved layout component appears.",[367,603,604,605,607,608,611],{},"You can reference ",[371,606,592],{}," from your own pages using ",[371,609,610],{},"definePageMeta",":",[613,614,619],"pre",{"className":615,"code":616,"language":617,"meta":618,"style":618},"language-ts shiki shiki-themes github-light github-dark material-theme-palenight","definePageMeta({ layout: 'cwa-root-layout' })\n","ts","",[371,620,621],{"__ignoreMap":618},[622,623,626,629,633,637,641,643,647,650,653,656],"span",{"class":624,"line":625},"line",1,[622,627,610],{"class":628},"sKpYG",[622,630,632],{"class":631},"sPB8G","(",[622,634,636],{"class":635},"sOvfz","{",[622,638,640],{"class":639},"sDHlG"," layout",[622,642,611],{"class":635},[622,644,646],{"class":645},"seSrl"," '",[622,648,592],{"class":649},"sLL54",[622,651,652],{"class":645},"'",[622,654,655],{"class":635}," }",[622,657,658],{"class":631},")\n",[381,660,662],{"id":661},"reusable-ui-components","Reusable UI Components",[367,664,665,666,669],{},"The layer registers a set of ",[371,667,668],{},"\u003CCwaUi...>"," components that the admin panel uses internally. These are also available in your own templates:",[396,671,672,681],{},[399,673,674],{},[402,675,676,678],{},[405,677,225],{},[405,679,680],{},"Description",[412,682,683,693,703,713,723,733,743,753,763],{},[402,684,685,690],{},[417,686,687],{},[371,688,689],{},"\u003CCwaUiFormInput>",[417,691,692],{},"Styled text input",[402,694,695,700],{},[417,696,697],{},[371,698,699],{},"\u003CCwaUiFormSelect>",[417,701,702],{},"Styled select with popover option list",[402,704,705,710],{},[417,706,707],{},[371,708,709],{},"\u003CCwaUiFormToggle>",[417,711,712],{},"Boolean toggle switch",[402,714,715,720],{},[417,716,717],{},[371,718,719],{},"\u003CCwaUiFormFile>",[417,721,722],{},"File upload control (used in upload admin tabs)",[402,724,725,730],{},[417,726,727],{},[371,728,729],{},"\u003CCwaUiFormButton>",[417,731,732],{},"Styled button",[402,734,735,740],{},[417,736,737],{},[371,738,739],{},"\u003CCwaUiAlertInfo>",[417,741,742],{},"Info notice block",[402,744,745,750],{},[417,746,747],{},[371,748,749],{},"\u003CCwaUiAlertWarning>",[417,751,752],{},"Warning notice block",[402,754,755,760],{},[417,756,757],{},[371,758,759],{},"\u003CCwaUiProgressBar>",[417,761,762],{},"Animated progress bar",[402,764,765,770],{},[417,766,767],{},[371,768,769],{},"\u003CCwaUiHamburger>",[417,771,772],{},"Mobile hamburger icon",[367,774,775,776,779],{},"These components are styled with CWA's bundled CSS (",[371,777,778],{},"cwa.css","). They are primarily intended for admin and auth pages, but you can use them anywhere.",[376,781,783],{"id":782},"overriding-layer-pages","Overriding Layer Pages",[367,785,786,787,790],{},"Any page the layer provides can be overridden by creating the same path in your project's ",[371,788,789],{},"app\u002Fpages\u002F"," directory. Nuxt's layer merging means your file wins:",[613,792,797],{"className":793,"code":795,"language":796},[794],"language-text","app\u002Fpages\u002Flogin.vue         ← your override, takes precedence\n                            ← layer's \u002Flogin is ignored\n","text",[371,798,795],{"__ignoreMap":618},[367,800,801,802,805],{},"See ",[803,804,334],"a",{"href":335}," for override examples.",[807,808,809],"style",{},"html pre.shiki code .sKpYG, html code.shiki .sKpYG{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#82AAFF}html pre.shiki code .sPB8G, html code.shiki .sPB8G{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#BABED8}html pre.shiki code .sOvfz, html code.shiki .sOvfz{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#89DDFF}html pre.shiki code .sDHlG, html code.shiki .sDHlG{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#F07178}html pre.shiki code .seSrl, html code.shiki .seSrl{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#89DDFF}html pre.shiki code .sLL54, html code.shiki .sLL54{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#C3E88D}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);}",{"title":618,"searchDepth":811,"depth":811,"links":812},2,[813,819],{"id":378,"depth":811,"text":379,"children":814},[815,817,818],{"id":383,"depth":816,"text":384},3,{"id":587,"depth":816,"text":217},{"id":661,"depth":816,"text":662},{"id":782,"depth":811,"text":783},"The CWA layer — what the module auto-provides, how to override it, and how to use its reusable components in your own pages.","md",null,{},true,{"title":330,"description":820},"ZTJi7xSkMSb1QDJgllH-vOqq0bOD1w6H7MSQkQPbEgE",[828,830],{"title":321,"path":322,"stem":323,"description":829,"children":-1},"The auto-provided auth pages, $cwa.auth state, protecting routes, and building a custom registration flow.",{"title":334,"path":335,"stem":336,"description":831,"children":-1},"The auth pages the CWA layer provides automatically, their composables, and how to override each one with your own design.",1782512901182]