{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "video-minimal",
  "title": "Minimal Video Skin",
  "description": "A compact on-demand video skin with wrapping controls and the complete video component set.",
  "dependencies": [
    "@videojs/core@10.0.0-beta.32",
    "@videojs/react@10.0.0-beta.32",
    "cn",
    "react"
  ],
  "registryDependencies": [
    "@videojs/_resolve-class-name",
    "@videojs/_style-theme"
  ],
  "files": [
    {
      "path": "skins/files/video-minimal/skins/shared/playback-hotkeys.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { Hotkey } from '@videojs/react';\n\nexport interface PlaybackHotkeysProps {\n  disabled?: boolean | undefined;\n}\n\nexport function PlaybackHotkeys({ disabled = false }: PlaybackHotkeysProps = {}) {\n  return (\n    <>\n      <Hotkey disabled={disabled} keys=\"Space\" action=\"togglePaused\" />\n      <Hotkey disabled={disabled} keys=\"k\" action=\"togglePaused\" />\n      <Hotkey disabled={disabled} keys=\"m\" action=\"toggleMuted\" />\n      <Hotkey disabled={disabled} keys=\"ArrowRight\" action=\"seekStep\" />\n      <Hotkey disabled={disabled} keys=\"ArrowLeft\" action=\"seekStep\" />\n      <Hotkey disabled={disabled} keys=\"l\" action=\"seekStep\" />\n      <Hotkey disabled={disabled} keys=\"j\" action=\"seekStep\" />\n      <Hotkey disabled={disabled} keys=\"ArrowUp\" action=\"volumeStep\" />\n      <Hotkey disabled={disabled} keys=\"ArrowDown\" action=\"volumeStep\" />\n      <Hotkey disabled={disabled} keys=\"0-9\" action=\"seekToPercent\" />\n      <Hotkey disabled={disabled} keys=\"Home\" action=\"seekToPercent\" value={0} />\n      <Hotkey disabled={disabled} keys=\"End\" action=\"seekToPercent\" value={100} />\n      <Hotkey disabled={disabled} keys=\">\" action=\"speedUp\" />\n      <Hotkey disabled={disabled} keys=\"<\" action=\"speedDown\" />\n    </>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/shared/playback-hotkeys.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/controls.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { Controls, Time, Tooltip } from '@videojs/react';\n\nimport { cn } from '@/components/videojs/lib/resolve-class-name';\n\nimport { VideoSettingsMenu } from './settings-menu';\nimport { AirPlayButton } from './ui/buttons/airplay-button';\nimport { ButtonTooltip } from './ui/buttons/button-tooltip';\nimport { CaptionsButton } from './ui/buttons/captions-button';\nimport { CastButton } from './ui/buttons/cast-button';\nimport { FullscreenButton } from './ui/buttons/fullscreen-button';\nimport { PiPButton } from './ui/buttons/pip-button';\nimport { PlayButton } from './ui/buttons/play-button';\nimport { VolumePopover } from './ui/controls/volume-popover';\nimport { TimeSlider } from './ui/sliders/time-slider';\n\nexport function MinimalVideoControls() {\n  return (\n    <Controls.Root>\n      <Controls.Backdrop className={'video-controls-backdrop'} />\n      <Controls.Content className={cn('video-controls', 'video-controls-content', 'video-controls-wrap')}>\n        <Tooltip.Provider>\n          <Controls.Group className={'video-controls-start'}>\n            <ButtonTooltip side=\"top\">\n              <PlayButton />\n            </ButtonTooltip>\n            <VolumePopover showTooltip side=\"right\" orientation=\"horizontal\" />\n          </Controls.Group>\n\n          <Controls.Group className={'video-time-slider-group'}>\n            <Time.Group className={'media-time-group'}>\n              <Time.Value className={cn('media-time-toggle', 'media-time-current-value')} type=\"current\" toggle />\n              <Time.Separator className={'media-time-separator'} />\n              <Time.Value className={'media-time-duration-value'} type=\"duration\" />\n            </Time.Group>\n            <TimeSlider previewOverflow=\"clamp\" />\n          </Controls.Group>\n\n          <Controls.Group className={'video-controls-end'}>\n            <ButtonTooltip side=\"top\">\n              <CaptionsButton />\n            </ButtonTooltip>\n            <VideoSettingsMenu />\n            <Controls.Group className={'video-controls-trailing'}>\n              <ButtonTooltip side=\"top\">\n                <CastButton />\n              </ButtonTooltip>\n              <ButtonTooltip side=\"top\">\n                <AirPlayButton />\n              </ButtonTooltip>\n              <ButtonTooltip side=\"top\">\n                <PiPButton />\n              </ButtonTooltip>\n              <ButtonTooltip side=\"top\">\n                <FullscreenButton />\n              </ButtonTooltip>\n            </Controls.Group>\n          </Controls.Group>\n        </Tooltip.Provider>\n      </Controls.Content>\n    </Controls.Root>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/controls.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/gestures.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { Gesture } from '@videojs/react';\n\nexport interface VideoGesturesProps {\n  disabled?: boolean | undefined;\n}\n\nexport function VideoGestures({ disabled = false }: VideoGesturesProps = {}) {\n  return (\n    <>\n      <Gesture disabled={disabled} type=\"tap\" action=\"togglePaused\" pointer=\"mouse\" region=\"center\" />\n      <Gesture disabled={disabled} type=\"tap\" action=\"toggleControls\" pointer=\"touch\" />\n      <Gesture disabled={disabled} type=\"doubletap\" action=\"seekStep\" region=\"left\" />\n      <Gesture disabled={disabled} type=\"doubletap\" action=\"toggleFullscreen\" region=\"center\" />\n      <Gesture disabled={disabled} type=\"doubletap\" action=\"seekStep\" region=\"right\" />\n    </>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/gestures.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/hotkeys.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { Hotkey } from '@videojs/react';\n\nimport { PlaybackHotkeys } from '../../shared/playback-hotkeys';\n\nexport interface VideoHotkeysProps {\n  disabled?: boolean | undefined;\n}\n\nexport function VideoHotkeys({ disabled = false }: VideoHotkeysProps = {}) {\n  return (\n    <>\n      <PlaybackHotkeys disabled={disabled} />\n      <Hotkey disabled={disabled} keys=\"f\" action=\"toggleFullscreen\" />\n      <Hotkey disabled={disabled} keys=\"c\" action=\"toggleSubtitles\" />\n      <Hotkey disabled={disabled} keys=\"i\" action=\"togglePictureInPicture\" />\n    </>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/hotkeys.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/settings-menu.tsx",
      "content": "/** @jsxImportSource react */\n\nimport type { ComponentProps } from 'react';\n\nimport { AudioTrackMenu } from './ui/menus/audio-track-menu';\nimport { CaptionsSubmenu } from './ui/menus/captions-submenu';\nimport { PlaybackRateSubmenu } from './ui/menus/playback-rate-submenu';\nimport { QualityMenu } from './ui/menus/quality-menu';\nimport { SettingsMenu } from './ui/menus/settings-menu';\n\nexport type VideoSettingsMenuProps = Omit<NonNullable<ComponentProps<typeof SettingsMenu>>, 'children'>;\n\nexport function VideoSettingsMenu(props: VideoSettingsMenuProps = {}) {\n  return (\n    <SettingsMenu {...props}>\n      <QualityMenu />\n      <AudioTrackMenu />\n      <PlaybackRateSubmenu />\n      <CaptionsSubmenu />\n    </SettingsMenu>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/settings-menu.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/skin.tsx",
      "content": "/** @jsxImportSource react */\n\nimport './skin.css';\nimport '../../../styles/theme.css';\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { cn } from '@/components/videojs/lib/resolve-class-name';\n\nimport { MinimalVideoControls } from './controls';\nimport { VideoGestures } from './gestures';\nimport { VideoHotkeys } from './hotkeys';\nimport { VideoStatusIndicators } from './status-indicators';\nimport { BufferingIndicator } from './ui/feedback/buffering-indicator';\nimport { ErrorDialog } from './ui/feedback/error-dialog';\nimport { Container } from './ui/layout/container';\nimport { Poster } from './ui/layout/poster';\n\nexport interface MinimalVideoSkinProps extends Omit<NonNullable<ComponentProps<typeof Container>>, 'children'> {\n  children?: ReactNode;\n  renderPoster?: NonNullable<ComponentProps<typeof Poster>>['children'];\n}\n\nexport function MinimalVideoSkin({ children, className, renderPoster, ...props }: MinimalVideoSkinProps = {}) {\n  return (\n    <Container className={cn('video-skin', className)} data-theme=\"minimal\" data-preset=\"video\" {...props}>\n      {children}\n      <Poster>{renderPoster}</Poster>\n      <BufferingIndicator />\n      <ErrorDialog />\n\n      <MinimalVideoControls />\n\n      <VideoHotkeys />\n      <VideoGestures />\n      <VideoStatusIndicators />\n    </Container>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/skin.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/status-indicators.tsx",
      "content": "/** @jsxImportSource react */\n\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/components/videojs/lib/resolve-class-name';\n\nimport { SeekIndicator } from './ui/feedback/seek-indicator';\nimport { StatusAnnouncer } from './ui/feedback/status-announcer';\nimport { PlaybackStatusIndicator, StatusIndicator } from './ui/feedback/status-indicator';\nimport { VolumeIndicator } from './ui/feedback/volume-indicator';\n\nexport type VideoStatusIndicatorsProps = Omit<ComponentProps<'div'>, 'children'>;\n\nexport function VideoStatusIndicators({ className, ...props }: VideoStatusIndicatorsProps = {}) {\n  return (\n    <>\n      <StatusAnnouncer />\n      <div className={cn('video-status-indicators', className)} {...props}>\n        <VolumeIndicator />\n        <StatusIndicator />\n        <SeekIndicator />\n        <PlaybackStatusIndicator />\n      </div>\n    </>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/status-indicators.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/buttons/airplay-button.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { AirPlayButton as AirPlayButtonPrimitive } from '@videojs/react';\nimport {\n  AirPlayEnterIcon as AirPlayEnterIconPrimitive,\n  AirPlayExitIcon as AirPlayExitIconPrimitive,\n} from '@videojs/react/icons/minimal';\n\nimport { cn, resolveClassName } from '@/components/videojs/lib/resolve-class-name';\n\nimport { Button } from './button';\n\nexport type AirPlayButtonProps = Omit<AirPlayButtonPrimitive.Props, 'children'>;\n\nexport function AirPlayButton({ className, ...props }: AirPlayButtonProps = {}) {\n  return (\n    <AirPlayButtonPrimitive\n      render={<Button />}\n      className={(state) => cn('media-airplay-button', resolveClassName(className, state))}\n      {...props}\n    >\n      <AirPlayEnterIconPrimitive className={cn('media-button-icon', 'media-airplay-button-enter-icon')} />\n      <AirPlayExitIconPrimitive className={cn('media-button-icon', 'media-airplay-button-exit-icon')} />\n    </AirPlayButtonPrimitive>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/buttons/airplay-button.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/buttons/button-tooltip.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { Tooltip } from '@videojs/react';\nimport type { ReactElement, ReactNode } from 'react';\n\nimport { cn } from '@/components/videojs/lib/resolve-class-name';\n\nexport interface ButtonTooltipProps extends Tooltip.RootProps {\n  children: ReactElement;\n  label?: ReactNode;\n}\n\nexport function ButtonTooltip({ children, label, ...props }: ButtonTooltipProps) {\n  return (\n    <Tooltip.Root {...props}>\n      <Tooltip.Trigger render={children} />\n      <Tooltip.Popup\n        className={cn(\n          'media-popup',\n          'media-popup-safe-area',\n          'media-popup-transition',\n          'media-popup-surface',\n          'media-tooltip'\n        )}\n      >\n        {label ?? <Tooltip.Label />}\n        {!label && <Tooltip.Shortcut className={'media-tooltip-shortcut'} />}\n      </Tooltip.Popup>\n    </Tooltip.Root>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/buttons/button-tooltip.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/buttons/button.tsx",
      "content": "import type { ComponentProps } from 'react';\n\nimport { cn } from '@/components/videojs/lib/resolve-class-name';\n\n/** Shared button carrying the base interactive styles used by media controls. */\nexport type ButtonProps = ComponentProps<'button'>;\n\nexport function Button({ className, ...props }: ButtonProps) {\n  return <button className={cn('media-button', className)} {...props} />;\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/buttons/button.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/buttons/captions-button.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { CaptionsButton as CaptionsButtonPrimitive } from '@videojs/react';\nimport {\n  CaptionsOffIcon as CaptionsOffIconPrimitive,\n  CaptionsOnIcon as CaptionsOnIconPrimitive,\n} from '@videojs/react/icons/minimal';\n\nimport { cn, resolveClassName } from '@/components/videojs/lib/resolve-class-name';\n\nimport { Button } from './button';\n\nexport type CaptionsButtonProps = Omit<CaptionsButtonPrimitive.Props, 'children'>;\n\nexport function CaptionsButton({ className, ...props }: CaptionsButtonProps = {}) {\n  return (\n    <CaptionsButtonPrimitive\n      render={<Button />}\n      className={(state) => cn('media-captions-button', resolveClassName(className, state))}\n      {...props}\n    >\n      <CaptionsOffIconPrimitive className={cn('media-button-icon', 'media-captions-button-off-icon')} />\n      <CaptionsOnIconPrimitive className={cn('media-button-icon', 'media-captions-button-on-icon')} />\n    </CaptionsButtonPrimitive>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/buttons/captions-button.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/buttons/cast-button.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { CastButton as CastButtonPrimitive } from '@videojs/react';\nimport {\n  CastEnterIcon as CastEnterIconPrimitive,\n  CastExitIcon as CastExitIconPrimitive,\n} from '@videojs/react/icons/minimal';\n\nimport { cn, resolveClassName } from '@/components/videojs/lib/resolve-class-name';\n\nimport { Button } from './button';\n\nexport type CastButtonProps = Omit<CastButtonPrimitive.Props, 'children'>;\n\nexport function CastButton({ className, ...props }: CastButtonProps = {}) {\n  return (\n    <CastButtonPrimitive\n      render={<Button />}\n      className={(state) => cn('media-cast-button', resolveClassName(className, state))}\n      {...props}\n    >\n      <CastEnterIconPrimitive className={cn('media-button-icon', 'media-cast-button-enter-icon')} />\n      <CastExitIconPrimitive className={cn('media-button-icon', 'media-cast-button-exit-icon')} />\n    </CastButtonPrimitive>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/buttons/cast-button.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/buttons/fullscreen-button.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { FullscreenButton as FullscreenButtonPrimitive } from '@videojs/react';\nimport {\n  FullscreenEnterIcon as FullscreenEnterIconPrimitive,\n  FullscreenExitIcon as FullscreenExitIconPrimitive,\n} from '@videojs/react/icons/minimal';\n\nimport { cn, resolveClassName } from '@/components/videojs/lib/resolve-class-name';\n\nimport { Button } from './button';\n\nexport type FullscreenButtonProps = Omit<FullscreenButtonPrimitive.Props, 'children'>;\n\nexport function FullscreenButton({ className, ...props }: FullscreenButtonProps = {}) {\n  return (\n    <FullscreenButtonPrimitive\n      render={<Button />}\n      className={(state) => cn('media-fullscreen-button', resolveClassName(className, state))}\n      {...props}\n    >\n      <FullscreenEnterIconPrimitive className={cn('media-button-icon', 'media-fullscreen-button-enter-icon')} />\n      <FullscreenExitIconPrimitive className={cn('media-button-icon', 'media-fullscreen-button-exit-icon')} />\n    </FullscreenButtonPrimitive>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/buttons/fullscreen-button.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/buttons/mute-button.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { MuteButton as MuteButtonPrimitive } from '@videojs/react';\nimport {\n  VolumeOffIcon as VolumeOffIconPrimitive,\n  VolumeLowIcon as VolumeLowIconPrimitive,\n  VolumeHighIcon as VolumeHighIconPrimitive,\n} from '@videojs/react/icons/minimal';\n\nimport { cn, resolveClassName } from '@/components/videojs/lib/resolve-class-name';\n\nimport { Button } from './button';\n\nexport type MuteButtonProps = Omit<MuteButtonPrimitive.Props, 'children'>;\n\nexport function MuteButton({ className, ...props }: MuteButtonProps = {}) {\n  return (\n    <MuteButtonPrimitive\n      render={<Button />}\n      className={(state) => cn('media-mute-button', resolveClassName(className, state))}\n      {...props}\n    >\n      <VolumeOffIconPrimitive className={cn('media-button-icon', 'media-mute-button-off-icon')} />\n      <VolumeLowIconPrimitive className={cn('media-button-icon', 'media-mute-button-low-icon')} />\n      <VolumeHighIconPrimitive className={cn('media-button-icon', 'media-mute-button-high-icon')} />\n    </MuteButtonPrimitive>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/buttons/mute-button.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/buttons/pip-button.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { PiPButton as PiPButtonPrimitive } from '@videojs/react';\nimport {\n  PipEnterIcon as PipEnterIconPrimitive,\n  PipExitIcon as PipExitIconPrimitive,\n} from '@videojs/react/icons/minimal';\n\nimport { cn, resolveClassName } from '@/components/videojs/lib/resolve-class-name';\n\nimport { Button } from './button';\n\nexport type PiPButtonProps = Omit<PiPButtonPrimitive.Props, 'children'>;\n\nexport function PiPButton({ className, ...props }: PiPButtonProps = {}) {\n  return (\n    <PiPButtonPrimitive\n      render={<Button />}\n      className={(state) => cn('media-pip-button', resolveClassName(className, state))}\n      {...props}\n    >\n      <PipEnterIconPrimitive className={cn('media-button-icon', 'media-pip-button-enter-icon')} />\n      <PipExitIconPrimitive className={cn('media-button-icon', 'media-pip-button-exit-icon')} />\n    </PiPButtonPrimitive>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/buttons/pip-button.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/buttons/play-button.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { PlayButton as PlayButtonPrimitive } from '@videojs/react';\nimport {\n  RestartIcon as RestartIconPrimitive,\n  PlayIcon as PlayIconPrimitive,\n  PauseIcon as PauseIconPrimitive,\n} from '@videojs/react/icons/minimal';\n\nimport { cn, resolveClassName } from '@/components/videojs/lib/resolve-class-name';\n\nimport { Button } from './button';\n\nexport type PlayButtonProps = Omit<PlayButtonPrimitive.Props, 'children'>;\n\nexport function PlayButton({ className, ...props }: PlayButtonProps = {}) {\n  return (\n    <PlayButtonPrimitive\n      render={<Button />}\n      className={(state) => cn('media-play-button', resolveClassName(className, state))}\n      {...props}\n    >\n      <RestartIconPrimitive className={cn('media-button-icon', 'media-play-button-restart-icon')} />\n      <PlayIconPrimitive className={cn('media-button-icon', 'media-play-button-play-icon')} />\n      <PauseIconPrimitive className={cn('media-button-icon', 'media-play-button-pause-icon')} />\n    </PlayButtonPrimitive>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/buttons/play-button.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/controls/volume-popover.tsx",
      "content": "/** @jsxImportSource react */\nimport type { VolumeSliderProps as CoreVolumeSliderProps } from '@videojs/core';\nimport { VolumePopover as VolumePopoverPrimitive } from '@videojs/react';\nimport type { ClassValue } from 'cn';\n\nimport { cn } from '@/components/videojs/lib/resolve-class-name';\n\nimport { ButtonTooltip } from '../buttons/button-tooltip';\nimport { MuteButton } from '../buttons/mute-button';\nimport { VolumeSlider } from '../sliders/volume-slider';\n\nexport interface VolumePopoverProps extends Omit<VolumePopoverPrimitive.RootProps, 'children'> {\n  className?: ClassValue;\n  orientation?: CoreVolumeSliderProps['orientation'];\n  showTooltip?: boolean;\n}\n\nexport function VolumePopover({\n  className,\n  showTooltip = false,\n  side = 'top',\n  orientation = 'vertical',\n  ...props\n}: VolumePopoverProps = {}) {\n  return (\n    <VolumePopoverPrimitive.Root openOnHover delay={200} closeDelay={100} side={side} {...props}>\n      <ButtonTooltip delay={0} disabled={!showTooltip} sticky side=\"top\">\n        <VolumePopoverPrimitive.Trigger render={<MuteButton className={cn(className)} />} />\n      </ButtonTooltip>\n      <VolumePopoverPrimitive.Popup\n        className={cn(\n          'media-popup',\n          'media-popup-safe-area',\n          'media-popup-transition',\n          'media-popup-surface',\n          'media-volume-popover'\n        )}\n      >\n        <VolumeSlider orientation={orientation} />\n      </VolumePopoverPrimitive.Popup>\n    </VolumePopoverPrimitive.Root>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/controls/volume-popover.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/feedback/buffering-indicator.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { BufferingIndicator as BufferingIndicatorPrimitive } from '@videojs/react';\nimport { SpinnerIcon as SpinnerIconPrimitive } from '@videojs/react/icons/minimal';\n\nimport { cn, resolveClassName } from '@/components/videojs/lib/resolve-class-name';\n\nexport type BufferingIndicatorProps = Omit<BufferingIndicatorPrimitive.Props, 'children'>;\n\nexport function BufferingIndicator({ className, ...props }: BufferingIndicatorProps = {}) {\n  return (\n    <BufferingIndicatorPrimitive\n      className={(state) => cn('media-buffering-indicator', resolveClassName(className, state))}\n      {...props}\n    >\n      <SpinnerIconPrimitive className={'media-buffering-indicator-spinner-icon'} />\n    </BufferingIndicatorPrimitive>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/feedback/buffering-indicator.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/feedback/error-dialog.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { ErrorDialog as ErrorDialogPrimitive } from '@videojs/react';\n\nimport { Button } from '../buttons/button';\n\nexport function ErrorDialog() {\n  return (\n    <ErrorDialogPrimitive.Root>\n      <ErrorDialogPrimitive.Backdrop className={'media-dialog-backdrop'} />\n      <ErrorDialogPrimitive.Popup className={'media-dialog-popup'}>\n        <div className={'media-dialog-content'}>\n          <ErrorDialogPrimitive.Title className={'media-dialog-title'} />\n          <ErrorDialogPrimitive.Description className={'media-dialog-description'} />\n        </div>\n        <div className={'media-dialog-actions'}>\n          <ErrorDialogPrimitive.Close render={<Button />} className={'media-dialog-close'} />\n        </div>\n      </ErrorDialogPrimitive.Popup>\n    </ErrorDialogPrimitive.Root>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/feedback/error-dialog.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/feedback/seek-indicator.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { SeekIndicator as SeekIndicatorPrimitive } from '@videojs/react';\nimport { ChevronIcon as ChevronIconPrimitive } from '@videojs/react/icons/minimal';\n\nimport { cn, resolveClassName } from '@/components/videojs/lib/resolve-class-name';\n\nexport type SeekIndicatorProps = Omit<SeekIndicatorPrimitive.RootProps, 'children'>;\n\nexport function SeekIndicator({ className, ...props }: SeekIndicatorProps = {}) {\n  return (\n    <SeekIndicatorPrimitive.Root\n      className={(state) => cn('media-seek-indicator', resolveClassName(className, state))}\n      {...props}\n    >\n      <ChevronIconPrimitive className={'media-seek-indicator-icon'} />\n      <SeekIndicatorPrimitive.Value className={'media-seek-indicator-value'} />\n    </SeekIndicatorPrimitive.Root>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/feedback/seek-indicator.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/feedback/status-announcer.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { StatusAnnouncer as StatusAnnouncerPrimitive } from '@videojs/react';\n\nimport { cn, resolveClassName } from '@/components/videojs/lib/resolve-class-name';\n\nexport type StatusAnnouncerProps = Omit<StatusAnnouncerPrimitive.Props, 'children'>;\n\nexport function StatusAnnouncer({ className, ...props }: StatusAnnouncerProps = {}) {\n  return (\n    <StatusAnnouncerPrimitive\n      className={(state) => cn('media-status-announcer', resolveClassName(className, state))}\n      {...props}\n    />\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/feedback/status-announcer.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/feedback/status-indicator.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { StatusIndicator as StatusIndicatorPrimitive } from '@videojs/react';\nimport {\n  CaptionsOnIcon as CaptionsOnIconPrimitive,\n  CaptionsOffIcon as CaptionsOffIconPrimitive,\n  FullscreenEnterIcon as FullscreenEnterIconPrimitive,\n  FullscreenExitIcon as FullscreenExitIconPrimitive,\n  PipEnterIcon as PipEnterIconPrimitive,\n  PipExitIcon as PipExitIconPrimitive,\n  PlayIcon as PlayIconPrimitive,\n  PauseIcon as PauseIconPrimitive,\n} from '@videojs/react/icons/minimal';\n\nimport { cn, resolveClassName } from '@/components/videojs/lib/resolve-class-name';\n\nconst TOP_STATUS_ACTIONS = ['toggleSubtitles', 'toggleFullscreen', 'togglePictureInPicture'] as const;\n\nconst PLAYBACK_STATUS_ACTIONS = ['togglePaused'] as const;\n\nexport type StatusIndicatorProps = Omit<StatusIndicatorPrimitive.RootProps, 'children'>;\n\nexport function StatusIndicator({ className, ...props }: StatusIndicatorProps = {}) {\n  return (\n    <StatusIndicatorPrimitive.Root\n      actions={TOP_STATUS_ACTIONS}\n      className={(state) => cn('media-indicator', 'media-status-indicator', resolveClassName(className, state))}\n      {...props}\n    >\n      <div className={cn('media-indicator-content', 'media-status-indicator-content')}>\n        <CaptionsOnIconPrimitive className={'media-status-indicator-captions-on-icon'} />\n        <CaptionsOffIconPrimitive className={'media-status-indicator-captions-off-icon'} />\n        <FullscreenEnterIconPrimitive className={'media-status-indicator-fullscreen-enter-icon'} />\n        <FullscreenExitIconPrimitive className={'media-status-indicator-fullscreen-exit-icon'} />\n        <PipEnterIconPrimitive className={'media-status-indicator-pip-enter-icon'} />\n        <PipExitIconPrimitive className={'media-status-indicator-pip-exit-icon'} />\n        <StatusIndicatorPrimitive.Value className={'media-status-indicator-value'} />\n      </div>\n    </StatusIndicatorPrimitive.Root>\n  );\n}\n\nexport type PlaybackStatusIndicatorProps = Omit<StatusIndicatorPrimitive.RootProps, 'children'>;\n\nexport function PlaybackStatusIndicator({ className, ...props }: PlaybackStatusIndicatorProps = {}) {\n  return (\n    <StatusIndicatorPrimitive.Root\n      actions={PLAYBACK_STATUS_ACTIONS}\n      className={(state) => cn('media-playback-status-indicator', resolveClassName(className, state))}\n      {...props}\n    >\n      <PlayIconPrimitive className={'media-playback-status-indicator-play-icon'} />\n      <PauseIconPrimitive className={'media-playback-status-indicator-pause-icon'} />\n    </StatusIndicatorPrimitive.Root>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/feedback/status-indicator.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/feedback/volume-indicator.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { VolumeIndicator as VolumeIndicatorPrimitive } from '@videojs/react';\nimport {\n  VolumeHighIcon as VolumeHighIconPrimitive,\n  VolumeLowIcon as VolumeLowIconPrimitive,\n  VolumeOffIcon as VolumeOffIconPrimitive,\n} from '@videojs/react/icons/minimal';\n\nimport { cn, resolveClassName } from '@/components/videojs/lib/resolve-class-name';\n\nexport type VolumeIndicatorProps = Omit<VolumeIndicatorPrimitive.RootProps, 'children'>;\n\nexport function VolumeIndicator({ className, ...props }: VolumeIndicatorProps = {}) {\n  return (\n    <VolumeIndicatorPrimitive.Root\n      className={(state) => cn('media-indicator', 'media-volume-indicator', resolveClassName(className, state))}\n      {...props}\n    >\n      <VolumeIndicatorPrimitive.Fill className={cn('media-indicator-content', 'media-volume-indicator-fill')}>\n        <VolumeHighIconPrimitive className={'media-volume-indicator-high-icon'} />\n        <VolumeLowIconPrimitive className={'media-volume-indicator-low-icon'} />\n        <VolumeOffIconPrimitive className={'media-volume-indicator-off-icon'} />\n        <VolumeIndicatorPrimitive.Value className={'media-volume-indicator-value'} />\n      </VolumeIndicatorPrimitive.Fill>\n    </VolumeIndicatorPrimitive.Root>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/feedback/volume-indicator.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/layout/container.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { Container as ContainerPrimitive } from '@videojs/react';\n\nimport { cn } from '@/components/videojs/lib/resolve-class-name';\n\nexport type ContainerProps = ContainerPrimitive.Props;\n\nexport function Container({ children, className, ...props }: ContainerProps) {\n  return (\n    <ContainerPrimitive className={cn('media-skin', 'media-container', className)} {...props}>\n      {children}\n    </ContainerPrimitive>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/layout/container.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/layout/poster.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { Poster as PosterPrimitive } from '@videojs/react';\n\nimport { cn, resolveClassName } from '@/components/videojs/lib/resolve-class-name';\n\nexport interface PosterProps extends Omit<PosterPrimitive.Props, 'children' | 'render'> {\n  children?: PosterPrimitive.Props['render'];\n}\n\nexport function Poster({ children, className, src, ...props }: PosterProps = {}) {\n  return (\n    <PosterPrimitive\n      render={children}\n      className={(state) => cn('media-poster', resolveClassName(className, state))}\n      src={src}\n      {...props}\n    />\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/layout/poster.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/menus/audio-track-menu.tsx",
      "content": "/** @jsxImportSource react */\nimport { audioText } from '@videojs/core/i18n/text/menu';\nimport { Menu } from '@videojs/react';\nimport { Text as TextPrimitive } from '@videojs/react';\nimport { SpeechIcon as SpeechIconPrimitive } from '@videojs/react/icons/minimal';\nimport { AudioTrackRadioGroup } from '@videojs/react/ui/audio-track-radio-group';\n\nimport { MenuChevron } from './menu-chevron';\nimport { RadioItem } from './radio-item';\n\nexport type AudioTrackMenuProps = Omit<Menu.RootProps, 'children'>;\n\nexport function AudioTrackMenu({ ...props }: AudioTrackMenuProps = {}) {\n  return (\n    <Menu.Root {...props}>\n      <AudioTrackRadioGroup.Root>\n        <Menu.Trigger className={'media-menu-trigger-item'}>\n          <SpeechIconPrimitive className={'media-menu-trigger-item-icon'} />\n          <TextPrimitive token={audioText.key}>{audioText.text}</TextPrimitive>\n          <span className={'media-menu-hint'}>\n            <AudioTrackRadioGroup.Value className={'media-menu-hint-label'} />\n            <MenuChevron />\n          </span>\n        </Menu.Trigger>\n        <Menu.Content className={'media-menu-content'}>\n          <Menu.Item className={'media-menu-back-item'}>\n            <MenuChevron back />\n            <TextPrimitive token={audioText.key}>{audioText.text}</TextPrimitive>\n          </Menu.Item>\n          <Menu.Separator className={'media-menu-separator'} />\n          <AudioTrackRadioGroup.Options\n            className={'media-menu-radio-group'}\n            renderItem={(props, item) => (\n              <RadioItem {...props}>\n                <span>{item.label}</span>\n              </RadioItem>\n            )}\n          ></AudioTrackRadioGroup.Options>\n        </Menu.Content>\n      </AudioTrackRadioGroup.Root>\n    </Menu.Root>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/menus/audio-track-menu.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/menus/captions-submenu.tsx",
      "content": "/** @jsxImportSource react */\nimport { captionsText } from '@videojs/core/i18n/text/menu';\nimport { Menu } from '@videojs/react';\nimport { Text as TextPrimitive } from '@videojs/react';\nimport { CaptionsOffIcon as CaptionsOffIconPrimitive } from '@videojs/react/icons/minimal';\nimport { CaptionsRadioGroup } from '@videojs/react/ui/captions-radio-group';\n\nimport { MenuChevron } from './menu-chevron';\nimport { RadioItem } from './radio-item';\n\nexport type CaptionsSubmenuProps = Omit<Menu.RootProps, 'children'>;\n\nexport function CaptionsSubmenu({ ...props }: CaptionsSubmenuProps = {}) {\n  return (\n    <Menu.Root {...props}>\n      <CaptionsRadioGroup.Root>\n        <Menu.Trigger className={'media-menu-trigger-item'}>\n          <CaptionsOffIconPrimitive className={'media-menu-trigger-item-icon'} />\n          <TextPrimitive token={captionsText.key}>{captionsText.text}</TextPrimitive>\n          <span className={'media-menu-hint'}>\n            <CaptionsRadioGroup.Value className={'media-menu-hint-label'} />\n            <MenuChevron />\n          </span>\n        </Menu.Trigger>\n        <Menu.Content className={'media-menu-content'}>\n          <Menu.Item className={'media-menu-back-item'}>\n            <MenuChevron back />\n            <TextPrimitive token={captionsText.key}>{captionsText.text}</TextPrimitive>\n          </Menu.Item>\n          <Menu.Separator className={'media-menu-separator'} />\n          <CaptionsRadioGroup.Options\n            className={'media-menu-radio-group'}\n            renderItem={(props, item) => (\n              <RadioItem {...props}>\n                <span>{item.label}</span>\n              </RadioItem>\n            )}\n          ></CaptionsRadioGroup.Options>\n        </Menu.Content>\n      </CaptionsRadioGroup.Root>\n    </Menu.Root>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/menus/captions-submenu.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/menus/menu-chevron.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { ChevronIcon as ChevronIconPrimitive } from '@videojs/react/icons/minimal';\nimport type { ClassValue } from 'cn';\n\nimport { cn } from '@/components/videojs/lib/resolve-class-name';\n\nexport interface MenuChevronProps {\n  back?: boolean;\n  className?: ClassValue;\n}\n\nexport function MenuChevron({ back = false, className }: MenuChevronProps = {}) {\n  return (\n    <ChevronIconPrimitive className={cn(back ? 'media-menu-back-chevron' : 'media-menu-forward-chevron', className)} />\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/menus/menu-chevron.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/menus/playback-rate-submenu.tsx",
      "content": "/** @jsxImportSource react */\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/minimal';\nimport { PlaybackRateRadioGroup } from '@videojs/react/ui/playback-rate-radio-group';\n\nimport { MenuChevron } from './menu-chevron';\nimport { RadioItem } from './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 className={'media-menu-trigger-item'}>\n          <SpeedIconPrimitive className={'media-menu-trigger-item-icon'} />\n          <TextPrimitive token={speedText.key}>{speedText.text}</TextPrimitive>\n          <span className={'media-menu-hint'}>\n            <PlaybackRateRadioGroup.Value className={'media-menu-hint-label'} />\n            <MenuChevron />\n          </span>\n        </Menu.Trigger>\n        <Menu.Content className={'media-menu-content'}>\n          <Menu.Item className={'media-menu-back-item'}>\n            <MenuChevron back />\n            <TextPrimitive token={speedText.key}>{speedText.text}</TextPrimitive>\n          </Menu.Item>\n          <Menu.Separator className={'media-menu-separator'} />\n          <PlaybackRateRadioGroup.Options\n            className={'media-menu-radio-group'}\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/skins/video/minimal/ui/menus/playback-rate-submenu.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/menus/quality-menu.tsx",
      "content": "/** @jsxImportSource react */\nimport { qualityText } from '@videojs/core/i18n/text/menu';\nimport { Menu } from '@videojs/react';\nimport { Text as TextPrimitive } from '@videojs/react';\nimport { SwitchesIcon as SwitchesIconPrimitive } from '@videojs/react/icons/minimal';\nimport { QualityRadioGroup } from '@videojs/react/ui/quality-radio-group';\n\nimport { MenuChevron } from './menu-chevron';\nimport { RadioItem } from './radio-item';\n\nexport type QualityMenuProps = Omit<Menu.RootProps, 'children'>;\n\nexport function QualityMenu({ ...props }: QualityMenuProps = {}) {\n  return (\n    <Menu.Root {...props}>\n      <QualityRadioGroup.Root>\n        <Menu.Trigger className={'media-menu-trigger-item'}>\n          <SwitchesIconPrimitive className={'media-menu-trigger-item-icon'} />\n          <TextPrimitive token={qualityText.key}>{qualityText.text}</TextPrimitive>\n          <span className={'media-menu-hint'}>\n            <QualityRadioGroup.Value className={'media-menu-hint-label'} />\n            <MenuChevron />\n          </span>\n        </Menu.Trigger>\n        <Menu.Content className={'media-menu-content'}>\n          <Menu.Item className={'media-menu-back-item'}>\n            <MenuChevron back />\n            <TextPrimitive token={qualityText.key}>{qualityText.text}</TextPrimitive>\n          </Menu.Item>\n          <Menu.Separator className={'media-menu-separator'} />\n          <QualityRadioGroup.Options\n            className={'media-menu-radio-group'}\n            renderItem={(props, item) => (\n              <RadioItem {...props}>\n                <span>\n                  <span>{item.label}</span>\n                  {item.tier ? <sup className={'media-menu-tier'}>{item.tier}</sup> : null}\n                </span>\n                {item.badge ? <span className={'media-menu-badge'}>{item.badge}</span> : null}\n              </RadioItem>\n            )}\n          ></QualityRadioGroup.Options>\n        </Menu.Content>\n      </QualityRadioGroup.Root>\n    </Menu.Root>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/menus/quality-menu.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/menus/radio-item.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { Menu } from '@videojs/react';\nimport { CheckIcon as CheckIconPrimitive } from '@videojs/react/icons/minimal';\n\nimport { cn, resolveClassName } from '@/components/videojs/lib/resolve-class-name';\n\nexport type RadioItemProps = Menu.RadioItemProps;\n\nexport function RadioItem({ children, className, ...props }: RadioItemProps) {\n  return (\n    <Menu.RadioItem className={(state) => cn('media-menu-radio-item', resolveClassName(className, state))} {...props}>\n      {children}\n      <Menu.ItemIndicator forceMount className={'media-menu-item-indicator'}>\n        <CheckIconPrimitive className={'media-menu-radio-item-icon'} />\n      </Menu.ItemIndicator>\n    </Menu.RadioItem>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/menus/radio-item.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/menus/settings-menu.tsx",
      "content": "/** @jsxImportSource react */\n\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/minimal';\nimport type { ClassValue } from 'cn';\n\nimport { cn, resolveClassName } from '@/components/videojs/lib/resolve-class-name';\n\nimport { Button } from '../buttons/button';\nimport { ButtonTooltip } from '../buttons/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/skins/video/minimal/ui/menus/settings-menu.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/sliders/slider.tsx",
      "content": "import type { ComponentProps } from 'react';\n\nimport { cn } from '@/components/videojs/lib/resolve-class-name';\n\n/** Shared slider track. */\nexport type SliderTrackProps = ComponentProps<'div'>;\n\nexport function SliderTrack({ className, ...props }: SliderTrackProps) {\n  return <div className={cn('media-slider-track', className)} {...props} />;\n}\n\n/** Shared slider fill. */\nexport type SliderFillProps = ComponentProps<'div'>;\n\nexport function SliderFill({ className, ...props }: SliderFillProps) {\n  return <div className={cn('media-slider-fill', className)} {...props} />;\n}\n\n/** Shared slider buffer. */\nexport type SliderBufferProps = ComponentProps<'div'>;\n\nexport function SliderBuffer({ className, ...props }: SliderBufferProps) {\n  return <div className={cn('media-slider-buffer', className)} {...props} />;\n}\n\n/** Shared slider thumb. */\nexport type SliderThumbProps = ComponentProps<'div'>;\n\nexport function SliderThumb({ className, ...props }: SliderThumbProps) {\n  return <div className={cn('media-slider-thumb', className)} {...props} />;\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/sliders/slider.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/sliders/time-slider.tsx",
      "content": "/** @jsxImportSource react */\nimport type { SliderPreviewOverflow } from '@videojs/core';\nimport { TimeSlider as TimeSliderPrimitive } from '@videojs/react';\nimport { Slider } from '@videojs/react';\nimport { SpinnerIcon as SpinnerIconPrimitive } from '@videojs/react/icons/minimal';\n\nimport { cn, resolveClassName } from '@/components/videojs/lib/resolve-class-name';\n\nimport { SliderBuffer, SliderFill, SliderThumb, SliderTrack } from './slider';\n\nexport interface TimeSliderProps extends Omit<TimeSliderPrimitive.RootProps, 'children'> {\n  previewOverflow?: SliderPreviewOverflow | undefined;\n}\n\nexport function TimeSlider({ className, previewOverflow = 'visible', ...props }: TimeSliderProps = {}) {\n  return (\n    <TimeSliderPrimitive.Root\n      className={(state) => cn('media-slider', 'media-time-slider', resolveClassName(className, state))}\n      {...props}\n    >\n      <TimeSliderPrimitive.Chapters\n        className={'media-time-slider-chapters'}\n        renderChapter={(props) => (\n          <div className={'media-time-slider-chapter'} {...props}>\n            <TimeSliderPrimitive.Track render={<SliderTrack />} className={'media-time-slider-chapter-track'}>\n              <TimeSliderPrimitive.Buffer render={<SliderBuffer />} />\n              <TimeSliderPrimitive.Fill render={<SliderFill />} />\n            </TimeSliderPrimitive.Track>\n          </div>\n        )}\n      ></TimeSliderPrimitive.Chapters>\n      <TimeSliderPrimitive.Thumb render={<SliderThumb />} className={'media-time-slider-thumb'} />\n      <TimeSliderPrimitive.Preview className={'media-slider-preview'} overflow={previewOverflow}>\n        <div className={cn('media-slider-preview-content', 'media-popup-surface', 'media-slider-thumbnail')}>\n          <Slider.Thumbnail className={'media-slider-thumbnail-image'} />\n          <SpinnerIconPrimitive className={'media-slider-thumbnail-spinner-icon'} />\n        </div>\n        <div className={cn('media-slider-preview-content', 'media-time-slider-preview-content')}>\n          <TimeSliderPrimitive.ChapterTitle className={'media-time-slider-chapter-title'} />\n          <TimeSliderPrimitive.Value className={'media-time-slider-value'} type=\"pointer\" />\n        </div>\n      </TimeSliderPrimitive.Preview>\n    </TimeSliderPrimitive.Root>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/sliders/time-slider.tsx"
    },
    {
      "path": "skins/files/video-minimal/skins/video/minimal/ui/sliders/volume-slider.tsx",
      "content": "/** @jsxImportSource react */\n\nimport { VolumeSlider as VolumeSliderPrimitive } from '@videojs/react';\n\nimport { cn, resolveClassName } from '@/components/videojs/lib/resolve-class-name';\n\nimport { SliderFill, SliderThumb, SliderTrack } from './slider';\n\nexport type VolumeSliderProps = Omit<VolumeSliderPrimitive.RootProps, 'children'>;\n\nexport function VolumeSlider({ className, ...props }: VolumeSliderProps = {}) {\n  return (\n    <VolumeSliderPrimitive.Root\n      className={(state) => cn('media-slider', 'media-volume-slider', resolveClassName(className, state))}\n      thumbAlignment=\"edge\"\n      {...props}\n    >\n      <VolumeSliderPrimitive.Track render={<SliderTrack />}>\n        <VolumeSliderPrimitive.Fill render={<SliderFill />} />\n      </VolumeSliderPrimitive.Track>\n      <VolumeSliderPrimitive.Thumb render={<SliderThumb />} className={'media-volume-slider-thumb'} />\n    </VolumeSliderPrimitive.Root>\n  );\n}\n",
      "type": "registry:component",
      "target": "@components/videojs/skins/video/minimal/ui/sliders/volume-slider.tsx"
    },
    {
      "path": "skins/files/video-minimal/skin.css",
      "content": "@layer components {\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-buffering-indicator {\n      pointer-events: none;\n      inset: calc(var(--media-spacing) * 0);\n      color: var(--media-controls-foreground);\n      place-content: center;\n      display: none;\n      position: absolute;\n    }\n\n    .media-buffering-indicator:not([data-visible]) {\n      --media-spinner-animation: none;\n    }\n\n    .media-buffering-indicator:before {\n      inset: calc(var(--media-spacing) * 0);\n      background-color: var(--media-backdrop);\n      content: \"\";\n      backdrop-filter: var(--media-backdrop-filter-indicator);\n      position: absolute;\n    }\n\n    @supports (color: color-mix(in lab, red, red)) {\n      .media-buffering-indicator:before {\n        background-color: color-mix(in oklab, var(--media-backdrop) 35%, transparent);\n      }\n    }\n\n    .media-buffering-indicator[data-visible] {\n      display: grid;\n    }\n\n    .media-buffering-indicator-spinner-icon {\n      z-index: 30;\n      width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n      height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n      filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n      position: relative;\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-button {\n      width: var(--media-control-size);\n      height: var(--media-control-size);\n      min-height: calc(var(--media-spacing) * 0);\n      cursor: pointer;\n      touch-action: manipulation;\n      border-radius: var(--media-control-radius);\n      padding: calc(var(--media-spacing) * 0);\n      text-align: center;\n      color: inherit;\n      outline-offset: -2px;\n      transition-property: background-color, color, outline-offset, scale;\n      transition-duration: var(--media-duration);\n      will-change: scale;\n      -webkit-user-select: none;\n      user-select: none;\n      corner-shape: var(--media-control-corner-shape);\n      text-shadow: inherit;\n      background-color: #0000;\n      border-style: solid;\n      border-width: 0;\n      outline: 2px solid #0000;\n      flex-shrink: 0;\n      place-items: center;\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n      display: grid;\n    }\n\n    .media-button:focus-visible {\n      outline-offset: 2px;\n      outline-color: var(--media-ring);\n    }\n\n    .media-button:not([aria-disabled=\"true\"]):active {\n      scale: 0.97;\n    }\n\n    .media-button[aria-disabled=\"true\"] {\n      cursor: not-allowed;\n      opacity: 0.5;\n    }\n\n    @supports (corner-shape: squircle) {\n      .media-button {\n        border-radius: 1rem;\n      }\n    }\n\n    @media (prefers-reduced-motion: reduce) {\n      .media-button {\n        will-change: auto;\n        transition-property: background-color, color;\n        scale: 1;\n      }\n    }\n\n    .media-button:where(:focus-visible, [aria-expanded=\"true\"], [data-highlighted]):where(\n        :not([aria-disabled=\"true\"])\n      ) {\n      background-color: var(--media-accent);\n      color: var(--media-accent-foreground);\n    }\n\n    @media (hover: hover) {\n      .media-button:hover:where(:not([aria-disabled=\"true\"])) {\n        background-color: var(--media-accent);\n        color: var(--media-accent-foreground);\n      }\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-dialog-actions {\n      gap: calc(var(--media-spacing) * 2);\n      flex-shrink: 0;\n      display: flex;\n    }\n\n    .media-dialog-backdrop {\n      inset: calc(var(--media-spacing) * 0);\n      z-index: 40;\n      background-color: var(--media-backdrop);\n      opacity: 1;\n      backdrop-filter: var(--media-backdrop-filter-dialog);\n      transition-property: opacity;\n      transition-duration: 0.15s;\n      transition-delay: var(--media-delay-dialog);\n      transition-duration: var(--media-duration-dialog);\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n      position: absolute;\n    }\n\n    @supports (color: color-mix(in lab, red, red)) {\n      .media-dialog-backdrop {\n        background-color: color-mix(in oklab, var(--media-backdrop) 20%, transparent);\n      }\n    }\n\n    .media-dialog-backdrop:not([data-open]) {\n      display: none;\n    }\n\n    .media-dialog-backdrop[data-ending-style] {\n      transition-delay: 0s;\n      transition-duration: var(--media-duration-instant);\n    }\n\n    .media-dialog-backdrop:is([data-starting-style], [data-ending-style]) {\n      opacity: 0;\n    }\n\n    .media-dialog-close {\n      height: var(--media-control-size);\n      width: 100%;\n      padding-inline: calc(var(--media-spacing) * 4);\n      padding-block: calc(var(--media-spacing) * 2);\n      flex: 1;\n      font-weight: 500;\n      background-color: var(--media-primary) !important;\n      color: var(--media-primary-foreground) !important;\n    }\n\n    .media-dialog-content {\n      min-height: calc(var(--media-spacing) * 0);\n      gap: calc(var(--media-spacing) * 2);\n      padding-block: calc(var(--media-spacing) * 1.5);\n      flex-direction: column;\n      display: flex;\n      overflow-y: auto;\n    }\n\n    .media-dialog-description {\n      margin: calc(var(--media-spacing) * 0);\n      overflow-wrap: anywhere;\n      opacity: 0.7;\n    }\n\n    .media-dialog-popup {\n      z-index: 50;\n      max-height: calc(100% - 0.5rem);\n      width: var(--media-dialog-width);\n      max-width: var(--media-dialog-max-width);\n      gap: calc(var(--media-spacing) * 3);\n      border-radius: var(--media-dialog-radius);\n      padding: calc(var(--media-spacing) * 4);\n      color: var(--media-popover-foreground);\n      transition-property: opacity, scale;\n      transition-duration: 0.15s;\n      transition-delay: var(--media-delay-dialog);\n      transition-duration: var(--media-duration-dialog);\n      text-shadow: var(--media-text-shadow-dialog);\n      outline-style: none;\n      flex-direction: column;\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n      display: flex;\n      position: absolute;\n      top: 50%;\n      left: 50%;\n      translate: -50% -50%;\n    }\n\n    @media (forced-colors: active) {\n      .media-dialog-popup {\n        outline-offset: 2px;\n        outline: 2px solid #0000;\n      }\n    }\n\n    .media-dialog-popup:not([data-open]) {\n      display: none;\n    }\n\n    .media-dialog-popup[data-ending-style] {\n      transition-delay: 0s;\n      transition-duration: var(--media-duration-instant);\n    }\n\n    .media-dialog-popup:is([data-starting-style], [data-ending-style]) {\n      scale: var(--media-hidden-popup-scale) var(--media-hidden-popup-scale);\n      opacity: 0;\n    }\n\n    .media-dialog-title {\n      margin: calc(var(--media-spacing) * 0);\n      font-size: calc(var(--media-spacing) * 3.75);\n      font-weight: 600;\n      line-height: 1.25;\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-container,\n    :scope.media-container {\n      isolation: isolate;\n      border-radius: var(--media-video-border-radius);\n      background-color: var(--media-background);\n      width: 100%;\n      height: 100%;\n      font-family: var(--media-font-family, \"Inter Variable\", Inter, ui-sans-serif, system-ui, sans-serif);\n      font-size: calc(var(--media-spacing) * 3.25);\n      -webkit-font-smoothing: auto;\n      -moz-osx-font-smoothing: auto;\n      outline-offset: -4px;\n      transition-property: outline-offset, outline-color;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration-fast);\n      --spacing: var(--media-spacing);\n      outline: 2px solid #0000;\n      line-height: 1.5;\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n      display: block;\n      position: relative;\n      overflow: clip;\n      container: media-root / size;\n    }\n\n    .media-container:after,\n    :scope.media-container:after {\n      pointer-events: none;\n      inset: calc(var(--media-spacing) * 0);\n      z-index: 10;\n      border-radius: inherit;\n      content: \"\";\n      box-shadow:\n        0 0 #0000,\n        0 0 #0000,\n        0 0 #0000,\n        0 0 #0000,\n        inset 0 0 0 1px var(--media-frame-border);\n      position: absolute;\n    }\n\n    .media-container:focus-visible,\n    :scope.media-container:focus-visible {\n      outline-offset: 2px;\n      outline-color: var(--media-ring);\n    }\n\n    .media-container:fullscreen:after,\n    :scope.media-container:fullscreen:after {\n      content: \"\";\n      display: none;\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-poster {\n      pointer-events: none;\n      border-radius: inherit;\n      object-fit: var(--media-object-fit, contain);\n      object-position: var(--media-object-position, center);\n      width: 100%;\n      height: 100%;\n      transition-property: opacity;\n      transition-duration: 0.15s;\n      transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n      transition-duration: var(--media-duration-slower);\n      position: absolute;\n      inset: 0;\n    }\n\n    .media-poster:not([data-visible]) {\n      opacity: 0;\n    }\n\n    .media-poster img {\n      border-radius: inherit;\n      object-fit: var(--media-object-fit, contain);\n      object-position: var(--media-object-position, center);\n      width: 100%;\n      height: 100%;\n      position: absolute;\n      inset: 0;\n    }\n\n    .media-poster:is(img):not([src]):not([srcset]) {\n      visibility: hidden;\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-seek-indicator {\n      place-content: center;\n      gap: calc(var(--media-spacing) * 1);\n      padding: calc(var(--media-spacing) * 4);\n      text-align: center;\n      grid-row-start: 1;\n      grid-column-start: 2;\n      display: grid;\n    }\n\n    .media-seek-indicator[data-direction=\"backward\"] {\n      grid-column-start: 1;\n      justify-self: flex-start;\n    }\n\n    .media-seek-indicator[data-direction=\"forward\"] {\n      grid-column-start: 3;\n      justify-self: flex-end;\n    }\n\n    @container media-root (width >= 42rem) {\n      .media-seek-indicator {\n        padding: calc(var(--media-spacing) * 6);\n      }\n    }\n\n    .media-seek-indicator-icon {\n      width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);\n      height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5);\n      transition-property: translate, opacity;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration-slow);\n      transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n      display: none;\n    }\n\n    @scope (.media-seek-indicator) {\n      &[data-direction] .media-seek-indicator-icon {\n        display: block;\n      }\n    }\n\n    @scope (.media-seek-indicator) {\n      &[data-direction=\"backward\"] .media-seek-indicator-icon {\n        scale: -1 1;\n      }\n    }\n\n    @scope (.media-seek-indicator) {\n      &[data-direction=\"backward\"][data-starting-style] .media-seek-indicator-icon {\n        translate: var(--media-hidden-seek-offset) 0;\n      }\n    }\n\n    @scope (.media-seek-indicator) {\n      &[data-direction=\"forward\"][data-starting-style] .media-seek-indicator-icon {\n        translate: calc(var(--media-hidden-seek-offset) * -1) 0;\n      }\n    }\n\n    @scope (.media-seek-indicator) {\n      &:is([data-starting-style], [data-ending-style]) .media-seek-indicator-icon {\n        opacity: 0;\n      }\n    }\n\n    .media-seek-indicator-value {\n      font-variant-numeric: tabular-nums;\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-status-announcer {\n      clip-path: inset(50%);\n      white-space: nowrap;\n      border-width: 0;\n      width: 1px;\n      height: 1px;\n      margin: -1px;\n      padding: 0;\n      position: absolute;\n      overflow: hidden;\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-indicator {\n      pointer-events: none;\n      inset-inline: calc(var(--media-spacing) * 0);\n      top: calc(var(--media-spacing) * 0);\n      transform-origin: top;\n      background-image: var(--media-indicator-gradient);\n      padding-top: calc(var(--media-spacing) * 3);\n      padding-bottom: calc(var(--media-spacing) * 32);\n      color: inherit;\n      transition-duration: var(--media-duration-fast);\n      text-shadow: 0 1px 0 var(--media-shadow-current-color);\n      justify-content: center;\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n      display: flex;\n      position: absolute;\n    }\n\n    .media-indicator[data-ending-style] {\n      translate: 0 var(--media-hidden-indicator-offset);\n    }\n\n    @media (pointer: coarse) {\n      .media-indicator {\n        will-change: translate, opacity;\n        transition-property: translate, opacity;\n      }\n    }\n\n    @media (pointer: fine) {\n      .media-indicator {\n        will-change: translate, filter, opacity;\n        transition-property: translate, filter, opacity;\n      }\n    }\n\n    .media-indicator:is([data-starting-style], [data-ending-style]) {\n      opacity: 0;\n      transition-duration: var(--media-duration-indicator);\n      transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\n    }\n\n    @media (pointer: fine) {\n      .media-indicator:is([data-starting-style], [data-ending-style]) {\n        filter: blur(var(--media-hidden-blur));\n      }\n    }\n\n    .media-indicator-content {\n      justify-content: space-between;\n      align-items: center;\n      gap: calc(var(--media-spacing) * 2);\n      padding-inline: calc(var(--media-spacing) * 2.5);\n      padding-block: calc(var(--media-spacing) * 1);\n    }\n\n    @media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {\n      .media-indicator-content {\n        border-radius: var(--media-control-radius);\n        background-color: var(--media-background);\n      }\n    }\n\n    .media-playback-status-indicator {\n      padding: calc(var(--media-spacing) * 4);\n      text-align: center;\n      transition-property: opacity, scale;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration-slow);\n      grid-row-start: 1;\n      grid-column-start: 2;\n      place-content: center;\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n      display: grid;\n    }\n\n    .media-playback-status-indicator[data-ending-style] {\n      transition-duration: var(--media-duration-fast);\n      transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\n    }\n\n    .media-playback-status-indicator:is([data-starting-style], [data-ending-style]) {\n      scale: var(--media-hidden-playback-scale) var(--media-hidden-playback-scale);\n      opacity: 0;\n    }\n\n    .media-playback-status-indicator-pause-icon {\n      width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 2);\n      height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 2);\n      scale: var(--media-hidden-icon-scale) var(--media-hidden-icon-scale);\n      opacity: 0;\n      transition-property: opacity, scale;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration);\n      grid-row-start: 1;\n      grid-column-start: 1;\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n    }\n\n    @scope (.media-playback-status-indicator) {\n      &[data-status=\"pause\"] .media-playback-status-indicator-pause-icon {\n        opacity: 1;\n        scale: 1;\n      }\n    }\n\n    .media-playback-status-indicator-play-icon {\n      width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 2);\n      height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 2);\n      scale: var(--media-hidden-icon-scale) var(--media-hidden-icon-scale);\n      opacity: 0;\n      transition-property: opacity, scale;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration);\n      grid-row-start: 1;\n      grid-column-start: 1;\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n    }\n\n    @scope (.media-playback-status-indicator) {\n      &[data-status=\"play\"] .media-playback-status-indicator-play-icon {\n        opacity: 1;\n        scale: 1;\n      }\n    }\n\n    .media-status-indicator-captions-off-icon {\n      filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n      flex-shrink: 0;\n      display: none;\n    }\n\n    @scope (.media-status-indicator) {\n      &[data-status=\"captions-off\"] .media-status-indicator-captions-off-icon {\n        display: block;\n      }\n    }\n\n    .media-status-indicator-captions-on-icon {\n      filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n      flex-shrink: 0;\n      display: none;\n    }\n\n    @scope (.media-status-indicator) {\n      &[data-status=\"captions-on\"] .media-status-indicator-captions-on-icon {\n        display: block;\n      }\n    }\n\n    .media-status-indicator-content {\n      display: flex;\n    }\n\n    .media-status-indicator-fullscreen-enter-icon {\n      filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n      flex-shrink: 0;\n      display: none;\n    }\n\n    @scope (.media-status-indicator) {\n      &[data-status=\"fullscreen\"] .media-status-indicator-fullscreen-enter-icon {\n        display: block;\n      }\n    }\n\n    .media-status-indicator-fullscreen-exit-icon {\n      filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n      flex-shrink: 0;\n      display: none;\n    }\n\n    @scope (.media-status-indicator) {\n      &[data-status=\"exit-fullscreen\"] .media-status-indicator-fullscreen-exit-icon {\n        display: block;\n      }\n    }\n\n    .media-status-indicator-pip-enter-icon {\n      filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n      flex-shrink: 0;\n      display: none;\n    }\n\n    @scope (.media-status-indicator) {\n      &[data-status=\"pip\"] .media-status-indicator-pip-enter-icon {\n        display: block;\n      }\n    }\n\n    .media-status-indicator-pip-exit-icon {\n      filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n      flex-shrink: 0;\n      display: none;\n    }\n\n    @scope (.media-status-indicator) {\n      &[data-status=\"exit-pip\"] .media-status-indicator-pip-exit-icon {\n        display: block;\n      }\n    }\n\n    .media-status-indicator-value {\n      margin-left: auto;\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    @media (pointer: coarse) {\n    }\n\n    @media (pointer: fine) {\n    }\n\n    @media (pointer: fine) {\n    }\n\n    @media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {\n    }\n\n    .media-volume-indicator-fill {\n      border-radius: inherit;\n      grid-template-columns: auto minmax(0, 1fr) auto;\n      width: min(80%, 14rem);\n      display: grid;\n      transform: translateX(0);\n    }\n\n    .media-volume-indicator-fill:before {\n      height: calc(var(--media-spacing) * 0.75);\n      content: \"\";\n      width: 100%;\n      box-shadow:\n        0 0 #0000,\n        0 0 #0000,\n        0 0 #0000,\n        0 0 #0000,\n        0 1px 0 var(--media-shadow-subtle-current-color);\n      background-color: currentColor;\n      border-radius: 9999px;\n      grid-row-start: 1;\n      grid-column-start: 2;\n    }\n\n    @supports (color: color-mix(in lab, red, red)) {\n      .media-volume-indicator-fill:before {\n        background-color: color-mix(in oklab, currentcolor 20%, transparent);\n      }\n    }\n\n    .media-volume-indicator-fill:after {\n      height: calc(var(--media-spacing) * 0.75);\n      width: var(--media-volume-fill, 0%);\n      background-color: var(--media-primary);\n      transition-property: width;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration-slow);\n      content: \"\";\n      border-radius: 9999px;\n      grid-row-start: 1;\n      grid-column-start: 2;\n      justify-self: flex-start;\n      transition-timing-function: linear;\n    }\n\n    @media (prefers-reduced-motion: no-preference) {\n      @scope (.media-volume-indicator) {\n        &:is([data-min], [data-max]):not([data-starting-style], [data-ending-style]) .media-volume-indicator-fill {\n          transition: transform 0.3s linear(0, -24 20%, 16 40%, -8 60%, 4 80%, 1);\n          transform: translateX(0.25px);\n        }\n      }\n    }\n\n    .media-volume-indicator-high-icon {\n      filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n      flex-shrink: 0;\n      grid-row-start: 1;\n      grid-column-start: 1;\n      display: none;\n    }\n\n    @scope (.media-volume-indicator) {\n      &[data-level=\"high\"] .media-volume-indicator-high-icon {\n        display: block;\n      }\n    }\n\n    .media-volume-indicator-low-icon {\n      filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n      flex-shrink: 0;\n      grid-row-start: 1;\n      grid-column-start: 1;\n      display: none;\n    }\n\n    @scope (.media-volume-indicator) {\n      &[data-level=\"low\"] .media-volume-indicator-low-icon {\n        display: block;\n      }\n    }\n\n    .media-volume-indicator-off-icon {\n      filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n      flex-shrink: 0;\n      grid-row-start: 1;\n      grid-column-start: 1;\n      display: none;\n    }\n\n    @scope (.media-volume-indicator) {\n      &[data-level=\"off\"] .media-volume-indicator-off-icon {\n        display: block;\n      }\n    }\n\n    .media-volume-indicator-value {\n      grid-row-start: 1;\n      grid-column-start: 3;\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .video-status-indicators {\n      pointer-events: none;\n      inset: calc(var(--media-spacing) * 0);\n      color: var(--media-controls-foreground);\n      grid-template-columns: repeat(3, minmax(0, 1fr));\n      place-items: center;\n      display: grid;\n      position: absolute;\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-airplay-button:not([data-airplay-state=\"connected\"]) {\n      --media-icon-airplay-fill-animation: none;\n      --media-icon-airplay-triangle-animation: none;\n    }\n\n    .media-airplay-button-enter-icon {\n      opacity: 0;\n    }\n\n    @scope (.media-airplay-button) {\n      &:not([data-airplay-state=\"connected\"]) .media-airplay-button-enter-icon {\n        opacity: 1;\n        scale: 1;\n      }\n    }\n\n    .media-airplay-button-exit-icon {\n      opacity: 0;\n    }\n\n    @scope (.media-airplay-button) {\n      &[data-airplay-state=\"connected\"] .media-airplay-button-exit-icon {\n        opacity: 1;\n        scale: 1;\n      }\n    }\n\n    .media-button-icon {\n      width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n      height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n      filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n      transition-property: opacity, scale;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration);\n      grid-row-start: 1;\n      grid-column-start: 1;\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-popup {\n      margin: calc(var(--media-spacing) * 0);\n      color: inherit;\n      border-style: solid;\n      border-width: 0;\n      overflow: visible;\n    }\n\n    .media-popup[data-ending-style] {\n      transform: none;\n    }\n\n    .media-popup[data-starting-style] {\n      transform: translate(var(--media-popup-translate-x-distance, 0), var(--media-popup-translate-y-distance, 0));\n      filter: none;\n    }\n\n    .media-popup[data-side=\"bottom\"] {\n      transform-origin: top;\n      --media-popup-translate-y-distance: calc(var(--media-popup-translate-distance) * -1);\n    }\n\n    .media-popup[data-side=\"left\"] {\n      transform-origin: 100%;\n      --media-popup-translate-x-distance: var(--media-popup-translate-distance);\n    }\n\n    .media-popup[data-side=\"right\"] {\n      transform-origin: 0;\n      --media-popup-translate-x-distance: calc(var(--media-popup-translate-distance) * -1);\n    }\n\n    .media-popup[data-side=\"top\"] {\n      transform-origin: bottom;\n      --media-popup-translate-y-distance: var(--media-popup-translate-distance);\n    }\n\n    .media-popup:is([data-starting-style], [data-ending-style]) {\n      scale: var(--media-hidden-popup-scale) var(--media-hidden-popup-scale);\n      opacity: 0;\n      filter: blur(var(--media-hidden-popup-blur));\n    }\n\n    .media-popup-safe-area:before {\n      pointer-events: auto;\n      content: \"\";\n      position: absolute;\n    }\n\n    .media-popup-safe-area[data-side=\"bottom\"]:before {\n      inset-inline: calc(var(--media-spacing) * 0);\n      content: \"\";\n      height: var(--media-popup-side-offset);\n      bottom: 100%;\n    }\n\n    .media-popup-safe-area[data-side=\"left\"]:before {\n      inset-block: calc(var(--media-spacing) * 0);\n      content: \"\";\n      width: var(--media-popup-side-offset);\n      left: 100%;\n    }\n\n    .media-popup-safe-area[data-side=\"right\"]:before {\n      inset-block: calc(var(--media-spacing) * 0);\n      content: \"\";\n      width: var(--media-popup-side-offset);\n      right: 100%;\n    }\n\n    .media-popup-safe-area[data-side=\"top\"]:before {\n      inset-inline: calc(var(--media-spacing) * 0);\n      content: \"\";\n      height: var(--media-popup-side-offset);\n      top: 100%;\n    }\n\n    .media-popup-surface {\n      background-color: var(--media-popover);\n      color: var(--media-popover-foreground);\n      box-shadow:\n        0 0 0 1px var(--media-surface-border, var(--media-border)),\n        var(--media-shadow-surface);\n      backdrop-filter: var(--media-backdrop-filter-surface);\n    }\n\n    .media-popup-surface:after {\n      z-index: 10;\n      pointer-events: none;\n      border-radius: inherit;\n      box-shadow: var(--media-shadow-surface-inset);\n      content: \"\";\n      display: none;\n      position: absolute;\n      inset: 0;\n    }\n\n    .media-popup-transition {\n      transition-property: opacity, filter, transform, scale;\n      transition-duration: var(--media-duration-fast);\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n    }\n\n    .media-popup-transition[data-ending-style] {\n      transition-duration: var(--media-duration-instant);\n    }\n\n    .media-tooltip {\n      border-radius: var(--media-control-radius);\n      padding-inline: calc(var(--media-spacing) * 2);\n      padding-block: calc(var(--media-spacing) * 1);\n      font-size: calc(var(--media-spacing) * 3.25);\n      white-space: nowrap;\n      --media-popup-side-offset: var(--media-tooltip-side-offset);\n      box-shadow:\n        0 0 #0000,\n        0 0 #0000,\n        0 0 #0000,\n        0 0 #0000,\n        var(--media-shadow-tooltip) !important;\n    }\n\n    .media-tooltip[data-open] {\n      align-items: center;\n      gap: calc(var(--media-spacing) * 1);\n      display: flex;\n    }\n\n    .media-tooltip-shortcut {\n      border-radius: calc(var(--media-spacing) * 1);\n      background-color: var(--media-muted);\n      text-align: center;\n      min-width: 1.5em;\n      font-family: inherit;\n      font-size: calc(var(--media-spacing) * 2.75);\n      margin-inline-end: calc(var(--media-spacing) * -1);\n      padding: 0.1em;\n      font-weight: 600;\n      line-height: 1.25;\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-captions-button-off-icon {\n      opacity: 0;\n    }\n\n    @scope (.media-captions-button) {\n      &:not([data-active]) .media-captions-button-off-icon {\n        opacity: 1;\n        scale: 1;\n      }\n    }\n\n    .media-captions-button-on-icon {\n      opacity: 0;\n    }\n\n    @scope (.media-captions-button) {\n      &[data-active] .media-captions-button-on-icon {\n        opacity: 1;\n        scale: 1;\n      }\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-cast-button-enter-icon {\n      opacity: 0;\n    }\n\n    @scope (.media-cast-button) {\n      &:not([data-cast-state=\"connected\"]) .media-cast-button-enter-icon {\n        opacity: 1;\n        scale: 1;\n      }\n    }\n\n    .media-cast-button-exit-icon {\n      opacity: 0;\n    }\n\n    @scope (.media-cast-button) {\n      &[data-cast-state=\"connected\"] .media-cast-button-exit-icon {\n        opacity: 1;\n        scale: 1;\n      }\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-fullscreen-button-enter-icon {\n      opacity: 0;\n    }\n\n    @scope (.media-fullscreen-button) {\n      &:not([data-fullscreen]) .media-fullscreen-button-enter-icon {\n        opacity: 1;\n        scale: 1;\n      }\n    }\n\n    .media-fullscreen-button-exit-icon {\n      opacity: 0;\n    }\n\n    @scope (.media-fullscreen-button) {\n      &[data-fullscreen] .media-fullscreen-button-exit-icon {\n        opacity: 1;\n        scale: 1;\n      }\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-pip-button-enter-icon {\n      opacity: 0;\n    }\n\n    @scope (.media-pip-button) {\n      &:not([data-pip]) .media-pip-button-enter-icon {\n        opacity: 1;\n        scale: 1;\n      }\n    }\n\n    .media-pip-button-exit-icon {\n      opacity: 0;\n    }\n\n    @scope (.media-pip-button) {\n      &[data-pip] .media-pip-button-exit-icon {\n        opacity: 1;\n        scale: 1;\n      }\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-play-button-pause-icon {\n      scale: var(--media-hidden-icon-scale) var(--media-hidden-icon-scale);\n      opacity: 0;\n    }\n\n    @scope (.media-play-button) {\n      &[data-started]:not([data-paused]):not([data-ended]) .media-play-button-pause-icon {\n        opacity: 1;\n        scale: 1;\n      }\n    }\n\n    .media-play-button-play-icon {\n      scale: var(--media-hidden-icon-scale) var(--media-hidden-icon-scale);\n      opacity: 0;\n    }\n\n    @scope (.media-play-button) {\n      &:not([data-ended]):not([data-started]) .media-play-button-play-icon,\n      &:not([data-ended])[data-paused] .media-play-button-play-icon {\n        opacity: 1;\n        scale: 1;\n      }\n    }\n\n    .media-play-button-restart-icon {\n      scale: var(--media-hidden-icon-scale) var(--media-hidden-icon-scale);\n      opacity: 0;\n    }\n\n    @scope (.media-play-button) {\n      &[data-ended] .media-play-button-restart-icon {\n        opacity: 1;\n        scale: 1;\n      }\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-mute-button-high-icon {\n      opacity: 0;\n    }\n\n    @scope (.media-mute-button) {\n      &:not([data-muted]):not([data-volume-level=\"low\"]) .media-mute-button-high-icon {\n        opacity: 1;\n        scale: 1;\n      }\n    }\n\n    .media-mute-button-low-icon {\n      opacity: 0;\n    }\n\n    @scope (.media-mute-button) {\n      &:not([data-muted])[data-volume-level=\"low\"] .media-mute-button-low-icon {\n        opacity: 1;\n        scale: 1;\n      }\n    }\n\n    .media-mute-button-off-icon {\n      opacity: 0;\n    }\n\n    @scope (.media-mute-button) {\n      &[data-muted] .media-mute-button-off-icon {\n        opacity: 1;\n        scale: 1;\n      }\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-slider-buffer {\n      pointer-events: none;\n      border-radius: inherit;\n      transition-property: clip-path;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration-slider);\n      background-color: currentColor;\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n      position: absolute;\n    }\n\n    @supports (color: color-mix(in lab, red, red)) {\n      .media-slider-buffer {\n        background-color: color-mix(in oklab, currentcolor 20%, transparent);\n      }\n    }\n\n    @scope (.media-slider) {\n      &[data-dragging] .media-slider-buffer,\n      &[data-seeking] .media-slider-buffer {\n        transition-duration: 0s;\n      }\n    }\n\n    .media-slider-buffer[data-orientation=\"horizontal\"] {\n      inset-block: calc(var(--media-spacing) * 0);\n      left: calc(var(--media-spacing) * 0);\n      width: 100%;\n      clip-path: inset(0 calc(100% - var(--media-slider-buffer)) 0 0 round var(--media-control-radius));\n    }\n\n    .media-slider-buffer[data-orientation=\"vertical\"] {\n      inset-inline: calc(var(--media-spacing) * 0);\n      bottom: calc(var(--media-spacing) * 0);\n      height: 100%;\n      clip-path: inset(calc(100% - var(--media-slider-buffer)) 0 0 0 round var(--media-control-radius));\n    }\n\n    .media-slider-fill {\n      pointer-events: none;\n      border-radius: inherit;\n      background-color: var(--media-primary);\n      transition-property: clip-path;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration-slider);\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n      position: absolute;\n    }\n\n    @scope (.media-slider) {\n      &[data-dragging] .media-slider-fill,\n      &[data-seeking] .media-slider-fill {\n        transition-duration: 0s;\n      }\n    }\n\n    .media-slider-fill[data-orientation=\"horizontal\"] {\n      inset-block: calc(var(--media-spacing) * 0);\n      left: calc(var(--media-spacing) * 0);\n      width: 100%;\n      clip-path: inset(0 calc(100% - var(--media-slider-fill)) 0 0 round var(--media-control-radius));\n    }\n\n    @scope (.media-slider) {\n      &[data-dragging] .media-slider-fill[data-orientation=\"horizontal\"] {\n        clip-path: inset(0 calc(100% - var(--media-slider-pointer)) 0 0 round var(--media-control-radius));\n      }\n    }\n\n    .media-slider-fill[data-orientation=\"vertical\"] {\n      inset-inline: calc(var(--media-spacing) * 0);\n      bottom: calc(var(--media-spacing) * 0);\n      height: 100%;\n      clip-path: inset(calc(100% - var(--media-slider-fill)) 0 0 0 round var(--media-control-radius));\n    }\n\n    @scope (.media-slider) {\n      &[data-dragging] .media-slider-fill[data-orientation=\"vertical\"] {\n        clip-path: inset(calc(100% - var(--media-slider-pointer)) 0 0 0 round var(--media-control-radius));\n      }\n    }\n\n    .media-slider-thumb {\n      top: 50%;\n      left: var(--media-slider-fill);\n      z-index: 10;\n      width: calc(var(--media-spacing) * 3);\n      height: calc(var(--media-spacing) * 3);\n      border-radius: var(--media-control-radius);\n      box-shadow:\n        0 0 #0000,\n        0 0 #0000,\n        0 0 #0000,\n        0 0 #0000,\n        var(--media-shadow-thumb);\n      outline-offset: -2px;\n      transition-property: opacity, height, width, outline-offset, left, top, scale;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration-slider);\n      -webkit-user-select: none;\n      user-select: none;\n      background-color: currentColor;\n      outline: 2px solid #0000;\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n      position: absolute;\n      translate: -50% -50%;\n    }\n\n    @scope (.media-slider) {\n      &[data-dragging] .media-slider-thumb {\n        transition-property: opacity, height, width, outline-offset, scale;\n        transition-duration: 0.15s;\n        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n        scale: 0.9;\n      }\n    }\n\n    .media-slider-thumb:focus-visible {\n      outline-offset: 2px;\n      outline-color: var(--media-ring);\n    }\n\n    @scope (.media-slider) {\n      &[data-dragging] .media-slider-thumb[data-orientation=\"horizontal\"] {\n        left: var(--media-slider-pointer);\n      }\n    }\n\n    .media-slider-thumb[data-orientation=\"vertical\"] {\n      top: calc(100% - var(--media-slider-fill));\n      left: 50%;\n    }\n\n    @scope (.media-slider) {\n      &[data-dragging] .media-slider-thumb[data-orientation=\"vertical\"] {\n        top: calc(100% - var(--media-slider-pointer));\n      }\n    }\n\n    .media-slider-track {\n      isolation: isolate;\n      -webkit-user-select: none;\n      user-select: none;\n      background-color: currentColor;\n      border-radius: 9999px;\n      width: 100%;\n      position: relative;\n      overflow: hidden;\n    }\n\n    @supports (color: color-mix(in lab, red, red)) {\n      .media-slider-track {\n        background-color: color-mix(in oklab, currentcolor 20%, transparent);\n      }\n    }\n\n    .media-slider-track[data-orientation=\"horizontal\"] {\n      height: calc(var(--media-spacing) * 1);\n    }\n\n    .media-slider-track[data-orientation=\"vertical\"] {\n      height: 100%;\n      width: calc(var(--media-spacing) * 1);\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-slider {\n      cursor: pointer;\n      border-radius: 9999px;\n      outline-style: none;\n      flex: 1;\n      justify-content: center;\n      align-items: center;\n      display: flex;\n      position: relative;\n    }\n\n    @media (forced-colors: active) {\n      .media-slider {\n        outline-offset: 2px;\n        outline: 2px solid #0000;\n      }\n    }\n\n    .media-slider[data-orientation=\"horizontal\"] {\n      height: var(--media-slider-height, calc(var(--media-spacing) * 8));\n      min-width: calc(var(--media-spacing) * 20);\n    }\n\n    .media-slider[data-orientation=\"vertical\"] {\n      height: calc(var(--media-spacing) * 20);\n      width: calc(var(--media-spacing) * 8);\n      min-width: calc(var(--media-spacing) * 0);\n    }\n\n    .media-volume-slider-thumb {\n      opacity: 1;\n      scale: 1;\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-volume-popover {\n      border-radius: var(--media-control-radius);\n      padding-inline: calc(var(--media-spacing) * 0);\n      padding-block: calc(var(--media-spacing) * 3);\n      --media-popup-side-offset: var(--media-popover-side-offset);\n    }\n\n    .media-volume-popover[data-side=\"left\"] {\n      background-image: linear-gradient(to left, var(--media-controls) 80%, transparent 100%);\n      padding-block: calc(var(--media-spacing) * 0);\n      --media-popover-side-offset: 0rem;\n      border-style: solid;\n      border-width: 0;\n      border-radius: 0;\n      padding-inline-start: calc(var(--media-spacing) * 16);\n      padding-inline-end: calc(var(--media-spacing) * 2);\n      box-shadow: none !important;\n      backdrop-filter: none !important;\n      background-color: #0000 !important;\n    }\n\n    .media-volume-popover[data-side=\"left\"]:after {\n      content: \"\";\n      display: none;\n    }\n\n    .media-volume-popover[data-side=\"right\"] {\n      padding: calc(var(--media-spacing) * 0);\n      padding-inline: calc(var(--media-spacing) * 3);\n      --media-popover-side-offset: 0rem;\n      border-radius: 0;\n      box-shadow: none !important;\n      backdrop-filter: none !important;\n      background-color: #0000 !important;\n    }\n\n    .media-volume-popover[data-side=\"right\"]:after {\n      content: \"\";\n      display: none;\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    @media (forced-colors: active) {\n    }\n\n    .media-slider-preview {\n      height: calc(var(--media-spacing) * 1);\n      --media-preview-end-inset: calc(100cqi - 100%);\n      --media-preview-left: clamp(\n        calc(var(--media-slider-preview-max-width) / 2),\n        var(--media-slider-pointer),\n        calc(100% - var(--media-slider-preview-max-width) / 2 + var(--media-preview-end-inset))\n      );\n      --media-slider-preview-max-height: var(--media-slider-preview-max-width);\n      --media-slider-preview-max-width: min(calc(var(--media-spacing) * 28), 100cqi);\n      min-width: 100%;\n      position: relative;\n    }\n\n    .media-slider-preview:before {\n      pointer-events: none;\n      z-index: 1;\n      opacity: 0;\n      transition-property: opacity, scale;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration-slow);\n      content: \"\";\n      background-color: currentColor;\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n      position: absolute;\n      translate: -50% -50%;\n      scale: 0.5;\n    }\n\n    @supports (color: color-mix(in lab, red, red)) {\n      .media-slider-preview:before {\n        background-color: color-mix(in oklab, currentcolor 35%, transparent);\n      }\n    }\n\n    .media-slider-preview[data-pointing]:not([data-dragging]):before {\n      content: \"\";\n      opacity: 1;\n      scale: 1;\n    }\n\n    .media-slider-preview[data-orientation=\"horizontal\"]:before {\n      top: 50%;\n      left: var(--media-slider-pointer);\n      height: calc(var(--media-spacing) * 5);\n      content: \"\";\n      width: 1px;\n    }\n\n    .media-slider-preview[data-orientation=\"vertical\"]:before {\n      top: calc(100% - var(--media-slider-pointer));\n      content: \"\";\n      height: 1px;\n      width: calc(var(--media-spacing) * 5);\n      left: 50%;\n    }\n\n    @container media-root (width >= 32rem) {\n      .media-slider-preview {\n        --media-slider-preview-max-width: min(calc(var(--media-spacing) * 36), 100cqi);\n      }\n    }\n\n    @container media-root (width >= 42rem) {\n      .media-slider-preview {\n        --media-preview-left: var(--media-slider-pointer);\n        --media-slider-preview-max-width: min(calc(var(--media-spacing) * 48), 100cqi);\n      }\n    }\n\n    .media-slider-preview-content {\n      max-width: var(--media-slider-preview-max-width);\n      transform-origin: bottom;\n      translate: -50% var(--media-hidden-preview-offset);\n      scale: var(--media-hidden-preview-scale) var(--media-hidden-preview-scale);\n      opacity: 0;\n      filter: blur(var(--media-hidden-blur));\n      transition-property: filter, opacity, scale;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration);\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n      position: absolute;\n    }\n\n    :where(.media-slider):has(:focus-visible) .media-slider-preview-content,\n    :where(.media-slider-preview)[data-pointing] .media-slider-preview-content {\n      opacity: 1;\n      filter: none;\n      scale: 1;\n    }\n\n    .media-slider-thumbnail {\n      pointer-events: none;\n      bottom: calc(100% + var(--media-slider-preview-offset));\n      left: var(--media-preview-left, var(--media-slider-pointer));\n      border-radius: var(--media-popup-radius);\n      background-color: var(--media-backdrop);\n      overflow: hidden;\n    }\n\n    @supports (color: color-mix(in lab, red, red)) {\n      .media-slider-thumbnail {\n        background-color: color-mix(in oklab, var(--media-backdrop) 90%, transparent);\n      }\n    }\n\n    .media-slider-thumbnail:has([data-loading]) {\n      aspect-ratio: 16 / 9;\n      width: var(--media-slider-preview-max-width);\n    }\n\n    .media-slider-thumbnail-spinner-icon {\n      width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n      height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n      opacity: 0;\n      filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n      transition-property: opacity;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration);\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n      position: absolute;\n      top: 50%;\n      left: 50%;\n      translate: -50% -50%;\n    }\n\n    @scope (.media-slider-thumbnail) {\n      &:not(:has([role=\"img\"][data-loading])) .media-slider-thumbnail-spinner-icon {\n        --media-spinner-animation: none;\n      }\n    }\n\n    @scope (.media-slider-thumbnail) {\n      &:has([role=\"img\"][data-loading]) .media-slider-thumbnail-spinner-icon {\n        opacity: 1;\n      }\n    }\n\n    .media-time-slider-chapter {\n      inset: calc(var(--media-spacing) * 0);\n      min-height: calc(var(--media-spacing) * 0);\n      min-width: calc(var(--media-spacing) * 0);\n      --media-chapter-inset-end: 0.5;\n      --media-chapter-inset-start: 0.5;\n      justify-content: center;\n      align-items: center;\n      display: flex;\n      position: absolute;\n    }\n\n    .media-time-slider-chapter:first-child {\n      --media-chapter-inset-start: 0;\n    }\n\n    .media-time-slider-chapter:last-child {\n      --media-chapter-inset-end: 0;\n    }\n\n    .media-time-slider-chapter[data-orientation=\"horizontal\"] {\n      clip-path: inset(0 calc(100% - var(--media-slider-chapter-end)) 0 var(--media-slider-chapter-start));\n    }\n\n    .media-time-slider-chapter[data-orientation=\"vertical\"] {\n      clip-path: inset(calc(100% - var(--media-slider-chapter-end)) 0 var(--media-slider-chapter-start) 0);\n    }\n\n    .media-time-slider-chapter-title {\n      max-width: var(--media-slider-preview-max-width);\n      min-width: calc(var(--media-spacing) * 0);\n      text-overflow: ellipsis;\n      white-space: nowrap;\n      overflow: hidden;\n    }\n\n    .media-time-slider-chapter-title:empty {\n      display: none;\n    }\n\n    .media-time-slider-chapter-track {\n      transition-property: height, width;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration-slow);\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n    }\n\n    .media-time-slider-chapter-track[data-orientation=\"horizontal\"] {\n      clip-path: inset(\n        0 calc(100% - var(--media-slider-chapter-end) + var(--media-spacing) * var(--media-chapter-inset-end)) 0\n          calc(var(--media-slider-chapter-start) + var(--media-spacing) * var(--media-chapter-inset-start)) round\n          var(--media-control-radius)\n      );\n    }\n\n    @scope (.media-time-slider-chapter) {\n      &[data-highlighted] .media-time-slider-chapter-track[data-orientation=\"horizontal\"] {\n        height: calc(var(--media-spacing) * 1.75);\n      }\n    }\n\n    .media-time-slider-chapter-track[data-orientation=\"vertical\"] {\n      clip-path: inset(\n        calc(100% - var(--media-slider-chapter-end) + var(--media-spacing) * var(--media-chapter-inset-end)) 0\n          calc(var(--media-slider-chapter-start) + var(--media-spacing) * var(--media-chapter-inset-start)) 0 round\n          var(--media-control-radius)\n      );\n    }\n\n    @scope (.media-time-slider-chapter) {\n      &[data-highlighted] .media-time-slider-chapter-track[data-orientation=\"vertical\"] {\n        width: calc(var(--media-spacing) * 1.75);\n      }\n    }\n\n    .media-time-slider-chapters {\n      width: 100%;\n      height: 100%;\n      min-height: calc(var(--media-spacing) * 0);\n      min-width: calc(var(--media-spacing) * 0);\n      border-radius: inherit;\n      flex: 1;\n      align-items: center;\n      display: flex;\n      position: relative;\n    }\n\n    .media-time-slider-preview-content {\n      bottom: calc(100% + var(--media-slider-preview-label-offset));\n      left: var(--media-preview-left, var(--media-slider-pointer));\n      justify-content: center;\n      gap: calc(var(--media-spacing) * 2);\n      font-variant-numeric: tabular-nums;\n      flex-direction: row-reverse;\n      display: flex;\n    }\n\n    .media-time-slider-thumb {\n      opacity: 0;\n      scale: 0.7;\n    }\n\n    .media-time-slider-thumb:focus-visible {\n      opacity: 1;\n    }\n\n    .media-time-slider-thumb[data-interactive] {\n      opacity: 1;\n      scale: 1;\n    }\n\n    @media (pointer: fine) {\n      @media (hover: hover) {\n        @scope (.media-slider) {\n          &:hover .media-time-slider-thumb {\n            opacity: 1;\n            scale: 1;\n          }\n        }\n      }\n    }\n\n    .media-time-slider-value {\n      font-variant-numeric: tabular-nums;\n    }\n  }\n\n  :where(.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) .media-slider-thumbnail-image {\n    max-height: var(--media-slider-preview-max-height);\n    max-width: var(--media-slider-preview-max-width);\n    border-radius: inherit;\n    transition-property: opacity;\n    transition-duration: 0.15s;\n    transition-duration: var(--media-duration);\n    transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n    display: block;\n    position: relative;\n    overflow: clip;\n  }\n\n  :where(.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) .media-slider-thumbnail-image[data-loading] {\n    opacity: 0;\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-menu-back-chevron {\n      width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 7 / 9);\n      height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 7 / 9);\n      color: var(--media-muted-foreground);\n      filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n      flex-shrink: 0;\n      rotate: 180deg;\n    }\n\n    @scope (.media-menu-back-item) {\n      &:where(:focus-visible, [aria-expanded=\"true\"], [data-highlighted]):where(:not([aria-disabled=\"true\"]))\n        .media-menu-back-chevron {\n        color: inherit;\n      }\n    }\n\n    @media (hover: hover) {\n      @scope (.media-menu-back-item) {\n        &:hover:where(:not([aria-disabled=\"true\"])) .media-menu-back-chevron {\n          color: inherit;\n        }\n      }\n    }\n\n    .media-menu-back-chevron:dir(rtl) {\n      rotate: 0deg;\n      scale: 1;\n    }\n\n    .media-menu-forward-chevron {\n      width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 7 / 9);\n      height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 7 / 9);\n      color: var(--media-muted-foreground);\n      filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n      flex-shrink: 0;\n    }\n\n    @scope (.media-menu-trigger-item) {\n      &:where(:focus-visible, [aria-expanded=\"true\"], [data-highlighted]):where(:not([aria-disabled=\"true\"]))\n        .media-menu-forward-chevron {\n        color: inherit;\n      }\n    }\n\n    @media (hover: hover) {\n      @scope (.media-menu-trigger-item) {\n        &:hover:where(:not([aria-disabled=\"true\"])) .media-menu-forward-chevron {\n          color: inherit;\n        }\n      }\n    }\n\n    .media-menu-forward-chevron:dir(rtl) {\n      scale: -1 1;\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-menu-item-indicator {\n      opacity: 0;\n      flex-shrink: 0;\n      margin-inline-start: auto;\n      margin-inline-end: calc(var(--media-spacing) * -1);\n    }\n\n    @scope (.media-menu-radio-item) {\n      &[aria-checked=\"true\"] .media-menu-item-indicator {\n        opacity: 1;\n      }\n    }\n\n    .media-menu-radio-item {\n      cursor: pointer;\n      justify-content: space-between;\n      align-items: center;\n      gap: calc(var(--media-spacing) * 1.5);\n      border-radius: var(--media-menu-item-radius);\n      padding-inline: calc(var(--media-spacing) * 2);\n      padding-block: calc(var(--media-spacing) * 1.5);\n      text-align: start;\n      white-space: nowrap;\n      color: inherit;\n      font-variant-numeric: tabular-nums;\n      outline-offset: -2px;\n      transition-property: background-color, color;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration-fast);\n      -webkit-user-select: none;\n      user-select: none;\n      text-shadow: 0 1px 0 var(--media-shadow-current-color);\n      outline: 2px solid #0000;\n      transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n      display: flex;\n      position: relative;\n    }\n\n    .media-menu-radio-item:focus-visible {\n      outline-offset: 2px;\n      outline-color: var(--media-ring);\n    }\n\n    .media-menu-radio-item[aria-disabled=\"true\"] {\n      pointer-events: none;\n      cursor: not-allowed;\n      opacity: 0.5;\n    }\n\n    .media-menu-radio-item[data-availability=\"unavailable\"],\n    .media-menu-radio-item[data-availability=\"unsupported\"] {\n      display: none;\n    }\n\n    .media-menu-radio-item:where(:focus-visible, [aria-expanded=\"true\"], [data-highlighted]):where(\n        :not([aria-disabled=\"true\"])\n      ) {\n      background-color: var(--media-accent);\n      color: var(--media-accent-foreground);\n    }\n\n    @media (hover: hover) {\n      .media-menu-radio-item:hover:where(:not([aria-disabled=\"true\"])) {\n        background-color: var(--media-accent);\n        color: var(--media-accent-foreground);\n      }\n    }\n\n    @supports (top: anchor(top)) {\n      .media-menu-radio-item {\n        transition-duration: var(--media-duration-instant);\n      }\n\n      .media-menu-radio-item[data-highlighted] {\n        anchor-name: --media-menu-item-highlight-anchor;\n      }\n\n      .media-menu-radio-item:where(:focus-visible, [aria-expanded=\"true\"], [data-highlighted]):where(\n          :not([aria-disabled=\"true\"])\n        ) {\n        transition-duration: var(--media-duration-slow);\n        background-color: #0000;\n      }\n\n      @media (hover: hover) {\n        .media-menu-radio-item:hover:where(:not([aria-disabled=\"true\"])) {\n          transition-duration: var(--media-duration-slow);\n          background-color: #0000;\n        }\n      }\n    }\n\n    .media-menu-radio-item-icon {\n      width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n      height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n      color: var(--media-muted-foreground);\n      filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n      flex-shrink: 0;\n    }\n\n    @scope (.media-menu-radio-item) {\n      &:where(:focus-visible, [aria-expanded=\"true\"], [data-highlighted]):where(:not([aria-disabled=\"true\"]))\n        .media-menu-radio-item-icon {\n        color: inherit;\n      }\n    }\n\n    @media (hover: hover) {\n      @scope (.media-menu-radio-item) {\n        &:hover:where(:not([aria-disabled=\"true\"])) .media-menu-radio-item-icon {\n          color: inherit;\n        }\n      }\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-menu-back-item {\n      margin-bottom: calc(var(--media-spacing) * 0.5);\n      cursor: pointer;\n      align-items: center;\n      gap: calc(var(--media-spacing) * 1.5);\n      border-radius: var(--media-menu-item-radius);\n      width: 100%;\n      padding-inline: calc(var(--media-spacing) * 2);\n      padding-block: calc(var(--media-spacing) * 1.5);\n      text-align: start;\n      white-space: nowrap;\n      outline-offset: -2px;\n      transition-property: background-color, color;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration-fast);\n      -webkit-user-select: none;\n      user-select: none;\n      text-shadow: 0 1px 0 var(--media-shadow-current-color);\n      outline: 2px solid #0000;\n      transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n      display: flex;\n      position: relative;\n    }\n\n    .media-menu-back-item:focus-visible {\n      outline-offset: 2px;\n      outline-color: var(--media-ring);\n    }\n\n    .media-menu-back-item:where(:focus-visible, [aria-expanded=\"true\"], [data-highlighted]):where(\n        :not([aria-disabled=\"true\"])\n      ) {\n      background-color: var(--media-accent);\n      color: var(--media-accent-foreground);\n    }\n\n    @media (hover: hover) {\n      .media-menu-back-item:hover:where(:not([aria-disabled=\"true\"])) {\n        background-color: var(--media-accent);\n        color: var(--media-accent-foreground);\n      }\n    }\n\n    @supports (top: anchor(top)) {\n      .media-menu-back-item {\n        transition-duration: var(--media-duration-instant);\n      }\n\n      .media-menu-back-item:where(:focus-visible, [aria-expanded=\"true\"], [data-highlighted]):where(\n          :not([aria-disabled=\"true\"])\n        ) {\n        transition-duration: var(--media-duration-slow);\n      }\n\n      @media (hover: hover) {\n        .media-menu-back-item:hover:where(:not([aria-disabled=\"true\"])) {\n          transition-duration: var(--media-duration-slow);\n        }\n      }\n    }\n\n    .media-menu-content {\n      max-height: inherit;\n      overscroll-behavior: none;\n      transition-property: translate, filter;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration-menu);\n      anchor-scope: --media-menu-item-highlight-anchor;\n      outline-style: none;\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n      position: absolute;\n      overflow: auto;\n    }\n\n    @media (forced-colors: active) {\n      .media-menu-content {\n        outline-offset: 2px;\n        outline: 2px solid #0000;\n      }\n    }\n\n    .media-menu-content:not([data-submenu]) {\n      inset-inline: calc(var(--media-spacing) * 1);\n      top: calc(var(--media-spacing) * 1);\n      gap: calc(var(--media-spacing) * 0.5);\n      flex-direction: column;\n      display: flex;\n    }\n\n    .media-menu-content[data-submenu] {\n      inset-inline: calc(var(--media-spacing) * 0);\n      top: calc(var(--media-spacing) * 0);\n      z-index: 10;\n      max-height: inherit;\n      padding: calc(var(--media-spacing) * 1);\n    }\n\n    .media-menu-content:not([data-submenu])[data-child-open] {\n      filter: blur(var(--media-hidden-blur));\n      translate: -100%;\n    }\n\n    .media-menu-content:not([data-submenu])[data-child-open]:before {\n      content: \"\";\n      display: none;\n    }\n\n    .media-menu-content[data-submenu]:is([data-starting-style], [data-ending-style]) {\n      pointer-events: none;\n      filter: blur(var(--media-hidden-blur));\n      overflow: hidden;\n      translate: 100%;\n    }\n\n    @supports (top: anchor(top)) {\n      .media-menu-content:before {\n        content: \"\";\n        position-anchor: --media-menu-item-highlight-anchor;\n        inset: anchor(inside);\n        overflow-anchor: none;\n        pointer-events: none;\n        border-radius: var(--media-menu-item-radius);\n        background-color: var(--media-accent);\n        transition: inset var(--media-duration-fast) ease-in-out;\n        position: absolute;\n      }\n\n      .media-menu-content:has([data-highlighted=\"\"]):before {\n        content: \"\";\n        transition-duration: 0s;\n      }\n    }\n\n    .media-menu-content:not([data-submenu])[data-child-open]:dir(rtl) {\n      translate: 100%;\n    }\n\n    .media-menu-content[data-submenu]:is([data-starting-style], [data-ending-style]):dir(rtl) {\n      translate: -100%;\n    }\n\n    .media-menu-hint {\n      min-width: calc(var(--media-spacing) * 0);\n      align-items: center;\n      gap: calc(var(--media-spacing) * 1);\n      color: currentColor;\n      margin-inline-start: auto;\n      padding-inline-start: calc(var(--media-spacing) * 2);\n      display: inline-flex;\n    }\n\n    @supports (color: color-mix(in lab, red, red)) {\n      .media-menu-hint {\n        color: color-mix(in oklab, currentcolor 65%, transparent);\n      }\n    }\n\n    .media-menu-hint-label {\n      max-width: calc(var(--media-spacing) * 24);\n      text-overflow: ellipsis;\n      white-space: nowrap;\n      overflow: hidden;\n    }\n\n    .media-menu-radio-group {\n      max-height: inherit;\n      gap: calc(var(--media-spacing) * 0.5);\n      anchor-scope: --media-menu-item-highlight-anchor;\n      flex-direction: column;\n      display: flex;\n    }\n\n    @supports (top: anchor(top)) {\n      .media-menu-radio-group:before {\n        content: \"\";\n        position-anchor: --media-menu-item-highlight-anchor;\n        inset: anchor(inside);\n        overflow-anchor: none;\n        pointer-events: none;\n        border-radius: var(--media-menu-item-radius);\n        background-color: var(--media-accent);\n        transition: inset var(--media-duration-fast) ease-in-out;\n        position: absolute;\n      }\n\n      .media-menu-radio-group:has([data-highlighted=\"\"]):before {\n        content: \"\";\n        transition-duration: 0s;\n      }\n    }\n\n    .media-menu-separator {\n      margin-block: calc(var(--media-spacing) * 1);\n      border-bottom-style: solid;\n      border-bottom-width: 1px;\n      border-color: var(--media-border);\n      display: block;\n    }\n\n    @media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {\n      .media-menu-separator {\n        border-color: var(--media-foreground);\n      }\n\n      @supports (color: color-mix(in lab, red, red)) {\n        .media-menu-separator {\n          border-color: color-mix(in oklab, var(--media-foreground) 25%, transparent);\n        }\n      }\n    }\n\n    .media-menu-trigger-item {\n      cursor: pointer;\n      justify-content: space-between;\n      align-items: center;\n      gap: calc(var(--media-spacing) * 1.5);\n      border-radius: var(--media-menu-item-radius);\n      padding-inline: calc(var(--media-spacing) * 2);\n      padding-block: calc(var(--media-spacing) * 1.5);\n      text-align: start;\n      white-space: nowrap;\n      color: inherit;\n      font-variant-numeric: tabular-nums;\n      outline-offset: -2px;\n      transition-property: background-color, color;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration-fast);\n      -webkit-user-select: none;\n      user-select: none;\n      text-shadow: 0 1px 0 var(--media-shadow-current-color);\n      outline: 2px solid #0000;\n      transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n      display: flex;\n      position: relative;\n    }\n\n    .media-menu-trigger-item:focus-visible {\n      outline-offset: 2px;\n      outline-color: var(--media-ring);\n    }\n\n    .media-menu-trigger-item[aria-disabled=\"true\"] {\n      pointer-events: none;\n      cursor: not-allowed;\n      opacity: 0.5;\n    }\n\n    .media-menu-trigger-item[data-availability=\"unavailable\"],\n    .media-menu-trigger-item[data-availability=\"unsupported\"] {\n      display: none;\n    }\n\n    .media-menu-trigger-item:where(:focus-visible, [aria-expanded=\"true\"], [data-highlighted]):where(\n        :not([aria-disabled=\"true\"])\n      ) {\n      background-color: var(--media-accent);\n      color: var(--media-accent-foreground);\n    }\n\n    @media (hover: hover) {\n      .media-menu-trigger-item:hover:where(:not([aria-disabled=\"true\"])) {\n        background-color: var(--media-accent);\n        color: var(--media-accent-foreground);\n      }\n    }\n\n    @supports (top: anchor(top)) {\n      .media-menu-trigger-item {\n        transition-duration: var(--media-duration-instant);\n      }\n\n      .media-menu-trigger-item[data-highlighted] {\n        anchor-name: --media-menu-item-highlight-anchor;\n      }\n\n      .media-menu-trigger-item:where(:focus-visible, [aria-expanded=\"true\"], [data-highlighted]):where(\n          :not([aria-disabled=\"true\"])\n        ) {\n        transition-duration: var(--media-duration-slow);\n        background-color: #0000;\n      }\n\n      @media (hover: hover) {\n        .media-menu-trigger-item:hover:where(:not([aria-disabled=\"true\"])) {\n          transition-duration: var(--media-duration-slow);\n          background-color: #0000;\n        }\n      }\n    }\n\n    .media-menu-trigger-item-icon {\n      width: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n      height: var(--media-icon-size, calc(var(--media-spacing) * 4.5));\n      color: var(--media-muted-foreground);\n      filter: drop-shadow(0 1px 0 var(--media-shadow-current-color));\n      flex-shrink: 0;\n    }\n\n    @scope (.media-menu-trigger-item) {\n      &:where(:focus-visible, [aria-expanded=\"true\"], [data-highlighted]):where(:not([aria-disabled=\"true\"]))\n        .media-menu-trigger-item-icon {\n        color: inherit;\n      }\n    }\n\n    @media (hover: hover) {\n      @scope (.media-menu-trigger-item) {\n        &:hover:where(:not([aria-disabled=\"true\"])) .media-menu-trigger-item-icon {\n          color: inherit;\n        }\n      }\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    @media (hover: hover) {\n    }\n\n    @supports (top: anchor(top)) {\n      @media (hover: hover) {\n      }\n    }\n\n    .media-menu-badge {\n      border-radius: var(--media-control-radius);\n      background-color: var(--media-accent);\n      padding-inline: calc(var(--media-spacing) * 1.5);\n      font-size: 0.7em;\n      font-weight: 600;\n    }\n\n    @media (forced-colors: active) {\n    }\n\n    @supports (top: anchor(top)) {\n    }\n\n    @supports (color: color-mix(in lab, red, red)) {\n    }\n\n    @supports (top: anchor(top)) {\n    }\n\n    @media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {\n      @supports (color: color-mix(in lab, red, red)) {\n      }\n    }\n\n    .media-menu-tier {\n      color: currentColor;\n      padding-inline-start: calc(var(--media-spacing) * 0.5);\n      padding-top: 1px;\n      font-size: 0.7em;\n      font-weight: 600;\n      line-height: 1;\n    }\n\n    @supports (color: color-mix(in lab, red, red)) {\n      .media-menu-tier {\n        color: color-mix(in oklab, currentcolor 70%, transparent);\n      }\n    }\n\n    @media (hover: hover) {\n    }\n\n    @supports (top: anchor(top)) {\n      @media (hover: hover) {\n      }\n    }\n\n    @scope (.media-menu-trigger-item) {\n    }\n\n    @media (hover: hover) {\n      @scope (.media-menu-trigger-item) {\n      }\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    @media (forced-colors: active) {\n    }\n\n    @supports (top: anchor(top)) {\n    }\n\n    .media-menu-popup {\n      margin: calc(var(--media-spacing) * 0);\n      height: var(--media-menu-height);\n      max-height: min(\n        var(--media-menu-available-height, calc(var(--media-spacing) * 56)),\n        calc(var(--media-spacing) * 56)\n      );\n      width: var(--media-menu-width);\n      max-width: var(--media-menu-available-width);\n      min-width: calc(var(--media-spacing) * 44);\n      overscroll-behavior: none;\n      border-radius: var(--media-popup-radius);\n      padding: calc(var(--media-spacing) * 1);\n      transition-property: opacity, filter, transform, scale;\n      transition-duration: var(--media-duration-fast);\n      --media-popup-side-offset: var(--media-popover-side-offset);\n      border-style: solid;\n      border-width: 0;\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n      overflow: hidden !important;\n    }\n\n    .media-menu-popup:is([data-starting-style], [data-ending-style]) {\n      transition-property: opacity, filter, transform, scale;\n      transition-duration: var(--media-duration-fast);\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n    }\n\n    .media-menu-resizable-popup {\n      transition-property: opacity, filter, transform, scale, width, height;\n      transition-duration:\n        var(--media-duration-fast), var(--media-duration-fast), var(--media-duration-fast), var(--media-duration-fast),\n        var(--media-duration-menu), var(--media-duration-menu);\n    }\n\n    .media-settings-menu-trigger-icon {\n      transition-property: transform, translate, scale, rotate;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration);\n      transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n    }\n\n    @scope (.media-settings-menu-trigger) {\n      &[aria-expanded=\"true\"] .media-settings-menu-trigger-icon {\n        rotate: 90deg;\n      }\n    }\n\n    @media (prefers-reduced-motion: reduce) {\n      .media-settings-menu-trigger-icon {\n        transition-property: none !important;\n      }\n    }\n\n    .media-settings-menu-trigger-label {\n      clip-path: inset(50%);\n      white-space: nowrap;\n      border-width: 0;\n      width: 1px;\n      height: 1px;\n      margin: -1px;\n      padding: 0;\n      position: absolute;\n      overflow: hidden;\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .video-controls-backdrop {\n      pointer-events: none;\n      inset: calc(var(--media-spacing) * 0);\n      z-index: 10;\n      border-radius: inherit;\n      background-image: var(--media-controls-gradient);\n      transition-property: opacity;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration-controls);\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n      position: absolute;\n    }\n\n    .video-controls-backdrop:not([data-visible]) {\n      opacity: 0;\n    }\n\n    .video-controls-content {\n      inset-inline: calc(var(--media-spacing) * 1);\n      bottom: calc(var(--media-spacing) * 1);\n      z-index: 20;\n      align-items: center;\n      column-gap: calc(var(--media-spacing) * 2);\n      border-radius: var(--media-controls-radius);\n      padding: calc(var(--media-spacing) * 1);\n      color: var(--media-controls-foreground);\n      transition-property: filter, opacity, translate;\n      transition-duration: 0.15s;\n      transition-duration: calc(var(--media-duration-controls) / 2);\n      text-shadow: 0 1px 0 var(--media-shadow-current-color);\n      background-color: #0000;\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n      display: flex;\n      position: absolute;\n    }\n\n    .video-controls-content:not([data-visible]) {\n      pointer-events: none;\n      translate: 0 var(--media-hidden-offset);\n      opacity: 0;\n      transition-duration: var(--media-duration-controls);\n    }\n\n    @media (pointer: fine) {\n      .video-controls-content:not([data-visible]) {\n        filter: blur(var(--media-hidden-blur));\n      }\n    }\n\n    @media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {\n      .video-controls-content {\n        background-color: var(--media-background);\n      }\n    }\n\n    @container media-root (width >= 42rem) {\n      .video-controls-content {\n        inset-inline: calc(var(--media-spacing) * 2);\n        bottom: calc(var(--media-spacing) * 2);\n        --media-popover-side-offset: calc(var(--media-spacing) * 3);\n        --media-tooltip-side-offset: var(--media-popover-side-offset);\n      }\n    }\n\n    .video-controls-end {\n      flex: 1;\n      justify-content: flex-end;\n      align-items: center;\n      gap: 1px;\n      display: flex;\n    }\n\n    @container media-root (width >= 42rem) {\n      .video-controls-end {\n        flex: none;\n      }\n    }\n\n    @container media-root (width < 42rem) {\n      .video-controls-end {\n        transition: mask-position var(--media-duration-instant) ease-out;\n        mask-position: 100% 0;\n        mask-size: 400% 100%;\n        mask-repeat: no-repeat;\n      }\n\n      @scope (.video-controls-content) {\n        &:has([data-volume-level][aria-expanded=\"true\"]) .video-controls-end {\n          mask-image: linear-gradient(to right, #0000 10%, #000 25% 100%);\n          mask-position: 0 0;\n        }\n      }\n    }\n\n    .video-controls-start {\n      flex: 1;\n      align-items: center;\n      gap: 1px;\n      display: flex;\n    }\n\n    @container media-root (width >= 42rem) {\n      .video-controls-start {\n        flex: none;\n      }\n    }\n\n    .video-controls-trailing {\n      align-items: center;\n      gap: 1px;\n      display: flex;\n    }\n\n    .video-controls-wrap {\n      flex-wrap: wrap;\n    }\n\n    @container media-root (width >= 42rem) {\n      .video-controls-wrap {\n        flex-wrap: nowrap;\n      }\n    }\n\n    .video-time-slider-group {\n      align-items: center;\n      gap: calc(var(--media-spacing) * 3);\n      padding-inline: calc(var(--media-spacing) * 1.5);\n      --media-slider-height: calc(var(--media-spacing) * 5);\n      flex-direction: row-reverse;\n      flex: 0 0 100%;\n      order: -1;\n      display: flex;\n      container: video-time-controls / inline-size;\n    }\n\n    @container media-root (width >= 42rem) {\n      .video-time-slider-group {\n        min-width: calc(var(--media-spacing) * 0);\n        transition: mask-position var(--media-duration-instant) ease-out;\n        --media-slider-height: calc(var(--media-spacing) * 8);\n        flex-direction: row;\n        flex: 1;\n        order: 0;\n        mask-position: 100% 0;\n        mask-size: 200% 100%;\n        mask-repeat: no-repeat;\n      }\n\n      @scope (.video-controls-content) {\n        &:has([data-volume-level][aria-expanded=\"true\"]) .video-time-slider-group {\n          mask-image: linear-gradient(to right, #0000 10%, #000 25% 100%);\n          mask-position: 0 0;\n        }\n      }\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    .media-time-current-value {\n      display: none;\n    }\n\n    @container media-root (width >= 42rem) {\n      .media-time-current-value {\n        display: inline;\n      }\n    }\n\n    .media-time-duration-value {\n      font-variant-numeric: tabular-nums;\n    }\n\n    @container media-root (width >= 42rem) {\n      .media-time-duration-value {\n        color: currentColor;\n      }\n\n      @supports (color: color-mix(in lab, red, red)) {\n        .media-time-duration-value {\n          color: color-mix(in oklab, currentcolor 60%, transparent);\n        }\n      }\n    }\n\n    .media-time-group {\n      align-items: center;\n      gap: calc(var(--media-spacing) * 1);\n      display: flex;\n    }\n\n    .media-time-separator {\n      display: none;\n    }\n\n    @container media-root (width >= 42rem) {\n      .media-time-separator {\n        color: currentColor;\n        display: inline;\n      }\n\n      @supports (color: color-mix(in lab, red, red)) {\n        .media-time-separator {\n          color: color-mix(in oklab, currentcolor 60%, transparent);\n        }\n      }\n    }\n\n    .media-time-toggle {\n      cursor: pointer;\n      font-variant-numeric: tabular-nums;\n      outline-offset: -2px;\n      transition-property: outline-color, outline-offset;\n      transition-duration: 0.15s;\n      transition-duration: var(--media-duration-fast);\n      border-radius: 0.25rem;\n      outline: 2px solid #0000;\n      transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n    }\n\n    .media-time-toggle:focus-visible {\n      outline-offset: 2px;\n      outline-color: var(--media-ring);\n    }\n\n    @supports (corner-shape: squircle) {\n      .media-time-toggle {\n        corner-shape: squircle;\n        border-radius: 1rem;\n      }\n    }\n  }\n\n  @scope (.media-skin[data-theme=\"minimal\"][data-preset=\"video\"]) {\n    @media (pointer: fine) {\n      .video-skin:not([data-controls-visible]),\n      :scope.video-skin:not([data-controls-visible]) {\n        cursor: none;\n      }\n    }\n  }\n}\n",
      "type": "registry:style",
      "target": "@components/videojs/skins/video/minimal/skin.css"
    }
  ],
  "meta": {
    "framework": "react",
    "style": "css",
    "role": "skin",
    "styling": "css",
    "preset": "video",
    "media": "video",
    "theme": "minimal",
    "public": true
  },
  "docs": "Requires `@videojs/react@10.0.0-beta.32`, which is installed with this item.\n\n```tsx\nimport { HlsJsVideo } from '@videojs/react/media/hlsjs-video';\nimport { VideoPlayer } from '@videojs/react/video';\n\nimport { MinimalVideoSkin } from '@/components/videojs/skins/video/minimal/skin';\n\nexport function Player({ src }: { src: string }) {\n  return (\n    <VideoPlayer>\n      <MinimalVideoSkin className=\"aspect-video w-full\">\n        <HlsJsVideo src={src} />\n      </MinimalVideoSkin>\n    </VideoPlayer>\n  );\n}\n```",
  "categories": [
    "media",
    "skins",
    "video"
  ],
  "type": "registry:block"
}