@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,18 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ export interface AlertProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
3
+ /** Title text — body/default/semibold, text-primary */
4
+ title?: string;
5
+ /** Description text — body/small/regular, text-secondary */
6
+ description?: string;
7
+ /**
8
+ * Leading icon rendered at 24x24 in warning colour.
9
+ * Defaults to the built-in Alert (!) icon. Pass `null` to hide.
10
+ */
11
+ icon?: ReactNode;
12
+ /** Label for the action button */
13
+ actionLabel?: string;
14
+ /** Callback fired when the action button is clicked */
15
+ onAction?: () => void;
16
+ /** Language key — drives RTL direction and Arabic font @default 'en' */
17
+ selectedLanguage?: string;
18
+ }
@@ -0,0 +1 @@
1
+ export { Alert } from './Alert';
@@ -0,0 +1,17 @@
1
+ import { FC } from 'react';
2
+ import { AvatarProps } from './Avatar.types';
3
+ /**
4
+ * Avatar Component — Manara Design System
5
+ *
6
+ * Circular avatar with a default User silhouette icon. Supports three
7
+ * sizes (32 / 40 / 48) and a selected state (brand border + icon colour).
8
+ * The focus affordance is a brighter icon (no focus ring).
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * <Avatar size="40" />
13
+ * <Avatar size="48" isSelected />
14
+ * <Avatar size="32" onSelect={() => console.log('selected')} />
15
+ * ```
16
+ */
17
+ export declare const Avatar: FC<AvatarProps>;
@@ -0,0 +1,44 @@
1
+ import { ButtonHTMLAttributes, ReactNode } from 'react';
2
+ export type AvatarSize = '32' | '40' | '48';
3
+ /**
4
+ * Visual interaction state — used by Storybook/Figma playground
5
+ * to force the focus/hover appearance for design audits.
6
+ * Real interaction states are handled by CSS pseudo-classes (hover:, focus-visible:).
7
+ *
8
+ * Note: the Avatar has no separate "pressed" visual — focus and hover both
9
+ * just brighten the icon from tertiary to secondary.
10
+ */
11
+ export type AvatarState = 'default' | 'focus';
12
+ /**
13
+ * Props for the Avatar component
14
+ *
15
+ * Extends native `<button>` attributes so consumers can pass `data-*`, `aria-*`, etc.
16
+ * `children` is omitted because the visual content is the user icon (or `icon` slot).
17
+ */
18
+ export interface AvatarProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'onSelect'> {
19
+ /**
20
+ * Diameter of the avatar in pixels.
21
+ * @default '40'
22
+ */
23
+ size?: AvatarSize;
24
+ /**
25
+ * Whether the avatar is in the selected state (brand colour border + icon).
26
+ * @default false
27
+ */
28
+ isSelected?: boolean;
29
+ /**
30
+ * Optional custom icon. Defaults to the User silhouette.
31
+ * Use `fill='currentColor'` so the icon inherits the avatar's text colour.
32
+ */
33
+ icon?: ReactNode;
34
+ /**
35
+ * Callback fired when the avatar is clicked (toggles selection).
36
+ */
37
+ onSelect?: () => void;
38
+ /**
39
+ * Storybook-only: forces a visual interaction state for design audits.
40
+ * `focus` brightens the icon to icon-secondary (matches Figma's `isFocus`).
41
+ * @default 'default'
42
+ */
43
+ state?: AvatarState;
44
+ }
@@ -0,0 +1,22 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ /**
3
+ * Avatar container variants using CVA
4
+ *
5
+ * - Sizes: 32px / 40px / 48px (square circle, rounded-full)
6
+ * - Border: 1px solid
7
+ * - Background: surface/primary (#1c1d32)
8
+ *
9
+ * isSelected state changes:
10
+ * - Unselected: border/primary (#3b3b4e), icon-tertiary (#757683)
11
+ * - Selected: border/focused (#13cb5c), icon-brand-primary (#13cb5c)
12
+ *
13
+ * Focus / hover state on the unselected variant simply brightens the
14
+ * icon from icon-tertiary (#757683) to icon-secondary (#bfc0c6).
15
+ * The avatar does NOT use a focus ring — the icon colour change IS the
16
+ * focus affordance. Handled via :hover and :focus-visible pseudo-classes.
17
+ */
18
+ export declare const avatarVariants: (props?: ({
19
+ size?: "32" | "40" | "48" | null | undefined;
20
+ isSelected?: boolean | null | undefined;
21
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
22
+ export type AvatarVariantsProps = VariantProps<typeof avatarVariants>;
@@ -0,0 +1 @@
1
+ export { Avatar } from './Avatar';
@@ -0,0 +1,10 @@
1
+ import { BottomSheetProps } from './BottomSheet.types';
2
+ /**
3
+ * BottomSheet — a panel that slides up from the bottom, draggable between a
4
+ * content-height collapsed snap and a near-viewport full snap, with drag-down
5
+ * to dismiss. Only the slot scrolls; header and footer stay fixed.
6
+ */
7
+ export declare const BottomSheet: {
8
+ ({ isOpen, onClose, snapPoints, defaultSnap, isArabic, grabber, header, children, footer, onSnapChange, className, }: BottomSheetProps): import("react/jsx-runtime").JSX.Element | null;
9
+ displayName: string;
10
+ };
@@ -0,0 +1,35 @@
1
+ import { ReactNode } from 'react';
2
+ import { BottomSheetHeaderProps } from './BottomSheetHeader/BottomSheetHeader.types';
3
+ import { BottomSheetFooterProps } from './BottomSheetFooter/BottomSheetFooter.types';
4
+ /**
5
+ * A single snap target: raw px from the bottom, a viewport fraction (`'60%'`),
6
+ * `'content'` (intrinsic content height, capped), or `'full'` (near-viewport).
7
+ */
8
+ export type SnapPoint = number | `${number}%` | 'content' | 'full';
9
+ /** The standard snap points used when `snapPoints` is not provided. */
10
+ export declare const DEFAULT_SNAP_POINTS: SnapPoint[];
11
+ /** Props for the BottomSheet component. */
12
+ export interface BottomSheetProps {
13
+ /** Whether the sheet is open. */
14
+ isOpen: boolean;
15
+ /** Called when the sheet is dismissed (backdrop, Escape, or drag-down). */
16
+ onClose: () => void;
17
+ /** Ordered snap targets the sheet can rest at. @default ['content', 'full'] */
18
+ snapPoints?: SnapPoint[];
19
+ /** Index into `snapPoints` the sheet opens at (clamped). @default 0 */
20
+ defaultSnap?: number;
21
+ /** Render in Arabic mode (RTL). @default true */
22
+ isArabic?: boolean;
23
+ /** Whether the drag grabber handle is shown. @default true */
24
+ grabber?: boolean;
25
+ /** Header configuration. Pass `false` to hide the header. */
26
+ header: BottomSheetHeaderProps | false;
27
+ /** Scrollable slot content. */
28
+ children?: ReactNode;
29
+ /** Footer configuration. Pass `false` to hide the footer. */
30
+ footer?: BottomSheetFooterProps | false;
31
+ /** Fired with the snap index whenever the sheet settles on a new snap. */
32
+ onSnapChange?: (index: number) => void;
33
+ /** Additional CSS classes for the sheet container. */
34
+ className?: string;
35
+ }
@@ -0,0 +1,10 @@
1
+ /** Full-screen backdrop; anchors the sheet to the bottom and centers it on wide viewports. */
2
+ export declare const bottomSheetOverlayVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
3
+ /** The sheet container itself — bottom-aligned, capped width on desktop, rounded top. */
4
+ export declare const bottomSheetContainerVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
5
+ /** Header — fixed (non-scrolling) region. */
6
+ export declare const bottomSheetHeaderVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
7
+ /** Slot — the only scrolling region; momentum scroll on iOS, contained overscroll. */
8
+ export declare const bottomSheetBodyVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
9
+ /** Footer — fixed region; full-width buttons stacked vertically. */
10
+ export declare const bottomSheetFooterVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+ import { BottomSheetFooterProps } from './BottomSheetFooter.types';
3
+ /** Fixed footer; Primary/Secondary/Tertiary actions stacked full-width. */
4
+ export declare const BottomSheetFooter: FC<BottomSheetFooterProps>;
@@ -0,0 +1,19 @@
1
+ import { ReactNode } from 'react';
2
+ /** Action button configuration for the footer. */
3
+ export interface BottomSheetAction {
4
+ label: ReactNode;
5
+ onClick?: () => void;
6
+ }
7
+ /** Props for the BottomSheetFooter sub-component. */
8
+ export interface BottomSheetFooterProps {
9
+ /** Primary action — rendered as a full-width fill button. */
10
+ primaryAction: BottomSheetAction;
11
+ /** Optional secondary action — full-width outline button. */
12
+ secondaryAction?: BottomSheetAction;
13
+ /** Optional tertiary action — full-width ghost button. */
14
+ tertiaryAction?: BottomSheetAction;
15
+ /** Render in Arabic mode (RTL). @default true */
16
+ isArabic?: boolean;
17
+ /** Additional CSS classes. */
18
+ className?: string;
19
+ }
@@ -0,0 +1,6 @@
1
+ import { FC } from 'react';
2
+ import { BottomSheetHeaderProps } from './BottomSheetHeader.types';
3
+ /** Fixed (non-scrolling) header with title, optional subtitle, and close button. */
4
+ export declare const BottomSheetHeader: FC<BottomSheetHeaderProps & {
5
+ onClose?: () => void;
6
+ }>;
@@ -0,0 +1,14 @@
1
+ import { ReactNode } from 'react';
2
+ /** Props for the BottomSheetHeader sub-component. */
3
+ export interface BottomSheetHeaderProps {
4
+ /** Title text shown in the header. */
5
+ title: ReactNode;
6
+ /** Optional subtitle shown below the title. */
7
+ subtitle?: ReactNode;
8
+ /** Whether the close button is visible. @default true */
9
+ closable?: boolean;
10
+ /** Render in Arabic mode (RTL). @default true */
11
+ isArabic?: boolean;
12
+ /** Additional CSS classes. */
13
+ className?: string;
14
+ }
@@ -0,0 +1,5 @@
1
+ export { BottomSheet } from './BottomSheet';
2
+ export { DEFAULT_SNAP_POINTS } from './BottomSheet.types';
3
+ export type { BottomSheetProps, SnapPoint } from './BottomSheet.types';
4
+ export type { BottomSheetHeaderProps } from './BottomSheetHeader/BottomSheetHeader.types';
5
+ export type { BottomSheetFooterProps, BottomSheetAction } from './BottomSheetFooter/BottomSheetFooter.types';
@@ -0,0 +1,28 @@
1
+ import { MouseEvent, PointerEvent } from 'react';
2
+ import { SnapPoint } from '../BottomSheet.types';
3
+ interface UseBottomSheetOptions {
4
+ isOpen: boolean;
5
+ onClose: () => void;
6
+ snapPoints: SnapPoint[];
7
+ defaultSnap: number;
8
+ closable: boolean;
9
+ onSnapChange?: (index: number) => void;
10
+ }
11
+ /**
12
+ * Drag/snap engine for BottomSheet: resolves the snap-point spec to pixel
13
+ * heights, runs pointer-drag with velocity-based nearest-snap release,
14
+ * slide-in/out, scroll-lock and Escape. Returns refs, render-state, handlers.
15
+ */
16
+ export declare const useBottomSheet: ({ isOpen, onClose, snapPoints, defaultSnap, closable, onSnapChange, }: UseBottomSheetOptions) => {
17
+ containerRef: import('react').RefObject<HTMLDivElement | null>;
18
+ slotRef: import('react').RefObject<HTMLDivElement | null>;
19
+ contentRef: import('react').RefObject<HTMLDivElement | null>;
20
+ height: number | null;
21
+ hidden: boolean;
22
+ transition: string;
23
+ onHandlePointerDown: (e: PointerEvent) => void;
24
+ onSlotPointerDown: (e: PointerEvent) => void;
25
+ handleOverlayClick: (e: MouseEvent<HTMLDivElement>) => void;
26
+ requestClose: () => void;
27
+ };
28
+ export {};
@@ -0,0 +1,31 @@
1
+ import { ButtonProps } from './Button.types';
2
+ /**
3
+ * Button Component - Manara Design System
4
+ *
5
+ * A flexible button component that supports multiple appearances, sizes, and states.
6
+ * Supports icons, loading states, Arabic text, and icon-only variants.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * // Basic button
11
+ * <Button>Click me</Button>
12
+ *
13
+ * // Outline button with icon
14
+ * <Button appearance="outline" iconBefore={<Icon />}>
15
+ * Save
16
+ * </Button>
17
+ *
18
+ * // Icon-only button with direct icon node
19
+ * <Button iconOnly={<Icon />} />
20
+ *
21
+ * // Icon-only button using iconBefore
22
+ * <Button iconOnly iconBefore={<Icon />} />
23
+ *
24
+ * // Arabic text button
25
+ * <Button isArabic>تسمية</Button>
26
+ *
27
+ * // Loading state
28
+ * <Button isLoading>Loading...</Button>
29
+ * ```
30
+ */
31
+ export declare const Button: import('react').ForwardRefExoticComponent<ButtonProps & import('react').RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,112 @@
1
+ import { ButtonHTMLAttributes, ReactNode } from 'react';
2
+ /**
3
+ * Button appearance variants based on Manara Design System
4
+ */
5
+ export type ButtonAppearance = 'fill' | 'outline' | 'ghost' | 'critical' | 'nav' | 'player-ghost';
6
+ /**
7
+ * Button size variants
8
+ */
9
+ export type ButtonSize = 'default' | 'medium' | 'large';
10
+ /**
11
+ * Button state (for styling purposes, actual state managed internally)
12
+ */
13
+ export type ButtonState = 'default' | 'hover' | 'pressed';
14
+ /**
15
+ * Type for icon nodes, excluding booleans to prevent shorthand usage errors.
16
+ */
17
+ export type ButtonIcon = Exclude<ReactNode, boolean | null | undefined>;
18
+ /**
19
+ * Base props shared by all button variants
20
+ */
21
+ interface BaseButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {
22
+ /**
23
+ * Visual style variant of the button
24
+ * @default 'fill'
25
+ */
26
+ appearance?: ButtonAppearance;
27
+ /**
28
+ * Size variant of the button
29
+ * @default 'default'
30
+ */
31
+ size?: ButtonSize;
32
+ /**
33
+ * Whether the button is in a loading state
34
+ * @default false
35
+ */
36
+ isLoading?: boolean;
37
+ /**
38
+ * Whether the button is disabled
39
+ * @default false
40
+ */
41
+ isDisabled?: boolean;
42
+ /**
43
+ * Whether to render the button in Arabic mode
44
+ * @default false
45
+ */
46
+ isArabic?: boolean;
47
+ /**
48
+ * Additional CSS classes to apply
49
+ */
50
+ className?: string;
51
+ /**
52
+ * Whether the button is focused (for Storybook/testing)
53
+ * The native browser focus is already handled in the css classes.
54
+ * This is only for testing/storybook to trigger the focus state.
55
+ * @default false
56
+ */
57
+ isFocused?: boolean;
58
+ }
59
+ /**
60
+ * Props for a standard text button
61
+ */
62
+ interface StandardButtonProps extends BaseButtonProps {
63
+ /**
64
+ * Whether to render only the icon (icon-only mode)
65
+ */
66
+ iconOnly?: false;
67
+ /**
68
+ * Button content (text or elements)
69
+ */
70
+ children: ReactNode;
71
+ /**
72
+ * Icon to display before the button text
73
+ */
74
+ iconBefore?: ButtonIcon;
75
+ /**
76
+ * Icon to display after the button text
77
+ */
78
+ iconAfter?: ButtonIcon;
79
+ }
80
+ /**
81
+ * Props for an icon-only button requiring at least one icon source
82
+ */
83
+ type IconOnlyButtonProps = BaseButtonProps & ({
84
+ /** Icon to display as the primary button content */
85
+ iconOnly: ButtonIcon;
86
+ iconBefore?: ButtonIcon;
87
+ iconAfter?: ButtonIcon;
88
+ children?: ReactNode;
89
+ } | ({
90
+ /** Whether to render only the icon (icon-only mode) */
91
+ iconOnly: true;
92
+ } & ({
93
+ /** Icon to display as the primary button content */
94
+ iconBefore: ButtonIcon;
95
+ iconAfter?: ButtonIcon;
96
+ children?: ReactNode;
97
+ } | {
98
+ iconBefore?: ButtonIcon;
99
+ /** Icon to display as the primary button content */
100
+ iconAfter: ButtonIcon;
101
+ children?: ReactNode;
102
+ } | {
103
+ iconBefore?: ButtonIcon;
104
+ iconAfter?: ReactNode;
105
+ /** Icon to display as the primary button content */
106
+ children: ButtonIcon;
107
+ })));
108
+ /**
109
+ * Props for the Button component
110
+ */
111
+ export type ButtonProps = StandardButtonProps | IconOnlyButtonProps;
112
+ export {};
@@ -0,0 +1,25 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ /**
3
+ * Button variants using CVA (Class Variance Authority)
4
+ * Based on Manara Design System specifications
5
+ *
6
+ * Appearance variants:
7
+ * - fill: Green filled button with dark green text
8
+ * - outline: Transparent with green border and green text
9
+ * - ghost: Transparent with green text only (no border)
10
+ * - critical: Transparent with red border and red text (outlined style)
11
+ *
12
+ * All variants support:
13
+ * - 3 sizes: default, medium, large
14
+ * - States: default, hover, pressed, disabled, isLoading
15
+ * - isArabic: Arabic font family
16
+ * - iconOnly: Square button with icon
17
+ */
18
+ export declare const buttonVariants: (props?: ({
19
+ appearance?: "fill" | "outline" | "ghost" | "critical" | "nav" | "player-ghost" | null | undefined;
20
+ size?: "default" | "medium" | "large" | null | undefined;
21
+ isArabic?: boolean | null | undefined;
22
+ iconOnly?: boolean | null | undefined;
23
+ isLoading?: boolean | null | undefined;
24
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
25
+ export type ButtonVariantsProps = VariantProps<typeof buttonVariants>;
@@ -0,0 +1 @@
1
+ export { Button } from './Button';
@@ -0,0 +1,23 @@
1
+ import { FC } from 'react';
2
+ import { CardProps } from './Card.types';
3
+ /**
4
+ * Card Component — Manara Design System
5
+ *
6
+ * Re-usable video tile. Renders a background image plus optional overlays:
7
+ * brand logo, timeline (progress + episode label + more menu), tags
8
+ * (premium crown + custom label badge), and a remove-from-watchlist button.
9
+ *
10
+ * Two orientations:
11
+ * - '16:9' (default) — 208 × 117, bottom overlays h-48px
12
+ * - '2:3' — 208 × 304, bottom overlays h-56px
13
+ *
14
+ * Width defaults to 208px (Figma) but is overridable via `className`
15
+ * (e.g. `className="w-full"` inside a responsive grid).
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * <Card imageSrc="/poster.jpg" imageAlt="Show" isPremium tagLabel="Live" showLogo />
20
+ * <Card orientation="2:3" imageSrc="/cover.jpg" showTimeline progress={45} episodeLabel="S1 E2" />
21
+ * ```
22
+ */
23
+ export declare const Card: FC<CardProps>;
@@ -0,0 +1,60 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ /**
3
+ * Aspect ratio variant — drives the card's height at the default 208px width
4
+ * (16:9 → 117px, 2:3 → 304px). Width is overridable via `className`.
5
+ */
6
+ export type CardOrientation = '16:9' | '2:3';
7
+ /**
8
+ * Props for the Card component
9
+ *
10
+ * Extends native `<div>` attributes so consumers can pass `data-*`, `aria-*`,
11
+ * `id`, `onClick` (when wrapping the whole card in a click target), etc.
12
+ */
13
+ export interface CardProps extends HTMLAttributes<HTMLDivElement> {
14
+ /** Image source URL — rendered as a full-bleed background image. */
15
+ imageSrc?: string;
16
+ /** Image alt text. @default '' */
17
+ imageAlt?: string;
18
+ /** Aspect ratio variant @default '16:9' */
19
+ orientation?: CardOrientation;
20
+ /** RTL mode — mirrors overlay positions and applies Arabic font to text. @default true */
21
+ isArabic?: boolean;
22
+ /**
23
+ * Storybook-only forced hover/focus border (2px brand-green outset).
24
+ * Real hover/focus is handled by CSS pseudo-classes in the variants.
25
+ * @default false
26
+ */
27
+ isHover?: boolean;
28
+ /** Show a brand logo at the bottom with dark scrim (defaults to 1001; override via `logo`). @default false */
29
+ showLogo?: boolean;
30
+ /**
31
+ * Logo slot shown when `showLogo` is true. Defaults to the neutral-white
32
+ * 1001 logo at size 16 when omitted. Pass a customised `<Logo />` to switch
33
+ * brand / appearance / isPremium.
34
+ */
35
+ logo?: ReactNode;
36
+ /**
37
+ * Show the timeline overlay (progress bar + episode label + more menu).
38
+ * Visually shares the bottom slot with `showLogo` — pick one.
39
+ * @default false
40
+ */
41
+ showTimeline?: boolean;
42
+ /** Episode label shown in the timeline overlay (e.g. 'S1 E2', 'موسم 1 حلقة 2'). */
43
+ episodeLabel?: string;
44
+ /** Watch progress 0–100 for the timeline overlay's progress bar. @default 0 */
45
+ progress?: number;
46
+ /** Click handler for the timeline more-menu button. */
47
+ onMoreClick?: () => void;
48
+ /** Show the premium (crown) badge at the top. @default false */
49
+ isPremium?: boolean;
50
+ /** Optional additional badge label (e.g. 'Live'). Renders red when set. */
51
+ tagLabel?: string;
52
+ /**
53
+ * Show the remove-from-watchlist trash button at the top corner.
54
+ * Visually shares the top corner with the tags cluster — pick one.
55
+ * @default false
56
+ */
57
+ showRemoveWatchlist?: boolean;
58
+ /** Click handler for the remove-from-watchlist button. */
59
+ onRemoveWatchlist?: () => void;
60
+ }
@@ -0,0 +1,18 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ /**
3
+ * Card container variants.
4
+ *
5
+ * Sizes (Figma default width 208px — overridable via consumer className):
6
+ * - 16:9 → h-117px (208 × 117), bottom overlay h-48px
7
+ * - 2:3 → h-304px (208 × 304), bottom overlay h-56px
8
+ *
9
+ * Border radius is always rounded-manara-150 (12px).
10
+ *
11
+ * Note: the root does NOT clip overflow because the Storybook-only `isHover`
12
+ * focus border is positioned `inset-[-2px]` (outset). Bottom overlays rely on
13
+ * `rounded-b-manara-150` to clip their own corners.
14
+ */
15
+ export declare const cardVariants: (props?: ({
16
+ orientation?: "16:9" | "2:3" | null | undefined;
17
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
18
+ export type CardVariantsProps = VariantProps<typeof cardVariants>;
@@ -0,0 +1,11 @@
1
+ import { FC, MouseEvent } from 'react';
2
+ interface TimelineOverlayProps {
3
+ overlayHeight: string;
4
+ progress: number;
5
+ episodeLabel?: string;
6
+ isArabic: boolean;
7
+ onMoreClick: (e: MouseEvent<HTMLButtonElement>) => void;
8
+ }
9
+ /** Internal sub-component of Card — bottom overlay with progress bar, episode label, and more-menu button. */
10
+ export declare const TimelineOverlay: FC<TimelineOverlayProps>;
11
+ export {};
@@ -0,0 +1 @@
1
+ export { Card } from './Card';
@@ -0,0 +1,8 @@
1
+ import { FC } from 'react';
2
+ import { CarouselProps } from './Carousel.types';
3
+ /**
4
+ * Carousel — horizontal `<Card>` row with an optional title row and edge arrow
5
+ * buttons. Pass items as a `CardProps[]` array; arrows derive from scroll
6
+ * state and auto-hide at the edges or when content fits without overflow.
7
+ */
8
+ export declare const Carousel: FC<CarouselProps>;
@@ -0,0 +1,47 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ import { CardProps } from '../Card/Card.types';
3
+ /**
4
+ * Single carousel item — a `CardProps` payload with an optional stable `id`
5
+ * used as the React `key` (falls back to array index when omitted).
6
+ *
7
+ * `id` is omitted from `CardProps` (which inherits HTML `id: string`) and
8
+ * re-declared as `string | number` so numeric indices are accepted.
9
+ */
10
+ export type CarouselItem = Omit<CardProps, 'id'> & {
11
+ id?: string | number;
12
+ };
13
+ /**
14
+ * Props for the Carousel component.
15
+ *
16
+ * Extends native `<section>` attributes so consumers can pass `id`, `data-*`,
17
+ * `aria-*`, etc.
18
+ */
19
+ export interface CarouselProps extends HTMLAttributes<HTMLElement> {
20
+ /** Items rendered in the row. Each entry is a `CardProps` payload. */
21
+ items: CarouselItem[];
22
+ /** Header title. Omit to render without a header row. */
23
+ title?: string;
24
+ /** Optional 24px leading icon shown next to the title (e.g. `<Live />`). */
25
+ leadingIcon?: ReactNode;
26
+ /** Label for the trailing "See More" link. @default 'See More' / 'عرض المزيد' */
27
+ seeMoreLabel?: string;
28
+ /** When set, See More renders as an `<a href>`. */
29
+ seeMoreHref?: string;
30
+ /** When set (and `seeMoreHref` is not), See More renders as a `<button>`. */
31
+ onSeeMoreClick?: () => void;
32
+ /**
33
+ * Allow horizontal scrolling on the items row. When false, content is
34
+ * clipped (`overflow-hidden`) and the scroll arrows are never shown.
35
+ * @default true
36
+ */
37
+ isScrollable?: boolean;
38
+ /**
39
+ * Show the prev/next arrow buttons outside the items row. Each arrow is
40
+ * automatically hidden at its respective edge or when content fits without
41
+ * overflow. Ignored when `isScrollable` is false.
42
+ * @default true
43
+ */
44
+ showArrows?: boolean;
45
+ /** RTL mode — flips header layout, scroll direction, and chevron icons. @default true */
46
+ isArabic?: boolean;
47
+ }
@@ -0,0 +1,8 @@
1
+ import { FC } from 'react';
2
+ import { CarouselHeaderProps } from './CarouselHeader.types';
3
+ /**
4
+ * CarouselHeader — title row with optional leading icon and a trailing
5
+ * "See More" link/button. Composable on its own; also rendered by `Carousel`
6
+ * when a `title` is supplied.
7
+ */
8
+ export declare const CarouselHeader: FC<CarouselHeaderProps>;
@@ -0,0 +1,24 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ /**
3
+ * Props for the CarouselHeader component.
4
+ *
5
+ * Extends native `<div>` attributes so consumers can pass `data-*`, `aria-*`,
6
+ * `id`, etc.
7
+ */
8
+ export interface CarouselHeaderProps extends HTMLAttributes<HTMLDivElement> {
9
+ /** Title text rendered as `Title/Small` (semibold). */
10
+ title: string;
11
+ /**
12
+ * Optional 24px leading icon shown before the title (e.g. `<Live />`).
13
+ * Omit for portrait layouts that don't carry a category icon.
14
+ */
15
+ leadingIcon?: ReactNode;
16
+ /** Label for the trailing "See More" link. @default 'See More' / 'عرض المزيد' (when `isArabic`) */
17
+ seeMoreLabel?: string;
18
+ /** When set, the See More cluster renders as an `<a href>`. */
19
+ seeMoreHref?: string;
20
+ /** When set (and `seeMoreHref` is not), the See More cluster renders as a `<button>`. */
21
+ onSeeMoreClick?: () => void;
22
+ /** RTL mode — flips the chevron, applies the Arabic font, sets `dir='rtl'`. @default true */
23
+ isArabic?: boolean;
24
+ }
@@ -0,0 +1,4 @@
1
+ export { Carousel } from './Carousel';
2
+ export type { CarouselProps, CarouselItem } from './Carousel.types';
3
+ export { CarouselHeader } from './CarouselHeader/CarouselHeader';
4
+ export type { CarouselHeaderProps } from './CarouselHeader/CarouselHeader.types';