@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,24 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
/**
|
|
3
|
+
* OTP Slot variants using CVA (Class Variance Authority)
|
|
4
|
+
* Based on Manara Design System specifications
|
|
5
|
+
*
|
|
6
|
+
* Each OTP slot is a square input cell that holds a single digit.
|
|
7
|
+
*
|
|
8
|
+
* Sizes (from Figma):
|
|
9
|
+
* - default: 40×40, padding 12px, border-radius 12px
|
|
10
|
+
* - medium: 48×48, padding 12px, border-radius 16px
|
|
11
|
+
* - large: 56×56, padding 16px, border-radius 16px
|
|
12
|
+
*
|
|
13
|
+
* States:
|
|
14
|
+
* - default: surface/primary, 1px border/primary
|
|
15
|
+
* - focus: surface/accent, 2px border/focused (green)
|
|
16
|
+
* - invalid: surface/primary, 2px border/critical (red)
|
|
17
|
+
* - disabled: surface/disabled, no visible border
|
|
18
|
+
*/
|
|
19
|
+
export declare const otpSlotVariants: (props?: ({
|
|
20
|
+
size?: "default" | "medium" | "large" | null | undefined;
|
|
21
|
+
isInvalid?: boolean | null | undefined;
|
|
22
|
+
isDisabled?: boolean | null | undefined;
|
|
23
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
24
|
+
export type OtpSlotVariantsProps = VariantProps<typeof otpSlotVariants>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { OtpInput } from './OtpInput';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { RadioProps } from './Radio.types';
|
|
2
|
+
/**
|
|
3
|
+
* Radio Component - Manara Design System
|
|
4
|
+
*
|
|
5
|
+
* A controlled radio button component that allows users to select one option
|
|
6
|
+
* from a group of choices. Supports two sizes, labels with required indicators,
|
|
7
|
+
* Arabic RTL, and disabled/focus states.
|
|
8
|
+
*
|
|
9
|
+
* The parent is responsible for managing state via isChecked + onChange.
|
|
10
|
+
* For a group of radios, use native radio `name` attribute to ensure only one
|
|
11
|
+
* is selected at a time.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* const [selected, setSelected] = useState('');
|
|
16
|
+
*
|
|
17
|
+
* <Radio name="plan" value="basic" isChecked={selected === 'basic'} onChange={() => setSelected('basic')} label="Basic" />
|
|
18
|
+
* <Radio name="plan" value="pro" isChecked={selected === 'pro'} onChange={() => setSelected('pro')} label="Pro" />
|
|
19
|
+
* <Radio name="plan" value="expert" isChecked={selected === 'expert'} onChange={() => setSelected('expert')} label="Expert" />
|
|
20
|
+
*
|
|
21
|
+
* // Large + Required
|
|
22
|
+
* <Radio size="large" isChecked={val} onChange={() => setVal(true)} label="Option" isRequired />
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare const Radio: import('react').ForwardRefExoticComponent<RadioProps & import('react').RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { InputHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Radio size variants
|
|
4
|
+
*/
|
|
5
|
+
export type RadioSize = 'default' | 'large';
|
|
6
|
+
/**
|
|
7
|
+
* Radio state (for styling purposes in Matrix/Storybook)
|
|
8
|
+
*/
|
|
9
|
+
export type RadioState = 'default' | 'hover' | 'pressed' | 'disabled' | 'focused';
|
|
10
|
+
/**
|
|
11
|
+
* Props for the Radio component
|
|
12
|
+
*/
|
|
13
|
+
export interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'checked' | 'onChange'> {
|
|
14
|
+
/**
|
|
15
|
+
* Size variant of the radio button
|
|
16
|
+
* @default 'default'
|
|
17
|
+
*/
|
|
18
|
+
size?: RadioSize;
|
|
19
|
+
/**
|
|
20
|
+
* Whether the radio is selected. Parent manages state via onChange.
|
|
21
|
+
* @default false
|
|
22
|
+
*/
|
|
23
|
+
isChecked?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the radio is disabled
|
|
26
|
+
* @default false
|
|
27
|
+
*/
|
|
28
|
+
isDisabled?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Whether the radio is focused (for Storybook/testing)
|
|
31
|
+
* The native browser focus is already handled in the css classes.
|
|
32
|
+
* This is only for testing/storybook to trigger the focus state.
|
|
33
|
+
* @default false
|
|
34
|
+
*/
|
|
35
|
+
isFocused?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Whether to render the radio in Arabic mode (RTL)
|
|
38
|
+
* @default false
|
|
39
|
+
*/
|
|
40
|
+
isArabic?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Label text or node displayed next to the radio button
|
|
43
|
+
*/
|
|
44
|
+
label?: ReactNode;
|
|
45
|
+
/**
|
|
46
|
+
* Whether to show a required asterisk after the label
|
|
47
|
+
* @default false
|
|
48
|
+
*/
|
|
49
|
+
isRequired?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Callback fired when the radio is selected
|
|
52
|
+
*/
|
|
53
|
+
onChange?: (checked: boolean) => void;
|
|
54
|
+
/**
|
|
55
|
+
* Additional CSS classes to apply
|
|
56
|
+
*/
|
|
57
|
+
className?: string;
|
|
58
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
/**
|
|
3
|
+
* Radio circle variants using CVA (Class Variance Authority)
|
|
4
|
+
* Based on Manara Design System specifications
|
|
5
|
+
*
|
|
6
|
+
* The radio circle is the inner visual element (fully rounded) that indicates
|
|
7
|
+
* selection state. It sits inside a touch-target wrapper that controls the
|
|
8
|
+
* overall hit area size (32×32 default, 40×40 large).
|
|
9
|
+
*
|
|
10
|
+
* Figma specs:
|
|
11
|
+
* - Default touch target: 32×32 (space400), inner circle: 20×20 (space250), 6px padding
|
|
12
|
+
* - Large touch target: 40×40 (space500), inner circle: 24×24 (space300), 8px padding
|
|
13
|
+
*
|
|
14
|
+
* Unchecked states:
|
|
15
|
+
* - default: surface/primary (#1c1d32) + border/primary (#3b3b4e)
|
|
16
|
+
* - hover: surface/hover (#2e2f42) + border/primary
|
|
17
|
+
* - pressed: surface/accent (#0d0e25) + border/primary
|
|
18
|
+
* - disabled: surface/disabled (#2e2f42) + border/disabled (#2e2f42)
|
|
19
|
+
*
|
|
20
|
+
* Checked states (green circle + dark inner dot):
|
|
21
|
+
* - default: surface/brand (#13cb5c) + border transparent
|
|
22
|
+
* - hover: surface/brand-hover (#11b954)
|
|
23
|
+
* - pressed: surface/brand-pressed (#0d9041)
|
|
24
|
+
* - disabled: surface/disabled + border/disabled (same as unchecked disabled)
|
|
25
|
+
*/
|
|
26
|
+
export declare const radioCircleVariants: (props?: ({
|
|
27
|
+
checked?: boolean | null | undefined;
|
|
28
|
+
isDisabled?: boolean | null | undefined;
|
|
29
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
30
|
+
export type RadioCircleVariantsProps = VariantProps<typeof radioCircleVariants>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Radio } from './Radio';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { SwitchProps } from './Switch.types';
|
|
2
|
+
/**
|
|
3
|
+
* Switch Component - Manara Design System
|
|
4
|
+
*
|
|
5
|
+
* A controlled toggle switch that allows users to turn an option on or off.
|
|
6
|
+
* Supports two sizes, labels with required indicators, Arabic RTL,
|
|
7
|
+
* and disabled/focus states.
|
|
8
|
+
*
|
|
9
|
+
* The parent is responsible for managing state via isChecked + onChange.
|
|
10
|
+
*
|
|
11
|
+
* Architecture matches Figma: a relative container holds absolutely-positioned
|
|
12
|
+
* track and knob elements with pixel-precise placement.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* const [enabled, setEnabled] = useState(false);
|
|
17
|
+
*
|
|
18
|
+
* <Switch isChecked={enabled} onChange={setEnabled} label="Enable notifications" />
|
|
19
|
+
*
|
|
20
|
+
* // Large + Required
|
|
21
|
+
* <Switch size="large" isChecked={val} onChange={setVal} label="Accept terms" isRequired />
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare const Switch: import('react').ForwardRefExoticComponent<SwitchProps & import('react').RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { InputHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Switch size variants
|
|
4
|
+
*/
|
|
5
|
+
export type SwitchSize = 'default' | 'large';
|
|
6
|
+
/**
|
|
7
|
+
* Switch state (for styling purposes in Matrix/Storybook)
|
|
8
|
+
*/
|
|
9
|
+
export type SwitchState = 'default' | 'hover' | 'pressed' | 'disabled' | 'focused';
|
|
10
|
+
/**
|
|
11
|
+
* Props for the Switch component
|
|
12
|
+
*/
|
|
13
|
+
export interface SwitchProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'checked' | 'onChange'> {
|
|
14
|
+
/**
|
|
15
|
+
* Size variant of the switch
|
|
16
|
+
* @default 'default'
|
|
17
|
+
*/
|
|
18
|
+
size?: SwitchSize;
|
|
19
|
+
/**
|
|
20
|
+
* Whether the switch is on. Parent manages state via onChange.
|
|
21
|
+
* @default false
|
|
22
|
+
*/
|
|
23
|
+
isChecked?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the switch is disabled
|
|
26
|
+
* @default false
|
|
27
|
+
*/
|
|
28
|
+
isDisabled?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Whether the switch is focused (for Storybook/testing)
|
|
31
|
+
* The native browser focus is already handled in the css classes.
|
|
32
|
+
* This is only for testing/storybook to trigger the focus state.
|
|
33
|
+
* @default false
|
|
34
|
+
*/
|
|
35
|
+
isFocused?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Whether to render the switch in Arabic mode (RTL)
|
|
38
|
+
* @default false
|
|
39
|
+
*/
|
|
40
|
+
isArabic?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Label text or node displayed next to the switch
|
|
43
|
+
*/
|
|
44
|
+
label?: ReactNode;
|
|
45
|
+
/**
|
|
46
|
+
* Whether to show a required asterisk after the label
|
|
47
|
+
* @default false
|
|
48
|
+
*/
|
|
49
|
+
isRequired?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Callback fired when the switch is toggled
|
|
52
|
+
*/
|
|
53
|
+
onChange?: (checked: boolean) => void;
|
|
54
|
+
/**
|
|
55
|
+
* Additional CSS classes to apply
|
|
56
|
+
*/
|
|
57
|
+
className?: string;
|
|
58
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import { SwitchSize } from './Switch.types';
|
|
3
|
+
import { CSSProperties } from 'react';
|
|
4
|
+
/**
|
|
5
|
+
* Switch track variants using CVA (Class Variance Authority)
|
|
6
|
+
* Based on Manara Design System specifications
|
|
7
|
+
*
|
|
8
|
+
* The track is the pill-shaped background absolutely positioned within
|
|
9
|
+
* the touch-target container (48×48 default, 56×56 large).
|
|
10
|
+
*
|
|
11
|
+
* Figma specs:
|
|
12
|
+
* - Default track: 48×28, border-radius full, top 10px
|
|
13
|
+
* - Large track: 56×32, border-radius full, top 12px
|
|
14
|
+
*
|
|
15
|
+
* Unchecked states (dark track + green border):
|
|
16
|
+
* - default: surface/primary (#1c1d32) + border/brand/primary (#13cb5c)
|
|
17
|
+
* - hover: surface/hover (#2e2f42) + border/brand/hover (#11b954)
|
|
18
|
+
* - pressed: surface/accent (#0d0e25) + border/brand/pressed (#0d9041)
|
|
19
|
+
* - disabled: icon/disabled (#575767, --color-navy-300) + no border
|
|
20
|
+
*
|
|
21
|
+
* Checked states (green track, no border):
|
|
22
|
+
* - default: surface/brand (#13cb5c)
|
|
23
|
+
* - hover: surface/brand-hover (#11b954)
|
|
24
|
+
* - pressed: surface/brand-pressed (#0d9041)
|
|
25
|
+
* - disabled: icon/disabled (#575767, --color-navy-300) + no border
|
|
26
|
+
*/
|
|
27
|
+
export declare const switchTrackVariants: (props?: ({
|
|
28
|
+
checked?: boolean | null | undefined;
|
|
29
|
+
isDisabled?: boolean | null | undefined;
|
|
30
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
31
|
+
/**
|
|
32
|
+
* Switch knob variants. Sibling of the track (container-relative coords).
|
|
33
|
+
* DOM box stays at the checked size; state changes animate via transform
|
|
34
|
+
* only (translateX to slide, scale to shrink for unchecked) — keeps the
|
|
35
|
+
* animation on the GPU and avoids the vertical wiggle that comes from
|
|
36
|
+
* simultaneously interpolating width/height/top.
|
|
37
|
+
*/
|
|
38
|
+
export declare const switchKnobVariants: (props?: ({
|
|
39
|
+
checked?: boolean | null | undefined;
|
|
40
|
+
isDisabled?: boolean | null | undefined;
|
|
41
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
42
|
+
export type SwitchTrackVariantsProps = VariantProps<typeof switchTrackVariants>;
|
|
43
|
+
export type SwitchKnobVariantsProps = VariantProps<typeof switchKnobVariants>;
|
|
44
|
+
/**
|
|
45
|
+
* Switch style map. Knob `base` is the DOM box (checked size, centered);
|
|
46
|
+
* `checked` / `unchecked` only set transform so the toggle animates on the GPU.
|
|
47
|
+
* Visual targets — default unchecked 22×22@(3,13), checked 24×24@(22,12);
|
|
48
|
+
* large unchecked 26×26@(3,15), checked 28×28@(26,14).
|
|
49
|
+
*/
|
|
50
|
+
export declare const SWITCH_STYLE_MAP: Record<SwitchSize, {
|
|
51
|
+
track: CSSProperties;
|
|
52
|
+
knob: {
|
|
53
|
+
base: CSSProperties;
|
|
54
|
+
checked: CSSProperties;
|
|
55
|
+
unchecked: CSSProperties;
|
|
56
|
+
};
|
|
57
|
+
}>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Switch } from './Switch';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { TextAreaProps } from './TextArea.types';
|
|
2
|
+
/**
|
|
3
|
+
* TextArea Component - Manara Design System
|
|
4
|
+
*
|
|
5
|
+
* A text area allows users to input extended text that spans multiple lines.
|
|
6
|
+
* Supports two sizes, labels with required indicators, helper text with
|
|
7
|
+
* error/success states, Arabic RTL, and disabled/focus states.
|
|
8
|
+
*
|
|
9
|
+
* The component supports both controlled (value + onChange) and uncontrolled
|
|
10
|
+
* (defaultValue + ref) usage patterns.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* const [value, setValue] = useState('');
|
|
15
|
+
* <TextArea value={value} onChange={setValue} label="Description" placeholder="Enter description" />
|
|
16
|
+
*
|
|
17
|
+
* // With validation
|
|
18
|
+
* <TextArea value={val} onChange={setVal} label="Bio" isInvalid helperText="Too short" />
|
|
19
|
+
*
|
|
20
|
+
* // Large + Required
|
|
21
|
+
* <TextArea size="large" label="Notes" isRequired placeholder="Enter notes" />
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare const TextArea: import('react').ForwardRefExoticComponent<TextAreaProps & import('react').RefAttributes<HTMLTextAreaElement>>;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { TextareaHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* TextArea size variants
|
|
4
|
+
*/
|
|
5
|
+
export type TextAreaSize = 'default' | 'large';
|
|
6
|
+
/**
|
|
7
|
+
* TextArea state (for styling purposes in Matrix/Storybook)
|
|
8
|
+
*/
|
|
9
|
+
export type TextAreaState = 'default' | 'focus' | 'typing' | 'filled' | 'invalid' | 'disabled';
|
|
10
|
+
/**
|
|
11
|
+
* Helper text state for color control
|
|
12
|
+
*/
|
|
13
|
+
export type TextAreaHelperState = 'default' | 'error' | 'success';
|
|
14
|
+
/**
|
|
15
|
+
* Props for the TextArea component
|
|
16
|
+
*/
|
|
17
|
+
export interface TextAreaProps extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'onChange'> {
|
|
18
|
+
/**
|
|
19
|
+
* Size variant of the text area
|
|
20
|
+
* @default 'default'
|
|
21
|
+
*/
|
|
22
|
+
size?: TextAreaSize;
|
|
23
|
+
/**
|
|
24
|
+
* Whether the text area is disabled
|
|
25
|
+
* @default false
|
|
26
|
+
*/
|
|
27
|
+
isDisabled?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Whether the text area is focused (for Storybook/testing).
|
|
30
|
+
* The native browser focus is already handled in the css classes.
|
|
31
|
+
* This is only for testing/storybook to trigger the focus state.
|
|
32
|
+
* @default false
|
|
33
|
+
*/
|
|
34
|
+
isFocused?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Whether the text area is in an invalid/error state.
|
|
37
|
+
* Controls the border color (critical) and overrides helperState to 'error'.
|
|
38
|
+
* @default false
|
|
39
|
+
*/
|
|
40
|
+
isInvalid?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Whether to render the text area in Arabic mode (RTL)
|
|
43
|
+
* @default false
|
|
44
|
+
*/
|
|
45
|
+
isArabic?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Whether to show a required asterisk after the label
|
|
48
|
+
* @default false
|
|
49
|
+
*/
|
|
50
|
+
isRequired?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Label text or node displayed above the text area
|
|
53
|
+
*/
|
|
54
|
+
label?: ReactNode;
|
|
55
|
+
/**
|
|
56
|
+
* Helper text displayed below the text area
|
|
57
|
+
*/
|
|
58
|
+
helperText?: ReactNode;
|
|
59
|
+
/**
|
|
60
|
+
* Controls the color of helper text when not invalid.
|
|
61
|
+
* When isInvalid is true, this is overridden to 'error'.
|
|
62
|
+
* @default 'default'
|
|
63
|
+
*/
|
|
64
|
+
helperState?: TextAreaHelperState;
|
|
65
|
+
/**
|
|
66
|
+
* Optional icon displayed before helper text (16x16)
|
|
67
|
+
*/
|
|
68
|
+
helperIcon?: ReactNode;
|
|
69
|
+
/**
|
|
70
|
+
* Callback fired when the value changes
|
|
71
|
+
*/
|
|
72
|
+
onChange?: (value: string) => void;
|
|
73
|
+
/**
|
|
74
|
+
* Additional CSS classes to apply to the outer wrapper
|
|
75
|
+
*/
|
|
76
|
+
className?: string;
|
|
77
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
/**
|
|
3
|
+
* TextArea container variants using CVA (Class Variance Authority)
|
|
4
|
+
* Based on Manara Design System specifications
|
|
5
|
+
*
|
|
6
|
+
* The container is the visual box that wraps the textarea element
|
|
7
|
+
* and handles all interactive states.
|
|
8
|
+
*
|
|
9
|
+
* Variants:
|
|
10
|
+
* - size: Controls height, padding, border radius
|
|
11
|
+
* - default: 80px height, 8px padding, 12px radius
|
|
12
|
+
* - large: 120px height, 12px horizontal / 8px vertical padding, 16px radius
|
|
13
|
+
* - isInvalid: Error state with critical border
|
|
14
|
+
* - isDisabled: Disabled state styling
|
|
15
|
+
*
|
|
16
|
+
* Interactive states (focus, hover) are handled via CSS pseudo-classes:
|
|
17
|
+
* - hover: surface-manara-hover
|
|
18
|
+
* - focus-within: surface-manara-accent + border-manara-focused (2px)
|
|
19
|
+
*/
|
|
20
|
+
export declare const textAreaContainerVariants: (props?: ({
|
|
21
|
+
size?: "default" | "large" | null | undefined;
|
|
22
|
+
isInvalid?: boolean | null | undefined;
|
|
23
|
+
isDisabled?: boolean | null | undefined;
|
|
24
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
25
|
+
export type TextAreaContainerVariantsProps = VariantProps<typeof textAreaContainerVariants>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { TextArea } from './TextArea';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { TextFieldProps } from './TextField.types';
|
|
2
|
+
/**
|
|
3
|
+
* TextField Component - Manara Design System
|
|
4
|
+
*
|
|
5
|
+
* A text field allows users to input, edit, or update text.
|
|
6
|
+
* Supports three sizes, labels with required indicators, helper text with
|
|
7
|
+
* error/success states, before/after icons, Arabic RTL, and disabled/focus states.
|
|
8
|
+
*
|
|
9
|
+
* The component supports both controlled (value + onChange) and uncontrolled
|
|
10
|
+
* (defaultValue + ref) usage patterns.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* const [value, setValue] = useState('');
|
|
15
|
+
* <TextField value={value} onChange={setValue} label="Name" placeholder="Enter name" />
|
|
16
|
+
*
|
|
17
|
+
* // With validation
|
|
18
|
+
* <TextField value={val} onChange={setVal} label="Email" isInvalid helperText="Invalid email" />
|
|
19
|
+
*
|
|
20
|
+
* // Large + Required + Icons
|
|
21
|
+
* <TextField size="large" label="Search" isRequired iconBefore={<SearchIcon />} />
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare const TextField: import('react').ForwardRefExoticComponent<TextFieldProps & import('react').RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { InputHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* TextField size variants
|
|
4
|
+
*/
|
|
5
|
+
export type TextFieldSize = 'default' | 'medium' | 'large';
|
|
6
|
+
/**
|
|
7
|
+
* TextField state (for styling purposes in Matrix/Storybook)
|
|
8
|
+
*/
|
|
9
|
+
export type TextFieldState = 'default' | 'focus' | 'typing' | 'filled' | 'invalid' | 'disabled';
|
|
10
|
+
/**
|
|
11
|
+
* Helper text state for color control
|
|
12
|
+
*/
|
|
13
|
+
export type TextFieldHelperState = 'default' | 'error' | 'success';
|
|
14
|
+
/**
|
|
15
|
+
* Props for the TextField component
|
|
16
|
+
*/
|
|
17
|
+
export interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'onChange'> {
|
|
18
|
+
/**
|
|
19
|
+
* Size variant of the text field
|
|
20
|
+
* @default 'default'
|
|
21
|
+
*/
|
|
22
|
+
size?: TextFieldSize;
|
|
23
|
+
/**
|
|
24
|
+
* Whether the text field is disabled
|
|
25
|
+
* @default false
|
|
26
|
+
*/
|
|
27
|
+
isDisabled?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Whether the text field is focused (for Storybook/testing).
|
|
30
|
+
* The native browser focus is already handled in the css classes.
|
|
31
|
+
* This is only for testing/storybook to trigger the focus state.
|
|
32
|
+
* @default false
|
|
33
|
+
*/
|
|
34
|
+
isFocused?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Whether the text field is in an invalid/error state.
|
|
37
|
+
* Controls the border color (critical) and overrides helperState to 'error'.
|
|
38
|
+
* @default false
|
|
39
|
+
*/
|
|
40
|
+
isInvalid?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Whether to render the text field in Arabic mode (RTL)
|
|
43
|
+
* @default false
|
|
44
|
+
*/
|
|
45
|
+
isArabic?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Whether to show a required asterisk after the label
|
|
48
|
+
* @default false
|
|
49
|
+
*/
|
|
50
|
+
isRequired?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Label text or node displayed above the text field
|
|
53
|
+
*/
|
|
54
|
+
label?: ReactNode;
|
|
55
|
+
/**
|
|
56
|
+
* Helper text displayed below the text field
|
|
57
|
+
*/
|
|
58
|
+
helperText?: ReactNode;
|
|
59
|
+
/**
|
|
60
|
+
* Controls the color of helper text when not invalid.
|
|
61
|
+
* When isInvalid is true, this is overridden to 'error'.
|
|
62
|
+
* @default 'default'
|
|
63
|
+
*/
|
|
64
|
+
helperState?: TextFieldHelperState;
|
|
65
|
+
/**
|
|
66
|
+
* Optional icon displayed before helper text (16x16)
|
|
67
|
+
*/
|
|
68
|
+
helperIcon?: ReactNode;
|
|
69
|
+
/**
|
|
70
|
+
* Callback fired when the value changes
|
|
71
|
+
*/
|
|
72
|
+
onChange?: (value: string) => void;
|
|
73
|
+
/**
|
|
74
|
+
* Icon displayed before the input text (24x24)
|
|
75
|
+
*/
|
|
76
|
+
iconBefore?: ReactNode;
|
|
77
|
+
/**
|
|
78
|
+
* Icon displayed after the input text (24x24)
|
|
79
|
+
*/
|
|
80
|
+
iconAfter?: ReactNode;
|
|
81
|
+
/**
|
|
82
|
+
* Additional CSS classes to apply to the outer wrapper
|
|
83
|
+
*/
|
|
84
|
+
className?: string;
|
|
85
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
/**
|
|
3
|
+
* TextField input container variants using CVA (Class Variance Authority)
|
|
4
|
+
* Based on Manara Design System specifications
|
|
5
|
+
*
|
|
6
|
+
* The input container is the visual box that wraps the input element,
|
|
7
|
+
* optional before/after icons, and handles all interactive states.
|
|
8
|
+
*
|
|
9
|
+
* Variants:
|
|
10
|
+
* - size: Controls height, padding, border radius, and typography
|
|
11
|
+
* - isInvalid: Error state with critical border
|
|
12
|
+
* - isDisabled: Disabled state styling
|
|
13
|
+
*
|
|
14
|
+
* Interactive states (focus, hover) are handled via CSS pseudo-classes:
|
|
15
|
+
* - hover: surface-manara-hover
|
|
16
|
+
* - focus-within: surface-manara-accent + border-manara-focused (2px)
|
|
17
|
+
*/
|
|
18
|
+
export declare const textFieldInputVariants: (props?: ({
|
|
19
|
+
size?: "default" | "medium" | "large" | null | undefined;
|
|
20
|
+
isInvalid?: boolean | null | undefined;
|
|
21
|
+
isDisabled?: boolean | null | undefined;
|
|
22
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
23
|
+
export type TextFieldInputVariantsProps = VariantProps<typeof textFieldInputVariants>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { TextField } from './TextField';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { IconDisplayProps } from './IconDisplay.types';
|
|
2
|
+
export declare const IconDisplay: ({ iconCategories, selectedCategory, className, iconWrapperClassName, iconComponentClassName, iconSize, fillCurrentColor, }: IconDisplayProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { SVGProps, ComponentType } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Defines the structure of an individual icon within a category.
|
|
4
|
+
*/
|
|
5
|
+
export interface IconItem {
|
|
6
|
+
name: string;
|
|
7
|
+
component: ComponentType<SVGProps<SVGSVGElement>>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Defines the structure of an icon category.
|
|
11
|
+
*/
|
|
12
|
+
export interface IconCategory {
|
|
13
|
+
categoryName: string;
|
|
14
|
+
icons: IconItem[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Props for the IconDisplay component.
|
|
18
|
+
*/
|
|
19
|
+
export interface IconDisplayProps {
|
|
20
|
+
iconCategories: IconCategory[];
|
|
21
|
+
selectedCategory?: string;
|
|
22
|
+
className?: string;
|
|
23
|
+
iconWrapperClassName?: string;
|
|
24
|
+
iconComponentClassName?: string;
|
|
25
|
+
iconSize?: {
|
|
26
|
+
width: string | number;
|
|
27
|
+
height: string | number;
|
|
28
|
+
};
|
|
29
|
+
fillCurrentColor?: boolean;
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { IconDisplay } from './IconDisplay';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { LinkProps } from './Link.types';
|
|
3
|
+
/**
|
|
4
|
+
* Link Component — Manara Design System
|
|
5
|
+
*
|
|
6
|
+
* Links navigate users to other pages, sections, or external resources.
|
|
7
|
+
* Supports brand/neutral types, three sizes, bold/regular weight,
|
|
8
|
+
* disabled state, optional icon, and Arabic RTL.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* <Link label="Visit page" href="/page" />
|
|
13
|
+
* <Link label="External" type="neutral" size="small" />
|
|
14
|
+
* <Link label="رابط" isArabic />
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare const Link: FC<LinkProps>;
|