[**@wocart/theme v4.1.0**](../../README)

***

[@wocart/theme](../../README) / [index](../README) / ComponentDefinition

# Interface: ComponentDefinition

Code-owned description of one reusable component. `component` is the real
component reference — opaque here so the core stays framework-neutral; the
`./astro` renderer narrows it.

## Properties

### capabilities?

> `optional` **capabilities?**: [`ComponentCapabilities`](ComponentCapabilities)

***

### component

> **component**: `unknown`

***

### fields?

> `optional` **fields?**: readonly [`FieldDefinition`](../type-aliases/FieldDefinition)[]

***

### fixed?

> `optional` **fixed?**: readonly [`FixedBlockDefinition`](FixedBlockDefinition)[]

***

### group?

> `optional` **group?**: [`LocalizedText`](../type-aliases/LocalizedText)

The editor palette heading this component is listed under.

***

### label

> **label**: [`LocalizedText`](../type-aliases/LocalizedText)

***

### load?

> `optional` **load?**: [`LoadFn`](../type-aliases/LoadFn)

***

### placement?

> `optional` **placement?**: [`ComponentPlacement`](../type-aliases/ComponentPlacement)

***

### presets?

> `optional` **presets?**: readonly [`ComponentPreset`](ComponentPreset)[]

***

### role?

> `optional` **role?**: `"order-form"`

***

### slots?

> `optional` **slots?**: readonly [`SlotDefinition`](SlotDefinition)[]

***

### type

> **type**: `string`

Stable type identity: lowercase kebab-case, unique in the catalog.
