{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "open": {
            "type": "object",
            "description": "Open a popup.",
            "properties": {
                "onActions": {
                    "type": "array",
                    "description": "Names of the actions that trigger opening of the popup.",
                    "items": {
                        "type": "string",
                        "format": "topic",
                        "axRole": "inlet"
                    },
                    "default": []
                }
            }
        },
        "visibility": {
            "type": "object",
            "description": "Show or hide the popup depending on flag presence.",
            "properties": {
                "flag": {
                    "type": "string",
                    "format": "topic",
                    "axRole": "outlet",
                    "description": "Name of the flag indicating the visibility of the popup."
                },
                "onTop": {
                    "type": "boolean",
                    "default": false,
                    "description": "If true the popover gets a very high z-index to be on top of every other content."
                }
            }
        },
        "close": {
            "type": "object",
            "description": "Close the popup upon action request.",
            "properties": {
                "onActions": {
                    "type": "array",
                    "description": "Names of the actions that trigger closing of the popup.",
                    "items": {
                        "type": "string",
                        "format": "topic",
                        "axRole": "inlet"
                    },
                    "default": []
                }
            }
        },
        "closeIcon": {
            "type": "object",
            "description": "Allow the user to close the popup using an icon or the escape key.",
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "default": false,
                    "description": "If true the popup is closed when escape key or the close icon is pressed."
                }
            }
        },
        "backdropClose": {
            "type": "object",
            "description": "Allow the user to close the popup by a backdrop click.",
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "default": false
                }
            }
        },
        "forcedClose": {
            "type": "object",
            "description": "React to the user forcing the popup to close.",
            "properties": {
                "action": {
                    "type": "string",
                    "format": "topic",
                    "description": "Name of the action that is published whenever the popup is closed by user interaction."
                }
            }
        },
        "area": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string",
                    "description": "Name of the exported area used to show or hide content.",
                    "format": "topic",
                    "default": "content"
                }
            }
        },
        "autoFocus": {
            "type": "object",
            "description": "Move focus to the popup.",
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "If true the first suitable child element of the popover gets the focus on open."
                }
            }
        },
        "captureFocus": {
            "type": "object",
            "description": "Keep focus within the popup.",
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "If true a focus change via tab key to any element outside of the popover is prohibited."
                }
            }
        },
        "position": {
            "type": "object",
            "description": "Configuration for the positioning of the popup.",
            "properties": {
                "vertical": {
                    "type": "string",
                    "enum": [
                        "MIDDLE",
                        "TOP"
                    ],
                    "default": "MIDDLE"
                }
            }
        },
        "preventBodyScrolling": {
            "type": "object",
            "description": "Prevent from scrolling the body element while the popup is visible.",
            "properties": {
                "enabled": {
                    "type": "boolean",
                    "default": true,
                    "description": "If true sets overflow hidden on the body to prevent scrolling while visible."
                }
            }
        }
    }
}