playron 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/README.md +287 -0
  2. package/dist/Docs.d.ts +2 -0
  3. package/dist/Docs.d.ts.map +1 -0
  4. package/dist/ErrorManager-CDf_sFKX.cjs +1 -0
  5. package/dist/ErrorManager-i9WcRsWb.js +43 -0
  6. package/dist/Why.d.ts +2 -0
  7. package/dist/Why.d.ts.map +1 -0
  8. package/dist/components/PlayerConfig.d.ts +34 -0
  9. package/dist/components/PlayerConfig.d.ts.map +1 -0
  10. package/dist/components/PlayronControls.d.ts +26 -0
  11. package/dist/components/PlayronControls.d.ts.map +1 -0
  12. package/dist/components/PlayronPlayer.d.ts +37 -0
  13. package/dist/components/PlayronPlayer.d.ts.map +1 -0
  14. package/dist/components/SiteHeader.d.ts +6 -0
  15. package/dist/components/SiteHeader.d.ts.map +1 -0
  16. package/dist/constants/sample-intro-outro.d.ts +3 -0
  17. package/dist/constants/sample-intro-outro.d.ts.map +1 -0
  18. package/dist/constants/source.d.ts +2 -0
  19. package/dist/constants/source.d.ts.map +1 -0
  20. package/dist/constants/sports-events.d.ts +58 -0
  21. package/dist/constants/sports-events.d.ts.map +1 -0
  22. package/dist/context/PlayerContext.d.ts +3 -0
  23. package/dist/context/PlayerContext.d.ts.map +1 -0
  24. package/dist/context/PlayerMethodsContext.d.ts +63 -0
  25. package/dist/context/PlayerMethodsContext.d.ts.map +1 -0
  26. package/dist/context/PlayerProvider.d.ts +9 -0
  27. package/dist/context/PlayerProvider.d.ts.map +1 -0
  28. package/dist/context/PlayerStateContext.d.ts +4 -0
  29. package/dist/context/PlayerStateContext.d.ts.map +1 -0
  30. package/dist/context/PlayronContext.d.ts +100 -0
  31. package/dist/context/PlayronContext.d.ts.map +1 -0
  32. package/dist/context/SubtitleStyleContext.d.ts +22 -0
  33. package/dist/context/SubtitleStyleContext.d.ts.map +1 -0
  34. package/dist/core/ConfigManager.d.ts +78 -0
  35. package/dist/core/ConfigManager.d.ts.map +1 -0
  36. package/dist/core/ErrorManager.d.ts +22 -0
  37. package/dist/core/ErrorManager.d.ts.map +1 -0
  38. package/dist/core/EventBus.d.ts +32 -0
  39. package/dist/core/EventBus.d.ts.map +1 -0
  40. package/dist/core/PlayerCore.d.ts +170 -0
  41. package/dist/core/PlayerCore.d.ts.map +1 -0
  42. package/dist/core/PlayronEventEmitter.d.ts +162 -0
  43. package/dist/core/PlayronEventEmitter.d.ts.map +1 -0
  44. package/dist/core/PluginSystem.d.ts +111 -0
  45. package/dist/core/PluginSystem.d.ts.map +1 -0
  46. package/dist/core/StallDetector.d.ts +27 -0
  47. package/dist/core/StallDetector.d.ts.map +1 -0
  48. package/dist/core/StateManager.d.ts +90 -0
  49. package/dist/core/StateManager.d.ts.map +1 -0
  50. package/dist/core/VideoEngine.d.ts +92 -0
  51. package/dist/core/VideoEngine.d.ts.map +1 -0
  52. package/dist/core/adaptive/StreamDetector.d.ts +73 -0
  53. package/dist/core/adaptive/StreamDetector.d.ts.map +1 -0
  54. package/dist/core/drm/DrmCapabilityProbe.d.ts +13 -0
  55. package/dist/core/drm/DrmCapabilityProbe.d.ts.map +1 -0
  56. package/dist/core/network/index.d.ts +6 -0
  57. package/dist/core/network/index.d.ts.map +1 -0
  58. package/dist/core/streaming/DashEngine.d.ts +149 -0
  59. package/dist/core/streaming/DashEngine.d.ts.map +1 -0
  60. package/dist/core/streaming/HlsEngine.d.ts +168 -0
  61. package/dist/core/streaming/HlsEngine.d.ts.map +1 -0
  62. package/dist/core/streaming/SubtitleManager.d.ts +88 -0
  63. package/dist/core/streaming/SubtitleManager.d.ts.map +1 -0
  64. package/dist/core/streaming/ThumbnailManager.d.ts +44 -0
  65. package/dist/core/streaming/ThumbnailManager.d.ts.map +1 -0
  66. package/dist/core/streaming/index.d.ts +11 -0
  67. package/dist/core/streaming/index.d.ts.map +1 -0
  68. package/dist/core/streaming/parsers/WebVttParser.d.ts +56 -0
  69. package/dist/core/streaming/parsers/WebVttParser.d.ts.map +1 -0
  70. package/dist/hooks/useClickOutside.d.ts +4 -0
  71. package/dist/hooks/useClickOutside.d.ts.map +1 -0
  72. package/dist/hooks/useKeyboardControls.d.ts +20 -0
  73. package/dist/hooks/useKeyboardControls.d.ts.map +1 -0
  74. package/dist/hooks/useMobileGestures.d.ts +17 -0
  75. package/dist/hooks/useMobileGestures.d.ts.map +1 -0
  76. package/dist/hooks/useMouseActivity.d.ts +10 -0
  77. package/dist/hooks/useMouseActivity.d.ts.map +1 -0
  78. package/dist/hooks/usePlayer.d.ts +6 -0
  79. package/dist/hooks/usePlayer.d.ts.map +1 -0
  80. package/dist/hooks/usePlayerMethods.d.ts +6 -0
  81. package/dist/hooks/usePlayerMethods.d.ts.map +1 -0
  82. package/dist/hooks/usePlayerState.d.ts +11 -0
  83. package/dist/hooks/usePlayerState.d.ts.map +1 -0
  84. package/dist/index.d.ts +99 -0
  85. package/dist/index.d.ts.map +1 -0
  86. package/dist/layout/ControlsContainer.d.ts +9 -0
  87. package/dist/layout/ControlsContainer.d.ts.map +1 -0
  88. package/dist/layout/ControlsContainer.responsive.d.ts +8 -0
  89. package/dist/layout/ControlsContainer.responsive.d.ts.map +1 -0
  90. package/dist/layout/SeekBarContainer.d.ts +16 -0
  91. package/dist/layout/SeekBarContainer.d.ts.map +1 -0
  92. package/dist/playron.cjs.js +248 -0
  93. package/dist/playron.css +1 -0
  94. package/dist/playron.es.js +47631 -0
  95. package/dist/plugins/AdPlugin.d.ts +8 -0
  96. package/dist/plugins/AdPlugin.d.ts.map +1 -0
  97. package/dist/plugins/AnalyticsPlugin.d.ts +50 -0
  98. package/dist/plugins/AnalyticsPlugin.d.ts.map +1 -0
  99. package/dist/plugins/PluginManager.d.ts +2 -0
  100. package/dist/plugins/PluginManager.d.ts.map +1 -0
  101. package/dist/plugins/SocialPlugin.d.ts +2 -0
  102. package/dist/plugins/SocialPlugin.d.ts.map +1 -0
  103. package/dist/plugins/ads/AdManager.d.ts +79 -0
  104. package/dist/plugins/ads/AdManager.d.ts.map +1 -0
  105. package/dist/plugins/ads/AdPlayer.d.ts +33 -0
  106. package/dist/plugins/ads/AdPlayer.d.ts.map +1 -0
  107. package/dist/plugins/ads/AdTracker.d.ts +34 -0
  108. package/dist/plugins/ads/AdTracker.d.ts.map +1 -0
  109. package/dist/plugins/ads/VASTParser.d.ts +52 -0
  110. package/dist/plugins/ads/VASTParser.d.ts.map +1 -0
  111. package/dist/plugins/ads/VMAPParser.d.ts +31 -0
  112. package/dist/plugins/ads/VMAPParser.d.ts.map +1 -0
  113. package/dist/plugins/ads/types.d.ts +108 -0
  114. package/dist/plugins/ads/types.d.ts.map +1 -0
  115. package/dist/poster.png +0 -0
  116. package/dist/test-ad.xml +37 -0
  117. package/dist/test-vmap.xml +30 -0
  118. package/dist/types/analytics.d.ts +86 -0
  119. package/dist/types/analytics.d.ts.map +1 -0
  120. package/dist/types/chapters.types.d.ts +17 -0
  121. package/dist/types/chapters.types.d.ts.map +1 -0
  122. package/dist/types/config.d.ts +23 -0
  123. package/dist/types/config.d.ts.map +1 -0
  124. package/dist/types/config.types.d.ts +244 -0
  125. package/dist/types/config.types.d.ts.map +1 -0
  126. package/dist/types/controlbar.types.d.ts +5 -0
  127. package/dist/types/controlbar.types.d.ts.map +1 -0
  128. package/dist/types/drm.types.d.ts +163 -0
  129. package/dist/types/drm.types.d.ts.map +1 -0
  130. package/dist/types/events.d.ts +36 -0
  131. package/dist/types/events.d.ts.map +1 -0
  132. package/dist/types/extended.types.d.ts +85 -0
  133. package/dist/types/extended.types.d.ts.map +1 -0
  134. package/dist/types/manifest.types.d.ts +297 -0
  135. package/dist/types/manifest.types.d.ts.map +1 -0
  136. package/dist/types/playbutton.types.d.ts +2 -0
  137. package/dist/types/playbutton.types.d.ts.map +1 -0
  138. package/dist/types/player.types.d.ts +13 -0
  139. package/dist/types/player.types.d.ts.map +1 -0
  140. package/dist/types/seekbar.types.d.ts +5 -0
  141. package/dist/types/seekbar.types.d.ts.map +1 -0
  142. package/dist/types/streaming.types.d.ts +168 -0
  143. package/dist/types/streaming.types.d.ts.map +1 -0
  144. package/dist/types/timeline.types.d.ts +46 -0
  145. package/dist/types/timeline.types.d.ts.map +1 -0
  146. package/dist/types/video-events.d.ts +51 -0
  147. package/dist/types/video-events.d.ts.map +1 -0
  148. package/dist/ui/Common/BufferingIndicator.d.ts +2 -0
  149. package/dist/ui/Common/BufferingIndicator.d.ts.map +1 -0
  150. package/dist/ui/Common/ControlBar.d.ts +3 -0
  151. package/dist/ui/Common/ControlBar.d.ts.map +1 -0
  152. package/dist/ui/Common/ControlBar.responsive.d.ts +3 -0
  153. package/dist/ui/Common/ControlBar.responsive.d.ts.map +1 -0
  154. package/dist/ui/Common/Dropdown/Dropdown.d.ts +14 -0
  155. package/dist/ui/Common/Dropdown/Dropdown.d.ts.map +1 -0
  156. package/dist/ui/Common/Dropdown/DropdownItem.d.ts +11 -0
  157. package/dist/ui/Common/Dropdown/DropdownItem.d.ts.map +1 -0
  158. package/dist/ui/Common/Dropdown/DropdownPanel.d.ts +9 -0
  159. package/dist/ui/Common/Dropdown/DropdownPanel.d.ts.map +1 -0
  160. package/dist/ui/Common/Dropdown/DropdownTrigger.d.ts +7 -0
  161. package/dist/ui/Common/Dropdown/DropdownTrigger.d.ts.map +1 -0
  162. package/dist/ui/Common/LoadingSpinner.d.ts +6 -0
  163. package/dist/ui/Common/LoadingSpinner.d.ts.map +1 -0
  164. package/dist/ui/Common/Overlay.d.ts +11 -0
  165. package/dist/ui/Common/Overlay.d.ts.map +1 -0
  166. package/dist/ui/Common/SeekBar.d.ts +15 -0
  167. package/dist/ui/Common/SeekBar.d.ts.map +1 -0
  168. package/dist/ui/Common/SeekBar.responsive.d.ts +10 -0
  169. package/dist/ui/Common/SeekBar.responsive.d.ts.map +1 -0
  170. package/dist/ui/Common/TimeDisplay.d.ts +2 -0
  171. package/dist/ui/Common/TimeDisplay.d.ts.map +1 -0
  172. package/dist/ui/Common/TimelineMarker.d.ts +11 -0
  173. package/dist/ui/Common/TimelineMarker.d.ts.map +1 -0
  174. package/dist/ui/Common/Tooltip.d.ts +2 -0
  175. package/dist/ui/Common/Tooltip.d.ts.map +1 -0
  176. package/dist/ui/Common/VolumePanel.d.ts +2 -0
  177. package/dist/ui/Common/VolumePanel.d.ts.map +1 -0
  178. package/dist/ui/Controls/AudioTrackSelector.d.ts +2 -0
  179. package/dist/ui/Controls/AudioTrackSelector.d.ts.map +1 -0
  180. package/dist/ui/Controls/CaptionsButton.d.ts +2 -0
  181. package/dist/ui/Controls/CaptionsButton.d.ts.map +1 -0
  182. package/dist/ui/Controls/CastButton.d.ts +17 -0
  183. package/dist/ui/Controls/CastButton.d.ts.map +1 -0
  184. package/dist/ui/Controls/DownloadButton.d.ts +2 -0
  185. package/dist/ui/Controls/DownloadButton.d.ts.map +1 -0
  186. package/dist/ui/Controls/EpisodeSelector.d.ts +2 -0
  187. package/dist/ui/Controls/EpisodeSelector.d.ts.map +1 -0
  188. package/dist/ui/Controls/FullscreenButton.d.ts +5 -0
  189. package/dist/ui/Controls/FullscreenButton.d.ts.map +1 -0
  190. package/dist/ui/Controls/JumpToLiveButton.d.ts +2 -0
  191. package/dist/ui/Controls/JumpToLiveButton.d.ts.map +1 -0
  192. package/dist/ui/Controls/LiveLatencyDisplay.d.ts +2 -0
  193. package/dist/ui/Controls/LiveLatencyDisplay.d.ts.map +1 -0
  194. package/dist/ui/Controls/MuteButton.d.ts +5 -0
  195. package/dist/ui/Controls/MuteButton.d.ts.map +1 -0
  196. package/dist/ui/Controls/NextEpisodeButton.d.ts +7 -0
  197. package/dist/ui/Controls/NextEpisodeButton.d.ts.map +1 -0
  198. package/dist/ui/Controls/PipButton.d.ts +5 -0
  199. package/dist/ui/Controls/PipButton.d.ts.map +1 -0
  200. package/dist/ui/Controls/PlayButton.d.ts +5 -0
  201. package/dist/ui/Controls/PlayButton.d.ts.map +1 -0
  202. package/dist/ui/Controls/PlaybackSpeedSelector.d.ts +2 -0
  203. package/dist/ui/Controls/PlaybackSpeedSelector.d.ts.map +1 -0
  204. package/dist/ui/Controls/PlaylistButton.d.ts +2 -0
  205. package/dist/ui/Controls/PlaylistButton.d.ts.map +1 -0
  206. package/dist/ui/Controls/QualitySelector.d.ts +2 -0
  207. package/dist/ui/Controls/QualitySelector.d.ts.map +1 -0
  208. package/dist/ui/Controls/SeekBar.d.ts +2 -0
  209. package/dist/ui/Controls/SeekBar.d.ts.map +1 -0
  210. package/dist/ui/Controls/SeekBarProgress.d.ts +2 -0
  211. package/dist/ui/Controls/SeekBarProgress.d.ts.map +1 -0
  212. package/dist/ui/Controls/SettingsButton.d.ts +2 -0
  213. package/dist/ui/Controls/SettingsButton.d.ts.map +1 -0
  214. package/dist/ui/Controls/SettingsPanel.d.ts +17 -0
  215. package/dist/ui/Controls/SettingsPanel.d.ts.map +1 -0
  216. package/dist/ui/Controls/SkipBackwardButton.d.ts +6 -0
  217. package/dist/ui/Controls/SkipBackwardButton.d.ts.map +1 -0
  218. package/dist/ui/Controls/SkipForwardButton.d.ts +6 -0
  219. package/dist/ui/Controls/SkipForwardButton.d.ts.map +1 -0
  220. package/dist/ui/Controls/SkipIntroButton.d.ts +7 -0
  221. package/dist/ui/Controls/SkipIntroButton.d.ts.map +1 -0
  222. package/dist/ui/Controls/SubtitleOverlay.d.ts +6 -0
  223. package/dist/ui/Controls/SubtitleOverlay.d.ts.map +1 -0
  224. package/dist/ui/Controls/SubtitlesMenu.d.ts +2 -0
  225. package/dist/ui/Controls/SubtitlesMenu.d.ts.map +1 -0
  226. package/dist/ui/Controls/TheaterModeButton.d.ts +2 -0
  227. package/dist/ui/Controls/TheaterModeButton.d.ts.map +1 -0
  228. package/dist/ui/Controls/TimeDisplay.d.ts +5 -0
  229. package/dist/ui/Controls/TimeDisplay.d.ts.map +1 -0
  230. package/dist/ui/Controls/VolumeControl.d.ts +2 -0
  231. package/dist/ui/Controls/VolumeControl.d.ts.map +1 -0
  232. package/dist/ui/Controls/VolumeSlider.d.ts +2 -0
  233. package/dist/ui/Controls/VolumeSlider.d.ts.map +1 -0
  234. package/dist/ui/Overlay/ContextMenu.d.ts +17 -0
  235. package/dist/ui/Overlay/ContextMenu.d.ts.map +1 -0
  236. package/dist/ui/Overlay/EndCard.d.ts +11 -0
  237. package/dist/ui/Overlay/EndCard.d.ts.map +1 -0
  238. package/dist/ui/Overlay/ErrorOverlay.d.ts +13 -0
  239. package/dist/ui/Overlay/ErrorOverlay.d.ts.map +1 -0
  240. package/dist/ui/Overlay/GestureHintOverlay.d.ts +14 -0
  241. package/dist/ui/Overlay/GestureHintOverlay.d.ts.map +1 -0
  242. package/dist/ui/Overlay/KeyboardShortcutsOverlay.d.ts +7 -0
  243. package/dist/ui/Overlay/KeyboardShortcutsOverlay.d.ts.map +1 -0
  244. package/dist/ui/Overlay/VideoOverlay.d.ts +9 -0
  245. package/dist/ui/Overlay/VideoOverlay.d.ts.map +1 -0
  246. package/dist/ui/Player.d.ts +19 -0
  247. package/dist/ui/Player.d.ts.map +1 -0
  248. package/dist/vite.svg +1 -0
  249. package/package.json +71 -0
