Setting the file. One moment.
Skill 28 · Wix Headless Replatform
Subchapter 28.70
Scripts
scripts/36 filesregistry/items/button/shadcn-default-ac60ef5/capabilities.json
JSON60 lines3 KB
{
"schemaVersion": "component-capabilities/1",
"component": {
"name": "button",
"revision": "shadcn-default-ac60ef5"
},
"contract": {
"name": "button",
"version": "button/v1"
},
"axes": [
{
"name": "variant",
"values": ["default", "destructive", "outline", "secondary", "ghost", "link"],
"default": "default",
"description": "Visual emphasis encoded by the component variant prop."
},
{
"name": "size",
"values": ["default", "sm", "lg", "icon"],
"default": "default",
"description": "Control dimensions encoded by the component size prop."
}
],
"slots": [
{ "name": "label", "kind": "text", "description": "Visible accessible button or link text." },
{ "name": "icon", "kind": "icon", "description": "Optional source-backed or approved icon content." },
{ "name": "accessibleName", "kind": "text", "description": "Accessible name required when visible text is absent." },
{ "name": "href", "kind": "url", "description": "Preserved destination for the as-link composition." }
],
"states": ["rest", "hover", "focus-visible", "disabled"],
"defaultComposition": "text",
"compositions": [
{ "name": "text", "requiredSlots": ["label"], "description": "Text-only native button." },
{ "name": "leading-icon", "requiredSlots": ["label", "icon"], "description": "Icon before visible text." },
{ "name": "trailing-icon", "requiredSlots": ["label", "icon"], "description": "Icon after visible text." },
{ "name": "icon-only", "requiredSlots": ["icon", "accessibleName"], "description": "Square icon button with a non-visible accessible name." },
{ "name": "as-link", "requiredSlots": ["label", "href"], "description": "Native anchor rendered with button variants through Radix Slot." }
],
"unsupportedCompositions": [
{ "name": "loading-spinner", "reason": "Requires a separately approved spinner component and loading-state contract." },
{ "name": "button-group", "reason": "Requires a separately approved group component and group semantics." },
{ "name": "client-managed-toggle", "reason": "This revision is approved only as a statically rendered native control without hydrated state." }
],
"constraints": [
{
"id": "icon-only-accessible-name",
"description": "An icon-only button must retain an evidence-backed accessible name.",
"appliesTo": ["composition:icon-only"],
"requires": ["slot:accessibleName"]
},
{
"id": "native-link-semantics",
"description": "A button-styled link must preserve its source href and native anchor semantics.",
"appliesTo": ["composition:as-link"],
"requires": ["slot:href", "slot:label"]
}
],
"evidenceRefs": ["contract.md"]
}