[{"data":1,"prerenderedAt":1177},["ShallowReactive",2],{"navigation":3,"\u002Fnuxt-module\u002Fcwa-layer\u002Fadmin-panel":358,"\u002Fnuxt-module\u002Fcwa-layer\u002Fadmin-panel-surround":1172},[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":338,"badge":360,"body":363,"description":1166,"extension":1167,"links":1168,"meta":1169,"navigation":562,"path":339,"seo":1170,"stem":340,"__hash__":1171},"docs\u002F5.nuxt-module\u002F9.cwa-layer\u002F3.admin-panel.md",{"label":361,"color":362},"Draft","amber",{"type":364,"value":365,"toc":1156},"minimark",[366,379,384,503,512,516,523,610,617,621,627,632,642,1013,1020,1027,1116,1120,1123,1126,1152],[367,368,369,370,374,375,378],"p",{},"The CWA admin panel is shipped as part of the layer and requires no setup. It becomes accessible at ",[371,372,373],"code",{},"\u002F_cwa"," for any user with ",[371,376,377],{},"ROLE_ADMIN",".",[380,381,383],"h2",{"id":382},"admin-routes","Admin Routes",[385,386,387,400],"table",{},[388,389,390],"thead",{},[391,392,393,397],"tr",{},[394,395,396],"th",{},"Route",[394,398,399],{},"Purpose",[401,402,403,413,423,433,443,453,463,473,483,493],"tbody",{},[391,404,405,410],{},[406,407,408],"td",{},[371,409,373],{},[406,411,412],{},"Dashboard",[391,414,415,420],{},[406,416,417],{},[371,418,419],{},"\u002F_cwa\u002Fpages",[406,421,422],{},"Browse, create, and edit page records",[391,424,425,430],{},[406,426,427],{},[371,428,429],{},"\u002F_cwa\u002Flayouts",[406,431,432],{},"Browse and edit layout records",[391,434,435,440],{},[406,436,437],{},[371,438,439],{},"\u002F_cwa\u002Froutes",[406,441,442],{},"Manage routes — path, name, publish state",[391,444,445,450],{},[406,446,447],{},[371,448,449],{},"\u002F_cwa\u002Fdata",[406,451,452],{},"Browse any resource by type; drill into individual records",[391,454,455,460],{},[406,456,457],{},[371,458,459],{},"\u002F_cwa\u002Fdata\u002F[type]",[406,461,462],{},"List view for a specific resource type",[391,464,465,470],{},[406,466,467],{},[371,468,469],{},"\u002F_cwa\u002Fdata\u002F[type]\u002F[iri]",[406,471,472],{},"Edit view for a single resource",[391,474,475,480],{},[406,476,477],{},[371,478,479],{},"\u002F_cwa\u002Fsettings",[406,481,482],{},"Site config, SEO settings, maintenance mode, robots",[391,484,485,490],{},[406,486,487],{},[371,488,489],{},"\u002F_cwa\u002Fusers",[406,491,492],{},"List and manage user accounts",[391,494,495,500],{},[406,496,497],{},[371,498,499],{},"\u002F_cwa\u002Fusers\u002F[iri]",[406,501,502],{},"Edit an individual user",[367,504,505,506,508,509,378],{},"All ",[371,507,373],{}," routes are client-only (SSR disabled) and guarded by ",[371,510,511],{},"middleware: 'admin'",[380,513,515],{"id":514},"edit-mode","Edit Mode",[367,517,518,519,522],{},"When an admin visits a content page, an edit bar appears at the top of the page (rendered by ",[371,520,521],{},"\u003CCwaAdminHeader>","). Clicking \"Edit\" toggles edit mode:",[524,525,530],"pre",{"className":526,"code":527,"language":528,"meta":529,"style":529},"language-ts shiki shiki-themes github-light github-dark material-theme-palenight","const cwa = useCwa()\n\ncwa.admin.isEditing.value        \u002F\u002F whether edit mode is active\ncwa.admin.toggleEdit()           \u002F\u002F open\u002Fclose edit mode\n","ts","",[371,531,532,557,564,590],{"__ignoreMap":529},[533,534,537,541,545,549,553],"span",{"class":535,"line":536},"line",1,[533,538,540],{"class":539},"swB56","const",[533,542,544],{"class":543},"sc2zw"," cwa",[533,546,548],{"class":547},"sVlFx"," =",[533,550,552],{"class":551},"sKpYG"," useCwa",[533,554,556],{"class":555},"sPB8G","()\n",[533,558,560],{"class":535,"line":559},2,[533,561,563],{"emptyLinePlaceholder":562},true,"\n",[533,565,567,570,573,576,578,581,583,586],{"class":535,"line":566},3,[533,568,569],{"class":555},"cwa",[533,571,378],{"class":572},"sOvfz",[533,574,575],{"class":555},"admin",[533,577,378],{"class":572},[533,579,580],{"class":555},"isEditing",[533,582,378],{"class":572},[533,584,585],{"class":555},"value        ",[533,587,589],{"class":588},"sTBSN","\u002F\u002F whether edit mode is active\n",[533,591,593,595,597,599,601,604,607],{"class":535,"line":592},4,[533,594,569],{"class":555},[533,596,378],{"class":572},[533,598,575],{"class":555},[533,600,378],{"class":572},[533,602,603],{"class":551},"toggleEdit",[533,605,606],{"class":555},"()           ",[533,608,609],{"class":588},"\u002F\u002F open\u002Fclose edit mode\n",[367,611,612,613,616],{},"In edit mode, every rendered component gains a selection overlay. Clicking a component opens its resource manager panel (",[371,614,615],{},"\u003CCwaAdminResourceManager>",").",[380,618,620],{"id":619},"the-resource-manager","The Resource Manager",[367,622,623,624,378],{},"The resource manager is a panel that slides in when a component is selected. It shows tabs for editing the component's data fields. The standard tabs are provided by the bundle (e.g. general fields, styles). Custom tabs are added using ",[371,625,626],{},"useCwaResourceManagerTab",[628,629,631],"h3",{"id":630},"custom-manager-tab","Custom Manager Tab",[367,633,634,635,638,639,641],{},"Create a Vue component in ",[371,636,637],{},"app\u002Fcwa\u002Fcomponents\u002F[ComponentName]\u002Fadmin\u002F[TabName].vue",". Use ",[371,640,626],{}," to register it:",[524,643,647],{"className":644,"code":645,"language":646,"meta":529,"style":529},"language-vue shiki shiki-themes github-light github-dark material-theme-palenight","\u003C!-- app\u002Fcwa\u002Fcomponents\u002FTitle\u002Fadmin\u002FSEO.vue -->\n\u003Ctemplate>\n    \u003Cdiv class=\"p-4 space-y-4\">\n        \u003CCwaUiFormInput\n            v-model=\"metaTitleModel\"\n            label=\"Meta Title\"\n            placeholder=\"Override page title for search engines\"\n        \u002F>\n    \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n\n\u003Cscript setup lang=\"ts\">\nimport { toRef } from 'vue'\nimport type { IriProp } from '@cwa\u002Fnuxt\u002Fruntime\u002Fcomposables'\nimport { useCwaResourceManagerTab, useCwaResourceModel } from '#imports'\n\nconst props = defineProps\u003CIriProp>()\n\nuseCwaResourceManagerTab({ name: 'SEO', order: 10 })\n\nconst metaTitleModel = useCwaResourceModel(toRef(props, 'iri'), 'metaTitle')\n\u003C\u002Fscript>\n","vue",[371,648,649,654,666,693,701,717,732,747,753,763,773,778,802,829,853,880,885,909,914,956,961,1004],{"__ignoreMap":529},[533,650,651],{"class":535,"line":536},[533,652,653],{"class":588},"\u003C!-- app\u002Fcwa\u002Fcomponents\u002FTitle\u002Fadmin\u002FSEO.vue -->\n",[533,655,656,659,663],{"class":535,"line":559},[533,657,658],{"class":572},"\u003C",[533,660,662],{"class":661},"s-h7I","template",[533,664,665],{"class":572},">\n",[533,667,668,671,674,678,681,685,689,691],{"class":535,"line":566},[533,669,670],{"class":572},"    \u003C",[533,672,673],{"class":661},"div",[533,675,677],{"class":676},"sGtlX"," class",[533,679,680],{"class":572},"=",[533,682,684],{"class":683},"seSrl","\"",[533,686,688],{"class":687},"sLL54","p-4 space-y-4",[533,690,684],{"class":683},[533,692,665],{"class":572},[533,694,695,698],{"class":535,"line":592},[533,696,697],{"class":572},"        \u003C",[533,699,700],{"class":661},"CwaUiFormInput\n",[533,702,704,707,709,711,714],{"class":535,"line":703},5,[533,705,706],{"class":676},"            v-model",[533,708,680],{"class":572},[533,710,684],{"class":683},[533,712,713],{"class":687},"metaTitleModel",[533,715,716],{"class":683},"\"\n",[533,718,720,723,725,727,730],{"class":535,"line":719},6,[533,721,722],{"class":676},"            label",[533,724,680],{"class":572},[533,726,684],{"class":683},[533,728,729],{"class":687},"Meta Title",[533,731,716],{"class":683},[533,733,735,738,740,742,745],{"class":535,"line":734},7,[533,736,737],{"class":676},"            placeholder",[533,739,680],{"class":572},[533,741,684],{"class":683},[533,743,744],{"class":687},"Override page title for search engines",[533,746,716],{"class":683},[533,748,750],{"class":535,"line":749},8,[533,751,752],{"class":572},"        \u002F>\n",[533,754,756,759,761],{"class":535,"line":755},9,[533,757,758],{"class":572},"    \u003C\u002F",[533,760,673],{"class":661},[533,762,665],{"class":572},[533,764,766,769,771],{"class":535,"line":765},10,[533,767,768],{"class":572},"\u003C\u002F",[533,770,662],{"class":661},[533,772,665],{"class":572},[533,774,776],{"class":535,"line":775},11,[533,777,563],{"emptyLinePlaceholder":562},[533,779,781,783,786,789,792,794,796,798,800],{"class":535,"line":780},12,[533,782,658],{"class":572},[533,784,785],{"class":661},"script",[533,787,788],{"class":676}," setup",[533,790,791],{"class":676}," lang",[533,793,680],{"class":572},[533,795,684],{"class":683},[533,797,528],{"class":687},[533,799,684],{"class":683},[533,801,665],{"class":572},[533,803,805,809,812,815,818,821,824,826],{"class":535,"line":804},13,[533,806,808],{"class":807},"sm4w6","import",[533,810,811],{"class":572}," {",[533,813,814],{"class":555}," toRef",[533,816,817],{"class":572}," }",[533,819,820],{"class":807}," from",[533,822,823],{"class":683}," '",[533,825,646],{"class":687},[533,827,828],{"class":683},"'\n",[533,830,832,834,837,839,842,844,846,848,851],{"class":535,"line":831},14,[533,833,808],{"class":807},[533,835,836],{"class":807}," type",[533,838,811],{"class":572},[533,840,841],{"class":555}," IriProp",[533,843,817],{"class":572},[533,845,820],{"class":807},[533,847,823],{"class":683},[533,849,850],{"class":687},"@cwa\u002Fnuxt\u002Fruntime\u002Fcomposables",[533,852,828],{"class":683},[533,854,856,858,860,863,866,869,871,873,875,878],{"class":535,"line":855},15,[533,857,808],{"class":807},[533,859,811],{"class":572},[533,861,862],{"class":555}," useCwaResourceManagerTab",[533,864,865],{"class":572},",",[533,867,868],{"class":555}," useCwaResourceModel",[533,870,817],{"class":572},[533,872,820],{"class":807},[533,874,823],{"class":683},[533,876,877],{"class":687},"#imports",[533,879,828],{"class":683},[533,881,883],{"class":535,"line":882},16,[533,884,563],{"emptyLinePlaceholder":562},[533,886,888,890,893,895,898,900,904,907],{"class":535,"line":887},17,[533,889,540],{"class":539},[533,891,892],{"class":543}," props",[533,894,548],{"class":547},[533,896,897],{"class":551}," defineProps",[533,899,658],{"class":572},[533,901,903],{"class":902},"sRCss","IriProp",[533,905,906],{"class":572},">",[533,908,556],{"class":555},[533,910,912],{"class":535,"line":911},18,[533,913,563],{"emptyLinePlaceholder":562},[533,915,917,919,922,925,929,932,934,937,940,942,945,947,951,953],{"class":535,"line":916},19,[533,918,626],{"class":551},[533,920,921],{"class":555},"(",[533,923,924],{"class":572},"{",[533,926,928],{"class":927},"sDHlG"," name",[533,930,931],{"class":572},":",[533,933,823],{"class":683},[533,935,936],{"class":687},"SEO",[533,938,939],{"class":683},"'",[533,941,865],{"class":572},[533,943,944],{"class":927}," order",[533,946,931],{"class":572},[533,948,950],{"class":949},"scSvc"," 10",[533,952,817],{"class":572},[533,954,955],{"class":555},")\n",[533,957,959],{"class":535,"line":958},20,[533,960,563],{"emptyLinePlaceholder":562},[533,962,964,966,969,971,973,975,978,981,983,985,988,990,993,995,997,1000,1002],{"class":535,"line":963},21,[533,965,540],{"class":539},[533,967,968],{"class":543}," metaTitleModel",[533,970,548],{"class":547},[533,972,868],{"class":551},[533,974,921],{"class":555},[533,976,977],{"class":551},"toRef",[533,979,980],{"class":555},"(props",[533,982,865],{"class":572},[533,984,823],{"class":683},[533,986,987],{"class":687},"iri",[533,989,939],{"class":683},[533,991,992],{"class":555},")",[533,994,865],{"class":572},[533,996,823],{"class":683},[533,998,999],{"class":687},"metaTitle",[533,1001,939],{"class":683},[533,1003,955],{"class":555},[533,1005,1007,1009,1011],{"class":535,"line":1006},22,[533,1008,768],{"class":572},[533,1010,785],{"class":661},[533,1012,665],{"class":572},[367,1014,1015,1016,1019],{},"The tab appears in the resource manager whenever a ",[371,1017,1018],{},"Title"," component is selected.",[380,1021,1023,1026],{"id":1022},"cwaadmin-api",[371,1024,1025],{},"cwa.admin"," API",[385,1028,1029,1042],{},[388,1030,1031],{},[391,1032,1033,1036,1039],{},[394,1034,1035],{},"Member",[394,1037,1038],{},"Type",[394,1040,1041],{},"Description",[401,1043,1044,1058,1073,1088,1102],{},[391,1045,1046,1050,1055],{},[406,1047,1048],{},[371,1049,580],{},[406,1051,1052],{},[371,1053,1054],{},"ComputedRef\u003Cboolean>",[406,1056,1057],{},"Whether edit mode is active",[391,1059,1060,1065,1070],{},[406,1061,1062],{},[371,1063,1064],{},"toggleEdit(state?)",[406,1066,1067],{},[371,1068,1069],{},"(boolean?) => void",[406,1071,1072],{},"Toggle or set edit mode",[391,1074,1075,1080,1085],{},[406,1076,1077],{},[371,1078,1079],{},"emptyStack()",[406,1081,1082],{},[371,1083,1084],{},"() => void",[406,1086,1087],{},"Deselect the current component",[391,1089,1090,1095,1099],{},[406,1091,1092],{},[371,1093,1094],{},"emitRedraw()",[406,1096,1097],{},[371,1098,1084],{},[406,1100,1101],{},"Force re-render of all component overlays",[391,1103,1104,1109,1113],{},[406,1105,1106],{},[371,1107,1108],{},"navigationDisabled",[406,1110,1111],{},[371,1112,1054],{},[406,1114,1115],{},"Whether the navigation guard is blocking",[380,1117,1119],{"id":1118},"navigation-guard","Navigation Guard",[367,1121,1122],{},"When a component has unsaved changes, the admin navigation guard blocks route changes and shows a confirmation dialog. It runs automatically — you don't configure it.",[367,1124,1125],{},"To disable the guard programmatically (e.g. after a save):",[524,1127,1129],{"className":526,"code":1128,"language":528,"meta":529,"style":529},"cwa.admin.setNavigationGuardDisabled(true)\n",[371,1130,1131],{"__ignoreMap":529},[533,1132,1133,1135,1137,1139,1141,1144,1146,1150],{"class":535,"line":536},[533,1134,569],{"class":555},[533,1136,378],{"class":572},[533,1138,575],{"class":555},[533,1140,378],{"class":572},[533,1142,1143],{"class":551},"setNavigationGuardDisabled",[533,1145,921],{"class":555},[533,1147,1149],{"class":1148},"swWMF","true",[533,1151,955],{"class":555},[1153,1154,1155],"style",{},"html pre.shiki code .swB56, html code.shiki .swB56{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#C792EA}html pre.shiki code .sc2zw, html code.shiki .sc2zw{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#BABED8}html pre.shiki code .sVlFx, html code.shiki .sVlFx{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#89DDFF}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 .sTBSN, html code.shiki .sTBSN{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#676E95;--shiki-dark-font-style:italic}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 .s-h7I, html code.shiki .s-h7I{--shiki-light:#22863A;--shiki-default:#85E89D;--shiki-dark:#F07178}html pre.shiki code .sGtlX, html code.shiki .sGtlX{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#C792EA}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 pre.shiki code .sm4w6, html code.shiki .sm4w6{--shiki-light:#D73A49;--shiki-light-font-style:inherit;--shiki-default:#F97583;--shiki-default-font-style:inherit;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sRCss, html code.shiki .sRCss{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#FFCB6B}html pre.shiki code .sDHlG, html code.shiki .sDHlG{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#F07178}html pre.shiki code .scSvc, html code.shiki .scSvc{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#F78C6C}html pre.shiki code .swWMF, html code.shiki .swWMF{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#FF9CAC}",{"title":529,"searchDepth":559,"depth":559,"links":1157},[1158,1159,1160,1163,1165],{"id":382,"depth":559,"text":383},{"id":514,"depth":559,"text":515},{"id":619,"depth":559,"text":620,"children":1161},[1162],{"id":630,"depth":566,"text":631},{"id":1022,"depth":559,"text":1164},"cwa.admin API",{"id":1118,"depth":559,"text":1119},"The built-in CWA admin — pages, edit mode, the resource manager, and how to extend it with custom manager tabs.","md",null,{},{"title":338,"description":1166},"TeJ6MkUW8b0aZWzyCJh9dz9ccgrvkwI_E6jiufUQsdQ",[1173,1175],{"title":334,"path":335,"stem":336,"description":1174,"children":-1},"The auth pages the CWA layer provides automatically, their composables, and how to override each one with your own design.",{"title":347,"path":348,"stem":349,"description":1176,"children":-1},"The Docker Compose setup for local development and production — services, environment variables, volumes, and build workflow.",1782512902488]