@wocart/theme / index / ComponentSpec
Interface: ComponentSpec
One component as data: a ComponentDefinition minus its runtime-only
implementation. component (the live component reference) and load (the
server-only data hook) are intentionally absent — neither is
JSON-serializable and neither belongs in a tooling contract.
fields / slots are always present (normalized from absent to [] by the
generator) so consumers never branch on "missing vs empty".
Properties
capabilities?
optionalcapabilities?:ComponentCapabilities
fields
fields: readonly
FieldDefinition[]
fixed?
optionalfixed?: readonlyFixedBlockDefinition[]
group?
optionalgroup?:LocalizedText
The editor palette heading this component is listed under.
label
label:
LocalizedText
Editor-facing name.
placement?
optionalplacement?:ComponentPlacement
presets
presets: readonly
ComponentPreset[]
role?
optionalrole?:"order-form"
slots
slots: readonly
SlotDefinition[]
type
type:
string
Stable type identity: lowercase kebab-case, equal to the catalog key.