{
    "description": {
        "author": "Salesforce",
        "text": [
            "Component that displays a title with icon and provides inline editing functionality",
            "Supports display mode with title text and edit mode with input field and action buttons",
            "Selector: experience_ui_gen_canvas-tile-title"
        ]
    },
    "shadow": {
        "elements": [
            {
                "name": "titleIcon",
                "selector": {
                    "css": "lightning-icon.title-icon"
                },
                "type": "utam-lightning/pageObjects/icon",
                "description": "Represents the icon displayed next to the title",
                "public": true
            },
            {
                "name": "titleText",
                "selector": {
                    "css": ".title-truncate"
                },
                "description": "Represents the title text with truncation support",
                "wait": true
            },
            {
                "name": "editButton",
                "selector": {
                    "css": "lightning-button-icon[data-id='editButton']"
                },
                "type": [
                    "actionable",
                    "clickable"
                ],
                "description": "Represents the edit button that appears on hover",
                "wait": true
            },
            {
                "name": "titleInput",
                "selector": {
                    "css": "lightning-input"
                },
                "type": "editable",
                "description": "Represents the input field for editing the title",
                "public": true
            },
            {
                "name": "saveButton",
                "selector": {
                    "css": "lightning-button-icon[data-id='saveButton']"
                },
                "type": [
                    "actionable",
                    "clickable"
                ],
                "description": "Represents the save button in edit mode"
            },
            {
                "name": "cancelButton",
                "selector": {
                    "css": "lightning-button-icon[data-id='cancelButton']"
                },
                "type": [
                    "actionable",
                    "clickable"
                ],
                "description": "Represents the cancel button in edit mode"
            }
        ]
    },
    "methods": [
        {
            "name": "getTitleText",
            "description": {
                "text": [
                    "Retrieves the text content of the title"
                ],
                "return": "string"
            },
            "compose": [
                {
                    "element": "titleText",
                    "apply": "getText"
                }
            ]
        },
        {
            "name": "isTitleVisible",
            "description": {
                "text": [
                    "Checks if the title text is visible"
                ],
                "return": "boolean"
            },
            "compose": [
                {
                    "element": "titleText",
                    "apply": "isVisible"
                }
            ]
        },
        {
            "name": "isEditButtonVisible",
            "description": {
                "text": [
                    "Checks if the edit button is visible"
                ],
                "return": "boolean"
            },
            "compose": [
                {
                    "element": "editButton",
                    "apply": "isVisible"
                }
            ]
        },
        {
            "name": "clickEditButton",
            "description": {
                "text": [
                    "Clicks the edit button to enter edit mode"
                ]
            },
            "compose": [
                {
                    "element": "editButton",
                    "apply": "click"
                }
            ]
        },
        {
            "name": "isInEditMode",
            "description": {
                "text": [
                    "Checks if the component is currently in edit mode"
                ],
                "return": "boolean"
            },
            "compose": [
                {
                    "element": "titleInput",
                    "apply": "isPresent"
                }
            ]
        },
        {
            "name": "setTitleText",
            "description": {
                "text": [
                    "Sets the text in the title input field"
                ]
            },
            "args": [
                {
                    "name": "text",
                    "type": "string"
                }
            ],
            "compose": [
                {
                    "element": "titleInput",
                    "apply": "setText",
                    "args": [
                        {
                            "name": "text",
                            "type": "string"
                        }
                    ]
                }
            ]
        },
        {
            "name": "getTitleInputValue",
            "description": {
                "text": [
                    "Gets the current value of the title input field"
                ],
                "return": "string"
            },
            "compose": [
                {
                    "element": "titleInput",
                    "apply": "getText"
                }
            ]
        },
        {
            "name": "clickSaveButton",
            "description": {
                "text": [
                    "Clicks the save button to save title changes"
                ]
            },
            "compose": [
                {
                    "element": "saveButton",
                    "apply": "click"
                }
            ]
        },
        {
            "name": "clickCancelButton",
            "description": {
                "text": [
                    "Clicks the cancel button to discard title changes"
                ]
            },
            "compose": [
                {
                    "element": "cancelButton",
                    "apply": "click"
                }
            ]
        },
        {
            "name": "isSaveButtonVisible",
            "description": {
                "text": [
                    "Checks if the save button is visible (edit mode)"
                ],
                "return": "boolean"
            },
            "compose": [
                {
                    "element": "saveButton",
                    "apply": "isVisible"
                }
            ]
        },
        {
            "name": "isCancelButtonVisible",
            "description": {
                "text": [
                    "Checks if the cancel button is visible (edit mode)"
                ],
                "return": "boolean"
            },
            "compose": [
                {
                    "element": "cancelButton",
                    "apply": "isVisible"
                }
            ]
        }
    ]
}