@popsure/dirty-swan 0.37.2 → 0.38.1
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/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +127 -86
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/components/input/checkbox/index.d.ts +7 -4
- package/dist/cjs/lib/components/input/checkbox/index.stories.d.ts +15 -12
- package/dist/cjs/lib/components/input/radio/index.d.ts +21 -0
- package/dist/cjs/lib/components/input/radio/index.stories.d.ts +65 -0
- package/dist/cjs/lib/components/input/radio/index.test.d.ts +1 -0
- package/dist/cjs/lib/components/spinner/index.d.ts +5 -0
- package/dist/cjs/lib/components/spinner/index.stories.d.ts +19 -0
- package/dist/cjs/lib/components/spinner/index.test.d.ts +1 -0
- package/dist/cjs/lib/index.d.ts +4 -2
- package/dist/esm/components/autocompleteAddress/index.js +3 -3
- package/dist/esm/components/autocompleteAddress/index.js.map +1 -1
- package/dist/esm/components/autocompleteAddress/index.stories.js +1 -1
- package/dist/esm/components/autocompleteAddress/index.test.js +7 -7
- package/dist/esm/components/autocompleteAddress/index.test.js.map +1 -1
- package/dist/esm/components/badge/index.js +2 -2
- package/dist/esm/components/badge/index.js.map +1 -1
- package/dist/esm/components/badge/index.stories.js +1 -1
- package/dist/esm/components/badge/index.test.js +1 -1
- package/dist/esm/components/button/index.js +1 -1
- package/dist/esm/components/button/index.js.map +1 -1
- package/dist/esm/components/comparisonTable/components/AccordionItem/AccordionItem.js +2 -2
- package/dist/esm/components/comparisonTable/components/AccordionItem/index.js +2 -2
- package/dist/esm/components/comparisonTable/components/TableArrows/index.js +3 -3
- package/dist/esm/components/comparisonTable/components/TableArrows/index.js.map +1 -1
- package/dist/esm/components/comparisonTable/components/TableRating/index.js +2 -2
- package/dist/esm/components/comparisonTable/components/TableRating/index.js.map +1 -1
- package/dist/esm/components/comparisonTable/index.js +8 -8
- package/dist/esm/components/comparisonTable/index.js.map +1 -1
- package/dist/esm/components/icon/IconWrapper/IconWrapper.js +2 -2
- package/dist/esm/components/icon/IconWrapper/IconWrapper.js.map +1 -1
- package/dist/esm/components/icon/icons/1.js +1 -1
- package/dist/esm/components/icon/icons/2.js +1 -1
- package/dist/esm/components/icon/icons/3.js +1 -1
- package/dist/esm/components/icon/icons/4.js +1 -1
- package/dist/esm/components/icon/icons/5.js +1 -1
- package/dist/esm/components/icon/icons/6.js +1 -1
- package/dist/esm/components/icon/icons/7.js +1 -1
- package/dist/esm/components/icon/icons/8.js +1 -1
- package/dist/esm/components/icon/icons/Activity.js +1 -1
- package/dist/esm/components/icon/icons/Adhd.js +1 -1
- package/dist/esm/components/icon/icons/AdviceRecommendation.js +1 -1
- package/dist/esm/components/icon/icons/AlertCircle.js +1 -1
- package/dist/esm/components/icon/icons/AlertOctagon.js +1 -1
- package/dist/esm/components/icon/icons/AlertTriangle.js +1 -1
- package/dist/esm/components/icon/icons/AlertTriangleFilled.js +1 -1
- package/dist/esm/components/icon/icons/AlignCenter.js +1 -1
- package/dist/esm/components/icon/icons/AlignJustify.js +1 -1
- package/dist/esm/components/icon/icons/AlignLeft.js +1 -1
- package/dist/esm/components/icon/icons/AlignRight.js +1 -1
- package/dist/esm/components/icon/icons/Anchor.js +1 -1
- package/dist/esm/components/icon/icons/Aperture.js +1 -1
- package/dist/esm/components/icon/icons/Archive.js +1 -1
- package/dist/esm/components/icon/icons/ArrowDown.js +1 -1
- package/dist/esm/components/icon/icons/ArrowDownCircle.js +1 -1
- package/dist/esm/components/icon/icons/ArrowDownLeft.js +1 -1
- package/dist/esm/components/icon/icons/ArrowDownRight.js +1 -1
- package/dist/esm/components/icon/icons/ArrowLeft.js +1 -1
- package/dist/esm/components/icon/icons/ArrowLeftCircle.js +1 -1
- package/dist/esm/components/icon/icons/ArrowRight.js +1 -1
- package/dist/esm/components/icon/icons/ArrowRightCircle.js +1 -1
- package/dist/esm/components/icon/icons/ArrowUp.js +1 -1
- package/dist/esm/components/icon/icons/ArrowUpCircle.js +1 -1
- package/dist/esm/components/icon/icons/ArrowUpLeft.js +1 -1
- package/dist/esm/components/icon/icons/ArrowUpRight.js +1 -1
- package/dist/esm/components/icon/icons/Arthritis.js +1 -1
- package/dist/esm/components/icon/icons/AssistantFilled.js +1 -1
- package/dist/esm/components/icon/icons/Asthma.js +1 -1
- package/dist/esm/components/icon/icons/AtSign.js +1 -1
- package/dist/esm/components/icon/icons/AwardMedal.js +1 -1
- package/dist/esm/components/icon/icons/Bank.js +1 -1
- package/dist/esm/components/icon/icons/BarChart.js +1 -1
- package/dist/esm/components/icon/icons/BarChart2.js +1 -1
- package/dist/esm/components/icon/icons/BasketballSports.js +1 -1
- package/dist/esm/components/icon/icons/Battery.js +1 -1
- package/dist/esm/components/icon/icons/BatteryCharging.js +1 -1
- package/dist/esm/components/icon/icons/Bell.js +1 -1
- package/dist/esm/components/icon/icons/BellOff.js +1 -1
- package/dist/esm/components/icon/icons/Bluetooth.js +1 -1
- package/dist/esm/components/icon/icons/Bold.js +1 -1
- package/dist/esm/components/icon/icons/Book.js +1 -1
- package/dist/esm/components/icon/icons/BookOpen.js +1 -1
- package/dist/esm/components/icon/icons/Bookmark.js +1 -1
- package/dist/esm/components/icon/icons/Box.js +1 -1
- package/dist/esm/components/icon/icons/BoxesAdd.js +1 -1
- package/dist/esm/components/icon/icons/BoxesAdd2.js +1 -1
- package/dist/esm/components/icon/icons/BoxesAddFilled.js +1 -1
- package/dist/esm/components/icon/icons/BoxesMultiple.js +1 -1
- package/dist/esm/components/icon/icons/BoxesMultipleFilled.js +1 -1
- package/dist/esm/components/icon/icons/Briefcase.js +1 -1
- package/dist/esm/components/icon/icons/Calculator.js +1 -1
- package/dist/esm/components/icon/icons/Calendar.js +1 -1
- package/dist/esm/components/icon/icons/Camera.js +1 -1
- package/dist/esm/components/icon/icons/CameraOff.js +1 -1
- package/dist/esm/components/icon/icons/Cancer.js +1 -1
- package/dist/esm/components/icon/icons/Cast.js +1 -1
- package/dist/esm/components/icon/icons/Check.js +1 -1
- package/dist/esm/components/icon/icons/CheckCircle.js +1 -1
- package/dist/esm/components/icon/icons/CheckInCircle.js +1 -1
- package/dist/esm/components/icon/icons/CheckInCircleFilled.js +1 -1
- package/dist/esm/components/icon/icons/CheckSquare.js +1 -1
- package/dist/esm/components/icon/icons/CheckThick.js +1 -1
- package/dist/esm/components/icon/icons/CheckboxChecked.js +1 -1
- package/dist/esm/components/icon/icons/CheckboxUnchecked.js +1 -1
- package/dist/esm/components/icon/icons/ChevronDown.js +1 -1
- package/dist/esm/components/icon/icons/ChevronLeft.js +1 -1
- package/dist/esm/components/icon/icons/ChevronRight.js +1 -1
- package/dist/esm/components/icon/icons/ChevronUp.js +1 -1
- package/dist/esm/components/icon/icons/ChevronsDown.js +1 -1
- package/dist/esm/components/icon/icons/ChevronsLeft.js +1 -1
- package/dist/esm/components/icon/icons/ChevronsRight.js +1 -1
- package/dist/esm/components/icon/icons/ChevronsUp.js +1 -1
- package/dist/esm/components/icon/icons/Chrome.js +1 -1
- package/dist/esm/components/icon/icons/Circle.js +1 -1
- package/dist/esm/components/icon/icons/CircleSelected.js +1 -1
- package/dist/esm/components/icon/icons/CircleSmall.js +1 -1
- package/dist/esm/components/icon/icons/CircleUnselected.js +1 -1
- package/dist/esm/components/icon/icons/Clipboard.js +1 -1
- package/dist/esm/components/icon/icons/ClockTime.js +1 -1
- package/dist/esm/components/icon/icons/Cloud.js +1 -1
- package/dist/esm/components/icon/icons/CloudDrizzle.js +1 -1
- package/dist/esm/components/icon/icons/CloudLightning.js +1 -1
- package/dist/esm/components/icon/icons/CloudOff.js +1 -1
- package/dist/esm/components/icon/icons/CloudRain.js +1 -1
- package/dist/esm/components/icon/icons/CloudSnow.js +1 -1
- package/dist/esm/components/icon/icons/Code.js +1 -1
- package/dist/esm/components/icon/icons/Codepen.js +1 -1
- package/dist/esm/components/icon/icons/Codesandbox.js +1 -1
- package/dist/esm/components/icon/icons/Coffee.js +1 -1
- package/dist/esm/components/icon/icons/Columns.js +1 -1
- package/dist/esm/components/icon/icons/Command.js +1 -1
- package/dist/esm/components/icon/icons/Compass.js +1 -1
- package/dist/esm/components/icon/icons/Concierge.js +1 -1
- package/dist/esm/components/icon/icons/Copy.js +1 -1
- package/dist/esm/components/icon/icons/CornerDownLeft.js +1 -1
- package/dist/esm/components/icon/icons/CornerDownRight.js +1 -1
- package/dist/esm/components/icon/icons/CornerLeftDown.js +1 -1
- package/dist/esm/components/icon/icons/CornerLeftUp.js +1 -1
- package/dist/esm/components/icon/icons/CornerRightDown.js +1 -1
- package/dist/esm/components/icon/icons/CornerRightUp.js +1 -1
- package/dist/esm/components/icon/icons/CornerUpLeft.js +1 -1
- package/dist/esm/components/icon/icons/CornerUpRight.js +1 -1
- package/dist/esm/components/icon/icons/Cpu.js +1 -1
- package/dist/esm/components/icon/icons/CreditCard.js +1 -1
- package/dist/esm/components/icon/icons/Crop.js +1 -1
- package/dist/esm/components/icon/icons/Crosshair.js +1 -1
- package/dist/esm/components/icon/icons/Database.js +1 -1
- package/dist/esm/components/icon/icons/Delete.js +1 -1
- package/dist/esm/components/icon/icons/DentalPlus.js +1 -1
- package/dist/esm/components/icon/icons/DentalToothTeeth.js +1 -1
- package/dist/esm/components/icon/icons/DependentsFamily.js +1 -1
- package/dist/esm/components/icon/icons/DependentsFamilyAdd.js +1 -1
- package/dist/esm/components/icon/icons/Diabetes.js +1 -1
- package/dist/esm/components/icon/icons/Disc.js +1 -1
- package/dist/esm/components/icon/icons/Doctor.js +1 -1
- package/dist/esm/components/icon/icons/DoctorStethoscope.js +1 -1
- package/dist/esm/components/icon/icons/DollarSign.js +1 -1
- package/dist/esm/components/icon/icons/Download.js +1 -1
- package/dist/esm/components/icon/icons/DownloadCloud.js +1 -1
- package/dist/esm/components/icon/icons/DragCorner.js +1 -1
- package/dist/esm/components/icon/icons/Droplet.js +1 -1
- package/dist/esm/components/icon/icons/Edit.js +1 -1
- package/dist/esm/components/icon/icons/Edit2.js +1 -1
- package/dist/esm/components/icon/icons/Edit3.js +1 -1
- package/dist/esm/components/icon/icons/Equal.js +1 -1
- package/dist/esm/components/icon/icons/Euro.js +1 -1
- package/dist/esm/components/icon/icons/EuroClaim.js +1 -1
- package/dist/esm/components/icon/icons/EuroClaimFilled.js +1 -1
- package/dist/esm/components/icon/icons/ExternalLink.js +1 -1
- package/dist/esm/components/icon/icons/EyeOff.js +1 -1
- package/dist/esm/components/icon/icons/EyeVision.js +1 -1
- package/dist/esm/components/icon/icons/Facebook.js +1 -1
- package/dist/esm/components/icon/icons/FastEasy.js +1 -1
- package/dist/esm/components/icon/icons/FastForward.js +1 -1
- package/dist/esm/components/icon/icons/Feather.js +1 -1
- package/dist/esm/components/icon/icons/Female.js +1 -1
- package/dist/esm/components/icon/icons/File.js +1 -1
- package/dist/esm/components/icon/icons/FileMinus.js +1 -1
- package/dist/esm/components/icon/icons/FilePlus.js +1 -1
- package/dist/esm/components/icon/icons/FileText.js +1 -1
- package/dist/esm/components/icon/icons/Film.js +1 -1
- package/dist/esm/components/icon/icons/Filter.js +1 -1
- package/dist/esm/components/icon/icons/Flag.js +1 -1
- package/dist/esm/components/icon/icons/Folder.js +1 -1
- package/dist/esm/components/icon/icons/FolderMinus.js +1 -1
- package/dist/esm/components/icon/icons/FolderPlus.js +1 -1
- package/dist/esm/components/icon/icons/Framer.js +1 -1
- package/dist/esm/components/icon/icons/Frown.js +1 -1
- package/dist/esm/components/icon/icons/Gift.js +1 -1
- package/dist/esm/components/icon/icons/GitBranch.js +1 -1
- package/dist/esm/components/icon/icons/GitCommit.js +1 -1
- package/dist/esm/components/icon/icons/GitMerge.js +1 -1
- package/dist/esm/components/icon/icons/GitPullRequest.js +1 -1
- package/dist/esm/components/icon/icons/GlobeNetworkEarth.js +1 -1
- package/dist/esm/components/icon/icons/Hallesche.js +1 -1
- package/dist/esm/components/icon/icons/HandsMassageTherapeutic.js +1 -1
- package/dist/esm/components/icon/icons/HardDrive.js +1 -1
- package/dist/esm/components/icon/icons/Hash.js +1 -1
- package/dist/esm/components/icon/icons/Headphones.js +1 -1
- package/dist/esm/components/icon/icons/Heart.js +1 -1
- package/dist/esm/components/icon/icons/HeartHand.js +1 -1
- package/dist/esm/components/icon/icons/HeartPlus.js +1 -1
- package/dist/esm/components/icon/icons/Hexagon.js +1 -1
- package/dist/esm/components/icon/icons/Home.js +1 -1
- package/dist/esm/components/icon/icons/HospitalBuilding.js +1 -1
- package/dist/esm/components/icon/icons/ImagePicture.js +1 -1
- package/dist/esm/components/icon/icons/Inbox.js +1 -1
- package/dist/esm/components/icon/icons/Info.js +1 -1
- package/dist/esm/components/icon/icons/InfoFilled.js +1 -1
- package/dist/esm/components/icon/icons/Instagram.js +1 -1
- package/dist/esm/components/icon/icons/Italic.js +1 -1
- package/dist/esm/components/icon/icons/Key.js +1 -1
- package/dist/esm/components/icon/icons/LawyerLegal.js +1 -1
- package/dist/esm/components/icon/icons/Layers.js +1 -1
- package/dist/esm/components/icon/icons/Layout.js +1 -1
- package/dist/esm/components/icon/icons/LifeBuoy.js +1 -1
- package/dist/esm/components/icon/icons/Link.js +1 -1
- package/dist/esm/components/icon/icons/Link2.js +1 -1
- package/dist/esm/components/icon/icons/Linkedin.js +1 -1
- package/dist/esm/components/icon/icons/List.js +1 -1
- package/dist/esm/components/icon/icons/Loader.js +1 -1
- package/dist/esm/components/icon/icons/Lock.js +1 -1
- package/dist/esm/components/icon/icons/LogIn.js +1 -1
- package/dist/esm/components/icon/icons/LogOut.js +1 -1
- package/dist/esm/components/icon/icons/Mail.js +1 -1
- package/dist/esm/components/icon/icons/Male.js +1 -1
- package/dist/esm/components/icon/icons/Map.js +1 -1
- package/dist/esm/components/icon/icons/MapPin.js +1 -1
- package/dist/esm/components/icon/icons/Maximize.js +1 -1
- package/dist/esm/components/icon/icons/Maximize2.js +1 -1
- package/dist/esm/components/icon/icons/MedicationPills.js +1 -1
- package/dist/esm/components/icon/icons/Meh.js +1 -1
- package/dist/esm/components/icon/icons/MentalHealth.js +1 -1
- package/dist/esm/components/icon/icons/Menu.js +1 -1
- package/dist/esm/components/icon/icons/MenuDotsMoreHorizontal.js +1 -1
- package/dist/esm/components/icon/icons/MenuDotsMoreVertical.js +1 -1
- package/dist/esm/components/icon/icons/MessageCircle.js +1 -1
- package/dist/esm/components/icon/icons/MessageSquare.js +1 -1
- package/dist/esm/components/icon/icons/Mic.js +1 -1
- package/dist/esm/components/icon/icons/MicOff.js +1 -1
- package/dist/esm/components/icon/icons/Minimize.js +1 -1
- package/dist/esm/components/icon/icons/Minimize2.js +1 -1
- package/dist/esm/components/icon/icons/Minus.js +1 -1
- package/dist/esm/components/icon/icons/MinusCircle.js +1 -1
- package/dist/esm/components/icon/icons/MinusSquare.js +1 -1
- package/dist/esm/components/icon/icons/MonitorScreen.js +1 -1
- package/dist/esm/components/icon/icons/MoonNight.js +1 -1
- package/dist/esm/components/icon/icons/MousePointer.js +1 -1
- package/dist/esm/components/icon/icons/Move.js +1 -1
- package/dist/esm/components/icon/icons/Music.js +1 -1
- package/dist/esm/components/icon/icons/Natural.js +1 -1
- package/dist/esm/components/icon/icons/Navigation.js +1 -1
- package/dist/esm/components/icon/icons/Navigation2.js +1 -1
- package/dist/esm/components/icon/icons/NoDocument.js +1 -1
- package/dist/esm/components/icon/icons/Octagon.js +1 -1
- package/dist/esm/components/icon/icons/Package.js +1 -1
- package/dist/esm/components/icon/icons/Paperclip.js +1 -1
- package/dist/esm/components/icon/icons/Pause.js +1 -1
- package/dist/esm/components/icon/icons/PauseCircle.js +1 -1
- package/dist/esm/components/icon/icons/PenTool.js +1 -1
- package/dist/esm/components/icon/icons/Percent.js +1 -1
- package/dist/esm/components/icon/icons/Phone.js +1 -1
- package/dist/esm/components/icon/icons/PhoneCall.js +1 -1
- package/dist/esm/components/icon/icons/PhoneForwarded.js +1 -1
- package/dist/esm/components/icon/icons/PhoneHealth.js +1 -1
- package/dist/esm/components/icon/icons/PhoneIncoming.js +1 -1
- package/dist/esm/components/icon/icons/PhoneMissed.js +1 -1
- package/dist/esm/components/icon/icons/PhoneOff.js +1 -1
- package/dist/esm/components/icon/icons/PhoneOutgoing.js +1 -1
- package/dist/esm/components/icon/icons/PieChart.js +1 -1
- package/dist/esm/components/icon/icons/Plane.js +1 -1
- package/dist/esm/components/icon/icons/PlaneFilled.js +1 -1
- package/dist/esm/components/icon/icons/PlaneRepatriation.js +1 -1
- package/dist/esm/components/icon/icons/PlaneRepatriationFilled.js +1 -1
- package/dist/esm/components/icon/icons/Play.js +1 -1
- package/dist/esm/components/icon/icons/PlayCircle.js +1 -1
- package/dist/esm/components/icon/icons/Plus.js +1 -1
- package/dist/esm/components/icon/icons/PlusCircle.js +1 -1
- package/dist/esm/components/icon/icons/PlusSquare.js +1 -1
- package/dist/esm/components/icon/icons/Pocket.js +1 -1
- package/dist/esm/components/icon/icons/PoliciesShield.js +1 -1
- package/dist/esm/components/icon/icons/PoliciesShieldFilled.js +1 -1
- package/dist/esm/components/icon/icons/Power.js +1 -1
- package/dist/esm/components/icon/icons/Pregnacy.js +1 -1
- package/dist/esm/components/icon/icons/Printer.js +1 -1
- package/dist/esm/components/icon/icons/Progress.js +1 -1
- package/dist/esm/components/icon/icons/QrCode.js +1 -1
- package/dist/esm/components/icon/icons/QuestionmarkHelpCircle.js +1 -1
- package/dist/esm/components/icon/icons/QuotationMarks.js +1 -1
- package/dist/esm/components/icon/icons/Radio.js +1 -1
- package/dist/esm/components/icon/icons/RefreshCcw.js +1 -1
- package/dist/esm/components/icon/icons/RefreshCw.js +1 -1
- package/dist/esm/components/icon/icons/Repeat.js +1 -1
- package/dist/esm/components/icon/icons/Restart.js +1 -1
- package/dist/esm/components/icon/icons/Rewind.js +1 -1
- package/dist/esm/components/icon/icons/RotateCcw.js +1 -1
- package/dist/esm/components/icon/icons/RotateCw.js +1 -1
- package/dist/esm/components/icon/icons/Rss.js +1 -1
- package/dist/esm/components/icon/icons/Save.js +1 -1
- package/dist/esm/components/icon/icons/Scissors.js +1 -1
- package/dist/esm/components/icon/icons/Search.js +1 -1
- package/dist/esm/components/icon/icons/Send.js +1 -1
- package/dist/esm/components/icon/icons/Server.js +1 -1
- package/dist/esm/components/icon/icons/Settings.js +1 -1
- package/dist/esm/components/icon/icons/Share.js +1 -1
- package/dist/esm/components/icon/icons/Share2.js +1 -1
- package/dist/esm/components/icon/icons/Shield.js +1 -1
- package/dist/esm/components/icon/icons/ShieldCover5Years.js +1 -1
- package/dist/esm/components/icon/icons/ShieldOff.js +1 -1
- package/dist/esm/components/icon/icons/ShieldPlus.js +1 -1
- package/dist/esm/components/icon/icons/ShoppingBag.js +1 -1
- package/dist/esm/components/icon/icons/ShoppingBag2.js +1 -1
- package/dist/esm/components/icon/icons/ShoppingCart.js +1 -1
- package/dist/esm/components/icon/icons/Shuffle.js +1 -1
- package/dist/esm/components/icon/icons/Sidebar.js +1 -1
- package/dist/esm/components/icon/icons/SkipBack.js +1 -1
- package/dist/esm/components/icon/icons/SkipForward.js +1 -1
- package/dist/esm/components/icon/icons/Slack.js +1 -1
- package/dist/esm/components/icon/icons/Slash.js +1 -1
- package/dist/esm/components/icon/icons/Sliders.js +1 -1
- package/dist/esm/components/icon/icons/Smartphone.js +1 -1
- package/dist/esm/components/icon/icons/Smile.js +1 -1
- package/dist/esm/components/icon/icons/Sofa.js +1 -1
- package/dist/esm/components/icon/icons/Speaker.js +1 -1
- package/dist/esm/components/icon/icons/Square.js +1 -1
- package/dist/esm/components/icon/icons/Star.js +1 -1
- package/dist/esm/components/icon/icons/StarFilled.js +1 -1
- package/dist/esm/components/icon/icons/StarHalf.js +1 -1
- package/dist/esm/components/icon/icons/StopCircle.js +1 -1
- package/dist/esm/components/icon/icons/Subtract.js +1 -1
- package/dist/esm/components/icon/icons/SunDay.js +1 -1
- package/dist/esm/components/icon/icons/Sunrise.js +1 -1
- package/dist/esm/components/icon/icons/Sunset.js +1 -1
- package/dist/esm/components/icon/icons/SyringeVaccination.js +1 -1
- package/dist/esm/components/icon/icons/Tablet.js +1 -1
- package/dist/esm/components/icon/icons/Tag.js +1 -1
- package/dist/esm/components/icon/icons/Target.js +1 -1
- package/dist/esm/components/icon/icons/Terminal.js +1 -1
- package/dist/esm/components/icon/icons/Thermometer.js +1 -1
- package/dist/esm/components/icon/icons/ThumbsDown.js +1 -1
- package/dist/esm/components/icon/icons/ThumbsUp.js +1 -1
- package/dist/esm/components/icon/icons/ToggleLeft.js +1 -1
- package/dist/esm/components/icon/icons/ToggleRight.js +1 -1
- package/dist/esm/components/icon/icons/Tool.js +1 -1
- package/dist/esm/components/icon/icons/Trash.js +1 -1
- package/dist/esm/components/icon/icons/Trash2.js +1 -1
- package/dist/esm/components/icon/icons/Trello.js +1 -1
- package/dist/esm/components/icon/icons/TrendingDown.js +1 -1
- package/dist/esm/components/icon/icons/TrendingUp.js +1 -1
- package/dist/esm/components/icon/icons/Triangle.js +1 -1
- package/dist/esm/components/icon/icons/Truck.js +1 -1
- package/dist/esm/components/icon/icons/Tv.js +1 -1
- package/dist/esm/components/icon/icons/Twitch.js +1 -1
- package/dist/esm/components/icon/icons/Twitter.js +1 -1
- package/dist/esm/components/icon/icons/Type.js +1 -1
- package/dist/esm/components/icon/icons/UltrasoundScan.js +1 -1
- package/dist/esm/components/icon/icons/Umbrella.js +1 -1
- package/dist/esm/components/icon/icons/Underline.js +1 -1
- package/dist/esm/components/icon/icons/Unlock.js +1 -1
- package/dist/esm/components/icon/icons/Upload.js +1 -1
- package/dist/esm/components/icon/icons/UploadCloud.js +1 -1
- package/dist/esm/components/icon/icons/User.js +1 -1
- package/dist/esm/components/icon/icons/UserCheck.js +1 -1
- package/dist/esm/components/icon/icons/UserFilled.js +1 -1
- package/dist/esm/components/icon/icons/UserMinus.js +1 -1
- package/dist/esm/components/icon/icons/UserPlus.js +1 -1
- package/dist/esm/components/icon/icons/UserX.js +1 -1
- package/dist/esm/components/icon/icons/Users.js +1 -1
- package/dist/esm/components/icon/icons/Video.js +1 -1
- package/dist/esm/components/icon/icons/VideoDoctor.js +1 -1
- package/dist/esm/components/icon/icons/VideoOff.js +1 -1
- package/dist/esm/components/icon/icons/VisaPassport.js +1 -1
- package/dist/esm/components/icon/icons/VisaPassportFiled.js +1 -1
- package/dist/esm/components/icon/icons/Voicemail.js +1 -1
- package/dist/esm/components/icon/icons/Volume.js +1 -1
- package/dist/esm/components/icon/icons/Volume1.js +1 -1
- package/dist/esm/components/icon/icons/Volume2.js +1 -1
- package/dist/esm/components/icon/icons/VolumeX.js +1 -1
- package/dist/esm/components/icon/icons/Watch.js +1 -1
- package/dist/esm/components/icon/icons/Whatsapp.js +1 -1
- package/dist/esm/components/icon/icons/Wifi.js +1 -1
- package/dist/esm/components/icon/icons/WifiOff.js +1 -1
- package/dist/esm/components/icon/icons/Wind.js +1 -1
- package/dist/esm/components/icon/icons/WorldGlobeEarth.js +1 -1
- package/dist/esm/components/icon/icons/X.js +1 -1
- package/dist/esm/components/icon/icons/XCircle.js +1 -1
- package/dist/esm/components/icon/icons/XCircleFilled.js +1 -1
- package/dist/esm/components/icon/icons/XOctagon.js +1 -1
- package/dist/esm/components/icon/icons/XSquare.js +1 -1
- package/dist/esm/components/icon/icons/Youtube.js +1 -1
- package/dist/esm/components/icon/icons/Zap.js +1 -1
- package/dist/esm/components/icon/icons/ZapOff.js +1 -1
- package/dist/esm/components/icon/icons/ZoomIn.js +1 -1
- package/dist/esm/components/icon/icons/ZoomOut.js +1 -1
- package/dist/esm/components/icon/icons.stories.js +3 -3
- package/dist/esm/components/icon/icons.stories.js.map +1 -1
- package/dist/esm/components/icon/index.stories.js +2 -2
- package/dist/esm/components/informationBox/index.js +4 -4
- package/dist/esm/components/informationBox/index.js.map +1 -1
- package/dist/esm/components/informationBox/index.stories.js +1 -1
- package/dist/esm/components/informationBox/index.test.js +1 -1
- package/dist/esm/components/input/autoSuggestInput/index.js +2 -2
- package/dist/esm/components/input/autoSuggestInput/index.js.map +1 -1
- package/dist/esm/components/input/autoSuggestInput/index.stories.js +1 -1
- package/dist/esm/components/input/autoSuggestMultiSelect/index.js +2 -2
- package/dist/esm/components/input/autoSuggestMultiSelect/index.js.map +1 -1
- package/dist/esm/components/input/autoSuggestMultiSelect/index.stories.js +1 -1
- package/dist/esm/components/input/checkbox/index.js +8 -8
- package/dist/esm/components/input/checkbox/index.js.map +1 -1
- package/dist/esm/components/input/checkbox/index.stories.js +20 -19
- package/dist/esm/components/input/checkbox/index.stories.js.map +1 -1
- package/dist/esm/components/input/checkbox/index.test.js +1 -1
- package/dist/esm/components/input/currency/index.js +1 -1
- package/dist/esm/components/input/currency/index.test.js +1 -1
- package/dist/esm/components/input/iban/index.js +1 -1
- package/dist/esm/components/input/index.js +5 -5
- package/dist/esm/components/input/index.js.map +1 -1
- package/dist/esm/components/input/input.stories.js +1 -1
- package/dist/esm/components/input/radio/index.js +41 -0
- package/dist/esm/components/input/radio/index.js.map +1 -0
- package/dist/esm/components/input/radio/index.stories.js +159 -0
- package/dist/esm/components/input/radio/index.stories.js.map +1 -0
- package/dist/esm/components/input/radio/index.test.js +78 -0
- package/dist/esm/components/input/radio/index.test.js.map +1 -0
- package/dist/esm/components/link/index.js +2 -2
- package/dist/esm/components/link/index.js.map +1 -1
- package/dist/esm/components/link/index.stories.js +1 -1
- package/dist/esm/components/modal/bottomModal/index.js +2 -2
- package/dist/esm/components/modal/bottomModal/index.js.map +1 -1
- package/dist/esm/components/modal/bottomOrRegularModal/index.js +1 -1
- package/dist/esm/components/modal/index.stories.js +1 -1
- package/dist/esm/components/modal/regularModal/index.js +2 -2
- package/dist/esm/components/modal/regularModal/index.js.map +1 -1
- package/dist/esm/components/multiDropzone/UploadFileCell/index.js +2 -2
- package/dist/esm/components/multiDropzone/index.js +4 -4
- package/dist/esm/components/multiDropzone/index.js.map +1 -1
- package/dist/esm/components/multiDropzone/index.stories.js +3 -3
- package/dist/esm/components/multiDropzone/index.test.js +3 -3
- package/dist/esm/components/spinner/index.js +10 -0
- package/dist/esm/components/spinner/index.js.map +1 -0
- package/dist/esm/components/spinner/index.stories.js +24 -0
- package/dist/esm/components/spinner/index.stories.js.map +1 -0
- package/dist/esm/components/spinner/index.test.js +20 -0
- package/dist/esm/components/spinner/index.test.js.map +1 -0
- package/dist/esm/{index-cf90663f.js → index-38cf6d96.js} +1 -1
- package/dist/esm/{index-cf90663f.js.map → index-38cf6d96.js.map} +1 -1
- package/dist/esm/{index-e9e37a34.js → index-6ea95111.js} +5 -5
- package/dist/esm/{index-e9e37a34.js.map → index-6ea95111.js.map} +1 -1
- package/dist/esm/{index-6ced5532.js → index-da10b7ad.js} +5 -5
- package/dist/esm/{index-6ced5532.js.map → index-da10b7ad.js.map} +1 -1
- package/dist/esm/{index-21239ab0.js → index-e27b50cf.js} +4 -4
- package/dist/esm/{index-21239ab0.js.map → index-e27b50cf.js.map} +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +5 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/components/input/checkbox/index.d.ts +7 -4
- package/dist/esm/lib/components/input/checkbox/index.stories.d.ts +15 -12
- package/dist/esm/lib/components/input/radio/index.d.ts +21 -0
- package/dist/esm/lib/components/input/radio/index.stories.d.ts +65 -0
- package/dist/esm/lib/components/input/radio/index.test.d.ts +1 -0
- package/dist/esm/lib/components/spinner/index.d.ts +5 -0
- package/dist/esm/lib/components/spinner/index.stories.d.ts +19 -0
- package/dist/esm/lib/components/spinner/index.test.d.ts +1 -0
- package/dist/esm/lib/index.d.ts +4 -2
- package/dist/index.css +8 -1
- package/dist/index.css.map +1 -1
- package/dist/lib/scss/private/components/_input.scss +9 -2
- package/package.json +1 -1
- package/src/index.tsx +3 -1
- package/src/lib/components/autocompleteAddress/index.test.tsx +6 -6
- package/src/lib/components/autocompleteAddress/index.tsx +9 -5
- package/src/lib/components/button/index.tsx +2 -3
- package/src/lib/components/input/checkbox/index.stories.tsx +21 -22
- package/src/lib/components/input/checkbox/index.tsx +13 -11
- package/src/lib/components/input/checkbox/styles.module.scss +0 -4
- package/src/lib/components/input/radio/index.stories.tsx +233 -0
- package/src/lib/components/input/radio/index.test.tsx +94 -0
- package/src/lib/components/input/radio/index.tsx +105 -0
- package/src/lib/components/input/radio/styles.module.scss +11 -0
- package/src/lib/components/spinner/index.stories.tsx +19 -0
- package/src/lib/components/spinner/index.test.tsx +11 -0
- package/src/lib/components/spinner/index.tsx +14 -0
- package/src/lib/index.tsx +7 -3
- package/src/lib/scss/private/components/_input.scss +9 -2
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { Radio, RadioProps } from '.';
|
|
4
|
+
import { images } from '../../../util/images';
|
|
5
|
+
|
|
6
|
+
const story = {
|
|
7
|
+
title: 'JSX/Inputs/Radio',
|
|
8
|
+
component: Radio,
|
|
9
|
+
argTypes: {
|
|
10
|
+
options: {
|
|
11
|
+
description: 'Object that contains the possible options for rendering in the input.',
|
|
12
|
+
defaultValue: {
|
|
13
|
+
CAT:{
|
|
14
|
+
title: 'Cat',
|
|
15
|
+
description: 'At least 1'
|
|
16
|
+
},
|
|
17
|
+
DOG:{
|
|
18
|
+
title: 'Dog',
|
|
19
|
+
description: 'At least 2'
|
|
20
|
+
},
|
|
21
|
+
NONE:{
|
|
22
|
+
title: 'None',
|
|
23
|
+
description: 'No pets'
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
value: {
|
|
28
|
+
description: 'Current checked values.',
|
|
29
|
+
},
|
|
30
|
+
onChange: {
|
|
31
|
+
description: 'Function called everytime a value changes.',
|
|
32
|
+
action: true,
|
|
33
|
+
table: {
|
|
34
|
+
category: "Callbacks",
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
wide: {
|
|
38
|
+
description: 'Property that defines if options should fill 100% of available horizontal space',
|
|
39
|
+
defaultValue: false
|
|
40
|
+
},
|
|
41
|
+
inlineLayout: {
|
|
42
|
+
description: 'Property that defines if options should show inline instead of block. Check inline radio options story for examples.',
|
|
43
|
+
defaultValue: false
|
|
44
|
+
},
|
|
45
|
+
classNames: {
|
|
46
|
+
description: 'ClassNames for custom styling',
|
|
47
|
+
defaultValue: {
|
|
48
|
+
container: '',
|
|
49
|
+
label: '',
|
|
50
|
+
option: ''
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
bordered: {
|
|
54
|
+
description: 'Property that defines if option should show with border',
|
|
55
|
+
defaultValue: true
|
|
56
|
+
},
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export const RadioStory = ({
|
|
61
|
+
onChange,
|
|
62
|
+
options,
|
|
63
|
+
wide,
|
|
64
|
+
classNames,
|
|
65
|
+
inlineLayout,
|
|
66
|
+
bordered,
|
|
67
|
+
}: RadioProps<string>) => {
|
|
68
|
+
const [checkedValues, setCheckedValues] = useState<string>();
|
|
69
|
+
|
|
70
|
+
const handleOnChange = (newValue: string) => {
|
|
71
|
+
setCheckedValues(newValue);
|
|
72
|
+
onChange(newValue);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return (
|
|
76
|
+
<Radio
|
|
77
|
+
wide={wide}
|
|
78
|
+
options={options}
|
|
79
|
+
onChange={handleOnChange}
|
|
80
|
+
value={checkedValues}
|
|
81
|
+
classNames={classNames}
|
|
82
|
+
inlineLayout={inlineLayout}
|
|
83
|
+
bordered={bordered}
|
|
84
|
+
/>
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export const RadioWithCustomWrapperStyles = ({ onChange }: RadioProps<string>) => {
|
|
89
|
+
const [checkedValues, setCheckedValues] = useState<string>();
|
|
90
|
+
|
|
91
|
+
const handleOnChange = (newValue: string) => {
|
|
92
|
+
setCheckedValues(newValue);
|
|
93
|
+
onChange(newValue);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return (
|
|
97
|
+
<Radio
|
|
98
|
+
onChange={handleOnChange}
|
|
99
|
+
value={checkedValues}
|
|
100
|
+
options={{
|
|
101
|
+
CAT1: 'Cat',
|
|
102
|
+
DOG1: 'Dog',
|
|
103
|
+
}}
|
|
104
|
+
classNames={{ container: "p32 bg-primary-300 br24 bs-lg" }}
|
|
105
|
+
/>
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export const RadioWithCustomOptionStyles = ({ onChange }: RadioProps<string>) => {
|
|
110
|
+
const [checkedValues, setCheckedValues] = useState<string>();
|
|
111
|
+
|
|
112
|
+
const handleOnChange = (newValue: string) => {
|
|
113
|
+
setCheckedValues(newValue);
|
|
114
|
+
onChange(newValue);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
return (
|
|
118
|
+
<Radio
|
|
119
|
+
onChange={handleOnChange}
|
|
120
|
+
value={checkedValues}
|
|
121
|
+
options={{
|
|
122
|
+
CAT2: 'Cat',
|
|
123
|
+
DOG2: 'Dog',
|
|
124
|
+
}}
|
|
125
|
+
classNames={{ option: "mb32 p24 bg-green-100 br12 bs-lg" }}
|
|
126
|
+
/>
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export const RadioWithCustomLabelStyles = ({ onChange }: RadioProps<string>) => {
|
|
131
|
+
const [checkedValues, setCheckedValues] = useState<string>();
|
|
132
|
+
|
|
133
|
+
const handleOnChange = (newValue: string ) => {
|
|
134
|
+
setCheckedValues(newValue);
|
|
135
|
+
onChange(newValue);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
return (
|
|
139
|
+
<Radio
|
|
140
|
+
onChange={handleOnChange}
|
|
141
|
+
value={checkedValues}
|
|
142
|
+
options={{
|
|
143
|
+
CAT3: 'Cat',
|
|
144
|
+
DOG3: 'Dog',
|
|
145
|
+
}}
|
|
146
|
+
classNames={{ label: "bg-grey-900 tc-white" }}
|
|
147
|
+
/>
|
|
148
|
+
);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export const RadioWithInlineLayout = ({ onChange }: RadioProps<string>) => {
|
|
152
|
+
const [checkedValues, setCheckedValues] = useState<string>();
|
|
153
|
+
|
|
154
|
+
const handleOnChange = (newValue: string) => {
|
|
155
|
+
setCheckedValues(newValue);
|
|
156
|
+
onChange(newValue);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
return (
|
|
160
|
+
<Radio
|
|
161
|
+
onChange={handleOnChange}
|
|
162
|
+
value={checkedValues}
|
|
163
|
+
options={{
|
|
164
|
+
CAT4: 'Cat',
|
|
165
|
+
DOG4: 'Dog',
|
|
166
|
+
FISHER: 'Fish',
|
|
167
|
+
RABBIT: 'Rabbit',
|
|
168
|
+
RAT: 'Rat',
|
|
169
|
+
ANOTHER: 'Other',
|
|
170
|
+
}}
|
|
171
|
+
classNames={{ option: "w30" }}
|
|
172
|
+
inlineLayout
|
|
173
|
+
wide
|
|
174
|
+
/>
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
export const RadioWithCustomLabel = ({ onChange, wide, classNames, inlineLayout }: RadioProps<string>) => {
|
|
179
|
+
const [checkedValues, setCheckedValues] = useState<string>();
|
|
180
|
+
|
|
181
|
+
const handleOnChange = (newValue: string) => {
|
|
182
|
+
setCheckedValues(newValue);
|
|
183
|
+
onChange(newValue);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
return (
|
|
187
|
+
<Radio
|
|
188
|
+
options={{
|
|
189
|
+
BIGDOG: {
|
|
190
|
+
icon: () => <img src={images.bigDog} alt='' />,
|
|
191
|
+
title: 'Dog',
|
|
192
|
+
},
|
|
193
|
+
FISH:{
|
|
194
|
+
icon: () => <img src={images.brokenAquarium} alt='' />,
|
|
195
|
+
title: 'Fish',
|
|
196
|
+
},
|
|
197
|
+
OTHER:{
|
|
198
|
+
icon: () => <img src={images.brokenGlass} alt='' />,
|
|
199
|
+
title: 'Other',
|
|
200
|
+
}
|
|
201
|
+
}}
|
|
202
|
+
onChange={handleOnChange}
|
|
203
|
+
value={checkedValues}
|
|
204
|
+
classNames={{ option: "w30" }}
|
|
205
|
+
inlineLayout
|
|
206
|
+
/>
|
|
207
|
+
);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
RadioStory.storyName = 'Radio';
|
|
211
|
+
|
|
212
|
+
export const RadioIconOnly = ({ onChange, wide, classNames, inlineLayout }: RadioProps<string>) => {
|
|
213
|
+
const [checkedValues, setCheckedValues] = useState<string>();
|
|
214
|
+
|
|
215
|
+
const handleOnChange = (newValue: string) => {
|
|
216
|
+
setCheckedValues(newValue);
|
|
217
|
+
onChange(newValue);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
return (
|
|
221
|
+
<Radio
|
|
222
|
+
options={{ NOTHING: '' }}
|
|
223
|
+
onChange={handleOnChange}
|
|
224
|
+
classNames={{ label: 'jc-start' }}
|
|
225
|
+
value={checkedValues}
|
|
226
|
+
bordered={false}
|
|
227
|
+
/>
|
|
228
|
+
);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
RadioStory.storyName = 'Radio';
|
|
232
|
+
|
|
233
|
+
export default story;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { render } from '../../../util/testUtils';
|
|
2
|
+
|
|
3
|
+
import { Radio, RadioProps } from '.';
|
|
4
|
+
|
|
5
|
+
const mockOnChange = jest.fn();
|
|
6
|
+
|
|
7
|
+
const setup = (onChange: RadioProps<string>['onChange'], value?: string) => {
|
|
8
|
+
const utils = render(
|
|
9
|
+
<Radio
|
|
10
|
+
options={{
|
|
11
|
+
CAT: 'Cat',
|
|
12
|
+
DOG: 'Dog',
|
|
13
|
+
NONE: 'None',
|
|
14
|
+
}}
|
|
15
|
+
onChange={onChange}
|
|
16
|
+
value={value}
|
|
17
|
+
/>
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
return utils;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
describe('Radio component', () => {
|
|
24
|
+
it('Should render options', () => {
|
|
25
|
+
const { getByText } = setup(mockOnChange);
|
|
26
|
+
|
|
27
|
+
expect(getByText('Cat')).toBeInTheDocument();
|
|
28
|
+
expect(getByText('Dog')).toBeInTheDocument();
|
|
29
|
+
expect(getByText('None')).toBeInTheDocument();
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it('Should call onchange on selecting an option', async () => {
|
|
33
|
+
const { getByTestId, user } = setup(mockOnChange);
|
|
34
|
+
|
|
35
|
+
await user.click(getByTestId('radio-DOG'));
|
|
36
|
+
|
|
37
|
+
expect(mockOnChange).toBeCalledWith("DOG");
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it('Should render checked items when value is passed', async () => {
|
|
41
|
+
const { getByTestId } = setup(mockOnChange, 'CAT');
|
|
42
|
+
|
|
43
|
+
expect(getByTestId('radio-input-CAT')).toBeChecked();
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it('Should render custom description', () => {
|
|
47
|
+
const { getByText } = render(
|
|
48
|
+
<Radio
|
|
49
|
+
options={{
|
|
50
|
+
CAT: {
|
|
51
|
+
title: 'Cat',
|
|
52
|
+
description: 'Cat description'
|
|
53
|
+
},
|
|
54
|
+
}}
|
|
55
|
+
onChange={mockOnChange}
|
|
56
|
+
/>
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
expect(getByText('Cat description')).toBeInTheDocument();
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
it('Should render custom icon', () => {
|
|
63
|
+
const { getByText } = render(
|
|
64
|
+
<Radio
|
|
65
|
+
options={{
|
|
66
|
+
CAT: {
|
|
67
|
+
title: 'Cat',
|
|
68
|
+
icon: () => 'ICON'
|
|
69
|
+
},
|
|
70
|
+
}}
|
|
71
|
+
onChange={mockOnChange}
|
|
72
|
+
/>
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
expect(getByText('ICON')).toBeInTheDocument();
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
it('Should render custom icon with selected', () => {
|
|
79
|
+
const { getByText } = render(
|
|
80
|
+
<Radio
|
|
81
|
+
options={{
|
|
82
|
+
CAT: {
|
|
83
|
+
title: 'Cat',
|
|
84
|
+
icon: (selected) => selected ? 'SELECTED-ICON' : 'ICON'
|
|
85
|
+
},
|
|
86
|
+
}}
|
|
87
|
+
onChange={mockOnChange}
|
|
88
|
+
value={'CAT'}
|
|
89
|
+
/>
|
|
90
|
+
);
|
|
91
|
+
|
|
92
|
+
expect(getByText('SELECTED-ICON')).toBeInTheDocument();
|
|
93
|
+
});
|
|
94
|
+
});
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import classNames from "classnames";
|
|
2
|
+
import { ReactNode } from "react";
|
|
3
|
+
|
|
4
|
+
import styles from './styles.module.scss';
|
|
5
|
+
export interface RadioWithDescription {
|
|
6
|
+
title: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
icon?: (selected: boolean) => ReactNode;
|
|
9
|
+
hideBox?: boolean;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface RadioProps<ValueType extends string> {
|
|
13
|
+
options: Record<ValueType, string | RadioWithDescription>;
|
|
14
|
+
value?: ValueType;
|
|
15
|
+
onChange: (value: ValueType) => void;
|
|
16
|
+
wide?: boolean;
|
|
17
|
+
inlineLayout?: boolean;
|
|
18
|
+
classNames?: {
|
|
19
|
+
container?: string;
|
|
20
|
+
label?: string;
|
|
21
|
+
option?: string;
|
|
22
|
+
};
|
|
23
|
+
bordered?: boolean;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export const Radio = <ValueType extends string>({
|
|
27
|
+
options,
|
|
28
|
+
value,
|
|
29
|
+
onChange,
|
|
30
|
+
wide = false,
|
|
31
|
+
inlineLayout = false,
|
|
32
|
+
classNames: classNamesObj,
|
|
33
|
+
bordered = true
|
|
34
|
+
}: RadioProps<ValueType>) => {
|
|
35
|
+
const entries = Object.entries(options) as [
|
|
36
|
+
ValueType,
|
|
37
|
+
string | RadioWithDescription
|
|
38
|
+
][];
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
return (
|
|
42
|
+
<div
|
|
43
|
+
className={classNames(classNamesObj?.container, styles.container, 'd-flex gap8', {
|
|
44
|
+
[styles.wide]: wide,
|
|
45
|
+
[styles.narrow]: !wide,
|
|
46
|
+
'fd-row': inlineLayout,
|
|
47
|
+
'f-wrap': inlineLayout,
|
|
48
|
+
'fd-column': !inlineLayout,
|
|
49
|
+
})}
|
|
50
|
+
>
|
|
51
|
+
{entries.map(([currentValue, label]) => {
|
|
52
|
+
const checked = value === currentValue;
|
|
53
|
+
const customIcon = (label as RadioWithDescription)?.icon;
|
|
54
|
+
const hideIcon = (label as RadioWithDescription)?.hideBox;
|
|
55
|
+
|
|
56
|
+
return (
|
|
57
|
+
<div className={classNamesObj?.option} key={currentValue}>
|
|
58
|
+
<input
|
|
59
|
+
className={classNames(
|
|
60
|
+
"p-radio", {
|
|
61
|
+
'p-radio--no-icon': customIcon || hideIcon,
|
|
62
|
+
'p-radio--centered': !label,
|
|
63
|
+
}
|
|
64
|
+
)}
|
|
65
|
+
id={currentValue}
|
|
66
|
+
type="radio"
|
|
67
|
+
value={currentValue}
|
|
68
|
+
onChange={() => onChange(currentValue)}
|
|
69
|
+
checked={checked}
|
|
70
|
+
data-testid={`radio-input-${currentValue}`}
|
|
71
|
+
/>
|
|
72
|
+
|
|
73
|
+
<label
|
|
74
|
+
htmlFor={currentValue}
|
|
75
|
+
className={classNames(
|
|
76
|
+
classNamesObj?.label,
|
|
77
|
+
'p-label',
|
|
78
|
+
{
|
|
79
|
+
'jc-center': customIcon,
|
|
80
|
+
'fd-column': customIcon,
|
|
81
|
+
'p-label--bordered': bordered
|
|
82
|
+
}
|
|
83
|
+
)}
|
|
84
|
+
data-cy={`radio-${currentValue}`}
|
|
85
|
+
data-testid={`radio-${currentValue}`}
|
|
86
|
+
>
|
|
87
|
+
{customIcon && (
|
|
88
|
+
<div className="mt8">{customIcon?.(checked)}</div>
|
|
89
|
+
)}
|
|
90
|
+
|
|
91
|
+
{typeof label === 'string' ? label : (
|
|
92
|
+
<div>
|
|
93
|
+
<p className="p-p">{label.title}</p>
|
|
94
|
+
<span className="d-block p-p p-p--small tc-grey-600">
|
|
95
|
+
{label.description}
|
|
96
|
+
</span>
|
|
97
|
+
</div>
|
|
98
|
+
)}
|
|
99
|
+
</label>
|
|
100
|
+
</div>
|
|
101
|
+
);
|
|
102
|
+
})}
|
|
103
|
+
</div>
|
|
104
|
+
);
|
|
105
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Spinner, SpinnerProps } from '.';
|
|
2
|
+
|
|
3
|
+
const story = {
|
|
4
|
+
title: 'JSX/Spinner',
|
|
5
|
+
component: Spinner,
|
|
6
|
+
argTypes: {
|
|
7
|
+
size: {
|
|
8
|
+
control: { type: 'select' },
|
|
9
|
+
defaultValue: 's',
|
|
10
|
+
description: 'Property that allows to customize the size of the spinner.',
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export const SpinnerStory = ({ size }: SpinnerProps) => <Spinner size={size} />;
|
|
16
|
+
|
|
17
|
+
SpinnerStory.storyName = 'Spinner';
|
|
18
|
+
|
|
19
|
+
export default story;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { render, screen } from '../../util/testUtils';
|
|
2
|
+
|
|
3
|
+
import { Spinner } from '.';
|
|
4
|
+
|
|
5
|
+
describe('Spinner component', () => {
|
|
6
|
+
it('Should render spinner', async () => {
|
|
7
|
+
render(<Spinner></Spinner>);
|
|
8
|
+
|
|
9
|
+
expect(screen.getByTestId('ds-spinner')).toBeInTheDocument();
|
|
10
|
+
});
|
|
11
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import classNames from 'classnames';
|
|
2
|
+
|
|
3
|
+
export interface SpinnerProps {
|
|
4
|
+
size?: 's' | 'm' | 'l';
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
const Spinner = ({ size = 's' }: SpinnerProps) => (
|
|
8
|
+
<div
|
|
9
|
+
className={classNames('ds-spinner', `ds-spinner__${size}`)}
|
|
10
|
+
data-testid="ds-spinner"
|
|
11
|
+
></div>
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
export { Spinner };
|
package/src/lib/index.tsx
CHANGED
|
@@ -2,12 +2,12 @@ import { DateSelector } from './components/dateSelector';
|
|
|
2
2
|
import { SignaturePad } from './components/signaturePad';
|
|
3
3
|
import { AutocompleteAddress } from './components/autocompleteAddress';
|
|
4
4
|
import { Input } from './components/input';
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
6
|
MultiDropzone,
|
|
7
7
|
FileType,
|
|
8
8
|
MultiDropzoneProps,
|
|
9
9
|
UploadedFile,
|
|
10
|
-
UploadStatus
|
|
10
|
+
UploadStatus,
|
|
11
11
|
} from './components/multiDropzone';
|
|
12
12
|
import { DownloadButton } from './components/downloadButton';
|
|
13
13
|
import { InformationBox } from './components/informationBox';
|
|
@@ -15,6 +15,7 @@ import IbanInput from './components/input/iban';
|
|
|
15
15
|
import CurrencyInput from './components/input/currency';
|
|
16
16
|
import { Badge } from './components/badge';
|
|
17
17
|
import { Checkbox } from './components/input/checkbox';
|
|
18
|
+
import { Radio } from './components/input/radio';
|
|
18
19
|
import {
|
|
19
20
|
BottomModal,
|
|
20
21
|
RegularModal,
|
|
@@ -44,6 +45,7 @@ import { SegmentedControl } from './components/segmentedControl';
|
|
|
44
45
|
import { Markdown } from './components/markdown';
|
|
45
46
|
import { Link } from './components/link';
|
|
46
47
|
import { images } from './util/images';
|
|
48
|
+
import { Spinner } from './components/spinner';
|
|
47
49
|
|
|
48
50
|
export * from './components/icon';
|
|
49
51
|
|
|
@@ -77,10 +79,12 @@ export {
|
|
|
77
79
|
SegmentedControl,
|
|
78
80
|
Markdown,
|
|
79
81
|
Checkbox,
|
|
82
|
+
Radio,
|
|
80
83
|
Link,
|
|
81
84
|
InformationBox,
|
|
82
85
|
Badge,
|
|
83
86
|
images,
|
|
87
|
+
Spinner,
|
|
84
88
|
};
|
|
85
89
|
|
|
86
90
|
export type {
|
|
@@ -88,7 +92,7 @@ export type {
|
|
|
88
92
|
MultiDropzoneProps,
|
|
89
93
|
TableHeader,
|
|
90
94
|
UploadedFile,
|
|
91
|
-
UploadStatus
|
|
95
|
+
UploadStatus,
|
|
92
96
|
};
|
|
93
97
|
|
|
94
98
|
export type { DownloadStatus } from './models/download';
|
|
@@ -89,8 +89,15 @@
|
|
|
89
89
|
transition: 0.3s background-color;
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
|
+
|
|
93
|
+
&.p-radio--centered + label::before {
|
|
94
|
+
margin-right: 0;
|
|
95
|
+
}
|
|
92
96
|
}
|
|
93
97
|
|
|
98
|
+
.p-radio--no-icon + label::before {
|
|
99
|
+
display: none!important;
|
|
100
|
+
}
|
|
94
101
|
.p-radio:checked {
|
|
95
102
|
& + label::before {
|
|
96
103
|
border-color: $ds-primary-500;
|
|
@@ -146,7 +153,7 @@
|
|
|
146
153
|
}
|
|
147
154
|
|
|
148
155
|
.p-checkbox--no-icon + label::before {
|
|
149
|
-
display: none!important;
|
|
156
|
+
display: none !important;
|
|
150
157
|
}
|
|
151
158
|
|
|
152
159
|
.p-label {
|
|
@@ -162,7 +169,7 @@
|
|
|
162
169
|
&--bordered {
|
|
163
170
|
align-items: center;
|
|
164
171
|
|
|
165
|
-
padding:
|
|
172
|
+
padding: 12px 16px;
|
|
166
173
|
|
|
167
174
|
border-radius: 8px;
|
|
168
175
|
border: 1px solid $ds-grey-400;
|