{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "settings-menu",
  "title": "Settings Menu",
  "description": "A settings button and popup for composing playback option submenus.",
  "dependencies": [
    "@videojs/core@10.0.0-beta.32",
    "@videojs/react@10.0.0-beta.32",
    "cn",
    "react"
  ],
  "registryDependencies": [
    "@videojs/_button-tooltip",
    "@videojs/_resolve-class-name",
    "@videojs/_style-buttons",
    "@videojs/_style-menus",
    "@videojs/_style-popups",
    "@videojs/_style-theme",
    "@videojs/button"
  ],
  "files": [
    {
      "path": "ui/files/settings-menu/settings-menu.tsx",
      "content": "/** @jsxImportSource react */\n\nimport '../styles/buttons.css';\nimport '../styles/menus.css';\nimport '../styles/popups.css';\nimport '../styles/theme.css';\nimport { settingsText } from '@videojs/core/i18n/text/menu';\nimport { Menu } from '@videojs/react';\nimport { Text as TextPrimitive } from '@videojs/react';\nimport { GearIcon as GearIconPrimitive } from '@videojs/react/icons';\nimport type { ClassValue } from 'cn';\n\nimport { cn, resolveClassName } from '@/components/videojs/lib/resolve-class-name';\nimport { Button } from '@/components/videojs/ui/button';\nimport { ButtonTooltip } from '@/components/videojs/ui/button-tooltip';\n\nexport interface SettingsMenuProps extends Menu.RootProps {\n  className?: ClassValue;\n}\n\nexport function SettingsMenu({ children, className, ...props }: SettingsMenuProps) {\n  return (\n    <Menu.Root side=\"top\" align=\"center\" {...props}>\n      <ButtonTooltip label={<TextPrimitive token={settingsText.key}>{settingsText.text}</TextPrimitive>} side=\"top\">\n        <Menu.Trigger\n          render={<Button />}\n          className={(state) => cn('media-settings-menu-trigger', resolveClassName(className, state))}\n        >\n          <GearIconPrimitive className={cn('media-button-icon', 'media-settings-menu-trigger-icon')} />\n          <TextPrimitive className={'media-settings-menu-trigger-label'} token={settingsText.key}>\n            {settingsText.text}\n          </TextPrimitive>\n        </Menu.Trigger>\n      </ButtonTooltip>\n      <Menu.Popup\n        keepMounted\n        className={cn('media-popup', 'media-popup-surface', 'media-menu-popup', 'media-menu-resizable-popup')}\n      >\n        <Menu.Content className={'media-menu-content'}>{children}</Menu.Content>\n      </Menu.Popup>\n    </Menu.Root>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/ui/settings-menu.tsx"
    }
  ],
  "meta": {
    "framework": "react",
    "style": "css",
    "role": "component",
    "styling": "css",
    "public": true
  },
  "docs": "Installs `@/components/videojs/ui/settings-menu.tsx` for use inside a compatible Video.js Player or Skin.\n\n```tsx\nimport { SettingsMenu } from '@/components/videojs/ui/settings-menu';\n\nexport function Controls() {\n  return <SettingsMenu />;\n}\n```",
  "categories": [
    "media",
    "menus"
  ],
  "type": "registry:ui"
}