@1001tv/manara 0.0.3-beta.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 (466) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +105 -0
  3. package/dist/assets/icons/AlarmExclamation.d.ts +2 -0
  4. package/dist/assets/icons/AlarmExclamationOutline.d.ts +2 -0
  5. package/dist/assets/icons/Alert.d.ts +2 -0
  6. package/dist/assets/icons/AlertOutline.d.ts +2 -0
  7. package/dist/assets/icons/AngleDown.d.ts +2 -0
  8. package/dist/assets/icons/AngleDownOutline.d.ts +2 -0
  9. package/dist/assets/icons/AngleLeft.d.ts +2 -0
  10. package/dist/assets/icons/AngleLeftOutline.d.ts +2 -0
  11. package/dist/assets/icons/AngleRight.d.ts +2 -0
  12. package/dist/assets/icons/AngleRightOutline.d.ts +2 -0
  13. package/dist/assets/icons/AngleUp.d.ts +2 -0
  14. package/dist/assets/icons/AngleUpOutline.d.ts +2 -0
  15. package/dist/assets/icons/ArrowLeft.d.ts +2 -0
  16. package/dist/assets/icons/ArrowLeftOutline.d.ts +2 -0
  17. package/dist/assets/icons/ArrowRight.d.ts +2 -0
  18. package/dist/assets/icons/ArrowRightOutline.d.ts +2 -0
  19. package/dist/assets/icons/ArrowUpLeft.d.ts +2 -0
  20. package/dist/assets/icons/ArrowUpLeftOutline.d.ts +2 -0
  21. package/dist/assets/icons/ArrowUpRight.d.ts +2 -0
  22. package/dist/assets/icons/ArrowUpRightOutline.d.ts +2 -0
  23. package/dist/assets/icons/ArrowUpRightSquare.d.ts +2 -0
  24. package/dist/assets/icons/ArrowUpRightSquareOutline.d.ts +2 -0
  25. package/dist/assets/icons/AutoPlay.d.ts +2 -0
  26. package/dist/assets/icons/BackwardStep.d.ts +2 -0
  27. package/dist/assets/icons/BackwardStepOutline.d.ts +2 -0
  28. package/dist/assets/icons/Ban.d.ts +2 -0
  29. package/dist/assets/icons/BanOutline.d.ts +2 -0
  30. package/dist/assets/icons/Bars.d.ts +2 -0
  31. package/dist/assets/icons/BarsFilter.d.ts +2 -0
  32. package/dist/assets/icons/BarsFilterOutline.d.ts +2 -0
  33. package/dist/assets/icons/BarsOutline.d.ts +2 -0
  34. package/dist/assets/icons/Bell.d.ts +2 -0
  35. package/dist/assets/icons/BellOutline.d.ts +2 -0
  36. package/dist/assets/icons/Book.d.ts +2 -0
  37. package/dist/assets/icons/BookOutline.d.ts +2 -0
  38. package/dist/assets/icons/Box.d.ts +2 -0
  39. package/dist/assets/icons/BoxOutline.d.ts +2 -0
  40. package/dist/assets/icons/Calendar.d.ts +2 -0
  41. package/dist/assets/icons/CalendarOutline.d.ts +2 -0
  42. package/dist/assets/icons/CameraMovie.d.ts +2 -0
  43. package/dist/assets/icons/CameraMovieOutline.d.ts +2 -0
  44. package/dist/assets/icons/Check.d.ts +2 -0
  45. package/dist/assets/icons/CheckOutline.d.ts +2 -0
  46. package/dist/assets/icons/CircleCheck.d.ts +2 -0
  47. package/dist/assets/icons/CircleCheckOutline.d.ts +2 -0
  48. package/dist/assets/icons/CircleEmpty.d.ts +2 -0
  49. package/dist/assets/icons/Clapperboard.d.ts +2 -0
  50. package/dist/assets/icons/ClapperboardOutline.d.ts +2 -0
  51. package/dist/assets/icons/Close.d.ts +2 -0
  52. package/dist/assets/icons/CloseCircle.d.ts +2 -0
  53. package/dist/assets/icons/CloseCircleOutline.d.ts +2 -0
  54. package/dist/assets/icons/CloseOutline.d.ts +2 -0
  55. package/dist/assets/icons/CloudExclamation.d.ts +2 -0
  56. package/dist/assets/icons/CloudExclamationOutline.d.ts +2 -0
  57. package/dist/assets/icons/CompressWide.d.ts +2 -0
  58. package/dist/assets/icons/CompressWideOutline.d.ts +2 -0
  59. package/dist/assets/icons/Contract.d.ts +2 -0
  60. package/dist/assets/icons/ContractOutline.d.ts +2 -0
  61. package/dist/assets/icons/CreditCard.d.ts +2 -0
  62. package/dist/assets/icons/CreditCardOutline.d.ts +2 -0
  63. package/dist/assets/icons/Crown.d.ts +2 -0
  64. package/dist/assets/icons/CrownOutline.d.ts +2 -0
  65. package/dist/assets/icons/Diamond.d.ts +2 -0
  66. package/dist/assets/icons/DiamondOutline.d.ts +2 -0
  67. package/dist/assets/icons/Display.d.ts +2 -0
  68. package/dist/assets/icons/DisplayOutline.d.ts +2 -0
  69. package/dist/assets/icons/Edit.d.ts +2 -0
  70. package/dist/assets/icons/EditOutline.d.ts +2 -0
  71. package/dist/assets/icons/EllipsisVertical.d.ts +2 -0
  72. package/dist/assets/icons/Email.d.ts +2 -0
  73. package/dist/assets/icons/Eye.d.ts +2 -0
  74. package/dist/assets/icons/EyeOutline.d.ts +2 -0
  75. package/dist/assets/icons/EyeSlash.d.ts +2 -0
  76. package/dist/assets/icons/EyeSlashOutline.d.ts +2 -0
  77. package/dist/assets/icons/Facebook.d.ts +2 -0
  78. package/dist/assets/icons/Family.d.ts +2 -0
  79. package/dist/assets/icons/FamilyOutline.d.ts +2 -0
  80. package/dist/assets/icons/Film.d.ts +2 -0
  81. package/dist/assets/icons/FilmOutline.d.ts +2 -0
  82. package/dist/assets/icons/Football.d.ts +2 -0
  83. package/dist/assets/icons/FootballOutline.d.ts +2 -0
  84. package/dist/assets/icons/ForwardStep.d.ts +2 -0
  85. package/dist/assets/icons/ForwardStepOutline.d.ts +2 -0
  86. package/dist/assets/icons/FullScreen.d.ts +2 -0
  87. package/dist/assets/icons/FullScreenOutline.d.ts +2 -0
  88. package/dist/assets/icons/Gear.d.ts +2 -0
  89. package/dist/assets/icons/GearOutline.d.ts +2 -0
  90. package/dist/assets/icons/Gift.d.ts +2 -0
  91. package/dist/assets/icons/GiftOutline.d.ts +2 -0
  92. package/dist/assets/icons/Grid.d.ts +2 -0
  93. package/dist/assets/icons/GridOutline.d.ts +2 -0
  94. package/dist/assets/icons/GridTwoPlus.d.ts +2 -0
  95. package/dist/assets/icons/GridTwoPlusOutline.d.ts +2 -0
  96. package/dist/assets/icons/GripDots.d.ts +2 -0
  97. package/dist/assets/icons/GripDotsOutline.d.ts +2 -0
  98. package/dist/assets/icons/Hd.d.ts +2 -0
  99. package/dist/assets/icons/Headset.d.ts +2 -0
  100. package/dist/assets/icons/HeadsetOutline.d.ts +2 -0
  101. package/dist/assets/icons/Heart.d.ts +2 -0
  102. package/dist/assets/icons/HeartCircleXmark.d.ts +2 -0
  103. package/dist/assets/icons/HeartCircleXmarkOutline.d.ts +2 -0
  104. package/dist/assets/icons/HeartOutline.d.ts +2 -0
  105. package/dist/assets/icons/HourglassClock.d.ts +2 -0
  106. package/dist/assets/icons/HourglassClockOutline.d.ts +2 -0
  107. package/dist/assets/icons/House.d.ts +2 -0
  108. package/dist/assets/icons/HouseOutline.d.ts +2 -0
  109. package/dist/assets/icons/IconPlaceholder.d.ts +2 -0
  110. package/dist/assets/icons/InfoCircle.d.ts +2 -0
  111. package/dist/assets/icons/InfoCircleOutline.d.ts +2 -0
  112. package/dist/assets/icons/Instagram.d.ts +2 -0
  113. package/dist/assets/icons/Language.d.ts +2 -0
  114. package/dist/assets/icons/LanguageOutline.d.ts +2 -0
  115. package/dist/assets/icons/Laptop.d.ts +2 -0
  116. package/dist/assets/icons/LaptopOutline.d.ts +2 -0
  117. package/dist/assets/icons/Link.d.ts +2 -0
  118. package/dist/assets/icons/LinkOutline.d.ts +2 -0
  119. package/dist/assets/icons/Live.d.ts +2 -0
  120. package/dist/assets/icons/LiveOutline.d.ts +2 -0
  121. package/dist/assets/icons/Loading.d.ts +2 -0
  122. package/dist/assets/icons/LoadingOutline.d.ts +2 -0
  123. package/dist/assets/icons/Lock.d.ts +2 -0
  124. package/dist/assets/icons/LockOutline.d.ts +2 -0
  125. package/dist/assets/icons/Logout.d.ts +2 -0
  126. package/dist/assets/icons/LogoutOutline.d.ts +2 -0
  127. package/dist/assets/icons/MessageExclamation.d.ts +2 -0
  128. package/dist/assets/icons/MessageExclamationOutline.d.ts +2 -0
  129. package/dist/assets/icons/MessageLines.d.ts +2 -0
  130. package/dist/assets/icons/MessageLinesOutline.d.ts +2 -0
  131. package/dist/assets/icons/MinusOutline.d.ts +2 -0
  132. package/dist/assets/icons/MinusOutlineOne.d.ts +2 -0
  133. package/dist/assets/icons/Mobile.d.ts +2 -0
  134. package/dist/assets/icons/MobileOutline.d.ts +2 -0
  135. package/dist/assets/icons/MoonStars.d.ts +2 -0
  136. package/dist/assets/icons/MoonStarsOutline.d.ts +2 -0
  137. package/dist/assets/icons/PartyHorn.d.ts +2 -0
  138. package/dist/assets/icons/PartyHornOutline.d.ts +2 -0
  139. package/dist/assets/icons/Pause.d.ts +2 -0
  140. package/dist/assets/icons/PauseOutline.d.ts +2 -0
  141. package/dist/assets/icons/PictureInPicture.d.ts +2 -0
  142. package/dist/assets/icons/Play.d.ts +2 -0
  143. package/dist/assets/icons/PlayOutline.d.ts +2 -0
  144. package/dist/assets/icons/Plus.d.ts +2 -0
  145. package/dist/assets/icons/PlusOutline.d.ts +2 -0
  146. package/dist/assets/icons/Popcorn.d.ts +2 -0
  147. package/dist/assets/icons/PopcornOutline.d.ts +2 -0
  148. package/dist/assets/icons/RotateLeft.d.ts +2 -0
  149. package/dist/assets/icons/RotateLeftOutline.d.ts +2 -0
  150. package/dist/assets/icons/RotateRight.d.ts +2 -0
  151. package/dist/assets/icons/RotateRightOutline.d.ts +2 -0
  152. package/dist/assets/icons/Screencast.d.ts +2 -0
  153. package/dist/assets/icons/ScreencastOn.d.ts +2 -0
  154. package/dist/assets/icons/ScreencastOutline.d.ts +2 -0
  155. package/dist/assets/icons/Search.d.ts +2 -0
  156. package/dist/assets/icons/SearchOutline.d.ts +2 -0
  157. package/dist/assets/icons/Share.d.ts +2 -0
  158. package/dist/assets/icons/ShareOutline.d.ts +2 -0
  159. package/dist/assets/icons/Smile.d.ts +2 -0
  160. package/dist/assets/icons/SmileOutline.d.ts +2 -0
  161. package/dist/assets/icons/Sms.d.ts +2 -0
  162. package/dist/assets/icons/SmsOutline.d.ts +2 -0
  163. package/dist/assets/icons/Sparkles.d.ts +2 -0
  164. package/dist/assets/icons/SparklesOutline.d.ts +2 -0
  165. package/dist/assets/icons/Speed.d.ts +2 -0
  166. package/dist/assets/icons/SquareInfo.d.ts +2 -0
  167. package/dist/assets/icons/SquareInfoOutline.d.ts +2 -0
  168. package/dist/assets/icons/SquareQuestion.d.ts +2 -0
  169. package/dist/assets/icons/SquareQuestionOutline.d.ts +2 -0
  170. package/dist/assets/icons/SquareUser.d.ts +2 -0
  171. package/dist/assets/icons/SquareUserOutline.d.ts +2 -0
  172. package/dist/assets/icons/Subtitles.d.ts +2 -0
  173. package/dist/assets/icons/SubtitlesOutline.d.ts +2 -0
  174. package/dist/assets/icons/TenSecBackward.d.ts +2 -0
  175. package/dist/assets/icons/TenSecForward.d.ts +2 -0
  176. package/dist/assets/icons/Ticket.d.ts +2 -0
  177. package/dist/assets/icons/TicketOutline.d.ts +2 -0
  178. package/dist/assets/icons/Tiktok.d.ts +2 -0
  179. package/dist/assets/icons/TrashCan.d.ts +2 -0
  180. package/dist/assets/icons/TrashCanOutline.d.ts +2 -0
  181. package/dist/assets/icons/TriangleExclamation.d.ts +2 -0
  182. package/dist/assets/icons/TriangleExclamationOutline.d.ts +2 -0
  183. package/dist/assets/icons/Trophy.d.ts +2 -0
  184. package/dist/assets/icons/TrophyOutline.d.ts +2 -0
  185. package/dist/assets/icons/Tv.d.ts +2 -0
  186. package/dist/assets/icons/TvOutline.d.ts +2 -0
  187. package/dist/assets/icons/TwitterX.d.ts +2 -0
  188. package/dist/assets/icons/Ultimate.d.ts +2 -0
  189. package/dist/assets/icons/UltimateOutline.d.ts +2 -0
  190. package/dist/assets/icons/User.d.ts +2 -0
  191. package/dist/assets/icons/UserOutline.d.ts +2 -0
  192. package/dist/assets/icons/Video.d.ts +2 -0
  193. package/dist/assets/icons/VideoOutline.d.ts +2 -0
  194. package/dist/assets/icons/Volume.d.ts +2 -0
  195. package/dist/assets/icons/VolumeOff.d.ts +2 -0
  196. package/dist/assets/icons/VolumeOffOutline.d.ts +2 -0
  197. package/dist/assets/icons/VolumeOutline.d.ts +2 -0
  198. package/dist/assets/icons/Waveform.d.ts +2 -0
  199. package/dist/assets/icons/WaveformOutline.d.ts +2 -0
  200. package/dist/assets/icons/Whatsapp.d.ts +2 -0
  201. package/dist/assets/icons/Youtube.d.ts +2 -0
  202. package/dist/assets/icons/index.d.ts +2 -0
  203. package/dist/assets/logos/1001Logo.d.ts +2 -0
  204. package/dist/assets/logos/1001PremiumLogo.d.ts +2 -0
  205. package/dist/assets/logos/AlJazeeraLogo.d.ts +3 -0
  206. package/dist/assets/logos/AlSharqiyaLogo.d.ts +2 -0
  207. package/dist/assets/logos/AsiacellLogo.d.ts +2 -0
  208. package/dist/assets/logos/FiberXLogo.d.ts +2 -0
  209. package/dist/assets/logos/LaligaLogo.d.ts +2 -0
  210. package/dist/assets/logos/LbcLogo.d.ts +2 -0
  211. package/dist/assets/logos/NBTelLogo.d.ts +8 -0
  212. package/dist/assets/logos/OsnLogo.d.ts +2 -0
  213. package/dist/assets/logos/RotanaLogo.d.ts +2 -0
  214. package/dist/assets/logos/RoyaLogo.d.ts +2 -0
  215. package/dist/assets/logos/StarzPlayLogo.d.ts +2 -0
  216. package/dist/assets/logos/StarzPlaySportsLogo.d.ts +2 -0
  217. package/dist/assets/logos/SupercellLogo.d.ts +3 -0
  218. package/dist/assets/logos/TodLogo.d.ts +2 -0
  219. package/dist/assets/logos/WideLogo.d.ts +2 -0
  220. package/dist/assets/logos/YangoPlayLogo.d.ts +3 -0
  221. package/dist/assets/logos/ZainLogo.d.ts +2 -0
  222. package/dist/assets/logos/index.d.ts +2 -0
  223. package/dist/assets/payment-methods/Amex.d.ts +2 -0
  224. package/dist/assets/payment-methods/ApplePay.d.ts +2 -0
  225. package/dist/assets/payment-methods/GooglePay.d.ts +2 -0
  226. package/dist/assets/payment-methods/Mada.d.ts +2 -0
  227. package/dist/assets/payment-methods/Mastercard.d.ts +2 -0
  228. package/dist/assets/payment-methods/PayPal.d.ts +2 -0
  229. package/dist/assets/payment-methods/Stripe.d.ts +2 -0
  230. package/dist/assets/payment-methods/Visa.d.ts +2 -0
  231. package/dist/assets/payment-methods/ZainCash.d.ts +2 -0
  232. package/dist/assets/payment-methods/index.d.ts +2 -0
  233. package/dist/components/Alert/Alert.d.ts +10 -0
  234. package/dist/components/Alert/Alert.types.d.ts +18 -0
  235. package/dist/components/Alert/index.d.ts +1 -0
  236. package/dist/components/Avatar/Avatar.d.ts +17 -0
  237. package/dist/components/Avatar/Avatar.types.d.ts +44 -0
  238. package/dist/components/Avatar/Avatar.variants.d.ts +22 -0
  239. package/dist/components/Avatar/index.d.ts +1 -0
  240. package/dist/components/BottomSheet/BottomSheet.d.ts +10 -0
  241. package/dist/components/BottomSheet/BottomSheet.types.d.ts +35 -0
  242. package/dist/components/BottomSheet/BottomSheet.variants.d.ts +10 -0
  243. package/dist/components/BottomSheet/BottomSheetFooter/BottomSheetFooter.d.ts +4 -0
  244. package/dist/components/BottomSheet/BottomSheetFooter/BottomSheetFooter.types.d.ts +19 -0
  245. package/dist/components/BottomSheet/BottomSheetHeader/BottomSheetHeader.d.ts +6 -0
  246. package/dist/components/BottomSheet/BottomSheetHeader/BottomSheetHeader.types.d.ts +14 -0
  247. package/dist/components/BottomSheet/index.d.ts +5 -0
  248. package/dist/components/BottomSheet/useBottomSheet/useBottomSheet.d.ts +28 -0
  249. package/dist/components/Button/Button.d.ts +31 -0
  250. package/dist/components/Button/Button.types.d.ts +112 -0
  251. package/dist/components/Button/Button.variants.d.ts +25 -0
  252. package/dist/components/Button/index.d.ts +1 -0
  253. package/dist/components/Card/Card.d.ts +23 -0
  254. package/dist/components/Card/Card.types.d.ts +60 -0
  255. package/dist/components/Card/Card.variants.d.ts +18 -0
  256. package/dist/components/Card/TimelineOverlay.d.ts +11 -0
  257. package/dist/components/Card/index.d.ts +1 -0
  258. package/dist/components/Carousel/Carousel.d.ts +8 -0
  259. package/dist/components/Carousel/Carousel.types.d.ts +47 -0
  260. package/dist/components/Carousel/CarouselHeader/CarouselHeader.d.ts +8 -0
  261. package/dist/components/Carousel/CarouselHeader/CarouselHeader.types.d.ts +24 -0
  262. package/dist/components/Carousel/index.d.ts +4 -0
  263. package/dist/components/Carousel/useDragToScroll.d.ts +14 -0
  264. package/dist/components/Chip/Chip.d.ts +16 -0
  265. package/dist/components/Chip/Chip.types.d.ts +44 -0
  266. package/dist/components/Chip/Chip.variants.d.ts +20 -0
  267. package/dist/components/Chip/index.d.ts +1 -0
  268. package/dist/components/Episode/Episode.d.ts +4 -0
  269. package/dist/components/Episode/Episode.types.d.ts +24 -0
  270. package/dist/components/Episode/index.d.ts +1 -0
  271. package/dist/components/FeaturedCarousel/FeaturedCarousel.d.ts +8 -0
  272. package/dist/components/FeaturedCarousel/FeaturedCarousel.types.d.ts +43 -0
  273. package/dist/components/FeaturedCarousel/Slide/Slide.d.ts +4 -0
  274. package/dist/components/FeaturedCarousel/Slide/Slide.types.d.ts +10 -0
  275. package/dist/components/FeaturedCarousel/SlideDots/SlideDots.d.ts +4 -0
  276. package/dist/components/FeaturedCarousel/SlideDots/SlideDots.types.d.ts +11 -0
  277. package/dist/components/FeaturedCarousel/index.d.ts +1 -0
  278. package/dist/components/Footer/Footer.d.ts +12 -0
  279. package/dist/components/Footer/Footer.socials.d.ts +11 -0
  280. package/dist/components/Footer/Footer.translations.d.ts +24 -0
  281. package/dist/components/Footer/Footer.types.d.ts +5 -0
  282. package/dist/components/Footer/index.d.ts +1 -0
  283. package/dist/components/FormInputs/Checkbox/Checkbox.d.ts +22 -0
  284. package/dist/components/FormInputs/Checkbox/Checkbox.types.d.ts +63 -0
  285. package/dist/components/FormInputs/Checkbox/Checkbox.variants.d.ts +19 -0
  286. package/dist/components/FormInputs/Checkbox/index.d.ts +1 -0
  287. package/dist/components/FormInputs/Dropdown/Dropdown.d.ts +24 -0
  288. package/dist/components/FormInputs/Dropdown/Dropdown.types.d.ts +104 -0
  289. package/dist/components/FormInputs/Dropdown/Dropdown.variants.d.ts +39 -0
  290. package/dist/components/FormInputs/Dropdown/index.d.ts +1 -0
  291. package/dist/components/FormInputs/OtpInput/OtpInput.d.ts +22 -0
  292. package/dist/components/FormInputs/OtpInput/OtpInput.types.d.ts +66 -0
  293. package/dist/components/FormInputs/OtpInput/OtpInput.variants.d.ts +24 -0
  294. package/dist/components/FormInputs/OtpInput/index.d.ts +1 -0
  295. package/dist/components/FormInputs/Radio/Radio.d.ts +25 -0
  296. package/dist/components/FormInputs/Radio/Radio.types.d.ts +58 -0
  297. package/dist/components/FormInputs/Radio/Radio.variants.d.ts +30 -0
  298. package/dist/components/FormInputs/Radio/index.d.ts +1 -0
  299. package/dist/components/FormInputs/Switch/Switch.d.ts +24 -0
  300. package/dist/components/FormInputs/Switch/Switch.types.d.ts +58 -0
  301. package/dist/components/FormInputs/Switch/Switch.variants.d.ts +57 -0
  302. package/dist/components/FormInputs/Switch/index.d.ts +1 -0
  303. package/dist/components/FormInputs/TextArea/TextArea.d.ts +24 -0
  304. package/dist/components/FormInputs/TextArea/TextArea.types.d.ts +77 -0
  305. package/dist/components/FormInputs/TextArea/TextArea.variants.d.ts +25 -0
  306. package/dist/components/FormInputs/TextArea/index.d.ts +1 -0
  307. package/dist/components/FormInputs/TextField/TextField.d.ts +24 -0
  308. package/dist/components/FormInputs/TextField/TextField.types.d.ts +85 -0
  309. package/dist/components/FormInputs/TextField/TextField.variants.d.ts +23 -0
  310. package/dist/components/FormInputs/TextField/index.d.ts +1 -0
  311. package/dist/components/IconDisplay/IconDisplay.d.ts +2 -0
  312. package/dist/components/IconDisplay/IconDisplay.types.d.ts +30 -0
  313. package/dist/components/IconDisplay/index.d.ts +1 -0
  314. package/dist/components/Link/Link.d.ts +17 -0
  315. package/dist/components/Link/Link.types.d.ts +68 -0
  316. package/dist/components/Link/Link.variants.d.ts +18 -0
  317. package/dist/components/Link/index.d.ts +1 -0
  318. package/dist/components/List/List.d.ts +14 -0
  319. package/dist/components/List/List.types.d.ts +17 -0
  320. package/dist/components/List/List.variants.d.ts +22 -0
  321. package/dist/components/List/index.d.ts +2 -0
  322. package/dist/components/ListItem/ListItem.d.ts +13 -0
  323. package/dist/components/ListItem/ListItem.types.d.ts +18 -0
  324. package/dist/components/ListItem/index.d.ts +2 -0
  325. package/dist/components/Logo/Logo.d.ts +15 -0
  326. package/dist/components/Logo/Logo.helpers.d.ts +34 -0
  327. package/dist/components/Logo/Logo.types.d.ts +61 -0
  328. package/dist/components/Logo/Logo.variants.d.ts +17 -0
  329. package/dist/components/Logo/brands/AlRahma.d.ts +3 -0
  330. package/dist/components/Logo/brands/AlSharqiya.d.ts +3 -0
  331. package/dist/components/Logo/brands/Asiacell.d.ts +3 -0
  332. package/dist/components/Logo/brands/FiberX.d.ts +3 -0
  333. package/dist/components/Logo/brands/Laliga.d.ts +3 -0
  334. package/dist/components/Logo/brands/Osn.d.ts +3 -0
  335. package/dist/components/Logo/brands/Rotana.d.ts +3 -0
  336. package/dist/components/Logo/brands/Roya.d.ts +3 -0
  337. package/dist/components/Logo/brands/Starzplay.d.ts +3 -0
  338. package/dist/components/Logo/brands/StarzplaySports.d.ts +3 -0
  339. package/dist/components/Logo/brands/Tod.d.ts +3 -0
  340. package/dist/components/Logo/brands/Wide.d.ts +3 -0
  341. package/dist/components/Logo/brands/Zain.d.ts +3 -0
  342. package/dist/components/Logo/brands/_1001.d.ts +3 -0
  343. package/dist/components/Logo/brands/_1001Premium.d.ts +3 -0
  344. package/dist/components/Logo/index.d.ts +1 -0
  345. package/dist/components/Modal/Modal.d.ts +29 -0
  346. package/dist/components/Modal/Modal.types.d.ts +104 -0
  347. package/dist/components/Modal/Modal.variants.d.ts +29 -0
  348. package/dist/components/Modal/index.d.ts +1 -0
  349. package/dist/components/NavigationBar/DesktopBar/DesktopBar.d.ts +4 -0
  350. package/dist/components/NavigationBar/DesktopBar/DesktopBar.types.d.ts +4 -0
  351. package/dist/components/NavigationBar/DesktopBar/DesktopBar.variants.d.ts +10 -0
  352. package/dist/components/NavigationBar/LanguageSwitcher/LanguageSwitcher.d.ts +4 -0
  353. package/dist/components/NavigationBar/LanguageSwitcher/LanguageSwitcher.types.d.ts +11 -0
  354. package/dist/components/NavigationBar/LanguageSwitcher/LanguageSwitcher.utils.d.ts +4 -0
  355. package/dist/components/NavigationBar/LoginOrAvatar/LoginOrAvatar.d.ts +4 -0
  356. package/dist/components/NavigationBar/LoginOrAvatar/LoginOrAvatar.types.d.ts +10 -0
  357. package/dist/components/NavigationBar/MobileBar/MobileBar.d.ts +4 -0
  358. package/dist/components/NavigationBar/MobileBar/MobileBar.types.d.ts +6 -0
  359. package/dist/components/NavigationBar/MobileBar/MobileBar.variants.d.ts +10 -0
  360. package/dist/components/NavigationBar/NavigationBar/NavigationBar.d.ts +4 -0
  361. package/dist/components/NavigationBar/NavigationBar/NavigationBar.demo.d.ts +8 -0
  362. package/dist/components/NavigationBar/NavigationBar/NavigationBar.types.d.ts +54 -0
  363. package/dist/components/NavigationBar/NavigationBar/NavigationBar.utils.d.ts +5 -0
  364. package/dist/components/NavigationBar/NavigationDrawer/NavigationDrawer.d.ts +4 -0
  365. package/dist/components/NavigationBar/NavigationDrawer/NavigationDrawer.types.d.ts +8 -0
  366. package/dist/components/NavigationBar/NavigationDrawer/NavigationDrawer.variants.d.ts +37 -0
  367. package/dist/components/NavigationBar/TabletBar/TabletBar.d.ts +4 -0
  368. package/dist/components/NavigationBar/TabletBar/TabletBar.types.d.ts +6 -0
  369. package/dist/components/NavigationBar/TabletBar/TabletBar.variants.d.ts +10 -0
  370. package/dist/components/NavigationBar/index.d.ts +2 -0
  371. package/dist/components/Tab/TabButton/TabButton.d.ts +23 -0
  372. package/dist/components/Tab/TabButton/TabButton.types.d.ts +57 -0
  373. package/dist/components/Tab/TabButton/TabButton.variants.d.ts +24 -0
  374. package/dist/components/Tab/TabGroup/TabGroup.d.ts +23 -0
  375. package/dist/components/Tab/TabGroup/TabGroup.types.d.ts +52 -0
  376. package/dist/components/Tab/TabGroup/TabGroup.variants.d.ts +13 -0
  377. package/dist/components/Tab/index.d.ts +2 -0
  378. package/dist/components/Tag/Tag.d.ts +17 -0
  379. package/dist/components/Tag/Tag.types.d.ts +76 -0
  380. package/dist/components/Tag/Tag.variants.d.ts +26 -0
  381. package/dist/components/Tag/index.d.ts +1 -0
  382. package/dist/components/Toast/Toast.d.ts +16 -0
  383. package/dist/components/Toast/Toast.types.d.ts +56 -0
  384. package/dist/components/Toast/Toast.variants.d.ts +18 -0
  385. package/dist/components/Toast/index.d.ts +1 -0
  386. package/dist/components/VideoPlayer/PlaybackActions/PlaybackActions.d.ts +3 -0
  387. package/dist/components/VideoPlayer/PlaybackActions/PlaybackActions.types.d.ts +16 -0
  388. package/dist/components/VideoPlayer/PlayerUI/PlayerUI.d.ts +7 -0
  389. package/dist/components/VideoPlayer/PlayerUI/PlayerUI.types.d.ts +30 -0
  390. package/dist/components/VideoPlayer/PlayerUI/PlayerUI.utils.d.ts +5 -0
  391. package/dist/components/VideoPlayer/ProgressBar/ProgressBar.d.ts +3 -0
  392. package/dist/components/VideoPlayer/ProgressBar/ProgressBar.types.d.ts +22 -0
  393. package/dist/components/VideoPlayer/ProgressBar/ProgressBar.variants.d.ts +6 -0
  394. package/dist/components/VideoPlayer/ScrollingCard/ScrollingCard.d.ts +3 -0
  395. package/dist/components/VideoPlayer/ScrollingCard/ScrollingCard.types.d.ts +11 -0
  396. package/dist/components/VideoPlayer/TrackFrame/TrackFrame.d.ts +6 -0
  397. package/dist/components/VideoPlayer/TrackFrame/TrackFrame.types.d.ts +167 -0
  398. package/dist/components/VideoPlayer/TrackFrame/components/AdInfoRow.d.ts +7 -0
  399. package/dist/components/VideoPlayer/TrackFrame/components/DefaultInfoRow.d.ts +15 -0
  400. package/dist/components/VideoPlayer/TrackFrame/components/PlayerLabel/PlayerLabel.d.ts +3 -0
  401. package/dist/components/VideoPlayer/TrackFrame/components/PlayerLabel/PlayerLabel.types.d.ts +7 -0
  402. package/dist/components/VideoPlayer/TrackFrame/components/PlayerMenuPanel/PlayerMenuPanel.d.ts +3 -0
  403. package/dist/components/VideoPlayer/TrackFrame/components/PlayerMenuPanel/PlayerMenuPanel.types.d.ts +6 -0
  404. package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/MenusCluster.d.ts +11 -0
  405. package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/PlayerSideActions.d.ts +14 -0
  406. package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/TextActionsCluster.d.ts +7 -0
  407. package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/settings/SettingsAutoPlayRow.d.ts +6 -0
  408. package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/settings/SettingsListGroupRow.d.ts +17 -0
  409. package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/settings/SettingsMenuButton.d.ts +9 -0
  410. package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/settings/SettingsMenuRows.d.ts +8 -0
  411. package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/share/ShareMenuButton.d.ts +9 -0
  412. package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/share/ShareMenuRows.d.ts +8 -0
  413. package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/shared/IconButton.d.ts +8 -0
  414. package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/shared/MenuIconButton.d.ts +13 -0
  415. package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/shared/MenuListRow.d.ts +9 -0
  416. package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/shared/menuRowClass.d.ts +2 -0
  417. package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/subtitles/SubtitlesMenuButton.d.ts +9 -0
  418. package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/subtitles/SubtitlesMenuRows.d.ts +8 -0
  419. package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/volume/VolumeButton.d.ts +6 -0
  420. package/dist/components/VideoPlayer/TrackFrame/components/Track/Track.d.ts +3 -0
  421. package/dist/components/VideoPlayer/TrackFrame/components/Track/Track.types.d.ts +15 -0
  422. package/dist/components/VideoPlayer/TrackFrame/components/VolumeSlider/VolumeSlider.d.ts +3 -0
  423. package/dist/components/VideoPlayer/TrackFrame/components/VolumeSlider/VolumeSlider.types.d.ts +15 -0
  424. package/dist/components/VideoPlayer/VideoPlayer/VideoPlayer.d.ts +7 -0
  425. package/dist/components/VideoPlayer/VideoPlayer/VideoPlayer.types.d.ts +15 -0
  426. package/dist/components/VideoPlayer/VideoPlayer.constants.d.ts +3 -0
  427. package/dist/components/VideoPlayer/formatPlayerTime.d.ts +8 -0
  428. package/dist/components/VideoPlayer/hooks/useHudVisibility/useHudVisibility.d.ts +3 -0
  429. package/dist/components/VideoPlayer/hooks/useHudVisibility/useHudVisibility.types.d.ts +17 -0
  430. package/dist/components/VideoPlayer/hooks/useMenuToggle/useMenuToggle.d.ts +8 -0
  431. package/dist/components/VideoPlayer/hooks/useMenuToggle/useMenuToggle.types.d.ts +1 -0
  432. package/dist/components/VideoPlayer/hooks/useMergedRef/useMergedRef.d.ts +3 -0
  433. package/dist/components/VideoPlayer/hooks/useNextEpisodeCountdown/useNextEpisodeCountdown.d.ts +3 -0
  434. package/dist/components/VideoPlayer/hooks/usePlaybackPulse/usePlaybackPulse.d.ts +3 -0
  435. package/dist/components/VideoPlayer/hooks/usePlaybackPulse/usePlaybackPulse.types.d.ts +11 -0
  436. package/dist/components/VideoPlayer/hooks/usePlayerShortcuts/usePlayerShortcuts.d.ts +6 -0
  437. package/dist/components/VideoPlayer/hooks/usePlayerShortcuts/usePlayerShortcuts.types.d.ts +23 -0
  438. package/dist/components/VideoPlayer/index.d.ts +9 -0
  439. package/dist/components/VideoPlayer/playerStoryFixtures.d.ts +36 -0
  440. package/dist/fonts/Inter/InterDisplay-Light.woff2 +0 -0
  441. package/dist/fonts/Inter/InterDisplay-Medium.woff2 +0 -0
  442. package/dist/fonts/Inter/InterDisplay-Regular.woff2 +0 -0
  443. package/dist/fonts/Inter/InterDisplay-SemiBold.woff2 +0 -0
  444. package/dist/fonts/NotoKufiArabic-VariableFont.woff2 +0 -0
  445. package/dist/hooks/useDragGesture/useDragGesture.d.ts +9 -0
  446. package/dist/hooks/useDragGesture/useDragGesture.types.d.ts +15 -0
  447. package/dist/index.cjs +2 -0
  448. package/dist/index.cjs.map +1 -0
  449. package/dist/index.d.ts +29 -0
  450. package/dist/index.js +6725 -0
  451. package/dist/index.js.map +1 -0
  452. package/dist/lib/utils/cn.d.ts +9 -0
  453. package/dist/lib/utils/isTypingTarget.d.ts +7 -0
  454. package/dist/lib/utils/language.d.ts +4 -0
  455. package/dist/library.css +489 -0
  456. package/dist/styles/plugins/borders-plugin.d.ts +24 -0
  457. package/dist/styles/plugins/colors-plugin.d.ts +16 -0
  458. package/dist/styles/plugins/index.d.ts +38 -0
  459. package/dist/styles/plugins/spacing-plugin.d.ts +23 -0
  460. package/dist/styles/plugins/typography-plugin.d.ts +24 -0
  461. package/dist/tailwind-plugin.cjs +2 -0
  462. package/dist/tailwind-plugin.cjs.map +1 -0
  463. package/dist/tailwind-plugin.d.ts +6 -0
  464. package/dist/tailwind-plugin.js +713 -0
  465. package/dist/tailwind-plugin.js.map +1 -0
  466. package/package.json +94 -0
