{
  "_copyright": "Copyright (c) 2026, Salesforce, Inc., All rights reserved. For full license text, see the LICENSE.txt file",
  "$schema": "https://slds.lightningdesignsystem.com/schemas/uif-system.v1.json",
  "apiVersion": "1.0.0",
  "name": "ButtonDualStateful",
  "description": "Initiates a dual stateful button",
  "extensions": {
    "com.salesforce-ux": {
      "genReady": false
    }
  },
  "cssSource": "./buttonDualStateful.css",
  "styleApi": {
    "status": "stable",
    "ready": true
  },
  "structure": {
    "name": "buttonDualStateful",
    "restrict": [
      "button"
    ],
    "description": "Initiates a dual stateful button",
    "attributes": {
      "static": {
        "class": "slds-button slds-button_neutral slds-button_dual-stateful"
      }
    },
    "children": [
      {
        "name": "notPressedText",
        "restrict": [
          "span"
        ],
        "description": "Shown text when button is not pressed: default state",
        "attributes": {
          "static": {
            "class": "slds-text-not-pressed"
          }
        },
        "children": [
          {
            "name": "notPressedIcon",
            "description": "Position of icon when sitting to the left side of the text when inside a button",
            "attributes": {
              "static": {
                "class": "slds-button__icon slds-button__icon_small slds-button__icon_left"
              }
            },
            "component": "PrimitiveIcon"
          }
        ]
      },
      {
        "name": "pressedText",
        "restrict": [
          "span"
        ],
        "description": "Shown text when button is pressed",
        "attributes": {
          "static": {
            "class": "slds-text-pressed"
          }
        },
        "children": [
          {
            "name": "pressedIcon",
            "description": "Position of icon when sitting to the left side of the text when inside a button",
            "attributes": {
              "static": {
                "class": "slds-button__icon slds-button__icon_small slds-button__icon_left"
              }
            },
            "component": "PrimitiveIcon"
          }
        ]
      }
    ]
  },
  "stateClasses": [
    {
      "state": "pressed",
      "class": "slds-is-pressed"
    }
  ],
  "componentRefs": {
    "PrimitiveIcon": {
      "description": "Bare SVG icon composed directly inside the component. The host node supplies the SVG class (e.g. slds-button__icon, slds-menu__item-icon) via componentProps; PrimitiveIcon contributes the sprite-href binding.",
      "props": {
        "iconName": {
          "type": "string",
          "required": true,
          "description": "Sprite reference for the icon glyph"
        }
      }
    }
  },
  "states": [
    {
      "name": "pressed",
      "type": "boolean",
      "description": "Whether the component is in the pressed state"
    }
  ]
}
