{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "playback-rate-submenu",
  "title": "Playback Rate Submenu",
  "description": "A submenu for selecting the playback speed.",
  "dependencies": [
    "@videojs/core@10.0.0-beta.32",
    "@videojs/react@10.0.0-beta.32",
    "react"
  ],
  "registryDependencies": [
    "@videojs/_menu-chevron",
    "@videojs/_resolve-class-name",
    "@videojs/_style-theme",
    "@videojs/radio-item"
  ],
  "files": [
    {
      "path": "ui/files/playback-rate-submenu/playback-rate-submenu.tsx",
      "content": "/** @jsxImportSource react */\n\nimport '../styles/theme.css';\nimport { speedText } from '@videojs/core/i18n/text/menu';\nimport { Menu } from '@videojs/react';\nimport { Text as TextPrimitive } from '@videojs/react';\nimport { SpeedIcon as SpeedIconPrimitive } from '@videojs/react/icons';\nimport { PlaybackRateRadioGroup } from '@videojs/react/ui/playback-rate-radio-group';\n\nimport { MenuChevron } from '@/components/videojs/ui/menu-chevron';\nimport { RadioItem } from '@/components/videojs/ui/radio-item';\n\nexport type PlaybackRateSubmenuProps = Omit<Menu.RootProps, 'children'>;\n\nexport function PlaybackRateSubmenu({ ...props }: PlaybackRateSubmenuProps = {}) {\n  return (\n    <Menu.Root {...props}>\n      <PlaybackRateRadioGroup.Root>\n        <Menu.Trigger\n          className={\n            'group/menu-trigger-item relative flex cursor-pointer select-none items-center gap-1.5 rounded-media-menu-item px-2 py-1.5 text-start whitespace-nowrap focus-ring-media media-highlighted:highlight-media focus-visible:outline-media-ring focus-visible:outline-offset-2 text-shadow-media transition-[background-color,color] duration-media-fast ease-in-out media-anchored:duration-media-instant media-anchored:media-highlighted:duration-media-slow justify-between tabular-nums text-inherit data-[availability=unavailable]:hidden data-[availability=unsupported]:hidden aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50 media-anchored:data-highlighted:[anchor-name:--media-menu-item-highlight-anchor] media-anchored:media-highlighted:bg-transparent'\n          }\n        >\n          <SpeedIconPrimitive\n            className={\n              'shrink-0 drop-shadow-media-icon text-media-muted-foreground size-media-icon group-media-highlighted/menu-trigger-item:text-inherit'\n            }\n          />\n          <TextPrimitive token={speedText.key}>{speedText.text}</TextPrimitive>\n          <span className={'ms-auto inline-flex min-w-0 items-center gap-1 ps-2 text-current/65'}>\n            <PlaybackRateRadioGroup.Value className={'max-w-24 truncate'} />\n            <MenuChevron />\n          </span>\n        </Menu.Trigger>\n        <Menu.Content\n          className={\n            '[anchor-scope:--media-menu-item-highlight-anchor] media-anchored:before:anchor-media-highlight media-anchored:has-data-[highlighted=]:before:duration-0 absolute max-h-[inherit] overflow-auto overscroll-none outline-hidden not-data-submenu:flex not-data-submenu:flex-col not-data-submenu:gap-0.5 transition-[translate,filter] duration-media-menu ease-out not-data-submenu:inset-x-1 not-data-submenu:top-1 not-data-submenu:data-[child-open]:-translate-x-full not-data-submenu:data-[child-open]:[&:dir(rtl)]:translate-x-full not-data-submenu:data-[child-open]:blur-media-hidden not-data-submenu:data-[child-open]:before:hidden data-submenu:inset-x-0 data-submenu:top-0 data-submenu:z-10 data-submenu:[max-height:inherit] data-submenu:p-1 data-submenu:media-transitioning:pointer-events-none data-submenu:media-transitioning:overflow-hidden data-submenu:media-transitioning:translate-x-full data-submenu:media-transitioning:[&:dir(rtl)]:-translate-x-full data-submenu:media-transitioning:blur-media-hidden'\n          }\n        >\n          <Menu.Item\n            className={\n              'group/menu-back-item relative flex cursor-pointer select-none items-center gap-1.5 rounded-media-menu-item px-2 py-1.5 text-start whitespace-nowrap focus-ring-media media-highlighted:highlight-media focus-visible:outline-media-ring focus-visible:outline-offset-2 text-shadow-media transition-[background-color,color] duration-media-fast ease-in-out media-anchored:duration-media-instant media-anchored:media-highlighted:duration-media-slow mb-0.5 w-full'\n            }\n          >\n            <MenuChevron back />\n            <TextPrimitive token={speedText.key}>{speedText.text}</TextPrimitive>\n          </Menu.Item>\n          <Menu.Separator\n            className={\n              'my-1 block border-b border-media-border media-opaque:border-media-foreground/25 shadow-media-separator'\n            }\n          />\n          <PlaybackRateRadioGroup.Options\n            className={\n              'flex [max-height:inherit] flex-col gap-0.5 [anchor-scope:--media-menu-item-highlight-anchor] media-anchored:before:anchor-media-highlight media-anchored:has-data-[highlighted=]:before:duration-0'\n            }\n            renderItem={(props, item) => (\n              <RadioItem {...props}>\n                <span>{item.label}</span>\n              </RadioItem>\n            )}\n          ></PlaybackRateRadioGroup.Options>\n        </Menu.Content>\n      </PlaybackRateRadioGroup.Root>\n    </Menu.Root>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/ui/playback-rate-submenu.tsx"
    }
  ],
  "meta": {
    "framework": "react",
    "style": "tailwind",
    "role": "component",
    "styling": "tailwind",
    "public": true
  },
  "docs": "Installs `@/components/videojs/ui/playback-rate-submenu.tsx` for use inside a compatible Video.js Player or Skin.\n\n```tsx\nimport { PlaybackRateSubmenu } from '@/components/videojs/ui/playback-rate-submenu';\n\nexport function Controls() {\n  return <PlaybackRateSubmenu />;\n}\n```",
  "categories": [
    "media",
    "menus"
  ],
  "type": "registry:ui"
}