contractVersion |
string, a fixed pattern (see the JSON Schema) |
yes |
The contract version the manifest was written for, as major.minor.patch. The SDK sets it; the build accepts the versions it supports. |
name |
ComponentName |
yes |
The component’s name inside its project: lowercase words joined by hyphens. |
tag |
TagName |
yes |
The custom element tag the runtime registers on the site: lowercase, with a hyphen, and the workspace’s prefix (the API checks the prefix when the component is created). |
title |
string, 1 to 80 characters, a fixed pattern (see the JSON Schema) |
yes |
A short human title, shown in the portal and in the gallery. |
description |
string, 1 to 500 characters, a fixed pattern (see the JSON Schema) |
yes |
What the component is for, in one or two sentences; shown in the portal and to agents. |
props |
map to PropDeclaration (keys: PropName), at most 50 entries |
no |
The props, by name. Each becomes an attribute of the element and a property of the Preact component’s props. |
events |
map to EventDeclaration (keys: MemberName), at most 20 entries |
no |
The events the component dispatches on its host element, by name. |
slots |
map to SlotDeclaration (keys: MemberName), at most 10 entries |
no |
The slots the host page can fill with its own markup, by name. |
parts |
map to PartDeclaration (keys: MemberName), at most 30 entries |
no |
The shadow parts a site can style from outside with ::part(), by name. |
cssVars |
map to CssVarDeclaration (keys: CssVarName), at most 30 entries |
no |
The CSS custom properties a site can set to theme the component, by name (with the leading --). |
data |
DataDeclaration |
no |
What the component collects or tracks: collections of submissions and declared interactions. |
size |
SizeHints |
no |
Layout hints that reserve space for the component before it renders, so the page does not jump. |
permissions |
Permissions |
no |
What the component may ask of the browser: the web APIs it uses and the origins it may call. |
libraries |
map to string, at most 256 characters (keys: LibraryName), at most 50 entries |
no |
Workspace-scoped libraries and the semver ranges this component is compatible with. Ownership is resolved by the API and builder. |
locales |
LocalesDeclaration |
no |
The languages the component ships messages for. |
assets |
map to AssetDeclaration (keys: string, at most 64 characters, pattern ^[0-9a-f]{64}$), at most 50 entries |
no |
The files bundled with the component (images and fonts), by the SHA-256 of their bytes. The build writes this; an author never does. |
formAssociated |
boolean |
no |
True for a form field component: the element is form-associated, submits the value the component sets under its name attribute, takes part in the form’s validation, reset and disabled state, and delegates focus unless delegatesFocus is false. Defaults to false. |
eventSampleRate |
number, 0.001 to 1 |
no |
Share of interaction and custom events the browser sends, from 0.001 to 1 (default 1: all). Render, error and conversion events are never sampled. Each stored event is weighted by 1 divided by this rate, so totals stay estimates of the real count. |
delegatesFocus |
boolean |
no |
Whether the shadow root delegates focus: focusing the element, clicking one of its labels or a non-focusable part of it focuses the component’s first focusable element. Defaults to the value of formAssociated. |