{
    "description": {
        "author": "Salesforce",
        "text": [
            "Component that manages app development plans, chat interactions, and navigation within the Salesforce Studio home page.",
            "Selector: app_dev_agent-sf-studio-home"
        ]
    },
    "shadow": {
        "elements": [
            {
                "name": "projectStudioPageLayout",
                "selector": {
                    "css": "dev_workspace-project-studio-page-layout"
                },
                "description": "Represents the root layout of the page component",
                "public": true,
                "elements": [
                    {
                        "name": "pageContent",
                        "selector": {
                            "css": ":scope > *:first-child"
                        },
                        "description": "Represents the container for the main page content",
                        "elements": [
                            {
                                "name": "tabsContainer",
                                "selector": {
                                    "css": ".tabs-container"
                                },
                                "description": "Represents the container for the tabs",
                                "elements": [
                                    {
                                        "name": "executionCompleteBanner",
                                        "selector": {
                                            "css": ".slds-grid.slds-grid_vertical-align-center.slds-grid_align-spread.slds-m-bottom_large"
                                        },
                                        "description": "Represents the banner displayed when execution is complete",
                                        "nullable": true,
                                        "elements": [
                                            {
                                                "name": "notificationComponent",
                                                "selector": {
                                                    "css": "app_dev_agent-scoped-notification"
                                                },
                                                "type": "utam-app_dev_agent/pageObjects/scopedNotification",
                                                "description": "Represents the notification component for execution messages",
                                                "public": true,
                                                "elements": [
                                                    {
                                                        "name": "viewMetadataLink",
                                                        "selector": {
                                                            "css": "lightning-formatted-url.view-metadata"
                                                        },
                                                        "type": "utam-lightning/pageObjects/formattedUrl",
                                                        "description": "Represents the link to view metadata",
                                                        "public": true
                                                    }
                                                ]
                                            },
                                            {
                                                "name": "previewButton",
                                                "selector": {
                                                    "css": "button.slds-button.slds-button_brand.slds-m-left_x-small.no-wrap"
                                                },
                                                "type": [
                                                    "actionable",
                                                    "clickable"
                                                ],
                                                "description": "Represents the preview button for the generated app",
                                                "nullable": true
                                            }
                                        ]
                                    },
                                    {
                                        "name": "projectPanel",
                                        "selector": {
                                            "css": "app_dev_agent-sf-studio-project-panel"
                                        },
                                        "type": "utam-app_dev_agent/pageObjects/sfStudioProjectPanel",
                                        "description": "Represents the project panel for managing app development plans",
                                        "public": true
                                    }
                                ]
                            },
                            {
                                "name": "chatContainer",
                                "selector": {
                                    "css": "div.chat-container"
                                },
                                "description": "Represents the container for the chat component",
                                "nullable": true,
                                "elements": [
                                    {
                                        "name": "agenticShell",
                                        "selector": {
                                            "css": "runtime_copilot-agentic-shell"
                                        },
                                        "description": "Represents the runtime shell for the chat interface",
                                        "nullable": true,
                                        "public": true
                                    },
                                    {
                                        "name": "emptyChatPanel",
                                        "selector": {
                                            "css": "app_dev_agent-chat-panel-empty-state"
                                        },
                                        "type": "utam-app_dev_agent/pageObjects/chatPanelEmptyState",
                                        "description": "Represents the placeholder for an empty chat panel",
                                        "nullable": true,
                                        "public": true
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        ]
    },
    "methods": [
        {
            "name": "isPageContentVisible",
            "description": {
                "text": [
                    "Check that the main page content is present and visible"
                ],
                "return": "boolean"
            },
            "compose": [
                {
                    "element": "pageContent",
                    "apply": "isVisible"
                }
            ]
        },
        {
            "name": "isTabsContainerVisible",
            "description": {
                "text": [
                    "Check that the tabs container is present and visible"
                ],
                "return": "boolean"
            },
            "compose": [
                {
                    "element": "tabsContainer",
                    "apply": "isVisible"
                }
            ]
        },
        {
            "name": "isExecutionCompleteBannerVisible",
            "description": {
                "text": [
                    "Check that the execution complete banner is present and visible"
                ],
                "return": "boolean"
            },
            "compose": [
                {
                    "element": "executionCompleteBanner",
                    "apply": "isVisible"
                }
            ]
        },
        {
            "name": "clickPreviewButton",
            "description": {
                "text": [
                    "Click the preview button to open the generated app"
                ]
            },
            "compose": [
                {
                    "element": "previewButton",
                    "apply": "click"
                }
            ]
        },
        {
            "name": "isPreviewButtonEnabled",
            "description": {
                "text": [
                    "Check if the preview button is enabled"
                ],
                "return": "boolean"
            },
            "compose": [
                {
                    "element": "previewButton",
                    "apply": "isEnabled"
                }
            ]
        },
        {
            "name": "isChatContainerVisible",
            "description": {
                "text": [
                    "Check that the chat container is present and visible"
                ],
                "return": "boolean"
            },
            "compose": [
                {
                    "element": "chatContainer",
                    "apply": "isVisible"
                }
            ]
        },
        {
            "name": "verifyExecutionCompleteBannerPresence",
            "description": {
                "text": [
                    "Returns true if element \"executionCompleteBanner\" present on the page"
                ],
                "return": "boolean"
            },
            "compose": [
                {
                    "element": "executionCompleteBanner",
                    "matcher": {
                        "type": "notNull"
                    }
                }
            ]
        },
        {
            "name": "verifyPreviewButtonPresence",
            "description": {
                "text": [
                    "Returns true if element \"previewButton\" present on the page"
                ],
                "return": "boolean"
            },
            "compose": [
                {
                    "element": "previewButton",
                    "matcher": {
                        "type": "notNull"
                    }
                }
            ]
        },
        {
            "name": "verifyChatContainerPresence",
            "description": {
                "text": [
                    "Returns true if element \"chatContainer\" present on the page"
                ],
                "return": "boolean"
            },
            "compose": [
                {
                    "element": "chatContainer",
                    "matcher": {
                        "type": "notNull"
                    }
                }
            ]
        }
    ]
}