@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,14 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
interface UseDragToScrollOptions {
|
|
3
|
+
/** Disable all drag handling. @default true */
|
|
4
|
+
enabled?: boolean;
|
|
5
|
+
/** Pixel distance past which the trailing click is suppressed. @default 5 */
|
|
6
|
+
clickThreshold?: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Mouse drag-to-scroll. Touch falls through to native inertial scroll. Toggles
|
|
10
|
+
* `data-dragging` on the element for styling, and swallows the trailing click
|
|
11
|
+
* past `clickThreshold` so descendants don't activate on drag-release.
|
|
12
|
+
*/
|
|
13
|
+
export declare const useDragToScroll: <T extends HTMLElement>({ enabled, clickThreshold, }?: UseDragToScrollOptions) => RefObject<T | null>;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { ChipProps } from './Chip.types';
|
|
3
|
+
/**
|
|
4
|
+
* Chip Component — Manara Design System
|
|
5
|
+
*
|
|
6
|
+
* Chips allow users to display information, make choices, filter content,
|
|
7
|
+
* or perform actions. Supports selected state with check icon, and Arabic RTL.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* <Chip label="Option" />
|
|
12
|
+
* <Chip label="Selected" isSelected />
|
|
13
|
+
* <Chip label="شريحة" isArabic />
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare const Chip: FC<ChipProps>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ButtonHTMLAttributes } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Visual interaction state — used by Storybook/Figma playground
|
|
4
|
+
* to force hover/pressed appearance for design audits.
|
|
5
|
+
* Real interaction states are handled by CVA pseudo-classes (hover:, active:).
|
|
6
|
+
*/
|
|
7
|
+
export type ChipState = 'default' | 'hover' | 'pressed';
|
|
8
|
+
/**
|
|
9
|
+
* Props for the Chip component
|
|
10
|
+
*
|
|
11
|
+
* Extends native `<button>` attributes so consumers can pass `data-*`, `aria-*`, etc.
|
|
12
|
+
*/
|
|
13
|
+
export interface ChipProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
14
|
+
/**
|
|
15
|
+
* Label text displayed in the chip
|
|
16
|
+
* @default 'Chip'
|
|
17
|
+
*/
|
|
18
|
+
label?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Uses Arabic font and RTL layout
|
|
21
|
+
* @default false
|
|
22
|
+
*/
|
|
23
|
+
isArabic?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the chip is in the selected/active state
|
|
26
|
+
* @default false
|
|
27
|
+
*/
|
|
28
|
+
isSelected?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Callback fired when the chip is clicked (toggles selection)
|
|
31
|
+
*/
|
|
32
|
+
onToggle?: () => void;
|
|
33
|
+
/**
|
|
34
|
+
* Storybook-only: forces a visual interaction state for design audits.
|
|
35
|
+
* @default 'default'
|
|
36
|
+
*/
|
|
37
|
+
state?: ChipState;
|
|
38
|
+
/**
|
|
39
|
+
* Storybook-only: forces the focus ring visible.
|
|
40
|
+
* Real focus is handled by focus-visible CSS.
|
|
41
|
+
* @default false
|
|
42
|
+
*/
|
|
43
|
+
isFocused?: boolean;
|
|
44
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
/**
|
|
3
|
+
* Chip container variants using CVA
|
|
4
|
+
*
|
|
5
|
+
* - Height: 36px
|
|
6
|
+
* - Padding: px-12px, py-8px
|
|
7
|
+
* - Gap: 6px (between check icon and label)
|
|
8
|
+
* - Border: 2px solid
|
|
9
|
+
* - Radius: 12px
|
|
10
|
+
*
|
|
11
|
+
* isSelected state changes:
|
|
12
|
+
* - Unselected: surface/primary bg, border/primary border, text/secondary text
|
|
13
|
+
* - Selected: surface/brand/primary bg, border/focused border, text/brand/secondary text
|
|
14
|
+
*
|
|
15
|
+
* Hover/Pressed handled via CSS pseudo-classes
|
|
16
|
+
*/
|
|
17
|
+
export declare const chipVariants: (props?: ({
|
|
18
|
+
isSelected?: boolean | null | undefined;
|
|
19
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
20
|
+
export type ChipVariantsProps = VariantProps<typeof chipVariants>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Chip } from './Chip';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { HTMLAttributes } from 'react';
|
|
2
|
+
/** Props for the Episode card. Composes `Card` with an episode text block underneath. */
|
|
3
|
+
export interface EpisodeProps extends HTMLAttributes<HTMLElement> {
|
|
4
|
+
/** Poster image URL — fills the top thumbnail. */
|
|
5
|
+
posterSrc?: string;
|
|
6
|
+
/** Alt text for the poster image. @default '' */
|
|
7
|
+
posterAlt?: string;
|
|
8
|
+
/** Heading line, e.g. 'Episode 1' / 'الحلقة 1'. */
|
|
9
|
+
episodeNumber: string;
|
|
10
|
+
/** Muted secondary line below the heading — typically the actual episode title. */
|
|
11
|
+
episodeTitle: string;
|
|
12
|
+
/** 3-line clamped description paragraph. */
|
|
13
|
+
description: string;
|
|
14
|
+
/** Show the timeline overlay (progress bar + season/episode badge + kebab). @default false */
|
|
15
|
+
showTimeline?: boolean;
|
|
16
|
+
/** Season/episode label inside the timeline overlay (e.g. 'S1 E2', 'موسم 1 حلقة 2'). */
|
|
17
|
+
episodeLabel?: string;
|
|
18
|
+
/** Watch progress 0–100 for the timeline overlay's progress bar. @default 0 */
|
|
19
|
+
progress?: number;
|
|
20
|
+
/** Click handler for the timeline more-menu (kebab) button. */
|
|
21
|
+
onMoreClick?: () => void;
|
|
22
|
+
/** RTL mode — mirrors overlays and applies the Arabic-script font. @default true */
|
|
23
|
+
isArabic?: boolean;
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Episode } from './Episode';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { FeaturedCarouselProps } from './FeaturedCarousel.types';
|
|
3
|
+
/**
|
|
4
|
+
* FeaturedCarousel — full-bleed hero carousel showcasing one slide at a time.
|
|
5
|
+
* Crossfades between slides via opacity. Supports autoplay, touch/mouse swipe,
|
|
6
|
+
* and click-to-jump pagination dots.
|
|
7
|
+
*/
|
|
8
|
+
export declare const FeaturedCarousel: FC<FeaturedCarouselProps>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
import { LogoBrand } from '../Logo/Logo.types';
|
|
3
|
+
/** Single hero slide. `primary`/`secondary`/`tertiary` are `ReactNode` slots — pass rendered `<Button>`s so consumers control variant, icons, and handlers. */
|
|
4
|
+
export interface FeaturedCarouselItem {
|
|
5
|
+
/** Stable React `key` (falls back to array index when omitted). */
|
|
6
|
+
id?: string | number;
|
|
7
|
+
/** Poster image URL — landscape, fills the right (LTR) or left (RTL) side. */
|
|
8
|
+
posterSrc: string;
|
|
9
|
+
/** Alt text for the poster image. @default '' (decorative) */
|
|
10
|
+
posterAlt?: string;
|
|
11
|
+
/** Brand mark shown inline with the overline. @default '1001' */
|
|
12
|
+
logoBrand?: LogoBrand;
|
|
13
|
+
/** Short text shown next to the logo (e.g. `'・Live Now'`). */
|
|
14
|
+
overline: string;
|
|
15
|
+
/** Slide headline (Display/Small, 40px). */
|
|
16
|
+
title: string;
|
|
17
|
+
/** Two-line summary (Body/Small, truncates after 2 lines). */
|
|
18
|
+
description: string;
|
|
19
|
+
/** Primary action button — typically a fill `<Button>` with an icon. */
|
|
20
|
+
primary: ReactNode;
|
|
21
|
+
/** Optional outline secondary action button. */
|
|
22
|
+
secondary?: ReactNode;
|
|
23
|
+
/** Optional ghost tertiary action button. */
|
|
24
|
+
tertiary?: ReactNode;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Props for the FeaturedCarousel component.
|
|
28
|
+
*
|
|
29
|
+
* Extends native `<section>` attributes so consumers can pass `id`, `data-*`,
|
|
30
|
+
* `aria-*`, etc.
|
|
31
|
+
*/
|
|
32
|
+
export interface FeaturedCarouselProps extends HTMLAttributes<HTMLElement> {
|
|
33
|
+
/** Slides rendered in order. Pagination dots and swipe navigation are derived from this. */
|
|
34
|
+
items: FeaturedCarouselItem[];
|
|
35
|
+
/** Auto-advance to the next slide on an interval. Pauses while the user is hovering or mid-swipe. @default true */
|
|
36
|
+
autoplay?: boolean;
|
|
37
|
+
/** Milliseconds between auto-advances. @default 6000 */
|
|
38
|
+
autoplayInterval?: number;
|
|
39
|
+
/** Pixel distance past which a touch/mouse swipe commits to a slide change. @default 60 */
|
|
40
|
+
swipeThreshold?: number;
|
|
41
|
+
/** RTL mode — flips poster, details, pagination, swipe direction, and fonts. @default true */
|
|
42
|
+
isArabic?: boolean;
|
|
43
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FeaturedCarouselItem } from '../FeaturedCarousel.types';
|
|
2
|
+
/** Props for the internal `Slide` sub-component. */
|
|
3
|
+
export interface SlideProps {
|
|
4
|
+
/** The slide payload to render. */
|
|
5
|
+
item: FeaturedCarouselItem;
|
|
6
|
+
/** When true the slide is fully visible and interactive; otherwise it fades to opacity 0 and stops accepting pointer events. */
|
|
7
|
+
isActive: boolean;
|
|
8
|
+
/** RTL mode — flips poster anchor and side-scrim direction. */
|
|
9
|
+
isArabic: boolean;
|
|
10
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Props for the internal `SlideDots` indicator. */
|
|
2
|
+
export interface SlideDotsProps {
|
|
3
|
+
/** Total number of slides — one dot per slide. */
|
|
4
|
+
total: number;
|
|
5
|
+
/** Index of the slide currently shown; that dot renders in the brand colour. */
|
|
6
|
+
activeIndex: number;
|
|
7
|
+
/** RTL mode — flips the pill from the right edge to the left edge. */
|
|
8
|
+
isArabic: boolean;
|
|
9
|
+
/** Called with the dot index when the user clicks a dot. */
|
|
10
|
+
onSelect: (index: number) => void;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FeaturedCarousel } from './FeaturedCarousel';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { FooterProps } from './Footer.types';
|
|
3
|
+
/**
|
|
4
|
+
* Footer — Manara Design System
|
|
5
|
+
*
|
|
6
|
+
* Fully self-contained: derives RTL, font, labels, and copyright from
|
|
7
|
+
* `selectedLanguage` and responds to viewport via Tailwind breakpoints:
|
|
8
|
+
* mobile <768px → everything stacked, tight padding
|
|
9
|
+
* tablet md:≥768px → copyright top, links+socials share a row, larger padding
|
|
10
|
+
* desktop lg:≥1024px → single row: copyright ⇄ (links + socials), disclaimer below
|
|
11
|
+
*/
|
|
12
|
+
export declare const Footer: FC<FooterProps>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Footer translations — colocated so the Footer is fully self-contained:
|
|
3
|
+
* parents only pass `selectedLanguage` and the component derives every
|
|
4
|
+
* label from this dictionary.
|
|
5
|
+
*/
|
|
6
|
+
export type FooterLinkKey = 'privacy' | 'terms' | 'help' | 'contact';
|
|
7
|
+
export interface FooterStrings {
|
|
8
|
+
/** Builds the © line. Year and version are supplied internally by the Footer. */
|
|
9
|
+
copyright: (year: number, version: string) => string;
|
|
10
|
+
links: Record<FooterLinkKey, string>;
|
|
11
|
+
/**
|
|
12
|
+
* reCAPTCHA disclaimer split into 5 segments so Privacy Policy and
|
|
13
|
+
* Terms of Service render as inline underlined links.
|
|
14
|
+
*/
|
|
15
|
+
recaptcha: {
|
|
16
|
+
prefix: string;
|
|
17
|
+
privacyLink: string;
|
|
18
|
+
middle: string;
|
|
19
|
+
termsLink: string;
|
|
20
|
+
suffix: string;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export declare const FOOTER_STRINGS: Record<string, FooterStrings>;
|
|
24
|
+
export declare const FOOTER_LINK_ORDER: FooterLinkKey[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Footer } from './Footer';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CheckboxProps } from './Checkbox.types';
|
|
2
|
+
/**
|
|
3
|
+
* Checkbox Component - Manara Design System
|
|
4
|
+
*
|
|
5
|
+
* A controlled checkbox component that supports checked, indeterminate, and unchecked states.
|
|
6
|
+
* Supports two sizes, labels with required indicators, Arabic RTL, and disabled/focus states.
|
|
7
|
+
*
|
|
8
|
+
* The parent is responsible for managing state via isChecked + onChange.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* const [checked, setChecked] = useState(false);
|
|
13
|
+
* <Checkbox isChecked={checked} onChange={setChecked} label="Accept terms" />
|
|
14
|
+
*
|
|
15
|
+
* // Indeterminate
|
|
16
|
+
* <Checkbox isIndeterminate label="Select all" onChange={handleSelectAll} />
|
|
17
|
+
*
|
|
18
|
+
* // Large + Required
|
|
19
|
+
* <Checkbox size="large" isChecked={val} onChange={setVal} label="Required" isRequired />
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare const Checkbox: import('react').ForwardRefExoticComponent<CheckboxProps & import('react').RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { InputHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Checkbox size variants
|
|
4
|
+
*/
|
|
5
|
+
export type CheckboxSize = 'default' | 'large';
|
|
6
|
+
/**
|
|
7
|
+
* Checkbox state (for styling purposes in Matrix/Storybook)
|
|
8
|
+
*/
|
|
9
|
+
export type CheckboxState = 'default' | 'hover' | 'pressed' | 'disabled' | 'focused';
|
|
10
|
+
/**
|
|
11
|
+
* Props for the Checkbox component
|
|
12
|
+
*/
|
|
13
|
+
export interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'checked' | 'onChange'> {
|
|
14
|
+
/**
|
|
15
|
+
* Size variant of the checkbox
|
|
16
|
+
* @default 'default'
|
|
17
|
+
*/
|
|
18
|
+
size?: CheckboxSize;
|
|
19
|
+
/**
|
|
20
|
+
* Whether the checkbox is checked. Parent manages state via onChange.
|
|
21
|
+
* @default false
|
|
22
|
+
*/
|
|
23
|
+
isChecked?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the checkbox is in an indeterminate state
|
|
26
|
+
* @default false
|
|
27
|
+
*/
|
|
28
|
+
isIndeterminate?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Whether the checkbox is disabled
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
isDisabled?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Whether the checkbox is focused (for Storybook/testing)
|
|
36
|
+
* The native browser focus is already handled in the css classes.
|
|
37
|
+
* This is only for testing/storybook to trigger the focus state.
|
|
38
|
+
* @default false
|
|
39
|
+
*/
|
|
40
|
+
isFocused?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Whether to render the checkbox in Arabic mode (RTL)
|
|
43
|
+
* @default false
|
|
44
|
+
*/
|
|
45
|
+
isArabic?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Label text or node displayed next to the checkbox
|
|
48
|
+
*/
|
|
49
|
+
label?: ReactNode;
|
|
50
|
+
/**
|
|
51
|
+
* Whether to show a required asterisk after the label
|
|
52
|
+
* @default false
|
|
53
|
+
*/
|
|
54
|
+
isRequired?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Callback fired when the checked state changes
|
|
57
|
+
*/
|
|
58
|
+
onChange?: (checked: boolean) => void;
|
|
59
|
+
/**
|
|
60
|
+
* Additional CSS classes to apply
|
|
61
|
+
*/
|
|
62
|
+
className?: string;
|
|
63
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
/**
|
|
3
|
+
* Checkbox box variants using CVA (Class Variance Authority)
|
|
4
|
+
* Based on Manara Design System specifications
|
|
5
|
+
*
|
|
6
|
+
* The checkbox box is the inner visual square element that displays
|
|
7
|
+
* the check or indeterminate icon. It sits inside a touch-target wrapper
|
|
8
|
+
* that controls the overall hit area size (32×32 default, 40×40 large).
|
|
9
|
+
*
|
|
10
|
+
* Variants:
|
|
11
|
+
* - checked: Whether the box shows as checked/indeterminate (green) or unchecked (dark)
|
|
12
|
+
* - isDisabled: Disabled state styling
|
|
13
|
+
*/
|
|
14
|
+
export declare const checkboxBoxVariants: (props?: ({
|
|
15
|
+
size?: "default" | "large" | null | undefined;
|
|
16
|
+
checked?: boolean | null | undefined;
|
|
17
|
+
isDisabled?: boolean | null | undefined;
|
|
18
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
19
|
+
export type CheckboxBoxVariantsProps = VariantProps<typeof checkboxBoxVariants>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Checkbox } from './Checkbox';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { DropdownProps } from './Dropdown.types';
|
|
2
|
+
/**
|
|
3
|
+
* Dropdown Component - Manara Design System
|
|
4
|
+
*
|
|
5
|
+
* A dropdown allows users to select a single option from a list.
|
|
6
|
+
* Supports three sizes, three types (default, phoneNumber, paymentMethod),
|
|
7
|
+
* labels with required indicators, helper text, Arabic RTL, and disabled/focus states.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* const [value, setValue] = useState('');
|
|
12
|
+
* <Dropdown
|
|
13
|
+
* value={value}
|
|
14
|
+
* onChange={setValue}
|
|
15
|
+
* label="Country"
|
|
16
|
+
* placeholder="Select country"
|
|
17
|
+
* options={[
|
|
18
|
+
* { value: 'us', label: 'United States' },
|
|
19
|
+
* { value: 'uk', label: 'United Kingdom' },
|
|
20
|
+
* ]}
|
|
21
|
+
* />
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare const Dropdown: import('react').ForwardRefExoticComponent<DropdownProps & import('react').RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Dropdown size variants
|
|
4
|
+
*/
|
|
5
|
+
export type DropdownSize = 'default' | 'medium' | 'large';
|
|
6
|
+
/**
|
|
7
|
+
* Dropdown type variants — affects trigger icon layout/padding
|
|
8
|
+
*/
|
|
9
|
+
export type DropdownType = 'default' | 'phoneNumber' | 'paymentMethod';
|
|
10
|
+
/**
|
|
11
|
+
* Helper text state for color control
|
|
12
|
+
*/
|
|
13
|
+
export type DropdownHelperState = 'default' | 'error' | 'success';
|
|
14
|
+
/**
|
|
15
|
+
* A single option in the dropdown
|
|
16
|
+
*/
|
|
17
|
+
export interface DropdownOption {
|
|
18
|
+
/** Unique value for this option */
|
|
19
|
+
value: string;
|
|
20
|
+
/** Display label */
|
|
21
|
+
label: string;
|
|
22
|
+
/** Optional icon rendered before the label */
|
|
23
|
+
iconBefore?: ReactNode;
|
|
24
|
+
/** Whether this option is disabled */
|
|
25
|
+
isDisabled?: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Props for the Dropdown component
|
|
29
|
+
*
|
|
30
|
+
* Extends native `<div>` attributes so consumers can pass `data-*`, `aria-*`, etc.
|
|
31
|
+
* `onChange` is narrowed to `(value: string) => void` for selection changes.
|
|
32
|
+
*/
|
|
33
|
+
export interface DropdownProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
|
34
|
+
/**
|
|
35
|
+
* Size variant of the dropdown
|
|
36
|
+
* @default 'default'
|
|
37
|
+
*/
|
|
38
|
+
size?: DropdownSize;
|
|
39
|
+
/**
|
|
40
|
+
* Type variant — affects trigger icon layout and padding
|
|
41
|
+
* @default 'default'
|
|
42
|
+
*/
|
|
43
|
+
type?: DropdownType;
|
|
44
|
+
/**
|
|
45
|
+
* Whether the dropdown is disabled
|
|
46
|
+
* @default false
|
|
47
|
+
*/
|
|
48
|
+
isDisabled?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Whether the dropdown appears focused (for Storybook/testing).
|
|
51
|
+
* Native focus is handled via CSS.
|
|
52
|
+
* @default false
|
|
53
|
+
*/
|
|
54
|
+
isFocused?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Whether the dropdown is in an invalid/error state
|
|
57
|
+
* @default false
|
|
58
|
+
*/
|
|
59
|
+
isInvalid?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Whether to render in Arabic mode (RTL)
|
|
62
|
+
* @default false
|
|
63
|
+
*/
|
|
64
|
+
isArabic?: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Whether to show a required asterisk after the label
|
|
67
|
+
* @default false
|
|
68
|
+
*/
|
|
69
|
+
isRequired?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Label text or node displayed above the dropdown
|
|
72
|
+
*/
|
|
73
|
+
label?: ReactNode;
|
|
74
|
+
/**
|
|
75
|
+
* Helper text displayed below the dropdown
|
|
76
|
+
*/
|
|
77
|
+
helperText?: ReactNode;
|
|
78
|
+
/**
|
|
79
|
+
* Controls the color of helper text when not invalid
|
|
80
|
+
* @default 'default'
|
|
81
|
+
*/
|
|
82
|
+
helperState?: DropdownHelperState;
|
|
83
|
+
/**
|
|
84
|
+
* Placeholder text when no value is selected
|
|
85
|
+
* @default 'Placeholder'
|
|
86
|
+
*/
|
|
87
|
+
placeholder?: string;
|
|
88
|
+
/**
|
|
89
|
+
* Currently selected value
|
|
90
|
+
*/
|
|
91
|
+
value?: string;
|
|
92
|
+
/**
|
|
93
|
+
* Callback fired when the selected value changes
|
|
94
|
+
*/
|
|
95
|
+
onChange?: (value: string) => void;
|
|
96
|
+
/**
|
|
97
|
+
* List of options to display in the dropdown menu
|
|
98
|
+
*/
|
|
99
|
+
options: DropdownOption[];
|
|
100
|
+
/**
|
|
101
|
+
* Icon displayed in the trigger before the text (e.g. flag for phoneNumber)
|
|
102
|
+
*/
|
|
103
|
+
iconBefore?: ReactNode;
|
|
104
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
/**
|
|
3
|
+
* Dropdown trigger button variants
|
|
4
|
+
*
|
|
5
|
+
* Variants:
|
|
6
|
+
* - size: Controls height, padding, border radius
|
|
7
|
+
* - isInvalid: Error state with critical border
|
|
8
|
+
* - isDisabled: Disabled state styling
|
|
9
|
+
* - type: Affects gap and padding for icon accommodation
|
|
10
|
+
*
|
|
11
|
+
* Interactive states (focus, hover, open) are handled via CSS:
|
|
12
|
+
* - hover: surface-manara-hover
|
|
13
|
+
* - open (focus-within): surface-manara-accent + border-manara-focused (2px)
|
|
14
|
+
*/
|
|
15
|
+
export declare const dropdownTriggerVariants: (props?: ({
|
|
16
|
+
size?: "default" | "medium" | "large" | null | undefined;
|
|
17
|
+
type?: "default" | "phoneNumber" | "paymentMethod" | null | undefined;
|
|
18
|
+
isInvalid?: boolean | null | undefined;
|
|
19
|
+
isDisabled?: boolean | null | undefined;
|
|
20
|
+
isOpen?: boolean | null | undefined;
|
|
21
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
22
|
+
export type DropdownTriggerVariantsProps = VariantProps<typeof dropdownTriggerVariants>;
|
|
23
|
+
/**
|
|
24
|
+
* Dropdown option item variants
|
|
25
|
+
*
|
|
26
|
+
* - size: Controls height
|
|
27
|
+
* - isSelected: Green background with dark text
|
|
28
|
+
*/
|
|
29
|
+
export declare const dropdownOptionVariants: (props?: ({
|
|
30
|
+
isSelected?: boolean | null | undefined;
|
|
31
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
32
|
+
export type DropdownOptionVariantsProps = VariantProps<typeof dropdownOptionVariants>;
|
|
33
|
+
/**
|
|
34
|
+
* Dropdown menu (floating panel) variants
|
|
35
|
+
*/
|
|
36
|
+
export declare const dropdownMenuVariants: (props?: ({
|
|
37
|
+
size?: "default" | "medium" | "large" | null | undefined;
|
|
38
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
39
|
+
export type DropdownMenuVariantsProps = VariantProps<typeof dropdownMenuVariants>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Dropdown } from './Dropdown';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { OtpInputProps } from './OtpInput.types';
|
|
3
|
+
/**
|
|
4
|
+
* OTP Input Component - Manara Design System
|
|
5
|
+
*
|
|
6
|
+
* An OTP input lets users enter a one-time password for authentication or verification.
|
|
7
|
+
* Supports three sizes, labels, Arabic RTL, disabled/invalid states, and an optional
|
|
8
|
+
* dash separator between digit groups.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* const [otp, setOtp] = useState('');
|
|
13
|
+
* <OtpInput value={otp} onChange={setOtp} label="Verification Code" />
|
|
14
|
+
*
|
|
15
|
+
* // 5-digit with separator
|
|
16
|
+
* <OtpInput value={otp} onChange={setOtp} length={5} separatorAfter={2} />
|
|
17
|
+
*
|
|
18
|
+
* // Large + Invalid
|
|
19
|
+
* <OtpInput size="large" value={otp} onChange={setOtp} isInvalid />
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare const OtpInput: FC<OtpInputProps>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* OTP Input size variants
|
|
4
|
+
*/
|
|
5
|
+
export type OtpInputSize = 'default' | 'medium' | 'large';
|
|
6
|
+
/**
|
|
7
|
+
* OTP Input state (for styling purposes in Matrix/Storybook)
|
|
8
|
+
*/
|
|
9
|
+
export type OtpInputState = 'default' | 'focus' | 'typing' | 'filled' | 'invalid' | 'disabled';
|
|
10
|
+
/**
|
|
11
|
+
* Props for the OtpInput component
|
|
12
|
+
*
|
|
13
|
+
* Extends native `<div>` attributes so consumers can pass `data-*`, `aria-*`, etc.
|
|
14
|
+
* `onChange` is narrowed to `(value: string) => void` for OTP value changes.
|
|
15
|
+
*/
|
|
16
|
+
export interface OtpInputProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
|
17
|
+
/**
|
|
18
|
+
* Size variant of the OTP input slots
|
|
19
|
+
* @default 'default'
|
|
20
|
+
*/
|
|
21
|
+
size?: OtpInputSize;
|
|
22
|
+
/**
|
|
23
|
+
* Number of OTP digit slots
|
|
24
|
+
* @default 4
|
|
25
|
+
*/
|
|
26
|
+
length?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Current OTP value (controlled). Each character fills one slot.
|
|
29
|
+
* @default ''
|
|
30
|
+
*/
|
|
31
|
+
value?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Callback fired when the OTP value changes
|
|
34
|
+
*/
|
|
35
|
+
onChange?: (value: string) => void;
|
|
36
|
+
/**
|
|
37
|
+
* Whether the OTP input is disabled
|
|
38
|
+
* @default false
|
|
39
|
+
*/
|
|
40
|
+
isDisabled?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Index of the slot to show as focused (for Storybook/testing).
|
|
43
|
+
* The native browser focus is already handled in CSS.
|
|
44
|
+
* Use 0 to focus the first slot, 1 for the second, etc.
|
|
45
|
+
*/
|
|
46
|
+
focusedIndex?: number;
|
|
47
|
+
/**
|
|
48
|
+
* Whether the OTP input is in an invalid/error state
|
|
49
|
+
* @default false
|
|
50
|
+
*/
|
|
51
|
+
isInvalid?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Whether to render in Arabic mode (RTL)
|
|
54
|
+
* @default false
|
|
55
|
+
*/
|
|
56
|
+
isArabic?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Label text or node displayed above the input
|
|
59
|
+
*/
|
|
60
|
+
label?: ReactNode;
|
|
61
|
+
/**
|
|
62
|
+
* Index after which to show a dash separator (0-based).
|
|
63
|
+
* For example, separatorAfter={2} with length=5 renders: [0][1][2] - [3][4]
|
|
64
|
+
*/
|
|
65
|
+
separatorAfter?: number;
|
|
66
|
+
}
|