{
  "version": "1.0.0",
  "packageName": "@discourser/design-system",
  "generatedAt": "2026-04-08T01:08:44.432Z",
  "gitHash": "d91325f0",
  "figmaFiles": {
    "GaHmFfmvO4loUzuZS4TgEz": {
      "fileKey": "GaHmFfmvO4loUzuZS4TgEz"
    }
  },
  "components": {
    "Accordion": {
      "name": "Accordion",
      "type": "compound",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "38:8232",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-8232"
      },
      "imports": {
        "primary": "import * as Accordion from '@discourser/design-system/Accordion'",
        "namedExports": [
          "Accordion.ItemBody",
          "Accordion.Root",
          "Accordion.RootProvider",
          "Accordion.Item",
          "Accordion.ItemContent",
          "Accordion.ItemIndicator",
          "Accordion.ItemTrigger"
        ],
        "subpath": "@discourser/design-system/Accordion"
      },
      "props": [],
      "subComponents": [
        {
          "name": "ItemBody",
          "element": "div"
        },
        {
          "name": "Root",
          "element": "root"
        },
        {
          "name": "RootProvider",
          "element": "root"
        },
        {
          "name": "Item",
          "element": "item"
        },
        {
          "name": "ItemContent",
          "element": "itemContent"
        },
        {
          "name": "ItemIndicator",
          "element": "itemIndicator"
        },
        {
          "name": "ItemTrigger",
          "element": "itemTrigger"
        }
      ],
      "example": "<Accordion.Root collapsible>\n        <Accordion.Item value=\"item-1\">\n          <Accordion.ItemTrigger>\n            <span>Trigger</span>\n            <Accordion.ItemIndicator />\n          </Accordion.ItemTrigger>\n          <Accordion.ItemContent>Content</Accordion.ItemContent>\n        </Accordion.Item>\n      </Accordion.Root>",
      "sourcePath": "src/components/Accordion.tsx"
    },
    "Badge": {
      "name": "Badge",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "930:1972",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=930-1972"
      },
      "imports": {
        "primary": "import { Badge } from '@discourser/design-system/Badge'",
        "namedExports": [
          "Badge"
        ],
        "subpath": "@discourser/design-system/Badge"
      },
      "props": [],
      "example": "<Badge variant={variant} colorPalette={colorPalette}>\n        Label\n      </Badge>",
      "sourcePath": "src/components/Badge.tsx",
      "tokens": {
        "recipe": "badge",
        "variantProps": [
          "variant",
          "size",
          "colorPalette"
        ],
        "figmaPropToRecipeProp": {
          "Variant": "variant",
          "Size": "size",
          "Color": "colorPalette"
        }
      }
    },
    "Breadcrumb": {
      "name": "Breadcrumb",
      "type": "compound",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "38:7978",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-7978"
      },
      "imports": {
        "primary": "import * as Breadcrumb from '@discourser/design-system/Breadcrumb'",
        "namedExports": [
          "Breadcrumb.Root",
          "Breadcrumb.List",
          "Breadcrumb.Item",
          "Breadcrumb.Ellipsis",
          "Breadcrumb.Separator",
          "Breadcrumb.CurrentLink"
        ],
        "subpath": "@discourser/design-system/Breadcrumb"
      },
      "props": [
        {
          "name": "className",
          "type": "string",
          "required": false
        }
      ],
      "subComponents": [
        {
          "name": "Root",
          "element": "nav"
        },
        {
          "name": "List",
          "element": "ol"
        },
        {
          "name": "Item",
          "element": "li"
        },
        {
          "name": "Ellipsis",
          "element": "li"
        },
        {
          "name": "Separator",
          "element": "li"
        },
        {
          "name": "CurrentLink",
          "element": "span"
        }
      ],
      "example": "<Breadcrumb.Root>\n        <Breadcrumb.List>\n          <Breadcrumb.Item>\n            <Breadcrumb.Link href=\"/home\">Home</Breadcrumb.Link>\n          </Breadcrumb.Item>\n          <Breadcrumb.Separator />\n          <Breadcrumb.Item>\n            <Breadcrumb.CurrentLink>Current Page</Breadcrumb.CurrentLink>\n          </Breadcrumb.Item>\n        </Breadcrumb.List>\n      </Breadcrumb.Root>",
      "sourcePath": "src/components/Breadcrumb.tsx"
    },
    "Button": {
      "name": "Button",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "38:7993",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-7993"
      },
      "imports": {
        "primary": "import { Button } from '@discourser/design-system/Button'",
        "namedExports": [
          "Button"
        ],
        "subpath": "@discourser/design-system/Button"
      },
      "props": [
        {
          "name": "loading",
          "type": "boolean | undefined",
          "required": false,
          "description": "* If `true`, the button will show a loading spinner. @default false"
        },
        {
          "name": "loadingText",
          "type": "React.ReactNode | undefined",
          "required": false,
          "description": "* The text to show while loading."
        },
        {
          "name": "spinner",
          "type": "React.ReactNode | undefined",
          "required": false,
          "description": "* The spinner to show while loading."
        },
        {
          "name": "spinnerPlacement",
          "type": "'start' | 'end' | undefined",
          "required": false,
          "description": "* The placement of the spinner @default \"start\""
        }
      ],
      "example": "<Button variant={variant}>Label</Button>",
      "sourcePath": "src/components/Button.tsx"
    },
    "Card": {
      "name": "Card",
      "type": "compound",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "950:1681",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=950-1681"
      },
      "imports": {
        "primary": "import * as Card from '@discourser/design-system/Card'",
        "namedExports": [
          "Card.Root",
          "Card.Header",
          "Card.Body",
          "Card.Footer",
          "Card.Title",
          "Card.Description"
        ],
        "subpath": "@discourser/design-system/Card"
      },
      "props": [],
      "subComponents": [
        {
          "name": "Root",
          "element": "div"
        },
        {
          "name": "Header",
          "element": "div"
        },
        {
          "name": "Body",
          "element": "div"
        },
        {
          "name": "Footer",
          "element": "div"
        },
        {
          "name": "Title",
          "element": "h3"
        },
        {
          "name": "Description",
          "element": "div"
        }
      ],
      "example": "<Card.Root variant={variant}>\n        <Card.Header>\n          <Card.Title>Card Title</Card.Title>\n          <Card.Description>Card description</Card.Description>\n        </Card.Header>\n        <Card.Body>Content goes here</Card.Body>\n        <Card.Footer>{/* Footer actions */}</Card.Footer>\n      </Card.Root>",
      "sourcePath": "src/components/Card.tsx",
      "tokens": {
        "recipe": "card",
        "variantProps": [
          "variant"
        ],
        "figmaPropToRecipeProp": {
          "Variant": "variant"
        }
      }
    },
    "ContentCard": {
      "name": "ContentCard",
      "type": "compound",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "478:5957",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=478-5957"
      },
      "imports": {
        "primary": "import * as ContentCard from '@discourser/design-system/ContentCard'",
        "namedExports": [
          "ContentCard.Root",
          "ContentCard.Header",
          "ContentCard.Title",
          "ContentCard.BadgeBar",
          "ContentCard.Body",
          "ContentCard.Section",
          "ContentCard.SectionTitle",
          "ContentCard.Separator",
          "ContentCard.List",
          "ContentCard.ListItem"
        ],
        "subpath": "@discourser/design-system/ContentCard"
      },
      "props": [],
      "subComponents": [
        {
          "name": "Root",
          "element": "div"
        },
        {
          "name": "Header",
          "element": "div"
        },
        {
          "name": "Title",
          "element": "h2"
        },
        {
          "name": "BadgeBar",
          "element": "div"
        },
        {
          "name": "Body",
          "element": "div"
        },
        {
          "name": "Section",
          "element": "section"
        },
        {
          "name": "SectionTitle",
          "element": "h3"
        },
        {
          "name": "Separator",
          "element": "hr"
        },
        {
          "name": "List",
          "element": "ul"
        },
        {
          "name": "ListItem",
          "element": "li"
        }
      ],
      "example": "<ContentCard.Root>\n      <ContentCard.Header>\n        <ContentCard.Title>Title</ContentCard.Title>\n        <ContentCard.BadgeBar>badges</ContentCard.BadgeBar>\n      </ContentCard.Header>\n      <ContentCard.Body>Content</ContentCard.Body>\n      <ContentCard.Separator />\n      <ContentCard.Section>\n        <ContentCard.SectionTitle>Section</ContentCard.SectionTitle>\n        <ContentCard.List>\n          <ContentCard.ListItem>Item</ContentCard.ListItem>\n        </ContentCard.List>\n      </ContentCard.Section>\n    </ContentCard.Root>",
      "sourcePath": "src/components/ContentCard/index.ts"
    },
    "Header": {
      "name": "Header",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "485:4697",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=485-4697"
      },
      "imports": {
        "primary": "import { Header } from '@discourser/design-system/Header'",
        "namedExports": [
          "Header"
        ],
        "subpath": "@discourser/design-system/Header"
      },
      "props": [],
      "example": "<Header size={size}>Heading Text</Header>",
      "sourcePath": "src/components/Header.tsx"
    },
    "AudienceIcon": {
      "name": "AudienceIcon",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "38:9825",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-9825"
      },
      "imports": {
        "primary": "import { AudienceIcon } from '@discourser/design-system/AudienceIcon'",
        "namedExports": [
          "AudienceIcon"
        ]
      },
      "props": [],
      "example": "<AudienceIcon />",
      "sourcePath": "src/components/Icons/AudienceIcon.tsx"
    },
    "AudioSpeakerIcon": {
      "name": "AudioSpeakerIcon",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "38:9811",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-9811"
      },
      "imports": {
        "primary": "import { AudioSpeakerIcon } from '@discourser/design-system/AudioSpeakerIcon'",
        "namedExports": [
          "AudioSpeakerIcon"
        ]
      },
      "props": [],
      "example": "<AudioSpeakerIcon />",
      "sourcePath": "src/components/Icons/AudioSpeakerIcon.tsx"
    },
    "BookmarkPlusIcon": {
      "name": "BookmarkPlusIcon",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "622:3770",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=622-3770"
      },
      "imports": {
        "primary": "import { BookmarkPlusIcon } from '@discourser/design-system/BookmarkPlusIcon'",
        "namedExports": [
          "BookmarkPlusIcon"
        ]
      },
      "props": [],
      "example": "<BookmarkPlusIcon />",
      "sourcePath": "src/components/Icons/BookmarkPlusIcon.tsx"
    },
    "ClipBoardIcon": {
      "name": "ClipBoardIcon",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "38:9804",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-9804"
      },
      "imports": {
        "primary": "import { ClipBoardIcon } from '@discourser/design-system/ClipBoardIcon'",
        "namedExports": [
          "ClipBoardIcon"
        ]
      },
      "props": [],
      "example": "<ClipBoardIcon />",
      "sourcePath": "src/components/Icons/ClipBoardIcon.tsx"
    },
    "DiscourserLogo": {
      "name": "DiscourserLogo",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "491:4933",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=491-4933"
      },
      "imports": {
        "primary": "import { DiscourserLogo } from '@discourser/design-system/DiscourserLogo'",
        "namedExports": [
          "DiscourserLogo"
        ]
      },
      "props": [],
      "example": "<DiscourserLogo />",
      "sourcePath": "src/components/Icons/DiscourserLogo.tsx"
    },
    "ExitStudioIcon": {
      "name": "ExitStudioIcon",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "38:9853",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-9853"
      },
      "imports": {
        "primary": "import { ExitStudioIcon } from '@discourser/design-system/ExitStudioIcon'",
        "namedExports": [
          "ExitStudioIcon"
        ]
      },
      "props": [],
      "example": "<ExitStudioIcon />",
      "sourcePath": "src/components/Icons/ExitStudioIcon.tsx"
    },
    "MicrophoneIcon": {
      "name": "MicrophoneIcon",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "38:9820",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-9820"
      },
      "imports": {
        "primary": "import { MicrophoneIcon } from '@discourser/design-system/MicrophoneIcon'",
        "namedExports": [
          "MicrophoneIcon"
        ]
      },
      "props": [],
      "example": "<MicrophoneIcon />",
      "sourcePath": "src/components/Icons/MicrophoneIcon.tsx"
    },
    "NotebookPenIcon": {
      "name": "NotebookPenIcon",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "622:3771",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=622-3771"
      },
      "imports": {
        "primary": "import { NotebookPenIcon } from '@discourser/design-system/NotebookPenIcon'",
        "namedExports": [
          "NotebookPenIcon"
        ]
      },
      "props": [],
      "example": "<NotebookPenIcon />",
      "sourcePath": "src/components/Icons/NotebookPenIcon.tsx"
    },
    "PausePlayIcon": {
      "name": "PausePlayIcon",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "38:9849",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-9849"
      },
      "imports": {
        "primary": "import { PausePlayIcon } from '@discourser/design-system/PausePlayIcon'",
        "namedExports": [
          "PausePlayIcon"
        ]
      },
      "props": [],
      "example": "<PausePlayIcon />",
      "sourcePath": "src/components/Icons/PausePlayIcon.tsx"
    },
    "PlayIcon": {
      "name": "PlayIcon",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "622:3766",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=622-3766"
      },
      "imports": {
        "primary": "import { PlayIcon } from '@discourser/design-system/PlayIcon'",
        "namedExports": [
          "PlayIcon"
        ]
      },
      "props": [],
      "example": "<PlayIcon />",
      "sourcePath": "src/components/Icons/PlayIcon.tsx"
    },
    "RecordIcon": {
      "name": "RecordIcon",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "38:9843",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-9843"
      },
      "imports": {
        "primary": "import { RecordIcon } from '@discourser/design-system/RecordIcon'",
        "namedExports": [
          "RecordIcon"
        ]
      },
      "props": [],
      "example": "<RecordIcon />",
      "sourcePath": "src/components/Icons/RecordIcon.tsx"
    },
    "RepeatQuestionIcon": {
      "name": "RepeatQuestionIcon",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "622:3767",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=622-3767"
      },
      "imports": {
        "primary": "import { RepeatQuestionIcon } from '@discourser/design-system/RepeatQuestionIcon'",
        "namedExports": [
          "RepeatQuestionIcon"
        ]
      },
      "props": [],
      "example": "<RepeatQuestionIcon />",
      "sourcePath": "src/components/Icons/RepeatQuestionIcon.tsx"
    },
    "ScrollTextIcon": {
      "name": "ScrollTextIcon",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "622:3773",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=622-3773"
      },
      "imports": {
        "primary": "import { ScrollTextIcon } from '@discourser/design-system/ScrollTextIcon'",
        "namedExports": [
          "ScrollTextIcon"
        ]
      },
      "props": [],
      "example": "<ScrollTextIcon />",
      "sourcePath": "src/components/Icons/ScrollTextIcon.tsx"
    },
    "SparklesIcon": {
      "name": "SparklesIcon",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "622:3772",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=622-3772"
      },
      "imports": {
        "primary": "import { SparklesIcon } from '@discourser/design-system/SparklesIcon'",
        "namedExports": [
          "SparklesIcon"
        ]
      },
      "props": [],
      "example": "<SparklesIcon />",
      "sourcePath": "src/components/Icons/SparklesIcon.tsx"
    },
    "SpeechIcon": {
      "name": "SpeechIcon",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "622:3768",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=622-3768"
      },
      "imports": {
        "primary": "import { SpeechIcon } from '@discourser/design-system/SpeechIcon'",
        "namedExports": [
          "SpeechIcon"
        ]
      },
      "props": [],
      "example": "<SpeechIcon />",
      "sourcePath": "src/components/Icons/SpeechIcon.tsx"
    },
    "StopPlayIcon": {
      "name": "StopPlayIcon",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "38:9857",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-9857"
      },
      "imports": {
        "primary": "import { StopPlayIcon } from '@discourser/design-system/StopPlayIcon'",
        "namedExports": [
          "StopPlayIcon"
        ]
      },
      "props": [],
      "example": "<StopPlayIcon />",
      "sourcePath": "src/components/Icons/StopPlayIcon.tsx"
    },
    "TimerIcon": {
      "name": "TimerIcon",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "38:9817",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-9817"
      },
      "imports": {
        "primary": "import { TimerIcon } from '@discourser/design-system/TimerIcon'",
        "namedExports": [
          "TimerIcon"
        ]
      },
      "props": [],
      "example": "<TimerIcon />",
      "sourcePath": "src/components/Icons/TimerIcon.tsx"
    },
    "UserProfileIcon": {
      "name": "UserProfileIcon",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "622:3774",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=622-3774"
      },
      "imports": {
        "primary": "import { UserProfileIcon } from '@discourser/design-system/UserProfileIcon'",
        "namedExports": [
          "UserProfileIcon"
        ]
      },
      "props": [],
      "example": "<UserProfileIcon />",
      "sourcePath": "src/components/Icons/UserProfileIcon.tsx"
    },
    "Input": {
      "name": "Input",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "38:8909",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-8909"
      },
      "imports": {
        "primary": "import { Input } from '@discourser/design-system/Input'",
        "namedExports": [
          "Input"
        ],
        "subpath": "@discourser/design-system/Input"
      },
      "props": [],
      "example": "<Input type={type} placeholder=\"Enter value\" />",
      "sourcePath": "src/components/Input.tsx"
    },
    "NavigationMenu": {
      "name": "NavigationMenu",
      "type": "composite",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "38:8485",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-8485"
      },
      "imports": {
        "primary": "import { NavigationMenu } from '@discourser/design-system/NavigationMenu'",
        "namedExports": [
          "NavigationMenu"
        ],
        "subpath": "@discourser/design-system/NavigationMenu"
      },
      "props": [
        {
          "name": "sections",
          "type": "NavSection[]",
          "required": true
        },
        {
          "name": "activeHref",
          "type": "string",
          "required": false
        },
        {
          "name": "defaultOpenSections",
          "type": "string[]",
          "required": false
        },
        {
          "name": "onNavigate",
          "type": "(href: string) => void",
          "required": false
        },
        {
          "name": "renderLink",
          "type": "(props: { href: string; children: React.ReactNode; isActive: boolean; className: string; }) => React.ReactNode",
          "required": false
        },
        {
          "name": "ariaLabel",
          "type": "string",
          "required": false
        }
      ],
      "example": "<NavigationMenu\n        sections={[\n          {\n            value: 'dashboard',\n            title: 'Dashboard',\n            icon: null,\n            items: [\n              { label: 'Quick Start', href: '/dashboard/quick-start' },\n              { label: 'Progress', href: '/dashboard/progress' },\n            ],\n          },\n        ]}\n        defaultOpenSections={['dashboard']}\n        activeHref=\"/dashboard/quick-start\"\n      />",
      "sourcePath": "src/components/NavigationMenu/NavigationMenu.tsx"
    },
    "RadioGroup": {
      "name": "RadioGroup",
      "type": "compound",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "38:8893",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-8893"
      },
      "imports": {
        "primary": "import * as RadioGroup from '@discourser/design-system/RadioGroup'",
        "namedExports": [
          "RadioGroup.Root",
          "RadioGroup.RootProvider",
          "RadioGroup.Indicator",
          "RadioGroup.Item",
          "RadioGroup.ItemControl",
          "RadioGroup.ItemText",
          "RadioGroup.Label"
        ],
        "subpath": "@discourser/design-system/RadioGroup"
      },
      "props": [
        {
          "name": "value",
          "type": "string",
          "required": false,
          "description": "controlled selected value (string)"
        },
        {
          "name": "defaultValue",
          "type": "string",
          "required": false,
          "description": "uncontrolled initial value (string)"
        },
        {
          "name": "onValueChange",
          "type": "({ value }: { value: string }) => void",
          "required": false,
          "description": "callback ({ value }: { value: string }) => void"
        },
        {
          "name": "disabled",
          "type": "boolean",
          "required": false,
          "description": "boolean, disables all items"
        },
        {
          "name": "orientation",
          "type": "'horizontal' | 'vertical'",
          "required": false,
          "description": "'horizontal' | 'vertical' (default: 'vertical')"
        },
        {
          "name": "value",
          "type": "string",
          "required": false,
          "description": "required unique string for this option"
        },
        {
          "name": "disabled",
          "type": "boolean",
          "required": false,
          "description": "boolean, disables this item only"
        }
      ],
      "subComponents": [
        {
          "name": "Root",
          "element": "root"
        },
        {
          "name": "RootProvider",
          "element": "root"
        },
        {
          "name": "Indicator",
          "element": "indicator"
        },
        {
          "name": "Item",
          "element": "item"
        },
        {
          "name": "ItemControl",
          "element": "itemControl"
        },
        {
          "name": "ItemText",
          "element": "itemText"
        },
        {
          "name": "Label",
          "element": "label"
        }
      ],
      "example": "<RadioGroup.Root defaultValue=\"option-1\">\n        <RadioGroup.Item value=\"option-1\">\n          <RadioGroup.ItemControl />\n          <RadioGroup.ItemText>Option 1</RadioGroup.ItemText>\n        </RadioGroup.Item>\n        <RadioGroup.Item value=\"option-2\">\n          <RadioGroup.ItemControl />\n          <RadioGroup.ItemText>Option 2</RadioGroup.ItemText>\n        </RadioGroup.Item>\n        <RadioGroup.Item value=\"option-3\">\n          <RadioGroup.ItemControl />\n          <RadioGroup.ItemText>Option 3</RadioGroup.ItemText>\n        </RadioGroup.Item>\n      </RadioGroup.Root>",
      "sourcePath": "src/components/RadioGroup.tsx",
      "tokens": {
        "recipe": "radioGroup",
        "variantProps": [
          "variant",
          "size"
        ],
        "figmaPropToRecipeProp": {
          "Checked": "checked",
          "State": "state"
        }
      }
    },
    "ScenarioQueue": {
      "name": "ScenarioQueue",
      "type": "composite",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "478:5757",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=478-5757"
      },
      "imports": {
        "primary": "import { ScenarioQueue } from '@discourser/design-system/ScenarioQueue'",
        "namedExports": [
          "ScenarioQueue"
        ],
        "subpath": "@discourser/design-system/ScenarioQueue"
      },
      "props": [
        {
          "name": "scenarios",
          "type": "Scenario[]",
          "required": true,
          "description": "All scenarios — the component splits them by status internally"
        },
        {
          "name": "onReorder",
          "type": "(reorderedIds: string[]) => void",
          "required": false,
          "description": "Called when user reorders cards in the \"In Queue\" tab"
        },
        {
          "name": "onRequeue",
          "type": "(scenarioId: string) => void",
          "required": false,
          "description": "Called when user toggles a completed scenario back to the queue"
        },
        {
          "name": "onRemove",
          "type": "(scenarioId: string) => void",
          "required": false,
          "description": "Called when user removes a scenario from the queue"
        },
        {
          "name": "renderAddScenarioContent",
          "type": "(props: { onClose: () => void }) => ReactNode",
          "required": false,
          "description": "* Render prop / slot for the Add Scenario modal body. The design system provides the Dialog shell; the consumer (discourser.ai) provides the collection content. * Receives `onClose` to allow the consumer to close the modal after selection."
        },
        {
          "name": "onBrowseMore",
          "type": "() => void",
          "required": false,
          "description": "Called when user clicks \"Browse More Scenarios\" link inside the modal"
        },
        {
          "name": "onBuildCustom",
          "type": "() => void",
          "required": false,
          "description": "Called when user clicks \"Build Custom Scenario\" link inside the modal"
        }
      ],
      "example": "<ScenarioQueue scenarios={scenarios} />",
      "sourcePath": "src/components/ScenarioQueue/ScenarioQueue.tsx"
    },
    "ScenarioSettings": {
      "name": "ScenarioSettings",
      "type": "composite",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "38:8240",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-8240"
      },
      "imports": {
        "primary": "import { ScenarioSettings } from '@discourser/design-system/ScenarioSettings'",
        "namedExports": [
          "ScenarioSettings"
        ],
        "subpath": "@discourser/design-system/ScenarioSettings"
      },
      "props": [
        {
          "name": "defaultValue",
          "type": "string[]",
          "required": false,
          "description": "* Section IDs that start expanded. Defaults to all six sections, or ['conversation-flow'] when singleOpen is true."
        },
        {
          "name": "singleOpen",
          "type": "boolean",
          "required": false,
          "description": "* When true, only one accordion section can be open at a time. @default false"
        },
        {
          "name": "adjustmentDialogContent",
          "type": "Partial<Record<AdjustableSectionId, ReactNode>>",
          "required": false,
          "description": "* ReactNode content to render inside each adjustable section's dialog. Keyed by section ID. Falls back to a placeholder when not provided."
        },
        {
          "name": "renderAdjustmentDialog",
          "type": "(sectionId: AdjustableSectionId) => ReactNode",
          "required": false,
          "description": "* Alternative render-function API for dialog content. Takes precedence over adjustmentDialogContent when both are provided."
        },
        {
          "name": "defaultDuration",
          "type": "DurationValue",
          "required": false,
          "description": "* Default selected value for the Duration radio group. @default 'quick'"
        },
        {
          "name": "defaultQuestionCount",
          "type": "QuestionCountValue",
          "required": false,
          "description": "* Default selected value for the Number of Questions radio group. @default 'brief'"
        },
        {
          "name": "onSelectionChange",
          "type": "(sectionId: RadioSectionId, value: string) => void",
          "required": false,
          "description": "* Called when a radio group selection changes. @param sectionId - 'duration' or 'number-of-questions' @param value - the selected radio value"
        }
      ],
      "example": "<ScenarioSettings\n      defaultValue={['duration', 'number-of-questions']}\n      defaultDuration=\"standard\"\n      defaultQuestionCount=\"standard\"\n    />",
      "sourcePath": "src/components/ScenarioSettings/index.ts"
    },
    "SettingsPopover": {
      "name": "SettingsPopover",
      "type": "composite",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "810:5398",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=810-5398"
      },
      "imports": {
        "primary": "import { SettingsPopover } from '@discourser/design-system/SettingsPopover'",
        "namedExports": [
          "SettingsPopover"
        ],
        "subpath": "@discourser/design-system/SettingsPopover"
      },
      "props": [
        {
          "name": "userName",
          "type": "string",
          "required": true,
          "description": "User's display name (shown on the trigger)"
        },
        {
          "name": "userTier",
          "type": "string",
          "required": true,
          "description": "User's subscription tier label (shown below the name, e.g. \"Free Trial\")"
        },
        {
          "name": "userEmail",
          "type": "string",
          "required": true,
          "description": "User's email address (shown inside the popover card)"
        },
        {
          "name": "avatarFallback",
          "type": "React.ReactNode",
          "required": false,
          "description": "Avatar fallback content — defaults to LoginIcon if not provided"
        },
        {
          "name": "avatarSrc",
          "type": "string",
          "required": false,
          "description": "Avatar image src — if provided, shows photo instead of fallback"
        },
        {
          "name": "actions",
          "type": "SettingsPopoverAction[]",
          "required": true,
          "description": "List of action items to display in the popover card"
        },
        {
          "name": "ariaLabel",
          "type": "string",
          "required": false,
          "description": "Optional aria-label for the trigger button (default: 'User settings')"
        }
      ],
      "example": "<SettingsPopover\n        userName={'value'}\n        userTier={'value'}\n        userEmail={'value'}\n        actions={[]}\n      />",
      "sourcePath": "src/components/SettingsPopover/SettingsPopover.tsx"
    },
    "Slider": {
      "name": "Slider",
      "type": "compound",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "38:7988",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-7988"
      },
      "imports": {
        "primary": "import * as Slider from '@discourser/design-system/Slider'",
        "namedExports": [
          "Slider.Control",
          "Slider.Track",
          "Slider.Range",
          "Slider.Root",
          "Slider.Thumb",
          "Slider.Label",
          "Slider.ValueText",
          "Slider.Marker",
          "Slider.MarkerGroup",
          "Slider.MarkerIndicator",
          "Slider.DraggingIndicator",
          "Slider.Marks"
        ],
        "subpath": "@discourser/design-system/Slider"
      },
      "props": [
        {
          "name": "defaultValue",
          "type": "string",
          "required": false,
          "description": "uncontrolled initial value array, e.g. [50]"
        },
        {
          "name": "value",
          "type": "string",
          "required": false,
          "description": "controlled value array, e.g. [50]"
        },
        {
          "name": "onValueChange",
          "type": "({ value }: { value: number[] }) => void",
          "required": false,
          "description": "callback ({ value }: { value: number[] }) => void"
        },
        {
          "name": "min",
          "type": "string",
          "required": false,
          "description": "number (default: 0)"
        },
        {
          "name": "max",
          "type": "string",
          "required": false,
          "description": "number (default: 100)"
        },
        {
          "name": "step",
          "type": "string",
          "required": false,
          "description": "number (default: 1)"
        },
        {
          "name": "orientation",
          "type": "'horizontal' | 'vertical'",
          "required": false,
          "description": "'horizontal' | 'vertical' (default: 'horizontal')"
        },
        {
          "name": "disabled",
          "type": "boolean",
          "required": false,
          "description": "boolean"
        },
        {
          "name": "colorPalette",
          "type": "'primary' | 'secondary' | 'tertiary' | 'neutral' | 'error'",
          "required": false,
          "description": "'primary' | 'secondary' | 'tertiary' | 'neutral' | 'error'"
        }
      ],
      "subComponents": [
        {
          "name": "Control",
          "element": "control"
        },
        {
          "name": "Track",
          "element": "track"
        },
        {
          "name": "Range",
          "element": "range"
        },
        {
          "name": "Root",
          "element": "div"
        },
        {
          "name": "Thumb",
          "element": "div"
        },
        {
          "name": "Label",
          "element": "label"
        },
        {
          "name": "ValueText",
          "element": "div"
        },
        {
          "name": "Marker",
          "element": "span"
        },
        {
          "name": "MarkerGroup",
          "element": "div"
        },
        {
          "name": "MarkerIndicator",
          "element": "div"
        },
        {
          "name": "DraggingIndicator",
          "element": "div"
        },
        {
          "name": "Marks",
          "element": "div"
        }
      ],
      "example": "<Slider.Root defaultValue={[50]} orientation={orientation}>\n        <Slider.Label>Volume</Slider.Label>\n        <Slider.Control>\n          <Slider.Track>\n            <Slider.Range />\n          </Slider.Track>\n          <Slider.Thumbs />\n        </Slider.Control>\n      </Slider.Root>",
      "sourcePath": "src/components/Slider.tsx",
      "tokens": {
        "recipe": "slider",
        "variantProps": [
          "orientation",
          "size",
          "variant"
        ],
        "figmaPropToRecipeProp": {
          "Orientation": "orientation",
          "Size": "size"
        }
      }
    },
    "Stepper": {
      "name": "Stepper",
      "type": "simple",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "38:8520",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-8520"
      },
      "imports": {
        "primary": "import { Stepper } from '@discourser/design-system/Stepper'",
        "namedExports": [
          "Stepper"
        ],
        "subpath": "@discourser/design-system/Stepper"
      },
      "props": [
        {
          "name": "index",
          "type": "number",
          "required": true
        },
        {
          "name": "className",
          "type": "string",
          "required": false
        }
      ],
      "example": "<Stepper\n        steps={[\n          { value: 'step1', title: 'Step 1' },\n          { value: 'step2', title: 'Step 2' },\n          { value: 'step3', title: 'Step 3' },\n        ]}\n        defaultStep={0}\n      />",
      "sourcePath": "src/components/Stepper/Stepper.tsx"
    },
    "StudioControls": {
      "name": "StudioControls",
      "type": "composite",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "38:8232",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-8232"
      },
      "imports": {
        "primary": "import { StudioControls } from '@discourser/design-system/StudioControls'",
        "namedExports": [
          "StudioControls"
        ],
        "subpath": "@discourser/design-system/StudioControls"
      },
      "props": [
        {
          "name": "triggerCss",
          "type": "SystemStyleObject",
          "required": false,
          "description": "Override CSS for every accordion trigger label — customize font, size, weight from the consuming app"
        },
        {
          "name": "scenarioName",
          "type": "string",
          "required": true
        },
        {
          "name": "scenarioFocus",
          "type": "string",
          "required": true
        },
        {
          "name": "scenarioLevel",
          "type": "'beginner' | 'intermediate' | 'advanced'",
          "required": true
        },
        {
          "name": "defaultAudioLevel",
          "type": "number",
          "required": false
        },
        {
          "name": "defaultMicLevel",
          "type": "number",
          "required": false
        },
        {
          "name": "defaultRecordingMode",
          "type": "RecordingMode",
          "required": false
        },
        {
          "name": "defaultShowTimer",
          "type": "boolean",
          "required": false
        },
        {
          "name": "defaultHideInterviewers",
          "type": "boolean",
          "required": false
        },
        {
          "name": "onAudioLevelChange",
          "type": "(value: number) => void",
          "required": false
        },
        {
          "name": "onMicLevelChange",
          "type": "(value: number) => void",
          "required": false
        },
        {
          "name": "onRecordingModeChange",
          "type": "(mode: RecordingMode) => void",
          "required": false
        },
        {
          "name": "onTimerChange",
          "type": "(show: boolean) => void",
          "required": false
        },
        {
          "name": "onInterviewersChange",
          "type": "(hide: boolean) => void",
          "required": false
        }
      ],
      "example": "<StudioControls\n        scenarioName={scenarioName}\n        scenarioFocus={scenarioFocus}\n        scenarioLevel={scenarioLevel}\n      />",
      "sourcePath": "src/components/StudioControls/index.ts"
    },
    "Switch": {
      "name": "Switch",
      "type": "compound",
      "figma": {
        "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
        "nodeId": "38:8121",
        "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-8121"
      },
      "imports": {
        "primary": "import * as Switch from '@discourser/design-system/Switch'",
        "namedExports": [
          "Switch.Root",
          "Switch.Label",
          "Switch.Thumb",
          "Switch.Control"
        ],
        "subpath": "@discourser/design-system/Switch"
      },
      "props": [
        {
          "name": "defaultChecked",
          "type": "boolean",
          "required": false,
          "description": "uncontrolled initial state (boolean)"
        },
        {
          "name": "checked",
          "type": "boolean",
          "required": false,
          "description": "controlled state (boolean)"
        },
        {
          "name": "onCheckedChange",
          "type": "({ checked }: { checked: boolean }) => void",
          "required": false,
          "description": "callback ({ checked }: { checked: boolean }) => void"
        },
        {
          "name": "disabled",
          "type": "boolean",
          "required": false,
          "description": "boolean"
        }
      ],
      "subComponents": [
        {
          "name": "Root",
          "element": "root"
        },
        {
          "name": "Label",
          "element": "label"
        },
        {
          "name": "Thumb",
          "element": "thumb"
        },
        {
          "name": "Control",
          "element": "control"
        }
      ],
      "example": "<Switch.Root defaultChecked={checked}>\n        <Switch.Control />\n        <Switch.Label>Toggle</Switch.Label>\n      </Switch.Root>",
      "sourcePath": "src/components/Switch.tsx",
      "tokens": {
        "recipe": "switchComponent",
        "variantProps": [
          "variant",
          "size"
        ],
        "figmaPropToRecipeProp": {
          "Toggled": "checked",
          "State": "state"
        }
      }
    }
  }
}
