{
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
  "framework": "lit",
  "name": "lit",
  "version": "2.0.0",
  "js-types-syntax": "typescript",
  "description-markup": "markdown",
  "default-icon": "icons/lit.svg",
  "framework-config": {
    "enable-when": {
      "node-packages": [
        "lit"
      ]
    }
  },
  "contributions": {
    "html": {
      "attributes": [
        {
          "name": "Event listeners",
          "description": "Event listeners expression",
          "virtual": true,
          "doc-url": "https://lit.dev/docs/templates/expressions/#event-listener-expressions",
          "value": {
            "kind": "expression",
            "type": "(event: Event) => void",
            "required": true
          },
          "pattern": {
            "or": [
              {
                "items": "/js/events",
                "template": [
                  "@",
                  "$...",
                  "#item:event name"
                ],
                "priority": "normal"
              },
              {
                "template": [
                  {
                    "regex": "@[-a-z0-9]+"
                  }
                ],
                "priority": "lowest"
              }
            ]
          }
        },
        {
          "name": "Boolean Attributes",
          "description": "Boolean Attributes expression",
          "virtual": true,
          "doc-url": "https://lit.dev/docs/templates/expressions/#boolean-attribute-expressions",
          "value": {
            "kind": "expression",
            "type": "boolean",
            "required": true
          },
          "pattern": {
            "items": {
              "path": "/html/attributes",
              "includeVirtual": false
            },
            "template": [
              "?",
              "$...",
              "#item:attribute name"
            ]
          }
        },
        {
          "name": "Properties",
          "description": "Properties expression",
          "virtual": true,
          "doc-url": "https://lit.dev/docs/templates/expressions/#property-expressions",
          "value": {
            "kind": "expression",
            "type": "any",
            "required": true
          },
          "inject-language": "JavaScript",
          "pattern": {
            "or": [
              {
                "items": {
                  "path": "/js/properties"
                },
                "template": [
                  ".",
                  "$...",
                  "#item:property name"
                ]
              }
            ]
          }
        }
      ],
      "elements": [
        {
          "name": "Standard HTML elements extension",
          "description": "This is a workaround to provide /js/properties on standard HTML elements.",
          "extension": true,
          "pattern": {
            "or": [
              "a",
              "abbr",
              "address",
              "area",
              "article",
              "aside",
              "audio",
              "b",
              "base",
              "bdi",
              "bdo",
              "blockquote",
              "body",
              "br",
              "button",
              "canvas",
              "caption",
              "cite",
              "code",
              "col",
              "colgroup",
              "data",
              "datalist",
              "dd",
              "del",
              "details",
              "dfn",
              "dialog",
              "div",
              "dl",
              "dt",
              "em",
              "embed",
              "fieldset",
              "figcaption",
              "figure",
              "footer",
              "form",
              "h1",
              "h2",
              "h3",
              "h4",
              "h5",
              "h6",
              "head",
              "header",
              "hr",
              "html",
              "i",
              "iframe",
              "img",
              "input",
              "ins",
              "kbd",
              "label",
              "legend",
              "li",
              "link",
              "main",
              "map",
              "mark",
              "meta",
              "meter",
              "nav",
              "noscript",
              "object",
              "ol",
              "optgroup",
              "option",
              "output",
              "p",
              "param",
              "picture",
              "pre",
              "progress",
              "q",
              "rp",
              "rt",
              "ruby",
              "s",
              "samp",
              "script",
              "section",
              "select",
              "small",
              "source",
              "span",
              "strong",
              "style",
              "sub",
              "summary",
              "sup",
              "svg",
              "table",
              "tbody",
              "td",
              "template",
              "textarea",
              "tfoot",
              "th",
              "thead",
              "time",
              "title",
              "tr",
              "track",
              "u",
              "ul",
              "var",
              "video",
              "wbr"
            ]
          },
          "js": {
            "properties": [
              {
                "name": "HTML attributes mapping",
                "pattern": {
                  "items": {
                    "path": "/html/attributes",
                    "includeVirtual": false
                  }
                }
              }
            ]
          }
        }
      ]
    }
  }
}
