[{"data":1,"prerenderedAt":1701},["ShallowReactive",2],{"navigation":3,"\u002Fnuxt-module\u002Fcomposables\u002Fform\u002Fuse-cwa-form-input":553,"\u002Fnuxt-module\u002Fcomposables\u002Fform\u002Fuse-cwa-form-input-surround":1696},[4,22,64,89,215,503],{"title":5,"path":6,"stem":7,"children":8},"Introduction","\u002Fgetting-started","1.getting-started\u002F1.index",[9,10,14,18],{"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},"Key Ideas","\u002Fgetting-started\u002Fkey-ideas","1.getting-started\u002F3.key-ideas",{"title":19,"path":20,"stem":21},"Releases","\u002Fgetting-started\u002Freleases","1.getting-started\u002F4.releases",{"title":23,"path":24,"stem":25,"children":26},"Overview","\u002Fcore-concepts","2.core-concepts\u002F0.index",[27,28,32,36,40,44,48,52,56,60],{"title":23,"path":24,"stem":25},{"title":29,"path":30,"stem":31},"How It All Works","\u002Fcore-concepts\u002Farchitecture","2.core-concepts\u002F1.architecture",{"title":33,"path":34,"stem":35},"The Data Model","\u002Fcore-concepts\u002Fthe-data-model","2.core-concepts\u002F2.the-data-model",{"title":37,"path":38,"stem":39},"Layouts & Pages","\u002Fcore-concepts\u002Flayouts-and-pages","2.core-concepts\u002F3.layouts-and-pages",{"title":41,"path":42,"stem":43},"Dynamic Pages","\u002Fcore-concepts\u002Fdynamic-pages","2.core-concepts\u002F4.dynamic-pages",{"title":45,"path":46,"stem":47},"Components","\u002Fcore-concepts\u002Fcomponents","2.core-concepts\u002F5.components",{"title":49,"path":50,"stem":51},"Draft & Publish Workflow","\u002Fcore-concepts\u002Fdraft-and-publish","2.core-concepts\u002F6.draft-and-publish",{"title":53,"path":54,"stem":55},"The Admin Panel","\u002Fcore-concepts\u002Fadmin-panel","2.core-concepts\u002F7.admin-panel",{"title":57,"path":58,"stem":59},"Caching","\u002Fcore-concepts\u002Fcaching","2.core-concepts\u002F8.caching",{"title":61,"path":62,"stem":63},"Glossary","\u002Fcore-concepts\u002Fglossary","2.core-concepts\u002F9.glossary",{"title":23,"path":65,"stem":66,"children":67},"\u002Fguides","3.guides\u002F0.index",[68,69,73,77,81,85],{"title":23,"path":65,"stem":66},{"title":70,"path":71,"stem":72},"Your First Layout","\u002Fguides\u002Fyour-first-layout","3.guides\u002F1.your-first-layout",{"title":74,"path":75,"stem":76},"Your First Page Template","\u002Fguides\u002Fyour-first-page-template","3.guides\u002F2.your-first-page-template",{"title":78,"path":79,"stem":80},"Your First Component","\u002Fguides\u002Fyour-first-component","3.guides\u002F3.your-first-component",{"title":82,"path":83,"stem":84},"Alternative UI Variants","\u002Fguides\u002Falternative-ui-variants","3.guides\u002F4.alternative-ui-variants",{"title":86,"path":87,"stem":88},"Your First Dynamic Page","\u002Fguides\u002Fyour-first-dynamic-page","3.guides\u002F5.your-first-dynamic-page",{"title":23,"path":90,"stem":91,"children":92},"\u002Fapi","4.api\u002F0.index",[93,94,98,102,120,162,166,170,195,199,203,207,211],{"title":23,"path":90,"stem":91},{"title":95,"path":96,"stem":97},"Bundle Setup","\u002Fapi\u002Fbundle-setup","4.api\u002F02.bundle-setup",{"title":99,"path":100,"stem":101},"Configuration Reference","\u002Fapi\u002Fconfiguration","4.api\u002F03.configuration",{"title":103,"path":104,"stem":105,"children":106,"page":119},"Users","\u002Fapi\u002Fusers","4.api\u002F04.users",[107,111,115],{"title":108,"path":109,"stem":110},"Authentication","\u002Fapi\u002Fusers\u002Fauthentication","4.api\u002F04.users\u002F1.authentication",{"title":112,"path":113,"stem":114},"User Emails","\u002Fapi\u002Fusers\u002Fuser-emails","4.api\u002F04.users\u002F2.user-emails",{"title":116,"path":117,"stem":118},"Access Control","\u002Fapi\u002Fusers\u002Faccess-control","4.api\u002F04.users\u002F3.access-control",false,{"title":45,"path":121,"stem":122,"children":123,"page":119},"\u002Fapi\u002Fcomponents","4.api\u002F05.components",[124,128,149],{"title":125,"path":126,"stem":127},"Creating Components","\u002Fapi\u002Fcomponents\u002Fcreating-components","4.api\u002F05.components\u002F1.creating-components",{"title":129,"path":130,"stem":131,"children":132,"page":119},"Annotations","\u002Fapi\u002Fcomponents\u002Fannotations","4.api\u002F05.components\u002F2.annotations",[133,137,141,145],{"title":134,"path":135,"stem":136},"Publishable","\u002Fapi\u002Fcomponents\u002Fannotations\u002Fpublishable","4.api\u002F05.components\u002F2.annotations\u002F1.publishable",{"title":138,"path":139,"stem":140},"Uploadable","\u002Fapi\u002Fcomponents\u002Fannotations\u002Fuploadable","4.api\u002F05.components\u002F2.annotations\u002F2.uploadable",{"title":142,"path":143,"stem":144},"Timestamped","\u002Fapi\u002Fcomponents\u002Fannotations\u002Ftimestamped","4.api\u002F05.components\u002F2.annotations\u002F3.timestamped",{"title":146,"path":147,"stem":148},"Explicit Allow Only","\u002Fapi\u002Fcomponents\u002Fannotations\u002Fexplicit-allow-only","4.api\u002F05.components\u002F2.annotations\u002F4.explicit-allow-only",{"title":150,"path":151,"stem":152,"children":153,"page":119},"Built Ins","\u002Fapi\u002Fcomponents\u002Fbuilt-ins","4.api\u002F05.components\u002F3.built-ins",[154,158],{"title":155,"path":156,"stem":157},"Collection Component","\u002Fapi\u002Fcomponents\u002Fbuilt-ins\u002Fcollection-component","4.api\u002F05.components\u002F3.built-ins\u002F1.collection-component",{"title":159,"path":160,"stem":161},"Form Component","\u002Fapi\u002Fcomponents\u002Fbuilt-ins\u002Fform-component","4.api\u002F05.components\u002F3.built-ins\u002F2.form-component",{"title":163,"path":164,"stem":165},"Page Data & Nested Pages","\u002Fapi\u002Fdynamic-pages","4.api\u002F06.dynamic-pages",{"title":167,"path":168,"stem":169},"Routes","\u002Fapi\u002Froutes","4.api\u002F07.routes",{"title":171,"path":172,"stem":173,"children":174,"page":119},"Data Fixtures","\u002Fapi\u002Fdata-fixtures","4.api\u002F08.data-fixtures",[175,179,183,187,191],{"title":176,"path":177,"stem":178},"Getting Started with Fixtures","\u002Fapi\u002Fdata-fixtures\u002Fgetting-started","4.api\u002F08.data-fixtures\u002F1.getting-started",{"title":180,"path":181,"stem":182},"Builder Reference","\u002Fapi\u002Fdata-fixtures\u002Fbuilder-reference","4.api\u002F08.data-fixtures\u002F2.builder-reference",{"title":184,"path":185,"stem":186},"Seeding Content","\u002Fapi\u002Fdata-fixtures\u002Fseeding-content","4.api\u002F08.data-fixtures\u002F3.seeding-content",{"title":188,"path":189,"stem":190},"Appending & Multiple Scaffolds","\u002Fapi\u002Fdata-fixtures\u002Fappending","4.api\u002F08.data-fixtures\u002F4.appending",{"title":192,"path":193,"stem":194},"Generating Fixtures","\u002Fapi\u002Fdata-fixtures\u002Fgenerating-fixtures","4.api\u002F08.data-fixtures\u002F5.generating-fixtures",{"title":196,"path":197,"stem":198},"Real-Time (Mercure)","\u002Fapi\u002Freal-time","4.api\u002F09.real-time",{"title":200,"path":201,"stem":202},"HTTP Caching","\u002Fapi\u002Fhttp-caching","4.api\u002F10.http-caching",{"title":204,"path":205,"stem":206},"Orphaned Data","\u002Fapi\u002Forphaned-data","4.api\u002F11.orphaned-data",{"title":208,"path":209,"stem":210},"Console Commands","\u002Fapi\u002Fconsole-commands","4.api\u002F12.console-commands",{"title":212,"path":213,"stem":214},"Debugging & Errors","\u002Fapi\u002Fdebugging","4.api\u002F13.debugging",{"title":23,"path":216,"stem":217,"children":218},"\u002Fnuxt-module","5.nuxt-module\u002F0.index",[219,220,224,237,257,286,307,430,464,467,495,499],{"title":23,"path":216,"stem":217},{"title":221,"path":222,"stem":223},"Module Setup","\u002Fnuxt-module\u002Fmodule-setup","5.nuxt-module\u002F01.module-setup",{"title":225,"path":226,"stem":227,"children":228,"page":119},"Configuration","\u002Fnuxt-module\u002Fconfiguration","5.nuxt-module\u002F02.configuration",[229,233],{"title":230,"path":231,"stem":232},"Nuxt Config","\u002Fnuxt-module\u002Fconfiguration\u002Fnuxt-config","5.nuxt-module\u002F02.configuration\u002F1.nuxt-config",{"title":234,"path":235,"stem":236},"Site Config & SEO","\u002Fnuxt-module\u002Fconfiguration\u002Fsite-config-and-seo","5.nuxt-module\u002F02.configuration\u002F2.site-config-and-seo",{"title":238,"path":239,"stem":240,"children":241,"page":119},"Building Your Ui","\u002Fnuxt-module\u002Fbuilding-your-ui","5.nuxt-module\u002F03.building-your-ui",[242,246,250,253],{"title":243,"path":244,"stem":245},"Layouts","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-layouts","5.nuxt-module\u002F03.building-your-ui\u002F1.creating-layouts",{"title":247,"path":248,"stem":249},"Page Templates","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-page-templates","5.nuxt-module\u002F03.building-your-ui\u002F2.creating-page-templates",{"title":45,"path":251,"stem":252},"\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-components","5.nuxt-module\u002F03.building-your-ui\u002F3.creating-components",{"title":254,"path":255,"stem":256},"CLI Generator","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcwa-cli","5.nuxt-module\u002F03.building-your-ui\u002F4.cwa-cli",{"title":258,"path":259,"stem":260,"children":261,"page":119},"Component Helpers","\u002Fnuxt-module\u002Fcomponent-helpers","5.nuxt-module\u002F04.component-helpers",[262,266,270,274,278,282],{"title":263,"path":264,"stem":265},"Images & Media","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fimages-and-uploads","5.nuxt-module\u002F04.component-helpers\u002F1.images-and-uploads",{"title":267,"path":268,"stem":269},"Collections & Pagination","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fcollections-and-pagination","5.nuxt-module\u002F04.component-helpers\u002F2.collections-and-pagination",{"title":271,"path":272,"stem":273},"HTML Content","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fhtml-content","5.nuxt-module\u002F04.component-helpers\u002F3.html-content",{"title":275,"path":276,"stem":277},"Rich-Text Editor","\u002Fnuxt-module\u002Fcomponent-helpers\u002Frich-text-editor","5.nuxt-module\u002F04.component-helpers\u002F4.rich-text-editor",{"title":279,"path":280,"stem":281},"Real-Time Updates","\u002Fnuxt-module\u002Fcomponent-helpers\u002Freal-time-updates","5.nuxt-module\u002F04.component-helpers\u002F5.real-time-updates",{"title":283,"path":284,"stem":285},"Forms","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fforms","5.nuxt-module\u002F04.component-helpers\u002F6.forms",{"title":287,"path":288,"stem":289,"children":290,"page":119},"Cwa Components","\u002Fnuxt-module\u002Fcwa-components","5.nuxt-module\u002F05.cwa-components",[291,295,299,303],{"title":292,"path":293,"stem":294},"\u003CCwaComponentGroup \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-component-group","5.nuxt-module\u002F05.cwa-components\u002F1.cwa-component-group",{"title":296,"path":297,"stem":298},"\u003CCwaPage \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-page","5.nuxt-module\u002F05.cwa-components\u002F2.cwa-page",{"title":300,"path":301,"stem":302},"\u003CCwaLink \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-link","5.nuxt-module\u002F05.cwa-components\u002F3.cwa-link",{"title":304,"path":305,"stem":306},"\u003CCwaDefaultLayout \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-default-layout","5.nuxt-module\u002F05.cwa-components\u002F5.cwa-default-layout",{"title":308,"path":309,"stem":310,"children":311,"page":119},"Composables","\u002Fnuxt-module\u002Fcomposables","5.nuxt-module\u002F06.composables",[312,315,323,348,368,385,405],{"title":23,"path":313,"stem":314},"\u002Fnuxt-module\u002Fcomposables\u002Foverview","5.nuxt-module\u002F06.composables\u002F0.overview",{"title":316,"path":317,"stem":318,"children":319,"page":119},"Layout","\u002Fnuxt-module\u002Fcomposables\u002Flayout","5.nuxt-module\u002F06.composables\u002F1.layout",[320],{"title":316,"path":321,"stem":322},"\u002Fnuxt-module\u002Fcomposables\u002Flayout\u002Fuse-cwa-layout","5.nuxt-module\u002F06.composables\u002F1.layout\u002F1.use-cwa-layout",{"title":324,"path":325,"stem":326,"children":327,"page":119},"Component","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent","5.nuxt-module\u002F06.composables\u002F2.component",[328,332,336,340,344],{"title":329,"path":330,"stem":331},"Component (recommended)","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-component","5.nuxt-module\u002F06.composables\u002F2.component\u002F1.use-cwa-component",{"title":333,"path":334,"stem":335},"Resource","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-resource","5.nuxt-module\u002F06.composables\u002F2.component\u002F2.use-cwa-resource",{"title":337,"path":338,"stem":339},"File Field","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-file-field","5.nuxt-module\u002F06.composables\u002F2.component\u002F3.use-cwa-file-field",{"title":341,"path":342,"stem":343},"Collection Pagination","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-collection-pagination","5.nuxt-module\u002F06.composables\u002F2.component\u002F4.use-cwa-collection-pagination",{"title":345,"path":346,"stem":347},"Collection Resource (deprecated)","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-collection-resource","5.nuxt-module\u002F06.composables\u002F2.component\u002F9.use-cwa-collection-resource",{"title":349,"path":350,"stem":351,"children":352,"page":119},"Form","\u002Fnuxt-module\u002Fcomposables\u002Fform","5.nuxt-module\u002F06.composables\u002F3.form",[353,356,360,364],{"title":349,"path":354,"stem":355},"\u002Fnuxt-module\u002Fcomposables\u002Fform\u002Fuse-cwa-form","5.nuxt-module\u002F06.composables\u002F3.form\u002F1.use-cwa-form",{"title":357,"path":358,"stem":359},"Form Input","\u002Fnuxt-module\u002Fcomposables\u002Fform\u002Fuse-cwa-form-input","5.nuxt-module\u002F06.composables\u002F3.form\u002F2.use-cwa-form-input",{"title":361,"path":362,"stem":363},"Form Repeated","\u002Fnuxt-module\u002Fcomposables\u002Fform\u002Fuse-cwa-form-repeated","5.nuxt-module\u002F06.composables\u002F3.form\u002F3.use-cwa-form-repeated",{"title":365,"path":366,"stem":367},"Form Collection","\u002Fnuxt-module\u002Fcomposables\u002Fform\u002Fuse-cwa-form-collection","5.nuxt-module\u002F06.composables\u002F3.form\u002F4.use-cwa-form-collection",{"title":369,"path":370,"stem":371,"children":372,"page":119},"Admin Manager","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager","5.nuxt-module\u002F06.composables\u002F4.admin-manager",[373,377,381],{"title":374,"path":375,"stem":376},"Manager Tab","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-resource-manager-tab","5.nuxt-module\u002F06.composables\u002F4.admin-manager\u002F1.use-cwa-resource-manager-tab",{"title":378,"path":379,"stem":380},"Resource Model","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-resource-model","5.nuxt-module\u002F06.composables\u002F4.admin-manager\u002F2.use-cwa-resource-model",{"title":382,"path":383,"stem":384},"Resource Upload","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-resource-upload","5.nuxt-module\u002F06.composables\u002F4.admin-manager\u002F3.use-cwa-resource-upload",{"title":386,"path":387,"stem":388,"children":389,"page":119},"Utilities","\u002Fnuxt-module\u002Fcomposables\u002Futilities","5.nuxt-module\u002F06.composables\u002F5.utilities",[390,394,398,402],{"title":391,"path":392,"stem":393},"Resource Endpoint","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-cwa-resource-endpoint","5.nuxt-module\u002F06.composables\u002F5.utilities\u002F1.use-cwa-resource-endpoint",{"title":395,"path":396,"stem":397},"Query Model","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-query-bound-model","5.nuxt-module\u002F06.composables\u002F5.utilities\u002F2.use-query-bound-model",{"title":399,"path":400,"stem":401},"Resource Route","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-cwa-resource-route","5.nuxt-module\u002F06.composables\u002F5.utilities\u002F3.use-cwa-resource-route",{"title":271,"path":403,"stem":404},"\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-html-content","5.nuxt-module\u002F06.composables\u002F5.utilities\u002F4.use-html-content",{"title":406,"path":407,"stem":408,"children":409,"page":119},"Auth","\u002Fnuxt-module\u002Fcomposables\u002Fauth","5.nuxt-module\u002F06.composables\u002F6.auth",[410,414,418,422,426],{"title":411,"path":412,"stem":413},"Login","\u002Fnuxt-module\u002Fcomposables\u002Fauth\u002Fuse-login","5.nuxt-module\u002F06.composables\u002F6.auth\u002F1.use-login",{"title":415,"path":416,"stem":417},"Forgot Password","\u002Fnuxt-module\u002Fcomposables\u002Fauth\u002Fuse-forgot-password","5.nuxt-module\u002F06.composables\u002F6.auth\u002F2.use-forgot-password",{"title":419,"path":420,"stem":421},"Reset Password","\u002Fnuxt-module\u002Fcomposables\u002Fauth\u002Fuse-reset-password","5.nuxt-module\u002F06.composables\u002F6.auth\u002F3.use-reset-password",{"title":423,"path":424,"stem":425},"Verify Email","\u002Fnuxt-module\u002Fcomposables\u002Fauth\u002Fuse-verify-email","5.nuxt-module\u002F06.composables\u002F6.auth\u002F4.use-verify-email",{"title":427,"path":428,"stem":429},"Resend Verify Email","\u002Fnuxt-module\u002Fcomposables\u002Fauth\u002Fuse-resend-verify-email","5.nuxt-module\u002F06.composables\u002F6.auth\u002F5.use-resend-verify-email",{"title":431,"path":432,"stem":433,"children":434,"page":119},"Cwa Api","\u002Fnuxt-module\u002Fcwa-api","5.nuxt-module\u002F07.cwa-api",[435,438,442,446,449,452,456,460],{"title":23,"path":436,"stem":437},"\u002Fnuxt-module\u002Fcwa-api\u002Foverview","5.nuxt-module\u002F07.cwa-api\u002F1.overview",{"title":439,"path":440,"stem":441},"Resources","\u002Fnuxt-module\u002Fcwa-api\u002Fresources","5.nuxt-module\u002F07.cwa-api\u002F2.resources",{"title":443,"path":444,"stem":445},"Resources Manager","\u002Fnuxt-module\u002Fcwa-api\u002Fresources-manager","5.nuxt-module\u002F07.cwa-api\u002F3.resources-manager",{"title":406,"path":447,"stem":448},"\u002Fnuxt-module\u002Fcwa-api\u002Fauth","5.nuxt-module\u002F07.cwa-api\u002F4.auth",{"title":283,"path":450,"stem":451},"\u002Fnuxt-module\u002Fcwa-api\u002Fforms","5.nuxt-module\u002F07.cwa-api\u002F5.forms",{"title":453,"path":454,"stem":455},"Admin","\u002Fnuxt-module\u002Fcwa-api\u002Fadmin","5.nuxt-module\u002F07.cwa-api\u002F6.admin",{"title":457,"path":458,"stem":459},"Site Config","\u002Fnuxt-module\u002Fcwa-api\u002Fsite-config","5.nuxt-module\u002F07.cwa-api\u002F7.site-config",{"title":461,"path":462,"stem":463},"Orphaned Resources","\u002Fnuxt-module\u002Fcwa-api\u002Forphaned-resources","5.nuxt-module\u002F07.cwa-api\u002F8.orphaned-resources",{"title":108,"path":465,"stem":466},"\u002Fnuxt-module\u002Fauthentication","5.nuxt-module\u002F08.authentication",{"title":468,"path":469,"stem":470,"children":471,"page":119},"Cwa Layer","\u002Fnuxt-module\u002Fcwa-layer","5.nuxt-module\u002F9.cwa-layer",[472,475,479,483,487,491],{"title":23,"path":473,"stem":474},"\u002Fnuxt-module\u002Fcwa-layer\u002Foverview","5.nuxt-module\u002F9.cwa-layer\u002F1.overview",{"title":476,"path":477,"stem":478},"Auth Pages","\u002Fnuxt-module\u002Fcwa-layer\u002Fauth-pages","5.nuxt-module\u002F9.cwa-layer\u002F2.auth-pages",{"title":480,"path":481,"stem":482},"Admin Panel","\u002Fnuxt-module\u002Fcwa-layer\u002Fadmin-panel","5.nuxt-module\u002F9.cwa-layer\u002F3.admin-panel",{"title":484,"path":485,"stem":486},"Styling","\u002Fnuxt-module\u002Fcwa-layer\u002Fstyling","5.nuxt-module\u002F9.cwa-layer\u002F4.styling",{"title":488,"path":489,"stem":490},"Date Pickers","\u002Fnuxt-module\u002Fcwa-layer\u002Fdate-pickers","5.nuxt-module\u002F9.cwa-layer\u002F5.date-pickers",{"title":492,"path":493,"stem":494},"Maintenance","\u002Fnuxt-module\u002Fcwa-layer\u002Fmaintenance","5.nuxt-module\u002F9.cwa-layer\u002F6.maintenance",{"title":496,"path":497,"stem":498},"PWA & Offline","\u002Fnuxt-module\u002Fpwa","5.nuxt-module\u002F91.pwa",{"title":500,"path":501,"stem":502},"Page Caching","\u002Fnuxt-module\u002Fpage-caching","5.nuxt-module\u002F92.page-caching",{"title":504,"path":505,"stem":506,"children":507},"Deploying a CWA Site","\u002Fdeployment","6.deployment\u002F0.index",[508,509,513,517,521,525,529,533,537,541,545,549],{"title":504,"path":505,"stem":506},{"title":510,"path":511,"stem":512},"Docker","\u002Fdeployment\u002Fdocker","6.deployment\u002F1.docker",{"title":514,"path":515,"stem":516},"Kubernetes & Helm","\u002Fdeployment\u002Fkubernetes","6.deployment\u002F2.kubernetes",{"title":518,"path":519,"stem":520},"CI\u002FCD","\u002Fdeployment\u002Fci-cd","6.deployment\u002F3.ci-cd",{"title":522,"path":523,"stem":524},"CI\u002FCD Variables","\u002Fdeployment\u002Fvariables","6.deployment\u002F4.variables",{"title":526,"path":527,"stem":528},"Cloudflare","\u002Fdeployment\u002Fcloudflare","6.deployment\u002F5.cloudflare",{"title":530,"path":531,"stem":532},"Origin Protection","\u002Fdeployment\u002Forigin-protection","6.deployment\u002F5.origin-protection",{"title":534,"path":535,"stem":536},"Load Testing","\u002Fdeployment\u002Fload-testing","6.deployment\u002F6.load-testing",{"title":538,"path":539,"stem":540},"Performance Audit","\u002Fdeployment\u002Fperformance-audit","6.deployment\u002F6.performance-audit",{"title":542,"path":543,"stem":544},"Reading Lighthouse Scores","\u002Fdeployment\u002Freading-lighthouse-scores","6.deployment\u002F6.reading-lighthouse-scores",{"title":546,"path":547,"stem":548},"Faster Functional Tests","\u002Fdeployment\u002Ffaster-functional-tests","6.deployment\u002F7.faster-functional-tests",{"title":550,"path":551,"stem":552},"Troubleshooting","\u002Fdeployment\u002Ftroubleshooting","6.deployment\u002F7.troubleshooting",{"id":554,"title":555,"badge":556,"body":557,"description":1690,"extension":1691,"links":556,"meta":1692,"navigation":1693,"path":358,"seo":1694,"stem":359,"__hash__":1695},"docs\u002F5.nuxt-module\u002F06.composables\u002F3.form\u002F2.use-cwa-form-input.md","useCwaFormInput",null,{"type":558,"value":559,"toc":1678},"minimark",[560,572,659,664,745,749,835,839,1030,1035,1038,1061,1070,1078,1081,1086,1104,1122,1147,1153,1171,1175,1207,1211,1644,1648,1674],[561,562,563,566,567,571],"p",{},[564,565,555],"code",{}," binds a single field inside a ",[568,569,570],"a",{"href":160},"Form component"," to a reactive value and handles per-field validation, error display, and value synchronisation with the shared form store.",[573,574,579],"pre",{"className":575,"code":576,"language":577,"meta":578,"style":578},"language-ts shiki shiki-themes github-light github-dark material-theme-palenight","const { value, vars, errors, valid, validating, displayErrors, onBlur, validate, onInput } = useCwaFormInput(iri, fullName)\n","ts","",[564,580,581],{"__ignoreMap":578},[582,583,586,590,594,598,601,604,606,609,611,614,616,619,621,624,626,629,631,634,636,639,642,646,650,654,656],"span",{"class":584,"line":585},"line",1,[582,587,589],{"class":588},"swB56","const",[582,591,593],{"class":592},"sOvfz"," {",[582,595,597],{"class":596},"sc2zw"," value",[582,599,600],{"class":592},",",[582,602,603],{"class":596}," vars",[582,605,600],{"class":592},[582,607,608],{"class":596}," errors",[582,610,600],{"class":592},[582,612,613],{"class":596}," valid",[582,615,600],{"class":592},[582,617,618],{"class":596}," validating",[582,620,600],{"class":592},[582,622,623],{"class":596}," displayErrors",[582,625,600],{"class":592},[582,627,628],{"class":596}," onBlur",[582,630,600],{"class":592},[582,632,633],{"class":596}," validate",[582,635,600],{"class":592},[582,637,638],{"class":596}," onInput",[582,640,641],{"class":592}," }",[582,643,645],{"class":644},"sVlFx"," =",[582,647,649],{"class":648},"sKpYG"," useCwaFormInput",[582,651,653],{"class":652},"sPB8G","(iri",[582,655,600],{"class":592},[582,657,658],{"class":652}," fullName)\n",[660,661,663],"h2",{"id":662},"signature","Signature",[573,665,667],{"className":575,"code":666,"language":577,"meta":578,"style":578},"useCwaFormInput(\n  iri: Ref\u003Cstring | undefined>,\n  fullName: string,\n  opts?: { blurTrigger?: Ref\u003Cboolean> }\n)\n",[564,668,669,676,701,709,739],{"__ignoreMap":578},[582,670,671,673],{"class":584,"line":585},[582,672,555],{"class":648},[582,674,675],{"class":652},"(\n",[582,677,679,682,685,688,691,695,698],{"class":584,"line":678},2,[582,680,681],{"class":652},"  iri: Ref",[582,683,684],{"class":644},"\u003C",[582,686,687],{"class":652},"string ",[582,689,690],{"class":644},"|",[582,692,694],{"class":693},"sBtbT"," undefined",[582,696,697],{"class":644},">",[582,699,700],{"class":592},",\n",[582,702,704,707],{"class":584,"line":703},3,[582,705,706],{"class":652},"  fullName: string",[582,708,700],{"class":592},[582,710,712,715,718,720,723,726,729,731,734,736],{"class":584,"line":711},4,[582,713,714],{"class":652},"  opts",[582,716,717],{"class":644},"?:",[582,719,593],{"class":592},[582,721,722],{"class":652}," blurTrigger?",[582,724,725],{"class":592},":",[582,727,728],{"class":652}," Ref",[582,730,684],{"class":644},[582,732,733],{"class":652},"boolean",[582,735,697],{"class":644},[582,737,738],{"class":592}," }\n",[582,740,742],{"class":584,"line":741},5,[582,743,744],{"class":652},")\n",[660,746,748],{"id":747},"parameters","Parameters",[750,751,752,768],"table",{},[753,754,755],"thead",{},[756,757,758,762,765],"tr",{},[759,760,761],"th",{},"Parameter",[759,763,764],{},"Type",[759,766,767],{},"Description",[769,770,771,787,810],"tbody",{},[756,772,773,779,784],{},[774,775,776],"td",{},[564,777,778],{},"iri",[774,780,781],{},[564,782,783],{},"Ref\u003Cstring | undefined>",[774,785,786],{},"IRI of the Form component resource",[756,788,789,794,799],{},[774,790,791],{},[564,792,793],{},"fullName",[774,795,796],{},[564,797,798],{},"string",[774,800,801,802,805,806,809],{},"Symfony field ",[564,803,804],{},"full_name"," (e.g. ",[564,807,808],{},"contact_form[name]",")",[756,811,812,817,822],{},[774,813,814],{},[564,815,816],{},"opts",[774,818,819],{},[564,820,821],{},"{ blurTrigger?: Ref\u003Cboolean> }",[774,823,824,825,828,829,834],{},"Optional. When ",[564,826,827],{},"blurTrigger"," is given it replaces this field's own blur state as the error-display trigger — this is how ",[568,830,831],{"href":362},[564,832,833],{},"useCwaFormRepeated"," gates both halves of a pair on a shared signal",[660,836,838],{"id":837},"return-values","Return Values",[750,840,841,852],{},[753,842,843],{},[756,844,845,848,850],{},[759,846,847],{},"Property",[759,849,764],{},[759,851,767],{},[769,853,854,876,905,919,944,961,976,995,1010],{},[756,855,856,861,866],{},[774,857,858],{},[564,859,860],{},"value",[774,862,863],{},[564,864,865],{},"Ref\u003Cany>",[774,867,868,869,872,873],{},"Reactive local value — bind to your ",[564,870,871],{},"\u003Cinput>"," with ",[564,874,875],{},"v-model",[756,877,878,883,888],{},[774,879,880],{},[564,881,882],{},"vars",[774,884,885],{},[564,886,887],{},"ComputedRef",[774,889,890,891,894,895,894,898,894,901,904],{},"Full field vars from the API (",[564,892,893],{},"label",", ",[564,896,897],{},"attr",[564,899,900],{},"errors",[564,902,903],{},"valid",", etc.)",[756,906,907,911,916],{},[774,908,909],{},[564,910,900],{},[774,912,913],{},[564,914,915],{},"ComputedRef\u003Cstring[]>",[774,917,918],{},"Field-level error messages from the API",[756,920,921,925,930],{},[774,922,923],{},[564,924,903],{},[774,926,927],{},[564,928,929],{},"ComputedRef\u003Cboolean | null>",[774,931,932,935,936,939,940,943],{},[564,933,934],{},"true"," = valid, ",[564,937,938],{},"false"," = invalid, ",[564,941,942],{},"null"," = not yet evaluated",[756,945,946,951,956],{},[774,947,948],{},[564,949,950],{},"validating",[774,952,953],{},[564,954,955],{},"Ref\u003Cboolean>",[774,957,958,960],{},[564,959,934],{}," while a validation PATCH for this field is in flight — bind to a trailing spinner",[756,962,963,968,973],{},[774,964,965],{},[564,966,967],{},"displayErrors",[774,969,970],{},[564,971,972],{},"ComputedRef\u003Cboolean>",[774,974,975],{},"Whether errors should be shown — see below",[756,977,978,983,988],{},[774,979,980],{},[564,981,982],{},"onBlur",[774,984,985],{},[564,986,987],{},"() => void",[774,989,990,991,994],{},"Call on ",[564,992,993],{},"@blur"," to enable error display after the user leaves the field. It also starts any pending debounced validation straight away, so the errors shown describe the current value",[756,996,997,1002,1007],{},[774,998,999],{},[564,1000,1001],{},"validate",[774,1003,1004],{},[564,1005,1006],{},"(extraData?) => Promise\u003Cvoid>",[774,1008,1009],{},"Trigger PATCH validation immediately",[756,1011,1012,1017,1021],{},[774,1013,1014],{},[564,1015,1016],{},"onInput",[774,1018,1019],{},[564,1020,987],{},[774,1022,1023,1024,1026,1027],{},"Debounced (300 ms) wrapper around ",[564,1025,1001],{}," — call on ",[564,1028,1029],{},"@input",[660,1031,1033],{"id":1032},"displayerrors",[564,1034,967],{},[561,1036,1037],{},"Errors should be displayed when any of the following is true:",[1039,1040,1041,1048,1051],"ul",{},[1042,1043,1044,1045,1047],"li",{},"The user has blurred the field (",[564,1046,982],{}," was called)",[1042,1049,1050],{},"The field was previously valid and has since become invalid (regression)",[1042,1052,1053,1054,1057,1058,1060],{},"The form has been submitted and failed (",[564,1055,1056],{},"isSubmitAttempted"," is ",[564,1059,934],{}," for this IRI)",[561,1062,1063,1064,1066,1067,1069],{},"With a ",[564,1065,827],{},", the first two rules are replaced: errors wait for the trigger to become ",[564,1068,934],{},", or for a failed submit.",[561,1071,1072,1073,1057,1075,1077],{},"Errors are always hidden while ",[564,1074,950],{},[564,1076,934],{},", so a stale message doesn't flash during revalidation.",[561,1079,1080],{},"Bind it to a conditional wrapper around your error list so errors only surface at the right moment.",[660,1082,1083],{"id":1001},[564,1084,1085],{},"validate()",[561,1087,1088,1089,1092,1093,1097,1098,1100,1101,1103],{},"Sends the form's current values to its ",[564,1090,1091],{},"{iri}\u002Fsubmit"," endpoint via PATCH so the API can validate them and return per-field errors. The body holds ",[1094,1095,1096],"strong",{},"every"," field registered for the form, not only this one, so the API validates the whole form and every field's errors update from the one response. The store is updated automatically, and ",[564,1099,900],{}," \u002F ",[564,1102,903],{}," react accordingly.",[561,1105,1106,1107,1109,1110,1113,1114,1117,1118,1121],{},"This happens for ",[1094,1108,1096],{}," form — the form's own ",[564,1111,1112],{},"method"," only controls the final ",[564,1115,1116],{},"submit()",". The API treats a PATCH to ",[564,1119,1120],{},"\u002Fsubmit"," as a partial submit, so no data is persisted and no success event fires.",[1123,1124,1126],"callout",{"icon":1125},"i-heroicons-information-circle",[561,1127,1128,1129,1132,1133,1136,1137,1140,1141,1143,1144,1146],{},"When the API sets the root-level ",[564,1130,1131],{},"realtime_validate_disabled"," form var — as ",[564,1134,1135],{},"UserLoginType"," and ",[564,1138,1139],{},"PasswordUpdateType"," do — the debounced ",[564,1142,1016],{}," doesn't validate, so credentials aren't PATCHed on every keystroke. An explicit ",[564,1145,1085],{}," call is not gated by it.",[660,1148,1150,1151],{"id":1149},"field-full_name","Field ",[564,1152,804],{},[561,1154,1155,1156,1158,1159,1162,1163,1166,1167,1170],{},"Symfony serialises form fields using their ",[564,1157,804],{},", which follows the pattern ",[564,1160,1161],{},"form_name[field_name]"," (or ",[564,1164,1165],{},"form_name[child][field_name]"," for nested fields). The value comes from ",[564,1168,1169],{},"vars.full_name"," in the form resource response.",[660,1172,1174],{"id":1173},"value-lifecycle","Value Lifecycle",[1039,1176,1177,1184,1190,1204],{},[1042,1178,1179,1180,1183],{},"Initialised from ",[564,1181,1182],{},"vars.value"," (the API's current value for this field)",[1042,1185,1186,1187,1189],{},"Resets to the API value when ",[564,1188,778],{}," changes (e.g. navigating between resources)",[1042,1191,1192,1193,1196,1197,1200,1201],{},"Synced into the form store (",[564,1194,1195],{},"$cwa.forms.setFieldValue()",") so ",[564,1198,1199],{},"useCwaForm.submit()"," can read all fields at once via ",[564,1202,1203],{},"$cwa.forms.getFieldValues()",[1042,1205,1206],{},"Cleared from the store on component unmount",[660,1208,1210],{"id":1209},"example","Example",[573,1212,1216],{"className":1213,"code":1214,"language":1215,"meta":578,"style":578},"language-vue shiki shiki-themes github-light github-dark material-theme-palenight","\u003Cscript setup lang=\"ts\">\nconst props = defineProps\u003C{ iri: string; fullName: string }>()\nconst iriRef = toRef(props, 'iri')\n\nconst { value, vars, errors, displayErrors, onBlur, onInput } = useCwaFormInput(iriRef, props.fullName)\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Clabel :for=\"props.fullName\">{{ vars?.label }}\u003C\u002Flabel>\n\n    \u003Cinput\n      :id=\"props.fullName\"\n      v-model=\"value\"\n      v-bind=\"vars?.attr\"\n      @blur=\"onBlur\"\n      @input=\"onInput\"\n    \u002F>\n\n    \u003Cul v-if=\"displayErrors && errors.length\">\n      \u003Cli v-for=\"error in errors\" :key=\"error\" class=\"text-red-500\">\n        {{ error }}\n      \u003C\u002Fli>\n    \u003C\u002Ful>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n","vue",[564,1217,1218,1248,1289,1316,1322,1369,1379,1384,1394,1405,1436,1441,1449,1464,1478,1493,1507,1521,1527,1532,1553,1599,1605,1615,1625,1635],{"__ignoreMap":578},[582,1219,1220,1222,1226,1230,1233,1236,1240,1243,1245],{"class":584,"line":585},[582,1221,684],{"class":592},[582,1223,1225],{"class":1224},"s-h7I","script",[582,1227,1229],{"class":1228},"sGtlX"," setup",[582,1231,1232],{"class":1228}," lang",[582,1234,1235],{"class":592},"=",[582,1237,1239],{"class":1238},"seSrl","\"",[582,1241,577],{"class":1242},"sLL54",[582,1244,1239],{"class":1238},[582,1246,1247],{"class":592},">\n",[582,1249,1250,1252,1255,1257,1260,1263,1267,1269,1273,1276,1279,1281,1283,1286],{"class":584,"line":678},[582,1251,589],{"class":588},[582,1253,1254],{"class":596}," props",[582,1256,645],{"class":644},[582,1258,1259],{"class":648}," defineProps",[582,1261,1262],{"class":592},"\u003C{",[582,1264,1266],{"class":1265},"ssFBz"," iri",[582,1268,725],{"class":644},[582,1270,1272],{"class":1271},"sbW4m"," string",[582,1274,1275],{"class":592},";",[582,1277,1278],{"class":1265}," fullName",[582,1280,725],{"class":644},[582,1282,1272],{"class":1271},[582,1284,1285],{"class":592}," }>",[582,1287,1288],{"class":652},"()\n",[582,1290,1291,1293,1296,1298,1301,1304,1306,1309,1311,1314],{"class":584,"line":703},[582,1292,589],{"class":588},[582,1294,1295],{"class":596}," iriRef",[582,1297,645],{"class":644},[582,1299,1300],{"class":648}," toRef",[582,1302,1303],{"class":652},"(props",[582,1305,600],{"class":592},[582,1307,1308],{"class":1238}," '",[582,1310,778],{"class":1242},[582,1312,1313],{"class":1238},"'",[582,1315,744],{"class":652},[582,1317,1318],{"class":584,"line":711},[582,1319,1321],{"emptyLinePlaceholder":1320},true,"\n",[582,1323,1324,1326,1328,1330,1332,1334,1336,1338,1340,1342,1344,1346,1348,1350,1352,1354,1356,1359,1361,1363,1366],{"class":584,"line":741},[582,1325,589],{"class":588},[582,1327,593],{"class":592},[582,1329,597],{"class":596},[582,1331,600],{"class":592},[582,1333,603],{"class":596},[582,1335,600],{"class":592},[582,1337,608],{"class":596},[582,1339,600],{"class":592},[582,1341,623],{"class":596},[582,1343,600],{"class":592},[582,1345,628],{"class":596},[582,1347,600],{"class":592},[582,1349,638],{"class":596},[582,1351,641],{"class":592},[582,1353,645],{"class":644},[582,1355,649],{"class":648},[582,1357,1358],{"class":652},"(iriRef",[582,1360,600],{"class":592},[582,1362,1254],{"class":652},[582,1364,1365],{"class":592},".",[582,1367,1368],{"class":652},"fullName)\n",[582,1370,1372,1375,1377],{"class":584,"line":1371},6,[582,1373,1374],{"class":592},"\u003C\u002F",[582,1376,1225],{"class":1224},[582,1378,1247],{"class":592},[582,1380,1382],{"class":584,"line":1381},7,[582,1383,1321],{"emptyLinePlaceholder":1320},[582,1385,1387,1389,1392],{"class":584,"line":1386},8,[582,1388,684],{"class":592},[582,1390,1391],{"class":1224},"template",[582,1393,1247],{"class":592},[582,1395,1397,1400,1403],{"class":584,"line":1396},9,[582,1398,1399],{"class":592},"  \u003C",[582,1401,1402],{"class":1224},"div",[582,1404,1247],{"class":592},[582,1406,1408,1411,1413,1416,1418,1420,1423,1425,1427,1430,1432,1434],{"class":584,"line":1407},10,[582,1409,1410],{"class":592},"    \u003C",[582,1412,893],{"class":1224},[582,1414,1415],{"class":1228}," :for",[582,1417,1235],{"class":592},[582,1419,1239],{"class":1238},[582,1421,1422],{"class":1242},"props.fullName",[582,1424,1239],{"class":1238},[582,1426,697],{"class":592},[582,1428,1429],{"class":652},"{{ vars?.label }}",[582,1431,1374],{"class":592},[582,1433,893],{"class":1224},[582,1435,1247],{"class":592},[582,1437,1439],{"class":584,"line":1438},11,[582,1440,1321],{"emptyLinePlaceholder":1320},[582,1442,1444,1446],{"class":584,"line":1443},12,[582,1445,1410],{"class":592},[582,1447,1448],{"class":1224},"input\n",[582,1450,1452,1455,1457,1459,1461],{"class":584,"line":1451},13,[582,1453,1454],{"class":1228},"      :id",[582,1456,1235],{"class":592},[582,1458,1239],{"class":1238},[582,1460,1422],{"class":1242},[582,1462,1463],{"class":1238},"\"\n",[582,1465,1467,1470,1472,1474,1476],{"class":584,"line":1466},14,[582,1468,1469],{"class":1228},"      v-model",[582,1471,1235],{"class":592},[582,1473,1239],{"class":1238},[582,1475,860],{"class":1242},[582,1477,1463],{"class":1238},[582,1479,1481,1484,1486,1488,1491],{"class":584,"line":1480},15,[582,1482,1483],{"class":1228},"      v-bind",[582,1485,1235],{"class":592},[582,1487,1239],{"class":1238},[582,1489,1490],{"class":1242},"vars?.attr",[582,1492,1463],{"class":1238},[582,1494,1496,1499,1501,1503,1505],{"class":584,"line":1495},16,[582,1497,1498],{"class":1228},"      @blur",[582,1500,1235],{"class":592},[582,1502,1239],{"class":1238},[582,1504,982],{"class":1242},[582,1506,1463],{"class":1238},[582,1508,1510,1513,1515,1517,1519],{"class":584,"line":1509},17,[582,1511,1512],{"class":1228},"      @input",[582,1514,1235],{"class":592},[582,1516,1239],{"class":1238},[582,1518,1016],{"class":1242},[582,1520,1463],{"class":1238},[582,1522,1524],{"class":584,"line":1523},18,[582,1525,1526],{"class":592},"    \u002F>\n",[582,1528,1530],{"class":584,"line":1529},19,[582,1531,1321],{"emptyLinePlaceholder":1320},[582,1533,1535,1537,1539,1542,1544,1546,1549,1551],{"class":584,"line":1534},20,[582,1536,1410],{"class":592},[582,1538,1039],{"class":1224},[582,1540,1541],{"class":1228}," v-if",[582,1543,1235],{"class":592},[582,1545,1239],{"class":1238},[582,1547,1548],{"class":1242},"displayErrors && errors.length",[582,1550,1239],{"class":1238},[582,1552,1247],{"class":592},[582,1554,1556,1559,1561,1564,1566,1568,1571,1573,1576,1578,1580,1583,1585,1588,1590,1592,1595,1597],{"class":584,"line":1555},21,[582,1557,1558],{"class":592},"      \u003C",[582,1560,1042],{"class":1224},[582,1562,1563],{"class":1228}," v-for",[582,1565,1235],{"class":592},[582,1567,1239],{"class":1238},[582,1569,1570],{"class":1242},"error in errors",[582,1572,1239],{"class":1238},[582,1574,1575],{"class":1228}," :key",[582,1577,1235],{"class":592},[582,1579,1239],{"class":1238},[582,1581,1582],{"class":1242},"error",[582,1584,1239],{"class":1238},[582,1586,1587],{"class":1228}," class",[582,1589,1235],{"class":592},[582,1591,1239],{"class":1238},[582,1593,1594],{"class":1242},"text-red-500",[582,1596,1239],{"class":1238},[582,1598,1247],{"class":592},[582,1600,1602],{"class":584,"line":1601},22,[582,1603,1604],{"class":652},"        {{ error }}\n",[582,1606,1608,1611,1613],{"class":584,"line":1607},23,[582,1609,1610],{"class":592},"      \u003C\u002F",[582,1612,1042],{"class":1224},[582,1614,1247],{"class":592},[582,1616,1618,1621,1623],{"class":584,"line":1617},24,[582,1619,1620],{"class":592},"    \u003C\u002F",[582,1622,1039],{"class":1224},[582,1624,1247],{"class":592},[582,1626,1628,1631,1633],{"class":584,"line":1627},25,[582,1629,1630],{"class":592},"  \u003C\u002F",[582,1632,1402],{"class":1224},[582,1634,1247],{"class":592},[582,1636,1638,1640,1642],{"class":584,"line":1637},26,[582,1639,1374],{"class":592},[582,1641,1391],{"class":1224},[582,1643,1247],{"class":592},[660,1645,1647],{"id":1646},"notes","Notes",[1039,1649,1650,1659,1667],{},[1042,1651,1652,1653,1655,1656,1658],{},"Each field component should call ",[564,1654,555],{}," with its own ",[564,1657,793],{}," — the composable registers itself in the shared store and cleans up on unmount",[1042,1660,1661,1663,1664,1666],{},[564,1662,1016],{}," is a 300 ms debounce so rapid typing doesn't flood the API with validation requests; call ",[564,1665,1085],{}," directly if you need immediate validation",[1042,1668,1669,1670,1673],{},"Extra data can be passed to ",[564,1671,1672],{},"validate(extraData)"," — it is merged into the PATCH body, useful when validation of one field depends on another's current value",[1675,1676,1677],"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 .sBtbT, html code.shiki .sBtbT{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#89DDFF}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}",{"title":578,"searchDepth":678,"depth":678,"links":1679},[1680,1681,1682,1683,1684,1685,1687,1688,1689],{"id":662,"depth":678,"text":663},{"id":747,"depth":678,"text":748},{"id":837,"depth":678,"text":838},{"id":1032,"depth":678,"text":967},{"id":1001,"depth":678,"text":1085},{"id":1149,"depth":678,"text":1686},"Field full_name",{"id":1173,"depth":678,"text":1174},{"id":1209,"depth":678,"text":1210},{"id":1646,"depth":678,"text":1647},"Bind a single Symfony form field to a reactive value, validate on input, and control when errors are displayed.","md",{},{"title":357},{"title":555,"description":1690},"n778XSVyxgCHiynUwFlgw0FGU36pts7-s9KSaDbHpEo",[1697,1699],{"title":349,"path":354,"stem":355,"description":1698,"children":-1},"Handle form submission, track in-flight state, and read form-level errors from a CWA Form component resource.",{"title":361,"path":362,"stem":363,"description":1700,"children":-1},"Bind a Symfony RepeatedType field (e.g. new password + confirmation) with cross-field validation.",1791855281405]