[{"data":1,"prerenderedAt":287},["ShallowReactive",2],{"navigation_docs":3,"-form-getting-started-installation":82,"-form-getting-started-installation-surround":284},[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":15,"body":84,"description":276,"extension":277,"links":278,"meta":279,"navigation":280,"path":16,"seo":281,"stem":12,"__hash__":283},"docs\u002Fform\u002F1.getting-started\u002F1.installation.md",{"type":85,"value":86,"toc":269},"minimark",[87,92,121,125,129,132,170,177,181,184,203,214,218,221,238,249,253,257,265],[88,89,91],"h2",{"id":90},"requirements","Requirements",[93,94,95,99,102,109,112,115],"ul",{},[96,97,98],"li",{},"PHP 8.3 or newer",[96,100,101],{},"Laravel 12 or 13",[96,103,104,108],{},[105,106,107],"code",{},"inertiajs\u002Finertia-laravel"," 3.3 or newer",[96,110,111],{},"Node.js 20 or newer",[96,113,114],{},"Vue 3.5 or newer",[96,116,117,120],{},[105,118,119],{},"@inertiajs\u002Fvue3"," 3.6 or newer",[122,123,124],"p",{},"React is not supported.",[88,126,128],{"id":127},"install-both-packages","Install both packages",[122,130,131],{},"Install the Laravel package with Composer and the Vue runtime with your application's package manager:",[133,134,140],"pre",{"className":135,"code":136,"filename":137,"language":138,"meta":139,"style":139},"language-bash shiki shiki-themes material-theme-lighter catppuccin-mocha catppuccin-mocha","composer require inertify\u002Fform\nnpm install @inertify\u002Fform-vue\n","Terminal","bash","",[105,141,142,158],{"__ignoreMap":139},[143,144,147,151,155],"span",{"class":145,"line":146},"line",1,[143,148,150],{"class":149},"slOSs","composer",[143,152,154],{"class":153},"s2lAL"," require",[143,156,157],{"class":153}," inertify\u002Fform\n",[143,159,161,164,167],{"class":145,"line":160},2,[143,162,163],{"class":149},"npm",[143,165,166],{"class":153}," install",[143,168,169],{"class":153}," @inertify\u002Fform-vue\n",[122,171,172,173,176],{},"Laravel discovers ",[105,174,175],{},"Inertify\\Form\\FormServiceProvider"," automatically. No manual provider registration is required.",[88,178,180],{"id":179},"generate-a-form","Generate a form",[122,182,183],{},"Create a container-resolved form class with the Artisan generator:",[133,185,187],{"className":135,"code":186,"filename":137,"language":138,"meta":139,"style":139},"php artisan make:form ProfileForm\n",[105,188,189],{"__ignoreMap":139},[143,190,191,194,197,200],{"class":145,"line":146},[143,192,193],{"class":149},"php",[143,195,196],{"class":153}," artisan",[143,198,199],{"class":153}," make:form",[143,201,202],{"class":153}," ProfileForm\n",[122,204,205,206,209,210,213],{},"The command creates ",[105,207,208],{},"app\u002FForms\u002FProfileForm.php",". Add field objects to its ",[105,211,212],{},"fields()"," method, then pass the form directly to Inertia.",[88,215,217],{"id":216},"optional-configuration","Optional configuration",[122,219,220],{},"The default configuration is suitable until you enable or customize uploads. Publish it with:",[133,222,224],{"className":135,"code":223,"filename":137,"language":138,"meta":139,"style":139},"php artisan vendor:publish --tag=inertia-forms-config\n",[105,225,226],{"__ignoreMap":139},[143,227,228,230,232,235],{"class":145,"line":146},[143,229,193],{"class":149},[143,231,196],{"class":153},[143,233,234],{"class":153}," vendor:publish",[143,236,237],{"class":153}," --tag=inertia-forms-config\n",[122,239,240,241,244,245,248],{},"The aliases ",[105,242,243],{},"inertify-form"," and ",[105,246,247],{},"inertify-form-config"," are also registered for package-native publishing workflows.",[250,251,252],"warning",{},"Upload routes are opt-in. Register them only when a form uses managed uploads, and retain authentication plus application-specific authorization, tenant, and rate-limit middleware.",[88,254,256],{"id":255},"next-step","Next step",[122,258,259,260,264],{},"Build a server-side schema and validate it in a controller on the ",[261,262,263],"a",{"href":19},"first form"," page.",[266,267,268],"style",{},"html pre.shiki code .slOSs, html code.shiki .slOSs{--shiki-light:#E2931D;--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 .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);}",{"title":139,"searchDepth":160,"depth":160,"links":270},[271,272,273,274,275],{"id":90,"depth":160,"text":91},{"id":127,"depth":160,"text":128},{"id":179,"depth":160,"text":180},{"id":216,"depth":160,"text":217},{"id":255,"depth":160,"text":256},"Install the Laravel and Vue packages and prepare your application for its first headless form.","md",null,{},true,{"title":15,"description":282},"Install Inertify Form in a Laravel, Inertia, and Vue application.","Zzbn4AtNGJLeHlIYnohOXYAXKQVthPhzpQ4tkrarmOs",[278,285],{"title":18,"path":19,"stem":20,"description":286,"children":-1},"Define a Laravel form schema, return it through Inertia, and validate it in a controller.",1786995560341]