{
  "version": "experimental",
  "tags": [
    {
      "name": "ef-overlay-menu",
      "description": "Overlay that supports single-level and multi-level menus",
      "attributes": [
        {
          "name": "compact",
          "description": "Switch to compact style menu",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "opened",
          "description": "True if the menu is currently displayed",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "with-backdrop",
          "description": "True to show backdrop",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "no-cancel-on-esc-key",
          "description": "Set to true to disable canceling the overlay with the ESC key",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "no-cancel-on-outside-click",
          "description": "Set to true to disable canceling the overlay by clicking outside it",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "lock-position-target",
          "description": "Set to true to lock position target",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "transition-style",
          "description": "Set the transition style",
          "type": "string | null"
        },
        {
          "name": "value",
          "description": "Returns the first selected item value.",
          "type": "string",
          "default": "\"\""
        },
        {
          "name": "x",
          "description": "Set a specific x coordinate",
          "type": "number | undefined"
        },
        {
          "name": "y",
          "description": "Set a specific y coordinate",
          "type": "number | undefined"
        },
        {
          "name": "horizontal-offset",
          "description": "A pixel value that will be added to the position calculated on the horizontal axis. The offset will be applied either to the `left` or `right` depending on the `positionTarget`",
          "type": "number",
          "default": "0"
        },
        {
          "name": "vertical-offset",
          "description": "A pixel value that will be added to the position calculated on the vertical axis. The offset will be applied either to the `top` or `bottom` depending on the `positionTarget`",
          "type": "number",
          "default": "0"
        },
        {
          "name": "offset",
          "description": "A pixel value that will be added to the position calculated on the vertical or horizontal axis. The offset is applied dynamically depending on the `positionTarget`",
          "type": "number",
          "default": "0"
        },
        {
          "name": "position",
          "description": "Set position and align against the attach target.",
          "type": "Position[] | undefined"
        },
        {
          "name": "with-backdrop",
          "description": "True to show backdrop",
          "type": "boolean"
        },
        {
          "name": "no-cancel-on-esc-key",
          "description": "Set to true to disable canceling the overlay with the ESC key",
          "type": "boolean"
        },
        {
          "name": "no-cancel-on-outside-click",
          "description": "Set to true to disable canceling the overlay by clicking outside it",
          "type": "boolean"
        },
        {
          "name": "lock-position-target",
          "description": "Set to true to lock position target",
          "type": "boolean"
        },
        {
          "name": "transition-style",
          "description": "Set the transition style",
          "type": "string"
        },
        {
          "name": "horizontal-offset",
          "description": "A pixel value that will be added to the position calculated on the horizontal axis. The offset will be applied either to the `left` or `right` depending on the `positionTarget`",
          "type": "number"
        },
        {
          "name": "vertical-offset",
          "description": "A pixel value that will be added to the position calculated on the vertical axis. The offset will be applied either to the `top` or `bottom` depending on the `positionTarget`",
          "type": "number"
        }
      ],
      "properties": [
        {
          "name": "compact",
          "attribute": "compact",
          "description": "Switch to compact style menu",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "values",
          "description": "Array of item's values",
          "type": "string[]",
          "default": "[]"
        },
        {
          "name": "data",
          "description": "Construct the menu from data object.\nCannot be used with internal content",
          "type": "OverlayMenuData|undefined"
        },
        {
          "name": "opened",
          "attribute": "opened",
          "description": "True if the menu is currently displayed",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "withBackdrop",
          "attribute": "with-backdrop",
          "description": "True to show backdrop",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "noCancelOnEscKey",
          "attribute": "no-cancel-on-esc-key",
          "description": "Set to true to disable canceling the overlay with the ESC key",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "noCancelOnOutsideClick",
          "attribute": "no-cancel-on-outside-click",
          "description": "Set to true to disable canceling the overlay by clicking outside it",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "lockPositionTarget",
          "attribute": "lock-position-target",
          "description": "Set to true to lock position target",
          "type": "boolean",
          "default": "false"
        },
        {
          "name": "positionTarget",
          "description": "Position next to the HTML element",
          "type": "HTMLElement | null"
        },
        {
          "name": "transitionStyle",
          "attribute": "transition-style",
          "description": "Set the transition style",
          "type": "string | null"
        },
        {
          "name": "value",
          "attribute": "value",
          "description": "Returns the first selected item value.",
          "type": "string",
          "default": "\"\""
        },
        {
          "name": "x",
          "attribute": "x",
          "description": "Set a specific x coordinate",
          "type": "number | undefined"
        },
        {
          "name": "y",
          "attribute": "y",
          "description": "Set a specific y coordinate",
          "type": "number | undefined"
        },
        {
          "name": "horizontalOffset",
          "attribute": "horizontal-offset",
          "description": "A pixel value that will be added to the position calculated on the horizontal axis. The offset will be applied either to the `left` or `right` depending on the `positionTarget`",
          "type": "number",
          "default": "0"
        },
        {
          "name": "verticalOffset",
          "attribute": "vertical-offset",
          "description": "A pixel value that will be added to the position calculated on the vertical axis. The offset will be applied either to the `top` or `bottom` depending on the `positionTarget`",
          "type": "number",
          "default": "0"
        },
        {
          "name": "offset",
          "attribute": "offset",
          "description": "A pixel value that will be added to the position calculated on the vertical or horizontal axis. The offset is applied dynamically depending on the `positionTarget`",
          "type": "number",
          "default": "0"
        },
        {
          "name": "position",
          "attribute": "position",
          "description": "Set position and align against the attach target.",
          "type": "Position[] | undefined"
        }
      ],
      "events": [
        {
          "name": "item-trigger",
          "description": "Fired when the user taps on item."
        },
        {
          "name": "opened-changed",
          "description": "Fired when the user changes open state of the overlay e.g. when the user presses escape key or uses close button to close the overlay. The event is not triggered if `opened` property is changed programmatically."
        }
      ]
    }
  ]
}