[{"data":1,"prerenderedAt":1786},["ShallowReactive",2],{"navigation":3,"\u002Fapi\u002Fconsole-commands":342,"\u002Fapi\u002Fconsole-commands-surround":1781},[4,14,36,69,140,325],{"title":5,"path":6,"stem":7,"children":8},"Introduction","\u002Fgetting-started","1.getting-started\u002F1.index",[9,10],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":15,"path":16,"stem":17,"children":18,"page":35},"Guides","\u002Fguides","2.guides",[19,23,27,31],{"title":20,"path":21,"stem":22},"Your First Layout","\u002Fguides\u002Fyour-first-layout","2.guides\u002F1.your-first-layout",{"title":24,"path":25,"stem":26},"Your First Page Template","\u002Fguides\u002Fyour-first-page-template","2.guides\u002F2.your-first-page-template",{"title":28,"path":29,"stem":30},"Your First Component","\u002Fguides\u002Fyour-first-component","2.guides\u002F3.your-first-component",{"title":32,"path":33,"stem":34},"Alternative UI Variants","\u002Fguides\u002Falternative-ui-variants","2.guides\u002F4.alternative-ui-variants",false,{"title":37,"path":38,"stem":39,"children":40,"page":35},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[41,45,49,53,57,61,65],{"title":42,"path":43,"stem":44},"How It All Works","\u002Fcore-concepts\u002Farchitecture","3.core-concepts\u002F1.architecture",{"title":46,"path":47,"stem":48},"The Data Model","\u002Fcore-concepts\u002Fthe-data-model","3.core-concepts\u002F2.the-data-model",{"title":50,"path":51,"stem":52},"Layouts & Pages","\u002Fcore-concepts\u002Flayouts-and-pages","3.core-concepts\u002F3.layouts-and-pages",{"title":54,"path":55,"stem":56},"Dynamic Pages","\u002Fcore-concepts\u002Fdynamic-pages","3.core-concepts\u002F4.dynamic-pages",{"title":58,"path":59,"stem":60},"Components","\u002Fcore-concepts\u002Fcomponents","3.core-concepts\u002F5.components",{"title":62,"path":63,"stem":64},"Draft & Publish Workflow","\u002Fcore-concepts\u002Fdraft-and-publish","3.core-concepts\u002F6.draft-and-publish",{"title":66,"path":67,"stem":68},"The Admin Panel","\u002Fcore-concepts\u002Fadmin-panel","3.core-concepts\u002F7.admin-panel",{"title":70,"path":71,"stem":72,"children":73,"page":35},"Api","\u002Fapi","4.api",[74,78,116,120,124,128,132,136],{"title":75,"path":76,"stem":77},"Bundle Setup","\u002Fapi\u002Fbundle-setup","4.api\u002F1.bundle-setup",{"title":58,"path":79,"stem":80,"children":81,"page":35},"\u002Fapi\u002Fcomponents","4.api\u002F2.components",[82,86,103],{"title":83,"path":84,"stem":85},"Creating Components","\u002Fapi\u002Fcomponents\u002Fcreating-components","4.api\u002F2.components\u002F1.creating-components",{"title":87,"path":88,"stem":89,"children":90,"page":35},"Annotations","\u002Fapi\u002Fcomponents\u002Fannotations","4.api\u002F2.components\u002F2.annotations",[91,95,99],{"title":92,"path":93,"stem":94},"Publishable","\u002Fapi\u002Fcomponents\u002Fannotations\u002Fpublishable","4.api\u002F2.components\u002F2.annotations\u002F1.publishable",{"title":96,"path":97,"stem":98},"Uploadable","\u002Fapi\u002Fcomponents\u002Fannotations\u002Fuploadable","4.api\u002F2.components\u002F2.annotations\u002F2.uploadable",{"title":100,"path":101,"stem":102},"Timestamped","\u002Fapi\u002Fcomponents\u002Fannotations\u002Ftimestamped","4.api\u002F2.components\u002F2.annotations\u002F3.timestamped",{"title":104,"path":105,"stem":106,"children":107,"page":35},"Built Ins","\u002Fapi\u002Fcomponents\u002Fbuilt-ins","4.api\u002F2.components\u002F3.built-ins",[108,112],{"title":109,"path":110,"stem":111},"Collection Component","\u002Fapi\u002Fcomponents\u002Fbuilt-ins\u002Fcollection-component","4.api\u002F2.components\u002F3.built-ins\u002F1.collection-component",{"title":113,"path":114,"stem":115},"Form Component","\u002Fapi\u002Fcomponents\u002Fbuilt-ins\u002Fform-component","4.api\u002F2.components\u002F3.built-ins\u002F2.form-component",{"title":117,"path":118,"stem":119},"Dynamic & Nested Pages","\u002Fapi\u002Fdynamic-pages","4.api\u002F3.dynamic-pages",{"title":121,"path":122,"stem":123},"Users & Security","\u002Fapi\u002Fusers-and-security","4.api\u002F4.users-and-security",{"title":125,"path":126,"stem":127},"Data Fixtures","\u002Fapi\u002Fdata-fixtures","4.api\u002F5.data-fixtures",{"title":129,"path":130,"stem":131},"Configuration Reference","\u002Fapi\u002Fconfiguration","4.api\u002F6.configuration",{"title":133,"path":134,"stem":135},"Console Commands","\u002Fapi\u002Fconsole-commands","4.api\u002F7.console-commands",{"title":137,"path":138,"stem":139},"Debugging & Profiler","\u002Fapi\u002Fdebugging","4.api\u002F8.debugging",{"title":141,"path":142,"stem":143,"children":144,"page":35},"Nuxt Module","\u002Fnuxt-module","5.nuxt-module",[145,149,162,178,203,207,279,304,308],{"title":146,"path":147,"stem":148},"Module Setup","\u002Fnuxt-module\u002Fmodule-setup","5.nuxt-module\u002F1.module-setup",{"title":150,"path":151,"stem":152,"children":153,"page":35},"Configuration","\u002Fnuxt-module\u002Fconfiguration","5.nuxt-module\u002F2.configuration",[154,158],{"title":155,"path":156,"stem":157},"Nuxt Config","\u002Fnuxt-module\u002Fconfiguration\u002Fnuxt-config","5.nuxt-module\u002F2.configuration\u002F1.nuxt-config",{"title":159,"path":160,"stem":161},"Site Config & SEO","\u002Fnuxt-module\u002Fconfiguration\u002Fsite-config-and-seo","5.nuxt-module\u002F2.configuration\u002F2.site-config-and-seo",{"title":163,"path":164,"stem":165,"children":166,"page":35},"Building Your Ui","\u002Fnuxt-module\u002Fbuilding-your-ui","5.nuxt-module\u002F3.building-your-ui",[167,171,175],{"title":168,"path":169,"stem":170},"Layouts","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-layouts","5.nuxt-module\u002F3.building-your-ui\u002F1.creating-layouts",{"title":172,"path":173,"stem":174},"Page Templates","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-page-templates","5.nuxt-module\u002F3.building-your-ui\u002F2.creating-page-templates",{"title":83,"path":176,"stem":177},"\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-components","5.nuxt-module\u002F3.building-your-ui\u002F3.creating-components",{"title":179,"path":180,"stem":181,"children":182,"page":35},"Cwa Components","\u002Fnuxt-module\u002Fcwa-components","5.nuxt-module\u002F4.cwa-components",[183,187,191,195,199],{"title":184,"path":185,"stem":186},"\u003CCwaComponentGroup \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-component-group","5.nuxt-module\u002F4.cwa-components\u002F1.cwa-component-group",{"title":188,"path":189,"stem":190},"\u003CCwaPage \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-page","5.nuxt-module\u002F4.cwa-components\u002F2.cwa-page",{"title":192,"path":193,"stem":194},"\u003CCwaLink \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-link","5.nuxt-module\u002F4.cwa-components\u002F3.cwa-link",{"title":196,"path":197,"stem":198},"\u003CCwaImage \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-image","5.nuxt-module\u002F4.cwa-components\u002F4.cwa-image",{"title":200,"path":201,"stem":202},"\u003CCwaDefaultLayout \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-default-layout","5.nuxt-module\u002F4.cwa-components\u002F5.cwa-default-layout",{"title":204,"path":205,"stem":206},"The useCwa() API","\u002Fnuxt-module\u002Fcwa-api","5.nuxt-module\u002F5.cwa-api",{"title":208,"path":209,"stem":210,"children":211,"page":35},"Composables","\u002Fnuxt-module\u002Fcomposables","5.nuxt-module\u002F6.composables",[212,245,262],{"title":213,"path":214,"stem":215,"children":216,"page":35},"Component","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent","5.nuxt-module\u002F6.composables\u002F1.component",[217,221,225,229,233,237,241],{"title":218,"path":219,"stem":220},"Resource","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-resource","5.nuxt-module\u002F6.composables\u002F1.component\u002F1.use-cwa-resource",{"title":222,"path":223,"stem":224},"Collection Resource","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-collection-resource","5.nuxt-module\u002F6.composables\u002F1.component\u002F2.use-cwa-collection-resource",{"title":226,"path":227,"stem":228},"Image Resource","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-image-resource","5.nuxt-module\u002F6.composables\u002F1.component\u002F3.use-cwa-image-resource",{"title":230,"path":231,"stem":232},"Form","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form","5.nuxt-module\u002F6.composables\u002F1.component\u002F4.use-cwa-form",{"title":234,"path":235,"stem":236},"Form Input","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form-input","5.nuxt-module\u002F6.composables\u002F1.component\u002F5.use-cwa-form-input",{"title":238,"path":239,"stem":240},"Form Repeated","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form-repeated","5.nuxt-module\u002F6.composables\u002F1.component\u002F6.use-cwa-form-repeated",{"title":242,"path":243,"stem":244},"Form Collection","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form-collection","5.nuxt-module\u002F6.composables\u002F1.component\u002F7.use-cwa-form-collection",{"title":246,"path":247,"stem":248,"children":249,"page":35},"Admin Manager","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager","5.nuxt-module\u002F6.composables\u002F2.admin-manager",[250,254,258],{"title":251,"path":252,"stem":253},"Manager Tab","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-resource-manager-tab","5.nuxt-module\u002F6.composables\u002F2.admin-manager\u002F1.use-cwa-resource-manager-tab",{"title":255,"path":256,"stem":257},"Resource Model","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-resource-model","5.nuxt-module\u002F6.composables\u002F2.admin-manager\u002F2.use-cwa-resource-model",{"title":259,"path":260,"stem":261},"Resource Upload","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager\u002Fuse-cwa-resource-upload","5.nuxt-module\u002F6.composables\u002F2.admin-manager\u002F3.use-cwa-resource-upload",{"title":263,"path":264,"stem":265,"children":266,"page":35},"Utilities","\u002Fnuxt-module\u002Fcomposables\u002Futilities","5.nuxt-module\u002F6.composables\u002F3.utilities",[267,271,275],{"title":268,"path":269,"stem":270},"Resource Endpoint","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-cwa-resource-endpoint","5.nuxt-module\u002F6.composables\u002F3.utilities\u002F1.use-cwa-resource-endpoint",{"title":272,"path":273,"stem":274},"Query Model","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-query-bound-model","5.nuxt-module\u002F6.composables\u002F3.utilities\u002F2.use-query-bound-model",{"title":276,"path":277,"stem":278},"Resource Route","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-cwa-resource-route","5.nuxt-module\u002F6.composables\u002F3.utilities\u002F3.use-cwa-resource-route",{"title":280,"path":281,"stem":282,"children":283,"page":35},"Component Helpers","\u002Fnuxt-module\u002Fcomponent-helpers","5.nuxt-module\u002F7.component-helpers",[284,288,292,296,300],{"title":285,"path":286,"stem":287},"Images & Media","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fimages-and-uploads","5.nuxt-module\u002F7.component-helpers\u002F1.images-and-uploads",{"title":289,"path":290,"stem":291},"Collections & Pagination","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fcollections-and-pagination","5.nuxt-module\u002F7.component-helpers\u002F2.collections-and-pagination",{"title":293,"path":294,"stem":295},"HTML Content","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fhtml-content","5.nuxt-module\u002F7.component-helpers\u002F3.html-content",{"title":297,"path":298,"stem":299},"Real-Time Updates","\u002Fnuxt-module\u002Fcomponent-helpers\u002Freal-time-updates","5.nuxt-module\u002F7.component-helpers\u002F4.real-time-updates",{"title":301,"path":302,"stem":303},"Forms","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fforms","5.nuxt-module\u002F7.component-helpers\u002F5.forms",{"title":305,"path":306,"stem":307},"Authentication","\u002Fnuxt-module\u002Fauthentication","5.nuxt-module\u002F8.authentication",{"title":309,"path":310,"stem":311,"children":312,"page":35},"Cwa Layer","\u002Fnuxt-module\u002Fcwa-layer","5.nuxt-module\u002F9.cwa-layer",[313,317,321],{"title":314,"path":315,"stem":316},"Overview","\u002Fnuxt-module\u002Fcwa-layer\u002Foverview","5.nuxt-module\u002F9.cwa-layer\u002F1.overview",{"title":318,"path":319,"stem":320},"Auth Pages","\u002Fnuxt-module\u002Fcwa-layer\u002Fauth-pages","5.nuxt-module\u002F9.cwa-layer\u002F2.auth-pages",{"title":322,"path":323,"stem":324},"Admin Panel","\u002Fnuxt-module\u002Fcwa-layer\u002Fadmin-panel","5.nuxt-module\u002F9.cwa-layer\u002F3.admin-panel",{"title":326,"path":327,"stem":328,"children":329,"page":35},"Deployment","\u002Fdeployment","6.deployment",[330,334,338],{"title":331,"path":332,"stem":333},"Docker","\u002Fdeployment\u002Fdocker","6.deployment\u002F1.docker",{"title":335,"path":336,"stem":337},"Kubernetes & Helm","\u002Fdeployment\u002Fkubernetes","6.deployment\u002F2.kubernetes",{"title":339,"path":340,"stem":341},"CI\u002FCD","\u002Fdeployment\u002Fci-cd","6.deployment\u002F3.ci-cd",{"id":343,"title":133,"badge":344,"body":345,"description":1776,"extension":1777,"links":344,"meta":1778,"navigation":605,"path":134,"seo":1779,"stem":135,"__hash__":1780},"docs\u002F4.api\u002F7.console-commands.md",null,{"type":346,"value":347,"toc":1757},"minimark",[348,357,396,399,433,440,443,457,460,487,492,557,570,576,579,654,659,670,684,687,690,694,709,715,721,735,738,761,764,825,829,1027,1034,1040,1050,1064,1067,1096,1107,1111,1278,1281,1306,1311,1317,1324,1338,1341,1370,1373,1421,1424,1705,1712,1743,1753],[349,350,351,352,356],"p",{},"Most commands use the ",[353,354,355],"code",{},"silverback:api-components:"," prefix. Run them via the Symfony console:",[358,359,364],"pre",{"className":360,"code":361,"language":362,"meta":363,"style":363},"language-bash shiki shiki-themes github-light github-dark material-theme-palenight","php bin\u002Fconsole silverback:api-components:\u003Ccommand>\n","bash","",[353,365,366],{"__ignoreMap":363},[367,368,371,375,379,382,386,389,393],"span",{"class":369,"line":370},"line",1,[367,372,374],{"class":373},"sRCss","php",[367,376,378],{"class":377},"sLL54"," bin\u002Fconsole",[367,380,381],{"class":377}," silverback:api-components:",[367,383,385],{"class":384},"sVlFx","\u003C",[367,387,388],{"class":377},"comman",[367,390,392],{"class":391},"sPB8G","d",[367,394,395],{"class":384},">\n",[349,397,398],{},"In a Docker Compose setup, prefix with the service name:",[358,400,402],{"className":360,"code":401,"language":362,"meta":363,"style":363},"docker compose exec api php bin\u002Fconsole silverback:api-components:\u003Ccommand>\n",[353,403,404],{"__ignoreMap":363},[367,405,406,409,412,415,418,421,423,425,427,429,431],{"class":369,"line":370},[367,407,408],{"class":373},"docker",[367,410,411],{"class":377}," compose",[367,413,414],{"class":377}," exec",[367,416,417],{"class":377}," api",[367,419,420],{"class":377}," php",[367,422,378],{"class":377},[367,424,381],{"class":377},[367,426,385],{"class":384},[367,428,388],{"class":377},[367,430,392],{"class":391},[367,432,395],{"class":384},[434,435,437],"h2",{"id":436},"usercreate",[353,438,439],{},"user:create",[349,441,442],{},"Create a user account directly from the command line, without going through the registration API. Useful for creating the first admin on a fresh installation before the front-end is set up.",[358,444,446],{"className":360,"code":445,"language":362,"meta":363,"style":363},"php bin\u002Fconsole silverback:api-components:user:create\n",[353,447,448],{"__ignoreMap":363},[367,449,450,452,454],{"class":369,"line":370},[367,451,374],{"class":373},[367,453,378],{"class":377},[367,455,456],{"class":377}," silverback:api-components:user:create\n",[349,458,459],{},"The command prompts interactively for username, email, and password. You can also pass them as positional arguments:",[358,461,463],{"className":360,"code":462,"language":362,"meta":363,"style":363},"php bin\u002Fconsole silverback:api-components:user:create alice alice@example.com s3cr3t --admin\n",[353,464,465],{"__ignoreMap":363},[367,466,467,469,471,474,477,480,483],{"class":369,"line":370},[367,468,374],{"class":373},[367,470,378],{"class":377},[367,472,473],{"class":377}," silverback:api-components:user:create",[367,475,476],{"class":377}," alice",[367,478,479],{"class":377}," alice@example.com",[367,481,482],{"class":377}," s3cr3t",[367,484,486],{"class":485},"szhYu"," --admin\n",[488,489,491],"h3",{"id":490},"options","Options",[493,494,495,508],"table",{},[496,497,498],"thead",{},[499,500,501,505],"tr",{},[502,503,504],"th",{},"Option",[502,506,507],{},"Description",[509,510,511,525,537,547],"tbody",{},[499,512,513,519],{},[514,515,516],"td",{},[353,517,518],{},"--admin",[514,520,521,522],{},"Create with ",[353,523,524],{},"ROLE_ADMIN",[499,526,527,532],{},[514,528,529],{},[353,530,531],{},"--super-admin",[514,533,521,534],{},[353,535,536],{},"ROLE_SUPER_ADMIN",[499,538,539,544],{},[514,540,541],{},[353,542,543],{},"--inactive",[514,545,546],{},"Create as disabled (cannot log in until enabled)",[499,548,549,554],{},[514,550,551],{},[353,552,553],{},"--overwrite",[514,555,556],{},"Update the user if they already exist instead of erroring",[349,558,559,560,562,563,565,566,569],{},"Without ",[353,561,518],{}," or ",[353,564,531],{},", the user is created with ",[353,567,568],{},"ROLE_USER"," only.",[434,571,573],{"id":572},"refresh-tokensexpire",[353,574,575],{},"refresh-tokens:expire",[349,577,578],{},"Expire all refresh tokens, or all tokens for a specific user. Use this to force re-login after a security incident or account change.",[358,580,582],{"className":360,"code":581,"language":362,"meta":363,"style":363},"# Expire all tokens for all users\nphp bin\u002Fconsole silverback:api-components:refresh-tokens:expire\n\n# Expire tokens for one user (by username)\nphp bin\u002Fconsole silverback:api-components:refresh-tokens:expire alice\n\n# Expire by email instead of username\nphp bin\u002Fconsole silverback:api-components:refresh-tokens:expire alice@example.com --field email\n",[353,583,584,590,600,607,613,626,631,637],{"__ignoreMap":363},[367,585,586],{"class":369,"line":370},[367,587,589],{"class":588},"sTBSN","# Expire all tokens for all users\n",[367,591,593,595,597],{"class":369,"line":592},2,[367,594,374],{"class":373},[367,596,378],{"class":377},[367,598,599],{"class":377}," silverback:api-components:refresh-tokens:expire\n",[367,601,603],{"class":369,"line":602},3,[367,604,606],{"emptyLinePlaceholder":605},true,"\n",[367,608,610],{"class":369,"line":609},4,[367,611,612],{"class":588},"# Expire tokens for one user (by username)\n",[367,614,616,618,620,623],{"class":369,"line":615},5,[367,617,374],{"class":373},[367,619,378],{"class":377},[367,621,622],{"class":377}," silverback:api-components:refresh-tokens:expire",[367,624,625],{"class":377}," alice\n",[367,627,629],{"class":369,"line":628},6,[367,630,606],{"emptyLinePlaceholder":605},[367,632,634],{"class":369,"line":633},7,[367,635,636],{"class":588},"# Expire by email instead of username\n",[367,638,640,642,644,646,648,651],{"class":369,"line":639},8,[367,641,374],{"class":373},[367,643,378],{"class":377},[367,645,622],{"class":377},[367,647,479],{"class":377},[367,649,650],{"class":485}," --field",[367,652,653],{"class":377}," email\n",[434,655,657],{"id":656},"clean-orphaned",[353,658,656],{},[349,660,661,662,665,666,669],{},"Scan every ",[353,663,664],{},"ComponentGroup"," and ",[353,667,668],{},"AbstractComponent"," in the database and delete any that are no longer attached to any layout, page, or parent component.",[358,671,673],{"className":360,"code":672,"language":362,"meta":363,"style":363},"php bin\u002Fconsole silverback:api-components:clean-orphaned\n",[353,674,675],{"__ignoreMap":363},[367,676,677,679,681],{"class":369,"line":370},[367,678,374],{"class":373},[367,680,378],{"class":377},[367,682,683],{"class":377}," silverback:api-components:clean-orphaned\n",[349,685,686],{},"Run this after bulk deletions or data migrations to keep the database tidy. The command outputs a progress bar and reports how many orphaned records were removed.",[688,689],"hr",{},[434,691,693],{"id":692},"maker-commands","Maker Commands",[349,695,696,697,700,701,708],{},"These commands use the standard ",[353,698,699],{},"make:"," prefix from ",[702,703,707],"a",{"href":704,"rel":705},"https:\u002F\u002Fsymfony.com\u002Fbundles\u002FSymfonyMakerBundle\u002Fcurrent\u002Findex.html",[706],"nofollow","Symfony MakerBundle"," and are only registered when MakerBundle is installed.",[434,710,712],{"id":711},"makeapi-component",[353,713,714],{},"make:api-component",[349,716,717,718,720],{},"Generate a new ",[353,719,668],{}," entity with the correct namespace, attributes, and optional behaviour traits wired up automatically.",[358,722,724],{"className":360,"code":723,"language":362,"meta":363,"style":363},"php bin\u002Fconsole make:api-component\n",[353,725,726],{"__ignoreMap":363},[367,727,728,730,732],{"class":369,"line":370},[367,729,374],{"class":373},[367,731,378],{"class":377},[367,733,734],{"class":377}," make:api-component\n",[349,736,737],{},"The command prompts interactively for the class name and which behaviours to add. You can also pass everything as arguments:",[358,739,741],{"className":360,"code":740,"language":362,"meta":363,"style":363},"php bin\u002Fconsole make:api-component HeroBlock --timestamped --publishable\n",[353,742,743],{"__ignoreMap":363},[367,744,745,747,749,752,755,758],{"class":369,"line":370},[367,746,374],{"class":373},[367,748,378],{"class":377},[367,750,751],{"class":377}," make:api-component",[367,753,754],{"class":377}," HeroBlock",[367,756,757],{"class":485}," --timestamped",[367,759,760],{"class":485}," --publishable\n",[488,762,491],{"id":763},"options-1",[765,766,767,792,806],"ul",{},[768,769,770,776,777,780,781,784,785,788,789],"li",{},[771,772,773],"strong",{},[353,774,775],{},"--timestamped"," — Add ",[353,778,779],{},"#[Timestamped]",": generates ",[353,782,783],{},"createdAt"," \u002F ",[353,786,787],{},"updatedAt"," columns via ",[353,790,791],{},"TimestampedTrait",[768,793,794,776,799,802,803],{},[771,795,796],{},[353,797,798],{},"--publishable",[353,800,801],{},"#[Publishable]",": wires up the draft\u002Fpublish lifecycle via ",[353,804,805],{},"PublishableTrait",[768,807,808,776,813,816,817,820,821,824],{},[771,809,810],{},[353,811,812],{},"--uploadable",[353,814,815],{},"#[Uploadable]",": includes a ",[353,818,819],{},"$file"," property and ",[353,822,823],{},"UploadableTrait"," for file handling",[488,826,828],{"id":827},"example-output-with-all-three-flags","Example output (with all three flags)",[358,830,833],{"className":831,"code":832,"language":374,"meta":363,"style":363},"language-php shiki shiki-themes github-light github-dark material-theme-palenight","#[Silverback\\Timestamped]\n#[Silverback\\Publishable]\n#[Silverback\\Uploadable]\n#[ApiResource]\n#[ORM\\Entity]\nclass HeroBlock extends AbstractComponent\n{\n    use TimestampedTrait;\n    use PublishableTrait;\n    use UploadableTrait;\n\n    #[Silverback\\UploadableField(adapter: 'local')]\n    public ?File $file = null;\n}\n",[353,834,835,853,865,877,886,900,914,920,932,942,952,957,994,1021],{"__ignoreMap":363},[367,836,837,840,844,848,850],{"class":369,"line":370},[367,838,839],{"class":391},"#[",[367,841,843],{"class":842},"sc2zw","Silverback",[367,845,847],{"class":846},"sBtbT","\\",[367,849,100],{"class":842},[367,851,852],{"class":391},"]\n",[367,854,855,857,859,861,863],{"class":369,"line":592},[367,856,839],{"class":391},[367,858,843],{"class":842},[367,860,847],{"class":846},[367,862,92],{"class":842},[367,864,852],{"class":391},[367,866,867,869,871,873,875],{"class":369,"line":602},[367,868,839],{"class":391},[367,870,843],{"class":842},[367,872,847],{"class":846},[367,874,96],{"class":842},[367,876,852],{"class":391},[367,878,879,881,884],{"class":369,"line":609},[367,880,839],{"class":391},[367,882,883],{"class":842},"ApiResource",[367,885,852],{"class":391},[367,887,888,890,893,895,898],{"class":369,"line":615},[367,889,839],{"class":391},[367,891,892],{"class":842},"ORM",[367,894,847],{"class":846},[367,896,897],{"class":842},"Entity",[367,899,852],{"class":391},[367,901,902,906,908,911],{"class":369,"line":628},[367,903,905],{"class":904},"swB56","class",[367,907,754],{"class":373},[367,909,910],{"class":904}," extends",[367,912,913],{"class":373}," AbstractComponent\n",[367,915,916],{"class":369,"line":633},[367,917,919],{"class":918},"sOvfz","{\n",[367,921,922,926,929],{"class":369,"line":639},[367,923,925],{"class":924},"stmX-","    use",[367,927,928],{"class":842}," TimestampedTrait",[367,930,931],{"class":918},";\n",[367,933,935,937,940],{"class":369,"line":934},9,[367,936,925],{"class":924},[367,938,939],{"class":842}," PublishableTrait",[367,941,931],{"class":918},[367,943,945,947,950],{"class":369,"line":944},10,[367,946,925],{"class":924},[367,948,949],{"class":842}," UploadableTrait",[367,951,931],{"class":918},[367,953,955],{"class":369,"line":954},11,[367,956,606],{"emptyLinePlaceholder":605},[367,958,960,963,965,967,970,973,976,979,983,986,989,992],{"class":369,"line":959},12,[367,961,962],{"class":391},"    #[",[367,964,843],{"class":842},[367,966,847],{"class":846},[367,968,969],{"class":842},"UploadableField",[367,971,972],{"class":918},"(",[367,974,975],{"class":373},"adapter",[367,977,978],{"class":918},":",[367,980,982],{"class":981},"seSrl"," '",[367,984,985],{"class":377},"local",[367,987,988],{"class":981},"'",[367,990,991],{"class":918},")",[367,993,852],{"class":391},[367,995,997,1000,1003,1007,1010,1013,1016,1019],{"class":369,"line":996},13,[367,998,999],{"class":904},"    public",[367,1001,1002],{"class":384}," ?",[367,1004,1006],{"class":1005},"sbW4m","File",[367,1008,1009],{"class":918}," $",[367,1011,1012],{"class":391},"file ",[367,1014,1015],{"class":384},"=",[367,1017,1018],{"class":846}," null",[367,1020,931],{"class":918},[367,1022,1024],{"class":369,"line":1023},14,[367,1025,1026],{"class":918},"}\n",[349,1028,1029,1030,1033],{},"After generation, run ",[353,1031,1032],{},"make:migration"," and review the generated SQL before executing it — the traits add columns and (for publishable) self-referencing foreign keys.",[434,1035,1037],{"id":1036},"makepage-data",[353,1038,1039],{},"make:page-data",[349,1041,717,1042,1045,1046,1049],{},[353,1043,1044],{},"AbstractPageData"," entity with typed properties pre-wired, plus console output showing the matching ",[353,1047,1048],{},"nuxt.config"," snippet and fixture stub.",[358,1051,1053],{"className":360,"code":1052,"language":362,"meta":363,"style":363},"php bin\u002Fconsole make:page-data\n",[353,1054,1055],{"__ignoreMap":363},[367,1056,1057,1059,1061],{"class":369,"line":370},[367,1058,374],{"class":373},[367,1060,378],{"class":377},[367,1062,1063],{"class":377}," make:page-data\n",[349,1065,1066],{},"The command prompts interactively for the class name and properties. You can pass everything inline:",[358,1068,1070],{"className":360,"code":1069,"language":362,"meta":363,"style":363},"php bin\u002Fconsole make:page-data ConferenceData --properties headline:?string body:?string heroImage:?string\n",[353,1071,1072],{"__ignoreMap":363},[367,1073,1074,1076,1078,1081,1084,1087,1090,1093],{"class":369,"line":370},[367,1075,374],{"class":373},[367,1077,378],{"class":377},[367,1079,1080],{"class":377}," make:page-data",[367,1082,1083],{"class":377}," ConferenceData",[367,1085,1086],{"class":485}," --properties",[367,1088,1089],{"class":377}," headline:?string",[367,1091,1092],{"class":377}," body:?string",[367,1094,1095],{"class":377}," heroImage:?string\n",[349,1097,1098,1099,1102,1103,1106],{},"Properties are defined as ",[353,1100,1101],{},"name:type"," pairs. Nullable types use the ",[353,1104,1105],{},"?"," prefix.",[488,1108,1110],{"id":1109},"example-output","Example output",[358,1112,1114],{"className":831,"code":1113,"language":374,"meta":363,"style":363},"#[ApiResource]\n#[ORM\\Entity]\nclass ConferenceData extends AbstractPageData\n{\n    #[ORM\\Column(nullable: true)]\n    public ?string $headline;\n\n    #[ORM\\Column(nullable: true)]\n    public ?string $body;\n\n    #[ORM\\Column(nullable: true)]\n    public ?string $heroImage;\n}\n",[353,1115,1116,1124,1136,1147,1151,1176,1192,1196,1218,1233,1237,1259,1274],{"__ignoreMap":363},[367,1117,1118,1120,1122],{"class":369,"line":370},[367,1119,839],{"class":391},[367,1121,883],{"class":842},[367,1123,852],{"class":391},[367,1125,1126,1128,1130,1132,1134],{"class":369,"line":592},[367,1127,839],{"class":391},[367,1129,892],{"class":842},[367,1131,847],{"class":846},[367,1133,897],{"class":842},[367,1135,852],{"class":391},[367,1137,1138,1140,1142,1144],{"class":369,"line":602},[367,1139,905],{"class":904},[367,1141,1083],{"class":373},[367,1143,910],{"class":904},[367,1145,1146],{"class":373}," AbstractPageData\n",[367,1148,1149],{"class":369,"line":609},[367,1150,919],{"class":918},[367,1152,1153,1155,1157,1159,1162,1164,1167,1169,1172,1174],{"class":369,"line":615},[367,1154,962],{"class":391},[367,1156,892],{"class":842},[367,1158,847],{"class":846},[367,1160,1161],{"class":842},"Column",[367,1163,972],{"class":918},[367,1165,1166],{"class":373},"nullable",[367,1168,978],{"class":918},[367,1170,1171],{"class":846}," true",[367,1173,991],{"class":918},[367,1175,852],{"class":391},[367,1177,1178,1180,1182,1185,1187,1190],{"class":369,"line":628},[367,1179,999],{"class":904},[367,1181,1002],{"class":384},[367,1183,1184],{"class":924},"string",[367,1186,1009],{"class":918},[367,1188,1189],{"class":391},"headline",[367,1191,931],{"class":918},[367,1193,1194],{"class":369,"line":633},[367,1195,606],{"emptyLinePlaceholder":605},[367,1197,1198,1200,1202,1204,1206,1208,1210,1212,1214,1216],{"class":369,"line":639},[367,1199,962],{"class":391},[367,1201,892],{"class":842},[367,1203,847],{"class":846},[367,1205,1161],{"class":842},[367,1207,972],{"class":918},[367,1209,1166],{"class":373},[367,1211,978],{"class":918},[367,1213,1171],{"class":846},[367,1215,991],{"class":918},[367,1217,852],{"class":391},[367,1219,1220,1222,1224,1226,1228,1231],{"class":369,"line":934},[367,1221,999],{"class":904},[367,1223,1002],{"class":384},[367,1225,1184],{"class":924},[367,1227,1009],{"class":918},[367,1229,1230],{"class":391},"body",[367,1232,931],{"class":918},[367,1234,1235],{"class":369,"line":944},[367,1236,606],{"emptyLinePlaceholder":605},[367,1238,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257],{"class":369,"line":954},[367,1240,962],{"class":391},[367,1242,892],{"class":842},[367,1244,847],{"class":846},[367,1246,1161],{"class":842},[367,1248,972],{"class":918},[367,1250,1166],{"class":373},[367,1252,978],{"class":918},[367,1254,1171],{"class":846},[367,1256,991],{"class":918},[367,1258,852],{"class":391},[367,1260,1261,1263,1265,1267,1269,1272],{"class":369,"line":959},[367,1262,999],{"class":904},[367,1264,1002],{"class":384},[367,1266,1184],{"class":924},[367,1268,1009],{"class":918},[367,1270,1271],{"class":391},"heroImage",[367,1273,931],{"class":918},[367,1275,1276],{"class":369,"line":996},[367,1277,1026],{"class":918},[349,1279,1280],{},"After generation the command prints:",[765,1282,1283,1294,1300],{},[768,1284,1285,1286,1289,1290,1293],{},"The ",[353,1287,1288],{},"nuxt.config.ts"," ",[353,1291,1292],{},"cwa.pageData.ConferenceData.properties"," snippet to add human-readable labels for the admin picker",[768,1295,1296,1297],{},"A fixture scaffold stub: ",[353,1298,1299],{},"$cwa->pageData(new ConferenceData(), template: 'my-template')",[768,1301,1302,1305],{},[353,1303,1304],{},"->pageDataPosition(ConferenceData::class, 'propertyName')"," calls for each property, ready to paste into a template group",[349,1307,1029,1308,1310],{},[353,1309,1032],{}," and review the generated SQL before executing it.",[434,1312,1314],{"id":1313},"makecwa-scaffold",[353,1315,1316],{},"make:cwa-scaffold",[349,1318,1319,1320,1323],{},"Generate a starter ",[353,1321,1322],{},"AbstractCwaScaffold"," subclass pre-wired with a layout, a home page, and commented-out nav link stubs.",[358,1325,1327],{"className":360,"code":1326,"language":362,"meta":363,"style":363},"php bin\u002Fconsole make:cwa-scaffold\n",[353,1328,1329],{"__ignoreMap":363},[367,1330,1331,1333,1335],{"class":369,"line":370},[367,1332,374],{"class":373},[367,1334,378],{"class":377},[367,1336,1337],{"class":377}," make:cwa-scaffold\n",[349,1339,1340],{},"The command prompts interactively for the class name, layout reference key, and layout UI component name. You can pass everything inline:",[358,1342,1344],{"className":360,"code":1343,"language":362,"meta":363,"style":363},"php bin\u002Fconsole make:cwa-scaffold AppScaffold --layout-ref main --layout-component CwaLayoutPrimary\n",[353,1345,1346],{"__ignoreMap":363},[367,1347,1348,1350,1352,1355,1358,1361,1364,1367],{"class":369,"line":370},[367,1349,374],{"class":373},[367,1351,378],{"class":377},[367,1353,1354],{"class":377}," make:cwa-scaffold",[367,1356,1357],{"class":377}," AppScaffold",[367,1359,1360],{"class":485}," --layout-ref",[367,1362,1363],{"class":377}," main",[367,1365,1366],{"class":485}," --layout-component",[367,1368,1369],{"class":377}," CwaLayoutPrimary\n",[488,1371,491],{"id":1372},"options-2",[493,1374,1375,1386],{},[496,1376,1377],{},[499,1378,1379,1381,1384],{},[502,1380,504],{},[502,1382,1383],{},"Default",[502,1385,507],{},[509,1387,1388,1406],{},[499,1389,1390,1395,1400],{},[514,1391,1392],{},[353,1393,1394],{},"--layout-ref",[514,1396,1397],{},[353,1398,1399],{},"main",[514,1401,1402,1403],{},"Reference key passed to ",[353,1404,1405],{},"$cwa->layout()",[499,1407,1408,1413,1418],{},[514,1409,1410],{},[353,1411,1412],{},"--layout-component",[514,1414,1415],{},[353,1416,1417],{},"CwaLayoutPrimary",[514,1419,1420],{},"UI component name for the layout",[488,1422,1110],{"id":1423},"example-output-1",[358,1425,1427],{"className":831,"code":1426,"language":374,"meta":363,"style":363},"class AppScaffold extends AbstractCwaScaffold\n{\n    public function build(CwaFixtureBuilder $cwa): void\n    {\n        $navGroup = $cwa->layout('main', 'CwaLayoutPrimary')\n            ->group('top');\n\n        $cwa->page('home', 'PrimaryPageTemplate', layout: 'main', route: '\u002F', routeName: 'home-page',\n            configure: fn (PageBuilder $page) => $page\n                ->title('Home')\n                ->group('primary')\n        );\n\n        \u002F\u002F $navGroup->add(...) — nav links go here after routes exist\n    }\n}\n",[353,1428,1429,1440,1444,1472,1477,1517,1537,1541,1614,1644,1663,1680,1685,1689,1694,1700],{"__ignoreMap":363},[367,1430,1431,1433,1435,1437],{"class":369,"line":370},[367,1432,905],{"class":904},[367,1434,1357],{"class":373},[367,1436,910],{"class":904},[367,1438,1439],{"class":373}," AbstractCwaScaffold\n",[367,1441,1442],{"class":369,"line":592},[367,1443,919],{"class":918},[367,1445,1446,1448,1451,1455,1457,1460,1462,1465,1467,1469],{"class":369,"line":602},[367,1447,999],{"class":904},[367,1449,1450],{"class":904}," function",[367,1452,1454],{"class":1453},"sKpYG"," build",[367,1456,972],{"class":918},[367,1458,1459],{"class":1005},"CwaFixtureBuilder",[367,1461,1009],{"class":918},[367,1463,1464],{"class":391},"cwa",[367,1466,991],{"class":918},[367,1468,978],{"class":384},[367,1470,1471],{"class":924}," void\n",[367,1473,1474],{"class":369,"line":609},[367,1475,1476],{"class":918},"    {\n",[367,1478,1479,1482,1485,1487,1489,1491,1494,1497,1499,1501,1503,1505,1508,1510,1512,1514],{"class":369,"line":615},[367,1480,1481],{"class":918},"        $",[367,1483,1484],{"class":391},"navGroup ",[367,1486,1015],{"class":384},[367,1488,1009],{"class":918},[367,1490,1464],{"class":391},[367,1492,1493],{"class":384},"->",[367,1495,1496],{"class":1453},"layout",[367,1498,972],{"class":918},[367,1500,988],{"class":981},[367,1502,1399],{"class":377},[367,1504,988],{"class":981},[367,1506,1507],{"class":918},",",[367,1509,982],{"class":981},[367,1511,1417],{"class":377},[367,1513,988],{"class":981},[367,1515,1516],{"class":918},")\n",[367,1518,1519,1522,1525,1527,1529,1532,1534],{"class":369,"line":628},[367,1520,1521],{"class":384},"            ->",[367,1523,1524],{"class":1453},"group",[367,1526,972],{"class":918},[367,1528,988],{"class":981},[367,1530,1531],{"class":377},"top",[367,1533,988],{"class":981},[367,1535,1536],{"class":918},");\n",[367,1538,1539],{"class":369,"line":633},[367,1540,606],{"emptyLinePlaceholder":605},[367,1542,1543,1545,1547,1549,1552,1554,1556,1559,1561,1563,1565,1568,1570,1572,1575,1577,1579,1581,1583,1585,1588,1590,1592,1595,1597,1599,1602,1604,1606,1609,1611],{"class":369,"line":639},[367,1544,1481],{"class":918},[367,1546,1464],{"class":391},[367,1548,1493],{"class":384},[367,1550,1551],{"class":1453},"page",[367,1553,972],{"class":918},[367,1555,988],{"class":981},[367,1557,1558],{"class":377},"home",[367,1560,988],{"class":981},[367,1562,1507],{"class":918},[367,1564,982],{"class":981},[367,1566,1567],{"class":377},"PrimaryPageTemplate",[367,1569,988],{"class":981},[367,1571,1507],{"class":918},[367,1573,1574],{"class":373}," layout",[367,1576,978],{"class":918},[367,1578,982],{"class":981},[367,1580,1399],{"class":377},[367,1582,988],{"class":981},[367,1584,1507],{"class":918},[367,1586,1587],{"class":373}," route",[367,1589,978],{"class":918},[367,1591,982],{"class":981},[367,1593,1594],{"class":377},"\u002F",[367,1596,988],{"class":981},[367,1598,1507],{"class":918},[367,1600,1601],{"class":373}," routeName",[367,1603,978],{"class":918},[367,1605,982],{"class":981},[367,1607,1608],{"class":377},"home-page",[367,1610,988],{"class":981},[367,1612,1613],{"class":918},",\n",[367,1615,1616,1619,1621,1624,1627,1630,1632,1634,1636,1639,1641],{"class":369,"line":934},[367,1617,1618],{"class":373},"            configure",[367,1620,978],{"class":918},[367,1622,1623],{"class":904}," fn",[367,1625,1626],{"class":918}," (",[367,1628,1629],{"class":1005},"PageBuilder",[367,1631,1009],{"class":918},[367,1633,1551],{"class":391},[367,1635,991],{"class":918},[367,1637,1638],{"class":918}," =>",[367,1640,1009],{"class":918},[367,1642,1643],{"class":391},"page\n",[367,1645,1646,1649,1652,1654,1656,1659,1661],{"class":369,"line":944},[367,1647,1648],{"class":384},"                ->",[367,1650,1651],{"class":1453},"title",[367,1653,972],{"class":918},[367,1655,988],{"class":981},[367,1657,1658],{"class":377},"Home",[367,1660,988],{"class":981},[367,1662,1516],{"class":918},[367,1664,1665,1667,1669,1671,1673,1676,1678],{"class":369,"line":954},[367,1666,1648],{"class":384},[367,1668,1524],{"class":1453},[367,1670,972],{"class":918},[367,1672,988],{"class":981},[367,1674,1675],{"class":377},"primary",[367,1677,988],{"class":981},[367,1679,1516],{"class":918},[367,1681,1682],{"class":369,"line":959},[367,1683,1684],{"class":918},"        );\n",[367,1686,1687],{"class":369,"line":996},[367,1688,606],{"emptyLinePlaceholder":605},[367,1690,1691],{"class":369,"line":1023},[367,1692,1693],{"class":588},"        \u002F\u002F $navGroup->add(...) — nav links go here after routes exist\n",[367,1695,1697],{"class":369,"line":1696},15,[367,1698,1699],{"class":918},"    }\n",[367,1701,1703],{"class":369,"line":1702},16,[367,1704,1026],{"class":918},[349,1706,1707,1708,1711],{},"After generation the command prints the ",[353,1709,1710],{},"config\u002Fservices.yaml"," snippet to register the class as a Doctrine fixture:",[358,1713,1717],{"className":1714,"code":1715,"language":1716,"meta":363,"style":363},"language-yaml shiki shiki-themes github-light github-dark material-theme-palenight","App\\DataFixtures\\AppScaffold:\n    tags: [doctrine.fixture.orm]\n","yaml",[353,1718,1719,1728],{"__ignoreMap":363},[367,1720,1721,1725],{"class":369,"line":370},[367,1722,1724],{"class":1723},"s-h7I","App\\DataFixtures\\AppScaffold",[367,1726,1727],{"class":918},":\n",[367,1729,1730,1733,1735,1738,1741],{"class":369,"line":592},[367,1731,1732],{"class":1723},"    tags",[367,1734,978],{"class":918},[367,1736,1737],{"class":918}," [",[367,1739,1740],{"class":377},"doctrine.fixture.orm",[367,1742,852],{"class":918},[349,1744,1745,1746,1749,1750,1752],{},"Then run ",[353,1747,1748],{},"php bin\u002Fconsole doctrine:fixtures:load"," to seed the database. See ",[702,1751,125],{"href":126}," for the full builder API.",[1754,1755,1756],"style",{},"html pre.shiki code .sRCss, html code.shiki .sRCss{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#FFCB6B}html pre.shiki code .sLL54, html code.shiki .sLL54{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#C3E88D}html pre.shiki code .sVlFx, html code.shiki .sVlFx{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#89DDFF}html pre.shiki code .sPB8G, html code.shiki .sPB8G{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .szhYu, html code.shiki .szhYu{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#C3E88D}html pre.shiki code .sTBSN, html code.shiki .sTBSN{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sc2zw, html code.shiki .sc2zw{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#BABED8}html pre.shiki code .sBtbT, html code.shiki .sBtbT{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#89DDFF}html pre.shiki code .swB56, html code.shiki .swB56{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#C792EA}html pre.shiki code .sOvfz, html code.shiki .sOvfz{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#89DDFF}html pre.shiki code .stmX-, html code.shiki .stmX-{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#F78C6C}html pre.shiki code .seSrl, html code.shiki .seSrl{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#89DDFF}html pre.shiki code .sbW4m, html code.shiki .sbW4m{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#FFCB6B}html pre.shiki code .sKpYG, html code.shiki .sKpYG{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#82AAFF}html pre.shiki code .s-h7I, html code.shiki .s-h7I{--shiki-light:#22863A;--shiki-default:#85E89D;--shiki-dark:#F07178}",{"title":363,"searchDepth":592,"depth":592,"links":1758},[1759,1762,1763,1764,1765,1769,1772],{"id":436,"depth":592,"text":439,"children":1760},[1761],{"id":490,"depth":602,"text":491},{"id":572,"depth":592,"text":575},{"id":656,"depth":592,"text":656},{"id":692,"depth":592,"text":693},{"id":711,"depth":592,"text":714,"children":1766},[1767,1768],{"id":763,"depth":602,"text":491},{"id":827,"depth":602,"text":828},{"id":1036,"depth":592,"text":1039,"children":1770},[1771],{"id":1109,"depth":602,"text":1110},{"id":1313,"depth":592,"text":1316,"children":1773},[1774,1775],{"id":1372,"depth":602,"text":491},{"id":1423,"depth":602,"text":1110},"Symfony console commands provided by the API Components Bundle for managing users, cleaning up data, and generating component entities.","md",{},{"title":133,"description":1776},"zUwiux1QR7zIULqd3BdgjWCNpJUCQhPeZ6F_Y0RBvNg",[1782,1784],{"title":129,"path":130,"stem":131,"description":1783,"children":-1},"Complete reference for all silverback_api_components bundle configuration options.",{"title":137,"path":138,"stem":139,"description":1785,"children":-1},"The CWA Symfony profiler panel surfaces JWT activity, resolved routes, and Mercure publications in the web toolbar.",1782241281063]