{
    "description": {
        "author": "Salesforce",
        "text": [
            "Component that displays a message block with dynamic content, handling inbound message types and showing appropriate icons and slots for customization.",
            "Selector: app_dev_agent-panel-message-block"
        ]
    },
    "shadow": {
        "elements": [
            {
                "name": "messageContainer",
                "selector": {
                    "css": "div[class='%s']",
                    "args": [
                        {
                            "name": "selectorStr",
                            "type": "string",
                            "description": "CSS selector parameter"
                        }
                    ]
                },
                "description": "Represents the root container of the message block",
                "elements": [
                    {
                        "name": "chatIcon",
                        "selector": {
                            "css": ".chat-icon"
                        },
                        "description": "Represents the container for the chat icon, shown only for inbound messages",
                        "nullable": true,
                        "elements": [
                            {
                                "name": "inboundMessageIcon",
                                "selector": {
                                    "css": "lightning-icon.inbound-message-blue"
                                },
                                "type": "utam-lightning/pageObjects/icon",
                                "description": "Represents the Lightning icon for inbound messages",
                                "public": true
                            }
                        ]
                    },
                    {
                        "name": "messageBody",
                        "selector": {
                            "css": ".slds-chat-message__body"
                        },
                        "description": "Represents the main body container for the message content",
                        "elements": [
                            {
                                "name": "messageContent",
                                "selector": {
                                    "css": "div[class='%s']",
                                    "args": [
                                        {
                                            "name": "messageSelectorStr",
                                            "type": "string",
                                            "description": "CSS selector parameter for message content"
                                        }
                                    ]
                                },
                                "description": "Represents the dynamic content container for the message, styled based on computed classes",
                                "elements": [
                                    {
                                        "name": "slotContent",
                                        "selector": {
                                            "css": ":scope > *:first-child"
                                        },
                                        "type": "container",
                                        "description": "Represents the slot for injecting custom content into the message block",
                                        "public": true
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        ]
    },
    "methods": [
        {
            "name": "isMessageContainerVisible",
            "description": {
                "text": [
                    "Check that the message container is present and visible"
                ],
                "return": "boolean"
            },
            "compose": [
                {
                    "element": "messageContainer",
                    "apply": "isVisible"
                }
            ]
        },
        {
            "name": "isChatIconPresent",
            "description": {
                "text": [
                    "Check that the chat icon is present"
                ],
                "return": "boolean"
            },
            "compose": [
                {
                    "element": "chatIcon",
                    "apply": "isPresent"
                }
            ]
        },
        {
            "name": "isChatIconVisible",
            "description": {
                "text": [
                    "Check that the chat icon is visible"
                ],
                "return": "boolean"
            },
            "compose": [
                {
                    "element": "chatIcon",
                    "apply": "isVisible"
                }
            ]
        },
        {
            "name": "isMessageBodyVisible",
            "description": {
                "text": [
                    "Check that the message body is present and visible"
                ],
                "return": "boolean"
            },
            "compose": [
                {
                    "element": "messageBody",
                    "apply": "isVisible"
                }
            ]
        },
        {
            "name": "isMessageContentVisible",
            "description": {
                "text": [
                    "Check that the message content container is present and visible"
                ],
                "return": "boolean"
            },
            "compose": [
                {
                    "element": "messageContent",
                    "apply": "isVisible"
                }
            ]
        },
        {
            "name": "getMessageContentClass",
            "description": {
                "text": [
                    "Get the dynamic class of the message content container"
                ],
                "return": "string"
            },
            "compose": [
                {
                    "element": "messageContent",
                    "apply": "getAttribute",
                    "args": [
                        {
                            "name": "attrName",
                            "type": "string"
                        }
                    ]
                }
            ]
        },
        {
            "name": "isMessageContainerEnabled",
            "description": {
                "text": [
                    "Check if the message container is enabled"
                ],
                "return": "boolean"
            },
            "compose": [
                {
                    "element": "messageContainer",
                    "apply": "isEnabled"
                }
            ]
        },
        {
            "name": "verifyChatIconPresence",
            "description": {
                "text": [
                    "Returns true if element \"chatIcon\" present on the page"
                ],
                "return": "boolean"
            },
            "compose": [
                {
                    "element": "chatIcon",
                    "matcher": {
                        "type": "notNull"
                    }
                }
            ]
        }
    ]
}