@viraui/react 0.0.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/avatar/avatar.guide.json +20 -0
- package/dist/button/button.guide.json +20 -0
- package/dist/catalog.json +110 -0
- package/dist/clamp-text/clamp-text.guide.json +23 -0
- package/dist/components/avatar/avatar.css +55 -0
- package/dist/components/avatar/avatar.d.ts +50 -0
- package/dist/components/avatar/avatar.js +17 -0
- package/dist/components/avatar/index.d.ts +2 -0
- package/dist/components/avatar/index.js +1 -0
- package/dist/components/basic-input/basic-input.css +45 -0
- package/dist/components/basic-input/basic-input.d.ts +14 -0
- package/dist/components/basic-input/basic-input.js +17 -0
- package/dist/components/basic-input/field-helper-copy.d.ts +13 -0
- package/dist/components/basic-input/field-helper-copy.js +25 -0
- package/dist/components/basic-input/index.d.ts +2 -0
- package/dist/components/basic-input/index.js +1 -0
- package/dist/components/basic-input/input-control-group.d.ts +26 -0
- package/dist/components/basic-input/input-control-group.js +8 -0
- package/dist/components/button/button.css +156 -0
- package/dist/components/button/button.d.ts +46 -0
- package/dist/components/button/button.js +17 -0
- package/dist/components/button/index.d.ts +2 -0
- package/dist/components/button/index.js +1 -0
- package/dist/components/clamp-text/clamp-text.css +12 -0
- package/dist/components/clamp-text/clamp-text.d.ts +39 -0
- package/dist/components/clamp-text/clamp-text.js +24 -0
- package/dist/components/clamp-text/index.d.ts +2 -0
- package/dist/components/clamp-text/index.js +1 -0
- package/dist/components/elevator/elevator.d.ts +52 -0
- package/dist/components/elevator/elevator.js +29 -0
- package/dist/components/elevator/index.d.ts +2 -0
- package/dist/components/elevator/index.js +1 -0
- package/dist/components/icon/icon.css +7 -0
- package/dist/components/icon/icon.d.ts +9 -0
- package/dist/components/icon/icon.js +11 -0
- package/dist/components/icon/index.d.ts +2 -0
- package/dist/components/icon/index.js +1 -0
- package/dist/components/icon-button/icon-button.d.ts +31 -0
- package/dist/components/icon-button/icon-button.js +3 -0
- package/dist/components/icon-button/index.d.ts +2 -0
- package/dist/components/icon-button/index.js +1 -0
- package/dist/components/index.d.ts +17 -0
- package/dist/components/index.js +17 -0
- package/dist/components/select/index.d.ts +2 -0
- package/dist/components/select/index.js +1 -0
- package/dist/components/select/select-group.d.ts +12 -0
- package/dist/components/select/select-group.js +10 -0
- package/dist/components/select/select-indicator-slot.d.ts +12 -0
- package/dist/components/select/select-indicator-slot.js +11 -0
- package/dist/components/select/select-option.d.ts +16 -0
- package/dist/components/select/select-option.js +11 -0
- package/dist/components/select/select-separator.d.ts +9 -0
- package/dist/components/select/select-separator.js +7 -0
- package/dist/components/select/select.css +194 -0
- package/dist/components/select/select.d.ts +66 -0
- package/dist/components/select/select.js +35 -0
- package/dist/components/skeleton/index.d.ts +2 -0
- package/dist/components/skeleton/index.js +1 -0
- package/dist/components/skeleton/skeleton.css +36 -0
- package/dist/components/skeleton/skeleton.d.ts +51 -0
- package/dist/components/skeleton/skeleton.js +17 -0
- package/dist/components/slider/index.d.ts +2 -0
- package/dist/components/slider/index.js +1 -0
- package/dist/components/slider/slider-control.css +71 -0
- package/dist/components/slider/slider-control.d.ts +8 -0
- package/dist/components/slider/slider-control.js +22 -0
- package/dist/components/slider/slider-utils.d.ts +2 -0
- package/dist/components/slider/slider-utils.js +4 -0
- package/dist/components/slider/slider.css +64 -0
- package/dist/components/slider/slider.d.ts +70 -0
- package/dist/components/slider/slider.js +19 -0
- package/dist/components/spinner/index.d.ts +2 -0
- package/dist/components/spinner/index.js +1 -0
- package/dist/components/spinner/spinner.css +45 -0
- package/dist/components/spinner/spinner.d.ts +17 -0
- package/dist/components/spinner/spinner.js +8 -0
- package/dist/components/stack/index.d.ts +2 -0
- package/dist/components/stack/index.js +1 -0
- package/dist/components/stack/stack.css +57 -0
- package/dist/components/stack/stack.d.ts +104 -0
- package/dist/components/stack/stack.js +38 -0
- package/dist/components/surface/index.d.ts +2 -0
- package/dist/components/surface/index.js +1 -0
- package/dist/components/surface/surface.css +61 -0
- package/dist/components/surface/surface.d.ts +69 -0
- package/dist/components/surface/surface.js +43 -0
- package/dist/components/switch/index.d.ts +2 -0
- package/dist/components/switch/index.js +1 -0
- package/dist/components/switch/switch.css +73 -0
- package/dist/components/switch/switch.d.ts +54 -0
- package/dist/components/switch/switch.js +15 -0
- package/dist/components/text/index.d.ts +2 -0
- package/dist/components/text/index.js +1 -0
- package/dist/components/text/text.css +139 -0
- package/dist/components/text/text.d.ts +127 -0
- package/dist/components/text/text.js +43 -0
- package/dist/components/textarea/index.d.ts +2 -0
- package/dist/components/textarea/index.js +1 -0
- package/dist/components/textarea/textarea.css +45 -0
- package/dist/components/textarea/textarea.d.ts +56 -0
- package/dist/components/textarea/textarea.js +13 -0
- package/dist/components/textfield/index.d.ts +2 -0
- package/dist/components/textfield/index.js +1 -0
- package/dist/components/textfield/textfield.css +87 -0
- package/dist/components/textfield/textfield.d.ts +49 -0
- package/dist/components/textfield/textfield.js +14 -0
- package/dist/components/title/index.d.ts +2 -0
- package/dist/components/title/index.js +1 -0
- package/dist/components/title/title.css +126 -0
- package/dist/components/title/title.d.ts +117 -0
- package/dist/components/title/title.js +41 -0
- package/dist/core/elevation/elevation-types.d.ts +17 -0
- package/dist/core/elevation/elevation-types.js +4 -0
- package/dist/core/elevation/get-elevation-props.d.ts +12 -0
- package/dist/core/elevation/get-elevation-props.js +12 -0
- package/dist/core/props/intrinsic-vira-props.d.ts +23 -0
- package/dist/core/props/intrinsic-vira-props.js +10 -0
- package/dist/core/styles/resolve-axis-padding.d.ts +5 -0
- package/dist/core/styles/resolve-axis-padding.js +17 -0
- package/dist/core/theme/resolve-theme-value.d.ts +5 -0
- package/dist/core/theme/resolve-theme-value.js +7 -0
- package/dist/elevator/elevator.guide.json +23 -0
- package/dist/guides/consumption.json +44 -0
- package/dist/guides/theme-surface.json +61 -0
- package/dist/icon/icon.guide.json +23 -0
- package/dist/icon-button/icon-button.guide.json +20 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/internal-icons/icon-registry.d.ts +248 -0
- package/dist/internal-icons/icon-registry.js +713 -0
- package/dist/internal-icons/icons/duo/AddSection.d.ts +7 -0
- package/dist/internal-icons/icons/duo/AddSection.js +13 -0
- package/dist/internal-icons/icons/duo/AiDeveloper.d.ts +7 -0
- package/dist/internal-icons/icons/duo/AiDeveloper.js +13 -0
- package/dist/internal-icons/icons/duo/AiLoading.d.ts +7 -0
- package/dist/internal-icons/icons/duo/AiLoading.js +13 -0
- package/dist/internal-icons/icons/duo/Album3.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Album3.js +13 -0
- package/dist/internal-icons/icons/duo/ArchiveContent2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ArchiveContent2.js +13 -0
- package/dist/internal-icons/icons/duo/ArrowDown.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ArrowDown.js +13 -0
- package/dist/internal-icons/icons/duo/ArrowDownLeft.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ArrowDownLeft.js +13 -0
- package/dist/internal-icons/icons/duo/ArrowDownRight.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ArrowDownRight.js +13 -0
- package/dist/internal-icons/icons/duo/ArrowLeft.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ArrowLeft.js +13 -0
- package/dist/internal-icons/icons/duo/ArrowRight.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ArrowRight.js +13 -0
- package/dist/internal-icons/icons/duo/ArrowRotate.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ArrowRotate.js +13 -0
- package/dist/internal-icons/icons/duo/ArrowRotateAnticlockwiseCheck.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ArrowRotateAnticlockwiseCheck.js +13 -0
- package/dist/internal-icons/icons/duo/ArrowRotateAnticlockwiseSlash.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ArrowRotateAnticlockwiseSlash.js +13 -0
- package/dist/internal-icons/icons/duo/ArrowRotateAnticlockwiseXmark.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ArrowRotateAnticlockwiseXmark.js +13 -0
- package/dist/internal-icons/icons/duo/ArrowRotateClockwiseSlash.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ArrowRotateClockwiseSlash.js +13 -0
- package/dist/internal-icons/icons/duo/ArrowUp.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ArrowUp.js +13 -0
- package/dist/internal-icons/icons/duo/ArrowUpLeft.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ArrowUpLeft.js +13 -0
- package/dist/internal-icons/icons/duo/ArrowUpRight.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ArrowUpRight.js +13 -0
- package/dist/internal-icons/icons/duo/ArrowsFilter.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ArrowsFilter.js +13 -0
- package/dist/internal-icons/icons/duo/ArrowsToLineY2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ArrowsToLineY2.js +13 -0
- package/dist/internal-icons/icons/duo/Birdhouse.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Birdhouse.js +13 -0
- package/dist/internal-icons/icons/duo/BookmarkList.d.ts +7 -0
- package/dist/internal-icons/icons/duo/BookmarkList.js +13 -0
- package/dist/internal-icons/icons/duo/BookmarkedBook.d.ts +7 -0
- package/dist/internal-icons/icons/duo/BookmarkedBook.js +13 -0
- package/dist/internal-icons/icons/duo/BookmarkedBook2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/BookmarkedBook2.js +13 -0
- package/dist/internal-icons/icons/duo/Box3.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Box3.js +13 -0
- package/dist/internal-icons/icons/duo/BoxSparkle.d.ts +7 -0
- package/dist/internal-icons/icons/duo/BoxSparkle.js +13 -0
- package/dist/internal-icons/icons/duo/BoxSparkle2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/BoxSparkle2.js +13 -0
- package/dist/internal-icons/icons/duo/Brochure.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Brochure.js +13 -0
- package/dist/internal-icons/icons/duo/ButtonPlus.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ButtonPlus.js +13 -0
- package/dist/internal-icons/icons/duo/Calculator3.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Calculator3.js +13 -0
- package/dist/internal-icons/icons/duo/CaretDown.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CaretDown.js +13 -0
- package/dist/internal-icons/icons/duo/CaretLeft.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CaretLeft.js +13 -0
- package/dist/internal-icons/icons/duo/CaretRight.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CaretRight.js +13 -0
- package/dist/internal-icons/icons/duo/CaretUp.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CaretUp.js +13 -0
- package/dist/internal-icons/icons/duo/Chart3.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Chart3.js +13 -0
- package/dist/internal-icons/icons/duo/ChartBar.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ChartBar.js +13 -0
- package/dist/internal-icons/icons/duo/ChartCandlestick2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ChartCandlestick2.js +13 -0
- package/dist/internal-icons/icons/duo/ChatImage.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ChatImage.js +13 -0
- package/dist/internal-icons/icons/duo/ChatInfo.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ChatInfo.js +13 -0
- package/dist/internal-icons/icons/duo/ChatTask.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ChatTask.js +13 -0
- package/dist/internal-icons/icons/duo/Check.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Check.js +13 -0
- package/dist/internal-icons/icons/duo/CheckBoxArrow.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CheckBoxArrow.js +13 -0
- package/dist/internal-icons/icons/duo/ChevronDown.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ChevronDown.js +13 -0
- package/dist/internal-icons/icons/duo/ChevronExpandY.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ChevronExpandY.js +13 -0
- package/dist/internal-icons/icons/duo/ChevronLeft.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ChevronLeft.js +13 -0
- package/dist/internal-icons/icons/duo/ChevronLeftToLine.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ChevronLeftToLine.js +13 -0
- package/dist/internal-icons/icons/duo/ChevronRight.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ChevronRight.js +13 -0
- package/dist/internal-icons/icons/duo/ChevronRightToLine.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ChevronRightToLine.js +13 -0
- package/dist/internal-icons/icons/duo/ChevronUp.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ChevronUp.js +13 -0
- package/dist/internal-icons/icons/duo/Child.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Child.js +13 -0
- package/dist/internal-icons/icons/duo/CircleCoinIn.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CircleCoinIn.js +13 -0
- package/dist/internal-icons/icons/duo/CircleCoinOut.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CircleCoinOut.js +13 -0
- package/dist/internal-icons/icons/duo/CircleCoinPlus.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CircleCoinPlus.js +13 -0
- package/dist/internal-icons/icons/duo/CircleConversion.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CircleConversion.js +13 -0
- package/dist/internal-icons/icons/duo/CircleCross.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CircleCross.js +13 -0
- package/dist/internal-icons/icons/duo/CircleHalfArrowDown.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CircleHalfArrowDown.js +13 -0
- package/dist/internal-icons/icons/duo/CircleHalfArrowLeft.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CircleHalfArrowLeft.js +13 -0
- package/dist/internal-icons/icons/duo/CircleHalfArrowRight.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CircleHalfArrowRight.js +13 -0
- package/dist/internal-icons/icons/duo/CircleHalfArrowUp.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CircleHalfArrowUp.js +13 -0
- package/dist/internal-icons/icons/duo/CircleHalfDottedChart2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CircleHalfDottedChart2.js +13 -0
- package/dist/internal-icons/icons/duo/ClockTime.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ClockTime.js +13 -0
- package/dist/internal-icons/icons/duo/CloneDashed3.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CloneDashed3.js +13 -0
- package/dist/internal-icons/icons/duo/CloneImageDashed.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CloneImageDashed.js +13 -0
- package/dist/internal-icons/icons/duo/CloneVideoDashed.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CloneVideoDashed.js +13 -0
- package/dist/internal-icons/icons/duo/CloudeCode.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CloudeCode.js +13 -0
- package/dist/internal-icons/icons/duo/CoinStack.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CoinStack.js +13 -0
- package/dist/internal-icons/icons/duo/ConditionalLogic.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ConditionalLogic.js +13 -0
- package/dist/internal-icons/icons/duo/ConnectPlus.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ConnectPlus.js +13 -0
- package/dist/internal-icons/icons/duo/Connection3.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Connection3.js +13 -0
- package/dist/internal-icons/icons/duo/CopyDelete.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CopyDelete.js +13 -0
- package/dist/internal-icons/icons/duo/CopyId.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CopyId.js +13 -0
- package/dist/internal-icons/icons/duo/Deaf.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Deaf.js +13 -0
- package/dist/internal-icons/icons/duo/DependencyLink.d.ts +7 -0
- package/dist/internal-icons/icons/duo/DependencyLink.js +13 -0
- package/dist/internal-icons/icons/duo/DesktopDock.d.ts +7 -0
- package/dist/internal-icons/icons/duo/DesktopDock.js +13 -0
- package/dist/internal-icons/icons/duo/DiamondSparkle.d.ts +7 -0
- package/dist/internal-icons/icons/duo/DiamondSparkle.js +13 -0
- package/dist/internal-icons/icons/duo/DocumentScan.d.ts +7 -0
- package/dist/internal-icons/icons/duo/DocumentScan.js +13 -0
- package/dist/internal-icons/icons/duo/Dog2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Dog2.js +13 -0
- package/dist/internal-icons/icons/duo/DogLeash.d.ts +7 -0
- package/dist/internal-icons/icons/duo/DogLeash.js +13 -0
- package/dist/internal-icons/icons/duo/DogSlash.d.ts +7 -0
- package/dist/internal-icons/icons/duo/DogSlash.js +13 -0
- package/dist/internal-icons/icons/duo/DotFormation.d.ts +7 -0
- package/dist/internal-icons/icons/duo/DotFormation.js +13 -0
- package/dist/internal-icons/icons/duo/DrawFinger.d.ts +7 -0
- package/dist/internal-icons/icons/duo/DrawFinger.js +13 -0
- package/dist/internal-icons/icons/duo/Ear.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Ear.js +13 -0
- package/dist/internal-icons/icons/duo/EarSound.d.ts +7 -0
- package/dist/internal-icons/icons/duo/EarSound.js +13 -0
- package/dist/internal-icons/icons/duo/Embed.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Embed.js +13 -0
- package/dist/internal-icons/icons/duo/EnterDoor.d.ts +7 -0
- package/dist/internal-icons/icons/duo/EnterDoor.js +13 -0
- package/dist/internal-icons/icons/duo/EnterHome.d.ts +7 -0
- package/dist/internal-icons/icons/duo/EnterHome.js +13 -0
- package/dist/internal-icons/icons/duo/ExitDoor.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ExitDoor.js +13 -0
- package/dist/internal-icons/icons/duo/Export2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Export2.js +13 -0
- package/dist/internal-icons/icons/duo/EyeSparkle.d.ts +7 -0
- package/dist/internal-icons/icons/duo/EyeSparkle.js +13 -0
- package/dist/internal-icons/icons/duo/FaceRobot.d.ts +7 -0
- package/dist/internal-icons/icons/duo/FaceRobot.js +13 -0
- package/dist/internal-icons/icons/duo/FaceRobot2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/FaceRobot2.js +13 -0
- package/dist/internal-icons/icons/duo/FaceRobot3.d.ts +7 -0
- package/dist/internal-icons/icons/duo/FaceRobot3.js +13 -0
- package/dist/internal-icons/icons/duo/FerrisWheel.d.ts +7 -0
- package/dist/internal-icons/icons/duo/FerrisWheel.js +13 -0
- package/dist/internal-icons/icons/duo/FileExport.d.ts +7 -0
- package/dist/internal-icons/icons/duo/FileExport.js +13 -0
- package/dist/internal-icons/icons/duo/FlagMenu.d.ts +7 -0
- package/dist/internal-icons/icons/duo/FlagMenu.js +13 -0
- package/dist/internal-icons/icons/duo/FocusCenter.d.ts +7 -0
- package/dist/internal-icons/icons/duo/FocusCenter.js +13 -0
- package/dist/internal-icons/icons/duo/FoodOrder.d.ts +7 -0
- package/dist/internal-icons/icons/duo/FoodOrder.js +13 -0
- package/dist/internal-icons/icons/duo/FuelCan.d.ts +7 -0
- package/dist/internal-icons/icons/duo/FuelCan.js +13 -0
- package/dist/internal-icons/icons/duo/FuelCan2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/FuelCan2.js +13 -0
- package/dist/internal-icons/icons/duo/Gear3Sparkle.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Gear3Sparkle.js +13 -0
- package/dist/internal-icons/icons/duo/GridSparkle.d.ts +7 -0
- package/dist/internal-icons/icons/duo/GridSparkle.js +13 -0
- package/dist/internal-icons/icons/duo/HandHoldingGlobe.d.ts +7 -0
- package/dist/internal-icons/icons/duo/HandHoldingGlobe.js +13 -0
- package/dist/internal-icons/icons/duo/Handshake2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Handshake2.js +13 -0
- package/dist/internal-icons/icons/duo/Haptic.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Haptic.js +13 -0
- package/dist/internal-icons/icons/duo/HelpChat.d.ts +7 -0
- package/dist/internal-icons/icons/duo/HelpChat.js +13 -0
- package/dist/internal-icons/icons/duo/HexagonSparkle.d.ts +7 -0
- package/dist/internal-icons/icons/duo/HexagonSparkle.js +13 -0
- package/dist/internal-icons/icons/duo/Hiking.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Hiking.js +13 -0
- package/dist/internal-icons/icons/duo/History2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/History2.js +13 -0
- package/dist/internal-icons/icons/duo/HorseHead.d.ts +7 -0
- package/dist/internal-icons/icons/duo/HorseHead.js +13 -0
- package/dist/internal-icons/icons/duo/HouseDollarSign.d.ts +7 -0
- package/dist/internal-icons/icons/duo/HouseDollarSign.js +13 -0
- package/dist/internal-icons/icons/duo/HouseMinus2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/HouseMinus2.js +13 -0
- package/dist/internal-icons/icons/duo/Images3.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Images3.js +13 -0
- package/dist/internal-icons/icons/duo/Img4k.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Img4k.js +13 -0
- package/dist/internal-icons/icons/duo/InsertCrypto.d.ts +7 -0
- package/dist/internal-icons/icons/duo/InsertCrypto.js +13 -0
- package/dist/internal-icons/icons/duo/InsertDollar.d.ts +7 -0
- package/dist/internal-icons/icons/duo/InsertDollar.js +13 -0
- package/dist/internal-icons/icons/duo/InstantMoney.d.ts +7 -0
- package/dist/internal-icons/icons/duo/InstantMoney.js +13 -0
- package/dist/internal-icons/icons/duo/InvoiceIn.d.ts +7 -0
- package/dist/internal-icons/icons/duo/InvoiceIn.js +13 -0
- package/dist/internal-icons/icons/duo/InwardFlow.d.ts +7 -0
- package/dist/internal-icons/icons/duo/InwardFlow.js +13 -0
- package/dist/internal-icons/icons/duo/JoinedHands.d.ts +7 -0
- package/dist/internal-icons/icons/duo/JoinedHands.js +13 -0
- package/dist/internal-icons/icons/duo/LawShield.d.ts +7 -0
- package/dist/internal-icons/icons/duo/LawShield.js +13 -0
- package/dist/internal-icons/icons/duo/Lectern.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Lectern.js +13 -0
- package/dist/internal-icons/icons/duo/Lectern2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Lectern2.js +13 -0
- package/dist/internal-icons/icons/duo/LightSpark.d.ts +7 -0
- package/dist/internal-icons/icons/duo/LightSpark.js +13 -0
- package/dist/internal-icons/icons/duo/LightSpark2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/LightSpark2.js +13 -0
- package/dist/internal-icons/icons/duo/ListExport.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ListExport.js +13 -0
- package/dist/internal-icons/icons/duo/ListFavs3.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ListFavs3.js +13 -0
- package/dist/internal-icons/icons/duo/ListFavs4.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ListFavs4.js +13 -0
- package/dist/internal-icons/icons/duo/LoadingStatus.d.ts +7 -0
- package/dist/internal-icons/icons/duo/LoadingStatus.js +13 -0
- package/dist/internal-icons/icons/duo/LoadingStatus2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/LoadingStatus2.js +13 -0
- package/dist/internal-icons/icons/duo/LockedChat.d.ts +7 -0
- package/dist/internal-icons/icons/duo/LockedChat.js +13 -0
- package/dist/internal-icons/icons/duo/MagicHat.d.ts +7 -0
- package/dist/internal-icons/icons/duo/MagicHat.js +13 -0
- package/dist/internal-icons/icons/duo/MagicRabbit.d.ts +7 -0
- package/dist/internal-icons/icons/duo/MagicRabbit.js +13 -0
- package/dist/internal-icons/icons/duo/MagnifierSparkle2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/MagnifierSparkle2.js +13 -0
- package/dist/internal-icons/icons/duo/MediaLibrary2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/MediaLibrary2.js +13 -0
- package/dist/internal-icons/icons/duo/Membership.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Membership.js +13 -0
- package/dist/internal-icons/icons/duo/Menu4.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Menu4.js +13 -0
- package/dist/internal-icons/icons/duo/MilitaryMedal.d.ts +7 -0
- package/dist/internal-icons/icons/duo/MilitaryMedal.js +13 -0
- package/dist/internal-icons/icons/duo/MobileCircuit.d.ts +7 -0
- package/dist/internal-icons/icons/duo/MobileCircuit.js +13 -0
- package/dist/internal-icons/icons/duo/MoneyRefund.d.ts +7 -0
- package/dist/internal-icons/icons/duo/MoneyRefund.js +13 -0
- package/dist/internal-icons/icons/duo/MoneyRefund2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/MoneyRefund2.js +13 -0
- package/dist/internal-icons/icons/duo/MotionAlongPath.d.ts +7 -0
- package/dist/internal-icons/icons/duo/MotionAlongPath.js +13 -0
- package/dist/internal-icons/icons/duo/Msgs2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Msgs2.js +13 -0
- package/dist/internal-icons/icons/duo/Navigation.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Navigation.js +13 -0
- package/dist/internal-icons/icons/duo/NavigationHorizontal.d.ts +7 -0
- package/dist/internal-icons/icons/duo/NavigationHorizontal.js +13 -0
- package/dist/internal-icons/icons/duo/NavigationVertical.d.ts +7 -0
- package/dist/internal-icons/icons/duo/NavigationVertical.js +13 -0
- package/dist/internal-icons/icons/duo/ObjectSelection.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ObjectSelection.js +13 -0
- package/dist/internal-icons/icons/duo/OfficeUser.d.ts +7 -0
- package/dist/internal-icons/icons/duo/OfficeUser.js +13 -0
- package/dist/internal-icons/icons/duo/OpenExternal.d.ts +7 -0
- package/dist/internal-icons/icons/duo/OpenExternal.js +13 -0
- package/dist/internal-icons/icons/duo/OrbitSparkle.d.ts +7 -0
- package/dist/internal-icons/icons/duo/OrbitSparkle.js +13 -0
- package/dist/internal-icons/icons/duo/OutwardFlow.d.ts +7 -0
- package/dist/internal-icons/icons/duo/OutwardFlow.js +13 -0
- package/dist/internal-icons/icons/duo/PaperPlaneFast.d.ts +7 -0
- package/dist/internal-icons/icons/duo/PaperPlaneFast.js +13 -0
- package/dist/internal-icons/icons/duo/Parachute.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Parachute.js +13 -0
- package/dist/internal-icons/icons/duo/Paw.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Paw.js +13 -0
- package/dist/internal-icons/icons/duo/Peace.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Peace.js +13 -0
- package/dist/internal-icons/icons/duo/PicnicTable.d.ts +7 -0
- package/dist/internal-icons/icons/duo/PicnicTable.js +13 -0
- package/dist/internal-icons/icons/duo/Pillow.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Pillow.js +13 -0
- package/dist/internal-icons/icons/duo/Playground.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Playground.js +13 -0
- package/dist/internal-icons/icons/duo/Playlist4.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Playlist4.js +13 -0
- package/dist/internal-icons/icons/duo/Plug3.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Plug3.js +13 -0
- package/dist/internal-icons/icons/duo/Plug3Sparkle.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Plug3Sparkle.js +13 -0
- package/dist/internal-icons/icons/duo/PlugOff.d.ts +7 -0
- package/dist/internal-icons/icons/duo/PlugOff.js +13 -0
- package/dist/internal-icons/icons/duo/PlugSparkle.d.ts +7 -0
- package/dist/internal-icons/icons/duo/PlugSparkle.js +13 -0
- package/dist/internal-icons/icons/duo/PopEffect.d.ts +7 -0
- package/dist/internal-icons/icons/duo/PopEffect.js +13 -0
- package/dist/internal-icons/icons/duo/ProfileAnalytics.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ProfileAnalytics.js +13 -0
- package/dist/internal-icons/icons/duo/ProfileBasic.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ProfileBasic.js +13 -0
- package/dist/internal-icons/icons/duo/ProgressIndicator2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ProgressIndicator2.js +13 -0
- package/dist/internal-icons/icons/duo/QuickActions.d.ts +7 -0
- package/dist/internal-icons/icons/duo/QuickActions.js +13 -0
- package/dist/internal-icons/icons/duo/QuickTimer.d.ts +7 -0
- package/dist/internal-icons/icons/duo/QuickTimer.js +13 -0
- package/dist/internal-icons/icons/duo/Rabbit.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Rabbit.js +13 -0
- package/dist/internal-icons/icons/duo/Receipt3.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Receipt3.js +13 -0
- package/dist/internal-icons/icons/duo/Receipt4.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Receipt4.js +13 -0
- package/dist/internal-icons/icons/duo/Redo2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Redo2.js +13 -0
- package/dist/internal-icons/icons/duo/Redo3.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Redo3.js +13 -0
- package/dist/internal-icons/icons/duo/Refresh3AnticlockwiseSlash.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Refresh3AnticlockwiseSlash.js +13 -0
- package/dist/internal-icons/icons/duo/Refresh3ClockwiseSlash.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Refresh3ClockwiseSlash.js +13 -0
- package/dist/internal-icons/icons/duo/RefreshAnticlockwise.d.ts +7 -0
- package/dist/internal-icons/icons/duo/RefreshAnticlockwise.js +13 -0
- package/dist/internal-icons/icons/duo/RefreshAnticlockwiseSlash.d.ts +7 -0
- package/dist/internal-icons/icons/duo/RefreshAnticlockwiseSlash.js +13 -0
- package/dist/internal-icons/icons/duo/RefreshClockwiseSlash.d.ts +7 -0
- package/dist/internal-icons/icons/duo/RefreshClockwiseSlash.js +13 -0
- package/dist/internal-icons/icons/duo/Refrigerator.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Refrigerator.js +13 -0
- package/dist/internal-icons/icons/duo/RemoteControl.d.ts +7 -0
- package/dist/internal-icons/icons/duo/RemoteControl.js +13 -0
- package/dist/internal-icons/icons/duo/RemoteControl2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/RemoteControl2.js +13 -0
- package/dist/internal-icons/icons/duo/ReportFile.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ReportFile.js +13 -0
- package/dist/internal-icons/icons/duo/Reposition.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Reposition.js +13 -0
- package/dist/internal-icons/icons/duo/Rerouting.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Rerouting.js +13 -0
- package/dist/internal-icons/icons/duo/Robot2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Robot2.js +13 -0
- package/dist/internal-icons/icons/duo/Robot3.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Robot3.js +13 -0
- package/dist/internal-icons/icons/duo/Robot4.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Robot4.js +13 -0
- package/dist/internal-icons/icons/duo/RockOn.d.ts +7 -0
- package/dist/internal-icons/icons/duo/RockOn.js +13 -0
- package/dist/internal-icons/icons/duo/RopeStanchions.d.ts +7 -0
- package/dist/internal-icons/icons/duo/RopeStanchions.js +13 -0
- package/dist/internal-icons/icons/duo/Rotation3602.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Rotation3602.js +13 -0
- package/dist/internal-icons/icons/duo/SavedItems2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/SavedItems2.js +13 -0
- package/dist/internal-icons/icons/duo/ScaleImg4k.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ScaleImg4k.js +13 -0
- package/dist/internal-icons/icons/duo/ScanImage.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ScanImage.js +13 -0
- package/dist/internal-icons/icons/duo/ScissorsSparkle.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ScissorsSparkle.js +13 -0
- package/dist/internal-icons/icons/duo/Seatbelt.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Seatbelt.js +13 -0
- package/dist/internal-icons/icons/duo/ShakaHand.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ShakaHand.js +13 -0
- package/dist/internal-icons/icons/duo/ShapeRectangle.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ShapeRectangle.js +13 -0
- package/dist/internal-icons/icons/duo/Shovel.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Shovel.js +13 -0
- package/dist/internal-icons/icons/duo/ShuffleSparkle.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ShuffleSparkle.js +13 -0
- package/dist/internal-icons/icons/duo/SideProfileQuestion.d.ts +7 -0
- package/dist/internal-icons/icons/duo/SideProfileQuestion.js +13 -0
- package/dist/internal-icons/icons/duo/SideProfileSparkle.d.ts +7 -0
- package/dist/internal-icons/icons/duo/SideProfileSparkle.js +13 -0
- package/dist/internal-icons/icons/duo/SidebarEdit.d.ts +7 -0
- package/dist/internal-icons/icons/duo/SidebarEdit.js +13 -0
- package/dist/internal-icons/icons/duo/SlashCircle.d.ts +7 -0
- package/dist/internal-icons/icons/duo/SlashCircle.js +13 -0
- package/dist/internal-icons/icons/duo/Sliders4.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Sliders4.js +13 -0
- package/dist/internal-icons/icons/duo/Snail.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Snail.js +13 -0
- package/dist/internal-icons/icons/duo/Spiral.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Spiral.js +13 -0
- package/dist/internal-icons/icons/duo/SplitView.d.ts +7 -0
- package/dist/internal-icons/icons/duo/SplitView.js +13 -0
- package/dist/internal-icons/icons/duo/SquareDashedSearchSparkle.d.ts +7 -0
- package/dist/internal-icons/icons/duo/SquareDashedSearchSparkle.js +13 -0
- package/dist/internal-icons/icons/duo/SquareDashedText.d.ts +7 -0
- package/dist/internal-icons/icons/duo/SquareDashedText.js +13 -0
- package/dist/internal-icons/icons/duo/SquarePath.d.ts +7 -0
- package/dist/internal-icons/icons/duo/SquarePath.js +13 -0
- package/dist/internal-icons/icons/duo/Star2Slash.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Star2Slash.js +13 -0
- package/dist/internal-icons/icons/duo/StopSign.d.ts +7 -0
- package/dist/internal-icons/icons/duo/StopSign.js +13 -0
- package/dist/internal-icons/icons/duo/StopwatchBolt.d.ts +7 -0
- package/dist/internal-icons/icons/duo/StopwatchBolt.js +13 -0
- package/dist/internal-icons/icons/duo/SummitFlag.d.ts +7 -0
- package/dist/internal-icons/icons/duo/SummitFlag.js +13 -0
- package/dist/internal-icons/icons/duo/Sunrise2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Sunrise2.js +13 -0
- package/dist/internal-icons/icons/duo/Task.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Task.js +13 -0
- package/dist/internal-icons/icons/duo/Task2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Task2.js +13 -0
- package/dist/internal-icons/icons/duo/TaskDebug.d.ts +7 -0
- package/dist/internal-icons/icons/duo/TaskDebug.js +13 -0
- package/dist/internal-icons/icons/duo/TaskSearch.d.ts +7 -0
- package/dist/internal-icons/icons/duo/TaskSearch.js +13 -0
- package/dist/internal-icons/icons/duo/Teepee.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Teepee.js +13 -0
- package/dist/internal-icons/icons/duo/TextAdjust.d.ts +7 -0
- package/dist/internal-icons/icons/duo/TextAdjust.js +13 -0
- package/dist/internal-icons/icons/duo/TheatreMask.d.ts +7 -0
- package/dist/internal-icons/icons/duo/TheatreMask.js +13 -0
- package/dist/internal-icons/icons/duo/TheatreMask2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/TheatreMask2.js +13 -0
- package/dist/internal-icons/icons/duo/TimerProgress.d.ts +7 -0
- package/dist/internal-icons/icons/duo/TimerProgress.js +13 -0
- package/dist/internal-icons/icons/duo/TimerProgress2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/TimerProgress2.js +13 -0
- package/dist/internal-icons/icons/duo/TransactionSplit.d.ts +7 -0
- package/dist/internal-icons/icons/duo/TransactionSplit.js +13 -0
- package/dist/internal-icons/icons/duo/Undo2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Undo2.js +13 -0
- package/dist/internal-icons/icons/duo/Undo3.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Undo3.js +13 -0
- package/dist/internal-icons/icons/duo/UnicornHead.d.ts +7 -0
- package/dist/internal-icons/icons/duo/UnicornHead.js +13 -0
- package/dist/internal-icons/icons/duo/UserContact.d.ts +7 -0
- package/dist/internal-icons/icons/duo/UserContact.js +13 -0
- package/dist/internal-icons/icons/duo/UserVoice2.d.ts +7 -0
- package/dist/internal-icons/icons/duo/UserVoice2.js +13 -0
- package/dist/internal-icons/icons/duo/VipBadge.d.ts +7 -0
- package/dist/internal-icons/icons/duo/VipBadge.js +13 -0
- package/dist/internal-icons/icons/duo/VoiceCaption.d.ts +7 -0
- package/dist/internal-icons/icons/duo/VoiceCaption.js +13 -0
- package/dist/internal-icons/icons/duo/WalletCoins.d.ts +7 -0
- package/dist/internal-icons/icons/duo/WalletCoins.js +13 -0
- package/dist/internal-icons/icons/duo/Weight.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Weight.js +13 -0
- package/dist/internal-icons/icons/duo/index.d.ts +245 -0
- package/dist/internal-icons/icons/duo/index.js +245 -0
- package/dist/preflight.css +1 -0
- package/dist/select/select.guide.json +17 -0
- package/dist/skeleton/skeleton.guide.json +23 -0
- package/dist/slider/slider.guide.json +23 -0
- package/dist/spinner/spinner.guide.json +23 -0
- package/dist/stack/stack.guide.json +20 -0
- package/dist/surface/surface.guide.json +23 -0
- package/dist/switch/switch.guide.json +23 -0
- package/dist/text/text.guide.json +20 -0
- package/dist/textarea/textarea.guide.json +17 -0
- package/dist/textfield/textfield.guide.json +20 -0
- package/dist/title/title.guide.json +20 -0
- package/package.json +64 -0
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
@scope (.Select) {
|
|
2
|
+
:scope {
|
|
3
|
+
--input-height: var(--space-x-large);
|
|
4
|
+
--control-group-background: var(--base-1);
|
|
5
|
+
--control-group-color: var(--global-foreground);
|
|
6
|
+
--control-group-border-color: var(--global-contrast);
|
|
7
|
+
--control-group-border-radius: var(--radius-small);
|
|
8
|
+
--select-trigger-padding-inline-start: var(--space-small);
|
|
9
|
+
--select-trigger-padding-inline-end: var(--space-x-small);
|
|
10
|
+
inline-size: 100%;
|
|
11
|
+
|
|
12
|
+
> .Trigger {
|
|
13
|
+
box-sizing: border-box;
|
|
14
|
+
inline-size: 100%;
|
|
15
|
+
min-inline-size: 0;
|
|
16
|
+
block-size: var(--input-height);
|
|
17
|
+
padding-inline: calc(
|
|
18
|
+
var(--select-trigger-padding-inline-start) + ((var(--control-group-border-radius) + 0px) / 4)
|
|
19
|
+
)
|
|
20
|
+
var(--select-trigger-padding-inline-end);
|
|
21
|
+
border: 1px solid var(--control-group-border-color);
|
|
22
|
+
border-radius: var(--control-group-border-radius);
|
|
23
|
+
background: var(--control-group-background);
|
|
24
|
+
color: var(--control-group-color);
|
|
25
|
+
font: inherit;
|
|
26
|
+
text-align: start;
|
|
27
|
+
cursor: pointer;
|
|
28
|
+
|
|
29
|
+
&:focus-visible {
|
|
30
|
+
outline: 2px solid var(--global-foreground);
|
|
31
|
+
outline-offset: 2px;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&[data-popup-open] {
|
|
35
|
+
outline: none;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&:disabled,
|
|
39
|
+
&[data-disabled] {
|
|
40
|
+
--control-group-background: var(--global-disabled-background);
|
|
41
|
+
--control-group-border-color: transparent;
|
|
42
|
+
--control-group-color: var(--global-disabled-foreground);
|
|
43
|
+
|
|
44
|
+
box-shadow: none;
|
|
45
|
+
cursor: not-allowed;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
> .Value {
|
|
49
|
+
--text-fluid-factor: 0;
|
|
50
|
+
--text-font-size: var(--font-scale-body-small);
|
|
51
|
+
|
|
52
|
+
overflow: hidden;
|
|
53
|
+
text-overflow: ellipsis;
|
|
54
|
+
|
|
55
|
+
&[data-placeholder] {
|
|
56
|
+
color: var(--global-disabled-foreground);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
> .Icon {
|
|
61
|
+
font-size: var(--font-scale-body-small);
|
|
62
|
+
pointer-events: none;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
&[data-invalid] > .Trigger:not(:disabled):not([data-disabled]) {
|
|
67
|
+
--control-group-border-color: var(--highlight-red);
|
|
68
|
+
|
|
69
|
+
box-shadow: none;
|
|
70
|
+
outline-color: oklab(from var(--highlight-red) l a b / 0.5);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
&:has([required]) > .Label::after {
|
|
74
|
+
content: ' *';
|
|
75
|
+
color: var(--highlight-red);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
> .Label,
|
|
79
|
+
> .Description {
|
|
80
|
+
padding-inline: calc((var(--control-group-border-radius) + 0px) / 2);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
@scope (.SelectPopup) {
|
|
86
|
+
:scope {
|
|
87
|
+
--select-list-border-radius: var(--radius-medium);
|
|
88
|
+
--select-list-padding: var(--space-x-small);
|
|
89
|
+
box-sizing: border-box;
|
|
90
|
+
min-inline-size: var(--anchor-width);
|
|
91
|
+
overflow: visible;
|
|
92
|
+
color: var(--global-foreground);
|
|
93
|
+
outline: none;
|
|
94
|
+
position: relative;
|
|
95
|
+
|
|
96
|
+
> .ScrollArrow {
|
|
97
|
+
position: absolute;
|
|
98
|
+
inset-inline: 0;
|
|
99
|
+
z-index: 1;
|
|
100
|
+
inline-size: 100%;
|
|
101
|
+
block-size: var(--space-large);
|
|
102
|
+
cursor: default;
|
|
103
|
+
background: var(--base-1);
|
|
104
|
+
|
|
105
|
+
> .Button {
|
|
106
|
+
pointer-events: none;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
&.ScrollArrow--up {
|
|
110
|
+
inset-block-start: 0;
|
|
111
|
+
border-block-end: 1px solid var(--global-contrast);
|
|
112
|
+
border-radius: var(--select-list-border-radius) var(--select-list-border-radius) 0 0;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
&.ScrollArrow--down {
|
|
116
|
+
inset-block-end: 0;
|
|
117
|
+
border-block-start: 1px solid var(--global-contrast);
|
|
118
|
+
border-radius: 0 0 var(--select-list-border-radius) var(--select-list-border-radius);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
> .List {
|
|
123
|
+
box-sizing: border-box;
|
|
124
|
+
inline-size: 100%;
|
|
125
|
+
max-block-size: var(--available-height);
|
|
126
|
+
overflow-y: auto;
|
|
127
|
+
scroll-padding-block: var(--select-list-padding);
|
|
128
|
+
list-style: none;
|
|
129
|
+
overscroll-behavior: contain;
|
|
130
|
+
|
|
131
|
+
&:focus,
|
|
132
|
+
&:focus-visible {
|
|
133
|
+
outline: none;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
> .Option,
|
|
137
|
+
> .Group > .Option {
|
|
138
|
+
border-radius: calc((var(--select-list-border-radius) + 0px) - var(--select-list-padding));
|
|
139
|
+
cursor: pointer;
|
|
140
|
+
|
|
141
|
+
&:focus {
|
|
142
|
+
outline: none;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
&:focus-visible {
|
|
146
|
+
outline: 2px solid var(--global-foreground);
|
|
147
|
+
outline-offset: 0;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
&[data-highlighted],
|
|
151
|
+
&:hover {
|
|
152
|
+
background: var(--base-2);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
&[data-disabled] {
|
|
156
|
+
color: var(--global-disabled-foreground);
|
|
157
|
+
cursor: not-allowed;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
> .Indicator {
|
|
161
|
+
inline-size: var(--space-medium);
|
|
162
|
+
color: var(--global-primary);
|
|
163
|
+
opacity: 0;
|
|
164
|
+
transition:
|
|
165
|
+
opacity var(--duration-fast) var(--easing-standard),
|
|
166
|
+
transform var(--duration-fast) var(--easing-standard);
|
|
167
|
+
|
|
168
|
+
&[data-selected] {
|
|
169
|
+
opacity: 1;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
> .Group {
|
|
175
|
+
& + & {
|
|
176
|
+
margin-block-start: var(--space-medium);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
> .GroupLabel {
|
|
180
|
+
> .Indicator {
|
|
181
|
+
inline-size: var(--space-medium);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
> .Separator {
|
|
187
|
+
block-size: 1px;
|
|
188
|
+
margin-block: var(--space-small);
|
|
189
|
+
margin-inline: var(--space-small);
|
|
190
|
+
background: var(--base-3);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { FieldRoot } from '@base-ui/react/field';
|
|
2
|
+
import type { SelectRoot } from '@base-ui/react/select';
|
|
3
|
+
import type * as React from 'react';
|
|
4
|
+
import type { IntrinsicViraProps } from '@react/src/core/props/intrinsic-vira-props';
|
|
5
|
+
import { SelectGroup } from './select-group';
|
|
6
|
+
import { SelectOption } from './select-option';
|
|
7
|
+
import { SelectSeparator } from './select-separator';
|
|
8
|
+
import './select.css';
|
|
9
|
+
/**
|
|
10
|
+
* Public Select props.
|
|
11
|
+
*
|
|
12
|
+
* Includes Base UI select root props such as `value`, `defaultValue`, `disabled`,
|
|
13
|
+
* and change handlers, plus optional field copy rendered with the shared Vira
|
|
14
|
+
* field label/helper pattern.
|
|
15
|
+
*
|
|
16
|
+
* @default Base UI pass-through props keep upstream defaults.
|
|
17
|
+
*/
|
|
18
|
+
export type SelectProps = SelectRoot.Props<string> & Omit<FieldRoot.Props, 'ref'> & IntrinsicViraProps & {
|
|
19
|
+
/**
|
|
20
|
+
* Visible label rendered with `Field.Label` and `Text`.
|
|
21
|
+
*
|
|
22
|
+
* @default No label is rendered.
|
|
23
|
+
*/
|
|
24
|
+
label?: React.ReactNode;
|
|
25
|
+
/**
|
|
26
|
+
* Helper copy rendered with `Field.Description` and `Text` while the field is valid.
|
|
27
|
+
*
|
|
28
|
+
* @default No description is rendered.
|
|
29
|
+
*/
|
|
30
|
+
description?: React.ReactNode;
|
|
31
|
+
/**
|
|
32
|
+
* Error copy rendered with `Field.Error` and `Text` in the same slot as `description`.
|
|
33
|
+
* Replaces description while the field is invalid.
|
|
34
|
+
*
|
|
35
|
+
* @default No static error copy is rendered.
|
|
36
|
+
*/
|
|
37
|
+
error?: React.ReactNode;
|
|
38
|
+
/**
|
|
39
|
+
* Placeholder text shown in the trigger when no value is selected.
|
|
40
|
+
*
|
|
41
|
+
* @default No placeholder is rendered.
|
|
42
|
+
*/
|
|
43
|
+
placeholder?: React.ReactNode;
|
|
44
|
+
/**
|
|
45
|
+
* Trigger icon rendered inside `Select.Icon`.
|
|
46
|
+
* Pass any React icon element; use `<Icon name="..." />` for the Vira icon set.
|
|
47
|
+
*
|
|
48
|
+
* @default `<Icon name="ChevronExpandY" size={16} />`
|
|
49
|
+
*/
|
|
50
|
+
icon?: React.ReactNode;
|
|
51
|
+
/**
|
|
52
|
+
* Ref forwarded to the select trigger button.
|
|
53
|
+
*
|
|
54
|
+
* @default No ref is attached.
|
|
55
|
+
*/
|
|
56
|
+
ref?: React.Ref<HTMLButtonElement>;
|
|
57
|
+
};
|
|
58
|
+
declare function SelectRootComponent({ children, className, description, dirty, disabled, error, icon, invalid, label, name, placeholder, ref, touched, validate, validationDebounceTime, validationMode, ...selectRootProps }: SelectProps): React.JSX.Element;
|
|
59
|
+
export declare const Select: typeof SelectRootComponent & {
|
|
60
|
+
Option: typeof SelectOption;
|
|
61
|
+
Group: typeof SelectGroup;
|
|
62
|
+
Separator: typeof SelectSeparator;
|
|
63
|
+
};
|
|
64
|
+
export type { SelectGroupProps } from './select-group';
|
|
65
|
+
export type { SelectOptionProps } from './select-option';
|
|
66
|
+
export type { SelectSeparatorProps } from './select-separator';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Field } from '@base-ui/react/field';
|
|
4
|
+
import { Select as PrimitiveSelect } from '@base-ui/react/select';
|
|
5
|
+
import { Elevator, Icon, Stack, Surface, Text } from '@react/src/components';
|
|
6
|
+
import { FieldHelperCopy } from '@react/src/components/basic-input/field-helper-copy';
|
|
7
|
+
import { IconButton } from '@react/src/components/icon-button';
|
|
8
|
+
import { extractIntrinsicViraProps } from '@react/src/core/props/intrinsic-vira-props';
|
|
9
|
+
import { clsx } from 'clsx';
|
|
10
|
+
import { useId } from 'react';
|
|
11
|
+
import { SelectGroup } from './select-group';
|
|
12
|
+
import { SelectOption } from './select-option';
|
|
13
|
+
import { SelectSeparator } from './select-separator';
|
|
14
|
+
import './select.css';
|
|
15
|
+
function SelectRootComponent({ children, className, description, dirty, disabled, error, icon = _jsx(Icon, { name: "ChevronExpandY", size: 16 }), invalid, label, name, placeholder, ref, touched, validate, validationDebounceTime, validationMode, ...selectRootProps }) {
|
|
16
|
+
const { componentProps, intrinsicAttributes } = extractIntrinsicViraProps(selectRootProps);
|
|
17
|
+
const { 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, ...restSelectProps } = componentProps;
|
|
18
|
+
const fieldLabelId = useId();
|
|
19
|
+
const listAccessibleNameProps = {};
|
|
20
|
+
if (ariaLabel !== undefined) {
|
|
21
|
+
listAccessibleNameProps['aria-label'] = ariaLabel;
|
|
22
|
+
}
|
|
23
|
+
else if (ariaLabelledBy !== undefined) {
|
|
24
|
+
listAccessibleNameProps['aria-labelledby'] = ariaLabelledBy;
|
|
25
|
+
}
|
|
26
|
+
else if (label !== undefined) {
|
|
27
|
+
listAccessibleNameProps['aria-labelledby'] = fieldLabelId;
|
|
28
|
+
}
|
|
29
|
+
return (_jsxs(Field.Root, { ...intrinsicAttributes, className: clsx('Select', className), dirty: dirty, disabled: disabled, invalid: invalid, name: name, touched: touched, validate: validate, validationDebounceTime: validationDebounceTime, validationMode: validationMode, render: _jsx(Stack, { direction: "column", fillChildren: false, rowGap: "small" }), children: [label && (_jsx(Text, { size: "small", weight: "semibold", className: "Label", render: _jsx(Field.Label, { id: fieldLabelId }), children: label })), _jsxs(PrimitiveSelect.Root, { ...restSelectProps, disabled: disabled, name: name, children: [_jsxs(PrimitiveSelect.Trigger, { "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, className: "Trigger", disabled: disabled, ref: ref, render: _jsx(Stack, { direction: "row", render: _jsx("button", { type: "button" }), vAlign: "center" }), children: [_jsx(Text, { className: "Value", lineHeight: "small", render: _jsx(PrimitiveSelect.Value, { placeholder: placeholder }), size: "small", whiteSpace: "nowrap" }), _jsx(PrimitiveSelect.Icon, { className: "Icon", "data-grow": "false", render: _jsx(Stack, { fillChildren: false, hAlign: "center", hPadding: "x-small", inline: true, shrink: false, vAlign: "center" }), children: icon })] }), _jsx(PrimitiveSelect.Portal, { children: _jsx(PrimitiveSelect.Positioner, { alignItemWithTrigger: true, children: _jsxs(PrimitiveSelect.Popup, { className: "SelectPopup", children: [_jsx(PrimitiveSelect.ScrollUpArrow, { className: "ScrollArrow ScrollArrow--up", render: _jsx(Stack, { fillChildren: false, hAlign: "center", vAlign: "center" }), children: _jsx(IconButton, { "aria-label": "Scroll list up", icon: _jsx(Icon, { name: "ChevronUp" }), size: "small", tabIndex: -1, variant: "flat" }) }), _jsx(Elevator, { resting: 1, children: _jsx(PrimitiveSelect.List, { ...listAccessibleNameProps, className: "List", render: _jsx(Surface, { border: "all", color: 1, hPadding: "x-small", radius: "medium", vPadding: "x-small" }), children: children }) }), _jsx(PrimitiveSelect.ScrollDownArrow, { className: "ScrollArrow ScrollArrow--down", render: _jsx(Stack, { fillChildren: false, hAlign: "center", vAlign: "center" }), children: _jsx(IconButton, { "aria-label": "Scroll list down", icon: _jsx(Icon, { name: "ChevronDown" }), size: "small", tabIndex: -1, variant: "flat" }) })] }) }) })] }), _jsx(FieldHelperCopy, { description: description, error: error })] }));
|
|
30
|
+
}
|
|
31
|
+
export const Select = Object.assign(SelectRootComponent, {
|
|
32
|
+
Option: SelectOption,
|
|
33
|
+
Group: SelectGroup,
|
|
34
|
+
Separator: SelectSeparator,
|
|
35
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Skeleton } from './skeleton';
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
@scope (.Skeleton) {
|
|
2
|
+
:scope {
|
|
3
|
+
--skeleton-background: var(--global-contrast);
|
|
4
|
+
--skeleton-border-radius: var(--radius-small);
|
|
5
|
+
--skeleton-inline-size: auto;
|
|
6
|
+
--skeleton-block-size: auto;
|
|
7
|
+
--skeleton-min-inline-size: var(--space-x-large);
|
|
8
|
+
--skeleton-min-block-size: var(--space-medium);
|
|
9
|
+
|
|
10
|
+
display: inline-block;
|
|
11
|
+
box-sizing: border-box;
|
|
12
|
+
inline-size: var(--skeleton-inline-size);
|
|
13
|
+
block-size: var(--skeleton-block-size);
|
|
14
|
+
min-inline-size: var(--skeleton-min-inline-size);
|
|
15
|
+
min-block-size: var(--skeleton-min-block-size);
|
|
16
|
+
max-inline-size: 100%;
|
|
17
|
+
background: var(--skeleton-background);
|
|
18
|
+
border-radius: var(--skeleton-border-radius);
|
|
19
|
+
vertical-align: middle;
|
|
20
|
+
animation: skeleton-fade var(--duration-slow) var(--easing-standard) infinite alternate;
|
|
21
|
+
|
|
22
|
+
@media (prefers-reduced-motion: reduce) {
|
|
23
|
+
animation: none;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@keyframes skeleton-fade {
|
|
29
|
+
from {
|
|
30
|
+
opacity: 0.52;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
to {
|
|
34
|
+
opacity: 1;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { ThemeTypes } from '@foundation/platforms/web/vira/types';
|
|
2
|
+
import type { IntrinsicViraProps } from '@react/src/core/props/intrinsic-vira-props';
|
|
3
|
+
import type * as React from 'react';
|
|
4
|
+
import './skeleton.css';
|
|
5
|
+
/**
|
|
6
|
+
* Public Skeleton props.
|
|
7
|
+
*
|
|
8
|
+
* Includes standard `span` attributes such as `id`, `title`, ARIA props, and event handlers,
|
|
9
|
+
* plus Vira-owned sizing and radius controls.
|
|
10
|
+
*
|
|
11
|
+
* @default Native span pass-through props keep React defaults.
|
|
12
|
+
*/
|
|
13
|
+
export type SkeletonProps = React.ComponentPropsWithoutRef<'span'> & IntrinsicViraProps & {
|
|
14
|
+
/**
|
|
15
|
+
* Sets the skeleton inline size using any valid CSS size string.
|
|
16
|
+
*
|
|
17
|
+
* @default The skeleton sizes from context, constrained by the CSS minimum.
|
|
18
|
+
*/
|
|
19
|
+
width?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Sets the skeleton block size using any valid CSS size string.
|
|
22
|
+
*
|
|
23
|
+
* @default The skeleton sizes from context, constrained by the CSS minimum.
|
|
24
|
+
*/
|
|
25
|
+
height?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Sets the skeleton minimum inline size using any valid CSS size string.
|
|
28
|
+
*
|
|
29
|
+
* @default The CSS minimum inline size is `2rem`.
|
|
30
|
+
*/
|
|
31
|
+
minWidth?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Sets the skeleton minimum block size using any valid CSS size string.
|
|
34
|
+
*
|
|
35
|
+
* @default The CSS minimum block size is `1rem`.
|
|
36
|
+
*/
|
|
37
|
+
minHeight?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Sets the corner radius from the Vira radius token scale.
|
|
40
|
+
*
|
|
41
|
+
* @default 'small'
|
|
42
|
+
*/
|
|
43
|
+
radius?: ThemeTypes['radius'];
|
|
44
|
+
/**
|
|
45
|
+
* Ref forwarded to the rendered skeleton root element.
|
|
46
|
+
*
|
|
47
|
+
* @default No ref is attached.
|
|
48
|
+
*/
|
|
49
|
+
ref?: React.Ref<HTMLSpanElement>;
|
|
50
|
+
};
|
|
51
|
+
export declare const Skeleton: React.FC<SkeletonProps>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { extractIntrinsicViraProps } from '@react/src/core/props/intrinsic-vira-props';
|
|
3
|
+
import { resolveThemeValue } from '@react/src/core/theme/resolve-theme-value';
|
|
4
|
+
import clsx from 'clsx';
|
|
5
|
+
import './skeleton.css';
|
|
6
|
+
export const Skeleton = ({ className, height, minHeight, minWidth, radius, ref, style, width, ...otherProps }) => {
|
|
7
|
+
const { componentProps, intrinsicAttributes } = extractIntrinsicViraProps(otherProps);
|
|
8
|
+
const dynamicStyle = {
|
|
9
|
+
'--skeleton-border-radius': resolveThemeValue(radius, 'radius', 'var(--radius-small)'),
|
|
10
|
+
...(width ? { '--skeleton-inline-size': width } : {}),
|
|
11
|
+
...(height ? { '--skeleton-block-size': height } : {}),
|
|
12
|
+
...(minWidth ? { '--skeleton-min-inline-size': minWidth } : {}),
|
|
13
|
+
...(minHeight ? { '--skeleton-min-block-size': minHeight } : {}),
|
|
14
|
+
...style,
|
|
15
|
+
};
|
|
16
|
+
return (_jsx("span", { ...componentProps, ...intrinsicAttributes, ref: ref, "aria-hidden": "true", className: clsx('Skeleton', className), style: dynamicStyle }));
|
|
17
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Slider } from './slider';
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
@scope (.SliderControl) {
|
|
2
|
+
:scope {
|
|
3
|
+
position: relative;
|
|
4
|
+
flex: 1 1 auto;
|
|
5
|
+
min-inline-size: 0;
|
|
6
|
+
min-block-size: 0;
|
|
7
|
+
inline-size: 100%;
|
|
8
|
+
block-size: var(--slider-track-size);
|
|
9
|
+
touch-action: none;
|
|
10
|
+
user-select: none;
|
|
11
|
+
|
|
12
|
+
&[data-orientation='vertical'] {
|
|
13
|
+
inline-size: var(--slider-track-size);
|
|
14
|
+
block-size: 100%;
|
|
15
|
+
|
|
16
|
+
> .Track {
|
|
17
|
+
inline-size: var(--slider-track-size);
|
|
18
|
+
block-size: 100%;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
> .Track {
|
|
23
|
+
position: relative;
|
|
24
|
+
overflow: visible;
|
|
25
|
+
inline-size: 100%;
|
|
26
|
+
block-size: var(--slider-track-size);
|
|
27
|
+
border-radius: var(--radius-infinite);
|
|
28
|
+
background: var(--slider-track-background);
|
|
29
|
+
|
|
30
|
+
> .Indicator {
|
|
31
|
+
border-radius: inherit;
|
|
32
|
+
background: var(--slider-progress-background);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
> .Thumb {
|
|
36
|
+
box-sizing: border-box;
|
|
37
|
+
inline-size: var(--slider-thumb-size);
|
|
38
|
+
block-size: calc(var(--slider-thumb-size) / 1.5);
|
|
39
|
+
border-radius: var(--radius-x-small);
|
|
40
|
+
background: var(--slider-thumb-background);
|
|
41
|
+
border: 2px solid var(--slider-progress-background);
|
|
42
|
+
appearance: none;
|
|
43
|
+
transition: scale var(--easing-elastic) var(--duration-slow);
|
|
44
|
+
|
|
45
|
+
&:not(:disabled, [data-disabled]) {
|
|
46
|
+
cursor: grab;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/* Active drag: scale thumb and grabbing cursor when enabled and pressed or dragging */
|
|
50
|
+
&:not(:disabled, [data-disabled]):active,
|
|
51
|
+
&:not(:disabled, [data-disabled]):has(> input:active),
|
|
52
|
+
&:not(:disabled, [data-disabled])[data-dragging]:has(> input:focus) {
|
|
53
|
+
scale: 1.2;
|
|
54
|
+
cursor: grabbing;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* Focus: draw outline on Thumb wrapper; native input outline removed below */
|
|
58
|
+
&:has(> input:focus-visible) {
|
|
59
|
+
outline: 2px solid var(--global-foreground);
|
|
60
|
+
outline-offset: 2px;
|
|
61
|
+
z-index: 1;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/* Suppress duplicate focus ring on the range input inside Thumb */
|
|
65
|
+
& > input:focus-visible {
|
|
66
|
+
outline: none;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SliderRoot } from '@base-ui/react/slider';
|
|
2
|
+
import './slider-control.css';
|
|
3
|
+
export type SliderControlProps = {
|
|
4
|
+
isRange: boolean;
|
|
5
|
+
orientation?: SliderRoot.Props['orientation'];
|
|
6
|
+
thumbAriaLabel?: string | readonly [string, string] | undefined;
|
|
7
|
+
};
|
|
8
|
+
export declare function SliderControl({ isRange, orientation, thumbAriaLabel }: SliderControlProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Slider as PrimitiveSlider } from '@base-ui/react/slider';
|
|
4
|
+
import { Stack } from '@react/src/components/stack';
|
|
5
|
+
import './slider-control.css';
|
|
6
|
+
function resolveThumbAriaLabels(thumbAriaLabel, isRange) {
|
|
7
|
+
if (thumbAriaLabel === undefined) {
|
|
8
|
+
return {};
|
|
9
|
+
}
|
|
10
|
+
if (typeof thumbAriaLabel === 'string') {
|
|
11
|
+
return { first: thumbAriaLabel };
|
|
12
|
+
}
|
|
13
|
+
if (isRange) {
|
|
14
|
+
return { first: thumbAriaLabel[0], second: thumbAriaLabel[1] };
|
|
15
|
+
}
|
|
16
|
+
return { first: thumbAriaLabel[0] };
|
|
17
|
+
}
|
|
18
|
+
export function SliderControl({ isRange, orientation = 'horizontal', thumbAriaLabel }) {
|
|
19
|
+
const isVertical = orientation === 'vertical';
|
|
20
|
+
const { first: firstThumbAriaLabel, second: secondThumbAriaLabel } = resolveThumbAriaLabels(thumbAriaLabel, isRange);
|
|
21
|
+
return (_jsx(PrimitiveSlider.Control, { className: "SliderControl", "data-orientation": orientation, render: _jsx(Stack, { direction: isVertical ? 'column' : 'row', fillChildren: false, hAlign: isVertical ? 'center' : 'initial', vAlign: isVertical ? 'initial' : 'center' }), children: _jsxs(PrimitiveSlider.Track, { className: "Track", children: [_jsx(PrimitiveSlider.Indicator, { className: "Indicator" }), isRange ? (_jsxs(_Fragment, { children: [_jsx(PrimitiveSlider.Thumb, { className: "Thumb", index: 0, getAriaLabel: firstThumbAriaLabel ? () => firstThumbAriaLabel : undefined }), _jsx(PrimitiveSlider.Thumb, { className: "Thumb", index: 1, getAriaLabel: secondThumbAriaLabel ? () => secondThumbAriaLabel : undefined })] })) : (_jsx(PrimitiveSlider.Thumb, { className: "Thumb", getAriaLabel: firstThumbAriaLabel ? () => firstThumbAriaLabel : undefined }))] }) }));
|
|
22
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
@scope (.Slider) {
|
|
2
|
+
:scope {
|
|
3
|
+
--slider-track-size: var(--space-x-small);
|
|
4
|
+
--slider-thumb-size: var(--space-medium);
|
|
5
|
+
--slider-track-background: var(--global-contrast);
|
|
6
|
+
--slider-progress-background: var(--global-primary);
|
|
7
|
+
--slider-thumb-background: var(--base-1);
|
|
8
|
+
inline-size: 100%;
|
|
9
|
+
block-size: 100%;
|
|
10
|
+
min-inline-size: 0;
|
|
11
|
+
min-block-size: 0;
|
|
12
|
+
|
|
13
|
+
> .SliderRoot {
|
|
14
|
+
inline-size: 100%;
|
|
15
|
+
block-size: 100%;
|
|
16
|
+
min-inline-size: 0;
|
|
17
|
+
min-block-size: 0;
|
|
18
|
+
|
|
19
|
+
> .SliderHeader {
|
|
20
|
+
inline-size: 100%;
|
|
21
|
+
min-inline-size: 0;
|
|
22
|
+
|
|
23
|
+
/* Label shrinks/wraps; value keeps its size on the right */
|
|
24
|
+
> .Label {
|
|
25
|
+
-webkit-user-select: none;
|
|
26
|
+
user-select: none;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
> .Value {
|
|
30
|
+
min-inline-size: var(--space-x-large);
|
|
31
|
+
flex-shrink: 0;
|
|
32
|
+
-webkit-user-select: none;
|
|
33
|
+
user-select: none;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&[data-invalid] {
|
|
39
|
+
--slider-progress-background: var(--highlight-red);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* Disabled: muted track/progress/thumb when Slider or SliderRoot is disabled */
|
|
43
|
+
&[data-disabled],
|
|
44
|
+
&:has(> .SliderRoot[data-disabled]) {
|
|
45
|
+
--slider-track-background: var(--global-disabled-background);
|
|
46
|
+
--slider-progress-background: var(--global-disabled-foreground);
|
|
47
|
+
--slider-thumb-background: var(--global-disabled-foreground);
|
|
48
|
+
|
|
49
|
+
cursor: not-allowed;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Required field: append red asterisk on Label */
|
|
53
|
+
&:has([required]) > .SliderRoot > .SliderHeader > .Label::after {
|
|
54
|
+
content: ' *';
|
|
55
|
+
color: var(--highlight-red);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
& > .Description,
|
|
59
|
+
& > .SliderRoot > .SliderHeader > .Value {
|
|
60
|
+
-webkit-user-select: none;
|
|
61
|
+
user-select: none;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { FieldRoot } from '@base-ui/react/field';
|
|
2
|
+
import type { SliderRoot } from '@base-ui/react/slider';
|
|
3
|
+
import type { IntrinsicViraProps } from '@react/src/core/props/intrinsic-vira-props';
|
|
4
|
+
import type * as React from 'react';
|
|
5
|
+
import './slider-control.css';
|
|
6
|
+
import './slider.css';
|
|
7
|
+
/**
|
|
8
|
+
* Public Slider props.
|
|
9
|
+
*
|
|
10
|
+
* Includes Base UI slider root props such as `value`, `defaultValue`, `min`, `max`, `step`,
|
|
11
|
+
* `disabled`, `orientation`, and change handlers, plus optional field copy and thumb labeling.
|
|
12
|
+
*
|
|
13
|
+
* @default Base UI pass-through props keep upstream defaults.
|
|
14
|
+
*/
|
|
15
|
+
export type SliderProps = Omit<SliderRoot.Props, 'ref'> & Omit<FieldRoot.Props, 'ref'> & {
|
|
16
|
+
/**
|
|
17
|
+
* Adds `data-grow="false"` to the field root when false.
|
|
18
|
+
*
|
|
19
|
+
* @default The field root does not render a grow attribute.
|
|
20
|
+
*/
|
|
21
|
+
grow?: IntrinsicViraProps['grow'];
|
|
22
|
+
/**
|
|
23
|
+
* Adds `data-shrink="false"` to the field root when false.
|
|
24
|
+
*
|
|
25
|
+
* @default The field root does not render a shrink attribute.
|
|
26
|
+
*/
|
|
27
|
+
shrink?: IntrinsicViraProps['shrink'];
|
|
28
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
29
|
+
/**
|
|
30
|
+
* Visible label rendered with `Field.Label` and `Text`.
|
|
31
|
+
*
|
|
32
|
+
* @default No label is rendered.
|
|
33
|
+
*/
|
|
34
|
+
label?: React.ReactNode;
|
|
35
|
+
/**
|
|
36
|
+
* Helper copy rendered with `Field.Description` and `Text` while the field is valid.
|
|
37
|
+
*
|
|
38
|
+
* @default No description is rendered.
|
|
39
|
+
*/
|
|
40
|
+
description?: React.ReactNode;
|
|
41
|
+
/**
|
|
42
|
+
* Error copy rendered with `Field.Error` and `Text` in the same slot as `description`.
|
|
43
|
+
*
|
|
44
|
+
* @default No static error copy is rendered.
|
|
45
|
+
*/
|
|
46
|
+
error?: React.ReactNode;
|
|
47
|
+
/**
|
|
48
|
+
* Marks the slider as required and shows a required indicator on the label.
|
|
49
|
+
*
|
|
50
|
+
* @default false
|
|
51
|
+
*/
|
|
52
|
+
required?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Renders the formatted current value via `Slider.Value` and `Text`.
|
|
55
|
+
*
|
|
56
|
+
* @default false
|
|
57
|
+
*/
|
|
58
|
+
showValue?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Accessible name for the thumb when `label` is omitted.
|
|
61
|
+
*
|
|
62
|
+
* Pass a string to name the first thumb (single-thumb slider, or the minimum thumb on a range).
|
|
63
|
+
* Pass a two-element tuple to name each range thumb in order; on a single-thumb slider only the
|
|
64
|
+
* first tuple value is applied.
|
|
65
|
+
*
|
|
66
|
+
* @default No default; required when `label` is omitted and thumbs need distinct accessible names.
|
|
67
|
+
*/
|
|
68
|
+
thumbAriaLabel?: string | readonly [string, string];
|
|
69
|
+
};
|
|
70
|
+
export declare const Slider: React.FC<SliderProps>;
|