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