[{"data":1,"prerenderedAt":1233},["ShallowReactive",2],{"navigation":3,"\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form":342,"\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form-surround":1228},[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":344,"badge":345,"body":346,"description":1222,"extension":1223,"links":345,"meta":1224,"navigation":1225,"path":231,"seo":1226,"stem":232,"__hash__":1227},"docs\u002F5.nuxt-module\u002F6.composables\u002F1.component\u002F4.use-cwa-form.md","useCwaForm",null,{"type":347,"value":348,"toc":1214},"minimark",[349,367,429,434,472,476,572,577,583,651,659,663,666,715,724,728,1158,1162,1210],[350,351,352,355,356,360,361,366],"p",{},[353,354,344],"code",{}," manages the submission lifecycle for a ",[357,358,359],"a",{"href":114},"Form component",". It reads the current field values collected by ",[357,362,363],{"href":235},[353,364,365],{},"useCwaFormInput",", submits them to the API, and tracks success and error state reactively.",[368,369,374],"pre",{"className":370,"code":371,"language":372,"meta":373,"style":373},"language-ts shiki shiki-themes github-light github-dark material-theme-palenight","const { submit, submitting, success, formErrors, unregisteredFieldErrors } = useCwaForm(iri)\n","ts","",[353,375,376],{"__ignoreMap":373},[377,378,381,385,389,393,396,399,401,404,406,409,411,414,417,421,425],"span",{"class":379,"line":380},"line",1,[377,382,384],{"class":383},"swB56","const",[377,386,388],{"class":387},"sOvfz"," {",[377,390,392],{"class":391},"sc2zw"," submit",[377,394,395],{"class":387},",",[377,397,398],{"class":391}," submitting",[377,400,395],{"class":387},[377,402,403],{"class":391}," success",[377,405,395],{"class":387},[377,407,408],{"class":391}," formErrors",[377,410,395],{"class":387},[377,412,413],{"class":391}," unregisteredFieldErrors",[377,415,416],{"class":387}," }",[377,418,420],{"class":419},"sVlFx"," =",[377,422,424],{"class":423},"sKpYG"," useCwaForm",[377,426,428],{"class":427},"sPB8G","(iri)\n",[430,431,433],"h2",{"id":432},"parameters","Parameters",[435,436,437,453],"table",{},[438,439,440],"thead",{},[441,442,443,447,450],"tr",{},[444,445,446],"th",{},"Parameter",[444,448,449],{},"Type",[444,451,452],{},"Description",[454,455,456],"tbody",{},[441,457,458,464,469],{},[459,460,461],"td",{},[353,462,463],{},"iri",[459,465,466],{},[353,467,468],{},"Ref\u003Cstring | undefined>",[459,470,471],{},"IRI of the Form component resource",[430,473,475],{"id":474},"return-value","Return value",[435,477,478,489],{},[438,479,480],{},[441,481,482,485,487],{},[444,483,484],{},"Property",[444,486,449],{},[444,488,452],{},[454,490,491,506,524,540,555],{},[441,492,493,498,503],{},[459,494,495],{},[353,496,497],{},"submit",[459,499,500],{},[353,501,502],{},"() => Promise\u003Cvoid>",[459,504,505],{},"Submit the form — see below",[441,507,508,513,518],{},[459,509,510],{},[353,511,512],{},"submitting",[459,514,515],{},[353,516,517],{},"Ref\u003Cboolean>",[459,519,520,523],{},[353,521,522],{},"true"," while the submit request is in-flight",[441,525,526,531,535],{},[459,527,528],{},[353,529,530],{},"success",[459,532,533],{},[353,534,517],{},[459,536,537,539],{},[353,538,522],{}," after a successful submission",[441,541,542,547,552],{},[459,543,544],{},[353,545,546],{},"formErrors",[459,548,549],{},[353,550,551],{},"ComputedRef\u003Cstring[]>",[459,553,554],{},"Root form-level error messages from the API response",[441,556,557,562,566],{},[459,558,559],{},[353,560,561],{},"unregisteredFieldErrors",[459,563,564],{},[353,565,551],{},[459,567,568,569,571],{},"Errors from fields the API returned but no ",[353,570,365],{}," is bound to — prevents silent error loss",[430,573,574],{"id":497},[353,575,576],{},"submit()",[350,578,579,580,582],{},"Calling ",[353,581,576],{},":",[584,585,586,593,604,615,630],"ol",{},[587,588,589,590,592],"li",{},"Reads the current field values for this form from the shared store (populated by each ",[353,591,365],{}," field)",[587,594,595,596,599,600,603],{},"Reads ",[353,597,598],{},"action"," and ",[353,601,602],{},"method"," from the root form vars in the API response",[587,605,606,607,610,611,614],{},"POSTs or PATCHes to the submit endpoint with all field values using Symfony ",[353,608,609],{},"full_name"," keys (e.g. ",[353,612,613],{},"contact_form[name]",")",[587,616,617,618,621,622,625,626,629],{},"On ",[619,620,530],"strong",{}," — sets ",[353,623,624],{},"success = true"," and clears ",[353,627,628],{},"submitAttempted"," (hides errors in all fields)",[587,631,617,632,621,635,638,639,642,643,645,646,599,648,650],{},[619,633,634],{},"failure (422)",[353,636,637],{},"submitAttempted = true"," (triggers ",[353,640,641],{},"displayErrors"," in every ",[353,644,365],{}," for this form); ",[353,647,546],{},[353,649,561],{}," update automatically from the store",[350,652,653,655,656,658],{},[353,654,512],{}," is ",[353,657,522],{}," for the duration of the request.",[430,660,662],{"id":661},"error-display-contract","Error display contract",[350,664,665],{},"Three error sources cover every possible API error:",[435,667,668,678],{},[438,669,670],{},[441,671,672,675],{},[444,673,674],{},"Source",[444,676,677],{},"What it contains",[454,679,680,694,703],{},[441,681,682,691],{},[459,683,684,687,688],{},[353,685,686],{},"useCwaFormInput.displayErrors"," \u002F ",[353,689,690],{},"errors",[459,692,693],{},"Errors for that specific registered field",[441,695,696,700],{},[459,697,698],{},[353,699,546],{},[459,701,702],{},"Root-level form messages (e.g. CSRF, global validation)",[441,704,705,709],{},[459,706,707],{},[353,708,561],{},[459,710,711,712,714],{},"Errors for form fields the API returned but no ",[353,713,365],{}," bound",[350,716,717,718,720,721,723],{},"Always render ",[353,719,561],{}," alongside ",[353,722,546],{}," so API errors are never silently swallowed — the composable already excludes fields that are registered, so there is no duplication.",[430,725,727],{"id":726},"example","Example",[368,729,733],{"className":730,"code":731,"language":732,"meta":373,"style":373},"language-vue shiki shiki-themes github-light github-dark material-theme-palenight","\u003Cscript setup lang=\"ts\">\nconst props = defineProps\u003C{ iri: string }>()\nconst iriRef = toRef(props, 'iri')\n\nconst { resource } = useCwaResource(props)\nconst { submit, submitting, success, formErrors, unregisteredFieldErrors } = useCwaForm(iriRef)\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cform @submit.prevent=\"submit\">\n    \u003C!-- fields rendered by child components using useCwaFormInput -->\n\n    \u003Cp v-for=\"error in formErrors\" :key=\"error\" class=\"text-red-500\">{{ error }}\u003C\u002Fp>\n    \u003Cp v-for=\"error in unregisteredFieldErrors\" :key=\"error\" class=\"text-orange-500\">{{ error }}\u003C\u002Fp>\n\n    \u003Cbutton type=\"submit\" :disabled=\"submitting\">\n      {{ submitting ? 'Sending…' : 'Submit' }}\n    \u003C\u002Fbutton>\n\n    \u003Cp v-if=\"success\">Thank you — your message has been sent.\u003C\u002Fp>\n  \u003C\u002Fform>\n\u003C\u002Ftemplate>\n","vue",[353,734,735,766,798,827,834,854,888,898,903,913,935,942,947,1003,1052,1057,1089,1095,1105,1110,1139,1149],{"__ignoreMap":373},[377,736,737,740,744,748,751,754,758,761,763],{"class":379,"line":380},[377,738,739],{"class":387},"\u003C",[377,741,743],{"class":742},"s-h7I","script",[377,745,747],{"class":746},"sGtlX"," setup",[377,749,750],{"class":746}," lang",[377,752,753],{"class":387},"=",[377,755,757],{"class":756},"seSrl","\"",[377,759,372],{"class":760},"sLL54",[377,762,757],{"class":756},[377,764,765],{"class":387},">\n",[377,767,769,771,774,776,779,782,786,788,792,795],{"class":379,"line":768},2,[377,770,384],{"class":383},[377,772,773],{"class":391}," props",[377,775,420],{"class":419},[377,777,778],{"class":423}," defineProps",[377,780,781],{"class":387},"\u003C{",[377,783,785],{"class":784},"ssFBz"," iri",[377,787,582],{"class":419},[377,789,791],{"class":790},"sbW4m"," string",[377,793,794],{"class":387}," }>",[377,796,797],{"class":427},"()\n",[377,799,801,803,806,808,811,814,816,819,821,824],{"class":379,"line":800},3,[377,802,384],{"class":383},[377,804,805],{"class":391}," iriRef",[377,807,420],{"class":419},[377,809,810],{"class":423}," toRef",[377,812,813],{"class":427},"(props",[377,815,395],{"class":387},[377,817,818],{"class":756}," '",[377,820,463],{"class":760},[377,822,823],{"class":756},"'",[377,825,826],{"class":427},")\n",[377,828,830],{"class":379,"line":829},4,[377,831,833],{"emptyLinePlaceholder":832},true,"\n",[377,835,837,839,841,844,846,848,851],{"class":379,"line":836},5,[377,838,384],{"class":383},[377,840,388],{"class":387},[377,842,843],{"class":391}," resource",[377,845,416],{"class":387},[377,847,420],{"class":419},[377,849,850],{"class":423}," useCwaResource",[377,852,853],{"class":427},"(props)\n",[377,855,857,859,861,863,865,867,869,871,873,875,877,879,881,883,885],{"class":379,"line":856},6,[377,858,384],{"class":383},[377,860,388],{"class":387},[377,862,392],{"class":391},[377,864,395],{"class":387},[377,866,398],{"class":391},[377,868,395],{"class":387},[377,870,403],{"class":391},[377,872,395],{"class":387},[377,874,408],{"class":391},[377,876,395],{"class":387},[377,878,413],{"class":391},[377,880,416],{"class":387},[377,882,420],{"class":419},[377,884,424],{"class":423},[377,886,887],{"class":427},"(iriRef)\n",[377,889,891,894,896],{"class":379,"line":890},7,[377,892,893],{"class":387},"\u003C\u002F",[377,895,743],{"class":742},[377,897,765],{"class":387},[377,899,901],{"class":379,"line":900},8,[377,902,833],{"emptyLinePlaceholder":832},[377,904,906,908,911],{"class":379,"line":905},9,[377,907,739],{"class":387},[377,909,910],{"class":742},"template",[377,912,765],{"class":387},[377,914,916,919,922,925,927,929,931,933],{"class":379,"line":915},10,[377,917,918],{"class":387},"  \u003C",[377,920,921],{"class":742},"form",[377,923,924],{"class":746}," @submit.prevent",[377,926,753],{"class":387},[377,928,757],{"class":756},[377,930,497],{"class":760},[377,932,757],{"class":756},[377,934,765],{"class":387},[377,936,938],{"class":379,"line":937},11,[377,939,941],{"class":940},"sTBSN","    \u003C!-- fields rendered by child components using useCwaFormInput -->\n",[377,943,945],{"class":379,"line":944},12,[377,946,833],{"emptyLinePlaceholder":832},[377,948,950,953,955,958,960,962,965,967,970,972,974,977,979,982,984,986,989,991,994,997,999,1001],{"class":379,"line":949},13,[377,951,952],{"class":387},"    \u003C",[377,954,350],{"class":742},[377,956,957],{"class":746}," v-for",[377,959,753],{"class":387},[377,961,757],{"class":756},[377,963,964],{"class":760},"error in formErrors",[377,966,757],{"class":756},[377,968,969],{"class":746}," :key",[377,971,753],{"class":387},[377,973,757],{"class":756},[377,975,976],{"class":760},"error",[377,978,757],{"class":756},[377,980,981],{"class":746}," class",[377,983,753],{"class":387},[377,985,757],{"class":756},[377,987,988],{"class":760},"text-red-500",[377,990,757],{"class":756},[377,992,993],{"class":387},">",[377,995,996],{"class":427},"{{ error }}",[377,998,893],{"class":387},[377,1000,350],{"class":742},[377,1002,765],{"class":387},[377,1004,1006,1008,1010,1012,1014,1016,1019,1021,1023,1025,1027,1029,1031,1033,1035,1037,1040,1042,1044,1046,1048,1050],{"class":379,"line":1005},14,[377,1007,952],{"class":387},[377,1009,350],{"class":742},[377,1011,957],{"class":746},[377,1013,753],{"class":387},[377,1015,757],{"class":756},[377,1017,1018],{"class":760},"error in unregisteredFieldErrors",[377,1020,757],{"class":756},[377,1022,969],{"class":746},[377,1024,753],{"class":387},[377,1026,757],{"class":756},[377,1028,976],{"class":760},[377,1030,757],{"class":756},[377,1032,981],{"class":746},[377,1034,753],{"class":387},[377,1036,757],{"class":756},[377,1038,1039],{"class":760},"text-orange-500",[377,1041,757],{"class":756},[377,1043,993],{"class":387},[377,1045,996],{"class":427},[377,1047,893],{"class":387},[377,1049,350],{"class":742},[377,1051,765],{"class":387},[377,1053,1055],{"class":379,"line":1054},15,[377,1056,833],{"emptyLinePlaceholder":832},[377,1058,1060,1062,1065,1068,1070,1072,1074,1076,1079,1081,1083,1085,1087],{"class":379,"line":1059},16,[377,1061,952],{"class":387},[377,1063,1064],{"class":742},"button",[377,1066,1067],{"class":746}," type",[377,1069,753],{"class":387},[377,1071,757],{"class":756},[377,1073,497],{"class":760},[377,1075,757],{"class":756},[377,1077,1078],{"class":746}," :disabled",[377,1080,753],{"class":387},[377,1082,757],{"class":756},[377,1084,512],{"class":760},[377,1086,757],{"class":756},[377,1088,765],{"class":387},[377,1090,1092],{"class":379,"line":1091},17,[377,1093,1094],{"class":427},"      {{ submitting ? 'Sending…' : 'Submit' }}\n",[377,1096,1098,1101,1103],{"class":379,"line":1097},18,[377,1099,1100],{"class":387},"    \u003C\u002F",[377,1102,1064],{"class":742},[377,1104,765],{"class":387},[377,1106,1108],{"class":379,"line":1107},19,[377,1109,833],{"emptyLinePlaceholder":832},[377,1111,1113,1115,1117,1120,1122,1124,1126,1128,1130,1133,1135,1137],{"class":379,"line":1112},20,[377,1114,952],{"class":387},[377,1116,350],{"class":742},[377,1118,1119],{"class":746}," v-if",[377,1121,753],{"class":387},[377,1123,757],{"class":756},[377,1125,530],{"class":760},[377,1127,757],{"class":756},[377,1129,993],{"class":387},[377,1131,1132],{"class":427},"Thank you — your message has been sent.",[377,1134,893],{"class":387},[377,1136,350],{"class":742},[377,1138,765],{"class":387},[377,1140,1142,1145,1147],{"class":379,"line":1141},21,[377,1143,1144],{"class":387},"  \u003C\u002F",[377,1146,921],{"class":742},[377,1148,765],{"class":387},[377,1150,1152,1154,1156],{"class":379,"line":1151},22,[377,1153,893],{"class":387},[377,1155,910],{"class":742},[377,1157,765],{"class":387},[430,1159,1161],{"id":1160},"notes","Notes",[1163,1164,1165,1174,1182,1203],"ul",{},[587,1166,1167,1169,1170,1173],{},[353,1168,546],{}," reads the root form's ",[353,1171,1172],{},"vars.errors"," from the store — it updates automatically on 422",[587,1175,1176,1178,1179,1181],{},[353,1177,561],{}," iterates all form field views in the store, skipping the root and any key registered via ",[353,1180,365],{},"; useful as a fallback block",[587,1183,1184,1185,1187,1188,1191,1192,1195,1196,1199,1200,1202],{},"The ",[353,1186,628],{}," flag is shared state in ",[353,1189,1190],{},"$cwa.forms"," keyed by IRI — no ",[353,1193,1194],{},"provide","\u002F",[353,1197,1198],{},"inject"," required; all ",[353,1201,365],{}," instances for the same form IRI respond to it automatically",[587,1204,1205,1206,1209],{},"See the ",[357,1207,1208],{"href":302},"Forms guide"," for full field-type examples",[1211,1212,1213],"style",{},"html pre.shiki code .swB56, html code.shiki .swB56{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#C792EA}html pre.shiki code .sOvfz, html code.shiki .sOvfz{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#89DDFF}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 .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s-h7I, html code.shiki .s-h7I{--shiki-light:#22863A;--shiki-default:#85E89D;--shiki-dark:#F07178}html pre.shiki code .sGtlX, html code.shiki .sGtlX{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#C792EA}html pre.shiki code .seSrl, html code.shiki .seSrl{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#89DDFF}html pre.shiki code .sLL54, html code.shiki .sLL54{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#C3E88D}html pre.shiki code .ssFBz, html code.shiki .ssFBz{--shiki-light:#E36209;--shiki-default:#FFAB70;--shiki-dark:#F07178}html pre.shiki code .sbW4m, html code.shiki .sbW4m{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#FFCB6B}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}",{"title":373,"searchDepth":768,"depth":768,"links":1215},[1216,1217,1218,1219,1220,1221],{"id":432,"depth":768,"text":433},{"id":474,"depth":768,"text":475},{"id":497,"depth":768,"text":576},{"id":661,"depth":768,"text":662},{"id":726,"depth":768,"text":727},{"id":1160,"depth":768,"text":1161},"Handle form submission, track in-flight state, and read form-level errors from a CWA Form component resource.","md",{},{"title":230},{"title":344,"description":1222},"xfaeYpE5QZ9cSGto0F_JMkr0G2YAfmgRRB38y-ltJ5w",[1229,1231],{"title":226,"path":227,"stem":228,"description":1230,"children":-1},"Extends useCwaResource for components with file uploads — adds image URL, load state, and Imagine filter variants.",{"title":234,"path":235,"stem":236,"description":1232,"children":-1},"Bind a single Symfony form field to a reactive value, validate on input, and control when errors are displayed.",1782241283674]