{
"type": "object",
"properties": {
"type": {
"const": "Ring",
"default": "Ring",
"type": "string"
},
"id": {
"type": [
"string",
"null"
],
"default": null,
"description": "HTML id attribute for CSS targeting. Applied to the outermost element."
},
"cssClass": {
"type": [
"string",
"null"
],
"default": null,
"description": "CSS/Tailwind classes for styling. Accepts a Responsive() for breakpoint-aware classes."
},
"onMount": {
"default": null,
"description": "Action(s) to execute when this component mounts."
},
"children": {
"type": "array",
"items": {
"$ref": "Component"
}
},
"let": {
"additionalProperties": true,
"type": [
"object",
"null"
],
"default": null,
"description": "Scoped bindings available to children. Values are template strings."
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
],
"default": 0,
"description": "Current value (number or template expression)"
},
"min": {
"default": 0,
"description": "Minimum value",
"type": "number"
},
"max": {
"default": 100,
"description": "Maximum value",
"type": "number"
},
"label": {
"type": [
"string",
"null"
],
"default": null,
"description": "Text displayed in the center of the ring"
},
"variant": {
"anyOf": [
{
"enum": [
"default",
"success",
"warning",
"destructive",
"info",
"muted"
],
"type": "string"
},
{
"type": "string"
}
],
"default": "default",
"description": "Visual variant: default, success, warning, destructive, info, muted"
},
"size": {
"default": "default",
"description": "Ring size: sm (64px), default (96px), lg (128px)",
"enum": [
"sm",
"default",
"lg"
],
"type": "string"
},
"thickness": {
"default": 6,
"description": "Stroke width of the ring in pixels",
"type": "number"
},
"target": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Target marker position (renders a tick mark on the ring at this value)"
},
"indicatorClass": {
"type": [
"string",
"null"
],
"default": null,
"description": "Tailwind classes for the filled arc (e.g. 'hover:drop-shadow-lg')"
},
"targetClass": {
"type": [
"string",
"null"
],
"default": null,
"description": "Tailwind classes for the target marker"
},
"gradient": {
"type": [
"boolean",
"null"
],
"default": null,
"description": "Gradient stroke: None (inherit from theme), True (force on), False (force off)"
}
},
"required": [
"type"
]
}