[{"data":1,"prerenderedAt":847},["ShallowReactive",2],{"navigation":3,"\u002Fapi\u002Fcomponents\u002Fannotations\u002Fexplicit-allow-only":362,"\u002Fapi\u002Fcomponents\u002Fannotations\u002Fexplicit-allow-only-surround":842},[4,14,36,69,144,345],{"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,120,124,128,132,136,140],{"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,107],{"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,103],{"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},"Explicit Allow Only","\u002Fapi\u002Fcomponents\u002Fannotations\u002Fexplicit-allow-only","4.api\u002F2.components\u002F2.annotations\u002F4.explicit-allow-only",{"title":108,"path":109,"stem":110,"children":111,"page":35},"Built Ins","\u002Fapi\u002Fcomponents\u002Fbuilt-ins","4.api\u002F2.components\u002F3.built-ins",[112,116],{"title":113,"path":114,"stem":115},"Collection Component","\u002Fapi\u002Fcomponents\u002Fbuilt-ins\u002Fcollection-component","4.api\u002F2.components\u002F3.built-ins\u002F1.collection-component",{"title":117,"path":118,"stem":119},"Form Component","\u002Fapi\u002Fcomponents\u002Fbuilt-ins\u002Fform-component","4.api\u002F2.components\u002F3.built-ins\u002F2.form-component",{"title":121,"path":122,"stem":123},"Dynamic & Nested Pages","\u002Fapi\u002Fdynamic-pages","4.api\u002F3.dynamic-pages",{"title":125,"path":126,"stem":127},"Users & Security","\u002Fapi\u002Fusers-and-security","4.api\u002F4.users-and-security",{"title":129,"path":130,"stem":131},"Data Fixtures","\u002Fapi\u002Fdata-fixtures","4.api\u002F5.data-fixtures",{"title":133,"path":134,"stem":135},"Configuration Reference","\u002Fapi\u002Fconfiguration","4.api\u002F6.configuration",{"title":137,"path":138,"stem":139},"Console Commands","\u002Fapi\u002Fconsole-commands","4.api\u002F7.console-commands",{"title":141,"path":142,"stem":143},"Debugging & Profiler","\u002Fapi\u002Fdebugging","4.api\u002F8.debugging",{"title":145,"path":146,"stem":147,"children":148,"page":35},"Nuxt Module","\u002Fnuxt-module","5.nuxt-module",[149,153,166,186,207,211,295,320,324],{"title":150,"path":151,"stem":152},"Module Setup","\u002Fnuxt-module\u002Fmodule-setup","5.nuxt-module\u002F1.module-setup",{"title":154,"path":155,"stem":156,"children":157,"page":35},"Configuration","\u002Fnuxt-module\u002Fconfiguration","5.nuxt-module\u002F2.configuration",[158,162],{"title":159,"path":160,"stem":161},"Nuxt Config","\u002Fnuxt-module\u002Fconfiguration\u002Fnuxt-config","5.nuxt-module\u002F2.configuration\u002F1.nuxt-config",{"title":163,"path":164,"stem":165},"Site Config & SEO","\u002Fnuxt-module\u002Fconfiguration\u002Fsite-config-and-seo","5.nuxt-module\u002F2.configuration\u002F2.site-config-and-seo",{"title":167,"path":168,"stem":169,"children":170,"page":35},"Building Your Ui","\u002Fnuxt-module\u002Fbuilding-your-ui","5.nuxt-module\u002F3.building-your-ui",[171,175,179,182],{"title":172,"path":173,"stem":174},"Layouts","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-layouts","5.nuxt-module\u002F3.building-your-ui\u002F1.creating-layouts",{"title":176,"path":177,"stem":178},"Page Templates","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-page-templates","5.nuxt-module\u002F3.building-your-ui\u002F2.creating-page-templates",{"title":83,"path":180,"stem":181},"\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcreating-components","5.nuxt-module\u002F3.building-your-ui\u002F3.creating-components",{"title":183,"path":184,"stem":185},"CLI Generator","\u002Fnuxt-module\u002Fbuilding-your-ui\u002Fcwa-cli","5.nuxt-module\u002F3.building-your-ui\u002F4.cwa-cli",{"title":187,"path":188,"stem":189,"children":190,"page":35},"Cwa Components","\u002Fnuxt-module\u002Fcwa-components","5.nuxt-module\u002F4.cwa-components",[191,195,199,203],{"title":192,"path":193,"stem":194},"\u003CCwaComponentGroup \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-component-group","5.nuxt-module\u002F4.cwa-components\u002F1.cwa-component-group",{"title":196,"path":197,"stem":198},"\u003CCwaPage \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-page","5.nuxt-module\u002F4.cwa-components\u002F2.cwa-page",{"title":200,"path":201,"stem":202},"\u003CCwaLink \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-link","5.nuxt-module\u002F4.cwa-components\u002F3.cwa-link",{"title":204,"path":205,"stem":206},"\u003CCwaDefaultLayout \u002F>","\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-default-layout","5.nuxt-module\u002F4.cwa-components\u002F5.cwa-default-layout",{"title":208,"path":209,"stem":210},"The useCwa() API","\u002Fnuxt-module\u002Fcwa-api","5.nuxt-module\u002F5.cwa-api",{"title":212,"path":213,"stem":214,"children":215,"page":35},"Composables","\u002Fnuxt-module\u002Fcomposables","5.nuxt-module\u002F6.composables",[216,224,261,278],{"title":217,"path":218,"stem":219,"children":220,"page":35},"Layout","\u002Fnuxt-module\u002Fcomposables\u002Flayout","5.nuxt-module\u002F6.composables\u002F0.layout",[221],{"title":217,"path":222,"stem":223},"\u002Fnuxt-module\u002Fcomposables\u002Flayout\u002Fuse-cwa-layout","5.nuxt-module\u002F6.composables\u002F0.layout\u002F1.use-cwa-layout",{"title":225,"path":226,"stem":227,"children":228,"page":35},"Component","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent","5.nuxt-module\u002F6.composables\u002F1.component",[229,233,237,241,245,249,253,257],{"title":230,"path":231,"stem":232},"Component (recommended)","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-component","5.nuxt-module\u002F6.composables\u002F1.component\u002F0.use-cwa-component",{"title":234,"path":235,"stem":236},"Resource","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-resource","5.nuxt-module\u002F6.composables\u002F1.component\u002F1.use-cwa-resource",{"title":238,"path":239,"stem":240},"Collection Resource","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-collection-resource","5.nuxt-module\u002F6.composables\u002F1.component\u002F2.use-cwa-collection-resource",{"title":242,"path":243,"stem":244},"File Field","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-file-field","5.nuxt-module\u002F6.composables\u002F1.component\u002F3.use-cwa-file-field",{"title":246,"path":247,"stem":248},"Form","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form","5.nuxt-module\u002F6.composables\u002F1.component\u002F4.use-cwa-form",{"title":250,"path":251,"stem":252},"Form Input","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form-input","5.nuxt-module\u002F6.composables\u002F1.component\u002F5.use-cwa-form-input",{"title":254,"path":255,"stem":256},"Form Repeated","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form-repeated","5.nuxt-module\u002F6.composables\u002F1.component\u002F6.use-cwa-form-repeated",{"title":258,"path":259,"stem":260},"Form Collection","\u002Fnuxt-module\u002Fcomposables\u002Fcomponent\u002Fuse-cwa-form-collection","5.nuxt-module\u002F6.composables\u002F1.component\u002F7.use-cwa-form-collection",{"title":262,"path":263,"stem":264,"children":265,"page":35},"Admin Manager","\u002Fnuxt-module\u002Fcomposables\u002Fadmin-manager","5.nuxt-module\u002F6.composables\u002F2.admin-manager",[266,270,274],{"title":267,"path":268,"stem":269},"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":271,"path":272,"stem":273},"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":275,"path":276,"stem":277},"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":279,"path":280,"stem":281,"children":282,"page":35},"Utilities","\u002Fnuxt-module\u002Fcomposables\u002Futilities","5.nuxt-module\u002F6.composables\u002F3.utilities",[283,287,291],{"title":284,"path":285,"stem":286},"Resource Endpoint","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-cwa-resource-endpoint","5.nuxt-module\u002F6.composables\u002F3.utilities\u002F1.use-cwa-resource-endpoint",{"title":288,"path":289,"stem":290},"Query Model","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-query-bound-model","5.nuxt-module\u002F6.composables\u002F3.utilities\u002F2.use-query-bound-model",{"title":292,"path":293,"stem":294},"Resource Route","\u002Fnuxt-module\u002Fcomposables\u002Futilities\u002Fuse-cwa-resource-route","5.nuxt-module\u002F6.composables\u002F3.utilities\u002F3.use-cwa-resource-route",{"title":296,"path":297,"stem":298,"children":299,"page":35},"Component Helpers","\u002Fnuxt-module\u002Fcomponent-helpers","5.nuxt-module\u002F7.component-helpers",[300,304,308,312,316],{"title":301,"path":302,"stem":303},"Images & Media","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fimages-and-uploads","5.nuxt-module\u002F7.component-helpers\u002F1.images-and-uploads",{"title":305,"path":306,"stem":307},"Collections & Pagination","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fcollections-and-pagination","5.nuxt-module\u002F7.component-helpers\u002F2.collections-and-pagination",{"title":309,"path":310,"stem":311},"HTML Content","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fhtml-content","5.nuxt-module\u002F7.component-helpers\u002F3.html-content",{"title":313,"path":314,"stem":315},"Real-Time Updates","\u002Fnuxt-module\u002Fcomponent-helpers\u002Freal-time-updates","5.nuxt-module\u002F7.component-helpers\u002F4.real-time-updates",{"title":317,"path":318,"stem":319},"Forms","\u002Fnuxt-module\u002Fcomponent-helpers\u002Fforms","5.nuxt-module\u002F7.component-helpers\u002F5.forms",{"title":321,"path":322,"stem":323},"Authentication","\u002Fnuxt-module\u002Fauthentication","5.nuxt-module\u002F8.authentication",{"title":325,"path":326,"stem":327,"children":328,"page":35},"Cwa Layer","\u002Fnuxt-module\u002Fcwa-layer","5.nuxt-module\u002F9.cwa-layer",[329,333,337,341],{"title":330,"path":331,"stem":332},"Overview","\u002Fnuxt-module\u002Fcwa-layer\u002Foverview","5.nuxt-module\u002F9.cwa-layer\u002F1.overview",{"title":334,"path":335,"stem":336},"Auth Pages","\u002Fnuxt-module\u002Fcwa-layer\u002Fauth-pages","5.nuxt-module\u002F9.cwa-layer\u002F2.auth-pages",{"title":338,"path":339,"stem":340},"Admin Panel","\u002Fnuxt-module\u002Fcwa-layer\u002Fadmin-panel","5.nuxt-module\u002F9.cwa-layer\u002F3.admin-panel",{"title":342,"path":343,"stem":344},"Styling","\u002Fnuxt-module\u002Fcwa-layer\u002Fstyling","5.nuxt-module\u002F9.cwa-layer\u002F4.styling",{"title":346,"path":347,"stem":348,"children":349,"page":35},"Deployment","\u002Fdeployment","6.deployment",[350,354,358],{"title":351,"path":352,"stem":353},"Docker","\u002Fdeployment\u002Fdocker","6.deployment\u002F1.docker",{"title":355,"path":356,"stem":357},"Kubernetes & Helm","\u002Fdeployment\u002Fkubernetes","6.deployment\u002F2.kubernetes",{"title":359,"path":360,"stem":361},"CI\u002FCD","\u002Fdeployment\u002Fci-cd","6.deployment\u002F3.ci-cd",{"id":363,"title":104,"badge":364,"body":367,"description":835,"extension":836,"links":837,"meta":838,"navigation":839,"path":105,"seo":840,"stem":106,"__hash__":841},"docs\u002F4.api\u002F2.components\u002F2.annotations\u002F4.explicit-allow-only.md",{"label":365,"color":366},"Draft","amber",{"type":368,"value":369,"toc":829},"minimark",[370,394,397,402,405,561,565,568,596,603,607,625,721,736,740,751,825],[371,372,373,377,378,382,383,386,387,389,390,393],"p",{},[374,375,376],"code",{},"#[Silverback\\ExplicitAllowOnly]"," marks a component ",[379,380,381],"strong",{},"type"," as opt-in. By default a component group with no ",[374,384,385],{},"allowedComponents"," restriction accepts every type; a type flagged with this attribute is the exception — it may only be placed in a group whose ",[374,388,385],{}," ",[379,391,392],{},"explicitly lists it",". Everywhere else it is hidden from the admin and rejected on save.",[371,395,396],{},"Use it for components that should never appear by accident — structural or layout-only pieces (a section divider, a grid cell, a slot that only makes sense inside one specific parent).",[398,399,401],"h2",{"id":400},"setup","Setup",[371,403,404],{},"Add the attribute to the component entity. No trait or extra properties are required:",[406,407,412],"pre",{"className":408,"code":409,"language":410,"meta":411,"style":411},"language-php shiki shiki-themes github-light github-dark material-theme-palenight","use Silverback\\ApiComponentsBundle\\Annotation as Silverback;\nuse Silverback\\ApiComponentsBundle\\Entity\\Core\\AbstractComponent;\n\n#[Silverback\\ExplicitAllowOnly]\n#[ORM\\Entity]\n#[ApiResource]\nclass SectionDivider extends AbstractComponent\n{\n    \u002F\u002F ...\n}\n","php","",[374,413,414,449,477,484,502,516,526,542,548,555],{"__ignoreMap":411},[415,416,419,423,427,431,434,436,439,442,445],"span",{"class":417,"line":418},"line",1,[415,420,422],{"class":421},"stmX-","use",[415,424,426],{"class":425},"sc2zw"," Silverback",[415,428,430],{"class":429},"sBtbT","\\",[415,432,433],{"class":425},"ApiComponentsBundle",[415,435,430],{"class":429},[415,437,438],{"class":425},"Annotation",[415,440,441],{"class":421}," as",[415,443,426],{"class":444},"sRCss",[415,446,448],{"class":447},"sOvfz",";\n",[415,450,452,454,456,458,460,462,465,467,470,472,475],{"class":417,"line":451},2,[415,453,422],{"class":421},[415,455,426],{"class":425},[415,457,430],{"class":429},[415,459,433],{"class":425},[415,461,430],{"class":429},[415,463,464],{"class":425},"Entity",[415,466,430],{"class":429},[415,468,469],{"class":425},"Core",[415,471,430],{"class":429},[415,473,474],{"class":425},"AbstractComponent",[415,476,448],{"class":447},[415,478,480],{"class":417,"line":479},3,[415,481,483],{"emptyLinePlaceholder":482},true,"\n",[415,485,487,491,494,496,499],{"class":417,"line":486},4,[415,488,490],{"class":489},"sPB8G","#[",[415,492,493],{"class":425},"Silverback",[415,495,430],{"class":429},[415,497,498],{"class":425},"ExplicitAllowOnly",[415,500,501],{"class":489},"]\n",[415,503,505,507,510,512,514],{"class":417,"line":504},5,[415,506,490],{"class":489},[415,508,509],{"class":425},"ORM",[415,511,430],{"class":429},[415,513,464],{"class":425},[415,515,501],{"class":489},[415,517,519,521,524],{"class":417,"line":518},6,[415,520,490],{"class":489},[415,522,523],{"class":425},"ApiResource",[415,525,501],{"class":489},[415,527,529,533,536,539],{"class":417,"line":528},7,[415,530,532],{"class":531},"swB56","class",[415,534,535],{"class":444}," SectionDivider",[415,537,538],{"class":531}," extends",[415,540,541],{"class":444}," AbstractComponent\n",[415,543,545],{"class":417,"line":544},8,[415,546,547],{"class":447},"{\n",[415,549,551],{"class":417,"line":550},9,[415,552,554],{"class":553},"sTBSN","    \u002F\u002F ...\n",[415,556,558],{"class":417,"line":557},10,[415,559,560],{"class":447},"}\n",[398,562,564],{"id":563},"how-its-enforced","How It's Enforced",[371,566,567],{},"Once a type is flagged, it becomes opt-in in every placement path:",[569,570,571,578],"ul",{},[572,573,574,577],"li",{},[379,575,576],{},"Hidden in the admin"," — it does not appear in the \"Add Component\" dialog for any group that doesn't list it.",[572,579,580,583,584,587,588,591,592,595],{},[379,581,582],{},"Rejected on save"," — a ",[374,585,586],{},"ComponentPosition"," pointing at it, in a group that doesn't allow it, fails validation. This applies to ",[379,589,590],{},"both"," directly placed components ",[379,593,594],{},"and"," dynamic page-data positions, so the dynamic path can't be used to bypass the rule.",[597,598,600],"callout",{"icon":599},"i-heroicons-shield-check",[371,601,602],{},"Enforcement is server-side, so the rule holds regardless of the client. The admin UI simply reads the same flag to filter the type out of the add dialog early.",[398,604,606],{"id":605},"allowing-the-type-in-a-group","Allowing the Type in a Group",[371,608,609,610,612,613,615,616,619,620,624],{},"To use the component, add its collection IRI to the target group's ",[374,611,385],{},". A group whose ",[374,614,385],{}," is ",[374,617,618],{},"null"," still allows all ",[621,622,623],"em",{},"non-flagged"," types — but a flagged type must always be named explicitly.",[406,626,628],{"className":408,"code":627,"language":410,"meta":411,"style":411},"\u002F\u002F Fixtures — list the flagged type in the group's allow list\n$cwa->layout('primary', 'PrimaryLayout')\n    ->group('structure', [App\\Entity\\SectionDivider::class]);\n",[374,629,630,635,678],{"__ignoreMap":411},[415,631,632],{"class":417,"line":418},[415,633,634],{"class":553},"\u002F\u002F Fixtures — list the flagged type in the group's allow list\n",[415,636,637,640,643,647,651,654,658,662,664,667,670,673,675],{"class":417,"line":451},[415,638,639],{"class":447},"$",[415,641,642],{"class":489},"cwa",[415,644,646],{"class":645},"sVlFx","->",[415,648,650],{"class":649},"sKpYG","layout",[415,652,653],{"class":447},"(",[415,655,657],{"class":656},"seSrl","'",[415,659,661],{"class":660},"sLL54","primary",[415,663,657],{"class":656},[415,665,666],{"class":447},",",[415,668,669],{"class":656}," '",[415,671,672],{"class":660},"PrimaryLayout",[415,674,657],{"class":656},[415,676,677],{"class":447},")\n",[415,679,680,683,686,688,690,693,695,697,700,703,705,707,709,713,716,718],{"class":417,"line":479},[415,681,682],{"class":645},"    ->",[415,684,685],{"class":649},"group",[415,687,653],{"class":447},[415,689,657],{"class":656},[415,691,692],{"class":660},"structure",[415,694,657],{"class":656},[415,696,666],{"class":447},[415,698,699],{"class":447}," [",[415,701,702],{"class":425},"App",[415,704,430],{"class":429},[415,706,464],{"class":425},[415,708,430],{"class":429},[415,710,712],{"class":711},"sbW4m","SectionDivider",[415,714,715],{"class":645},"::",[415,717,532],{"class":421},[415,719,720],{"class":447},"]);\n",[371,722,723,724,732,733,735],{},"See ",[725,726,728,731],"a",{"href":727},"\u002Fnuxt-module\u002Fcwa-components\u002Fcwa-component-group#allowed-components",[374,729,730],{},"\u003CCwaComponentGroup>"," → Allowed Components"," for the Vue-prop, REST, and fixture ways to set ",[374,734,385],{},".",[398,737,739],{"id":738},"the-hydra-flag","The Hydra Flag",[371,741,742,743,746,747,750],{},"The attribute is surfaced to clients as a bare ",[374,744,745],{},"explicitAllowOnly: true"," boolean on the component's ",[374,748,749],{},"supportedClass"," entry in the Hydra API documentation. This is how the admin UI knows to treat the type as opt-in without any extra configuration.",[406,752,756],{"className":753,"code":754,"language":755,"meta":411,"style":411},"language-json shiki shiki-themes github-light github-dark material-theme-palenight","{\n  \"@type\": \"hydra:Class\",\n  \"hydra:title\": \"SectionDivider\",\n  \"explicitAllowOnly\": true\n}\n","json",[374,757,758,762,788,807,821],{"__ignoreMap":411},[415,759,760],{"class":417,"line":418},[415,761,547],{"class":447},[415,763,764,767,771,774,777,780,783,785],{"class":417,"line":451},[415,765,766],{"class":429},"  \"",[415,768,770],{"class":769},"sphPO","@type",[415,772,773],{"class":429},"\"",[415,775,776],{"class":447},":",[415,778,779],{"class":656}," \"",[415,781,782],{"class":660},"hydra:Class",[415,784,773],{"class":656},[415,786,787],{"class":447},",\n",[415,789,790,792,795,797,799,801,803,805],{"class":417,"line":479},[415,791,766],{"class":429},[415,793,794],{"class":769},"hydra:title",[415,796,773],{"class":429},[415,798,776],{"class":447},[415,800,779],{"class":656},[415,802,712],{"class":660},[415,804,773],{"class":656},[415,806,787],{"class":447},[415,808,809,811,814,816,818],{"class":417,"line":486},[415,810,766],{"class":429},[415,812,813],{"class":769},"explicitAllowOnly",[415,815,773],{"class":429},[415,817,776],{"class":447},[415,819,820],{"class":429}," true\n",[415,822,823],{"class":417,"line":504},[415,824,560],{"class":447},[826,827,828],"style",{},"html pre.shiki code .stmX-, html code.shiki .stmX-{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#F78C6C}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 .sRCss, html code.shiki .sRCss{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#FFCB6B}html pre.shiki code .sOvfz, html code.shiki .sOvfz{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#89DDFF}html pre.shiki code .sPB8G, html code.shiki .sPB8G{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#BABED8}html pre.shiki code .swB56, html code.shiki .swB56{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#C792EA}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 .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 .sVlFx, html code.shiki .sVlFx{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#89DDFF}html pre.shiki code .sKpYG, html code.shiki .sKpYG{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#82AAFF}html pre.shiki code .seSrl, html code.shiki .seSrl{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#89DDFF}html pre.shiki code .sLL54, html code.shiki .sLL54{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#C3E88D}html pre.shiki code .sbW4m, html code.shiki .sbW4m{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#FFCB6B}html pre.shiki code .sphPO, html code.shiki .sphPO{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#C792EA}",{"title":411,"searchDepth":451,"depth":451,"links":830},[831,832,833,834],{"id":400,"depth":451,"text":401},{"id":563,"depth":451,"text":564},{"id":605,"depth":451,"text":606},{"id":738,"depth":451,"text":739},"Make a component type opt-in — placeable only in component groups whose allowedComponents explicitly list it.","md",null,{},{"title":104},{"title":104,"description":835},"PSqLQ4Y7B2UDmehA_4tzDVZhFuKLfmS4AEUCwPIsrB8",[843,845],{"title":100,"path":101,"stem":102,"description":844,"children":-1},"Automatically record created and modified timestamps on any component or page data entity.",{"title":113,"path":114,"stem":115,"description":846,"children":-1},"The built-in Collection resource for rendering paginated lists of other API resources as a CWA component.",1783701664687]