-`columnWidth`: String from `"1"` to `"12"` (must sum to 12)
-`seedComponents`: Array or `null` (typically `[]` or `null`)
**Example** (serialized as JSON string in `sectionConfig` attribute):
```json
{
"UUID": "295e6a8b-fd94-485b-af9d-7ccf5b3048ee",
"columns": [
{
"UUID": "7e1f7e33-5ba8-4fef-8494-6ea3e90b22a0",
"columnKey": "col1",
"columnName": "Column 1",
"columnWidth": "12",
"seedComponents": null
}
]
}
```
### Named Region Creation
In order to create a component with drag-n-droppable region/slot that can be used in Experience Builder sites and persist across views, there are multiple steps needed.
Page layout components should add the lightningCommunity__Page_Layout target in js-meta.xml.
Theme layout components should add the lightningCommunity__Theme_Layout target in js-meta.xml.
Add lightningCommunity__Page as a target for page layouts and any component with slots that is not explicitly defined as a theme layout.
The js file in LWC need to declare named slots:
```js
/**
*@slot header
*@slot footer
*/
export default class YourComponentName extends LightningElement {}
```
Do not add any other comments in the declaration comment block. The named @slot annotations must be the last comments
in the block before the class declaration.
In html, named slots are needed. <slotname="header"> and <slotname="footer"> in the above example.
For theme layout component, a <slot> with no name is the main content region, a slot with name is a sticky region that doesn't change from page to page that uses the same theme layout component.
No need to declare target config properties for the slots/regions.
See the example below for adding a component with named slots into a view.
### Component Structure
```json
{
"id": "[UNIQUE_UUID]",
"type": "component",
"definition": "[NAMESPACE]:[COMPONENT_NAME]",
"attributes": {
"[ATTRIBUTE_NAME]": "[ATTRIBUTE_VALUE]"
}
}
```
**Field Definitions**:
-`id`: Unique UUID (see `handle-component-and-region-ids.md`)