@viraui/react 0.0.17 → 0.0.19
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/catalog.json +30 -0
- package/dist/components/avatar/avatar.css +1 -1
- package/dist/components/avatar/avatar.d.ts +1 -1
- package/dist/components/avatar/avatar.js +2 -0
- package/dist/components/avatar-group/avatar-group.css +1 -0
- package/dist/components/avatar-group/avatar-group.d.ts +55 -0
- package/dist/components/avatar-group/avatar-group.guide.json +22 -0
- package/dist/components/avatar-group/avatar-group.js +61 -0
- package/dist/components/avatar-group/avatar-group.module.js +9 -0
- package/dist/components/avatar-group/index.d.ts +2 -0
- package/dist/components/basic-input/basic-input.js +1 -1
- package/dist/components/basic-input/field-helper-copy.js +3 -3
- package/dist/components/basic-input/field-label.d.ts +2 -1
- package/dist/components/basic-input/field-label.js +4 -3
- package/dist/components/button/button.css +1 -1
- package/dist/components/button/button.js +1 -1
- package/dist/components/checkbox/checkbox.css +1 -1
- package/dist/components/checkbox/checkbox.js +6 -3
- package/dist/components/chip/chip.css +1 -0
- package/dist/components/chip/chip.d.ts +46 -0
- package/dist/components/chip/chip.guide.json +26 -0
- package/dist/components/chip/chip.js +48 -0
- package/dist/components/chip/chip.module.js +8 -0
- package/dist/components/chip/index.d.ts +2 -0
- package/dist/components/clamp-text/clamp-text.js +1 -1
- package/dist/components/icon/icon.css +1 -1
- package/dist/components/icon/index.d.ts +1 -1
- package/dist/components/index.d.ts +5 -0
- package/dist/components/linear-progress/index.d.ts +2 -0
- package/dist/components/linear-progress/linear-progress.css +1 -0
- package/dist/components/linear-progress/linear-progress.d.ts +44 -0
- package/dist/components/linear-progress/linear-progress.guide.json +27 -0
- package/dist/components/linear-progress/linear-progress.js +61 -0
- package/dist/components/linear-progress/linear-progress.module.js +8 -0
- package/dist/components/masonry/index.d.ts +2 -0
- package/dist/components/masonry/masonry-item.d.ts +32 -0
- package/dist/components/masonry/masonry-item.js +22 -0
- package/dist/components/masonry/masonry.css +1 -0
- package/dist/components/masonry/masonry.d.ts +67 -0
- package/dist/components/masonry/masonry.guide.json +24 -0
- package/dist/components/masonry/masonry.js +38 -0
- package/dist/components/masonry/masonry.module.js +6 -0
- package/dist/components/radio/index.d.ts +4 -0
- package/dist/components/radio/radio-group.d.ts +44 -0
- package/dist/components/radio/radio-group.js +54 -0
- package/dist/components/radio/radio.css +1 -0
- package/dist/components/radio/radio.d.ts +44 -0
- package/dist/components/radio/radio.guide.json +26 -0
- package/dist/components/radio/radio.js +45 -0
- package/dist/components/radio/radio.module.js +9 -0
- package/dist/components/select/select-group.js +1 -1
- package/dist/components/select/select-option.js +1 -1
- package/dist/components/select/select.css +1 -1
- package/dist/components/select/select.guide.json +5 -1
- package/dist/components/select/select.js +7 -4
- package/dist/components/slider/slider.js +2 -2
- package/dist/components/stack/stack.css +1 -1
- package/dist/components/stack/stack.js +1 -1
- package/dist/components/surface/surface.css +1 -1
- package/dist/components/surface/surface.js +2 -2
- package/dist/components/switch/switch.css +1 -1
- package/dist/components/switch/switch.js +7 -3
- package/dist/components/text/text.js +1 -1
- package/dist/components/textarea/textarea.js +2 -2
- package/dist/components/textfield/textfield.js +2 -2
- package/dist/components/title/title.d.ts +5 -2
- package/dist/components/title/title.guide.json +5 -2
- package/dist/components/title/title.js +1 -1
- package/dist/core/props/intrinsic-vira-props.d.ts +7 -0
- package/dist/core/props/intrinsic-vira-props.js +3 -2
- package/dist/core/theme/resolve-theme-value.d.ts +3 -4
- package/dist/core/theme/resolve-theme-value.js +1 -2
- package/dist/index.js +9 -3
- package/dist/internal-icons/icon-registry.d.ts +11 -217
- package/dist/internal-icons/icon-registry.js +30 -648
- package/dist/internal-icons/icons/duo/ArrowDown.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowDownLeft.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowDownRight.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowLeft.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowRight.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowUp.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowUpLeft.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowUpRight.js +1 -1
- package/dist/internal-icons/icons/duo/CaretDown.js +1 -1
- package/dist/internal-icons/icons/duo/CaretLeft.js +1 -1
- package/dist/internal-icons/icons/duo/CaretRight.js +1 -1
- package/dist/internal-icons/icons/duo/CaretUp.js +1 -1
- package/dist/internal-icons/icons/duo/ChevronExpandY.js +1 -1
- package/dist/internal-icons/icons/duo/CircleHalfDottedClock.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CircleHalfDottedClock.js +13 -0
- package/dist/internal-icons/icons/duo/CircleImage.d.ts +7 -0
- package/dist/internal-icons/icons/duo/{SavedItems2.js → CircleImage.js} +4 -4
- package/dist/internal-icons/icons/duo/{Embed.d.ts → Clock.d.ts} +3 -3
- package/dist/internal-icons/icons/duo/Clock.js +13 -0
- package/dist/internal-icons/icons/duo/DarkLight.js +1 -1
- package/dist/internal-icons/icons/duo/History.d.ts +7 -0
- package/dist/internal-icons/icons/duo/History.js +13 -0
- package/dist/internal-icons/icons/duo/{Child.d.ts → Image.d.ts} +3 -3
- package/dist/internal-icons/icons/duo/Image.js +13 -0
- package/dist/internal-icons/icons/duo/ImagesLayered.d.ts +7 -0
- package/dist/internal-icons/icons/duo/{Images3.js → ImagesLayered.js} +4 -4
- package/dist/internal-icons/icons/duo/{Box3.d.ts → Lock.d.ts} +3 -3
- package/dist/internal-icons/icons/duo/Lock.js +13 -0
- package/dist/internal-icons/icons/duo/LockOpen.d.ts +7 -0
- package/dist/internal-icons/icons/duo/LockOpen.js +13 -0
- package/dist/internal-icons/icons/duo/Magnifier.js +1 -1
- package/dist/internal-icons/icons/duo/MoonStars.js +1 -1
- package/dist/internal-icons/icons/duo/Quickstart.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Quickstart.js +13 -0
- package/dist/internal-icons/icons/duo/RefreshAnticlockwise.js +1 -1
- package/dist/internal-icons/icons/duo/Sun.js +1 -1
- package/dist/internal-icons/icons/duo/{Img4k.d.ts → Xmark.d.ts} +3 -3
- package/dist/internal-icons/icons/duo/{ProfileBasic.js → Xmark.js} +4 -4
- package/dist/internal-icons/icons/duo/index.d.ts +11 -217
- package/dist/internal-icons/icons/duo/index.js +11 -217
- package/dist/preflight.css +1 -1
- package/dist/theme-surface.json +5 -0
- package/package.json +2 -2
- package/dist/internal-icons/icons/duo/AddSection.d.ts +0 -7
- package/dist/internal-icons/icons/duo/AddSection.js +0 -13
- package/dist/internal-icons/icons/duo/AiDeveloper.d.ts +0 -7
- package/dist/internal-icons/icons/duo/AiDeveloper.js +0 -13
- package/dist/internal-icons/icons/duo/AiLoading.d.ts +0 -7
- package/dist/internal-icons/icons/duo/AiLoading.js +0 -13
- package/dist/internal-icons/icons/duo/Album3.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Album3.js +0 -13
- package/dist/internal-icons/icons/duo/ArchiveContent2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ArchiveContent2.js +0 -13
- package/dist/internal-icons/icons/duo/ArrowRotate.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ArrowRotate.js +0 -13
- package/dist/internal-icons/icons/duo/ArrowRotateAnticlockwiseCheck.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ArrowRotateAnticlockwiseCheck.js +0 -13
- package/dist/internal-icons/icons/duo/ArrowRotateAnticlockwiseSlash.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ArrowRotateAnticlockwiseSlash.js +0 -13
- package/dist/internal-icons/icons/duo/ArrowRotateAnticlockwiseXmark.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ArrowRotateAnticlockwiseXmark.js +0 -13
- package/dist/internal-icons/icons/duo/ArrowRotateClockwiseSlash.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ArrowRotateClockwiseSlash.js +0 -13
- package/dist/internal-icons/icons/duo/ArrowsFilter.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ArrowsFilter.js +0 -13
- package/dist/internal-icons/icons/duo/ArrowsToLineY2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ArrowsToLineY2.js +0 -13
- package/dist/internal-icons/icons/duo/Birdhouse.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Birdhouse.js +0 -13
- package/dist/internal-icons/icons/duo/BookmarkList.d.ts +0 -7
- package/dist/internal-icons/icons/duo/BookmarkList.js +0 -13
- package/dist/internal-icons/icons/duo/BookmarkedBook.d.ts +0 -7
- package/dist/internal-icons/icons/duo/BookmarkedBook.js +0 -13
- package/dist/internal-icons/icons/duo/BookmarkedBook2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/BookmarkedBook2.js +0 -13
- package/dist/internal-icons/icons/duo/Box3.js +0 -13
- package/dist/internal-icons/icons/duo/BoxSparkle.d.ts +0 -7
- package/dist/internal-icons/icons/duo/BoxSparkle.js +0 -13
- package/dist/internal-icons/icons/duo/BoxSparkle2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/BoxSparkle2.js +0 -13
- package/dist/internal-icons/icons/duo/Brochure.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Brochure.js +0 -13
- package/dist/internal-icons/icons/duo/ButtonPlus.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ButtonPlus.js +0 -13
- package/dist/internal-icons/icons/duo/Calculator3.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Calculator3.js +0 -13
- package/dist/internal-icons/icons/duo/Chart3.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Chart3.js +0 -13
- package/dist/internal-icons/icons/duo/ChartBar.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ChartBar.js +0 -13
- package/dist/internal-icons/icons/duo/ChartCandlestick2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ChartCandlestick2.js +0 -13
- package/dist/internal-icons/icons/duo/ChatImage.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ChatImage.js +0 -13
- package/dist/internal-icons/icons/duo/ChatInfo.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ChatInfo.js +0 -13
- package/dist/internal-icons/icons/duo/ChatTask.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ChatTask.js +0 -13
- package/dist/internal-icons/icons/duo/CheckBoxArrow.d.ts +0 -7
- package/dist/internal-icons/icons/duo/CheckBoxArrow.js +0 -13
- package/dist/internal-icons/icons/duo/ChevronLeftToLine.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ChevronLeftToLine.js +0 -13
- package/dist/internal-icons/icons/duo/ChevronRightToLine.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ChevronRightToLine.js +0 -13
- package/dist/internal-icons/icons/duo/Child.js +0 -13
- package/dist/internal-icons/icons/duo/CircleCoinIn.d.ts +0 -7
- package/dist/internal-icons/icons/duo/CircleCoinIn.js +0 -13
- package/dist/internal-icons/icons/duo/CircleCoinOut.d.ts +0 -7
- package/dist/internal-icons/icons/duo/CircleCoinOut.js +0 -13
- package/dist/internal-icons/icons/duo/CircleCoinPlus.d.ts +0 -7
- package/dist/internal-icons/icons/duo/CircleCoinPlus.js +0 -13
- package/dist/internal-icons/icons/duo/CircleConversion.d.ts +0 -7
- package/dist/internal-icons/icons/duo/CircleConversion.js +0 -13
- package/dist/internal-icons/icons/duo/CircleCross.d.ts +0 -7
- package/dist/internal-icons/icons/duo/CircleCross.js +0 -13
- package/dist/internal-icons/icons/duo/CircleHalfArrowDown.d.ts +0 -7
- package/dist/internal-icons/icons/duo/CircleHalfArrowDown.js +0 -13
- package/dist/internal-icons/icons/duo/CircleHalfArrowLeft.d.ts +0 -7
- package/dist/internal-icons/icons/duo/CircleHalfArrowLeft.js +0 -13
- package/dist/internal-icons/icons/duo/CircleHalfArrowRight.d.ts +0 -7
- package/dist/internal-icons/icons/duo/CircleHalfArrowRight.js +0 -13
- package/dist/internal-icons/icons/duo/CircleHalfArrowUp.d.ts +0 -7
- package/dist/internal-icons/icons/duo/CircleHalfArrowUp.js +0 -13
- package/dist/internal-icons/icons/duo/CircleHalfDottedChart2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/CircleHalfDottedChart2.js +0 -13
- package/dist/internal-icons/icons/duo/ClockTime.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ClockTime.js +0 -13
- package/dist/internal-icons/icons/duo/CloneDashed3.d.ts +0 -7
- package/dist/internal-icons/icons/duo/CloneDashed3.js +0 -13
- package/dist/internal-icons/icons/duo/CloneImageDashed.d.ts +0 -7
- package/dist/internal-icons/icons/duo/CloneImageDashed.js +0 -13
- package/dist/internal-icons/icons/duo/CloneVideoDashed.d.ts +0 -7
- package/dist/internal-icons/icons/duo/CloneVideoDashed.js +0 -13
- package/dist/internal-icons/icons/duo/CloudeCode.d.ts +0 -7
- package/dist/internal-icons/icons/duo/CloudeCode.js +0 -13
- package/dist/internal-icons/icons/duo/CoinStack.d.ts +0 -7
- package/dist/internal-icons/icons/duo/CoinStack.js +0 -13
- package/dist/internal-icons/icons/duo/ConditionalLogic.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ConditionalLogic.js +0 -13
- package/dist/internal-icons/icons/duo/ConnectPlus.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ConnectPlus.js +0 -13
- package/dist/internal-icons/icons/duo/Connection3.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Connection3.js +0 -13
- package/dist/internal-icons/icons/duo/CopyDelete.d.ts +0 -7
- package/dist/internal-icons/icons/duo/CopyDelete.js +0 -13
- package/dist/internal-icons/icons/duo/CopyId.d.ts +0 -7
- package/dist/internal-icons/icons/duo/CopyId.js +0 -13
- package/dist/internal-icons/icons/duo/Deaf.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Deaf.js +0 -13
- package/dist/internal-icons/icons/duo/DependencyLink.d.ts +0 -7
- package/dist/internal-icons/icons/duo/DependencyLink.js +0 -13
- package/dist/internal-icons/icons/duo/DesktopDock.d.ts +0 -7
- package/dist/internal-icons/icons/duo/DesktopDock.js +0 -13
- package/dist/internal-icons/icons/duo/DiamondSparkle.d.ts +0 -7
- package/dist/internal-icons/icons/duo/DiamondSparkle.js +0 -13
- package/dist/internal-icons/icons/duo/DocumentScan.d.ts +0 -7
- package/dist/internal-icons/icons/duo/DocumentScan.js +0 -13
- package/dist/internal-icons/icons/duo/Dog2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Dog2.js +0 -13
- package/dist/internal-icons/icons/duo/DogLeash.d.ts +0 -7
- package/dist/internal-icons/icons/duo/DogLeash.js +0 -13
- package/dist/internal-icons/icons/duo/DogSlash.d.ts +0 -7
- package/dist/internal-icons/icons/duo/DogSlash.js +0 -13
- package/dist/internal-icons/icons/duo/DotFormation.d.ts +0 -7
- package/dist/internal-icons/icons/duo/DotFormation.js +0 -13
- package/dist/internal-icons/icons/duo/DrawFinger.d.ts +0 -7
- package/dist/internal-icons/icons/duo/DrawFinger.js +0 -13
- package/dist/internal-icons/icons/duo/Ear.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Ear.js +0 -13
- package/dist/internal-icons/icons/duo/EarSound.d.ts +0 -7
- package/dist/internal-icons/icons/duo/EarSound.js +0 -13
- package/dist/internal-icons/icons/duo/Embed.js +0 -13
- package/dist/internal-icons/icons/duo/EnterDoor.d.ts +0 -7
- package/dist/internal-icons/icons/duo/EnterDoor.js +0 -13
- package/dist/internal-icons/icons/duo/EnterHome.d.ts +0 -7
- package/dist/internal-icons/icons/duo/EnterHome.js +0 -13
- package/dist/internal-icons/icons/duo/ExitDoor.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ExitDoor.js +0 -13
- package/dist/internal-icons/icons/duo/Export2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Export2.js +0 -13
- package/dist/internal-icons/icons/duo/EyeSparkle.d.ts +0 -7
- package/dist/internal-icons/icons/duo/EyeSparkle.js +0 -13
- package/dist/internal-icons/icons/duo/FaceRobot.d.ts +0 -7
- package/dist/internal-icons/icons/duo/FaceRobot.js +0 -13
- package/dist/internal-icons/icons/duo/FaceRobot2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/FaceRobot2.js +0 -13
- package/dist/internal-icons/icons/duo/FaceRobot3.d.ts +0 -7
- package/dist/internal-icons/icons/duo/FaceRobot3.js +0 -13
- package/dist/internal-icons/icons/duo/FerrisWheel.d.ts +0 -7
- package/dist/internal-icons/icons/duo/FerrisWheel.js +0 -13
- package/dist/internal-icons/icons/duo/FileExport.d.ts +0 -7
- package/dist/internal-icons/icons/duo/FileExport.js +0 -13
- package/dist/internal-icons/icons/duo/FlagMenu.d.ts +0 -7
- package/dist/internal-icons/icons/duo/FlagMenu.js +0 -13
- package/dist/internal-icons/icons/duo/FocusCenter.d.ts +0 -7
- package/dist/internal-icons/icons/duo/FocusCenter.js +0 -13
- package/dist/internal-icons/icons/duo/FoodOrder.d.ts +0 -7
- package/dist/internal-icons/icons/duo/FoodOrder.js +0 -13
- package/dist/internal-icons/icons/duo/FuelCan.d.ts +0 -7
- package/dist/internal-icons/icons/duo/FuelCan.js +0 -13
- package/dist/internal-icons/icons/duo/FuelCan2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/FuelCan2.js +0 -13
- package/dist/internal-icons/icons/duo/Gear3Sparkle.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Gear3Sparkle.js +0 -13
- package/dist/internal-icons/icons/duo/GridSparkle.d.ts +0 -7
- package/dist/internal-icons/icons/duo/GridSparkle.js +0 -13
- package/dist/internal-icons/icons/duo/HandHoldingGlobe.d.ts +0 -7
- package/dist/internal-icons/icons/duo/HandHoldingGlobe.js +0 -13
- package/dist/internal-icons/icons/duo/Handshake2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Handshake2.js +0 -13
- package/dist/internal-icons/icons/duo/Haptic.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Haptic.js +0 -13
- package/dist/internal-icons/icons/duo/HelpChat.d.ts +0 -7
- package/dist/internal-icons/icons/duo/HelpChat.js +0 -13
- package/dist/internal-icons/icons/duo/HexagonSparkle.d.ts +0 -7
- package/dist/internal-icons/icons/duo/HexagonSparkle.js +0 -13
- package/dist/internal-icons/icons/duo/Hiking.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Hiking.js +0 -13
- package/dist/internal-icons/icons/duo/History2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/History2.js +0 -13
- package/dist/internal-icons/icons/duo/HorseHead.d.ts +0 -7
- package/dist/internal-icons/icons/duo/HorseHead.js +0 -13
- package/dist/internal-icons/icons/duo/HouseDollarSign.d.ts +0 -7
- package/dist/internal-icons/icons/duo/HouseDollarSign.js +0 -13
- package/dist/internal-icons/icons/duo/HouseMinus2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/HouseMinus2.js +0 -13
- package/dist/internal-icons/icons/duo/Images3.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Img4k.js +0 -13
- package/dist/internal-icons/icons/duo/InsertCrypto.d.ts +0 -7
- package/dist/internal-icons/icons/duo/InsertCrypto.js +0 -13
- package/dist/internal-icons/icons/duo/InsertDollar.d.ts +0 -7
- package/dist/internal-icons/icons/duo/InsertDollar.js +0 -13
- package/dist/internal-icons/icons/duo/InstantMoney.d.ts +0 -7
- package/dist/internal-icons/icons/duo/InstantMoney.js +0 -13
- package/dist/internal-icons/icons/duo/InvoiceIn.d.ts +0 -7
- package/dist/internal-icons/icons/duo/InvoiceIn.js +0 -13
- package/dist/internal-icons/icons/duo/InwardFlow.d.ts +0 -7
- package/dist/internal-icons/icons/duo/InwardFlow.js +0 -13
- package/dist/internal-icons/icons/duo/JoinedHands.d.ts +0 -7
- package/dist/internal-icons/icons/duo/JoinedHands.js +0 -13
- package/dist/internal-icons/icons/duo/LawShield.d.ts +0 -7
- package/dist/internal-icons/icons/duo/LawShield.js +0 -13
- package/dist/internal-icons/icons/duo/Lectern.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Lectern.js +0 -13
- package/dist/internal-icons/icons/duo/Lectern2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Lectern2.js +0 -13
- package/dist/internal-icons/icons/duo/LightSpark.d.ts +0 -7
- package/dist/internal-icons/icons/duo/LightSpark.js +0 -13
- package/dist/internal-icons/icons/duo/LightSpark2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/LightSpark2.js +0 -13
- package/dist/internal-icons/icons/duo/ListExport.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ListExport.js +0 -13
- package/dist/internal-icons/icons/duo/ListFavs3.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ListFavs3.js +0 -13
- package/dist/internal-icons/icons/duo/ListFavs4.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ListFavs4.js +0 -13
- package/dist/internal-icons/icons/duo/LoadingStatus.d.ts +0 -7
- package/dist/internal-icons/icons/duo/LoadingStatus.js +0 -13
- package/dist/internal-icons/icons/duo/LoadingStatus2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/LoadingStatus2.js +0 -13
- package/dist/internal-icons/icons/duo/LockedChat.d.ts +0 -7
- package/dist/internal-icons/icons/duo/LockedChat.js +0 -13
- package/dist/internal-icons/icons/duo/MagicHat.d.ts +0 -7
- package/dist/internal-icons/icons/duo/MagicHat.js +0 -13
- package/dist/internal-icons/icons/duo/MagicRabbit.d.ts +0 -7
- package/dist/internal-icons/icons/duo/MagicRabbit.js +0 -13
- package/dist/internal-icons/icons/duo/MagnifierSparkle2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/MagnifierSparkle2.js +0 -13
- package/dist/internal-icons/icons/duo/MediaLibrary2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/MediaLibrary2.js +0 -13
- package/dist/internal-icons/icons/duo/Membership.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Membership.js +0 -13
- package/dist/internal-icons/icons/duo/Menu4.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Menu4.js +0 -13
- package/dist/internal-icons/icons/duo/MilitaryMedal.d.ts +0 -7
- package/dist/internal-icons/icons/duo/MilitaryMedal.js +0 -13
- package/dist/internal-icons/icons/duo/MobileCircuit.d.ts +0 -7
- package/dist/internal-icons/icons/duo/MobileCircuit.js +0 -13
- package/dist/internal-icons/icons/duo/MoneyRefund.d.ts +0 -7
- package/dist/internal-icons/icons/duo/MoneyRefund.js +0 -13
- package/dist/internal-icons/icons/duo/MoneyRefund2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/MoneyRefund2.js +0 -13
- package/dist/internal-icons/icons/duo/MotionAlongPath.d.ts +0 -7
- package/dist/internal-icons/icons/duo/MotionAlongPath.js +0 -13
- package/dist/internal-icons/icons/duo/Msgs2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Msgs2.js +0 -13
- package/dist/internal-icons/icons/duo/Navigation.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Navigation.js +0 -13
- package/dist/internal-icons/icons/duo/NavigationHorizontal.d.ts +0 -7
- package/dist/internal-icons/icons/duo/NavigationHorizontal.js +0 -13
- package/dist/internal-icons/icons/duo/NavigationVertical.d.ts +0 -7
- package/dist/internal-icons/icons/duo/NavigationVertical.js +0 -13
- package/dist/internal-icons/icons/duo/ObjectSelection.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ObjectSelection.js +0 -13
- package/dist/internal-icons/icons/duo/OfficeUser.d.ts +0 -7
- package/dist/internal-icons/icons/duo/OfficeUser.js +0 -13
- package/dist/internal-icons/icons/duo/OpenExternal.d.ts +0 -7
- package/dist/internal-icons/icons/duo/OpenExternal.js +0 -13
- package/dist/internal-icons/icons/duo/OrbitSparkle.d.ts +0 -7
- package/dist/internal-icons/icons/duo/OrbitSparkle.js +0 -13
- package/dist/internal-icons/icons/duo/OutwardFlow.d.ts +0 -7
- package/dist/internal-icons/icons/duo/OutwardFlow.js +0 -13
- package/dist/internal-icons/icons/duo/PaperPlaneFast.d.ts +0 -7
- package/dist/internal-icons/icons/duo/PaperPlaneFast.js +0 -13
- package/dist/internal-icons/icons/duo/Parachute.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Parachute.js +0 -13
- package/dist/internal-icons/icons/duo/Paw.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Paw.js +0 -13
- package/dist/internal-icons/icons/duo/Peace.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Peace.js +0 -13
- package/dist/internal-icons/icons/duo/PicnicTable.d.ts +0 -7
- package/dist/internal-icons/icons/duo/PicnicTable.js +0 -13
- package/dist/internal-icons/icons/duo/Pillow.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Pillow.js +0 -13
- package/dist/internal-icons/icons/duo/Playground.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Playground.js +0 -13
- package/dist/internal-icons/icons/duo/Playlist4.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Playlist4.js +0 -13
- package/dist/internal-icons/icons/duo/Plug3.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Plug3.js +0 -13
- package/dist/internal-icons/icons/duo/Plug3Sparkle.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Plug3Sparkle.js +0 -13
- package/dist/internal-icons/icons/duo/PlugOff.d.ts +0 -7
- package/dist/internal-icons/icons/duo/PlugOff.js +0 -13
- package/dist/internal-icons/icons/duo/PlugSparkle.d.ts +0 -7
- package/dist/internal-icons/icons/duo/PlugSparkle.js +0 -13
- package/dist/internal-icons/icons/duo/PopEffect.d.ts +0 -7
- package/dist/internal-icons/icons/duo/PopEffect.js +0 -13
- package/dist/internal-icons/icons/duo/ProfileAnalytics.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ProfileAnalytics.js +0 -13
- package/dist/internal-icons/icons/duo/ProfileBasic.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ProgressIndicator2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ProgressIndicator2.js +0 -13
- package/dist/internal-icons/icons/duo/QuickActions.d.ts +0 -7
- package/dist/internal-icons/icons/duo/QuickActions.js +0 -13
- package/dist/internal-icons/icons/duo/QuickTimer.d.ts +0 -7
- package/dist/internal-icons/icons/duo/QuickTimer.js +0 -13
- package/dist/internal-icons/icons/duo/Rabbit.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Rabbit.js +0 -13
- package/dist/internal-icons/icons/duo/Receipt3.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Receipt3.js +0 -13
- package/dist/internal-icons/icons/duo/Receipt4.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Receipt4.js +0 -13
- package/dist/internal-icons/icons/duo/Redo2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Redo2.js +0 -13
- package/dist/internal-icons/icons/duo/Redo3.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Redo3.js +0 -13
- package/dist/internal-icons/icons/duo/Refresh3AnticlockwiseSlash.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Refresh3AnticlockwiseSlash.js +0 -13
- package/dist/internal-icons/icons/duo/Refresh3ClockwiseSlash.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Refresh3ClockwiseSlash.js +0 -13
- package/dist/internal-icons/icons/duo/RefreshAnticlockwiseSlash.d.ts +0 -7
- package/dist/internal-icons/icons/duo/RefreshAnticlockwiseSlash.js +0 -13
- package/dist/internal-icons/icons/duo/RefreshClockwiseSlash.d.ts +0 -7
- package/dist/internal-icons/icons/duo/RefreshClockwiseSlash.js +0 -13
- package/dist/internal-icons/icons/duo/Refrigerator.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Refrigerator.js +0 -13
- package/dist/internal-icons/icons/duo/RemoteControl.d.ts +0 -7
- package/dist/internal-icons/icons/duo/RemoteControl.js +0 -13
- package/dist/internal-icons/icons/duo/RemoteControl2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/RemoteControl2.js +0 -13
- package/dist/internal-icons/icons/duo/ReportFile.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ReportFile.js +0 -13
- package/dist/internal-icons/icons/duo/Reposition.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Reposition.js +0 -13
- package/dist/internal-icons/icons/duo/Rerouting.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Rerouting.js +0 -13
- package/dist/internal-icons/icons/duo/Robot2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Robot2.js +0 -13
- package/dist/internal-icons/icons/duo/Robot3.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Robot3.js +0 -13
- package/dist/internal-icons/icons/duo/Robot4.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Robot4.js +0 -13
- package/dist/internal-icons/icons/duo/RockOn.d.ts +0 -7
- package/dist/internal-icons/icons/duo/RockOn.js +0 -13
- package/dist/internal-icons/icons/duo/RopeStanchions.d.ts +0 -7
- package/dist/internal-icons/icons/duo/RopeStanchions.js +0 -13
- package/dist/internal-icons/icons/duo/Rotation3602.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Rotation3602.js +0 -13
- package/dist/internal-icons/icons/duo/SavedItems2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ScaleImg4k.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ScaleImg4k.js +0 -13
- package/dist/internal-icons/icons/duo/ScanImage.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ScanImage.js +0 -13
- package/dist/internal-icons/icons/duo/ScissorsSparkle.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ScissorsSparkle.js +0 -13
- package/dist/internal-icons/icons/duo/Seatbelt.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Seatbelt.js +0 -13
- package/dist/internal-icons/icons/duo/ShakaHand.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ShakaHand.js +0 -13
- package/dist/internal-icons/icons/duo/ShapeRectangle.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ShapeRectangle.js +0 -13
- package/dist/internal-icons/icons/duo/Shovel.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Shovel.js +0 -13
- package/dist/internal-icons/icons/duo/ShuffleSparkle.d.ts +0 -7
- package/dist/internal-icons/icons/duo/ShuffleSparkle.js +0 -13
- package/dist/internal-icons/icons/duo/SideProfileQuestion.d.ts +0 -7
- package/dist/internal-icons/icons/duo/SideProfileQuestion.js +0 -13
- package/dist/internal-icons/icons/duo/SideProfileSparkle.d.ts +0 -7
- package/dist/internal-icons/icons/duo/SideProfileSparkle.js +0 -13
- package/dist/internal-icons/icons/duo/SidebarEdit.d.ts +0 -7
- package/dist/internal-icons/icons/duo/SidebarEdit.js +0 -13
- package/dist/internal-icons/icons/duo/SlashCircle.d.ts +0 -7
- package/dist/internal-icons/icons/duo/SlashCircle.js +0 -13
- package/dist/internal-icons/icons/duo/Sliders4.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Sliders4.js +0 -13
- package/dist/internal-icons/icons/duo/Snail.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Snail.js +0 -13
- package/dist/internal-icons/icons/duo/Spiral.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Spiral.js +0 -13
- package/dist/internal-icons/icons/duo/SplitView.d.ts +0 -7
- package/dist/internal-icons/icons/duo/SplitView.js +0 -13
- package/dist/internal-icons/icons/duo/SquareDashedSearchSparkle.d.ts +0 -7
- package/dist/internal-icons/icons/duo/SquareDashedSearchSparkle.js +0 -13
- package/dist/internal-icons/icons/duo/SquareDashedText.d.ts +0 -7
- package/dist/internal-icons/icons/duo/SquareDashedText.js +0 -13
- package/dist/internal-icons/icons/duo/SquarePath.d.ts +0 -7
- package/dist/internal-icons/icons/duo/SquarePath.js +0 -13
- package/dist/internal-icons/icons/duo/Star2Slash.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Star2Slash.js +0 -13
- package/dist/internal-icons/icons/duo/StopSign.d.ts +0 -7
- package/dist/internal-icons/icons/duo/StopSign.js +0 -13
- package/dist/internal-icons/icons/duo/StopwatchBolt.d.ts +0 -7
- package/dist/internal-icons/icons/duo/StopwatchBolt.js +0 -13
- package/dist/internal-icons/icons/duo/SummitFlag.d.ts +0 -7
- package/dist/internal-icons/icons/duo/SummitFlag.js +0 -13
- package/dist/internal-icons/icons/duo/Sunrise2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Sunrise2.js +0 -13
- package/dist/internal-icons/icons/duo/Task.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Task.js +0 -13
- package/dist/internal-icons/icons/duo/Task2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Task2.js +0 -13
- package/dist/internal-icons/icons/duo/TaskDebug.d.ts +0 -7
- package/dist/internal-icons/icons/duo/TaskDebug.js +0 -13
- package/dist/internal-icons/icons/duo/TaskSearch.d.ts +0 -7
- package/dist/internal-icons/icons/duo/TaskSearch.js +0 -13
- package/dist/internal-icons/icons/duo/Teepee.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Teepee.js +0 -13
- package/dist/internal-icons/icons/duo/TextAdjust.d.ts +0 -7
- package/dist/internal-icons/icons/duo/TextAdjust.js +0 -13
- package/dist/internal-icons/icons/duo/TheatreMask.d.ts +0 -7
- package/dist/internal-icons/icons/duo/TheatreMask.js +0 -13
- package/dist/internal-icons/icons/duo/TheatreMask2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/TheatreMask2.js +0 -13
- package/dist/internal-icons/icons/duo/TimerProgress.d.ts +0 -7
- package/dist/internal-icons/icons/duo/TimerProgress.js +0 -13
- package/dist/internal-icons/icons/duo/TimerProgress2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/TimerProgress2.js +0 -13
- package/dist/internal-icons/icons/duo/TransactionSplit.d.ts +0 -7
- package/dist/internal-icons/icons/duo/TransactionSplit.js +0 -13
- package/dist/internal-icons/icons/duo/Undo2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Undo2.js +0 -13
- package/dist/internal-icons/icons/duo/Undo3.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Undo3.js +0 -13
- package/dist/internal-icons/icons/duo/UnicornHead.d.ts +0 -7
- package/dist/internal-icons/icons/duo/UnicornHead.js +0 -13
- package/dist/internal-icons/icons/duo/UserContact.d.ts +0 -7
- package/dist/internal-icons/icons/duo/UserContact.js +0 -13
- package/dist/internal-icons/icons/duo/UserVoice2.d.ts +0 -7
- package/dist/internal-icons/icons/duo/UserVoice2.js +0 -13
- package/dist/internal-icons/icons/duo/VipBadge.d.ts +0 -7
- package/dist/internal-icons/icons/duo/VipBadge.js +0 -13
- package/dist/internal-icons/icons/duo/VoiceCaption.d.ts +0 -7
- package/dist/internal-icons/icons/duo/VoiceCaption.js +0 -13
- package/dist/internal-icons/icons/duo/WalletCoins.d.ts +0 -7
- package/dist/internal-icons/icons/duo/WalletCoins.js +0 -13
- package/dist/internal-icons/icons/duo/Weight.d.ts +0 -7
- package/dist/internal-icons/icons/duo/Weight.js +0 -13
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "LinearProgress",
|
|
3
|
+
"summary": "Shows determinate or indeterminate progress for a task in a compact horizontal track.",
|
|
4
|
+
"whenToUse": [
|
|
5
|
+
"Use for task completion with a known percentage or bounded numeric value.",
|
|
6
|
+
"Use with `value={null}` when progress is active but the amount complete is unknown.",
|
|
7
|
+
"Use with a label when the progress bar needs a visible task name."
|
|
8
|
+
],
|
|
9
|
+
"whenNotToUse": [
|
|
10
|
+
"Use Spinner for a small standalone loading affordance without task context.",
|
|
11
|
+
"Use Skeleton when representing loading content layout.",
|
|
12
|
+
"Use Slider when the user needs to choose or adjust a value."
|
|
13
|
+
],
|
|
14
|
+
"accessibility": [
|
|
15
|
+
"Provide a visible `label` or an accessible name through Base UI progress props when the task is not otherwise clear.",
|
|
16
|
+
"Use determinate numeric `value` when actual progress is known.",
|
|
17
|
+
"Use `value={null}` only for truly indeterminate work."
|
|
18
|
+
],
|
|
19
|
+
"antiPatterns": [
|
|
20
|
+
"Do not use LinearProgress as an interactive value control.",
|
|
21
|
+
"Do not add fake percentages for work where progress is unknown.",
|
|
22
|
+
"Do not model invalid progress; Base UI Progress does not expose an invalid state.",
|
|
23
|
+
"Do not model disabled progress; Base UI Progress does not expose a disabled state.",
|
|
24
|
+
"Do not hide the task label when multiple progress indicators are visible."
|
|
25
|
+
],
|
|
26
|
+
"related": ["Slider", "Spinner", "Skeleton", "Text"]
|
|
27
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import './linear-progress.css';
|
|
3
|
+
import { extractIntrinsicViraProps } from "../../core/props/intrinsic-vira-props.js";
|
|
4
|
+
import { Stack } from "../stack/stack.js";
|
|
5
|
+
import { Text } from "../text/text.js";
|
|
6
|
+
import { FieldLabel } from "../basic-input/field-label.js";
|
|
7
|
+
import linear_progress_module_default from "./linear-progress.module.js";
|
|
8
|
+
import { clsx } from "clsx";
|
|
9
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
import { Progress } from "@base-ui/react/progress";
|
|
11
|
+
//#region src/components/linear-progress/linear-progress.tsx
|
|
12
|
+
var LinearProgress = ({ className, description, label, showValue = false, value, ref, ...progressRootProps }) => {
|
|
13
|
+
const { componentProps, intrinsicAttributes } = extractIntrinsicViraProps(progressRootProps);
|
|
14
|
+
return /* @__PURE__ */ jsxs(Progress.Root, {
|
|
15
|
+
...componentProps,
|
|
16
|
+
...intrinsicAttributes,
|
|
17
|
+
ref,
|
|
18
|
+
className: clsx(linear_progress_module_default.LinearProgress, className),
|
|
19
|
+
value,
|
|
20
|
+
render: /* @__PURE__ */ jsx(Stack, {
|
|
21
|
+
direction: "column",
|
|
22
|
+
fillChildren: false,
|
|
23
|
+
rowGap: "small",
|
|
24
|
+
columnGap: "x-small"
|
|
25
|
+
}),
|
|
26
|
+
children: [
|
|
27
|
+
(label || showValue) && /* @__PURE__ */ jsxs(Stack, {
|
|
28
|
+
direction: "row",
|
|
29
|
+
fillChildren: false,
|
|
30
|
+
columnGap: "small",
|
|
31
|
+
vAlign: "center",
|
|
32
|
+
hAlign: "space-between",
|
|
33
|
+
children: [label && /* @__PURE__ */ jsx(Progress.Label, {
|
|
34
|
+
render: /* @__PURE__ */ jsx(FieldLabel, {}),
|
|
35
|
+
children: label
|
|
36
|
+
}), showValue && /* @__PURE__ */ jsx(Text, {
|
|
37
|
+
size: "small",
|
|
38
|
+
tone: "muted",
|
|
39
|
+
family: "mono",
|
|
40
|
+
whiteSpace: "nowrap",
|
|
41
|
+
selection: false,
|
|
42
|
+
align: "end",
|
|
43
|
+
shrink: false,
|
|
44
|
+
render: /* @__PURE__ */ jsx(Progress.Value, { render: /* @__PURE__ */ jsx("output", {}) })
|
|
45
|
+
})]
|
|
46
|
+
}),
|
|
47
|
+
/* @__PURE__ */ jsx(Progress.Track, {
|
|
48
|
+
className: linear_progress_module_default.Track,
|
|
49
|
+
children: /* @__PURE__ */ jsx(Progress.Indicator, { className: linear_progress_module_default.Indicator })
|
|
50
|
+
}),
|
|
51
|
+
description && /* @__PURE__ */ jsx(Text, {
|
|
52
|
+
className: linear_progress_module_default.Description,
|
|
53
|
+
size: "small",
|
|
54
|
+
tone: "muted",
|
|
55
|
+
children: description
|
|
56
|
+
})
|
|
57
|
+
]
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
//#endregion
|
|
61
|
+
export { LinearProgress };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
var linear_progress_module_default = {
|
|
2
|
+
LinearProgress: "linear-progress-module_LinearProgress_-KN0j",
|
|
3
|
+
"linear-progress-indeterminate": "linear-progress-module_linear-progress-indeterminate_g0cSO",
|
|
4
|
+
Track: "linear-progress-module_Track_qUz8P",
|
|
5
|
+
Indicator: "linear-progress-module_Indicator_maaZF"
|
|
6
|
+
};
|
|
7
|
+
//#endregion
|
|
8
|
+
export { linear_progress_module_default as default };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { useRender } from '@base-ui/react/use-render';
|
|
2
|
+
import { IntrinsicViraProps } from '../../core/props/intrinsic-vira-props';
|
|
3
|
+
import type * as React from 'react';
|
|
4
|
+
/**
|
|
5
|
+
* Public Masonry.Item props.
|
|
6
|
+
*
|
|
7
|
+
* Includes standard `div` attributes such as `id`, `role`, `title`, data attributes, and event handlers,
|
|
8
|
+
* plus Base UI `render` support for replacing the default item root.
|
|
9
|
+
*
|
|
10
|
+
* @default Native div pass-through props keep React defaults.
|
|
11
|
+
*/
|
|
12
|
+
export type MasonryItemProps = React.ComponentPropsWithRef<'div'> & IntrinsicViraProps & {
|
|
13
|
+
/**
|
|
14
|
+
* Replaces the default `div` root using Base UI render semantics.
|
|
15
|
+
*
|
|
16
|
+
* @default The item renders a `div` root.
|
|
17
|
+
*/
|
|
18
|
+
render?: useRender.RenderProp;
|
|
19
|
+
/**
|
|
20
|
+
* Makes the item span across all columns.
|
|
21
|
+
*
|
|
22
|
+
* @default false
|
|
23
|
+
*/
|
|
24
|
+
spanAll?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Ref forwarded to the rendered item root element.
|
|
27
|
+
*
|
|
28
|
+
* @default No ref is attached.
|
|
29
|
+
*/
|
|
30
|
+
ref?: React.Ref<HTMLElement>;
|
|
31
|
+
};
|
|
32
|
+
export declare const MasonryItem: React.FC<MasonryItemProps>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { extractIntrinsicViraProps } from "../../core/props/intrinsic-vira-props.js";
|
|
3
|
+
import masonry_module_default from "./masonry.module.js";
|
|
4
|
+
import { clsx } from "clsx";
|
|
5
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
6
|
+
//#region src/components/masonry/masonry-item.tsx
|
|
7
|
+
var MasonryItem = ({ className, ref, render, spanAll = false, ...otherProps }) => {
|
|
8
|
+
const { componentProps, intrinsicAttributes } = extractIntrinsicViraProps(otherProps);
|
|
9
|
+
return useRender({
|
|
10
|
+
defaultTagName: "div",
|
|
11
|
+
render,
|
|
12
|
+
ref,
|
|
13
|
+
props: {
|
|
14
|
+
...componentProps,
|
|
15
|
+
...intrinsicAttributes,
|
|
16
|
+
"data-masonry-item-span-all": spanAll ? "true" : "false",
|
|
17
|
+
className: clsx(masonry_module_default.Item, className)
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
//#endregion
|
|
22
|
+
export { MasonryItem };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.masonry-module_Masonry_l7c8U{--masonry-gap:var(--space-large);--masonry-column-fill:balance;--masonry-column-rule-color:var(--global-contrast);display:block;column-gap:var(--masonry-gap);column-fill:var(--masonry-column-fill);column-rule-color:var(--masonry-column-rule-color);columns:var(--masonry-column-width,auto) var(--masonry-column-count,auto);max-inline-size:100%}.masonry-module_Item_ywXwo{display:block;break-inside:avoid;margin:0;padding-block-end:var(--masonry-gap);&[data-masonry-item-span-all=true]{column-span:all}}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { useRender } from '@base-ui/react/use-render';
|
|
2
|
+
import { ThemeTypes } from '@viraui/foundation/vira/types';
|
|
3
|
+
import { IntrinsicViraProps } from '../../core/props/intrinsic-vira-props';
|
|
4
|
+
import { MasonryItemProps } from './masonry-item';
|
|
5
|
+
import type * as React from 'react';
|
|
6
|
+
type MasonryColumnRuleStyle = 'none' | 'hidden' | 'dotted' | 'dashed' | 'solid' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset';
|
|
7
|
+
/**
|
|
8
|
+
* Public Masonry props.
|
|
9
|
+
*
|
|
10
|
+
* Includes standard `div` attributes such as `id`, `role`, `title`, data attributes, and event handlers,
|
|
11
|
+
* plus Vira-owned CSS multi-column layout controls.
|
|
12
|
+
*
|
|
13
|
+
* @default Native div pass-through props keep React defaults.
|
|
14
|
+
*/
|
|
15
|
+
export type MasonryProps = React.ComponentPropsWithRef<'div'> & IntrinsicViraProps & {
|
|
16
|
+
/**
|
|
17
|
+
* Replaces the default `div` root using Base UI render semantics.
|
|
18
|
+
*
|
|
19
|
+
* @default The masonry renders a `div` root.
|
|
20
|
+
*/
|
|
21
|
+
render?: useRender.RenderProp;
|
|
22
|
+
/**
|
|
23
|
+
* Sets the gap between columns and the block-end spacing on each `Masonry.Item`.
|
|
24
|
+
*
|
|
25
|
+
* @default 'large'
|
|
26
|
+
*/
|
|
27
|
+
gap?: ThemeTypes['space'];
|
|
28
|
+
/**
|
|
29
|
+
* Sets how the browser balances content across columns.
|
|
30
|
+
*
|
|
31
|
+
* @default 'balance'
|
|
32
|
+
*/
|
|
33
|
+
columnFill?: 'balance' | 'auto';
|
|
34
|
+
/**
|
|
35
|
+
* Sets the CSS `column-width` value used for width-based multi-column layout.
|
|
36
|
+
*
|
|
37
|
+
* When provided, it overrides `columnCount`.
|
|
38
|
+
*
|
|
39
|
+
* @default No width override.
|
|
40
|
+
*/
|
|
41
|
+
columnWidth?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Sets the CSS `column-count` value used for count-based multi-column layout.
|
|
44
|
+
*
|
|
45
|
+
* Ignored when `columnWidth` is provided.
|
|
46
|
+
*
|
|
47
|
+
* @default 4
|
|
48
|
+
*/
|
|
49
|
+
columnCount?: number;
|
|
50
|
+
/**
|
|
51
|
+
* Sets the CSS `column-rule-width` value for the separator between columns.
|
|
52
|
+
*
|
|
53
|
+
* @default No rule width override.
|
|
54
|
+
*/
|
|
55
|
+
columnRuleWidth?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Sets the CSS `column-rule-style` value for the separator between columns.
|
|
58
|
+
*
|
|
59
|
+
* @default No rule style override.
|
|
60
|
+
*/
|
|
61
|
+
columnRuleStyle?: MasonryColumnRuleStyle;
|
|
62
|
+
};
|
|
63
|
+
export type { MasonryItemProps } from './masonry-item';
|
|
64
|
+
type MasonryComponent = React.FC<MasonryProps> & {
|
|
65
|
+
Item: React.FC<MasonryItemProps>;
|
|
66
|
+
};
|
|
67
|
+
export declare const Masonry: MasonryComponent;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Masonry",
|
|
3
|
+
"summary": "Multi-column layout primitive for read-only mixed-height content walls.",
|
|
4
|
+
"whenToUse": [
|
|
5
|
+
"Card walls, gallery-like collections, and editorial layouts with uneven item heights",
|
|
6
|
+
"Presentational grids where visual packing matters more than row alignment",
|
|
7
|
+
"Read-only collections composed from Surface, Stack, Text, and similar content primitives"
|
|
8
|
+
],
|
|
9
|
+
"whenNotToUse": [
|
|
10
|
+
"Interactive collections where keyboard tab order must match visual scan order",
|
|
11
|
+
"Layouts that need strict row alignment or item-to-item placement control",
|
|
12
|
+
"Cases where Stack or another linear layout already preserves the intended reading sequence"
|
|
13
|
+
],
|
|
14
|
+
"accessibility": [
|
|
15
|
+
"Masonry is presentational and keeps DOM order, so tab order follows source order rather than the visual column flow",
|
|
16
|
+
"Avoid interactive descendants when the visual arrangement could mislead keyboard users",
|
|
17
|
+
"Choose semantic item roots with Masonry.Item render when list or article semantics matter"
|
|
18
|
+
],
|
|
19
|
+
"antiPatterns": [
|
|
20
|
+
"Treating CSS columns as a true interactive grid with predictable left-to-right keyboard traversal",
|
|
21
|
+
"Using arbitrary child margins instead of the component gap contract for item spacing"
|
|
22
|
+
],
|
|
23
|
+
"related": ["Stack", "Surface", "Text"]
|
|
24
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import './masonry.css';
|
|
3
|
+
import { extractIntrinsicViraProps } from "../../core/props/intrinsic-vira-props.js";
|
|
4
|
+
import { resolveThemeValue } from "../../core/theme/resolve-theme-value.js";
|
|
5
|
+
import masonry_module_default from "./masonry.module.js";
|
|
6
|
+
import { MasonryItem } from "./masonry-item.js";
|
|
7
|
+
import { clsx } from "clsx";
|
|
8
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
9
|
+
//#region src/components/masonry/masonry.tsx
|
|
10
|
+
var MasonryRoot = ({ children, className, columnCount = 4, columnFill = "balance", columnRuleStyle, columnRuleWidth, columnWidth, gap = "large", ref, render, style, ...otherProps }) => {
|
|
11
|
+
const { componentProps, intrinsicAttributes } = extractIntrinsicViraProps(otherProps);
|
|
12
|
+
const usesColumnWidth = columnWidth !== void 0;
|
|
13
|
+
const dynamicStyle = {
|
|
14
|
+
"--masonry-gap": resolveThemeValue(gap, "space", "var(--space-large)"),
|
|
15
|
+
"--masonry-column-fill": columnFill,
|
|
16
|
+
...usesColumnWidth ? { "--masonry-column-width": columnWidth } : { "--masonry-column-count": `${columnCount}` },
|
|
17
|
+
...columnRuleWidth ? { columnRuleWidth } : {},
|
|
18
|
+
...columnRuleStyle ? { columnRuleStyle } : {},
|
|
19
|
+
...style
|
|
20
|
+
};
|
|
21
|
+
return useRender({
|
|
22
|
+
defaultTagName: "div",
|
|
23
|
+
render,
|
|
24
|
+
ref,
|
|
25
|
+
props: {
|
|
26
|
+
...componentProps,
|
|
27
|
+
...intrinsicAttributes,
|
|
28
|
+
"data-masonry-column-fill": columnFill,
|
|
29
|
+
"data-masonry-layout-mode": usesColumnWidth ? "width" : "count",
|
|
30
|
+
className: clsx(masonry_module_default.Masonry, className),
|
|
31
|
+
style: dynamicStyle,
|
|
32
|
+
children
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
var Masonry = Object.assign(MasonryRoot, { Item: MasonryItem });
|
|
37
|
+
//#endregion
|
|
38
|
+
export { Masonry };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { FieldRoot, RadioGroup as RadioGroupPrimitive } from '@base-ui/react';
|
|
2
|
+
import { IntrinsicViraProps } from '../../core/props/intrinsic-vira-props';
|
|
3
|
+
import type * as React from 'react';
|
|
4
|
+
/**
|
|
5
|
+
* Public RadioGroup props.
|
|
6
|
+
*
|
|
7
|
+
* Thin wrapper around Base UI `RadioGroup` with group-level Field validation.
|
|
8
|
+
* Layout and spacing between options are owned by the consumer.
|
|
9
|
+
*
|
|
10
|
+
* @default Base UI pass-through props keep upstream defaults.
|
|
11
|
+
*/
|
|
12
|
+
export type RadioGroupProps = RadioGroupPrimitive.Props & Omit<FieldRoot.Props, 'ref'> & {
|
|
13
|
+
/**
|
|
14
|
+
* Adds `data-grow="false"` to the field root when false.
|
|
15
|
+
*
|
|
16
|
+
* @default The field root does not render a grow attribute.
|
|
17
|
+
*/
|
|
18
|
+
grow?: IntrinsicViraProps['grow'];
|
|
19
|
+
/**
|
|
20
|
+
* Adds `data-shrink="false"` to the field root when false.
|
|
21
|
+
*
|
|
22
|
+
* @default The field root does not render a shrink attribute.
|
|
23
|
+
*/
|
|
24
|
+
shrink?: IntrinsicViraProps['shrink'];
|
|
25
|
+
/**
|
|
26
|
+
* Visible group label rendered with shared internal `FieldLabel`.
|
|
27
|
+
*
|
|
28
|
+
* @default No label is rendered.
|
|
29
|
+
*/
|
|
30
|
+
label?: React.ReactNode;
|
|
31
|
+
/**
|
|
32
|
+
* Group helper copy rendered below the options while valid.
|
|
33
|
+
*
|
|
34
|
+
* @default No description is rendered.
|
|
35
|
+
*/
|
|
36
|
+
description?: React.ReactNode;
|
|
37
|
+
/**
|
|
38
|
+
* Group error copy rendered below the options when invalid.
|
|
39
|
+
*
|
|
40
|
+
* @default No static error copy is rendered.
|
|
41
|
+
*/
|
|
42
|
+
error?: React.ReactNode;
|
|
43
|
+
};
|
|
44
|
+
export declare const RadioGroup: React.FC<RadioGroupProps>;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { extractIntrinsicViraProps } from "../../core/props/intrinsic-vira-props.js";
|
|
3
|
+
import { Stack } from "../stack/stack.js";
|
|
4
|
+
import { FieldHelperCopy } from "../basic-input/field-helper-copy.js";
|
|
5
|
+
import { FieldLabel } from "../basic-input/field-label.js";
|
|
6
|
+
import radio_module_default from "./radio.module.js";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { Field, Fieldset, RadioGroup } from "@base-ui/react";
|
|
9
|
+
//#region src/components/radio/radio-group.tsx
|
|
10
|
+
var RadioGroup$1 = ({ children, className, description, error, invalid, label, name, disabled, dirty, touched, validate, validationDebounceTime, validationMode, ...radioGroupProps }) => {
|
|
11
|
+
const { componentProps, intrinsicAttributes } = extractIntrinsicViraProps(radioGroupProps);
|
|
12
|
+
return /* @__PURE__ */ jsx(Field.Root, {
|
|
13
|
+
...intrinsicAttributes,
|
|
14
|
+
className: radio_module_default.RadioGroup,
|
|
15
|
+
dirty,
|
|
16
|
+
disabled,
|
|
17
|
+
invalid,
|
|
18
|
+
name,
|
|
19
|
+
touched,
|
|
20
|
+
validate,
|
|
21
|
+
validationDebounceTime,
|
|
22
|
+
validationMode,
|
|
23
|
+
children: /* @__PURE__ */ jsxs(Stack, {
|
|
24
|
+
className: radio_module_default.RadioFieldset,
|
|
25
|
+
fillChildren: false,
|
|
26
|
+
render: /* @__PURE__ */ jsx(Fieldset.Root, { disabled }),
|
|
27
|
+
rowGap: "small",
|
|
28
|
+
children: [
|
|
29
|
+
label && /* @__PURE__ */ jsx(Fieldset.Legend, {
|
|
30
|
+
render: /* @__PURE__ */ jsx(FieldLabel, {}),
|
|
31
|
+
children: label
|
|
32
|
+
}),
|
|
33
|
+
(description || error) && /* @__PURE__ */ jsx(FieldHelperCopy, {
|
|
34
|
+
description,
|
|
35
|
+
error
|
|
36
|
+
}),
|
|
37
|
+
/* @__PURE__ */ jsx(RadioGroup, {
|
|
38
|
+
...componentProps,
|
|
39
|
+
className,
|
|
40
|
+
disabled,
|
|
41
|
+
render: /* @__PURE__ */ jsx(Stack, {
|
|
42
|
+
fillChildren: false,
|
|
43
|
+
vPadding: ["small", 0],
|
|
44
|
+
rowGap: "small"
|
|
45
|
+
}),
|
|
46
|
+
name,
|
|
47
|
+
children
|
|
48
|
+
})
|
|
49
|
+
]
|
|
50
|
+
})
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
//#endregion
|
|
54
|
+
export { RadioGroup$1 as RadioGroup };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.radio-module_RadioGroup_vnd3F{&:has([required]) [data-field-label]:after{content:" *";color:var(--highlight-red)}}.radio-module_RadioFieldset_g50K8{min-inline-size:0;margin:0;padding:0}.radio-module_RadioRoot_3uvvn{--radio-size:var(--space-medium);--radio-background:var(--global-contrast);--radio-border-color:transparent;--radio-indicator-color:contrast-color(var(--global-primary));--radio-disk-size:calc(var(--radio-size) / 2);position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;appearance:none;border:0;box-shadow:inset 0 0 0 1px var(--radio-border-color);inline-size:var(--radio-size);block-size:var(--radio-size);background:var(--radio-background);border-radius:100000px;corner-shape:unset;&[data-size=regular]{--radio-size:var(--space-large)}&[data-checked]:not([data-disabled]):not([data-invalid]){--radio-background:var(--global-primary);--radio-border-color:var(--global-primary);box-shadow:none;cursor:not-allowed}&[data-invalid]:not([data-disabled]),.radio-module_RadioGroup_vnd3F[data-invalid] &:not([data-disabled]){--radio-border-color:var(--highlight-red);--radio-indicator-color:var(--global-primary);box-shadow:inset 0 0 0 1px var(--highlight-red);outline-color:oklab(from var(--highlight-red) l a b/.5)}&[data-disabled],.radio-module_RadioGroup_vnd3F[data-disabled] &{--radio-background:var(--global-disabled-background);--radio-border-color:transparent;--radio-indicator-color:var(--global-disabled-foreground);box-shadow:none}}.radio-module_Indicator_Ecavw{display:inline-flex;align-items:center;justify-content:center;color:var(--radio-indicator-color)}.radio-module_Disk_pV-Q1{inline-size:var(--radio-disk-size);aspect-ratio:1/1;border-radius:100000px;corner-shape:unset;background:currentColor}.radio-module_RadioRoot_3uvvn:not([data-checked]) .radio-module_Disk_pV-Q1{display:none}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { RadioRoot } from '@base-ui/react/radio';
|
|
2
|
+
import { StackProps } from '..';
|
|
3
|
+
import type * as React from 'react';
|
|
4
|
+
/**
|
|
5
|
+
* Public Radio props.
|
|
6
|
+
*
|
|
7
|
+
* Self-contained option row for use inside `RadioGroup`. Group-level `name`,
|
|
8
|
+
* `invalid`, and `error` belong on `RadioGroup`, not on individual options.
|
|
9
|
+
*
|
|
10
|
+
* @default Base UI pass-through props keep upstream defaults.
|
|
11
|
+
*/
|
|
12
|
+
export type RadioProps = RadioRoot.Props & {
|
|
13
|
+
/**
|
|
14
|
+
* Visible label rendered with shared internal `FieldLabel`.
|
|
15
|
+
*
|
|
16
|
+
* @default No label is rendered.
|
|
17
|
+
*/
|
|
18
|
+
label?: React.ReactNode;
|
|
19
|
+
/**
|
|
20
|
+
* Helper copy rendered with `Field.Description` and `Text` for this option.
|
|
21
|
+
*
|
|
22
|
+
* @default No description is rendered.
|
|
23
|
+
*/
|
|
24
|
+
description?: React.ReactNode;
|
|
25
|
+
/**
|
|
26
|
+
* Controls the visual radio size.
|
|
27
|
+
*
|
|
28
|
+
* @default 'small'
|
|
29
|
+
*/
|
|
30
|
+
size?: 'regular' | 'small';
|
|
31
|
+
/**
|
|
32
|
+
* Sets block padding using one token for both sides or a `[start, end]` tuple.
|
|
33
|
+
*
|
|
34
|
+
* @default No block padding.
|
|
35
|
+
*/
|
|
36
|
+
vPadding?: StackProps['vPadding'];
|
|
37
|
+
/**
|
|
38
|
+
* Sets inline padding using one token for both sides or a `[start, end]` tuple.
|
|
39
|
+
*
|
|
40
|
+
* @default No inline padding.
|
|
41
|
+
*/
|
|
42
|
+
hPadding?: StackProps['hPadding'];
|
|
43
|
+
};
|
|
44
|
+
export declare const Radio: React.FC<RadioProps>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Radio",
|
|
3
|
+
"summary": "Mutually exclusive choice within a RadioGroup, with optional per-option label and helper text.",
|
|
4
|
+
"whenToUse": [
|
|
5
|
+
"Single selection from a small set of related options",
|
|
6
|
+
"Card-style or custom layouts where each option is wrapped in Surface or consumer markup",
|
|
7
|
+
"Form fields that require one answer from a named group"
|
|
8
|
+
],
|
|
9
|
+
"whenNotToUse": [
|
|
10
|
+
"Independent boolean toggles (use Checkbox or Switch)",
|
|
11
|
+
"Multi-select sets (use Checkbox)",
|
|
12
|
+
"Options rendered outside a RadioGroup wrapper"
|
|
13
|
+
],
|
|
14
|
+
"accessibility": [
|
|
15
|
+
"Wrap options in RadioGroup so the group exposes a shared name",
|
|
16
|
+
"Provide visible label or aria-label on each option so radios have accessible names",
|
|
17
|
+
"Surface group invalid state and error copy through RadioGroup, not individual Radio options"
|
|
18
|
+
],
|
|
19
|
+
"antiPatterns": [
|
|
20
|
+
"Rendering Radio outside RadioGroup",
|
|
21
|
+
"Putting invalid or error on a single Radio instead of RadioGroup",
|
|
22
|
+
"Expecting RadioGroup to add spacing or grid layout between options",
|
|
23
|
+
"Importing @viraui/react/radio/radio.css or other component CSS subpaths in consumer bootstrap"
|
|
24
|
+
],
|
|
25
|
+
"related": ["Checkbox", "Surface", "Stack"]
|
|
26
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import './radio.css';
|
|
3
|
+
import { Stack } from "../stack/stack.js";
|
|
4
|
+
import { FieldHelperCopy } from "../basic-input/field-helper-copy.js";
|
|
5
|
+
import { FieldLabel } from "../basic-input/field-label.js";
|
|
6
|
+
import radio_module_default from "./radio.module.js";
|
|
7
|
+
import { clsx } from "clsx";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { Field } from "@base-ui/react/field";
|
|
10
|
+
import { Radio } from "@base-ui/react/radio";
|
|
11
|
+
//#region src/components/radio/radio.tsx
|
|
12
|
+
var Radio$1 = ({ className, description, disabled, id, label, ref, size = "small", vPadding, hPadding, value, ...radioRootProps }) => {
|
|
13
|
+
const hasTextDescription = Boolean(description);
|
|
14
|
+
return /* @__PURE__ */ jsx(Field.Item, { children: /* @__PURE__ */ jsx(Field.Label, { children: /* @__PURE__ */ jsxs(Stack, {
|
|
15
|
+
direction: "row",
|
|
16
|
+
columnGap: size === "small" ? "small" : "medium",
|
|
17
|
+
fillChildren: false,
|
|
18
|
+
vAlign: hasTextDescription ? "start" : "center",
|
|
19
|
+
...hPadding !== void 0 ? { hPadding } : {},
|
|
20
|
+
...vPadding !== void 0 ? { vPadding } : {},
|
|
21
|
+
children: [/* @__PURE__ */ jsx(Radio.Root, {
|
|
22
|
+
...radioRootProps,
|
|
23
|
+
className: clsx(radio_module_default.RadioRoot, className),
|
|
24
|
+
"data-size": size,
|
|
25
|
+
disabled,
|
|
26
|
+
id,
|
|
27
|
+
ref,
|
|
28
|
+
value,
|
|
29
|
+
children: /* @__PURE__ */ jsx(Radio.Indicator, {
|
|
30
|
+
className: radio_module_default.Indicator,
|
|
31
|
+
children: /* @__PURE__ */ jsx("span", { className: radio_module_default.Disk })
|
|
32
|
+
})
|
|
33
|
+
}), label || description ? /* @__PURE__ */ jsxs(Stack, {
|
|
34
|
+
direction: "column",
|
|
35
|
+
fillChildren: false,
|
|
36
|
+
rowGap: size === "small" ? "2x-small" : "x-small",
|
|
37
|
+
children: [label && /* @__PURE__ */ jsx(FieldLabel, {
|
|
38
|
+
size: size === "small" ? "small" : "medium",
|
|
39
|
+
children: label
|
|
40
|
+
}), /* @__PURE__ */ jsx(FieldHelperCopy, { description })]
|
|
41
|
+
}) : null]
|
|
42
|
+
}) }) });
|
|
43
|
+
};
|
|
44
|
+
//#endregion
|
|
45
|
+
export { Radio$1 as Radio };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
var radio_module_default = {
|
|
2
|
+
RadioGroup: "radio-module_RadioGroup_vnd3F",
|
|
3
|
+
RadioFieldset: "radio-module_RadioFieldset_g50K8",
|
|
4
|
+
RadioRoot: "radio-module_RadioRoot_3uvvn",
|
|
5
|
+
Indicator: "radio-module_Indicator_Ecavw",
|
|
6
|
+
Disk: "radio-module_Disk_pV-Q1"
|
|
7
|
+
};
|
|
8
|
+
//#endregion
|
|
9
|
+
export { radio_module_default as default };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { Text } from "../text/text.js";
|
|
3
2
|
import { Stack } from "../stack/stack.js";
|
|
3
|
+
import { Text } from "../text/text.js";
|
|
4
4
|
import select_module_default from "./select.module.js";
|
|
5
5
|
import { SelectIndicatorSlot } from "./select-indicator-slot.js";
|
|
6
6
|
import { clsx } from "clsx";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { Text } from "../text/text.js";
|
|
3
2
|
import { Stack } from "../stack/stack.js";
|
|
3
|
+
import { Text } from "../text/text.js";
|
|
4
4
|
import select_module_default from "./select.module.js";
|
|
5
5
|
import { SelectIndicatorSlot } from "./select-indicator-slot.js";
|
|
6
6
|
import { Icon } from "../icon/icon.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.select-module_Select_eXv4Y{--input-height:var(--space-x-large);--control-group-background:var(--base-1);--control-group-color:var(--global-foreground);--control-group-border-color:var(--global-contrast);--control-group-border-radius:var(--radius-small);--select-trigger-padding-inline-start:var(--space-small);--select-trigger-padding-inline-end:var(--space-x-small);--field-label-padding-inline:calc((var(--control-group-border-radius) + 0px) / 2);&:has([required]) [data-field-label]:after{content:" *";color:var(--highlight-red)}&[data-invalid]>.select-module_Trigger_-wBsg:not(:disabled):not([data-disabled]){--control-group-border-color:var(--highlight-red);box-shadow:none;outline-color:oklab(from var(--highlight-red) l a b/.5)}}.select-module_Trigger_-wBsg{box-sizing:border-box;inline-size:100%;min-inline-size:0;block-size:var(--input-height);padding-inline:calc(var(--select-trigger-padding-inline-start) + ((var(--control-group-border-radius) + 0px) / 4)) var(--select-trigger-padding-inline-end);border:1px solid var(--control-group-border-color);border-radius:var(--control-group-border-radius);background:var(--control-group-background);color:var(--control-group-color);font:inherit;text-align:start;cursor:pointer;&:focus-visible{outline:2px solid var(--global-foreground);outline-offset:2px}&[data-popup-open]{outline:none}&:disabled,&[data-disabled]{--control-group-background:var(--global-disabled-background);--control-group-border-color:transparent;--control-group-color:var(--global-disabled-foreground);box-shadow:none;cursor:not-allowed}}.select-module_Value_uWHPX{--text-fluid-factor:0;--text-font-size:var(--font-scale-body-small);overflow:hidden;text-overflow:ellipsis;&[data-placeholder]{color:var(--global-disabled-foreground)}}.select-module_Icon_EOwki{font-size:var(--font-scale-body-small);pointer-events:none}.select-module_Description_OmwmV{padding-inline:calc((var(--control-group-border-radius) + 0px) / 2)}.select-module_SelectPopup_UzGXL{--select-list-border-radius:var(--radius-medium);--select-list-padding:var(--space-x-small);box-sizing:border-box;min-inline-size:var(--anchor-width);overflow:visible;color:var(--global-foreground);outline:none;position:relative}.select-module_ScrollArrow_kHlEi{position:absolute;inset-inline:0;z-index:1;inline-size:100%;block-size:var(--space-large);cursor:default;background:var(--base-1)}.select-module_ScrollButton_sHBOa{pointer-events:none}.select-module_ScrollArrowUp_DGXS-{inset-block-start:0;border-
|
|
1
|
+
.select-module_Select_eXv4Y{--input-height:var(--space-x-large);--control-group-background:var(--base-1);--control-group-color:var(--global-foreground);--control-group-border-color:var(--global-contrast);--control-group-border-radius:var(--radius-small);--select-trigger-padding-inline-start:var(--space-small);--select-trigger-padding-inline-end:var(--space-x-small);--field-label-padding-inline:calc((var(--control-group-border-radius) + 0px) / 2);z-index:0;&:has([required]) [data-field-label]:after{content:" *";color:var(--highlight-red)}&[data-invalid]>.select-module_Trigger_-wBsg:not(:disabled):not([data-disabled]){--control-group-border-color:var(--highlight-red);box-shadow:none;outline-color:oklab(from var(--highlight-red) l a b/.5)}}.select-module_Trigger_-wBsg{box-sizing:border-box;inline-size:100%;min-inline-size:0;block-size:var(--input-height);padding-inline:calc(var(--select-trigger-padding-inline-start) + ((var(--control-group-border-radius) + 0px) / 4)) var(--select-trigger-padding-inline-end);border:1px solid var(--control-group-border-color);border-radius:var(--control-group-border-radius);background:var(--control-group-background);color:var(--control-group-color);font:inherit;text-align:start;cursor:pointer;&:focus-visible{outline:2px solid var(--global-foreground);outline-offset:2px}&[data-popup-open]{outline:none}&:disabled,&[data-disabled]{--control-group-background:var(--global-disabled-background);--control-group-border-color:transparent;--control-group-color:var(--global-disabled-foreground);box-shadow:none;cursor:not-allowed}}.select-module_Value_uWHPX{--text-fluid-factor:0;--text-font-size:var(--font-scale-body-small);flex:1 1 auto;min-inline-size:0;overflow:hidden;display:block;text-overflow:ellipsis;&[data-placeholder]{color:var(--global-disabled-foreground)}}.select-module_Icon_EOwki{font-size:var(--font-scale-body-small);pointer-events:none}.select-module_Description_OmwmV{padding-inline:calc((var(--control-group-border-radius) + 0px) / 2)}.select-module_SelectPopup_UzGXL{--select-list-border-radius:var(--radius-medium);--select-list-padding:var(--space-x-small);box-sizing:border-box;min-inline-size:var(--anchor-width);overflow:visible;color:var(--global-foreground);outline:none;position:relative}.select-module_ScrollArrow_kHlEi{--scroll-arrow-background:var(--is-vibrancy-active) oklab(from var(--base-1) l a b/80%);position:absolute;inset-inline:0;z-index:1;inline-size:100%;block-size:var(--space-large);cursor:default;background:var(--scroll-arrow-background,var(--base-1));backdrop-filter:var(--vibrancy-filter,none);border:1px solid var(--global-contrast)}.select-module_ScrollButton_sHBOa{pointer-events:none}.select-module_ScrollArrowUp_DGXS-{inset-block-start:0;border-radius:var(--select-list-border-radius) var(--select-list-border-radius) 0 0}.select-module_ScrollArrowDown_vhJy0{inset-block-end:0;border-radius:0 0 var(--select-list-border-radius) var(--select-list-border-radius)}.select-module_List_jdUWx{box-sizing:border-box;inline-size:100%;max-block-size:var(--available-height);overflow-y:auto;scroll-padding-block:var(--select-list-padding);list-style:none;overscroll-behavior:contain;&:focus,&:focus-visible{outline:none}}.select-module_Option_KgYqz{border-radius:calc((var(--select-list-border-radius) + 0px) - var(--select-list-padding));cursor:pointer;&:focus{outline:none}&:focus-visible{outline:2px solid var(--global-foreground);outline-offset:0}&:not([data-disabled]):hover,&:not([data-disabled])[data-highlighted]{--option-hover-background:var(--is-vibrancy-active) oklab(from var(--global-contrast) l a b/14%);background:var(--option-hover-background,var(--global-contrast))}&[data-disabled]{color:var(--global-disabled-foreground);cursor:not-allowed}}.select-module_Indicator_YNUuz{inline-size:var(--space-medium);color:var(--global-primary);opacity:0;transition:opacity var(--duration-fast) var(--easing-standard),transform var(--duration-fast) var(--easing-standard);&[data-selected]{opacity:1}}.select-module_Group_xzkuA+.select-module_Group_xzkuA{margin-block-start:var(--space-medium)}.select-module_Separator_Q-ri9{block-size:1px;margin-block:var(--space-small);margin-inline:var(--space-small);background:var(--base-3)}
|
|
@@ -12,6 +12,10 @@
|
|
|
12
12
|
"Wire description and error copy through the field pattern so assistive tech gets helper text",
|
|
13
13
|
"Keep list options keyboard reachable; do not trap focus outside the popup pattern"
|
|
14
14
|
],
|
|
15
|
-
"antiPatterns": [
|
|
15
|
+
"antiPatterns": [
|
|
16
|
+
"Expecting multi-select or combobox behavior",
|
|
17
|
+
"Leaving the trigger without label or aria-label",
|
|
18
|
+
"Never set the size prop (if present) of Buttons, IconButtons or other interactive elements passed as addon other than small"
|
|
19
|
+
],
|
|
16
20
|
"related": ["Textfield", "Stack", "Surface", "Icon"]
|
|
17
21
|
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import './select.css';
|
|
2
1
|
"use client";
|
|
2
|
+
import './select.css';
|
|
3
3
|
import { extractIntrinsicViraProps } from "../../core/props/intrinsic-vira-props.js";
|
|
4
|
+
import { Stack } from "../stack/stack.js";
|
|
4
5
|
import { Elevator } from "../elevator/elevator.js";
|
|
5
6
|
import { IconButton } from "../icon-button/icon-button.js";
|
|
6
7
|
import { Text } from "../text/text.js";
|
|
7
8
|
import { FieldHelperCopy } from "../basic-input/field-helper-copy.js";
|
|
8
9
|
import { FieldLabel } from "../basic-input/field-label.js";
|
|
9
|
-
import { Stack } from "../stack/stack.js";
|
|
10
10
|
import select_module_default from "./select.module.js";
|
|
11
11
|
import { SelectGroup } from "./select-group.js";
|
|
12
|
-
import { Icon } from "../icon/icon.js";
|
|
13
12
|
import { SelectOption } from "./select-option.js";
|
|
14
13
|
import { SelectSeparator } from "./select-separator.js";
|
|
14
|
+
import { Icon } from "../icon/icon.js";
|
|
15
15
|
import { Surface } from "../surface/surface.js";
|
|
16
16
|
import { clsx } from "clsx";
|
|
17
17
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -93,6 +93,7 @@ function SelectRootComponent({ children, className, description, dirty, disabled
|
|
|
93
93
|
children: [
|
|
94
94
|
/* @__PURE__ */ jsx(Select.ScrollUpArrow, {
|
|
95
95
|
className: clsx(select_module_default.ScrollArrow, select_module_default.ScrollArrowUp),
|
|
96
|
+
"data-vibrant": "",
|
|
96
97
|
render: /* @__PURE__ */ jsx(Stack, {
|
|
97
98
|
fillChildren: false,
|
|
98
99
|
hAlign: "center",
|
|
@@ -117,13 +118,15 @@ function SelectRootComponent({ children, className, description, dirty, disabled
|
|
|
117
118
|
color: 1,
|
|
118
119
|
hPadding: "x-small",
|
|
119
120
|
radius: "medium",
|
|
120
|
-
vPadding: "x-small"
|
|
121
|
+
vPadding: "x-small",
|
|
122
|
+
vibrant: true
|
|
121
123
|
}),
|
|
122
124
|
children
|
|
123
125
|
})
|
|
124
126
|
}),
|
|
125
127
|
/* @__PURE__ */ jsx(Select.ScrollDownArrow, {
|
|
126
128
|
className: clsx(select_module_default.ScrollArrow, select_module_default.ScrollArrowDown),
|
|
129
|
+
"data-vibrant": "",
|
|
127
130
|
render: /* @__PURE__ */ jsx(Stack, {
|
|
128
131
|
fillChildren: false,
|
|
129
132
|
hAlign: "center",
|