{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "use-media",
  "dependencies": [
    "zustand"
  ],
  "registryDependencies": [
    "https://limeplay.winoffrg.dev/r/media-provider.json"
  ],
  "files": [
    {
      "path": "registry/default/hooks/use-media.ts",
      "content": "\"use client\"\n\nimport type { MediaFeature } from \"@/registry/default/ui/media-provider\"\n\nimport { useMediaFeatureStore } from \"@/registry/default/ui/media-provider\"\n\nexport const MEDIA_FEATURE_KEY = \"media\"\n\nexport interface MediaProviderProps {\n  debug?: boolean\n}\n\nexport interface MediaStore {\n  media: {\n    debug: boolean\n    forceIdle: boolean\n    idle: boolean\n    mediaElement: HTMLMediaElement | null\n    setDebug: (value: boolean) => void\n    setForceIdle: (value: boolean) => void\n    setIdle: (value: boolean) => void\n    setMediaElement: (element: HTMLMediaElement | null) => void\n  }\n}\n\nexport function mediaFeature(props?: {\n  debug?: boolean\n}): MediaFeature<MediaStore> {\n  return {\n    createSlice: (set) => ({\n      media: {\n        debug: props?.debug ?? false,\n        forceIdle: false,\n        idle: false,\n        mediaElement: null,\n        setDebug: (value) => {\n          set(({ media }) => {\n            media.debug = value\n          })\n        },\n        setForceIdle: (value) => {\n          set(({ media }) => {\n            media.forceIdle = value\n          })\n        },\n        setIdle: (value) => {\n          set(({ media }) => {\n            media.idle = value\n          })\n        },\n        setMediaElement: (element) => {\n          set(({ media }) => {\n            media.mediaElement = element\n          })\n        },\n      },\n    }),\n\n    key: MEDIA_FEATURE_KEY,\n  }\n}\n\nexport function useMediaStore<TSelected>(\n  selector: (state: MediaStore[\"media\"]) => TSelected\n): TSelected {\n  return useMediaFeatureStore<MediaStore, TSelected>(\n    MEDIA_FEATURE_KEY,\n    (state) => selector(state.media)\n  )\n}\n",
      "type": "registry:hook",
      "target": "hooks/limeplay/use-media.ts"
    }
  ],
  "type": "registry:hook"
}