[{"data":1,"prerenderedAt":3939},["ShallowReactive",2],{"navigation":3,"\u002Fnuxt-module\u002Fcwa-api":342,"\u002Fnuxt-module\u002Fcwa-api-surround":3934},[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":204,"badge":344,"body":347,"description":3928,"extension":3929,"links":3930,"meta":3931,"navigation":419,"path":205,"seo":3932,"stem":206,"__hash__":3933},"docs\u002F5.nuxt-module\u002F5.cwa-api.md",{"label":345,"color":346},"Draft","amber",{"type":348,"value":349,"toc":3885},"minimark",[350,373,448,454,566,569,576,583,593,687,711,716,755,758,762,781,887,890,1020,1024,1077,1081,1092,1101,1236,1249,1350,1358,1421,1426,1615,1619,1753,1757,1794,1798,1885,1887,1893,1896,1900,1987,1991,2056,2060,2103,2107,2117,2151,2155,2224,2226,2232,2235,2239,2352,2356,2867,2869,2875,2881,2887,2893,3034,3040,3047,3095,3097,3103,3106,3235,3239,3242,3275,3277,3283,3286,3423,3425,3431,3434,3662,3664,3668,3672,3679,3715,3719,3805,3809,3881],[351,352,353,357,358,361,362,365,366,369,370,372],"p",{},[354,355,356],"code",{},"useCwa()"," returns the singleton ",[354,359,360],{},"Cwa"," instance injected by the module plugin. In templates you can use ",[354,363,364],{},"$cwa"," directly. In ",[354,367,368],{},"\u003Cscript setup>"," and composables, call ",[354,371,356],{},".",[374,375,380],"pre",{"className":376,"code":377,"language":378,"meta":379,"style":379},"language-ts shiki shiki-themes github-light github-dark material-theme-palenight","\u002F\u002F In \u003Cscript setup>\nconst cwa = useCwa()\n\n\u002F\u002F In templates\n$cwa.auth.signedIn.value\n","ts","",[354,381,382,391,414,421,427],{"__ignoreMap":379},[383,384,387],"span",{"class":385,"line":386},"line",1,[383,388,390],{"class":389},"sTBSN","\u002F\u002F In \u003Cscript setup>\n",[383,392,394,398,402,406,410],{"class":385,"line":393},2,[383,395,397],{"class":396},"swB56","const",[383,399,401],{"class":400},"sc2zw"," cwa",[383,403,405],{"class":404},"sVlFx"," =",[383,407,409],{"class":408},"sKpYG"," useCwa",[383,411,413],{"class":412},"sPB8G","()\n",[383,415,417],{"class":385,"line":416},3,[383,418,420],{"emptyLinePlaceholder":419},true,"\n",[383,422,424],{"class":385,"line":423},4,[383,425,426],{"class":389},"\u002F\u002F In templates\n",[383,428,430,432,435,438,440,443,445],{"class":385,"line":429},5,[383,431,364],{"class":412},[383,433,372],{"class":434},"sOvfz",[383,436,437],{"class":412},"auth",[383,439,372],{"class":434},[383,441,442],{"class":412},"signedIn",[383,444,372],{"class":434},[383,446,447],{"class":412},"value\n",[351,449,450,451,453],{},"The ",[354,452,360],{}," class has six public sub-services:",[455,456,457,473],"table",{},[458,459,460],"thead",{},[461,462,463,467,470],"tr",{},[464,465,466],"th",{},"Property",[464,468,469],{},"Class",[464,471,472],{},"Purpose",[474,475,476,492,507,522,536,551],"tbody",{},[461,477,478,484,489],{},[479,480,481],"td",{},[354,482,483],{},"cwa.resources",[479,485,486],{},[354,487,488],{},"Resources",[479,490,491],{},"Read-only view of fetched resource state",[461,493,494,499,504],{},[479,495,496],{},[354,497,498],{},"cwa.resourcesManager",[479,500,501],{},[354,502,503],{},"ResourcesManager",[479,505,506],{},"CRUD operations on resources",[461,508,509,514,519],{},[479,510,511],{},[354,512,513],{},"cwa.auth",[479,515,516],{},[354,517,518],{},"Auth",[479,520,521],{},"Authentication state and actions",[461,523,524,529,533],{},[479,525,526],{},[354,527,528],{},"cwa.forms",[479,530,531],{},[354,532,301],{},[479,534,535],{},"Form view state and error access",[461,537,538,543,548],{},[479,539,540],{},[354,541,542],{},"cwa.admin",[479,544,545],{},[354,546,547],{},"Admin",[479,549,550],{},"Edit mode, component stack, admin panel",[461,552,553,558,563],{},[479,554,555],{},[354,556,557],{},"cwa.siteConfig",[479,559,560],{},[354,561,562],{},"SiteConfig",[479,564,565],{},"Site-wide settings from the API",[567,568],"hr",{},[570,571,573,575],"h2",{"id":572},"cwaresources-resources",[354,574,483],{}," — Resources",[351,577,578,579,582],{},"The read-only store view. All values are ",[354,580,581],{},"ComputedRef"," — they react to resource fetches automatically.",[351,584,585,587,588,592],{},[354,586,483],{}," exposes ",[589,590,591],"strong",{},"two complementary families"," of page\u002FpageData getters. Understanding the difference is important for using them correctly:",[455,594,595,614],{},[458,596,597],{},[461,598,599,602,605,608,611],{},[464,600,601],{},"Family",[464,603,604],{},"Getters",[464,606,607],{},"What they return",[464,609,610],{},"Requires manifest?",[464,612,613],{},"Use for",[474,615,616,651],{},[461,617,618,623,638,645,648],{},[479,619,620],{},[589,621,622],{},"Flat leaf",[479,624,625,628,629,628,632,628,635],{},[354,626,627],{},"pageIri",", ",[354,630,631],{},"pageDataIri",[354,633,634],{},"page",[354,636,637],{},"pageData",[479,639,640,641,644],{},"The page\u002FpageData at the ",[589,642,643],{},"leaf of the current URL"," — i.e. the innermost, deepest target of the route",[479,646,647],{},"No",[479,649,650],{},"SEO meta, admin identity, reading article data",[461,652,653,658,672,679,682],{},[479,654,655],{},[589,656,657],{},"Depth-aware",[479,659,660,628,663,628,666,628,669],{},[354,661,662],{},"pageIriAtDepth(n)",[354,664,665],{},"pageDataIriAtDepth(n)",[354,667,668],{},"pageAtDepth(n)",[354,670,671],{},"pageDataAtDepth(n)",[479,673,674,675,678],{},"The page\u002FpageData at a ",[589,676,677],{},"specific rendering depth"," from the manifest",[479,680,681],{},"Depths > 0 require a manifest",[479,683,684,686],{},[354,685,188],{}," rendering, layout-level access",[351,688,689,690,628,693,695,696,699,700,703,704,707,708,372],{},"The flat leaf getters follow the fetch path to the deepest resource — for a URL like ",[354,691,692],{},"\u002Fevents\u002F2024\u002Fconference",[354,694,627],{}," resolves to the innermost page. The depth-aware methods read the manifest's ",[354,697,698],{},"irisByDepth"," array — ",[354,701,702],{},"pageIriAtDepth(0)"," is the outermost page, ",[354,705,706],{},"pageIriAtDepth(2)"," is two levels deep. These families are ",[589,709,710],{},"complementary, not interchangeable",[712,713,715],"h3",{"id":714},"layout","Layout",[374,717,719],{"className":376,"code":718,"language":378,"meta":379,"style":379},"cwa.resources.layout        \u002F\u002F ComputedRef\u003CCwaCurrentResourceInterface | undefined>\ncwa.resources.layoutIri     \u002F\u002F ComputedRef\u003Cstring | undefined>\n",[354,720,721,739],{"__ignoreMap":379},[383,722,723,726,728,731,733,736],{"class":385,"line":386},[383,724,725],{"class":412},"cwa",[383,727,372],{"class":434},[383,729,730],{"class":412},"resources",[383,732,372],{"class":434},[383,734,735],{"class":412},"layout        ",[383,737,738],{"class":389},"\u002F\u002F ComputedRef\u003CCwaCurrentResourceInterface | undefined>\n",[383,740,741,743,745,747,749,752],{"class":385,"line":393},[383,742,725],{"class":412},[383,744,372],{"class":434},[383,746,730],{"class":412},[383,748,372],{"class":434},[383,750,751],{"class":412},"layoutIri     ",[383,753,754],{"class":389},"\u002F\u002F ComputedRef\u003Cstring | undefined>\n",[351,756,757],{},"Layout always comes from the depth-0 page regardless of nesting depth.",[712,759,761],{"id":760},"flat-leaf-getters","Flat Leaf Getters",[351,763,764,765,768,769,772,773,776,777,780],{},"Use these when you need to know what the current URL is ",[589,766,767],{},"about"," — the page or article the visitor navigated to. They work without a manifest (no ",[354,770,771],{},"pagesDepth"," requirement) and are what the SEO plugin uses to populate ",[354,774,775],{},"\u003Ctitle>"," and ",[354,778,779],{},"\u003Cmeta>"," tags.",[374,782,784],{"className":376,"code":783,"language":378,"meta":379,"style":379},"cwa.resources.page          \u002F\u002F ComputedRef\u003CCwaCurrentResourceInterface | undefined>\ncwa.resources.pageIri       \u002F\u002F ComputedRef\u003Cstring | undefined>\n\ncwa.resources.pageData      \u002F\u002F ComputedRef\u003CCwaCurrentResourceInterface | undefined> — defined on dynamic pages only\ncwa.resources.pageDataIri   \u002F\u002F ComputedRef\u003Cstring | undefined>\n\ncwa.resources.displayPage   \u002F\u002F ComputedRef — the \"identity\" page shown in the admin (pageData for dynamic pages, page otherwise)\ncwa.resources.displayPageIri\n",[354,785,786,801,816,820,836,851,856,873],{"__ignoreMap":379},[383,787,788,790,792,794,796,799],{"class":385,"line":386},[383,789,725],{"class":412},[383,791,372],{"class":434},[383,793,730],{"class":412},[383,795,372],{"class":434},[383,797,798],{"class":412},"page          ",[383,800,738],{"class":389},[383,802,803,805,807,809,811,814],{"class":385,"line":393},[383,804,725],{"class":412},[383,806,372],{"class":434},[383,808,730],{"class":412},[383,810,372],{"class":434},[383,812,813],{"class":412},"pageIri       ",[383,815,754],{"class":389},[383,817,818],{"class":385,"line":416},[383,819,420],{"emptyLinePlaceholder":419},[383,821,822,824,826,828,830,833],{"class":385,"line":423},[383,823,725],{"class":412},[383,825,372],{"class":434},[383,827,730],{"class":412},[383,829,372],{"class":434},[383,831,832],{"class":412},"pageData      ",[383,834,835],{"class":389},"\u002F\u002F ComputedRef\u003CCwaCurrentResourceInterface | undefined> — defined on dynamic pages only\n",[383,837,838,840,842,844,846,849],{"class":385,"line":429},[383,839,725],{"class":412},[383,841,372],{"class":434},[383,843,730],{"class":412},[383,845,372],{"class":434},[383,847,848],{"class":412},"pageDataIri   ",[383,850,754],{"class":389},[383,852,854],{"class":385,"line":853},6,[383,855,420],{"emptyLinePlaceholder":419},[383,857,859,861,863,865,867,870],{"class":385,"line":858},7,[383,860,725],{"class":412},[383,862,372],{"class":434},[383,864,730],{"class":412},[383,866,372],{"class":434},[383,868,869],{"class":412},"displayPage   ",[383,871,872],{"class":389},"\u002F\u002F ComputedRef — the \"identity\" page shown in the admin (pageData for dynamic pages, page otherwise)\n",[383,874,876,878,880,882,884],{"class":385,"line":875},8,[383,877,725],{"class":412},[383,879,372],{"class":434},[383,881,730],{"class":412},[383,883,372],{"class":434},[383,885,886],{"class":412},"displayPageIri\n",[351,888,889],{},"Typical use — reading article data in a page template:",[374,891,893],{"className":376,"code":892,"language":378,"meta":379,"style":379},"const cwa = useCwa()\nconst headline = computed(() => cwa.resources.pageData.value?.data?.headline)\nconst title = computed(() => cwa.resources.pageData.value?.data?.title ?? cwa.resources.page.value?.data?.title)\n",[354,894,895,907,954],{"__ignoreMap":379},[383,896,897,899,901,903,905],{"class":385,"line":386},[383,898,397],{"class":396},[383,900,401],{"class":400},[383,902,405],{"class":404},[383,904,409],{"class":408},[383,906,413],{"class":412},[383,908,909,911,914,916,919,922,925,928,930,932,934,936,938,940,943,946,949,951],{"class":385,"line":393},[383,910,397],{"class":396},[383,912,913],{"class":400}," headline",[383,915,405],{"class":404},[383,917,918],{"class":408}," computed",[383,920,921],{"class":412},"(",[383,923,924],{"class":434},"()",[383,926,927],{"class":396}," =>",[383,929,401],{"class":412},[383,931,372],{"class":434},[383,933,730],{"class":412},[383,935,372],{"class":434},[383,937,637],{"class":412},[383,939,372],{"class":434},[383,941,942],{"class":412},"value",[383,944,945],{"class":434},"?.",[383,947,948],{"class":412},"data",[383,950,945],{"class":434},[383,952,953],{"class":412},"headline)\n",[383,955,956,958,961,963,965,967,969,971,973,975,977,979,981,983,985,987,989,991,994,997,999,1001,1003,1005,1007,1009,1011,1013,1015,1017],{"class":385,"line":416},[383,957,397],{"class":396},[383,959,960],{"class":400}," title",[383,962,405],{"class":404},[383,964,918],{"class":408},[383,966,921],{"class":412},[383,968,924],{"class":434},[383,970,927],{"class":396},[383,972,401],{"class":412},[383,974,372],{"class":434},[383,976,730],{"class":412},[383,978,372],{"class":434},[383,980,637],{"class":412},[383,982,372],{"class":434},[383,984,942],{"class":412},[383,986,945],{"class":434},[383,988,948],{"class":412},[383,990,945],{"class":434},[383,992,993],{"class":412},"title ",[383,995,996],{"class":404},"??",[383,998,401],{"class":412},[383,1000,372],{"class":434},[383,1002,730],{"class":412},[383,1004,372],{"class":434},[383,1006,634],{"class":412},[383,1008,372],{"class":434},[383,1010,942],{"class":412},[383,1012,945],{"class":434},[383,1014,948],{"class":412},[383,1016,945],{"class":434},[383,1018,1019],{"class":412},"title)\n",[712,1021,1023],{"id":1022},"page-type-flags","Page Type Flags",[374,1025,1027],{"className":376,"code":1026,"language":378,"meta":379,"style":379},"cwa.resources.usesPageTemplate   \u002F\u002F ComputedRef\u003Cboolean> — true when the page is marked isTemplate\ncwa.resources.isDataPage         \u002F\u002F ComputedRef\u003Cboolean> — true when a pageData record is active\ncwa.resources.isDynamicPage      \u002F\u002F ComputedRef\u003Cboolean> — isDataPage && usesPageTemplate\n",[354,1028,1029,1045,1061],{"__ignoreMap":379},[383,1030,1031,1033,1035,1037,1039,1042],{"class":385,"line":386},[383,1032,725],{"class":412},[383,1034,372],{"class":434},[383,1036,730],{"class":412},[383,1038,372],{"class":434},[383,1040,1041],{"class":412},"usesPageTemplate   ",[383,1043,1044],{"class":389},"\u002F\u002F ComputedRef\u003Cboolean> — true when the page is marked isTemplate\n",[383,1046,1047,1049,1051,1053,1055,1058],{"class":385,"line":393},[383,1048,725],{"class":412},[383,1050,372],{"class":434},[383,1052,730],{"class":412},[383,1054,372],{"class":434},[383,1056,1057],{"class":412},"isDataPage         ",[383,1059,1060],{"class":389},"\u002F\u002F ComputedRef\u003Cboolean> — true when a pageData record is active\n",[383,1062,1063,1065,1067,1069,1071,1074],{"class":385,"line":416},[383,1064,725],{"class":412},[383,1066,372],{"class":434},[383,1068,730],{"class":412},[383,1070,372],{"class":434},[383,1072,1073],{"class":412},"isDynamicPage      ",[383,1075,1076],{"class":389},"\u002F\u002F ComputedRef\u003Cboolean> — isDataPage && usesPageTemplate\n",[712,1078,1080],{"id":1079},"depth-aware-methods","Depth-Aware Methods",[351,1082,1083,1084,1087,1088,1091],{},"Use these when you need to know ",[589,1085,1086],{},"what renders at a specific nesting level",". They read ",[354,1089,1090],{},"manifest.irisByDepth[n]",". At depth 0 they fall back gracefully to the flat fetch path, but at depth 1 and beyond a manifest is required.",[351,1093,1094,1095,1097,1098,1100],{},"These are used internally by ",[354,1096,188],{}," to pass the correct IRI to each nesting level — you rarely call them with an explicit depth outside of ",[354,1099,188],{}," itself.",[374,1102,1104],{"className":376,"code":1103,"language":378,"meta":379,"style":379},"cwa.resources.depthCount                    \u002F\u002F ComputedRef\u003Cnumber> — number of depth levels in the manifest (minimum 1)\ncwa.resources.pageAtDepth(0)                \u002F\u002F ComputedRef — outermost page resource\ncwa.resources.pageAtDepth(1)                \u002F\u002F ComputedRef — first nested page resource\ncwa.resources.pageIriAtDepth(0)             \u002F\u002F ComputedRef\u003Cstring | undefined>\ncwa.resources.pageDataAtDepth(0)            \u002F\u002F ComputedRef — pageData at a given depth\ncwa.resources.pageDataIriAtDepth(0)         \u002F\u002F ComputedRef\u003Cstring | undefined>\n",[354,1105,1106,1122,1147,1169,1191,1214],{"__ignoreMap":379},[383,1107,1108,1110,1112,1114,1116,1119],{"class":385,"line":386},[383,1109,725],{"class":412},[383,1111,372],{"class":434},[383,1113,730],{"class":412},[383,1115,372],{"class":434},[383,1117,1118],{"class":412},"depthCount                    ",[383,1120,1121],{"class":389},"\u002F\u002F ComputedRef\u003Cnumber> — number of depth levels in the manifest (minimum 1)\n",[383,1123,1124,1126,1128,1130,1132,1135,1137,1141,1144],{"class":385,"line":393},[383,1125,725],{"class":412},[383,1127,372],{"class":434},[383,1129,730],{"class":412},[383,1131,372],{"class":434},[383,1133,1134],{"class":408},"pageAtDepth",[383,1136,921],{"class":412},[383,1138,1140],{"class":1139},"scSvc","0",[383,1142,1143],{"class":412},")                ",[383,1145,1146],{"class":389},"\u002F\u002F ComputedRef — outermost page resource\n",[383,1148,1149,1151,1153,1155,1157,1159,1161,1164,1166],{"class":385,"line":416},[383,1150,725],{"class":412},[383,1152,372],{"class":434},[383,1154,730],{"class":412},[383,1156,372],{"class":434},[383,1158,1134],{"class":408},[383,1160,921],{"class":412},[383,1162,1163],{"class":1139},"1",[383,1165,1143],{"class":412},[383,1167,1168],{"class":389},"\u002F\u002F ComputedRef — first nested page resource\n",[383,1170,1171,1173,1175,1177,1179,1182,1184,1186,1189],{"class":385,"line":423},[383,1172,725],{"class":412},[383,1174,372],{"class":434},[383,1176,730],{"class":412},[383,1178,372],{"class":434},[383,1180,1181],{"class":408},"pageIriAtDepth",[383,1183,921],{"class":412},[383,1185,1140],{"class":1139},[383,1187,1188],{"class":412},")             ",[383,1190,754],{"class":389},[383,1192,1193,1195,1197,1199,1201,1204,1206,1208,1211],{"class":385,"line":429},[383,1194,725],{"class":412},[383,1196,372],{"class":434},[383,1198,730],{"class":412},[383,1200,372],{"class":434},[383,1202,1203],{"class":408},"pageDataAtDepth",[383,1205,921],{"class":412},[383,1207,1140],{"class":1139},[383,1209,1210],{"class":412},")            ",[383,1212,1213],{"class":389},"\u002F\u002F ComputedRef — pageData at a given depth\n",[383,1215,1216,1218,1220,1222,1224,1227,1229,1231,1234],{"class":385,"line":853},[383,1217,725],{"class":412},[383,1219,372],{"class":434},[383,1221,730],{"class":412},[383,1223,372],{"class":434},[383,1225,1226],{"class":408},"pageDataIriAtDepth",[383,1228,921],{"class":412},[383,1230,1140],{"class":1139},[383,1232,1233],{"class":412},")         ",[383,1235,754],{"class":389},[351,1237,1238,1241,1242,1244,1245,1248],{},[589,1239,1240],{},"Calling without an argument"," — inside a component rendered by ",[354,1243,188],{},", omit the depth. The component injects ",[354,1246,1247],{},"cwa-page-own-depth"," and the method resolves to the correct level automatically:",[374,1250,1252],{"className":376,"code":1251,"language":378,"meta":379,"style":379},"\u002F\u002F Inside a page template component rendered by \u003CCwaPage \u002F> — no depth arg needed\nconst pageIri = cwa.resources.pageIriAtDepth()         \u002F\u002F resolves to own depth\nconst pageDataIri = cwa.resources.pageDataIriAtDepth() \u002F\u002F resolves to own depth\nconst page = cwa.resources.pageAtDepth()\nconst pageData = cwa.resources.pageDataAtDepth()\n",[354,1253,1254,1259,1284,1308,1329],{"__ignoreMap":379},[383,1255,1256],{"class":385,"line":386},[383,1257,1258],{"class":389},"\u002F\u002F Inside a page template component rendered by \u003CCwaPage \u002F> — no depth arg needed\n",[383,1260,1261,1263,1266,1268,1270,1272,1274,1276,1278,1281],{"class":385,"line":393},[383,1262,397],{"class":396},[383,1264,1265],{"class":400}," pageIri",[383,1267,405],{"class":404},[383,1269,401],{"class":412},[383,1271,372],{"class":434},[383,1273,730],{"class":412},[383,1275,372],{"class":434},[383,1277,1181],{"class":408},[383,1279,1280],{"class":412},"()         ",[383,1282,1283],{"class":389},"\u002F\u002F resolves to own depth\n",[383,1285,1286,1288,1291,1293,1295,1297,1299,1301,1303,1306],{"class":385,"line":416},[383,1287,397],{"class":396},[383,1289,1290],{"class":400}," pageDataIri",[383,1292,405],{"class":404},[383,1294,401],{"class":412},[383,1296,372],{"class":434},[383,1298,730],{"class":412},[383,1300,372],{"class":434},[383,1302,1226],{"class":408},[383,1304,1305],{"class":412},"() ",[383,1307,1283],{"class":389},[383,1309,1310,1312,1315,1317,1319,1321,1323,1325,1327],{"class":385,"line":423},[383,1311,397],{"class":396},[383,1313,1314],{"class":400}," page",[383,1316,405],{"class":404},[383,1318,401],{"class":412},[383,1320,372],{"class":434},[383,1322,730],{"class":412},[383,1324,372],{"class":434},[383,1326,1134],{"class":408},[383,1328,413],{"class":412},[383,1330,1331,1333,1336,1338,1340,1342,1344,1346,1348],{"class":385,"line":429},[383,1332,397],{"class":396},[383,1334,1335],{"class":400}," pageData",[383,1337,405],{"class":404},[383,1339,401],{"class":412},[383,1341,372],{"class":434},[383,1343,730],{"class":412},[383,1345,372],{"class":434},[383,1347,1203],{"class":408},[383,1349,413],{"class":412},[351,1351,1352],{},[589,1353,1354,1355,1357],{},"Inject keys provided by ",[354,1356,188],{},":",[455,1359,1360,1373],{},[458,1361,1362],{},[461,1363,1364,1367,1370],{},[464,1365,1366],{},"Key",[464,1368,1369],{},"Type",[464,1371,1372],{},"What it contains",[474,1374,1375,1389,1406],{},[461,1376,1377,1381,1386],{},[479,1378,1379],{},[354,1380,1247],{},[479,1382,1383],{},[354,1384,1385],{},"number",[479,1387,1388],{},"The depth at which the current template is rendered",[461,1390,1391,1396,1400],{},[479,1392,1393],{},[354,1394,1395],{},"cwa-page-depth",[479,1397,1398],{},[354,1399,1385],{},[479,1401,1402,1403,1405],{},"The depth for a nested ",[354,1404,188],{}," child (incremented automatically)",[461,1407,1408,1413,1418],{},[479,1409,1410],{},[354,1411,1412],{},"cwa-page-data-iri",[479,1414,1415],{},[354,1416,1417],{},"ComputedRef\u003Cstring | undefined>",[479,1419,1420],{},"IRI of the PageData record at the current depth",[351,1422,1423,1425],{},[354,1424,1412],{}," is the most convenient way to access PageData in a template component — no depth arithmetic needed:",[374,1427,1429],{"className":376,"code":1428,"language":378,"meta":379,"style":379},"import { inject } from 'vue'\nimport type { ComputedRef } from 'vue'\n\nconst pageDataIri = inject\u003CComputedRef\u003Cstring | undefined>>('cwa-page-data-iri')\nconst eventData = computed(() => {\n    if (!pageDataIri?.value) return null\n    return cwa.resources.getResource(pageDataIri.value).value\n})\n",[354,1430,1431,1460,1482,1486,1529,1549,1577,1608],{"__ignoreMap":379},[383,1432,1433,1437,1440,1443,1446,1449,1453,1457],{"class":385,"line":386},[383,1434,1436],{"class":1435},"sm4w6","import",[383,1438,1439],{"class":434}," {",[383,1441,1442],{"class":412}," inject",[383,1444,1445],{"class":434}," }",[383,1447,1448],{"class":1435}," from",[383,1450,1452],{"class":1451},"seSrl"," '",[383,1454,1456],{"class":1455},"sLL54","vue",[383,1458,1459],{"class":1451},"'\n",[383,1461,1462,1464,1467,1469,1472,1474,1476,1478,1480],{"class":385,"line":393},[383,1463,1436],{"class":1435},[383,1465,1466],{"class":1435}," type",[383,1468,1439],{"class":434},[383,1470,1471],{"class":412}," ComputedRef",[383,1473,1445],{"class":434},[383,1475,1448],{"class":1435},[383,1477,1452],{"class":1451},[383,1479,1456],{"class":1455},[383,1481,1459],{"class":1451},[383,1483,1484],{"class":385,"line":416},[383,1485,420],{"emptyLinePlaceholder":419},[383,1487,1488,1490,1492,1494,1496,1499,1502,1504,1508,1511,1514,1517,1519,1522,1524,1526],{"class":385,"line":423},[383,1489,397],{"class":396},[383,1491,1290],{"class":400},[383,1493,405],{"class":404},[383,1495,1442],{"class":408},[383,1497,1498],{"class":434},"\u003C",[383,1500,581],{"class":1501},"sRCss",[383,1503,1498],{"class":434},[383,1505,1507],{"class":1506},"sbW4m","string",[383,1509,1510],{"class":404}," |",[383,1512,1513],{"class":1506}," undefined",[383,1515,1516],{"class":434},">>",[383,1518,921],{"class":412},[383,1520,1521],{"class":1451},"'",[383,1523,1412],{"class":1455},[383,1525,1521],{"class":1451},[383,1527,1528],{"class":412},")\n",[383,1530,1531,1533,1536,1538,1540,1542,1544,1546],{"class":385,"line":429},[383,1532,397],{"class":396},[383,1534,1535],{"class":400}," eventData",[383,1537,405],{"class":404},[383,1539,918],{"class":408},[383,1541,921],{"class":412},[383,1543,924],{"class":434},[383,1545,927],{"class":396},[383,1547,1548],{"class":434}," {\n",[383,1550,1551,1554,1558,1561,1563,1565,1567,1570,1573],{"class":385,"line":853},[383,1552,1553],{"class":1435},"    if",[383,1555,1557],{"class":1556},"sDHlG"," (",[383,1559,1560],{"class":404},"!",[383,1562,631],{"class":412},[383,1564,945],{"class":434},[383,1566,942],{"class":412},[383,1568,1569],{"class":1556},") ",[383,1571,1572],{"class":1435},"return",[383,1574,1576],{"class":1575},"sBtbT"," null\n",[383,1578,1579,1582,1584,1586,1588,1590,1593,1595,1597,1599,1601,1604,1606],{"class":385,"line":858},[383,1580,1581],{"class":1435},"    return",[383,1583,401],{"class":412},[383,1585,372],{"class":434},[383,1587,730],{"class":412},[383,1589,372],{"class":434},[383,1591,1592],{"class":408},"getResource",[383,1594,921],{"class":1556},[383,1596,631],{"class":412},[383,1598,372],{"class":434},[383,1600,942],{"class":412},[383,1602,1603],{"class":1556},")",[383,1605,372],{"class":434},[383,1607,447],{"class":412},[383,1609,1610,1613],{"class":385,"line":875},[383,1611,1612],{"class":434},"}",[383,1614,1528],{"class":412},[712,1616,1618],{"id":1617},"arbitrary-resource-lookup","Arbitrary Resource Lookup",[374,1620,1622],{"className":376,"code":1621,"language":378,"meta":379,"style":379},"\u002F\u002F Fetch any resource by IRI (returns a ComputedRef tracking that IRI)\nconst resource = cwa.resources.getResource('\u002Fcomponent\u002Ftitles\u002F018e-...')\nresource.value?.data?.title\n\n\u002F\u002F All resources currently loaded for this page\ncwa.resources.currentResources    \u002F\u002F { [iri: string]: CwaCurrentResourceInterface }\ncwa.resources.currentIds          \u002F\u002F string[] — IRI list for current page\n\n\u002F\u002F Find a component group by its reference name\ncwa.resources.getComponentGroupByReference('navigation')\n",[354,1623,1624,1629,1659,1677,1681,1686,1702,1718,1722,1728],{"__ignoreMap":379},[383,1625,1626],{"class":385,"line":386},[383,1627,1628],{"class":389},"\u002F\u002F Fetch any resource by IRI (returns a ComputedRef tracking that IRI)\n",[383,1630,1631,1633,1636,1638,1640,1642,1644,1646,1648,1650,1652,1655,1657],{"class":385,"line":393},[383,1632,397],{"class":396},[383,1634,1635],{"class":400}," resource",[383,1637,405],{"class":404},[383,1639,401],{"class":412},[383,1641,372],{"class":434},[383,1643,730],{"class":412},[383,1645,372],{"class":434},[383,1647,1592],{"class":408},[383,1649,921],{"class":412},[383,1651,1521],{"class":1451},[383,1653,1654],{"class":1455},"\u002Fcomponent\u002Ftitles\u002F018e-...",[383,1656,1521],{"class":1451},[383,1658,1528],{"class":412},[383,1660,1661,1664,1666,1668,1670,1672,1674],{"class":385,"line":416},[383,1662,1663],{"class":412},"resource",[383,1665,372],{"class":434},[383,1667,942],{"class":412},[383,1669,945],{"class":434},[383,1671,948],{"class":412},[383,1673,945],{"class":434},[383,1675,1676],{"class":412},"title\n",[383,1678,1679],{"class":385,"line":423},[383,1680,420],{"emptyLinePlaceholder":419},[383,1682,1683],{"class":385,"line":429},[383,1684,1685],{"class":389},"\u002F\u002F All resources currently loaded for this page\n",[383,1687,1688,1690,1692,1694,1696,1699],{"class":385,"line":853},[383,1689,725],{"class":412},[383,1691,372],{"class":434},[383,1693,730],{"class":412},[383,1695,372],{"class":434},[383,1697,1698],{"class":412},"currentResources    ",[383,1700,1701],{"class":389},"\u002F\u002F { [iri: string]: CwaCurrentResourceInterface }\n",[383,1703,1704,1706,1708,1710,1712,1715],{"class":385,"line":858},[383,1705,725],{"class":412},[383,1707,372],{"class":434},[383,1709,730],{"class":412},[383,1711,372],{"class":434},[383,1713,1714],{"class":412},"currentIds          ",[383,1716,1717],{"class":389},"\u002F\u002F string[] — IRI list for current page\n",[383,1719,1720],{"class":385,"line":875},[383,1721,420],{"emptyLinePlaceholder":419},[383,1723,1725],{"class":385,"line":1724},9,[383,1726,1727],{"class":389},"\u002F\u002F Find a component group by its reference name\n",[383,1729,1731,1733,1735,1737,1739,1742,1744,1746,1749,1751],{"class":385,"line":1730},10,[383,1732,725],{"class":412},[383,1734,372],{"class":434},[383,1736,730],{"class":412},[383,1738,372],{"class":434},[383,1740,1741],{"class":408},"getComponentGroupByReference",[383,1743,921],{"class":412},[383,1745,1521],{"class":1451},[383,1747,1748],{"class":1455},"navigation",[383,1750,1521],{"class":1451},[383,1752,1528],{"class":412},[712,1754,1756],{"id":1755},"loading-state","Loading State",[374,1758,1760],{"className":376,"code":1759,"language":378,"meta":379,"style":379},"cwa.resources.isLoading         \u002F\u002F ComputedRef\u003Cboolean> — true during any primary fetch\ncwa.resources.pageLoadProgress  \u002F\u002F ComputedRef\u003C{ total, complete, percent, resources[] }>\n",[354,1761,1762,1778],{"__ignoreMap":379},[383,1763,1764,1766,1768,1770,1772,1775],{"class":385,"line":386},[383,1765,725],{"class":412},[383,1767,372],{"class":434},[383,1769,730],{"class":412},[383,1771,372],{"class":434},[383,1773,1774],{"class":412},"isLoading         ",[383,1776,1777],{"class":389},"\u002F\u002F ComputedRef\u003Cboolean> — true during any primary fetch\n",[383,1779,1780,1782,1784,1786,1788,1791],{"class":385,"line":393},[383,1781,725],{"class":412},[383,1783,372],{"class":434},[383,1785,730],{"class":412},[383,1787,372],{"class":434},[383,1789,1790],{"class":412},"pageLoadProgress  ",[383,1792,1793],{"class":389},"\u002F\u002F ComputedRef\u003C{ total, complete, percent, resources[] }>\n",[712,1795,1797],{"id":1796},"publishable-helpers","Publishable Helpers",[374,1799,1801],{"className":376,"code":1800,"language":378,"meta":379,"style":379},"cwa.resources.findPublishedComponentIri(iri)      \u002F\u002F → published IRI for this draft\ncwa.resources.findDraftComponentIri(iri)          \u002F\u002F → draft IRI for this published resource\ncwa.resources.isIriPublishableEquivalent(a, b)    \u002F\u002F → true when a and b are draft\u002Fpublish twins\ncwa.resources.findAllPublishableIris(iri)         \u002F\u002F → both IRIs for a publishable resource\n",[354,1802,1803,1822,1841,1866],{"__ignoreMap":379},[383,1804,1805,1807,1809,1811,1813,1816,1819],{"class":385,"line":386},[383,1806,725],{"class":412},[383,1808,372],{"class":434},[383,1810,730],{"class":412},[383,1812,372],{"class":434},[383,1814,1815],{"class":408},"findPublishedComponentIri",[383,1817,1818],{"class":412},"(iri)      ",[383,1820,1821],{"class":389},"\u002F\u002F → published IRI for this draft\n",[383,1823,1824,1826,1828,1830,1832,1835,1838],{"class":385,"line":393},[383,1825,725],{"class":412},[383,1827,372],{"class":434},[383,1829,730],{"class":412},[383,1831,372],{"class":434},[383,1833,1834],{"class":408},"findDraftComponentIri",[383,1836,1837],{"class":412},"(iri)          ",[383,1839,1840],{"class":389},"\u002F\u002F → draft IRI for this published resource\n",[383,1842,1843,1845,1847,1849,1851,1854,1857,1860,1863],{"class":385,"line":416},[383,1844,725],{"class":412},[383,1846,372],{"class":434},[383,1848,730],{"class":412},[383,1850,372],{"class":434},[383,1852,1853],{"class":408},"isIriPublishableEquivalent",[383,1855,1856],{"class":412},"(a",[383,1858,1859],{"class":434},",",[383,1861,1862],{"class":412}," b)    ",[383,1864,1865],{"class":389},"\u002F\u002F → true when a and b are draft\u002Fpublish twins\n",[383,1867,1868,1870,1872,1874,1876,1879,1882],{"class":385,"line":423},[383,1869,725],{"class":412},[383,1871,372],{"class":434},[383,1873,730],{"class":412},[383,1875,372],{"class":434},[383,1877,1878],{"class":408},"findAllPublishableIris",[383,1880,1881],{"class":412},"(iri)         ",[383,1883,1884],{"class":389},"\u002F\u002F → both IRIs for a publishable resource\n",[567,1886],{},[570,1888,1890,1892],{"id":1889},"cwaresourcesmanager-resourcesmanager",[354,1891,498],{}," — ResourcesManager",[351,1894,1895],{},"CRUD operations that talk to the API. These are used internally by the admin panel and are available for advanced custom UIs.",[712,1897,1899],{"id":1898},"creating-resources","Creating Resources",[374,1901,1903],{"className":376,"code":1902,"language":378,"meta":379,"style":379},"await cwa.resourcesManager.createResource({\n    endpoint: '\u002Fcomponent\u002Ftitles',\n    data: { title: 'Hello', uiComponent: 'Title' }\n})\n",[354,1904,1905,1927,1944,1981],{"__ignoreMap":379},[383,1906,1907,1910,1912,1914,1917,1919,1922,1924],{"class":385,"line":386},[383,1908,1909],{"class":1435},"await",[383,1911,401],{"class":412},[383,1913,372],{"class":434},[383,1915,1916],{"class":412},"resourcesManager",[383,1918,372],{"class":434},[383,1920,1921],{"class":408},"createResource",[383,1923,921],{"class":412},[383,1925,1926],{"class":434},"{\n",[383,1928,1929,1932,1934,1936,1939,1941],{"class":385,"line":393},[383,1930,1931],{"class":1556},"    endpoint",[383,1933,1357],{"class":434},[383,1935,1452],{"class":1451},[383,1937,1938],{"class":1455},"\u002Fcomponent\u002Ftitles",[383,1940,1521],{"class":1451},[383,1942,1943],{"class":434},",\n",[383,1945,1946,1949,1951,1953,1955,1957,1959,1962,1964,1966,1969,1971,1973,1976,1978],{"class":385,"line":416},[383,1947,1948],{"class":1556},"    data",[383,1950,1357],{"class":434},[383,1952,1439],{"class":434},[383,1954,960],{"class":1556},[383,1956,1357],{"class":434},[383,1958,1452],{"class":1451},[383,1960,1961],{"class":1455},"Hello",[383,1963,1521],{"class":1451},[383,1965,1859],{"class":434},[383,1967,1968],{"class":1556}," uiComponent",[383,1970,1357],{"class":434},[383,1972,1452],{"class":1451},[383,1974,1975],{"class":1455},"Title",[383,1977,1521],{"class":1451},[383,1979,1980],{"class":434}," }\n",[383,1982,1983,1985],{"class":385,"line":423},[383,1984,1612],{"class":434},[383,1986,1528],{"class":412},[712,1988,1990],{"id":1989},"updating-resources","Updating Resources",[374,1992,1994],{"className":376,"code":1993,"language":378,"meta":379,"style":379},"await cwa.resourcesManager.updateResource({\n    endpoint: '\u002Fcomponent\u002Ftitles\u002F018e-...',\n    data: { title: 'Updated Title' }\n})\n",[354,1995,1996,2015,2029,2050],{"__ignoreMap":379},[383,1997,1998,2000,2002,2004,2006,2008,2011,2013],{"class":385,"line":386},[383,1999,1909],{"class":1435},[383,2001,401],{"class":412},[383,2003,372],{"class":434},[383,2005,1916],{"class":412},[383,2007,372],{"class":434},[383,2009,2010],{"class":408},"updateResource",[383,2012,921],{"class":412},[383,2014,1926],{"class":434},[383,2016,2017,2019,2021,2023,2025,2027],{"class":385,"line":393},[383,2018,1931],{"class":1556},[383,2020,1357],{"class":434},[383,2022,1452],{"class":1451},[383,2024,1654],{"class":1455},[383,2026,1521],{"class":1451},[383,2028,1943],{"class":434},[383,2030,2031,2033,2035,2037,2039,2041,2043,2046,2048],{"class":385,"line":416},[383,2032,1948],{"class":1556},[383,2034,1357],{"class":434},[383,2036,1439],{"class":434},[383,2038,960],{"class":1556},[383,2040,1357],{"class":434},[383,2042,1452],{"class":1451},[383,2044,2045],{"class":1455},"Updated Title",[383,2047,1521],{"class":1451},[383,2049,1980],{"class":434},[383,2051,2052,2054],{"class":385,"line":423},[383,2053,1612],{"class":434},[383,2055,1528],{"class":412},[712,2057,2059],{"id":2058},"deleting-resources","Deleting Resources",[374,2061,2063],{"className":376,"code":2062,"language":378,"meta":379,"style":379},"await cwa.resourcesManager.deleteResource({\n    iri: '\u002Fcomponent\u002Ftitles\u002F018e-...'\n})\n",[354,2064,2065,2084,2097],{"__ignoreMap":379},[383,2066,2067,2069,2071,2073,2075,2077,2080,2082],{"class":385,"line":386},[383,2068,1909],{"class":1435},[383,2070,401],{"class":412},[383,2072,372],{"class":434},[383,2074,1916],{"class":412},[383,2076,372],{"class":434},[383,2078,2079],{"class":408},"deleteResource",[383,2081,921],{"class":412},[383,2083,1926],{"class":434},[383,2085,2086,2089,2091,2093,2095],{"class":385,"line":393},[383,2087,2088],{"class":1556},"    iri",[383,2090,1357],{"class":434},[383,2092,1452],{"class":1451},[383,2094,1654],{"class":1455},[383,2096,1459],{"class":1451},[383,2098,2099,2101],{"class":385,"line":416},[383,2100,1612],{"class":434},[383,2102,1528],{"class":412},[712,2104,2106],{"id":2105},"saving-upsert-style","Saving (Upsert-style)",[351,2108,2109,2112,2113,2116],{},[354,2110,2111],{},"saveResource"," handles both create and update depending on whether the IRI is the ",[354,2114,2115],{},"NEW_RESOURCE_IRI"," sentinel:",[374,2118,2120],{"className":376,"code":2119,"language":378,"meta":379,"style":379},"cwa.resourcesManager.saveResource({ endpoint, data })\n",[354,2121,2122],{"__ignoreMap":379},[383,2123,2124,2126,2128,2130,2132,2134,2136,2139,2142,2144,2147,2149],{"class":385,"line":386},[383,2125,725],{"class":412},[383,2127,372],{"class":434},[383,2129,1916],{"class":412},[383,2131,372],{"class":434},[383,2133,2111],{"class":408},[383,2135,921],{"class":412},[383,2137,2138],{"class":434},"{",[383,2140,2141],{"class":412}," endpoint",[383,2143,1859],{"class":434},[383,2145,2146],{"class":412}," data ",[383,2148,1612],{"class":434},[383,2150,1528],{"class":412},[712,2152,2154],{"id":2153},"error-management","Error Management",[374,2156,2158],{"className":376,"code":2157,"language":378,"meta":379,"style":379},"cwa.resourcesManager.errors        \u002F\u002F CwaErrorEvent[]\ncwa.resourcesManager.hasErrors     \u002F\u002F boolean\ncwa.resourcesManager.addError(event)\ncwa.resourcesManager.removeError(id)\n",[354,2159,2160,2176,2192,2208],{"__ignoreMap":379},[383,2161,2162,2164,2166,2168,2170,2173],{"class":385,"line":386},[383,2163,725],{"class":412},[383,2165,372],{"class":434},[383,2167,1916],{"class":412},[383,2169,372],{"class":434},[383,2171,2172],{"class":412},"errors        ",[383,2174,2175],{"class":389},"\u002F\u002F CwaErrorEvent[]\n",[383,2177,2178,2180,2182,2184,2186,2189],{"class":385,"line":393},[383,2179,725],{"class":412},[383,2181,372],{"class":434},[383,2183,1916],{"class":412},[383,2185,372],{"class":434},[383,2187,2188],{"class":412},"hasErrors     ",[383,2190,2191],{"class":389},"\u002F\u002F boolean\n",[383,2193,2194,2196,2198,2200,2202,2205],{"class":385,"line":416},[383,2195,725],{"class":412},[383,2197,372],{"class":434},[383,2199,1916],{"class":412},[383,2201,372],{"class":434},[383,2203,2204],{"class":408},"addError",[383,2206,2207],{"class":412},"(event)\n",[383,2209,2210,2212,2214,2216,2218,2221],{"class":385,"line":423},[383,2211,725],{"class":412},[383,2213,372],{"class":434},[383,2215,1916],{"class":412},[383,2217,372],{"class":434},[383,2219,2220],{"class":408},"removeError",[383,2222,2223],{"class":412},"(id)\n",[567,2225],{},[570,2227,2229,2231],{"id":2228},"cwaauth-auth",[354,2230,513],{}," — Auth",[351,2233,2234],{},"Authentication state and all user account actions.",[712,2236,2238],{"id":2237},"state","State",[374,2240,2242],{"className":376,"code":2241,"language":378,"meta":379,"style":379},"cwa.auth.signedIn        \u002F\u002F ComputedRef\u003Cboolean>\ncwa.auth.user            \u002F\u002F ComputedRef\u003CCwaUser | undefined>\ncwa.auth.roles           \u002F\u002F ComputedRef\u003Cstring[]>\ncwa.auth.isAdmin         \u002F\u002F ComputedRef\u003Cboolean> — true for ROLE_ADMIN or higher\ncwa.auth.status          \u002F\u002F ComputedRef\u003CCwaAuthStatus> (0=SIGNED_OUT, 1=LOADING, 2=SIGNED_IN)\ncwa.auth.hasRole('ROLE_ADMIN')  \u002F\u002F boolean — check a specific role\n",[354,2243,2244,2260,2276,2292,2308,2324],{"__ignoreMap":379},[383,2245,2246,2248,2250,2252,2254,2257],{"class":385,"line":386},[383,2247,725],{"class":412},[383,2249,372],{"class":434},[383,2251,437],{"class":412},[383,2253,372],{"class":434},[383,2255,2256],{"class":412},"signedIn        ",[383,2258,2259],{"class":389},"\u002F\u002F ComputedRef\u003Cboolean>\n",[383,2261,2262,2264,2266,2268,2270,2273],{"class":385,"line":393},[383,2263,725],{"class":412},[383,2265,372],{"class":434},[383,2267,437],{"class":412},[383,2269,372],{"class":434},[383,2271,2272],{"class":412},"user            ",[383,2274,2275],{"class":389},"\u002F\u002F ComputedRef\u003CCwaUser | undefined>\n",[383,2277,2278,2280,2282,2284,2286,2289],{"class":385,"line":416},[383,2279,725],{"class":412},[383,2281,372],{"class":434},[383,2283,437],{"class":412},[383,2285,372],{"class":434},[383,2287,2288],{"class":412},"roles           ",[383,2290,2291],{"class":389},"\u002F\u002F ComputedRef\u003Cstring[]>\n",[383,2293,2294,2296,2298,2300,2302,2305],{"class":385,"line":423},[383,2295,725],{"class":412},[383,2297,372],{"class":434},[383,2299,437],{"class":412},[383,2301,372],{"class":434},[383,2303,2304],{"class":412},"isAdmin         ",[383,2306,2307],{"class":389},"\u002F\u002F ComputedRef\u003Cboolean> — true for ROLE_ADMIN or higher\n",[383,2309,2310,2312,2314,2316,2318,2321],{"class":385,"line":429},[383,2311,725],{"class":412},[383,2313,372],{"class":434},[383,2315,437],{"class":412},[383,2317,372],{"class":434},[383,2319,2320],{"class":412},"status          ",[383,2322,2323],{"class":389},"\u002F\u002F ComputedRef\u003CCwaAuthStatus> (0=SIGNED_OUT, 1=LOADING, 2=SIGNED_IN)\n",[383,2325,2326,2328,2330,2332,2334,2337,2339,2341,2344,2346,2349],{"class":385,"line":853},[383,2327,725],{"class":412},[383,2329,372],{"class":434},[383,2331,437],{"class":412},[383,2333,372],{"class":434},[383,2335,2336],{"class":408},"hasRole",[383,2338,921],{"class":412},[383,2340,1521],{"class":1451},[383,2342,2343],{"class":1455},"ROLE_ADMIN",[383,2345,1521],{"class":1451},[383,2347,2348],{"class":412},")  ",[383,2350,2351],{"class":389},"\u002F\u002F boolean — check a specific role\n",[712,2353,2355],{"id":2354},"actions","Actions",[374,2357,2359],{"className":376,"code":2358,"language":378,"meta":379,"style":379},"\u002F\u002F Sign in with username\u002Fpassword\nconst result = await cwa.auth.signIn({ username: 'alice@example.com', password: 'secret' })\nif (result instanceof FetchError) {\n    console.error('Login failed', result.statusCode)\n}\n\n\u002F\u002F Sign out\nawait cwa.auth.signOut()\n\n\u002F\u002F Request a password reset email\nawait cwa.auth.forgotPassword('alice@example.com')\n\n\u002F\u002F Complete a password reset (from link parameters)\nawait cwa.auth.resetPassword({\n    username: 'alice',\n    token: 'abc123',\n    passwords: { first: 'new_password', second: 'new_password' }\n})\n\n\u002F\u002F Verify email address (from link parameters)\nawait cwa.auth.verifyEmail({ username: 'alice', token: 'abc123' })\n\n\u002F\u002F Confirm email address change (from link parameters)\nawait cwa.auth.confirmEmail({ username: 'alice', token: 'abc123', newEmail: 'new@example.com' })\n\n\u002F\u002F Re-send verification email\nawait cwa.auth.resendVerifyEmail('alice')\nawait cwa.auth.resendVerifyNewEmail('alice')\n\n\u002F\u002F Re-hydrate user from the \u002Fme endpoint (e.g. after updating profile)\nawait cwa.auth.refreshUser()\n",[354,2360,2361,2366,2423,2441,2471,2476,2480,2485,2502,2506,2511,2537,2542,2548,2568,2585,2602,2639,2646,2651,2657,2704,2709,2715,2775,2780,2786,2812,2838,2843,2849],{"__ignoreMap":379},[383,2362,2363],{"class":385,"line":386},[383,2364,2365],{"class":389},"\u002F\u002F Sign in with username\u002Fpassword\n",[383,2367,2368,2370,2373,2375,2378,2380,2382,2384,2386,2389,2391,2393,2396,2398,2400,2403,2405,2407,2410,2412,2414,2417,2419,2421],{"class":385,"line":393},[383,2369,397],{"class":396},[383,2371,2372],{"class":400}," result",[383,2374,405],{"class":404},[383,2376,2377],{"class":1435}," await",[383,2379,401],{"class":412},[383,2381,372],{"class":434},[383,2383,437],{"class":412},[383,2385,372],{"class":434},[383,2387,2388],{"class":408},"signIn",[383,2390,921],{"class":412},[383,2392,2138],{"class":434},[383,2394,2395],{"class":1556}," username",[383,2397,1357],{"class":434},[383,2399,1452],{"class":1451},[383,2401,2402],{"class":1455},"alice@example.com",[383,2404,1521],{"class":1451},[383,2406,1859],{"class":434},[383,2408,2409],{"class":1556}," password",[383,2411,1357],{"class":434},[383,2413,1452],{"class":1451},[383,2415,2416],{"class":1455},"secret",[383,2418,1521],{"class":1451},[383,2420,1445],{"class":434},[383,2422,1528],{"class":412},[383,2424,2425,2428,2431,2434,2437,2439],{"class":385,"line":416},[383,2426,2427],{"class":1435},"if",[383,2429,2430],{"class":412}," (result ",[383,2432,2433],{"class":404},"instanceof",[383,2435,2436],{"class":1501}," FetchError",[383,2438,1569],{"class":412},[383,2440,1926],{"class":434},[383,2442,2443,2446,2448,2451,2453,2455,2458,2460,2462,2464,2466,2469],{"class":385,"line":423},[383,2444,2445],{"class":412},"    console",[383,2447,372],{"class":434},[383,2449,2450],{"class":408},"error",[383,2452,921],{"class":1556},[383,2454,1521],{"class":1451},[383,2456,2457],{"class":1455},"Login failed",[383,2459,1521],{"class":1451},[383,2461,1859],{"class":434},[383,2463,2372],{"class":412},[383,2465,372],{"class":434},[383,2467,2468],{"class":412},"statusCode",[383,2470,1528],{"class":1556},[383,2472,2473],{"class":385,"line":429},[383,2474,2475],{"class":434},"}\n",[383,2477,2478],{"class":385,"line":853},[383,2479,420],{"emptyLinePlaceholder":419},[383,2481,2482],{"class":385,"line":858},[383,2483,2484],{"class":389},"\u002F\u002F Sign out\n",[383,2486,2487,2489,2491,2493,2495,2497,2500],{"class":385,"line":875},[383,2488,1909],{"class":1435},[383,2490,401],{"class":412},[383,2492,372],{"class":434},[383,2494,437],{"class":412},[383,2496,372],{"class":434},[383,2498,2499],{"class":408},"signOut",[383,2501,413],{"class":412},[383,2503,2504],{"class":385,"line":1724},[383,2505,420],{"emptyLinePlaceholder":419},[383,2507,2508],{"class":385,"line":1730},[383,2509,2510],{"class":389},"\u002F\u002F Request a password reset email\n",[383,2512,2514,2516,2518,2520,2522,2524,2527,2529,2531,2533,2535],{"class":385,"line":2513},11,[383,2515,1909],{"class":1435},[383,2517,401],{"class":412},[383,2519,372],{"class":434},[383,2521,437],{"class":412},[383,2523,372],{"class":434},[383,2525,2526],{"class":408},"forgotPassword",[383,2528,921],{"class":412},[383,2530,1521],{"class":1451},[383,2532,2402],{"class":1455},[383,2534,1521],{"class":1451},[383,2536,1528],{"class":412},[383,2538,2540],{"class":385,"line":2539},12,[383,2541,420],{"emptyLinePlaceholder":419},[383,2543,2545],{"class":385,"line":2544},13,[383,2546,2547],{"class":389},"\u002F\u002F Complete a password reset (from link parameters)\n",[383,2549,2551,2553,2555,2557,2559,2561,2564,2566],{"class":385,"line":2550},14,[383,2552,1909],{"class":1435},[383,2554,401],{"class":412},[383,2556,372],{"class":434},[383,2558,437],{"class":412},[383,2560,372],{"class":434},[383,2562,2563],{"class":408},"resetPassword",[383,2565,921],{"class":412},[383,2567,1926],{"class":434},[383,2569,2571,2574,2576,2578,2581,2583],{"class":385,"line":2570},15,[383,2572,2573],{"class":1556},"    username",[383,2575,1357],{"class":434},[383,2577,1452],{"class":1451},[383,2579,2580],{"class":1455},"alice",[383,2582,1521],{"class":1451},[383,2584,1943],{"class":434},[383,2586,2588,2591,2593,2595,2598,2600],{"class":385,"line":2587},16,[383,2589,2590],{"class":1556},"    token",[383,2592,1357],{"class":434},[383,2594,1452],{"class":1451},[383,2596,2597],{"class":1455},"abc123",[383,2599,1521],{"class":1451},[383,2601,1943],{"class":434},[383,2603,2605,2608,2610,2612,2615,2617,2619,2622,2624,2626,2629,2631,2633,2635,2637],{"class":385,"line":2604},17,[383,2606,2607],{"class":1556},"    passwords",[383,2609,1357],{"class":434},[383,2611,1439],{"class":434},[383,2613,2614],{"class":1556}," first",[383,2616,1357],{"class":434},[383,2618,1452],{"class":1451},[383,2620,2621],{"class":1455},"new_password",[383,2623,1521],{"class":1451},[383,2625,1859],{"class":434},[383,2627,2628],{"class":1556}," second",[383,2630,1357],{"class":434},[383,2632,1452],{"class":1451},[383,2634,2621],{"class":1455},[383,2636,1521],{"class":1451},[383,2638,1980],{"class":434},[383,2640,2642,2644],{"class":385,"line":2641},18,[383,2643,1612],{"class":434},[383,2645,1528],{"class":412},[383,2647,2649],{"class":385,"line":2648},19,[383,2650,420],{"emptyLinePlaceholder":419},[383,2652,2654],{"class":385,"line":2653},20,[383,2655,2656],{"class":389},"\u002F\u002F Verify email address (from link parameters)\n",[383,2658,2660,2662,2664,2666,2668,2670,2673,2675,2677,2679,2681,2683,2685,2687,2689,2692,2694,2696,2698,2700,2702],{"class":385,"line":2659},21,[383,2661,1909],{"class":1435},[383,2663,401],{"class":412},[383,2665,372],{"class":434},[383,2667,437],{"class":412},[383,2669,372],{"class":434},[383,2671,2672],{"class":408},"verifyEmail",[383,2674,921],{"class":412},[383,2676,2138],{"class":434},[383,2678,2395],{"class":1556},[383,2680,1357],{"class":434},[383,2682,1452],{"class":1451},[383,2684,2580],{"class":1455},[383,2686,1521],{"class":1451},[383,2688,1859],{"class":434},[383,2690,2691],{"class":1556}," token",[383,2693,1357],{"class":434},[383,2695,1452],{"class":1451},[383,2697,2597],{"class":1455},[383,2699,1521],{"class":1451},[383,2701,1445],{"class":434},[383,2703,1528],{"class":412},[383,2705,2707],{"class":385,"line":2706},22,[383,2708,420],{"emptyLinePlaceholder":419},[383,2710,2712],{"class":385,"line":2711},23,[383,2713,2714],{"class":389},"\u002F\u002F Confirm email address change (from link parameters)\n",[383,2716,2718,2720,2722,2724,2726,2728,2731,2733,2735,2737,2739,2741,2743,2745,2747,2749,2751,2753,2755,2757,2759,2762,2764,2766,2769,2771,2773],{"class":385,"line":2717},24,[383,2719,1909],{"class":1435},[383,2721,401],{"class":412},[383,2723,372],{"class":434},[383,2725,437],{"class":412},[383,2727,372],{"class":434},[383,2729,2730],{"class":408},"confirmEmail",[383,2732,921],{"class":412},[383,2734,2138],{"class":434},[383,2736,2395],{"class":1556},[383,2738,1357],{"class":434},[383,2740,1452],{"class":1451},[383,2742,2580],{"class":1455},[383,2744,1521],{"class":1451},[383,2746,1859],{"class":434},[383,2748,2691],{"class":1556},[383,2750,1357],{"class":434},[383,2752,1452],{"class":1451},[383,2754,2597],{"class":1455},[383,2756,1521],{"class":1451},[383,2758,1859],{"class":434},[383,2760,2761],{"class":1556}," newEmail",[383,2763,1357],{"class":434},[383,2765,1452],{"class":1451},[383,2767,2768],{"class":1455},"new@example.com",[383,2770,1521],{"class":1451},[383,2772,1445],{"class":434},[383,2774,1528],{"class":412},[383,2776,2778],{"class":385,"line":2777},25,[383,2779,420],{"emptyLinePlaceholder":419},[383,2781,2783],{"class":385,"line":2782},26,[383,2784,2785],{"class":389},"\u002F\u002F Re-send verification email\n",[383,2787,2789,2791,2793,2795,2797,2799,2802,2804,2806,2808,2810],{"class":385,"line":2788},27,[383,2790,1909],{"class":1435},[383,2792,401],{"class":412},[383,2794,372],{"class":434},[383,2796,437],{"class":412},[383,2798,372],{"class":434},[383,2800,2801],{"class":408},"resendVerifyEmail",[383,2803,921],{"class":412},[383,2805,1521],{"class":1451},[383,2807,2580],{"class":1455},[383,2809,1521],{"class":1451},[383,2811,1528],{"class":412},[383,2813,2815,2817,2819,2821,2823,2825,2828,2830,2832,2834,2836],{"class":385,"line":2814},28,[383,2816,1909],{"class":1435},[383,2818,401],{"class":412},[383,2820,372],{"class":434},[383,2822,437],{"class":412},[383,2824,372],{"class":434},[383,2826,2827],{"class":408},"resendVerifyNewEmail",[383,2829,921],{"class":412},[383,2831,1521],{"class":1451},[383,2833,2580],{"class":1455},[383,2835,1521],{"class":1451},[383,2837,1528],{"class":412},[383,2839,2841],{"class":385,"line":2840},29,[383,2842,420],{"emptyLinePlaceholder":419},[383,2844,2846],{"class":385,"line":2845},30,[383,2847,2848],{"class":389},"\u002F\u002F Re-hydrate user from the \u002Fme endpoint (e.g. after updating profile)\n",[383,2850,2852,2854,2856,2858,2860,2862,2865],{"class":385,"line":2851},31,[383,2853,1909],{"class":1435},[383,2855,401],{"class":412},[383,2857,372],{"class":434},[383,2859,437],{"class":412},[383,2861,372],{"class":434},[383,2863,2864],{"class":408},"refreshUser",[383,2866,413],{"class":412},[567,2868],{},[570,2870,2872,2874],{"id":2871},"cwaforms-forms",[354,2873,528],{}," — Forms",[351,2876,2877,2878,2880],{},"Access the structured form view data for ",[354,2879,230],{}," component resources.",[712,2882,2884],{"id":2883},"getformiri",[354,2885,2886],{},"getForm(iri)",[351,2888,2889,2890,2892],{},"Returns a ",[354,2891,581],{}," of the structured form view, keyed by field name:",[374,2894,2896],{"className":376,"code":2895,"language":378,"meta":379,"style":379},"const formView = cwa.forms.getForm('\u002Fcomponent\u002Fforms\u002F018e-...')\n\n\u002F\u002F Access a field's vars\nconst nameField = formView.value?.['contact[name]']\nnameField?.vars.value     \u002F\u002F current value\nnameField?.vars.errors    \u002F\u002F string[]\nnameField?.vars.required  \u002F\u002F boolean\nnameField?.vars.block_prefixes  \u002F\u002F ['form', 'text', '_contact_name'] — for type-specific rendering\n",[354,2897,2898,2930,2934,2939,2969,2987,3003,3018],{"__ignoreMap":379},[383,2899,2900,2902,2905,2907,2909,2911,2914,2916,2919,2921,2923,2926,2928],{"class":385,"line":386},[383,2901,397],{"class":396},[383,2903,2904],{"class":400}," formView",[383,2906,405],{"class":404},[383,2908,401],{"class":412},[383,2910,372],{"class":434},[383,2912,2913],{"class":412},"forms",[383,2915,372],{"class":434},[383,2917,2918],{"class":408},"getForm",[383,2920,921],{"class":412},[383,2922,1521],{"class":1451},[383,2924,2925],{"class":1455},"\u002Fcomponent\u002Fforms\u002F018e-...",[383,2927,1521],{"class":1451},[383,2929,1528],{"class":412},[383,2931,2932],{"class":385,"line":393},[383,2933,420],{"emptyLinePlaceholder":419},[383,2935,2936],{"class":385,"line":416},[383,2937,2938],{"class":389},"\u002F\u002F Access a field's vars\n",[383,2940,2941,2943,2946,2948,2950,2952,2954,2956,2959,2961,2964,2966],{"class":385,"line":423},[383,2942,397],{"class":396},[383,2944,2945],{"class":400}," nameField",[383,2947,405],{"class":404},[383,2949,2904],{"class":412},[383,2951,372],{"class":434},[383,2953,942],{"class":412},[383,2955,945],{"class":434},[383,2957,2958],{"class":412},"[",[383,2960,1521],{"class":1451},[383,2962,2963],{"class":1455},"contact[name]",[383,2965,1521],{"class":1451},[383,2967,2968],{"class":412},"]\n",[383,2970,2971,2974,2976,2979,2981,2984],{"class":385,"line":429},[383,2972,2973],{"class":412},"nameField",[383,2975,945],{"class":434},[383,2977,2978],{"class":412},"vars",[383,2980,372],{"class":434},[383,2982,2983],{"class":412},"value     ",[383,2985,2986],{"class":389},"\u002F\u002F current value\n",[383,2988,2989,2991,2993,2995,2997,3000],{"class":385,"line":853},[383,2990,2973],{"class":412},[383,2992,945],{"class":434},[383,2994,2978],{"class":412},[383,2996,372],{"class":434},[383,2998,2999],{"class":412},"errors    ",[383,3001,3002],{"class":389},"\u002F\u002F string[]\n",[383,3004,3005,3007,3009,3011,3013,3016],{"class":385,"line":858},[383,3006,2973],{"class":412},[383,3008,945],{"class":434},[383,3010,2978],{"class":412},[383,3012,372],{"class":434},[383,3014,3015],{"class":412},"required  ",[383,3017,2191],{"class":389},[383,3019,3020,3022,3024,3026,3028,3031],{"class":385,"line":875},[383,3021,2973],{"class":412},[383,3023,945],{"class":434},[383,3025,2978],{"class":412},[383,3027,372],{"class":434},[383,3029,3030],{"class":412},"block_prefixes  ",[383,3032,3033],{"class":389},"\u002F\u002F ['form', 'text', '_contact_name'] — for type-specific rendering\n",[712,3035,3037],{"id":3036},"getformviewerrorsformiri-field",[354,3038,3039],{},"getFormViewErrors(formIri, field)",[351,3041,3042,3043,3046],{},"Convenience computed that returns the error array for a specific field, or ",[354,3044,3045],{},"undefined"," if there are none:",[374,3048,3050],{"className":376,"code":3049,"language":378,"meta":379,"style":379},"const nameErrors = cwa.forms.getFormViewErrors('\u002Fcomponent\u002Fforms\u002F018e-...', 'contact[name]')\n\u002F\u002F nameErrors.value → ['This field is required'] or undefined\n",[354,3051,3052,3090],{"__ignoreMap":379},[383,3053,3054,3056,3059,3061,3063,3065,3067,3069,3072,3074,3076,3078,3080,3082,3084,3086,3088],{"class":385,"line":386},[383,3055,397],{"class":396},[383,3057,3058],{"class":400}," nameErrors",[383,3060,405],{"class":404},[383,3062,401],{"class":412},[383,3064,372],{"class":434},[383,3066,2913],{"class":412},[383,3068,372],{"class":434},[383,3070,3071],{"class":408},"getFormViewErrors",[383,3073,921],{"class":412},[383,3075,1521],{"class":1451},[383,3077,2925],{"class":1455},[383,3079,1521],{"class":1451},[383,3081,1859],{"class":434},[383,3083,1452],{"class":1451},[383,3085,2963],{"class":1455},[383,3087,1521],{"class":1451},[383,3089,1528],{"class":412},[383,3091,3092],{"class":385,"line":393},[383,3093,3094],{"class":389},"\u002F\u002F nameErrors.value → ['This field is required'] or undefined\n",[567,3096],{},[570,3098,3100,3102],{"id":3099},"cwaadmin-admin",[354,3101,542],{}," — Admin",[351,3104,3105],{},"Controls admin edit mode and the component selection stack. Mostly used internally, but exposed for custom admin UIs.",[374,3107,3109],{"className":376,"code":3108,"language":378,"meta":379,"style":379},"cwa.admin.isEditing.value        \u002F\u002F boolean — whether the admin panel is open in edit mode\ncwa.admin.toggleEdit(true)       \u002F\u002F open edit mode\ncwa.admin.toggleEdit(false)      \u002F\u002F close edit mode\ncwa.admin.toggleEdit()           \u002F\u002F toggle\ncwa.admin.emptyStack()           \u002F\u002F clear the selected component stack\ncwa.admin.emitRedraw()           \u002F\u002F force re-render of the component overlay\n",[354,3110,3111,3133,3158,3181,3199,3217],{"__ignoreMap":379},[383,3112,3113,3115,3117,3120,3122,3125,3127,3130],{"class":385,"line":386},[383,3114,725],{"class":412},[383,3116,372],{"class":434},[383,3118,3119],{"class":412},"admin",[383,3121,372],{"class":434},[383,3123,3124],{"class":412},"isEditing",[383,3126,372],{"class":434},[383,3128,3129],{"class":412},"value        ",[383,3131,3132],{"class":389},"\u002F\u002F boolean — whether the admin panel is open in edit mode\n",[383,3134,3135,3137,3139,3141,3143,3146,3148,3152,3155],{"class":385,"line":393},[383,3136,725],{"class":412},[383,3138,372],{"class":434},[383,3140,3119],{"class":412},[383,3142,372],{"class":434},[383,3144,3145],{"class":408},"toggleEdit",[383,3147,921],{"class":412},[383,3149,3151],{"class":3150},"swWMF","true",[383,3153,3154],{"class":412},")       ",[383,3156,3157],{"class":389},"\u002F\u002F open edit mode\n",[383,3159,3160,3162,3164,3166,3168,3170,3172,3175,3178],{"class":385,"line":416},[383,3161,725],{"class":412},[383,3163,372],{"class":434},[383,3165,3119],{"class":412},[383,3167,372],{"class":434},[383,3169,3145],{"class":408},[383,3171,921],{"class":412},[383,3173,3174],{"class":3150},"false",[383,3176,3177],{"class":412},")      ",[383,3179,3180],{"class":389},"\u002F\u002F close edit mode\n",[383,3182,3183,3185,3187,3189,3191,3193,3196],{"class":385,"line":423},[383,3184,725],{"class":412},[383,3186,372],{"class":434},[383,3188,3119],{"class":412},[383,3190,372],{"class":434},[383,3192,3145],{"class":408},[383,3194,3195],{"class":412},"()           ",[383,3197,3198],{"class":389},"\u002F\u002F toggle\n",[383,3200,3201,3203,3205,3207,3209,3212,3214],{"class":385,"line":429},[383,3202,725],{"class":412},[383,3204,372],{"class":434},[383,3206,3119],{"class":412},[383,3208,372],{"class":434},[383,3210,3211],{"class":408},"emptyStack",[383,3213,3195],{"class":412},[383,3215,3216],{"class":389},"\u002F\u002F clear the selected component stack\n",[383,3218,3219,3221,3223,3225,3227,3230,3232],{"class":385,"line":853},[383,3220,725],{"class":412},[383,3222,372],{"class":434},[383,3224,3119],{"class":412},[383,3226,372],{"class":434},[383,3228,3229],{"class":408},"emitRedraw",[383,3231,3195],{"class":412},[383,3233,3234],{"class":389},"\u002F\u002F force re-render of the component overlay\n",[712,3236,3238],{"id":3237},"navigation-guard","Navigation Guard",[351,3240,3241],{},"The admin tracks unsaved changes and shows a confirmation dialog on navigate:",[374,3243,3245],{"className":376,"code":3244,"language":378,"meta":379,"style":379},"cwa.navigationDisabled.value                    \u002F\u002F boolean\ncwa.adminNavigationGuardFn                      \u002F\u002F pass to router.beforeEach\n",[354,3246,3247,3263],{"__ignoreMap":379},[383,3248,3249,3251,3253,3256,3258,3261],{"class":385,"line":386},[383,3250,725],{"class":412},[383,3252,372],{"class":434},[383,3254,3255],{"class":412},"navigationDisabled",[383,3257,372],{"class":434},[383,3259,3260],{"class":412},"value                    ",[383,3262,2191],{"class":389},[383,3264,3265,3267,3269,3272],{"class":385,"line":393},[383,3266,725],{"class":412},[383,3268,372],{"class":434},[383,3270,3271],{"class":412},"adminNavigationGuardFn                      ",[383,3273,3274],{"class":389},"\u002F\u002F pass to router.beforeEach\n",[567,3276],{},[570,3278,3280,3282],{"id":3279},"cwasiteconfig-siteconfig",[354,3281,557],{}," — SiteConfig",[351,3284,3285],{},"Site-wide settings persisted in the API and cached in the Pinia store.",[374,3287,3289],{"className":376,"code":3288,"language":378,"meta":379,"style":379},"cwa.siteConfig.config           \u002F\u002F the resolved config object (ComputedRef via store)\ncwa.siteConfig.savedSiteConfig  \u002F\u002F the server-persisted config (before any unsaved changes)\ncwa.siteConfig.isLoading        \u002F\u002F boolean\n\n\u002F\u002F Load or refresh from the API\nawait cwa.siteConfig.loadConfig()\n\n\u002F\u002F Save changed keys (only changed values are PATCHed)\ncwa.siteConfig.saveConfig({\n    siteName: 'My New Site Name',\n    robotsEnabled: false\n})\n",[354,3290,3291,3308,3324,3339,3343,3348,3365,3369,3374,3391,3407,3417],{"__ignoreMap":379},[383,3292,3293,3295,3297,3300,3302,3305],{"class":385,"line":386},[383,3294,725],{"class":412},[383,3296,372],{"class":434},[383,3298,3299],{"class":412},"siteConfig",[383,3301,372],{"class":434},[383,3303,3304],{"class":412},"config           ",[383,3306,3307],{"class":389},"\u002F\u002F the resolved config object (ComputedRef via store)\n",[383,3309,3310,3312,3314,3316,3318,3321],{"class":385,"line":393},[383,3311,725],{"class":412},[383,3313,372],{"class":434},[383,3315,3299],{"class":412},[383,3317,372],{"class":434},[383,3319,3320],{"class":412},"savedSiteConfig  ",[383,3322,3323],{"class":389},"\u002F\u002F the server-persisted config (before any unsaved changes)\n",[383,3325,3326,3328,3330,3332,3334,3337],{"class":385,"line":416},[383,3327,725],{"class":412},[383,3329,372],{"class":434},[383,3331,3299],{"class":412},[383,3333,372],{"class":434},[383,3335,3336],{"class":412},"isLoading        ",[383,3338,2191],{"class":389},[383,3340,3341],{"class":385,"line":423},[383,3342,420],{"emptyLinePlaceholder":419},[383,3344,3345],{"class":385,"line":429},[383,3346,3347],{"class":389},"\u002F\u002F Load or refresh from the API\n",[383,3349,3350,3352,3354,3356,3358,3360,3363],{"class":385,"line":853},[383,3351,1909],{"class":1435},[383,3353,401],{"class":412},[383,3355,372],{"class":434},[383,3357,3299],{"class":412},[383,3359,372],{"class":434},[383,3361,3362],{"class":408},"loadConfig",[383,3364,413],{"class":412},[383,3366,3367],{"class":385,"line":858},[383,3368,420],{"emptyLinePlaceholder":419},[383,3370,3371],{"class":385,"line":875},[383,3372,3373],{"class":389},"\u002F\u002F Save changed keys (only changed values are PATCHed)\n",[383,3375,3376,3378,3380,3382,3384,3387,3389],{"class":385,"line":1724},[383,3377,725],{"class":412},[383,3379,372],{"class":434},[383,3381,3299],{"class":412},[383,3383,372],{"class":434},[383,3385,3386],{"class":408},"saveConfig",[383,3388,921],{"class":412},[383,3390,1926],{"class":434},[383,3392,3393,3396,3398,3400,3403,3405],{"class":385,"line":1730},[383,3394,3395],{"class":1556},"    siteName",[383,3397,1357],{"class":434},[383,3399,1452],{"class":1451},[383,3401,3402],{"class":1455},"My New Site Name",[383,3404,1521],{"class":1451},[383,3406,1943],{"class":434},[383,3408,3409,3412,3414],{"class":385,"line":2513},[383,3410,3411],{"class":1556},"    robotsEnabled",[383,3413,1357],{"class":434},[383,3415,3416],{"class":3150}," false\n",[383,3418,3419,3421],{"class":385,"line":2539},[383,3420,1612],{"class":434},[383,3422,1528],{"class":412},[567,3424],{},[570,3426,3428,3429],{"id":3427},"top-level-methods-on-cwa","Top-Level Methods on ",[354,3430,725],{},[351,3432,3433],{},"These are lower-level fetch primitives. Most application code uses the composables instead.",[374,3435,3437],{"className":376,"code":3436,"language":378,"meta":379,"style":379},"\u002F\u002F Fetch a specific resource by IRI\ncwa.fetchResource({ path: '\u002Fcomponent\u002Ftitles\u002F018e-...', isPrimary: false })\n\n\u002F\u002F Fetch the route manifest for a given Vue Router route\ncwa.fetchRoute(route)\n\n\u002F\u002F Generic fetch (used internally)\ncwa.fetch(event)\n\n\u002F\u002F Cancel the current primary page fetch\ncwa.clearPrimaryFetch()\n\n\u002F\u002F Get the API Platform documentation (for component metadata)\nawait cwa.getApiDocumentation()\nawait cwa.getComponentMetadata(refresh, includePosition)\n\n\u002F\u002F Access the resolved API URL\ncwa.apiUrlBase   \u002F\u002F string\n\n\u002F\u002F Access the module's nuxt.config registrations\ncwa.resourcesConfig    \u002F\u002F the cwa.resources: {} config object\ncwa.layoutsConfig      \u002F\u002F the cwa.layouts: {} config object\ncwa.pagesConfig        \u002F\u002F the cwa.pages: {} config object\ncwa.pageDataConfig     \u002F\u002F the cwa.pageData: {} config object\n",[354,3438,3439,3444,3482,3486,3491,3503,3507,3512,3523,3527,3532,3543,3547,3552,3565,3584,3588,3593,3605,3609,3614,3626,3638,3650],{"__ignoreMap":379},[383,3440,3441],{"class":385,"line":386},[383,3442,3443],{"class":389},"\u002F\u002F Fetch a specific resource by IRI\n",[383,3445,3446,3448,3450,3453,3455,3457,3460,3462,3464,3466,3468,3470,3473,3475,3478,3480],{"class":385,"line":393},[383,3447,725],{"class":412},[383,3449,372],{"class":434},[383,3451,3452],{"class":408},"fetchResource",[383,3454,921],{"class":412},[383,3456,2138],{"class":434},[383,3458,3459],{"class":1556}," path",[383,3461,1357],{"class":434},[383,3463,1452],{"class":1451},[383,3465,1654],{"class":1455},[383,3467,1521],{"class":1451},[383,3469,1859],{"class":434},[383,3471,3472],{"class":1556}," isPrimary",[383,3474,1357],{"class":434},[383,3476,3477],{"class":3150}," false",[383,3479,1445],{"class":434},[383,3481,1528],{"class":412},[383,3483,3484],{"class":385,"line":416},[383,3485,420],{"emptyLinePlaceholder":419},[383,3487,3488],{"class":385,"line":423},[383,3489,3490],{"class":389},"\u002F\u002F Fetch the route manifest for a given Vue Router route\n",[383,3492,3493,3495,3497,3500],{"class":385,"line":429},[383,3494,725],{"class":412},[383,3496,372],{"class":434},[383,3498,3499],{"class":408},"fetchRoute",[383,3501,3502],{"class":412},"(route)\n",[383,3504,3505],{"class":385,"line":853},[383,3506,420],{"emptyLinePlaceholder":419},[383,3508,3509],{"class":385,"line":858},[383,3510,3511],{"class":389},"\u002F\u002F Generic fetch (used internally)\n",[383,3513,3514,3516,3518,3521],{"class":385,"line":875},[383,3515,725],{"class":412},[383,3517,372],{"class":434},[383,3519,3520],{"class":408},"fetch",[383,3522,2207],{"class":412},[383,3524,3525],{"class":385,"line":1724},[383,3526,420],{"emptyLinePlaceholder":419},[383,3528,3529],{"class":385,"line":1730},[383,3530,3531],{"class":389},"\u002F\u002F Cancel the current primary page fetch\n",[383,3533,3534,3536,3538,3541],{"class":385,"line":2513},[383,3535,725],{"class":412},[383,3537,372],{"class":434},[383,3539,3540],{"class":408},"clearPrimaryFetch",[383,3542,413],{"class":412},[383,3544,3545],{"class":385,"line":2539},[383,3546,420],{"emptyLinePlaceholder":419},[383,3548,3549],{"class":385,"line":2544},[383,3550,3551],{"class":389},"\u002F\u002F Get the API Platform documentation (for component metadata)\n",[383,3553,3554,3556,3558,3560,3563],{"class":385,"line":2550},[383,3555,1909],{"class":1435},[383,3557,401],{"class":412},[383,3559,372],{"class":434},[383,3561,3562],{"class":408},"getApiDocumentation",[383,3564,413],{"class":412},[383,3566,3567,3569,3571,3573,3576,3579,3581],{"class":385,"line":2570},[383,3568,1909],{"class":1435},[383,3570,401],{"class":412},[383,3572,372],{"class":434},[383,3574,3575],{"class":408},"getComponentMetadata",[383,3577,3578],{"class":412},"(refresh",[383,3580,1859],{"class":434},[383,3582,3583],{"class":412}," includePosition)\n",[383,3585,3586],{"class":385,"line":2587},[383,3587,420],{"emptyLinePlaceholder":419},[383,3589,3590],{"class":385,"line":2604},[383,3591,3592],{"class":389},"\u002F\u002F Access the resolved API URL\n",[383,3594,3595,3597,3599,3602],{"class":385,"line":2641},[383,3596,725],{"class":412},[383,3598,372],{"class":434},[383,3600,3601],{"class":412},"apiUrlBase   ",[383,3603,3604],{"class":389},"\u002F\u002F string\n",[383,3606,3607],{"class":385,"line":2648},[383,3608,420],{"emptyLinePlaceholder":419},[383,3610,3611],{"class":385,"line":2653},[383,3612,3613],{"class":389},"\u002F\u002F Access the module's nuxt.config registrations\n",[383,3615,3616,3618,3620,3623],{"class":385,"line":2659},[383,3617,725],{"class":412},[383,3619,372],{"class":434},[383,3621,3622],{"class":412},"resourcesConfig    ",[383,3624,3625],{"class":389},"\u002F\u002F the cwa.resources: {} config object\n",[383,3627,3628,3630,3632,3635],{"class":385,"line":2706},[383,3629,725],{"class":412},[383,3631,372],{"class":434},[383,3633,3634],{"class":412},"layoutsConfig      ",[383,3636,3637],{"class":389},"\u002F\u002F the cwa.layouts: {} config object\n",[383,3639,3640,3642,3644,3647],{"class":385,"line":2711},[383,3641,725],{"class":412},[383,3643,372],{"class":434},[383,3645,3646],{"class":412},"pagesConfig        ",[383,3648,3649],{"class":389},"\u002F\u002F the cwa.pages: {} config object\n",[383,3651,3652,3654,3656,3659],{"class":385,"line":2717},[383,3653,725],{"class":412},[383,3655,372],{"class":434},[383,3657,3658],{"class":412},"pageDataConfig     ",[383,3660,3661],{"class":389},"\u002F\u002F the cwa.pageData: {} config object\n",[567,3663],{},[570,3665,3667],{"id":3666},"common-patterns","Common Patterns",[712,3669,3671],{"id":3670},"auth-conditional-rendering","Auth-conditional rendering",[351,3673,3674,3675,3678],{},"Always wrap in ",[354,3676,3677],{},"\u003CClientOnly>"," — auth state is only available after client-side hydration:",[374,3680,3683],{"className":3681,"code":3682,"language":1456,"meta":379,"style":379},"language-vue shiki shiki-themes github-light github-dark material-theme-palenight","\u003CClientOnly>\n    \u003CUserMenu v-if=\"$cwa.auth.signedIn.value\" \u002F>\n    \u003CNuxtLink v-else to=\"\u002Flogin\">Sign in\u003C\u002FNuxtLink>\n\u003C\u002FClientOnly>\n",[354,3684,3685,3696,3701,3706],{"__ignoreMap":379},[383,3686,3687,3689,3693],{"class":385,"line":386},[383,3688,1498],{"class":434},[383,3690,3692],{"class":3691},"s-h7I","ClientOnly",[383,3694,3695],{"class":434},">\n",[383,3697,3698],{"class":385,"line":393},[383,3699,3700],{"class":412},"    \u003CUserMenu v-if=\"$cwa.auth.signedIn.value\" \u002F>\n",[383,3702,3703],{"class":385,"line":416},[383,3704,3705],{"class":412},"    \u003CNuxtLink v-else to=\"\u002Flogin\">Sign in\u003C\u002FNuxtLink>\n",[383,3707,3708,3711,3713],{"class":385,"line":423},[383,3709,3710],{"class":434},"\u003C\u002F",[383,3712,3692],{"class":3691},[383,3714,3695],{"class":434},[712,3716,3718],{"id":3717},"accessing-the-current-page-title","Accessing the current page title",[374,3720,3722],{"className":376,"code":3721,"language":378,"meta":379,"style":379},"const pageTitle = computed(() =>\n    cwa.resources.pageData.value?.data?.title\n    ?? cwa.resources.page.value?.data?.title\n    ?? ''\n)\n",[354,3723,3724,3742,3767,3794,3801],{"__ignoreMap":379},[383,3725,3726,3728,3731,3733,3735,3737,3739],{"class":385,"line":386},[383,3727,397],{"class":396},[383,3729,3730],{"class":400}," pageTitle",[383,3732,405],{"class":404},[383,3734,918],{"class":408},[383,3736,921],{"class":412},[383,3738,924],{"class":434},[383,3740,3741],{"class":396}," =>\n",[383,3743,3744,3747,3749,3751,3753,3755,3757,3759,3761,3763,3765],{"class":385,"line":393},[383,3745,3746],{"class":412},"    cwa",[383,3748,372],{"class":434},[383,3750,730],{"class":412},[383,3752,372],{"class":434},[383,3754,637],{"class":412},[383,3756,372],{"class":434},[383,3758,942],{"class":412},[383,3760,945],{"class":434},[383,3762,948],{"class":412},[383,3764,945],{"class":434},[383,3766,1676],{"class":412},[383,3768,3769,3772,3774,3776,3778,3780,3782,3784,3786,3788,3790,3792],{"class":385,"line":416},[383,3770,3771],{"class":404},"    ??",[383,3773,401],{"class":412},[383,3775,372],{"class":434},[383,3777,730],{"class":412},[383,3779,372],{"class":434},[383,3781,634],{"class":412},[383,3783,372],{"class":434},[383,3785,942],{"class":412},[383,3787,945],{"class":434},[383,3789,948],{"class":412},[383,3791,945],{"class":434},[383,3793,1676],{"class":412},[383,3795,3796,3798],{"class":385,"line":423},[383,3797,3771],{"class":404},[383,3799,3800],{"class":1451}," ''\n",[383,3802,3803],{"class":385,"line":429},[383,3804,1528],{"class":412},[712,3806,3808],{"id":3807},"checking-load-state-before-rendering","Checking load state before rendering",[374,3810,3812],{"className":376,"code":3811,"language":378,"meta":379,"style":379},"const isReady = computed(() =>\n    !cwa.resources.isLoading.value && !!cwa.resources.page.value?.data\n)\n",[354,3813,3814,3831,3877],{"__ignoreMap":379},[383,3815,3816,3818,3821,3823,3825,3827,3829],{"class":385,"line":386},[383,3817,397],{"class":396},[383,3819,3820],{"class":400}," isReady",[383,3822,405],{"class":404},[383,3824,918],{"class":408},[383,3826,921],{"class":412},[383,3828,924],{"class":434},[383,3830,3741],{"class":396},[383,3832,3833,3836,3838,3840,3842,3844,3847,3849,3852,3855,3858,3860,3862,3864,3866,3868,3870,3872,3874],{"class":385,"line":393},[383,3834,3835],{"class":404},"    !",[383,3837,725],{"class":412},[383,3839,372],{"class":434},[383,3841,730],{"class":412},[383,3843,372],{"class":434},[383,3845,3846],{"class":412},"isLoading",[383,3848,372],{"class":434},[383,3850,3851],{"class":412},"value ",[383,3853,3854],{"class":404},"&&",[383,3856,3857],{"class":404}," !!",[383,3859,725],{"class":412},[383,3861,372],{"class":434},[383,3863,730],{"class":412},[383,3865,372],{"class":434},[383,3867,634],{"class":412},[383,3869,372],{"class":434},[383,3871,942],{"class":412},[383,3873,945],{"class":434},[383,3875,3876],{"class":412},"data\n",[383,3878,3879],{"class":385,"line":416},[383,3880,1528],{"class":412},[3882,3883,3884],"style",{},"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 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 .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 .scSvc, html code.shiki .scSvc{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#F78C6C}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 .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 .sRCss, html code.shiki .sRCss{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#FFCB6B}html pre.shiki code .sbW4m, html code.shiki .sbW4m{--shiki-light:#005CC5;--shiki-default:#79B8FF;--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 .sBtbT, html code.shiki .sBtbT{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#89DDFF}html pre.shiki code .swWMF, html code.shiki .swWMF{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#FF9CAC}html pre.shiki code .s-h7I, html code.shiki .s-h7I{--shiki-light:#22863A;--shiki-default:#85E89D;--shiki-dark:#F07178}",{"title":379,"searchDepth":393,"depth":393,"links":3886},[3887,3897,3905,3910,3915,3919,3921,3923],{"id":572,"depth":393,"text":3888,"children":3889},"cwa.resources — Resources",[3890,3891,3892,3893,3894,3895,3896],{"id":714,"depth":416,"text":715},{"id":760,"depth":416,"text":761},{"id":1022,"depth":416,"text":1023},{"id":1079,"depth":416,"text":1080},{"id":1617,"depth":416,"text":1618},{"id":1755,"depth":416,"text":1756},{"id":1796,"depth":416,"text":1797},{"id":1889,"depth":393,"text":3898,"children":3899},"cwa.resourcesManager — ResourcesManager",[3900,3901,3902,3903,3904],{"id":1898,"depth":416,"text":1899},{"id":1989,"depth":416,"text":1990},{"id":2058,"depth":416,"text":2059},{"id":2105,"depth":416,"text":2106},{"id":2153,"depth":416,"text":2154},{"id":2228,"depth":393,"text":3906,"children":3907},"cwa.auth — Auth",[3908,3909],{"id":2237,"depth":416,"text":2238},{"id":2354,"depth":416,"text":2355},{"id":2871,"depth":393,"text":3911,"children":3912},"cwa.forms — Forms",[3913,3914],{"id":2883,"depth":416,"text":2886},{"id":3036,"depth":416,"text":3039},{"id":3099,"depth":393,"text":3916,"children":3917},"cwa.admin — Admin",[3918],{"id":3237,"depth":416,"text":3238},{"id":3279,"depth":393,"text":3920},"cwa.siteConfig — SiteConfig",{"id":3427,"depth":393,"text":3922},"Top-Level Methods on cwa",{"id":3666,"depth":393,"text":3667,"children":3924},[3925,3926,3927],{"id":3670,"depth":416,"text":3671},{"id":3717,"depth":416,"text":3718},{"id":3807,"depth":416,"text":3808},"Complete reference for the Cwa class — the central access point for resources, auth, forms, admin, and site config.","md",null,{},{"title":204,"description":3928},"jbPg0JIr-Mky203g0R83a-zNonm2wnlOyy0UhROg_sU",[3935,3937],{"title":200,"path":201,"stem":202,"description":3936,"children":-1},"A minimal flex-column layout shell used as a fallback when no layout component is resolved.",{"title":218,"path":219,"stem":220,"description":3938,"children":-1},"Bind a display component to its API resource by IRI — fetch, subscribe, and expose to the admin manager.",1782241281646]