[{"data":1,"prerenderedAt":1267},["ShallowReactive",2],{"docs-nav:en":3,"docs:\u002Fdocs\u002Fclient\u002Fforms":134},[4],{"title":5,"path":6,"stem":7,"children":8},"Docs","\u002Fdocs","docs",[9,12,16,20,24,42,63,92,113],{"title":10,"path":6,"stem":11},"What is Fougere","docs\u002Findex",{"title":13,"path":14,"stem":15},"Getting started","\u002Fdocs\u002Fgetting-started","docs\u002F01.getting-started",{"title":17,"path":18,"stem":19},"Existing Nuxt app","\u002Fdocs\u002Fexisting-app","docs\u002F02.existing-app",{"title":21,"path":22,"stem":23},"The CLI","\u002Fdocs\u002Fcli","docs\u002F03.cli",{"title":25,"path":26,"stem":27,"children":28,"page":41},"Concepts","\u002Fdocs\u002Fconcepts","docs\u002F2.concepts",[29,33,37],{"title":30,"path":31,"stem":32},"Philosophy","\u002Fdocs\u002Fconcepts\u002Fphilosophy","docs\u002F2.concepts\u002F1.philosophy",{"title":34,"path":35,"stem":36},"The Frond","\u002Fdocs\u002Fconcepts\u002Ffrond","docs\u002F2.concepts\u002F2.frond",{"title":38,"path":39,"stem":40},"The shortest path","\u002Fdocs\u002Fconcepts\u002Fshortest-path","docs\u002F2.concepts\u002F3.shortest-path",false,{"title":43,"path":44,"stem":45,"children":46,"page":41},"Schema","\u002Fdocs\u002Fschema","docs\u002F3.schema",[47,51,55,59],{"title":48,"path":49,"stem":50},"Entities","\u002Fdocs\u002Fschema\u002Fentities","docs\u002F3.schema\u002F1.entities",{"title":52,"path":53,"stem":54},"Views","\u002Fdocs\u002Fschema\u002Fviews","docs\u002F3.schema\u002F2.views",{"title":56,"path":57,"stem":58},"The identity card","\u002Fdocs\u002Fschema\u002Fcard","docs\u002F3.schema\u002F3.card",{"title":60,"path":61,"stem":62},"Standard Schema","\u002Fdocs\u002Fschema\u002Fstandard-schema","docs\u002F3.schema\u002F4.standard-schema",{"title":64,"path":65,"stem":66,"children":67,"page":41},"Business","\u002Fdocs\u002Fbusiness","docs\u002F4.business",[68,72,76,80,84,88],{"title":69,"path":70,"stem":71},"Handlers","\u002Fdocs\u002Fbusiness\u002Fhandlers","docs\u002F4.business\u002F1.handlers",{"title":73,"path":74,"stem":75},"Presenters","\u002Fdocs\u002Fbusiness\u002Fpresenters","docs\u002F4.business\u002F2.presenters",{"title":77,"path":78,"stem":79},"Collectors","\u002Fdocs\u002Fbusiness\u002Fcollectors","docs\u002F4.business\u002F3.collectors",{"title":81,"path":82,"stem":83},"Errors","\u002Fdocs\u002Fbusiness\u002Ferrors","docs\u002F4.business\u002F4.errors",{"title":85,"path":86,"stem":87},"Seeds","\u002Fdocs\u002Fbusiness\u002Fseeds","docs\u002F4.business\u002F5.seeds",{"title":89,"path":90,"stem":91},"Facts","\u002Fdocs\u002Fbusiness\u002Ffacts","docs\u002F4.business\u002F6.facts",{"title":93,"path":94,"stem":95,"children":96,"page":41},"Client","\u002Fdocs\u002Fclient","docs\u002F5.client",[97,101,105,109],{"title":98,"path":99,"stem":100},"Queries & commands","\u002Fdocs\u002Fclient\u002Fqueries-commands","docs\u002F5.client\u002F1.queries-commands",{"title":102,"path":103,"stem":104},"Forms","\u002Fdocs\u002Fclient\u002Fforms","docs\u002F5.client\u002F2.forms",{"title":106,"path":107,"stem":108},"Session","\u002Fdocs\u002Fclient\u002Fsession","docs\u002F5.client\u002F3.session",{"title":110,"path":111,"stem":112},"invoke","\u002Fdocs\u002Fclient\u002Finvoke","docs\u002F5.client\u002F4.invoke",{"title":114,"path":115,"stem":116,"children":117,"page":41},"Infrastructure","\u002Fdocs\u002Finfra","docs\u002F6.infra",[118,122,126,130],{"title":119,"path":120,"stem":121},"The gradient","\u002Fdocs\u002Finfra\u002Fgradient","docs\u002F6.infra\u002F1.gradient",{"title":123,"path":124,"stem":125},"Surfaces — REST & GraphQL","\u002Fdocs\u002Finfra\u002Fsurfaces","docs\u002F6.infra\u002F2.surfaces",{"title":127,"path":128,"stem":129},"Deployment","\u002Fdocs\u002Finfra\u002Fdeployment","docs\u002F6.infra\u002F3.deployment",{"title":131,"path":132,"stem":133},"Hosts","\u002Fdocs\u002Finfra\u002Fhosts","docs\u002F6.infra\u002F4.hosts",{"id":135,"title":102,"body":136,"description":1262,"extension":1263,"meta":1264,"navigation":227,"path":103,"seo":1265,"stem":104,"__hash__":1266},"docs_en\u002Fdocs\u002F5.client\u002F2.forms.md",{"type":137,"value":138,"toc":1256},"minimark",[139,143,151,619,624,681,684,834,837,974,978,1024,1031,1034,1119,1130,1134,1197,1201,1245,1252],[140,141,102],"h1",{"id":142},"forms",[144,145,146,150],"p",{},[147,148,149],"code",{},"useFormFor"," manages state, validation, submission, and per-field errors. It renders no\ncomponents: the page chooses the fields and their layout.",[152,153,158],"pre",{"className":154,"code":155,"language":156,"meta":157,"style":157},"language-vue shiki shiki-themes material-theme-lighter github-light github-dark","\u003Cscript setup lang=\"ts\">\nimport Post from '@frond\u002Fblog\u002Fentities\u002FPost';\n\nconst { fieldsByName, values, errors, submit, loading, error } = useFormFor\u003C{ id: string }>(Post);\n\nasync function onSubmit() {\n  const created = await submit();          \u002F\u002F null on validation error\n  if (created) navigateTo(`\u002Fblog\u002Fedit\u002F${created.id}`);\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cform @submit.prevent=\"onSubmit\">\n    \u003CUFormField label=\"Title\" :error=\"errors.title\">\n      \u003CUInput v-model=\"values.title\" v-bind=\"fieldsByName.title?.attrs\" \u002F>\n    \u003C\u002FUFormField>\n    \u003Cp v-if=\"error\">{{ error.message }}\u003C\u002Fp>          \u003C!-- non-validation failure -->\n    \u003CUButton type=\"submit\" :loading=\"loading\" \u002F>\n  \u003C\u002Fform>\n\u003C\u002Ftemplate>\n","vue","",[147,159,160,196,222,229,302,307,325,351,397,403,413,418,428,451,486,522,532,566,600,610],{"__ignoreMap":157},[161,162,165,169,173,177,180,183,187,191,193],"span",{"class":163,"line":164},"line",1,[161,166,168],{"class":167},"sP7_E","\u003C",[161,170,172],{"class":171},"sQzsp","script",[161,174,176],{"class":175},"s9AJx"," setup",[161,178,179],{"class":175}," lang",[161,181,182],{"class":167},"=",[161,184,186],{"class":185},"sjJ54","\"",[161,188,190],{"class":189},"s_sjI","ts",[161,192,186],{"class":185},[161,194,195],{"class":167},">\n",[161,197,199,203,207,210,213,216,219],{"class":163,"line":198},2,[161,200,202],{"class":201},"sVHd0","import",[161,204,206],{"class":205},"su5hD"," Post ",[161,208,209],{"class":201},"from",[161,211,212],{"class":185}," '",[161,214,215],{"class":189},"@frond\u002Fblog\u002Fentities\u002FPost",[161,217,218],{"class":185},"'",[161,220,221],{"class":167},";\n",[161,223,225],{"class":163,"line":224},3,[161,226,228],{"emptyLinePlaceholder":227},true,"\n",[161,230,232,236,239,243,246,249,251,254,256,259,261,264,266,269,272,276,280,283,287,290,294,297,300],{"class":163,"line":231},4,[161,233,235],{"class":234},"sbsja","const",[161,237,238],{"class":167}," {",[161,240,242],{"class":241},"s_hVV"," fieldsByName",[161,244,245],{"class":167},",",[161,247,248],{"class":241}," values",[161,250,245],{"class":167},[161,252,253],{"class":241}," errors",[161,255,245],{"class":167},[161,257,258],{"class":241}," submit",[161,260,245],{"class":167},[161,262,263],{"class":241}," loading",[161,265,245],{"class":167},[161,267,268],{"class":241}," error",[161,270,271],{"class":167}," }",[161,273,275],{"class":274},"smGrS"," =",[161,277,279],{"class":278},"sGLFI"," useFormFor",[161,281,282],{"class":167},"\u003C{",[161,284,286],{"class":285},"sucvu"," id",[161,288,289],{"class":274},":",[161,291,293],{"class":292},"sZMiF"," string",[161,295,296],{"class":167}," }>",[161,298,299],{"class":205},"(Post)",[161,301,221],{"class":167},[161,303,305],{"class":163,"line":304},5,[161,306,228],{"emptyLinePlaceholder":227},[161,308,310,313,316,319,322],{"class":163,"line":309},6,[161,311,312],{"class":234},"async",[161,314,315],{"class":234}," function",[161,317,318],{"class":278}," onSubmit",[161,320,321],{"class":167},"()",[161,323,324],{"class":167}," {\n",[161,326,328,331,334,336,339,341,344,347],{"class":163,"line":327},7,[161,329,330],{"class":234},"  const",[161,332,333],{"class":241}," created",[161,335,275],{"class":274},[161,337,338],{"class":201}," await",[161,340,258],{"class":278},[161,342,321],{"class":343},"skxfh",[161,345,346],{"class":167},";",[161,348,350],{"class":349},"sutJx","          \u002F\u002F null on validation error\n",[161,352,354,357,360,363,366,369,372,375,378,381,383,386,389,392,395],{"class":163,"line":353},8,[161,355,356],{"class":201},"  if",[161,358,359],{"class":343}," (",[161,361,362],{"class":205},"created",[161,364,365],{"class":343},") ",[161,367,368],{"class":278},"navigateTo",[161,370,371],{"class":343},"(",[161,373,374],{"class":185},"`",[161,376,377],{"class":189},"\u002Fblog\u002Fedit\u002F",[161,379,380],{"class":185},"${",[161,382,362],{"class":205},[161,384,385],{"class":185},".",[161,387,388],{"class":205},"id",[161,390,391],{"class":185},"}`",[161,393,394],{"class":343},")",[161,396,221],{"class":167},[161,398,400],{"class":163,"line":399},9,[161,401,402],{"class":167},"}\n",[161,404,406,409,411],{"class":163,"line":405},10,[161,407,408],{"class":167},"\u003C\u002F",[161,410,172],{"class":171},[161,412,195],{"class":167},[161,414,416],{"class":163,"line":415},11,[161,417,228],{"emptyLinePlaceholder":227},[161,419,421,423,426],{"class":163,"line":420},12,[161,422,168],{"class":167},[161,424,425],{"class":171},"template",[161,427,195],{"class":167},[161,429,431,434,437,440,442,444,447,449],{"class":163,"line":430},13,[161,432,433],{"class":167},"  \u003C",[161,435,436],{"class":171},"form",[161,438,439],{"class":175}," @submit.prevent",[161,441,182],{"class":167},[161,443,186],{"class":185},[161,445,446],{"class":189},"onSubmit",[161,448,186],{"class":185},[161,450,195],{"class":167},[161,452,454,457,460,463,465,467,470,472,475,477,479,482,484],{"class":163,"line":453},14,[161,455,456],{"class":167},"    \u003C",[161,458,459],{"class":171},"UFormField",[161,461,462],{"class":175}," label",[161,464,182],{"class":167},[161,466,186],{"class":185},[161,468,469],{"class":189},"Title",[161,471,186],{"class":185},[161,473,474],{"class":175}," :error",[161,476,182],{"class":167},[161,478,186],{"class":185},[161,480,481],{"class":189},"errors.title",[161,483,186],{"class":185},[161,485,195],{"class":167},[161,487,489,492,495,498,500,502,505,507,510,512,514,517,519],{"class":163,"line":488},15,[161,490,491],{"class":167},"      \u003C",[161,493,494],{"class":171},"UInput",[161,496,497],{"class":175}," v-model",[161,499,182],{"class":167},[161,501,186],{"class":185},[161,503,504],{"class":189},"values.title",[161,506,186],{"class":185},[161,508,509],{"class":175}," v-bind",[161,511,182],{"class":167},[161,513,186],{"class":185},[161,515,516],{"class":189},"fieldsByName.title?.attrs",[161,518,186],{"class":185},[161,520,521],{"class":167}," \u002F>\n",[161,523,525,528,530],{"class":163,"line":524},16,[161,526,527],{"class":167},"    \u003C\u002F",[161,529,459],{"class":171},[161,531,195],{"class":167},[161,533,535,537,539,542,544,546,549,551,554,557,559,561,563],{"class":163,"line":534},17,[161,536,456],{"class":167},[161,538,144],{"class":171},[161,540,541],{"class":175}," v-if",[161,543,182],{"class":167},[161,545,186],{"class":185},[161,547,548],{"class":189},"error",[161,550,186],{"class":185},[161,552,553],{"class":167},">",[161,555,556],{"class":205},"{{ error.message }}",[161,558,408],{"class":167},[161,560,144],{"class":171},[161,562,553],{"class":167},[161,564,565],{"class":349},"          \u003C!-- non-validation failure -->\n",[161,567,569,571,574,577,579,581,584,586,589,591,593,596,598],{"class":163,"line":568},18,[161,570,456],{"class":167},[161,572,573],{"class":171},"UButton",[161,575,576],{"class":175}," type",[161,578,182],{"class":167},[161,580,186],{"class":185},[161,582,583],{"class":189},"submit",[161,585,186],{"class":185},[161,587,588],{"class":175}," :loading",[161,590,182],{"class":167},[161,592,186],{"class":185},[161,594,595],{"class":189},"loading",[161,597,186],{"class":185},[161,599,521],{"class":167},[161,601,603,606,608],{"class":163,"line":602},19,[161,604,605],{"class":167},"  \u003C\u002F",[161,607,436],{"class":171},[161,609,195],{"class":167},[161,611,613,615,617],{"class":163,"line":612},20,[161,614,408],{"class":167},[161,616,425],{"class":171},[161,618,195],{"class":167},[620,621,623],"h2",{"id":622},"signature","Signature",[152,625,628],{"className":626,"code":627,"language":190,"meta":157,"style":157},"language-ts shiki shiki-themes material-theme-lighter github-light github-dark","useFormFor\u003CT>(EntityOrView, options?)\n\u002F\u002F options: {\n\u002F\u002F   op?: string                        command the submit rides — default 'create'\n\u002F\u002F   initial?: Record\u003Cstring, unknown>  edit mode: the loaded entity\n\u002F\u002F   params?: Record\u003Cstring, string>    designation of the target — edit mode: { id }\n\u002F\u002F }\n",[147,629,630,656,661,666,671,676],{"__ignoreMap":157},[161,631,632,634,636,640,642,645,647,650,653],{"class":163,"line":164},[161,633,149],{"class":278},[161,635,168],{"class":167},[161,637,639],{"class":638},"sbgvK","T",[161,641,553],{"class":167},[161,643,644],{"class":205},"(EntityOrView",[161,646,245],{"class":167},[161,648,649],{"class":205}," options",[161,651,652],{"class":274},"?",[161,654,655],{"class":205},")\n",[161,657,658],{"class":163,"line":198},[161,659,660],{"class":349},"\u002F\u002F options: {\n",[161,662,663],{"class":163,"line":224},[161,664,665],{"class":349},"\u002F\u002F   op?: string                        command the submit rides — default 'create'\n",[161,667,668],{"class":163,"line":231},[161,669,670],{"class":349},"\u002F\u002F   initial?: Record\u003Cstring, unknown>  edit mode: the loaded entity\n",[161,672,673],{"class":163,"line":304},[161,674,675],{"class":349},"\u002F\u002F   params?: Record\u003Cstring, string>    designation of the target — edit mode: { id }\n",[161,677,678],{"class":163,"line":309},[161,679,680],{"class":349},"\u002F\u002F }\n",[144,682,683],{},"Returns:",[685,686,687,703],"table",{},[688,689,690],"thead",{},[691,692,693,697,700],"tr",{},[694,695,696],"th",{},"Key",[694,698,699],{},"Type",[694,701,702],{},"Notes",[704,705,706,726,741,760,774,788,801,819],"tbody",{},[691,707,708,714,719],{},[709,710,711],"td",{},[147,712,713],{},"fields",[709,715,716],{},[147,717,718],{},"FormField[]",[709,720,721,722,725],{},"derived from the io axes — ",[147,723,724],{},"readOnly"," fields are excluded",[691,727,728,733,738],{},[709,729,730],{},[147,731,732],{},"fieldsByName",[709,734,735],{},[147,736,737],{},"Record\u003Cstring, FormField>",[709,739,740],{},"the same fields, for a form laid out by hand",[691,742,743,748,754],{},[709,744,745],{},[147,746,747],{},"values",[709,749,750,753],{},[147,751,752],{},"reactive"," record",[709,755,756,759],{},[147,757,758],{},"initial"," when editing, the field's declared default when creating",[691,761,762,767,771],{},[709,763,764],{},[147,765,766],{},"errors",[709,768,769,753],{},[147,770,752],{},[709,772,773],{},"field path → message",[691,775,776,780,785],{},[709,777,778],{},[147,779,583],{},[709,781,782],{},[147,783,784],{},"() => Promise\u003CT | null>",[709,786,787],{},"see cycle below",[691,789,790,794,799],{},[709,791,792],{},[147,793,595],{},[709,795,796],{},[147,797,798],{},"Ref\u003Cboolean>",[709,800],{},[691,802,803,807,812],{},[709,804,805],{},[147,806,548],{},[709,808,809],{},[147,810,811],{},"Ref\u003CFougereError | null>",[709,813,814,818],{},[815,816,817],"strong",{},"non-validation"," failure (conflict, dead host)",[691,820,821,826,831],{},[709,822,823],{},[147,824,825],{},"valid",[709,827,828],{},[147,829,830],{},"ComputedRef\u003Cboolean>",[709,832,833],{},"no current field errors",[144,835,836],{},"Edit mode composes with a query:",[152,838,840],{"className":626,"code":839,"language":190,"meta":157,"style":157},"const { data: post } = await useQuery\u003CPost>(Post, 'findById', { params: { id } });\nconst form = useFormFor(Post, { op: 'update', params: { id }, initial: post.value ?? undefined });\n",[147,841,842,907],{"__ignoreMap":157},[161,843,844,846,848,851,853,856,858,860,862,865,867,870,872,875,877,879,882,884,886,888,891,893,895,898,901,903,905],{"class":163,"line":164},[161,845,235],{"class":234},[161,847,238],{"class":167},[161,849,850],{"class":285}," data",[161,852,289],{"class":167},[161,854,855],{"class":241}," post",[161,857,271],{"class":167},[161,859,275],{"class":274},[161,861,338],{"class":201},[161,863,864],{"class":278}," useQuery",[161,866,168],{"class":167},[161,868,869],{"class":638},"Post",[161,871,553],{"class":167},[161,873,874],{"class":205},"(Post",[161,876,245],{"class":167},[161,878,212],{"class":185},[161,880,881],{"class":189},"findById",[161,883,218],{"class":185},[161,885,245],{"class":167},[161,887,238],{"class":167},[161,889,890],{"class":343}," params",[161,892,289],{"class":167},[161,894,238],{"class":167},[161,896,897],{"class":205}," id ",[161,899,900],{"class":167},"}",[161,902,271],{"class":167},[161,904,394],{"class":205},[161,906,221],{"class":167},[161,908,909,911,914,916,918,920,922,924,927,929,931,934,936,938,940,942,944,946,949,952,954,956,958,961,964,968,970,972],{"class":163,"line":198},[161,910,235],{"class":234},[161,912,913],{"class":241}," form",[161,915,275],{"class":274},[161,917,279],{"class":278},[161,919,874],{"class":205},[161,921,245],{"class":167},[161,923,238],{"class":167},[161,925,926],{"class":343}," op",[161,928,289],{"class":167},[161,930,212],{"class":185},[161,932,933],{"class":189},"update",[161,935,218],{"class":185},[161,937,245],{"class":167},[161,939,890],{"class":343},[161,941,289],{"class":167},[161,943,238],{"class":167},[161,945,897],{"class":205},[161,947,948],{"class":167},"},",[161,950,951],{"class":343}," initial",[161,953,289],{"class":167},[161,955,855],{"class":205},[161,957,385],{"class":167},[161,959,960],{"class":205},"value ",[161,962,963],{"class":274},"??",[161,965,967],{"class":966},"s39Yj"," undefined",[161,969,271],{"class":167},[161,971,394],{"class":205},[161,973,221],{"class":167},[620,975,977],{"id":976},"the-browser-judges-first-and-for-free","The browser judges first, and for free",[144,979,980,983,984,987,988,987,991,987,994,987,997,987,1000,987,1003,1006,1007,1010,1011,1013,1014,987,1016,1019,1020,1023],{},[147,981,982],{},"field.attrs"," is the part of the declaration a browser already enforces, under the names\nit knows: ",[147,985,986],{},"type",", ",[147,989,990],{},"required",[147,992,993],{},"minlength",[147,995,996],{},"maxlength",[147,998,999],{},"min",[147,1001,1002],{},"max",[147,1004,1005],{},"pattern",". Spread it\nand the page states no rule of its own — ",[147,1008,1009],{},"text({ min: 1, max: 200 })"," becomes\n",[147,1012,993],{},"\u002F",[147,1015,996],{},[147,1017,1018],{},"email()"," becomes ",[147,1021,1022],{},"type=\"email\"",", checked live as one types, with\nno JavaScript at all.",[144,1025,1026,1027,1030],{},"This is a projection, not a second rule: the judge reads the same shape. A form that\nignores ",[147,1028,1029],{},"attrs"," gets the same verdict, only later — and a screen reader never gets it.",[144,1032,1033],{},"Three attributes are deliberately absent, each where HTML would mean something the\ndeclaration does not say:",[685,1035,1036,1049],{},[688,1037,1038],{},[691,1039,1040,1043,1046],{},[694,1041,1042],{},"Field",[694,1044,1045],{},"Absent",[694,1047,1048],{},"Because",[704,1050,1051,1073,1095],{},[691,1052,1053,1058,1062],{},[709,1054,1055],{},[147,1056,1057],{},"date()",[709,1059,1060],{},[147,1061,986],{},[709,1063,1064,1065,1068,1069,1072],{},"neither ",[147,1066,1067],{},"date"," nor ",[147,1070,1071],{},"datetime-local"," produces the RFC 3339 string the judge expects",[691,1074,1075,1080,1084],{},[709,1076,1077],{},[147,1078,1079],{},"bool()",[709,1081,1082],{},[147,1083,990],{},[709,1085,1086,1087,1090,1091,1094],{},"on a checkbox it means \"must be ",[815,1088,1089],{},"checked","\"; the shape says the value must be supplied, and ",[147,1092,1093],{},"false"," is one",[691,1096,1097,1104,1108],{},[709,1098,1099,987,1102],{},[147,1100,1101],{},"oneOf(…)",[147,1103,1079],{},[709,1105,1106],{},[147,1107,986],{},[709,1109,1110,1111,1114,1115,1118],{},"these are not ",[147,1112,1113],{},"\u003Cinput>","s — ",[147,1116,1117],{},"field.control"," says which widget, the page renders it",[144,1120,1121,1122,1125,1126,1129],{},"What HTML cannot say at all — a cross-field rule, ",[147,1123,1124],{},"format: 'uuid'",", a ",[147,1127,1128],{},"oneOf"," outside a\nselect — is caught by the pass below.",[620,1131,1133],{"id":1132},"the-submit-cycle","The submit cycle",[1135,1136,1137,1158,1168,1185],"ol",{},[1138,1139,1140,1143,1144,1147,1148,1150,1151,1154,1155,385],"li",{},[815,1141,1142],{},"Local validation"," — ",[147,1145,1146],{},"Entity.validate(payload)"," runs in the browser with the same\nrules as the handler. Errors are added to ",[147,1149,766],{}," without a network call, and\n",[147,1152,1153],{},"submit()"," returns ",[147,1156,1157],{},"null",[1138,1159,1160,1163,1164,1167],{},[815,1161,1162],{},"Command"," — the payload is sent through ",[147,1165,1166],{},"useCommand(Entity, op)",". On success, active\nqueries for the entity are revalidated.",[1138,1169,1170,1173,1174,1177,1178,1180,1181,1184],{},[815,1171,1172],{},"Server validation"," — a returned ",[147,1175,1176],{},"VALIDATION_FAILED"," is added to ",[147,1179,766],{}," by ",[147,1182,1183],{},"path",",\nusing the same format as local errors.",[1138,1186,1187,1188,987,1191,1194,1195,385],{},"Other errors (",[147,1189,1190],{},"CONFLICT",[147,1192,1193],{},"SERVICE_UNAVAILABLE","…) are placed in ",[147,1196,548],{},[620,1198,1200],{"id":1199},"what-the-form-will-not-do","What the form will not do",[1202,1203,1204,1210,1219,1225],"ul",{},[1138,1205,1206,1209],{},[815,1207,1208],{},"Render components"," — widgets and layout remain in the application.",[1138,1211,1212,1218],{},[815,1213,1214,1215,1217],{},"Show ",[147,1216,724],{}," fields"," — these fields are excluded by the io projection; a\nstatus is displayed as a badge from the loaded data, not editable as an input.",[1138,1220,1221,1224],{},[815,1222,1223],{},"Define labels"," — they remain in your i18n; the metadata provides stable keys composed\nof the entity and field name.",[1138,1226,1227,1230,1231,1233,1234,1236,1237,1240,1241,1244],{},[815,1228,1229],{},"Choose an additional value."," ",[147,1232,747],{}," uses ",[147,1235,758],{}," when editing and the field's\ndeclared default when creating (",[147,1238,1239],{},"oneOf('public','private',{ default:'public' })"," opens\nthe select on ",[147,1242,1243],{},"public","). Anything beyond those two — a placeholder, a computed\nsuggestion — is defined by the page.",[144,1246,1247,1248,1251],{},"Next: ",[1249,1250,106],"a",{"href":107}," — sharing identity with pages and handlers.",[1253,1254,1255],"style",{},"html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sQzsp, html code.shiki .sQzsp{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s9AJx, html code.shiki .s9AJx{--shiki-light:#9C3EDA;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sucvu, html code.shiki .sucvu{--shiki-light:#E53935;--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}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 .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s39Yj, html code.shiki .s39Yj{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":157,"searchDepth":198,"depth":198,"links":1257},[1258,1259,1260,1261],{"id":622,"depth":198,"text":623},{"id":976,"depth":198,"text":977},{"id":1132,"depth":198,"text":1133},{"id":1199,"depth":198,"text":1200},"useFormFor — state, validation, submission, and per-field errors.","md",{},{"title":102,"description":1262},"tCMYgRJ8hC0TS_KHBUsk0h6OznmMvONMAjLRvOz9m4s",1786637819498]