{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "time-slider",
  "title": "Time Slider",
  "description": "A playback timeline for seeking, with current and buffered progress plus time and thumbnail previews.",
  "dependencies": [
    "@videojs/core@10.0.0-beta.32",
    "@videojs/react@10.0.0-beta.32",
    "react"
  ],
  "registryDependencies": [
    "@videojs/_resolve-class-name",
    "@videojs/_style-popups",
    "@videojs/_style-sliders",
    "@videojs/_style-theme",
    "@videojs/slider"
  ],
  "files": [
    {
      "path": "ui/files/time-slider/time-slider.tsx",
      "content": "/** @jsxImportSource react */\n\nimport '../styles/popups.css';\nimport '../styles/sliders.css';\nimport '../styles/theme.css';\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';\n\nimport { cn, resolveClassName } from '@/components/videojs/lib/resolve-class-name';\nimport { SliderBuffer, SliderFill, SliderThumb, SliderTrack } from '@/components/videojs/ui/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/ui/time-slider.tsx"
    }
  ],
  "meta": {
    "framework": "react",
    "style": "css",
    "role": "component",
    "styling": "css",
    "public": true
  },
  "docs": "Installs `@/components/videojs/ui/time-slider.tsx` for use inside a compatible Video.js Player or Skin.\n\n```tsx\nimport { TimeSlider } from '@/components/videojs/ui/time-slider';\n\nexport function Controls() {\n  return <TimeSlider />;\n}\n```",
  "categories": [
    "media",
    "sliders"
  ],
  "type": "registry:ui"
}