{
  "v": 0,
  "components": {
    "design-tokens-color-brand-colors": {
      "id": "design-tokens-color-brand-colors",
      "name": "ColorSwatchGroup",
      "path": "../../packages/design-tokens/stories/BrandColors.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "ColorSwatchGroup",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-tokens/stories/components/ColorSwatchGroup/ColorSwatchGroup.tsx",
        "actualName": "ColorSwatchGroup",
        "exportName": "ColorSwatchGroup",
        "props": {
          "swatchData": {
            "required": true,
            "tsType": {
              "name": "signature",
              "type": "object",
              "raw": "{\n  [colorName: string]: ColorPalette | ColorDetails;\n}",
              "signature": {
                "properties": [
                  {
                    "key": {
                      "name": "string"
                    },
                    "value": {
                      "name": "union",
                      "raw": "ColorPalette | ColorDetails",
                      "elements": [
                        {
                          "name": "signature",
                          "type": "object",
                          "raw": "{\n  [shade: string]: ColorDetails;\n}",
                          "signature": {
                            "properties": [
                              {
                                "key": {
                                  "name": "string"
                                },
                                "value": {
                                  "name": "signature",
                                  "type": "object",
                                  "raw": "{\n  value: string; // Hex value or alias to another color\n  type?: string; // Type usually color\n  parent?: string; // Parent category or group of the color\n  description?: string; // Description or notes about the color\n}",
                                  "signature": {
                                    "properties": [
                                      {
                                        "key": "value",
                                        "value": {
                                          "name": "string",
                                          "required": true
                                        }
                                      },
                                      {
                                        "key": "type",
                                        "value": {
                                          "name": "string",
                                          "required": false
                                        }
                                      },
                                      {
                                        "key": "parent",
                                        "value": {
                                          "name": "string",
                                          "required": false
                                        }
                                      },
                                      {
                                        "key": "description",
                                        "value": {
                                          "name": "string",
                                          "required": false
                                        }
                                      }
                                    ]
                                  },
                                  "required": true
                                }
                              }
                            ]
                          }
                        },
                        {
                          "name": "signature",
                          "type": "object",
                          "raw": "{\n  value: string; // Hex value or alias to another color\n  type?: string; // Type usually color\n  parent?: string; // Parent category or group of the color\n  description?: string; // Description or notes about the color\n}",
                          "signature": {
                            "properties": [
                              {
                                "key": "value",
                                "value": {
                                  "name": "string",
                                  "required": true
                                }
                              },
                              {
                                "key": "type",
                                "value": {
                                  "name": "string",
                                  "required": false
                                }
                              },
                              {
                                "key": "parent",
                                "value": {
                                  "name": "string",
                                  "required": false
                                }
                              },
                              {
                                "key": "description",
                                "value": {
                                  "name": "string",
                                  "required": false
                                }
                              }
                            ]
                          },
                          "required": true
                        }
                      ],
                      "required": true
                    }
                  }
                ]
              }
            },
            "description": "The color object"
          },
          "textBackgroundColor": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "The color of text background that contains the name of the color defaults to background.default",
            "defaultValue": {
              "value": "'transparent'",
              "computed": false
            }
          },
          "theme": {
            "required": false,
            "tsType": {
              "name": "union",
              "raw": "string | undefined",
              "elements": [
                {
                  "name": "string"
                },
                {
                  "name": "undefined"
                }
              ]
            },
            "description": "Hex code value of the theme (light or dark mode) this is used to help determine the text color of each swatch when opacity is involved\nDefault is light theme #ffffff",
            "defaultValue": {
              "value": "'#ffffff'",
              "computed": false
            }
          }
        }
      },
      "stories": [
        {
          "id": "design-tokens-color-brand-colors--figma",
          "name": "Figma",
          "snippet": "const Figma = () => {\n  const { brandColor } = useJsonColor();\n  return <ColorSwatchGroup swatchData={brandColor} />;\n};"
        },
        {
          "id": "design-tokens-color-brand-colors--css",
          "name": "CSS",
          "snippet": "const CSS = () => {\n  const cssBrandColors = getCSSVariablesFromStylesheet('--brand-colors');\n  return (\n    <div className=\"grid grid-cols-[repeat(auto-fill,300px)] gap-4\">\n      {/* Mapping through each brand color and rendering a ColorSwatch component for it */}\n      {Object.values(cssBrandColors).map(({ color, resolvedColor, name }) => (\n        <ColorSwatch\n          key={name}\n          color={color}\n          backgroundColor={name}\n          textBackgroundColor=\"transparent\"\n          textColor={getContrastYIQ(resolvedColor, resolvedColor)}\n          name={name}\n        />\n      ))}\n    </div>\n  );\n};"
        },
        {
          "id": "design-tokens-color-brand-colors--js",
          "name": "JS",
          "snippet": "const JS = () => (\n  <div className=\"grid grid-cols-[repeat(auto-fill,300px)] gap-4\">\n    {/* Mapping through each brand color and rendering a ColorSwatch component for it */}\n    {Object.entries(brandColorJS).map(([name, color]) => (\n      <ColorSwatch\n        key={name}\n        color={color}\n        textBackgroundColor=\"transparent\"\n        textColor={getContrastYIQ(color, color)}\n        name={`brandColor.${name}`}\n      />\n    ))}\n  </div>\n);"
        }
      ],
      "import": "import { ColorSwatch, ColorSwatchGroup } from '@metamask/design-tokens';"
    },
    "design-tokens-shadows-shadows": {
      "id": "design-tokens-shadows-shadows",
      "name": "ShadowSwatch",
      "path": "../../packages/design-tokens/stories/Shadows.stories.tsx",
      "jsDocTags": {},
      "error": {
        "name": "No component import found",
        "message": "No component file found for the \"ShadowSwatch\" component.\n  21 | );\n  22 |\n> 23 | const meta: Meta<typeof ShadowSwatch> = {\n     | ^\n  24 |   title: 'Design Tokens/Shadows/Shadows',\n  25 |   component: ShadowSwatch,\n  26 |   parameters: {\n\n../../packages/design-tokens/stories/Shadows.stories.tsx:\nimport { Text, TextColor } from '@metamask/design-system-react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport React from 'react';\n\nimport README from './Shadows.mdx';\n\ntype ShadowSwatchProps = {\n  children: React.ReactNode;\n  className?: string;\n};\n\nconst ShadowSwatch: React.FC<ShadowSwatchProps> = ({\n  children,\n  className = '',\n}) => (\n  <div\n    className={`grid h-24 place-content-center rounded bg-default text-center ${className}`}\n  >\n    {children}\n  </div>\n);\n\nconst meta: Meta<typeof ShadowSwatch> = {\n  title: 'Design Tokens/Shadows/Shadows',\n  component: ShadowSwatch,\n  parameters: {\n    docs: {\n      page: README,\n    },\n  },\n};\n\nexport default meta;\n\nexport const DefaultStory: StoryObj<typeof ShadowSwatch> = {\n  name: 'Default',\n  args: {\n    className: 'shadow-xs',\n  },\n  render: (args) => (\n    <div className=\"grid grid-cols-[repeat(auto-fill,200px)] gap-8\">\n      <ShadowSwatch {...args}>\n        <Text>Shadow</Text>\n      </ShadowSwatch>\n    </div>\n  ),\n};\n\nexport const Size: StoryObj<typeof ShadowSwatch> = {\n  render: () => (\n    <div className=\"grid grid-cols-[repeat(auto-fill,200px)] gap-8\">\n      <ShadowSwatch className=\"shadow-xs\">\n        <Text>XS</Text>\n      </ShadowSwatch>\n      <ShadowSwatch className=\"shadow-sm\">\n        <Text>SM</Text>\n      </ShadowSwatch>\n      <ShadowSwatch className=\"shadow-md\">\n        <Text>MD</Text>\n      </ShadowSwatch>\n      <ShadowSwatch className=\"shadow-lg\">\n        <Text>LG</Text>\n      </ShadowSwatch>\n    </div>\n  ),\n};\n\nexport const Color: StoryObj<typeof ShadowSwatch> = {\n  render: () => (\n    <div className=\"grid grid-cols-[repeat(auto-fill,200px)] gap-8\">\n      <ShadowSwatch className=\"shadow-xs\">\n        <Text>Default</Text>\n      </ShadowSwatch>\n      <ShadowSwatch className=\"bg-primary-default shadow-xs shadow-primary\">\n        <Text color={TextColor.PrimaryInverse}>Primary</Text>\n      </ShadowSwatch>\n      <ShadowSwatch className=\"bg-error-default shadow-xs shadow-error\">\n        <Text color={TextColor.ErrorInverse}>Error/Danger</Text>\n      </ShadowSwatch>\n    </div>\n  ),\n};\n\nexport const ExampleUsage = {\n  render: () => (\n    <div>\n      <div className=\"mb-16 grid grid-cols-[repeat(auto-fill,200px)] gap-8\">\n        <ShadowSwatch className=\"shadow-xs\">\n          <Text>Card</Text>\n        </ShadowSwatch>\n        <ShadowSwatch className=\"shadow-sm\">\n          <Text>Dropdown</Text>\n        </ShadowSwatch>\n        <ShadowSwatch className=\"shadow-md\">\n          <Text>Toast</Text>\n        </ShadowSwatch>\n        <ShadowSwatch className=\"shadow-lg\">\n          <Text>Modal</Text>\n        </ShadowSwatch>\n      </div>\n      <div className=\"grid grid-cols-[repeat(auto-fill,200px)] gap-8\">\n        <ShadowSwatch className=\"bg-primary-default shadow-xs shadow-primary\">\n          <Text color={TextColor.PrimaryInverse}>Button Primary Hover</Text>\n        </ShadowSwatch>\n        <ShadowSwatch className=\"bg-error-default shadow-xs shadow-error\">\n          <Text color={TextColor.ErrorInverse}>Button Error/Danger Hover</Text>\n        </ShadowSwatch>\n      </div>\n    </div>\n  ),\n};\n"
      },
      "stories": [
        {
          "id": "design-tokens-shadows-shadows--default-story",
          "name": "Default",
          "snippet": "const DefaultStory = () => <div className=\"grid grid-cols-[repeat(auto-fill,200px)] gap-8\">\n    <ShadowSwatch className=\"shadow-xs\">\n        <Text>Shadow</Text>\n    </ShadowSwatch>\n</div>;"
        },
        {
          "id": "design-tokens-shadows-shadows--size",
          "name": "Size",
          "snippet": "const Size = () => (\n  <div className=\"grid grid-cols-[repeat(auto-fill,200px)] gap-8\">\n    <ShadowSwatch className=\"shadow-xs\">\n      <Text>XS</Text>\n    </ShadowSwatch>\n    <ShadowSwatch className=\"shadow-sm\">\n      <Text>SM</Text>\n    </ShadowSwatch>\n    <ShadowSwatch className=\"shadow-md\">\n      <Text>MD</Text>\n    </ShadowSwatch>\n    <ShadowSwatch className=\"shadow-lg\">\n      <Text>LG</Text>\n    </ShadowSwatch>\n  </div>\n);"
        },
        {
          "id": "design-tokens-shadows-shadows--color",
          "name": "Color",
          "snippet": "const Color = () => (\n  <div className=\"grid grid-cols-[repeat(auto-fill,200px)] gap-8\">\n    <ShadowSwatch className=\"shadow-xs\">\n      <Text>Default</Text>\n    </ShadowSwatch>\n    <ShadowSwatch className=\"bg-primary-default shadow-xs shadow-primary\">\n      <Text color={TextColor.PrimaryInverse}>Primary</Text>\n    </ShadowSwatch>\n    <ShadowSwatch className=\"bg-error-default shadow-xs shadow-error\">\n      <Text color={TextColor.ErrorInverse}>Error/Danger</Text>\n    </ShadowSwatch>\n  </div>\n);"
        },
        {
          "id": "design-tokens-shadows-shadows--example-usage",
          "name": "Example Usage",
          "snippet": "const ExampleUsage = () => (\n  <div>\n    <div className=\"mb-16 grid grid-cols-[repeat(auto-fill,200px)] gap-8\">\n      <ShadowSwatch className=\"shadow-xs\">\n        <Text>Card</Text>\n      </ShadowSwatch>\n      <ShadowSwatch className=\"shadow-sm\">\n        <Text>Dropdown</Text>\n      </ShadowSwatch>\n      <ShadowSwatch className=\"shadow-md\">\n        <Text>Toast</Text>\n      </ShadowSwatch>\n      <ShadowSwatch className=\"shadow-lg\">\n        <Text>Modal</Text>\n      </ShadowSwatch>\n    </div>\n    <div className=\"grid grid-cols-[repeat(auto-fill,200px)] gap-8\">\n      <ShadowSwatch className=\"bg-primary-default shadow-xs shadow-primary\">\n        <Text color={TextColor.PrimaryInverse}>Button Primary Hover</Text>\n      </ShadowSwatch>\n      <ShadowSwatch className=\"bg-error-default shadow-xs shadow-error\">\n        <Text color={TextColor.ErrorInverse}>Button Error/Danger Hover</Text>\n      </ShadowSwatch>\n    </div>\n  </div>\n);"
        }
      ],
      "import": "import { Text } from '@metamask/design-system-react';"
    },
    "design-tokens-color-theme-colors": {
      "id": "design-tokens-color-theme-colors",
      "name": "ColorSwatchGroup",
      "path": "../../packages/design-tokens/stories/ThemeColors.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "ColorSwatchGroup",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-tokens/stories/components/ColorSwatchGroup/ColorSwatchGroup.tsx",
        "actualName": "ColorSwatchGroup",
        "exportName": "ColorSwatchGroup",
        "props": {
          "swatchData": {
            "required": true,
            "tsType": {
              "name": "signature",
              "type": "object",
              "raw": "{\n  [colorName: string]: ColorPalette | ColorDetails;\n}",
              "signature": {
                "properties": [
                  {
                    "key": {
                      "name": "string"
                    },
                    "value": {
                      "name": "union",
                      "raw": "ColorPalette | ColorDetails",
                      "elements": [
                        {
                          "name": "signature",
                          "type": "object",
                          "raw": "{\n  [shade: string]: ColorDetails;\n}",
                          "signature": {
                            "properties": [
                              {
                                "key": {
                                  "name": "string"
                                },
                                "value": {
                                  "name": "signature",
                                  "type": "object",
                                  "raw": "{\n  value: string; // Hex value or alias to another color\n  type?: string; // Type usually color\n  parent?: string; // Parent category or group of the color\n  description?: string; // Description or notes about the color\n}",
                                  "signature": {
                                    "properties": [
                                      {
                                        "key": "value",
                                        "value": {
                                          "name": "string",
                                          "required": true
                                        }
                                      },
                                      {
                                        "key": "type",
                                        "value": {
                                          "name": "string",
                                          "required": false
                                        }
                                      },
                                      {
                                        "key": "parent",
                                        "value": {
                                          "name": "string",
                                          "required": false
                                        }
                                      },
                                      {
                                        "key": "description",
                                        "value": {
                                          "name": "string",
                                          "required": false
                                        }
                                      }
                                    ]
                                  },
                                  "required": true
                                }
                              }
                            ]
                          }
                        },
                        {
                          "name": "signature",
                          "type": "object",
                          "raw": "{\n  value: string; // Hex value or alias to another color\n  type?: string; // Type usually color\n  parent?: string; // Parent category or group of the color\n  description?: string; // Description or notes about the color\n}",
                          "signature": {
                            "properties": [
                              {
                                "key": "value",
                                "value": {
                                  "name": "string",
                                  "required": true
                                }
                              },
                              {
                                "key": "type",
                                "value": {
                                  "name": "string",
                                  "required": false
                                }
                              },
                              {
                                "key": "parent",
                                "value": {
                                  "name": "string",
                                  "required": false
                                }
                              },
                              {
                                "key": "description",
                                "value": {
                                  "name": "string",
                                  "required": false
                                }
                              }
                            ]
                          },
                          "required": true
                        }
                      ],
                      "required": true
                    }
                  }
                ]
              }
            },
            "description": "The color object"
          },
          "textBackgroundColor": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "The color of text background that contains the name of the color defaults to background.default",
            "defaultValue": {
              "value": "'transparent'",
              "computed": false
            }
          },
          "theme": {
            "required": false,
            "tsType": {
              "name": "union",
              "raw": "string | undefined",
              "elements": [
                {
                  "name": "string"
                },
                {
                  "name": "undefined"
                }
              ]
            },
            "description": "Hex code value of the theme (light or dark mode) this is used to help determine the text color of each swatch when opacity is involved\nDefault is light theme #ffffff",
            "defaultValue": {
              "value": "'#ffffff'",
              "computed": false
            }
          }
        }
      },
      "stories": [
        {
          "id": "design-tokens-color-theme-colors--figma-light-theme",
          "name": "Figma Light Theme",
          "snippet": "const FigmaLightTheme = () => {\n  const { lightTheme } = useJsonColor();\n  if (!lightTheme) {\n    return null; // or some fallback component\n  }\n  return <ColorSwatchGroup swatchData={lightTheme} />;\n};"
        },
        {
          "id": "design-tokens-color-theme-colors--figma-dark-theme",
          "name": "Figma Dark Theme",
          "snippet": "const FigmaDarkTheme = () => {\n  const { darkTheme } = useJsonColor();\n  if (!darkTheme) {\n    return null;\n  }\n\n  const backgroundColor =\n    'background' in darkTheme &&\n    typeof darkTheme.background === 'object' &&\n    darkTheme.background !== null &&\n    'default' in darkTheme.background &&\n    typeof darkTheme.background.default === 'object' &&\n    darkTheme.background.default !== null &&\n    'value' in darkTheme.background.default\n      ? darkTheme.background.default.value\n      : undefined;\n\n  return <ColorSwatchGroup swatchData={darkTheme} theme={backgroundColor} />;\n};"
        },
        {
          "id": "design-tokens-color-theme-colors--css-light-theme",
          "name": "CSS Light Theme",
          "snippet": "const CSSLightTheme = () => {\n  const lightThemeColors = getCSSVariablesFromStylesheet('--color-');\n  return (\n    <div className=\"grid grid-cols-[repeat(auto-fill,300px)] gap-4\">\n      {Object.entries(lightThemeColors).map(\n        ([name, { color, resolvedColor, name: colorName }]) => (\n          <ColorSwatch\n            key={name}\n            color={color}\n            textBackgroundColor=\"transparent\"\n            textColor={getContrastYIQ(\n              resolvedColor,\n              lightThemeJS.colors.background.default, // TODO Use CSS instead of JS object once CSS object is cleaned up\n            )}\n            backgroundColor={colorName}\n            name={colorName}\n          />\n        ),\n      )}\n    </div>\n  );\n};"
        },
        {
          "id": "design-tokens-color-theme-colors--css-dark-theme",
          "name": "CSS Dark Theme",
          "snippet": "const CSSDarkTheme = () => {\n  const darkThemeColors = getCSSVariablesFromStylesheet('--color-', 'dark');\n  const backgroundDefault = darkThemeJS.colors.background.default;\n\n  return (\n    <div className=\"grid grid-cols-[repeat(auto-fill,300px)] gap-4\">\n      {Object.entries(darkThemeColors).map(\n        ([name, { color, resolvedColor, name: colorName }]) => (\n          <ColorSwatch\n            key={name}\n            color={color}\n            name={colorName}\n            backgroundColor={colorName}\n            borderColor=\"var(--color-border-muted)\"\n            textBackgroundColor=\"transparent\"\n            textColor={getContrastYIQ(resolvedColor, backgroundDefault)}\n          />\n        ),\n      )}\n    </div>\n  );\n};"
        },
        {
          "id": "design-tokens-color-theme-colors--js-light-theme",
          "name": "JS Light Theme",
          "snippet": "const JSLightTheme = () => {\n  const colors = getJSColors(lightThemeJS.colors);\n  return (\n    <div className=\"grid grid-cols-[repeat(auto-fill,300px)] gap-4\">\n      {colors.map(({ name, color }) => (\n        <ColorSwatch\n          key={name}\n          color={color}\n          textBackgroundColor=\"transparent\"\n          textColor={getContrastYIQ(\n            color,\n            lightThemeJS.colors.background.default,\n          )}\n          name={name}\n        />\n      ))}\n    </div>\n  );\n};"
        },
        {
          "id": "design-tokens-color-theme-colors--js-dark-theme",
          "name": "JS Dark Theme",
          "snippet": "const JSDarkTheme = () => {\n  const colors = getJSColors(darkThemeJS.colors);\n\n  return (\n    <div className=\"grid grid-cols-[repeat(auto-fill,300px)] gap-4\">\n      {colors.map(({ name, color }) => (\n        <ColorSwatch\n          key={name}\n          color={color}\n          textBackgroundColor=\"transparent\"\n          textColor={getContrastYIQ(\n            color,\n            darkThemeJS.colors.background.default,\n          )}\n          name={name}\n        />\n      ))}\n    </div>\n  );\n};"
        }
      ],
      "import": "import { ColorSwatch, ColorSwatchGroup } from '@metamask/design-tokens';"
    },
    "design-tokens-typography-typography": {
      "id": "design-tokens-typography-typography",
      "name": "Typography",
      "path": "../../packages/design-tokens/stories/Typography.stories.tsx",
      "jsDocTags": {},
      "error": {
        "name": "No component found",
        "message": "We could not detect the component from your story file. Specify meta.component.\n  12 | import README from './Typography.mdx';\n  13 |\n> 14 | const meta: Meta<typeof Text> = {\n     | ^\n  15 |   title: 'Design Tokens/Typography/Typography',\n  16 |   parameters: {\n  17 |     docs: {\n\n../../packages/design-tokens/stories/Typography.stories.tsx:\nimport { Text } from '@metamask/design-system-react';\nimport type { StoryFn, Meta } from '@storybook/react-vite';\nimport React from 'react';\n\nimport { typography } from '../src/js/typography';\nimport { fontFamilies } from '../src/js/typography/fontFamilies';\nimport { fontSizes } from '../src/js/typography/fontSizes';\nimport { fontWeights } from '../src/js/typography/fontWeights';\nimport { letterSpacing } from '../src/js/typography/letterSpacing';\nimport { lineHeights } from '../src/js/typography/lineHeights';\n\nimport README from './Typography.mdx';\n\nconst meta: Meta<typeof Text> = {\n  title: 'Design Tokens/Typography/Typography',\n  parameters: {\n    docs: {\n      page: README,\n    },\n  },\n};\n\nexport default meta;\nexport const FontFamily: StoryFn<typeof Text> = () => {\n  const styles = {\n    default: {\n      fontFamily: fontFamilies.default,\n      fontSize: fontSizes.fontSize7,\n      lineHeight: `${lineHeights.lineHeight6}px`,\n      fontWeight: fontWeights.regular,\n      letterSpacing: letterSpacing.letterSpacing1,\n    },\n    hero: {\n      fontFamily: fontFamilies.hero,\n      fontSize: fontSizes.fontSize7,\n      lineHeight: `${lineHeights.lineHeight6}px`,\n      fontWeight: fontWeights.bold,\n      letterSpacing: letterSpacing.letterSpacing1,\n    },\n  };\n  return (\n    <>\n      <Text style={styles.default}>Inter</Text>\n      <Text style={styles.hero}>Grotzec Cond</Text>\n    </>\n  );\n};\n\nexport const SmallScreen: StoryFn<typeof Text> = () => {\n  const smallScreenFontSizeBase = 16;\n  const styles = {\n    displayXL: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sDisplayXL.fontSize,\n      lineHeight: `${typography.sDisplayXL.lineHeight}px`,\n      fontWeight: typography.sDisplayXL.fontWeight,\n    },\n    displayLG: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sDisplayLG.fontSize,\n      lineHeight: `${typography.sDisplayLG.lineHeight}px`,\n      fontWeight: typography.sDisplayLG.fontWeight,\n    },\n    displayMD: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sDisplayMD.fontSize,\n      lineHeight: `${typography.sDisplayMD.lineHeight}px`,\n      fontWeight: typography.sDisplayMD.fontWeight,\n    },\n    headingLG: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sHeadingLG.fontSize,\n      lineHeight: `${typography.sHeadingLG.lineHeight}px`,\n      fontWeight: typography.sHeadingLG.fontWeight,\n    },\n    headingMD: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sHeadingMD.fontSize,\n      lineHeight: `${typography.sHeadingMD.lineHeight}px`,\n      fontWeight: typography.sHeadingMD.fontWeight,\n    },\n    headingSM: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sHeadingSM.fontSize,\n      lineHeight: `${typography.sHeadingSM.lineHeight}px`,\n      fontWeight: typography.sHeadingSM.fontWeight,\n    },\n    bodyLGMedium: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sBodyLGMedium.fontSize,\n      lineHeight: `${typography.sBodyLGMedium.lineHeight}px`,\n      fontWeight: typography.sBodyLGMedium.fontWeight,\n    },\n    bodyMD: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sBodyMD.fontSize,\n      lineHeight: `${typography.sBodyMD.lineHeight}px`,\n      fontWeight: typography.sBodyMD.fontWeight,\n    },\n    bodyMDMedium: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sBodyMDMedium.fontSize,\n      lineHeight: `${typography.sBodyMDMedium.lineHeight}px`,\n      fontWeight: typography.sBodyMDMedium.fontWeight,\n    },\n    bodyMDBold: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sBodyMDBold.fontSize,\n      lineHeight: `${typography.sBodyMDBold.lineHeight}px`,\n      fontWeight: typography.sBodyMDBold.fontWeight,\n    },\n    bodySM: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sBodySM.fontSize,\n      lineHeight: `${typography.sBodySM.lineHeight}px`,\n      fontWeight: typography.sBodySM.fontWeight,\n    },\n    bodySMMedium: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sBodySMMedium.fontSize,\n      lineHeight: `${typography.sBodySMMedium.lineHeight}px`,\n      fontWeight: typography.sBodySMMedium.fontWeight,\n    },\n    bodySMBold: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sBodySMBold.fontSize,\n      lineHeight: `${typography.sBodySMBold.lineHeight}px`,\n      fontWeight: typography.sBodySMBold.fontWeight,\n    },\n    bodyXS: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sBodyXS.fontSize,\n      lineHeight: `${typography.sBodyXS.lineHeight}px`,\n      fontWeight: typography.sBodyXS.fontWeight,\n      letterSpacing: typography.sBodyXS.letterSpacing,\n    },\n    bodyXSMedium: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sBodyXSMedium.fontSize,\n      lineHeight: `${typography.sBodyXSMedium.lineHeight}px`,\n      fontWeight: typography.sBodyXSMedium.fontWeight,\n      letterSpacing: typography.sBodyXSMedium.letterSpacing,\n    },\n    pageHeading: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sPageHeading.fontSize,\n      lineHeight: `${typography.sPageHeading.lineHeight}px`,\n      fontWeight: typography.sPageHeading.fontWeight,\n      letterSpacing: typography.sPageHeading.letterSpacing,\n    },\n    sectionHeading: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sSectionHeading.fontSize,\n      lineHeight: `${typography.sSectionHeading.lineHeight}px`,\n      fontWeight: typography.sSectionHeading.fontWeight,\n      letterSpacing: typography.sSectionHeading.letterSpacing,\n    },\n    buttonLabelMd: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sButtonLabelMd.fontSize,\n      lineHeight: `${typography.sButtonLabelMd.lineHeight}px`,\n      fontWeight: typography.sButtonLabelMd.fontWeight,\n      letterSpacing: typography.sButtonLabelMd.letterSpacing,\n    },\n    buttonLabelLg: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sButtonLabelLg.fontSize,\n      lineHeight: `${typography.sButtonLabelLg.lineHeight}px`,\n      fontWeight: typography.sButtonLabelLg.fontWeight,\n      letterSpacing: typography.sButtonLabelLg.letterSpacing,\n    },\n    amountDisplayLg: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sAmountDisplayLg.fontSize,\n      lineHeight: `${typography.sAmountDisplayLg.lineHeight}px`,\n      fontWeight: typography.sAmountDisplayLg.fontWeight,\n      letterSpacing: typography.sAmountDisplayLg.letterSpacing,\n    },\n  };\n  return (\n    <>\n      <Text style={styles.displayXL}>\n        {`S DisplayXL ${styles.displayXL.fontSize}px/${\n          styles.displayXL.lineHeight\n        } ${styles.displayXL.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.displayLG}>\n        {`S DisplayLG ${styles.displayLG.fontSize}px/${\n          styles.displayLG.lineHeight\n        } ${styles.displayLG.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.displayMD}>\n        {`S DisplayMD ${styles.displayMD.fontSize}px/${\n          styles.displayMD.lineHeight\n        } ${styles.displayMD.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.headingLG}>\n        {`S HeadingLG ${styles.headingLG.fontSize}px/${\n          styles.headingLG.lineHeight\n        } ${styles.headingLG.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.headingMD}>\n        {`S HeadingMD ${styles.headingMD.fontSize}px/${\n          styles.headingMD.lineHeight\n        } ${styles.headingMD.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.headingSM}>\n        {`S HeadingSM ${styles.headingSM.fontSize}px/${\n          styles.headingSM.lineHeight\n        } ${styles.headingSM.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodyLGMedium}>\n        {`S BodyLG Medium ${styles.bodyLGMedium.fontSize}px/${\n          styles.bodyLGMedium.lineHeight\n        } ${styles.bodyLGMedium.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodyMDBold}>\n        {`S BodyMD Bold ${styles.bodyMDBold.fontSize}px/${\n          styles.bodyMDBold.lineHeight\n        } ${styles.bodyMDBold.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodyMDMedium}>\n        {`S BodyMD Medium ${styles.bodyMDMedium.fontSize}px/${\n          styles.bodyMDMedium.lineHeight\n        } ${styles.bodyMDMedium.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodyMD}>\n        {`S BodyMD ${styles.bodyMD.fontSize}px/${styles.bodyMD.lineHeight} ${\n          styles.bodyMD.fontSize / smallScreenFontSizeBase\n        }rem`}\n      </Text>\n      <Text style={styles.bodySMBold}>\n        {`S BodySM Bold ${styles.bodySMBold.fontSize}px/${\n          styles.bodySMBold.lineHeight\n        } ${styles.bodySMBold.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodySMMedium}>\n        {`S BodySM Medium ${styles.bodySMMedium.fontSize}px/${\n          styles.bodySMMedium.lineHeight\n        } ${styles.bodySMMedium.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodySM}>\n        {`S BodySM ${styles.bodySM.fontSize}px/${styles.bodySM.lineHeight} ${\n          styles.bodySM.fontSize / smallScreenFontSizeBase\n        }rem`}\n      </Text>\n      <Text style={styles.bodyXSMedium}>\n        {`S BodyXS Medium ${styles.bodyXSMedium.fontSize}px/${\n          styles.bodyXSMedium.lineHeight\n        } ${styles.bodyXSMedium.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodyXS}>\n        {`S BodyXS ${styles.bodyXS.fontSize}px/${styles.bodyXS.lineHeight} ${\n          styles.bodyXS.fontSize / smallScreenFontSizeBase\n        }rem`}\n      </Text>\n      <Text style={styles.pageHeading}>\n        {`S PageHeading ${styles.pageHeading.fontSize}px/${\n          styles.pageHeading.lineHeight\n        } ${styles.pageHeading.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.sectionHeading}>\n        {`S SectionHeading ${styles.sectionHeading.fontSize}px/${\n          styles.sectionHeading.lineHeight\n        } ${styles.sectionHeading.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.buttonLabelMd}>\n        {`S ButtonLabelMd ${styles.buttonLabelMd.fontSize}px/${\n          styles.buttonLabelMd.lineHeight\n        } ${styles.buttonLabelMd.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.buttonLabelLg}>\n        {`S ButtonLabelLg ${styles.buttonLabelLg.fontSize}px/${\n          styles.buttonLabelLg.lineHeight\n        } ${styles.buttonLabelLg.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.amountDisplayLg}>\n        {`S AmountDisplayLg ${styles.amountDisplayLg.fontSize}px/${\n          styles.amountDisplayLg.lineHeight\n        } ${styles.amountDisplayLg.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n    </>\n  );\n};\n\nexport const LargeScreen: StoryFn<typeof Text> = () => {\n  const largeScreenFontSizeBase = 16;\n  const styles = {\n    displayXL: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lDisplayXL.fontSize,\n      lineHeight: `${typography.lDisplayXL.lineHeight}px`,\n      fontWeight: typography.lDisplayXL.fontWeight,\n    },\n    displayLG: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lDisplayLG.fontSize,\n      lineHeight: `${typography.lDisplayLG.lineHeight}px`,\n      fontWeight: typography.lDisplayLG.fontWeight,\n    },\n    displayMD: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lDisplayMD.fontSize,\n      lineHeight: `${typography.lDisplayMD.lineHeight}px`,\n      fontWeight: typography.lDisplayMD.fontWeight,\n    },\n    headingLG: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lHeadingLG.fontSize,\n      lineHeight: `${typography.lHeadingLG.lineHeight}px`,\n      fontWeight: typography.lHeadingLG.fontWeight,\n    },\n    headingMD: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lHeadingMD.fontSize,\n      lineHeight: `${typography.lHeadingMD.lineHeight}px`,\n      fontWeight: typography.lHeadingMD.fontWeight,\n    },\n    headingSM: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lHeadingSM.fontSize,\n      lineHeight: `${typography.lHeadingSM.lineHeight}px`,\n      fontWeight: typography.lHeadingSM.fontWeight,\n    },\n    bodyLGMedium: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lBodyLGMedium.fontSize,\n      lineHeight: `${typography.lBodyLGMedium.lineHeight}px`,\n      fontWeight: typography.lBodyLGMedium.fontWeight,\n    },\n    bodyMDBold: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lBodyMDBold.fontSize,\n      lineHeight: `${typography.lBodyMDBold.lineHeight}px`,\n      fontWeight: typography.lBodyMDBold.fontWeight,\n    },\n    bodyMDMedium: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lBodyMDMedium.fontSize,\n      lineHeight: `${typography.lBodyMDMedium.lineHeight}px`,\n      fontWeight: typography.lBodyMDMedium.fontWeight,\n    },\n    bodyMD: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lBodyMD.fontSize,\n      lineHeight: `${typography.lBodyMD.lineHeight}px`,\n      fontWeight: typography.lBodyMD.fontWeight,\n    },\n    bodySMBold: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lBodySMBold.fontSize,\n      lineHeight: `${typography.lBodySMBold.lineHeight}px`,\n      fontWeight: typography.lBodySMBold.fontWeight,\n    },\n    bodySMMedium: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lBodySMMedium.fontSize,\n      lineHeight: `${typography.lBodySMMedium.lineHeight}px`,\n      fontWeight: typography.lBodySMMedium.fontWeight,\n    },\n    bodySM: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lBodySM.fontSize,\n      lineHeight: `${typography.lBodySM.lineHeight}px`,\n      fontWeight: typography.lBodySM.fontWeight,\n    },\n    bodyXSMedium: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lBodyXSMedium.fontSize,\n      lineHeight: `${typography.lBodyXSMedium.lineHeight}px`,\n      fontWeight: typography.lBodyXSMedium.fontWeight,\n      letterSpacing: typography.lBodyXSMedium.letterSpacing,\n    },\n    bodyXS: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lBodyXS.fontSize,\n      lineHeight: `${typography.lBodyXS.lineHeight}px`,\n      fontWeight: typography.lBodyXS.fontWeight,\n      letterSpacing: typography.lBodyXS.letterSpacing,\n    },\n    pageHeading: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lPageHeading.fontSize,\n      lineHeight: `${typography.lPageHeading.lineHeight}px`,\n      fontWeight: typography.lPageHeading.fontWeight,\n      letterSpacing: typography.lPageHeading.letterSpacing,\n    },\n    sectionHeading: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lSectionHeading.fontSize,\n      lineHeight: `${typography.lSectionHeading.lineHeight}px`,\n      fontWeight: typography.lSectionHeading.fontWeight,\n      letterSpacing: typography.lSectionHeading.letterSpacing,\n    },\n    buttonLabelMd: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lButtonLabelMd.fontSize,\n      lineHeight: `${typography.lButtonLabelMd.lineHeight}px`,\n      fontWeight: typography.lButtonLabelMd.fontWeight,\n      letterSpacing: typography.lButtonLabelMd.letterSpacing,\n    },\n    buttonLabelLg: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lButtonLabelLg.fontSize,\n      lineHeight: `${typography.lButtonLabelLg.lineHeight}px`,\n      fontWeight: typography.lButtonLabelLg.fontWeight,\n      letterSpacing: typography.lButtonLabelLg.letterSpacing,\n    },\n    amountDisplayLg: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lAmountDisplayLg.fontSize,\n      lineHeight: `${typography.lAmountDisplayLg.lineHeight}px`,\n      fontWeight: typography.lAmountDisplayLg.fontWeight,\n      letterSpacing: typography.lAmountDisplayLg.letterSpacing,\n    },\n  };\n  return (\n    <>\n      <Text style={styles.displayXL}>\n        {`L DisplayXL ${styles.displayXL.fontSize}px/${\n          styles.displayXL.lineHeight\n        } ${styles.displayXL.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.displayLG}>\n        {`L DisplayLG ${styles.displayLG.fontSize}px/${\n          styles.displayLG.lineHeight\n        } ${styles.displayLG.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.displayMD}>\n        {`L DisplayMD ${styles.displayMD.fontSize}px/${\n          styles.displayMD.lineHeight\n        } ${styles.displayMD.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.headingLG}>\n        {`L HeadingLG ${styles.headingLG.fontSize}px/${\n          styles.headingLG.lineHeight\n        } ${styles.headingLG.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.headingMD}>\n        {`L HeadingMD ${styles.headingMD.fontSize}px/${\n          styles.headingMD.lineHeight\n        } ${styles.headingMD.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.headingSM}>\n        {`L HeadingSM ${styles.headingSM.fontSize}px/${\n          styles.headingSM.lineHeight\n        } ${styles.headingSM.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodyLGMedium}>\n        {`L BodyLG Medium ${styles.bodyLGMedium.fontSize}px/${\n          styles.bodyLGMedium.lineHeight\n        } ${styles.bodyLGMedium.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodyMDBold}>\n        {`L BodyMD Bold ${styles.bodyMDBold.fontSize}px/${\n          styles.bodyMDBold.lineHeight\n        } ${styles.bodyMDBold.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodyMDMedium}>\n        {`L BodyMD Medium ${styles.bodyMDMedium.fontSize}px/${\n          styles.bodyMDMedium.lineHeight\n        } ${styles.bodyMDMedium.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodyMD}>\n        {`L BodyMD ${styles.bodyMD.fontSize}px/${styles.bodyMD.lineHeight} ${\n          styles.bodyMD.fontSize / largeScreenFontSizeBase\n        }rem`}\n      </Text>\n      <Text style={styles.bodySMBold}>\n        {`L BodySM Bold ${styles.bodySMBold.fontSize}px/${\n          styles.bodySMBold.lineHeight\n        } ${styles.bodySMBold.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodySMMedium}>\n        {`L BodySM Medium ${styles.bodySMMedium.fontSize}px/${\n          styles.bodySMMedium.lineHeight\n        } ${styles.bodySMMedium.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodySM}>\n        {`L BodySM ${styles.bodySM.fontSize}px/${styles.bodySM.lineHeight} ${\n          styles.bodySM.fontSize / largeScreenFontSizeBase\n        }rem`}\n      </Text>\n      <Text style={styles.bodyXSMedium}>\n        {`L BodyXS Medium ${styles.bodyXSMedium.fontSize}px/${\n          styles.bodyXSMedium.lineHeight\n        } ${styles.bodyXSMedium.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodyXS}>\n        {`L BodyXS ${styles.bodyXS.fontSize}px/${styles.bodyXS.lineHeight} ${\n          styles.bodyXS.fontSize / largeScreenFontSizeBase\n        }rem`}\n      </Text>\n      <Text style={styles.pageHeading}>\n        {`L PageHeading ${styles.pageHeading.fontSize}px/${\n          styles.pageHeading.lineHeight\n        } ${styles.pageHeading.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.sectionHeading}>\n        {`L SectionHeading ${styles.sectionHeading.fontSize}px/${\n          styles.sectionHeading.lineHeight\n        } ${styles.sectionHeading.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.buttonLabelMd}>\n        {`L ButtonLabelMd ${styles.buttonLabelMd.fontSize}px/${\n          styles.buttonLabelMd.lineHeight\n        } ${styles.buttonLabelMd.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.buttonLabelLg}>\n        {`L ButtonLabelLg ${styles.buttonLabelLg.fontSize}px/${\n          styles.buttonLabelLg.lineHeight\n        } ${styles.buttonLabelLg.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.amountDisplayLg}>\n        {`L AmountDisplayLg ${styles.amountDisplayLg.fontSize}px/${\n          styles.amountDisplayLg.lineHeight\n        } ${styles.amountDisplayLg.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n    </>\n  );\n};\n\nexport const FontWeight: StoryFn<typeof Text> = () => {\n  const styles = {\n    regular: {\n      fontFamily: fontFamilies.default,\n      fontSize: fontSizes.fontSize4,\n      lineHeight: `${lineHeights.lineHeight5}px`,\n      fontWeight: fontWeights.regular,\n    },\n    medium: {\n      fontFamily: fontFamilies.default,\n      fontSize: fontSizes.fontSize4,\n      lineHeight: `${lineHeights.lineHeight5}px`,\n      fontWeight: fontWeights.medium,\n    },\n    bold: {\n      fontFamily: fontFamilies.default,\n      fontSize: fontSizes.fontSize4,\n      lineHeight: `${lineHeights.lineHeight5}px`,\n      fontWeight: fontWeights.bold,\n    },\n  };\n  return (\n    <>\n      <Text style={styles.regular}>Regular 400</Text>\n      <Text style={styles.medium}>Medium 500</Text>\n      <Text style={styles.bold}>Bold 600</Text>\n    </>\n  );\n};\n\nexport const SmallScreenCSS: StoryFn<typeof Text> = () => {\n  const fontBase = 16;\n  const styles = {\n    DisplayXL: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-display-xl-font-size)',\n      lineHeight: 'var(--typography-s-display-xl-line-height)',\n      fontWeight: 'var(--typography-s-display-xl-font-weight)',\n    },\n    DisplayLG: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-display-lg-font-size)',\n      lineHeight: 'var(--typography-s-display-lg-line-height)',\n      fontWeight: 'var(--typography-s-display-lg-font-weight)',\n    },\n    DisplayMD: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-display-md-font-size)',\n      lineHeight: 'var(--typography-s-display-md-line-height)',\n      fontWeight: 'var(--typography-s-display-md-font-weight)',\n    },\n    HeadingLG: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-heading-lg-font-size)',\n      lineHeight: 'var(--typography-s-heading-lg-line-height)',\n      fontWeight: 'var(--typography-s-heading-lg-font-weight)',\n    },\n    HeadingMD: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-heading-md-font-size)',\n      lineHeight: 'var(--typography-s-heading-md-line-height)',\n      fontWeight: 'var(--typography-s-heading-md-font-weight)',\n    },\n    HeadingSM: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-heading-sm-font-size)',\n      lineHeight: 'var(--typography-s-heading-sm-line-height)',\n      fontWeight: 'var(--typography-s-heading-sm-font-weight)',\n    },\n    'BodyLG Medium': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-body-lg-medium-font-size)',\n      lineHeight: 'var(--typography-s-body-lg-medium-line-height)',\n      fontWeight: 'var(--typography-s-body-lg-medium-font-weight)',\n    },\n    BodyMD: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-body-md-font-size)',\n      lineHeight: 'var(--typography-s-body-md-line-height)',\n      fontWeight: 'var(--typography-s-body-md-font-weight)',\n    },\n    'BodyMD Medium': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-body-md-medium-font-size)',\n      lineHeight: 'var(--typography-s-body-md-medium-line-height)',\n      fontWeight: 'var(--typography-s-body-md-medium-font-weight)',\n    },\n    'BodyMD Bold': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-body-md-bold-font-size)',\n      lineHeight: 'var(--typography-s-body-md-bold-line-height)',\n      fontWeight: 'var(--typography-s-body-md-bold-font-weight)',\n    },\n    BodySM: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-body-sm-font-size)',\n      lineHeight: 'var(--typography-s-body-sm-line-height)',\n      fontWeight: 'var(--typography-s-body-sm-font-weight)',\n    },\n    'BodySM Medium': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-body-sm-medium-font-size)',\n      lineHeight: 'var(--typography-s-body-sm-medium-line-height)',\n      fontWeight: 'var(--typography-s-body-sm-medium-font-weight)',\n    },\n    'BodySM Bold': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-body-sm-bold-font-size)',\n      lineHeight: 'var(--typography-s-body-sm-bold-line-height)',\n      fontWeight: 'var(--typography-s-body-sm-bold-font-weight)',\n    },\n    BodyXS: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-body-xs-font-size)',\n      lineHeight: 'var(--typography-s-body-xs-line-height)',\n      fontWeight: 'var(--typography-s-body-xs-font-weight)',\n      letterSpacing: 'var(--typography-s-body-xs-letter-spacing)',\n    },\n    'BodyXS Medium': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-body-xs-medium-font-size)',\n      lineHeight: 'var(--typography-s-body-xs-medium-line-height)',\n      fontWeight: 'var(--typography-s-body-xs-medium-font-weight)',\n      letterSpacing: 'var(--typography-s-body-xs-medium-letter-spacing)',\n    },\n    PageHeading: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-page-heading-font-size)',\n      lineHeight: 'var(--typography-s-page-heading-line-height)',\n      fontWeight: 'var(--typography-s-page-heading-font-weight)',\n      letterSpacing: 'var(--typography-s-page-heading-letter-spacing)',\n    },\n    SectionHeading: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-section-heading-font-size)',\n      lineHeight: 'var(--typography-s-section-heading-line-height)',\n      fontWeight: 'var(--typography-s-section-heading-font-weight)',\n      letterSpacing: 'var(--typography-s-section-heading-letter-spacing)',\n    },\n    ButtonLabelMd: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-button-label-md-font-size)',\n      lineHeight: 'var(--typography-s-button-label-md-line-height)',\n      fontWeight: 'var(--typography-s-button-label-md-font-weight)',\n      letterSpacing: 'var(--typography-s-button-label-md-letter-spacing)',\n    },\n    ButtonLabelLg: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-button-label-lg-font-size)',\n      lineHeight: 'var(--typography-s-button-label-lg-line-height)',\n      fontWeight: 'var(--typography-s-button-label-lg-font-weight)',\n      letterSpacing: 'var(--typography-s-button-label-lg-letter-spacing)',\n    },\n    AmountDisplayLg: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-amount-display-lg-font-size)',\n      lineHeight: 'var(--typography-s-amount-display-lg-line-height)',\n      fontWeight: 'var(--typography-s-amount-display-lg-font-weight)',\n      letterSpacing: 'var(--typography-s-amount-display-lg-letter-spacing)',\n    },\n  };\n\n  const getCssVar = (variable: string): number => {\n    // Expecting variable like \"var(--typography-s-display-md-font-size)\"\n    const strippedVar = variable.slice(4, -1); // removes \"var(\" at the beginning and \")\" at the end\n    const computedValue = getComputedStyle(document.documentElement)\n      .getPropertyValue(strippedVar)\n      .trim();\n    return parseFloat(computedValue);\n  };\n\n  return (\n    <>\n      {Object.values(styles).map((value, i) => {\n        const title = Object.getOwnPropertyNames(styles)[i];\n        return (\n          <Text style={value} key={i}>\n            {`S ${title} ${getCssVar(value.fontSize) * fontBase}px/${\n              getCssVar(value.lineHeight) * fontBase\n            }px ${getCssVar(value.fontSize)}rem/${getCssVar(\n              value.lineHeight,\n            )}rem `}\n            {title === 'HeadingSM Regular' && (\n              <span className=\"text-error-default\">DEPRECATED</span>\n            )}\n          </Text>\n        );\n      })}\n    </>\n  );\n};\n\nexport const LargeScreenCSS: StoryFn<typeof Text> = () => {\n  const fontBase = 16;\n\n  const styles = {\n    DisplayXL: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-display-xl-font-size)',\n      lineHeight: 'var(--typography-l-display-xl-line-height)',\n      fontWeight: 'var(--typography-l-display-xl-font-weight)',\n    },\n    DisplayLG: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-display-lg-font-size)',\n      lineHeight: 'var(--typography-l-display-lg-line-height)',\n      fontWeight: 'var(--typography-l-display-lg-font-weight)',\n    },\n    DisplayMD: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-display-md-font-size)',\n      lineHeight: 'var(--typography-l-display-md-line-height)',\n      fontWeight: 'var(--typography-l-display-md-font-weight)',\n    },\n    HeadingLG: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-heading-lg-font-size)',\n      lineHeight: 'var(--typography-l-heading-lg-line-height)',\n      fontWeight: 'var(--typography-l-heading-lg-font-weight)',\n    },\n    HeadingMD: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-heading-md-font-size)',\n      lineHeight: 'var(--typography-l-heading-md-line-height)',\n      fontWeight: 'var(--typography-l-heading-md-font-weight)',\n    },\n    HeadingSM: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-heading-sm-font-size)',\n      lineHeight: 'var(--typography-l-heading-sm-line-height)',\n      fontWeight: 'var(--typography-l-heading-sm-font-weight)',\n    },\n    'BodyLG Medium': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-body-lg-medium-font-size)',\n      lineHeight: 'var(--typography-l-body-lg-medium-line-height)',\n      fontWeight: 'var(--typography-l-body-lg-medium-font-weight)',\n    },\n    BodyMD: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-body-md-font-size)',\n      lineHeight: 'var(--typography-l-body-md-line-height)',\n      fontWeight: 'var(--typography-l-body-md-font-weight)',\n    },\n    'BodyMD Medium': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-body-md-medium-font-size)',\n      lineHeight: 'var(--typography-l-body-md-medium-line-height)',\n      fontWeight: 'var(--typography-l-body-md-medium-font-weight)',\n    },\n    'BodyMD Bold': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-body-md-bold-font-size)',\n      lineHeight: 'var(--typography-l-body-md-bold-line-height)',\n      fontWeight: 'var(--typography-l-body-md-bold-font-weight)',\n    },\n    BodySM: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-body-sm-font-size)',\n      lineHeight: 'var(--typography-l-body-sm-line-height)',\n      fontWeight: 'var(--typography-l-body-sm-font-weight)',\n    },\n    'BodySM Medium': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-body-sm-medium-font-size)',\n      lineHeight: 'var(--typography-l-body-sm-medium-line-height)',\n      fontWeight: 'var(--typography-l-body-sm-medium-font-weight)',\n    },\n    'BodySM Bold': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-body-sm-bold-font-size)',\n      lineHeight: 'var(--typography-l-body-sm-bold-line-height)',\n      fontWeight: 'var(--typography-l-body-sm-bold-font-weight)',\n    },\n    BodyXS: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-body-xs-font-size)',\n      lineHeight: 'var(--typography-l-body-xs-line-height)',\n      fontWeight: 'var(--typography-l-body-xs-font-weight)',\n      letterSpacing: 'var(--typography-l-body-xs-letter-spacing)',\n    },\n    'BodyXS Medium': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-body-xs-medium-font-size)',\n      lineHeight: 'var(--typography-l-body-xs-medium-line-height)',\n      fontWeight: 'var(--typography-l-body-xs-medium-font-weight)',\n      letterSpacing: 'var(--typography-l-body-xs-medium-letter-spacing)',\n    },\n    PageHeading: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-page-heading-font-size)',\n      lineHeight: 'var(--typography-l-page-heading-line-height)',\n      fontWeight: 'var(--typography-l-page-heading-font-weight)',\n      letterSpacing: 'var(--typography-l-page-heading-letter-spacing)',\n    },\n    SectionHeading: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-section-heading-font-size)',\n      lineHeight: 'var(--typography-l-section-heading-line-height)',\n      fontWeight: 'var(--typography-l-section-heading-font-weight)',\n      letterSpacing: 'var(--typography-l-section-heading-letter-spacing)',\n    },\n    ButtonLabelMd: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-button-label-md-font-size)',\n      lineHeight: 'var(--typography-l-button-label-md-line-height)',\n      fontWeight: 'var(--typography-l-button-label-md-font-weight)',\n      letterSpacing: 'var(--typography-l-button-label-md-letter-spacing)',\n    },\n    ButtonLabelLg: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-button-label-lg-font-size)',\n      lineHeight: 'var(--typography-l-button-label-lg-line-height)',\n      fontWeight: 'var(--typography-l-button-label-lg-font-weight)',\n      letterSpacing: 'var(--typography-l-button-label-lg-letter-spacing)',\n    },\n    AmountDisplayLg: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-amount-display-lg-font-size)',\n      lineHeight: 'var(--typography-l-amount-display-lg-line-height)',\n      fontWeight: 'var(--typography-l-amount-display-lg-font-weight)',\n      letterSpacing: 'var(--typography-l-amount-display-lg-letter-spacing)',\n    },\n  };\n\n  const getCssVar = (variable: string): number => {\n    // Expecting variable like \"var(--typography-s-display-md-font-size)\"\n    const strippedVar = variable.slice(4, -1); // removes \"var(\" at the beginning and \")\" at the end\n    const computedValue = getComputedStyle(document.documentElement)\n      .getPropertyValue(strippedVar)\n      .trim();\n    return parseFloat(computedValue);\n  };\n\n  return (\n    <>\n      {Object.values(styles).map((value, i) => {\n        const title = Object.getOwnPropertyNames(styles)[i];\n        return (\n          <Text style={value} key={i}>\n            {`L ${title} ${getCssVar(value.fontSize) * fontBase}px/${\n              getCssVar(value.lineHeight) * fontBase\n            }px ${getCssVar(value.fontSize)}rem/${getCssVar(\n              value.lineHeight,\n            )}rem `}\n            {title === 'HeadingSM Regular' && (\n              <span className=\"text-error-default\">DEPRECATED</span>\n            )}\n          </Text>\n        );\n      })}\n    </>\n  );\n};\n"
      },
      "stories": [
        {
          "id": "design-tokens-typography-typography--font-family",
          "name": "Font Family",
          "snippet": "const FontFamily = () => {\n  const styles = {\n    default: {\n      fontFamily: fontFamilies.default,\n      fontSize: fontSizes.fontSize7,\n      lineHeight: `${lineHeights.lineHeight6}px`,\n      fontWeight: fontWeights.regular,\n      letterSpacing: letterSpacing.letterSpacing1,\n    },\n    hero: {\n      fontFamily: fontFamilies.hero,\n      fontSize: fontSizes.fontSize7,\n      lineHeight: `${lineHeights.lineHeight6}px`,\n      fontWeight: fontWeights.bold,\n      letterSpacing: letterSpacing.letterSpacing1,\n    },\n  };\n  return (\n    <>\n      <Text style={styles.default}>Inter</Text>\n      <Text style={styles.hero}>Grotzec Cond</Text>\n    </>\n  );\n};"
        },
        {
          "id": "design-tokens-typography-typography--small-screen",
          "name": "Small Screen",
          "snippet": "const SmallScreen = () => {\n  const smallScreenFontSizeBase = 16;\n  const styles = {\n    displayXL: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sDisplayXL.fontSize,\n      lineHeight: `${typography.sDisplayXL.lineHeight}px`,\n      fontWeight: typography.sDisplayXL.fontWeight,\n    },\n    displayLG: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sDisplayLG.fontSize,\n      lineHeight: `${typography.sDisplayLG.lineHeight}px`,\n      fontWeight: typography.sDisplayLG.fontWeight,\n    },\n    displayMD: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sDisplayMD.fontSize,\n      lineHeight: `${typography.sDisplayMD.lineHeight}px`,\n      fontWeight: typography.sDisplayMD.fontWeight,\n    },\n    headingLG: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sHeadingLG.fontSize,\n      lineHeight: `${typography.sHeadingLG.lineHeight}px`,\n      fontWeight: typography.sHeadingLG.fontWeight,\n    },\n    headingMD: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sHeadingMD.fontSize,\n      lineHeight: `${typography.sHeadingMD.lineHeight}px`,\n      fontWeight: typography.sHeadingMD.fontWeight,\n    },\n    headingSM: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sHeadingSM.fontSize,\n      lineHeight: `${typography.sHeadingSM.lineHeight}px`,\n      fontWeight: typography.sHeadingSM.fontWeight,\n    },\n    bodyLGMedium: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sBodyLGMedium.fontSize,\n      lineHeight: `${typography.sBodyLGMedium.lineHeight}px`,\n      fontWeight: typography.sBodyLGMedium.fontWeight,\n    },\n    bodyMD: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sBodyMD.fontSize,\n      lineHeight: `${typography.sBodyMD.lineHeight}px`,\n      fontWeight: typography.sBodyMD.fontWeight,\n    },\n    bodyMDMedium: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sBodyMDMedium.fontSize,\n      lineHeight: `${typography.sBodyMDMedium.lineHeight}px`,\n      fontWeight: typography.sBodyMDMedium.fontWeight,\n    },\n    bodyMDBold: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sBodyMDBold.fontSize,\n      lineHeight: `${typography.sBodyMDBold.lineHeight}px`,\n      fontWeight: typography.sBodyMDBold.fontWeight,\n    },\n    bodySM: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sBodySM.fontSize,\n      lineHeight: `${typography.sBodySM.lineHeight}px`,\n      fontWeight: typography.sBodySM.fontWeight,\n    },\n    bodySMMedium: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sBodySMMedium.fontSize,\n      lineHeight: `${typography.sBodySMMedium.lineHeight}px`,\n      fontWeight: typography.sBodySMMedium.fontWeight,\n    },\n    bodySMBold: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sBodySMBold.fontSize,\n      lineHeight: `${typography.sBodySMBold.lineHeight}px`,\n      fontWeight: typography.sBodySMBold.fontWeight,\n    },\n    bodyXS: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sBodyXS.fontSize,\n      lineHeight: `${typography.sBodyXS.lineHeight}px`,\n      fontWeight: typography.sBodyXS.fontWeight,\n      letterSpacing: typography.sBodyXS.letterSpacing,\n    },\n    bodyXSMedium: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sBodyXSMedium.fontSize,\n      lineHeight: `${typography.sBodyXSMedium.lineHeight}px`,\n      fontWeight: typography.sBodyXSMedium.fontWeight,\n      letterSpacing: typography.sBodyXSMedium.letterSpacing,\n    },\n    pageHeading: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sPageHeading.fontSize,\n      lineHeight: `${typography.sPageHeading.lineHeight}px`,\n      fontWeight: typography.sPageHeading.fontWeight,\n      letterSpacing: typography.sPageHeading.letterSpacing,\n    },\n    sectionHeading: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sSectionHeading.fontSize,\n      lineHeight: `${typography.sSectionHeading.lineHeight}px`,\n      fontWeight: typography.sSectionHeading.fontWeight,\n      letterSpacing: typography.sSectionHeading.letterSpacing,\n    },\n    buttonLabelMd: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sButtonLabelMd.fontSize,\n      lineHeight: `${typography.sButtonLabelMd.lineHeight}px`,\n      fontWeight: typography.sButtonLabelMd.fontWeight,\n      letterSpacing: typography.sButtonLabelMd.letterSpacing,\n    },\n    buttonLabelLg: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sButtonLabelLg.fontSize,\n      lineHeight: `${typography.sButtonLabelLg.lineHeight}px`,\n      fontWeight: typography.sButtonLabelLg.fontWeight,\n      letterSpacing: typography.sButtonLabelLg.letterSpacing,\n    },\n    amountDisplayLg: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.sAmountDisplayLg.fontSize,\n      lineHeight: `${typography.sAmountDisplayLg.lineHeight}px`,\n      fontWeight: typography.sAmountDisplayLg.fontWeight,\n      letterSpacing: typography.sAmountDisplayLg.letterSpacing,\n    },\n  };\n  return (\n    <>\n      <Text style={styles.displayXL}>\n        {`S DisplayXL ${styles.displayXL.fontSize}px/${\n          styles.displayXL.lineHeight\n        } ${styles.displayXL.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.displayLG}>\n        {`S DisplayLG ${styles.displayLG.fontSize}px/${\n          styles.displayLG.lineHeight\n        } ${styles.displayLG.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.displayMD}>\n        {`S DisplayMD ${styles.displayMD.fontSize}px/${\n          styles.displayMD.lineHeight\n        } ${styles.displayMD.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.headingLG}>\n        {`S HeadingLG ${styles.headingLG.fontSize}px/${\n          styles.headingLG.lineHeight\n        } ${styles.headingLG.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.headingMD}>\n        {`S HeadingMD ${styles.headingMD.fontSize}px/${\n          styles.headingMD.lineHeight\n        } ${styles.headingMD.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.headingSM}>\n        {`S HeadingSM ${styles.headingSM.fontSize}px/${\n          styles.headingSM.lineHeight\n        } ${styles.headingSM.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodyLGMedium}>\n        {`S BodyLG Medium ${styles.bodyLGMedium.fontSize}px/${\n          styles.bodyLGMedium.lineHeight\n        } ${styles.bodyLGMedium.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodyMDBold}>\n        {`S BodyMD Bold ${styles.bodyMDBold.fontSize}px/${\n          styles.bodyMDBold.lineHeight\n        } ${styles.bodyMDBold.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodyMDMedium}>\n        {`S BodyMD Medium ${styles.bodyMDMedium.fontSize}px/${\n          styles.bodyMDMedium.lineHeight\n        } ${styles.bodyMDMedium.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodyMD}>\n        {`S BodyMD ${styles.bodyMD.fontSize}px/${styles.bodyMD.lineHeight} ${\n          styles.bodyMD.fontSize / smallScreenFontSizeBase\n        }rem`}\n      </Text>\n      <Text style={styles.bodySMBold}>\n        {`S BodySM Bold ${styles.bodySMBold.fontSize}px/${\n          styles.bodySMBold.lineHeight\n        } ${styles.bodySMBold.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodySMMedium}>\n        {`S BodySM Medium ${styles.bodySMMedium.fontSize}px/${\n          styles.bodySMMedium.lineHeight\n        } ${styles.bodySMMedium.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodySM}>\n        {`S BodySM ${styles.bodySM.fontSize}px/${styles.bodySM.lineHeight} ${\n          styles.bodySM.fontSize / smallScreenFontSizeBase\n        }rem`}\n      </Text>\n      <Text style={styles.bodyXSMedium}>\n        {`S BodyXS Medium ${styles.bodyXSMedium.fontSize}px/${\n          styles.bodyXSMedium.lineHeight\n        } ${styles.bodyXSMedium.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodyXS}>\n        {`S BodyXS ${styles.bodyXS.fontSize}px/${styles.bodyXS.lineHeight} ${\n          styles.bodyXS.fontSize / smallScreenFontSizeBase\n        }rem`}\n      </Text>\n      <Text style={styles.pageHeading}>\n        {`S PageHeading ${styles.pageHeading.fontSize}px/${\n          styles.pageHeading.lineHeight\n        } ${styles.pageHeading.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.sectionHeading}>\n        {`S SectionHeading ${styles.sectionHeading.fontSize}px/${\n          styles.sectionHeading.lineHeight\n        } ${styles.sectionHeading.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.buttonLabelMd}>\n        {`S ButtonLabelMd ${styles.buttonLabelMd.fontSize}px/${\n          styles.buttonLabelMd.lineHeight\n        } ${styles.buttonLabelMd.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.buttonLabelLg}>\n        {`S ButtonLabelLg ${styles.buttonLabelLg.fontSize}px/${\n          styles.buttonLabelLg.lineHeight\n        } ${styles.buttonLabelLg.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.amountDisplayLg}>\n        {`S AmountDisplayLg ${styles.amountDisplayLg.fontSize}px/${\n          styles.amountDisplayLg.lineHeight\n        } ${styles.amountDisplayLg.fontSize / smallScreenFontSizeBase}rem`}\n      </Text>\n    </>\n  );\n};"
        },
        {
          "id": "design-tokens-typography-typography--large-screen",
          "name": "Large Screen",
          "snippet": "const LargeScreen = () => {\n  const largeScreenFontSizeBase = 16;\n  const styles = {\n    displayXL: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lDisplayXL.fontSize,\n      lineHeight: `${typography.lDisplayXL.lineHeight}px`,\n      fontWeight: typography.lDisplayXL.fontWeight,\n    },\n    displayLG: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lDisplayLG.fontSize,\n      lineHeight: `${typography.lDisplayLG.lineHeight}px`,\n      fontWeight: typography.lDisplayLG.fontWeight,\n    },\n    displayMD: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lDisplayMD.fontSize,\n      lineHeight: `${typography.lDisplayMD.lineHeight}px`,\n      fontWeight: typography.lDisplayMD.fontWeight,\n    },\n    headingLG: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lHeadingLG.fontSize,\n      lineHeight: `${typography.lHeadingLG.lineHeight}px`,\n      fontWeight: typography.lHeadingLG.fontWeight,\n    },\n    headingMD: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lHeadingMD.fontSize,\n      lineHeight: `${typography.lHeadingMD.lineHeight}px`,\n      fontWeight: typography.lHeadingMD.fontWeight,\n    },\n    headingSM: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lHeadingSM.fontSize,\n      lineHeight: `${typography.lHeadingSM.lineHeight}px`,\n      fontWeight: typography.lHeadingSM.fontWeight,\n    },\n    bodyLGMedium: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lBodyLGMedium.fontSize,\n      lineHeight: `${typography.lBodyLGMedium.lineHeight}px`,\n      fontWeight: typography.lBodyLGMedium.fontWeight,\n    },\n    bodyMDBold: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lBodyMDBold.fontSize,\n      lineHeight: `${typography.lBodyMDBold.lineHeight}px`,\n      fontWeight: typography.lBodyMDBold.fontWeight,\n    },\n    bodyMDMedium: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lBodyMDMedium.fontSize,\n      lineHeight: `${typography.lBodyMDMedium.lineHeight}px`,\n      fontWeight: typography.lBodyMDMedium.fontWeight,\n    },\n    bodyMD: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lBodyMD.fontSize,\n      lineHeight: `${typography.lBodyMD.lineHeight}px`,\n      fontWeight: typography.lBodyMD.fontWeight,\n    },\n    bodySMBold: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lBodySMBold.fontSize,\n      lineHeight: `${typography.lBodySMBold.lineHeight}px`,\n      fontWeight: typography.lBodySMBold.fontWeight,\n    },\n    bodySMMedium: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lBodySMMedium.fontSize,\n      lineHeight: `${typography.lBodySMMedium.lineHeight}px`,\n      fontWeight: typography.lBodySMMedium.fontWeight,\n    },\n    bodySM: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lBodySM.fontSize,\n      lineHeight: `${typography.lBodySM.lineHeight}px`,\n      fontWeight: typography.lBodySM.fontWeight,\n    },\n    bodyXSMedium: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lBodyXSMedium.fontSize,\n      lineHeight: `${typography.lBodyXSMedium.lineHeight}px`,\n      fontWeight: typography.lBodyXSMedium.fontWeight,\n      letterSpacing: typography.lBodyXSMedium.letterSpacing,\n    },\n    bodyXS: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lBodyXS.fontSize,\n      lineHeight: `${typography.lBodyXS.lineHeight}px`,\n      fontWeight: typography.lBodyXS.fontWeight,\n      letterSpacing: typography.lBodyXS.letterSpacing,\n    },\n    pageHeading: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lPageHeading.fontSize,\n      lineHeight: `${typography.lPageHeading.lineHeight}px`,\n      fontWeight: typography.lPageHeading.fontWeight,\n      letterSpacing: typography.lPageHeading.letterSpacing,\n    },\n    sectionHeading: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lSectionHeading.fontSize,\n      lineHeight: `${typography.lSectionHeading.lineHeight}px`,\n      fontWeight: typography.lSectionHeading.fontWeight,\n      letterSpacing: typography.lSectionHeading.letterSpacing,\n    },\n    buttonLabelMd: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lButtonLabelMd.fontSize,\n      lineHeight: `${typography.lButtonLabelMd.lineHeight}px`,\n      fontWeight: typography.lButtonLabelMd.fontWeight,\n      letterSpacing: typography.lButtonLabelMd.letterSpacing,\n    },\n    buttonLabelLg: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lButtonLabelLg.fontSize,\n      lineHeight: `${typography.lButtonLabelLg.lineHeight}px`,\n      fontWeight: typography.lButtonLabelLg.fontWeight,\n      letterSpacing: typography.lButtonLabelLg.letterSpacing,\n    },\n    amountDisplayLg: {\n      fontFamily: fontFamilies.default,\n      fontSize: typography.lAmountDisplayLg.fontSize,\n      lineHeight: `${typography.lAmountDisplayLg.lineHeight}px`,\n      fontWeight: typography.lAmountDisplayLg.fontWeight,\n      letterSpacing: typography.lAmountDisplayLg.letterSpacing,\n    },\n  };\n  return (\n    <>\n      <Text style={styles.displayXL}>\n        {`L DisplayXL ${styles.displayXL.fontSize}px/${\n          styles.displayXL.lineHeight\n        } ${styles.displayXL.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.displayLG}>\n        {`L DisplayLG ${styles.displayLG.fontSize}px/${\n          styles.displayLG.lineHeight\n        } ${styles.displayLG.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.displayMD}>\n        {`L DisplayMD ${styles.displayMD.fontSize}px/${\n          styles.displayMD.lineHeight\n        } ${styles.displayMD.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.headingLG}>\n        {`L HeadingLG ${styles.headingLG.fontSize}px/${\n          styles.headingLG.lineHeight\n        } ${styles.headingLG.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.headingMD}>\n        {`L HeadingMD ${styles.headingMD.fontSize}px/${\n          styles.headingMD.lineHeight\n        } ${styles.headingMD.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.headingSM}>\n        {`L HeadingSM ${styles.headingSM.fontSize}px/${\n          styles.headingSM.lineHeight\n        } ${styles.headingSM.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodyLGMedium}>\n        {`L BodyLG Medium ${styles.bodyLGMedium.fontSize}px/${\n          styles.bodyLGMedium.lineHeight\n        } ${styles.bodyLGMedium.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodyMDBold}>\n        {`L BodyMD Bold ${styles.bodyMDBold.fontSize}px/${\n          styles.bodyMDBold.lineHeight\n        } ${styles.bodyMDBold.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodyMDMedium}>\n        {`L BodyMD Medium ${styles.bodyMDMedium.fontSize}px/${\n          styles.bodyMDMedium.lineHeight\n        } ${styles.bodyMDMedium.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodyMD}>\n        {`L BodyMD ${styles.bodyMD.fontSize}px/${styles.bodyMD.lineHeight} ${\n          styles.bodyMD.fontSize / largeScreenFontSizeBase\n        }rem`}\n      </Text>\n      <Text style={styles.bodySMBold}>\n        {`L BodySM Bold ${styles.bodySMBold.fontSize}px/${\n          styles.bodySMBold.lineHeight\n        } ${styles.bodySMBold.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodySMMedium}>\n        {`L BodySM Medium ${styles.bodySMMedium.fontSize}px/${\n          styles.bodySMMedium.lineHeight\n        } ${styles.bodySMMedium.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodySM}>\n        {`L BodySM ${styles.bodySM.fontSize}px/${styles.bodySM.lineHeight} ${\n          styles.bodySM.fontSize / largeScreenFontSizeBase\n        }rem`}\n      </Text>\n      <Text style={styles.bodyXSMedium}>\n        {`L BodyXS Medium ${styles.bodyXSMedium.fontSize}px/${\n          styles.bodyXSMedium.lineHeight\n        } ${styles.bodyXSMedium.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.bodyXS}>\n        {`L BodyXS ${styles.bodyXS.fontSize}px/${styles.bodyXS.lineHeight} ${\n          styles.bodyXS.fontSize / largeScreenFontSizeBase\n        }rem`}\n      </Text>\n      <Text style={styles.pageHeading}>\n        {`L PageHeading ${styles.pageHeading.fontSize}px/${\n          styles.pageHeading.lineHeight\n        } ${styles.pageHeading.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.sectionHeading}>\n        {`L SectionHeading ${styles.sectionHeading.fontSize}px/${\n          styles.sectionHeading.lineHeight\n        } ${styles.sectionHeading.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.buttonLabelMd}>\n        {`L ButtonLabelMd ${styles.buttonLabelMd.fontSize}px/${\n          styles.buttonLabelMd.lineHeight\n        } ${styles.buttonLabelMd.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.buttonLabelLg}>\n        {`L ButtonLabelLg ${styles.buttonLabelLg.fontSize}px/${\n          styles.buttonLabelLg.lineHeight\n        } ${styles.buttonLabelLg.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n      <Text style={styles.amountDisplayLg}>\n        {`L AmountDisplayLg ${styles.amountDisplayLg.fontSize}px/${\n          styles.amountDisplayLg.lineHeight\n        } ${styles.amountDisplayLg.fontSize / largeScreenFontSizeBase}rem`}\n      </Text>\n    </>\n  );\n};"
        },
        {
          "id": "design-tokens-typography-typography--font-weight",
          "name": "Font Weight",
          "snippet": "const FontWeight = () => {\n  const styles = {\n    regular: {\n      fontFamily: fontFamilies.default,\n      fontSize: fontSizes.fontSize4,\n      lineHeight: `${lineHeights.lineHeight5}px`,\n      fontWeight: fontWeights.regular,\n    },\n    medium: {\n      fontFamily: fontFamilies.default,\n      fontSize: fontSizes.fontSize4,\n      lineHeight: `${lineHeights.lineHeight5}px`,\n      fontWeight: fontWeights.medium,\n    },\n    bold: {\n      fontFamily: fontFamilies.default,\n      fontSize: fontSizes.fontSize4,\n      lineHeight: `${lineHeights.lineHeight5}px`,\n      fontWeight: fontWeights.bold,\n    },\n  };\n  return (\n    <>\n      <Text style={styles.regular}>Regular 400</Text>\n      <Text style={styles.medium}>Medium 500</Text>\n      <Text style={styles.bold}>Bold 600</Text>\n    </>\n  );\n};"
        },
        {
          "id": "design-tokens-typography-typography--small-screen-css",
          "name": "Small Screen CSS",
          "snippet": "const SmallScreenCSS = () => {\n  const fontBase = 16;\n  const styles = {\n    DisplayXL: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-display-xl-font-size)',\n      lineHeight: 'var(--typography-s-display-xl-line-height)',\n      fontWeight: 'var(--typography-s-display-xl-font-weight)',\n    },\n    DisplayLG: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-display-lg-font-size)',\n      lineHeight: 'var(--typography-s-display-lg-line-height)',\n      fontWeight: 'var(--typography-s-display-lg-font-weight)',\n    },\n    DisplayMD: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-display-md-font-size)',\n      lineHeight: 'var(--typography-s-display-md-line-height)',\n      fontWeight: 'var(--typography-s-display-md-font-weight)',\n    },\n    HeadingLG: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-heading-lg-font-size)',\n      lineHeight: 'var(--typography-s-heading-lg-line-height)',\n      fontWeight: 'var(--typography-s-heading-lg-font-weight)',\n    },\n    HeadingMD: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-heading-md-font-size)',\n      lineHeight: 'var(--typography-s-heading-md-line-height)',\n      fontWeight: 'var(--typography-s-heading-md-font-weight)',\n    },\n    HeadingSM: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-heading-sm-font-size)',\n      lineHeight: 'var(--typography-s-heading-sm-line-height)',\n      fontWeight: 'var(--typography-s-heading-sm-font-weight)',\n    },\n    'BodyLG Medium': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-body-lg-medium-font-size)',\n      lineHeight: 'var(--typography-s-body-lg-medium-line-height)',\n      fontWeight: 'var(--typography-s-body-lg-medium-font-weight)',\n    },\n    BodyMD: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-body-md-font-size)',\n      lineHeight: 'var(--typography-s-body-md-line-height)',\n      fontWeight: 'var(--typography-s-body-md-font-weight)',\n    },\n    'BodyMD Medium': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-body-md-medium-font-size)',\n      lineHeight: 'var(--typography-s-body-md-medium-line-height)',\n      fontWeight: 'var(--typography-s-body-md-medium-font-weight)',\n    },\n    'BodyMD Bold': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-body-md-bold-font-size)',\n      lineHeight: 'var(--typography-s-body-md-bold-line-height)',\n      fontWeight: 'var(--typography-s-body-md-bold-font-weight)',\n    },\n    BodySM: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-body-sm-font-size)',\n      lineHeight: 'var(--typography-s-body-sm-line-height)',\n      fontWeight: 'var(--typography-s-body-sm-font-weight)',\n    },\n    'BodySM Medium': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-body-sm-medium-font-size)',\n      lineHeight: 'var(--typography-s-body-sm-medium-line-height)',\n      fontWeight: 'var(--typography-s-body-sm-medium-font-weight)',\n    },\n    'BodySM Bold': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-body-sm-bold-font-size)',\n      lineHeight: 'var(--typography-s-body-sm-bold-line-height)',\n      fontWeight: 'var(--typography-s-body-sm-bold-font-weight)',\n    },\n    BodyXS: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-body-xs-font-size)',\n      lineHeight: 'var(--typography-s-body-xs-line-height)',\n      fontWeight: 'var(--typography-s-body-xs-font-weight)',\n      letterSpacing: 'var(--typography-s-body-xs-letter-spacing)',\n    },\n    'BodyXS Medium': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-body-xs-medium-font-size)',\n      lineHeight: 'var(--typography-s-body-xs-medium-line-height)',\n      fontWeight: 'var(--typography-s-body-xs-medium-font-weight)',\n      letterSpacing: 'var(--typography-s-body-xs-medium-letter-spacing)',\n    },\n    PageHeading: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-page-heading-font-size)',\n      lineHeight: 'var(--typography-s-page-heading-line-height)',\n      fontWeight: 'var(--typography-s-page-heading-font-weight)',\n      letterSpacing: 'var(--typography-s-page-heading-letter-spacing)',\n    },\n    SectionHeading: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-section-heading-font-size)',\n      lineHeight: 'var(--typography-s-section-heading-line-height)',\n      fontWeight: 'var(--typography-s-section-heading-font-weight)',\n      letterSpacing: 'var(--typography-s-section-heading-letter-spacing)',\n    },\n    ButtonLabelMd: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-button-label-md-font-size)',\n      lineHeight: 'var(--typography-s-button-label-md-line-height)',\n      fontWeight: 'var(--typography-s-button-label-md-font-weight)',\n      letterSpacing: 'var(--typography-s-button-label-md-letter-spacing)',\n    },\n    ButtonLabelLg: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-button-label-lg-font-size)',\n      lineHeight: 'var(--typography-s-button-label-lg-line-height)',\n      fontWeight: 'var(--typography-s-button-label-lg-font-weight)',\n      letterSpacing: 'var(--typography-s-button-label-lg-letter-spacing)',\n    },\n    AmountDisplayLg: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-s-amount-display-lg-font-size)',\n      lineHeight: 'var(--typography-s-amount-display-lg-line-height)',\n      fontWeight: 'var(--typography-s-amount-display-lg-font-weight)',\n      letterSpacing: 'var(--typography-s-amount-display-lg-letter-spacing)',\n    },\n  };\n\n  const getCssVar = (variable: string): number => {\n    // Expecting variable like \"var(--typography-s-display-md-font-size)\"\n    const strippedVar = variable.slice(4, -1); // removes \"var(\" at the beginning and \")\" at the end\n    const computedValue = getComputedStyle(document.documentElement)\n      .getPropertyValue(strippedVar)\n      .trim();\n    return parseFloat(computedValue);\n  };\n\n  return (\n    <>\n      {Object.values(styles).map((value, i) => {\n        const title = Object.getOwnPropertyNames(styles)[i];\n        return (\n          <Text style={value} key={i}>\n            {`S ${title} ${getCssVar(value.fontSize) * fontBase}px/${\n              getCssVar(value.lineHeight) * fontBase\n            }px ${getCssVar(value.fontSize)}rem/${getCssVar(\n              value.lineHeight,\n            )}rem `}\n            {title === 'HeadingSM Regular' && (\n              <span className=\"text-error-default\">DEPRECATED</span>\n            )}\n          </Text>\n        );\n      })}\n    </>\n  );\n};"
        },
        {
          "id": "design-tokens-typography-typography--large-screen-css",
          "name": "Large Screen CSS",
          "snippet": "const LargeScreenCSS = () => {\n  const fontBase = 16;\n\n  const styles = {\n    DisplayXL: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-display-xl-font-size)',\n      lineHeight: 'var(--typography-l-display-xl-line-height)',\n      fontWeight: 'var(--typography-l-display-xl-font-weight)',\n    },\n    DisplayLG: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-display-lg-font-size)',\n      lineHeight: 'var(--typography-l-display-lg-line-height)',\n      fontWeight: 'var(--typography-l-display-lg-font-weight)',\n    },\n    DisplayMD: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-display-md-font-size)',\n      lineHeight: 'var(--typography-l-display-md-line-height)',\n      fontWeight: 'var(--typography-l-display-md-font-weight)',\n    },\n    HeadingLG: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-heading-lg-font-size)',\n      lineHeight: 'var(--typography-l-heading-lg-line-height)',\n      fontWeight: 'var(--typography-l-heading-lg-font-weight)',\n    },\n    HeadingMD: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-heading-md-font-size)',\n      lineHeight: 'var(--typography-l-heading-md-line-height)',\n      fontWeight: 'var(--typography-l-heading-md-font-weight)',\n    },\n    HeadingSM: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-heading-sm-font-size)',\n      lineHeight: 'var(--typography-l-heading-sm-line-height)',\n      fontWeight: 'var(--typography-l-heading-sm-font-weight)',\n    },\n    'BodyLG Medium': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-body-lg-medium-font-size)',\n      lineHeight: 'var(--typography-l-body-lg-medium-line-height)',\n      fontWeight: 'var(--typography-l-body-lg-medium-font-weight)',\n    },\n    BodyMD: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-body-md-font-size)',\n      lineHeight: 'var(--typography-l-body-md-line-height)',\n      fontWeight: 'var(--typography-l-body-md-font-weight)',\n    },\n    'BodyMD Medium': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-body-md-medium-font-size)',\n      lineHeight: 'var(--typography-l-body-md-medium-line-height)',\n      fontWeight: 'var(--typography-l-body-md-medium-font-weight)',\n    },\n    'BodyMD Bold': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-body-md-bold-font-size)',\n      lineHeight: 'var(--typography-l-body-md-bold-line-height)',\n      fontWeight: 'var(--typography-l-body-md-bold-font-weight)',\n    },\n    BodySM: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-body-sm-font-size)',\n      lineHeight: 'var(--typography-l-body-sm-line-height)',\n      fontWeight: 'var(--typography-l-body-sm-font-weight)',\n    },\n    'BodySM Medium': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-body-sm-medium-font-size)',\n      lineHeight: 'var(--typography-l-body-sm-medium-line-height)',\n      fontWeight: 'var(--typography-l-body-sm-medium-font-weight)',\n    },\n    'BodySM Bold': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-body-sm-bold-font-size)',\n      lineHeight: 'var(--typography-l-body-sm-bold-line-height)',\n      fontWeight: 'var(--typography-l-body-sm-bold-font-weight)',\n    },\n    BodyXS: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-body-xs-font-size)',\n      lineHeight: 'var(--typography-l-body-xs-line-height)',\n      fontWeight: 'var(--typography-l-body-xs-font-weight)',\n      letterSpacing: 'var(--typography-l-body-xs-letter-spacing)',\n    },\n    'BodyXS Medium': {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-body-xs-medium-font-size)',\n      lineHeight: 'var(--typography-l-body-xs-medium-line-height)',\n      fontWeight: 'var(--typography-l-body-xs-medium-font-weight)',\n      letterSpacing: 'var(--typography-l-body-xs-medium-letter-spacing)',\n    },\n    PageHeading: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-page-heading-font-size)',\n      lineHeight: 'var(--typography-l-page-heading-line-height)',\n      fontWeight: 'var(--typography-l-page-heading-font-weight)',\n      letterSpacing: 'var(--typography-l-page-heading-letter-spacing)',\n    },\n    SectionHeading: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-section-heading-font-size)',\n      lineHeight: 'var(--typography-l-section-heading-line-height)',\n      fontWeight: 'var(--typography-l-section-heading-font-weight)',\n      letterSpacing: 'var(--typography-l-section-heading-letter-spacing)',\n    },\n    ButtonLabelMd: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-button-label-md-font-size)',\n      lineHeight: 'var(--typography-l-button-label-md-line-height)',\n      fontWeight: 'var(--typography-l-button-label-md-font-weight)',\n      letterSpacing: 'var(--typography-l-button-label-md-letter-spacing)',\n    },\n    ButtonLabelLg: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-button-label-lg-font-size)',\n      lineHeight: 'var(--typography-l-button-label-lg-line-height)',\n      fontWeight: 'var(--typography-l-button-label-lg-font-weight)',\n      letterSpacing: 'var(--typography-l-button-label-lg-letter-spacing)',\n    },\n    AmountDisplayLg: {\n      fontFamily: 'var(--font-family-default)',\n      fontSize: 'var(--typography-l-amount-display-lg-font-size)',\n      lineHeight: 'var(--typography-l-amount-display-lg-line-height)',\n      fontWeight: 'var(--typography-l-amount-display-lg-font-weight)',\n      letterSpacing: 'var(--typography-l-amount-display-lg-letter-spacing)',\n    },\n  };\n\n  const getCssVar = (variable: string): number => {\n    // Expecting variable like \"var(--typography-s-display-md-font-size)\"\n    const strippedVar = variable.slice(4, -1); // removes \"var(\" at the beginning and \")\" at the end\n    const computedValue = getComputedStyle(document.documentElement)\n      .getPropertyValue(strippedVar)\n      .trim();\n    return parseFloat(computedValue);\n  };\n\n  return (\n    <>\n      {Object.values(styles).map((value, i) => {\n        const title = Object.getOwnPropertyNames(styles)[i];\n        return (\n          <Text style={value} key={i}>\n            {`L ${title} ${getCssVar(value.fontSize) * fontBase}px/${\n              getCssVar(value.lineHeight) * fontBase\n            }px ${getCssVar(value.fontSize)}rem/${getCssVar(\n              value.lineHeight,\n            )}rem `}\n            {title === 'HeadingSM Regular' && (\n              <span className=\"text-error-default\">DEPRECATED</span>\n            )}\n          </Text>\n        );\n      })}\n    </>\n  );\n};"
        }
      ],
      "import": "import { Text } from '@metamask/design-system-react';"
    },
    "react-components-avataraccount": {
      "id": "react-components-avataraccount",
      "name": "AvatarAccount",
      "path": "../../packages/design-system-react/src/components/AvatarAccount/AvatarAccount.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "AvatarAccount",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/AvatarAccount/AvatarAccount.tsx",
        "actualName": "AvatarAccount",
        "exportName": "AvatarAccount",
        "props": {
          "blockiesProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "ComponentProps",
                  "elements": [
                    {
                      "name": "Blockies"
                    }
                  ],
                  "raw": "ComponentProps<typeof Blockies>"
                }
              ],
              "raw": "Partial<ComponentProps<typeof Blockies>>"
            },
            "description": "Optional props to be passed to the Blockies component"
          },
          "jazziconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "ComponentProps",
                  "elements": [
                    {
                      "name": "Jazzicon"
                    }
                  ],
                  "raw": "ComponentProps<typeof Jazzicon>"
                }
              ],
              "raw": "Partial<ComponentProps<typeof Jazzicon>>"
            },
            "description": "Optional props to be passed to the Jazzicon component"
          },
          "maskiconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "ComponentProps",
                  "elements": [
                    {
                      "name": "Maskicon"
                    }
                  ],
                  "raw": "ComponentProps<typeof Maskicon>"
                }
              ],
              "raw": "Partial<ComponentProps<typeof Maskicon>>"
            },
            "description": "Optional props to be passed to the Maskicon component"
          },
          "variant": {
            "defaultValue": {
              "value": "'jazzicon'",
              "computed": false
            },
            "required": false
          },
          "size": {
            "defaultValue": {
              "value": "'md'",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-avataraccount--default",
          "name": "Default",
          "snippet": "const Default = () => <AvatarAccount\n    variant={AvatarAccountVariant.Jazzicon}\n    size={AvatarAccountSize.Md}\n    address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\" />;"
        },
        {
          "id": "react-components-avataraccount--address",
          "name": "Address",
          "snippet": "const Address = () => (\n  <div className=\"flex gap-2\">\n    <AvatarAccount address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\" />\n    <AvatarAccount\n      address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\"\n      variant={AvatarAccountVariant.Blockies}\n    />\n    <AvatarAccount\n      address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\"\n      variant={AvatarAccountVariant.Maskicon}\n    />\n    <AvatarAccount address=\"0xb9b81f6bd23B953c5257C3b5E2F0c03B07E944eB\" />\n    <AvatarAccount\n      address=\"0xb9b81f6bd23B953c5257C3b5E2F0c03B07E944eB\"\n      variant={AvatarAccountVariant.Blockies}\n    />\n    <AvatarAccount\n      address=\"0xb9b81f6bd23B953c5257C3b5E2F0c03B07E944eB\"\n      variant={AvatarAccountVariant.Maskicon}\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-avataraccount--variant",
          "name": "Variant",
          "snippet": "const Variant = () => (\n  <div className=\"flex gap-2\">\n    <AvatarAccount\n      address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\"\n      variant={AvatarAccountVariant.Blockies}\n    />\n    <AvatarAccount\n      address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\"\n      variant={AvatarAccountVariant.Jazzicon}\n    />\n    <AvatarAccount\n      address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\"\n      variant={AvatarAccountVariant.Maskicon}\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-avataraccount--size",
          "name": "Size",
          "snippet": "const Size = () => (\n  <div className=\"flex items-center gap-2\">\n    <AvatarAccount\n      address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\"\n      size={AvatarAccountSize.Xs}\n    />\n    <AvatarAccount\n      address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\"\n      size={AvatarAccountSize.Sm}\n    />\n    <AvatarAccount\n      address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\"\n      size={AvatarAccountSize.Md}\n    />\n    <AvatarAccount\n      address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\"\n      size={AvatarAccountSize.Lg}\n    />\n    <AvatarAccount\n      address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\"\n      size={AvatarAccountSize.Xl}\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-avataraccount--has-border",
          "name": "Has Border",
          "snippet": "const HasBorder = () => (\n  <div className=\"flex gap-2 bg-primary-muted p-2\">\n    <AvatarAccount address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\" />\n    <AvatarAccount\n      address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\"\n      hasBorder\n    />\n  </div>\n);"
        }
      ],
      "import": "import { AvatarAccount } from '@metamask/design-system-react';\nimport { AvatarAccountVariant, AvatarAccountSize } from '.';"
    },
    "react-components-avatarbase": {
      "id": "react-components-avatarbase",
      "name": "AvatarBase",
      "path": "../../packages/design-system-react/src/components/AvatarBase/AvatarBase.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "AvatarBase",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/AvatarBase/AvatarBase.tsx",
        "actualName": "AvatarBase",
        "exportName": "AvatarBase",
        "props": {
          "data-testid": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional test id for querying in tests."
          },
          "fallbackTextProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "React.HTMLAttributes<HTMLSpanElement> & TextProps",
                  "elements": [
                    {
                      "name": "ReactHTMLAttributes",
                      "raw": "React.HTMLAttributes<HTMLSpanElement>",
                      "elements": [
                        {
                          "name": "HTMLSpanElement"
                        }
                      ]
                    },
                    {
                      "name": "intersection",
                      "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "elements": [
                        {
                          "name": "TextPropsShared"
                        },
                        {
                          "name": "signature",
                          "type": "object",
                          "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                          "signature": {
                            "properties": [
                              {
                                "key": "style",
                                "value": {
                                  "name": "CSSProperties",
                                  "required": false
                                },
                                "description": "Optional prop for inline styles"
                              },
                              {
                                "key": "className",
                                "value": {
                                  "name": "string",
                                  "required": false
                                },
                                "description": "Optional prop for additional CSS classes to be applied to the Text component."
                              },
                              {
                                "key": "textTransform",
                                "value": {
                                  "name": "TextTransform",
                                  "required": false
                                },
                                "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                              },
                              {
                                "key": "textAlign",
                                "value": {
                                  "name": "TextAlign",
                                  "required": false
                                },
                                "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                              },
                              {
                                "key": "overflowWrap",
                                "value": {
                                  "name": "OverflowWrap",
                                  "required": false
                                },
                                "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                              },
                              {
                                "key": "ellipsis",
                                "value": {
                                  "name": "boolean",
                                  "required": false
                                },
                                "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                              },
                              {
                                "key": "asChild",
                                "value": {
                                  "name": "boolean",
                                  "required": false
                                },
                                "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                              },
                              {
                                "key": "data-testid",
                                "value": {
                                  "name": "string",
                                  "required": false
                                },
                                "description": "Optional prop for testing purposes"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  ]
                }
              ],
              "raw": "Partial<\n  React.HTMLAttributes<HTMLSpanElement> & TextProps\n>"
            },
            "description": "Optional props to be passed to the Text component when rendering fallback text\nOnly used when fallbackText is provided and no children"
          },
          "asChild": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a div element\n\n@default false"
          },
          "size": {
            "defaultValue": {
              "value": "'md'",
              "computed": false
            },
            "required": false
          },
          "shape": {
            "defaultValue": {
              "value": "'circle'",
              "computed": false
            },
            "required": false
          },
          "hasBorder": {
            "defaultValue": {
              "value": "false",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-avatarbase--default",
          "name": "Default",
          "snippet": "const Default = () => <AvatarBase fallbackText=\"A\" />;"
        },
        {
          "id": "react-components-avatarbase--shape",
          "name": "Shape",
          "snippet": "const Shape = () => (\n  <div className=\"flex items-center gap-2\">\n    <AvatarBase shape={AvatarBaseShape.Circle} fallbackText=\"C\" />\n    <AvatarBase shape={AvatarBaseShape.Square} fallbackText=\"S\" />\n  </div>\n);"
        },
        {
          "id": "react-components-avatarbase--size",
          "name": "Size",
          "snippet": "const Size = () => (\n  <div className=\"flex flex-col gap-2\">\n    <div className=\"flex items-center gap-2\">\n      <AvatarBase size={AvatarBaseSize.Xs} fallbackText=\"XS\" />\n      <AvatarBase size={AvatarBaseSize.Sm} fallbackText=\"SM\" />\n      <AvatarBase size={AvatarBaseSize.Md} fallbackText=\"MD\" />\n      <AvatarBase size={AvatarBaseSize.Lg} fallbackText=\"LG\" />\n      <AvatarBase size={AvatarBaseSize.Xl} fallbackText=\"XL\" />\n    </div>\n    <div className=\"flex items-center gap-2\">\n      <AvatarBase\n        shape={AvatarBaseShape.Square}\n        size={AvatarBaseSize.Xs}\n        fallbackText=\"Xs\"\n      />\n      <AvatarBase\n        shape={AvatarBaseShape.Square}\n        size={AvatarBaseSize.Sm}\n        fallbackText=\"Sm\"\n      />\n      <AvatarBase\n        shape={AvatarBaseShape.Square}\n        size={AvatarBaseSize.Md}\n        fallbackText=\"Md\"\n      />\n      <AvatarBase\n        shape={AvatarBaseShape.Square}\n        size={AvatarBaseSize.Lg}\n        fallbackText=\"Lg\"\n      />\n      <AvatarBase\n        shape={AvatarBaseShape.Square}\n        size={AvatarBaseSize.Xl}\n        fallbackText=\"Xl\"\n      />\n    </div>\n  </div>\n);"
        },
        {
          "id": "react-components-avatarbase--has-border",
          "name": "Has Border",
          "snippet": "const HasBorder = () => (\n  <div className=\"flex gap-2 bg-primary-muted p-2\">\n    <AvatarBase fallbackText=\"A\" />\n    <AvatarBase fallbackText=\"B\" hasBorder />\n  </div>\n);"
        },
        {
          "id": "react-components-avatarbase--fallback-text",
          "name": "Fallback Text",
          "snippet": "const FallbackText = () => (\n  <div className=\"flex gap-2\">\n    <AvatarBase fallbackText=\"A\" />\n    <AvatarBase fallbackText=\"B\" />\n    <AvatarBase fallbackText=\"C\" />\n  </div>\n);"
        },
        {
          "id": "react-components-avatarbase--fallback-text-with-props",
          "name": "Fallback Text With Props",
          "snippet": "const FallbackTextWithProps = () => (\n  <div className=\"flex gap-2\">\n    <AvatarBase\n      fallbackText=\"A\"\n      fallbackTextProps={{ color: TextColor.PrimaryDefault }}\n    />\n    <AvatarBase\n      fallbackText=\"B\"\n      fallbackTextProps={{ color: TextColor.ErrorDefault }}\n    />\n    <AvatarBase\n      fallbackText=\"C\"\n      fallbackTextProps={{ color: TextColor.SuccessDefault }}\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-avatarbase--children",
          "name": "Children",
          "snippet": "const Children = () => (\n  <div className=\"flex items-center gap-2\">\n    {/* Text */}\n    <AvatarBase fallbackText=\"A\" />\n    {/* Image - Network/Token/Favicon */}\n    <AvatarBase shape={AvatarBaseShape.Square}>\n      <img\n        src={SAMPLE_AVATARBASE_URIS[0]}\n        alt=\"Eth\"\n        className=\"size-full object-contain\"\n      />\n    </AvatarBase>\n    <AvatarBase>\n      <img\n        src={SAMPLE_AVATARBASE_URIS[0]}\n        alt=\"Eth\"\n        className=\"size-full object-contain\"\n      />\n    </AvatarBase>\n    <AvatarBase>\n      <img\n        src={SAMPLE_AVATARBASE_URIS[1]}\n        alt=\"Eth\"\n        className=\"size-full object-contain\"\n      />\n    </AvatarBase>\n    {/* Icon */}\n    <AvatarBase>\n      <Icon name={IconName.UserCircle} size={IconSize.Sm} />\n    </AvatarBase>\n  </div>\n);"
        }
      ],
      "import": "import { AvatarBase, Icon } from '@metamask/design-system-react';"
    },
    "react-components-avatarfavicon": {
      "id": "react-components-avatarfavicon",
      "name": "AvatarFavicon",
      "path": "../../packages/design-system-react/src/components/AvatarFavicon/AvatarFavicon.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "AvatarFavicon",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/AvatarFavicon/AvatarFavicon.tsx",
        "actualName": "AvatarFavicon",
        "exportName": "AvatarFavicon",
        "props": {
          "src": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional URL for the dapp favicon/logo\nWhen provided, displays the image instead of fallback text"
          },
          "imageProps": {
            "required": false,
            "tsType": {
              "name": "intersection",
              "raw": "ComponentProps<'img'> & {\n  'data-testid'?: string;\n}",
              "elements": [
                {
                  "name": "ComponentProps",
                  "elements": [
                    {
                      "name": "literal",
                      "value": "'img'"
                    }
                  ],
                  "raw": "ComponentProps<'img'>"
                },
                {
                  "name": "signature",
                  "type": "object",
                  "raw": "{\n  'data-testid'?: string;\n}",
                  "signature": {
                    "properties": [
                      {
                        "key": "data-testid",
                        "value": {
                          "name": "string",
                          "required": false
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "description": "Optional prop to pass to the underlying img element\nUseful for overriding the default alt text which is the dapp name"
          },
          "name": {
            "defaultValue": {
              "value": "''",
              "computed": false
            },
            "required": false
          },
          "size": {
            "defaultValue": {
              "value": "'md'",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-avatarfavicon--default",
          "name": "Default",
          "snippet": "const Default = () => <AvatarFavicon src={SAMPLE_AVATARFAVICON_URIS[0]} name=\"Adobe\" fallbackText=\"OS\" />;"
        },
        {
          "id": "react-components-avatarfavicon--src",
          "name": "Src",
          "snippet": "const Src = () => (\n  <div className=\"flex gap-2\">\n    <AvatarFavicon\n      name=\"Adobe\"\n      fallbackText=\"A\"\n      src={SAMPLE_AVATARFAVICON_URIS[0]}\n    />\n    <AvatarFavicon\n      name=\"Github\"\n      fallbackText=\"G\"\n      src={SAMPLE_AVATARFAVICON_URIS[1]}\n    />\n    <AvatarFavicon\n      name=\"Google\"\n      fallbackText=\"G\"\n      src={SAMPLE_AVATARFAVICON_URIS[2]}\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-avatarfavicon--name",
          "name": "Name",
          "snippet": "const Name = () => (\n  <div className=\"flex gap-2\">\n    <AvatarFavicon name=\"Adobe\" src={SAMPLE_AVATARFAVICON_URIS[0]} />\n    <AvatarFavicon name=\"Github\" src={SAMPLE_AVATARFAVICON_URIS[1]} />\n    <AvatarFavicon name=\"Aave\" />\n  </div>\n);"
        },
        {
          "id": "react-components-avatarfavicon--fallback",
          "name": "Fallback",
          "snippet": "const Fallback = () => (\n  <div className=\"flex gap-2\">\n    <AvatarFavicon name=\"OpenSea\" fallbackText=\"OS\" />\n    <AvatarFavicon name=\"Github\" />\n    <AvatarFavicon />\n  </div>\n);"
        },
        {
          "id": "react-components-avatarfavicon--fallback-text",
          "name": "Fallback Text",
          "snippet": "const FallbackText = () => (\n  <div className=\"flex gap-2\">\n    <AvatarFavicon name=\"OpenSea\" fallbackText=\"OS\" />\n    <AvatarFavicon name=\"Uniswap\" fallbackText=\"UNI\" />\n    <AvatarFavicon\n      name=\"Aave\"\n      fallbackText=\"AAVE\"\n      src=\"https://cryptologos.cc/logos/avalanche-avax-logo.png?v=040\"\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-avatarfavicon--size",
          "name": "Size",
          "snippet": "const Size = () => (\n  <div className=\"flex items-center gap-2\">\n    <AvatarFavicon\n      name=\"OpenSea\"\n      fallbackText=\"O\"\n      size={AvatarFaviconSize.Xs}\n    />\n    <AvatarFavicon\n      name=\"OpenSea\"\n      fallbackText=\"OS\"\n      size={AvatarFaviconSize.Sm}\n    />\n    <AvatarFavicon\n      name=\"OpenSea\"\n      fallbackText=\"OS\"\n      size={AvatarFaviconSize.Md}\n    />\n    <AvatarFavicon\n      name=\"OpenSea\"\n      fallbackText=\"OS\"\n      size={AvatarFaviconSize.Lg}\n    />\n    <AvatarFavicon\n      name=\"OpenSea\"\n      fallbackText=\"OS\"\n      size={AvatarFaviconSize.Xl}\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-avatarfavicon--has-border",
          "name": "Has Border",
          "snippet": "const HasBorder = () => (\n  <div className=\"flex gap-2 bg-primary-muted p-2\">\n    <AvatarFavicon name=\"Adobe\" src={SAMPLE_AVATARFAVICON_URIS[0]} />\n    <AvatarFavicon\n      name=\"Github\"\n      src={SAMPLE_AVATARFAVICON_URIS[1]}\n      hasBorder\n    />\n  </div>\n);"
        }
      ],
      "import": "import { AvatarFavicon } from '@metamask/design-system-react';\nimport { SAMPLE_AVATARFAVICON_URIS } from './AvatarFavicon.dev';"
    },
    "react-components-avatargroup": {
      "id": "react-components-avatargroup",
      "name": "AvatarGroup",
      "path": "../../packages/design-system-react/src/components/AvatarGroup/AvatarGroup.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "AvatarGroup",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/AvatarGroup/AvatarGroup.tsx",
        "actualName": "AvatarGroup",
        "exportName": "AvatarGroup",
        "props": {
          "overflowTextProps": {
            "required": false,
            "tsType": {
              "name": "intersection",
              "raw": "ComponentProps<'div'> &\nAvatarBasePropsShared & {\n  /**\n   * Optional test id for querying in tests.\n   */\n  'data-testid'?: string;\n  /**\n   * Optional props to be passed to the Text component when rendering fallback text\n   * Only used when fallbackText is provided and no children\n   */\n  fallbackTextProps?: Partial<\n    React.HTMLAttributes<HTMLSpanElement> & TextProps\n  >;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a div element\n   *\n   * @default false\n   */\n  asChild?: boolean;\n}",
              "elements": [
                {
                  "name": "ComponentProps",
                  "elements": [
                    {
                      "name": "literal",
                      "value": "'div'"
                    }
                  ],
                  "raw": "ComponentProps<'div'>"
                },
                {
                  "name": "AvatarBasePropsShared"
                },
                {
                  "name": "signature",
                  "type": "object",
                  "raw": "{\n  /**\n   * Optional test id for querying in tests.\n   */\n  'data-testid'?: string;\n  /**\n   * Optional props to be passed to the Text component when rendering fallback text\n   * Only used when fallbackText is provided and no children\n   */\n  fallbackTextProps?: Partial<\n    React.HTMLAttributes<HTMLSpanElement> & TextProps\n  >;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a div element\n   *\n   * @default false\n   */\n  asChild?: boolean;\n}",
                  "signature": {
                    "properties": [
                      {
                        "key": "data-testid",
                        "value": {
                          "name": "string",
                          "required": false
                        },
                        "description": "Optional test id for querying in tests."
                      },
                      {
                        "key": "fallbackTextProps",
                        "value": {
                          "name": "Partial",
                          "elements": [
                            {
                              "name": "intersection",
                              "raw": "React.HTMLAttributes<HTMLSpanElement> & TextProps",
                              "elements": [
                                {
                                  "name": "ReactHTMLAttributes",
                                  "raw": "React.HTMLAttributes<HTMLSpanElement>",
                                  "elements": [
                                    {
                                      "name": "HTMLSpanElement"
                                    }
                                  ]
                                },
                                {
                                  "name": "intersection",
                                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                                  "elements": [
                                    {
                                      "name": "TextPropsShared"
                                    },
                                    {
                                      "name": "signature",
                                      "type": "object",
                                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                                      "signature": {
                                        "properties": [
                                          {
                                            "key": "style",
                                            "value": {
                                              "name": "CSSProperties",
                                              "required": false
                                            },
                                            "description": "Optional prop for inline styles"
                                          },
                                          {
                                            "key": "className",
                                            "value": {
                                              "name": "string",
                                              "required": false
                                            },
                                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                                          },
                                          {
                                            "key": "textTransform",
                                            "value": {
                                              "name": "TextTransform",
                                              "required": false
                                            },
                                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                                          },
                                          {
                                            "key": "textAlign",
                                            "value": {
                                              "name": "TextAlign",
                                              "required": false
                                            },
                                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                                          },
                                          {
                                            "key": "overflowWrap",
                                            "value": {
                                              "name": "OverflowWrap",
                                              "required": false
                                            },
                                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                                          },
                                          {
                                            "key": "ellipsis",
                                            "value": {
                                              "name": "boolean",
                                              "required": false
                                            },
                                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                                          },
                                          {
                                            "key": "asChild",
                                            "value": {
                                              "name": "boolean",
                                              "required": false
                                            },
                                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                                          },
                                          {
                                            "key": "data-testid",
                                            "value": {
                                              "name": "string",
                                              "required": false
                                            },
                                            "description": "Optional prop for testing purposes"
                                          }
                                        ]
                                      }
                                    }
                                  ]
                                }
                              ]
                            }
                          ],
                          "raw": "Partial<\n  React.HTMLAttributes<HTMLSpanElement> & TextProps\n>",
                          "required": false
                        },
                        "description": "Optional props to be passed to the Text component when rendering fallback text\nOnly used when fallbackText is provided and no children"
                      },
                      {
                        "key": "asChild",
                        "value": {
                          "name": "boolean",
                          "required": false
                        },
                        "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a div element\n\n@default false"
                      }
                    ]
                  }
                }
              ]
            },
            "description": "Optional prop to pass additional AvatarBase props to the overflow Text element."
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the AvatarGroup component.\nThese classes will be merged with the component's default classes using twMerge."
          },
          "style": {
            "required": false,
            "tsType": {
              "name": "ReactCSSProperties",
              "raw": "React.CSSProperties"
            },
            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
          },
          "size": {
            "defaultValue": {
              "value": "'md'",
              "computed": false
            },
            "required": false
          },
          "max": {
            "defaultValue": {
              "value": "4",
              "computed": false
            },
            "required": false
          },
          "isReverse": {
            "defaultValue": {
              "value": "false",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-avatargroup--default",
          "name": "Default",
          "snippet": "const Default = () => <AvatarGroupStory\n    variant={AvatarGroupVariant.Favicon}\n    size={AvatarGroupSize.Md}\n    max={4}\n    isReverse={false}\n    className=\"\" />;"
        },
        {
          "id": "react-components-avatargroup--variant",
          "name": "Variant",
          "snippet": "const Variant = () => (\n  <div className=\"flex flex-col gap-4\">\n    {Object.keys(AvatarGroupVariant).map((variantKey) => (\n      <AvatarGroupStory\n        key={variantKey}\n        variant={\n          AvatarGroupVariant[variantKey as keyof typeof AvatarGroupVariant]\n        }\n      />\n    ))}\n  </div>\n);"
        },
        {
          "id": "react-components-avatargroup--avatar-props-arr",
          "name": "Avatar Props Arr",
          "snippet": "const AvatarPropsArr = () => (\n  <div className=\"flex flex-col gap-4\">\n    {Object.keys(AvatarGroupVariant).map((variantKey) => (\n      <AvatarGroupStory\n        key={variantKey}\n        variant={\n          AvatarGroupVariant[variantKey as keyof typeof AvatarGroupVariant]\n        }\n      />\n    ))}\n  </div>\n);"
        },
        {
          "id": "react-components-avatargroup--size",
          "name": "Size",
          "snippet": "const Size = () => (\n  <div>\n    {Object.keys(AvatarGroupSize).map((sizeKey) => (\n      <div key={sizeKey} className=\"mb-4 flex flex-col gap-1\">\n        <AvatarGroupStory\n          variant={AvatarGroupVariant.Account}\n          size={AvatarGroupSize[sizeKey as keyof typeof AvatarGroupSize]}\n        />\n        <AvatarGroupStory\n          variant={AvatarGroupVariant.Favicon}\n          size={AvatarGroupSize[sizeKey as keyof typeof AvatarGroupSize]}\n        />\n        <AvatarGroupStory\n          variant={AvatarGroupVariant.Network}\n          size={AvatarGroupSize[sizeKey as keyof typeof AvatarGroupSize]}\n        />\n        <AvatarGroupStory\n          variant={AvatarGroupVariant.Token}\n          size={AvatarGroupSize[sizeKey as keyof typeof AvatarGroupSize]}\n        />\n      </div>\n    ))}\n  </div>\n);"
        },
        {
          "id": "react-components-avatargroup--max",
          "name": "Max",
          "snippet": "const Max = () => (\n  <div className=\"flex flex-col gap-1\">\n    {' '}\n    <AvatarGroupStory variant={AvatarGroupVariant.Account} />\n    <AvatarGroupStory variant={AvatarGroupVariant.Account} max={1} />\n    <AvatarGroupStory variant={AvatarGroupVariant.Account} max={10} />\n  </div>\n);"
        },
        {
          "id": "react-components-avatargroup--is-reverse",
          "name": "Is Reverse",
          "snippet": "const IsReverse = () => (\n  <div className=\"flex flex-col gap-4\">\n    <div className=\"flex flex-col items-start gap-1\">\n      <AvatarGroupStory variant={AvatarGroupVariant.Account} />\n      <AvatarGroupStory variant={AvatarGroupVariant.Account} isReverse />\n    </div>\n    <div className=\"flex flex-col items-start gap-1\">\n      <AvatarGroupStory variant={AvatarGroupVariant.Favicon} />\n      <AvatarGroupStory variant={AvatarGroupVariant.Favicon} isReverse />\n    </div>\n    <div className=\"flex flex-col items-start gap-1\">\n      <AvatarGroupStory variant={AvatarGroupVariant.Network} />\n      <AvatarGroupStory variant={AvatarGroupVariant.Network} isReverse />\n    </div>\n    <div className=\"flex flex-col items-start gap-1\">\n      <AvatarGroupStory variant={AvatarGroupVariant.Token} />\n      <AvatarGroupStory variant={AvatarGroupVariant.Token} isReverse />\n    </div>\n  </div>\n);"
        }
      ],
      "import": "import { AvatarGroup } from '@metamask/design-system-react';\nimport { AvatarGroupVariant, AvatarGroupSize } from '@metamask/design-system-shared';"
    },
    "react-components-avataricon": {
      "id": "react-components-avataricon",
      "name": "AvatarIcon",
      "path": "../../packages/design-system-react/src/components/AvatarIcon/AvatarIcon.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "AvatarIcon",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/AvatarIcon/AvatarIcon.tsx",
        "actualName": "AvatarIcon",
        "exportName": "AvatarIcon",
        "props": {
          "iconProps": {
            "required": false,
            "tsType": {
              "name": "Omit",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                },
                {
                  "name": "literal",
                  "value": "'name'"
                }
              ],
              "raw": "Omit<IconProps, 'name'>"
            },
            "description": "Optional props to be passed to the Icon component"
          },
          "size": {
            "defaultValue": {
              "value": "'md'",
              "computed": false
            },
            "required": false
          },
          "severity": {
            "defaultValue": {
              "value": "'neutral'",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-avataricon--default",
          "name": "Default",
          "snippet": "const Default = () => <AvatarIcon iconName={IconName.Arrow2UpRight} />;"
        },
        {
          "id": "react-components-avataricon--icon-name-story",
          "name": "IconName",
          "snippet": "const IconNameStory = () => (\n  <div className=\"flex gap-2\">\n    <AvatarIcon iconName={IconName.Arrow2UpRight} />\n    <AvatarIcon iconName={IconName.UserCircle} />\n    <AvatarIcon iconName={IconName.Setting} />\n    <AvatarIcon iconName={IconName.Search} />\n  </div>\n);"
        },
        {
          "id": "react-components-avataricon--size",
          "name": "Size",
          "snippet": "const Size = () => (\n  <div className=\"flex items-center gap-2\">\n    <AvatarIcon iconName={IconName.UserCircle} size={AvatarIconSize.Xs} />\n    <AvatarIcon iconName={IconName.UserCircle} size={AvatarIconSize.Sm} />\n    <AvatarIcon iconName={IconName.UserCircle} size={AvatarIconSize.Md} />\n    <AvatarIcon iconName={IconName.UserCircle} size={AvatarIconSize.Lg} />\n    <AvatarIcon iconName={IconName.UserCircle} size={AvatarIconSize.Xl} />\n  </div>\n);"
        },
        {
          "id": "react-components-avataricon--severity",
          "name": "Severity",
          "snippet": "const Severity = () => (\n  <div className=\"flex gap-2\">\n    <AvatarIcon\n      iconName={IconName.UserCircle}\n      severity={AvatarIconSeverity.Neutral}\n    />\n    <AvatarIcon iconName={IconName.Info} severity={AvatarIconSeverity.Info} />\n    <AvatarIcon\n      iconName={IconName.Check}\n      severity={AvatarIconSeverity.Success}\n    />\n    <AvatarIcon\n      iconName={IconName.Warning}\n      severity={AvatarIconSeverity.Warning}\n    />\n    <AvatarIcon\n      iconName={IconName.Danger}\n      severity={AvatarIconSeverity.Danger}\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-avataricon--has-border",
          "name": "Has Border",
          "snippet": "const HasBorder = () => (\n  <div className=\"flex gap-2 bg-primary-muted p-2\">\n    <AvatarIcon\n      iconName={IconName.UserCircle}\n      severity={AvatarIconSeverity.Neutral}\n    />\n    <AvatarIcon\n      iconName={IconName.UserCircle}\n      severity={AvatarIconSeverity.Neutral}\n      hasBorder\n    />\n  </div>\n);"
        }
      ],
      "import": "import { AvatarIcon } from '@metamask/design-system-react';\nimport { IconName } from '@metamask/design-system-shared';"
    },
    "react-components-avatarnetwork": {
      "id": "react-components-avatarnetwork",
      "name": "AvatarNetwork",
      "path": "../../packages/design-system-react/src/components/AvatarNetwork/AvatarNetwork.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "AvatarNetwork",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/AvatarNetwork/AvatarNetwork.tsx",
        "actualName": "AvatarNetwork",
        "exportName": "AvatarNetwork",
        "props": {
          "imageProps": {
            "required": false,
            "tsType": {
              "name": "intersection",
              "raw": "ComponentProps<'img'> & {\n  'data-testid'?: string;\n}",
              "elements": [
                {
                  "name": "ComponentProps",
                  "elements": [
                    {
                      "name": "literal",
                      "value": "'img'"
                    }
                  ],
                  "raw": "ComponentProps<'img'>"
                },
                {
                  "name": "signature",
                  "type": "object",
                  "raw": "{\n  'data-testid'?: string;\n}",
                  "signature": {
                    "properties": [
                      {
                        "key": "data-testid",
                        "value": {
                          "name": "string",
                          "required": false
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "description": "Optional prop to pass to the underlying img element.\nUseful for overriding the default alt text which is the network name."
          },
          "name": {
            "defaultValue": {
              "value": "''",
              "computed": false
            },
            "required": false
          },
          "size": {
            "defaultValue": {
              "value": "'md'",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-avatarnetwork--default",
          "name": "Default",
          "snippet": "const Default = () => <AvatarNetwork src={SAMPLE_AVATARNETWORK_URIS[0]} name=\"Arbitrum\" fallbackText=\"ARB\" />;"
        },
        {
          "id": "react-components-avatarnetwork--src",
          "name": "Src",
          "snippet": "const Src = () => (\n  <div className=\"flex gap-2\">\n    <AvatarNetwork\n      name=\"Arbitrum\"\n      fallbackText=\"ARB\"\n      src={SAMPLE_AVATARNETWORK_URIS[0]}\n    />\n    <AvatarNetwork\n      name=\"Avalanche\"\n      fallbackText=\"AVA\"\n      src={SAMPLE_AVATARNETWORK_URIS[1]}\n    />\n    <AvatarNetwork\n      name=\"BNB\"\n      fallbackText=\"BNB\"\n      src={SAMPLE_AVATARNETWORK_URIS[2]}\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-avatarnetwork--name",
          "name": "Name",
          "snippet": "const Name = () => (\n  <div className=\"flex gap-2\">\n    <AvatarNetwork name=\"Arbitrum\" src={SAMPLE_AVATARNETWORK_URIS[0]} />\n    <AvatarNetwork name=\"Avalanche\" src={SAMPLE_AVATARNETWORK_URIS[1]} />\n    <AvatarNetwork name=\"Polygon\" />\n  </div>\n);"
        },
        {
          "id": "react-components-avatarnetwork--fallback",
          "name": "Fallback",
          "snippet": "const Fallback = () => (\n  <div className=\"flex gap-2\">\n    <AvatarNetwork name=\"Ethereum\" fallbackText=\"ETH\" />\n    <AvatarNetwork name=\"Arbitrum\" />\n    <AvatarNetwork />\n  </div>\n);"
        },
        {
          "id": "react-components-avatarnetwork--fallback-text",
          "name": "Fallback Text",
          "snippet": "const FallbackText = () => (\n  <div className=\"flex gap-2\">\n    <AvatarNetwork\n      name=\"Ethereum\"\n      fallbackText=\"ETH\"\n      src=\"https://cryptologos.cc/logos/ethereum-eth-logo.svg?v=040\"\n    />\n    <AvatarNetwork name=\"Avalanche\" fallbackText=\"AVA\" />\n    <AvatarNetwork name=\"Polygon\" fallbackText=\"POL\" />\n  </div>\n);"
        },
        {
          "id": "react-components-avatarnetwork--size",
          "name": "Size",
          "snippet": "const Size = () => (\n  <div className=\"flex items-center gap-2\">\n    <AvatarNetwork\n      name=\"Ethereum\"\n      fallbackText=\"E\"\n      size={AvatarNetworkSize.Xs}\n    />\n    <AvatarNetwork\n      name=\"Ethereum\"\n      fallbackText=\"ETH\"\n      size={AvatarNetworkSize.Sm}\n    />\n    <AvatarNetwork\n      name=\"Ethereum\"\n      fallbackText=\"ETH\"\n      size={AvatarNetworkSize.Md}\n    />\n    <AvatarNetwork\n      name=\"Ethereum\"\n      fallbackText=\"ETH\"\n      size={AvatarNetworkSize.Lg}\n    />\n    <AvatarNetwork\n      name=\"Ethereum\"\n      fallbackText=\"ETH\"\n      size={AvatarNetworkSize.Xl}\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-avatarnetwork--has-border",
          "name": "Has Border",
          "snippet": "const HasBorder = () => (\n  <div className=\"flex gap-2 bg-primary-muted p-2\">\n    <AvatarNetwork name=\"Arbitrum\" src={SAMPLE_AVATARNETWORK_URIS[0]} />\n    <AvatarNetwork\n      name=\"Avalanche\"\n      src={SAMPLE_AVATARNETWORK_URIS[1]}\n      hasBorder\n    />\n  </div>\n);"
        }
      ],
      "import": "import { AvatarNetwork } from '@metamask/design-system-react';\nimport { SAMPLE_AVATARNETWORK_URIS } from './AvatarNetwork.dev';"
    },
    "react-components-avatartoken": {
      "id": "react-components-avatartoken",
      "name": "AvatarToken",
      "path": "../../packages/design-system-react/src/components/AvatarToken/AvatarToken.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "AvatarToken",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/AvatarToken/AvatarToken.tsx",
        "actualName": "AvatarToken",
        "exportName": "AvatarToken",
        "props": {
          "src": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional URL for the token image\nWhen provided, displays the image instead of fallback text"
          },
          "imageProps": {
            "required": false,
            "tsType": {
              "name": "intersection",
              "raw": "ComponentProps<'img'> & {\n  'data-testid'?: string;\n}",
              "elements": [
                {
                  "name": "ComponentProps",
                  "elements": [
                    {
                      "name": "literal",
                      "value": "'img'"
                    }
                  ],
                  "raw": "ComponentProps<'img'>"
                },
                {
                  "name": "signature",
                  "type": "object",
                  "raw": "{\n  'data-testid'?: string;\n}",
                  "signature": {
                    "properties": [
                      {
                        "key": "data-testid",
                        "value": {
                          "name": "string",
                          "required": false
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "description": "Optional prop to pass to the underlying img element\nUseful for overriding the default alt text which is the token name"
          },
          "name": {
            "defaultValue": {
              "value": "''",
              "computed": false
            },
            "required": false
          },
          "size": {
            "defaultValue": {
              "value": "'md'",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-avatartoken--default",
          "name": "Default",
          "snippet": "const Default = () => <AvatarToken src={SAMPLE_AVATARTOKEN_URIS[0]} name=\"Bitcoin\" fallbackText=\"BTC\" />;"
        },
        {
          "id": "react-components-avatartoken--src",
          "name": "Src",
          "snippet": "const Src = () => (\n  <div className=\"flex gap-2\">\n    <AvatarToken\n      name=\"Bitcoin\"\n      fallbackText=\"BTC\"\n      src=\"https://cryptologos.cc/logos/bitcoin-btc-logo.png?v=040\"\n    />\n    <AvatarToken\n      name=\"Ethereum\"\n      fallbackText=\"ETH\"\n      src={SAMPLE_AVATARTOKEN_URIS[1]}\n    />\n    <AvatarToken\n      name=\"Floki\"\n      fallbackText=\"FLOKI\"\n      src={SAMPLE_AVATARTOKEN_URIS[2]}\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-avatartoken--name",
          "name": "Name",
          "snippet": "const Name = () => (\n  <div className=\"flex gap-2\">\n    <AvatarToken name=\"Bitcoin\" src={SAMPLE_AVATARTOKEN_URIS[0]} />\n    <AvatarToken name=\"Ethereum\" src={SAMPLE_AVATARTOKEN_URIS[1]} />\n    <AvatarToken name=\"USDC\" />\n  </div>\n);"
        },
        {
          "id": "react-components-avatartoken--fallback",
          "name": "Fallback",
          "snippet": "const Fallback = () => (\n  <div className=\"flex gap-2\">\n    <AvatarToken name=\"Bitcoin\" fallbackText=\"BTC\" />\n    <AvatarToken name=\"Ethereum\" />\n    <AvatarToken />\n    <AvatarToken\n      name=\"Unavailable token\"\n      fallbackText=\"UT\"\n      src=\"https://example.com/unavailable-token.png\"\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-avatartoken--fallback-text",
          "name": "Fallback Text",
          "snippet": "const FallbackText = () => (\n  <div className=\"flex gap-2\">\n    <AvatarToken\n      name=\"Ethereum\"\n      fallbackText=\"ETH\"\n      src=\"https://cryptologos.cc/logos/ethereum-eth-logo.svg?v=040\"\n    />\n    <AvatarToken name=\"Bitcoin\" fallbackText=\"BTC\" />\n    <AvatarToken name=\"USDC\" fallbackText=\"USDC\" />\n  </div>\n);"
        },
        {
          "id": "react-components-avatartoken--size",
          "name": "Size",
          "snippet": "const Size = () => (\n  <div className=\"flex items-center gap-2\">\n    <AvatarToken name=\"Ethereum\" fallbackText=\"E\" size={AvatarTokenSize.Xs} />\n    <AvatarToken\n      name=\"Ethereum\"\n      fallbackText=\"ETH\"\n      size={AvatarTokenSize.Sm}\n    />\n    <AvatarToken\n      name=\"Ethereum\"\n      fallbackText=\"ETH\"\n      size={AvatarTokenSize.Md}\n    />\n    <AvatarToken\n      name=\"Ethereum\"\n      fallbackText=\"ETH\"\n      size={AvatarTokenSize.Lg}\n    />\n    <AvatarToken\n      name=\"Ethereum\"\n      fallbackText=\"ETH\"\n      size={AvatarTokenSize.Xl}\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-avatartoken--has-border",
          "name": "Has Border",
          "snippet": "const HasBorder = () => (\n  <div className=\"flex gap-2 bg-primary-muted p-2\">\n    <AvatarToken\n      name=\"Bitcoin\"\n      fallbackText=\"BTC\"\n      src={SAMPLE_AVATARTOKEN_URIS[0]}\n    />\n    <AvatarToken\n      name=\"Ethereum\"\n      fallbackText=\"ETH\"\n      src={SAMPLE_AVATARTOKEN_URIS[1]}\n      hasBorder\n    />\n  </div>\n);"
        }
      ],
      "import": "import { AvatarToken } from '@metamask/design-system-react';\nimport { SAMPLE_AVATARTOKEN_URIS } from './AvatarToken.dev';"
    },
    "react-components-badgecount": {
      "id": "react-components-badgecount",
      "name": "BadgeCount",
      "path": "../../packages/design-system-react/src/components/BadgeCount/BadgeCount.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "BadgeCount",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/BadgeCount/BadgeCount.tsx",
        "actualName": "BadgeCount",
        "exportName": "BadgeCount",
        "props": {
          "textProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Optional props to be passed to the Text component used by count"
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the BadgeCount component.\nThese classes will be merged with the component's default classes using twMerge.",
            "defaultValue": {
              "value": "''",
              "computed": false
            }
          },
          "style": {
            "required": false,
            "tsType": {
              "name": "ReactCSSProperties",
              "raw": "React.CSSProperties"
            },
            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
          },
          "size": {
            "defaultValue": {
              "value": "'md'",
              "computed": false
            },
            "required": false
          },
          "max": {
            "defaultValue": {
              "value": "99",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-badgecount--default",
          "name": "Default",
          "snippet": "const Default = () => <BadgeCount size={BadgeCountSize.Md} count={8} max={99} />;"
        },
        {
          "id": "react-components-badgecount--size",
          "name": "Size",
          "snippet": "const Size = () => (\n  <div className=\"flex items-center gap-2\">\n    {Object.values(BadgeCountSize).map((size) => (\n      <BadgeCount key={size} size={size} count={100} />\n    ))}\n  </div>\n);"
        },
        {
          "id": "react-components-badgecount--max",
          "name": "Max",
          "snippet": "const Max = () => (\n  <div className=\"flex items-center gap-2\">\n    <BadgeCount count={10} />\n    <BadgeCount count={100} />\n  </div>\n);"
        }
      ],
      "import": "import { BadgeCount } from '@metamask/design-system-react';\nimport { BadgeCountSize } from '@metamask/design-system-shared';"
    },
    "react-components-badgeicon": {
      "id": "react-components-badgeicon",
      "name": "BadgeIcon",
      "path": "../../packages/design-system-react/src/components/BadgeIcon/BadgeIcon.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "BadgeIcon",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/BadgeIcon/BadgeIcon.tsx",
        "actualName": "BadgeIcon",
        "exportName": "BadgeIcon",
        "props": {
          "iconProps": {
            "required": false,
            "tsType": {
              "name": "Omit",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                },
                {
                  "name": "literal",
                  "value": "'name'"
                }
              ],
              "raw": "Omit<IconProps, 'name'>"
            },
            "description": "Optional prop to pass additional properties to the icon"
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the BadgeIcon component.\nThese classes will be merged with the component's default classes using twMerge.",
            "defaultValue": {
              "value": "''",
              "computed": false
            }
          },
          "style": {
            "required": false,
            "tsType": {
              "name": "ReactCSSProperties",
              "raw": "React.CSSProperties"
            },
            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
          }
        }
      },
      "stories": [
        {
          "id": "react-components-badgeicon--default",
          "name": "Default",
          "snippet": "const Default = () => <BadgeIcon iconName={IconName.Add} className=\"\" />;"
        },
        {
          "id": "react-components-badgeicon--icon-name-story",
          "name": "IconName",
          "snippet": "const IconNameStory = () => (\n  <div className=\"flex gap-2\">\n    <BadgeIcon iconName={IconName.Arrow2UpRight} />\n    <BadgeIcon iconName={IconName.UserCircle} />\n    <BadgeIcon iconName={IconName.Setting} />\n    <BadgeIcon iconName={IconName.Search} />\n  </div>\n);"
        }
      ],
      "import": "import { BadgeIcon } from '@metamask/design-system-react';\nimport { IconName } from '@metamask/design-system-shared';"
    },
    "react-components-badgenetwork": {
      "id": "react-components-badgenetwork",
      "name": "BadgeNetwork",
      "path": "../../packages/design-system-react/src/components/BadgeNetwork/BadgeNetwork.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "BadgeNetwork",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/BadgeNetwork/BadgeNetwork.tsx",
        "actualName": "BadgeNetwork",
        "exportName": "BadgeNetwork"
      },
      "stories": [
        {
          "id": "react-components-badgenetwork--default",
          "name": "Default",
          "snippet": "const Default = () => <BadgeNetwork src={SAMPLE_AVATARNETWORK_URIS[0]} name=\"Arbitrum\" fallbackText=\"ARB\" />;"
        },
        {
          "id": "react-components-badgenetwork--src",
          "name": "Src",
          "snippet": "const Src = () => (\n  <div className=\"flex gap-2\">\n    <BadgeNetwork\n      name=\"Arbitrum\"\n      fallbackText=\"A\"\n      src={SAMPLE_AVATARNETWORK_URIS[0]}\n    />\n    <BadgeNetwork\n      name=\"Avalanche\"\n      fallbackText=\"A\"\n      src={SAMPLE_AVATARNETWORK_URIS[1]}\n    />\n    <BadgeNetwork\n      name=\"BNB\"\n      fallbackText=\"B\"\n      src={SAMPLE_AVATARNETWORK_URIS[2]}\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-badgenetwork--name",
          "name": "Name",
          "snippet": "const Name = () => (\n  <div className=\"flex gap-2\">\n    <BadgeNetwork name=\"Arbitrum\" src={SAMPLE_AVATARNETWORK_URIS[0]} />\n    <BadgeNetwork name=\"Avalanche\" src={SAMPLE_AVATARNETWORK_URIS[1]} />\n    <BadgeNetwork name=\"Polygon\" />\n  </div>\n);"
        },
        {
          "id": "react-components-badgenetwork--fallback-text",
          "name": "Fallback Text",
          "snippet": "const FallbackText = () => (\n  <div className=\"flex gap-2\">\n    <BadgeNetwork name=\"Ethereum\" fallbackText=\"E\" />\n    <BadgeNetwork name=\"Avalanche\" fallbackText=\"A\" />\n    <BadgeNetwork name=\"Polygon\" fallbackText=\"P\" />\n  </div>\n);"
        }
      ],
      "import": "import { BadgeNetwork } from '@metamask/design-system-react';\nimport { SAMPLE_AVATARNETWORK_URIS } from '../AvatarNetwork/AvatarNetwork.dev';"
    },
    "react-components-badgestatus": {
      "id": "react-components-badgestatus",
      "name": "BadgeStatus",
      "path": "../../packages/design-system-react/src/components/BadgeStatus/BadgeStatus.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "BadgeStatus",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/BadgeStatus/BadgeStatus.tsx",
        "actualName": "BadgeStatus",
        "exportName": "BadgeStatus",
        "props": {
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the BadgeStatus component.\nThese classes will be merged with the component's default classes using twMerge."
          },
          "style": {
            "required": false,
            "tsType": {
              "name": "ReactCSSProperties",
              "raw": "React.CSSProperties"
            },
            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
          },
          "size": {
            "defaultValue": {
              "value": "'md'",
              "computed": false
            },
            "required": false
          },
          "hasBorder": {
            "defaultValue": {
              "value": "true",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-badgestatus--default",
          "name": "Default",
          "snippet": "const Default = () => <div className=\"flex items-center gap-2 bg-warning-muted p-1\">\n    <BadgeStatus status={BadgeStatusStatus.Active} />\n</div>;"
        },
        {
          "id": "react-components-badgestatus--status",
          "name": "Status",
          "snippet": "const Status = () => (\n  <div className=\"flex items-center gap-2 bg-warning-muted p-1\">\n    {Object.keys(BadgeStatusStatus).map((statusKey) => (\n      <BadgeStatus\n        key={statusKey}\n        status={\n          BadgeStatusStatus[statusKey as keyof typeof BadgeStatusStatus]\n        }\n      />\n    ))}\n  </div>\n);"
        },
        {
          "id": "react-components-badgestatus--size",
          "name": "Size",
          "snippet": "const Size = () => (\n  <div className=\"flex items-center gap-2 bg-warning-muted p-1\">\n    {Object.keys(BadgeStatusSize).map((sizeKey) => (\n      <BadgeStatus\n        key={sizeKey}\n        size={BadgeStatusSize[sizeKey as keyof typeof BadgeStatusSize]}\n        status={BadgeStatusStatus.Active}\n      />\n    ))}\n  </div>\n);"
        },
        {
          "id": "react-components-badgestatus--has-border",
          "name": "Has Border",
          "snippet": "const HasBorder = () => (\n  <div className=\"flex items-center gap-2 bg-warning-muted p-1\">\n    {Object.keys(BadgeStatusStatus).map((statusKey) => (\n      <div key={statusKey} className=\"flex items-center gap-1\">\n        <BadgeStatus\n          status={\n            BadgeStatusStatus[statusKey as keyof typeof BadgeStatusStatus]\n          }\n          hasBorder={false}\n        />\n        <BadgeStatus\n          status={\n            BadgeStatusStatus[statusKey as keyof typeof BadgeStatusStatus]\n          }\n        />\n      </div>\n    ))}\n  </div>\n);"
        }
      ],
      "import": "import { BadgeStatus } from '@metamask/design-system-react';\nimport { BadgeStatusStatus } from '@metamask/design-system-shared';"
    },
    "react-components-badgewrapper": {
      "id": "react-components-badgewrapper",
      "name": "BadgeWrapper",
      "path": "../../packages/design-system-react/src/components/BadgeWrapper/BadgeWrapper.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "BadgeWrapper",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/BadgeWrapper/BadgeWrapper.tsx",
        "actualName": "BadgeWrapper",
        "exportName": "BadgeWrapper",
        "props": {
          "childrenContainerProps": {
            "required": false,
            "tsType": {
              "name": "ComponentProps",
              "elements": [
                {
                  "name": "literal",
                  "value": "'div'"
                }
              ],
              "raw": "ComponentProps<'div'>"
            },
            "description": "Optional prop to pass additional props to the children container"
          },
          "badgeContainerProps": {
            "required": false,
            "tsType": {
              "name": "ComponentProps",
              "elements": [
                {
                  "name": "literal",
                  "value": "'div'"
                }
              ],
              "raw": "ComponentProps<'div'>"
            },
            "description": "Optional prop to pass additional props to the badge container"
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the BadgeWrapper component.\nThese classes will be merged with the component's default classes using twMerge.",
            "defaultValue": {
              "value": "''",
              "computed": false
            }
          },
          "style": {
            "required": false,
            "tsType": {
              "name": "ReactCSSProperties",
              "raw": "React.CSSProperties"
            },
            "description": "Optional prop to control the style."
          },
          "data-testid": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop to add a test id to the BadgeWrapper"
          },
          "position": {
            "defaultValue": {
              "value": "'bottom-right'",
              "computed": false
            },
            "required": false
          },
          "positionAnchorShape": {
            "defaultValue": {
              "value": "'circular'",
              "computed": false
            },
            "required": false
          },
          "positionXOffset": {
            "defaultValue": {
              "value": "0",
              "computed": false
            },
            "required": false
          },
          "positionYOffset": {
            "defaultValue": {
              "value": "0",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-badgewrapper--default",
          "name": "Default",
          "snippet": "const Default = () => <div className=\"p-4\">\n    <BadgeWrapper\n        position={BadgeWrapperPosition.BottomRight}\n        positionAnchorShape={BadgeWrapperPositionAnchorShape.Circular}\n        positionXOffset={0}\n        positionYOffset={0}\n        badge={<BadgeNetwork name=\"ETH\" src={SAMPLE_AVATARNETWORK_URIS[3]} />}>\n        <AvatarAccount\n            address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\"\n            size={AvatarAccountSize.Md} />\n    </BadgeWrapper>\n</div>;"
        },
        {
          "id": "react-components-badgewrapper--position",
          "name": "Position",
          "snippet": "const Position = () => (\n  <div className=\"flex flex-col gap-5 p-4\">\n    {Object.keys(BadgeWrapperPosition).map((positionKey) => (\n      <div key={positionKey} className=\"flex flex-row gap-3\">\n        {/* Position example with circular anchor shape */}\n        <BadgeWrapper\n          position={\n            BadgeWrapperPosition[\n              positionKey as keyof typeof BadgeWrapperPosition\n            ]\n          }\n          badge={\n            <BadgeNetwork name=\"ETH\" src={SAMPLE_AVATARNETWORK_URIS[3]} />\n          }\n        >\n          <AvatarAccount address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\" />\n        </BadgeWrapper>\n        {/* Position example with rectangular anchor shape */}\n        <BadgeWrapper\n          position={\n            BadgeWrapperPosition[\n              positionKey as keyof typeof BadgeWrapperPosition\n            ]\n          }\n          positionAnchorShape={BadgeWrapperPositionAnchorShape.Rectangular}\n          badge={\n            <BadgeNetwork name=\"ETH\" src={SAMPLE_AVATARNETWORK_URIS[3]} />\n          }\n        >\n          <AvatarNetwork name=\"ETH\" src={SAMPLE_AVATARNETWORK_URIS[3]} />\n        </BadgeWrapper>\n      </div>\n    ))}\n  </div>\n);"
        },
        {
          "id": "react-components-badgewrapper--position-anchor-shape",
          "name": "Position Anchor Shape",
          "snippet": "const PositionAnchorShape = () => (\n  <div className=\"flex flex-col gap-5 p-4\">\n    <div className=\"flex flex-row gap-3\">\n      {/* PositionAnchorShape example with circular anchor shape */}\n      <BadgeWrapper\n        badge={<BadgeNetwork name=\"ETH\" src={SAMPLE_AVATARNETWORK_URIS[3]} />}\n      >\n        <AvatarAccount address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\" />\n      </BadgeWrapper>\n      {/* PositionAnchorShape example with rectangular anchor shape */}\n      <BadgeWrapper\n        badge={<BadgeNetwork name=\"ETH\" src={SAMPLE_AVATARNETWORK_URIS[3]} />}\n        positionAnchorShape={BadgeWrapperPositionAnchorShape.Rectangular}\n      >\n        <AvatarNetwork name=\"ETH\" src={SAMPLE_AVATARNETWORK_URIS[3]} />\n      </BadgeWrapper>\n    </div>\n  </div>\n);"
        },
        {
          "id": "react-components-badgewrapper--position-x-offset",
          "name": "Position X Offset",
          "snippet": "const PositionXOffset = () => (\n  <div className=\"flex flex-col gap-5 p-4\">\n    {/* No offset */}\n    <BadgeWrapper\n      badge={<BadgeNetwork name=\"ETH\" src={SAMPLE_AVATARNETWORK_URIS[3]} />}\n    >\n      <AvatarAccount address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\" />\n    </BadgeWrapper>\n    {/* With Offset */}\n    <BadgeWrapper\n      badge={<BadgeNetwork name=\"ETH\" src={SAMPLE_AVATARNETWORK_URIS[3]} />}\n      positionXOffset={5}\n    >\n      <AvatarAccount address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\" />\n    </BadgeWrapper>\n  </div>\n);"
        },
        {
          "id": "react-components-badgewrapper--position-y-offset",
          "name": "Position Y Offset",
          "snippet": "const PositionYOffset = () => (\n  <div className=\"flex flex-col gap-5 p-4\">\n    {/* No offset */}\n    <BadgeWrapper\n      badge={<BadgeNetwork name=\"ETH\" src={SAMPLE_AVATARNETWORK_URIS[3]} />}\n    >\n      <AvatarAccount address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\" />\n    </BadgeWrapper>\n    {/* With offset */}\n    <BadgeWrapper\n      badge={<BadgeNetwork name=\"ETH\" src={SAMPLE_AVATARNETWORK_URIS[3]} />}\n      positionYOffset={5}\n    >\n      <AvatarAccount address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\" />\n    </BadgeWrapper>\n  </div>\n);"
        },
        {
          "id": "react-components-badgewrapper--custom-position",
          "name": "Custom Position",
          "snippet": "const CustomPosition = () => (\n  <div className=\"flex flex-col gap-5 p-4\">\n    {/* No CustomPosition */}\n    <BadgeWrapper\n      badge={<BadgeNetwork name=\"ETH\" src={SAMPLE_AVATARNETWORK_URIS[3]} />}\n    >\n      <AvatarAccount address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\" />\n    </BadgeWrapper>\n    {/* With CustomPosition */}\n    <BadgeWrapper\n      badge={<BadgeNetwork name=\"ETH\" src={SAMPLE_AVATARNETWORK_URIS[3]} />}\n      customPosition={{\n        top: 5,\n        right: 10,\n      }}\n    >\n      <AvatarAccount address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\" />\n    </BadgeWrapper>\n  </div>\n);"
        },
        {
          "id": "react-components-badgewrapper--badge",
          "name": "Badge",
          "snippet": "const Badge = () => (\n  <div className=\"flex flex-col gap-5 p-4\">\n    {/* Token examples. */}\n    <div className=\"flex flex-row gap-4\">\n      {Object.values(AvatarTokenSize).map((size) => (\n        <BadgeWrapper\n          key={`token-${size}`}\n          position={BadgeWrapperPosition.BottomRight}\n          positionAnchorShape={BadgeWrapperPositionAnchorShape.Circular}\n          badge={\n            <BadgeNetwork name=\"ETH\" src={SAMPLE_AVATARNETWORK_URIS[3]} />\n          }\n        >\n          <AvatarToken size={size} src={SAMPLE_AVATARTOKEN_URIS[1]} />\n        </BadgeWrapper>\n      ))}\n    </div>\n    {/* Account examples. */}\n    <div className=\"flex flex-row gap-4\">\n      {Object.values(AvatarAccountSize).map((size) => (\n        <BadgeWrapper\n          key={`account-${size}`}\n          position={BadgeWrapperPosition.BottomRight}\n          positionAnchorShape={BadgeWrapperPositionAnchorShape.Rectangular}\n          badge={\n            <BadgeNetwork name=\"ETH\" src={SAMPLE_AVATARNETWORK_URIS[3]} />\n          }\n        >\n          <AvatarAccount\n            size={size}\n            address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\"\n          />\n        </BadgeWrapper>\n      ))}\n    </div>\n    {/* Notification badge examples. */}\n    <div className=\"flex flex-row gap-4\">\n      {Object.values(ButtonIconSize).map((size) => (\n        <BadgeWrapper\n          key={`notification-${size}`}\n          position={BadgeWrapperPosition.TopRight}\n          positionAnchorShape={BadgeWrapperPositionAnchorShape.Circular}\n          badge={<BadgeCount count={8} />}\n        >\n          <ButtonIcon\n            iconName={IconName.Menu}\n            size={size}\n            ariaLabel={`Open menu (${size})`}\n          />\n        </BadgeWrapper>\n      ))}\n    </div>\n    {/* Status indicator examples. */}\n    <div className=\"flex flex-row gap-4\">\n      {Object.values(ButtonIconSize).map((size) => (\n        <BadgeWrapper\n          key={`status-${size}`}\n          position={BadgeWrapperPosition.TopRight}\n          positionAnchorShape={BadgeWrapperPositionAnchorShape.Circular}\n          badge={<BadgeStatus status={BadgeStatusStatus.Attention} />}\n        >\n          <ButtonIcon\n            iconName={IconName.Menu}\n            size={size}\n            ariaLabel={`Open menu (${size})`}\n          />\n        </BadgeWrapper>\n      ))}\n    </div>\n  </div>\n);"
        }
      ],
      "import": "import {\n  AvatarAccount,\n  AvatarNetwork,\n  AvatarToken,\n  BadgeCount,\n  BadgeNetwork,\n  BadgeStatus,\n  BadgeWrapper,\n  ButtonIcon,\n} from '@metamask/design-system-react';\nimport { BadgeWrapperPosition, BadgeWrapperPositionAnchorShape } from '@metamask/design-system-shared';"
    },
    "react-components-banneralert": {
      "id": "react-components-banneralert",
      "name": "BannerAlert",
      "path": "../../packages/design-system-react/src/components/BannerAlert/BannerAlert.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "BannerAlert",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/BannerAlert/BannerAlert.tsx",
        "actualName": "BannerAlert",
        "exportName": "BannerAlert",
        "props": {
          "titleProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Optional props for the title `Text` when the title is a string."
          },
          "descriptionProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Optional props for the description `Text` when description is a string."
          },
          "childrenWrapperProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Optional props for the children wrapper `Text` when children is a string."
          },
          "onClose": {
            "required": false,
            "tsType": {
              "name": "MouseEventHandler",
              "elements": [
                {
                  "name": "HTMLButtonElement"
                }
              ],
              "raw": "MouseEventHandler<HTMLButtonElement>"
            },
            "description": "Optional click handler for the close button.\nIf provided, a close button is shown."
          },
          "closeButtonProps": {
            "required": false,
            "tsType": {
              "name": "intersection",
              "raw": "Omit<\n  Partial<ButtonIconProps>,\n  'iconName' | 'onClick'\n> & {\n  /**\n   * Optional test id for the close button element.\n   */\n  'data-testid'?: string;\n}",
              "elements": [
                {
                  "name": "Omit",
                  "elements": [
                    {
                      "name": "Partial",
                      "elements": [
                        {
                          "name": "intersection",
                          "raw": "ComponentProps<'button'> &\nButtonIconPropsShared & {\n  /**\n   * Optional prop to pass additional properties to the icon\n   */\n  iconProps?: Partial<IconProps>;\n  /**\n   * Required prop to provide an accessible label for the button\n   */\n  ariaLabel: string;\n  /**\n   * Optional prop for additional CSS classes to be applied to the ButtonIcon component\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n}",
                          "elements": [
                            {
                              "name": "ComponentProps",
                              "elements": [
                                {
                                  "name": "literal",
                                  "value": "'button'"
                                }
                              ],
                              "raw": "ComponentProps<'button'>"
                            },
                            {
                              "name": "ButtonIconPropsShared"
                            },
                            {
                              "name": "signature",
                              "type": "object",
                              "raw": "{\n  /**\n   * Optional prop to pass additional properties to the icon\n   */\n  iconProps?: Partial<IconProps>;\n  /**\n   * Required prop to provide an accessible label for the button\n   */\n  ariaLabel: string;\n  /**\n   * Optional prop for additional CSS classes to be applied to the ButtonIcon component\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n}",
                              "signature": {
                                "properties": [
                                  {
                                    "key": "iconProps",
                                    "value": {
                                      "name": "Partial",
                                      "elements": [
                                        {
                                          "name": "intersection",
                                          "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                                          "elements": [
                                            {
                                              "name": "SVGProps",
                                              "elements": [
                                                {
                                                  "name": "ComponentPropsWithoutRef",
                                                  "elements": [
                                                    {
                                                      "name": "literal",
                                                      "value": "'svg'"
                                                    }
                                                  ],
                                                  "raw": "ComponentPropsWithoutRef<'svg'>"
                                                }
                                              ],
                                              "raw": "SVGProps<SVGElementProps>"
                                            },
                                            {
                                              "name": "IconPropsShared"
                                            },
                                            {
                                              "name": "signature",
                                              "type": "object",
                                              "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                                              "signature": {
                                                "properties": [
                                                  {
                                                    "key": "className",
                                                    "value": {
                                                      "name": "string",
                                                      "required": false
                                                    },
                                                    "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                                                  },
                                                  {
                                                    "key": "style",
                                                    "value": {
                                                      "name": "ReactCSSProperties",
                                                      "raw": "React.CSSProperties",
                                                      "required": false
                                                    },
                                                    "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                                                  },
                                                  {
                                                    "key": "data-testid",
                                                    "value": {
                                                      "name": "string",
                                                      "required": false
                                                    },
                                                    "description": "Optional prop to add a test id to the icon"
                                                  }
                                                ]
                                              }
                                            }
                                          ]
                                        }
                                      ],
                                      "raw": "Partial<IconProps>",
                                      "required": false
                                    },
                                    "description": "Optional prop to pass additional properties to the icon"
                                  },
                                  {
                                    "key": "ariaLabel",
                                    "value": {
                                      "name": "string",
                                      "required": true
                                    },
                                    "description": "Required prop to provide an accessible label for the button"
                                  },
                                  {
                                    "key": "className",
                                    "value": {
                                      "name": "string",
                                      "required": false
                                    },
                                    "description": "Optional prop for additional CSS classes to be applied to the ButtonIcon component"
                                  },
                                  {
                                    "key": "style",
                                    "value": {
                                      "name": "ReactCSSProperties",
                                      "raw": "React.CSSProperties",
                                      "required": false
                                    },
                                    "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      ],
                      "raw": "Partial<ButtonIconProps>"
                    },
                    {
                      "name": "union",
                      "raw": "'iconName' | 'onClick'",
                      "elements": [
                        {
                          "name": "literal",
                          "value": "'iconName'"
                        },
                        {
                          "name": "literal",
                          "value": "'onClick'"
                        }
                      ]
                    }
                  ],
                  "raw": "Omit<\n  Partial<ButtonIconProps>,\n  'iconName' | 'onClick'\n>"
                },
                {
                  "name": "signature",
                  "type": "object",
                  "raw": "{\n  /**\n   * Optional test id for the close button element.\n   */\n  'data-testid'?: string;\n}",
                  "signature": {
                    "properties": [
                      {
                        "key": "data-testid",
                        "value": {
                          "name": "string",
                          "required": false
                        },
                        "description": "Optional test id for the close button element."
                      }
                    ]
                  }
                }
              ]
            },
            "description": "Optional props for the close `ButtonIcon`.\nOnly used when `onClose` is provided."
          },
          "iconProps": {
            "required": false,
            "tsType": {
              "name": "Omit",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                },
                {
                  "name": "union",
                  "raw": "'name' | 'size' | 'color'",
                  "elements": [
                    {
                      "name": "literal",
                      "value": "'name'"
                    },
                    {
                      "name": "literal",
                      "value": "'size'"
                    },
                    {
                      "name": "literal",
                      "value": "'color'"
                    }
                  ]
                }
              ],
              "raw": "Omit<IconProps, 'name' | 'size' | 'color'>"
            },
            "description": ""
          },
          "severity": {
            "defaultValue": {
              "value": "'info'",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-banneralert--default",
          "name": "Default",
          "snippet": "const Default = () => <BannerAlert\n    severity={BannerAlertSeverity.Info}\n    title=\"Title is sentence case no period\"\n    description=\"Description shouldn't repeat title. 1-3 lines.\"\n    actionButtonLabel=\"Action\" />;"
        },
        {
          "id": "react-components-banneralert--severity",
          "name": "Severity",
          "snippet": "const Severity = () => <div className=\"space-y-2\">\n    <BannerAlert\n        actionButtonLabel={undefined}\n        actionButtonOnClick={undefined}\n        onClose={undefined}\n        severity={BannerAlertSeverity.Neutral}\n        title=\"Neutral\">This is a neutral banner.\n              </BannerAlert>\n    <BannerAlert\n        actionButtonLabel={undefined}\n        actionButtonOnClick={undefined}\n        onClose={undefined}\n        severity={BannerAlertSeverity.Info}\n        title=\"Info\">This is an info banner.\n              </BannerAlert>\n    <BannerAlert\n        actionButtonLabel={undefined}\n        actionButtonOnClick={undefined}\n        onClose={undefined}\n        severity={BannerAlertSeverity.Success}\n        title=\"Success\">This is a success banner.\n              </BannerAlert>\n    <BannerAlert\n        actionButtonLabel={undefined}\n        actionButtonOnClick={undefined}\n        onClose={undefined}\n        severity={BannerAlertSeverity.Warning}\n        title=\"Warning\">This is a warning banner.\n              </BannerAlert>\n    <BannerAlert\n        actionButtonLabel={undefined}\n        actionButtonOnClick={undefined}\n        onClose={undefined}\n        severity={BannerAlertSeverity.Danger}\n        title=\"Danger\">This is a danger banner.\n              </BannerAlert>\n</div>;"
        },
        {
          "id": "react-components-banneralert--title",
          "name": "Title",
          "snippet": "const Title = () => <BannerAlert\n    title=\"Pass only a string through the title prop\"\n    actionButtonLabel={undefined}\n    actionButtonOnClick={undefined} />;"
        },
        {
          "id": "react-components-banneralert--description",
          "name": "Description",
          "snippet": "const Description = () => <BannerAlert\n    title=\"Description prop demo\"\n    description=\"Pass only a string through the description prop or use children for richer content.\"\n    actionButtonLabel={undefined}\n    actionButtonOnClick={undefined} />;"
        },
        {
          "id": "react-components-banneralert--children",
          "name": "Children",
          "snippet": "const Children = () => <BannerAlert\n    title=\"Children as rich content\"\n    actionButtonLabel={undefined}\n    actionButtonOnClick={undefined}>\n    <Text>Children can include richer content and can be any React node.\n              </Text>\n</BannerAlert>;"
        },
        {
          "id": "react-components-banneralert--action-button-on-click",
          "name": "Action Button On Click",
          "snippet": "const ActionButtonOnClick = () => <BannerAlert\n    title=\"Action prop demo\"\n    actionButtonLabel=\"Learn more\"\n    actionButtonProps={{\n      endIconName: IconName.Arrow2Right,\n    }}>Use actionButtonLabel for the text and actionButtonOnClick for interaction.</BannerAlert>;"
        },
        {
          "id": "react-components-banneralert--action-button-layout",
          "name": "Action Button Layout",
          "snippet": "const ActionButtonLayout = () => <div className=\"space-y-2\">\n    <BannerAlert\n        actionButtonLabel=\"Action\"\n        actionButtonOnClick={() => undefined}\n        onClose={() => undefined}\n        title=\"End\"\n        description=\"One-line description for short copy.\"\n        actionButtonLayout={BannerBaseActionButtonLayout.End} />\n    <BannerAlert\n        actionButtonLabel=\"Action\"\n        actionButtonOnClick={() => undefined}\n        onClose={() => undefined}\n        title=\"Below\"\n        description=\"Use Below when the body is longer or wraps across multiple lines so the action stays under the content.\"\n        actionButtonLayout={BannerBaseActionButtonLayout.Below} />\n</div>;"
        },
        {
          "id": "react-components-banneralert--on-close",
          "name": "On Close",
          "snippet": "const OnClose = () => <BannerAlert\n    title=\"onClose demo\"\n    actionButtonLabel={undefined}\n    actionButtonOnClick={undefined}>Use the close icon to trigger onClose.</BannerAlert>;"
        }
      ],
      "import": "import { BannerAlert, Text } from '@metamask/design-system-react';\nimport { BannerAlertSeverity } from '.';\nimport { IconName } from '../Icon';"
    },
    "react-components-bannerbase": {
      "id": "react-components-bannerbase",
      "name": "BannerBase",
      "path": "../../packages/design-system-react/src/components/BannerBase/BannerBase.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "BannerBase",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/BannerBase/BannerBase.tsx",
        "actualName": "BannerBase",
        "exportName": "BannerBase",
        "props": {
          "titleProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Optional props for the title `Text` when the title is a string."
          },
          "descriptionProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Optional props for the description `Text` when description is a string."
          },
          "childrenWrapperProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Optional props for the children wrapper `Text` when children is a string."
          },
          "onClose": {
            "required": false,
            "tsType": {
              "name": "MouseEventHandler",
              "elements": [
                {
                  "name": "HTMLButtonElement"
                }
              ],
              "raw": "MouseEventHandler<HTMLButtonElement>"
            },
            "description": "Optional click handler for the close button.\nIf provided, a close button is shown."
          },
          "closeButtonProps": {
            "required": false,
            "tsType": {
              "name": "intersection",
              "raw": "Omit<\n  Partial<ButtonIconProps>,\n  'iconName' | 'onClick'\n> & {\n  /**\n   * Optional test id for the close button element.\n   */\n  'data-testid'?: string;\n}",
              "elements": [
                {
                  "name": "Omit",
                  "elements": [
                    {
                      "name": "Partial",
                      "elements": [
                        {
                          "name": "intersection",
                          "raw": "ComponentProps<'button'> &\nButtonIconPropsShared & {\n  /**\n   * Optional prop to pass additional properties to the icon\n   */\n  iconProps?: Partial<IconProps>;\n  /**\n   * Required prop to provide an accessible label for the button\n   */\n  ariaLabel: string;\n  /**\n   * Optional prop for additional CSS classes to be applied to the ButtonIcon component\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n}",
                          "elements": [
                            {
                              "name": "ComponentProps",
                              "elements": [
                                {
                                  "name": "literal",
                                  "value": "'button'"
                                }
                              ],
                              "raw": "ComponentProps<'button'>"
                            },
                            {
                              "name": "ButtonIconPropsShared"
                            },
                            {
                              "name": "signature",
                              "type": "object",
                              "raw": "{\n  /**\n   * Optional prop to pass additional properties to the icon\n   */\n  iconProps?: Partial<IconProps>;\n  /**\n   * Required prop to provide an accessible label for the button\n   */\n  ariaLabel: string;\n  /**\n   * Optional prop for additional CSS classes to be applied to the ButtonIcon component\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n}",
                              "signature": {
                                "properties": [
                                  {
                                    "key": "iconProps",
                                    "value": {
                                      "name": "Partial",
                                      "elements": [
                                        {
                                          "name": "intersection",
                                          "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                                          "elements": [
                                            {
                                              "name": "SVGProps",
                                              "elements": [
                                                {
                                                  "name": "ComponentPropsWithoutRef",
                                                  "elements": [
                                                    {
                                                      "name": "literal",
                                                      "value": "'svg'"
                                                    }
                                                  ],
                                                  "raw": "ComponentPropsWithoutRef<'svg'>"
                                                }
                                              ],
                                              "raw": "SVGProps<SVGElementProps>"
                                            },
                                            {
                                              "name": "IconPropsShared"
                                            },
                                            {
                                              "name": "signature",
                                              "type": "object",
                                              "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                                              "signature": {
                                                "properties": [
                                                  {
                                                    "key": "className",
                                                    "value": {
                                                      "name": "string",
                                                      "required": false
                                                    },
                                                    "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                                                  },
                                                  {
                                                    "key": "style",
                                                    "value": {
                                                      "name": "ReactCSSProperties",
                                                      "raw": "React.CSSProperties",
                                                      "required": false
                                                    },
                                                    "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                                                  },
                                                  {
                                                    "key": "data-testid",
                                                    "value": {
                                                      "name": "string",
                                                      "required": false
                                                    },
                                                    "description": "Optional prop to add a test id to the icon"
                                                  }
                                                ]
                                              }
                                            }
                                          ]
                                        }
                                      ],
                                      "raw": "Partial<IconProps>",
                                      "required": false
                                    },
                                    "description": "Optional prop to pass additional properties to the icon"
                                  },
                                  {
                                    "key": "ariaLabel",
                                    "value": {
                                      "name": "string",
                                      "required": true
                                    },
                                    "description": "Required prop to provide an accessible label for the button"
                                  },
                                  {
                                    "key": "className",
                                    "value": {
                                      "name": "string",
                                      "required": false
                                    },
                                    "description": "Optional prop for additional CSS classes to be applied to the ButtonIcon component"
                                  },
                                  {
                                    "key": "style",
                                    "value": {
                                      "name": "ReactCSSProperties",
                                      "raw": "React.CSSProperties",
                                      "required": false
                                    },
                                    "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      ],
                      "raw": "Partial<ButtonIconProps>"
                    },
                    {
                      "name": "union",
                      "raw": "'iconName' | 'onClick'",
                      "elements": [
                        {
                          "name": "literal",
                          "value": "'iconName'"
                        },
                        {
                          "name": "literal",
                          "value": "'onClick'"
                        }
                      ]
                    }
                  ],
                  "raw": "Omit<\n  Partial<ButtonIconProps>,\n  'iconName' | 'onClick'\n>"
                },
                {
                  "name": "signature",
                  "type": "object",
                  "raw": "{\n  /**\n   * Optional test id for the close button element.\n   */\n  'data-testid'?: string;\n}",
                  "signature": {
                    "properties": [
                      {
                        "key": "data-testid",
                        "value": {
                          "name": "string",
                          "required": false
                        },
                        "description": "Optional test id for the close button element."
                      }
                    ]
                  }
                }
              ]
            },
            "description": "Optional props for the close `ButtonIcon`.\nOnly used when `onClose` is provided."
          },
          "actionButtonLayout": {
            "defaultValue": {
              "value": "'below'",
              "computed": false
            },
            "required": false
          },
          "backgroundColor": {
            "defaultValue": {
              "value": "'bg-default'",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-bannerbase--default",
          "name": "Default",
          "snippet": "const Default = () => <BannerBase\n    title=\"Title is sentence case no period\"\n    description=\"Description shouldn't repeat title. 1-3 lines.\"\n    actionButtonLabel=\"Action\"\n    actionButtonOnClick={() => undefined}\n    onClose={() => undefined}\n    closeButtonProps={{\n      'data-testid': 'banner-base-close-button',\n    }}\n    startAccessory={<Icon name={IconName.Info} size={IconSize.Lg} />} />;"
        },
        {
          "id": "react-components-bannerbase--title",
          "name": "Title",
          "snippet": "const Title = () => <BannerBase\n    title=\"Pass only a string through the title prop\"\n    actionButtonLabel={undefined}\n    actionButtonOnClick={undefined} />;"
        },
        {
          "id": "react-components-bannerbase--description",
          "name": "Description",
          "snippet": "const Description = () => <BannerBase\n    description=\"Pass only a string through the description prop.\"\n    actionButtonLabel={undefined}\n    actionButtonOnClick={undefined} />;"
        },
        {
          "id": "react-components-bannerbase--children",
          "name": "Children",
          "snippet": "const Children = () => <BannerBase\n    title=\"Children as rich content\"\n    actionButtonLabel={undefined}\n    actionButtonOnClick={undefined}>\n    <Text>Children can include richer content and can be any React node.\n              </Text>\n</BannerBase>;"
        },
        {
          "id": "react-components-bannerbase--action-button-on-click",
          "name": "Action Button On Click",
          "snippet": "const ActionButtonOnClick = () => <BannerBase\n    title=\"Action prop demo\"\n    actionButtonLabel=\"Learn more\"\n    actionButtonOnClick={() => undefined}\n    actionButtonProps={{\n      endIconName: IconName.Arrow2Right,\n    }}>Use actionButtonLabel for the text and the action handler prop for interaction.</BannerBase>;"
        },
        {
          "id": "react-components-bannerbase--action-button-layout",
          "name": "Action Button Layout",
          "snippet": "const ActionButtonLayout = () => <div className=\"space-y-2\">\n    <BannerBase\n        actionButtonLabel=\"Action\"\n        actionButtonOnClick={() => undefined}\n        onClose={() => undefined}\n        closeButtonProps={{\n          'data-testid': 'banner-base-close-button',\n        }}\n        title=\"End\"\n        description=\"One-line description for short copy.\"\n        actionButtonLayout={BannerBaseActionButtonLayout.End}\n        startAccessory={<Icon name={IconName.Info} size={IconSize.Lg} />} />\n    <BannerBase\n        actionButtonLabel=\"Action\"\n        actionButtonOnClick={() => undefined}\n        onClose={() => undefined}\n        closeButtonProps={{\n          'data-testid': 'banner-base-close-button',\n        }}\n        title=\"Below\"\n        description=\"Use Below when the body is longer or wraps across multiple lines so the action stays under the content.\"\n        actionButtonLayout={BannerBaseActionButtonLayout.Below}\n        startAccessory={<Icon name={IconName.Info} size={IconSize.Lg} />} />\n</div>;"
        },
        {
          "id": "react-components-bannerbase--on-close",
          "name": "On Close",
          "snippet": "const OnClose = () => <BannerBase\n    title=\"onClose demo\"\n    onClose={() => undefined}\n    closeButtonProps={{\n      'data-testid': 'banner-base-close-button',\n    }}\n    actionButtonLabel={undefined}\n    actionButtonOnClick={undefined}>Use the close icon to trigger onClose.</BannerBase>;"
        },
        {
          "id": "react-components-bannerbase--start-accessory",
          "name": "Start Accessory",
          "snippet": "const StartAccessory = () => <BannerBase\n    title=\"Start accessory demo\"\n    actionButtonLabel={undefined}\n    actionButtonOnClick={undefined}\n    startAccessory={<Icon name={IconName.Info} size={IconSize.Lg} />}>Pass any React node through startAccessory.</BannerBase>;"
        }
      ],
      "import": "import { BannerBase, Icon, Text } from '@metamask/design-system-react';\nimport { IconName } from '../Icon';"
    },
    "react-components-box": {
      "id": "react-components-box",
      "name": "Box",
      "path": "../../packages/design-system-react/src/components/Box/Box.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "Box",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/Box/Box.tsx",
        "actualName": "Box",
        "exportName": "Box",
        "props": {
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the Box component.",
            "defaultValue": {
              "value": "''",
              "computed": false
            }
          },
          "asChild": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a div element\n\n@default false"
          }
        }
      },
      "stories": [
        {
          "id": "react-components-box--default",
          "name": "Default",
          "snippet": "const Default = () => <Box flexDirection={BoxFlexDirection.Row} gap={2} padding={4}>\n    <Text>Item 1</Text>\n    <Text>Item 2</Text>\n    <Text>Item 3</Text>\n</Box>;"
        },
        {
          "id": "react-components-box--flex-direction",
          "name": "Flex Direction",
          "snippet": "const FlexDirection = () => <Box flexDirection={BoxFlexDirection.Column} gap={4}>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        gap={2}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundMuted}\n        borderColor={BoxBorderColor.BorderMuted}\n        borderWidth={1}>\n        <Text>Row</Text>\n        <Text>Layout</Text>\n        <Text>Items</Text>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.RowReverse}\n        gap={2}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundMuted}\n        borderColor={BoxBorderColor.BorderMuted}\n        borderWidth={1}>\n        <Text>Row</Text>\n        <Text>Reverse</Text>\n        <Text>Items</Text>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Column}\n        gap={2}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundMuted}\n        borderColor={BoxBorderColor.BorderMuted}\n        borderWidth={1}>\n        <Text>Column</Text>\n        <Text>Layout</Text>\n        <Text>Items</Text>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.ColumnReverse}\n        gap={2}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundMuted}\n        borderColor={BoxBorderColor.BorderMuted}\n        borderWidth={1}>\n        <Text>Column</Text>\n        <Text>Reverse</Text>\n        <Text>Items</Text>\n    </Box>\n</Box>;"
        },
        {
          "id": "react-components-box--align-items",
          "name": "Align Items",
          "snippet": "const AlignItems = () => <Box flexDirection={BoxFlexDirection.Column} gap={4}>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        alignItems={BoxAlignItems.Start}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderDefault}\n        borderWidth={1}\n        className=\"h-16\">\n        <Text>Start</Text>\n        <Text>Aligned</Text>\n        <Text>Items</Text>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        alignItems={BoxAlignItems.Center}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderDefault}\n        borderWidth={1}\n        className=\"h-16\">\n        <Text>Center</Text>\n        <Text>Aligned</Text>\n        <Text>Items</Text>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        alignItems={BoxAlignItems.End}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderDefault}\n        borderWidth={1}\n        className=\"h-16\">\n        <Text>End</Text>\n        <Text>Aligned</Text>\n        <Text>Items</Text>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        alignItems={BoxAlignItems.Stretch}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderDefault}\n        borderWidth={1}\n        className=\"h-16\">\n        <Text>Stretch</Text>\n        <Text>Aligned</Text>\n        <Text>Items</Text>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        alignItems={BoxAlignItems.Baseline}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderDefault}\n        borderWidth={1}\n        className=\"h-16\">\n        <Text>Baseline</Text>\n        <Text>Aligned</Text>\n        <Text>Items</Text>\n    </Box>\n</Box>;"
        },
        {
          "id": "react-components-box--justify-content",
          "name": "Justify Content",
          "snippet": "const JustifyContent = () => <Box flexDirection={BoxFlexDirection.Column} gap={4}>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        justifyContent={BoxJustifyContent.Start}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderDefault}\n        borderWidth={1}\n        className=\"w-80\">\n        <Text>Start</Text>\n        <Text>Items</Text>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        justifyContent={BoxJustifyContent.Center}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderDefault}\n        borderWidth={1}\n        className=\"w-80\">\n        <Text>Center</Text>\n        <Text>Items</Text>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        justifyContent={BoxJustifyContent.End}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderDefault}\n        borderWidth={1}\n        className=\"w-80\">\n        <Text>End</Text>\n        <Text>Items</Text>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        justifyContent={BoxJustifyContent.Between}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderDefault}\n        borderWidth={1}\n        className=\"w-80\">\n        <Text>Between</Text>\n        <Text>Items</Text>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        justifyContent={BoxJustifyContent.Around}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderDefault}\n        borderWidth={1}\n        className=\"w-80\">\n        <Text>Around</Text>\n        <Text>Items</Text>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        justifyContent={BoxJustifyContent.Evenly}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderDefault}\n        borderWidth={1}\n        className=\"w-80\">\n        <Text>Evenly</Text>\n        <Text>Items</Text>\n    </Box>\n</Box>;"
        },
        {
          "id": "react-components-box--flex-wrap",
          "name": "Flex Wrap",
          "snippet": "const FlexWrap = () => <Box flexDirection={BoxFlexDirection.Column} gap={4}>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        flexWrap={BoxFlexWrap.NoWrap}\n        gap={2}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderDefault}\n        borderWidth={1}\n        className=\"w-80\">\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>NoWrap</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Items</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Stay</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>In</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Line</Text>\n        </Box>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        flexWrap={BoxFlexWrap.Wrap}\n        gap={2}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderDefault}\n        borderWidth={1}\n        className=\"w-80\">\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Wrap</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Items</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>To</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>New</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Line</Text>\n        </Box>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        flexWrap={BoxFlexWrap.WrapReverse}\n        gap={2}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderDefault}\n        borderWidth={1}\n        className=\"w-80\">\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>WrapReverse</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Items</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Reverse</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Order</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Wrap</Text>\n        </Box>\n    </Box>\n</Box>;"
        },
        {
          "id": "react-components-box--gap",
          "name": "Gap",
          "snippet": "const Gap = () => <Box flexDirection={BoxFlexDirection.Column} gap={4}>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        gap={0}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderMuted}\n        borderWidth={1}>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap 0</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>No</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap</Text>\n        </Box>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        gap={1}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderMuted}\n        borderWidth={1}>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap 1</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Small</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap</Text>\n        </Box>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        gap={2}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderMuted}\n        borderWidth={1}>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap 2</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Small</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap</Text>\n        </Box>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        gap={3}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderMuted}\n        borderWidth={1}>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap 3</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Medium</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap</Text>\n        </Box>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        gap={4}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderMuted}\n        borderWidth={1}>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap 4</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Medium</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap</Text>\n        </Box>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        gap={5}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderMuted}\n        borderWidth={1}>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap 5</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Large</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap</Text>\n        </Box>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        gap={6}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderMuted}\n        borderWidth={1}>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap 6</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Large</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap</Text>\n        </Box>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        gap={7}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderMuted}\n        borderWidth={1}>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap 7</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>XL</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap</Text>\n        </Box>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        gap={8}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderMuted}\n        borderWidth={1}>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap 8</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>XL</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap</Text>\n        </Box>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        gap={9}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderMuted}\n        borderWidth={1}>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap 9</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>XXL</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap</Text>\n        </Box>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        gap={10}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderMuted}\n        borderWidth={1}>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap 10</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>XXL</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap</Text>\n        </Box>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        gap={11}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderMuted}\n        borderWidth={1}>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap 11</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>XXXL</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap</Text>\n        </Box>\n    </Box>\n    <Box\n        flexDirection={BoxFlexDirection.Row}\n        gap={12}\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderMuted}\n        borderWidth={1}>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap 12</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>XXXL</Text>\n        </Box>\n        <Box\n            backgroundColor={BoxBackgroundColor.PrimaryMuted}\n            paddingHorizontal={2}\n            paddingVertical={1}\n            className=\"rounded\">\n            <Text>Gap</Text>\n        </Box>\n    </Box>\n</Box>;"
        },
        {
          "id": "react-components-box--padding",
          "name": "Padding",
          "snippet": "const Padding = () => <Box flexDirection={BoxFlexDirection.Column} gap={4}>\n    <Box\n        padding={0}\n        backgroundColor={BoxBackgroundColor.PrimaryMuted}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={1}>\n        <Text>Padding 0</Text>\n    </Box>\n    <Box\n        padding={1}\n        backgroundColor={BoxBackgroundColor.PrimaryMuted}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={1}>\n        <Text>Padding 1</Text>\n    </Box>\n    <Box\n        padding={2}\n        backgroundColor={BoxBackgroundColor.PrimaryMuted}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={1}>\n        <Text>Padding 2</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.PrimaryMuted}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={1}>\n        <Text>Padding 3</Text>\n    </Box>\n    <Box\n        padding={4}\n        backgroundColor={BoxBackgroundColor.PrimaryMuted}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={1}>\n        <Text>Padding 4</Text>\n    </Box>\n    <Box\n        padding={5}\n        backgroundColor={BoxBackgroundColor.PrimaryMuted}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={1}>\n        <Text>Padding 5</Text>\n    </Box>\n    <Box\n        padding={6}\n        backgroundColor={BoxBackgroundColor.PrimaryMuted}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={1}>\n        <Text>Padding 6</Text>\n    </Box>\n    <Box\n        padding={7}\n        backgroundColor={BoxBackgroundColor.PrimaryMuted}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={1}>\n        <Text>Padding 7</Text>\n    </Box>\n    <Box\n        padding={8}\n        backgroundColor={BoxBackgroundColor.PrimaryMuted}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={1}>\n        <Text>Padding 8</Text>\n    </Box>\n    <Box\n        padding={9}\n        backgroundColor={BoxBackgroundColor.PrimaryMuted}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={1}>\n        <Text>Padding 9</Text>\n    </Box>\n    <Box\n        padding={10}\n        backgroundColor={BoxBackgroundColor.PrimaryMuted}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={1}>\n        <Text>Padding 10</Text>\n    </Box>\n    <Box\n        padding={11}\n        backgroundColor={BoxBackgroundColor.PrimaryMuted}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={1}>\n        <Text>Padding 11</Text>\n    </Box>\n    <Box\n        padding={12}\n        backgroundColor={BoxBackgroundColor.PrimaryMuted}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={1}>\n        <Text>Padding 12</Text>\n    </Box>\n</Box>;"
        },
        {
          "id": "react-components-box--margin",
          "name": "Margin",
          "snippet": "const Margin = () => <Box flexDirection={BoxFlexDirection.Column} gap={4}>\n    <Box backgroundColor={BoxBackgroundColor.BackgroundAlternative} padding={2}>\n        <Text>Container with margin examples:</Text>\n        <Box\n            margin={0}\n            padding={3}\n            backgroundColor={BoxBackgroundColor.SuccessMuted}\n            borderColor={BoxBorderColor.SuccessDefault}\n            borderWidth={1}>\n            <Text>Margin 0</Text>\n        </Box>\n        <Box\n            margin={1}\n            padding={3}\n            backgroundColor={BoxBackgroundColor.SuccessMuted}\n            borderColor={BoxBorderColor.SuccessDefault}\n            borderWidth={1}>\n            <Text>Margin 1</Text>\n        </Box>\n        <Box\n            margin={2}\n            padding={3}\n            backgroundColor={BoxBackgroundColor.SuccessMuted}\n            borderColor={BoxBorderColor.SuccessDefault}\n            borderWidth={1}>\n            <Text>Margin 2</Text>\n        </Box>\n        <Box\n            margin={3}\n            padding={3}\n            backgroundColor={BoxBackgroundColor.SuccessMuted}\n            borderColor={BoxBorderColor.SuccessDefault}\n            borderWidth={1}>\n            <Text>Margin 3</Text>\n        </Box>\n        <Box\n            margin={4}\n            padding={3}\n            backgroundColor={BoxBackgroundColor.SuccessMuted}\n            borderColor={BoxBorderColor.SuccessDefault}\n            borderWidth={1}>\n            <Text>Margin 4</Text>\n        </Box>\n        <Box\n            margin={5}\n            padding={3}\n            backgroundColor={BoxBackgroundColor.SuccessMuted}\n            borderColor={BoxBorderColor.SuccessDefault}\n            borderWidth={1}>\n            <Text>Margin 5</Text>\n        </Box>\n        <Box\n            margin={6}\n            padding={3}\n            backgroundColor={BoxBackgroundColor.SuccessMuted}\n            borderColor={BoxBorderColor.SuccessDefault}\n            borderWidth={1}>\n            <Text>Margin 6</Text>\n        </Box>\n        <Box\n            margin={7}\n            padding={3}\n            backgroundColor={BoxBackgroundColor.SuccessMuted}\n            borderColor={BoxBorderColor.SuccessDefault}\n            borderWidth={1}>\n            <Text>Margin 7</Text>\n        </Box>\n        <Box\n            margin={8}\n            padding={3}\n            backgroundColor={BoxBackgroundColor.SuccessMuted}\n            borderColor={BoxBorderColor.SuccessDefault}\n            borderWidth={1}>\n            <Text>Margin 8</Text>\n        </Box>\n        <Box\n            margin={9}\n            padding={3}\n            backgroundColor={BoxBackgroundColor.SuccessMuted}\n            borderColor={BoxBorderColor.SuccessDefault}\n            borderWidth={1}>\n            <Text>Margin 9</Text>\n        </Box>\n        <Box\n            margin={10}\n            padding={3}\n            backgroundColor={BoxBackgroundColor.SuccessMuted}\n            borderColor={BoxBorderColor.SuccessDefault}\n            borderWidth={1}>\n            <Text>Margin 10</Text>\n        </Box>\n        <Box\n            margin={11}\n            padding={3}\n            backgroundColor={BoxBackgroundColor.SuccessMuted}\n            borderColor={BoxBorderColor.SuccessDefault}\n            borderWidth={1}>\n            <Text>Margin 11</Text>\n        </Box>\n        <Box\n            margin={12}\n            padding={3}\n            backgroundColor={BoxBackgroundColor.SuccessMuted}\n            borderColor={BoxBorderColor.SuccessDefault}\n            borderWidth={1}>\n            <Text>Margin 12</Text>\n        </Box>\n    </Box>\n</Box>;"
        },
        {
          "id": "react-components-box--border-color",
          "name": "Border Color",
          "snippet": "const BorderColor = () => <Box flexDirection={BoxFlexDirection.Column} gap={2}>\n    {/* Basic Colors */}\n    <Box padding={3} borderColor={BoxBorderColor.BorderDefault} borderWidth={2}>\n        <Text>Default</Text>\n    </Box>\n    <Box padding={3} borderColor={BoxBorderColor.BorderMuted} borderWidth={2}>\n        <Text>Muted</Text>\n    </Box>\n    {/* Primary Colors */}\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.PrimaryMuted}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={2}>\n        <Text>PrimaryDefault</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.PrimaryMuted}\n        borderColor={BoxBorderColor.PrimaryAlternative}\n        borderWidth={2}>\n        <Text>PrimaryAlternative</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.PrimaryMuted}\n        borderColor={BoxBorderColor.PrimaryMuted}\n        borderWidth={2}>\n        <Text>PrimaryMuted</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.PrimaryMuted}\n        borderColor={BoxBorderColor.PrimaryInverse}\n        borderWidth={2}>\n        <Text>PrimaryInverse</Text>\n    </Box>\n    {/* Error Colors */}\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.ErrorMuted}\n        borderColor={BoxBorderColor.ErrorDefault}\n        borderWidth={2}>\n        <Text>ErrorDefault</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.ErrorMuted}\n        borderColor={BoxBorderColor.ErrorAlternative}\n        borderWidth={2}>\n        <Text>ErrorAlternative</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.ErrorMuted}\n        borderColor={BoxBorderColor.ErrorMuted}\n        borderWidth={2}>\n        <Text>ErrorMuted</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.ErrorMuted}\n        borderColor={BoxBorderColor.ErrorInverse}\n        borderWidth={2}>\n        <Text>ErrorInverse</Text>\n    </Box>\n    {/* Warning Colors */}\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.WarningMuted}\n        borderColor={BoxBorderColor.WarningDefault}\n        borderWidth={2}>\n        <Text>WarningDefault</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.WarningMuted}\n        borderColor={BoxBorderColor.WarningMuted}\n        borderWidth={2}>\n        <Text>WarningMuted</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.WarningMuted}\n        borderColor={BoxBorderColor.WarningInverse}\n        borderWidth={2}>\n        <Text>WarningInverse</Text>\n    </Box>\n    {/* Success Colors */}\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.SuccessMuted}\n        borderColor={BoxBorderColor.SuccessDefault}\n        borderWidth={2}>\n        <Text>SuccessDefault</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.SuccessMuted}\n        borderColor={BoxBorderColor.SuccessMuted}\n        borderWidth={2}>\n        <Text>SuccessMuted</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.SuccessMuted}\n        borderColor={BoxBorderColor.SuccessInverse}\n        borderWidth={2}>\n        <Text>SuccessInverse</Text>\n    </Box>\n    {/* Info Colors */}\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.InfoMuted}\n        borderColor={BoxBorderColor.InfoDefault}\n        borderWidth={2}>\n        <Text>InfoDefault</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.InfoMuted}\n        borderColor={BoxBorderColor.InfoMuted}\n        borderWidth={2}>\n        <Text>InfoMuted</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.InfoMuted}\n        borderColor={BoxBorderColor.InfoInverse}\n        borderWidth={2}>\n        <Text>InfoInverse</Text>\n    </Box>\n    {/* Special Colors */}\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.FlaskDefault}\n        borderColor={BoxBorderColor.FlaskDefault}\n        borderWidth={2}>\n        <Text>FlaskDefault</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.FlaskDefault}\n        borderColor={BoxBorderColor.FlaskInverse}\n        borderWidth={2}>\n        <Text>FlaskInverse</Text>\n    </Box>\n    {/* Overlay Colors */}\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.OverlayDefault}\n        borderColor={BoxBorderColor.OverlayDefault}\n        borderWidth={2}>\n        <Text color={TextColor.OverlayInverse}>OverlayDefault</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.OverlayAlternative}\n        borderColor={BoxBorderColor.OverlayAlternative}\n        borderWidth={2}>\n        <Text color={TextColor.OverlayInverse}>OverlayAlternative</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.OverlayInverse}\n        borderColor={BoxBorderColor.OverlayInverse}\n        borderWidth={2}>\n        <Text>OverlayInverse</Text>\n    </Box>\n    {/* Utility Colors */}\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundDefault}\n        borderColor={BoxBorderColor.Transparent}\n        borderWidth={2}>\n        <Text>Transparent</Text>\n    </Box>\n</Box>;"
        },
        {
          "id": "react-components-box--border-width",
          "name": "Border Width",
          "snippet": "const BorderWidth = () => <Box flexDirection={BoxFlexDirection.Column} gap={4}>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={0}>\n        <Text>Border width 0</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={1}>\n        <Text>Border width 1</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={2}>\n        <Text>Border width 2</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={4}>\n        <Text>Border width 4</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={8}>\n        <Text>Border width 8</Text>\n    </Box>\n</Box>;"
        },
        {
          "id": "react-components-box--background-color",
          "name": "Background Color",
          "snippet": "const BackgroundColor = () => <Box flexDirection={BoxFlexDirection.Column} gap={2}>\n    {/* Basic Colors */}\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundDefault}\n        borderColor={BoxBorderColor.BorderDefault}\n        borderWidth={1}>\n        <Text>BackgroundDefault</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundAlternative}\n        borderColor={BoxBorderColor.BorderDefault}\n        borderWidth={1}>\n        <Text>BackgroundAlternative</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundMuted}\n        borderColor={BoxBorderColor.BorderDefault}\n        borderWidth={1}>\n        <Text>BackgroundMuted</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundSection}\n        borderColor={BoxBorderColor.BorderDefault}\n        borderWidth={1}>\n        <Text>BackgroundSection</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.BackgroundSubsection}\n        borderColor={BoxBorderColor.BorderDefault}\n        borderWidth={1}>\n        <Text>BackgroundSubsection</Text>\n    </Box>\n    {/* Primary Colors */}\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.PrimaryDefault}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={1}>\n        <Text>PrimaryDefault</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.PrimaryAlternative}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={1}>\n        <Text>PrimaryAlternative</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.PrimaryMuted}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={1}>\n        <Text>PrimaryMuted</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.PrimaryInverse}\n        borderColor={BoxBorderColor.PrimaryDefault}\n        borderWidth={1}>\n        <Text>PrimaryInverse</Text>\n    </Box>\n    {/* Error Colors */}\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.ErrorDefault}\n        borderColor={BoxBorderColor.ErrorDefault}\n        borderWidth={1}>\n        <Text>ErrorDefault</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.ErrorAlternative}\n        borderColor={BoxBorderColor.ErrorDefault}\n        borderWidth={1}>\n        <Text>ErrorAlternative</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.ErrorMuted}\n        borderColor={BoxBorderColor.ErrorDefault}\n        borderWidth={1}>\n        <Text>ErrorMuted</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.ErrorInverse}\n        borderColor={BoxBorderColor.ErrorDefault}\n        borderWidth={1}>\n        <Text>ErrorInverse</Text>\n    </Box>\n    {/* Warning Colors */}\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.WarningDefault}\n        borderColor={BoxBorderColor.WarningDefault}\n        borderWidth={1}>\n        <Text>WarningDefault</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.WarningMuted}\n        borderColor={BoxBorderColor.WarningDefault}\n        borderWidth={1}>\n        <Text>WarningMuted</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.WarningInverse}\n        borderColor={BoxBorderColor.WarningDefault}\n        borderWidth={1}>\n        <Text>WarningInverse</Text>\n    </Box>\n    {/* Success Colors */}\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.SuccessDefault}\n        borderColor={BoxBorderColor.SuccessDefault}\n        borderWidth={1}>\n        <Text>SuccessDefault</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.SuccessMuted}\n        borderColor={BoxBorderColor.SuccessDefault}\n        borderWidth={1}>\n        <Text>SuccessMuted</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.SuccessInverse}\n        borderColor={BoxBorderColor.SuccessDefault}\n        borderWidth={1}>\n        <Text>SuccessInverse</Text>\n    </Box>\n    {/* Info Colors */}\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.InfoDefault}\n        borderColor={BoxBorderColor.InfoDefault}\n        borderWidth={1}>\n        <Text>InfoDefault</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.InfoMuted}\n        borderColor={BoxBorderColor.InfoDefault}\n        borderWidth={1}>\n        <Text>InfoMuted</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.InfoInverse}\n        borderColor={BoxBorderColor.InfoDefault}\n        borderWidth={1}>\n        <Text>InfoInverse</Text>\n    </Box>\n    {/* Special Colors */}\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.FlaskDefault}\n        borderColor={BoxBorderColor.FlaskDefault}\n        borderWidth={1}>\n        <Text>FlaskDefault</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.FlaskInverse}\n        borderColor={BoxBorderColor.FlaskInverse}\n        borderWidth={1}>\n        <Text>FlaskInverse</Text>\n    </Box>\n    {/* Overlay Colors */}\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.OverlayDefault}\n        borderColor={BoxBorderColor.OverlayDefault}\n        borderWidth={1}>\n        <Text color={TextColor.OverlayInverse}>OverlayDefault</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.OverlayAlternative}\n        borderColor={BoxBorderColor.OverlayAlternative}\n        borderWidth={1}>\n        <Text color={TextColor.OverlayInverse}>OverlayAlternative</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.OverlayInverse}\n        borderColor={BoxBorderColor.OverlayInverse}\n        borderWidth={1}>\n        <Text>OverlayInverse</Text>\n    </Box>\n    <Box\n        padding={3}\n        backgroundColor={BoxBackgroundColor.Transparent}\n        borderColor={BoxBorderColor.BorderDefault}\n        borderWidth={1}>\n        <Text>Transparent</Text>\n    </Box>\n</Box>;"
        },
        {
          "id": "react-components-box--as-child",
          "name": "As Child",
          "snippet": "const AsChild = () => <Box asChild backgroundColor={BoxBackgroundColor.PrimaryMuted}>\n    <button>\n        <Text asChild>\n            <span>Box rendered as button</span>\n        </Text>\n    </button>\n</Box>;"
        }
      ],
      "import": "import { Box, Text } from '@metamask/design-system-react';\nimport { BoxFlexDirection } from '@metamask/design-system-shared';"
    },
    "react-components-button": {
      "id": "react-components-button",
      "name": "Button",
      "path": "../../packages/design-system-react/src/components/Button/Button.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "Button",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/Button/Button.tsx",
        "actualName": "Button",
        "exportName": "Button",
        "props": {
          "variant": {
            "defaultValue": {
              "value": "'primary'",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-button--default",
          "name": "Default",
          "snippet": "const Default = () => <Button>Button</Button>;"
        },
        {
          "id": "react-components-button--variant",
          "name": "Variant",
          "snippet": "const Variant = () => (\n  <div className=\"space-y-4\">\n    <div className=\"flex gap-2\">\n      <Button variant={ButtonVariant.Primary}>Primary</Button>\n      <Button variant={ButtonVariant.Secondary}>Secondary</Button>\n      <Button variant={ButtonVariant.Tertiary}>Tertiary</Button>\n    </div>\n  </div>\n);"
        },
        {
          "id": "react-components-button--size",
          "name": "Size",
          "snippet": "const Size = () => (\n  <div className=\"space-y-4\">\n    <div className=\"flex gap-2\">\n      <Button size={ButtonSize.Sm}>Small</Button>\n      <Button size={ButtonSize.Md}>Medium</Button>\n      <Button size={ButtonSize.Lg}>Large</Button>\n    </div>\n    <div className=\"flex gap-2\">\n      <Button variant={ButtonVariant.Secondary} size={ButtonSize.Sm}>\n        Small\n      </Button>\n      <Button variant={ButtonVariant.Secondary} size={ButtonSize.Md}>\n        Medium\n      </Button>\n      <Button variant={ButtonVariant.Secondary} size={ButtonSize.Lg}>\n        Large\n      </Button>\n    </div>\n    <div className=\"flex gap-2\">\n      <Button variant={ButtonVariant.Tertiary} size={ButtonSize.Sm}>\n        Small\n      </Button>\n      <Button variant={ButtonVariant.Tertiary} size={ButtonSize.Md}>\n        Medium\n      </Button>\n      <Button variant={ButtonVariant.Tertiary} size={ButtonSize.Lg}>\n        Large\n      </Button>\n    </div>\n  </div>\n);"
        },
        {
          "id": "react-components-button--is-danger",
          "name": "Is Danger",
          "snippet": "const IsDanger = () => (\n  <div className=\"space-y-4\">\n    <div className=\"flex gap-2\">\n      <Button isDanger>Primary danger</Button>\n      <Button variant={ButtonVariant.Secondary} isDanger>\n        Secondary danger\n      </Button>\n      <Button variant={ButtonVariant.Tertiary} isDanger>\n        Tertiary danger\n      </Button>\n    </div>\n  </div>\n);"
        },
        {
          "id": "react-components-button--is-inverse",
          "name": "Is Inverse",
          "snippet": "const IsInverse = () => (\n  <div className=\"space-y-4 bg-primary-default p-4\">\n    <div className=\"flex gap-2\">\n      <Button isInverse>Primary inverse</Button>\n      <Button variant={ButtonVariant.Secondary} isInverse>\n        Secondary inverse\n      </Button>\n      <Button variant={ButtonVariant.Tertiary} isInverse>\n        Tertiary inverse\n      </Button>\n    </div>\n    <div className=\"flex gap-2\">\n      <Button isDanger isInverse>\n        Primary danger inverse\n      </Button>\n      <Button variant={ButtonVariant.Secondary} isDanger isInverse>\n        Secondary danger inverse\n      </Button>\n      <Button variant={ButtonVariant.Tertiary} isDanger isInverse>\n        Tertiary danger inverse\n      </Button>\n    </div>\n  </div>\n);"
        },
        {
          "id": "react-components-button--start-icon-name",
          "name": "Start Icon Name",
          "snippet": "const StartIconName = () => <Button startIconName={IconName.AddSquare}>With start icon</Button>;"
        },
        {
          "id": "react-components-button--end-icon-name",
          "name": "End Icon Name",
          "snippet": "const EndIconName = () => <Button endIconName={IconName.AddSquare}>With end icon</Button>;"
        },
        {
          "id": "react-components-button--is-loading",
          "name": "Is Loading",
          "snippet": "const IsLoading = () => (\n  <div className=\"space-y-4\">\n    <div className=\"flex gap-2\">\n      <Button isLoading loadingText=\"Loading...\">\n        Primary\n      </Button>\n      <Button\n        variant={ButtonVariant.Secondary}\n        isLoading\n        loadingText=\"Loading...\"\n      >\n        Secondary\n      </Button>\n      <Button\n        variant={ButtonVariant.Tertiary}\n        isLoading\n        loadingText=\"Loading...\"\n      >\n        Tertiary\n      </Button>\n    </div>\n  </div>\n);"
        },
        {
          "id": "react-components-button--is-disabled",
          "name": "Is Disabled",
          "snippet": "const IsDisabled = () => (\n  <div className=\"space-y-4\">\n    <div className=\"flex gap-2\">\n      <Button isDisabled>Primary</Button>\n      <Button variant={ButtonVariant.Secondary} isDisabled>\n        Secondary\n      </Button>\n      <Button variant={ButtonVariant.Tertiary} isDisabled>\n        Tertiary\n      </Button>\n    </div>\n  </div>\n);"
        },
        {
          "id": "react-components-button--is-full-width",
          "name": "Is Full Width",
          "snippet": "const IsFullWidth = () => (\n  <div className=\"space-y-4\">\n    <Button isFullWidth>Full width primary</Button>\n    <Button variant={ButtonVariant.Secondary} isFullWidth>\n      Full width secondary\n    </Button>\n    <Button variant={ButtonVariant.Tertiary} isFullWidth>\n      Full width tertiary\n    </Button>\n  </div>\n);"
        }
      ],
      "import": "import { Button } from '@metamask/design-system-react';\nimport { IconName } from '@metamask/design-system-shared';"
    },
    "react-components-button-variants-buttonprimary": {
      "id": "react-components-button-variants-buttonprimary",
      "name": "ButtonPrimary",
      "path": "../../packages/design-system-react/src/components/Button/variants/ButtonPrimary/ButtonPrimary.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "ButtonPrimary",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/Button/variants/ButtonPrimary/ButtonPrimary.tsx",
        "actualName": "ButtonPrimary",
        "exportName": "ButtonPrimary",
        "props": {
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the ButtonBase component.\nThese classes will be merged with the component's default classes using twMerge."
          },
          "textProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Optional props to be passed to the Text component when children is a string"
          },
          "asChild": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a button element\n\n@default false"
          },
          "loadingTextProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Optional props to be passed to the loading Text component"
          },
          "startIconName": {
            "required": false,
            "tsType": {
              "name": "IconName"
            },
            "description": "Optional prop to specify an icon to show at the start of the button"
          },
          "startIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional prop to pass additional properties to the start icon"
          },
          "startAccessory": {
            "required": false,
            "tsType": {
              "name": "ReactReactNode",
              "raw": "React.ReactNode"
            },
            "description": "Optional prop for a custom element to show at the start of the button"
          },
          "endIconName": {
            "required": false,
            "tsType": {
              "name": "IconName"
            },
            "description": "Optional prop to specify an icon to show at the end of the button"
          },
          "endIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional prop to pass additional properties to the end icon"
          },
          "endAccessory": {
            "required": false,
            "tsType": {
              "name": "ReactReactNode",
              "raw": "React.ReactNode"
            },
            "description": "Optional prop for a custom element to show at the end of the button"
          },
          "loadingIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional prop to pass additional properties to the loading icon"
          },
          "style": {
            "required": false,
            "tsType": {
              "name": "ReactCSSProperties",
              "raw": "React.CSSProperties"
            },
            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
          },
          "aria-label": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional accessible label for the button. Use when the button text doesn't fully describe its purpose.\nThis will be used as the aria-label attribute."
          },
          "aria-labelledby": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional ID of an element that labels the button.\nThis will be used as the aria-labelledby attribute."
          },
          "aria-describedby": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional ID of an element that describes the button.\nThis will be used as the aria-describedby attribute."
          },
          "aria-pressed": {
            "required": false,
            "tsType": {
              "name": "union",
              "raw": "boolean | 'mixed'",
              "elements": [
                {
                  "name": "boolean"
                },
                {
                  "name": "literal",
                  "value": "'mixed'"
                }
              ]
            },
            "description": "Optional prop to indicate if the button is pressed (for toggle buttons).\nThis will be used as the aria-pressed attribute."
          },
          "aria-expanded": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional prop to indicate if the button controls a collapsible element.\nThis will be used as the aria-expanded attribute."
          },
          "aria-controls": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop to indicate if the button controls another element.\nThis will be used as the aria-controls attribute."
          },
          "aria-haspopup": {
            "required": false,
            "tsType": {
              "name": "union",
              "raw": "| boolean\n| 'false'\n| 'true'\n| 'menu'\n| 'listbox'\n| 'tree'\n| 'grid'\n| 'dialog'",
              "elements": [
                {
                  "name": "boolean"
                },
                {
                  "name": "literal",
                  "value": "'false'"
                },
                {
                  "name": "literal",
                  "value": "'true'"
                },
                {
                  "name": "literal",
                  "value": "'menu'"
                },
                {
                  "name": "literal",
                  "value": "'listbox'"
                },
                {
                  "name": "literal",
                  "value": "'tree'"
                },
                {
                  "name": "literal",
                  "value": "'grid'"
                },
                {
                  "name": "literal",
                  "value": "'dialog'"
                }
              ]
            },
            "description": "Optional prop to indicate if the button has a popup (menu, listbox, tree, grid, or dialog).\nThis will be used as the aria-haspopup attribute."
          },
          "isDanger": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional prop that when true, applies error/danger styling to the button\n\n@default false"
          },
          "isInverse": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional prop that when true, applies dark theme styling to the button\n\n@default false"
          }
        }
      },
      "stories": [
        {
          "id": "react-components-button-variants-buttonprimary--default",
          "name": "Default",
          "snippet": "const Default = () => <ButtonPrimary>Primary button</ButtonPrimary>;"
        },
        {
          "id": "react-components-button-variants-buttonprimary--is-danger",
          "name": "Is Danger",
          "snippet": "const IsDanger = () => <ButtonPrimary isDanger>Danger button</ButtonPrimary>;"
        },
        {
          "id": "react-components-button-variants-buttonprimary--is-inverse",
          "name": "Is Inverse",
          "snippet": "const IsInverse = () => <div className=\"flex gap-2 rounded bg-primary-default p-4\">\n    <ButtonPrimary isInverse>Inverse button\n              </ButtonPrimary>\n    <ButtonPrimary isInverse isDanger>Inverse danger button\n              </ButtonPrimary>\n</div>;"
        },
        {
          "id": "react-components-button-variants-buttonprimary--size",
          "name": "Size",
          "snippet": "const Size = () => <div className=\"flex gap-2\">\n    <ButtonPrimary size={ButtonSize.Sm}>Small\n              </ButtonPrimary>\n    <ButtonPrimary size={ButtonSize.Md}>Medium\n              </ButtonPrimary>\n    <ButtonPrimary size={ButtonSize.Lg}>Large\n              </ButtonPrimary>\n</div>;"
        },
        {
          "id": "react-components-button-variants-buttonprimary--is-full-width",
          "name": "Is Full Width",
          "snippet": "const IsFullWidth = () => <ButtonPrimary isFullWidth>Full width button</ButtonPrimary>;"
        },
        {
          "id": "react-components-button-variants-buttonprimary--start-icon-name",
          "name": "Start Icon Name",
          "snippet": "const StartIconName = () => <ButtonPrimary startIconName={IconName.AddSquare}>With start icon</ButtonPrimary>;"
        },
        {
          "id": "react-components-button-variants-buttonprimary--end-icon-name",
          "name": "End Icon Name",
          "snippet": "const EndIconName = () => <ButtonPrimary endIconName={IconName.AddSquare}>With end icon</ButtonPrimary>;"
        },
        {
          "id": "react-components-button-variants-buttonprimary--is-loading",
          "name": "Is Loading",
          "snippet": "const IsLoading = () => <ButtonPrimary isLoading loadingText=\"Loading...\">Loading button</ButtonPrimary>;"
        },
        {
          "id": "react-components-button-variants-buttonprimary--is-disabled",
          "name": "Is Disabled",
          "snippet": "const IsDisabled = () => <ButtonPrimary isDisabled>Disabled button</ButtonPrimary>;"
        }
      ],
      "import": "import { ButtonPrimary } from '@metamask/design-system-react';\nimport { IconName } from '@metamask/design-system-shared';"
    },
    "react-components-button-variants-buttonsecondary": {
      "id": "react-components-button-variants-buttonsecondary",
      "name": "ButtonSecondary",
      "path": "../../packages/design-system-react/src/components/Button/variants/ButtonSecondary/ButtonSecondary.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "ButtonSecondary",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/Button/variants/ButtonSecondary/ButtonSecondary.tsx",
        "actualName": "ButtonSecondary",
        "exportName": "ButtonSecondary",
        "props": {
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the ButtonBase component.\nThese classes will be merged with the component's default classes using twMerge."
          },
          "textProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Optional props to be passed to the Text component when children is a string"
          },
          "asChild": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a button element\n\n@default false"
          },
          "loadingTextProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Optional props to be passed to the loading Text component"
          },
          "startIconName": {
            "required": false,
            "tsType": {
              "name": "IconName"
            },
            "description": "Optional prop to specify an icon to show at the start of the button"
          },
          "startIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional prop to pass additional properties to the start icon"
          },
          "startAccessory": {
            "required": false,
            "tsType": {
              "name": "ReactReactNode",
              "raw": "React.ReactNode"
            },
            "description": "Optional prop for a custom element to show at the start of the button"
          },
          "endIconName": {
            "required": false,
            "tsType": {
              "name": "IconName"
            },
            "description": "Optional prop to specify an icon to show at the end of the button"
          },
          "endIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional prop to pass additional properties to the end icon"
          },
          "endAccessory": {
            "required": false,
            "tsType": {
              "name": "ReactReactNode",
              "raw": "React.ReactNode"
            },
            "description": "Optional prop for a custom element to show at the end of the button"
          },
          "loadingIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional prop to pass additional properties to the loading icon"
          },
          "style": {
            "required": false,
            "tsType": {
              "name": "ReactCSSProperties",
              "raw": "React.CSSProperties"
            },
            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
          },
          "aria-label": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional accessible label for the button. Use when the button text doesn't fully describe its purpose.\nThis will be used as the aria-label attribute."
          },
          "aria-labelledby": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional ID of an element that labels the button.\nThis will be used as the aria-labelledby attribute."
          },
          "aria-describedby": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional ID of an element that describes the button.\nThis will be used as the aria-describedby attribute."
          },
          "aria-pressed": {
            "required": false,
            "tsType": {
              "name": "union",
              "raw": "boolean | 'mixed'",
              "elements": [
                {
                  "name": "boolean"
                },
                {
                  "name": "literal",
                  "value": "'mixed'"
                }
              ]
            },
            "description": "Optional prop to indicate if the button is pressed (for toggle buttons).\nThis will be used as the aria-pressed attribute."
          },
          "aria-expanded": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional prop to indicate if the button controls a collapsible element.\nThis will be used as the aria-expanded attribute."
          },
          "aria-controls": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop to indicate if the button controls another element.\nThis will be used as the aria-controls attribute."
          },
          "aria-haspopup": {
            "required": false,
            "tsType": {
              "name": "union",
              "raw": "| boolean\n| 'false'\n| 'true'\n| 'menu'\n| 'listbox'\n| 'tree'\n| 'grid'\n| 'dialog'",
              "elements": [
                {
                  "name": "boolean"
                },
                {
                  "name": "literal",
                  "value": "'false'"
                },
                {
                  "name": "literal",
                  "value": "'true'"
                },
                {
                  "name": "literal",
                  "value": "'menu'"
                },
                {
                  "name": "literal",
                  "value": "'listbox'"
                },
                {
                  "name": "literal",
                  "value": "'tree'"
                },
                {
                  "name": "literal",
                  "value": "'grid'"
                },
                {
                  "name": "literal",
                  "value": "'dialog'"
                }
              ]
            },
            "description": "Optional prop to indicate if the button has a popup (menu, listbox, tree, grid, or dialog).\nThis will be used as the aria-haspopup attribute."
          },
          "isDanger": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional prop that when true, applies error/danger styling to the button\n\n@default false"
          },
          "isInverse": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional prop that when true, applies inverse styling to the button\n\n@default false"
          }
        }
      },
      "stories": [
        {
          "id": "react-components-button-variants-buttonsecondary--default",
          "name": "Default",
          "snippet": "const Default = () => <ButtonSecondary>Secondary button</ButtonSecondary>;"
        },
        {
          "id": "react-components-button-variants-buttonsecondary--is-danger",
          "name": "Is Danger",
          "snippet": "const IsDanger = () => <ButtonSecondary isDanger>Danger button</ButtonSecondary>;"
        },
        {
          "id": "react-components-button-variants-buttonsecondary--is-inverse",
          "name": "Is Inverse",
          "snippet": "const IsInverse = () => <div className=\"flex gap-2 rounded bg-primary-default p-4\">\n    <ButtonSecondary isInverse>Inverse button\n              </ButtonSecondary>\n    <ButtonSecondary isInverse isDanger>Inverse danger button\n              </ButtonSecondary>\n</div>;"
        },
        {
          "id": "react-components-button-variants-buttonsecondary--size",
          "name": "Size",
          "snippet": "const Size = () => <div className=\"flex gap-2\">\n    <ButtonSecondary size={ButtonSize.Sm}>Small\n              </ButtonSecondary>\n    <ButtonSecondary size={ButtonSize.Md}>Medium\n              </ButtonSecondary>\n    <ButtonSecondary size={ButtonSize.Lg}>Large\n              </ButtonSecondary>\n</div>;"
        },
        {
          "id": "react-components-button-variants-buttonsecondary--is-full-width",
          "name": "Is Full Width",
          "snippet": "const IsFullWidth = () => <ButtonSecondary isFullWidth>Full width button</ButtonSecondary>;"
        },
        {
          "id": "react-components-button-variants-buttonsecondary--start-icon-name",
          "name": "Start Icon Name",
          "snippet": "const StartIconName = () => <ButtonSecondary startIconName={IconName.AddSquare}>With start icon</ButtonSecondary>;"
        },
        {
          "id": "react-components-button-variants-buttonsecondary--end-icon-name",
          "name": "End Icon Name",
          "snippet": "const EndIconName = () => <ButtonSecondary endIconName={IconName.AddSquare}>With end icon</ButtonSecondary>;"
        },
        {
          "id": "react-components-button-variants-buttonsecondary--is-loading",
          "name": "Is Loading",
          "snippet": "const IsLoading = () => <ButtonSecondary isLoading loadingText=\"Loading...\">Loading button</ButtonSecondary>;"
        },
        {
          "id": "react-components-button-variants-buttonsecondary--is-disabled",
          "name": "Is Disabled",
          "snippet": "const IsDisabled = () => <ButtonSecondary isDisabled>Disabled button</ButtonSecondary>;"
        }
      ],
      "import": "import { ButtonSecondary } from '@metamask/design-system-react';\nimport { IconName } from '@metamask/design-system-shared';"
    },
    "react-components-button-variants-buttontertiary": {
      "id": "react-components-button-variants-buttontertiary",
      "name": "ButtonTertiary",
      "path": "../../packages/design-system-react/src/components/Button/variants/ButtonTertiary/ButtonTertiary.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "ButtonTertiary",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/Button/variants/ButtonTertiary/ButtonTertiary.tsx",
        "actualName": "ButtonTertiary",
        "exportName": "ButtonTertiary",
        "props": {
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the ButtonBase component.\nThese classes will be merged with the component's default classes using twMerge."
          },
          "textProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Optional props to be passed to the Text component when children is a string"
          },
          "asChild": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a button element\n\n@default false"
          },
          "loadingTextProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Optional props to be passed to the loading Text component"
          },
          "startIconName": {
            "required": false,
            "tsType": {
              "name": "IconName"
            },
            "description": "Optional prop to specify an icon to show at the start of the button"
          },
          "startIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional prop to pass additional properties to the start icon"
          },
          "startAccessory": {
            "required": false,
            "tsType": {
              "name": "ReactReactNode",
              "raw": "React.ReactNode"
            },
            "description": "Optional prop for a custom element to show at the start of the button"
          },
          "endIconName": {
            "required": false,
            "tsType": {
              "name": "IconName"
            },
            "description": "Optional prop to specify an icon to show at the end of the button"
          },
          "endIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional prop to pass additional properties to the end icon"
          },
          "endAccessory": {
            "required": false,
            "tsType": {
              "name": "ReactReactNode",
              "raw": "React.ReactNode"
            },
            "description": "Optional prop for a custom element to show at the end of the button"
          },
          "loadingIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional prop to pass additional properties to the loading icon"
          },
          "style": {
            "required": false,
            "tsType": {
              "name": "ReactCSSProperties",
              "raw": "React.CSSProperties"
            },
            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
          },
          "aria-label": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional accessible label for the button. Use when the button text doesn't fully describe its purpose.\nThis will be used as the aria-label attribute."
          },
          "aria-labelledby": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional ID of an element that labels the button.\nThis will be used as the aria-labelledby attribute."
          },
          "aria-describedby": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional ID of an element that describes the button.\nThis will be used as the aria-describedby attribute."
          },
          "aria-pressed": {
            "required": false,
            "tsType": {
              "name": "union",
              "raw": "boolean | 'mixed'",
              "elements": [
                {
                  "name": "boolean"
                },
                {
                  "name": "literal",
                  "value": "'mixed'"
                }
              ]
            },
            "description": "Optional prop to indicate if the button is pressed (for toggle buttons).\nThis will be used as the aria-pressed attribute."
          },
          "aria-expanded": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional prop to indicate if the button controls a collapsible element.\nThis will be used as the aria-expanded attribute."
          },
          "aria-controls": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop to indicate if the button controls another element.\nThis will be used as the aria-controls attribute."
          },
          "aria-haspopup": {
            "required": false,
            "tsType": {
              "name": "union",
              "raw": "| boolean\n| 'false'\n| 'true'\n| 'menu'\n| 'listbox'\n| 'tree'\n| 'grid'\n| 'dialog'",
              "elements": [
                {
                  "name": "boolean"
                },
                {
                  "name": "literal",
                  "value": "'false'"
                },
                {
                  "name": "literal",
                  "value": "'true'"
                },
                {
                  "name": "literal",
                  "value": "'menu'"
                },
                {
                  "name": "literal",
                  "value": "'listbox'"
                },
                {
                  "name": "literal",
                  "value": "'tree'"
                },
                {
                  "name": "literal",
                  "value": "'grid'"
                },
                {
                  "name": "literal",
                  "value": "'dialog'"
                }
              ]
            },
            "description": "Optional prop to indicate if the button has a popup (menu, listbox, tree, grid, or dialog).\nThis will be used as the aria-haspopup attribute."
          },
          "isDanger": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional prop that when true, applies error/danger styling to the button\n\n@default false"
          },
          "isInverse": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional prop that when true, applies inverse styling to the button\n\n@default false"
          }
        }
      },
      "stories": [
        {
          "id": "react-components-button-variants-buttontertiary--default",
          "name": "Default",
          "snippet": "const Default = () => <ButtonTertiary>Button tertiary</ButtonTertiary>;"
        },
        {
          "id": "react-components-button-variants-buttontertiary--is-danger",
          "name": "Is Danger",
          "snippet": "const IsDanger = () => <ButtonTertiary isDanger>Danger</ButtonTertiary>;"
        },
        {
          "id": "react-components-button-variants-buttontertiary--size",
          "name": "Size",
          "snippet": "const Size = () => <div className=\"flex gap-2\">\n    <ButtonTertiary size={ButtonSize.Sm}>Small\n              </ButtonTertiary>\n    <ButtonTertiary size={ButtonSize.Md}>Medium\n              </ButtonTertiary>\n    <ButtonTertiary size={ButtonSize.Lg}>Large\n              </ButtonTertiary>\n</div>;"
        },
        {
          "id": "react-components-button-variants-buttontertiary--is-inverse",
          "name": "Is Inverse",
          "snippet": "const IsInverse = () => <div className=\"flex gap-2 rounded bg-primary-default p-4\">\n    <ButtonTertiary isInverse>Inverse\n              </ButtonTertiary>\n    <ButtonTertiary isInverse isDanger>Inverse Danger\n              </ButtonTertiary>\n</div>;"
        },
        {
          "id": "react-components-button-variants-buttontertiary--is-full-width",
          "name": "Is Full Width",
          "snippet": "const IsFullWidth = () => <ButtonTertiary isFullWidth>Full width</ButtonTertiary>;"
        },
        {
          "id": "react-components-button-variants-buttontertiary--start-icon-name",
          "name": "Start Icon Name",
          "snippet": "const StartIconName = () => <ButtonTertiary startIconName={IconName.AddSquare}>With start icon</ButtonTertiary>;"
        },
        {
          "id": "react-components-button-variants-buttontertiary--end-icon-name",
          "name": "End Icon Name",
          "snippet": "const EndIconName = () => <ButtonTertiary endIconName={IconName.AddSquare}>With end icon</ButtonTertiary>;"
        },
        {
          "id": "react-components-button-variants-buttontertiary--is-loading",
          "name": "Is Loading",
          "snippet": "const IsLoading = () => <ButtonTertiary isLoading loadingText=\"Loading...\">Loading</ButtonTertiary>;"
        },
        {
          "id": "react-components-button-variants-buttontertiary--is-disabled",
          "name": "Is Disabled",
          "snippet": "const IsDisabled = () => <ButtonTertiary isDisabled>Disabled button tertiary</ButtonTertiary>;"
        }
      ],
      "import": "import { ButtonTertiary } from '@metamask/design-system-react';\nimport { IconName } from '@metamask/design-system-shared';"
    },
    "react-components-buttonbase": {
      "id": "react-components-buttonbase",
      "name": "ButtonBase",
      "path": "../../packages/design-system-react/src/components/ButtonBase/ButtonBase.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "ButtonBase",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/ButtonBase/ButtonBase.tsx",
        "actualName": "ButtonBase",
        "exportName": "ButtonBase",
        "props": {
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the ButtonBase component.\nThese classes will be merged with the component's default classes using twMerge."
          },
          "textProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Optional props to be passed to the Text component when children is a string"
          },
          "asChild": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a button element\n\n@default false"
          },
          "loadingTextProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Optional props to be passed to the loading Text component"
          },
          "startIconName": {
            "required": false,
            "tsType": {
              "name": "IconName"
            },
            "description": "Optional prop to specify an icon to show at the start of the button"
          },
          "startIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional prop to pass additional properties to the start icon"
          },
          "startAccessory": {
            "required": false,
            "tsType": {
              "name": "ReactReactNode",
              "raw": "React.ReactNode"
            },
            "description": "Optional prop for a custom element to show at the start of the button"
          },
          "endIconName": {
            "required": false,
            "tsType": {
              "name": "IconName"
            },
            "description": "Optional prop to specify an icon to show at the end of the button"
          },
          "endIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional prop to pass additional properties to the end icon"
          },
          "endAccessory": {
            "required": false,
            "tsType": {
              "name": "ReactReactNode",
              "raw": "React.ReactNode"
            },
            "description": "Optional prop for a custom element to show at the end of the button"
          },
          "loadingIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional prop to pass additional properties to the loading icon"
          },
          "style": {
            "required": false,
            "tsType": {
              "name": "ReactCSSProperties",
              "raw": "React.CSSProperties"
            },
            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
          },
          "aria-label": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional accessible label for the button. Use when the button text doesn't fully describe its purpose.\nThis will be used as the aria-label attribute."
          },
          "aria-labelledby": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional ID of an element that labels the button.\nThis will be used as the aria-labelledby attribute."
          },
          "aria-describedby": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional ID of an element that describes the button.\nThis will be used as the aria-describedby attribute."
          },
          "aria-pressed": {
            "required": false,
            "tsType": {
              "name": "union",
              "raw": "boolean | 'mixed'",
              "elements": [
                {
                  "name": "boolean"
                },
                {
                  "name": "literal",
                  "value": "'mixed'"
                }
              ]
            },
            "description": "Optional prop to indicate if the button is pressed (for toggle buttons).\nThis will be used as the aria-pressed attribute."
          },
          "aria-expanded": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional prop to indicate if the button controls a collapsible element.\nThis will be used as the aria-expanded attribute."
          },
          "aria-controls": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop to indicate if the button controls another element.\nThis will be used as the aria-controls attribute."
          },
          "aria-haspopup": {
            "required": false,
            "tsType": {
              "name": "union",
              "raw": "| boolean\n| 'false'\n| 'true'\n| 'menu'\n| 'listbox'\n| 'tree'\n| 'grid'\n| 'dialog'",
              "elements": [
                {
                  "name": "boolean"
                },
                {
                  "name": "literal",
                  "value": "'false'"
                },
                {
                  "name": "literal",
                  "value": "'true'"
                },
                {
                  "name": "literal",
                  "value": "'menu'"
                },
                {
                  "name": "literal",
                  "value": "'listbox'"
                },
                {
                  "name": "literal",
                  "value": "'tree'"
                },
                {
                  "name": "literal",
                  "value": "'grid'"
                },
                {
                  "name": "literal",
                  "value": "'dialog'"
                }
              ]
            },
            "description": "Optional prop to indicate if the button has a popup (menu, listbox, tree, grid, or dialog).\nThis will be used as the aria-haspopup attribute."
          },
          "size": {
            "defaultValue": {
              "value": "'lg'",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-buttonbase--default",
          "name": "Default",
          "snippet": "const Default = () => <ButtonBase>Button base</ButtonBase>;"
        },
        {
          "id": "react-components-buttonbase--children",
          "name": "Children",
          "snippet": "const Children = () => <div className=\"flex gap-2\">\n    <ButtonBase>Children</ButtonBase>\n    <ButtonBase className=\"h-auto rounded-lg py-2\">\n        <div className=\"flex flex-col items-center gap-2\">\n            <Icon name={IconName.Arrow2UpRight} />\n            <Text asChild>\n                <span>Send</span>\n            </Text>\n        </div>\n    </ButtonBase>\n</div>;"
        },
        {
          "id": "react-components-buttonbase--size",
          "name": "Size",
          "snippet": "const Size = () => <div className=\"flex gap-2\">\n    <ButtonBase size={ButtonBaseSize.Sm}>Small\n              </ButtonBase>\n    <ButtonBase size={ButtonBaseSize.Md}>Medium\n              </ButtonBase>\n    <ButtonBase>Large</ButtonBase>\n</div>;"
        },
        {
          "id": "react-components-buttonbase--spacing",
          "name": "Spacing",
          "snippet": "const Spacing = () => <div className=\"flex flex-col gap-6\">\n    <div className=\"space-y-2\">\n        <Text variant={TextVariant.HeadingSm}>Label only</Text>\n        <Text variant={TextVariant.BodySm} color={TextColor.TextAlternative}>Every size uses the same 16px horizontal padding when no icons are\n                      shown.\n                    </Text>\n        <div className=\"flex flex-wrap gap-2\">\n            <ButtonBase size={ButtonBaseSize.Sm}>Small\n                          </ButtonBase>\n            <ButtonBase size={ButtonBaseSize.Md}>Medium\n                          </ButtonBase>\n            <ButtonBase size={ButtonBaseSize.Lg}>Large\n                          </ButtonBase>\n        </div>\n    </div>\n    <div className=\"space-y-2\">\n        <Text variant={TextVariant.HeadingSm}>Start icon</Text>\n        <Text variant={TextVariant.BodySm} color={TextColor.TextAlternative}>Leading inset fits the icon; 4px gap before the label. Large buttons\n                      use a medium icon; medium and small use a small icon.\n                    </Text>\n        <div className=\"flex flex-wrap gap-2\">\n            <ButtonBase size={ButtonBaseSize.Sm} startIconName={IconName.Add}>Small\n                          </ButtonBase>\n            <ButtonBase size={ButtonBaseSize.Md} startIconName={IconName.Add}>Medium\n                          </ButtonBase>\n            <ButtonBase size={ButtonBaseSize.Lg} startIconName={IconName.Add}>Large\n                          </ButtonBase>\n        </div>\n    </div>\n    <div className=\"space-y-2\">\n        <Text variant={TextVariant.HeadingSm}>End icon</Text>\n        <div className=\"flex flex-wrap gap-2\">\n            <ButtonBase size={ButtonBaseSize.Sm} endIconName={IconName.Add}>Small\n                          </ButtonBase>\n            <ButtonBase size={ButtonBaseSize.Md} endIconName={IconName.Add}>Medium\n                          </ButtonBase>\n            <ButtonBase size={ButtonBaseSize.Lg} endIconName={IconName.Add}>Large\n                          </ButtonBase>\n        </div>\n    </div>\n    <div className=\"space-y-2\">\n        <Text variant={TextVariant.HeadingSm}>Start and end icons</Text>\n        <div className=\"flex flex-wrap gap-2\">\n            <ButtonBase\n                size={ButtonBaseSize.Sm}\n                startIconName={IconName.Add}\n                endIconName={IconName.ArrowRight}>Small\n                          </ButtonBase>\n            <ButtonBase\n                size={ButtonBaseSize.Md}\n                startIconName={IconName.Add}\n                endIconName={IconName.ArrowRight}>Medium\n                          </ButtonBase>\n            <ButtonBase\n                size={ButtonBaseSize.Lg}\n                startIconName={IconName.Add}\n                endIconName={IconName.ArrowRight}>Large\n                          </ButtonBase>\n        </div>\n    </div>\n    <div className=\"space-y-2\">\n        <Text variant={TextVariant.HeadingSm}>Start and end accessories</Text>\n        <Text variant={TextVariant.BodySm} color={TextColor.TextAlternative}>Custom nodes use the same padding and gap as named icons.\n                    </Text>\n        <div className=\"flex flex-wrap gap-2\">\n            <ButtonBase size={ButtonBaseSize.Sm} startAccessory=\"→\" endAccessory=\"←\">Small\n                          </ButtonBase>\n            <ButtonBase size={ButtonBaseSize.Md} startAccessory=\"→\" endAccessory=\"←\">Medium\n                          </ButtonBase>\n            <ButtonBase size={ButtonBaseSize.Lg} startAccessory=\"→\" endAccessory=\"←\">Large\n                          </ButtonBase>\n        </div>\n    </div>\n</div>;"
        },
        {
          "id": "react-components-buttonbase--is-full-width",
          "name": "Is Full Width",
          "snippet": "const IsFullWidth = () => <ButtonBase isFullWidth>Full width button</ButtonBase>;"
        },
        {
          "id": "react-components-buttonbase--start-icon-name",
          "name": "Start Icon Name",
          "snippet": "const StartIconName = () => <ButtonBase startIconName={IconName.AddSquare}>With start icon</ButtonBase>;"
        },
        {
          "id": "react-components-buttonbase--end-icon-name",
          "name": "End Icon Name",
          "snippet": "const EndIconName = () => <ButtonBase endIconName={IconName.AddSquare}>With end icon</ButtonBase>;"
        },
        {
          "id": "react-components-buttonbase--start-accessory",
          "name": "Start Accessory",
          "snippet": "const StartAccessory = () => <ButtonBase startAccessory=\"→\">With start accessory</ButtonBase>;"
        },
        {
          "id": "react-components-buttonbase--end-accessory",
          "name": "End Accessory",
          "snippet": "const EndAccessory = () => <ButtonBase endAccessory=\"←\">With end accessory</ButtonBase>;"
        },
        {
          "id": "react-components-buttonbase--is-loading",
          "name": "Is Loading",
          "snippet": "const IsLoading = () => <div className=\"flex gap-2\">\n    <ButtonBase isLoading>Submit this form\n              </ButtonBase>\n    <ButtonBase isLoading loadingText=\"Submitting...\">Submit this form\n              </ButtonBase>\n</div>;"
        },
        {
          "id": "react-components-buttonbase--accessibility-label",
          "name": "Accessibility - Labels",
          "snippet": "const AccessibilityLabel = () => <div className=\"flex flex-col gap-4 p-4\">\n    <div className=\"space-y-2\">\n        <Text variant={TextVariant.HeadingSm}>Using aria-label</Text>\n        <Text variant={TextVariant.BodySm} color={TextColor.TextAlternative}>Use aria-label when the button content doesn't fully describe its\n                      purpose\n                    </Text>\n        <ButtonBase aria-label=\"Close dialog\">✕\n                    </ButtonBase>\n    </div>\n    <div className=\"space-y-2\">\n        <Text variant={TextVariant.HeadingSm}>Using aria-labelledby</Text>\n        <Text variant={TextVariant.BodySm} color={TextColor.TextAlternative}>Reference an existing element that labels the button\n                    </Text>\n        <div>\n            <Text variant={TextVariant.BodyMd} className=\"mb-2 block\" asChild>\n                <label id=\"save-label\">Save your progress</label>\n            </Text>\n            <ButtonBase aria-labelledby=\"save-label\">💾 Save\n                          </ButtonBase>\n        </div>\n    </div>\n    <div className=\"space-y-2\">\n        <Text variant={TextVariant.HeadingSm}>Using aria-describedby</Text>\n        <Text variant={TextVariant.BodySm} color={TextColor.TextAlternative}>Reference an element that provides additional description\n                    </Text>\n        <div>\n            <ButtonBase aria-describedby=\"submit-description\">Submit Form\n                          </ButtonBase>\n            <Text\n                variant={TextVariant.BodySm}\n                color={TextColor.TextAlternative}\n                className=\"mt-1 block\"\n                asChild>\n                <label id=\"submit-description\">This will submit your form and send you to the confirmation page\n                                </label>\n            </Text>\n        </div>\n    </div>\n</div>;"
        },
        {
          "id": "react-components-buttonbase--accessibility-states",
          "name": "Accessibility - States",
          "snippet": "const AccessibilityStates = () => <div className=\"flex flex-col gap-4 p-4\">\n    <div className=\"space-y-2\">\n        <Text variant={TextVariant.HeadingSm}>Toggle Button (aria-pressed)\n                    </Text>\n        <Text variant={TextVariant.BodySm} color={TextColor.TextAlternative}>Use aria-pressed for buttons that toggle between states\n                    </Text>\n        <div className=\"flex gap-2\">\n            <ButtonBase aria-pressed={false}>🔊 Unmuted\n                          </ButtonBase>\n            <ButtonBase aria-pressed={true}>🔇 Muted\n                          </ButtonBase>\n            <ButtonBase aria-pressed=\"mixed\">🔉 Partially Muted\n                          </ButtonBase>\n        </div>\n    </div>\n    <div className=\"space-y-2\">\n        <Text variant={TextVariant.HeadingSm}>Expandable Button (aria-expanded)\n                    </Text>\n        <Text variant={TextVariant.BodySm} color={TextColor.TextAlternative}>Use aria-expanded for buttons that control collapsible content\n                    </Text>\n        <div className=\"flex gap-2\">\n            <ButtonBase aria-expanded={false}>📁 Show Menu\n                          </ButtonBase>\n            <ButtonBase aria-expanded={true}>📂 Hide Menu\n                          </ButtonBase>\n        </div>\n    </div>\n    <div className=\"space-y-2\">\n        <Text variant={TextVariant.HeadingSm}>Popup Button (aria-haspopup)\n                    </Text>\n        <Text variant={TextVariant.BodySm} color={TextColor.TextAlternative}>Use aria-haspopup to indicate the button triggers a popup\n                    </Text>\n        <div className=\"flex gap-2\">\n            <ButtonBase aria-haspopup=\"menu\">Menu ▼\n                          </ButtonBase>\n            <ButtonBase aria-haspopup=\"dialog\">Settings ⚙️\n                          </ButtonBase>\n            <ButtonBase aria-haspopup=\"listbox\">Select Option ⌄\n                          </ButtonBase>\n        </div>\n    </div>\n</div>;"
        },
        {
          "id": "react-components-buttonbase--accessibility-loading-states",
          "name": "Accessibility - Loading States",
          "snippet": "const AccessibilityLoadingStates = () => <div className=\"flex flex-col gap-4 p-4\">\n    <div className=\"space-y-2\">\n        <Text variant={TextVariant.HeadingSm}>Loading state announcements</Text>\n        <Text variant={TextVariant.BodySm} color={TextColor.TextAlternative}>Screen readers will announce loading states to users\n                    </Text>\n        <div className=\"flex gap-2\">\n            <ButtonBase isLoading>Save Changes\n                          </ButtonBase>\n            <ButtonBase isLoading loadingText=\"Uploading file...\">Upload Document\n                          </ButtonBase>\n            <ButtonBase isLoading loadingText=\"Processing payment...\">Complete Purchase\n                          </ButtonBase>\n        </div>\n    </div>\n    <div className=\"space-y-2\">\n        <Text variant={TextVariant.HeadingSm}>Disabled vs Loading</Text>\n        <Text variant={TextVariant.BodySm} color={TextColor.TextAlternative}>Both states are communicated to screen readers differently\n                    </Text>\n        <div className=\"flex gap-2\">\n            <ButtonBase isDisabled>Disabled button\n                          </ButtonBase>\n            <ButtonBase isLoading>Loading button\n                          </ButtonBase>\n        </div>\n    </div>\n</div>;"
        },
        {
          "id": "react-components-buttonbase--accessibility-keyboard-navigation",
          "name": "Accessibility - Keyboard Navigation",
          "snippet": "const AccessibilityKeyboardNavigation = () => <div className=\"flex flex-col gap-4 p-4\">\n    <div className=\"space-y-2\">\n        <Text variant={TextVariant.HeadingSm}>Focus Management</Text>\n        <Text variant={TextVariant.BodySm} color={TextColor.TextAlternative}>Try navigating with Tab key and activating with Enter/Space. Focus\n                      indicators are clearly visible.\n                    </Text>\n        <div className=\"flex gap-2\">\n            <ButtonBase>First Button</ButtonBase>\n            <ButtonBase>Second Button</ButtonBase>\n            <ButtonBase isDisabled>Disabled (Skip)\n                          </ButtonBase>\n            <ButtonBase>Third Button</ButtonBase>\n        </div>\n    </div>\n    <div className=\"space-y-2\">\n        <Text variant={TextVariant.HeadingSm}>Custom Focus Order</Text>\n        <Text variant={TextVariant.BodySm} color={TextColor.TextAlternative}>Use asChild with custom elements while maintaining accessibility\n                    </Text>\n        <div className=\"flex gap-2\">\n            <ButtonBase asChild>\n                <a href=\"#section1\">Go to Section 1</a>\n            </ButtonBase>\n            <ButtonBase asChild>\n                <a href=\"#section2\">Go to Section 2</a>\n            </ButtonBase>\n        </div>\n    </div>\n</div>;"
        },
        {
          "id": "react-components-buttonbase--is-disabled",
          "name": "Is Disabled",
          "snippet": "const IsDisabled = () => <ButtonBase isDisabled>Disabled button</ButtonBase>;"
        },
        {
          "id": "react-components-buttonbase--as-child",
          "name": "As Child",
          "snippet": "const AsChild = () => <ButtonBase asChild>\n    <a href=\"#\" target=\"_blank\" rel=\"noopener noreferrer\">Custom Anchor Link\n              </a>\n</ButtonBase>;"
        }
      ],
      "import": "import { ButtonBase, Icon, Text } from '@metamask/design-system-react';\nimport { IconName } from '@metamask/design-system-shared';"
    },
    "react-components-buttonfilter": {
      "id": "react-components-buttonfilter",
      "name": "ButtonFilter",
      "path": "../../packages/design-system-react/src/components/ButtonFilter/ButtonFilter.stories.tsx",
      "jsDocTags": {
        "deprecated": [
          "Use `FilterButton` instead. This component will be removed in a future major version of the design system."
        ]
      },
      "description": "",
      "reactDocgen": {
        "description": "@deprecated Use `FilterButton` instead. This component will be removed\nin a future major version of the design system.",
        "methods": [],
        "displayName": "ButtonFilter",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/ButtonFilter/ButtonFilter.tsx",
        "actualName": "ButtonFilter",
        "exportName": "ButtonFilter",
        "props": {
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the ButtonBase component.\nThese classes will be merged with the component's default classes using twMerge."
          },
          "textProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Optional props to be passed to the Text component when children is a string"
          },
          "asChild": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a button element\n\n@default false"
          },
          "loadingTextProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Optional props to be passed to the loading Text component"
          },
          "startIconName": {
            "required": false,
            "tsType": {
              "name": "IconName"
            },
            "description": "Optional prop to specify an icon to show at the start of the button"
          },
          "startIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional prop to pass additional properties to the start icon"
          },
          "startAccessory": {
            "required": false,
            "tsType": {
              "name": "ReactReactNode",
              "raw": "React.ReactNode"
            },
            "description": "Optional prop for a custom element to show at the start of the button"
          },
          "endIconName": {
            "required": false,
            "tsType": {
              "name": "IconName"
            },
            "description": "Optional prop to specify an icon to show at the end of the button"
          },
          "endIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional prop to pass additional properties to the end icon"
          },
          "endAccessory": {
            "required": false,
            "tsType": {
              "name": "ReactReactNode",
              "raw": "React.ReactNode"
            },
            "description": "Optional prop for a custom element to show at the end of the button"
          },
          "loadingIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional prop to pass additional properties to the loading icon"
          },
          "style": {
            "required": false,
            "tsType": {
              "name": "ReactCSSProperties",
              "raw": "React.CSSProperties"
            },
            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
          },
          "aria-label": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional accessible label for the button. Use when the button text doesn't fully describe its purpose.\nThis will be used as the aria-label attribute."
          },
          "aria-labelledby": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional ID of an element that labels the button.\nThis will be used as the aria-labelledby attribute."
          },
          "aria-describedby": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional ID of an element that describes the button.\nThis will be used as the aria-describedby attribute."
          },
          "aria-pressed": {
            "required": false,
            "tsType": {
              "name": "union",
              "raw": "boolean | 'mixed'",
              "elements": [
                {
                  "name": "boolean"
                },
                {
                  "name": "literal",
                  "value": "'mixed'"
                }
              ]
            },
            "description": "Optional prop to indicate if the button is pressed (for toggle buttons).\nThis will be used as the aria-pressed attribute."
          },
          "aria-expanded": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional prop to indicate if the button controls a collapsible element.\nThis will be used as the aria-expanded attribute."
          },
          "aria-controls": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop to indicate if the button controls another element.\nThis will be used as the aria-controls attribute."
          },
          "aria-haspopup": {
            "required": false,
            "tsType": {
              "name": "union",
              "raw": "| boolean\n| 'false'\n| 'true'\n| 'menu'\n| 'listbox'\n| 'tree'\n| 'grid'\n| 'dialog'",
              "elements": [
                {
                  "name": "boolean"
                },
                {
                  "name": "literal",
                  "value": "'false'"
                },
                {
                  "name": "literal",
                  "value": "'true'"
                },
                {
                  "name": "literal",
                  "value": "'menu'"
                },
                {
                  "name": "literal",
                  "value": "'listbox'"
                },
                {
                  "name": "literal",
                  "value": "'tree'"
                },
                {
                  "name": "literal",
                  "value": "'grid'"
                },
                {
                  "name": "literal",
                  "value": "'dialog'"
                }
              ]
            },
            "description": "Optional prop to indicate if the button has a popup (menu, listbox, tree, grid, or dialog).\nThis will be used as the aria-haspopup attribute."
          },
          "isActive": {
            "defaultValue": {
              "value": "false",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-buttonfilter--default",
          "name": "Default",
          "snippet": "const Default = () => <ButtonFilter isActive={false}>Filter</ButtonFilter>;"
        },
        {
          "id": "react-components-buttonfilter--is-active",
          "name": "Is Active",
          "snippet": "const IsActive = () => <ButtonFilter isActive>Filter</ButtonFilter>;"
        },
        {
          "id": "react-components-buttonfilter--button-filter-group",
          "name": "Button Filter Group",
          "snippet": "const ButtonFilterGroup = () => <ButtonFilterGroupStory isActive={false}>Filter</ButtonFilterGroupStory>;"
        }
      ],
      "import": "import { Box, ButtonFilter, Text } from '@metamask/design-system-react';"
    },
    "react-components-buttonhero": {
      "id": "react-components-buttonhero",
      "name": "ButtonHero",
      "path": "../../packages/design-system-react/src/components/ButtonHero/ButtonHero.stories.tsx",
      "jsDocTags": {
        "deprecated": [
          "Use `Button` with `variant={ButtonVariant.Primary}` instead. This component will be removed in a future major version of the design system."
        ]
      },
      "description": "",
      "reactDocgen": {
        "description": "@deprecated Use `Button` with `variant={ButtonVariant.Primary}` instead.\nThis component will be removed in a future major version of the design system.",
        "methods": [],
        "displayName": "ButtonHero",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/ButtonHero/ButtonHero.tsx",
        "actualName": "ButtonHero",
        "exportName": "ButtonHero",
        "props": {
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the ButtonBase component.\nThese classes will be merged with the component's default classes using twMerge."
          },
          "textProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Optional props to be passed to the Text component when children is a string"
          },
          "asChild": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a button element\n\n@default false"
          },
          "loadingTextProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Optional props to be passed to the loading Text component"
          },
          "startIconName": {
            "required": false,
            "tsType": {
              "name": "IconName"
            },
            "description": "Optional prop to specify an icon to show at the start of the button"
          },
          "startIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional prop to pass additional properties to the start icon"
          },
          "startAccessory": {
            "required": false,
            "tsType": {
              "name": "ReactReactNode",
              "raw": "React.ReactNode"
            },
            "description": "Optional prop for a custom element to show at the start of the button"
          },
          "endIconName": {
            "required": false,
            "tsType": {
              "name": "IconName"
            },
            "description": "Optional prop to specify an icon to show at the end of the button"
          },
          "endIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional prop to pass additional properties to the end icon"
          },
          "endAccessory": {
            "required": false,
            "tsType": {
              "name": "ReactReactNode",
              "raw": "React.ReactNode"
            },
            "description": "Optional prop for a custom element to show at the end of the button"
          },
          "loadingIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional prop to pass additional properties to the loading icon"
          },
          "style": {
            "required": false,
            "tsType": {
              "name": "ReactCSSProperties",
              "raw": "React.CSSProperties"
            },
            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
          },
          "aria-label": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional accessible label for the button. Use when the button text doesn't fully describe its purpose.\nThis will be used as the aria-label attribute."
          },
          "aria-labelledby": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional ID of an element that labels the button.\nThis will be used as the aria-labelledby attribute."
          },
          "aria-describedby": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional ID of an element that describes the button.\nThis will be used as the aria-describedby attribute."
          },
          "aria-pressed": {
            "required": false,
            "tsType": {
              "name": "union",
              "raw": "boolean | 'mixed'",
              "elements": [
                {
                  "name": "boolean"
                },
                {
                  "name": "literal",
                  "value": "'mixed'"
                }
              ]
            },
            "description": "Optional prop to indicate if the button is pressed (for toggle buttons).\nThis will be used as the aria-pressed attribute."
          },
          "aria-expanded": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional prop to indicate if the button controls a collapsible element.\nThis will be used as the aria-expanded attribute."
          },
          "aria-controls": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop to indicate if the button controls another element.\nThis will be used as the aria-controls attribute."
          },
          "aria-haspopup": {
            "required": false,
            "tsType": {
              "name": "union",
              "raw": "| boolean\n| 'false'\n| 'true'\n| 'menu'\n| 'listbox'\n| 'tree'\n| 'grid'\n| 'dialog'",
              "elements": [
                {
                  "name": "boolean"
                },
                {
                  "name": "literal",
                  "value": "'false'"
                },
                {
                  "name": "literal",
                  "value": "'true'"
                },
                {
                  "name": "literal",
                  "value": "'menu'"
                },
                {
                  "name": "literal",
                  "value": "'listbox'"
                },
                {
                  "name": "literal",
                  "value": "'tree'"
                },
                {
                  "name": "literal",
                  "value": "'grid'"
                },
                {
                  "name": "literal",
                  "value": "'dialog'"
                }
              ]
            },
            "description": "Optional prop to indicate if the button has a popup (menu, listbox, tree, grid, or dialog).\nThis will be used as the aria-haspopup attribute."
          }
        }
      },
      "stories": [
        {
          "id": "react-components-buttonhero--default",
          "name": "Default",
          "snippet": "const Default = () => <ButtonHero>Primary action</ButtonHero>;"
        },
        {
          "id": "react-components-buttonhero--size",
          "name": "Size",
          "snippet": "const Size = () => <div className=\"flex gap-2\">\n    <ButtonHero size={ButtonHeroSize.Sm}>Small\n              </ButtonHero>\n    <ButtonHero size={ButtonHeroSize.Md}>Medium\n              </ButtonHero>\n    <ButtonHero size={ButtonHeroSize.Lg}>Large\n              </ButtonHero>\n</div>;"
        },
        {
          "id": "react-components-buttonhero--is-full-width",
          "name": "Is Full Width",
          "snippet": "const IsFullWidth = () => <ButtonHero isFullWidth>Full width</ButtonHero>;"
        },
        {
          "id": "react-components-buttonhero--start-icon-name",
          "name": "Start Icon Name",
          "snippet": "const StartIconName = () => <ButtonHero startIconName={IconName.AddSquare}>Start icon</ButtonHero>;"
        },
        {
          "id": "react-components-buttonhero--end-icon-name",
          "name": "End Icon Name",
          "snippet": "const EndIconName = () => <ButtonHero endIconName={IconName.AddSquare}>End icon</ButtonHero>;"
        },
        {
          "id": "react-components-buttonhero--disabled",
          "name": "Disabled",
          "snippet": "const Disabled = () => <ButtonHero isDisabled>Disabled button</ButtonHero>;"
        },
        {
          "id": "react-components-buttonhero--loading",
          "name": "Loading",
          "snippet": "const Loading = () => <ButtonHero isLoading loadingText=\"Submitting...\">Submit this form</ButtonHero>;"
        }
      ],
      "import": "import { ButtonHero } from '@metamask/design-system-react';\nimport { IconName } from '@metamask/design-system-shared';"
    },
    "react-components-buttonicon": {
      "id": "react-components-buttonicon",
      "name": "ButtonIcon",
      "path": "../../packages/design-system-react/src/components/ButtonIcon/ButtonIcon.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "ButtonIcon",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/ButtonIcon/ButtonIcon.tsx",
        "actualName": "ButtonIcon",
        "exportName": "ButtonIcon",
        "props": {
          "iconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional prop to pass additional properties to the icon"
          },
          "ariaLabel": {
            "required": true,
            "tsType": {
              "name": "string"
            },
            "description": "Required prop to provide an accessible label for the button"
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the ButtonIcon component"
          },
          "style": {
            "required": false,
            "tsType": {
              "name": "ReactCSSProperties",
              "raw": "React.CSSProperties"
            },
            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
          },
          "isDisabled": {
            "defaultValue": {
              "value": "false",
              "computed": false
            },
            "required": false
          },
          "variant": {
            "defaultValue": {
              "value": "'default'",
              "computed": false
            },
            "required": false
          },
          "size": {
            "defaultValue": {
              "value": "'md'",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-buttonicon--default",
          "name": "Default",
          "snippet": "const Default = () => <ButtonIcon iconName={IconName.Close} ariaLabel=\"Close\" />;"
        },
        {
          "id": "react-components-buttonicon--size",
          "name": "Size",
          "snippet": "const Size = () => (\n  <div className=\"flex gap-2\">\n    <ButtonIcon\n      iconName={IconName.Close}\n      size={ButtonIconSize.Xs}\n      ariaLabel=\"Close extra small\"\n    />\n    <ButtonIcon\n      iconName={IconName.Close}\n      size={ButtonIconSize.Sm}\n      ariaLabel=\"Close small\"\n    />\n    <ButtonIcon\n      iconName={IconName.Close}\n      size={ButtonIconSize.Md}\n      ariaLabel=\"Close medium\"\n    />\n    <ButtonIcon\n      iconName={IconName.Close}\n      size={ButtonIconSize.Lg}\n      ariaLabel=\"Close large\"\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-buttonicon--floating",
          "name": "Floating",
          "snippet": "const Floating = () => (\n  <div className=\"flex gap-2\">\n    <ButtonIcon\n      iconName={IconName.Close}\n      variant={ButtonIconVariant.Floating}\n      ariaLabel=\"Close\"\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-buttonicon--filled",
          "name": "Filled",
          "snippet": "const Filled = () => (\n  <div className=\"flex gap-2\">\n    <ButtonIcon\n      iconName={IconName.Close}\n      variant={ButtonIconVariant.Filled}\n      ariaLabel=\"Close\"\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-buttonicon--is-disabled",
          "name": "Is Disabled",
          "snippet": "const IsDisabled = () => <ButtonIcon iconName={IconName.Close} isDisabled ariaLabel=\"Close\" />;"
        },
        {
          "id": "react-components-buttonicon--aria-label",
          "name": "Aria Label",
          "snippet": "const AriaLabel = () => <ButtonIcon iconName={IconName.Close} ariaLabel=\"Close dialog\" />;"
        }
      ],
      "import": "import { ButtonIcon } from '@metamask/design-system-react';\nimport { IconName } from '@metamask/design-system-shared';"
    },
    "react-components-checkbox": {
      "id": "react-components-checkbox",
      "name": "Checkbox",
      "path": "../../packages/design-system-react/src/components/Checkbox/Checkbox.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [
          {
            "name": "toggle",
            "docblock": null,
            "modifiers": [],
            "params": [],
            "returns": null
          }
        ],
        "displayName": "Checkbox",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/Checkbox/Checkbox.tsx",
        "actualName": "Checkbox",
        "exportName": "Checkbox",
        "props": {
          "id": {
            "required": true,
            "tsType": {
              "name": "string"
            },
            "description": "Required unique identifier for the checkbox input element.\nThis is used for the input's ID and the label's htmlFor attributes."
          },
          "labelProps": {
            "required": false,
            "tsType": {
              "name": "Omit",
              "elements": [
                {
                  "name": "Partial",
                  "elements": [
                    {
                      "name": "intersection",
                      "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "elements": [
                        {
                          "name": "TextPropsShared"
                        },
                        {
                          "name": "signature",
                          "type": "object",
                          "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                          "signature": {
                            "properties": [
                              {
                                "key": "style",
                                "value": {
                                  "name": "CSSProperties",
                                  "required": false
                                },
                                "description": "Optional prop for inline styles"
                              },
                              {
                                "key": "className",
                                "value": {
                                  "name": "string",
                                  "required": false
                                },
                                "description": "Optional prop for additional CSS classes to be applied to the Text component."
                              },
                              {
                                "key": "textTransform",
                                "value": {
                                  "name": "TextTransform",
                                  "required": false
                                },
                                "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                              },
                              {
                                "key": "textAlign",
                                "value": {
                                  "name": "TextAlign",
                                  "required": false
                                },
                                "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                              },
                              {
                                "key": "overflowWrap",
                                "value": {
                                  "name": "OverflowWrap",
                                  "required": false
                                },
                                "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                              },
                              {
                                "key": "ellipsis",
                                "value": {
                                  "name": "boolean",
                                  "required": false
                                },
                                "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                              },
                              {
                                "key": "asChild",
                                "value": {
                                  "name": "boolean",
                                  "required": false
                                },
                                "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                              },
                              {
                                "key": "data-testid",
                                "value": {
                                  "name": "string",
                                  "required": false
                                },
                                "description": "Optional prop for testing purposes"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  ],
                  "raw": "Partial<TextProps>"
                },
                {
                  "name": "literal",
                  "value": "'children'"
                }
              ],
              "raw": "Omit<Partial<TextProps>, 'children'>"
            },
            "description": "Optional props to be passed to the label's Text component"
          },
          "inputProps": {
            "required": false,
            "tsType": {
              "name": "intersection",
              "raw": "Omit<\n  ComponentProps<'input'>,\n  'type' | 'checked' | 'onChange' | 'disabled'\n> & {\n  [key: `data-${string}`]: string;\n}",
              "elements": [
                {
                  "name": "Omit",
                  "elements": [
                    {
                      "name": "ComponentProps",
                      "elements": [
                        {
                          "name": "literal",
                          "value": "'input'"
                        }
                      ],
                      "raw": "ComponentProps<'input'>"
                    },
                    {
                      "name": "union",
                      "raw": "'type' | 'checked' | 'onChange' | 'disabled'",
                      "elements": [
                        {
                          "name": "literal",
                          "value": "'type'"
                        },
                        {
                          "name": "literal",
                          "value": "'checked'"
                        },
                        {
                          "name": "literal",
                          "value": "'onChange'"
                        },
                        {
                          "name": "literal",
                          "value": "'disabled'"
                        }
                      ]
                    }
                  ],
                  "raw": "Omit<\n  ComponentProps<'input'>,\n  'type' | 'checked' | 'onChange' | 'disabled'\n>"
                },
                {
                  "name": "signature",
                  "type": "object",
                  "raw": "{\n  [key: `data-${string}`]: string;\n}",
                  "signature": {
                    "properties": [
                      {
                        "key": {
                          "name": "literal",
                          "value": "`data-${string}`"
                        },
                        "value": {
                          "name": "string",
                          "required": true
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "description": "Optional props passed to the native input element (the visible control).\nPrefer putting test ids here — the input is Selenium-visible and clickable."
          },
          "checkboxContainerProps": {
            "required": false,
            "tsType": {
              "name": "intersection",
              "raw": "(Omit<ComponentProps<'div'>, 'children'> & {\n  className?: string;\n}) &\n  Record<string, unknown>",
              "elements": [
                {
                  "name": "unknown"
                },
                {
                  "name": "Record",
                  "elements": [
                    {
                      "name": "string"
                    },
                    {
                      "name": "unknown"
                    }
                  ],
                  "raw": "Record<string, unknown>"
                }
              ]
            },
            "description": "Optional props passed to the relative wrapper around the input and check icon."
          },
          "checkedIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional props to be passed to the check Icon component"
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the Checkbox component.\nThese classes will be merged with the component's default classes using twMerge."
          },
          "style": {
            "required": false,
            "tsType": {
              "name": "ReactCSSProperties",
              "raw": "React.CSSProperties"
            },
            "description": "Optional CSS styles for the outer container."
          },
          "isDisabled": {
            "defaultValue": {
              "value": "false",
              "computed": false
            },
            "required": false
          },
          "isInvalid": {
            "defaultValue": {
              "value": "false",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-checkbox--default",
          "name": "Default",
          "snippet": "const Default = () => <CheckboxStory isDisabled={false} isInvalid={false} label=\"Checkbox label\" />;"
        },
        {
          "id": "react-components-checkbox--is-selected",
          "name": "Is Selected",
          "snippet": "const IsSelected = () => (\n  <div className=\"flex flex-col gap-4\">\n    <CheckboxStory\n      id=\"unchecked-checkbox\"\n      isSelected={false}\n      label=\"Unchecked\"\n    />\n    <CheckboxStory id=\"checked-checkbox\" isSelected label=\"Checked\" />\n  </div>\n);"
        },
        {
          "id": "react-components-checkbox--is-disabled",
          "name": "Is Disabled",
          "snippet": "const IsDisabled = () => (\n  <div className=\"flex flex-col gap-4\">\n    <CheckboxStory id=\"enabled-checkbox\" isSelected={false} label=\"Enabled\" />\n    <CheckboxStory\n      id=\"disabled-checkbox\"\n      isSelected={false}\n      isDisabled\n      label=\"Disabled\"\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-checkbox--is-invalid",
          "name": "Is Invalid",
          "snippet": "const IsInvalid = () => (\n  <div className=\"flex flex-col gap-4\">\n    <CheckboxStory id=\"normal-checkbox\" isSelected={false} label=\"Normal\" />\n    <CheckboxStory\n      id=\"invalid-checkbox\"\n      isSelected={false}\n      isInvalid\n      label=\"Invalid\"\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-checkbox--label",
          "name": "Label",
          "snippet": "const Label = () => (\n  <div className=\"flex flex-col gap-4\">\n    <CheckboxStory\n      id=\"no-label-checkbox\"\n      isSelected={false}\n      aria-label=\"Checkbox without visible label\"\n    />\n    <CheckboxStory\n      id=\"with-label-checkbox\"\n      isSelected={false}\n      label=\"Checkbox with label\"\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-checkbox--ref",
          "name": "Ref",
          "snippet": "const Ref = () => {\n  const [isSelected, setIsSelected] = useState(false);\n  const checkboxRef = useRef<{ toggle: () => void }>(null);\n\n  return (\n    <div className=\"inline-flex flex-col gap-4\">\n      <Checkbox\n        id=\"ref-controlled-checkbox\"\n        ref={checkboxRef}\n        isSelected={isSelected}\n        onChange={() => setIsSelected(!isSelected)}\n        label=\"Toggle me via ref\"\n      />\n      <Button\n        variant={ButtonVariant.Primary}\n        onClick={() => checkboxRef.current?.toggle()}\n      >\n        Toggle checkbox\n      </Button>\n    </div>\n  );\n};"
        }
      ],
      "import": "import { Button, Checkbox } from '@metamask/design-system-react';"
    },
    "react-components-formtextfield": {
      "id": "react-components-formtextfield",
      "name": "FormTextField",
      "path": "../../packages/design-system-react/src/components/FormTextField/FormTextField.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "FormTextField",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/FormTextField/FormTextField.tsx",
        "actualName": "FormTextField",
        "exportName": "FormTextField"
      },
      "stories": [
        {
          "id": "react-components-formtextfield--default",
          "name": "Default",
          "snippet": "const Default = (args: FormTextFieldProps) => {\n    const [value, setValue] = useState(args.value);\n\n    useEffect(() => {\n      setValue(args.value);\n    }, [args.value]);\n\n    return (\n        <FormTextField\n            id=\"email\"\n            label=\"Email\"\n            placeholder=\"you@example.com\"\n            helpText=\"We never share your email.\"\n            value={value}\n            onChange={(event) => {\n              setValue(event.target.value);\n              args.onChange?.(event);\n            }} />\n    );\n};"
        },
        {
          "id": "react-components-formtextfield--label",
          "name": "Label",
          "snippet": "const Label = () => {\n  const [value, setValue] = useState('');\n\n  return (\n    <FormTextField\n      id=\"form-text-field-label\"\n      label=\"Recipient address\"\n      placeholder=\"0x…\"\n      value={value}\n      onChange={(event) => setValue(event.target.value)}\n    />\n  );\n};"
        },
        {
          "id": "react-components-formtextfield--help-text",
          "name": "Help Text",
          "snippet": "const HelpText = () => {\n  const [value, setValue] = useState('');\n\n  return (\n    <FormTextField\n      helpText=\"We never share your email.\"\n      id=\"form-text-field-help\"\n      label=\"Email\"\n      placeholder=\"you@example.com\"\n      value={value}\n      onChange={(event) => setValue(event.target.value)}\n    />\n  );\n};"
        },
        {
          "id": "react-components-formtextfield--is-error",
          "name": "Is Error",
          "snippet": "const IsError = () => {\n  const [value, setValue] = useState('');\n\n  return (\n    <FormTextField\n      helpText=\"This field is required\"\n      id=\"form-text-field-error\"\n      isError\n      label=\"Amount\"\n      placeholder=\"0.00\"\n      value={value}\n      onChange={(event) => setValue(event.target.value)}\n    />\n  );\n};"
        },
        {
          "id": "react-components-formtextfield--is-disabled",
          "name": "Is Disabled",
          "snippet": "const IsDisabled = () => {\n  const [value, setValue] = useState('Not editable');\n\n  return (\n    <FormTextField\n      id=\"form-text-field-disabled\"\n      isDisabled\n      label=\"Amount\"\n      placeholder=\"0.00\"\n      value={value}\n      onChange={(event) => setValue(event.target.value)}\n    />\n  );\n};"
        },
        {
          "id": "react-components-formtextfield--is-read-only",
          "name": "Is Read Only",
          "snippet": "const IsReadOnly = () => (\n  <FormTextField\n    id=\"form-text-field-readonly\"\n    isReadOnly\n    label=\"Amount\"\n    value=\"Read-only value\"\n  />\n);"
        },
        {
          "id": "react-components-formtextfield--size",
          "name": "Size",
          "snippet": "const Size = () => {\n  const [smValue, setSmValue] = useState('');\n  const [mdValue, setMdValue] = useState('');\n  const [lgValue, setLgValue] = useState('');\n\n  return (\n    <Box flexDirection={BoxFlexDirection.Column} gap={4}>\n      <FormTextField\n        id=\"form-text-field-sm\"\n        label=\"Sm\"\n        placeholder=\"Sm\"\n        size={TextFieldSize.Sm}\n        value={smValue}\n        onChange={(event) => setSmValue(event.target.value)}\n      />\n      <FormTextField\n        id=\"form-text-field-md\"\n        label=\"Md\"\n        placeholder=\"Md\"\n        size={TextFieldSize.Md}\n        value={mdValue}\n        onChange={(event) => setMdValue(event.target.value)}\n      />\n      <FormTextField\n        id=\"form-text-field-lg\"\n        label=\"Lg\"\n        placeholder=\"Lg\"\n        size={TextFieldSize.Lg}\n        value={lgValue}\n        onChange={(event) => setLgValue(event.target.value)}\n      />\n    </Box>\n  );\n};"
        }
      ],
      "import": "import { Box, FormTextField } from '@metamask/design-system-react';"
    },
    "react-components-headerbase": {
      "id": "react-components-headerbase",
      "name": "HeaderBase",
      "path": "../../packages/design-system-react/src/components/HeaderBase/HeaderBase.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "HeaderBase",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/HeaderBase/HeaderBase.tsx",
        "actualName": "HeaderBase",
        "exportName": "HeaderBase",
        "props": {
          "children": {
            "required": false,
            "tsType": {
              "name": "ReactNode"
            },
            "description": "Title content rendered in the centered column. The title stays\nhorizontally centered regardless of the side accessories' widths\n(CSS Grid handles the equal-sidebar layout — no JS measurement needed)."
          },
          "childrenWrapperProps": {
            "required": false,
            "tsType": {
              "name": "intersection",
              "raw": "Omit<BoxProps, 'children' | 'asChild'> & {\n  [key: `data-${string}`]: string | undefined;\n}",
              "elements": [
                {
                  "name": "Omit",
                  "elements": [
                    {
                      "name": "intersection",
                      "raw": "ComponentProps<'div'> &\nBoxPropsShared & {\n  /**\n   * Optional prop for additional CSS classes to be applied to the Box component.\n   */\n  className?: string;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a div element\n   *\n   * @default false\n   */\n  asChild?: boolean;\n}",
                      "elements": [
                        {
                          "name": "ComponentProps",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'div'"
                            }
                          ],
                          "raw": "ComponentProps<'div'>"
                        },
                        {
                          "name": "BoxPropsShared"
                        },
                        {
                          "name": "signature",
                          "type": "object",
                          "raw": "{\n  /**\n   * Optional prop for additional CSS classes to be applied to the Box component.\n   */\n  className?: string;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a div element\n   *\n   * @default false\n   */\n  asChild?: boolean;\n}",
                          "signature": {
                            "properties": [
                              {
                                "key": "className",
                                "value": {
                                  "name": "string",
                                  "required": false
                                },
                                "description": "Optional prop for additional CSS classes to be applied to the Box component."
                              },
                              {
                                "key": "asChild",
                                "value": {
                                  "name": "boolean",
                                  "required": false
                                },
                                "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a div element\n\n@default false"
                              }
                            ]
                          }
                        }
                      ]
                    },
                    {
                      "name": "union",
                      "raw": "'children' | 'asChild'",
                      "elements": [
                        {
                          "name": "literal",
                          "value": "'children'"
                        },
                        {
                          "name": "literal",
                          "value": "'asChild'"
                        }
                      ]
                    }
                  ],
                  "raw": "Omit<BoxProps, 'children' | 'asChild'>"
                },
                {
                  "name": "signature",
                  "type": "object",
                  "raw": "{\n  [key: `data-${string}`]: string | undefined;\n}",
                  "signature": {
                    "properties": [
                      {
                        "key": {
                          "name": "literal",
                          "value": "`data-${string}`"
                        },
                        "value": {
                          "name": "union",
                          "raw": "string | undefined",
                          "elements": [
                            {
                              "name": "string"
                            },
                            {
                              "name": "undefined"
                            }
                          ],
                          "required": true
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "description": "Props forwarded to the `Box` wrapping `children`. Use this to add\n`data-testid`, override layout, or apply Tailwind utilities via\n`className`."
          },
          "startAccessory": {
            "required": false,
            "tsType": {
              "name": "ReactNode"
            },
            "description": "Content rendered in the start (left in LTR) column. Typically a back\n`ButtonIcon` or similar leading affordance."
          },
          "startAccessoryWrapperProps": {
            "required": false,
            "tsType": {
              "name": "intersection",
              "raw": "Omit<BoxProps, 'children' | 'asChild'> & {\n  [key: `data-${string}`]: string | undefined;\n}",
              "elements": [
                {
                  "name": "Omit",
                  "elements": [
                    {
                      "name": "intersection",
                      "raw": "ComponentProps<'div'> &\nBoxPropsShared & {\n  /**\n   * Optional prop for additional CSS classes to be applied to the Box component.\n   */\n  className?: string;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a div element\n   *\n   * @default false\n   */\n  asChild?: boolean;\n}",
                      "elements": [
                        {
                          "name": "ComponentProps",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'div'"
                            }
                          ],
                          "raw": "ComponentProps<'div'>"
                        },
                        {
                          "name": "BoxPropsShared"
                        },
                        {
                          "name": "signature",
                          "type": "object",
                          "raw": "{\n  /**\n   * Optional prop for additional CSS classes to be applied to the Box component.\n   */\n  className?: string;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a div element\n   *\n   * @default false\n   */\n  asChild?: boolean;\n}",
                          "signature": {
                            "properties": [
                              {
                                "key": "className",
                                "value": {
                                  "name": "string",
                                  "required": false
                                },
                                "description": "Optional prop for additional CSS classes to be applied to the Box component."
                              },
                              {
                                "key": "asChild",
                                "value": {
                                  "name": "boolean",
                                  "required": false
                                },
                                "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a div element\n\n@default false"
                              }
                            ]
                          }
                        }
                      ]
                    },
                    {
                      "name": "union",
                      "raw": "'children' | 'asChild'",
                      "elements": [
                        {
                          "name": "literal",
                          "value": "'children'"
                        },
                        {
                          "name": "literal",
                          "value": "'asChild'"
                        }
                      ]
                    }
                  ],
                  "raw": "Omit<BoxProps, 'children' | 'asChild'>"
                },
                {
                  "name": "signature",
                  "type": "object",
                  "raw": "{\n  [key: `data-${string}`]: string | undefined;\n}",
                  "signature": {
                    "properties": [
                      {
                        "key": {
                          "name": "literal",
                          "value": "`data-${string}`"
                        },
                        "value": {
                          "name": "union",
                          "raw": "string | undefined",
                          "elements": [
                            {
                              "name": "string"
                            },
                            {
                              "name": "undefined"
                            }
                          ],
                          "required": true
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "description": "Props forwarded to the `Box` wrapping `startAccessory`."
          },
          "endAccessory": {
            "required": false,
            "tsType": {
              "name": "ReactNode"
            },
            "description": "Content rendered in the end (right in LTR) column. Typically a close\n`ButtonIcon` or similar trailing affordance."
          },
          "endAccessoryWrapperProps": {
            "required": false,
            "tsType": {
              "name": "intersection",
              "raw": "Omit<BoxProps, 'children' | 'asChild'> & {\n  [key: `data-${string}`]: string | undefined;\n}",
              "elements": [
                {
                  "name": "Omit",
                  "elements": [
                    {
                      "name": "intersection",
                      "raw": "ComponentProps<'div'> &\nBoxPropsShared & {\n  /**\n   * Optional prop for additional CSS classes to be applied to the Box component.\n   */\n  className?: string;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a div element\n   *\n   * @default false\n   */\n  asChild?: boolean;\n}",
                      "elements": [
                        {
                          "name": "ComponentProps",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'div'"
                            }
                          ],
                          "raw": "ComponentProps<'div'>"
                        },
                        {
                          "name": "BoxPropsShared"
                        },
                        {
                          "name": "signature",
                          "type": "object",
                          "raw": "{\n  /**\n   * Optional prop for additional CSS classes to be applied to the Box component.\n   */\n  className?: string;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a div element\n   *\n   * @default false\n   */\n  asChild?: boolean;\n}",
                          "signature": {
                            "properties": [
                              {
                                "key": "className",
                                "value": {
                                  "name": "string",
                                  "required": false
                                },
                                "description": "Optional prop for additional CSS classes to be applied to the Box component."
                              },
                              {
                                "key": "asChild",
                                "value": {
                                  "name": "boolean",
                                  "required": false
                                },
                                "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a div element\n\n@default false"
                              }
                            ]
                          }
                        }
                      ]
                    },
                    {
                      "name": "union",
                      "raw": "'children' | 'asChild'",
                      "elements": [
                        {
                          "name": "literal",
                          "value": "'children'"
                        },
                        {
                          "name": "literal",
                          "value": "'asChild'"
                        }
                      ]
                    }
                  ],
                  "raw": "Omit<BoxProps, 'children' | 'asChild'>"
                },
                {
                  "name": "signature",
                  "type": "object",
                  "raw": "{\n  [key: `data-${string}`]: string | undefined;\n}",
                  "signature": {
                    "properties": [
                      {
                        "key": {
                          "name": "literal",
                          "value": "`data-${string}`"
                        },
                        "value": {
                          "name": "union",
                          "raw": "string | undefined",
                          "elements": [
                            {
                              "name": "string"
                            },
                            {
                              "name": "undefined"
                            }
                          ],
                          "required": true
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "description": "Props forwarded to the `Box` wrapping `endAccessory`."
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the HeaderBase\nroot. Merged with the component's defaults via `twMerge`."
          }
        }
      },
      "stories": [
        {
          "id": "react-components-headerbase--default",
          "name": "Default",
          "snippet": "const Default = () => (\n  <HeaderBase\n    startAccessory={\n      <ButtonIcon\n        size={ButtonIconSize.Sm}\n        iconName={IconName.ArrowLeft}\n        ariaLabel=\"back\"\n      />\n    }\n    endAccessory={\n      <ButtonIcon\n        size={ButtonIconSize.Sm}\n        iconName={IconName.Close}\n        ariaLabel=\"close\"\n      />\n    }\n  >\n    <Title>Title is sentence case no period</Title>\n  </HeaderBase>\n);"
        },
        {
          "id": "react-components-headerbase--children",
          "name": "Children",
          "snippet": "const Children = () => (\n  <HeaderBase>\n    <Title>Title is sentence case no period</Title>\n  </HeaderBase>\n);"
        },
        {
          "id": "react-components-headerbase--start-accessory",
          "name": "Start Accessory",
          "snippet": "const StartAccessory = () => (\n  <HeaderBase\n    startAccessory={\n      <ButtonIcon\n        size={ButtonIconSize.Sm}\n        iconName={IconName.ArrowLeft}\n        ariaLabel=\"back\"\n      />\n    }\n  >\n    <Title>Title is sentence case no period</Title>\n  </HeaderBase>\n);"
        },
        {
          "id": "react-components-headerbase--end-accessory",
          "name": "End Accessory",
          "snippet": "const EndAccessory = () => (\n  <HeaderBase\n    endAccessory={\n      <ButtonIcon\n        size={ButtonIconSize.Sm}\n        iconName={IconName.Close}\n        ariaLabel=\"close\"\n      />\n    }\n  >\n    <Title>Title is sentence case no period</Title>\n  </HeaderBase>\n);"
        },
        {
          "id": "react-components-headerbase--use-case-demos",
          "name": "Use Case Demos",
          "snippet": "const UseCaseDemos = () => (\n  <Box flexDirection=\"flex-col\" gap={4}>\n    <Text>children only</Text>\n    <Box backgroundColor={BoxBackgroundColor.WarningMuted}>\n      <HeaderBase>\n        <Title>Title is sentence case no period</Title>\n      </HeaderBase>\n    </Box>\n\n    <Text>children + endAccessory</Text>\n    <Box backgroundColor={BoxBackgroundColor.WarningMuted}>\n      <HeaderBase\n        endAccessory={\n          <ButtonIcon\n            size={ButtonIconSize.Sm}\n            iconName={IconName.Close}\n            ariaLabel=\"close\"\n          />\n        }\n      >\n        <Title>Title is sentence case no period</Title>\n      </HeaderBase>\n    </Box>\n\n    <Text>children + startAccessory</Text>\n    <Box backgroundColor={BoxBackgroundColor.WarningMuted}>\n      <HeaderBase\n        startAccessory={\n          <ButtonIcon\n            size={ButtonIconSize.Sm}\n            iconName={IconName.ArrowLeft}\n            ariaLabel=\"back\"\n          />\n        }\n      >\n        <Title>Title is sentence case no period</Title>\n      </HeaderBase>\n    </Box>\n\n    <Text>children + startAccessory + endAccessory</Text>\n    <Box backgroundColor={BoxBackgroundColor.WarningMuted}>\n      <HeaderBase\n        startAccessory={\n          <ButtonIcon\n            size={ButtonIconSize.Sm}\n            iconName={IconName.ArrowLeft}\n            ariaLabel=\"back\"\n          />\n        }\n        endAccessory={\n          <ButtonIcon\n            size={ButtonIconSize.Sm}\n            iconName={IconName.Close}\n            ariaLabel=\"close\"\n          />\n        }\n      >\n        <Title>Title is sentence case no period</Title>\n      </HeaderBase>\n    </Box>\n\n    <Text>startAccessory + endAccessory only (no title)</Text>\n    <Box backgroundColor={BoxBackgroundColor.WarningMuted}>\n      <HeaderBase\n        startAccessory={\n          <ButtonIcon\n            size={ButtonIconSize.Sm}\n            iconName={IconName.ArrowLeft}\n            ariaLabel=\"back\"\n          />\n        }\n        endAccessory={\n          <ButtonIcon\n            size={ButtonIconSize.Sm}\n            iconName={IconName.Close}\n            ariaLabel=\"close\"\n          />\n        }\n      />\n    </Box>\n  </Box>\n);"
        }
      ],
      "import": "import { Box, ButtonIcon, HeaderBase, Text } from '@metamask/design-system-react';"
    },
    "react-components-headersubpage": {
      "id": "react-components-headersubpage",
      "name": "HeaderSubpage",
      "path": "../../packages/design-system-react/src/components/HeaderSubpage/HeaderSubpage.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "HeaderSubpage",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/HeaderSubpage/HeaderSubpage.tsx",
        "actualName": "HeaderSubpage",
        "exportName": "HeaderSubpage",
        "props": {
          "titleProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Props passed to the title Text component when title is a string."
          },
          "descriptionProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "TextPropsShared & {\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "TextPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for inline styles\n   */\n  style?: CSSProperties;\n  /**\n   * Optional prop for additional CSS classes to be applied to the Text component.\n   */\n  className?: string;\n  /**\n   * Optional prop to apply text transformation to the content.\n   * Options: Uppercase, Lowercase, Capitalize, Normal\n   */\n  textTransform?: TextTransform;\n  /**\n   * Optional prop to control the text alignment within its container.\n   * Options: Left, Center, Right, Justify\n   */\n  textAlign?: TextAlign;\n  /**\n   * Optional prop to determine how text should wrap when it reaches the edge of its container.\n   * Options: BreakWord, Anywhere, Normal\n   */\n  overflowWrap?: OverflowWrap;\n  /**\n   * Optional boolean that adds an ellipsis (...) when text overflows its container.\n   *\n   * @default false\n   */\n  ellipsis?: boolean;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a default DOM element.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n  /**\n   * Optional prop for testing purposes\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "style",
                            "value": {
                              "name": "CSSProperties",
                              "required": false
                            },
                            "description": "Optional prop for inline styles"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the Text component."
                          },
                          {
                            "key": "textTransform",
                            "value": {
                              "name": "TextTransform",
                              "required": false
                            },
                            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
                          },
                          {
                            "key": "textAlign",
                            "value": {
                              "name": "TextAlign",
                              "required": false
                            },
                            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
                          },
                          {
                            "key": "overflowWrap",
                            "value": {
                              "name": "OverflowWrap",
                              "required": false
                            },
                            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
                          },
                          {
                            "key": "ellipsis",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
                          },
                          {
                            "key": "asChild",
                            "value": {
                              "name": "boolean",
                              "required": false
                            },
                            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for testing purposes"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<TextProps>"
            },
            "description": "Props passed to the description Text component when description is a string."
          },
          "backButtonProps": {
            "required": false,
            "tsType": {
              "name": "intersection",
              "raw": "Partial<Omit<ButtonIconProps, 'iconName'>> & {\n  [key: `data-${string}`]: string | undefined;\n}",
              "elements": [
                {
                  "name": "Partial",
                  "elements": [
                    {
                      "name": "Omit",
                      "elements": [
                        {
                          "name": "intersection",
                          "raw": "ComponentProps<'button'> &\nButtonIconPropsShared & {\n  /**\n   * Optional prop to pass additional properties to the icon\n   */\n  iconProps?: Partial<IconProps>;\n  /**\n   * Required prop to provide an accessible label for the button\n   */\n  ariaLabel: string;\n  /**\n   * Optional prop for additional CSS classes to be applied to the ButtonIcon component\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n}",
                          "elements": [
                            {
                              "name": "ComponentProps",
                              "elements": [
                                {
                                  "name": "literal",
                                  "value": "'button'"
                                }
                              ],
                              "raw": "ComponentProps<'button'>"
                            },
                            {
                              "name": "ButtonIconPropsShared"
                            },
                            {
                              "name": "signature",
                              "type": "object",
                              "raw": "{\n  /**\n   * Optional prop to pass additional properties to the icon\n   */\n  iconProps?: Partial<IconProps>;\n  /**\n   * Required prop to provide an accessible label for the button\n   */\n  ariaLabel: string;\n  /**\n   * Optional prop for additional CSS classes to be applied to the ButtonIcon component\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n}",
                              "signature": {
                                "properties": [
                                  {
                                    "key": "iconProps",
                                    "value": {
                                      "name": "Partial",
                                      "elements": [
                                        {
                                          "name": "intersection",
                                          "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                                          "elements": [
                                            {
                                              "name": "SVGProps",
                                              "elements": [
                                                {
                                                  "name": "ComponentPropsWithoutRef",
                                                  "elements": [
                                                    {
                                                      "name": "literal",
                                                      "value": "'svg'"
                                                    }
                                                  ],
                                                  "raw": "ComponentPropsWithoutRef<'svg'>"
                                                }
                                              ],
                                              "raw": "SVGProps<SVGElementProps>"
                                            },
                                            {
                                              "name": "IconPropsShared"
                                            },
                                            {
                                              "name": "signature",
                                              "type": "object",
                                              "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                                              "signature": {
                                                "properties": [
                                                  {
                                                    "key": "className",
                                                    "value": {
                                                      "name": "string",
                                                      "required": false
                                                    },
                                                    "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                                                  },
                                                  {
                                                    "key": "style",
                                                    "value": {
                                                      "name": "ReactCSSProperties",
                                                      "raw": "React.CSSProperties",
                                                      "required": false
                                                    },
                                                    "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                                                  },
                                                  {
                                                    "key": "data-testid",
                                                    "value": {
                                                      "name": "string",
                                                      "required": false
                                                    },
                                                    "description": "Optional prop to add a test id to the icon"
                                                  }
                                                ]
                                              }
                                            }
                                          ]
                                        }
                                      ],
                                      "raw": "Partial<IconProps>",
                                      "required": false
                                    },
                                    "description": "Optional prop to pass additional properties to the icon"
                                  },
                                  {
                                    "key": "ariaLabel",
                                    "value": {
                                      "name": "string",
                                      "required": true
                                    },
                                    "description": "Required prop to provide an accessible label for the button"
                                  },
                                  {
                                    "key": "className",
                                    "value": {
                                      "name": "string",
                                      "required": false
                                    },
                                    "description": "Optional prop for additional CSS classes to be applied to the ButtonIcon component"
                                  },
                                  {
                                    "key": "style",
                                    "value": {
                                      "name": "ReactCSSProperties",
                                      "raw": "React.CSSProperties",
                                      "required": false
                                    },
                                    "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        {
                          "name": "literal",
                          "value": "'iconName'"
                        }
                      ],
                      "raw": "Omit<ButtonIconProps, 'iconName'>"
                    }
                  ],
                  "raw": "Partial<Omit<ButtonIconProps, 'iconName'>>"
                },
                {
                  "name": "signature",
                  "type": "object",
                  "raw": "{\n  [key: `data-${string}`]: string | undefined;\n}",
                  "signature": {
                    "properties": [
                      {
                        "key": {
                          "name": "literal",
                          "value": "`data-${string}`"
                        },
                        "value": {
                          "name": "union",
                          "raw": "string | undefined",
                          "elements": [
                            {
                              "name": "string"
                            },
                            {
                              "name": "undefined"
                            }
                          ],
                          "required": true
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "description": "Additional props to pass to the back ButtonIcon.\nIf provided, a back button will be rendered with these props spread."
          },
          "closeButtonProps": {
            "required": false,
            "tsType": {
              "name": "intersection",
              "raw": "Partial<Omit<ButtonIconProps, 'iconName'>> & {\n  [key: `data-${string}`]: string | undefined;\n}",
              "elements": [
                {
                  "name": "Partial",
                  "elements": [
                    {
                      "name": "Omit",
                      "elements": [
                        {
                          "name": "intersection",
                          "raw": "ComponentProps<'button'> &\nButtonIconPropsShared & {\n  /**\n   * Optional prop to pass additional properties to the icon\n   */\n  iconProps?: Partial<IconProps>;\n  /**\n   * Required prop to provide an accessible label for the button\n   */\n  ariaLabel: string;\n  /**\n   * Optional prop for additional CSS classes to be applied to the ButtonIcon component\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n}",
                          "elements": [
                            {
                              "name": "ComponentProps",
                              "elements": [
                                {
                                  "name": "literal",
                                  "value": "'button'"
                                }
                              ],
                              "raw": "ComponentProps<'button'>"
                            },
                            {
                              "name": "ButtonIconPropsShared"
                            },
                            {
                              "name": "signature",
                              "type": "object",
                              "raw": "{\n  /**\n   * Optional prop to pass additional properties to the icon\n   */\n  iconProps?: Partial<IconProps>;\n  /**\n   * Required prop to provide an accessible label for the button\n   */\n  ariaLabel: string;\n  /**\n   * Optional prop for additional CSS classes to be applied to the ButtonIcon component\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n}",
                              "signature": {
                                "properties": [
                                  {
                                    "key": "iconProps",
                                    "value": {
                                      "name": "Partial",
                                      "elements": [
                                        {
                                          "name": "intersection",
                                          "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                                          "elements": [
                                            {
                                              "name": "SVGProps",
                                              "elements": [
                                                {
                                                  "name": "ComponentPropsWithoutRef",
                                                  "elements": [
                                                    {
                                                      "name": "literal",
                                                      "value": "'svg'"
                                                    }
                                                  ],
                                                  "raw": "ComponentPropsWithoutRef<'svg'>"
                                                }
                                              ],
                                              "raw": "SVGProps<SVGElementProps>"
                                            },
                                            {
                                              "name": "IconPropsShared"
                                            },
                                            {
                                              "name": "signature",
                                              "type": "object",
                                              "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                                              "signature": {
                                                "properties": [
                                                  {
                                                    "key": "className",
                                                    "value": {
                                                      "name": "string",
                                                      "required": false
                                                    },
                                                    "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                                                  },
                                                  {
                                                    "key": "style",
                                                    "value": {
                                                      "name": "ReactCSSProperties",
                                                      "raw": "React.CSSProperties",
                                                      "required": false
                                                    },
                                                    "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                                                  },
                                                  {
                                                    "key": "data-testid",
                                                    "value": {
                                                      "name": "string",
                                                      "required": false
                                                    },
                                                    "description": "Optional prop to add a test id to the icon"
                                                  }
                                                ]
                                              }
                                            }
                                          ]
                                        }
                                      ],
                                      "raw": "Partial<IconProps>",
                                      "required": false
                                    },
                                    "description": "Optional prop to pass additional properties to the icon"
                                  },
                                  {
                                    "key": "ariaLabel",
                                    "value": {
                                      "name": "string",
                                      "required": true
                                    },
                                    "description": "Required prop to provide an accessible label for the button"
                                  },
                                  {
                                    "key": "className",
                                    "value": {
                                      "name": "string",
                                      "required": false
                                    },
                                    "description": "Optional prop for additional CSS classes to be applied to the ButtonIcon component"
                                  },
                                  {
                                    "key": "style",
                                    "value": {
                                      "name": "ReactCSSProperties",
                                      "raw": "React.CSSProperties",
                                      "required": false
                                    },
                                    "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        {
                          "name": "literal",
                          "value": "'iconName'"
                        }
                      ],
                      "raw": "Omit<ButtonIconProps, 'iconName'>"
                    }
                  ],
                  "raw": "Partial<Omit<ButtonIconProps, 'iconName'>>"
                },
                {
                  "name": "signature",
                  "type": "object",
                  "raw": "{\n  [key: `data-${string}`]: string | undefined;\n}",
                  "signature": {
                    "properties": [
                      {
                        "key": {
                          "name": "literal",
                          "value": "`data-${string}`"
                        },
                        "value": {
                          "name": "union",
                          "raw": "string | undefined",
                          "elements": [
                            {
                              "name": "string"
                            },
                            {
                              "name": "undefined"
                            }
                          ],
                          "required": true
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "description": "Additional props to pass to the close ButtonIcon.\nIf provided, a close button will be added with these props spread."
          },
          "startButtonIconProps": {
            "required": false,
            "tsType": {
              "name": "intersection",
              "raw": "ButtonIconProps & {\n  [key: `data-${string}`]: string | undefined;\n}",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "ComponentProps<'button'> &\nButtonIconPropsShared & {\n  /**\n   * Optional prop to pass additional properties to the icon\n   */\n  iconProps?: Partial<IconProps>;\n  /**\n   * Required prop to provide an accessible label for the button\n   */\n  ariaLabel: string;\n  /**\n   * Optional prop for additional CSS classes to be applied to the ButtonIcon component\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n}",
                  "elements": [
                    {
                      "name": "ComponentProps",
                      "elements": [
                        {
                          "name": "literal",
                          "value": "'button'"
                        }
                      ],
                      "raw": "ComponentProps<'button'>"
                    },
                    {
                      "name": "ButtonIconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop to pass additional properties to the icon\n   */\n  iconProps?: Partial<IconProps>;\n  /**\n   * Required prop to provide an accessible label for the button\n   */\n  ariaLabel: string;\n  /**\n   * Optional prop for additional CSS classes to be applied to the ButtonIcon component\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "iconProps",
                            "value": {
                              "name": "Partial",
                              "elements": [
                                {
                                  "name": "intersection",
                                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                                  "elements": [
                                    {
                                      "name": "SVGProps",
                                      "elements": [
                                        {
                                          "name": "ComponentPropsWithoutRef",
                                          "elements": [
                                            {
                                              "name": "literal",
                                              "value": "'svg'"
                                            }
                                          ],
                                          "raw": "ComponentPropsWithoutRef<'svg'>"
                                        }
                                      ],
                                      "raw": "SVGProps<SVGElementProps>"
                                    },
                                    {
                                      "name": "IconPropsShared"
                                    },
                                    {
                                      "name": "signature",
                                      "type": "object",
                                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                                      "signature": {
                                        "properties": [
                                          {
                                            "key": "className",
                                            "value": {
                                              "name": "string",
                                              "required": false
                                            },
                                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                                          },
                                          {
                                            "key": "style",
                                            "value": {
                                              "name": "ReactCSSProperties",
                                              "raw": "React.CSSProperties",
                                              "required": false
                                            },
                                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                                          },
                                          {
                                            "key": "data-testid",
                                            "value": {
                                              "name": "string",
                                              "required": false
                                            },
                                            "description": "Optional prop to add a test id to the icon"
                                          }
                                        ]
                                      }
                                    }
                                  ]
                                }
                              ],
                              "raw": "Partial<IconProps>",
                              "required": false
                            },
                            "description": "Optional prop to pass additional properties to the icon"
                          },
                          {
                            "key": "ariaLabel",
                            "value": {
                              "name": "string",
                              "required": true
                            },
                            "description": "Required prop to provide an accessible label for the button"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the ButtonIcon component"
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          }
                        ]
                      }
                    }
                  ]
                },
                {
                  "name": "signature",
                  "type": "object",
                  "raw": "{\n  [key: `data-${string}`]: string | undefined;\n}",
                  "signature": {
                    "properties": [
                      {
                        "key": {
                          "name": "literal",
                          "value": "`data-${string}`"
                        },
                        "value": {
                          "name": "union",
                          "raw": "string | undefined",
                          "elements": [
                            {
                              "name": "string"
                            },
                            {
                              "name": "undefined"
                            }
                          ],
                          "required": true
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "description": "Optional ButtonIcon props to render as the start accessory.\nOnly used if `startAccessory` is not provided."
          },
          "endButtonIconProps": {
            "required": false,
            "tsType": {
              "name": "Array",
              "elements": [
                {
                  "name": "unknown"
                }
              ],
              "raw": "(ButtonIconProps & {\n  [key: `data-${string}`]: string | undefined;\n})[]"
            },
            "description": "Optional array of ButtonIcon props to render as additional end accessories.\nRendered in reverse order (first item appears rightmost).\nOnly used if `endAccessory` is not provided."
          },
          "accessoryGap": {
            "required": false,
            "tsType": {
              "name": "intersection['gap']",
              "raw": "BoxProps['gap']"
            },
            "description": "Gap between start/end accessories and the content.\nUses spacing scale (1 = 4px, 2 = 8px, etc.).\n\n@default 2",
            "defaultValue": {
              "value": "2",
              "computed": false
            }
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the HeaderSubpage component."
          },
          "style": {
            "required": false,
            "tsType": {
              "name": "ReactCSSProperties",
              "raw": "React.CSSProperties"
            },
            "description": "Optional CSS styles to be applied to the component."
          }
        }
      },
      "stories": [
        {
          "id": "react-components-headersubpage--default",
          "name": "Default",
          "snippet": "const Default = () => <HeaderSubpage\n    avatar={(<AvatarToken\n      src=\"https://cryptologos.cc/logos/ethereum-eth-logo.svg\"\n      size={AvatarTokenSize.Lg}\n      name={ETH_TITLE}\n    />)}\n    title=\"Ethereum\"\n    description=\"ETH\"\n    titleEndAccessory={(<Icon name={IconName.VerifiedFilled} color={IconColor.PrimaryDefault} />)}\n    onBack={() => console.log('Back pressed')} />;",
          "warning": "Incomplete snippet: `ETH_TITLE` could not be resolved statically."
        },
        {
          "id": "react-components-headersubpage--title",
          "name": "Title",
          "snippet": "const Title = () => <HeaderSubpage\n    avatar={undefined}\n    title=\"Settings\"\n    description=\"ETH\"\n    titleEndAccessory={(<Icon name={IconName.VerifiedFilled} color={IconColor.PrimaryDefault} />)} />;"
        },
        {
          "id": "react-components-headersubpage--description",
          "name": "Description",
          "snippet": "const Description = () => <HeaderSubpage\n    avatar={(<AvatarToken\n      src=\"https://cryptologos.cc/logos/ethereum-eth-logo.svg\"\n      size={AvatarTokenSize.Lg}\n      name={ETH_TITLE}\n    />)}\n    title=\"Ethereum\"\n    description={(<Box className=\"flex flex-row items-center gap-1\">\n      <Text variant={TextVariant.BodySm} fontWeight={FontWeight.Medium}>\n        0x1234...5678\n      </Text>\n      <ButtonIcon\n        iconName={IconName.Copy}\n        size={ButtonIconSize.Xs}\n        ariaLabel=\"Copy address\"\n        onClick={() => console.log('Copy address pressed')}\n      />\n    </Box>)}\n    titleEndAccessory={undefined} />;",
          "warning": "Incomplete snippet: `ETH_TITLE` could not be resolved statically."
        },
        {
          "id": "react-components-headersubpage--on-back",
          "name": "On Back",
          "snippet": "const OnBack = () => <HeaderSubpage\n    avatar={(<AvatarToken\n      src=\"https://cryptologos.cc/logos/ethereum-eth-logo.svg\"\n      size={AvatarTokenSize.Lg}\n      name={ETH_TITLE}\n    />)}\n    title=\"Ethereum\"\n    description=\"ETH\"\n    titleEndAccessory={undefined}\n    onBack={() => console.log('Back pressed')} />;",
          "warning": "Incomplete snippet: `ETH_TITLE` could not be resolved statically."
        },
        {
          "id": "react-components-headersubpage--on-close",
          "name": "On Close",
          "snippet": "const OnClose = () => <HeaderSubpage\n    avatar={(<AvatarToken\n      src=\"https://cryptologos.cc/logos/ethereum-eth-logo.svg\"\n      size={AvatarTokenSize.Lg}\n      name={ETH_TITLE}\n    />)}\n    title=\"Ethereum\"\n    description=\"ETH\"\n    titleEndAccessory={undefined}\n    onClose={() => console.log('Close pressed')} />;",
          "warning": "Incomplete snippet: `ETH_TITLE` could not be resolved statically."
        },
        {
          "id": "react-components-headersubpage--end-button-icon-props",
          "name": "End Button Icon Props",
          "snippet": "const EndButtonIconProps = () => <HeaderSubpage\n    avatar={(<AvatarToken\n      src=\"https://cryptologos.cc/logos/ethereum-eth-logo.svg\"\n      size={AvatarTokenSize.Lg}\n      name={ETH_TITLE}\n    />)}\n    title=\"Ethereum\"\n    description=\"ETH\"\n    titleEndAccessory={undefined}\n    onBack={() => console.log('Back pressed')}\n    onClose={() => console.log('Close pressed')}\n    endButtonIconProps={[\n      {\n        iconName: IconName.Search,\n        ariaLabel: 'Search',\n        onClick: () => console.log('Search pressed'),\n      },\n    ]} />;",
          "warning": "Incomplete snippet: `ETH_TITLE` could not be resolved statically."
        },
        {
          "id": "react-components-headersubpage--start-accessory",
          "name": "Start Accessory",
          "snippet": "const StartAccessory = () => <HeaderSubpage\n    avatar={(<AvatarToken\n      src=\"https://cryptologos.cc/logos/ethereum-eth-logo.svg\"\n      size={AvatarTokenSize.Lg}\n      name={ETH_TITLE}\n    />)}\n    title=\"Ethereum\"\n    description=\"ETH\"\n    titleEndAccessory={undefined}\n    startAccessory={(<ButtonIcon\n      iconName={IconName.ArrowLeft}\n      ariaLabel=\"Go back\"\n      onClick={() => console.log('Back pressed')}\n    />)} />;",
          "warning": "Incomplete snippet: `ETH_TITLE` could not be resolved statically."
        },
        {
          "id": "react-components-headersubpage--end-accessory",
          "name": "End Accessory",
          "snippet": "const EndAccessory = () => <HeaderSubpage\n    avatar={(<AvatarToken\n      src=\"https://cryptologos.cc/logos/ethereum-eth-logo.svg\"\n      size={AvatarTokenSize.Lg}\n      name={ETH_TITLE}\n    />)}\n    title=\"Ethereum\"\n    description=\"ETH\"\n    titleEndAccessory={undefined}\n    onBack={() => console.log('Back pressed')}\n    endAccessory={(<Box className=\"flex flex-row gap-2\">\n      <ButtonIcon\n        iconName={IconName.Notification}\n        ariaLabel=\"Create price alert\"\n        onClick={() => console.log('Price alert pressed')}\n      />\n      <ButtonIcon\n        iconName={IconName.Share}\n        ariaLabel=\"Share token\"\n        onClick={() => console.log('Share pressed')}\n      />\n    </Box>)} />;",
          "warning": "Incomplete snippet: `ETH_TITLE` could not be resolved statically."
        }
      ],
      "import": "import { AvatarToken, Box, ButtonIcon, HeaderSubpage, Icon, Text } from '@metamask/design-system-react';\nimport { AvatarToken } from '../AvatarToken';\nimport { AvatarTokenSize, IconName, IconColor, TextVariant, FontWeight, ButtonIconSize } from '@metamask/design-system-shared';\nimport { Icon } from '../Icon';\nimport { Box } from '../Box';\nimport { Text } from '../Text';\nimport { ButtonIcon } from '../ButtonIcon';"
    },
    "react-components-helptext": {
      "id": "react-components-helptext",
      "name": "HelpText",
      "path": "../../packages/design-system-react/src/components/HelpText/HelpText.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "HelpText",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/HelpText/HelpText.tsx",
        "actualName": "HelpText",
        "exportName": "HelpText",
        "props": {
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional CSS class to merge with the component's default classes."
          },
          "showIcon": {
            "defaultValue": {
              "value": "false",
              "computed": false
            },
            "required": false
          },
          "color": {
            "defaultValue": {
              "value": "'text-default'",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-helptext--default",
          "name": "Default",
          "snippet": "const Default = () => <HelpText showIcon={false}>Helper message</HelpText>;"
        },
        {
          "id": "react-components-helptext--severity",
          "name": "Severity",
          "snippet": "const Severity = () => (\n  <Box flexDirection={BoxFlexDirection.Column} gap={2}>\n    {Object.keys(HelpTextSeverity).map((severityKey) => (\n      <HelpText\n        key={severityKey}\n        severity={\n          HelpTextSeverity[severityKey as keyof typeof HelpTextSeverity]\n        }\n      >\n        {severityKey} severity message\n      </HelpText>\n    ))}\n  </Box>\n);"
        },
        {
          "id": "react-components-helptext--show-icon",
          "name": "Show Icon",
          "snippet": "const ShowIcon = () => (\n  <Box flexDirection={BoxFlexDirection.Column} gap={2}>\n    {Object.values(HelpTextSeverity).map((severity) => (\n      <HelpText key={severity} severity={severity} showIcon>\n        {severity} severity message\n      </HelpText>\n    ))}\n  </Box>\n);"
        },
        {
          "id": "react-components-helptext--color",
          "name": "Color",
          "snippet": "const Color = () => (\n  <Box flexDirection={BoxFlexDirection.Column} gap={2}>\n    <HelpText color={TextColor.TextDefault}>Default text color</HelpText>\n    <HelpText color={TextColor.TextAlternative}>\n      Alternative text color\n    </HelpText>\n    <HelpText color={TextColor.PrimaryDefault}>Primary text color</HelpText>\n  </Box>\n);"
        }
      ],
      "import": "import { Box, HelpText } from '@metamask/design-system-react';"
    },
    "react-components-icon": {
      "id": "react-components-icon",
      "name": "Icon",
      "path": "../../packages/design-system-react/src/components/Icon/Icon.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "Icon",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/Icon/Icon.tsx",
        "actualName": "Icon",
        "exportName": "Icon",
        "props": {
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
          },
          "style": {
            "required": false,
            "tsType": {
              "name": "ReactCSSProperties",
              "raw": "React.CSSProperties"
            },
            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
          },
          "data-testid": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop to add a test id to the icon"
          },
          "size": {
            "defaultValue": {
              "value": "'md'",
              "computed": false
            },
            "required": false
          },
          "color": {
            "defaultValue": {
              "value": "'text-icon-default'",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-icon--default",
          "name": "Default",
          "snippet": "const Default = (args) => {\n  const [search, setSearch] = useState('');\n  const iconList = Object.keys(IconName)\n    .filter(\n      (item) =>\n        search === '' ||\n        item.toLowerCase().includes(search.toLowerCase().replace(' ', '_')),\n    )\n    .sort();\n  return (\n    <div className=\"space-y-4\">\n      <div className=\"flex flex-col\">\n        <label className=\"sr-only\">IconName search</label>\n        <input\n          type=\"text\"\n          value={search}\n          onChange={(e) => setSearch(e.target.value)}\n          placeholder=\"Search icons...\"\n          className=\"rounded border p-2\"\n        />\n      </div>\n      <div className=\"grid grid-cols-[repeat(auto-fill,minmax(180px,1fr))] gap-4\">\n        {iconList.map((iconKey) => (\n          <div\n            key={iconKey}\n            className=\"flex flex-col items-center justify-center rounded border p-4\"\n          >\n            <Icon\n              className=\"mb-2\"\n              {...args}\n              name={IconName[iconKey as keyof typeof IconName]}\n            />\n            <Text variant={TextVariant.BodyXs}>{iconKey}</Text>\n          </div>\n        ))}\n      </div>\n    </div>\n  );\n};"
        },
        {
          "id": "react-components-icon--name",
          "name": "Name",
          "snippet": "const Name = () => <div className=\"flex items-baseline gap-4\">\n    <Icon name={IconName.AddSquare} size={IconSize.Xl} />\n</div>;"
        },
        {
          "id": "react-components-icon--size",
          "name": "Size",
          "snippet": "const Size = () => <div className=\"flex items-baseline gap-4\">\n    <Icon name={IconName.AddSquare} size={IconSize.Xs} />\n    <Icon name={IconName.AddSquare} size={IconSize.Sm} />\n    <Icon name={IconName.AddSquare} size={IconSize.Md} />\n    <Icon name={IconName.AddSquare} size={IconSize.Lg} />\n    <Icon name={IconName.AddSquare} size={IconSize.Xl} />\n</div>;"
        },
        {
          "id": "react-components-icon--color",
          "name": "Color",
          "snippet": "const Color = () => <div className=\"flex gap-4\">\n    <div className=\"bg-default p-4\">\n        <Icon\n            name={IconName.AddSquare}\n            size={IconSize.Xl}\n            color={IconColor.IconDefault} />\n    </div>\n    <div className=\"bg-default p-4\">\n        <Icon\n            name={IconName.AddSquare}\n            size={IconSize.Xl}\n            color={IconColor.IconAlternative} />\n    </div>\n    <div className=\"bg-default p-4\">\n        <Icon name={IconName.AddSquare} size={IconSize.Xl} color={IconColor.IconMuted} />\n    </div>\n    <div className=\"bg-icon-default p-4\">\n        <Icon\n            name={IconName.AddSquare}\n            size={IconSize.Xl}\n            color={IconColor.IconInverse} />\n    </div>\n    <div className=\"bg-overlay-default p-4\">\n        <Icon\n            name={IconName.AddSquare}\n            size={IconSize.Xl}\n            color={IconColor.OverlayInverse} />\n    </div>\n    <div className=\"bg-default p-4\">\n        <Icon\n            name={IconName.AddSquare}\n            size={IconSize.Xl}\n            color={IconColor.PrimaryDefault} />\n    </div>\n    <div className=\"bg-primary-default p-4\">\n        <Icon\n            name={IconName.AddSquare}\n            size={IconSize.Xl}\n            color={IconColor.PrimaryInverse} />\n    </div>\n    <div className=\"bg-default p-4\">\n        <Icon\n            name={IconName.AddSquare}\n            size={IconSize.Xl}\n            color={IconColor.ErrorDefault} />\n    </div>\n    <div className=\"bg-error-default p-4\">\n        <Icon\n            name={IconName.AddSquare}\n            size={IconSize.Xl}\n            color={IconColor.ErrorInverse} />\n    </div>\n    <div className=\"bg-default p-4\">\n        <Icon\n            name={IconName.AddSquare}\n            size={IconSize.Xl}\n            color={IconColor.SuccessDefault} />\n    </div>\n    <div className=\"bg-success-default p-4\">\n        <Icon\n            name={IconName.AddSquare}\n            size={IconSize.Xl}\n            color={IconColor.SuccessInverse} />\n    </div>\n    <div className=\"bg-default p-4\">\n        <Icon\n            name={IconName.AddSquare}\n            size={IconSize.Xl}\n            color={IconColor.WarningDefault} />\n    </div>\n    <div className=\"bg-warning-default p-4\">\n        <Icon\n            name={IconName.AddSquare}\n            size={IconSize.Xl}\n            color={IconColor.WarningInverse} />\n    </div>\n    <div className=\"bg-default p-4\">\n        <Icon\n            name={IconName.AddSquare}\n            size={IconSize.Xl}\n            color={IconColor.InfoDefault} />\n    </div>\n    <div className=\"bg-info-default p-4\">\n        <Icon\n            name={IconName.AddSquare}\n            size={IconSize.Xl}\n            color={IconColor.InfoInverse} />\n    </div>\n</div>;"
        }
      ],
      "import": "import { Icon, Text } from '@metamask/design-system-react';\nimport { IconName, IconSize } from '@metamask/design-system-shared';"
    },
    "react-components-iconalert": {
      "id": "react-components-iconalert",
      "name": "IconAlert",
      "path": "../../packages/design-system-react/src/components/IconAlert/IconAlert.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "IconAlert",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/IconAlert/IconAlert.tsx",
        "actualName": "IconAlert",
        "exportName": "IconAlert"
      },
      "stories": [
        {
          "id": "react-components-iconalert--default",
          "name": "Default",
          "snippet": "const Default = () => <IconAlertStoryWrapper>\n    <IconAlert severity={IconAlertSeverity.Info} />\n</IconAlertStoryWrapper>;"
        },
        {
          "id": "react-components-iconalert--severity",
          "name": "Severity",
          "snippet": "const Severity = () => (\n  <IconAlertStoryWrapper\n    flexDirection={BoxFlexDirection.Row}\n    flexWrap={BoxFlexWrap.Wrap}\n    gap={4}\n  >\n    {Object.values(IconAlertSeverity).map((severity) => (\n      <Box key={severity} alignItems={BoxAlignItems.Center} gap={2}>\n        <IconAlert severity={severity} size={IconSize.Xl} />\n      </Box>\n    ))}\n  </IconAlertStoryWrapper>\n);"
        },
        {
          "id": "react-components-iconalert--size",
          "name": "Size",
          "snippet": "const Size = () => (\n  <IconAlertStoryWrapper gap={4}>\n    {Object.values(IconSize).map((size) => (\n      <IconAlert key={size} severity={IconAlertSeverity.Info} size={size} />\n    ))}\n  </IconAlertStoryWrapper>\n);"
        }
      ],
      "import": "import { Box, IconAlert } from '@metamask/design-system-react';\nimport { IconAlertSeverity } from '@metamask/design-system-shared';"
    },
    "react-components-input": {
      "id": "react-components-input",
      "name": "Input",
      "path": "../../packages/design-system-react/src/components/Input/Input.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "Input",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/Input/Input.tsx",
        "actualName": "Input",
        "exportName": "Input",
        "props": {
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes."
          },
          "style": {
            "required": false,
            "tsType": {
              "name": "ReactCSSProperties",
              "raw": "React.CSSProperties"
            },
            "description": "Optional inline styles."
          },
          "textVariant": {
            "defaultValue": {
              "value": "'body-md'",
              "computed": false
            },
            "required": false
          },
          "isDisabled": {
            "defaultValue": {
              "value": "false",
              "computed": false
            },
            "required": false
          },
          "isReadOnly": {
            "defaultValue": {
              "value": "false",
              "computed": false
            },
            "required": false
          },
          "isStateStylesDisabled": {
            "defaultValue": {
              "value": "false",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-input--default",
          "name": "Default",
          "snippet": "const Default = () => <ControlledInput value=\"\" placeholder=\"Sample placeholder\" />;"
        },
        {
          "id": "react-components-input--variant",
          "name": "Variant",
          "snippet": "const Variant = () => (\n  <div className=\"flex flex-col gap-4\">\n    <ControlledInput\n      placeholder=\"BodyMd (default)\"\n      textVariant={TextVariant.BodyMd}\n      value=\"Sample text\"\n    />\n    <ControlledInput\n      placeholder=\"BodySm\"\n      textVariant={TextVariant.BodySm}\n      value=\"Sample text\"\n    />\n    <ControlledInput\n      placeholder=\"HeadingSm\"\n      textVariant={TextVariant.HeadingSm}\n      value=\"Sample text\"\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-input--is-disabled",
          "name": "Is Disabled",
          "snippet": "const IsDisabled = () => (\n  <div className=\"flex flex-col gap-4\">\n    <ControlledInput placeholder=\"Enabled\" value=\"Editable\" />\n    <Input placeholder=\"Disabled\" value=\"Not editable\" isDisabled />\n  </div>\n);"
        },
        {
          "id": "react-components-input--is-read-only",
          "name": "Is Read Only",
          "snippet": "const IsReadOnly = () => (\n  <div className=\"flex flex-col gap-4\">\n    <ControlledInput placeholder=\"Editable\" value=\"\" />\n    <Input placeholder=\"Readonly\" value=\"Read-only value\" isReadOnly />\n  </div>\n);"
        },
        {
          "id": "react-components-input--is-state-styles-disabled",
          "name": "Is State Styles Disabled",
          "snippet": "const IsStateStylesDisabled = () => (\n  <div className=\"flex flex-col gap-4\">\n    <Input\n      placeholder=\"With state styles (default)\"\n      value=\"Disabled with opacity\"\n      isDisabled\n    />\n    <Input\n      placeholder=\"State styles disabled\"\n      value=\"Disabled, full opacity\"\n      isDisabled\n      isStateStylesDisabled\n    />\n  </div>\n);"
        }
      ],
      "import": "import { Input } from '@metamask/design-system-react';"
    },
    "react-components-label": {
      "id": "react-components-label",
      "name": "Label",
      "path": "../../packages/design-system-react/src/components/Label/Label.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "Label",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/Label/Label.tsx",
        "actualName": "Label",
        "exportName": "Label",
        "props": {
          "htmlFor": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "The `id` of the form input this label is associated with. When set,\nclicking the label focuses the corresponding input — the standard HTML\n`<label htmlFor>` form-association behavior. The component also adds\n`cursor-pointer` to communicate the affordance."
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes applied to the `<label>`\nelement. Merged with the component's defaults via `twMerge`."
          },
          "children": {
            "required": true,
            "tsType": {
              "name": "ReactNode"
            },
            "description": "The label content."
          }
        }
      },
      "stories": [
        {
          "id": "react-components-label--default",
          "name": "Default",
          "snippet": "const Default = () => <Label>Email address</Label>;"
        },
        {
          "id": "react-components-label--html-for",
          "name": "Html For",
          "snippet": "const HtmlFor = () => (\n  <Box flexDirection={BoxFlexDirection.Column} gap={2}>\n    <Label htmlFor=\"email-input\">Email address</Label>\n    <ControlledInput\n      id=\"email-input\"\n      value=\"\"\n      placeholder=\"you@example.com\"\n    />\n  </Box>\n);"
        },
        {
          "id": "react-components-label--wrapping-input",
          "name": "Wrapping Input",
          "snippet": "const WrappingInput = () => (\n  <Label className=\"inline-flex w-full flex-col gap-2\">\n    <Text asChild>\n      <span>Email address</span>\n    </Text>\n    <ControlledInput value=\"\" placeholder=\"you@example.com\" />\n  </Label>\n);"
        },
        {
          "id": "react-components-label--with-icon",
          "name": "With Icon",
          "snippet": "const WithIcon = () => (\n  <Label>\n    Required field\n    <Icon\n      name={IconName.Info}\n      size={IconSize.Sm}\n      className=\"ml-1\"\n      aria-label=\"info\"\n    />\n  </Label>\n);"
        }
      ],
      "import": "import { Box, Icon, Input, Label, Text } from '@metamask/design-system-react';"
    },
    "react-components-modal": {
      "id": "react-components-modal",
      "name": "Modal",
      "path": "../../packages/design-system-react/src/components/Modal/Modal.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "Modal",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/Modal/Modal.tsx",
        "actualName": "Modal",
        "exportName": "Modal",
        "props": {
          "isOpen": {
            "required": true,
            "tsType": {
              "name": "boolean"
            },
            "description": "Whether the modal is open. When `false`, nothing is rendered (and the\nportal subtree is unmounted, releasing focus state)."
          },
          "onClose": {
            "required": true,
            "tsType": {
              "name": "signature",
              "type": "function",
              "raw": "() => void",
              "signature": {
                "arguments": [],
                "return": {
                  "name": "void"
                }
              }
            },
            "description": "Fired when the modal requests close — wire your state setter here.\nTriggered by the configured close-on-overlay-click and close-on-escape\nbehaviors as well as any custom close affordances inside `children`."
          },
          "children": {
            "required": true,
            "tsType": {
              "name": "ReactNode"
            },
            "description": "The modal subtree. Typically composed of `ModalOverlay` and\n`ModalContent` (which read shared behavior via `useModalContext`)."
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the Modal root.\nMerged with the component's defaults via `twMerge`."
          },
          "isClosedOnOutsideClick": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "When `true`, clicking the overlay (outside the modal content) closes the\nmodal.\n\n@default true",
            "defaultValue": {
              "value": "true",
              "computed": false
            }
          },
          "isClosedOnEscapeKey": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "When `true`, pressing Escape closes the modal. When `false`, ensure the\nmodal exposes a visible/keyboard-reachable close affordance for\nkeyboard-only users.\n\n@default true",
            "defaultValue": {
              "value": "true",
              "computed": false
            }
          },
          "autoFocus": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "When `true`, the first focusable element within the modal subtree is\nfocused on mount.\n\n@default true",
            "defaultValue": {
              "value": "true",
              "computed": false
            }
          },
          "initialFocusRef": {
            "required": false,
            "tsType": {
              "name": "RefObject",
              "elements": [
                {
                  "name": "union",
                  "raw": "FocusableElement | null",
                  "elements": [
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  focus(options?: FocusOptions): void;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "focus",
                            "value": {
                              "name": "void",
                              "required": true
                            }
                          }
                        ]
                      }
                    },
                    {
                      "name": "null"
                    }
                  ]
                }
              ],
              "raw": "RefObject<FocusableElement | null>"
            },
            "description": "The element to receive focus when the modal opens. Overrides `autoFocus`'s\n\"first focusable\" behavior."
          },
          "finalFocusRef": {
            "required": false,
            "tsType": {
              "name": "RefObject",
              "elements": [
                {
                  "name": "union",
                  "raw": "FocusableElement | null",
                  "elements": [
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  focus(options?: FocusOptions): void;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "focus",
                            "value": {
                              "name": "void",
                              "required": true
                            }
                          }
                        ]
                      }
                    },
                    {
                      "name": "null"
                    }
                  ]
                }
              ],
              "raw": "RefObject<FocusableElement | null>"
            },
            "description": "The element to receive focus when the modal closes/unmounts."
          },
          "restoreFocus": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "When `true`, focus is restored to the element that opened the modal once\nthe modal closes. Ignored when `finalFocusRef` is provided.\n\n@default false"
          }
        }
      },
      "stories": [
        {
          "id": "react-components-modal--default",
          "name": "Default",
          "snippet": "const Default = () => <ModalTemplate><Text>ModalBody children</Text></ModalTemplate>;"
        },
        {
          "id": "react-components-modal--usage",
          "name": "Usage",
          "snippet": "const Usage = () => <ModalTemplate><Text>ModalBody children</Text></ModalTemplate>;"
        },
        {
          "id": "react-components-modal--is-closed-on-outside-click",
          "name": "Is Closed On Outside Click",
          "snippet": "const IsClosedOnOutsideClick = () => <ModalTemplate isClosedOnOutsideClick={false}><Text className=\"pt-4\">This Modal has set isClosedOnOutsideClick: false. Clicking outside this\n                Modal <strong>WILL NOT</strong>close it\n              </Text></ModalTemplate>;"
        },
        {
          "id": "react-components-modal--is-closed-on-escape-key",
          "name": "Is Closed On Escape Key",
          "snippet": "const IsClosedOnEscapeKey = () => <ModalTemplate isClosedOnEscapeKey={false}><Text className=\"pt-4\">This Modal has set isClosedOnEscapeKey: false. Pressing the ESC key{' '}\n        <strong>WILL NOT</strong>close it\n              </Text></ModalTemplate>;"
        },
        {
          "id": "react-components-modal--initial-focus-ref",
          "name": "Initial Focus Ref",
          "snippet": "const InitialFocusRef = (args) => {\n  const { children: bodyChildren, ...modalArgs } = args;\n  const inputRef = useRef<HTMLInputElement>(null);\n  const [isOpen, setIsOpen] = useState(false);\n  const [searchValue, setSearchValue] = useState('');\n\n  const handleOnClose = () => {\n    setIsOpen(false);\n  };\n\n  return (\n    <>\n      <Button variant={ButtonVariant.Primary} onClick={() => setIsOpen(true)}>\n        Open modal\n      </Button>\n      <Modal\n        {...modalArgs}\n        isOpen={isOpen}\n        onClose={handleOnClose}\n        initialFocusRef={inputRef}\n      >\n        <ModalOverlay />\n        <ModalContent>\n          <ModalHeader {...modalHeaderProps(handleOnClose)}>\n            Modal Header\n          </ModalHeader>\n          <TextFieldSearch\n            inputAriaLabel=\"Search\"\n            placeholder=\"Search\"\n            inputRef={inputRef}\n            value={searchValue}\n            onChange={(event) => setSearchValue(event.target.value)}\n            clearButtonOnClick={() => setSearchValue('')}\n            className=\"w-full\"\n          />\n          <ModalBody>{bodyChildren}</ModalBody>\n        </ModalContent>\n      </Modal>\n    </>\n  );\n};"
        },
        {
          "id": "react-components-modal--final-focus-ref",
          "name": "Final Focus Ref",
          "snippet": "const FinalFocusRef = (args) => {\n  const { children: bodyChildren, ...modalArgs } = args;\n  const buttonRef = useRef<HTMLButtonElement>(null);\n  const [isOpen, setIsOpen] = useState(false);\n\n  const handleOnClose = () => {\n    setIsOpen(false);\n  };\n\n  return (\n    <>\n      <Box flexDirection={BoxFlexDirection.Row} gap={4}>\n        <Button\n          variant={ButtonVariant.Primary}\n          onClick={() => setIsOpen(true)}\n        >\n          Open modal\n        </Button>\n        <Text asChild>\n          <button ref={buttonRef} type=\"button\">\n            Receives focus after close\n          </button>\n        </Text>\n      </Box>\n      <Modal\n        {...modalArgs}\n        isOpen={isOpen}\n        onClose={handleOnClose}\n        finalFocusRef={buttonRef}\n      >\n        <ModalOverlay />\n        <ModalContent>\n          <ModalHeader {...modalHeaderProps(handleOnClose)}>\n            Modal Header\n          </ModalHeader>\n          <ModalBody>{bodyChildren}</ModalBody>\n        </ModalContent>\n      </Modal>\n    </>\n  );\n};"
        },
        {
          "id": "react-components-modal--restore-focus",
          "name": "Restore Focus",
          "snippet": "const RestoreFocus = () => <ModalTemplate restoreFocus><Text className=\"pt-4\">This Modal has set restoreFocus: true. When the Modal closes, the Button\n                component will be focused. Use keyboard navigation to see it clearly.\n              </Text></ModalTemplate>;"
        },
        {
          "id": "react-components-modal--auto-focus",
          "name": "Auto Focus",
          "snippet": "const AutoFocus = () => <ModalTemplate autoFocus={false}><Text className=\"pt-4\">This Modal has set autoFocus: false. When the Modal opens the first\n                element to focus <strong>WILL NOT</strong>be the first focusable\n                element in the Modal.\n              </Text></ModalTemplate>;"
        }
      ],
      "import": "import {\n  Box,\n  Button,\n  Modal,\n  ModalBody,\n  ModalContent,\n  ModalFooter,\n  ModalHeader,\n  ModalOverlay,\n  Text,\n  TextButton,\n  TextFieldSearch,\n} from '@metamask/design-system-react';\nimport { Text } from '../Text';"
    },
    "react-components-modalbody": {
      "id": "react-components-modalbody",
      "name": "ModalBody",
      "path": "../../packages/design-system-react/src/components/ModalBody/ModalBody.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "ModalBody",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/ModalBody/ModalBody.tsx",
        "actualName": "ModalBody",
        "exportName": "ModalBody",
        "props": {
          "children": {
            "required": false,
            "tsType": {
              "name": "ReactNode"
            },
            "description": "The content of the ModalBody."
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the ModalBody component.\nThese classes will be merged with the component's default classes using twMerge."
          },
          "tabIndex": {
            "defaultValue": {
              "value": "0",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-modalbody--default",
          "name": "Default",
          "snippet": "const Default = () => <ModalBody>\n    <Text>Modal body</Text>\n</ModalBody>;"
        },
        {
          "id": "react-components-modalbody--children",
          "name": "Children",
          "snippet": "const Children = () => <div className=\"h-[100px] w-[300px]\">\n    <ModalBody>\n        <Text>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla vitae elit libero, a pharetra augue. Nullam id dolor id nibh ultricies vehicula ut id elit. Cras mattis consectetur purus sit amet fermentum. Donec ullamcorper nulla non metus auctor fringilla.</Text>\n    </ModalBody>\n</div>;"
        },
        {
          "id": "react-components-modalbody--padding",
          "name": "Padding",
          "snippet": "const Padding = () => (\n  <div className=\"h-[200px] w-[300px]\">\n    <ModalBody className=\"flex flex-col gap-4 px-0\">\n      <Text className=\"px-4\">\n        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla vitae\n        elit libero, a pharetra augue. Nullam id\n      </Text>\n      <Text className=\"bg-primary-muted px-4\">\n        Element touches edge of ModalBody\n      </Text>\n      <Text className=\"px-4\">\n        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla vitae\n        elit libero, a pharetra augue. Nullam id\n      </Text>\n    </ModalBody>\n  </div>\n);"
        }
      ],
      "import": "import { ModalBody, Text } from '@metamask/design-system-react';"
    },
    "react-components-modalcontent": {
      "id": "react-components-modalcontent",
      "name": "ModalContent",
      "path": "../../packages/design-system-react/src/components/ModalContent/ModalContent.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "ModalContent",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/ModalContent/ModalContent.tsx",
        "actualName": "ModalContent",
        "exportName": "ModalContent",
        "props": {
          "children": {
            "required": true,
            "tsType": {
              "name": "ReactNode"
            },
            "description": "Content rendered inside the dialog. Typically composed of `ModalHeader`,\n`ModalBody`, and `ModalFooter`."
          },
          "size": {
            "required": false,
            "tsType": {
              "name": "ModalContentSize"
            },
            "description": "Optional max-width for the inner dialog. Use one of `ModalContentSize`\ntokens (Sm/Md/Lg → 360/480/720px). Override entirely via\n`modalDialogProps.className=\"max-w-...\"` if you need a custom width.\n\n@default ModalContentSize.Sm",
            "defaultValue": {
              "value": "'sm'",
              "computed": false
            }
          },
          "modalDialogProps": {
            "required": false,
            "tsType": {
              "name": "intersection",
              "raw": "Omit<BoxProps, 'children' | 'asChild'> & {\n  [key: `data-${string}`]: string | undefined;\n}",
              "elements": [
                {
                  "name": "Omit",
                  "elements": [
                    {
                      "name": "intersection",
                      "raw": "ComponentProps<'div'> &\nBoxPropsShared & {\n  /**\n   * Optional prop for additional CSS classes to be applied to the Box component.\n   */\n  className?: string;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a div element\n   *\n   * @default false\n   */\n  asChild?: boolean;\n}",
                      "elements": [
                        {
                          "name": "ComponentProps",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'div'"
                            }
                          ],
                          "raw": "ComponentProps<'div'>"
                        },
                        {
                          "name": "BoxPropsShared"
                        },
                        {
                          "name": "signature",
                          "type": "object",
                          "raw": "{\n  /**\n   * Optional prop for additional CSS classes to be applied to the Box component.\n   */\n  className?: string;\n  /**\n   * Optional boolean that determines if the component should merge its props onto its immediate child\n   * instead of rendering a div element\n   *\n   * @default false\n   */\n  asChild?: boolean;\n}",
                          "signature": {
                            "properties": [
                              {
                                "key": "className",
                                "value": {
                                  "name": "string",
                                  "required": false
                                },
                                "description": "Optional prop for additional CSS classes to be applied to the Box component."
                              },
                              {
                                "key": "asChild",
                                "value": {
                                  "name": "boolean",
                                  "required": false
                                },
                                "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a div element\n\n@default false"
                              }
                            ]
                          }
                        }
                      ]
                    },
                    {
                      "name": "union",
                      "raw": "'children' | 'asChild'",
                      "elements": [
                        {
                          "name": "literal",
                          "value": "'children'"
                        },
                        {
                          "name": "literal",
                          "value": "'asChild'"
                        }
                      ]
                    }
                  ],
                  "raw": "Omit<BoxProps, 'children' | 'asChild'>"
                },
                {
                  "name": "signature",
                  "type": "object",
                  "raw": "{\n  [key: `data-${string}`]: string | undefined;\n}",
                  "signature": {
                    "properties": [
                      {
                        "key": {
                          "name": "literal",
                          "value": "`data-${string}`"
                        },
                        "value": {
                          "name": "union",
                          "raw": "string | undefined",
                          "elements": [
                            {
                              "name": "string"
                            },
                            {
                              "name": "undefined"
                            }
                          ],
                          "required": true
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "description": "Props forwarded to the inner dialog `Box` (the `<section\nrole=\"dialog\">`). Use this to add `data-testid`, override layout, change\nbackground, or apply Tailwind utilities via `className`."
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes applied to the outer\npositioning element. Merged with the component's defaults via `twMerge`."
          }
        }
      },
      "stories": [
        {
          "id": "react-components-modalcontent--default",
          "name": "Default",
          "snippet": "const Default = () => <ModalShellExample size={ModalContentSize.Sm} className=\"\" />;"
        },
        {
          "id": "react-components-modalcontent--size",
          "name": "Size",
          "snippet": "const Size = () => (\n  <Box flexDirection={BoxFlexDirection.Column} gap={4}>\n    <ModalShellExample size={ModalContentSize.Sm} />\n    <ModalShellExample size={ModalContentSize.Md} />\n    <ModalShellExample size={ModalContentSize.Lg} />\n  </Box>\n);"
        },
        {
          "id": "react-components-modalcontent--keyboard-and-outside-click-config",
          "name": "Keyboard And Outside Click Config",
          "snippet": "const KeyboardAndOutsideClickConfig = () => (\n  <Box flexDirection={BoxFlexDirection.Column} gap={4}>\n    <ModalShellExample isClosedOnEscapeKey={false} />\n    <ModalShellExample isClosedOnOutsideClick={false} />\n  </Box>\n);"
        },
        {
          "id": "react-components-modalcontent--ignore-outside-click-attr",
          "name": "Ignore Outside Click Attr",
          "snippet": "const IgnoreOutsideClickAttr = () => {\n  const [isOpen, setIsOpen] = useState(false);\n  const triggerRef = useRef<HTMLButtonElement>(null);\n  return (\n    <>\n      <Button\n        ref={triggerRef}\n        variant={ButtonVariant.Primary}\n        onClick={() => setIsOpen(true)}\n      >\n        Open modal with sibling popover\n      </Button>\n      <Modal isOpen={isOpen} onClose={() => setIsOpen(false)}>\n        <ModalOverlay />\n        <ModalContent>\n          <Box flexDirection={BoxFlexDirection.Column} gap={4} padding={4}>\n            <Text>\n              The \"popover\" below is rendered as a sibling to the dialog and\n              opts out of the outside-click handler via{' '}\n              <code>{MODAL_CONTENT_IGNORE_OUTSIDE_CLICK_ATTR}</code>. Clicking\n              inside it should not close the modal.\n            </Text>\n            <Button\n              variant={ButtonVariant.Secondary}\n              onClick={() => setIsOpen(false)}\n            >\n              Close\n            </Button>\n          </Box>\n        </ModalContent>\n        {/* Sibling-portal \"popover\" — opts out of close-on-outside-click. */}\n        <Box\n          backgroundColor={BoxBackgroundColor.BackgroundDefault}\n          borderColor={BoxBorderColor.BorderDefault}\n          borderWidth={1}\n          padding={4}\n          className=\"fixed bottom-4 right-4 z-[1051] w-[200px] rounded shadow-md\"\n          {...{ [MODAL_CONTENT_IGNORE_OUTSIDE_CLICK_ATTR]: '' }}\n        >\n          <Text>Popover-like sibling</Text>\n          <Button variant={ButtonVariant.Secondary} onClick={() => undefined}>\n            Inert button\n          </Button>\n        </Box>\n      </Modal>\n    </>\n  );\n};"
        }
      ],
      "import": "import { Box, Button, Modal, ModalContent, ModalOverlay, Text } from '@metamask/design-system-react';\nimport { ModalContentSize } from './ModalContent.types';"
    },
    "react-components-modalfocus": {
      "id": "react-components-modalfocus",
      "name": "ModalFocus",
      "path": "../../packages/design-system-react/src/components/ModalFocus/ModalFocus.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "ModalFocus",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/ModalFocus/ModalFocus.tsx",
        "actualName": "ModalFocus",
        "exportName": "ModalFocus",
        "props": {
          "initialFocusRef": {
            "required": false,
            "tsType": {
              "name": "RefObject",
              "elements": [
                {
                  "name": "union",
                  "raw": "FocusableElement | null",
                  "elements": [
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  focus(options?: FocusOptions): void;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "focus",
                            "value": {
                              "name": "void",
                              "required": true
                            }
                          }
                        ]
                      }
                    },
                    {
                      "name": "null"
                    }
                  ]
                }
              ],
              "raw": "RefObject<FocusableElement | null>"
            },
            "description": "The `ref` of the element to receive focus initially."
          },
          "finalFocusRef": {
            "required": false,
            "tsType": {
              "name": "RefObject",
              "elements": [
                {
                  "name": "union",
                  "raw": "FocusableElement | null",
                  "elements": [
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  focus(options?: FocusOptions): void;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "focus",
                            "value": {
                              "name": "void",
                              "required": true
                            }
                          }
                        ]
                      }
                    },
                    {
                      "name": "null"
                    }
                  ]
                }
              ],
              "raw": "RefObject<FocusableElement | null>"
            },
            "description": "The `ref` of the element to return focus to when `ModalFocus`\nunmounts."
          },
          "restoreFocus": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "If `true`, focus will be restored to the element that\ntriggered the `ModalFocus` once it unmounts.\n\nIgnored when `finalFocusRef` is provided.\n\n@default false"
          },
          "children": {
            "required": true,
            "tsType": {
              "name": "ReactNode"
            },
            "description": "The node to lock focus to."
          },
          "autoFocus": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "If `true`, the first focusable element within `children`\nwill be auto-focused once `ModalFocus` mounts.\n\n@default true"
          }
        }
      },
      "stories": [
        {
          "id": "react-components-modalfocus--default",
          "name": "Default",
          "snippet": "const Default = (args) => {\n  const [isOpen, setIsOpen] = useState(false);\n  return (\n    <>\n      <Button variant={ButtonVariant.Primary} onClick={() => setIsOpen(true)}>\n        Open\n      </Button>\n      {isOpen && (\n        <ModalFocus {...args}>\n          <FocusTrappedBox>\n            <Text>Modal focus children</Text>\n            <Input aria-label=\"example input\" />\n            <Text>\n              Tab around — focus is trapped inside the ModalFocus subtree.\n            </Text>\n            <Button\n              variant={ButtonVariant.Primary}\n              onClick={() => setIsOpen(false)}\n            >\n              Close\n            </Button>\n          </FocusTrappedBox>\n        </ModalFocus>\n      )}\n    </>\n  );\n};"
        },
        {
          "id": "react-components-modalfocus--initial-focus-ref",
          "name": "Initial Focus Ref",
          "snippet": "const InitialFocusRef = (args) => {\n  const closeRef = useRef<HTMLButtonElement>(null);\n  const [isOpen, setIsOpen] = useState(false);\n  return (\n    <>\n      <Button variant={ButtonVariant.Primary} onClick={() => setIsOpen(true)}>\n        Open\n      </Button>\n      {isOpen && (\n        <ModalFocus {...args} initialFocusRef={closeRef}>\n          <FocusTrappedBox>\n            <Input aria-label=\"first input (skipped)\" />\n            <Text>Initial focus is on the close button.</Text>\n            <Button\n              ref={closeRef}\n              variant={ButtonVariant.Primary}\n              onClick={() => setIsOpen(false)}\n            >\n              Close\n            </Button>\n          </FocusTrappedBox>\n        </ModalFocus>\n      )}\n    </>\n  );\n};"
        },
        {
          "id": "react-components-modalfocus--final-focus-ref",
          "name": "Final Focus Ref",
          "snippet": "const FinalFocusRef = (args) => {\n  const inputRef = useRef<HTMLInputElement>(null);\n  const [isOpen, setIsOpen] = useState(false);\n  return (\n    <>\n      <Box flexDirection={BoxFlexDirection.Row} gap={4}>\n        <Button\n          variant={ButtonVariant.Primary}\n          onClick={() => setIsOpen(true)}\n        >\n          Open\n        </Button>\n        <Input\n          placeholder=\"Focus will return here\"\n          aria-label=\"final focus target\"\n          ref={inputRef}\n        />\n      </Box>\n      {isOpen && (\n        <ModalFocus {...args} finalFocusRef={inputRef}>\n          <FocusTrappedBox>\n            <Text>Focus will be returned to the input once closed.</Text>\n            <Button\n              variant={ButtonVariant.Primary}\n              onClick={() => setIsOpen(false)}\n            >\n              Close\n            </Button>\n          </FocusTrappedBox>\n        </ModalFocus>\n      )}\n    </>\n  );\n};"
        },
        {
          "id": "react-components-modalfocus--restore-focus",
          "name": "Restore Focus",
          "snippet": "const RestoreFocus = (args) => {\n  const openRef = useRef<HTMLButtonElement>(null);\n  const [isOpen, setIsOpen] = useState(false);\n  return (\n    <>\n      <Button\n        ref={openRef}\n        variant={ButtonVariant.Primary}\n        onClick={() => setIsOpen(true)}\n      >\n        Open\n      </Button>\n      {isOpen && (\n        <ModalFocus {...args} restoreFocus>\n          <FocusTrappedBox>\n            <Text>\n              Focus will be restored to the open button once closed.\n            </Text>\n            <Button\n              variant={ButtonVariant.Primary}\n              onClick={() => setIsOpen(false)}\n            >\n              Close\n            </Button>\n          </FocusTrappedBox>\n        </ModalFocus>\n      )}\n    </>\n  );\n};"
        },
        {
          "id": "react-components-modalfocus--auto-focus",
          "name": "Auto Focus",
          "snippet": "const AutoFocus = (args) => {\n  const [isOpen, setIsOpen] = useState(false);\n  return (\n    <>\n      <Button variant={ButtonVariant.Primary} onClick={() => setIsOpen(true)}>\n        Open\n      </Button>\n      {isOpen && (\n        <ModalFocus {...args}>\n          <FocusTrappedBox>\n            <Text>autoFocus is false — nothing is focused on mount.</Text>\n            <Button\n              variant={ButtonVariant.Primary}\n              onClick={() => setIsOpen(false)}\n            >\n              Close\n            </Button>\n          </FocusTrappedBox>\n        </ModalFocus>\n      )}\n    </>\n  );\n};"
        }
      ],
      "import": "import { Box, Button, Input, ModalFocus, Text } from '@metamask/design-system-react';"
    },
    "react-components-modalfooter": {
      "id": "react-components-modalfooter",
      "name": "ModalFooter",
      "path": "../../packages/design-system-react/src/components/ModalFooter/ModalFooter.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "ModalFooter",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/ModalFooter/ModalFooter.tsx",
        "actualName": "ModalFooter",
        "exportName": "ModalFooter",
        "props": {
          "children": {
            "required": false,
            "tsType": {
              "name": "ReactNode"
            },
            "description": "Optional custom content rendered above the action button row. Use this\nfor inline form controls (e.g. a \"do not show again\" checkbox) or to\nfully replace the built-in button row by omitting both\n`primaryButtonProps` and `secondaryButtonProps`."
          },
          "buttonsAlignment": {
            "required": false,
            "tsType": {
              "name": "ButtonsAlignment"
            },
            "description": "Optional layout direction for the action button row.\n\n- `Horizontal` — buttons share the row, each takes `flex-1`.\n- `Vertical`   — buttons stack with full width.\n\n@default ButtonsAlignment.Horizontal",
            "defaultValue": {
              "value": "'horizontal'",
              "computed": false
            }
          },
          "primaryButtonProps": {
            "required": false,
            "tsType": {
              "name": "intersection",
              "raw": "Omit<ButtonProps, 'variant'> & {\n  [key: `data-${string}`]: string | undefined;\n}",
              "elements": [
                {
                  "name": "Omit",
                  "elements": [
                    {
                      "name": "intersection",
                      "raw": "ButtonPropsShared &\n(\n  | (Omit<ButtonPrimaryProps, 'ref'> & {\n      variant?: typeof ButtonVariant.Primary;\n    })\n  | (Omit<ButtonSecondaryProps, 'ref'> & {\n      variant?: typeof ButtonVariant.Secondary;\n    })\n  | (Omit<ButtonTertiaryProps, 'ref'> & {\n      variant?: typeof ButtonVariant.Tertiary;\n    })\n)",
                      "elements": [
                        {
                          "name": "ButtonPropsShared"
                        },
                        {
                          "name": "unknown"
                        }
                      ]
                    },
                    {
                      "name": "literal",
                      "value": "'variant'"
                    }
                  ],
                  "raw": "Omit<ButtonProps, 'variant'>"
                },
                {
                  "name": "signature",
                  "type": "object",
                  "raw": "{\n  [key: `data-${string}`]: string | undefined;\n}",
                  "signature": {
                    "properties": [
                      {
                        "key": {
                          "name": "literal",
                          "value": "`data-${string}`"
                        },
                        "value": {
                          "name": "union",
                          "raw": "string | undefined",
                          "elements": [
                            {
                              "name": "string"
                            },
                            {
                              "name": "undefined"
                            }
                          ],
                          "required": true
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "description": "Optional props for the primary action button. Renders with\n`ButtonVariant.Primary` automatically. Appears second (right in\nhorizontal layout, bottom in vertical layout).\n\nPass the localized label as `children`. Wire the click handler via\n`onClick`. `ModalFooter` is i18n-agnostic and intentionally does not pull\nstrings from any translation context."
          },
          "secondaryButtonProps": {
            "required": false,
            "tsType": {
              "name": "intersection",
              "raw": "Omit<ButtonProps, 'variant'> & {\n  [key: `data-${string}`]: string | undefined;\n}",
              "elements": [
                {
                  "name": "Omit",
                  "elements": [
                    {
                      "name": "intersection",
                      "raw": "ButtonPropsShared &\n(\n  | (Omit<ButtonPrimaryProps, 'ref'> & {\n      variant?: typeof ButtonVariant.Primary;\n    })\n  | (Omit<ButtonSecondaryProps, 'ref'> & {\n      variant?: typeof ButtonVariant.Secondary;\n    })\n  | (Omit<ButtonTertiaryProps, 'ref'> & {\n      variant?: typeof ButtonVariant.Tertiary;\n    })\n)",
                      "elements": [
                        {
                          "name": "ButtonPropsShared"
                        },
                        {
                          "name": "unknown"
                        }
                      ]
                    },
                    {
                      "name": "literal",
                      "value": "'variant'"
                    }
                  ],
                  "raw": "Omit<ButtonProps, 'variant'>"
                },
                {
                  "name": "signature",
                  "type": "object",
                  "raw": "{\n  [key: `data-${string}`]: string | undefined;\n}",
                  "signature": {
                    "properties": [
                      {
                        "key": {
                          "name": "literal",
                          "value": "`data-${string}`"
                        },
                        "value": {
                          "name": "union",
                          "raw": "string | undefined",
                          "elements": [
                            {
                              "name": "string"
                            },
                            {
                              "name": "undefined"
                            }
                          ],
                          "required": true
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "description": "Optional props for the secondary action button. Renders with\n`ButtonVariant.Secondary` automatically. Appears first (left in\nhorizontal layout, top in vertical layout)."
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the\nModalFooter root. Merged with the component's defaults via `twMerge`."
          }
        }
      },
      "stories": [
        {
          "id": "react-components-modalfooter--default",
          "name": "Default",
          "snippet": "const Default = () => <ModalFooter\n    primaryButtonProps={{\n      children: 'Confirm',\n      onClick: () => undefined,\n    }}\n    secondaryButtonProps={{\n      children: 'Cancel',\n      onClick: () => undefined,\n    }} />;"
        },
        {
          "id": "react-components-modalfooter--primary-only",
          "name": "Primary Only",
          "snippet": "const PrimaryOnly = () => <ModalFooter\n    primaryButtonProps={{\n      children: 'Confirm',\n      onClick: () => undefined,\n    }} />;"
        },
        {
          "id": "react-components-modalfooter--secondary-only",
          "name": "Secondary Only",
          "snippet": "const SecondaryOnly = () => <ModalFooter\n    secondaryButtonProps={{\n      children: 'Cancel',\n      onClick: () => undefined,\n    }} />;"
        },
        {
          "id": "react-components-modalfooter--horizontal-alignment",
          "name": "Horizontal Alignment",
          "snippet": "const HorizontalAlignment = () => <ModalFooter\n    buttonsAlignment={ButtonsAlignment.Horizontal}\n    primaryButtonProps={{\n      children: 'I want to approve',\n      onClick: () => undefined,\n    }}\n    secondaryButtonProps={{\n      children: 'Cancel this',\n      onClick: () => undefined,\n    }} />;"
        },
        {
          "id": "react-components-modalfooter--vertical-alignment",
          "name": "Vertical Alignment",
          "snippet": "const VerticalAlignment = () => <ModalFooter\n    buttonsAlignment={ButtonsAlignment.Vertical}\n    primaryButtonProps={{\n      children: 'I want to approve',\n      onClick: () => undefined,\n    }}\n    secondaryButtonProps={{\n      children: 'Cancel this',\n      onClick: () => undefined,\n    }} />;"
        },
        {
          "id": "react-components-modalfooter--children",
          "name": "Children",
          "snippet": "const Children = () => {\n    const [isSelected, setIsSelected] = useState(false);\n\n    return (\n        <ModalFooter\n            primaryButtonProps={{\n              children: 'Confirm',\n              onClick: () => undefined,\n            }}\n            secondaryButtonProps={{\n              children: 'Cancel',\n              onClick: () => undefined,\n            }}>\n            <Box flexDirection={BoxFlexDirection.Row} gap={2} className=\"mb-4\">\n                <Checkbox\n                    id=\"modal-footer-terms\"\n                    label=\"I agree to the terms and conditions\"\n                    isSelected={isSelected}\n                    onChange={() => setIsSelected(!isSelected)} />\n            </Box>\n        </ModalFooter>\n    );\n};"
        }
      ],
      "import": "import { Box, Checkbox, ModalFooter } from '@metamask/design-system-react';\nimport { ButtonsAlignment } from './ModalFooter.types';"
    },
    "react-components-modalheader": {
      "id": "react-components-modalheader",
      "name": "ModalHeader",
      "path": "../../packages/design-system-react/src/components/ModalHeader/ModalHeader.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "ModalHeader",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/ModalHeader/ModalHeader.tsx",
        "actualName": "ModalHeader",
        "exportName": "ModalHeader",
        "props": {
          "children": {
            "required": false,
            "tsType": {
              "name": "ReactNode"
            },
            "description": "Header title content. When a string, it is auto-wrapped in a\n`Text` with `TextVariant.HeadingSm` and `TextAlign.Center`. When a\n`ReactNode`, it is rendered as-is."
          },
          "startAccessory": {
            "required": false,
            "tsType": {
              "name": "ReactNode"
            },
            "description": "Optional override for the start (left in LTR) slot. When provided, it\nreplaces the auto-rendered back button — even if `onBack` is set."
          },
          "endAccessory": {
            "required": false,
            "tsType": {
              "name": "ReactNode"
            },
            "description": "Optional override for the end (right in LTR) slot. When provided, it\nreplaces the auto-rendered close button — even if `onClose` is set."
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the\nModalHeader root. Merged with the component's defaults via `twMerge`."
          }
        }
      },
      "stories": [
        {
          "id": "react-components-modalheader--default",
          "name": "Default",
          "snippet": "const Default = () => <ModalHeader>Modal title</ModalHeader>;"
        },
        {
          "id": "react-components-modalheader--children",
          "name": "Children",
          "snippet": "const Children = () => (\n  <ModalHeader\n    onClose={() => undefined}\n    closeButtonProps={{ ariaLabel: 'Close' }}\n  >\n    <Box backgroundColor={BoxBackgroundColor.PrimaryMuted} padding={2}>\n      <Text>Custom node children render as-is</Text>\n    </Box>\n  </ModalHeader>\n);"
        },
        {
          "id": "react-components-modalheader--on-back",
          "name": "On Back",
          "snippet": "const OnBack = () => <ModalHeader\n    onBack={() => undefined}\n    backButtonProps={{ ariaLabel: 'Back' }}\n    onClose={() => undefined}\n    closeButtonProps={{ ariaLabel: 'Close' }}>Modal title</ModalHeader>;"
        },
        {
          "id": "react-components-modalheader--on-close",
          "name": "On Close",
          "snippet": "const OnClose = () => <ModalHeader onClose={() => undefined} closeButtonProps={{ ariaLabel: 'Close' }}>Modal title</ModalHeader>;"
        },
        {
          "id": "react-components-modalheader--start-accessory",
          "name": "Start Accessory",
          "snippet": "const StartAccessory = () => (\n  <ModalHeader\n    startAccessory={<Icon name={IconName.Star} aria-label=\"custom start\" />}\n    onClose={() => undefined}\n    closeButtonProps={{ ariaLabel: 'Close' }}\n  >\n    Custom startAccessory replaces the back button\n  </ModalHeader>\n);"
        },
        {
          "id": "react-components-modalheader--end-accessory",
          "name": "End Accessory",
          "snippet": "const EndAccessory = () => (\n  <ModalHeader\n    onBack={() => undefined}\n    backButtonProps={{ ariaLabel: 'Back' }}\n    endAccessory={\n      <Icon name={IconName.Notification} aria-label=\"custom end\" />\n    }\n  >\n    Custom endAccessory replaces the close button\n  </ModalHeader>\n);"
        }
      ],
      "import": "import { Box, Icon, ModalHeader, Text } from '@metamask/design-system-react';"
    },
    "react-components-modaloverlay": {
      "id": "react-components-modaloverlay",
      "name": "ModalOverlay",
      "path": "../../packages/design-system-react/src/components/ModalOverlay/ModalOverlay.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "ModalOverlay",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/ModalOverlay/ModalOverlay.tsx",
        "actualName": "ModalOverlay",
        "exportName": "ModalOverlay",
        "props": {
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the ModalOverlay component.\nThese classes will be merged with the component's default classes using twMerge."
          }
        }
      },
      "stories": [
        {
          "id": "react-components-modaloverlay--default",
          "name": "Default",
          "snippet": "const Default = () => <ModalOverlay />;"
        },
        {
          "id": "react-components-modaloverlay--on-click",
          "name": "On Click",
          "snippet": "const OnClick = (args) => {\n  const [isOpen, setIsOpen] = useState(false);\n  return (\n    <>\n      <Button variant={ButtonVariant.Primary} onClick={() => setIsOpen(true)}>\n        Show modal overlay\n      </Button>\n      {isOpen && <ModalOverlay {...args} onClick={() => setIsOpen(false)} />}\n    </>\n  );\n};"
        }
      ],
      "import": "import { Button, ModalOverlay } from '@metamask/design-system-react';"
    },
    "react-components-popover": {
      "id": "react-components-popover",
      "name": "Popover",
      "path": "../../packages/design-system-react/src/components/Popover/Popover.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "Popover",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/Popover/Popover.tsx",
        "actualName": "Popover",
        "exportName": "Popover",
        "props": {
          "children": {
            "required": false,
            "tsType": {
              "name": "ReactNode"
            },
            "description": "The contents of the Popover."
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Additional class names to merge onto the Popover root."
          },
          "style": {
            "required": false,
            "tsType": {
              "name": "CSSProperties"
            },
            "description": "Inline styles applied to the Popover root. Merged after the styles\ncomputed by `react-popper`."
          },
          "position": {
            "required": false,
            "tsType": {
              "name": "PopoverPosition"
            },
            "description": "Placement relative to `referenceElement`. When `PopoverPosition.Auto`,\n`flip` and `preventOverflow` are forced on regardless of their props.\n\n@default PopoverPosition.Auto",
            "defaultValue": {
              "value": "'auto'",
              "computed": false
            }
          },
          "role": {
            "required": false,
            "tsType": {
              "name": "PopoverRole"
            },
            "description": "ARIA role applied to the Popover root.\n\n@default PopoverRole.Tooltip",
            "defaultValue": {
              "value": "'tooltip'",
              "computed": false
            }
          },
          "hasArrow": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Render an arrow pointing at the reference element.\n\n@default false",
            "defaultValue": {
              "value": "false",
              "computed": false
            }
          },
          "arrowProps": {
            "required": false,
            "tsType": {
              "name": "Omit",
              "elements": [
                {
                  "name": "ComponentProps",
                  "elements": [
                    {
                      "name": "literal",
                      "value": "'div'"
                    }
                  ],
                  "raw": "ComponentProps<'div'>"
                },
                {
                  "name": "union",
                  "raw": "'ref' | 'style' | 'children'",
                  "elements": [
                    {
                      "name": "literal",
                      "value": "'ref'"
                    },
                    {
                      "name": "literal",
                      "value": "'style'"
                    },
                    {
                      "name": "literal",
                      "value": "'children'"
                    }
                  ]
                }
              ],
              "raw": "Omit<ComponentProps<'div'>, 'ref' | 'style' | 'children'>"
            },
            "description": "Props forwarded to the arrow element. `ref`, `style`, and `children` are\nreserved for internal use (popper positioning, rotation styles, and the\narrow visual) and cannot be overridden."
          },
          "matchWidth": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Match the popover width to the reference element's `clientWidth`.\n\n@default false",
            "defaultValue": {
              "value": "false",
              "computed": false
            }
          },
          "preventOverflow": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Keep the Popover within the viewport. Forced on when\n`position === PopoverPosition.Auto`.\n\n@default false",
            "defaultValue": {
              "value": "false",
              "computed": false
            }
          },
          "flip": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Allow flipping to the opposite side when there is not enough space.\nForced on when `position === PopoverPosition.Auto`.\n\n@default false",
            "defaultValue": {
              "value": "false",
              "computed": false
            }
          },
          "referenceHidden": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Hide the Popover when the reference element is scrolled out of view.\n\n@default true",
            "defaultValue": {
              "value": "true",
              "computed": false
            }
          },
          "referenceElement": {
            "required": false,
            "tsType": {
              "name": "union",
              "raw": "HTMLElement | null",
              "elements": [
                {
                  "name": "HTMLElement"
                },
                {
                  "name": "null"
                }
              ]
            },
            "description": "The element the Popover is positioned against."
          },
          "isOpen": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Whether the Popover is open. Nothing is rendered when `false`."
          },
          "offset": {
            "required": false,
            "tsType": {
              "name": "tuple",
              "raw": "[number, number]",
              "elements": [
                {
                  "name": "number"
                },
                {
                  "name": "number"
                }
              ]
            },
            "description": "`[skidding, distance]` offset (in px) applied to the Popover.\n\n@default [0, 8]",
            "defaultValue": {
              "value": "[0, 8]",
              "computed": false
            }
          },
          "isPortal": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Render the Popover into `document.body` via `createPortal`.\n\n@default false",
            "defaultValue": {
              "value": "false",
              "computed": false
            }
          },
          "onPressEscKey": {
            "required": false,
            "tsType": {
              "name": "signature",
              "type": "function",
              "raw": "() => void",
              "signature": {
                "arguments": [],
                "return": {
                  "name": "void"
                }
              }
            },
            "description": "Called when the user presses the Escape key while the Popover is open."
          },
          "onClickOutside": {
            "required": false,
            "tsType": {
              "name": "signature",
              "type": "function",
              "raw": "() => void",
              "signature": {
                "arguments": [],
                "return": {
                  "name": "void"
                }
              }
            },
            "description": "Called when the user clicks outside the Popover and the reference element\nwhile the Popover is open."
          }
        }
      },
      "stories": [
        {
          "id": "react-components-popover--default",
          "name": "Default",
          "snippet": "const Default = () => {\n    const [referenceElement, setReferenceElement] =\n      useState<HTMLElement | null>(null);\n    const [isOpen, setIsOpen] = useState(true);\n\n    return <>\n        <ReferenceBox setRef={setReferenceElement} onClick={() => setIsOpen((prev) => !prev)}>Click to toggle popover\n                    </ReferenceBox>\n        <Popover\n            position={PopoverPosition.BottomStart}\n            role={PopoverRole.Tooltip}\n            hasArrow\n            isPortal={false}\n            matchWidth={false}\n            flip={false}\n            preventOverflow={false}\n            referenceHidden\n            referenceElement={referenceElement}\n            isOpen={isOpen}\n            onPressEscKey={() => setIsOpen(false)}>\n            <Text>Popover demo</Text>\n        </Popover>\n    </>;\n};"
        },
        {
          "id": "react-components-popover--position",
          "name": "Position",
          "snippet": "const Position = () => {\n  const [referenceElement, setReferenceElement] =\n    useState<HTMLElement | null>(null);\n  const placements = [\n    PopoverPosition.TopStart,\n    PopoverPosition.Top,\n    PopoverPosition.TopEnd,\n    PopoverPosition.RightStart,\n    PopoverPosition.Right,\n    PopoverPosition.RightEnd,\n    PopoverPosition.BottomStart,\n    PopoverPosition.Bottom,\n    PopoverPosition.BottomEnd,\n    PopoverPosition.LeftStart,\n    PopoverPosition.Left,\n    PopoverPosition.LeftEnd,\n  ];\n  return (\n    <Box\n      flexDirection={BoxFlexDirection.Row}\n      alignItems={BoxAlignItems.Center}\n      justifyContent={BoxJustifyContent.Center}\n      padding={12}\n      borderColor={BoxBorderColor.BorderDefault}\n      borderWidth={1}\n      className=\"min-h-[600px] min-w-[800px]\"\n    >\n      <Box\n        ref={setReferenceElement}\n        backgroundColor={BoxBackgroundColor.PrimaryMuted}\n        alignItems={BoxAlignItems.Center}\n        justifyContent={BoxJustifyContent.Center}\n        flexDirection={BoxFlexDirection.Row}\n        padding={4}\n        className=\"h-[200px] w-[360px]\"\n      >\n        <Text>Reference element</Text>\n      </Box>\n      {placements.map((placement) => (\n        <Popover\n          key={placement}\n          isOpen\n          hasArrow\n          position={placement}\n          referenceElement={referenceElement}\n        >\n          <Text>{placement}</Text>\n        </Popover>\n      ))}\n    </Box>\n  );\n};"
        },
        {
          "id": "react-components-popover--has-arrow",
          "name": "Has Arrow",
          "snippet": "const HasArrow = () => {\n  const [referenceElement, setReferenceElement] =\n    useState<HTMLElement | null>(null);\n  return (\n    <>\n      <ReferenceBox setRef={setReferenceElement}>Reference</ReferenceBox>\n      <Popover\n        isOpen\n        hasArrow\n        position={PopoverPosition.RightStart}\n        referenceElement={referenceElement}\n      >\n        <Text>With arrow</Text>\n      </Popover>\n      <Popover\n        isOpen\n        position={PopoverPosition.RightEnd}\n        referenceElement={referenceElement}\n      >\n        <Text>Without arrow</Text>\n      </Popover>\n    </>\n  );\n};"
        },
        {
          "id": "react-components-popover--is-portal",
          "name": "Is Portal",
          "snippet": "const IsPortal = () => {\n  const [referenceElement, setReferenceElement] =\n    useState<HTMLElement | null>(null);\n  return (\n    <>\n      <ReferenceBox setRef={setReferenceElement}>Reference</ReferenceBox>\n      <Popover\n        isOpen\n        isPortal\n        hasArrow\n        position={PopoverPosition.RightEnd}\n        referenceElement={referenceElement}\n      >\n        <Text>Inspect to view this popover at the end of document.body</Text>\n      </Popover>\n      <Popover\n        isOpen\n        hasArrow\n        position={PopoverPosition.RightStart}\n        referenceElement={referenceElement}\n      >\n        <Text>Rendered inline (no portal)</Text>\n      </Popover>\n    </>\n  );\n};"
        },
        {
          "id": "react-components-popover--match-width",
          "name": "Match Width",
          "snippet": "const MatchWidth = () => {\n  const [referenceElement, setReferenceElement] =\n    useState<HTMLElement | null>(null);\n  return (\n    <>\n      <ReferenceBox setRef={setReferenceElement}>Reference</ReferenceBox>\n      <Popover\n        isOpen\n        matchWidth\n        position={PopoverPosition.Bottom}\n        referenceElement={referenceElement}\n      >\n        <Text>\n          matchWidth makes the popover the same width as the reference.\n        </Text>\n      </Popover>\n    </>\n  );\n};"
        },
        {
          "id": "react-components-popover--role",
          "name": "Role",
          "snippet": "const Role = () => {\n  const [referenceElement, setReferenceElement] =\n    useState<HTMLElement | null>(null);\n  return (\n    <>\n      <ReferenceBox setRef={setReferenceElement}>Reference</ReferenceBox>\n      <Popover\n        isOpen\n        role={PopoverRole.Dialog}\n        aria-label=\"Dialog example\"\n        position={PopoverPosition.Left}\n        referenceElement={referenceElement}\n      >\n        <Text>{PopoverRole.Dialog}</Text>\n      </Popover>\n      <Popover\n        isOpen\n        role={PopoverRole.Tooltip}\n        position={PopoverPosition.Right}\n        referenceElement={referenceElement}\n      >\n        <Text>{PopoverRole.Tooltip}</Text>\n      </Popover>\n    </>\n  );\n};"
        },
        {
          "id": "react-components-popover--on-press-esc-key",
          "name": "On Press Esc Key",
          "snippet": "const OnPressEscKey = () => {\n  const [referenceElement, setReferenceElement] =\n    useState<HTMLElement | null>(null);\n  const [isOpen, setIsOpen] = useState(false);\n  return (\n    <>\n      <Button\n        variant={ButtonVariant.Primary}\n        onClick={() => setIsOpen(true)}\n        ref={(node) => setReferenceElement(node)}\n      >\n        Open\n      </Button>\n      <Popover\n        isOpen={isOpen}\n        referenceElement={referenceElement}\n        position={PopoverPosition.Bottom}\n        hasArrow\n        onPressEscKey={() => setIsOpen(false)}\n      >\n        <Text>Press Esc to close</Text>\n      </Popover>\n    </>\n  );\n};"
        },
        {
          "id": "react-components-popover--on-click-outside",
          "name": "On Click Outside",
          "snippet": "const OnClickOutside = () => {\n  const [referenceElement, setReferenceElement] =\n    useState<HTMLElement | null>(null);\n  const [isOpen, setIsOpen] = useState(false);\n  return (\n    <>\n      <Button\n        variant={ButtonVariant.Primary}\n        onClick={() => setIsOpen((prev) => !prev)}\n        ref={(node) => setReferenceElement(node)}\n      >\n        Open\n      </Button>\n      <Popover\n        isOpen={isOpen}\n        referenceElement={referenceElement}\n        position={PopoverPosition.Bottom}\n        hasArrow\n        onClickOutside={() => setIsOpen(false)}\n      >\n        <Text>Click outside to close</Text>\n      </Popover>\n    </>\n  );\n};"
        }
      ],
      "import": "import { Box, Button, Popover, Text } from '@metamask/design-system-react';\nimport { PopoverPosition, PopoverRole } from './Popover.types';"
    },
    "react-components-popoverheader": {
      "id": "react-components-popoverheader",
      "name": "PopoverHeader",
      "path": "../../packages/design-system-react/src/components/PopoverHeader/PopoverHeader.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "PopoverHeader",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/PopoverHeader/PopoverHeader.tsx",
        "actualName": "PopoverHeader",
        "exportName": "PopoverHeader",
        "props": {
          "children": {
            "required": false,
            "tsType": {
              "name": "ReactNode"
            },
            "description": "Header title content. When a string, it is auto-wrapped in a\n`Text` with `TextVariant.HeadingSm`, `TextAlign.Center`, and\n`TextColor.Inherit` so the title picks up the popover surface color.\nWhen a `ReactNode`, it is rendered as-is."
          },
          "startAccessory": {
            "required": false,
            "tsType": {
              "name": "ReactNode"
            },
            "description": "Optional override for the start (left in LTR) slot. When provided, it\nreplaces the auto-rendered back button — even if `onBack` is set."
          },
          "endAccessory": {
            "required": false,
            "tsType": {
              "name": "ReactNode"
            },
            "description": "Optional override for the end (right in LTR) slot. When provided, it\nreplaces the auto-rendered close button — even if `onClose` is set."
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional override for additional CSS classes applied to the\nPopoverHeader root. Merged with the component's defaults via `twMerge`."
          }
        }
      },
      "stories": [
        {
          "id": "react-components-popoverheader--default",
          "name": "Default",
          "snippet": "const Default = () => <PopoverHeader>Popover title</PopoverHeader>;"
        },
        {
          "id": "react-components-popoverheader--children",
          "name": "Children",
          "snippet": "const Children = () => (\n  <PopoverHeader\n    onClose={() => undefined}\n    closeButtonProps={{ ariaLabel: 'Close' }}\n  >\n    <Box backgroundColor={BoxBackgroundColor.PrimaryMuted} padding={2}>\n      <Text>Custom node children render as-is</Text>\n    </Box>\n  </PopoverHeader>\n);"
        },
        {
          "id": "react-components-popoverheader--on-back",
          "name": "On Back",
          "snippet": "const OnBack = () => <PopoverHeader\n    onBack={() => undefined}\n    backButtonProps={{ ariaLabel: 'Back' }}\n    onClose={() => undefined}\n    closeButtonProps={{ ariaLabel: 'Close' }}>Popover title</PopoverHeader>;"
        },
        {
          "id": "react-components-popoverheader--on-close",
          "name": "On Close",
          "snippet": "const OnClose = () => <PopoverHeader onClose={() => undefined} closeButtonProps={{ ariaLabel: 'Close' }}>Popover title</PopoverHeader>;"
        },
        {
          "id": "react-components-popoverheader--start-accessory",
          "name": "Start Accessory",
          "snippet": "const StartAccessory = () => (\n  <PopoverHeader\n    startAccessory={<Icon name={IconName.Star} aria-label=\"custom start\" />}\n    onClose={() => undefined}\n    closeButtonProps={{ ariaLabel: 'Close' }}\n  >\n    Custom startAccessory replaces the back button\n  </PopoverHeader>\n);"
        },
        {
          "id": "react-components-popoverheader--end-accessory",
          "name": "End Accessory",
          "snippet": "const EndAccessory = () => (\n  <PopoverHeader\n    onBack={() => undefined}\n    backButtonProps={{ ariaLabel: 'Back' }}\n    endAccessory={\n      <Icon name={IconName.Notification} aria-label=\"custom end\" />\n    }\n  >\n    Custom endAccessory replaces the close button\n  </PopoverHeader>\n);"
        }
      ],
      "import": "import { Box, Icon, PopoverHeader, Text } from '@metamask/design-system-react';"
    },
    "react-components-sensitivetext": {
      "id": "react-components-sensitivetext",
      "name": "SensitiveText",
      "path": "../../packages/design-system-react/src/components/SensitiveText/SensitiveText.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "SensitiveText",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/SensitiveText/SensitiveText.tsx",
        "actualName": "SensitiveText",
        "exportName": "SensitiveText",
        "props": {
          "style": {
            "required": false,
            "tsType": {
              "name": "CSSProperties"
            },
            "description": "Optional prop for inline styles"
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the Text component."
          },
          "textTransform": {
            "required": false,
            "tsType": {
              "name": "TextTransform"
            },
            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
          },
          "textAlign": {
            "required": false,
            "tsType": {
              "name": "TextAlign"
            },
            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
          },
          "overflowWrap": {
            "required": false,
            "tsType": {
              "name": "OverflowWrap"
            },
            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
          },
          "ellipsis": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
          },
          "asChild": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
          },
          "data-testid": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for testing purposes"
          },
          "isHidden": {
            "defaultValue": {
              "value": "false",
              "computed": false
            },
            "required": false
          },
          "length": {
            "defaultValue": {
              "value": "'6'",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-sensitivetext--default",
          "name": "Default",
          "snippet": "const Default = () => <SensitiveText\n    isHidden={false}\n    length={SensitiveTextLength.Short}\n    variant={TextVariant.BodyMd}\n    color={TextColor.TextDefault}>Sensitive information</SensitiveText>;"
        },
        {
          "id": "react-components-sensitivetext--is-hidden",
          "name": "Is Hidden",
          "snippet": "const IsHidden = () => <SensitiveText\n    isHidden\n    length={SensitiveTextLength.Short}\n    variant={TextVariant.BodyMd}\n    color={TextColor.TextDefault}>Sensitive information</SensitiveText>;"
        },
        {
          "id": "react-components-sensitivetext--length",
          "name": "Length",
          "snippet": "const Length = () => <div className=\"flex flex-col gap-2\">\n    <SensitiveText\n        isHidden\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        length={SensitiveTextLength.Short}>Length \"short\" (6 characters)\n              </SensitiveText>\n    <SensitiveText\n        isHidden\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        length={SensitiveTextLength.Medium}>Length \"medium\" (9 characters)\n              </SensitiveText>\n    <SensitiveText\n        isHidden\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        length={SensitiveTextLength.Long}>Length \"long\" (12 characters)\n              </SensitiveText>\n    <SensitiveText\n        isHidden\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        length={SensitiveTextLength.ExtraLong}>Length \"extra long\" (20 characters)\n              </SensitiveText>\n    <SensitiveText\n        isHidden\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        length=\"15\">Length \"15\" (15 characters)\n              </SensitiveText>\n</div>;"
        }
      ],
      "import": "import { SensitiveText } from '@metamask/design-system-react';\nimport { SensitiveTextLength } from '@metamask/design-system-shared';\nimport { TextVariant, TextColor } from '../Text';"
    },
    "react-components-skeleton": {
      "id": "react-components-skeleton",
      "name": "Skeleton",
      "path": "../../packages/design-system-react/src/components/Skeleton/Skeleton.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "Skeleton",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/Skeleton/Skeleton.tsx",
        "actualName": "Skeleton",
        "exportName": "Skeleton",
        "props": {
          "height": {
            "required": false,
            "tsType": {
              "name": "union",
              "raw": "number | string",
              "elements": [
                {
                  "name": "number"
                },
                {
                  "name": "string"
                }
              ]
            },
            "description": "Optional height of the skeleton container. Numbers are interpreted as px;\nstrings can use any CSS length (`'2rem'`, `'100px'`, etc.)."
          },
          "width": {
            "required": false,
            "tsType": {
              "name": "union",
              "raw": "number | string",
              "elements": [
                {
                  "name": "number"
                },
                {
                  "name": "string"
                }
              ]
            },
            "description": "Optional width of the skeleton container. Numbers are interpreted as px;\nstrings can use any CSS length."
          },
          "children": {
            "required": false,
            "tsType": {
              "name": "ReactNode"
            },
            "description": "Optional content to display within the skeleton.\n\n- When provided **without** `hideChildren`, children are rendered\n  directly and the skeleton is not shown (the component is a no-op).\n- When provided **with** `hideChildren`, children are rendered invisibly\n  to preserve layout dimensions while the animated skeleton bar fills\n  the container."
          },
          "hideChildren": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "When `true`, children are rendered invisibly while the skeleton\nanimation plays, preserving layout dimensions. When `false` (the\ndefault) and `children` are provided, children render directly with no\nskeleton overlay.\n\n@default false",
            "defaultValue": {
              "value": "false",
              "computed": false
            }
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the skeleton\ncontainer. Merged with the component's defaults via `twMerge`."
          }
        }
      },
      "stories": [
        {
          "id": "react-components-skeleton--default",
          "name": "Default",
          "snippet": "const Default = () => <Skeleton width={240} height={16} />;"
        },
        {
          "id": "react-components-skeleton--sizes",
          "name": "Sizes",
          "snippet": "const Sizes = () => (\n  <Box flexDirection={BoxFlexDirection.Column} gap={3}>\n    <Skeleton width={80} height={12} />\n    <Skeleton width={160} height={16} />\n    <Skeleton width={240} height={20} />\n    <Skeleton width=\"100%\" height={32} />\n  </Box>\n);"
        },
        {
          "id": "react-components-skeleton--hide-children",
          "name": "Hide Children",
          "snippet": "const HideChildren = () => <Skeleton hideChildren>\n    <Text variant={TextVariant.HeadingMd}>This text dictates the skeleton's layout dimensions\n              </Text>\n</Skeleton>;"
        },
        {
          "id": "react-components-skeleton--toggle-hide-children",
          "name": "Toggle Hide Children",
          "snippet": "const ToggleHideChildren = () => {\n  const [hideChildren, setHideChildren] = useState(true);\n  return (\n    <Box flexDirection={BoxFlexDirection.Column} gap={4}>\n      <Button\n        variant={ButtonVariant.Primary}\n        onClick={() => setHideChildren(!hideChildren)}\n      >\n        Toggle hideChildren ({String(hideChildren)})\n      </Button>\n      <Skeleton hideChildren={hideChildren}>\n        <Text variant={TextVariant.HeadingMd}>\n          Loaded content appears once hideChildren = false\n        </Text>\n      </Skeleton>\n    </Box>\n  );\n};"
        }
      ],
      "import": "import { Box, Button, Skeleton, Text } from '@metamask/design-system-react';"
    },
    "react-components-tag": {
      "id": "react-components-tag",
      "name": "Tag",
      "path": "../../packages/design-system-react/src/components/Tag/Tag.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "Tag",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/Tag/Tag.tsx",
        "actualName": "Tag",
        "exportName": "Tag",
        "props": {
          "startIconName": {
            "required": false,
            "tsType": {
              "name": "IconName"
            },
            "description": "Optional icon at the start of the tag (`IconSize.Xs` unless overridden in `startIconProps`)."
          },
          "startIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional props for the start icon. You may set `name` here instead of `startIconName`."
          },
          "endIconName": {
            "required": false,
            "tsType": {
              "name": "IconName"
            },
            "description": "Optional icon at the end of the tag (`IconSize.Xs` unless overridden in `endIconProps`)."
          },
          "endIconProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<IconProps>"
            },
            "description": "Optional props for the end icon. You may set `name` here instead of `endIconName`."
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional CSS classes merged onto the tag container."
          },
          "severity": {
            "defaultValue": {
              "value": "'neutral'",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-tag--default",
          "name": "Default",
          "snippet": "const Default = () => <Tag severity={TagSeverity.Neutral}>Tag</Tag>;"
        },
        {
          "id": "react-components-tag--severity",
          "name": "Severity",
          "snippet": "const Severity = () => (\n  <Box\n    flexDirection={BoxFlexDirection.Column}\n    alignItems={BoxAlignItems.Start}\n    gap={2}\n  >\n    <Tag severity={TagSeverity.Neutral}>Neutral</Tag>\n    <Tag severity={TagSeverity.Success}>Success</Tag>\n    <Tag severity={TagSeverity.Danger}>Danger</Tag>\n    <Tag severity={TagSeverity.Warning}>Warning</Tag>\n    <Tag severity={TagSeverity.Info}>Info</Tag>\n  </Box>\n);"
        },
        {
          "id": "react-components-tag--start-icon-name",
          "name": "Start Icon Name",
          "snippet": "const StartIconName = () => <Tag startIconName={IconName.Warning}>Tag</Tag>;"
        },
        {
          "id": "react-components-tag--end-icon-name",
          "name": "End Icon Name",
          "snippet": "const EndIconName = () => <Tag endIconName={IconName.ArrowDown}>Tag</Tag>;"
        },
        {
          "id": "react-components-tag--start-accessory",
          "name": "Start Accessory",
          "snippet": "const StartAccessory = () => (\n  <Tag\n    startAccessory={\n      <Icon\n        name={IconName.Warning}\n        color={IconColor.IconAlternative}\n        size={IconSize.Xs}\n        data-testid=\"tag-story-start-accessory\"\n        aria-hidden\n      />\n    }\n  >\n    Tag\n  </Tag>\n);"
        },
        {
          "id": "react-components-tag--end-accessory",
          "name": "End Accessory",
          "snippet": "const EndAccessory = () => (\n  <Tag\n    endAccessory={\n      <Icon\n        name={IconName.ArrowDown}\n        color={IconColor.IconAlternative}\n        size={IconSize.Xs}\n        data-testid=\"tag-story-end-accessory\"\n        aria-hidden\n      />\n    }\n  >\n    Tag\n  </Tag>\n);"
        },
        {
          "id": "react-components-tag--start-and-end-icon-names",
          "name": "Start And End Icon Names",
          "snippet": "const StartAndEndIconNames = () => (\n  <Tag startIconName={IconName.Warning} endIconName={IconName.ArrowDown}>\n    Tag\n  </Tag>\n);"
        }
      ],
      "import": "import { Box, Icon, Tag } from '@metamask/design-system-react';\nimport { TagSeverity } from '@metamask/design-system-shared';"
    },
    "react-components-text": {
      "id": "react-components-text",
      "name": "Text",
      "path": "../../packages/design-system-react/src/components/Text/Text.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "Text",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/Text/Text.tsx",
        "actualName": "Text",
        "exportName": "Text",
        "props": {
          "style": {
            "required": false,
            "tsType": {
              "name": "CSSProperties"
            },
            "description": "Optional prop for inline styles"
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the Text component."
          },
          "textTransform": {
            "required": false,
            "tsType": {
              "name": "TextTransform"
            },
            "description": "Optional prop to apply text transformation to the content.\nOptions: Uppercase, Lowercase, Capitalize, Normal"
          },
          "textAlign": {
            "required": false,
            "tsType": {
              "name": "TextAlign"
            },
            "description": "Optional prop to control the text alignment within its container.\nOptions: Left, Center, Right, Justify"
          },
          "overflowWrap": {
            "required": false,
            "tsType": {
              "name": "OverflowWrap"
            },
            "description": "Optional prop to determine how text should wrap when it reaches the edge of its container.\nOptions: BreakWord, Anywhere, Normal"
          },
          "ellipsis": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional boolean that adds an ellipsis (...) when text overflows its container.\n\n@default false"
          },
          "asChild": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional boolean that determines if the component should merge its props onto its immediate child\ninstead of rendering a default DOM element.\n\n@default false"
          },
          "data-testid": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for testing purposes"
          },
          "variant": {
            "defaultValue": {
              "value": "'body-md'",
              "computed": false
            },
            "required": false
          },
          "fontFamily": {
            "defaultValue": {
              "value": "'default'",
              "computed": false
            },
            "required": false
          },
          "color": {
            "defaultValue": {
              "value": "'text-default'",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-text--default",
          "name": "Default",
          "snippet": "const Default = () => <Text variant={TextVariant.BodyMd} color={TextColor.TextDefault}>The quick orange fox jumped over the lazy dog.</Text>;"
        },
        {
          "id": "react-components-text--variant",
          "name": "Variant",
          "snippet": "const Variant = () => <div className=\"space-y-4\">\n    <Text color={TextColor.TextDefault} variant={TextVariant.DisplayXl}>DisplayXl\n              </Text>\n    <Text color={TextColor.TextDefault} variant={TextVariant.DisplayLg}>DisplayLg\n              </Text>\n    <Text color={TextColor.TextDefault} variant={TextVariant.DisplayMd}>DisplayMd\n              </Text>\n    <Text color={TextColor.TextDefault} variant={TextVariant.HeadingLg}>HeadingLg\n              </Text>\n    <Text color={TextColor.TextDefault} variant={TextVariant.HeadingMd}>HeadingMd\n              </Text>\n    <Text color={TextColor.TextDefault} variant={TextVariant.HeadingSm}>HeadingSm\n              </Text>\n    <Text color={TextColor.TextDefault} variant={TextVariant.BodyLg}>BodyLg\n              </Text>\n    <Text color={TextColor.TextDefault} variant={TextVariant.BodyMd}>BodyMd\n              </Text>\n    <Text color={TextColor.TextDefault} variant={TextVariant.BodySm}>BodySm\n              </Text>\n    <Text color={TextColor.TextDefault} variant={TextVariant.BodyXs}>BodyXs\n              </Text>\n    <Text color={TextColor.TextDefault} variant={TextVariant.PageHeading}>PageHeading\n              </Text>\n    <Text color={TextColor.TextDefault} variant={TextVariant.SectionHeading}>SectionHeading\n              </Text>\n    <Text\n        color={TextColor.TextDefault}\n        variant={TextVariant.ButtonLabelMd}\n        className=\"block\">ButtonLabelMd\n              </Text>\n    <Text\n        color={TextColor.TextDefault}\n        variant={TextVariant.ButtonLabelLg}\n        className=\"block\">ButtonLabelLg\n              </Text>\n    <Text\n        color={TextColor.TextDefault}\n        variant={TextVariant.AmountDisplayLg}\n        className=\"block\">AmountDisplayLg\n              </Text>\n</div>;"
        },
        {
          "id": "react-components-text--color",
          "name": "Color",
          "snippet": "const Color = () => <div>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        className=\"p-4\">TextDefault\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextAlternative}\n        className=\"p-4\">TextAlternative\n              </Text>\n    <Text variant={TextVariant.BodyMd} color={TextColor.TextMuted} className=\"p-4\">TextMuted\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.PrimaryDefault}\n        className=\"p-4\">PrimaryDefault\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.PrimaryDefaultHover}\n        className=\"p-4\">PrimaryDefaultHover\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.PrimaryDefaultPressed}\n        className=\"p-4\">PrimaryDefaultPressed\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.PrimaryInverse}\n        className=\"bg-primary-default p-4\">PrimaryInverse on bg-primary-default\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.ErrorDefault}\n        className=\"p-4\">ErrorDefault\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.ErrorDefaultHover}\n        className=\"p-4\">ErrorDefaultHover\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.ErrorDefaultPressed}\n        className=\"p-4\">ErrorDefaultPressed\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.ErrorInverse}\n        className=\"bg-error-default p-4\">ErrorInverse on bg-error-default\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.SuccessDefault}\n        className=\"p-4\">SuccessDefault\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.SuccessDefaultHover}\n        className=\"p-4\">SuccessDefaultHover\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.SuccessDefaultPressed}\n        className=\"p-4\">SuccessDefaultPressed\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.SuccessInverse}\n        className=\"bg-success-default p-4\">SuccessInverse on bg-success-default\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.WarningDefault}\n        className=\"p-4\">WarningDefault\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.WarningDefaultHover}\n        className=\"p-4\">WarningDefaultHover\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.WarningDefaultPressed}\n        className=\"p-4\">WarningDefaultPressed\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.WarningInverse}\n        className=\"bg-warning-default p-4\">WarningInverse on bg-warning-default\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.InfoDefault}\n        className=\"p-4\">InfoDefault\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.InfoInverse}\n        className=\"bg-info-default p-4\">InfoInverse on bg-info-default\n              </Text>\n</div>;"
        },
        {
          "id": "react-components-text--font-weight-story",
          "name": "Font Weight",
          "snippet": "const FontWeightStory = () => <div className=\"space-y-4\">\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        fontWeight={FontWeight.Regular}>Regular (400)\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        fontWeight={FontWeight.Medium}>Medium (500)\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        fontWeight={FontWeight.Bold}>Bold (600)\n              </Text>\n</div>;"
        },
        {
          "id": "react-components-text--font-family-story",
          "name": "Font Family",
          "snippet": "const FontFamilyStory = () => <div className=\"space-y-4\">\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        fontFamily={FontFamily.Default}>Default (Inter)\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        fontFamily={FontFamily.Hero}>Hero (Grotzec Cond)\n              </Text>\n</div>;"
        },
        {
          "id": "react-components-text--font-style-story",
          "name": "Font Style",
          "snippet": "const FontStyleStory = () => <div className=\"space-y-4\">\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        fontStyle={FontStyle.Normal}>Normal\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        fontStyle={FontStyle.Italic}>Italic\n              </Text>\n</div>;"
        },
        {
          "id": "react-components-text--text-transform-story",
          "name": "Text Transform",
          "snippet": "const TextTransformStory = () => <div className=\"space-y-4\">\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        textTransform={TextTransform.Uppercase}>uppercase\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        textTransform={TextTransform.Lowercase}>lowercase\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        textTransform={TextTransform.Capitalize}>capitalize\n              </Text>\n</div>;"
        },
        {
          "id": "react-components-text--text-align-story",
          "name": "Text Align",
          "snippet": "const TextAlignStory = () => <div className=\"space-y-4\">\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        textAlign={TextAlign.Left}>Left aligned\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        textAlign={TextAlign.Center}>Center aligned\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        textAlign={TextAlign.Right}>Right aligned\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        textAlign={TextAlign.Justify}>Justify aligned\n              </Text>\n</div>;"
        },
        {
          "id": "react-components-text--overflow-wrap-story",
          "name": "Overflow Wrap",
          "snippet": "const OverflowWrapStory = () => <div className=\"w-48 border border-warning-default\">\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        overflowWrap={OverflowWrap.Normal}>Normal: 0x39013f961c378f02c2b82a6e1d31e9812786fd9d\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        overflowWrap={OverflowWrap.Anywhere}>Break-word: 0x39013f961c378f02c2b82a6e1d31e9812786fd9d\n              </Text>\n</div>;"
        },
        {
          "id": "react-components-text--ellipsis",
          "name": "Ellipsis",
          "snippet": "const Ellipsis = () => <div className=\"w-48 border border-primary-default\">\n    <Text variant={TextVariant.BodyMd} color={TextColor.TextDefault} ellipsis>Ellipsis: 0x39013f961c378f02c2b82a6e1d31e9812786fd9d\n              </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        ellipsis={false}>No Ellipsis: 0x39013f961c378f02c2b82a6e1d31e9812786fd9d\n              </Text>\n</div>;"
        },
        {
          "id": "react-components-text--as-child",
          "name": "As Child",
          "snippet": "const AsChild = () => <div className=\"space-y-4\">\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        asChild\n        className=\"block\">\n        <span>Text rendered as span</span>\n    </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        asChild\n        className=\"block\">\n        <button\n            type=\"button\"\n            onClick={() => {\n              // eslint-disable-next-line no-alert\n              alert('button-clicked');\n            }}>Text rendered as button\n                    </button>\n    </Text>\n    <Text\n        variant={TextVariant.BodyMd}\n        color={TextColor.TextDefault}\n        asChild\n        className=\"border border-default bg-default\">\n        <input\n            type=\"text\"\n            placeholder=\"Rendered as input\"\n            defaultValue=\"Text component as input\" />\n    </Text>\n</div>;"
        }
      ],
      "import": "import { Text } from '@metamask/design-system-react';\nimport { TextVariant, TextColor } from '@metamask/design-system-shared';"
    },
    "react-components-textarea": {
      "id": "react-components-textarea",
      "name": "TextArea",
      "path": "../../packages/design-system-react/src/components/TextArea/TextArea.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "TextArea",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/TextArea/TextArea.tsx",
        "actualName": "TextArea",
        "exportName": "TextArea",
        "props": {
          "resize": {
            "required": false,
            "tsType": {
              "name": "TextAreaResize"
            },
            "description": "Optional prop to control the resize behavior of the textarea.\nPossible values:\n- TextAreaResize.None\n- TextAreaResize.Both\n- TextAreaResize.Horizontal\n- TextAreaResize.Vertical\n\n@default TextAreaResize.None",
            "defaultValue": {
              "value": "'none'",
              "computed": false
            }
          },
          "onChange": {
            "required": false,
            "tsType": {
              "name": "signature",
              "type": "function",
              "raw": "(event: ChangeEvent<HTMLTextAreaElement>) => void",
              "signature": {
                "arguments": [
                  {
                    "type": {
                      "name": "ChangeEvent",
                      "elements": [
                        {
                          "name": "HTMLTextAreaElement"
                        }
                      ],
                      "raw": "ChangeEvent<HTMLTextAreaElement>"
                    },
                    "name": "event"
                  }
                ],
                "return": {
                  "name": "void"
                }
              }
            },
            "description": "Called when the textarea value changes."
          },
          "onFocus": {
            "required": false,
            "tsType": {
              "name": "signature",
              "type": "function",
              "raw": "(event: FocusEvent<HTMLTextAreaElement>) => void",
              "signature": {
                "arguments": [
                  {
                    "type": {
                      "name": "FocusEvent",
                      "elements": [
                        {
                          "name": "HTMLTextAreaElement"
                        }
                      ],
                      "raw": "FocusEvent<HTMLTextAreaElement>"
                    },
                    "name": "event"
                  }
                ],
                "return": {
                  "name": "void"
                }
              }
            },
            "description": "Called when the textarea receives focus."
          },
          "onBlur": {
            "required": false,
            "tsType": {
              "name": "signature",
              "type": "function",
              "raw": "(event: FocusEvent<HTMLTextAreaElement>) => void",
              "signature": {
                "arguments": [
                  {
                    "type": {
                      "name": "FocusEvent",
                      "elements": [
                        {
                          "name": "HTMLTextAreaElement"
                        }
                      ],
                      "raw": "FocusEvent<HTMLTextAreaElement>"
                    },
                    "name": "event"
                  }
                ],
                "return": {
                  "name": "void"
                }
              }
            },
            "description": "Called when the textarea loses focus."
          },
          "autoFocus": {
            "defaultValue": {
              "value": "false",
              "computed": false
            },
            "required": false
          },
          "isDisabled": {
            "defaultValue": {
              "value": "false",
              "computed": false
            },
            "required": false
          },
          "isReadOnly": {
            "defaultValue": {
              "value": "false",
              "computed": false
            },
            "required": false
          },
          "isError": {
            "defaultValue": {
              "value": "false",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-textarea--default",
          "name": "Default",
          "snippet": "const Default = args => {\n    const [value, setValue] = useState(args.value ?? '');\n    useEffect(() => {\n      setValue(args.value ?? '');\n    }, [args.value]);\n\n    return (\n        <TextArea\n            placeholder=\"Enter multiple lines...\"\n            value={value}\n            onChange={(event) => setValue(event.target.value)} />\n    );\n};"
        },
        {
          "id": "react-components-textarea--auto-focus",
          "name": "Auto Focus",
          "snippet": "const AutoFocus = args => {\n    const [value, setValue] = useState(args.value ?? '');\n    useEffect(() => {\n      setValue(args.value ?? '');\n    }, [args.value]);\n\n    return (\n        <TextArea\n            autoFocus\n            placeholder=\"Auto focus\"\n            value={value}\n            onChange={(event) => setValue(event.target.value)} />\n    );\n};"
        },
        {
          "id": "react-components-textarea--rows",
          "name": "Rows",
          "snippet": "const Rows = args => {\n    const [value, setValue] = useState(args.value ?? '');\n    useEffect(() => {\n      setValue(args.value ?? '');\n    }, [args.value]);\n\n    return (\n        <TextArea\n            rows={8}\n            placeholder=\"rows: 8\"\n            value={value}\n            onChange={(event) => setValue(event.target.value)} />\n    );\n};"
        },
        {
          "id": "react-components-textarea--is-error",
          "name": "Is Error",
          "snippet": "const IsError = function Render() {\n  const [defaultValue, setDefaultValue] = useState('');\n  const [errorValue, setErrorValue] = useState('');\n\n  return (\n    <Box className=\"flex flex-col gap-4\">\n      <TextArea\n        value={defaultValue}\n        placeholder=\"Default\"\n        onChange={(event) => setDefaultValue(event.target.value)}\n      />\n      <TextArea\n        value={errorValue}\n        placeholder=\"Error state\"\n        isError\n        onChange={(event) => setErrorValue(event.target.value)}\n      />\n    </Box>\n  );\n};"
        },
        {
          "id": "react-components-textarea--is-disabled",
          "name": "Is Disabled",
          "snippet": "const IsDisabled = function Render() {\n  const [value, setValue] = useState('Editable');\n\n  return (\n    <Box className=\"flex flex-col gap-4\">\n      <TextArea\n        value={value}\n        placeholder=\"Enabled\"\n        onChange={(event) => setValue(event.target.value)}\n      />\n      <TextArea\n        value=\"Not editable\"\n        placeholder=\"Disabled\"\n        isDisabled\n        onChange={() => undefined}\n      />\n    </Box>\n  );\n};"
        },
        {
          "id": "react-components-textarea--max-length",
          "name": "Max Length",
          "snippet": "const MaxLength = args => {\n    const [value, setValue] = useState(args.value ?? '');\n    useEffect(() => {\n      setValue(args.value ?? '');\n    }, [args.value]);\n\n    return (\n        <TextArea\n            maxLength={13}\n            placeholder=\"Max length 13 characters\"\n            value={value}\n            onChange={(event) => setValue(event.target.value)} />\n    );\n};"
        },
        {
          "id": "react-components-textarea--is-read-only",
          "name": "Is Read Only",
          "snippet": "const IsReadOnly = function Render() {\n  const [value, setValue] = useState('Editable');\n\n  return (\n    <Box className=\"flex flex-col gap-4\">\n      <TextArea\n        value={value}\n        placeholder=\"Editable field\"\n        onChange={(event) => setValue(event.target.value)}\n      />\n      <TextArea\n        value=\"Cannot edit this value\"\n        placeholder=\"Read-only\"\n        isReadOnly\n        onChange={() => undefined}\n      />\n    </Box>\n  );\n};"
        },
        {
          "id": "react-components-textarea--required",
          "name": "Required",
          "snippet": "const Required = args => {\n    const [value, setValue] = useState(args.value ?? '');\n    useEffect(() => {\n      setValue(args.value ?? '');\n    }, [args.value]);\n\n    return (\n        <TextArea\n            required\n            placeholder=\"Required\"\n            value={value}\n            onChange={(event) => setValue(event.target.value)} />\n    );\n};"
        },
        {
          "id": "react-components-textarea--resize",
          "name": "Resize",
          "snippet": "const Resize = function Render() {\n  const [noneValue, setNoneValue] = useState('Cannot be resized');\n  const [verticalValue, setVerticalValue] = useState('Resize vertical only');\n  const [horizontalValue, setHorizontalValue] = useState(\n    'Resize horizontal only',\n  );\n  const [bothValue, setBothValue] = useState('Resize in both directions');\n\n  return (\n    <Box className=\"flex flex-col gap-4\">\n      <TextArea\n        value={noneValue}\n        placeholder=\"No resize (default)\"\n        resize={TextAreaResize.None}\n        onChange={(event) => setNoneValue(event.target.value)}\n      />\n      <TextArea\n        value={verticalValue}\n        placeholder=\"Vertical resize\"\n        resize={TextAreaResize.Vertical}\n        onChange={(event) => setVerticalValue(event.target.value)}\n      />\n      <TextArea\n        value={horizontalValue}\n        placeholder=\"Horizontal resize\"\n        resize={TextAreaResize.Horizontal}\n        onChange={(event) => setHorizontalValue(event.target.value)}\n      />\n      <TextArea\n        value={bothValue}\n        placeholder=\"Both directions\"\n        resize={TextAreaResize.Both}\n        onChange={(event) => setBothValue(event.target.value)}\n      />\n    </Box>\n  );\n};"
        }
      ],
      "import": "import { Box, TextArea } from '@metamask/design-system-react';"
    },
    "react-components-textbutton": {
      "id": "react-components-textbutton",
      "name": "TextButton",
      "path": "../../packages/design-system-react/src/components/TextButton/TextButton.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "TextButton",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/TextButton/TextButton.tsx",
        "actualName": "TextButton",
        "exportName": "TextButton",
        "props": {
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop for additional CSS classes to be applied to the TextButton component"
          },
          "isInverse": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional prop that when true, applies inverse styling to the button\n\n@default false"
          },
          "isDisabled": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "Optional prop that when true, disables the button\n\n@default false"
          },
          "size": {
            "required": false,
            "tsType": {
              "name": "TextButtonSize"
            },
            "description": "Optional prop to specify the size of the TextButton\n\n@default TextButtonSize.BodyMd",
            "defaultValue": {
              "value": "TextButtonSize.BodyMd",
              "computed": true
            }
          },
          "style": {
            "required": false,
            "tsType": {
              "name": "ReactCSSProperties",
              "raw": "React.CSSProperties"
            },
            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
          }
        }
      },
      "stories": [
        {
          "id": "react-components-textbutton--default",
          "name": "Default",
          "snippet": "const Default = () => <TextButton>Text button</TextButton>;"
        },
        {
          "id": "react-components-textbutton--size",
          "name": "Size",
          "snippet": "const Size = () => <div className=\"space-y-8\">\n    <div className=\"flex flex-col items-start gap-2\">\n        <TextButton size={TextButtonSize.BodyLg}>BodyLg\n                    </TextButton>\n        <TextButton size={TextButtonSize.BodyMd}>BodyMd (Default)\n                    </TextButton>\n        <TextButton size={TextButtonSize.BodySm}>BodySm\n                    </TextButton>\n        <TextButton size={TextButtonSize.BodyXs}>BodyXs\n                    </TextButton>\n    </div>\n</div>;"
        },
        {
          "id": "react-components-textbutton--as-child",
          "name": "As Child",
          "snippet": "const AsChild = () => (\n  <div className=\"space-y-4\">\n    <Text variant={TextVariant.BodySm}>\n      To learn more about web3, visit{' '}\n      <TextButton size={TextButtonSize.BodySm} asChild>\n        <a href=\"https://metamask.io\">MetaMask Learn</a>\n      </TextButton>\n    </Text>\n\n    <TextButton asChild endIconName={IconName.Arrow2UpRight}>\n      <a\n        href=\"https://portfolio.metamask.io\"\n        target=\"_blank\"\n        rel=\"noopener noreferrer\"\n      >\n        Portfolio\n      </a>\n    </TextButton>\n  </div>\n);"
        },
        {
          "id": "react-components-textbutton--is-inverse",
          "name": "Is Inverse",
          "snippet": "const IsInverse = () => <div className=\"rounded bg-primary-default p-4\">\n    <TextButton isInverse>Inverse button\n              </TextButton>\n</div>;"
        },
        {
          "id": "react-components-textbutton--start-icon-name",
          "name": "Start Icon Name",
          "snippet": "const StartIconName = () => <TextButton startIconName={IconName.AddSquare}>With start icon</TextButton>;"
        },
        {
          "id": "react-components-textbutton--end-icon-name",
          "name": "End Icon Name",
          "snippet": "const EndIconName = () => <TextButton endIconName={IconName.AddSquare}>With end icon</TextButton>;"
        },
        {
          "id": "react-components-textbutton--is-disabled",
          "name": "Is Disabled",
          "snippet": "const IsDisabled = () => <TextButton isDisabled>Disabled button</TextButton>;"
        }
      ],
      "import": "import { Text, TextButton } from '@metamask/design-system-react';\nimport { IconName } from '../Icon';"
    },
    "react-components-textfield": {
      "id": "react-components-textfield",
      "name": "TextField",
      "path": "../../packages/design-system-react/src/components/TextField/TextField.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "TextField",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/TextField/TextField.tsx",
        "actualName": "TextField",
        "exportName": "TextField",
        "props": {
          "size": {
            "required": false,
            "tsType": {
              "name": "TextFieldSize"
            },
            "description": "The size of the text field. Controls the height.\n\n@default TextFieldSize.Md",
            "defaultValue": {
              "value": "'md'",
              "computed": false
            }
          },
          "type": {
            "required": false,
            "tsType": {
              "name": "TextFieldType"
            },
            "description": "The native input `type` attribute.\n\n@default TextFieldType.Text",
            "defaultValue": {
              "value": "'text'",
              "computed": false
            }
          },
          "truncate": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "If true, truncates overflowing input text with an ellipsis.\n\n@default true",
            "defaultValue": {
              "value": "true",
              "computed": false
            }
          },
          "maxLength": {
            "required": false,
            "tsType": {
              "name": "number"
            },
            "description": "Max number of characters to allow."
          },
          "name": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Name attribute of the inner `input` element."
          },
          "id": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "`id` of the inner `input` element."
          },
          "required": {
            "required": false,
            "tsType": {
              "name": "boolean"
            },
            "description": "If true, the inner input is marked as required."
          },
          "inputProps": {
            "required": false,
            "tsType": {
              "name": "Omit",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "Omit<\n  ComponentPropsWithoutRef<'input'>,\n  'defaultValue' | 'disabled' | 'readOnly' | 'value'\n> &\n  InputPropsShared & {\n    /**\n     * Optional prop for additional CSS classes.\n     */\n    className?: string;\n    /**\n     * Optional inline styles.\n     */\n    style?: React.CSSProperties;\n    /**\n     * Dataset attributes forwarded to the native `<input>`.\n     *\n     * JSX already accepts `data-*` on `<Input>`, but object literals such as\n     * `TextField`'s `inputProps` do not. This index signature makes those\n     * literals type-check. Same pattern as `Checkbox` `inputProps`.\n     */\n    [key: `data-${string}`]: string;\n  }",
                  "elements": [
                    {
                      "name": "Omit",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'input'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'input'>"
                        },
                        {
                          "name": "union",
                          "raw": "'defaultValue' | 'disabled' | 'readOnly' | 'value'",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'defaultValue'"
                            },
                            {
                              "name": "literal",
                              "value": "'disabled'"
                            },
                            {
                              "name": "literal",
                              "value": "'readOnly'"
                            },
                            {
                              "name": "literal",
                              "value": "'value'"
                            }
                          ]
                        }
                      ],
                      "raw": "Omit<\n  ComponentPropsWithoutRef<'input'>,\n  'defaultValue' | 'disabled' | 'readOnly' | 'value'\n>"
                    },
                    {
                      "name": "InputPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop for additional CSS classes.\n   */\n  className?: string;\n  /**\n   * Optional inline styles.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Dataset attributes forwarded to the native `<input>`.\n   *\n   * JSX already accepts `data-*` on `<Input>`, but object literals such as\n   * `TextField`'s `inputProps` do not. This index signature makes those\n   * literals type-check. Same pattern as `Checkbox` `inputProps`.\n   */\n  [key: `data-${string}`]: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional inline styles."
                          },
                          {
                            "key": {
                              "name": "literal",
                              "value": "`data-${string}`"
                            },
                            "value": {
                              "name": "string",
                              "required": true
                            }
                          }
                        ]
                      }
                    }
                  ]
                },
                {
                  "name": "union",
                  "raw": "| 'autoFocus'\n| 'id'\n| 'isDisabled'\n| 'isReadOnly'\n| 'isStateStylesDisabled'\n| 'maxLength'\n| 'name'\n| 'onBlur'\n| 'onChange'\n| 'onFocus'\n| 'placeholder'\n| 'required'\n| 'type'\n| 'value'",
                  "elements": [
                    {
                      "name": "literal",
                      "value": "'autoFocus'"
                    },
                    {
                      "name": "literal",
                      "value": "'id'"
                    },
                    {
                      "name": "literal",
                      "value": "'isDisabled'"
                    },
                    {
                      "name": "literal",
                      "value": "'isReadOnly'"
                    },
                    {
                      "name": "literal",
                      "value": "'isStateStylesDisabled'"
                    },
                    {
                      "name": "literal",
                      "value": "'maxLength'"
                    },
                    {
                      "name": "literal",
                      "value": "'name'"
                    },
                    {
                      "name": "literal",
                      "value": "'onBlur'"
                    },
                    {
                      "name": "literal",
                      "value": "'onChange'"
                    },
                    {
                      "name": "literal",
                      "value": "'onFocus'"
                    },
                    {
                      "name": "literal",
                      "value": "'placeholder'"
                    },
                    {
                      "name": "literal",
                      "value": "'required'"
                    },
                    {
                      "name": "literal",
                      "value": "'type'"
                    },
                    {
                      "name": "literal",
                      "value": "'value'"
                    }
                  ]
                }
              ],
              "raw": "Omit<\n  InputProps,\n  | 'autoFocus'\n  | 'id'\n  | 'isDisabled'\n  | 'isReadOnly'\n  | 'isStateStylesDisabled'\n  | 'maxLength'\n  | 'name'\n  | 'onBlur'\n  | 'onChange'\n  | 'onFocus'\n  | 'placeholder'\n  | 'required'\n  | 'type'\n  | 'value'\n>"
            },
            "description": "Additional props for the inner `Input`. Do not pass `value`,\n`placeholder`, `isDisabled`, `isReadOnly`, `onFocus`, `onBlur`,\n`onChange`, `id`, `name`, `type`, `maxLength`, or `required` here;\nuse the TextField-level props above. `data-*` attributes are forwarded\nto the native input."
          },
          "inputRef": {
            "required": false,
            "tsType": {
              "name": "Ref",
              "elements": [
                {
                  "name": "HTMLInputElement"
                }
              ],
              "raw": "Ref<HTMLInputElement>"
            },
            "description": "Ref to the inner `input` element. The component `ref` targets the\nroot `div`."
          },
          "onChange": {
            "required": false,
            "tsType": {
              "name": "signature",
              "type": "function",
              "raw": "(event: React.ChangeEvent<HTMLInputElement>) => void",
              "signature": {
                "arguments": [
                  {
                    "type": {
                      "name": "ReactChangeEvent",
                      "raw": "React.ChangeEvent<HTMLInputElement>",
                      "elements": [
                        {
                          "name": "HTMLInputElement"
                        }
                      ]
                    },
                    "name": "event"
                  }
                ],
                "return": {
                  "name": "void"
                }
              }
            },
            "description": "Called when the inner input value changes."
          },
          "onFocus": {
            "required": false,
            "tsType": {
              "name": "signature",
              "type": "function",
              "raw": "(event: React.FocusEvent<HTMLInputElement>) => void",
              "signature": {
                "arguments": [
                  {
                    "type": {
                      "name": "ReactFocusEvent",
                      "raw": "React.FocusEvent<HTMLInputElement>",
                      "elements": [
                        {
                          "name": "HTMLInputElement"
                        }
                      ]
                    },
                    "name": "event"
                  }
                ],
                "return": {
                  "name": "void"
                }
              }
            },
            "description": "Called when the inner input receives focus."
          },
          "onBlur": {
            "required": false,
            "tsType": {
              "name": "signature",
              "type": "function",
              "raw": "(event: React.FocusEvent<HTMLInputElement>) => void",
              "signature": {
                "arguments": [
                  {
                    "type": {
                      "name": "ReactFocusEvent",
                      "raw": "React.FocusEvent<HTMLInputElement>",
                      "elements": [
                        {
                          "name": "HTMLInputElement"
                        }
                      ]
                    },
                    "name": "event"
                  }
                ],
                "return": {
                  "name": "void"
                }
              }
            },
            "description": "Called when the inner input loses focus."
          },
          "onClick": {
            "required": false,
            "tsType": {
              "name": "signature",
              "type": "function",
              "raw": "(event: React.MouseEvent<HTMLDivElement>) => void",
              "signature": {
                "arguments": [
                  {
                    "type": {
                      "name": "ReactMouseEvent",
                      "raw": "React.MouseEvent<HTMLDivElement>",
                      "elements": [
                        {
                          "name": "HTMLDivElement"
                        }
                      ]
                    },
                    "name": "event"
                  }
                ],
                "return": {
                  "name": "void"
                }
              }
            },
            "description": "Called when the root container is clicked. Focuses the inner input."
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional additional CSS classes for the root container."
          },
          "style": {
            "required": false,
            "tsType": {
              "name": "ReactCSSProperties",
              "raw": "React.CSSProperties"
            },
            "description": "Optional inline styles for the root container."
          },
          "autoFocus": {
            "defaultValue": {
              "value": "false",
              "computed": false
            },
            "required": false
          },
          "isDisabled": {
            "defaultValue": {
              "value": "false",
              "computed": false
            },
            "required": false
          },
          "isError": {
            "defaultValue": {
              "value": "false",
              "computed": false
            },
            "required": false
          },
          "isReadOnly": {
            "defaultValue": {
              "value": "false",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-textfield--default",
          "name": "Default",
          "snippet": "const Default = args => {\n    const [value, setValue] = useState(args.value ?? '');\n\n    useEffect(() => {\n      setValue(args.value ?? '');\n    }, [args.value]);\n\n    return (\n        <TextField\n            placeholder=\"Sample placeholder\"\n            value={value}\n            onChange={(event) => {\n              setValue(event.target.value);\n              args.onChange?.(event);\n            }} />\n    );\n};"
        },
        {
          "id": "react-components-textfield--size",
          "name": "Size",
          "snippet": "const Size = () => (\n  <div className=\"flex flex-col gap-4\">\n    <ControlledTextField placeholder=\"Sm\" size={TextFieldSize.Sm} value=\"\" />\n    <ControlledTextField placeholder=\"Md\" size={TextFieldSize.Md} value=\"\" />\n    <ControlledTextField placeholder=\"Lg\" size={TextFieldSize.Lg} value=\"\" />\n  </div>\n);"
        },
        {
          "id": "react-components-textfield--type",
          "name": "Type",
          "snippet": "const Type = () => (\n  <div className=\"flex flex-col gap-4\">\n    <ControlledTextField\n      placeholder=\"Text\"\n      type={TextFieldType.Text}\n      value=\"\"\n    />\n    <ControlledTextField\n      placeholder=\"Number\"\n      type={TextFieldType.Number}\n      value=\"\"\n    />\n    <ControlledTextField\n      placeholder=\"Password\"\n      type={TextFieldType.Password}\n      value=\"\"\n    />\n    <ControlledTextField\n      placeholder=\"Search\"\n      type={TextFieldType.Search}\n      value=\"\"\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-textfield--start-accessory",
          "name": "Start Accessory",
          "snippet": "const StartAccessory = () => (\n  <ControlledTextField\n    placeholder=\"0.00\"\n    startAccessory={<Text>$</Text>}\n    value=\"\"\n  />\n);"
        },
        {
          "id": "react-components-textfield--end-accessory",
          "name": "End Accessory",
          "snippet": "const EndAccessory = () => (\n  <ControlledTextField\n    placeholder=\"Amount\"\n    endAccessory={<Text>USD</Text>}\n    value=\"\"\n  />\n);"
        },
        {
          "id": "react-components-textfield--is-error",
          "name": "Is Error",
          "snippet": "const IsError = () => (\n  <ControlledTextField isError placeholder=\"Error\" value=\"Invalid value\" />\n);"
        },
        {
          "id": "react-components-textfield--is-disabled",
          "name": "Is Disabled",
          "snippet": "const IsDisabled = () => (\n  <ControlledTextField\n    isDisabled\n    placeholder=\"Disabled\"\n    value=\"Not editable\"\n  />\n);"
        },
        {
          "id": "react-components-textfield--is-read-only",
          "name": "Is Read Only",
          "snippet": "const IsReadOnly = () => (\n  <TextField isReadOnly placeholder=\"Read only\" value=\"Read-only value\" />\n);"
        },
        {
          "id": "react-components-textfield--truncate",
          "name": "Truncate",
          "snippet": "const Truncate = () => (\n  <div className=\"flex w-48 flex-col gap-4\">\n    <TextField\n      inputProps={{ 'aria-label': 'Truncated value' }}\n      truncate\n      value=\"A very long value that should be truncated\"\n    />\n    <TextField\n      inputProps={{ 'aria-label': 'Non-truncated value' }}\n      truncate={false}\n      value=\"A very long value that should not be truncated\"\n    />\n  </div>\n);"
        }
      ],
      "import": "import { Text, TextField } from '@metamask/design-system-react';"
    },
    "react-components-textfieldsearch": {
      "id": "react-components-textfieldsearch",
      "name": "TextFieldSearch",
      "path": "../../packages/design-system-react/src/components/TextFieldSearch/TextFieldSearch.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "TextFieldSearch",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/TextFieldSearch/TextFieldSearch.tsx",
        "actualName": "TextFieldSearch",
        "exportName": "TextFieldSearch",
        "props": {
          "inputAriaLabel": {
            "required": true,
            "tsType": {
              "name": "string"
            },
            "description": "Accessible name for the inner search input. Required. It renders no text.\nIt takes precedence over `inputProps['aria-label']`."
          },
          "clearButtonOnClick": {
            "required": true,
            "tsType": {
              "name": "ReactMouseEventHandler",
              "raw": "React.MouseEventHandler<HTMLButtonElement>",
              "elements": [
                {
                  "name": "HTMLButtonElement"
                }
              ]
            },
            "description": "Click handler for the clear button. Use it to reset the controlled `value`.\nRequired: the clear button always renders when `value` is truthy."
          },
          "clearButtonProps": {
            "required": false,
            "tsType": {
              "name": "Partial",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "ComponentProps<'button'> &\nButtonIconPropsShared & {\n  /**\n   * Optional prop to pass additional properties to the icon\n   */\n  iconProps?: Partial<IconProps>;\n  /**\n   * Required prop to provide an accessible label for the button\n   */\n  ariaLabel: string;\n  /**\n   * Optional prop for additional CSS classes to be applied to the ButtonIcon component\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n}",
                  "elements": [
                    {
                      "name": "ComponentProps",
                      "elements": [
                        {
                          "name": "literal",
                          "value": "'button'"
                        }
                      ],
                      "raw": "ComponentProps<'button'>"
                    },
                    {
                      "name": "ButtonIconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Optional prop to pass additional properties to the icon\n   */\n  iconProps?: Partial<IconProps>;\n  /**\n   * Required prop to provide an accessible label for the button\n   */\n  ariaLabel: string;\n  /**\n   * Optional prop for additional CSS classes to be applied to the ButtonIcon component\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "iconProps",
                            "value": {
                              "name": "Partial",
                              "elements": [
                                {
                                  "name": "intersection",
                                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                                  "elements": [
                                    {
                                      "name": "SVGProps",
                                      "elements": [
                                        {
                                          "name": "ComponentPropsWithoutRef",
                                          "elements": [
                                            {
                                              "name": "literal",
                                              "value": "'svg'"
                                            }
                                          ],
                                          "raw": "ComponentPropsWithoutRef<'svg'>"
                                        }
                                      ],
                                      "raw": "SVGProps<SVGElementProps>"
                                    },
                                    {
                                      "name": "IconPropsShared"
                                    },
                                    {
                                      "name": "signature",
                                      "type": "object",
                                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                                      "signature": {
                                        "properties": [
                                          {
                                            "key": "className",
                                            "value": {
                                              "name": "string",
                                              "required": false
                                            },
                                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                                          },
                                          {
                                            "key": "style",
                                            "value": {
                                              "name": "ReactCSSProperties",
                                              "raw": "React.CSSProperties",
                                              "required": false
                                            },
                                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                                          },
                                          {
                                            "key": "data-testid",
                                            "value": {
                                              "name": "string",
                                              "required": false
                                            },
                                            "description": "Optional prop to add a test id to the icon"
                                          }
                                        ]
                                      }
                                    }
                                  ]
                                }
                              ],
                              "raw": "Partial<IconProps>",
                              "required": false
                            },
                            "description": "Optional prop to pass additional properties to the icon"
                          },
                          {
                            "key": "ariaLabel",
                            "value": {
                              "name": "string",
                              "required": true
                            },
                            "description": "Required prop to provide an accessible label for the button"
                          },
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop for additional CSS classes to be applied to the ButtonIcon component"
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          }
                        ]
                      }
                    }
                  ]
                }
              ],
              "raw": "Partial<ButtonIconProps>"
            },
            "description": "Additional props forwarded to the clear `ButtonIcon`. `ariaLabel` is\ndefaulted to `'Clear'` and can be overridden here to provide a localized\nlabel."
          },
          "isDisabled": {
            "defaultValue": {
              "value": "false",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-textfieldsearch--default",
          "name": "Default",
          "snippet": "const Default = () => <ControlledTextFieldSearch inputAriaLabel=\"Search\" placeholder=\"Search\" value=\"\" />;"
        },
        {
          "id": "react-components-textfieldsearch--size",
          "name": "Size",
          "snippet": "const Size = () => (\n  <div className=\"flex flex-col gap-4\">\n    <ControlledTextFieldSearch\n      inputAriaLabel=\"Search\"\n      placeholder=\"Sm\"\n      size={TextFieldSize.Sm}\n      value=\"\"\n    />\n    <ControlledTextFieldSearch\n      inputAriaLabel=\"Search\"\n      placeholder=\"Md\"\n      size={TextFieldSize.Md}\n      value=\"\"\n    />\n    <ControlledTextFieldSearch\n      inputAriaLabel=\"Search\"\n      placeholder=\"Lg\"\n      size={TextFieldSize.Lg}\n      value=\"\"\n    />\n  </div>\n);"
        },
        {
          "id": "react-components-textfieldsearch--is-disabled",
          "name": "Is Disabled",
          "snippet": "const IsDisabled = () => (\n  <ControlledTextFieldSearch\n    inputAriaLabel=\"Search\"\n    placeholder=\"Search\"\n    value=\"hello\"\n    isDisabled\n  />\n);"
        },
        {
          "id": "react-components-textfieldsearch--is-error",
          "name": "Is Error",
          "snippet": "const IsError = () => (\n  <ControlledTextFieldSearch\n    inputAriaLabel=\"Search\"\n    placeholder=\"Search\"\n    value=\"hello\"\n    isError\n  />\n);"
        },
        {
          "id": "react-components-textfieldsearch--clear-button-props",
          "name": "Clear Button Props",
          "snippet": "const ClearButtonProps = () => (\n  <ControlledTextFieldSearch\n    inputAriaLabel=\"Search\"\n    placeholder=\"Search\"\n    value=\"hello\"\n    clearButtonProps={{ ariaLabel: 'Clear search' }}\n  />\n);"
        },
        {
          "id": "react-components-textfieldsearch--input-aria-label",
          "name": "Input Aria Label",
          "snippet": "const InputAriaLabel = () => <ControlledTextFieldSearch inputAriaLabel=\"Search tokens\" placeholder=\"Search\" value=\"\" />;"
        }
      ],
      "import": "import { TextFieldSearch } from '@metamask/design-system-react';"
    },
    "react-components-toast": {
      "id": "react-components-toast",
      "name": "Toast",
      "path": "../../packages/design-system-react/src/components/Toast/Toast.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "Toast",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/Toast/Toast.tsx",
        "actualName": "Toast",
        "exportName": "Toast",
        "props": {
          "onClose": {
            "required": false,
            "tsType": {
              "name": "signature",
              "type": "function",
              "raw": "() => void",
              "signature": {
                "arguments": [],
                "return": {
                  "name": "void"
                }
              }
            },
            "description": "Optional handler called when the close button is pressed.\nWhen provided, a close button is shown."
          },
          "iconProps": {
            "required": false,
            "tsType": {
              "name": "Omit",
              "elements": [
                {
                  "name": "intersection",
                  "raw": "SVGProps<SVGElementProps> &\nIconPropsShared & {\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                  "elements": [
                    {
                      "name": "SVGProps",
                      "elements": [
                        {
                          "name": "ComponentPropsWithoutRef",
                          "elements": [
                            {
                              "name": "literal",
                              "value": "'svg'"
                            }
                          ],
                          "raw": "ComponentPropsWithoutRef<'svg'>"
                        }
                      ],
                      "raw": "SVGProps<SVGElementProps>"
                    },
                    {
                      "name": "IconPropsShared"
                    },
                    {
                      "name": "signature",
                      "type": "object",
                      "raw": "{\n  /**\n   * Additional CSS classes to be added to the component.\n   * These classes will be merged with the component's default classes using twMerge.\n   */\n  className?: string;\n  /**\n   * Optional CSS styles to be applied to the component.\n   * Should be used sparingly and only for dynamic styles that can't be achieved with className.\n   */\n  style?: React.CSSProperties;\n  /**\n   * Optional prop to add a test id to the icon\n   */\n  'data-testid'?: string;\n}",
                      "signature": {
                        "properties": [
                          {
                            "key": "className",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Additional CSS classes to be added to the component.\nThese classes will be merged with the component's default classes using twMerge."
                          },
                          {
                            "key": "style",
                            "value": {
                              "name": "ReactCSSProperties",
                              "raw": "React.CSSProperties",
                              "required": false
                            },
                            "description": "Optional CSS styles to be applied to the component.\nShould be used sparingly and only for dynamic styles that can't be achieved with className."
                          },
                          {
                            "key": "data-testid",
                            "value": {
                              "name": "string",
                              "required": false
                            },
                            "description": "Optional prop to add a test id to the icon"
                          }
                        ]
                      }
                    }
                  ]
                },
                {
                  "name": "union",
                  "raw": "'name' | 'color'",
                  "elements": [
                    {
                      "name": "literal",
                      "value": "'name'"
                    },
                    {
                      "name": "literal",
                      "value": "'color'"
                    }
                  ]
                }
              ],
              "raw": "Omit<IconProps, 'name' | 'color'>"
            },
            "description": "Optional props passed to the severity `Icon`.\nOnly used when `severity` is not `Default` and `startAccessory` is not provided."
          },
          "closeButtonProps": {
            "required": false,
            "tsType": {
              "name": "Omit",
              "elements": [
                {
                  "name": "NonNullable",
                  "elements": [
                    {
                      "name": "intersection['closeButtonProps']",
                      "raw": "BannerBaseProps['closeButtonProps']"
                    }
                  ],
                  "raw": "NonNullable<BannerBaseProps['closeButtonProps']>"
                },
                {
                  "name": "literal",
                  "value": "'onClick'"
                }
              ],
              "raw": "Omit<\n  NonNullable<BannerBaseProps['closeButtonProps']>,\n  'onClick'\n>"
            },
            "description": "Optional props for the close `ButtonIcon`.\n`ariaLabel` defaults to `'Close toast'`."
          },
          "data-testid": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional test identifier forwarded to the root Toast element."
          },
          "severity": {
            "defaultValue": {
              "value": "'default'",
              "computed": false
            },
            "required": false
          }
        }
      },
      "stories": [
        {
          "id": "react-components-toast--default",
          "name": "Default",
          "snippet": "const Default = (args) => {\n  const { actionButtonLabel, actionButtonOnClick, onClose, ...toastArgs } =\n    args;\n  return (\n    <>\n      <Button\n        onClick={() => {\n          toast({\n            ...toastArgs,\n            actionButtonLabel,\n            actionButtonOnClick:\n              actionButtonLabel && !actionButtonOnClick\n                ? () => undefined\n                : actionButtonOnClick,\n            onClose,\n          });\n        }}\n      >\n        Show toast\n      </Button>\n      <Toaster />\n    </>\n  );\n};"
        },
        {
          "id": "react-components-toast--title",
          "name": "Title",
          "snippet": "const Title = () => <Toast title=\"Added to watchlist\" />;"
        },
        {
          "id": "react-components-toast--description",
          "name": "Description",
          "snippet": "const Description = () => <Toast\n    title=\"Deposit completed\"\n    description=\"15.02 USDC is available in your account\" />;"
        },
        {
          "id": "react-components-toast--severity",
          "name": "Severity",
          "snippet": "const Severity = () => <Box className=\"flex flex-col gap-2\">\n    <Toast\n        description=\"Severity controls the default start accessory icon.\"\n        severity={ToastSeverity.Default}\n        title=\"Default\" />\n    <Toast\n        description=\"Severity controls the default start accessory icon.\"\n        severity={ToastSeverity.Success}\n        title=\"Success\" />\n    <Toast\n        description=\"Severity controls the default start accessory icon.\"\n        severity={ToastSeverity.Warning}\n        title=\"Warning\" />\n    <Toast\n        description=\"Severity controls the default start accessory icon.\"\n        severity={ToastSeverity.Danger}\n        title=\"Danger\" />\n</Box>;"
        },
        {
          "id": "react-components-toast--start-accessory",
          "name": "Start Accessory",
          "snippet": "const StartAccessory = () => <Toast\n    title=\"Withdrawal pending\"\n    description=\"Your withdrawal is processing.\"\n    severity={ToastSeverity.Default}\n    startAccessory={<span aria-hidden>⏳</span>} />;"
        },
        {
          "id": "react-components-toast--action-button",
          "name": "Action Button",
          "snippet": "const ActionButton = () => (\n  <Box className=\"flex flex-col gap-4\">\n    <Box className=\"flex flex-col gap-2\">\n      <Text\n        color={TextColor.TextDefault}\n        fontWeight={FontWeight.Regular}\n        variant={TextVariant.HeadingSm}\n      >\n        Right\n      </Text>\n      <Toast\n        actionButtonLabel=\"Undo\"\n        actionButtonLayout={BannerBaseActionButtonLayout.End}\n        actionButtonOnClick={() => undefined}\n        severity={ToastSeverity.Success}\n        title=\"Added to watchlist\"\n      />\n    </Box>\n    <Box className=\"flex flex-col gap-2\">\n      <Text\n        color={TextColor.TextDefault}\n        fontWeight={FontWeight.Regular}\n        variant={TextVariant.HeadingSm}\n      >\n        Bottom\n      </Text>\n      <Toast\n        actionButtonLabel=\"Read more\"\n        actionButtonLayout={BannerBaseActionButtonLayout.Below}\n        actionButtonOnClick={() => undefined}\n        description=\"Review how Consensys handles your data.\"\n        severity={ToastSeverity.Default}\n        title=\"Privacy policy update\"\n      />\n    </Box>\n  </Box>\n);"
        },
        {
          "id": "react-components-toast--spacing",
          "name": "Spacing",
          "snippet": "const Spacing = () => (\n  <Box className=\"flex flex-col gap-8\">\n    <Box className=\"flex flex-col gap-4\">\n      <Box className=\"flex flex-col gap-1\">\n        <Text\n          color={TextColor.TextDefault}\n          fontWeight={FontWeight.Regular}\n          variant={TextVariant.HeadingSm}\n        >\n          Titles only\n        </Text>\n        <Text color={TextColor.TextAlternative} variant={TextVariant.BodySm}>\n          Content should center align if there is no description\n        </Text>\n      </Box>\n      <Toast\n        onClose={() => undefined}\n        severity={ToastSeverity.Success}\n        title=\"Added to watchlist\"\n      />\n      <Toast\n        onClose={() => undefined}\n        severity={ToastSeverity.Success}\n        title=\"USDC deposited into Account 1\"\n      />\n    </Box>\n    <Box className=\"flex flex-col gap-4\">\n      <Box className=\"flex flex-col gap-1\">\n        <Text\n          color={TextColor.TextDefault}\n          fontWeight={FontWeight.Regular}\n          variant={TextVariant.HeadingSm}\n        >\n          With descriptions\n        </Text>\n        <Text color={TextColor.TextAlternative} variant={TextVariant.BodySm}>\n          Content is top aligned if the description line length is more than\n          one line. This is to ensure the content remains visually balanced.\n        </Text>\n      </Box>\n      <Toast\n        description=\"15.02 USDC is available in your account\"\n        onClose={() => undefined}\n        severity={ToastSeverity.Success}\n        title=\"Deposit completed\"\n      />\n      <Toast\n        description=\"Enable notifications to stay informed on campaigns and never miss important updates about your account.\"\n        onClose={() => undefined}\n        severity={ToastSeverity.Success}\n        title=\"Don't miss out\"\n      />\n    </Box>\n    <Box className=\"flex flex-col gap-4\">\n      <Box className=\"flex flex-col gap-1\">\n        <Text\n          color={TextColor.TextDefault}\n          fontWeight={FontWeight.Regular}\n          variant={TextVariant.HeadingSm}\n        >\n          With action buttons\n        </Text>\n        <Text color={TextColor.TextAlternative} variant={TextVariant.BodySm}>\n          Action buttons should help users perform actions associated with the\n          toast.\n        </Text>\n      </Box>\n      <Toast\n        actionButtonLabel=\"Undo\"\n        actionButtonLayout={BannerBaseActionButtonLayout.End}\n        actionButtonOnClick={() => undefined}\n        description=\"You can remove it anytime.\"\n        severity={ToastSeverity.Success}\n        title=\"Added to watchlist\"\n      />\n      <Toast\n        actionButtonLabel=\"Undo\"\n        actionButtonLayout={BannerBaseActionButtonLayout.Below}\n        actionButtonOnClick={() => undefined}\n        description=\"Your token has been saved for easy access. You may remove this anytime.\"\n        onClose={() => undefined}\n        severity={ToastSeverity.Success}\n        title=\"Added to watchlist\"\n      />\n    </Box>\n  </Box>\n);"
        },
        {
          "id": "react-components-toast--incorrect-usage",
          "name": "Incorrect Usage",
          "snippet": "const IncorrectUsage = () => (\n  <Box className=\"flex flex-col gap-8\">\n    <Box className=\"flex flex-col gap-4\">\n      <Box className=\"flex flex-col gap-1\">\n        <Text\n          color={TextColor.TextDefault}\n          fontWeight={FontWeight.Regular}\n          variant={TextVariant.HeadingSm}\n        >\n          Do not render close and end action buttons together.\n        </Text>\n        <Text color={TextColor.TextAlternative} variant={TextVariant.BodySm}>\n          This results in a cluttered UI\n        </Text>\n      </Box>\n      <Toast\n        actionButtonLabel=\"Undo\"\n        actionButtonLayout={BannerBaseActionButtonLayout.End}\n        actionButtonOnClick={() => undefined}\n        description=\"You can remove it anytime.\"\n        onClose={() => undefined}\n        severity={ToastSeverity.Success}\n        title=\"Added to watchlist\"\n      />\n    </Box>\n    <Box className=\"flex flex-col gap-4\">\n      <Box className=\"flex flex-col gap-1\">\n        <Text\n          color={TextColor.TextDefault}\n          fontWeight={FontWeight.Regular}\n          variant={TextVariant.HeadingSm}\n        >\n          {`Do not render action button at the end if description length > 1.`}\n        </Text>\n        <Text color={TextColor.TextAlternative} variant={TextVariant.BodySm}>\n          {`This results in suboptimal spacing. If description length > 1, the\n          action button should be placed below.`}\n        </Text>\n      </Box>\n      <Toast\n        actionButtonLabel=\"Undo\"\n        actionButtonLayout={BannerBaseActionButtonLayout.End}\n        actionButtonOnClick={() => undefined}\n        description=\"Your token has been saved for easy access. You may remove this anytime.\"\n        onClose={() => undefined}\n        severity={ToastSeverity.Success}\n        title=\"Added to watchlist\"\n      />\n    </Box>\n  </Box>\n);"
        },
        {
          "id": "react-components-toast--on-close",
          "name": "On Close",
          "snippet": "const OnClose = () => <Toast\n    title=\"Account switched\"\n    description=\"You are now using Account 2.\"\n    severity={ToastSeverity.Success}\n    onClose={() => undefined} />;"
        }
      ],
      "import": "import { Box, Button, Text, Toast, Toaster } from '@metamask/design-system-react';\nimport { ToastSeverity } from '@metamask/design-system-shared';"
    },
    "patterns-backgrounds": {
      "id": "patterns-backgrounds",
      "name": "() => null",
      "path": "./stories/Backgrounds.stories.tsx",
      "jsDocTags": {},
      "error": {
        "name": "No component import found",
        "message": "No component file found for the \"() => null\" component.\n  17 | import React from 'react';\n  18 |\n> 19 | const meta: Meta = {\n     | ^\n  20 |   title: 'Patterns/Backgrounds',\n  21 |   component: () => null,\n  22 |   tags: ['!autodocs'],\n\n./stories/Backgrounds.stories.tsx:\nimport {\n  Box,\n  BoxAlignItems,\n  BoxBackgroundColor,\n  BoxFlexDirection,\n  Icon,\n  IconColor,\n  IconName,\n  Text,\n  TextColor,\n  TextVariant,\n  Button,\n  ButtonVariant,\n  TextButton,\n} from '@metamask/design-system-react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport React from 'react';\n\nconst meta: Meta = {\n  title: 'Patterns/Backgrounds',\n  component: () => null,\n  tags: ['!autodocs'],\n};\n\nexport default meta;\ntype Story = StoryObj;\n\nconst ButtonComponents = () => (\n  <Box flexDirection={BoxFlexDirection.Row} gap={2}>\n    <Button variant={ButtonVariant.Primary}>Primary Button</Button>\n    <Button variant={ButtonVariant.Secondary}>Secondary Button</Button>\n    <Button variant={ButtonVariant.Tertiary}>Tertiary Button</Button>\n  </Box>\n);\n\nconst TextComponents = () => (\n  <>\n    <Text variant={TextVariant.HeadingSm}>Text & Icon Colors</Text>\n    <Box className=\"space-y-2\">\n      <Box\n        flexDirection={BoxFlexDirection.Row}\n        alignItems={BoxAlignItems.Center}\n        gap={2}\n      >\n        <Icon name={IconName.Info} />\n        <Text>Text Default and Icon Default</Text>\n      </Box>\n      <Box\n        flexDirection={BoxFlexDirection.Row}\n        alignItems={BoxAlignItems.Center}\n        gap={2}\n      >\n        <Icon name={IconName.Info} color={IconColor.IconAlternative} />\n        <Text color={TextColor.TextAlternative}>\n          Text Alternative and Icon Alternative\n        </Text>\n      </Box>\n      <Box\n        flexDirection={BoxFlexDirection.Row}\n        alignItems={BoxAlignItems.Center}\n        gap={2}\n      >\n        <Icon name={IconName.Info} color={IconColor.IconMuted} />\n        <Text color={TextColor.TextMuted}>Text Muted and Icon Muted</Text>\n      </Box>\n      <TextButton>Text Button</TextButton>\n    </Box>\n  </>\n);\n\nconst Backgrounds: React.FC = () => {\n  return (\n    <Box backgroundColor={BoxBackgroundColor.BackgroundDefault}>\n      {/* Background Default */}\n      <Box\n        flexDirection={BoxFlexDirection.Column}\n        gap={4}\n        className=\"rounded-2xl\"\n      >\n        <Text variant={TextVariant.HeadingMd}>Background Default</Text>\n        <TextComponents />\n        <ButtonComponents />\n\n        {/* Background Section */}\n        <Box\n          backgroundColor={BoxBackgroundColor.BackgroundSection}\n          padding={4}\n          flexDirection={BoxFlexDirection.Column}\n          gap={4}\n          className=\"rounded-2xl\"\n        >\n          <Text variant={TextVariant.HeadingMd}>Background Section</Text>\n          <TextComponents />\n          <ButtonComponents />\n          {/* Background Subsection */}\n          <Box\n            backgroundColor={BoxBackgroundColor.BackgroundSubsection}\n            padding={4}\n            flexDirection={BoxFlexDirection.Column}\n            gap={4}\n            className=\"rounded-2xl\"\n          >\n            <Text variant={TextVariant.HeadingMd}>Background Subsection</Text>\n            <TextComponents />\n            <ButtonComponents />\n          </Box>\n        </Box>\n      </Box>\n    </Box>\n  );\n};\n\nexport const Default: Story = {\n  render: () => <Backgrounds />,\n};\n"
      },
      "stories": [
        {
          "id": "patterns-backgrounds--default",
          "name": "Default",
          "snippet": "const Default = () => <Backgrounds />;"
        }
      ],
      "import": "import { Box, Button, Icon, Text, TextButton } from '@metamask/design-system-react';"
    },
    "patterns-marketing-moments": {
      "id": "patterns-marketing-moments",
      "name": "MarketingMoment",
      "path": "./stories/MarketingMoments.stories.tsx",
      "jsDocTags": {},
      "error": {
        "name": "No component import found",
        "message": "No component file found for the \"MarketingMoment\" component.\n  115 | };\n  116 |\n> 117 | const meta: Meta<typeof MarketingMoment> = {\n      | ^\n  118 |   title: 'Patterns/Marketing Moments',\n  119 |   component: MarketingMoment,\n  120 |   argTypes: {\n\n./stories/MarketingMoments.stories.tsx:\nimport {\n  Box,\n  BoxAlignItems,\n  BoxFlexDirection,\n  BoxJustifyContent,\n  Button,\n  ButtonSize,\n  ButtonVariant,\n  FontFamily,\n  FontWeight,\n  Icon,\n  IconColor,\n  IconName,\n  IconSize,\n  Text,\n  TextAlign,\n  TextColor,\n  TextVariant,\n} from '@metamask/design-system-react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\n\ntype MarketingMomentProps = {\n  title: string;\n  description: string | string[];\n  iconName?: IconName;\n  primaryButtonLabel: string;\n};\n\nconst MarketingMoment = ({\n  title,\n  description,\n  iconName = IconName.Image,\n  primaryButtonLabel,\n}: MarketingMomentProps) => {\n  const paragraphs = Array.isArray(description) ? description : [description];\n\n  return (\n    <Box\n      flexDirection={BoxFlexDirection.Column}\n      className=\"h-dvh w-full overflow-y-auto bg-default\"\n    >\n      <Box\n        flexDirection={BoxFlexDirection.Column}\n        gap={4}\n        paddingHorizontal={6}\n        className=\"mt-12 shrink-0\"\n      >\n        <Text\n          asChild\n          variant={TextVariant.DisplayXl}\n          fontWeight={FontWeight.Bold}\n          fontFamily={FontFamily.Hero}\n          textAlign={TextAlign.Center}\n          // -2% letter-spacing and 110% line-height per branding agency aesthetic\n          // may not work for all locales and font fallbacks\n          // will need more sophisticated approach for clients\n          className=\"text-center leading-[1.1] tracking-[-0.2]\"\n        >\n          <h1>{title}</h1>\n        </Text>\n        {paragraphs.map((paragraph) => (\n          <Text\n            key={paragraph}\n            textAlign={TextAlign.Center}\n            color={TextColor.TextAlternative}\n          >\n            {paragraph}\n          </Text>\n        ))}\n      </Box>\n\n      <Box\n        alignItems={BoxAlignItems.Center}\n        justifyContent={BoxJustifyContent.Center}\n        paddingHorizontal={6}\n        className=\"flex min-h-0 w-full flex-1 overflow-hidden\"\n      >\n        <Box\n          alignItems={BoxAlignItems.Center}\n          justifyContent={BoxJustifyContent.Center}\n          className=\"flex size-full max-h-60 min-h-0 overflow-hidden rounded-lg bg-muted\"\n        >\n          <Icon\n            name={iconName}\n            size={IconSize.Xl}\n            color={IconColor.IconMuted}\n          />\n        </Box>\n      </Box>\n\n      <Box\n        flexDirection={BoxFlexDirection.Column}\n        gap={2}\n        paddingHorizontal={4}\n        paddingBottom={8}\n        className=\"shrink-0\"\n      >\n        <Button\n          variant={ButtonVariant.Primary}\n          size={ButtonSize.Lg}\n          isFullWidth\n        >\n          {primaryButtonLabel}\n        </Button>\n        <Button\n          variant={ButtonVariant.Tertiary}\n          size={ButtonSize.Lg}\n          isFullWidth\n        >\n          Not now\n        </Button>\n      </Box>\n    </Box>\n  );\n};\n\nconst meta: Meta<typeof MarketingMoment> = {\n  title: 'Patterns/Marketing Moments',\n  component: MarketingMoment,\n  argTypes: {\n    title: { control: 'text' },\n    description: { control: 'text' },\n    iconName: {\n      control: 'select',\n      options: Object.keys(IconName),\n      mapping: IconName,\n    },\n    primaryButtonLabel: { control: 'text' },\n  },\n  // The preview decorator adds 1rem of padding. Pull the moment back out so\n  // h-dvh matches the story canvas.\n  decorators: [\n    (Story) => (\n      <Box className=\"-m-4\">\n        <Story />\n      </Box>\n    ),\n  ],\n};\n\nexport default meta;\ntype Story = StoryObj<typeof MarketingMoment>;\n\nexport const Default: Story = {\n  args: {\n    title: 'Title goes here',\n    description: 'Description explains the value in one or two sentences.',\n    iconName: IconName.Image,\n    primaryButtonLabel: 'Get started',\n  },\n};\n\nexport const SpendAndEarn: Story = {\n  name: 'Spend and earn',\n  args: {\n    title: 'Spend and earn',\n    description:\n      'The MetaMask Card is the fast and easy way to spend your crypto and earn up to 3% mUSD back.',\n    iconName: IconName.Card,\n    primaryButtonLabel: 'Set up now',\n  },\n};\n\nexport const YourCardIsOrdered: Story = {\n  name: 'Your card is ordered',\n  args: {\n    title: 'Your card is ordered',\n    description: [\n      'It should arrive in 4 to 6 weeks.',\n      'Set up your virtual card and add it to your digital wallet to start earning mUSD back.',\n    ],\n    iconName: IconName.Card,\n    primaryButtonLabel: 'Set up card',\n  },\n};\n\nexport const YoureIn: Story = {\n  name: \"You're in\",\n  args: {\n    title: \"You're in!\",\n    description:\n      'Finish setting up your card so you can start spending your crypto.',\n    iconName: IconName.Confirmation,\n    primaryButtonLabel: 'Finish setup',\n  },\n};\n\nexport const PerpsAreHere: Story = {\n  name: 'Perps are here',\n  args: {\n    title: 'Perps are here',\n    description:\n      'Long or short with up to 40x leverage. Fund your account with one click.',\n    iconName: IconName.Candlestick,\n    primaryButtonLabel: 'Get started',\n  },\n};\n\nexport const StablecoinBonus: Story = {\n  name: 'Get 3% on stablecoins',\n  args: {\n    title: 'Get 3% on stablecoins',\n    description:\n      'Convert your stablecoins to mUSD and earn a 3% annualized bonus.',\n    iconName: IconName.Coin,\n    primaryButtonLabel: 'Get started',\n  },\n};\n\nexport const GoldFoxCollective: Story = {\n  name: 'Welcome to Gold Fox Collective',\n  args: {\n    title: 'Welcome to Gold Fox Collective',\n    description:\n      'Unlock exclusive perks, early features, and curated rewards. By invitation only.',\n    iconName: IconName.MetamaskFoxOutline,\n    primaryButtonLabel: 'Accept invite',\n  },\n};\n\nexport const AllMoments: Story = {\n  name: 'All moments',\n  render: () => (\n    <Box className=\"grid w-full grid-cols-1 border-l border-t border-muted md:grid-cols-2 lg:grid-cols-3\">\n      {[\n        SpendAndEarn,\n        YourCardIsOrdered,\n        YoureIn,\n        PerpsAreHere,\n        StablecoinBonus,\n        GoldFoxCollective,\n      ].map((story) => (\n        <Box key={story.args?.title} className=\"border-b border-r border-muted\">\n          <MarketingMoment {...(story.args as MarketingMomentProps)} />\n        </Box>\n      ))}\n    </Box>\n  ),\n};\n"
      },
      "stories": [
        {
          "id": "patterns-marketing-moments--default",
          "name": "Default",
          "error": {
            "name": "Error",
            "message": "Could not generate snippet without component name."
          }
        },
        {
          "id": "patterns-marketing-moments--spend-and-earn",
          "name": "Spend and earn",
          "error": {
            "name": "Error",
            "message": "Could not generate snippet without component name."
          }
        },
        {
          "id": "patterns-marketing-moments--your-card-is-ordered",
          "name": "Your card is ordered",
          "error": {
            "name": "Error",
            "message": "Could not generate snippet without component name."
          }
        },
        {
          "id": "patterns-marketing-moments--youre-in",
          "name": "You're in",
          "error": {
            "name": "Error",
            "message": "Could not generate snippet without component name."
          }
        },
        {
          "id": "patterns-marketing-moments--perps-are-here",
          "name": "Perps are here",
          "error": {
            "name": "Error",
            "message": "Could not generate snippet without component name."
          }
        },
        {
          "id": "patterns-marketing-moments--stablecoin-bonus",
          "name": "Get 3% on stablecoins",
          "error": {
            "name": "Error",
            "message": "Could not generate snippet without component name."
          }
        },
        {
          "id": "patterns-marketing-moments--gold-fox-collective",
          "name": "Welcome to Gold Fox Collective",
          "error": {
            "name": "Error",
            "message": "Could not generate snippet without component name."
          }
        },
        {
          "id": "patterns-marketing-moments--all-moments",
          "name": "All moments",
          "snippet": "const AllMoments = () => (\n  <Box className=\"grid w-full grid-cols-1 border-l border-t border-muted md:grid-cols-2 lg:grid-cols-3\">\n    {[\n      SpendAndEarn,\n      YourCardIsOrdered,\n      YoureIn,\n      PerpsAreHere,\n      StablecoinBonus,\n      GoldFoxCollective,\n    ].map((story) => (\n      <Box key={story.args?.title} className=\"border-b border-r border-muted\">\n        <MarketingMoment {...(story.args as MarketingMomentProps)} />\n      </Box>\n    ))}\n  </Box>\n);"
        }
      ],
      "import": "import { Box, Button, Icon, Text } from '@metamask/design-system-react';"
    },
    "patterns-wallet-home": {
      "id": "patterns-wallet-home",
      "name": "() => null",
      "path": "./stories/WalletHome.stories.tsx",
      "jsDocTags": {},
      "error": {
        "name": "No component import found",
        "message": "No component file found for the \"() => null\" component.\n  36 | import React from 'react';\n  37 |\n> 38 | const meta: Meta = {\n     | ^\n  39 |   title: 'Patterns/Wallet Home',\n  40 |   component: () => null,\n  41 |   tags: ['!autodocs'],\n\n./stories/WalletHome.stories.tsx:\nimport {\n  AvatarAccount,\n  AvatarAccountVariant,\n  AvatarBaseShape,\n  AvatarToken,\n  AvatarTokenSize,\n  BadgeCount,\n  BadgeWrapper,\n  BadgeNetwork,\n  Box,\n  BoxAlignItems,\n  BoxBackgroundColor,\n  BoxBorderColor,\n  BoxFlexDirection,\n  BoxFlexWrap,\n  BoxJustifyContent,\n  Button,\n  ButtonBase,\n  ButtonIcon,\n  ButtonSize,\n  ButtonVariant,\n  FontWeight,\n  Icon,\n  IconName,\n  IconColor,\n  Text,\n  TextButton,\n  TextColor,\n  TextVariant,\n  BadgeWrapperPosition,\n  BadgeStatus,\n  BadgeStatusStatus,\n  IconSize,\n} from '@metamask/design-system-react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport React from 'react';\n\nconst meta: Meta = {\n  title: 'Patterns/Wallet Home',\n  component: () => null,\n  tags: ['!autodocs'],\n  // Remove default padding\n  decorators: [\n    (Story) => (\n      <Box className=\"-m-4\">\n        <Story />\n      </Box>\n    ),\n  ],\n};\n\nexport default meta;\ntype Story = StoryObj;\n\nconst WalletHome: React.FC = () => {\n  return (\n    <Box className=\"min-h-screen md:flex md:items-center md:justify-center md:bg-alternative md:py-4\">\n      {/* Container Expanded View */}\n      <Box\n        backgroundColor={BoxBackgroundColor.BackgroundDefault}\n        className=\"mx-auto w-full md:max-w-xl md:rounded-3xl md:py-4\"\n      >\n        {/* Header */}\n        <Box\n          padding={4}\n          borderColor={BoxBorderColor.BorderMuted}\n          className=\"border-b md:px-8\"\n        >\n          <Box\n            flexDirection={BoxFlexDirection.Row}\n            alignItems={BoxAlignItems.Center}\n            justifyContent={BoxJustifyContent.Between}\n          >\n            <Box\n              flexDirection={BoxFlexDirection.Row}\n              alignItems={BoxAlignItems.Center}\n              gap={2}\n              className=\"overflow-hidden\"\n            >\n              <AvatarAccount\n                shape={AvatarBaseShape.Square}\n                variant={AvatarAccountVariant.Maskicon}\n                address=\"0x1234567890123456789012345678901234567890\"\n              />\n              <Text asChild variant={TextVariant.HeadingMd} ellipsis>\n                <Box>DeFi Account</Box>\n              </Text>\n              <ButtonIcon\n                iconName={IconName.ArrowDown}\n                ariaLabel=\"Switch Account\"\n              />\n            </Box>\n            <Box\n              flexDirection={BoxFlexDirection.Row}\n              alignItems={BoxAlignItems.Center}\n            >\n              <ButtonIcon iconName={IconName.Copy} ariaLabel=\"Copy\" />\n              <ButtonIcon iconName={IconName.Global} ariaLabel=\"Network\" />\n              <BadgeWrapper\n                badge={<BadgeCount count={10} max={9} />}\n                position={BadgeWrapperPosition.TopRight}\n              >\n                <ButtonIcon iconName={IconName.Menu} ariaLabel=\"Menu\" />\n              </BadgeWrapper>\n            </Box>\n          </Box>\n        </Box>\n        {/* Balance */}\n        <Box padding={4} className=\"md:px-8\">\n          <Text variant={TextVariant.DisplayMd}>$10,528.46</Text>\n          <Box\n            flexDirection={BoxFlexDirection.Row}\n            alignItems={BoxAlignItems.Center}\n          >\n            <Icon name={IconName.Arrow2Up} color={IconColor.SuccessDefault} />\n            <Text color={TextColor.TextAlternative}>$367.00 (+0.66%)</Text>\n          </Box>\n        </Box>\n        {/* Actions */}\n        <Box\n          flexDirection={BoxFlexDirection.Row}\n          flexWrap={BoxFlexWrap.Wrap}\n          gap={2}\n          padding={4}\n          className=\"md:px-8\"\n        >\n          <ButtonBase className=\"h-auto flex-1 flex-col justify-center rounded-lg bg-muted py-4 hover:bg-muted-hover active:bg-muted-pressed\">\n            <Icon name={IconName.Bank} className=\"mb-2\" />\n            Buy/Sell\n          </ButtonBase>\n          <ButtonBase className=\"h-auto flex-1 flex-col justify-center rounded-lg bg-muted py-4 hover:bg-muted-hover active:bg-muted-pressed\">\n            <Icon name={IconName.SwapHorizontal} className=\"mb-2\" />\n            Swap\n          </ButtonBase>\n          <ButtonBase className=\"h-auto flex-1 flex-col justify-center rounded-lg bg-muted py-4 hover:bg-muted-hover active:bg-muted-pressed\">\n            <Icon name={IconName.Receive} className=\"mb-2\" />\n            Receive\n          </ButtonBase>\n          <ButtonBase className=\"h-auto flex-1 flex-col justify-center rounded-lg bg-muted py-4 hover:bg-muted-hover active:bg-muted-pressed\">\n            <Icon name={IconName.Send} className=\"mb-2\" />\n            Send\n          </ButtonBase>\n        </Box>\n        {/* Tabs */}\n        <Box\n          paddingHorizontal={4}\n          borderColor={BoxBorderColor.BorderMuted}\n          className=\"border-b md:px-8\"\n        >\n          <Box flexDirection={BoxFlexDirection.Row}>\n            <Text\n              asChild\n              fontWeight={FontWeight.Medium}\n              className=\"flex-1 border-b-2 border-icon-default pb-2 pt-1\"\n            >\n              <button>Tokens</button>\n            </Text>\n            <Text\n              asChild\n              fontWeight={FontWeight.Medium}\n              color={TextColor.TextAlternative}\n              className=\"flex flex-1 items-center justify-center gap-1 pb-2 pt-1 hover:text-default\"\n            >\n              <button>\n                <span className=\"pl-4\">DeFi</span>\n                <BadgeStatus status={BadgeStatusStatus.New}>New</BadgeStatus>\n              </button>\n            </Text>\n            <Text\n              asChild\n              fontWeight={FontWeight.Medium}\n              color={TextColor.TextAlternative}\n              className=\"flex-1 pb-2 pt-1 hover:text-default\"\n            >\n              <button>NFTs</button>\n            </Text>\n            <Text\n              asChild\n              fontWeight={FontWeight.Medium}\n              color={TextColor.TextAlternative}\n              className=\"flex-1 pb-2 pt-1 hover:text-default\"\n            >\n              <button>Activity</button>\n            </Text>\n          </Box>\n        </Box>\n        {/* Token List */}\n        <Box>\n          <Box\n            flexDirection={BoxFlexDirection.Row}\n            alignItems={BoxAlignItems.Center}\n            justifyContent={BoxJustifyContent.Between}\n            padding={4}\n            className=\"md:px-8\"\n          >\n            <Box\n              flexDirection={BoxFlexDirection.Row}\n              alignItems={BoxAlignItems.Center}\n              gap={2}\n            >\n              <Button\n                size={ButtonSize.Sm}\n                variant={ButtonVariant.Secondary}\n                endIconName={IconName.ArrowDown}\n              >\n                Popular networks\n              </Button>\n            </Box>\n            <Box flexDirection={BoxFlexDirection.Row} gap={2}>\n              <ButtonIcon iconName={IconName.Filter} ariaLabel=\"Filter\" />\n              <ButtonIcon iconName={IconName.MoreVertical} ariaLabel=\"More\" />\n            </Box>\n          </Box>\n\n          {/* Ethereum */}\n          <Box\n            tabIndex={0}\n            flexDirection={BoxFlexDirection.Row}\n            alignItems={BoxAlignItems.Center}\n            justifyContent={BoxJustifyContent.Between}\n            paddingHorizontal={4}\n            paddingVertical={2}\n            className=\"w-full hover:bg-hover active:bg-pressed md:px-8\"\n          >\n            <Box\n              flexDirection={BoxFlexDirection.Row}\n              alignItems={BoxAlignItems.Center}\n              gap={4}\n              className=\"overflow-hidden\"\n            >\n              <BadgeWrapper\n                badge={\n                  <BadgeNetwork\n                    name=\"Ethereum\"\n                    src=\"https://assets.coingecko.com/coins/images/279/small/ethereum.png\"\n                  />\n                }\n              >\n                <AvatarToken\n                  name=\"ETH\"\n                  src=\"https://assets.coingecko.com/coins/images/279/small/ethereum.png\"\n                  size={AvatarTokenSize.Md}\n                />\n              </BadgeWrapper>\n              <Box\n                flexDirection={BoxFlexDirection.Column}\n                className=\"overflow-hidden\"\n              >\n                <Box\n                  flexDirection={BoxFlexDirection.Row}\n                  flexWrap={BoxFlexWrap.Wrap}\n                  alignItems={BoxAlignItems.Center}\n                >\n                  <Text\n                    fontWeight={FontWeight.Medium}\n                    ellipsis\n                    className=\"mr-2 truncate\"\n                  >\n                    Ethereum •\n                  </Text>\n                  <TextButton\n                    onClick={(e) => {\n                      e.stopPropagation(); // Prevent parent div click\n                      /* Handle earn button click */\n                    }}\n                    className=\"min-w-0\"\n                  >\n                    Earn\n                  </TextButton>\n                </Box>\n                <Text\n                  color={TextColor.TextAlternative}\n                  variant={TextVariant.BodySm}\n                  className=\"flex items-center\"\n                >\n                  <Icon\n                    name={IconName.Arrow2Up}\n                    color={IconColor.SuccessDefault}\n                    size={IconSize.Sm}\n                  />\n                  <span>+85.88%</span>\n                </Text>\n              </Box>\n            </Box>\n            <Box className=\"text-right\">\n              <Text>$8,509.44</Text>\n              <Text\n                color={TextColor.TextAlternative}\n                variant={TextVariant.BodySm}\n              >\n                0.7107 ETH\n              </Text>\n            </Box>\n          </Box>\n\n          {/* Unibright */}\n          <Box\n            tabIndex={0}\n            flexDirection={BoxFlexDirection.Row}\n            alignItems={BoxAlignItems.Center}\n            justifyContent={BoxJustifyContent.Between}\n            paddingHorizontal={4}\n            paddingVertical={2}\n            className=\"w-full hover:bg-hover active:bg-pressed md:px-8\"\n          >\n            <Box\n              flexDirection={BoxFlexDirection.Row}\n              alignItems={BoxAlignItems.Center}\n              gap={4}\n              className=\"overflow-hidden\"\n            >\n              <BadgeWrapper\n                badge={\n                  <BadgeNetwork\n                    name=\"Ethereum\"\n                    src=\"https://assets.coingecko.com/coins/images/279/small/ethereum.png\"\n                  />\n                }\n              >\n                <AvatarToken\n                  name=\"UBT\"\n                  src=\"https://s2.coinmarketcap.com/static/img/coins/64x64/2758.png\"\n                  size={AvatarTokenSize.Md}\n                />\n              </BadgeWrapper>\n              <Box\n                flexDirection={BoxFlexDirection.Column}\n                className=\"overflow-hidden\"\n              >\n                <Text fontWeight={FontWeight.Medium} ellipsis>\n                  Unibright\n                </Text>\n                <Text\n                  color={TextColor.TextAlternative}\n                  variant={TextVariant.BodySm}\n                  className=\"flex items-center\"\n                >\n                  <Icon\n                    name={IconName.Arrow2Up}\n                    color={IconColor.SuccessDefault}\n                    size={IconSize.Sm}\n                  />\n                  <span>+85.88%</span>\n                </Text>\n              </Box>\n            </Box>\n            <Box className=\"text-right\">\n              <Text>$1,293.50</Text>\n              <Text\n                color={TextColor.TextAlternative}\n                variant={TextVariant.BodySm}\n              >\n                0.058 UBT\n              </Text>\n            </Box>\n          </Box>\n\n          {/* Hopr */}\n          <Box\n            tabIndex={0}\n            flexDirection={BoxFlexDirection.Row}\n            alignItems={BoxAlignItems.Center}\n            justifyContent={BoxJustifyContent.Between}\n            paddingHorizontal={4}\n            paddingVertical={2}\n            className=\"w-full hover:bg-hover active:bg-pressed md:px-8\"\n          >\n            <Box\n              flexDirection={BoxFlexDirection.Row}\n              alignItems={BoxAlignItems.Center}\n              gap={4}\n              className=\"overflow-hidden\"\n            >\n              <BadgeWrapper\n                badge={\n                  <BadgeNetwork\n                    name=\"Ethereum\"\n                    src=\"https://assets.coingecko.com/coins/images/279/small/ethereum.png\"\n                  />\n                }\n              >\n                <AvatarToken\n                  name=\"HOPR\"\n                  src=\"https://s2.coinmarketcap.com/static/img/coins/64x64/6520.png\"\n                  size={AvatarTokenSize.Md}\n                />\n              </BadgeWrapper>\n              <Box\n                flexDirection={BoxFlexDirection.Column}\n                className=\"overflow-hidden\"\n              >\n                <Text fontWeight={FontWeight.Medium} ellipsis>\n                  Hopr\n                </Text>\n                <Text\n                  color={TextColor.TextAlternative}\n                  variant={TextVariant.BodySm}\n                  className=\"flex items-center\"\n                >\n                  <Icon\n                    name={IconName.Arrow2Up}\n                    color={IconColor.SuccessDefault}\n                    size={IconSize.Sm}\n                  />\n                  <span>+85.88%</span>\n                </Text>\n              </Box>\n            </Box>\n            <Box className=\"text-right\">\n              <Text>$550.00</Text>\n              <Text\n                color={TextColor.TextAlternative}\n                variant={TextVariant.BodySm}\n              >\n                12.44 HOPR\n              </Text>\n            </Box>\n          </Box>\n\n          {/* USDC */}\n          <Box\n            tabIndex={0}\n            flexDirection={BoxFlexDirection.Row}\n            alignItems={BoxAlignItems.Center}\n            justifyContent={BoxJustifyContent.Between}\n            paddingHorizontal={4}\n            paddingVertical={2}\n            className=\"w-full hover:bg-hover active:bg-pressed md:px-8\"\n          >\n            <Box\n              flexDirection={BoxFlexDirection.Row}\n              alignItems={BoxAlignItems.Center}\n              gap={4}\n              className=\"overflow-hidden\"\n            >\n              <BadgeWrapper\n                badge={\n                  <BadgeNetwork\n                    name=\"Ethereum\"\n                    src=\"https://assets.coingecko.com/coins/images/279/small/ethereum.png\"\n                  />\n                }\n              >\n                <AvatarToken\n                  name=\"USDC\"\n                  src=\"https://assets.coingecko.com/coins/images/6319/small/USD_Coin_icon.png\"\n                  size={AvatarTokenSize.Md}\n                />\n              </BadgeWrapper>\n              <Box\n                flexDirection={BoxFlexDirection.Column}\n                className=\"overflow-hidden\"\n              >\n                <Text fontWeight={FontWeight.Medium} ellipsis>\n                  USDC Coin\n                </Text>\n                <Text\n                  color={TextColor.TextAlternative}\n                  variant={TextVariant.BodySm}\n                  className=\"flex items-center\"\n                >\n                  <Icon\n                    name={IconName.Arrow2Down}\n                    color={IconColor.ErrorDefault}\n                    size={IconSize.Sm}\n                  />\n                  <span>-7.80%</span>\n                </Text>\n              </Box>\n            </Box>\n            <Box className=\"text-right\">\n              <Text>$110.20</Text>\n              <Text\n                color={TextColor.TextAlternative}\n                variant={TextVariant.BodySm}\n              >\n                0.7107 USDC\n              </Text>\n            </Box>\n          </Box>\n        </Box>\n      </Box>\n    </Box>\n  );\n};\n\nexport const Default: Story = {\n  render: () => <WalletHome />,\n};\n"
      },
      "stories": [
        {
          "id": "patterns-wallet-home--default",
          "name": "Default",
          "snippet": "const Default = () => <WalletHome />;"
        }
      ],
      "import": "import {\n  AvatarAccount,\n  AvatarToken,\n  BadgeCount,\n  BadgeNetwork,\n  BadgeStatus,\n  BadgeWrapper,\n  Box,\n  Button,\n  ButtonBase,\n  ButtonIcon,\n  Icon,\n  Text,\n  TextButton,\n} from '@metamask/design-system-react';"
    },
    "react-temp-components-blockies": {
      "id": "react-temp-components-blockies",
      "name": "Blockies",
      "path": "../../packages/design-system-react/src/components/temp-components/Blockies/Blockies.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "Blockies",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/temp-components/Blockies/Blockies.tsx",
        "actualName": "Blockies",
        "exportName": "Blockies",
        "props": {
          "address": {
            "required": true,
            "tsType": {
              "name": "string"
            },
            "description": "Required address used as a unique identifier to generate the Blockies."
          },
          "size": {
            "required": false,
            "tsType": {
              "name": "number"
            },
            "description": "Optional prop to control the size of the Blockies.",
            "defaultValue": {
              "value": "32",
              "computed": false
            }
          },
          "data-testid": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop to add a test id to the icon"
          }
        }
      },
      "stories": [
        {
          "id": "react-temp-components-blockies--default",
          "name": "Default",
          "snippet": "const Default = () => <Blockies address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\" size={32} />;"
        },
        {
          "id": "react-temp-components-blockies--address",
          "name": "Address",
          "snippet": "const Address = () => (\n  <Box className=\"flex flex-col gap-6\">\n    {/* Legacy addresses section */}\n    <Box>\n      <Text variant={TextVariant.HeadingMd} className=\"mb-2\">\n        Legacy Format Addresses\n      </Text>\n      <Box className=\"flex gap-4\">\n        {sampleAccountAddresses.map((address) => (\n          <Box key={address} className=\"flex flex-col items-center gap-2\">\n            <Blockies address={address} size={48} />\n            <Text\n              variant={TextVariant.BodyXs}\n              className=\"max-w-[100px] truncate font-mono\"\n            >\n              {address.includes(':')\n                ? `${address.split(':').slice(0, -1).join(':')}:...${address.slice(-6)}`\n                : `${address.slice(0, 10)}...${address.slice(-4)}`}\n            </Text>\n          </Box>\n        ))}\n      </Box>\n    </Box>\n\n    {/* Different networks section */}\n    <Box>\n      <Text variant={TextVariant.HeadingMd} className=\"mb-2\">\n        Different Networks\n      </Text>\n      <Box className=\"flex flex-wrap gap-4\">\n        <Box className=\"flex flex-col gap-2\">\n          <Text variant={TextVariant.BodyMd} fontWeight={FontWeight.Medium}>\n            Ethereum\n          </Text>\n          <Box className=\"flex items-center gap-2\">\n            <Blockies address={ethereumAddress} size={48} />\n            <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n              {`${ethereumAddress.slice(0, 10)}...${ethereumAddress.slice(-4)}`}\n            </Text>\n          </Box>\n        </Box>\n        <Box className=\"flex flex-col gap-2\">\n          <Text variant={TextVariant.BodyMd} fontWeight={FontWeight.Medium}>\n            Bitcoin\n          </Text>\n          <Box className=\"flex items-center gap-2\">\n            <Blockies address={bitcoinAddress} size={48} />\n            <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n              {`${bitcoinAddress.slice(0, 10)}...${bitcoinAddress.slice(-4)}`}\n            </Text>\n          </Box>\n        </Box>\n        <Box className=\"flex flex-col gap-2\">\n          <Text variant={TextVariant.BodyMd} fontWeight={FontWeight.Medium}>\n            Solana\n          </Text>\n          <Box className=\"flex items-center gap-2\">\n            <Blockies address={solanaAddress} size={48} />\n            <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n              {`${solanaAddress.slice(0, 10)}...${solanaAddress.slice(-4)}`}\n            </Text>\n          </Box>\n        </Box>\n      </Box>\n    </Box>\n\n    {/* CAIP-10 consistency demonstration */}\n    <Box>\n      <Text variant={TextVariant.HeadingMd} className=\"mb-2\">\n        CAIP-10 Format Consistency (Same Address, Different Networks)\n      </Text>\n      <Text\n        variant={TextVariant.BodySm}\n        color={TextColor.TextAlternative}\n        className=\"mb-3\"\n      >\n        These should all generate the same icon since they represent the same\n        address on different networks\n      </Text>\n      <Box className=\"flex flex-wrap gap-4\">\n        <Box className=\"flex flex-col gap-2\">\n          <Text variant={TextVariant.BodyMd} fontWeight={FontWeight.Medium}>\n            Ethereum Address Across Networks\n          </Text>\n          <Box className=\"flex gap-2\">\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Blockies address={ethereumAddress} size={48} />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`${ethereumAddress.slice(0, 10)}...${ethereumAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Blockies address={`eip155:1:${ethereumAddress}`} size={48} />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`eip155:1:${ethereumAddress.slice(0, 6)}...${ethereumAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Blockies\n                address={`eip155:8453:${ethereumAddress}`}\n                size={48}\n              />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`eip155:8453:${ethereumAddress.slice(0, 6)}...${ethereumAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Blockies\n                address={`eip155:59144:${ethereumAddress}`}\n                size={48}\n              />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`eip155:59144:${ethereumAddress.slice(0, 6)}...${ethereumAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Blockies address={`eip155:137:${ethereumAddress}`} size={48} />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`eip155:137:${ethereumAddress.slice(0, 6)}...${ethereumAddress.slice(-4)}`}\n              </Text>\n            </Box>\n          </Box>\n        </Box>\n      </Box>\n      <Box className=\"mt-4 flex flex-wrap gap-4\">\n        <Box className=\"flex flex-col gap-2\">\n          <Text variant={TextVariant.BodyMd} fontWeight={FontWeight.Medium}>\n            Solana Address Formats\n          </Text>\n          <Box className=\"flex gap-2\">\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Blockies address={solanaAddress} size={48} />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`${solanaAddress.slice(0, 10)}...${solanaAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Blockies\n                address={`solana:mainnet:${solanaAddress}`}\n                size={48}\n              />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`solana:mainnet:${solanaAddress.slice(0, 6)}...${solanaAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Blockies\n                address={`solana:testnet:${solanaAddress}`}\n                size={48}\n              />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`solana:testnet:${solanaAddress.slice(0, 6)}...${solanaAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Blockies\n                address={`solana:devnet:${solanaAddress}`}\n                size={48}\n              />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`solana:devnet:${solanaAddress.slice(0, 6)}...${solanaAddress.slice(-4)}`}\n              </Text>\n            </Box>\n          </Box>\n        </Box>\n      </Box>\n    </Box>\n  </Box>\n);"
        },
        {
          "id": "react-temp-components-blockies--size",
          "name": "Size",
          "snippet": "const Size = () => (\n  <Box className=\"flex items-center gap-4\">\n    <Blockies address={sampleAccountAddresses[0]} size={16} />\n    <Blockies address={sampleAccountAddresses[1]} size={24} />\n    <Blockies address={sampleAccountAddresses[2]} size={32} />\n    <Blockies address={sampleAccountAddresses[3]} size={48} />\n    <Blockies address={sampleAccountAddresses[4]} size={64} />\n  </Box>\n);"
        }
      ],
      "import": "import { Blockies, Box, Text } from '@metamask/design-system-react';"
    },
    "react-temp-components-jazzicon": {
      "id": "react-temp-components-jazzicon",
      "name": "Jazzicon",
      "path": "../../packages/design-system-react/src/components/temp-components/Jazzicon/Jazzicon.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "Jazzicon",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/temp-components/Jazzicon/Jazzicon.tsx",
        "actualName": "Jazzicon",
        "exportName": "Jazzicon",
        "props": {
          "address": {
            "required": true,
            "tsType": {
              "name": "string"
            },
            "description": "Required address used as a unique identifier to generate the Jazzicon."
          },
          "size": {
            "required": false,
            "tsType": {
              "name": "number"
            },
            "description": "Optional prop to control the size of the Jazzicon.",
            "defaultValue": {
              "value": "32",
              "computed": false
            }
          },
          "data-testid": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop to add a test id to the icon"
          }
        }
      },
      "stories": [
        {
          "id": "react-temp-components-jazzicon--default",
          "name": "Default",
          "snippet": "const Default = () => <Jazzicon address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\" size={32} />;"
        },
        {
          "id": "react-temp-components-jazzicon--address",
          "name": "Address",
          "snippet": "const Address = () => (\n  <Box className=\"flex flex-col gap-6\">\n    {/* Legacy addresses section */}\n    <Box>\n      <Text variant={TextVariant.HeadingMd} className=\"mb-2\">\n        Legacy Format Addresses\n      </Text>\n      <Box className=\"flex gap-4\">\n        {sampleAccountAddresses.map((address) => (\n          <Box key={address} className=\"flex flex-col items-center gap-2\">\n            <Jazzicon address={address} size={48} />\n            <Text\n              variant={TextVariant.BodyXs}\n              className=\"max-w-[100px] truncate font-mono\"\n            >\n              {address.includes(':')\n                ? `${address.split(':').slice(0, -1).join(':')}:...${address.slice(-6)}`\n                : `${address.slice(0, 10)}...${address.slice(-4)}`}\n            </Text>\n          </Box>\n        ))}\n      </Box>\n    </Box>\n\n    {/* Different networks section */}\n    <Box>\n      <Text variant={TextVariant.HeadingMd} className=\"mb-2\">\n        Different Networks\n      </Text>\n      <Box className=\"flex flex-wrap gap-4\">\n        <Box className=\"flex flex-col gap-2\">\n          <Text variant={TextVariant.BodyMd} fontWeight={FontWeight.Medium}>\n            Ethereum\n          </Text>\n          <Box className=\"flex items-center gap-2\">\n            <Jazzicon address={ethereumAddress} size={48} />\n            <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n              {`${ethereumAddress.slice(0, 10)}...${ethereumAddress.slice(-4)}`}\n            </Text>\n          </Box>\n        </Box>\n        <Box className=\"flex flex-col gap-2\">\n          <Text variant={TextVariant.BodyMd} fontWeight={FontWeight.Medium}>\n            Bitcoin\n          </Text>\n          <Box className=\"flex items-center gap-2\">\n            <Jazzicon address={bitcoinAddress} size={48} />\n            <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n              {`${bitcoinAddress.slice(0, 10)}...${bitcoinAddress.slice(-4)}`}\n            </Text>\n          </Box>\n        </Box>\n        <Box className=\"flex flex-col gap-2\">\n          <Text variant={TextVariant.BodyMd} fontWeight={FontWeight.Medium}>\n            Solana\n          </Text>\n          <Box className=\"flex items-center gap-2\">\n            <Jazzicon address={solanaAddress} size={48} />\n            <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n              {`${solanaAddress.slice(0, 10)}...${solanaAddress.slice(-4)}`}\n            </Text>\n          </Box>\n        </Box>\n      </Box>\n    </Box>\n\n    {/* CAIP-10 consistency demonstration */}\n    <Box>\n      <Text variant={TextVariant.HeadingMd} className=\"mb-2\">\n        CAIP-10 Format Consistency (Same Address, Different Networks)\n      </Text>\n      <Text\n        variant={TextVariant.BodySm}\n        color={TextColor.TextAlternative}\n        className=\"mb-3\"\n      >\n        These should all generate the same icon since they represent the same\n        address on different networks\n      </Text>\n      <Box className=\"flex flex-wrap gap-4\">\n        <Box className=\"flex flex-col gap-2\">\n          <Text variant={TextVariant.BodyMd} fontWeight={FontWeight.Medium}>\n            Ethereum Address Across Networks\n          </Text>\n          <Box className=\"flex gap-2\">\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Jazzicon address={ethereumAddress} size={48} />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`${ethereumAddress.slice(0, 10)}...${ethereumAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Jazzicon address={`eip155:1:${ethereumAddress}`} size={48} />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`eip155:1:${ethereumAddress.slice(0, 6)}...${ethereumAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Jazzicon\n                address={`eip155:8453:${ethereumAddress}`}\n                size={48}\n              />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`eip155:8453:${ethereumAddress.slice(0, 6)}...${ethereumAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Jazzicon\n                address={`eip155:59144:${ethereumAddress}`}\n                size={48}\n              />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`eip155:59144:${ethereumAddress.slice(0, 6)}...${ethereumAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Jazzicon address={`eip155:137:${ethereumAddress}`} size={48} />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`eip155:137:${ethereumAddress.slice(0, 6)}...${ethereumAddress.slice(-4)}`}\n              </Text>\n            </Box>\n          </Box>\n        </Box>\n      </Box>\n      <Box className=\"mt-4 flex flex-wrap gap-4\">\n        <Box className=\"flex flex-col gap-2\">\n          <Text variant={TextVariant.BodyMd} fontWeight={FontWeight.Medium}>\n            Solana Address Formats\n          </Text>\n          <Box className=\"flex gap-2\">\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Jazzicon address={solanaAddress} size={48} />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`${solanaAddress.slice(0, 10)}...${solanaAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Jazzicon\n                address={`solana:mainnet:${solanaAddress}`}\n                size={48}\n              />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`solana:mainnet:${solanaAddress.slice(0, 6)}...${solanaAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Jazzicon\n                address={`solana:testnet:${solanaAddress}`}\n                size={48}\n              />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`solana:testnet:${solanaAddress.slice(0, 6)}...${solanaAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Jazzicon\n                address={`solana:devnet:${solanaAddress}`}\n                size={48}\n              />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`solana:devnet:${solanaAddress.slice(0, 6)}...${solanaAddress.slice(-4)}`}\n              </Text>\n            </Box>\n          </Box>\n        </Box>\n      </Box>\n    </Box>\n  </Box>\n);"
        },
        {
          "id": "react-temp-components-jazzicon--size",
          "name": "Size",
          "snippet": "const Size = () => (\n  <Box className=\"flex items-center gap-4\">\n    <Jazzicon address={sampleAccountAddresses[0]} size={16} />\n    <Jazzicon address={sampleAccountAddresses[1]} size={24} />\n    <Jazzicon address={sampleAccountAddresses[2]} size={32} />\n    <Jazzicon address={sampleAccountAddresses[3]} size={48} />\n    <Jazzicon address={sampleAccountAddresses[4]} size={64} />\n  </Box>\n);"
        }
      ],
      "import": "import { Box, Jazzicon, Text } from '@metamask/design-system-react';"
    },
    "react-temp-components-maskicon": {
      "id": "react-temp-components-maskicon",
      "name": "Maskicon",
      "path": "../../packages/design-system-react/src/components/temp-components/Maskicon/Maskicon.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "Maskicon",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-system-react/src/components/temp-components/Maskicon/Maskicon.tsx",
        "actualName": "Maskicon",
        "exportName": "Maskicon",
        "props": {
          "address": {
            "required": true,
            "tsType": {
              "name": "string"
            },
            "description": "Required address used as a unique identifier to generate the Maskicon."
          },
          "size": {
            "required": false,
            "tsType": {
              "name": "number"
            },
            "description": "Optional prop to control the size of the Maskicon.\nThis will set both width and height.",
            "defaultValue": {
              "value": "32",
              "computed": false
            }
          },
          "className": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional CSS class name to apply to the Maskicon."
          },
          "data-testid": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "Optional prop to add a test id to the icon"
          }
        }
      },
      "stories": [
        {
          "id": "react-temp-components-maskicon--default",
          "name": "Default",
          "snippet": "const Default = () => <Maskicon address=\"0x9Cbf7c41B7787F6c621115010D3B044029FE2Ce8\" size={32} />;"
        },
        {
          "id": "react-temp-components-maskicon--address",
          "name": "Address",
          "snippet": "const Address = () => (\n  <Box className=\"flex flex-col gap-6\">\n    {/* Legacy addresses section */}\n    <Box>\n      <Text variant={TextVariant.HeadingMd} className=\"mb-2\">\n        Legacy Format Addresses\n      </Text>\n      <Box className=\"flex gap-4\">\n        {sampleAccountAddresses.map((address) => (\n          <Box key={address} className=\"flex flex-col items-center gap-2\">\n            <Maskicon address={address} size={48} />\n            <Text\n              variant={TextVariant.BodyXs}\n              className=\"max-w-[100px] truncate font-mono\"\n            >\n              {address.includes(':')\n                ? `${address.split(':').slice(0, -1).join(':')}:...${address.slice(-6)}`\n                : `${address.slice(0, 10)}...${address.slice(-4)}`}\n            </Text>\n          </Box>\n        ))}\n      </Box>\n    </Box>\n\n    {/* Different networks section */}\n    <Box>\n      <Text variant={TextVariant.HeadingMd} className=\"mb-2\">\n        Different Networks\n      </Text>\n      <Box className=\"flex flex-wrap gap-4\">\n        <Box className=\"flex flex-col gap-2\">\n          <Text variant={TextVariant.BodyMd} fontWeight={FontWeight.Medium}>\n            Ethereum\n          </Text>\n          <Box className=\"flex items-center gap-2\">\n            <Maskicon address={ethereumAddress} size={48} />\n            <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n              {`${ethereumAddress.slice(0, 10)}...${ethereumAddress.slice(-4)}`}\n            </Text>\n          </Box>\n        </Box>\n        <Box className=\"flex flex-col gap-2\">\n          <Text variant={TextVariant.BodyMd} fontWeight={FontWeight.Medium}>\n            Bitcoin\n          </Text>\n          <Box className=\"flex items-center gap-2\">\n            <Maskicon address={bitcoinAddress} size={48} />\n            <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n              {`${bitcoinAddress.slice(0, 10)}...${bitcoinAddress.slice(-4)}`}\n            </Text>\n          </Box>\n        </Box>\n        <Box className=\"flex flex-col gap-2\">\n          <Text variant={TextVariant.BodyMd} fontWeight={FontWeight.Medium}>\n            Solana\n          </Text>\n          <Box className=\"flex items-center gap-2\">\n            <Maskicon address={solanaAddress} size={48} />\n            <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n              {`${solanaAddress.slice(0, 10)}...${solanaAddress.slice(-4)}`}\n            </Text>\n          </Box>\n        </Box>\n      </Box>\n    </Box>\n\n    {/* CAIP-10 consistency demonstration */}\n    <Box>\n      <Text variant={TextVariant.HeadingMd} className=\"mb-2\">\n        CAIP-10 Format Consistency (Same Address, Different Networks)\n      </Text>\n      <Text\n        variant={TextVariant.BodySm}\n        color={TextColor.TextAlternative}\n        className=\"mb-3\"\n      >\n        These should all generate the same icon since they represent the same\n        address on different networks\n      </Text>\n      <Box className=\"flex flex-wrap gap-4\">\n        <Box className=\"flex flex-col gap-2\">\n          <Text variant={TextVariant.BodyMd} fontWeight={FontWeight.Medium}>\n            Ethereum Address Across Networks\n          </Text>\n          <Box className=\"flex gap-2\">\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Maskicon address={ethereumAddress} size={48} />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`${ethereumAddress.slice(0, 10)}...${ethereumAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Maskicon address={`eip155:1:${ethereumAddress}`} size={48} />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`eip155:1:${ethereumAddress.slice(0, 6)}...${ethereumAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Maskicon\n                address={`eip155:8453:${ethereumAddress}`}\n                size={48}\n              />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`eip155:8453:${ethereumAddress.slice(0, 6)}...${ethereumAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Maskicon\n                address={`eip155:59144:${ethereumAddress}`}\n                size={48}\n              />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`eip155:59144:${ethereumAddress.slice(0, 6)}...${ethereumAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Maskicon address={`eip155:137:${ethereumAddress}`} size={48} />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`eip155:137:${ethereumAddress.slice(0, 6)}...${ethereumAddress.slice(-4)}`}\n              </Text>\n            </Box>\n          </Box>\n        </Box>\n      </Box>\n      <Box className=\"mt-4 flex flex-wrap gap-4\">\n        <Box className=\"flex flex-col gap-2\">\n          <Text variant={TextVariant.BodyMd} fontWeight={FontWeight.Medium}>\n            Solana Address Formats\n          </Text>\n          <Box className=\"flex gap-2\">\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Maskicon address={solanaAddress} size={48} />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`${solanaAddress.slice(0, 10)}...${solanaAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Maskicon\n                address={`solana:mainnet:${solanaAddress}`}\n                size={48}\n              />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`solana:mainnet:${solanaAddress.slice(0, 6)}...${solanaAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Maskicon\n                address={`solana:testnet:${solanaAddress}`}\n                size={48}\n              />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`solana:testnet:${solanaAddress.slice(0, 6)}...${solanaAddress.slice(-4)}`}\n              </Text>\n            </Box>\n            <Box className=\"flex flex-col items-center gap-1\">\n              <Maskicon\n                address={`solana:devnet:${solanaAddress}`}\n                size={48}\n              />\n              <Text variant={TextVariant.BodyXs} className=\"font-mono\">\n                {`solana:devnet:${solanaAddress.slice(0, 6)}...${solanaAddress.slice(-4)}`}\n              </Text>\n            </Box>\n          </Box>\n        </Box>\n      </Box>\n    </Box>\n  </Box>\n);"
        },
        {
          "id": "react-temp-components-maskicon--size",
          "name": "Size",
          "snippet": "const Size = () => (\n  <Box className=\"flex items-center gap-4\">\n    <Maskicon address={sampleAccountAddresses[0]} size={16} />\n    <Maskicon address={sampleAccountAddresses[1]} size={24} />\n    <Maskicon address={sampleAccountAddresses[2]} size={32} />\n    <Maskicon address={sampleAccountAddresses[3]} size={48} />\n    <Maskicon address={sampleAccountAddresses[4]} size={64} />\n  </Box>\n);"
        }
      ],
      "import": "import { Box, Maskicon, Text } from '@metamask/design-system-react';"
    },
    "docs-components-colorswatch": {
      "id": "docs-components-colorswatch",
      "name": "ColorSwatch",
      "path": "../../packages/design-tokens/stories/components/ColorSwatch/ColorSwatch.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "ColorSwatch",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-tokens/stories/components/ColorSwatch/ColorSwatch.tsx",
        "actualName": "ColorSwatch",
        "exportName": "ColorSwatch",
        "props": {
          "color": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "The color of the swatch"
          },
          "backgroundColor": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "The background color of the swatch defaults to the color"
          },
          "textBackgroundColor": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "The color of text background that contains the name of the color defaults to lightTheme.colors.background.default",
            "defaultValue": {
              "value": "'#ffffff'",
              "computed": false
            }
          },
          "borderColor": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "The border color of the swatch defaults to lightTheme.colors.border.muted",
            "defaultValue": {
              "value": "'#b4b4b566'",
              "computed": false
            }
          },
          "textColor": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "The color of the text defaults to lightTheme.colors.text.default",
            "defaultValue": {
              "value": "'#131416'",
              "computed": false
            }
          },
          "name": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "The name of the color"
          }
        }
      },
      "stories": [
        {
          "id": "docs-components-colorswatch--default",
          "name": "Default",
          "snippet": "const Default = () => (\n  <ColorSwatch\n    color=\"#007bff\"\n    borderColor=\"#ced4da\"\n    textBackgroundColor=\"#f8f9fa\"\n    textColor=\"#212529\"\n    name=\"Primary Default\"\n  />\n);"
        }
      ],
      "import": "import { ColorSwatch } from '@metamask/design-tokens';"
    },
    "docs-components-colorswatchgroup": {
      "id": "docs-components-colorswatchgroup",
      "name": "ColorSwatchGroup",
      "path": "../../packages/design-tokens/stories/components/ColorSwatchGroup/ColorSwatchGroup.stories.tsx",
      "jsDocTags": {},
      "reactDocgen": {
        "description": "",
        "methods": [],
        "displayName": "ColorSwatchGroup",
        "definedInFile": "/home/runner/work/metamask-design-system/metamask-design-system/packages/design-tokens/stories/components/ColorSwatchGroup/ColorSwatchGroup.tsx",
        "actualName": "ColorSwatchGroup",
        "exportName": "ColorSwatchGroup",
        "props": {
          "swatchData": {
            "required": true,
            "tsType": {
              "name": "signature",
              "type": "object",
              "raw": "{\n  [colorName: string]: ColorPalette | ColorDetails;\n}",
              "signature": {
                "properties": [
                  {
                    "key": {
                      "name": "string"
                    },
                    "value": {
                      "name": "union",
                      "raw": "ColorPalette | ColorDetails",
                      "elements": [
                        {
                          "name": "signature",
                          "type": "object",
                          "raw": "{\n  [shade: string]: ColorDetails;\n}",
                          "signature": {
                            "properties": [
                              {
                                "key": {
                                  "name": "string"
                                },
                                "value": {
                                  "name": "signature",
                                  "type": "object",
                                  "raw": "{\n  value: string; // Hex value or alias to another color\n  type?: string; // Type usually color\n  parent?: string; // Parent category or group of the color\n  description?: string; // Description or notes about the color\n}",
                                  "signature": {
                                    "properties": [
                                      {
                                        "key": "value",
                                        "value": {
                                          "name": "string",
                                          "required": true
                                        }
                                      },
                                      {
                                        "key": "type",
                                        "value": {
                                          "name": "string",
                                          "required": false
                                        }
                                      },
                                      {
                                        "key": "parent",
                                        "value": {
                                          "name": "string",
                                          "required": false
                                        }
                                      },
                                      {
                                        "key": "description",
                                        "value": {
                                          "name": "string",
                                          "required": false
                                        }
                                      }
                                    ]
                                  },
                                  "required": true
                                }
                              }
                            ]
                          }
                        },
                        {
                          "name": "signature",
                          "type": "object",
                          "raw": "{\n  value: string; // Hex value or alias to another color\n  type?: string; // Type usually color\n  parent?: string; // Parent category or group of the color\n  description?: string; // Description or notes about the color\n}",
                          "signature": {
                            "properties": [
                              {
                                "key": "value",
                                "value": {
                                  "name": "string",
                                  "required": true
                                }
                              },
                              {
                                "key": "type",
                                "value": {
                                  "name": "string",
                                  "required": false
                                }
                              },
                              {
                                "key": "parent",
                                "value": {
                                  "name": "string",
                                  "required": false
                                }
                              },
                              {
                                "key": "description",
                                "value": {
                                  "name": "string",
                                  "required": false
                                }
                              }
                            ]
                          },
                          "required": true
                        }
                      ],
                      "required": true
                    }
                  }
                ]
              }
            },
            "description": "The color object"
          },
          "textBackgroundColor": {
            "required": false,
            "tsType": {
              "name": "string"
            },
            "description": "The color of text background that contains the name of the color defaults to background.default",
            "defaultValue": {
              "value": "'transparent'",
              "computed": false
            }
          },
          "theme": {
            "required": false,
            "tsType": {
              "name": "union",
              "raw": "string | undefined",
              "elements": [
                {
                  "name": "string"
                },
                {
                  "name": "undefined"
                }
              ]
            },
            "description": "Hex code value of the theme (light or dark mode) this is used to help determine the text color of each swatch when opacity is involved\nDefault is light theme #ffffff",
            "defaultValue": {
              "value": "'#ffffff'",
              "computed": false
            }
          }
        }
      },
      "stories": [
        {
          "id": "docs-components-colorswatchgroup--default",
          "name": "Default",
          "snippet": "const Default = () => (\n  <ColorSwatchGroup\n    swatchData={{\n      white: {\n        white000: {\n          value: '#FFFFFF',\n          description: '(HEX: #FFFFFF)',\n          type: 'color',\n        },\n        white010: {\n          value: '#F5F5F5',\n          description: '(HEX: #F5F5F5)',\n          type: 'color',\n        },\n      },\n    }}\n    borderColor=\"#ced4da\"\n    textBackgroundColor=\"#f8f9fa\"\n    textColor=\"#212529\"\n    name=\"Color Swatch Group\"\n  />\n);"
        }
      ],
      "import": "import { ColorSwatchGroup } from '@metamask/design-tokens';"
    }
  },
  "meta": {
    "docgen": "react-docgen",
    "durationMs": 1674
  }
}