[{"data":1,"prerenderedAt":3114},["ShallowReactive",2],{"navigation_docs":3,"-form-reference-php-api":82,"-form-reference-php-api-surround":3109},[4],{"title":5,"path":6,"stem":7,"children":8,"page":25},"Form","\u002Fform","1.getting-started",[9,26,58],{"title":10,"path":11,"stem":12,"children":13,"page":25},"Getting Started","\u002Fform\u002Fgetting-started","1.getting-started\u002F1.installation",[14,17,21],{"title":15,"path":16,"stem":12},"Installation","\u002Fform\u002Fgetting-started\u002Finstallation",{"title":18,"path":19,"stem":20},"Your first form","\u002Fform\u002Fgetting-started\u002Ffirst-form","1.getting-started\u002F2.first-form",{"title":22,"path":23,"stem":24},"Vue rendering","\u002Fform\u002Fgetting-started\u002Fvue-rendering","1.getting-started\u002F3.vue-rendering",false,{"title":27,"path":28,"stem":29,"children":30,"page":25},"Guide","\u002Fform\u002Fguide","2.guide\u002F1.forms-data-validation",[31,34,38,42,46,50,54],{"title":32,"path":33,"stem":29},"Forms, data, and validation","\u002Fform\u002Fguide\u002Fforms-data-validation",{"title":35,"path":36,"stem":37},"Fields and visibility","\u002Fform\u002Fguide\u002Ffields-visibility","2.guide\u002F2.fields-visibility",{"title":39,"path":40,"stem":41},"Renderers and composables","\u002Fform\u002Fguide\u002Frenderers-composables","2.guide\u002F3.renderers-composables",{"title":43,"path":44,"stem":45},"Collections and wizards","\u002Fform\u002Fguide\u002Fcollections-wizards","2.guide\u002F4.collections-wizards",{"title":47,"path":48,"stem":49},"Comboboxes","\u002Fform\u002Fguide\u002Fcomboboxes","2.guide\u002F5.comboboxes",{"title":51,"path":52,"stem":53},"Uploads","\u002Fform\u002Fguide\u002Fuploads","2.guide\u002F6.uploads",{"title":55,"path":56,"stem":57},"Composer and rich text","\u002Fform\u002Fguide\u002Fcomposer-rich-text","2.guide\u002F7.composer-rich-text",{"title":59,"path":60,"stem":61,"children":62,"page":25},"Reference","\u002Fform\u002Freference","3.reference\u002F1.fields",[63,66,70,74,78],{"title":64,"path":65,"stem":61},"Fields","\u002Fform\u002Freference\u002Ffields",{"title":67,"path":68,"stem":69},"PHP API","\u002Fform\u002Freference\u002Fphp-api","3.reference\u002F2.php-api",{"title":71,"path":72,"stem":73},"Vue API","\u002Fform\u002Freference\u002Fvue-api","3.reference\u002F3.vue-api",{"title":75,"path":76,"stem":77},"Configuration and commands","\u002Fform\u002Freference\u002Fconfiguration-commands","3.reference\u002F4.configuration-commands",{"title":79,"path":80,"stem":81},"Resource shape","\u002Fform\u002Freference\u002Fresource-shape","3.reference\u002F5.resource-shape",{"id":83,"title":67,"body":84,"description":3103,"extension":3104,"links":3105,"meta":3106,"navigation":133,"path":68,"seo":3107,"stem":69,"__hash__":3108},"docs\u002Fform\u002F3.reference\u002F2.php-api.md",{"type":85,"value":86,"toc":3089},"minimark",[87,96,334,339,568,571,664,677,682,685,712,719,852,856,863,1034,1037,1041,1111,1118,1265,1271,1278,1286,1290,1313,1418,1429,1447,1515,1530,1534,1544,1720,1725,1766,1772,1776,1779,1982,1997,2054,2058,2170,2181,2196,2200,2205,2316,2332,2336,2340,2343,2465,2468,2472,2485,2488,2773,2782,2788,3034,3082,3085],[88,89,90,91,95],"p",{},"The PHP package owns the form schema, initial data, authorization, Laravel validation, and upload resolution. A form is a regular container-resolved class extending ",[92,93,94],"code",{},"Inertify\\Form\\Form",".",[97,98,103],"pre",{"className":99,"code":100,"language":101,"meta":102,"style":102},"language-php shiki shiki-themes material-theme-lighter catppuccin-mocha catppuccin-mocha","namespace App\\Forms;\n\nuse Inertify\\Form\\Fields\\TextInput;\nuse Inertify\\Form\\Form;\n\nfinal class ProfileForm extends Form\n{\n    public function fields(): array\n    {\n        return [\n            TextInput::make('name')->required(),\n            TextInput::make('email')->email()->required(),\n        ];\n    }\n}\n","php","",[92,104,105,128,135,161,178,183,202,208,231,237,247,284,316,322,328],{"__ignoreMap":102},[106,107,110,114,118,122,125],"span",{"class":108,"line":109},"line",1,[106,111,113],{"class":112},"scOca","namespace",[106,115,117],{"class":116},"s6-7G"," App",[106,119,121],{"class":120},"sOG8g","\\",[106,123,124],{"class":116},"Forms",[106,126,127],{"class":120},";\n",[106,129,131],{"class":108,"line":130},2,[106,132,134],{"emptyLinePlaceholder":133},true,"\n",[106,136,138,141,145,147,149,151,153,155,159],{"class":108,"line":137},3,[106,139,140],{"class":112},"use",[106,142,144],{"class":143},"svMjs"," Inertify",[106,146,121],{"class":120},[106,148,5],{"class":143},[106,150,121],{"class":120},[106,152,64],{"class":143},[106,154,121],{"class":120},[106,156,158],{"class":157},"spKqO","TextInput",[106,160,127],{"class":120},[106,162,164,166,168,170,172,174,176],{"class":108,"line":163},4,[106,165,140],{"class":112},[106,167,144],{"class":143},[106,169,121],{"class":120},[106,171,5],{"class":143},[106,173,121],{"class":120},[106,175,5],{"class":157},[106,177,127],{"class":120},[106,179,181],{"class":108,"line":180},5,[106,182,134],{"emptyLinePlaceholder":133},[106,184,186,190,193,196,199],{"class":108,"line":185},6,[106,187,189],{"class":188},"sNFzF","final",[106,191,192],{"class":188}," class",[106,194,195],{"class":116}," ProfileForm",[106,197,198],{"class":188}," extends",[106,200,201],{"class":116}," Form\n",[106,203,205],{"class":108,"line":204},7,[106,206,207],{"class":120},"{\n",[106,209,211,214,217,221,224,228],{"class":108,"line":210},8,[106,212,213],{"class":188},"    public",[106,215,216],{"class":188}," function",[106,218,220],{"class":219},"sgeHj"," fields",[106,222,223],{"class":120},"()",[106,225,227],{"class":226},"sWTNM",":",[106,229,230],{"class":112}," array\n",[106,232,234],{"class":108,"line":233},9,[106,235,236],{"class":120},"    {\n",[106,238,240,244],{"class":108,"line":239},10,[106,241,243],{"class":242},"su_vF","        return",[106,245,246],{"class":120}," [\n",[106,248,250,253,256,259,262,266,270,272,275,278,281],{"class":108,"line":249},11,[106,251,252],{"class":116},"            TextInput",[106,254,255],{"class":226},"::",[106,257,258],{"class":219},"make",[106,260,261],{"class":120},"(",[106,263,265],{"class":264},"sQGZM","'",[106,267,269],{"class":268},"s2lAL","name",[106,271,265],{"class":264},[106,273,274],{"class":120},")",[106,276,277],{"class":226},"->",[106,279,280],{"class":219},"required",[106,282,283],{"class":120},"(),\n",[106,285,287,289,291,293,295,297,300,302,304,306,308,310,312,314],{"class":108,"line":286},12,[106,288,252],{"class":116},[106,290,255],{"class":226},[106,292,258],{"class":219},[106,294,261],{"class":120},[106,296,265],{"class":264},[106,298,299],{"class":268},"email",[106,301,265],{"class":264},[106,303,274],{"class":120},[106,305,277],{"class":226},[106,307,299],{"class":219},[106,309,223],{"class":120},[106,311,277],{"class":226},[106,313,280],{"class":219},[106,315,283],{"class":120},[106,317,319],{"class":108,"line":318},13,[106,320,321],{"class":120},"        ];\n",[106,323,325],{"class":108,"line":324},14,[106,326,327],{"class":120},"    }\n",[106,329,331],{"class":108,"line":330},15,[106,332,333],{"class":120},"}\n",[335,336,338],"h2",{"id":337},"form-lifecycle","Form lifecycle",[340,341,342,355],"table",{},[343,344,345],"thead",{},[346,347,348,352],"tr",{},[349,350,351],"th",{},"Method",[349,353,354],{},"Contract",[356,357,358,369,387,397,411,421,449,471,481,491,501,511,521,531,545,555],"tbody",{},[346,359,360,366],{},[361,362,363],"td",{},[92,364,365],{},"Form::make(array $parameters = [])",[361,367,368],{},"Resolves the concrete form through Laravel's container and supplies the current request when available. Constructor parameters can be passed by name.",[346,370,371,376],{},[361,372,373],{},[92,374,375],{},"fields()",[361,377,378,379,382,383,386],{},"Return a list of ",[92,380,381],{},"Field"," and ",[92,384,385],{},"Fieldset"," instances. Override this in the application form.",[346,388,389,394],{},[361,390,391],{},[92,392,393],{},"getFieldsets()",[361,395,396],{},"Returns normalized fieldsets. Consecutive top-level fields are wrapped in an implicit fieldset.",[346,398,399,404],{},[361,400,401],{},[92,402,403],{},"route(string $name, array $parameters = [])",[361,405,406,407,410],{},"Uses a named Laravel route as the action. The first non-",[92,408,409],{},"HEAD"," route verb becomes the serialized method.",[346,412,413,418],{},[361,414,415],{},[92,416,417],{},"url(string $url)",[361,419,420],{},"Uses a raw action URL.",[346,422,423,428],{},[361,424,425],{},[92,426,427],{},"method(string $method)",[361,429,430,431,434,435,434,438,434,441,444,445,448],{},"Sets ",[92,432,433],{},"GET",", ",[92,436,437],{},"POST",[92,439,440],{},"PUT",[92,442,443],{},"PATCH",", or ",[92,446,447],{},"DELETE","; other values throw.",[346,450,451,468],{},[361,452,453,434,456,434,459,434,462,434,465],{},[92,454,455],{},"get()",[92,457,458],{},"post()",[92,460,461],{},"put()",[92,463,464],{},"patch()",[92,466,467],{},"delete()",[361,469,470],{},"Set the method and optionally a raw URL.",[346,472,473,478],{},[361,474,475],{},[92,476,477],{},"bind(Model|array $source, array $except = [])",[361,479,480],{},"Reads initial values from a model or array and omits the listed paths.",[346,482,483,488],{},[361,484,485],{},[92,486,487],{},"data(?array $data = null)",[361,489,490],{},"With an array, overrides initial values. With no argument, returns resolved initial data.",[346,492,493,498],{},[361,494,495],{},[92,496,497],{},"resolvedData()",[361,499,500],{},"Returns normalized, authorized initial data after binding, explicit data, defaults, and nested defaults are applied.",[346,502,503,508],{},[361,504,505],{},[92,506,507],{},"unsavedWarning(bool $enabled = true)",[361,509,510],{},"Enables the Vue navigation guard when the form is dirty.",[346,512,513,518],{},[361,514,515],{},[92,516,517],{},"scrollToFirstError(bool $enabled = true)",[361,519,520],{},"Enables scrolling to the first registered field element after submission errors.",[346,522,523,528],{},[361,524,525],{},[92,526,527],{},"setRequest(Request $request)",[361,529,530],{},"Explicitly sets the request used by validation, authorization closures, and request-aware options.",[346,532,533,542],{},[361,534,535,538,539],{},[92,536,537],{},"toArray()"," \u002F ",[92,540,541],{},"jsonSerialize()",[361,543,544],{},"Produces the stable form resource.",[346,546,547,552],{},[361,548,549],{},[92,550,551],{},"toInertiaProperty(PropertyContext $context)",[361,553,554],{},"Receives the owning Inertia prop key and request, then serializes the resource. Normally Inertia calls this automatically.",[346,556,557,562],{},[361,558,559],{},[92,560,561],{},"getPropertyKey()",[361,563,564,565,95],{},"Returns the owning Inertia prop key after contextual serialization, otherwise ",[92,566,567],{},"null",[88,569,570],{},"A form may declare defaults as protected properties:",[97,572,574],{"className":99,"code":573,"language":101,"meta":102,"style":102},"final class ProfileForm extends Form\n{\n    protected ?string $actionRoute = 'profiles.update';\n    protected bool $unsavedWarning = true;\n    protected bool $scrollToFirstError = true;\n}\n",[92,575,576,588,592,623,643,660],{"__ignoreMap":102},[106,577,578,580,582,584,586],{"class":108,"line":109},[106,579,189],{"class":188},[106,581,192],{"class":188},[106,583,195],{"class":116},[106,585,198],{"class":188},[106,587,201],{"class":116},[106,589,590],{"class":108,"line":130},[106,591,207],{"class":120},[106,593,594,597,600,603,607,610,613,616,619,621],{"class":108,"line":137},[106,595,596],{"class":188},"    protected",[106,598,599],{"class":226}," ?",[106,601,602],{"class":112},"string",[106,604,606],{"class":605},"sxSEj"," $",[106,608,609],{"class":143},"actionRoute ",[106,611,612],{"class":226},"=",[106,614,615],{"class":264}," '",[106,617,618],{"class":268},"profiles.update",[106,620,265],{"class":264},[106,622,127],{"class":120},[106,624,625,627,630,632,635,637,641],{"class":108,"line":163},[106,626,596],{"class":188},[106,628,629],{"class":112}," bool",[106,631,606],{"class":605},[106,633,634],{"class":143},"unsavedWarning ",[106,636,612],{"class":226},[106,638,640],{"class":639},"s27pR"," true",[106,642,127],{"class":120},[106,644,645,647,649,651,654,656,658],{"class":108,"line":180},[106,646,596],{"class":188},[106,648,629],{"class":112},[106,650,606],{"class":605},[106,652,653],{"class":143},"scrollToFirstError ",[106,655,612],{"class":226},[106,657,640],{"class":639},[106,659,127],{"class":120},[106,661,662],{"class":108,"line":185},[106,663,333],{"class":120},[88,665,666,669,670,673,674,676],{},[92,667,668],{},"route()"," or ",[92,671,672],{},"url()"," overrides a declared action route. For the boolean flags, a declared property is authoritative; use either the protected-property style or the fluent methods consistently. Prefer ",[92,675,668],{}," when route parameters are required.",[678,679,681],"h3",{"id":680},"initial-data-precedence","Initial-data precedence",[88,683,684],{},"For every authorized top-level field, initial data is resolved in this order:",[686,687,688,696,702,709],"ol",{},[689,690,691,692,695],"li",{},"A value read by ",[92,693,694],{},"bind()"," when model binding is enabled for the field.",[689,697,698,699,95],{},"A matching value supplied to ",[92,700,701],{},"data([...])",[689,703,704,705,708],{},"The field's ",[92,706,707],{},"default()"," value.",[689,710,711],{},"The field's canonical empty value.",[88,713,714,715,718],{},"Only declared, authorized fields are retained. Nested repeater and block defaults are applied using dotted paths. ",[92,716,717],{},"Submit"," fields never enter form data.",[97,720,722],{"className":99,"code":721,"language":101,"meta":102,"style":102},"$form = ProfileForm::make()\n    ->bind($profile, except: ['internal_note'])\n    ->data(['timezone' => 'Europe\u002FKyiv'])\n    ->route('profiles.update', ['profile' => $profile])\n    ->patch();\n",[92,723,724,743,780,809,842],{"__ignoreMap":102},[106,725,726,729,732,734,736,738,740],{"class":108,"line":109},[106,727,728],{"class":605},"$",[106,730,731],{"class":143},"form ",[106,733,612],{"class":226},[106,735,195],{"class":116},[106,737,255],{"class":226},[106,739,258],{"class":219},[106,741,742],{"class":120},"()\n",[106,744,745,748,751,753,755,758,761,765,767,770,772,775,777],{"class":108,"line":130},[106,746,747],{"class":226},"    ->",[106,749,750],{"class":219},"bind",[106,752,261],{"class":120},[106,754,728],{"class":605},[106,756,757],{"class":143},"profile",[106,759,760],{"class":120},",",[106,762,764],{"class":763},"sRLcR"," except",[106,766,227],{"class":120},[106,768,769],{"class":120}," [",[106,771,265],{"class":264},[106,773,774],{"class":268},"internal_note",[106,776,265],{"class":264},[106,778,779],{"class":120},"])\n",[106,781,782,784,787,790,792,795,797,800,802,805,807],{"class":108,"line":137},[106,783,747],{"class":226},[106,785,786],{"class":219},"data",[106,788,789],{"class":120},"([",[106,791,265],{"class":264},[106,793,794],{"class":268},"timezone",[106,796,265],{"class":264},[106,798,799],{"class":226}," =>",[106,801,615],{"class":264},[106,803,804],{"class":268},"Europe\u002FKyiv",[106,806,265],{"class":264},[106,808,779],{"class":120},[106,810,811,813,816,818,820,822,824,826,828,830,832,834,836,838,840],{"class":108,"line":163},[106,812,747],{"class":226},[106,814,815],{"class":219},"route",[106,817,261],{"class":120},[106,819,265],{"class":264},[106,821,618],{"class":268},[106,823,265],{"class":264},[106,825,760],{"class":120},[106,827,769],{"class":120},[106,829,265],{"class":264},[106,831,757],{"class":268},[106,833,265],{"class":264},[106,835,799],{"class":226},[106,837,606],{"class":605},[106,839,757],{"class":143},[106,841,779],{"class":120},[106,843,844,846,849],{"class":108,"line":180},[106,845,747],{"class":226},[106,847,848],{"class":219},"patch",[106,850,851],{"class":120},"();\n",[335,853,855],{"id":854},"inertia-response","Inertia response",[88,857,858,859,862],{},"Forms implement ",[92,860,861],{},"ProvidesInertiaProperty",", so pass the instance directly to an Inertia response:",[97,864,866],{"className":99,"code":865,"language":101,"meta":102,"style":102},"use Inertia\\Inertia;\nuse Inertia\\Response;\n\npublic function edit(Profile $profile): Response\n{\n    return Inertia::render('Profiles\u002FEdit', [\n        'form' => ProfileForm::make()\n            ->bind($profile)\n            ->route('profiles.update', ['profile' => $profile]),\n    ]);\n}\n",[92,867,868,882,895,899,927,931,956,976,992,1025,1030],{"__ignoreMap":102},[106,869,870,872,875,877,880],{"class":108,"line":109},[106,871,140],{"class":112},[106,873,874],{"class":143}," Inertia",[106,876,121],{"class":120},[106,878,879],{"class":157},"Inertia",[106,881,127],{"class":120},[106,883,884,886,888,890,893],{"class":108,"line":130},[106,885,140],{"class":112},[106,887,874],{"class":143},[106,889,121],{"class":120},[106,891,892],{"class":157},"Response",[106,894,127],{"class":120},[106,896,897],{"class":108,"line":137},[106,898,134],{"emptyLinePlaceholder":133},[106,900,901,904,906,909,911,914,917,920,922,924],{"class":108,"line":163},[106,902,903],{"class":188},"public",[106,905,216],{"class":188},[106,907,908],{"class":219}," edit",[106,910,261],{"class":120},[106,912,913],{"class":116},"Profile",[106,915,606],{"class":916},"sKlSU",[106,918,757],{"class":919},"sVbGb",[106,921,274],{"class":120},[106,923,227],{"class":226},[106,925,926],{"class":116}," Response\n",[106,928,929],{"class":108,"line":180},[106,930,207],{"class":120},[106,932,933,936,938,940,943,945,947,950,952,954],{"class":108,"line":185},[106,934,935],{"class":242},"    return",[106,937,874],{"class":116},[106,939,255],{"class":226},[106,941,942],{"class":219},"render",[106,944,261],{"class":120},[106,946,265],{"class":264},[106,948,949],{"class":268},"Profiles\u002FEdit",[106,951,265],{"class":264},[106,953,760],{"class":120},[106,955,246],{"class":120},[106,957,958,961,964,966,968,970,972,974],{"class":108,"line":204},[106,959,960],{"class":264},"        '",[106,962,963],{"class":268},"form",[106,965,265],{"class":264},[106,967,799],{"class":226},[106,969,195],{"class":116},[106,971,255],{"class":226},[106,973,258],{"class":219},[106,975,742],{"class":120},[106,977,978,981,983,985,987,989],{"class":108,"line":210},[106,979,980],{"class":226},"            ->",[106,982,750],{"class":219},[106,984,261],{"class":120},[106,986,728],{"class":605},[106,988,757],{"class":143},[106,990,991],{"class":120},")\n",[106,993,994,996,998,1000,1002,1004,1006,1008,1010,1012,1014,1016,1018,1020,1022],{"class":108,"line":233},[106,995,980],{"class":226},[106,997,815],{"class":219},[106,999,261],{"class":120},[106,1001,265],{"class":264},[106,1003,618],{"class":268},[106,1005,265],{"class":264},[106,1007,760],{"class":120},[106,1009,769],{"class":120},[106,1011,265],{"class":264},[106,1013,757],{"class":268},[106,1015,265],{"class":264},[106,1017,799],{"class":226},[106,1019,606],{"class":605},[106,1021,757],{"class":143},[106,1023,1024],{"class":120},"]),\n",[106,1026,1027],{"class":108,"line":239},[106,1028,1029],{"class":120},"    ]);\n",[106,1031,1032],{"class":108,"line":249},[106,1033,333],{"class":120},[88,1035,1036],{},"Contextual serialization matters for query-backed comboboxes: it records the owning prop and allows the Vue controller to reload only that prop.",[335,1038,1040],{"id":1039},"validation","Validation",[340,1042,1043,1051],{},[343,1044,1045],{},[346,1046,1047,1049],{},[349,1048,351],{},[349,1050,354],{},[356,1052,1053,1063,1073,1083,1093],{},[346,1054,1055,1060],{},[361,1056,1057],{},[92,1058,1059],{},"rules()",[361,1061,1062],{},"Returns the generated Laravel rule map. Override to customize the full form-level map only when needed.",[346,1064,1065,1070],{},[361,1066,1067],{},[92,1068,1069],{},"messages()",[361,1071,1072],{},"Override to return custom validation messages.",[346,1074,1075,1080],{},[361,1076,1077],{},[92,1078,1079],{},"attributes()",[361,1081,1082],{},"Override to return custom validation attribute names.",[346,1084,1085,1090],{},[361,1086,1087],{},[92,1088,1089],{},"validate(?array $data = null)",[361,1091,1092],{},"Authorizes, validates request data or the supplied array, filters undeclared fields, and caches the result.",[346,1094,1095,1100],{},[361,1096,1097],{},[92,1098,1099],{},"validated(bool $files = true)",[361,1101,1102,1103,1106,1107,1110],{},"Returns the cached result or validates now, then applies field transformations. Pass ",[92,1104,1105],{},"files: false"," to remove every ",[92,1108,1109],{},"File",", composer attachments, and rich-text image token lists.",[88,1112,1113,1114,1117],{},"Use the contextual ",[92,1115,1116],{},"#[Validate]"," attribute for controller injection:",[97,1119,1121],{"className":99,"code":1120,"language":101,"meta":102,"style":102},"use Illuminate\\Http\\RedirectResponse;\nuse Inertify\\Form\\Validate;\n\npublic function update(\n    #[Validate] ProfileForm $form,\n    Profile $profile,\n): RedirectResponse {\n    $profile->update($form->validated(files: false));\n\n    return back();\n}\n",[92,1122,1123,1142,1159,1163,1175,1189,1200,1212,1248,1252,1261],{"__ignoreMap":102},[106,1124,1125,1127,1130,1132,1135,1137,1140],{"class":108,"line":109},[106,1126,140],{"class":112},[106,1128,1129],{"class":143}," Illuminate",[106,1131,121],{"class":120},[106,1133,1134],{"class":143},"Http",[106,1136,121],{"class":120},[106,1138,1139],{"class":157},"RedirectResponse",[106,1141,127],{"class":120},[106,1143,1144,1146,1148,1150,1152,1154,1157],{"class":108,"line":130},[106,1145,140],{"class":112},[106,1147,144],{"class":143},[106,1149,121],{"class":120},[106,1151,5],{"class":143},[106,1153,121],{"class":120},[106,1155,1156],{"class":157},"Validate",[106,1158,127],{"class":120},[106,1160,1161],{"class":108,"line":137},[106,1162,134],{"emptyLinePlaceholder":133},[106,1164,1165,1167,1169,1172],{"class":108,"line":163},[106,1166,903],{"class":188},[106,1168,216],{"class":188},[106,1170,1171],{"class":219}," update",[106,1173,1174],{"class":120},"(\n",[106,1176,1177,1180,1182,1184,1186],{"class":108,"line":180},[106,1178,1179],{"class":157},"    #[Validate]",[106,1181,195],{"class":116},[106,1183,606],{"class":916},[106,1185,963],{"class":919},[106,1187,1188],{"class":120},",\n",[106,1190,1191,1194,1196,1198],{"class":108,"line":185},[106,1192,1193],{"class":116},"    Profile",[106,1195,606],{"class":916},[106,1197,757],{"class":919},[106,1199,1188],{"class":120},[106,1201,1202,1204,1206,1209],{"class":108,"line":204},[106,1203,274],{"class":120},[106,1205,227],{"class":226},[106,1207,1208],{"class":116}," RedirectResponse",[106,1210,1211],{"class":120}," {\n",[106,1213,1214,1217,1219,1221,1224,1226,1228,1230,1232,1235,1237,1240,1242,1245],{"class":108,"line":210},[106,1215,1216],{"class":605},"    $",[106,1218,757],{"class":143},[106,1220,277],{"class":226},[106,1222,1223],{"class":219},"update",[106,1225,261],{"class":120},[106,1227,728],{"class":605},[106,1229,963],{"class":143},[106,1231,277],{"class":226},[106,1233,1234],{"class":219},"validated",[106,1236,261],{"class":120},[106,1238,1239],{"class":763},"files",[106,1241,227],{"class":120},[106,1243,1244],{"class":639}," false",[106,1246,1247],{"class":120},"));\n",[106,1249,1250],{"class":108,"line":233},[106,1251,134],{"emptyLinePlaceholder":133},[106,1253,1254,1256,1259],{"class":108,"line":239},[106,1255,935],{"class":242},[106,1257,1258],{"class":219}," back",[106,1260,851],{"class":120},[106,1262,1263],{"class":108,"line":249},[106,1264,333],{"class":120},[88,1266,1267,1268,1270],{},"The parameter must be typed as ",[92,1269,5],{}," or a form subclass. Laravel resolves it, attaches the current request, authorizes it, and validates it before invoking the controller.",[88,1272,1273,1274,1277],{},"Hidden or disabled fields receive Laravel's ",[92,1275,1276],{},"exclude"," rule. Unauthorized fields never receive rules. Nested repeater, block, choice, date-range, slider-range, key-value, composer, rich-text image, and file-item rules are generated at their qualified paths.",[1279,1280,1281,1282,1285],"warning",{},"The serialized ",[92,1283,1284],{},"rules"," array is renderer metadata, not the security boundary. Validation and authorization run in Laravel. Do not accept a client-modified schema or infer permission from client visibility.",[335,1287,1289],{"id":1288},"authorization-and-metadata","Authorization and metadata",[88,1291,1292,434,1294,434,1296,1298,1299,1302,1303,434,1306,1298,1309,1312],{},[92,1293,5],{},[92,1295,385],{},[92,1297,381],{},", and ",[92,1300,1301],{},"BlockSet"," support ",[92,1304,1305],{},"authorize()",[92,1307,1308],{},"authorizedWhen()",[92,1310,1311],{},"authorizedUnless()"," where applicable. Closures are container-aware through the package value resolver.",[97,1314,1316],{"className":99,"code":1315,"language":101,"meta":102,"style":102},"public function fields(): array\n{\n    return [\n        TextInput::make('billing_code')\n            ->authorize(fn () => request()->user()?->can('editBilling')),\n    ];\n}\n",[92,1317,1318,1332,1336,1342,1362,1409,1414],{"__ignoreMap":102},[106,1319,1320,1322,1324,1326,1328,1330],{"class":108,"line":109},[106,1321,903],{"class":188},[106,1323,216],{"class":188},[106,1325,220],{"class":219},[106,1327,223],{"class":120},[106,1329,227],{"class":226},[106,1331,230],{"class":112},[106,1333,1334],{"class":108,"line":130},[106,1335,207],{"class":120},[106,1337,1338,1340],{"class":108,"line":137},[106,1339,935],{"class":242},[106,1341,246],{"class":120},[106,1343,1344,1347,1349,1351,1353,1355,1358,1360],{"class":108,"line":163},[106,1345,1346],{"class":116},"        TextInput",[106,1348,255],{"class":226},[106,1350,258],{"class":219},[106,1352,261],{"class":120},[106,1354,265],{"class":264},[106,1356,1357],{"class":268},"billing_code",[106,1359,265],{"class":264},[106,1361,991],{"class":120},[106,1363,1364,1366,1369,1371,1374,1377,1379,1382,1384,1386,1389,1391,1394,1397,1399,1401,1404,1406],{"class":108,"line":180},[106,1365,980],{"class":226},[106,1367,1368],{"class":219},"authorize",[106,1370,261],{"class":120},[106,1372,1373],{"class":188},"fn",[106,1375,1376],{"class":120}," ()",[106,1378,799],{"class":120},[106,1380,1381],{"class":219}," request",[106,1383,223],{"class":120},[106,1385,277],{"class":226},[106,1387,1388],{"class":219},"user",[106,1390,223],{"class":120},[106,1392,1393],{"class":226},"?->",[106,1395,1396],{"class":219},"can",[106,1398,261],{"class":120},[106,1400,265],{"class":264},[106,1402,1403],{"class":268},"editBilling",[106,1405,265],{"class":264},[106,1407,1408],{"class":120},")),\n",[106,1410,1411],{"class":108,"line":185},[106,1412,1413],{"class":120},"    ];\n",[106,1415,1416],{"class":108,"line":204},[106,1417,333],{"class":120},[88,1419,1420,1421,1424,1425,1428],{},"An unauthorized form serializes as the exact empty resource by default and always throws when validation is attempted. Set ",[92,1422,1423],{},"inertia-forms.authorization.throw_on_unauthorized"," to ",[92,1426,1427],{},"true"," to throw during serialization too.",[88,1430,1431,1434,1435,1438,1439,1442,1443,1446],{},[92,1432,1433],{},"dataAttribute()"," normalizes a key to ",[92,1436,1437],{},"data-kebab-case",". ",[92,1440,1441],{},"dataAttributes()"," sets several attributes. ",[92,1444,1445],{},"meta()"," stores arbitrary serializable consumer metadata. These methods exist on the form and relevant schema objects.",[97,1448,1450],{"className":99,"code":1449,"language":101,"meta":102,"style":102},"ProfileForm::make()\n    ->dataAttribute('testId', 'profile-form')\n    ->meta('version', 2);\n",[92,1451,1452,1463,1490],{"__ignoreMap":102},[106,1453,1454,1457,1459,1461],{"class":108,"line":109},[106,1455,1456],{"class":116},"ProfileForm",[106,1458,255],{"class":226},[106,1460,258],{"class":219},[106,1462,742],{"class":120},[106,1464,1465,1467,1470,1472,1474,1477,1479,1481,1483,1486,1488],{"class":108,"line":130},[106,1466,747],{"class":226},[106,1468,1469],{"class":219},"dataAttribute",[106,1471,261],{"class":120},[106,1473,265],{"class":264},[106,1475,1476],{"class":268},"testId",[106,1478,265],{"class":264},[106,1480,760],{"class":120},[106,1482,615],{"class":264},[106,1484,1485],{"class":268},"profile-form",[106,1487,265],{"class":264},[106,1489,991],{"class":120},[106,1491,1492,1494,1497,1499,1501,1504,1506,1508,1512],{"class":108,"line":137},[106,1493,747],{"class":226},[106,1495,1496],{"class":219},"meta",[106,1498,261],{"class":120},[106,1500,265],{"class":264},[106,1502,1503],{"class":268},"version",[106,1505,265],{"class":264},[106,1507,760],{"class":120},[106,1509,1511],{"class":1510},"sCOdc"," 2",[106,1513,1514],{"class":120},");\n",[88,1516,1517,1518,382,1520,1522,1523,382,1526,1529],{},"Both ",[92,1519,5],{},[92,1521,381],{}," are macroable and support Laravel's ",[92,1524,1525],{},"when()",[92,1527,1528],{},"tap()"," helpers.",[335,1531,1533],{"id":1532},"wizards","Wizards",[88,1535,1536,1537,1540,1541,227],{},"Override ",[92,1538,1539],{},"wizard()"," or call ",[92,1542,1543],{},"withWizard()",[97,1545,1547],{"className":99,"code":1546,"language":101,"meta":102,"style":102},"use Inertify\\Form\\WizardConfig;\n\npublic function wizard(): WizardConfig\n{\n    return WizardConfig::make()\n        ->step('Identity', 'Account details')\n        ->step('Profile', 'Public information')\n        ->validateOnStep()\n        ->labels(next: 'Continue', prev: 'Back', submit: 'Save');\n}\n",[92,1548,1549,1566,1570,1586,1590,1603,1631,1656,1665,1716],{"__ignoreMap":102},[106,1550,1551,1553,1555,1557,1559,1561,1564],{"class":108,"line":109},[106,1552,140],{"class":112},[106,1554,144],{"class":143},[106,1556,121],{"class":120},[106,1558,5],{"class":143},[106,1560,121],{"class":120},[106,1562,1563],{"class":157},"WizardConfig",[106,1565,127],{"class":120},[106,1567,1568],{"class":108,"line":130},[106,1569,134],{"emptyLinePlaceholder":133},[106,1571,1572,1574,1576,1579,1581,1583],{"class":108,"line":137},[106,1573,903],{"class":188},[106,1575,216],{"class":188},[106,1577,1578],{"class":219}," wizard",[106,1580,223],{"class":120},[106,1582,227],{"class":226},[106,1584,1585],{"class":116}," WizardConfig\n",[106,1587,1588],{"class":108,"line":163},[106,1589,207],{"class":120},[106,1591,1592,1594,1597,1599,1601],{"class":108,"line":180},[106,1593,935],{"class":242},[106,1595,1596],{"class":116}," WizardConfig",[106,1598,255],{"class":226},[106,1600,258],{"class":219},[106,1602,742],{"class":120},[106,1604,1605,1608,1611,1613,1615,1618,1620,1622,1624,1627,1629],{"class":108,"line":185},[106,1606,1607],{"class":226},"        ->",[106,1609,1610],{"class":219},"step",[106,1612,261],{"class":120},[106,1614,265],{"class":264},[106,1616,1617],{"class":268},"Identity",[106,1619,265],{"class":264},[106,1621,760],{"class":120},[106,1623,615],{"class":264},[106,1625,1626],{"class":268},"Account details",[106,1628,265],{"class":264},[106,1630,991],{"class":120},[106,1632,1633,1635,1637,1639,1641,1643,1645,1647,1649,1652,1654],{"class":108,"line":204},[106,1634,1607],{"class":226},[106,1636,1610],{"class":219},[106,1638,261],{"class":120},[106,1640,265],{"class":264},[106,1642,913],{"class":268},[106,1644,265],{"class":264},[106,1646,760],{"class":120},[106,1648,615],{"class":264},[106,1650,1651],{"class":268},"Public information",[106,1653,265],{"class":264},[106,1655,991],{"class":120},[106,1657,1658,1660,1663],{"class":108,"line":210},[106,1659,1607],{"class":226},[106,1661,1662],{"class":219},"validateOnStep",[106,1664,742],{"class":120},[106,1666,1667,1669,1672,1674,1677,1679,1681,1684,1686,1688,1691,1693,1695,1698,1700,1702,1705,1707,1709,1712,1714],{"class":108,"line":233},[106,1668,1607],{"class":226},[106,1670,1671],{"class":219},"labels",[106,1673,261],{"class":120},[106,1675,1676],{"class":763},"next",[106,1678,227],{"class":120},[106,1680,615],{"class":264},[106,1682,1683],{"class":268},"Continue",[106,1685,265],{"class":264},[106,1687,760],{"class":120},[106,1689,1690],{"class":763}," prev",[106,1692,227],{"class":120},[106,1694,615],{"class":264},[106,1696,1697],{"class":268},"Back",[106,1699,265],{"class":264},[106,1701,760],{"class":120},[106,1703,1704],{"class":763}," submit",[106,1706,227],{"class":120},[106,1708,615],{"class":264},[106,1710,1711],{"class":268},"Save",[106,1713,265],{"class":264},[106,1715,1514],{"class":120},[106,1717,1718],{"class":108,"line":239},[106,1719,333],{"class":120},[88,1721,1722,1724],{},[92,1723,1563],{}," exposes:",[1726,1727,1728,1739,1747,1752],"ul",{},[689,1729,1730,434,1733,1298,1736],{},[92,1731,1732],{},"make(array $steps = [])",[92,1734,1735],{},"steps()",[92,1737,1738],{},"step()",[689,1740,1741,382,1744],{},[92,1742,1743],{},"enabled()",[92,1745,1746],{},"allowSkip()",[689,1748,1749],{},[92,1750,1751],{},"validateOnStep()",[689,1753,1754,434,1757,434,1760,1298,1763],{},[92,1755,1756],{},"labels()",[92,1758,1759],{},"nextLabel()",[92,1761,1762],{},"prevLabel()",[92,1764,1765],{},"submitLabel()",[88,1767,1768,1769,1771],{},"With no configured steps, each visible authorized fieldset becomes a step. Sequential array metadata is matched by fieldset index. A step may instead be selected with a ",[92,1770,385],{}," instance or integer fieldset index. Hidden fieldsets and fieldsets without a visible authorized child are omitted.",[335,1773,1775],{"id":1774},"upload-resolution","Upload resolution",[88,1777,1778],{},"After validation, secure upload tokens can be resolved from the form:",[97,1780,1782],{"className":99,"code":1781,"language":101,"meta":102,"style":102},"$data = $form->validated(files: false);\n\nif ($avatar = $form->upload('avatar')) {\n    $data['avatar_path'] = $avatar->store('avatars', 'public');\n}\n\nforeach ($form->uploads('documents') as $upload) {\n    $upload->store('documents', 'private');\n}\n",[92,1783,1784,1811,1815,1853,1903,1907,1911,1949,1978],{"__ignoreMap":102},[106,1785,1786,1788,1791,1793,1795,1797,1799,1801,1803,1805,1807,1809],{"class":108,"line":109},[106,1787,728],{"class":605},[106,1789,1790],{"class":143},"data ",[106,1792,612],{"class":226},[106,1794,606],{"class":605},[106,1796,963],{"class":143},[106,1798,277],{"class":226},[106,1800,1234],{"class":219},[106,1802,261],{"class":120},[106,1804,1239],{"class":763},[106,1806,227],{"class":120},[106,1808,1244],{"class":639},[106,1810,1514],{"class":120},[106,1812,1813],{"class":108,"line":130},[106,1814,134],{"emptyLinePlaceholder":133},[106,1816,1817,1820,1823,1825,1828,1830,1832,1834,1836,1839,1841,1843,1846,1848,1851],{"class":108,"line":137},[106,1818,1819],{"class":242},"if",[106,1821,1822],{"class":120}," (",[106,1824,728],{"class":605},[106,1826,1827],{"class":143},"avatar ",[106,1829,612],{"class":226},[106,1831,606],{"class":605},[106,1833,963],{"class":143},[106,1835,277],{"class":226},[106,1837,1838],{"class":219},"upload",[106,1840,261],{"class":120},[106,1842,265],{"class":264},[106,1844,1845],{"class":268},"avatar",[106,1847,265],{"class":264},[106,1849,1850],{"class":120},"))",[106,1852,1211],{"class":120},[106,1854,1855,1857,1859,1862,1864,1867,1869,1872,1875,1877,1879,1881,1884,1886,1888,1891,1893,1895,1897,1899,1901],{"class":108,"line":163},[106,1856,1216],{"class":605},[106,1858,786],{"class":143},[106,1860,1861],{"class":120},"[",[106,1863,265],{"class":264},[106,1865,1866],{"class":268},"avatar_path",[106,1868,265],{"class":264},[106,1870,1871],{"class":120},"]",[106,1873,1874],{"class":226}," =",[106,1876,606],{"class":605},[106,1878,1845],{"class":143},[106,1880,277],{"class":226},[106,1882,1883],{"class":219},"store",[106,1885,261],{"class":120},[106,1887,265],{"class":264},[106,1889,1890],{"class":268},"avatars",[106,1892,265],{"class":264},[106,1894,760],{"class":120},[106,1896,615],{"class":264},[106,1898,903],{"class":268},[106,1900,265],{"class":264},[106,1902,1514],{"class":120},[106,1904,1905],{"class":108,"line":180},[106,1906,333],{"class":120},[106,1908,1909],{"class":108,"line":185},[106,1910,134],{"emptyLinePlaceholder":133},[106,1912,1913,1916,1918,1920,1922,1924,1927,1929,1931,1934,1936,1938,1941,1943,1945,1947],{"class":108,"line":204},[106,1914,1915],{"class":242},"foreach",[106,1917,1822],{"class":120},[106,1919,728],{"class":605},[106,1921,963],{"class":143},[106,1923,277],{"class":226},[106,1925,1926],{"class":219},"uploads",[106,1928,261],{"class":120},[106,1930,265],{"class":264},[106,1932,1933],{"class":268},"documents",[106,1935,265],{"class":264},[106,1937,274],{"class":120},[106,1939,1940],{"class":226}," as",[106,1942,606],{"class":605},[106,1944,1838],{"class":143},[106,1946,274],{"class":120},[106,1948,1211],{"class":120},[106,1950,1951,1953,1955,1957,1959,1961,1963,1965,1967,1969,1971,1974,1976],{"class":108,"line":210},[106,1952,1216],{"class":605},[106,1954,1838],{"class":143},[106,1956,277],{"class":226},[106,1958,1883],{"class":219},[106,1960,261],{"class":120},[106,1962,265],{"class":264},[106,1964,1933],{"class":268},[106,1966,265],{"class":264},[106,1968,760],{"class":120},[106,1970,615],{"class":264},[106,1972,1973],{"class":268},"private",[106,1975,265],{"class":264},[106,1977,1514],{"class":120},[106,1979,1980],{"class":108,"line":233},[106,1981,333],{"class":120},[88,1983,1984,1987,1988,669,1991,1438,1993,1996],{},[92,1985,1986],{},"upload(string $name)"," returns one ",[92,1989,1990],{},"SubmittedUpload",[92,1992,567],{},[92,1994,1995],{},"uploads(string $name)"," returns submitted uploads in client order. The equivalent request macros are:",[97,1998,2000],{"className":99,"code":1999,"language":101,"meta":102,"style":102},"$request->formUpload('avatar');          \u002F\u002F ?SubmittedUpload\n$request->orderedFormUploads('gallery'); \u002F\u002F Illuminate\\Support\\Collection\n",[92,2001,2002,2029],{"__ignoreMap":102},[106,2003,2004,2006,2009,2011,2014,2016,2018,2020,2022,2025],{"class":108,"line":109},[106,2005,728],{"class":605},[106,2007,2008],{"class":143},"request",[106,2010,277],{"class":226},[106,2012,2013],{"class":219},"formUpload",[106,2015,261],{"class":120},[106,2017,265],{"class":264},[106,2019,1845],{"class":268},[106,2021,265],{"class":264},[106,2023,2024],{"class":120},");",[106,2026,2028],{"class":2027},"sdgcN","          \u002F\u002F ?SubmittedUpload\n",[106,2030,2031,2033,2035,2037,2040,2042,2044,2047,2049,2051],{"class":108,"line":130},[106,2032,728],{"class":605},[106,2034,2008],{"class":143},[106,2036,277],{"class":226},[106,2038,2039],{"class":219},"orderedFormUploads",[106,2041,261],{"class":120},[106,2043,265],{"class":264},[106,2045,2046],{"class":268},"gallery",[106,2048,265],{"class":264},[106,2050,2024],{"class":120},[106,2052,2053],{"class":2027}," \u002F\u002F Illuminate\\Support\\Collection\n",[88,2055,2056,1724],{},[92,2057,1990],{},[340,2059,2060,2069],{},[343,2061,2062],{},[346,2063,2064,2066],{},[349,2065,351],{},[349,2067,2068],{},"Result",[356,2070,2071,2084,2094,2119,2129,2143,2157],{},[346,2072,2073,2081],{},[361,2074,2075,538,2078],{},[92,2076,2077],{},"isNew()",[92,2079,2080],{},"isExisting()",[361,2082,2083],{},"Distinguishes a newly uploaded token from a retained existing-file token.",[346,2085,2086,2091],{},[361,2087,2088],{},[92,2089,2090],{},"getKey()",[361,2092,2093],{},"Returns the encrypted submitted token.",[346,2095,2096,2116],{},[361,2097,2098,434,2101,434,2104,434,2107,434,2110,434,2113],{},[92,2099,2100],{},"getIdentifier()",[92,2102,2103],{},"getName()",[92,2105,2106],{},"getMimeType()",[92,2108,2109],{},"getSize()",[92,2111,2112],{},"getPath()",[92,2114,2115],{},"getDisk()",[361,2117,2118],{},"Reads verified upload metadata.",[346,2120,2121,2126],{},[361,2122,2123],{},[92,2124,2125],{},"getUploadedFile()",[361,2127,2128],{},"Returns a materialized Laravel uploaded file for new temporary or chunked content.",[346,2130,2131,2136],{},[361,2132,2133],{},[92,2134,2135],{},"getRemoteFile()",[361,2137,2138,2139,2142],{},"Returns a ",[92,2140,2141],{},"RemoteFile"," for a completed direct upload.",[346,2144,2145,2150],{},[361,2146,2147],{},[92,2148,2149],{},"getExistingFile()",[361,2151,2152,2153,2156],{},"Returns an ",[92,2154,2155],{},"ExistingFile"," for retained existing content.",[346,2158,2159,2167],{},[361,2160,2161,538,2164],{},[92,2162,2163],{},"store()",[92,2165,2166],{},"storeAs()",[361,2168,2169],{},"Promotes a new upload. Existing files cannot be stored again through these methods.",[88,2171,2172,382,2174,2176,2177,2180],{},[92,2173,2163],{},[92,2175,2166],{}," delete package temporary content after promotion by default. Pass ",[92,2178,2179],{},"deleteTemporary: false"," only when coordinating an operation that must clean up after all related work succeeds.",[88,2182,2183,2184,2187,2188,2191,2192,2195],{},"Native ",[92,2185,2186],{},"storeWithForm()"," files remain Laravel ",[92,2189,2190],{},"UploadedFile"," values in ",[92,2193,2194],{},"validated()"," and in the request file bag; they are not returned by the token resolver.",[678,2197,2199],{"id":2198},"existing-files","Existing files",[88,2201,2202,2203,227],{},"Serialize retained files with ",[92,2204,2155],{},[97,2206,2208],{"className":99,"code":2207,"language":101,"meta":102,"style":102},"use Inertify\\Form\\Uploads\\ExistingFile;\n\nFile::make('document')->existingFiles([\n    ExistingFile::fromDisk(\n        'private',\n        'documents\u002Freport.pdf',\n        expiration: 300,\n    ),\n]);\n",[92,2209,2210,2230,2234,2261,2273,2283,2294,2306,2311],{"__ignoreMap":102},[106,2211,2212,2214,2216,2218,2220,2222,2224,2226,2228],{"class":108,"line":109},[106,2213,140],{"class":112},[106,2215,144],{"class":143},[106,2217,121],{"class":120},[106,2219,5],{"class":143},[106,2221,121],{"class":120},[106,2223,51],{"class":143},[106,2225,121],{"class":120},[106,2227,2155],{"class":157},[106,2229,127],{"class":120},[106,2231,2232],{"class":108,"line":130},[106,2233,134],{"emptyLinePlaceholder":133},[106,2235,2236,2238,2240,2242,2244,2246,2249,2251,2253,2255,2258],{"class":108,"line":137},[106,2237,1109],{"class":116},[106,2239,255],{"class":226},[106,2241,258],{"class":219},[106,2243,261],{"class":120},[106,2245,265],{"class":264},[106,2247,2248],{"class":268},"document",[106,2250,265],{"class":264},[106,2252,274],{"class":120},[106,2254,277],{"class":226},[106,2256,2257],{"class":219},"existingFiles",[106,2259,2260],{"class":120},"([\n",[106,2262,2263,2266,2268,2271],{"class":108,"line":163},[106,2264,2265],{"class":116},"    ExistingFile",[106,2267,255],{"class":226},[106,2269,2270],{"class":219},"fromDisk",[106,2272,1174],{"class":120},[106,2274,2275,2277,2279,2281],{"class":108,"line":180},[106,2276,960],{"class":264},[106,2278,1973],{"class":268},[106,2280,265],{"class":264},[106,2282,1188],{"class":120},[106,2284,2285,2287,2290,2292],{"class":108,"line":185},[106,2286,960],{"class":264},[106,2288,2289],{"class":268},"documents\u002Freport.pdf",[106,2291,265],{"class":264},[106,2293,1188],{"class":120},[106,2295,2296,2299,2301,2304],{"class":108,"line":204},[106,2297,2298],{"class":763},"        expiration",[106,2300,227],{"class":120},[106,2302,2303],{"class":1510}," 300",[106,2305,1188],{"class":120},[106,2307,2308],{"class":108,"line":210},[106,2309,2310],{"class":120},"    ),\n",[106,2312,2313],{"class":108,"line":233},[106,2314,2315],{"class":120},"]);\n",[88,2317,2318,2319,434,2322,434,2325,1298,2328,2331],{},"Public constructors are ",[92,2320,2321],{},"fromDisk()",[92,2323,2324],{},"fromFilesystem()",[92,2326,2327],{},"fromMediaLibrary()",[92,2329,2330],{},"fromMediaLibraryWithoutPreview()",". The resulting key is encrypted and expiring. Preview generation first attempts a temporary URL and then a regular filesystem URL.",[2333,2334,2335],"caution",{},"An existing-file token proves the package created that descriptor; it does not decide whether the current user may retain, delete, or reorder the underlying model attachment. Enforce that authorization in the application operation that consumes the form.",[678,2337,2339],{"id":2338},"media-library-adapter","Media Library adapter",[88,2341,2342],{},"Spatie Media Library is optional. For a compatible model, synchronize retained, added, removed, and reordered items after validation:",[97,2344,2346],{"className":99,"code":2345,"language":101,"meta":102,"style":102},"use Inertify\\Form\\Uploads\\MediaLibraryUploads;\n\n$media = MediaLibraryUploads::syncCollection(\n    request: request(),\n    model: $profile,\n    field: 'gallery',\n    collection: 'gallery',\n    disk: 'public',\n);\n",[92,2347,2348,2369,2373,2392,2403,2416,2431,2446,2461],{"__ignoreMap":102},[106,2349,2350,2352,2354,2356,2358,2360,2362,2364,2367],{"class":108,"line":109},[106,2351,140],{"class":112},[106,2353,144],{"class":143},[106,2355,121],{"class":120},[106,2357,5],{"class":143},[106,2359,121],{"class":120},[106,2361,51],{"class":143},[106,2363,121],{"class":120},[106,2365,2366],{"class":157},"MediaLibraryUploads",[106,2368,127],{"class":120},[106,2370,2371],{"class":108,"line":130},[106,2372,134],{"emptyLinePlaceholder":133},[106,2374,2375,2377,2380,2382,2385,2387,2390],{"class":108,"line":137},[106,2376,728],{"class":605},[106,2378,2379],{"class":143},"media ",[106,2381,612],{"class":226},[106,2383,2384],{"class":116}," MediaLibraryUploads",[106,2386,255],{"class":226},[106,2388,2389],{"class":219},"syncCollection",[106,2391,1174],{"class":120},[106,2393,2394,2397,2399,2401],{"class":108,"line":163},[106,2395,2396],{"class":763},"    request",[106,2398,227],{"class":120},[106,2400,1381],{"class":219},[106,2402,283],{"class":120},[106,2404,2405,2408,2410,2412,2414],{"class":108,"line":180},[106,2406,2407],{"class":763},"    model",[106,2409,227],{"class":120},[106,2411,606],{"class":605},[106,2413,757],{"class":143},[106,2415,1188],{"class":120},[106,2417,2418,2421,2423,2425,2427,2429],{"class":108,"line":185},[106,2419,2420],{"class":763},"    field",[106,2422,227],{"class":120},[106,2424,615],{"class":264},[106,2426,2046],{"class":268},[106,2428,265],{"class":264},[106,2430,1188],{"class":120},[106,2432,2433,2436,2438,2440,2442,2444],{"class":108,"line":204},[106,2434,2435],{"class":763},"    collection",[106,2437,227],{"class":120},[106,2439,615],{"class":264},[106,2441,2046],{"class":268},[106,2443,265],{"class":264},[106,2445,1188],{"class":120},[106,2447,2448,2451,2453,2455,2457,2459],{"class":108,"line":210},[106,2449,2450],{"class":763},"    disk",[106,2452,227],{"class":120},[106,2454,615],{"class":264},[106,2456,903],{"class":268},[106,2458,265],{"class":264},[106,2460,1188],{"class":120},[106,2462,2463],{"class":108,"line":233},[106,2464,1514],{"class":120},[88,2466,2467],{},"The adapter detects the public Media Library methods at runtime and throws when a model is incompatible. It does not install or configure Media Library.",[335,2469,2471],{"id":2470},"rich-text-helpers","Rich-text helpers",[88,2473,2474,2477,2478,2481,2482,95],{},[92,2475,2476],{},"RichText::imageUploads()"," creates a companion token list named ",[92,2479,2480],{},"\u003Cfield>_images",". The application-owned editor must place each matching token on its image as ",[92,2483,2484],{},"data-inertia-forms-upload",[88,2486,2487],{},"Store and rewrite the images after form validation:",[97,2489,2491],{"className":99,"code":2490,"language":101,"meta":102,"style":102},"use Inertify\\Form\\RichText\\RichTextImage;\nuse Inertify\\Form\\RichText\\RichTextUploads;\nuse Inertify\\Form\\Uploads\\SubmittedUpload;\n\n$html = RichTextUploads::from(request(), 'body')\n    ->storeImagesUsing(function (\n        SubmittedUpload $upload,\n        RichTextImage $image,\n    ): RichTextImage {\n        $path = $upload->store(\n            'post-images',\n            'private',\n            deleteTemporary: false,\n        );\n\n        return $image->identifier($path, ['disk' => 'private']);\n    })\n    ->keepTokenized()\n    ->toHtml();\n",[92,2492,2493,2515,2536,2556,2560,2593,2608,2619,2631,2643,2663,2675,2685,2696,2701,2705,2747,2753,2763],{"__ignoreMap":102},[106,2494,2495,2497,2499,2501,2503,2505,2508,2510,2513],{"class":108,"line":109},[106,2496,140],{"class":112},[106,2498,144],{"class":143},[106,2500,121],{"class":120},[106,2502,5],{"class":143},[106,2504,121],{"class":120},[106,2506,2507],{"class":143},"RichText",[106,2509,121],{"class":120},[106,2511,2512],{"class":157},"RichTextImage",[106,2514,127],{"class":120},[106,2516,2517,2519,2521,2523,2525,2527,2529,2531,2534],{"class":108,"line":130},[106,2518,140],{"class":112},[106,2520,144],{"class":143},[106,2522,121],{"class":120},[106,2524,5],{"class":143},[106,2526,121],{"class":120},[106,2528,2507],{"class":143},[106,2530,121],{"class":120},[106,2532,2533],{"class":157},"RichTextUploads",[106,2535,127],{"class":120},[106,2537,2538,2540,2542,2544,2546,2548,2550,2552,2554],{"class":108,"line":137},[106,2539,140],{"class":112},[106,2541,144],{"class":143},[106,2543,121],{"class":120},[106,2545,5],{"class":143},[106,2547,121],{"class":120},[106,2549,51],{"class":143},[106,2551,121],{"class":120},[106,2553,1990],{"class":157},[106,2555,127],{"class":120},[106,2557,2558],{"class":108,"line":163},[106,2559,134],{"emptyLinePlaceholder":133},[106,2561,2562,2564,2567,2569,2572,2574,2577,2579,2581,2584,2586,2589,2591],{"class":108,"line":180},[106,2563,728],{"class":605},[106,2565,2566],{"class":143},"html ",[106,2568,612],{"class":226},[106,2570,2571],{"class":116}," RichTextUploads",[106,2573,255],{"class":226},[106,2575,2576],{"class":219},"from",[106,2578,261],{"class":120},[106,2580,2008],{"class":219},[106,2582,2583],{"class":120},"(),",[106,2585,615],{"class":264},[106,2587,2588],{"class":268},"body",[106,2590,265],{"class":264},[106,2592,991],{"class":120},[106,2594,2595,2597,2600,2602,2605],{"class":108,"line":185},[106,2596,747],{"class":226},[106,2598,2599],{"class":219},"storeImagesUsing",[106,2601,261],{"class":120},[106,2603,2604],{"class":188},"function",[106,2606,2607],{"class":120}," (\n",[106,2609,2610,2613,2615,2617],{"class":108,"line":204},[106,2611,2612],{"class":116},"        SubmittedUpload",[106,2614,606],{"class":916},[106,2616,1838],{"class":919},[106,2618,1188],{"class":120},[106,2620,2621,2624,2626,2629],{"class":108,"line":210},[106,2622,2623],{"class":116},"        RichTextImage",[106,2625,606],{"class":916},[106,2627,2628],{"class":919},"image",[106,2630,1188],{"class":120},[106,2632,2633,2636,2638,2641],{"class":108,"line":233},[106,2634,2635],{"class":120},"    )",[106,2637,227],{"class":226},[106,2639,2640],{"class":116}," RichTextImage",[106,2642,1211],{"class":120},[106,2644,2645,2648,2651,2653,2655,2657,2659,2661],{"class":108,"line":239},[106,2646,2647],{"class":605},"        $",[106,2649,2650],{"class":143},"path ",[106,2652,612],{"class":226},[106,2654,606],{"class":605},[106,2656,1838],{"class":143},[106,2658,277],{"class":226},[106,2660,1883],{"class":219},[106,2662,1174],{"class":120},[106,2664,2665,2668,2671,2673],{"class":108,"line":249},[106,2666,2667],{"class":264},"            '",[106,2669,2670],{"class":268},"post-images",[106,2672,265],{"class":264},[106,2674,1188],{"class":120},[106,2676,2677,2679,2681,2683],{"class":108,"line":286},[106,2678,2667],{"class":264},[106,2680,1973],{"class":268},[106,2682,265],{"class":264},[106,2684,1188],{"class":120},[106,2686,2687,2690,2692,2694],{"class":108,"line":318},[106,2688,2689],{"class":763},"            deleteTemporary",[106,2691,227],{"class":120},[106,2693,1244],{"class":639},[106,2695,1188],{"class":120},[106,2697,2698],{"class":108,"line":324},[106,2699,2700],{"class":120},"        );\n",[106,2702,2703],{"class":108,"line":330},[106,2704,134],{"emptyLinePlaceholder":133},[106,2706,2708,2710,2712,2714,2716,2719,2721,2723,2726,2728,2730,2732,2735,2737,2739,2741,2743,2745],{"class":108,"line":2707},16,[106,2709,243],{"class":242},[106,2711,606],{"class":605},[106,2713,2628],{"class":143},[106,2715,277],{"class":226},[106,2717,2718],{"class":219},"identifier",[106,2720,261],{"class":120},[106,2722,728],{"class":605},[106,2724,2725],{"class":143},"path",[106,2727,760],{"class":120},[106,2729,769],{"class":120},[106,2731,265],{"class":264},[106,2733,2734],{"class":268},"disk",[106,2736,265],{"class":264},[106,2738,799],{"class":226},[106,2740,615],{"class":264},[106,2742,1973],{"class":268},[106,2744,265],{"class":264},[106,2746,2315],{"class":120},[106,2748,2750],{"class":108,"line":2749},17,[106,2751,2752],{"class":120},"    })\n",[106,2754,2756,2758,2761],{"class":108,"line":2755},18,[106,2757,747],{"class":226},[106,2759,2760],{"class":219},"keepTokenized",[106,2762,742],{"class":120},[106,2764,2766,2768,2771],{"class":108,"line":2765},19,[106,2767,747],{"class":226},[106,2769,2770],{"class":219},"toHtml",[106,2772,851],{"class":120},[88,2774,2775,2777,2778,2781],{},[92,2776,2533],{}," verifies that the companion list and HTML markers contain the same unique token set, rewrites image attributes, and deletes temporary tokens only after the complete rewrite. Token order and duplicate entries are ignored. ",[92,2779,2780],{},"storeImagesInMediaLibrary()"," is the optional adapter shortcut.",[88,2783,2784,2785,227],{},"For stored tokenized HTML, generate fresh delivery URLs with ",[92,2786,2787],{},"RichTextContent",[97,2789,2791],{"className":99,"code":2790,"language":101,"meta":102,"style":102},"use Illuminate\\Support\\Facades\\Storage;\nuse Inertify\\Form\\RichText\\RichTextContent;\n\n$html = RichTextContent::from($post->body)\n    ->replaceImagesUsing(function ($stored, $image) {\n        $disk = (string) $stored->meta('disk', 'private');\n\n        return $image->src(\n            Storage::disk($disk)->temporaryUrl(\n                $stored->identifier(),\n                now()->addMinutes(5),\n            ),\n        );\n    })\n    ->toHtml();\n",[92,2792,2793,2816,2836,2840,2868,2896,2937,2941,2956,2980,2993,3013,3018,3022,3026],{"__ignoreMap":102},[106,2794,2795,2797,2799,2801,2804,2806,2809,2811,2814],{"class":108,"line":109},[106,2796,140],{"class":112},[106,2798,1129],{"class":143},[106,2800,121],{"class":120},[106,2802,2803],{"class":143},"Support",[106,2805,121],{"class":120},[106,2807,2808],{"class":143},"Facades",[106,2810,121],{"class":120},[106,2812,2813],{"class":157},"Storage",[106,2815,127],{"class":120},[106,2817,2818,2820,2822,2824,2826,2828,2830,2832,2834],{"class":108,"line":130},[106,2819,140],{"class":112},[106,2821,144],{"class":143},[106,2823,121],{"class":120},[106,2825,5],{"class":143},[106,2827,121],{"class":120},[106,2829,2507],{"class":143},[106,2831,121],{"class":120},[106,2833,2787],{"class":157},[106,2835,127],{"class":120},[106,2837,2838],{"class":108,"line":137},[106,2839,134],{"emptyLinePlaceholder":133},[106,2841,2842,2844,2846,2848,2851,2853,2855,2857,2859,2862,2864,2866],{"class":108,"line":163},[106,2843,728],{"class":605},[106,2845,2566],{"class":143},[106,2847,612],{"class":226},[106,2849,2850],{"class":116}," RichTextContent",[106,2852,255],{"class":226},[106,2854,2576],{"class":219},[106,2856,261],{"class":120},[106,2858,728],{"class":605},[106,2860,2861],{"class":143},"post",[106,2863,277],{"class":226},[106,2865,2588],{"class":143},[106,2867,991],{"class":120},[106,2869,2870,2872,2875,2877,2879,2881,2883,2886,2888,2890,2892,2894],{"class":108,"line":180},[106,2871,747],{"class":226},[106,2873,2874],{"class":219},"replaceImagesUsing",[106,2876,261],{"class":120},[106,2878,2604],{"class":188},[106,2880,1822],{"class":120},[106,2882,728],{"class":916},[106,2884,2885],{"class":919},"stored",[106,2887,760],{"class":120},[106,2889,606],{"class":916},[106,2891,2628],{"class":919},[106,2893,274],{"class":120},[106,2895,1211],{"class":120},[106,2897,2898,2900,2903,2905,2907,2909,2911,2913,2915,2917,2919,2921,2923,2925,2927,2929,2931,2933,2935],{"class":108,"line":185},[106,2899,2647],{"class":605},[106,2901,2902],{"class":143},"disk ",[106,2904,612],{"class":226},[106,2906,1822],{"class":120},[106,2908,602],{"class":188},[106,2910,274],{"class":120},[106,2912,606],{"class":605},[106,2914,2885],{"class":143},[106,2916,277],{"class":226},[106,2918,1496],{"class":219},[106,2920,261],{"class":120},[106,2922,265],{"class":264},[106,2924,2734],{"class":268},[106,2926,265],{"class":264},[106,2928,760],{"class":120},[106,2930,615],{"class":264},[106,2932,1973],{"class":268},[106,2934,265],{"class":264},[106,2936,1514],{"class":120},[106,2938,2939],{"class":108,"line":204},[106,2940,134],{"emptyLinePlaceholder":133},[106,2942,2943,2945,2947,2949,2951,2954],{"class":108,"line":210},[106,2944,243],{"class":242},[106,2946,606],{"class":605},[106,2948,2628],{"class":143},[106,2950,277],{"class":226},[106,2952,2953],{"class":219},"src",[106,2955,1174],{"class":120},[106,2957,2958,2961,2963,2965,2967,2969,2971,2973,2975,2978],{"class":108,"line":233},[106,2959,2960],{"class":116},"            Storage",[106,2962,255],{"class":226},[106,2964,2734],{"class":219},[106,2966,261],{"class":120},[106,2968,728],{"class":605},[106,2970,2734],{"class":143},[106,2972,274],{"class":120},[106,2974,277],{"class":226},[106,2976,2977],{"class":219},"temporaryUrl",[106,2979,1174],{"class":120},[106,2981,2982,2985,2987,2989,2991],{"class":108,"line":239},[106,2983,2984],{"class":605},"                $",[106,2986,2885],{"class":143},[106,2988,277],{"class":226},[106,2990,2718],{"class":219},[106,2992,283],{"class":120},[106,2994,2995,2998,3000,3002,3005,3007,3010],{"class":108,"line":249},[106,2996,2997],{"class":219},"                now",[106,2999,223],{"class":120},[106,3001,277],{"class":226},[106,3003,3004],{"class":219},"addMinutes",[106,3006,261],{"class":120},[106,3008,3009],{"class":1510},"5",[106,3011,3012],{"class":120},"),\n",[106,3014,3015],{"class":108,"line":286},[106,3016,3017],{"class":120},"            ),\n",[106,3019,3020],{"class":108,"line":318},[106,3021,2700],{"class":120},[106,3023,3024],{"class":108,"line":324},[106,3025,2752],{"class":120},[106,3027,3028,3030,3032],{"class":108,"line":330},[106,3029,747],{"class":226},[106,3031,2770],{"class":219},[106,3033,851],{"class":120},[88,3035,3036,3038,3039,434,3042,434,3045,434,3048,434,3051,434,3054,434,3057,434,3060,434,3063,1298,3065,3068,3069,3072,3073,434,3075,434,3078,1298,3080,95],{},[92,3037,2512],{}," supports ",[92,3040,3041],{},"src()",[92,3043,3044],{},"alt()",[92,3046,3047],{},"title()",[92,3049,3050],{},"width()",[92,3052,3053],{},"height()",[92,3055,3056],{},"dimensions()",[92,3058,3059],{},"identifier()",[92,3061,3062],{},"attribute()",[92,3064,1079],{},[92,3066,3067],{},"toAttributes()",". The stored-image callback receives a ",[92,3070,3071],{},"RichTextStoredImage"," with ",[92,3074,3059],{},[92,3076,3077],{},"metadata()",[92,3079,1445],{},[92,3081,1079],{},[1279,3083,3084],{},"Rich-text helpers verify upload-token integrity and marker correspondence. They do not sanitize HTML. Sanitize untrusted content according to your application's allow-list before rendering it.",[3086,3087,3088],"style",{},"html pre.shiki code .scOca, html code.shiki .scOca{--shiki-light:#F76D47;--shiki-default:#CBA6F7;--shiki-dark:#CBA6F7}html pre.shiki code .s6-7G, html code.shiki .s6-7G{--shiki-light:#E2931D;--shiki-light-font-style:inherit;--shiki-default:#F9E2AF;--shiki-default-font-style:italic;--shiki-dark:#F9E2AF;--shiki-dark-font-style:italic}html pre.shiki code .sOG8g, html code.shiki .sOG8g{--shiki-light:#39ADB5;--shiki-default:#9399B2;--shiki-dark:#9399B2}html pre.shiki code .svMjs, html code.shiki .svMjs{--shiki-light:#90A4AE;--shiki-default:#CDD6F4;--shiki-dark:#CDD6F4}html pre.shiki code .spKqO, html code.shiki .spKqO{--shiki-light:#90A4AE;--shiki-light-font-style:inherit;--shiki-default:#F9E2AF;--shiki-default-font-style:italic;--shiki-dark:#F9E2AF;--shiki-dark-font-style:italic}html pre.shiki code .sNFzF, html code.shiki .sNFzF{--shiki-light:#9C3EDA;--shiki-default:#CBA6F7;--shiki-dark:#CBA6F7}html pre.shiki code .sgeHj, html code.shiki .sgeHj{--shiki-light:#6182B8;--shiki-light-font-style:inherit;--shiki-default:#89B4FA;--shiki-default-font-style:italic;--shiki-dark:#89B4FA;--shiki-dark-font-style:italic}html pre.shiki code .sWTNM, html code.shiki .sWTNM{--shiki-light:#39ADB5;--shiki-default:#94E2D5;--shiki-dark:#94E2D5}html pre.shiki code .su_vF, html code.shiki .su_vF{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#CBA6F7;--shiki-default-font-style:inherit;--shiki-dark:#CBA6F7;--shiki-dark-font-style:inherit}html pre.shiki code .sQGZM, html code.shiki .sQGZM{--shiki-light:#39ADB5;--shiki-default:#A6E3A1;--shiki-dark:#A6E3A1}html pre.shiki code .s2lAL, html code.shiki .s2lAL{--shiki-light:#91B859;--shiki-default:#A6E3A1;--shiki-dark:#A6E3A1}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 .sxSEj, html code.shiki .sxSEj{--shiki-light:#39ADB5;--shiki-default:#CDD6F4;--shiki-dark:#CDD6F4}html pre.shiki code .s27pR, html code.shiki .s27pR{--shiki-light:#39ADB5;--shiki-default:#CBA6F7;--shiki-dark:#CBA6F7}html pre.shiki code .sRLcR, html code.shiki .sRLcR{--shiki-light:#E2931D;--shiki-default:#CDD6F4;--shiki-dark:#CDD6F4}html pre.shiki code .sKlSU, html code.shiki .sKlSU{--shiki-light:#39ADB5;--shiki-default:#EBA0AC;--shiki-dark:#EBA0AC}html pre.shiki code .sVbGb, html code.shiki .sVbGb{--shiki-light:#90A4AE;--shiki-light-font-style:inherit;--shiki-default:#EBA0AC;--shiki-default-font-style:italic;--shiki-dark:#EBA0AC;--shiki-dark-font-style:italic}html pre.shiki code .sCOdc, html code.shiki .sCOdc{--shiki-light:#F76D47;--shiki-default:#FAB387;--shiki-dark:#FAB387}html pre.shiki code .sdgcN, html code.shiki .sdgcN{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#9399B2;--shiki-default-font-style:italic;--shiki-dark:#9399B2;--shiki-dark-font-style:italic}",{"title":102,"searchDepth":130,"depth":130,"links":3090},[3091,3094,3095,3096,3097,3098,3102],{"id":337,"depth":130,"text":338,"children":3092},[3093],{"id":680,"depth":137,"text":681},{"id":854,"depth":130,"text":855},{"id":1039,"depth":130,"text":1040},{"id":1288,"depth":130,"text":1289},{"id":1532,"depth":130,"text":1533},{"id":1774,"depth":130,"text":1775,"children":3099},[3100,3101],{"id":2198,"depth":137,"text":2199},{"id":2338,"depth":137,"text":2339},{"id":2470,"depth":130,"text":2471},"Form lifecycle, validation, authorization, wizards, uploads, and rich-text helpers.","md",null,{},{"title":67,"description":3103},"B9W8o1C3Qbtkd_UdUdr6aiwYyYGM1KaXHBQxZiHLs7c",[3110,3112],{"title":64,"path":65,"stem":61,"description":3111,"children":-1},"Public field classes, shared fluent methods, value shapes, conditions, and extension points.",{"title":71,"path":72,"stem":73,"description":3113,"children":-1},"Public entry points, form engine, renderless components, renderer factory, composables, and controllers.",1786995560669]