@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.
- package/LICENSE +28 -0
- package/README.md +105 -0
- package/dist/assets/icons/AlarmExclamation.d.ts +2 -0
- package/dist/assets/icons/AlarmExclamationOutline.d.ts +2 -0
- package/dist/assets/icons/Alert.d.ts +2 -0
- package/dist/assets/icons/AlertOutline.d.ts +2 -0
- package/dist/assets/icons/AngleDown.d.ts +2 -0
- package/dist/assets/icons/AngleDownOutline.d.ts +2 -0
- package/dist/assets/icons/AngleLeft.d.ts +2 -0
- package/dist/assets/icons/AngleLeftOutline.d.ts +2 -0
- package/dist/assets/icons/AngleRight.d.ts +2 -0
- package/dist/assets/icons/AngleRightOutline.d.ts +2 -0
- package/dist/assets/icons/AngleUp.d.ts +2 -0
- package/dist/assets/icons/AngleUpOutline.d.ts +2 -0
- package/dist/assets/icons/ArrowLeft.d.ts +2 -0
- package/dist/assets/icons/ArrowLeftOutline.d.ts +2 -0
- package/dist/assets/icons/ArrowRight.d.ts +2 -0
- package/dist/assets/icons/ArrowRightOutline.d.ts +2 -0
- package/dist/assets/icons/ArrowUpLeft.d.ts +2 -0
- package/dist/assets/icons/ArrowUpLeftOutline.d.ts +2 -0
- package/dist/assets/icons/ArrowUpRight.d.ts +2 -0
- package/dist/assets/icons/ArrowUpRightOutline.d.ts +2 -0
- package/dist/assets/icons/ArrowUpRightSquare.d.ts +2 -0
- package/dist/assets/icons/ArrowUpRightSquareOutline.d.ts +2 -0
- package/dist/assets/icons/AutoPlay.d.ts +2 -0
- package/dist/assets/icons/BackwardStep.d.ts +2 -0
- package/dist/assets/icons/BackwardStepOutline.d.ts +2 -0
- package/dist/assets/icons/Ban.d.ts +2 -0
- package/dist/assets/icons/BanOutline.d.ts +2 -0
- package/dist/assets/icons/Bars.d.ts +2 -0
- package/dist/assets/icons/BarsFilter.d.ts +2 -0
- package/dist/assets/icons/BarsFilterOutline.d.ts +2 -0
- package/dist/assets/icons/BarsOutline.d.ts +2 -0
- package/dist/assets/icons/Bell.d.ts +2 -0
- package/dist/assets/icons/BellOutline.d.ts +2 -0
- package/dist/assets/icons/Book.d.ts +2 -0
- package/dist/assets/icons/BookOutline.d.ts +2 -0
- package/dist/assets/icons/Box.d.ts +2 -0
- package/dist/assets/icons/BoxOutline.d.ts +2 -0
- package/dist/assets/icons/Calendar.d.ts +2 -0
- package/dist/assets/icons/CalendarOutline.d.ts +2 -0
- package/dist/assets/icons/CameraMovie.d.ts +2 -0
- package/dist/assets/icons/CameraMovieOutline.d.ts +2 -0
- package/dist/assets/icons/Check.d.ts +2 -0
- package/dist/assets/icons/CheckOutline.d.ts +2 -0
- package/dist/assets/icons/CircleCheck.d.ts +2 -0
- package/dist/assets/icons/CircleCheckOutline.d.ts +2 -0
- package/dist/assets/icons/CircleEmpty.d.ts +2 -0
- package/dist/assets/icons/Clapperboard.d.ts +2 -0
- package/dist/assets/icons/ClapperboardOutline.d.ts +2 -0
- package/dist/assets/icons/Close.d.ts +2 -0
- package/dist/assets/icons/CloseCircle.d.ts +2 -0
- package/dist/assets/icons/CloseCircleOutline.d.ts +2 -0
- package/dist/assets/icons/CloseOutline.d.ts +2 -0
- package/dist/assets/icons/CloudExclamation.d.ts +2 -0
- package/dist/assets/icons/CloudExclamationOutline.d.ts +2 -0
- package/dist/assets/icons/CompressWide.d.ts +2 -0
- package/dist/assets/icons/CompressWideOutline.d.ts +2 -0
- package/dist/assets/icons/Contract.d.ts +2 -0
- package/dist/assets/icons/ContractOutline.d.ts +2 -0
- package/dist/assets/icons/CreditCard.d.ts +2 -0
- package/dist/assets/icons/CreditCardOutline.d.ts +2 -0
- package/dist/assets/icons/Crown.d.ts +2 -0
- package/dist/assets/icons/CrownOutline.d.ts +2 -0
- package/dist/assets/icons/Diamond.d.ts +2 -0
- package/dist/assets/icons/DiamondOutline.d.ts +2 -0
- package/dist/assets/icons/Display.d.ts +2 -0
- package/dist/assets/icons/DisplayOutline.d.ts +2 -0
- package/dist/assets/icons/Edit.d.ts +2 -0
- package/dist/assets/icons/EditOutline.d.ts +2 -0
- package/dist/assets/icons/EllipsisVertical.d.ts +2 -0
- package/dist/assets/icons/Email.d.ts +2 -0
- package/dist/assets/icons/Eye.d.ts +2 -0
- package/dist/assets/icons/EyeOutline.d.ts +2 -0
- package/dist/assets/icons/EyeSlash.d.ts +2 -0
- package/dist/assets/icons/EyeSlashOutline.d.ts +2 -0
- package/dist/assets/icons/Facebook.d.ts +2 -0
- package/dist/assets/icons/Family.d.ts +2 -0
- package/dist/assets/icons/FamilyOutline.d.ts +2 -0
- package/dist/assets/icons/Film.d.ts +2 -0
- package/dist/assets/icons/FilmOutline.d.ts +2 -0
- package/dist/assets/icons/Football.d.ts +2 -0
- package/dist/assets/icons/FootballOutline.d.ts +2 -0
- package/dist/assets/icons/ForwardStep.d.ts +2 -0
- package/dist/assets/icons/ForwardStepOutline.d.ts +2 -0
- package/dist/assets/icons/FullScreen.d.ts +2 -0
- package/dist/assets/icons/FullScreenOutline.d.ts +2 -0
- package/dist/assets/icons/Gear.d.ts +2 -0
- package/dist/assets/icons/GearOutline.d.ts +2 -0
- package/dist/assets/icons/Gift.d.ts +2 -0
- package/dist/assets/icons/GiftOutline.d.ts +2 -0
- package/dist/assets/icons/Grid.d.ts +2 -0
- package/dist/assets/icons/GridOutline.d.ts +2 -0
- package/dist/assets/icons/GridTwoPlus.d.ts +2 -0
- package/dist/assets/icons/GridTwoPlusOutline.d.ts +2 -0
- package/dist/assets/icons/GripDots.d.ts +2 -0
- package/dist/assets/icons/GripDotsOutline.d.ts +2 -0
- package/dist/assets/icons/Hd.d.ts +2 -0
- package/dist/assets/icons/Headset.d.ts +2 -0
- package/dist/assets/icons/HeadsetOutline.d.ts +2 -0
- package/dist/assets/icons/Heart.d.ts +2 -0
- package/dist/assets/icons/HeartCircleXmark.d.ts +2 -0
- package/dist/assets/icons/HeartCircleXmarkOutline.d.ts +2 -0
- package/dist/assets/icons/HeartOutline.d.ts +2 -0
- package/dist/assets/icons/HourglassClock.d.ts +2 -0
- package/dist/assets/icons/HourglassClockOutline.d.ts +2 -0
- package/dist/assets/icons/House.d.ts +2 -0
- package/dist/assets/icons/HouseOutline.d.ts +2 -0
- package/dist/assets/icons/IconPlaceholder.d.ts +2 -0
- package/dist/assets/icons/InfoCircle.d.ts +2 -0
- package/dist/assets/icons/InfoCircleOutline.d.ts +2 -0
- package/dist/assets/icons/Instagram.d.ts +2 -0
- package/dist/assets/icons/Language.d.ts +2 -0
- package/dist/assets/icons/LanguageOutline.d.ts +2 -0
- package/dist/assets/icons/Laptop.d.ts +2 -0
- package/dist/assets/icons/LaptopOutline.d.ts +2 -0
- package/dist/assets/icons/Link.d.ts +2 -0
- package/dist/assets/icons/LinkOutline.d.ts +2 -0
- package/dist/assets/icons/Live.d.ts +2 -0
- package/dist/assets/icons/LiveOutline.d.ts +2 -0
- package/dist/assets/icons/Loading.d.ts +2 -0
- package/dist/assets/icons/LoadingOutline.d.ts +2 -0
- package/dist/assets/icons/Lock.d.ts +2 -0
- package/dist/assets/icons/LockOutline.d.ts +2 -0
- package/dist/assets/icons/Logout.d.ts +2 -0
- package/dist/assets/icons/LogoutOutline.d.ts +2 -0
- package/dist/assets/icons/MessageExclamation.d.ts +2 -0
- package/dist/assets/icons/MessageExclamationOutline.d.ts +2 -0
- package/dist/assets/icons/MessageLines.d.ts +2 -0
- package/dist/assets/icons/MessageLinesOutline.d.ts +2 -0
- package/dist/assets/icons/MinusOutline.d.ts +2 -0
- package/dist/assets/icons/MinusOutlineOne.d.ts +2 -0
- package/dist/assets/icons/Mobile.d.ts +2 -0
- package/dist/assets/icons/MobileOutline.d.ts +2 -0
- package/dist/assets/icons/MoonStars.d.ts +2 -0
- package/dist/assets/icons/MoonStarsOutline.d.ts +2 -0
- package/dist/assets/icons/PartyHorn.d.ts +2 -0
- package/dist/assets/icons/PartyHornOutline.d.ts +2 -0
- package/dist/assets/icons/Pause.d.ts +2 -0
- package/dist/assets/icons/PauseOutline.d.ts +2 -0
- package/dist/assets/icons/PictureInPicture.d.ts +2 -0
- package/dist/assets/icons/Play.d.ts +2 -0
- package/dist/assets/icons/PlayOutline.d.ts +2 -0
- package/dist/assets/icons/Plus.d.ts +2 -0
- package/dist/assets/icons/PlusOutline.d.ts +2 -0
- package/dist/assets/icons/Popcorn.d.ts +2 -0
- package/dist/assets/icons/PopcornOutline.d.ts +2 -0
- package/dist/assets/icons/RotateLeft.d.ts +2 -0
- package/dist/assets/icons/RotateLeftOutline.d.ts +2 -0
- package/dist/assets/icons/RotateRight.d.ts +2 -0
- package/dist/assets/icons/RotateRightOutline.d.ts +2 -0
- package/dist/assets/icons/Screencast.d.ts +2 -0
- package/dist/assets/icons/ScreencastOn.d.ts +2 -0
- package/dist/assets/icons/ScreencastOutline.d.ts +2 -0
- package/dist/assets/icons/Search.d.ts +2 -0
- package/dist/assets/icons/SearchOutline.d.ts +2 -0
- package/dist/assets/icons/Share.d.ts +2 -0
- package/dist/assets/icons/ShareOutline.d.ts +2 -0
- package/dist/assets/icons/Smile.d.ts +2 -0
- package/dist/assets/icons/SmileOutline.d.ts +2 -0
- package/dist/assets/icons/Sms.d.ts +2 -0
- package/dist/assets/icons/SmsOutline.d.ts +2 -0
- package/dist/assets/icons/Sparkles.d.ts +2 -0
- package/dist/assets/icons/SparklesOutline.d.ts +2 -0
- package/dist/assets/icons/Speed.d.ts +2 -0
- package/dist/assets/icons/SquareInfo.d.ts +2 -0
- package/dist/assets/icons/SquareInfoOutline.d.ts +2 -0
- package/dist/assets/icons/SquareQuestion.d.ts +2 -0
- package/dist/assets/icons/SquareQuestionOutline.d.ts +2 -0
- package/dist/assets/icons/SquareUser.d.ts +2 -0
- package/dist/assets/icons/SquareUserOutline.d.ts +2 -0
- package/dist/assets/icons/Subtitles.d.ts +2 -0
- package/dist/assets/icons/SubtitlesOutline.d.ts +2 -0
- package/dist/assets/icons/TenSecBackward.d.ts +2 -0
- package/dist/assets/icons/TenSecForward.d.ts +2 -0
- package/dist/assets/icons/Ticket.d.ts +2 -0
- package/dist/assets/icons/TicketOutline.d.ts +2 -0
- package/dist/assets/icons/Tiktok.d.ts +2 -0
- package/dist/assets/icons/TrashCan.d.ts +2 -0
- package/dist/assets/icons/TrashCanOutline.d.ts +2 -0
- package/dist/assets/icons/TriangleExclamation.d.ts +2 -0
- package/dist/assets/icons/TriangleExclamationOutline.d.ts +2 -0
- package/dist/assets/icons/Trophy.d.ts +2 -0
- package/dist/assets/icons/TrophyOutline.d.ts +2 -0
- package/dist/assets/icons/Tv.d.ts +2 -0
- package/dist/assets/icons/TvOutline.d.ts +2 -0
- package/dist/assets/icons/TwitterX.d.ts +2 -0
- package/dist/assets/icons/Ultimate.d.ts +2 -0
- package/dist/assets/icons/UltimateOutline.d.ts +2 -0
- package/dist/assets/icons/User.d.ts +2 -0
- package/dist/assets/icons/UserOutline.d.ts +2 -0
- package/dist/assets/icons/Video.d.ts +2 -0
- package/dist/assets/icons/VideoOutline.d.ts +2 -0
- package/dist/assets/icons/Volume.d.ts +2 -0
- package/dist/assets/icons/VolumeOff.d.ts +2 -0
- package/dist/assets/icons/VolumeOffOutline.d.ts +2 -0
- package/dist/assets/icons/VolumeOutline.d.ts +2 -0
- package/dist/assets/icons/Waveform.d.ts +2 -0
- package/dist/assets/icons/WaveformOutline.d.ts +2 -0
- package/dist/assets/icons/Whatsapp.d.ts +2 -0
- package/dist/assets/icons/Youtube.d.ts +2 -0
- package/dist/assets/icons/index.d.ts +2 -0
- package/dist/assets/logos/1001Logo.d.ts +2 -0
- package/dist/assets/logos/1001PremiumLogo.d.ts +2 -0
- package/dist/assets/logos/AlJazeeraLogo.d.ts +3 -0
- package/dist/assets/logos/AlSharqiyaLogo.d.ts +2 -0
- package/dist/assets/logos/AsiacellLogo.d.ts +2 -0
- package/dist/assets/logos/FiberXLogo.d.ts +2 -0
- package/dist/assets/logos/LaligaLogo.d.ts +2 -0
- package/dist/assets/logos/LbcLogo.d.ts +2 -0
- package/dist/assets/logos/NBTelLogo.d.ts +8 -0
- package/dist/assets/logos/OsnLogo.d.ts +2 -0
- package/dist/assets/logos/RotanaLogo.d.ts +2 -0
- package/dist/assets/logos/RoyaLogo.d.ts +2 -0
- package/dist/assets/logos/StarzPlayLogo.d.ts +2 -0
- package/dist/assets/logos/StarzPlaySportsLogo.d.ts +2 -0
- package/dist/assets/logos/SupercellLogo.d.ts +3 -0
- package/dist/assets/logos/TodLogo.d.ts +2 -0
- package/dist/assets/logos/WideLogo.d.ts +2 -0
- package/dist/assets/logos/YangoPlayLogo.d.ts +3 -0
- package/dist/assets/logos/ZainLogo.d.ts +2 -0
- package/dist/assets/logos/index.d.ts +2 -0
- package/dist/assets/payment-methods/Amex.d.ts +2 -0
- package/dist/assets/payment-methods/ApplePay.d.ts +2 -0
- package/dist/assets/payment-methods/GooglePay.d.ts +2 -0
- package/dist/assets/payment-methods/Mada.d.ts +2 -0
- package/dist/assets/payment-methods/Mastercard.d.ts +2 -0
- package/dist/assets/payment-methods/PayPal.d.ts +2 -0
- package/dist/assets/payment-methods/Stripe.d.ts +2 -0
- package/dist/assets/payment-methods/Visa.d.ts +2 -0
- package/dist/assets/payment-methods/ZainCash.d.ts +2 -0
- package/dist/assets/payment-methods/index.d.ts +2 -0
- package/dist/components/Alert/Alert.d.ts +10 -0
- package/dist/components/Alert/Alert.types.d.ts +18 -0
- package/dist/components/Alert/index.d.ts +1 -0
- package/dist/components/Avatar/Avatar.d.ts +17 -0
- package/dist/components/Avatar/Avatar.types.d.ts +44 -0
- package/dist/components/Avatar/Avatar.variants.d.ts +22 -0
- package/dist/components/Avatar/index.d.ts +1 -0
- package/dist/components/BottomSheet/BottomSheet.d.ts +10 -0
- package/dist/components/BottomSheet/BottomSheet.types.d.ts +35 -0
- package/dist/components/BottomSheet/BottomSheet.variants.d.ts +10 -0
- package/dist/components/BottomSheet/BottomSheetFooter/BottomSheetFooter.d.ts +4 -0
- package/dist/components/BottomSheet/BottomSheetFooter/BottomSheetFooter.types.d.ts +19 -0
- package/dist/components/BottomSheet/BottomSheetHeader/BottomSheetHeader.d.ts +6 -0
- package/dist/components/BottomSheet/BottomSheetHeader/BottomSheetHeader.types.d.ts +14 -0
- package/dist/components/BottomSheet/index.d.ts +5 -0
- package/dist/components/BottomSheet/useBottomSheet/useBottomSheet.d.ts +28 -0
- package/dist/components/Button/Button.d.ts +31 -0
- package/dist/components/Button/Button.types.d.ts +112 -0
- package/dist/components/Button/Button.variants.d.ts +25 -0
- package/dist/components/Button/index.d.ts +1 -0
- package/dist/components/Card/Card.d.ts +23 -0
- package/dist/components/Card/Card.types.d.ts +60 -0
- package/dist/components/Card/Card.variants.d.ts +18 -0
- package/dist/components/Card/TimelineOverlay.d.ts +11 -0
- package/dist/components/Card/index.d.ts +1 -0
- package/dist/components/Carousel/Carousel.d.ts +8 -0
- package/dist/components/Carousel/Carousel.types.d.ts +47 -0
- package/dist/components/Carousel/CarouselHeader/CarouselHeader.d.ts +8 -0
- package/dist/components/Carousel/CarouselHeader/CarouselHeader.types.d.ts +24 -0
- package/dist/components/Carousel/index.d.ts +4 -0
- package/dist/components/Carousel/useDragToScroll.d.ts +14 -0
- package/dist/components/Chip/Chip.d.ts +16 -0
- package/dist/components/Chip/Chip.types.d.ts +44 -0
- package/dist/components/Chip/Chip.variants.d.ts +20 -0
- package/dist/components/Chip/index.d.ts +1 -0
- package/dist/components/Episode/Episode.d.ts +4 -0
- package/dist/components/Episode/Episode.types.d.ts +24 -0
- package/dist/components/Episode/index.d.ts +1 -0
- package/dist/components/FeaturedCarousel/FeaturedCarousel.d.ts +8 -0
- package/dist/components/FeaturedCarousel/FeaturedCarousel.types.d.ts +43 -0
- package/dist/components/FeaturedCarousel/Slide/Slide.d.ts +4 -0
- package/dist/components/FeaturedCarousel/Slide/Slide.types.d.ts +10 -0
- package/dist/components/FeaturedCarousel/SlideDots/SlideDots.d.ts +4 -0
- package/dist/components/FeaturedCarousel/SlideDots/SlideDots.types.d.ts +11 -0
- package/dist/components/FeaturedCarousel/index.d.ts +1 -0
- package/dist/components/Footer/Footer.d.ts +12 -0
- package/dist/components/Footer/Footer.socials.d.ts +11 -0
- package/dist/components/Footer/Footer.translations.d.ts +24 -0
- package/dist/components/Footer/Footer.types.d.ts +5 -0
- package/dist/components/Footer/index.d.ts +1 -0
- package/dist/components/FormInputs/Checkbox/Checkbox.d.ts +22 -0
- package/dist/components/FormInputs/Checkbox/Checkbox.types.d.ts +63 -0
- package/dist/components/FormInputs/Checkbox/Checkbox.variants.d.ts +19 -0
- package/dist/components/FormInputs/Checkbox/index.d.ts +1 -0
- package/dist/components/FormInputs/Dropdown/Dropdown.d.ts +24 -0
- package/dist/components/FormInputs/Dropdown/Dropdown.types.d.ts +104 -0
- package/dist/components/FormInputs/Dropdown/Dropdown.variants.d.ts +39 -0
- package/dist/components/FormInputs/Dropdown/index.d.ts +1 -0
- package/dist/components/FormInputs/OtpInput/OtpInput.d.ts +22 -0
- package/dist/components/FormInputs/OtpInput/OtpInput.types.d.ts +66 -0
- package/dist/components/FormInputs/OtpInput/OtpInput.variants.d.ts +24 -0
- package/dist/components/FormInputs/OtpInput/index.d.ts +1 -0
- package/dist/components/FormInputs/Radio/Radio.d.ts +25 -0
- package/dist/components/FormInputs/Radio/Radio.types.d.ts +58 -0
- package/dist/components/FormInputs/Radio/Radio.variants.d.ts +30 -0
- package/dist/components/FormInputs/Radio/index.d.ts +1 -0
- package/dist/components/FormInputs/Switch/Switch.d.ts +24 -0
- package/dist/components/FormInputs/Switch/Switch.types.d.ts +58 -0
- package/dist/components/FormInputs/Switch/Switch.variants.d.ts +57 -0
- package/dist/components/FormInputs/Switch/index.d.ts +1 -0
- package/dist/components/FormInputs/TextArea/TextArea.d.ts +24 -0
- package/dist/components/FormInputs/TextArea/TextArea.types.d.ts +77 -0
- package/dist/components/FormInputs/TextArea/TextArea.variants.d.ts +25 -0
- package/dist/components/FormInputs/TextArea/index.d.ts +1 -0
- package/dist/components/FormInputs/TextField/TextField.d.ts +24 -0
- package/dist/components/FormInputs/TextField/TextField.types.d.ts +85 -0
- package/dist/components/FormInputs/TextField/TextField.variants.d.ts +23 -0
- package/dist/components/FormInputs/TextField/index.d.ts +1 -0
- package/dist/components/IconDisplay/IconDisplay.d.ts +2 -0
- package/dist/components/IconDisplay/IconDisplay.types.d.ts +30 -0
- package/dist/components/IconDisplay/index.d.ts +1 -0
- package/dist/components/Link/Link.d.ts +17 -0
- package/dist/components/Link/Link.types.d.ts +68 -0
- package/dist/components/Link/Link.variants.d.ts +18 -0
- package/dist/components/Link/index.d.ts +1 -0
- package/dist/components/List/List.d.ts +14 -0
- package/dist/components/List/List.types.d.ts +17 -0
- package/dist/components/List/List.variants.d.ts +22 -0
- package/dist/components/List/index.d.ts +2 -0
- package/dist/components/ListItem/ListItem.d.ts +13 -0
- package/dist/components/ListItem/ListItem.types.d.ts +18 -0
- package/dist/components/ListItem/index.d.ts +2 -0
- package/dist/components/Logo/Logo.d.ts +15 -0
- package/dist/components/Logo/Logo.helpers.d.ts +34 -0
- package/dist/components/Logo/Logo.types.d.ts +61 -0
- package/dist/components/Logo/Logo.variants.d.ts +17 -0
- package/dist/components/Logo/brands/AlRahma.d.ts +3 -0
- package/dist/components/Logo/brands/AlSharqiya.d.ts +3 -0
- package/dist/components/Logo/brands/Asiacell.d.ts +3 -0
- package/dist/components/Logo/brands/FiberX.d.ts +3 -0
- package/dist/components/Logo/brands/Laliga.d.ts +3 -0
- package/dist/components/Logo/brands/Osn.d.ts +3 -0
- package/dist/components/Logo/brands/Rotana.d.ts +3 -0
- package/dist/components/Logo/brands/Roya.d.ts +3 -0
- package/dist/components/Logo/brands/Starzplay.d.ts +3 -0
- package/dist/components/Logo/brands/StarzplaySports.d.ts +3 -0
- package/dist/components/Logo/brands/Tod.d.ts +3 -0
- package/dist/components/Logo/brands/Wide.d.ts +3 -0
- package/dist/components/Logo/brands/Zain.d.ts +3 -0
- package/dist/components/Logo/brands/_1001.d.ts +3 -0
- package/dist/components/Logo/brands/_1001Premium.d.ts +3 -0
- package/dist/components/Logo/index.d.ts +1 -0
- package/dist/components/Modal/Modal.d.ts +29 -0
- package/dist/components/Modal/Modal.types.d.ts +104 -0
- package/dist/components/Modal/Modal.variants.d.ts +29 -0
- package/dist/components/Modal/index.d.ts +1 -0
- package/dist/components/NavigationBar/DesktopBar/DesktopBar.d.ts +4 -0
- package/dist/components/NavigationBar/DesktopBar/DesktopBar.types.d.ts +4 -0
- package/dist/components/NavigationBar/DesktopBar/DesktopBar.variants.d.ts +10 -0
- package/dist/components/NavigationBar/LanguageSwitcher/LanguageSwitcher.d.ts +4 -0
- package/dist/components/NavigationBar/LanguageSwitcher/LanguageSwitcher.types.d.ts +11 -0
- package/dist/components/NavigationBar/LanguageSwitcher/LanguageSwitcher.utils.d.ts +4 -0
- package/dist/components/NavigationBar/LoginOrAvatar/LoginOrAvatar.d.ts +4 -0
- package/dist/components/NavigationBar/LoginOrAvatar/LoginOrAvatar.types.d.ts +10 -0
- package/dist/components/NavigationBar/MobileBar/MobileBar.d.ts +4 -0
- package/dist/components/NavigationBar/MobileBar/MobileBar.types.d.ts +6 -0
- package/dist/components/NavigationBar/MobileBar/MobileBar.variants.d.ts +10 -0
- package/dist/components/NavigationBar/NavigationBar/NavigationBar.d.ts +4 -0
- package/dist/components/NavigationBar/NavigationBar/NavigationBar.demo.d.ts +8 -0
- package/dist/components/NavigationBar/NavigationBar/NavigationBar.types.d.ts +54 -0
- package/dist/components/NavigationBar/NavigationBar/NavigationBar.utils.d.ts +5 -0
- package/dist/components/NavigationBar/NavigationDrawer/NavigationDrawer.d.ts +4 -0
- package/dist/components/NavigationBar/NavigationDrawer/NavigationDrawer.types.d.ts +8 -0
- package/dist/components/NavigationBar/NavigationDrawer/NavigationDrawer.variants.d.ts +37 -0
- package/dist/components/NavigationBar/TabletBar/TabletBar.d.ts +4 -0
- package/dist/components/NavigationBar/TabletBar/TabletBar.types.d.ts +6 -0
- package/dist/components/NavigationBar/TabletBar/TabletBar.variants.d.ts +10 -0
- package/dist/components/NavigationBar/index.d.ts +2 -0
- package/dist/components/Tab/TabButton/TabButton.d.ts +23 -0
- package/dist/components/Tab/TabButton/TabButton.types.d.ts +57 -0
- package/dist/components/Tab/TabButton/TabButton.variants.d.ts +24 -0
- package/dist/components/Tab/TabGroup/TabGroup.d.ts +23 -0
- package/dist/components/Tab/TabGroup/TabGroup.types.d.ts +52 -0
- package/dist/components/Tab/TabGroup/TabGroup.variants.d.ts +13 -0
- package/dist/components/Tab/index.d.ts +2 -0
- package/dist/components/Tag/Tag.d.ts +17 -0
- package/dist/components/Tag/Tag.types.d.ts +76 -0
- package/dist/components/Tag/Tag.variants.d.ts +26 -0
- package/dist/components/Tag/index.d.ts +1 -0
- package/dist/components/Toast/Toast.d.ts +16 -0
- package/dist/components/Toast/Toast.types.d.ts +56 -0
- package/dist/components/Toast/Toast.variants.d.ts +18 -0
- package/dist/components/Toast/index.d.ts +1 -0
- package/dist/components/VideoPlayer/PlaybackActions/PlaybackActions.d.ts +3 -0
- package/dist/components/VideoPlayer/PlaybackActions/PlaybackActions.types.d.ts +16 -0
- package/dist/components/VideoPlayer/PlayerUI/PlayerUI.d.ts +7 -0
- package/dist/components/VideoPlayer/PlayerUI/PlayerUI.types.d.ts +30 -0
- package/dist/components/VideoPlayer/PlayerUI/PlayerUI.utils.d.ts +5 -0
- package/dist/components/VideoPlayer/ProgressBar/ProgressBar.d.ts +3 -0
- package/dist/components/VideoPlayer/ProgressBar/ProgressBar.types.d.ts +22 -0
- package/dist/components/VideoPlayer/ProgressBar/ProgressBar.variants.d.ts +6 -0
- package/dist/components/VideoPlayer/ScrollingCard/ScrollingCard.d.ts +3 -0
- package/dist/components/VideoPlayer/ScrollingCard/ScrollingCard.types.d.ts +11 -0
- package/dist/components/VideoPlayer/TrackFrame/TrackFrame.d.ts +6 -0
- package/dist/components/VideoPlayer/TrackFrame/TrackFrame.types.d.ts +167 -0
- package/dist/components/VideoPlayer/TrackFrame/components/AdInfoRow.d.ts +7 -0
- package/dist/components/VideoPlayer/TrackFrame/components/DefaultInfoRow.d.ts +15 -0
- package/dist/components/VideoPlayer/TrackFrame/components/PlayerLabel/PlayerLabel.d.ts +3 -0
- package/dist/components/VideoPlayer/TrackFrame/components/PlayerLabel/PlayerLabel.types.d.ts +7 -0
- package/dist/components/VideoPlayer/TrackFrame/components/PlayerMenuPanel/PlayerMenuPanel.d.ts +3 -0
- package/dist/components/VideoPlayer/TrackFrame/components/PlayerMenuPanel/PlayerMenuPanel.types.d.ts +6 -0
- package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/MenusCluster.d.ts +11 -0
- package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/PlayerSideActions.d.ts +14 -0
- package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/TextActionsCluster.d.ts +7 -0
- package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/settings/SettingsAutoPlayRow.d.ts +6 -0
- package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/settings/SettingsListGroupRow.d.ts +17 -0
- package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/settings/SettingsMenuButton.d.ts +9 -0
- package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/settings/SettingsMenuRows.d.ts +8 -0
- package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/share/ShareMenuButton.d.ts +9 -0
- package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/share/ShareMenuRows.d.ts +8 -0
- package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/shared/IconButton.d.ts +8 -0
- package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/shared/MenuIconButton.d.ts +13 -0
- package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/shared/MenuListRow.d.ts +9 -0
- package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/shared/menuRowClass.d.ts +2 -0
- package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/subtitles/SubtitlesMenuButton.d.ts +9 -0
- package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/subtitles/SubtitlesMenuRows.d.ts +8 -0
- package/dist/components/VideoPlayer/TrackFrame/components/PlayerSideActions/volume/VolumeButton.d.ts +6 -0
- package/dist/components/VideoPlayer/TrackFrame/components/Track/Track.d.ts +3 -0
- package/dist/components/VideoPlayer/TrackFrame/components/Track/Track.types.d.ts +15 -0
- package/dist/components/VideoPlayer/TrackFrame/components/VolumeSlider/VolumeSlider.d.ts +3 -0
- package/dist/components/VideoPlayer/TrackFrame/components/VolumeSlider/VolumeSlider.types.d.ts +15 -0
- package/dist/components/VideoPlayer/VideoPlayer/VideoPlayer.d.ts +7 -0
- package/dist/components/VideoPlayer/VideoPlayer/VideoPlayer.types.d.ts +15 -0
- package/dist/components/VideoPlayer/VideoPlayer.constants.d.ts +3 -0
- package/dist/components/VideoPlayer/formatPlayerTime.d.ts +8 -0
- package/dist/components/VideoPlayer/hooks/useHudVisibility/useHudVisibility.d.ts +3 -0
- package/dist/components/VideoPlayer/hooks/useHudVisibility/useHudVisibility.types.d.ts +17 -0
- package/dist/components/VideoPlayer/hooks/useMenuToggle/useMenuToggle.d.ts +8 -0
- package/dist/components/VideoPlayer/hooks/useMenuToggle/useMenuToggle.types.d.ts +1 -0
- package/dist/components/VideoPlayer/hooks/useMergedRef/useMergedRef.d.ts +3 -0
- package/dist/components/VideoPlayer/hooks/useNextEpisodeCountdown/useNextEpisodeCountdown.d.ts +3 -0
- package/dist/components/VideoPlayer/hooks/usePlaybackPulse/usePlaybackPulse.d.ts +3 -0
- package/dist/components/VideoPlayer/hooks/usePlaybackPulse/usePlaybackPulse.types.d.ts +11 -0
- package/dist/components/VideoPlayer/hooks/usePlayerShortcuts/usePlayerShortcuts.d.ts +6 -0
- package/dist/components/VideoPlayer/hooks/usePlayerShortcuts/usePlayerShortcuts.types.d.ts +23 -0
- package/dist/components/VideoPlayer/index.d.ts +9 -0
- package/dist/components/VideoPlayer/playerStoryFixtures.d.ts +36 -0
- package/dist/fonts/Inter/InterDisplay-Light.woff2 +0 -0
- package/dist/fonts/Inter/InterDisplay-Medium.woff2 +0 -0
- package/dist/fonts/Inter/InterDisplay-Regular.woff2 +0 -0
- package/dist/fonts/Inter/InterDisplay-SemiBold.woff2 +0 -0
- package/dist/fonts/NotoKufiArabic-VariableFont.woff2 +0 -0
- package/dist/hooks/useDragGesture/useDragGesture.d.ts +9 -0
- package/dist/hooks/useDragGesture/useDragGesture.types.d.ts +15 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.js +6725 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/utils/cn.d.ts +9 -0
- package/dist/lib/utils/isTypingTarget.d.ts +7 -0
- package/dist/lib/utils/language.d.ts +4 -0
- package/dist/library.css +489 -0
- package/dist/styles/plugins/borders-plugin.d.ts +24 -0
- package/dist/styles/plugins/colors-plugin.d.ts +16 -0
- package/dist/styles/plugins/index.d.ts +38 -0
- package/dist/styles/plugins/spacing-plugin.d.ts +23 -0
- package/dist/styles/plugins/typography-plugin.d.ts +24 -0
- package/dist/tailwind-plugin.cjs +2 -0
- package/dist/tailwind-plugin.cjs.map +1 -0
- package/dist/tailwind-plugin.d.ts +6 -0
- package/dist/tailwind-plugin.js +713 -0
- package/dist/tailwind-plugin.js.map +1 -0
- package/package.json +94 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { AnchorHTMLAttributes } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Link type — determines colour scheme
|
|
4
|
+
*/
|
|
5
|
+
export type LinkType = 'brand' | 'neutral';
|
|
6
|
+
/**
|
|
7
|
+
* Link size — determines typography and icon dimensions
|
|
8
|
+
*/
|
|
9
|
+
export type LinkSize = 'large' | 'medium' | 'small';
|
|
10
|
+
/**
|
|
11
|
+
* Visual interaction state — used by Storybook/Figma playground
|
|
12
|
+
* to force hover/pressed appearance for design audits.
|
|
13
|
+
* Real interaction states are handled by CVA pseudo-classes (hover:, active:).
|
|
14
|
+
*/
|
|
15
|
+
export type LinkState = 'default' | 'hover' | 'pressed';
|
|
16
|
+
/**
|
|
17
|
+
* Props for the Link component
|
|
18
|
+
*
|
|
19
|
+
* Extends native `<a>` attributes so consumers can pass `href`, `target`, `data-*`, etc.
|
|
20
|
+
*/
|
|
21
|
+
export interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
22
|
+
/**
|
|
23
|
+
* Link type — brand (green) or neutral (gray)
|
|
24
|
+
* @default 'brand'
|
|
25
|
+
*/
|
|
26
|
+
type?: LinkType;
|
|
27
|
+
/**
|
|
28
|
+
* Link size — controls typography and icon size
|
|
29
|
+
* @default 'medium'
|
|
30
|
+
*/
|
|
31
|
+
size?: LinkSize;
|
|
32
|
+
/**
|
|
33
|
+
* Uses semibold font weight
|
|
34
|
+
* @default true
|
|
35
|
+
*/
|
|
36
|
+
isBold?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Renders in a disabled/non-interactive state
|
|
39
|
+
* @default false
|
|
40
|
+
*/
|
|
41
|
+
isDisabled?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Shows the link-outline icon after the label
|
|
44
|
+
* @default true
|
|
45
|
+
*/
|
|
46
|
+
icon?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Uses Arabic font and RTL layout
|
|
49
|
+
* @default false
|
|
50
|
+
*/
|
|
51
|
+
isArabic?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Label text displayed in the link
|
|
54
|
+
* @default 'Link'
|
|
55
|
+
*/
|
|
56
|
+
label?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Storybook-only: forces a visual interaction state for design audits.
|
|
59
|
+
* @default 'default'
|
|
60
|
+
*/
|
|
61
|
+
state?: LinkState;
|
|
62
|
+
/**
|
|
63
|
+
* Storybook-only: forces the focus ring visible.
|
|
64
|
+
* Real focus is handled by focus-visible CSS.
|
|
65
|
+
* @default false
|
|
66
|
+
*/
|
|
67
|
+
isFocused?: boolean;
|
|
68
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
/**
|
|
3
|
+
* Link container variants using CVA
|
|
4
|
+
*
|
|
5
|
+
* - Layout: inline-flex, items-center
|
|
6
|
+
* - Gap: large = 4px (space050), medium/small = 2px (space025)
|
|
7
|
+
* - Rounded: 8px (radius100)
|
|
8
|
+
*
|
|
9
|
+
* Type determines colour (via link-manara-* composite utilities):
|
|
10
|
+
* - brand: verdant-500 base, verdant-600 hover, verdant-700 active
|
|
11
|
+
* - neutral: navy-50 base, navy-30 hover, navy-100 active
|
|
12
|
+
*/
|
|
13
|
+
export declare const linkVariants: (props?: ({
|
|
14
|
+
type?: "brand" | "neutral" | null | undefined;
|
|
15
|
+
size?: "small" | "medium" | "large" | null | undefined;
|
|
16
|
+
isDisabled?: boolean | null | undefined;
|
|
17
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
18
|
+
export type LinkVariantsProps = VariantProps<typeof linkVariants>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Link } from './Link';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { ListProps } from './List.types';
|
|
3
|
+
/**
|
|
4
|
+
* List (also called "Menu" in Figma) — 48h navigation row.
|
|
5
|
+
*
|
|
6
|
+
* A single row: icon + label + chevron. Stack multiple `<List>` items
|
|
7
|
+
* inside a `<nav>` to build a sidebar/column menu.
|
|
8
|
+
*
|
|
9
|
+
* Not to be confused with `<ListItem>` — a separate 72h row for
|
|
10
|
+
* settings/info lists (subtitle + title + trailing slot).
|
|
11
|
+
*
|
|
12
|
+
* Renders `<a>` when `href` is provided, otherwise `<button>`.
|
|
13
|
+
*/
|
|
14
|
+
export declare const List: FC<ListProps>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ButtonHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export interface ListProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'type'> {
|
|
3
|
+
/** Visible row label. Rendered with Arabic font when `selectedLanguage` is `ar`. */
|
|
4
|
+
label: string;
|
|
5
|
+
/** Optional leading icon — rendered inside a 24px slot. Inherits `currentColor`. */
|
|
6
|
+
icon?: ReactNode;
|
|
7
|
+
/** Show the trailing chevron (angle-right LTR / angle-left RTL) @default true */
|
|
8
|
+
showChevron?: boolean;
|
|
9
|
+
/** Currently selected row (green text + tinted surface) */
|
|
10
|
+
isSelected?: boolean;
|
|
11
|
+
/** Disabled row — no interactions, dimmed text */
|
|
12
|
+
isDisabled?: boolean;
|
|
13
|
+
/** Language key — drives RTL direction and Arabic font @default 'en' */
|
|
14
|
+
selectedLanguage?: string;
|
|
15
|
+
/** If provided, renders as an `<a>` instead of `<button>` */
|
|
16
|
+
href?: string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
/**
|
|
3
|
+
* List variants — Manara Design System (also called "Menu" in Figma)
|
|
4
|
+
*
|
|
5
|
+
* A single-sized row (48h × fluid width) with three interactive states
|
|
6
|
+
* handled via CSS pseudo-classes (`hover:`, `active:`, `focus-visible:`)
|
|
7
|
+
* plus two explicit flags: `isSelected` and `isDisabled`.
|
|
8
|
+
*
|
|
9
|
+
* Background per state:
|
|
10
|
+
* default → transparent
|
|
11
|
+
* hover → bg-manara-secondary (navy-750)
|
|
12
|
+
* pressed → surface-manara-pressed (navy-600)
|
|
13
|
+
* selected → surface-manara-primary (navy-700) + text-manara-selected
|
|
14
|
+
* disabled → transparent + text-manara-disabled
|
|
15
|
+
*
|
|
16
|
+
* Focus ring is a 2px inset-[-2px] outline with radius 14 so it sits
|
|
17
|
+
* cleanly around the 12-radius container (matches Figma spec).
|
|
18
|
+
*/
|
|
19
|
+
export declare const listVariants: (props?: ({
|
|
20
|
+
state?: "default" | "disabled" | "selected" | null | undefined;
|
|
21
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
22
|
+
export type ListVariantProps = VariantProps<typeof listVariants>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { ListItemProps } from './ListItem.types';
|
|
3
|
+
/**
|
|
4
|
+
* ListItem (also called "List Item" / "Menu Item" in Figma) — 72h general-purpose row.
|
|
5
|
+
*
|
|
6
|
+
* Subtitle + title with composition slots: `leading` (icon, payment card)
|
|
7
|
+
* and `trailing` (`<Button>`, `<Switch>`, text value). When `infoText` is
|
|
8
|
+
* set the row switches to a stacked layout with info text underneath.
|
|
9
|
+
*
|
|
10
|
+
* Not to be confused with `<List>` — a separate 48h navigation row
|
|
11
|
+
* (icon + label + chevron) used for sidebar/column menus.
|
|
12
|
+
*/
|
|
13
|
+
export declare const ListItem: FC<ListItemProps>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export interface ListItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'title'> {
|
|
3
|
+
/** Primary title line — body/default/semibold, text-primary */
|
|
4
|
+
title: string;
|
|
5
|
+
/** Optional subtitle shown above the title — body/small/medium, text-tertiary */
|
|
6
|
+
subtitle?: string;
|
|
7
|
+
/**
|
|
8
|
+
* Optional info text rendered below the main row. When set, the root
|
|
9
|
+
* switches from a single row (72h) to a stacked column layout.
|
|
10
|
+
*/
|
|
11
|
+
infoText?: string;
|
|
12
|
+
/** Optional leading visual next to the title (e.g. payment method card, icon) */
|
|
13
|
+
leading?: ReactNode;
|
|
14
|
+
/** Optional trailing node — pass <Button />, <Switch />, or a plain value span */
|
|
15
|
+
trailing?: ReactNode;
|
|
16
|
+
/** Language key — drives RTL direction and Arabic font @default 'en' */
|
|
17
|
+
selectedLanguage?: string;
|
|
18
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { LogoProps } from './Logo.types';
|
|
3
|
+
/**
|
|
4
|
+
* Logo: bare wordmark by default (`variant='wordmark'`); pass `variant='tile'`
|
|
5
|
+
* for the full branded card (gradient/colored bg + border + wordmark).
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <Logo /> // bare 1001 wordmark
|
|
10
|
+
* <Logo brand='osn' variant='tile' size='48' /> // OSN+ tile at 48px tall
|
|
11
|
+
* <Logo brand='1001' isPremium variant='tile' /> // 1001 Premium tile
|
|
12
|
+
* <Logo appearance='neutral' /> // wordmark recoloured white
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare const Logo: FC<LogoProps>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { FC, SVGProps } from 'react';
|
|
2
|
+
import { LogoBrand, LogoVariant } from './Logo.types';
|
|
3
|
+
export type BrandSvg = FC<SVGProps<SVGSVGElement>>;
|
|
4
|
+
type BrandEntry = {
|
|
5
|
+
wordmark: BrandSvg;
|
|
6
|
+
tile: BrandSvg;
|
|
7
|
+
/** Optional premium variants — currently only `1001` has them. */
|
|
8
|
+
premium?: {
|
|
9
|
+
wordmark: BrandSvg;
|
|
10
|
+
tile: BrandSvg;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Brand → SVG registry — single source of truth for what each `brand` renders.
|
|
15
|
+
*
|
|
16
|
+
* Architecture:
|
|
17
|
+
* - Raw SVG assets live in `@/assets/logos/` and are the bare wordmark/icon.
|
|
18
|
+
* These are the canonical brand marks.
|
|
19
|
+
* - Composite tiles live in `./brands/` and wrap a raw asset with the branded
|
|
20
|
+
* background/border seen in Figma (circular gradient, dark square, etc.).
|
|
21
|
+
* `brands/` is strictly a presentation layer — not the source of truth.
|
|
22
|
+
*
|
|
23
|
+
* Each entry exposes both `wordmark` and `tile`. The Logo component picks one
|
|
24
|
+
* based on the consumer's `variant` prop. Brands that ship a single form
|
|
25
|
+
* (self-contained NBTel/Supercell/etc., or wordmark-only LBC) use `same()`
|
|
26
|
+
* — both variants render the same SVG.
|
|
27
|
+
*
|
|
28
|
+
* Every value must render `<svg>` as its root (FC<SVGProps<SVGSVGElement>>).
|
|
29
|
+
*/
|
|
30
|
+
export declare const BRAND_MAP: Record<LogoBrand, BrandEntry>;
|
|
31
|
+
/** Display names for UI (Storybook controls, matrix captions, etc.). Matches Figma brand casing. */
|
|
32
|
+
export declare const BRAND_LABELS: Record<LogoBrand, string>;
|
|
33
|
+
export declare const resolveBrandSvg: (brand: LogoBrand, isPremium: boolean, variant: LogoVariant) => BrandSvg;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { HTMLAttributes } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Brand identity to render. Each brand maps to an SVG in `src/assets/logos/`.
|
|
4
|
+
*
|
|
5
|
+
* To add a new brand: create the SVG in `src/assets/logos/`, then add the key
|
|
6
|
+
* here and the component reference in `Logo.tsx`'s `BRAND_MAP`.
|
|
7
|
+
*/
|
|
8
|
+
export type LogoBrand = '1001' | 'osn' | 'starzplay' | 'starzplay-sports' | 'tod' | 'lbc' | 'rotana' | 'sharqiya' | 'laliga' | 'wide' | 'zain' | 'asiacell' | 'nbtel' | 'al-jazeera' | 'fiberx' | 'supercell' | 'yango-play' | 'roya' | 'al-rahma';
|
|
9
|
+
/**
|
|
10
|
+
* Logo height in pixels. Width auto-scales to preserve the brand SVG's
|
|
11
|
+
* intrinsic aspect ratio.
|
|
12
|
+
*/
|
|
13
|
+
export type LogoSize = '16' | '24' | '32' | '48' | '64' | '80' | '120';
|
|
14
|
+
/**
|
|
15
|
+
* - `wordmark` → the bare brand mark (e.g. green "1001" text) — for nav bars,
|
|
16
|
+
* footers, embedded chrome.
|
|
17
|
+
* - `tile` → the branded card (gradient/colored background + border +
|
|
18
|
+
* wordmark) — for brand galleries, picker tiles, marketing surfaces.
|
|
19
|
+
*
|
|
20
|
+
* Brands that only ship one form (e.g. self-contained tiles like NBTel, or
|
|
21
|
+
* wordmark-only brands like LBC) render the same SVG for both variants.
|
|
22
|
+
*/
|
|
23
|
+
export type LogoVariant = 'wordmark' | 'tile';
|
|
24
|
+
/**
|
|
25
|
+
* Color treatment — applied via CSS `color` on the wrapper; the brand SVG
|
|
26
|
+
* inherits via `fill='currentColor'`.
|
|
27
|
+
*
|
|
28
|
+
* - `brand` → each brand's natural colors (no override)
|
|
29
|
+
* - `neutral` → text/primary (white, #ebebed)
|
|
30
|
+
* - `transparent` → text/tertiary (dim grey, #757683)
|
|
31
|
+
*
|
|
32
|
+
* Note: multi-color brand SVGs (OSN, TOD, etc.) have hardcoded path colors
|
|
33
|
+
* that ignore `fill`. For those, `neutral`/`transparent` will recolour only
|
|
34
|
+
* the paths authored with `fill={props.fill || ...}` and leave the others.
|
|
35
|
+
*/
|
|
36
|
+
export type LogoAppearance = 'brand' | 'neutral' | 'transparent';
|
|
37
|
+
/**
|
|
38
|
+
* Props for the Logo component.
|
|
39
|
+
*
|
|
40
|
+
* Extends native `<span>` attributes so consumers can pass `data-*`,
|
|
41
|
+
* `aria-*`, `id`, layout classes, etc.
|
|
42
|
+
*/
|
|
43
|
+
export interface LogoProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
|
|
44
|
+
/** Brand identity to render. @default '1001' */
|
|
45
|
+
brand?: LogoBrand;
|
|
46
|
+
/** Logo height in pixels. @default '32' */
|
|
47
|
+
size?: LogoSize;
|
|
48
|
+
/**
|
|
49
|
+
* Render the bare wordmark or the full branded tile.
|
|
50
|
+
* @default 'wordmark'
|
|
51
|
+
*/
|
|
52
|
+
variant?: LogoVariant;
|
|
53
|
+
/** Color treatment. @default 'brand' */
|
|
54
|
+
appearance?: LogoAppearance;
|
|
55
|
+
/**
|
|
56
|
+
* When true and the brand has a premium variant, render that instead.
|
|
57
|
+
* Currently only `1001` has a premium variant; silently ignored for others.
|
|
58
|
+
* @default false
|
|
59
|
+
*/
|
|
60
|
+
isPremium?: boolean;
|
|
61
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
/**
|
|
3
|
+
* Logo wrapper variants.
|
|
4
|
+
*
|
|
5
|
+
* Sizing happens via inline `style` (height in px) on the wrapper plus inline
|
|
6
|
+
* style on the inner SVG (`height: 100%; width: auto`) — needed because each
|
|
7
|
+
* brand SVG has hardcoded `width`/`height` HTML attributes that would
|
|
8
|
+
* otherwise win over Tailwind classes.
|
|
9
|
+
*
|
|
10
|
+
* The `appearance` variant sets `color` on the wrapper; the brand SVG
|
|
11
|
+
* inherits via `fill='currentColor'` (passed by the Logo component when
|
|
12
|
+
* appearance is not 'brand').
|
|
13
|
+
*/
|
|
14
|
+
export declare const logoVariants: (props?: ({
|
|
15
|
+
appearance?: "brand" | "neutral" | "transparent" | null | undefined;
|
|
16
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
17
|
+
export type LogoVariantsProps = VariantProps<typeof logoVariants>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Logo } from './Logo';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ModalProps } from './Modal.types';
|
|
2
|
+
/**
|
|
3
|
+
* Modal Component - Manara Design System
|
|
4
|
+
*
|
|
5
|
+
* A dialog that overlays the interface for critical actions or information.
|
|
6
|
+
* Supports two sizes, Arabic RTL, configurable header/footer, and body content slot.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* const [isOpen, setIsOpen] = useState(false);
|
|
11
|
+
*
|
|
12
|
+
* <Modal
|
|
13
|
+
* isOpen={isOpen}
|
|
14
|
+
* onClose={() => setIsOpen(false)}
|
|
15
|
+
* header={{ title: 'Main Title', subtitle: 'Subtitle', closable: true }}
|
|
16
|
+
* footer={{
|
|
17
|
+
* primaryAction: { label: 'Primary', onClick: handlePrimary },
|
|
18
|
+
* secondaryAction: { label: 'Secondary', onClick: handleSecondary },
|
|
19
|
+
* tertiaryAction: { label: 'Tertiary', onClick: handleTertiary },
|
|
20
|
+
* }}
|
|
21
|
+
* >
|
|
22
|
+
* <p>Modal body content goes here.</p>
|
|
23
|
+
* </Modal>
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare const Modal: {
|
|
27
|
+
({ isOpen, onClose, size, isArabic, header, children, footer, className, }: ModalProps): import("react/jsx-runtime").JSX.Element | null;
|
|
28
|
+
displayName: string;
|
|
29
|
+
};
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Modal size variants
|
|
4
|
+
*/
|
|
5
|
+
export type ModalSize = 'small' | 'large';
|
|
6
|
+
/**
|
|
7
|
+
* Action button configuration for the modal footer
|
|
8
|
+
*/
|
|
9
|
+
export interface ModalAction {
|
|
10
|
+
label: ReactNode;
|
|
11
|
+
onClick?: () => void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Props for the ModalHeader sub-component
|
|
15
|
+
*/
|
|
16
|
+
export interface ModalHeaderProps {
|
|
17
|
+
/**
|
|
18
|
+
* Title text displayed in the modal header
|
|
19
|
+
*/
|
|
20
|
+
title: ReactNode;
|
|
21
|
+
/**
|
|
22
|
+
* Optional subtitle displayed below the title
|
|
23
|
+
*/
|
|
24
|
+
subtitle?: ReactNode;
|
|
25
|
+
/**
|
|
26
|
+
* Whether the close button is visible in the header
|
|
27
|
+
* @default true
|
|
28
|
+
*/
|
|
29
|
+
closable?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Whether to render in Arabic mode (RTL)
|
|
32
|
+
* @default false
|
|
33
|
+
*/
|
|
34
|
+
isArabic?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Additional CSS classes
|
|
37
|
+
*/
|
|
38
|
+
className?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Props for the ModalFooter sub-component
|
|
42
|
+
*/
|
|
43
|
+
export interface ModalFooterProps {
|
|
44
|
+
/**
|
|
45
|
+
* Primary action button props
|
|
46
|
+
*/
|
|
47
|
+
primaryAction: ModalAction;
|
|
48
|
+
/**
|
|
49
|
+
* Optional secondary action button props
|
|
50
|
+
*/
|
|
51
|
+
secondaryAction?: ModalAction;
|
|
52
|
+
/**
|
|
53
|
+
* Optional tertiary action button props
|
|
54
|
+
*/
|
|
55
|
+
tertiaryAction?: ModalAction;
|
|
56
|
+
/**
|
|
57
|
+
* Whether to render in Arabic mode (RTL)
|
|
58
|
+
* @default false
|
|
59
|
+
*/
|
|
60
|
+
isArabic?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Additional CSS classes
|
|
63
|
+
*/
|
|
64
|
+
className?: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Props for the Modal component
|
|
68
|
+
*/
|
|
69
|
+
export interface ModalProps {
|
|
70
|
+
/**
|
|
71
|
+
* Whether the modal is open
|
|
72
|
+
*/
|
|
73
|
+
isOpen: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Callback when the modal is requested to close
|
|
76
|
+
*/
|
|
77
|
+
onClose: () => void;
|
|
78
|
+
/**
|
|
79
|
+
* Size variant of the modal
|
|
80
|
+
* @default 'small'
|
|
81
|
+
*/
|
|
82
|
+
size?: ModalSize;
|
|
83
|
+
/**
|
|
84
|
+
* Whether to render in Arabic mode (RTL)
|
|
85
|
+
* @default false
|
|
86
|
+
*/
|
|
87
|
+
isArabic?: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Header configuration with title, subtitle, and closable
|
|
90
|
+
*/
|
|
91
|
+
header: ModalHeaderProps;
|
|
92
|
+
/**
|
|
93
|
+
* Modal body content
|
|
94
|
+
*/
|
|
95
|
+
children?: ReactNode;
|
|
96
|
+
/**
|
|
97
|
+
* Footer configuration. Pass `false` to hide the footer entirely.
|
|
98
|
+
*/
|
|
99
|
+
footer?: ModalFooterProps | false;
|
|
100
|
+
/**
|
|
101
|
+
* Additional CSS classes for the modal container
|
|
102
|
+
*/
|
|
103
|
+
className?: string;
|
|
104
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
/**
|
|
3
|
+
* Modal overlay variants using CVA
|
|
4
|
+
* The full-screen backdrop behind the modal
|
|
5
|
+
*/
|
|
6
|
+
export declare const modalOverlayVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
|
|
7
|
+
/**
|
|
8
|
+
* Modal container variants using CVA
|
|
9
|
+
* The modal box itself
|
|
10
|
+
*
|
|
11
|
+
* Variants:
|
|
12
|
+
* - size: Controls max-width (small: 480px, large: 720px)
|
|
13
|
+
*/
|
|
14
|
+
export declare const modalContainerVariants: (props?: ({
|
|
15
|
+
size?: "small" | "large" | null | undefined;
|
|
16
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
17
|
+
/**
|
|
18
|
+
* Modal header variants using CVA
|
|
19
|
+
*/
|
|
20
|
+
export declare const modalHeaderVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
|
|
21
|
+
/**
|
|
22
|
+
* Modal body variants using CVA
|
|
23
|
+
*/
|
|
24
|
+
export declare const modalBodyVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
|
|
25
|
+
/**
|
|
26
|
+
* Modal footer variants using CVA
|
|
27
|
+
*/
|
|
28
|
+
export declare const modalFooterVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
|
|
29
|
+
export type ModalContainerVariantsProps = VariantProps<typeof modalContainerVariants>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Modal } from './Modal';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { NavigationBarProps } from '../NavigationBar/NavigationBar.types';
|
|
2
|
+
export type DesktopBarProps = Pick<NavigationBarProps, 'navItems' | 'activeItem' | 'isLoggedIn' | 'isScrolled' | 'isPremium' | 'selectedLanguage' | 'labels' | 'onLanguageChange' | 'onNavItemClick' | 'onSearchClick' | 'onLoginClick' | 'onAvatarClick'> & {
|
|
3
|
+
className?: string;
|
|
4
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
/**
|
|
3
|
+
* Desktop bar layout — flex with logo cluster left, menu cluster right.
|
|
4
|
+
* Background is transparent at idle (overlays page content) and switches
|
|
5
|
+
* to the navbar surface + 16px backdrop blur when scrolled.
|
|
6
|
+
*/
|
|
7
|
+
export declare const desktopBarVariants: (props?: ({
|
|
8
|
+
isScrolled?: boolean | null | undefined;
|
|
9
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
10
|
+
export type DesktopBarVariantsProps = VariantProps<typeof desktopBarVariants>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface LanguageOption {
|
|
2
|
+
/** Locale code (BCP 47), e.g. 'en', 'ar', 'ckb'. */
|
|
3
|
+
key: string;
|
|
4
|
+
/** Endonym (native-script label). */
|
|
5
|
+
label: string;
|
|
6
|
+
}
|
|
7
|
+
export interface LanguageSwitcherProps {
|
|
8
|
+
/** Locale code of the currently selected language. */
|
|
9
|
+
selectedLanguage?: string;
|
|
10
|
+
onLanguageChange?: (languageKey: string) => void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface LoginOrAvatarProps {
|
|
2
|
+
/** Show Avatar instead of Login button. */
|
|
3
|
+
isLoggedIn?: boolean;
|
|
4
|
+
/** Visible text on the Login button. */
|
|
5
|
+
loginLabel: string;
|
|
6
|
+
/** Whether the Login label should render with the Arabic font. */
|
|
7
|
+
isArabicFont?: boolean;
|
|
8
|
+
onLoginClick?: () => void;
|
|
9
|
+
onAvatarClick?: () => void;
|
|
10
|
+
}
|