@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,6 @@
1
+ import { NavigationBarProps } from '../NavigationBar/NavigationBar.types';
2
+ export type MobileBarProps = Pick<NavigationBarProps, 'isScrolled' | 'isPremium' | 'labels' | 'onSearchClick'> & {
3
+ /** Fires when the hamburger is tapped. */
4
+ onMenuClick?: () => void;
5
+ className?: string;
6
+ };
@@ -0,0 +1,10 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ /**
3
+ * Mobile bar layout — 48px tall, 8px horizontal gutter, 6px gap between slots.
4
+ * Background is solid (`bg-manara-primary`) at idle and switches to the
5
+ * navbar surface + 16px backdrop blur when scrolled.
6
+ */
7
+ export declare const mobileBarVariants: (props?: ({
8
+ isScrolled?: boolean | null | undefined;
9
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
10
+ export type MobileBarVariantsProps = VariantProps<typeof mobileBarVariants>;
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+ import { NavigationBarProps } from './NavigationBar.types';
3
+ /** Responsive composer for mobile / tablet / desktop nav + shared drawer. */
4
+ export declare const NavigationBar: FC<NavigationBarProps>;
@@ -0,0 +1,8 @@
1
+ import { NavItem, NavigationLabels } from './NavigationBar.types';
2
+ /**
3
+ * Demo data for Storybook + the matrix. Real consumers supply `navItems`
4
+ * and `labels` themselves — typically from CMS — so nothing in this file
5
+ * ships through the component runtime.
6
+ */
7
+ export declare const DEMO_NAV_ITEMS: Record<string, NavItem[]>;
8
+ export declare const DEMO_LABELS: Record<string, NavigationLabels>;
@@ -0,0 +1,54 @@
1
+ import { HTMLAttributes } from 'react';
2
+ /** Single nav-bar entry. */
3
+ export interface NavItem {
4
+ key: string;
5
+ label: string;
6
+ }
7
+ /**
8
+ * All textual and aria content the NavigationBar surfaces. Supply from CMS —
9
+ * the component itself ships no hardcoded text in any language.
10
+ */
11
+ export interface NavigationLabels {
12
+ /** aria-label for the outer <nav>. */
13
+ nav: string;
14
+ /** aria-label for the drawer dialog. */
15
+ drawer: string;
16
+ /** aria-label for the close button inside the drawer. */
17
+ close: string;
18
+ /** aria-label for the Search icon button. */
19
+ search: string;
20
+ /** aria-label for the Menu (hamburger) icon button. */
21
+ menu: string;
22
+ /** Visible text on the Login button. */
23
+ login: string;
24
+ /** Visible text on the Account row (logged-in mobile drawer only). */
25
+ account: string;
26
+ }
27
+ export interface NavigationBarProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
28
+ /** Nav items — supply per region/locale. */
29
+ navItems?: NavItem[];
30
+ /** Key of the currently active nav item. */
31
+ activeItem?: string;
32
+ /** Show Avatar instead of Login. */
33
+ isLoggedIn?: boolean;
34
+ /**
35
+ * Override the auto-detected scrolled appearance. When omitted the navbar
36
+ * listens to `window.scroll` and switches past 8px. Mobile + desktop only;
37
+ * tablet ignores this value.
38
+ */
39
+ isScrolled?: boolean;
40
+ /** Crown/premium logo variant. */
41
+ isPremium?: boolean;
42
+ /** Currently selected language key — drives RTL direction and font. One of 'en' | 'ar' | 'ckb'. */
43
+ selectedLanguage?: string;
44
+ /** All textual + aria content. Required — supply from CMS. */
45
+ labels: NavigationLabels;
46
+ onLanguageChange?: (languageKey: string) => void;
47
+ onNavItemClick?: (key: string) => void;
48
+ onSearchClick?: () => void;
49
+ onLoginClick?: () => void;
50
+ onAvatarClick?: () => void;
51
+ /** Controlled drawer state (mobile + tablet). Omit for uncontrolled. */
52
+ isDrawerOpen?: boolean;
53
+ onDrawerOpenChange?: (open: boolean) => void;
54
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Returns whether the window has scrolled past 8px.
3
+ * If `controlled` is provided, returns it unchanged and skips the scroll listener.
4
+ */
5
+ export declare const useScrolled: (controlled?: boolean) => boolean;
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+ import { NavigationDrawerProps } from './NavigationDrawer.types';
3
+ /** Slide-in drawer shared by MobileBar + TabletBar; always mounted, gated by lg:hidden. */
4
+ export declare const NavigationDrawer: FC<NavigationDrawerProps>;
@@ -0,0 +1,8 @@
1
+ import { NavigationBarProps } from '../NavigationBar/NavigationBar.types';
2
+ export type NavigationDrawerProps = Pick<NavigationBarProps, 'navItems' | 'activeItem' | 'isLoggedIn' | 'selectedLanguage' | 'labels' | 'onNavItemClick' | 'onLanguageChange' | 'onLoginClick'> & {
3
+ isOpen: boolean;
4
+ onClose: () => void;
5
+ /** Fires when the Account row is tapped (logged-in mobile only). */
6
+ onAccountClick?: () => void;
7
+ className?: string;
8
+ };
@@ -0,0 +1,37 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ /**
3
+ * Outer wrapper — fixed full-viewport overlay, hidden at lg+ where the
4
+ * desktop bar takes over. Pointer events follow the open state so a closed
5
+ * drawer doesn't block clicks on page content.
6
+ */
7
+ export declare const drawerWrapperVariants: (props?: ({
8
+ isOpen?: boolean | null | undefined;
9
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
10
+ /** Dark scrim behind the panel. Tap to dismiss. */
11
+ export declare const drawerOverlayVariants: (props?: ({
12
+ isOpen?: boolean | null | undefined;
13
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
14
+ /**
15
+ * Sliding panel. Mobile is near-full-screen; tablet is a 320px partial drawer.
16
+ * Slide direction flips with `dir="rtl"` on the parent.
17
+ */
18
+ export declare const drawerPanelVariants: (props?: ({
19
+ isOpen?: boolean | null | undefined;
20
+ isRtl?: boolean | null | undefined;
21
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
22
+ /**
23
+ * Text-row button inside the drawer panel: nav item, account, or language toggle.
24
+ * All three share size, hover, and typography; they differ in justify and
25
+ * active color.
26
+ */
27
+ export declare const drawerRowVariants: (props?: ({
28
+ kind?: "nav" | "account" | "language" | null | undefined;
29
+ arabicFont?: boolean | null | undefined;
30
+ active?: boolean | null | undefined;
31
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
32
+ /** Icon-only close button at the top of the drawer header. */
33
+ export declare const drawerCloseButtonVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
34
+ export type DrawerWrapperVariantsProps = VariantProps<typeof drawerWrapperVariants>;
35
+ export type DrawerOverlayVariantsProps = VariantProps<typeof drawerOverlayVariants>;
36
+ export type DrawerPanelVariantsProps = VariantProps<typeof drawerPanelVariants>;
37
+ export type DrawerRowVariantsProps = VariantProps<typeof drawerRowVariants>;
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+ import { TabletBarProps } from './TabletBar.types';
3
+ /** Tablet layout (md – lg). 56px bar with Hamburger · centered Logo · Search · Login/Avatar. */
4
+ export declare const TabletBar: FC<TabletBarProps>;
@@ -0,0 +1,6 @@
1
+ import { NavigationBarProps } from '../NavigationBar/NavigationBar.types';
2
+ export type TabletBarProps = Pick<NavigationBarProps, 'isLoggedIn' | 'isPremium' | 'selectedLanguage' | 'labels' | 'onSearchClick' | 'onLoginClick' | 'onAvatarClick'> & {
3
+ /** Fires when the hamburger is tapped. */
4
+ onMenuClick?: () => void;
5
+ className?: string;
6
+ };
@@ -0,0 +1,10 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ /**
3
+ * Tablet bar layout — 56px tall, 32px horizontal gutter, 8px vertical gutter.
4
+ * Always translucent (`surface-manara-navbar` + 16px backdrop blur);
5
+ * tablet has no opaque/non-scrolled state, so `isScrolled` is ignored.
6
+ *
7
+ * Display (`flex` / `hidden`) is owned by the composer's responsive className.
8
+ */
9
+ export declare const tabletBarVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
10
+ export type TabletBarVariantsProps = VariantProps<typeof tabletBarVariants>;
@@ -0,0 +1,2 @@
1
+ export { NavigationBar } from './NavigationBar/NavigationBar';
2
+ export type { NavItem, NavigationBarProps, NavigationLabels } from './NavigationBar/NavigationBar.types';
@@ -0,0 +1,23 @@
1
+ import { TabButtonProps } from './TabButton.types';
2
+ /**
3
+ * TabButton Component - Manara Design System
4
+ *
5
+ * An individual tab button — the building block used inside TabGroup.
6
+ * Can also be used standalone.
7
+ *
8
+ * Props mirror the Figma component playground:
9
+ * - state: default / hover / pressed (Storybook demo; CSS handles real interaction)
10
+ * - size: default / medium / large
11
+ * - isArabic: Arabic RTL mode
12
+ * - isSelected: selected state (green text + accent bg)
13
+ * - icon: optional icon before the label
14
+ * - label: tab label text
15
+ * - isFocused: Storybook-only forced focus ring
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * <TabButton isSelected label="Active" />
20
+ * <TabButton label="Inactive" icon={<Grid fill="currentColor" />} />
21
+ * ```
22
+ */
23
+ export declare const TabButton: import('react').ForwardRefExoticComponent<TabButtonProps & import('react').RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,57 @@
1
+ import { ButtonHTMLAttributes, ReactNode } from 'react';
2
+ /**
3
+ * Tab button size variants
4
+ */
5
+ export type TabButtonSize = 'default' | 'medium' | 'large';
6
+ /**
7
+ * Tab button state (for Storybook/testing)
8
+ */
9
+ export type TabButtonState = 'default' | 'hover' | 'pressed';
10
+ /**
11
+ * Props for the individual TabButton component (building block)
12
+ *
13
+ * Extends native `<button>` attributes so consumers can pass `aria-*`, `data-*`, etc.
14
+ * `onClick` is narrowed to `() => void` (no event arg) for simpler consumer usage.
15
+ */
16
+ export interface TabButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick'> {
17
+ /**
18
+ * Size variant
19
+ * @default 'default'
20
+ */
21
+ size?: TabButtonSize;
22
+ /**
23
+ * Whether this tab is currently selected
24
+ * @default false
25
+ */
26
+ isSelected?: boolean;
27
+ /**
28
+ * Whether to render in Arabic mode (RTL)
29
+ * @default false
30
+ */
31
+ isArabic?: boolean;
32
+ /**
33
+ * Tab label text
34
+ * @default 'Tab'
35
+ */
36
+ label?: string;
37
+ /**
38
+ * Optional icon displayed before the label
39
+ */
40
+ icon?: ReactNode;
41
+ /**
42
+ * Visual state override (for Storybook/testing).
43
+ * Hover and pressed states are handled via CSS in production.
44
+ * @default 'default'
45
+ */
46
+ state?: TabButtonState;
47
+ /**
48
+ * Whether the tab is focused (for Storybook/testing).
49
+ * Native browser focus is handled via CSS.
50
+ * @default false
51
+ */
52
+ isFocused?: boolean;
53
+ /**
54
+ * Click handler
55
+ */
56
+ onClick?: () => void;
57
+ }
@@ -0,0 +1,24 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ /**
3
+ * TabButton variants using CVA (Class Variance Authority)
4
+ * Based on Manara Design System specifications
5
+ *
6
+ * Sizes (from Figma):
7
+ * - default: h-40px, rounded-12px, Body/Small/SemiBold (14px)
8
+ * - medium: h-48px, rounded-12px, Body/Default/SemiBold (16px)
9
+ * - large: h-56px, rounded-12px, Body/Large/SemiBold (18px)
10
+ *
11
+ * States (from Figma, applied via CSS pseudo-classes):
12
+ * - selected default: surface/accent (#0d0e25), text/selected (#13cb5c)
13
+ * - selected hover: surface/hover (#2e2f42), text/selected (#13cb5c)
14
+ * - selected pressed: surface/accent (#0d0e25), text/selected (#13cb5c)
15
+ * - unselected default: no bg, text/secondary (#bfc0c6)
16
+ * - unselected hover: surface/hover (#2e2f42), text/primary (#ebebed)
17
+ * - unselected pressed: surface/accent (#0d0e25), text/secondary (#bfc0c6)
18
+ */
19
+ export declare const tabButtonVariants: (props?: ({
20
+ size?: "default" | "medium" | "large" | null | undefined;
21
+ isSelected?: boolean | null | undefined;
22
+ isArabic?: boolean | null | undefined;
23
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
24
+ export type TabButtonVariantsProps = VariantProps<typeof tabButtonVariants>;
@@ -0,0 +1,23 @@
1
+ import { FC } from 'react';
2
+ import { TabGroupProps } from './TabGroup.types';
3
+ /**
4
+ * TabGroup Component - Manara Design System
5
+ *
6
+ * A Tab is used to navigate between content groups or views within the same screen.
7
+ * Renders a group of tab buttons inside a pill-shaped container.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * const [tab, setTab] = useState('tab1');
12
+ * <TabGroup
13
+ * tabs={[
14
+ * { value: 'tab1', label: 'First' },
15
+ * { value: 'tab2', label: 'Second' },
16
+ * { value: 'tab3', label: 'Third' },
17
+ * ]}
18
+ * value={tab}
19
+ * onChange={setTab}
20
+ * />
21
+ * ```
22
+ */
23
+ export declare const TabGroup: FC<TabGroupProps>;
@@ -0,0 +1,52 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ /**
3
+ * Tab group size variants
4
+ */
5
+ export type TabGroupSize = 'default' | 'medium' | 'large';
6
+ /**
7
+ * A single tab item definition used by TabGroup
8
+ */
9
+ export interface TabItem {
10
+ /**
11
+ * Unique key for the tab
12
+ */
13
+ value: string;
14
+ /**
15
+ * Label text displayed in the tab
16
+ */
17
+ label: string;
18
+ /**
19
+ * Optional icon displayed before the label
20
+ */
21
+ icon?: ReactNode;
22
+ }
23
+ /**
24
+ * Props for the TabGroup component
25
+ *
26
+ * Extends native `<div>` attributes so consumers can pass `data-*`, `aria-*`, etc.
27
+ * `onChange` is narrowed to `(value: string) => void` for tab selection.
28
+ */
29
+ export interface TabGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
30
+ /**
31
+ * Size variant of all tabs in the group
32
+ * @default 'default'
33
+ */
34
+ size?: TabGroupSize;
35
+ /**
36
+ * Array of tab items to render
37
+ */
38
+ tabs: TabItem[];
39
+ /**
40
+ * Currently selected tab value (controlled)
41
+ */
42
+ value: string;
43
+ /**
44
+ * Callback fired when a tab is selected
45
+ */
46
+ onChange: (value: string) => void;
47
+ /**
48
+ * Whether to render in Arabic mode (RTL)
49
+ * @default false
50
+ */
51
+ isArabic?: boolean;
52
+ }
@@ -0,0 +1,13 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ /**
3
+ * TabGroup container variants
4
+ *
5
+ * Container sizes (from Figma):
6
+ * - default: h-48px (40px tab + 4px padding top + 4px padding bottom)
7
+ * - medium: h-56px (48px tab + 4px + 4px)
8
+ * - large: h-64px (56px tab + 4px + 4px)
9
+ */
10
+ export declare const tabGroupVariants: (props?: ({
11
+ size?: "default" | "medium" | "large" | null | undefined;
12
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
13
+ export type TabGroupVariantsProps = VariantProps<typeof tabGroupVariants>;
@@ -0,0 +1,2 @@
1
+ export { TabButton } from './TabButton/TabButton';
2
+ export { TabGroup } from './TabGroup/TabGroup';
@@ -0,0 +1,17 @@
1
+ import { FC } from 'react';
2
+ import { TagProps } from './Tag.types';
3
+ /**
4
+ * Tag Component — Manara Design System
5
+ *
6
+ * A tag identifies and labels a piece of UI content for quick recognition and navigation.
7
+ * Supports three colour appearances, three display types (outline / ghost / fill),
8
+ * three sizes, icon-only mode, optional remove button, and Arabic RTL.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * <Tag appearance="brand" type="outline" size="40" icon={<Crown fill="currentColor" />} label="Premium" />
13
+ * <Tag appearance="critical" type="fill" size="32" label="Expired" removable onRemove={() => {}} />
14
+ * <Tag appearance="neutral" type="ghost" size="24" icon={<Star fill="currentColor" />} iconOnly />
15
+ * ```
16
+ */
17
+ export declare const Tag: FC<TagProps>;
@@ -0,0 +1,76 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ /**
3
+ * Visual colour variant of the tag
4
+ */
5
+ export type TagAppearance = 'brand' | 'critical' | 'neutral';
6
+ /**
7
+ * Display style of the tag
8
+ */
9
+ export type TagType = 'outline' | 'ghost' | 'fill';
10
+ /**
11
+ * Height variant of the tag (in px)
12
+ */
13
+ export type TagSize = '40' | '32' | '24';
14
+ /**
15
+ * Shared props for all Tag variants
16
+ * Extends native `<div>` attributes so consumers can pass `data-*`, `aria-*`, etc.
17
+ */
18
+ interface TagBaseProps extends HTMLAttributes<HTMLDivElement> {
19
+ /**
20
+ * Visual colour variant
21
+ * @default 'brand'
22
+ */
23
+ appearance?: TagAppearance;
24
+ /**
25
+ * Display style — outline adds a 2px border, ghost is borderless, fill uses a solid background
26
+ * @default 'outline'
27
+ */
28
+ type?: TagType;
29
+ /**
30
+ * Height variant in pixels
31
+ * @default '40'
32
+ */
33
+ size?: TagSize;
34
+ /**
35
+ * Renders label with Arabic font and reverses icon/label order (RTL)
36
+ * @default false
37
+ */
38
+ isArabic?: boolean;
39
+ /**
40
+ * When true, shows a close/remove button after the label
41
+ * @default false
42
+ */
43
+ removable?: boolean;
44
+ /**
45
+ * Callback fired when the remove button is clicked
46
+ */
47
+ onRemove?: () => void;
48
+ }
49
+ /**
50
+ * When iconOnly is true, icon is required (otherwise the tag would be empty).
51
+ */
52
+ interface TagIconOnlyProps extends TagBaseProps {
53
+ iconOnly: true;
54
+ icon: ReactNode;
55
+ label?: string;
56
+ }
57
+ /**
58
+ * When iconOnly is false or omitted, icon is optional.
59
+ */
60
+ interface TagWithLabelProps extends TagBaseProps {
61
+ iconOnly?: false;
62
+ icon?: ReactNode;
63
+ /**
64
+ * Label text displayed inside the tag
65
+ * @default 'Label'
66
+ */
67
+ label?: string;
68
+ }
69
+ /**
70
+ * Props for the Tag component
71
+ *
72
+ * Extends native `<div>` attributes so consumers can pass `data-*`, `aria-*`, etc.
73
+ * When `iconOnly` is true, `icon` becomes required.
74
+ */
75
+ export type TagProps = TagIconOnlyProps | TagWithLabelProps;
76
+ export {};
@@ -0,0 +1,26 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ /**
3
+ * Tag container variants using CVA
4
+ *
5
+ * Sizes (from Figma):
6
+ * - '40': h-40px, radius-12px, Body/Default/SemiBold (16px), icon 24px
7
+ * - '32': h-32px, radius-12px, Body/Small/SemiBold (14px), icon 20px
8
+ * - '24': h-24px, radius-8px, Caption/Default/SemiBold (12px), icon 16px
9
+ *
10
+ * Type × Appearance colour matrix (from Figma):
11
+ * - outline: 2px border, background = background/primary (#0d0e25)
12
+ * - ghost: no border, background = background/primary (#0d0e25)
13
+ * - fill: no border, background = solid colour per appearance
14
+ *
15
+ * Padding (iconOnly creates a square tag):
16
+ * - size=40, with-label: p-8px | iconOnly: p-8px (8+24+8 = 40px ✓)
17
+ * - size=32, with-label: px-8 py-6 | iconOnly: p-6px (6+20+6 = 32px ✓)
18
+ * - size=24, with-label: px-6 py-4 | iconOnly: p-4px (4+16+4 = 24px ✓)
19
+ */
20
+ export declare const tagVariants: (props?: ({
21
+ size?: "24" | "32" | "40" | null | undefined;
22
+ appearance?: "critical" | "brand" | "neutral" | null | undefined;
23
+ type?: "fill" | "outline" | "ghost" | null | undefined;
24
+ iconOnly?: boolean | null | undefined;
25
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
26
+ export type TagVariantsProps = VariantProps<typeof tagVariants>;
@@ -0,0 +1 @@
1
+ export { Tag } from './Tag';
@@ -0,0 +1,16 @@
1
+ import { FC } from 'react';
2
+ import { ToastProps } from './Toast.types';
3
+ /**
4
+ * Toast Component — Manara Design System
5
+ *
6
+ * Toasts inform users of low-priority messages and disappear quickly to avoid distractions.
7
+ * Supports neutral / brand / critical types, loading state, closable, and Arabic RTL.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * <Toast type="neutral" message="Changes saved." />
12
+ * <Toast type="critical" message="Failed to save." closable onClose={() => {}} />
13
+ * <Toast type="brand" message="Processing..." isLoading />
14
+ * ```
15
+ */
16
+ export declare const Toast: FC<ToastProps>;
@@ -0,0 +1,56 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ /**
3
+ * Toast type — determines border colour and default icon
4
+ */
5
+ export type ToastType = 'neutral' | 'brand' | 'critical';
6
+ /**
7
+ * Props for the Toast component
8
+ *
9
+ * Extends native `<div>` attributes so consumers can pass `data-*`, `aria-*`, etc.
10
+ */
11
+ export interface ToastProps extends HTMLAttributes<HTMLDivElement> {
12
+ /**
13
+ * Toast type — neutral/brand use default border, critical uses red border
14
+ * @default 'neutral'
15
+ */
16
+ type?: ToastType;
17
+ /**
18
+ * Uses Arabic font and RTL layout
19
+ * @default false
20
+ */
21
+ isArabic?: boolean;
22
+ /**
23
+ * Replaces the status icon with a loading spinner
24
+ * @default false
25
+ */
26
+ isLoading?: boolean;
27
+ /**
28
+ * Allows the message to wrap to multiple lines
29
+ * @default false
30
+ */
31
+ multiline?: boolean;
32
+ /**
33
+ * Shows a close/dismiss button
34
+ * @default true
35
+ */
36
+ closable?: boolean;
37
+ /**
38
+ * Message text displayed in the toast
39
+ * @default 'Short feedback message.'
40
+ */
41
+ message?: string;
42
+ /**
43
+ * Custom icon override — replaces the default type-based icon
44
+ */
45
+ icon?: ReactNode;
46
+ /**
47
+ * Callback fired when the close button is clicked
48
+ */
49
+ onClose?: () => void;
50
+ /**
51
+ * Storybook-only: forces the focus ring visible on the close button.
52
+ * Real focus is handled by focus-visible CSS on the button.
53
+ * @default false
54
+ */
55
+ isFocused?: boolean;
56
+ }
@@ -0,0 +1,18 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ /**
3
+ * Toast container variants using CVA
4
+ *
5
+ * From Figma:
6
+ * - Container: surface/accent (#0d0e25), border 2px, radius 16px, padding 12px, gap 8px
7
+ * - Shadow: 0px 12px 16px -6px rgba(0,0,0,0.4)
8
+ * - Border colour: neutral/brand → border/primary (#3b3b4e), critical → border/critical (#ad3131)
9
+ * - Icon: 32px — neutral/brand = CircleCheck (green), critical = TriangleExclamation (red)
10
+ * - Text: Body/Small/Regular (14px), text/primary (#ebebed)
11
+ * - Close: 24px icon
12
+ * - Width: mobile 359px, tablet 480px (consumer-controlled via className)
13
+ */
14
+ export declare const toastVariants: (props?: ({
15
+ type?: "critical" | "brand" | "neutral" | null | undefined;
16
+ multiline?: boolean | null | undefined;
17
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
18
+ export type ToastVariantsProps = VariantProps<typeof toastVariants>;
@@ -0,0 +1 @@
1
+ export { Toast } from './Toast';
@@ -0,0 +1,3 @@
1
+ import { PlaybackActionsProps } from './PlaybackActions.types';
2
+ /** Center-screen playback cluster: skip-back · play/pause · skip-forward. When `pulsedKey` matches a button, that button flashes the keyboard-activation visual in two stages (focus ring → white fill). */
3
+ export declare const PlaybackActions: import('react').ForwardRefExoticComponent<PlaybackActionsProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,16 @@
1
+ import { HTMLAttributes } from 'react';
2
+ import { PlaybackPulseKey } from '../hooks/usePlaybackPulse/usePlaybackPulse.types';
3
+ export interface PlaybackActionsProps extends HTMLAttributes<HTMLDivElement> {
4
+ /** @default false */
5
+ isPaused?: boolean;
6
+ /** @default 10 */
7
+ skipSeconds?: number;
8
+ onPlayPause?: () => void;
9
+ onSkipBack?: () => void;
10
+ onSkipForward?: () => void;
11
+ isDisabled?: boolean;
12
+ /** Render the ±skipSeconds buttons. Set false during ads — play/pause only. @default true */
13
+ showSkip?: boolean;
14
+ /** When set, the matching button briefly flashes the white-fill + focus-ring keyboard-activation visual. */
15
+ pulsedKey?: PlaybackPulseKey | null;
16
+ }
@@ -0,0 +1,7 @@
1
+ import { PlayerUIProps } from './PlayerUI.types';
2
+ /**
3
+ * Controls overlay — `absolute inset-0` over a relative video stage. Auto-hides the HUD after idle while keeping
4
+ * the scrubber hoverable; click-to-play backdrop toggles playback; Skip Intro / Next Episode pills time-gate
5
+ * against `currentTimeSec` and cross-fade between in-row and floating anchors.
6
+ */
7
+ export declare const PlayerUI: import('react').ForwardRefExoticComponent<PlayerUIProps & import('react').RefAttributes<HTMLDivElement>>;