@@ -0,0 +1,30 @@
1
+ import { HTMLAttributes } from 'react';
2
+ import { TrackFrameProps } from '../TrackFrame/TrackFrame.types';
3
+ /**
4
+ * Pure controls overlay (scrim + back + playback cluster + TrackFrame). Position `absolute inset-0` inside a
5
+ * relative video stage (Bitmovin/Shaka/HLS.js mount point or a plain `<video>`). Every TrackFrame knob extends
6
+ * through, so consumers wire progress, type, side actions, and menus directly on PlayerUI.
7
+ */
8
+ export interface PlayerUIProps extends Omit<TrackFrameProps, 'isArabic' | 'className'>, Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'onVolumeChange'> {
9
+ /** Show the dark top/bottom gradient for legibility over the media. @default true */
10
+ showScrim?: boolean;
11
+ /** Show the center play/pause + skip cluster. @default true */
12
+ showPlaybackActions?: boolean;
13
+ /** Show the bottom TrackFrame strip. @default true */
14
+ showTrackFrame?: boolean;
15
+ /** @default true */
16
+ isArabic?: boolean;
17
+ /** Back navigation — button renders top-left (right in RTL) when provided. */
18
+ onBack?: () => void;
19
+ /** @default false */
20
+ isPaused?: boolean;
21
+ /** @default 10 */
22
+ skipSeconds?: number;
23
+ onPlayPause?: () => void;
24
+ onSkipBack?: () => void;
25
+ onSkipForward?: () => void;
26
+ /** HUD auto-hide idle window in ms. The HUD stays visible while `isPaused` is true. @default 3500 */
27
+ idleMs?: number;
28
+ /** Current playback position in seconds. Drives the visibility gating for `textActions.skipIntro` and `textActions.nextEpisode`. */
29
+ currentTimeSec?: number;
30
+ }
@@ -0,0 +1,5 @@
1
+ import { TextActionsConfig } from '../TrackFrame/TrackFrame.types';
2
+ /** Two stacked vertical gradients — top fade-in and bottom fade-out — matching the Figma scrim spec. */
3
+ export declare const SCRIM_BG: string;
4
+ /** Filters Skip Intro / Next Episode against the current playback time. Returns the same object when `currentTimeSec` is undefined (no gating). */
5
+ export declare const gateTextActions: (textActions: TextActionsConfig | undefined, currentTimeSec: number | undefined) => TextActionsConfig | undefined;
@@ -0,0 +1,3 @@
1
+ import { ProgressBarProps } from './ProgressBar.types';
2
+ /** 4px scrubber bar — track + brand fill + handle. While hovering or dragging, calls `renderScrollingCard(percent)` and floats the returned node above the cursor; the card position is clamped horizontally to keep it inside the bar's bounds. */
3
+ export declare const ProgressBar: import('react').ForwardRefExoticComponent<ProgressBarProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,22 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ export type ProgressBarAppearance = 'brand' | 'critical' | 'warning';
3
+ export interface ProgressBarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
4
+ /** 0–100 @default 0 */
5
+ progress?: number;
6
+ /** @default 'brand' */
7
+ appearance?: ProgressBarAppearance;
8
+ /** @default true */
9
+ showHandle?: boolean;
10
+ /**
11
+ * Render a preview node above the cursor while it is hovering or dragging
12
+ * the bar. Receives the hover position as a percent (0–100). When omitted,
13
+ * no preview is rendered.
14
+ */
15
+ renderScrollingCard?: (percent: number) => ReactNode;
16
+ /** Click/drag to seek. */
17
+ onSeek?: (progress: number) => void;
18
+ /** Fires once on pointer-down at the start of a drag. */
19
+ onDragStart?: () => void;
20
+ /** Fires once on pointer-up at the end of a drag (or on unmount mid-drag). */
21
+ onDragEnd?: () => void;
22
+ }
@@ -0,0 +1,6 @@
1
+ export declare const progressFillVariants: (props?: ({
2
+ appearance?: "critical" | "brand" | "warning" | null | undefined;
3
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
4
+ export declare const progressHandleVariants: (props?: ({
5
+ appearance?: "critical" | "brand" | "warning" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
@@ -0,0 +1,3 @@
1
+ import { ScrollingCardProps } from './ScrollingCard.types';
2
+ /** Seek-bar hover preview — 208×117 thumbnail with optional top-left tags and a centered timestamp below. Consumers compose it inside `track.renderScrollingCard`. */
3
+ export declare const ScrollingCard: ({ thumbnailUrl, thumbnailAlt, timestamp, tags }: ScrollingCardProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from 'react';
2
+ export interface ScrollingCardProps {
3
+ /** Thumbnail image URL. When omitted, the card shows a solid dark surface. */
4
+ thumbnailUrl?: string;
5
+ /** Alt text for the thumbnail. Empty string by default — the card is decorative. */
6
+ thumbnailAlt?: string;
7
+ /** Timestamp text below the thumbnail (e.g. "32:12"). */
8
+ timestamp: string;
9
+ /** Optional badges rendered in the top-left of the thumbnail (e.g. chapter chips). */
10
+ tags?: ReactNode;
11
+ }
@@ -0,0 +1,6 @@
1
+ import { TrackFrameProps } from './TrackFrame.types';
2
+ /**
3
+ * Bottom controls strip — info row on top (faded with HUD via `isInfoVisible`), scrubber row below (always visible/interactive so the seek-bar stays hoverable even when the HUD is idle).
4
+ * Orientation is fixed LTR in both languages (Arabic & English track frames share one layout — only text/font is localized).
5
+ */
6
+ export declare const TrackFrame: import('react').ForwardRefExoticComponent<TrackFrameProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,167 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ export type TrackFrameType = 'default' | 'live' | 'ad';
3
+ /** One menu entry on a side-actions icon — body shown in the popover plus a click callback. */
4
+ export interface MenuConfig {
5
+ /** Popover body (usually a list of menu rows). */
6
+ content?: ReactNode;
7
+ /** Fires alongside the open/close toggle. */
8
+ onClick?: () => void;
9
+ }
10
+ /** Title + subtitle stack on the leading side of the frame (default/live variants only). */
11
+ export interface PlayerLabelConfig {
12
+ title?: ReactNode;
13
+ subtitle?: ReactNode;
14
+ }
15
+ /** Scrubber row — elapsed/duration labels plus the ProgressBar knobs. */
16
+ export interface TrackConfig {
17
+ /** 0–100 */
18
+ progress?: number;
19
+ /** Formatted elapsed time, e.g. "0:48:24". */
20
+ currentTime?: string;
21
+ /** Formatted duration, or override (e.g. "LIVE", "00:27"). Defaults to "LIVE" for `type='live'`. */
22
+ endLabel?: string;
23
+ onSeek?: (progress: number) => void;
24
+ /**
25
+ * Renders a preview node above the cursor while it is hovering or dragging
26
+ * the bar. Receives the hover position as a percent (0–100); compose a
27
+ * `ScrollingCard` (or your own node) inside.
28
+ */
29
+ renderScrollingCard?: (percent: number) => ReactNode;
30
+ /** Fires once when the user starts dragging the seek handle. PlayerUI uses this to hide the HUD during scrub. */
31
+ onDragStart?: () => void;
32
+ /** Fires once when the drag ends (pointer-up or unmount). */
33
+ onDragEnd?: () => void;
34
+ }
35
+ /** Advertisement-variant info row: warning-yellow tag + optional Skip Ad button. */
36
+ export interface AdConfig {
37
+ /** Tag label override — defaults to "Advertisement" / "إشهار". */
38
+ label?: string;
39
+ /** Skip-Ad button label — defaults to "Skip Ad" / "تخطى الإعلان". */
40
+ skipLabel?: string;
41
+ /** Enables the Skip Ad button (otherwise shown disabled). @default false */
42
+ isSkipEnabled?: boolean;
43
+ onSkip?: () => void;
44
+ }
45
+ /** A single text-CTA entry (Skip Intro, Watch Credit) — shown when provided. */
46
+ export interface TextActionEntry {
47
+ onClick: () => void;
48
+ /** Override the default label (defaults are locale-aware: en/ar). */
49
+ label?: string;
50
+ }
51
+ /** Skip Intro entry — includes the intro time range; the pill only renders while `currentTimeSec ∈ [startSec, endSec)`. */
52
+ export interface SkipIntroEntry extends TextActionEntry {
53
+ /** Intro start (inclusive), in seconds. */
54
+ startSec: number;
55
+ /** Intro end (exclusive), in seconds. */
56
+ endSec: number;
57
+ }
58
+ /** Next Episode entry — includes the credits start time; the pill renders once `currentTimeSec >= startSec`. The optional countdown ticks down each second and auto-fires `onClick` at 0. */
59
+ export interface NextEpisodeEntry extends TextActionEntry {
60
+ /** Credits start, in seconds. */
61
+ startSec: number;
62
+ /** When set, the button label becomes "{label} {n}" and ticks down each second. Reaches 0 → fires `onClick`. */
63
+ countdownSec?: number;
64
+ }
65
+ /** Text CTAs in the side cluster — Skip Intro, Watch Credit, Next Episode. Skip Intro and Next Episode are time-gated against `currentTimeSec` from PlayerUI; Watch Credit renders whenever provided. */
66
+ export interface TextActionsConfig {
67
+ skipIntro?: SkipIntroEntry;
68
+ watchCredit?: TextActionEntry;
69
+ nextEpisode?: NextEpisodeEntry;
70
+ }
71
+ /** Direct-action icons — Picture-in-Picture, Fullscreen. Each shown when its callback is provided. */
72
+ export interface IconActionsConfig {
73
+ onPictureInPicture?: () => void;
74
+ onFullscreen?: () => void;
75
+ }
76
+ /** Share-menu callbacks. Each row renders only when its callback is provided. */
77
+ export interface ShareConfig {
78
+ onCopyUrl?: () => void;
79
+ onShareFacebook?: () => void;
80
+ onShareTwitter?: () => void;
81
+ onShareWhatsApp?: () => void;
82
+ onShareEmail?: () => void;
83
+ }
84
+ /** One entry in the Subtitles menu. The menu prepends a synthesized "Off" row above the tracks. */
85
+ export interface SubtitlesTrack {
86
+ /** Stable id passed to `onChange` when this row is picked. */
87
+ id: string;
88
+ /** Display label (e.g. "English", "Arabic"). A " - CC" suffix is appended when `isClosedCaption` is true. */
89
+ label: string;
90
+ /** Marks the track as closed-caption — renders the " - CC" suffix. */
91
+ isClosedCaption?: boolean;
92
+ }
93
+ /** Subtitles dropup config. Renders an "Off" row followed by the provided tracks; the active row shows a check. */
94
+ export interface SubtitlesConfig {
95
+ tracks: SubtitlesTrack[];
96
+ /** Active track id, or 'off' to disable subtitles. */
97
+ selected: string | 'off';
98
+ onChange: (selected: string | 'off') => void;
99
+ /** Override for the synthesized "Off" row label. */
100
+ offLabel?: string;
101
+ }
102
+ /** One choice in a Settings list group (Quality, Speed, Audio). */
103
+ export interface SettingsOption {
104
+ /** Stable id passed to the group's `onChange` when this row is picked. */
105
+ id: string;
106
+ /** Display label rendered in the submenu row and (for the selected option) inside the main row title. */
107
+ label: string;
108
+ }
109
+ /** A single-select list group inside the Settings dropup (Quality, Speed, or Audio). */
110
+ export interface SettingsListGroup {
111
+ options: SettingsOption[];
112
+ /** Active option id; used to render the check + the main-row summary "(label)". */
113
+ selected: string;
114
+ onChange: (id: string) => void;
115
+ /** Override for the row title (defaults are English: "Quality", "Playback Speed", "Audio"). */
116
+ label?: string;
117
+ }
118
+ /** Auto-play toggle inside the Settings dropup. */
119
+ export interface SettingsAutoPlay {
120
+ isEnabled: boolean;
121
+ onChange: (next: boolean) => void;
122
+ /** Override for the row label (defaults to "Auto Play"). */
123
+ label?: string;
124
+ }
125
+ /** Settings dropup config. Each section renders only when its config is provided. */
126
+ export interface SettingsConfig {
127
+ /** Video quality picker — opens a submenu to the left of the main panel. */
128
+ quality?: SettingsListGroup;
129
+ /** Playback speed picker — opens a submenu to the left of the main panel. */
130
+ speed?: SettingsListGroup;
131
+ /** Audio source/track picker (original / dubbed / language) — opens a submenu to the left of the main panel. */
132
+ audio?: SettingsListGroup;
133
+ /** Auto Play toggle row — no submenu; the row hosts a Switch. */
134
+ autoPlay?: SettingsAutoPlay;
135
+ }
136
+ /** Icon popover menus shown in the side cluster. Each shown when its config is provided. */
137
+ export interface MenusConfig {
138
+ /** Share dropup with per-target callbacks (Copy URL, Facebook, X, WhatsApp, Email). */
139
+ share?: ShareConfig;
140
+ /** Subtitles dropup — list of tracks with an "Off" entry on top. */
141
+ subtitles?: SubtitlesConfig;
142
+ episodes?: MenuConfig;
143
+ /** Settings dropup with Quality / Playback Speed / Audio submenus and an Auto Play toggle. */
144
+ settings?: SettingsConfig;
145
+ }
146
+ /** Controlled-volume config — drives the side-cluster Volume button's hover popover (vertical slider 0–100) and the mute toggle on click. */
147
+ export interface VolumeConfig {
148
+ /** 0–100 */
149
+ value: number;
150
+ onChange: (next: number) => void;
151
+ }
152
+ /** Bottom controls strip — label/ad row on top, scrubber row below, side cluster of CTAs + icons + menus. */
153
+ export interface TrackFrameProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'onVolumeChange'> {
154
+ /** @default 'default' */
155
+ type?: TrackFrameType;
156
+ /** @default true */
157
+ isArabic?: boolean;
158
+ label?: PlayerLabelConfig;
159
+ track?: TrackConfig;
160
+ ad?: AdConfig;
161
+ textActions?: TextActionsConfig;
162
+ iconActions?: IconActionsConfig;
163
+ menus?: MenusConfig;
164
+ volume?: VolumeConfig;
165
+ /** When false, the info row (title + side actions) fades out and becomes non-interactive; the scrubber row stays visible and hoverable. @default true */
166
+ isInfoVisible?: boolean;
167
+ }
@@ -0,0 +1,7 @@
1
+ import { AdConfig } from '../TrackFrame.types';
2
+ export interface AdInfoRowProps {
3
+ isArabic?: boolean;
4
+ ad?: AdConfig;
5
+ }
6
+ /** Top row of the TrackFrame in ad variant — yellow "Advertisement" tag and optional Skip Ad button. */
7
+ export declare const AdInfoRow: ({ isArabic, ad }: AdInfoRowProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { MenuKey } from '../../hooks/useMenuToggle/useMenuToggle.types';
2
+ import { IconActionsConfig, MenusConfig, PlayerLabelConfig, TextActionsConfig, TrackFrameType, VolumeConfig } from '../TrackFrame.types';
3
+ export interface DefaultInfoRowProps {
4
+ type: TrackFrameType;
5
+ isArabic?: boolean;
6
+ label?: PlayerLabelConfig;
7
+ textActions?: TextActionsConfig;
8
+ iconActions?: IconActionsConfig;
9
+ menus?: MenusConfig;
10
+ volume?: VolumeConfig;
11
+ openMenu: MenuKey | null;
12
+ onToggleMenu: (key: MenuKey) => void;
13
+ }
14
+ /** Top row of the TrackFrame in default/live variants — PlayerLabel on the leading side, PlayerSideActions on the trailing side. */
15
+ export declare const DefaultInfoRow: ({ label, isArabic, ...sideActionsProps }: DefaultInfoRowProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { PlayerLabelProps } from './PlayerLabel.types';
2
+ /** Title + subtitle stack shown above the video player track (h-56). */
3
+ export declare const PlayerLabel: import('react').ForwardRefExoticComponent<PlayerLabelProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,7 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ export interface PlayerLabelProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
3
+ title?: ReactNode;
4
+ subtitle?: ReactNode;
5
+ /** @default true */
6
+ isArabic?: boolean;
7
+ }
@@ -0,0 +1,3 @@
1
+ import { PlayerMenuPanelProps } from './PlayerMenuPanel.types';
2
+ /** Dark popover panel hosting Subtitles / Episodes / Settings / Share menu contents inside the player. */
3
+ export declare const PlayerMenuPanel: import('react').ForwardRefExoticComponent<PlayerMenuPanelProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,6 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ export interface PlayerMenuPanelProps extends HTMLAttributes<HTMLDivElement> {
3
+ /** Shows a decorative scrollbar indicator on the right edge. @default false */
4
+ isScrollable?: boolean;
5
+ children?: ReactNode;
6
+ }
@@ -0,0 +1,11 @@
1
+ import { MenuKey } from '../../../hooks/useMenuToggle/useMenuToggle.types';
2
+ import { MenusConfig, TrackFrameType, VolumeConfig } from '../../TrackFrame.types';
3
+ export interface MenusClusterProps {
4
+ type: TrackFrameType;
5
+ menus?: MenusConfig;
6
+ volume?: VolumeConfig;
7
+ openMenu: MenuKey | null;
8
+ onToggleMenu: (key: MenuKey) => void;
9
+ }
10
+ /** Popover-opening icons in the side cluster: Subtitles, Episodes (default-only), Volume slider (when configured), Settings. */
11
+ export declare const MenusCluster: ({ type, menus, volume, openMenu, onToggleMenu }: MenusClusterProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,14 @@
1
+ import { MenuKey } from '../../../hooks/useMenuToggle/useMenuToggle.types';
2
+ import { IconActionsConfig, MenusConfig, TextActionsConfig, TrackFrameType, VolumeConfig } from '../../TrackFrame.types';
3
+ export interface PlayerSideActionsProps {
4
+ type: TrackFrameType;
5
+ isArabic?: boolean;
6
+ textActions?: TextActionsConfig;
7
+ iconActions?: IconActionsConfig;
8
+ menus?: MenusConfig;
9
+ volume?: VolumeConfig;
10
+ openMenu: MenuKey | null;
11
+ onToggleMenu: (key: MenuKey) => void;
12
+ }
13
+ /** Trailing-side cluster for default/live variants. Composes the text, icon, and menu sub-clusters in Figma-spec order. */
14
+ export declare const PlayerSideActions: ({ type, isArabic, textActions, iconActions, menus, volume, openMenu, onToggleMenu, }: PlayerSideActionsProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { TextActionsConfig } from '../../TrackFrame.types';
2
+ export interface TextActionsClusterProps {
3
+ isArabic?: boolean;
4
+ textActions?: TextActionsConfig;
5
+ }
6
+ /** Text CTA pills: Skip Intro / Watch Credit / Next Episode. Each renders when its entry is provided; Next Episode appends `countdownSec` to its label when set. */
7
+ export declare const TextActionsCluster: ({ isArabic, textActions }: TextActionsClusterProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,6 @@
1
+ import { SettingsAutoPlay } from '../../../TrackFrame.types';
2
+ export interface SettingsAutoPlayRowProps {
3
+ autoPlay: SettingsAutoPlay;
4
+ }
5
+ /** Auto Play toggle row inside the Settings dropup. Hosts a Switch instead of a submenu chevron. */
6
+ export declare const SettingsAutoPlayRow: ({ autoPlay }: SettingsAutoPlayRowProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,17 @@
1
+ import { ComponentType, SVGProps } from 'react';
2
+ import { SettingsListGroup } from '../../../TrackFrame.types';
3
+ export interface SettingsListGroupRowProps {
4
+ /** Leading icon for the row (e.g. Hd for Quality, Speed for playback rate). */
5
+ Icon: ComponentType<SVGProps<SVGSVGElement>>;
6
+ /** Default title prepended to the selected option's label, overridden by `group.label`. */
7
+ defaultTitle: string;
8
+ group: SettingsListGroup;
9
+ /** True when this row's submenu is the open one. */
10
+ isOpen: boolean;
11
+ /** Toggles this row's submenu open/closed. */
12
+ onToggle: () => void;
13
+ /** Closes the entire Settings dropup; called after the user picks an option. */
14
+ closeMenu: () => void;
15
+ }
16
+ /** Settings main-panel row that opens a 210px submenu to its left when active. The trailing chevron flips to indicate the open state. */
17
+ export declare const SettingsListGroupRow: ({ Icon, defaultTitle, group, isOpen, onToggle, closeMenu }: SettingsListGroupRowProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { MenuKey } from '../../../../hooks/useMenuToggle/useMenuToggle.types';
2
+ import { SettingsConfig } from '../../../TrackFrame.types';
3
+ export interface SettingsMenuButtonProps {
4
+ settings?: SettingsConfig;
5
+ openMenu: MenuKey | null;
6
+ onToggle: (key: MenuKey) => void;
7
+ }
8
+ /** Side-actions gear icon that opens a dropup with Quality / Speed / Audio submenus and the Auto Play toggle. Renders nothing when `settings` is undefined. */
9
+ export declare const SettingsMenuButton: ({ settings, openMenu, onToggle }: SettingsMenuButtonProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,8 @@
1
+ import { SettingsConfig } from '../../../TrackFrame.types';
2
+ export interface SettingsMenuRowsProps {
3
+ settings: SettingsConfig;
4
+ /** Closes the parent Settings popover (called after the user picks any option). */
5
+ closeMenu: () => void;
6
+ }
7
+ /** Settings main-panel body. Renders the Quality / Speed / Audio rows (each opens a left-anchored submenu) plus the Auto Play toggle. Only one submenu is open at a time. */
8
+ export declare const SettingsMenuRows: ({ settings, closeMenu }: SettingsMenuRowsProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { MenuKey } from '../../../../hooks/useMenuToggle/useMenuToggle.types';
2
+ import { ShareConfig } from '../../../TrackFrame.types';
3
+ export interface ShareMenuButtonProps {
4
+ share?: ShareConfig;
5
+ openMenu: MenuKey | null;
6
+ onToggle: (key: MenuKey) => void;
7
+ }
8
+ /** Side-actions share icon that opens a dropup menu with per-target sharing callbacks. Renders nothing when `share` is undefined. */
9
+ export declare const ShareMenuButton: ({ share, openMenu, onToggle }: ShareMenuButtonProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,8 @@
1
+ import { ShareConfig } from '../../../TrackFrame.types';
2
+ export interface ShareMenuRowsProps {
3
+ share: ShareConfig;
4
+ /** Closes the parent popover after a row is activated. */
5
+ closeMenu: () => void;
6
+ }
7
+ /** Five-row share dropup body (Copy URL, Facebook, X, WhatsApp, Email). Each row renders only when its callback is provided. */
8
+ export declare const ShareMenuRows: ({ share, closeMenu }: ShareMenuRowsProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { ComponentType, SVGProps } from 'react';
2
+ export type IconButtonProps = {
3
+ Icon: ComponentType<SVGProps<SVGSVGElement>>;
4
+ label: string;
5
+ onClick?: () => void;
6
+ };
7
+ /** Plain icon-only player-ghost button. Renders nothing when `onClick` is undefined. */
8
+ export declare const IconButton: ({ Icon, label, onClick }: IconButtonProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,13 @@
1
+ import { ComponentType, SVGProps } from 'react';
2
+ import { MenuKey } from '../../../../hooks/useMenuToggle/useMenuToggle.types';
3
+ import { MenuConfig } from '../../../TrackFrame.types';
4
+ export type MenuIconButtonProps = {
5
+ Icon: ComponentType<SVGProps<SVGSVGElement>>;
6
+ label: string;
7
+ menuKey: MenuKey;
8
+ menu?: MenuConfig;
9
+ openMenu: MenuKey | null;
10
+ onToggle: (key: MenuKey) => void;
11
+ };
12
+ /** Icon button that opens a PlayerMenuPanel popover anchored above it. Renders nothing when `menu` is undefined. */
13
+ export declare const MenuIconButton: ({ Icon, label, menuKey, menu, openMenu, onToggle }: MenuIconButtonProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,9 @@
1
+ export interface MenuListRowProps {
2
+ /** Row text. */
3
+ label: string;
4
+ /** When true, paints the brand surface, switches to dark brand text, and shows a trailing check. */
5
+ isSelected?: boolean;
6
+ onClick?: () => void;
7
+ }
8
+ /** Single-line list row used by Subtitles and Settings submenus. Selected variant shows green fill + check; non-selected rows pick up surface-manara-hover on hover. */
9
+ export declare const MenuListRow: ({ label, isSelected, onClick }: MenuListRowProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ /** Shared Tailwind class string for main-panel menu rows (Share, Settings, etc.). Submenu rows use `MenuListRow` instead. */
2
+ export declare const MENU_ROW_CLASS: string;
@@ -0,0 +1,9 @@
1
+ import { MenuKey } from '../../../../hooks/useMenuToggle/useMenuToggle.types';
2
+ import { SubtitlesConfig } from '../../../TrackFrame.types';
3
+ export interface SubtitlesMenuButtonProps {
4
+ subtitles?: SubtitlesConfig;
5
+ openMenu: MenuKey | null;
6
+ onToggle: (key: MenuKey) => void;
7
+ }
8
+ /** Side-actions subtitles icon that opens a dropup with the synthesized "Off" row plus the provided tracks. Renders nothing when `subtitles` is undefined. */
9
+ export declare const SubtitlesMenuButton: ({ subtitles, openMenu, onToggle }: SubtitlesMenuButtonProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,8 @@
1
+ import { SubtitlesConfig } from '../../../TrackFrame.types';
2
+ export interface SubtitlesMenuRowsProps {
3
+ subtitles: SubtitlesConfig;
4
+ /** Closes the parent popover after a row is activated. */
5
+ closeMenu: () => void;
6
+ }
7
+ /** Subtitles dropup body — synthesized "Off" row followed by each track. Closed-caption tracks render with a " - CC" suffix. */
8
+ export declare const SubtitlesMenuRows: ({ subtitles, closeMenu }: SubtitlesMenuRowsProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { VolumeConfig } from '../../../TrackFrame.types';
2
+ export interface VolumeButtonProps {
3
+ volume?: VolumeConfig;
4
+ }
5
+ /** Volume icon — hover opens the 28×144 vertical-slider popover (200 ms hover-out grace, click-outside or Escape dismisses immediately); click on the icon toggles mute and restores the prior value. Read-only slider at 25 % when `volume` is undefined. */
6
+ export declare const VolumeButton: ({ volume }: VolumeButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { TrackProps } from './Track.types';
2
+ /** Track — times + ProgressBar, with default/live/ad variants. */
3
+ export declare const Track: import('react').ForwardRefExoticComponent<TrackProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,15 @@
1
+ import { ProgressBarProps } from '../../../ProgressBar/ProgressBar.types';
2
+ export type TrackType = 'default' | 'live' | 'ad';
3
+ /**
4
+ * Track extends ProgressBar — every ProgressBar knob (progress, showHandle,
5
+ * renderScrollingCard, onSeek) passes straight through. Track only adds `type`
6
+ * (which drives the bar's appearance) and the flanking time labels.
7
+ */
8
+ export interface TrackProps extends Omit<ProgressBarProps, 'appearance'> {
9
+ /** @default 'default' */
10
+ type?: TrackType;
11
+ /** Formatted elapsed time (e.g. "0:48:24"). */
12
+ currentTime?: string;
13
+ /** Formatted duration, or override (e.g. "LIVE", "00:27"). Defaults to "LIVE" for `type='live'`. */
14
+ endLabel?: string;
15
+ }
@@ -0,0 +1,3 @@
1
+ import { VolumeSliderProps } from './VolumeSlider.types';
2
+ /** Vertical 4px volume slider — brand fill grows bottom-up; handle rides the top of the fill. */
3
+ export declare const VolumeSlider: import('react').ForwardRefExoticComponent<VolumeSliderProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,15 @@
1
+ import { HTMLAttributes } from 'react';
2
+ export interface VolumeSliderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
3
+ /** 0–100 */
4
+ volume: number;
5
+ /** Fired on pointer drag and keyboard nudges. Omit to render read-only. */
6
+ onChange?: (next: number) => void;
7
+ /** Track height in px. @default 120 */
8
+ height?: number;
9
+ /** @default true */
10
+ showHandle?: boolean;
11
+ /** Fires once on pointer-down at the start of a drag. */
12
+ onDragStart?: () => void;
13
+ /** Fires once on pointer-up at the end of a drag. */
14
+ onDragEnd?: () => void;
15
+ }
@@ -0,0 +1,7 @@
1
+ import { VideoPlayerProps } from './VideoPlayer.types';
2
+ /**
3
+ * Demo-only 16:9 frame (video or poster) with PlayerUI stacked on top — controls drive React state but the
4
+ * `<video>` is not wired. Use for Storybook and previews; in production the real player is Bitmovin (see
5
+ * `BITMOVIN_INTEGRATION.md`) and PlayerUI mounts directly over its container.
6
+ */
7
+ export declare const VideoPlayer: import('react').ForwardRefExoticComponent<VideoPlayerProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,15 @@
1
+ import { PlayerUIProps } from '../PlayerUI/PlayerUI.types';
2
+ /**
3
+ * VideoPlayer — demo-only wrapper: renders a `<video>` (or `<img>` poster)
4
+ * inside a 16:9 frame, then stacks PlayerUI on top. The media element is not
5
+ * wired to PlayerUI callbacks — Storybook/preview use only.
6
+ *
7
+ * Production uses Bitmovin with `<PlayerUI>` over its mount; see
8
+ * `src/components/VideoPlayer/BITMOVIN_INTEGRATION.md`.
9
+ */
10
+ export interface VideoPlayerProps extends PlayerUIProps {
11
+ /** Streaming media URL. When provided, renders a `<video>`; falls back to `<img>` if only `posterSrc`. */
12
+ videoSrc?: string;
13
+ /** Poster image URL — used as the video poster, or as the standalone background when no `videoSrc`. */
14
+ posterSrc?: string;
15
+ }
@@ -0,0 +1,3 @@
1
+ export declare const ICON_SIZE_MEDIUM = "w-[24px] h-[24px]";
2
+ export declare const ICON_SIZE_LARGE = "w-[32px] h-[32px]";
3
+ export declare const DEFAULT_VOLUME = 25;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Formats a duration in seconds for display in `Track` / `TrackFrame`.
3
+ * Returns `m:ss` under an hour and `h:mm:ss` from one hour onward.
4
+ * Always emits Latin digits in both languages (player clocks stay numeric
5
+ * regardless of locale — matches Netflix/Shahid/StarzPlay).
6
+ * Negative or non-finite inputs collapse to zero.
7
+ */
8
+ export declare const formatPlayerTime: (seconds: number) => string;
@@ -0,0 +1,3 @@
1
+ import { UseHudVisibilityOptions, UseHudVisibilityResult } from './useHudVisibility.types';
2
+ /** HUD visibility — visible on activity (pointer move, key down) or while paused; hidden after `idleMs`. Returns the boolean plus a stable `wake` callers can forward to other interactions. */
3
+ export declare const useHudVisibility: (options?: UseHudVisibilityOptions) => UseHudVisibilityResult;
@@ -0,0 +1,17 @@
1
+ import { RefObject } from 'react';
2
+ export interface UseHudVisibilityOptions {
3
+ /** When true, the HUD stays visible permanently (no auto-hide while paused). */
4
+ isPaused?: boolean;
5
+ /** Element to listen on for pointer activity. Defaults to the document. */
6
+ containerRef?: RefObject<HTMLElement | null>;
7
+ /** Idle duration in ms before the HUD hides. @default 3500 */
8
+ idleMs?: number;
9
+ /** Disables auto-hide entirely; the HUD stays visible. @default true */
10
+ enabled?: boolean;
11
+ }
12
+ export interface UseHudVisibilityResult {
13
+ /** Current HUD visibility — drives opacity, cursor, and `inert` on the controls layer. */
14
+ isHudVisible: boolean;
15
+ /** Manually mark activity; resets the idle timer and reveals the HUD. */
16
+ wake: () => void;
17
+ }
@@ -0,0 +1,8 @@
1
+ import { Ref } from 'react';
2
+ import { MenuKey } from './useMenuToggle.types';
3
+ /** Open-menu state + outside-pointerdown/Escape dismissal. Merges the caller's ref with the internal hit-test container ref. */
4
+ export declare const useMenuToggle: (forwardedRef: Ref<HTMLDivElement>) => {
5
+ openMenu: MenuKey | null;
6
+ toggle: (key: MenuKey) => void;
7
+ setRefs: (node: HTMLDivElement | null) => void;
8
+ };
@@ -0,0 +1 @@
1
+ export type MenuKey = 'share' | 'subtitles' | 'episodes' | 'settings';