{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/damdafa-com/json-schema/damdafa-com-text-element-schema.json",
  "title": "TextElement",
  "description": "Represents text on the canvas.\n- 'content': Holds the text for the ProjectVersion's 'mainLanguage'.\n- 'translations': Holds overrides for 'additionalLanguages' (key=locale code).",
  "x-generated": "2026-10-29",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/mockupper-damdafa-com-openapi.json#/components/schemas/TextElement",
  "properties": {
    "content": {
      "type": "string",
      "title": "Content"
    },
    "translations": {
      "additionalProperties": {
        "type": "string"
      },
      "propertyNames": {
        "$ref": "#/$defs/MockupperLocale"
      },
      "type": "object",
      "title": "Translations"
    },
    "layouts": {
      "additionalProperties": {
        "$ref": "#/$defs/TextElementLayout"
      },
      "propertyNames": {
        "$ref": "#/$defs/MockupperLocale"
      },
      "type": "object",
      "title": "Layouts"
    },
    "fontType": {
      "type": "string",
      "title": "Fonttype"
    },
    "color": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Color"
    },
    "visible": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Visible",
      "default": true
    },
    "textAlign": {
      "anyOf": [
        {
          "$ref": "#/$defs/TextAlign"
        },
        {
          "type": "null"
        }
      ]
    },
    "fontSize": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "title": "Fontsize"
    },
    "positionX": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "title": "Positionx"
    },
    "positionY": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "title": "Positiony"
    },
    "wrapperWidthPx": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "title": "Wrapperwidthpx"
    }
  },
  "type": "object",
  "required": [
    "content",
    "fontType"
  ],
  "$defs": {
    "MockupperLocale": {
      "type": "string",
      "enum": [
        "ar-SA",
        "ca",
        "cs",
        "da",
        "de-DE",
        "el",
        "en-AU",
        "en-CA",
        "en-GB",
        "en-US",
        "es-ES",
        "es-MX",
        "fi",
        "fr-CA",
        "fr-FR",
        "he",
        "hi",
        "hr",
        "hu",
        "id",
        "it",
        "ja",
        "ko",
        "ms",
        "nl-NL",
        "no",
        "pl",
        "pt-BR",
        "pt-PT",
        "ro",
        "ru",
        "sk",
        "sv",
        "th",
        "tr",
        "uk",
        "vi",
        "zh-Hans",
        "zh-Hant"
      ],
      "title": "MockupperLocale"
    },
    "TextAlign": {
      "type": "string",
      "enum": [
        "left",
        "center",
        "right"
      ],
      "title": "TextAlign"
    },
    "TextElementLayout": {
      "properties": {
        "fontSize": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Fontsize"
        },
        "positionX": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Positionx"
        },
        "positionY": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Positiony"
        },
        "wrapperWidthPx": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Wrapperwidthpx"
        },
        "isManuallyAdjusted": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Ismanuallyadjusted",
          "default": false
        }
      },
      "type": "object",
      "title": "TextElementLayout",
      "description": "Layout properties for a specific locale."
    }
  }
}