{
  "$id": "/schema/Presentations/Text/1.0/index.json",
  "type": "object",
  "title": "Text",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "PresentationType",
    "Text"
  ],
  "properties": {
    "PresentationType": {
      "type": "string",
      "editor": "Text",
      "pattern": "Text",
      "description": "Text is used to display styled text with various alignment and overflow handling options."
    },
    "Text": {
      "type": "string",
      "description": "The actual text content to be displayed."
    },
    "FontSize": {
      "type": "number",
      "description": "The size of the plugin in pixels",
      "default": 16
    },
    "FontFamily": {
      "type": "string",
      "description": "The font family used for the plugin.",
      "default": "DefaultUI"
    },
    "FontWeight": {
      "type": "string",
      "description": "The weight of the font used for the plugin.",
      "default": "w400"
    },
    "Height": {
      "type": "number",
      "description": "The height of the font used for the plugin."
    },
    "BackgroundColor": {
      "type": "string",
      "editor": {
        "OnChange": {
          "To": "{{ Id }}",
          "Handler": "Whisper"
        },
        "InitialValue": "{{ Value }}",
        "DisplayText": "BackgroundColor",
        "PresentationType": "ColorPicker"
      },
      "description": "The BackgroundColor of the plugin"
    },
    "Color": {
      "type": "string",
      "editor": {
        "OnChange": {
          "To": "{{ Id }}",
          "Handler": "Whisper"
        },
        "InitialValue": "{{ Value }}",
        "DisplayText": "Color",
        "PresentationType": "ColorPicker"
      },
      "description": "The BackgroundColor of the plugin"
    },
    "LetterSpacing": {
      "type": "number",
      "description": "The spacing between letters in the text."
    },
    "TextAlign": {
      "enum": [
        "Left",
        "Center",
        "Right",
        "Justify"
      ],
      "type": "string",
      "editor": "Select",
      "description": "The alignment of the text.",
      "default": "Left"
    },
    "TextOverflow": {
      "enum": [
        "Clip",
        "Ellipsis",
        "Fade"
      ],
      "type": "string",
      "editor": "Select",
      "description": "The strategy for handling text overflow."
    },
    "TextDecoration": {
      "enum": [
        "None",
        "Underline",
        "Overline",
        "LineThrough"
      ],
      "type": "string",
      "editor": "Select",
      "description": "The decoration applied to the text."
    },
    "Icon": {
      "type": "string",
      "description": "An optional icon to display alongside the text."
    },
    "Align": {
      "enum": [
        "Left",
        "Center",
        "Right",
        "Justify"
      ],
      "type": "string",
      "editor": "Select",
      "description": "The alignment of the text within its container."
    },
    "ShowCursor": {
      "type": "boolean",
      "description": "Whether to show a cursor for text editing"
    },
    "CursorColor": {
      "type": "string",
      "editor": {
        "OnChange": {
          "To": "{{ Id }}",
          "Handler": "Whisper"
        },
        "InitialValue": "{{ Value }}",
        "DisplayText": "CursorColor",
        "PresentationType": "ColorPicker"
      },
      "description": "The color of a cursor as color name or hex value"
    },
    "CursorWidth": {
      "type": "number",
      "description": "The width of a cursor in pixels",
      "default": 0
    },
    "Selectable": {
      "type": "boolean",
      "description": " It state whether the text can be selected by the user.",
      "default": false
    },
    "Focus": {
      "type": "boolean",
      "description": "State whether the text should be focused or not",
      "default": false
    },
    "IsLink": {
      "type": "boolean",
      "description": "Treats text as a link with underline on hoover",
      "default": false
    },
    "ShowSpinner": {
      "type": "boolean",
      "description": "It shows the loading spinner next to the text",
      "default": false
    },
    "SoftWrap": {
      "type": "boolean",
      "description": " It wraps the text should wrap to the next line if it's too long.",
      "default": false
    },
    "MaxLines": {
      "type": "integer",
      "description": "The maximum number of lines to display for wrapped text."
    }
  },
  "x-icon": "<svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 5h14M12 5v14M9 19h6\"/></svg>",
  "x-family": "Presentations",
  "x-name": "Text",
  "x-version": "1.0",
  "x-source-package": "zero-schema"
}