@@ -0,0 +1,297 @@
1
+ /**
2
+ * HLS & DASH Manifest Types
3
+ * Pure custom implementation - no external libraries
4
+ */
5
+ /**
6
+ * HLS Master Playlist (multi-bitrate streams)
7
+ * Example: https://example.com/master.m3u8
8
+ */
9
+ export interface HlsMasterPlaylist {
10
+ variants: HlsVariant[];
11
+ audioTracks: HlsAudioTrack[];
12
+ subtitles: HlsSubtitle[];
13
+ version: number;
14
+ independentSegments: boolean;
15
+ }
16
+ /**
17
+ * HLS Variant Stream (quality level)
18
+ * #EXT-X-STREAM-INF:BANDWIDTH=2000000,RESOLUTION=1280x720,CODECS="avc1.64001f,mp4a.40.2"
19
+ */
20
+ export interface HlsVariant {
21
+ uri: string;
22
+ bandwidth: number;
23
+ resolution?: {
24
+ width: number;
25
+ height: number;
26
+ };
27
+ codecs?: string;
28
+ frameRate?: number;
29
+ audio?: string;
30
+ subtitles?: string;
31
+ averageBandwidth?: number;
32
+ programId?: number;
33
+ }
34
+ /**
35
+ * HLS Audio Track
36
+ * #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="English",LANGUAGE="en",URI="audio_en.m3u8"
37
+ */
38
+ export interface HlsAudioTrack {
39
+ groupId: string;
40
+ name: string;
41
+ language: string;
42
+ uri?: string;
43
+ default: boolean;
44
+ autoselect: boolean;
45
+ channels?: string;
46
+ }
47
+ /**
48
+ * HLS Subtitle Track
49
+ * #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English",LANGUAGE="en",URI="subs_en.m3u8"
50
+ */
51
+ export interface HlsSubtitle {
52
+ groupId: string;
53
+ name: string;
54
+ language: string;
55
+ uri: string;
56
+ default: boolean;
57
+ autoselect: boolean;
58
+ forced: boolean;
59
+ }
60
+ /**
61
+ * HLS Media Playlist (segment list)
62
+ * Example: https://example.com/720p.m3u8
63
+ */
64
+ export interface HlsMediaPlaylist {
65
+ segments: HlsSegment[];
66
+ targetDuration: number;
67
+ version: number;
68
+ mediaSequence: number;
69
+ discontinuitySequence: number;
70
+ endlist: boolean;
71
+ playlistType?: 'VOD' | 'EVENT';
72
+ keys: HlsKey[];
73
+ duration: number;
74
+ /** LL-HLS: server control capabilities */
75
+ serverControl?: HlsServerControl;
76
+ /** LL-HLS: partial segment target duration (from #EXT-X-PART-INF) */
77
+ partTargetDuration?: number;
78
+ /** LL-HLS: next part to prefetch (from #EXT-X-PRELOAD-HINT) */
79
+ preloadHint?: HlsPreloadHint;
80
+ /** LL-HLS: number of segments skipped in a delta playlist (#EXT-X-SKIP) */
81
+ skippedSegments?: number;
82
+ }
83
+ /**
84
+ * HLS Segment (video/audio chunk)
85
+ * #EXTINF:10.0,
86
+ * segment_001.ts
87
+ */
88
+ export interface HlsSegment {
89
+ uri: string;
90
+ duration: number;
91
+ sequence: number;
92
+ title?: string;
93
+ byteRange?: {
94
+ offset: number;
95
+ length: number;
96
+ };
97
+ discontinuity: boolean;
98
+ key?: HlsKey;
99
+ map?: HlsSegmentMap;
100
+ programDateTime?: Date;
101
+ /** LL-HLS partial segments that compose this full segment */
102
+ parts?: LlHlsPart[];
103
+ /** #EXT-X-GAP — segment data is unavailable (live DVR) */
104
+ gap?: boolean;
105
+ }
106
+ /**
107
+ * HLS Encryption Key (DRM info)
108
+ * #EXT-X-KEY:METHOD=AES-128,URI="https://license.example.com/key",IV=0x12345678
109
+ */
110
+ export interface HlsKey {
111
+ method: 'AES-128' | 'SAMPLE-AES' | 'NONE';
112
+ uri?: string;
113
+ iv?: string;
114
+ keyFormat?: string;
115
+ keyFormatVersions?: string;
116
+ }
117
+ /**
118
+ * HLS Segment Map (initialization segment for fMP4)
119
+ * #EXT-X-MAP:URI="init.mp4"
120
+ */
121
+ export interface HlsSegmentMap {
122
+ uri: string;
123
+ byteRange?: {
124
+ offset: number;
125
+ length: number;
126
+ };
127
+ }
128
+ /**
129
+ * LL-HLS Partial Segment
130
+ * #EXT-X-PART:DURATION=0.33334,URI="seg001.part0.m4s"
131
+ */
132
+ export interface LlHlsPart {
133
+ uri: string;
134
+ duration: number;
135
+ /** Independent=YES means the part can be decoded without previous parts */
136
+ independent?: boolean;
137
+ byteRange?: {
138
+ offset: number;
139
+ length: number;
140
+ };
141
+ /** Gap=YES means the part data is missing (live DVR gap) */
142
+ gap?: boolean;
143
+ }
144
+ /**
145
+ * LL-HLS Preload Hint
146
+ * #EXT-X-PRELOAD-HINT:TYPE=PART,URI="seg002.part0.m4s"
147
+ */
148
+ export interface HlsPreloadHint {
149
+ type: 'PART' | 'MAP';
150
+ uri: string;
151
+ byteRangeStart?: number;
152
+ byteRangeLength?: number;
153
+ }
154
+ /**
155
+ * LL-HLS Server Control
156
+ * #EXT-X-SERVER-CONTROL:CAN-BLOCK-RELOAD=YES,PART-HOLD-BACK=0.9
157
+ */
158
+ export interface HlsServerControl {
159
+ /** Server supports blocking playlist requests (_HLS_msn, _HLS_part) */
160
+ canBlockReload: boolean;
161
+ /** Minimum buffer (seconds) before switching to next partial segment */
162
+ partHoldBack?: number;
163
+ /** Seconds after which the server can skip segments in delta updates */
164
+ canSkipUntil?: number;
165
+ canSkipDateranges?: boolean;
166
+ }
167
+ /**
168
+ * DASH MPD (Media Presentation Description)
169
+ * https://dashif.org/docs/DASH-IF-IOP-v4.3.pdf
170
+ */
171
+ export interface DashManifest {
172
+ /** 'static' = VOD, 'dynamic' = LIVE */
173
+ type: 'static' | 'dynamic';
174
+ isLive: boolean;
175
+ /** Total content duration in seconds (VOD only) */
176
+ duration: number;
177
+ /** How often the MPD should be refreshed (live, seconds) */
178
+ minimumUpdatePeriod: number;
179
+ /** DVR window depth (live, seconds) */
180
+ timeShiftBufferDepth: number;
181
+ periods: DashPeriod[];
182
+ baseUrl: string;
183
+ /** LL-DASH: target playback latency from ServiceDescription (seconds) */
184
+ targetLatency?: number;
185
+ /** LL-DASH: availability time offset at MPD level (seconds) */
186
+ availabilityTimeOffset?: number;
187
+ }
188
+ export interface DashPeriod {
189
+ id: string;
190
+ /** Start time offset in seconds */
191
+ start: number;
192
+ /** Period duration in seconds (optional for last period) */
193
+ duration?: number;
194
+ adaptationSets: DashAdaptationSet[];
195
+ }
196
+ export interface DashAdaptationSet {
197
+ id: string;
198
+ /** 'video' | 'audio' | 'text' */
199
+ contentType: string;
200
+ mimeType: string;
201
+ /** Codec(s) at AdaptationSet level (may be overridden per Representation) */
202
+ codecs: string;
203
+ lang: string;
204
+ maxWidth?: number;
205
+ maxHeight?: number;
206
+ representations: DashRepresentation[];
207
+ }
208
+ export interface DashRepresentation {
209
+ id: string;
210
+ bandwidth: number;
211
+ width?: number;
212
+ height?: number;
213
+ /** Codec string, e.g. "avc1.64001F" or "mp4a.40.2" */
214
+ codecs: string;
215
+ mimeType: string;
216
+ /** e.g. "25" or "30000/1001" */
217
+ frameRate?: string;
218
+ audioSamplingRate?: string;
219
+ segmentTemplate?: DashSegmentTemplate;
220
+ /** SegmentBase — byte-range based single-file access */
221
+ segmentBase?: DashSegmentBase;
222
+ baseUrl: string;
223
+ }
224
+ /**
225
+ * SegmentBase — used when all media is in a single file (e.g. a plain MP4).
226
+ * Initialization data and the segment index (sidx box) are fetched via byte ranges.
227
+ *
228
+ * MPD example:
229
+ * <SegmentBase indexRange="723-2176" timescale="30000">
230
+ * <Initialization range="0-722"/>
231
+ * </SegmentBase>
232
+ */
233
+ export interface DashSegmentBase {
234
+ /** Timescale ticks-per-second (default 1) */
235
+ timescale: number;
236
+ /** Byte range of the initialization data, e.g. "0-722" */
237
+ initRange?: string;
238
+ /** Byte range of the segment index (sidx box), e.g. "723-2176" */
239
+ indexRange?: string;
240
+ }
241
+ export interface DashSegmentTemplate {
242
+ timescale: number;
243
+ /** Segment duration in seconds (pre-divided by timescale) */
244
+ duration: number;
245
+ startNumber: number;
246
+ /** Fully resolved initialization URL (with $RepresentationID$ etc. substituted) */
247
+ initializationUrl: string;
248
+ /** Raw media URL template (e.g. "seg-$RepresentationID$-$Number$.m4s") */
249
+ mediaTemplate: string;
250
+ /** Parsed SegmentTimeline entries (optional) */
251
+ timeline?: DashTimelineEntry[];
252
+ /**
253
+ * LL-DASH: seconds before a segment's nominal availability time at which
254
+ * the segment (or its chunks) becomes available. When < segmentDuration,
255
+ * the segment is published incrementally (chunked transfer).
256
+ */
257
+ availabilityTimeOffset?: number;
258
+ /** LL-DASH: if false, segments can be appended before they are complete */
259
+ availabilityTimeComplete?: boolean;
260
+ }
261
+ /** One <S> element inside <SegmentTimeline> */
262
+ export interface DashTimelineEntry {
263
+ /** Absolute start time on the timeline (optional — if absent, continues from previous) */
264
+ t?: number;
265
+ /** Duration of this entry in timescale units */
266
+ d: number;
267
+ /** Repeat count — entry repeats (r+1) times total */
268
+ r?: number;
269
+ }
270
+ /** A resolved segment ready for download */
271
+ export interface DashSegmentInfo {
272
+ url: string;
273
+ number: number;
274
+ /** Start time in timescale units */
275
+ time: number;
276
+ /** Duration in seconds */
277
+ duration: number;
278
+ /** Byte range for HTTP Range request (SegmentBase only) */
279
+ byteRange?: {
280
+ start: number;
281
+ end: number;
282
+ };
283
+ }
284
+ export type ManifestType = 'hls' | 'dash' | 'progressive';
285
+ export interface ParsedManifest {
286
+ type: ManifestType;
287
+ hls?: HlsMasterPlaylist | HlsMediaPlaylist;
288
+ dash?: DashManifest;
289
+ }
290
+ export interface ManifestLoaderOptions {
291
+ url: string;
292
+ timeout?: number;
293
+ maxRetries?: number;
294
+ headers?: Record<string, string>;
295
+ withCredentials?: boolean;
296
+ }
297
+ //# sourceMappingURL=manifest.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.types.d.ts","sourceRoot":"","sources":["../../src/types/manifest.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=playbutton.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playbutton.types.d.ts","sourceRoot":"","sources":["../../src/types/playbutton.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ export type PlayerMode = 'vod' | 'live';
2
+ export interface PlayerProps {
3
+ src?: string;
4
+ width?: string | number;
5
+ height?: string | number;
6
+ defaultControls?: boolean;
7
+ autoplay?: boolean;
8
+ muted?: boolean;
9
+ poster?: string;
10
+ className?: string;
11
+ onAdLoading?: (isLoading: boolean) => void;
12
+ }
13
+ //# sourceMappingURL=player.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"player.types.d.ts","sourceRoot":"","sources":["../../src/types/player.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC;AAExC,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C"}
@@ -0,0 +1,5 @@
1
+ import { ReactNode } from 'react';
2
+ export interface SeekBarProps {
3
+ children?: ReactNode;
4
+ }
5
+ //# sourceMappingURL=seekbar.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seekbar.types.d.ts","sourceRoot":"","sources":["../../src/types/seekbar.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Media Source Extensions (MSE) & Adaptive Bitrate (ABR) Types
3
+ * Pure custom implementation
4
+ */
5
+ /**
6
+ * SourceBuffer configuration
7
+ */
8
+ export interface SourceBufferConfig {
9
+ type: 'video' | 'audio';
10
+ mimeType: string;
11
+ codecs: string;
12
+ }
13
+ /**
14
+ * Buffer range
15
+ */
16
+ export interface BufferRange {
17
+ start: number;
18
+ end: number;
19
+ }
20
+ /**
21
+ * Buffer state
22
+ */
23
+ export interface BufferState {
24
+ video: BufferRange[];
25
+ audio: BufferRange[];
26
+ buffered: number;
27
+ }
28
+ /**
29
+ * Segment to be loaded/appended
30
+ */
31
+ export interface SegmentData {
32
+ type: 'video' | 'audio';
33
+ data: ArrayBuffer;
34
+ sequence: number;
35
+ duration: number;
36
+ timestamp: number;
37
+ encrypted: boolean;
38
+ keyUri?: string;
39
+ iv?: Uint8Array;
40
+ }
41
+ /**
42
+ * Quality level (bitrate/resolution)
43
+ */
44
+ export interface QualityLevel {
45
+ id: string;
46
+ label: string;
47
+ width: number;
48
+ height: number;
49
+ bandwidth: number;
50
+ codecs: string;
51
+ frameRate?: number;
52
+ uri: string;
53
+ }
54
+ /**
55
+ * ABR algorithm configuration
56
+ */
57
+ export interface AbrConfig {
58
+ enabled: boolean;
59
+ minAutoBitrate?: number;
60
+ maxAutoBitrate?: number;
61
+ startBitrate?: number;
62
+ fastSwitching?: boolean;
63
+ bufferTarget?: number;
64
+ }
65
+ /**
66
+ * Network statistics
67
+ */
68
+ export interface NetworkStats {
69
+ bandwidth: number;
70
+ latency: number;
71
+ downloadTime: number;
72
+ bytesLoaded: number;
73
+ estimatedBandwidth: number;
74
+ }
75
+ /**
76
+ * Bandwidth estimation sample
77
+ */
78
+ export interface BandwidthSample {
79
+ timestamp: number;
80
+ bytesLoaded: number;
81
+ duration: number;
82
+ bandwidth: number;
83
+ }
84
+ /**
85
+ * Streaming engine state
86
+ */
87
+ export type StreamingState = 'idle' | 'loading' | 'buffering' | 'playing' | 'paused' | 'seeking' | 'stalled' | 'ended' | 'error';
88
+ /**
89
+ * Streaming error
90
+ */
91
+ export interface StreamingError {
92
+ code: StreamingErrorCode;
93
+ message: string;
94
+ fatal: boolean;
95
+ details?: any;
96
+ }
97
+ export declare const StreamingErrorCode: {
98
+ readonly MANIFEST_LOAD_ERROR: "MANIFEST_LOAD_ERROR";
99
+ readonly MANIFEST_PARSE_ERROR: "MANIFEST_PARSE_ERROR";
100
+ readonly SEGMENT_LOAD_ERROR: "SEGMENT_LOAD_ERROR";
101
+ readonly SEGMENT_APPEND_ERROR: "SEGMENT_APPEND_ERROR";
102
+ readonly FRAG_LOAD_ERROR: "FRAG_LOAD_ERROR";
103
+ readonly BUFFER_FULL_ERROR: "BUFFER_FULL_ERROR";
104
+ readonly BUFFER_APPEND_ERROR: "BUFFER_APPEND_ERROR";
105
+ readonly BUFFER_STALLED_ERROR: "BUFFER_STALLED_ERROR";
106
+ readonly MEDIA_SOURCE_ERROR: "MEDIA_SOURCE_ERROR";
107
+ readonly CODEC_NOT_SUPPORTED: "CODEC_NOT_SUPPORTED";
108
+ readonly NETWORK_ERROR: "NETWORK_ERROR";
109
+ readonly TIMEOUT_ERROR: "TIMEOUT_ERROR";
110
+ readonly CORS_ERROR: "CORS_ERROR";
111
+ readonly DRM_MISSING_CONFIG: "DRM_MISSING_CONFIG";
112
+ readonly UNKNOWN_ERROR: "UNKNOWN_ERROR";
113
+ };
114
+ export type StreamingErrorCode = typeof StreamingErrorCode[keyof typeof StreamingErrorCode];
115
+ /**
116
+ * Segment loader configuration
117
+ */
118
+ export interface SegmentLoaderConfig {
119
+ maxRetries: number;
120
+ retryDelay: number;
121
+ timeout: number;
122
+ headers?: Record<string, string>;
123
+ withCredentials?: boolean;
124
+ }
125
+ /**
126
+ * Segment load request
127
+ */
128
+ export interface SegmentLoadRequest {
129
+ url: string;
130
+ sequence: number;
131
+ type: 'video' | 'audio';
132
+ byteRange?: {
133
+ start: number;
134
+ end: number;
135
+ };
136
+ onProgress?: (loaded: number, total: number) => void;
137
+ withCredentials?: boolean;
138
+ }
139
+ /**
140
+ * Segment load response
141
+ */
142
+ export interface SegmentLoadResponse {
143
+ data: ArrayBuffer;
144
+ url: string;
145
+ sequence: number;
146
+ duration: number;
147
+ stats: {
148
+ startTime: number;
149
+ endTime: number;
150
+ bytesLoaded: number;
151
+ bandwidth: number;
152
+ };
153
+ }
154
+ /**
155
+ * Current playback info
156
+ */
157
+ export interface PlaybackInfo {
158
+ state: StreamingState;
159
+ currentTime: number;
160
+ duration: number;
161
+ buffered: BufferState;
162
+ currentQuality: QualityLevel | null;
163
+ availableQualities: QualityLevel[];
164
+ bandwidth: NetworkStats;
165
+ isLive: boolean;
166
+ latency?: number;
167
+ }
168
+ //# sourceMappingURL=streaming.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.types.d.ts","sourceRoot":"","sources":["../../src/types/streaming.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Timeline Marker Types
3
+ * For rich video players with interactive event markers (sports, live events, etc.)
4
+ */
5
+ export interface TimelineEvent {
6
+ /** Event timestamp in seconds */
7
+ time: number;
8
+ /** Event type (goal, yellow, red, substitution, kickoff, etc.) */
9
+ type: string;
10
+ /** Optional custom icon (emoji or SVG) */
11
+ icon?: string;
12
+ /** Optional custom color */
13
+ color?: string;
14
+ /** Label for tooltip */
15
+ label?: string;
16
+ /** Any additional metadata */
17
+ metadata?: Record<string, any>;
18
+ }
19
+ /**
20
+ * Timeline Marker Configuration
21
+ */
22
+ export interface TimelineConfig {
23
+ /** Enable timeline markers */
24
+ enabled?: boolean;
25
+ /** Timeline events */
26
+ events?: TimelineEvent[];
27
+ /** Marker size in px */
28
+ markerSize?: number;
29
+ /** Show tooltip on hover */
30
+ showTooltip?: boolean;
31
+ /** Auto-parse from raw event data (e.g., sports API) */
32
+ parser?: (rawEvents: any[]) => TimelineEvent[];
33
+ }
34
+ /**
35
+ * Default event type styling
36
+ */
37
+ export declare const DEFAULT_EVENT_STYLES: Record<string, {
38
+ icon: string;
39
+ color: string;
40
+ }>;
41
+ /**
42
+ * Helper to parse sports API events to timeline events
43
+ * Example for football/soccer data structure
44
+ */
45
+ export declare function parseSportsEvents(rawEvents: any[]): TimelineEvent[];
46
+ //# sourceMappingURL=timeline.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline.types.d.ts","sourceRoot":"","sources":["../../src/types/timeline.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IAEb,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IAEb,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,sBAAsB;IACtB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IAEzB,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,wDAAwD;IACxD,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,aAAa,EAAE,CAAC;CAChD;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAahF,CAAC;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,aAAa,EAAE,CAgDnE"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Native HTML5 Video Element Event Types
3
+ *
4
+ * This enum provides type-safe access to all native video events.
5
+ * Using these constants prevents typos and improves maintainability.
6
+ *
7
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video#events
8
+ */
9
+ export declare const VideoEventType: {
10
+ readonly PLAY: "play";
11
+ readonly PAUSE: "pause";
12
+ readonly PLAYING: "playing";
13
+ readonly ENDED: "ended";
14
+ readonly SEEKING: "seeking";
15
+ readonly SEEKED: "seeked";
16
+ readonly WAITING: "waiting";
17
+ readonly VOLUME_CHANGE: "volumechange";
18
+ readonly TIME_UPDATE: "timeupdate";
19
+ readonly DURATION_CHANGE: "durationchange";
20
+ readonly LOADED_METADATA: "loadedmetadata";
21
+ readonly LOADED_DATA: "loadeddata";
22
+ readonly CAN_PLAY: "canplay";
23
+ readonly CAN_PLAY_THROUGH: "canplaythrough";
24
+ readonly RATE_CHANGE: "ratechange";
25
+ readonly LOAD_START: "loadstart";
26
+ readonly PROGRESS: "progress";
27
+ readonly SUSPEND: "suspend";
28
+ readonly ABORT: "abort";
29
+ readonly STALLED: "stalled";
30
+ readonly ERROR: "error";
31
+ readonly EMPTIED: "emptied";
32
+ readonly RESIZE: "resize";
33
+ };
34
+ export type VideoEventType = typeof VideoEventType[keyof typeof VideoEventType];
35
+ /**
36
+ * Media Error Codes
37
+ *
38
+ * Standard HTML5 media error codes for better error handling
39
+ */
40
+ export declare const MediaErrorCode: {
41
+ MEDIA_ERR_ABORTED: number;
42
+ MEDIA_ERR_NETWORK: number;
43
+ MEDIA_ERR_DECODE: number;
44
+ MEDIA_ERR_SRC_NOT_SUPPORTED: number;
45
+ };
46
+ export type MediaErrorCode = typeof MediaErrorCode[keyof typeof MediaErrorCode];
47
+ /**
48
+ * Type guard for checking if an event type is a valid VideoEventType
49
+ */
50
+ export declare function isVideoEventType(event: string): event is VideoEventType;
51
+ //# sourceMappingURL=video-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-events.d.ts","sourceRoot":"","sources":["../../src/types/video-events.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;CAqCjB,CAAC;AAEX,MAAM,MAAM,cAAc,GACxB,OAAO,cAAc,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAGrD;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;CAK1B,CAAA;AACD,MAAM,MAAM,cAAc,GACxB,OAAO,cAAc,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AACrD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEvE"}
@@ -0,0 +1,2 @@
1
+ export default function BufferingIndicator(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=BufferingIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BufferingIndicator.d.ts","sourceRoot":"","sources":["../../../src/ui/Common/BufferingIndicator.tsx"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,kBAAkB,4CAIzC"}
@@ -0,0 +1,3 @@
1
+ import { ControlBarProps } from '../../types/controlbar.types';
2
+ export default function ControlBar({ children }: ControlBarProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=ControlBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlBar.d.ts","sourceRoot":"","sources":["../../../src/ui/Common/ControlBar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,2CAyB/D"}
@@ -0,0 +1,3 @@
1
+ import { ControlBarProps } from '../../types/controlbar.types';
2
+ export default function ControlBarResponsive({ children }: ControlBarProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=ControlBar.responsive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlBar.responsive.d.ts","sourceRoot":"","sources":["../../../src/ui/Common/ControlBar.responsive.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,2CAiDzE"}
@@ -0,0 +1,14 @@
1
+ import { ReactNode } from 'react';
2
+ interface DropdownContextValue {
3
+ isOpen: boolean;
4
+ toggle: () => void;
5
+ close: () => void;
6
+ open: () => void;
7
+ }
8
+ export declare const DropdownContext: import('react').Context<DropdownContextValue>;
9
+ interface DropdownProps {
10
+ children: ReactNode;
11
+ }
12
+ export default function Dropdown({ children }: DropdownProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
14
+ //# sourceMappingURL=Dropdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dropdown.d.ts","sourceRoot":"","sources":["../../../../src/ui/Common/Dropdown/Dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGxE,UAAU,oBAAoB;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,eAAO,MAAM,eAAe,+CAK1B,CAAC;AAEH,UAAU,aAAa;IACrB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,aAAa,2CA8B3D"}