[{"data":1,"prerenderedAt":817},["ShallowReactive",2],{"navigation":3,"\u002Fnuxt-module\u002Fcwa-layer\u002Foverview":342,"\u002Fnuxt-module\u002Fcwa-layer\u002Foverview-surround":812},[4,14,36,69,140,325],{"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,178,203,207,279,304,308],{"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],{"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,"children":182,"page":35},"Cwa Components","\u002Fnuxt-module\u002Fcwa-components","5.nuxt-module\u002F4.cwa-components",[183,187,191,195,199],{"title":184,"path":185,"stem":186},"\u003CCwaComponentGroup \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-component-group","5.nuxt-module\u002F4.cwa-components\u002F1.cwa-component-group",{"title":188,"path":189,"stem":190},"\u003CCwaPage \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-page","5.nuxt-module\u002F4.cwa-components\u002F2.cwa-page",{"title":192,"path":193,"stem":194},"\u003CCwaLink \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-link","5.nuxt-module\u002F4.cwa-components\u002F3.cwa-link",{"title":196,"path":197,"stem":198},"\u003CCwaImage \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-image","5.nuxt-module\u002F4.cwa-components\u002F4.cwa-image",{"title":200,"path":201,"stem":202},"\u003CCwaDefaultLayout \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-default-layout","5.nuxt-module\u002F4.cwa-components\u002F5.cwa-default-layout",{"title":204,"path":205,"stem":206},"The useCwa() API","\u002Fnuxt-module\u002Fcwa-api","5.nuxt-module\u002F5.cwa-api",{"title":208,"path":209,"stem":210,"children":211,"page":35},"Composables","\u002Fnuxt-module\u002Fcomposables","5.nuxt-module\u002F6.composables",[212,245,262],{"title":213,"path":214,"stem":215,"children":216,"page":35},"Component","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent","5.nuxt-module\u002F6.composables\u002F1.component",[217,221,225,229,233,237,241],{"title":218,"path":219,"stem":220},"Resource","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-resource","5.nuxt-module\u002F6.composables\u002F1.component\u002F1.use-cwa-resource",{"title":222,"path":223,"stem":224},"Collection Resource","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-collection-resource","5.nuxt-module\u002F6.composables\u002F1.component\u002F2.use-cwa-collection-resource",{"title":226,"path":227,"stem":228},"Image Resource","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-image-resource","5.nuxt-module\u002F6.composables\u002F1.component\u002F3.use-cwa-image-resource",{"title":230,"path":231,"stem":232},"Form","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form","5.nuxt-module\u002F6.composables\u002F1.component\u002F4.use-cwa-form",{"title":234,"path":235,"stem":236},"Form Input","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form-input","5.nuxt-module\u002F6.composables\u002F1.component\u002F5.use-cwa-form-input",{"title":238,"path":239,"stem":240},"Form Repeated","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form-repeated","5.nuxt-module\u002F6.composables\u002F1.component\u002F6.use-cwa-form-repeated",{"title":242,"path":243,"stem":244},"Form Collection","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form-collection","5.nuxt-module\u002F6.composables\u002F1.component\u002F7.use-cwa-form-collection",{"title":246,"path":247,"stem":248,"children":249,"page":35},"Admin Manager","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager","5.nuxt-module\u002F6.composables\u002F2.admin-manager",[250,254,258],{"title":251,"path":252,"stem":253},"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":255,"path":256,"stem":257},"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":259,"path":260,"stem":261},"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":263,"path":264,"stem":265,"children":266,"page":35},"Utilities","\u002Fnuxt-module\u002Fcomposables\u002Futilities","5.nuxt-module\u002F6.composables\u002F3.utilities",[267,271,275],{"title":268,"path":269,"stem":270},"Resource Endpoint","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-cwa-resource-endpoint","5.nuxt-module\u002F6.composables\u002F3.utilities\u002F1.use-cwa-resource-endpoint",{"title":272,"path":273,"stem":274},"Query Model","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-query-bound-model","5.nuxt-module\u002F6.composables\u002F3.utilities\u002F2.use-query-bound-model",{"title":276,"path":277,"stem":278},"Resource Route","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-cwa-resource-route","5.nuxt-module\u002F6.composables\u002F3.utilities\u002F3.use-cwa-resource-route",{"title":280,"path":281,"stem":282,"children":283,"page":35},"Component Helpers","\u002Fnuxt-module\u002Fcomponent-helpers","5.nuxt-module\u002F7.component-helpers",[284,288,292,296,300],{"title":285,"path":286,"stem":287},"Images & Media","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fimages-and-uploads","5.nuxt-module\u002F7.component-helpers\u002F1.images-and-uploads",{"title":289,"path":290,"stem":291},"Collections & Pagination","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fcollections-and-pagination","5.nuxt-module\u002F7.component-helpers\u002F2.collections-and-pagination",{"title":293,"path":294,"stem":295},"HTML Content","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fhtml-content","5.nuxt-module\u002F7.component-helpers\u002F3.html-content",{"title":297,"path":298,"stem":299},"Real-Time Updates","\u002Fnuxt-module\u002Fcomponent-helpers\u002Freal-time-updates","5.nuxt-module\u002F7.component-helpers\u002F4.real-time-updates",{"title":301,"path":302,"stem":303},"Forms","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fforms","5.nuxt-module\u002F7.component-helpers\u002F5.forms",{"title":305,"path":306,"stem":307},"Authentication","\u002Fnuxt-module\u002Fauthentication","5.nuxt-module\u002F8.authentication",{"title":309,"path":310,"stem":311,"children":312,"page":35},"Cwa Layer","\u002Fnuxt-module\u002Fcwa-layer","5.nuxt-module\u002F9.cwa-layer",[313,317,321],{"title":314,"path":315,"stem":316},"Overview","\u002Fnuxt-module\u002Fcwa-layer\u002Foverview","5.nuxt-module\u002F9.cwa-layer\u002F1.overview",{"title":318,"path":319,"stem":320},"Auth Pages","\u002Fnuxt-module\u002Fcwa-layer\u002Fauth-pages","5.nuxt-module\u002F9.cwa-layer\u002F2.auth-pages",{"title":322,"path":323,"stem":324},"Admin Panel","\u002Fnuxt-module\u002Fcwa-layer\u002Fadmin-panel","5.nuxt-module\u002F9.cwa-layer\u002F3.admin-panel",{"title":326,"path":327,"stem":328,"children":329,"page":35},"Deployment","\u002Fdeployment","6.deployment",[330,334,338],{"title":331,"path":332,"stem":333},"Docker","\u002Fdeployment\u002Fdocker","6.deployment\u002F1.docker",{"title":335,"path":336,"stem":337},"Kubernetes & Helm","\u002Fdeployment\u002Fkubernetes","6.deployment\u002F2.kubernetes",{"title":339,"path":340,"stem":341},"CI\u002FCD","\u002Fdeployment\u002Fci-cd","6.deployment\u002F3.ci-cd",{"id":343,"title":314,"badge":344,"body":347,"description":805,"extension":806,"links":807,"meta":808,"navigation":809,"path":315,"seo":810,"stem":316,"__hash__":811},"docs\u002F5.nuxt-module\u002F9.cwa-layer\u002F1.overview.md",{"label":345,"color":346},"Draft","amber",{"type":348,"value":349,"toc":795},"minimark",[350,359,364,369,372,379,449,455,481,487,569,573,587,597,644,648,655,758,765,769,776,784,791],[351,352,353,354,358],"p",{},"The ",[355,356,357],"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.",[360,361,363],"h2",{"id":362},"what-the-layer-provides","What the Layer Provides",[365,366,368],"h3",{"id":367},"pages-auto-registered","Pages (auto-registered)",[351,370,371],{},"CWA registers several pages automatically. These work out-of-the-box and require no configuration:",[351,373,374,378],{},[375,376,377],"strong",{},"Auth pages"," (public):",[380,381,382,395],"table",{},[383,384,385],"thead",{},[386,387,388,392],"tr",{},[389,390,391],"th",{},"Route",[389,393,394],{},"Purpose",[396,397,398,409,419,429,439],"tbody",{},[386,399,400,406],{},[401,402,403],"td",{},[355,404,405],{},"\u002Flogin",[401,407,408],{},"Email + password login",[386,410,411,416],{},[401,412,413],{},[355,414,415],{},"\u002Fforgot-password",[401,417,418],{},"Request a password reset email",[386,420,421,426],{},[401,422,423],{},[355,424,425],{},"\u002Freset-password\u002F[username]\u002F[token]",[401,427,428],{},"Set a new password",[386,430,431,436],{},[401,432,433],{},[355,434,435],{},"\u002Fverify-email\u002F[username]\u002F[token]",[401,437,438],{},"Verify email on registration",[386,440,441,446],{},[401,442,443],{},[355,444,445],{},"\u002Fconfirm-new-email\u002F[username]\u002F[newEmail]\u002F[token]",[401,447,448],{},"Confirm email address change",[351,450,451,454],{},[375,452,453],{},"Content pages"," (dynamic, SSR):",[380,456,457,465],{},[383,458,459],{},[386,460,461,463],{},[389,462,391],{},[389,464,394],{},[396,466,467],{},[386,468,469,478],{},[401,470,471,474,475],{},[355,472,473],{},"\u002F"," and ",[355,476,477],{},"\u002F*",[401,479,480],{},"Catch-all CWA content route — resolves routes from the API manifest and renders your layout + page template",[351,482,483,486],{},[375,484,485],{},"Admin panel"," (client-only, admin users only):",[380,488,489,497],{},[383,490,491],{},[386,492,493,495],{},[389,494,391],{},[389,496,394],{},[396,498,499,509,519,529,539,549,559],{},[386,500,501,506],{},[401,502,503],{},[355,504,505],{},"\u002F_cwa",[401,507,508],{},"Admin dashboard",[386,510,511,516],{},[401,512,513],{},[355,514,515],{},"\u002F_cwa\u002Fpages",[401,517,518],{},"Manage page records",[386,520,521,526],{},[401,522,523],{},[355,524,525],{},"\u002F_cwa\u002Flayouts",[401,527,528],{},"Manage layout records",[386,530,531,536],{},[401,532,533],{},[355,534,535],{},"\u002F_cwa\u002Froutes",[401,537,538],{},"Manage routes",[386,540,541,546],{},[401,542,543],{},[355,544,545],{},"\u002F_cwa\u002Fdata",[401,547,548],{},"Browse and edit any resource by type",[386,550,551,556],{},[401,552,553],{},[355,554,555],{},"\u002F_cwa\u002Fsettings",[401,557,558],{},"Site config, SEO, maintenance mode",[386,560,561,566],{},[401,562,563],{},[355,564,565],{},"\u002F_cwa\u002Fusers",[401,567,568],{},"User management",[365,570,572],{"id":571},"layout","Layout",[351,574,575,578,579,582,583,586],{},[355,576,577],{},"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 ",[355,580,581],{},"auth.isAdmin"," is true, then renders the ",[355,584,585],{},"\u003Cslot \u002F>"," — which is where your CWA-resolved layout component appears.",[351,588,589,590,592,593,596],{},"You can reference ",[355,591,577],{}," from your own pages using ",[355,594,595],{},"definePageMeta",":",[598,599,604],"pre",{"className":600,"code":601,"language":602,"meta":603,"style":603},"language-ts shiki shiki-themes github-light github-dark material-theme-palenight","definePageMeta({ layout: 'cwa-root-layout' })\n","ts","",[355,605,606],{"__ignoreMap":603},[607,608,611,614,618,622,626,628,632,635,638,641],"span",{"class":609,"line":610},"line",1,[607,612,595],{"class":613},"sKpYG",[607,615,617],{"class":616},"sPB8G","(",[607,619,621],{"class":620},"sOvfz","{",[607,623,625],{"class":624},"sDHlG"," layout",[607,627,596],{"class":620},[607,629,631],{"class":630},"seSrl"," '",[607,633,577],{"class":634},"sLL54",[607,636,637],{"class":630},"'",[607,639,640],{"class":620}," }",[607,642,643],{"class":616},")\n",[365,645,647],{"id":646},"reusable-ui-components","Reusable UI Components",[351,649,650,651,654],{},"The layer registers a set of ",[355,652,653],{},"\u003CCwaUi...>"," components that the admin panel uses internally. These are also available in your own templates:",[380,656,657,666],{},[383,658,659],{},[386,660,661,663],{},[389,662,213],{},[389,664,665],{},"Description",[396,667,668,678,688,698,708,718,728,738,748],{},[386,669,670,675],{},[401,671,672],{},[355,673,674],{},"\u003CCwaUiFormInput>",[401,676,677],{},"Styled text input",[386,679,680,685],{},[401,681,682],{},[355,683,684],{},"\u003CCwaUiFormSelect>",[401,686,687],{},"Styled select with popover option list",[386,689,690,695],{},[401,691,692],{},[355,693,694],{},"\u003CCwaUiFormToggle>",[401,696,697],{},"Boolean toggle switch",[386,699,700,705],{},[401,701,702],{},[355,703,704],{},"\u003CCwaUiFormFile>",[401,706,707],{},"File upload control (used in upload admin tabs)",[386,709,710,715],{},[401,711,712],{},[355,713,714],{},"\u003CCwaUiFormButton>",[401,716,717],{},"Styled button",[386,719,720,725],{},[401,721,722],{},[355,723,724],{},"\u003CCwaUiAlertInfo>",[401,726,727],{},"Info notice block",[386,729,730,735],{},[401,731,732],{},[355,733,734],{},"\u003CCwaUiAlertWarning>",[401,736,737],{},"Warning notice block",[386,739,740,745],{},[401,741,742],{},[355,743,744],{},"\u003CCwaUiProgressBar>",[401,746,747],{},"Animated progress bar",[386,749,750,755],{},[401,751,752],{},[355,753,754],{},"\u003CCwaUiHamburger>",[401,756,757],{},"Mobile hamburger icon",[351,759,760,761,764],{},"These components are styled with CWA's bundled CSS (",[355,762,763],{},"cwa.css","). They are primarily intended for admin and auth pages, but you can use them anywhere.",[360,766,768],{"id":767},"overriding-layer-pages","Overriding Layer Pages",[351,770,771,772,775],{},"Any page the layer provides can be overridden by creating the same path in your project's ",[355,773,774],{},"app\u002Fpages\u002F"," directory. Nuxt's layer merging means your file wins:",[598,777,782],{"className":778,"code":780,"language":781},[779],"language-text","app\u002Fpages\u002Flogin.vue         ← your override, takes precedence\n                            ← layer's \u002Flogin is ignored\n","text",[355,783,780],{"__ignoreMap":603},[351,785,786,787,790],{},"See ",[788,789,318],"a",{"href":319}," for override examples.",[792,793,794],"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":603,"searchDepth":796,"depth":796,"links":797},2,[798,804],{"id":362,"depth":796,"text":363,"children":799},[800,802,803],{"id":367,"depth":801,"text":368},3,{"id":571,"depth":801,"text":572},{"id":646,"depth":801,"text":647},{"id":767,"depth":796,"text":768},"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":314,"description":805},"ZTJi7xSkMSb1QDJgllH-vOqq0bOD1w6H7MSQkQPbEgE",[813,815],{"title":305,"path":306,"stem":307,"description":814,"children":-1},"The auto-provided auth pages, $cwa.auth state, protecting routes, and building a custom registration flow.",{"title":318,"path":319,"stem":320,"description":816,"children":-1},"The auth pages the CWA layer provides automatically, their composables, and how to override each one with your own design.",1782241283215]