@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,19 @@
|
|
|
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 { Slider as PrimitiveSlider } from '@base-ui/react/slider';
|
|
5
|
+
import { FieldHelperCopy } from '@react/src/components/basic-input/field-helper-copy';
|
|
6
|
+
import { Stack } from '@react/src/components/stack';
|
|
7
|
+
import { Text } from '@react/src/components/text';
|
|
8
|
+
import { extractIntrinsicViraProps } from '@react/src/core/props/intrinsic-vira-props';
|
|
9
|
+
import { clsx } from 'clsx';
|
|
10
|
+
import { SliderControl } from './slider-control';
|
|
11
|
+
import './slider-control.css';
|
|
12
|
+
import { isRangeSlider } from './slider-utils';
|
|
13
|
+
import './slider.css';
|
|
14
|
+
export const Slider = ({ className, defaultValue, description, dirty, disabled, error, invalid, label, name, orientation = 'horizontal', ref, showValue = false, thumbAriaLabel, touched, validate, validationDebounceTime, validationMode, value, ...sliderRootProps }) => {
|
|
15
|
+
const isRange = isRangeSlider(value, defaultValue);
|
|
16
|
+
const isVertical = orientation === 'vertical';
|
|
17
|
+
const { componentProps, intrinsicAttributes } = extractIntrinsicViraProps(sliderRootProps);
|
|
18
|
+
return (_jsxs(Field.Root, { ...intrinsicAttributes, className: "Slider", 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: [_jsxs(PrimitiveSlider.Root, { ...componentProps, ref: ref, className: clsx('SliderRoot', className), defaultValue: defaultValue, disabled: disabled, name: name, orientation: orientation, value: value, render: _jsx(Stack, { direction: "column", fillChildren: false, rowGap: "small", columnGap: "x-small", vAlign: isVertical ? 'stretch' : 'center', hAlign: isVertical ? 'center' : 'initial' }), children: [(label || showValue) && (_jsxs(Stack, { className: "SliderHeader", direction: isVertical ? 'column' : 'row', fillChildren: false, columnGap: "small", vAlign: "end", hAlign: "space-between", children: [label && (_jsx(Text, { size: "small", weight: "semibold", className: "Label", render: _jsx(Field.Label, {}), children: label })), showValue && (_jsx(Text, { className: "Value", size: "small", tone: "muted", family: "mono", whiteSpace: "nowrap", align: isVertical ? 'center' : 'end', render: _jsx(PrimitiveSlider.Value, {}) }))] })), _jsx(SliderControl, { isRange: isRange, orientation: orientation, thumbAriaLabel: thumbAriaLabel })] }), _jsx(FieldHelperCopy, { description: description, error: error })] }));
|
|
19
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Spinner } from './spinner';
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
@scope (.Spinner) {
|
|
2
|
+
:scope {
|
|
3
|
+
--spinner-size: var(--space-x-large);
|
|
4
|
+
|
|
5
|
+
display: inline-block;
|
|
6
|
+
inline-size: var(--spinner-size);
|
|
7
|
+
block-size: var(--spinner-size);
|
|
8
|
+
flex: none;
|
|
9
|
+
vertical-align: middle;
|
|
10
|
+
color: currentColor;
|
|
11
|
+
|
|
12
|
+
&[data-dimension='small'] {
|
|
13
|
+
--spinner-size: var(--space-medium);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
&[data-dimension='regular'] {
|
|
17
|
+
--spinner-size: var(--space-large);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
> .Glyph > path {
|
|
21
|
+
transform-origin: 8px 8px;
|
|
22
|
+
animation: spinner-bars var(--duration-slowest) infinite;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
> .Glyph > path:nth-child(1),
|
|
26
|
+
> .Glyph > path:nth-child(3) {
|
|
27
|
+
opacity: 0.3;
|
|
28
|
+
transform: scaleY(0.5);
|
|
29
|
+
animation-delay: calc(var(--duration-slowest) / -2);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@keyframes spinner-bars {
|
|
35
|
+
0%,
|
|
36
|
+
100% {
|
|
37
|
+
opacity: 1;
|
|
38
|
+
transform: scaleY(1);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
50% {
|
|
42
|
+
opacity: 0.3;
|
|
43
|
+
transform: scaleY(0.5);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import './spinner.css';
|
|
2
|
+
import type { IntrinsicViraProps } from '@react/src/core/props/intrinsic-vira-props';
|
|
3
|
+
export type SpinnerProps = Omit<React.ComponentProps<'svg'>, 'color'> & IntrinsicViraProps & {
|
|
4
|
+
/**
|
|
5
|
+
* Sets the rendered spinner size.
|
|
6
|
+
*
|
|
7
|
+
* @default 'big'
|
|
8
|
+
*/
|
|
9
|
+
size?: 'small' | 'regular' | 'big';
|
|
10
|
+
/**
|
|
11
|
+
* Overrides the spinner fill color.
|
|
12
|
+
*
|
|
13
|
+
* @default No default; inherits `currentColor`.
|
|
14
|
+
*/
|
|
15
|
+
color?: string;
|
|
16
|
+
};
|
|
17
|
+
export declare const Spinner: React.FC<SpinnerProps>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { extractIntrinsicViraProps } from '@react/src/core/props/intrinsic-vira-props';
|
|
3
|
+
import clsx from 'clsx';
|
|
4
|
+
import './spinner.css';
|
|
5
|
+
export const Spinner = ({ className, color, size = 'big', ref, style, ...otherProps }) => {
|
|
6
|
+
const { componentProps, intrinsicAttributes } = extractIntrinsicViraProps(otherProps);
|
|
7
|
+
return (_jsx("svg", { ...componentProps, ...intrinsicAttributes, ref: ref, className: clsx('Spinner', className), "data-dimension": size, viewBox: "0 0 16 16", xmlns: "http://www.w3.org/2000/svg", ...(color ? { color } : {}), ...(style ? { style } : {}), children: _jsxs("g", { className: "Glyph", fill: "currentColor", children: [_jsx("path", { d: "M0 2h2v12H0z" }), _jsx("path", { d: "M7 2h2v12H7z" }), _jsx("path", { d: "M14 2h2v12h-2z" })] }) }));
|
|
8
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Stack } from './stack';
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
@scope (.Stack) {
|
|
2
|
+
:scope {
|
|
3
|
+
--stack-row-gap: 0;
|
|
4
|
+
--stack-column-gap: 0;
|
|
5
|
+
--stack-h-align: initial;
|
|
6
|
+
--stack-v-align: initial;
|
|
7
|
+
--stack-padding-inline-start: 0;
|
|
8
|
+
--stack-padding-inline-end: 0;
|
|
9
|
+
--stack-padding-block-start: 0;
|
|
10
|
+
--stack-padding-block-end: 0;
|
|
11
|
+
|
|
12
|
+
display: flex;
|
|
13
|
+
flex-direction: column;
|
|
14
|
+
align-items: var(--stack-h-align);
|
|
15
|
+
justify-content: var(--stack-v-align);
|
|
16
|
+
gap: var(--stack-row-gap) var(--stack-column-gap);
|
|
17
|
+
max-inline-size: var(--stack-max-width, none);
|
|
18
|
+
min-inline-size: var(--stack-min-width, none);
|
|
19
|
+
|
|
20
|
+
&[data-stack-direction='column-reverse'] {
|
|
21
|
+
flex-direction: column-reverse;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/* Row layouts: swap which gap token maps to align vs justify */
|
|
25
|
+
&[data-stack-direction='row'],
|
|
26
|
+
&[data-stack-direction='row-reverse'] {
|
|
27
|
+
align-items: var(--stack-v-align);
|
|
28
|
+
justify-content: var(--stack-h-align);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
&[data-stack-direction='row'] {
|
|
32
|
+
flex-direction: row;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
&[data-stack-direction='row-reverse'] {
|
|
36
|
+
flex-direction: row-reverse;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&[data-stack-inline='true'] {
|
|
40
|
+
display: inline-flex;
|
|
41
|
+
flex-grow: 0;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
&[data-stack-wrap='true'] {
|
|
45
|
+
flex-wrap: wrap;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
&[data-stack-has-padding='true'] {
|
|
49
|
+
padding: var(--stack-padding-block-start) var(--stack-padding-inline-end) var(--stack-padding-block-end)
|
|
50
|
+
var(--stack-padding-inline-start);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
&[data-stack-fill-children='true'] > * {
|
|
54
|
+
flex-grow: var(--vira-flex-grow, 1);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { useRender } from '@base-ui/react/use-render';
|
|
2
|
+
import type { ThemeTypes } from '@foundation/platforms/web/vira/types';
|
|
3
|
+
import type * as React from 'react';
|
|
4
|
+
import './stack.css';
|
|
5
|
+
import type { IntrinsicViraProps } from '@react/src/core/props/intrinsic-vira-props';
|
|
6
|
+
type StackAlignment = 'start' | 'center' | 'end' | 'stretch' | 'initial' | 'space-between' | 'space-around' | 'space-evenly';
|
|
7
|
+
type StackSpace = ThemeTypes['space'];
|
|
8
|
+
type StackAxisPadding = StackSpace | [StackSpace | 0, StackSpace | 0];
|
|
9
|
+
/**
|
|
10
|
+
* Public Stack props.
|
|
11
|
+
*
|
|
12
|
+
* Includes standard `div` attributes such as `id`, `role`, `title`, and event handlers,
|
|
13
|
+
* plus Vira-owned flex layout controls and Base UI `render` support for replacing the root element.
|
|
14
|
+
*
|
|
15
|
+
* @default Base UI pass-through props keep upstream defaults.
|
|
16
|
+
*/
|
|
17
|
+
export type StackProps = React.ComponentPropsWithoutRef<'div'> & IntrinsicViraProps & {
|
|
18
|
+
/**
|
|
19
|
+
* Replaces the default `div` root using Base UI render semantics.
|
|
20
|
+
*
|
|
21
|
+
* @default The stack renders a `div` root.
|
|
22
|
+
*/
|
|
23
|
+
render?: useRender.RenderProp;
|
|
24
|
+
/**
|
|
25
|
+
* Ref forwarded to the rendered stack root element.
|
|
26
|
+
*
|
|
27
|
+
* @default No ref is attached.
|
|
28
|
+
*/
|
|
29
|
+
ref?: React.Ref<HTMLElement>;
|
|
30
|
+
/**
|
|
31
|
+
* Renders children across rows or columns using the chosen flex direction.
|
|
32
|
+
*
|
|
33
|
+
* @default 'column'
|
|
34
|
+
*/
|
|
35
|
+
direction?: 'row' | 'column' | 'row-reverse' | 'column-reverse';
|
|
36
|
+
/**
|
|
37
|
+
* Displays the stack as `inline-flex` instead of `flex`.
|
|
38
|
+
*
|
|
39
|
+
* @default false
|
|
40
|
+
*/
|
|
41
|
+
inline?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Allows direct children to wrap onto additional lines when space is constrained.
|
|
44
|
+
*
|
|
45
|
+
* @default false
|
|
46
|
+
*/
|
|
47
|
+
wrap?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Makes direct children grow to fill the available space within the stack.
|
|
50
|
+
*
|
|
51
|
+
* @default true
|
|
52
|
+
*/
|
|
53
|
+
fillChildren?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Sets the gap between flex rows using the Vira space token scale.
|
|
56
|
+
*
|
|
57
|
+
* @default 'medium'
|
|
58
|
+
*/
|
|
59
|
+
rowGap?: StackSpace;
|
|
60
|
+
/**
|
|
61
|
+
* Sets the gap between flex columns using the Vira space token scale.
|
|
62
|
+
*
|
|
63
|
+
* @default 'medium'
|
|
64
|
+
*/
|
|
65
|
+
columnGap?: StackSpace;
|
|
66
|
+
/**
|
|
67
|
+
* Aligns content on the horizontal axis from the consumer point of view.
|
|
68
|
+
*
|
|
69
|
+
* @default 'initial'
|
|
70
|
+
*/
|
|
71
|
+
hAlign?: StackAlignment;
|
|
72
|
+
/**
|
|
73
|
+
* Aligns content on the vertical axis from the consumer point of view.
|
|
74
|
+
*
|
|
75
|
+
* @default 'initial'
|
|
76
|
+
*/
|
|
77
|
+
vAlign?: StackAlignment;
|
|
78
|
+
/**
|
|
79
|
+
* Sets inline padding using one token for both sides or a `[start, end]` tuple.
|
|
80
|
+
*
|
|
81
|
+
* @default No inline padding.
|
|
82
|
+
*/
|
|
83
|
+
hPadding?: StackAxisPadding;
|
|
84
|
+
/**
|
|
85
|
+
* Sets block padding using one token for both sides or a `[start, end]` tuple.
|
|
86
|
+
*
|
|
87
|
+
* @default No block padding.
|
|
88
|
+
*/
|
|
89
|
+
vPadding?: StackAxisPadding;
|
|
90
|
+
/**
|
|
91
|
+
* Applies a maximum width value to the stack root.
|
|
92
|
+
*
|
|
93
|
+
* @default No max width constraint.
|
|
94
|
+
*/
|
|
95
|
+
maxWidth?: string;
|
|
96
|
+
/**
|
|
97
|
+
* Applies a minimum width value to the stack root.
|
|
98
|
+
*
|
|
99
|
+
* @default No min width constraint.
|
|
100
|
+
*/
|
|
101
|
+
minWidth?: string;
|
|
102
|
+
};
|
|
103
|
+
export declare const Stack: React.FC<StackProps>;
|
|
104
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useRender } from '@base-ui/react/use-render';
|
|
3
|
+
import { resolveAxisPadding } from '@react/src/core/styles/resolve-axis-padding';
|
|
4
|
+
import { extractIntrinsicViraProps } from '@react/src/core/props/intrinsic-vira-props';
|
|
5
|
+
import { resolveThemeValue } from '@react/src/core/theme/resolve-theme-value';
|
|
6
|
+
import { clsx } from 'clsx';
|
|
7
|
+
import './stack.css';
|
|
8
|
+
export const Stack = ({ className, direction = 'column', fillChildren = true, hAlign = 'initial', hPadding, inline = false, maxWidth, minWidth, ref, render, rowGap, columnGap, style, vAlign = 'initial', vPadding, wrap = false, ...otherProps }) => {
|
|
9
|
+
const hasPadding = Boolean(hPadding || vPadding);
|
|
10
|
+
const { componentProps, intrinsicAttributes } = extractIntrinsicViraProps(otherProps);
|
|
11
|
+
const dynamicStyle = {
|
|
12
|
+
'--stack-row-gap': resolveThemeValue(rowGap, 'space', 0),
|
|
13
|
+
'--stack-column-gap': resolveThemeValue(columnGap, 'space', 0),
|
|
14
|
+
'--stack-h-align': hAlign,
|
|
15
|
+
'--stack-v-align': vAlign,
|
|
16
|
+
...(maxWidth ? { '--stack-max-width': maxWidth } : {}),
|
|
17
|
+
...(minWidth ? { '--stack-min-width': minWidth } : {}),
|
|
18
|
+
...resolveAxisPadding(hPadding, '--stack-padding-inline-start', '--stack-padding-inline-end'),
|
|
19
|
+
...resolveAxisPadding(vPadding, '--stack-padding-block-start', '--stack-padding-block-end'),
|
|
20
|
+
...style,
|
|
21
|
+
};
|
|
22
|
+
return useRender({
|
|
23
|
+
defaultTagName: 'div',
|
|
24
|
+
render,
|
|
25
|
+
ref,
|
|
26
|
+
props: {
|
|
27
|
+
...componentProps,
|
|
28
|
+
...intrinsicAttributes,
|
|
29
|
+
'data-stack-direction': direction,
|
|
30
|
+
'data-stack-inline': inline ? 'true' : 'false',
|
|
31
|
+
'data-stack-wrap': wrap ? 'true' : 'false',
|
|
32
|
+
'data-stack-fill-children': fillChildren ? 'true' : 'false',
|
|
33
|
+
'data-stack-has-padding': hasPadding ? 'true' : 'false',
|
|
34
|
+
className: clsx('Stack', className),
|
|
35
|
+
style: dynamicStyle,
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Surface } from './surface';
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
@scope (.Surface) {
|
|
2
|
+
:scope {
|
|
3
|
+
--surface-background-hover: var(--surface-background);
|
|
4
|
+
--surface-border-radius: var(--radius-medium);
|
|
5
|
+
--surface-padding-inline-start: 0;
|
|
6
|
+
--surface-padding-inline-end: 0;
|
|
7
|
+
--surface-padding-block-start: 0;
|
|
8
|
+
--surface-padding-block-end: 0;
|
|
9
|
+
|
|
10
|
+
position: relative;
|
|
11
|
+
box-sizing: border-box;
|
|
12
|
+
background: var(--surface-background, transparent);
|
|
13
|
+
border-radius: var(--surface-border-radius);
|
|
14
|
+
border: 0;
|
|
15
|
+
transition: all var(--duration-fast) var(--easing-standard);
|
|
16
|
+
|
|
17
|
+
&[data-surface-has-padding='true'] {
|
|
18
|
+
padding: var(--surface-padding-block-start) var(--surface-padding-inline-end) var(--surface-padding-block-end)
|
|
19
|
+
var(--surface-padding-inline-start);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&[data-surface-border] {
|
|
23
|
+
border-style: solid;
|
|
24
|
+
border-color: var(--global-contrast);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
&[data-surface-border='all'] {
|
|
28
|
+
border-width: 1px;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
&[data-surface-border='top'] {
|
|
32
|
+
border-width: 1px 0 0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
&[data-surface-border='right'] {
|
|
36
|
+
border-width: 0 1px 0 0;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&[data-surface-border='bottom'] {
|
|
40
|
+
border-width: 0 0 1px;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
&[data-surface-border='left'] {
|
|
44
|
+
border-width: 0 0 0 1px;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
&[data-surface-border='x'] {
|
|
48
|
+
border-width: 0 1px;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
&[data-surface-border='y'] {
|
|
52
|
+
border-width: 1px 0;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@media (hover: hover) and (pointer: fine) {
|
|
57
|
+
:scope[data-surface-has-hover-color='true']:hover {
|
|
58
|
+
background: var(--surface-background-hover);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { useRender } from '@base-ui/react/use-render';
|
|
2
|
+
import type { ThemeTypes } from '@foundation/platforms/web/vira/types';
|
|
3
|
+
import type * as React from 'react';
|
|
4
|
+
import './surface.css';
|
|
5
|
+
import type { IntrinsicViraProps } from '@react/src/core/props/intrinsic-vira-props';
|
|
6
|
+
/** Base ramp layer for nested surfaces; clamped to 1–3 at runtime. */
|
|
7
|
+
type SurfaceBaseLevel = 1 | 2 | 3;
|
|
8
|
+
type SurfaceColor = string | SurfaceBaseLevel;
|
|
9
|
+
type SurfaceAxisPadding = ThemeTypes['space'] | [ThemeTypes['space'] | 0, ThemeTypes['space'] | 0];
|
|
10
|
+
/**
|
|
11
|
+
* Public Surface props.
|
|
12
|
+
*
|
|
13
|
+
* Includes standard `div` attributes such as `id`, `role`, `title`, and event handlers,
|
|
14
|
+
* plus Vira-owned container styling controls and Base UI `render` support for replacing the root element.
|
|
15
|
+
*
|
|
16
|
+
* @default Base UI pass-through props keep upstream defaults.
|
|
17
|
+
*/
|
|
18
|
+
export type SurfaceProps = Omit<React.ComponentPropsWithoutRef<'div'>, 'color'> & IntrinsicViraProps & {
|
|
19
|
+
/**
|
|
20
|
+
* Replaces the default `div` root using Base UI render semantics.
|
|
21
|
+
*
|
|
22
|
+
* @default The surface renders a `div` root.
|
|
23
|
+
*/
|
|
24
|
+
render?: useRender.RenderProp;
|
|
25
|
+
/**
|
|
26
|
+
* Ref forwarded to the rendered surface root element.
|
|
27
|
+
*
|
|
28
|
+
* @default No ref is attached.
|
|
29
|
+
*/
|
|
30
|
+
ref?: React.Ref<HTMLElement>;
|
|
31
|
+
/**
|
|
32
|
+
* Sets the resting background using a base ramp layer (`1`–`3`) or a literal CSS color value.
|
|
33
|
+
*
|
|
34
|
+
* @default No background.
|
|
35
|
+
*/
|
|
36
|
+
color?: SurfaceColor;
|
|
37
|
+
/**
|
|
38
|
+
* Sets the hover background on hover-capable pointers using a base ramp layer (`1`–`3`) or literal CSS value.
|
|
39
|
+
*
|
|
40
|
+
* @default No hover color override.
|
|
41
|
+
*/
|
|
42
|
+
hoverColor?: SurfaceColor;
|
|
43
|
+
/**
|
|
44
|
+
* Applies the shared contrast border on the chosen side or axis. Omit for no border.
|
|
45
|
+
*
|
|
46
|
+
* @default No border.
|
|
47
|
+
*/
|
|
48
|
+
border?: 'all' | 'top' | 'right' | 'bottom' | 'left' | 'x' | 'y';
|
|
49
|
+
/**
|
|
50
|
+
* Sets the corner radius from the Vira radius token scale.
|
|
51
|
+
*
|
|
52
|
+
* @default No radius.
|
|
53
|
+
*/
|
|
54
|
+
radius?: ThemeTypes['radius'];
|
|
55
|
+
/**
|
|
56
|
+
* Sets inline padding using one token for both sides or a `[start, end]` tuple.
|
|
57
|
+
*
|
|
58
|
+
* @default No inline padding.
|
|
59
|
+
*/
|
|
60
|
+
hPadding?: SurfaceAxisPadding;
|
|
61
|
+
/**
|
|
62
|
+
* Sets block padding using one token for both sides or a `[start, end]` tuple.
|
|
63
|
+
*
|
|
64
|
+
* @default No block padding.
|
|
65
|
+
*/
|
|
66
|
+
vPadding?: SurfaceAxisPadding;
|
|
67
|
+
};
|
|
68
|
+
export declare const Surface: React.FC<SurfaceProps>;
|
|
69
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useRender } from '@base-ui/react/use-render';
|
|
3
|
+
import { extractIntrinsicViraProps } from '@react/src/core/props/intrinsic-vira-props';
|
|
4
|
+
import { resolveAxisPadding } from '@react/src/core/styles/resolve-axis-padding';
|
|
5
|
+
import { resolveThemeValue } from '@react/src/core/theme/resolve-theme-value';
|
|
6
|
+
import { clsx } from 'clsx';
|
|
7
|
+
import './surface.css';
|
|
8
|
+
const clampSurfaceBaseLevel = (value) => {
|
|
9
|
+
if (value <= 1)
|
|
10
|
+
return 1;
|
|
11
|
+
if (value >= 3)
|
|
12
|
+
return 3;
|
|
13
|
+
return value;
|
|
14
|
+
};
|
|
15
|
+
const toSurfaceColor = (value) => typeof value === 'string' ? value : `var(--base-${clampSurfaceBaseLevel(value)})`;
|
|
16
|
+
export const Surface = ({ border, className, color, hPadding, hoverColor, radius, ref, render, style, vPadding, ...otherProps }) => {
|
|
17
|
+
const hasColor = color !== undefined;
|
|
18
|
+
const hasPadding = Boolean(hPadding || vPadding);
|
|
19
|
+
const hasHoverColor = hoverColor !== undefined;
|
|
20
|
+
const { componentProps, intrinsicAttributes } = extractIntrinsicViraProps(otherProps);
|
|
21
|
+
const dynamicStyle = {
|
|
22
|
+
...(hasColor ? { '--surface-background': toSurfaceColor(color) } : {}),
|
|
23
|
+
...(hasHoverColor ? { '--surface-background-hover': toSurfaceColor(hoverColor) } : {}),
|
|
24
|
+
'--surface-border-radius': resolveThemeValue(radius, 'radius', 'var(--radius-medium)'),
|
|
25
|
+
...resolveAxisPadding(hPadding, '--surface-padding-inline-start', '--surface-padding-inline-end'),
|
|
26
|
+
...resolveAxisPadding(vPadding, '--surface-padding-block-start', '--surface-padding-block-end'),
|
|
27
|
+
...style,
|
|
28
|
+
};
|
|
29
|
+
return useRender({
|
|
30
|
+
defaultTagName: 'div',
|
|
31
|
+
render,
|
|
32
|
+
ref,
|
|
33
|
+
props: {
|
|
34
|
+
...componentProps,
|
|
35
|
+
...intrinsicAttributes,
|
|
36
|
+
...(border ? { 'data-surface-border': border } : {}),
|
|
37
|
+
'data-surface-has-hover-color': hasHoverColor ? 'true' : 'false',
|
|
38
|
+
'data-surface-has-padding': hasPadding ? 'true' : 'false',
|
|
39
|
+
className: clsx('Surface', className),
|
|
40
|
+
style: dynamicStyle,
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Switch } from './switch';
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
@scope (.Switch) {
|
|
2
|
+
:scope {
|
|
3
|
+
--switch-track-block-size: var(--space-large);
|
|
4
|
+
--switch-track-radius: var(--radius-small);
|
|
5
|
+
--switch-track-background: var(--global-contrast);
|
|
6
|
+
--switch-thumb-background: var(--global-primary);
|
|
7
|
+
--switch-thumb-size: calc(var(--space-large) - var(--space-x-small));
|
|
8
|
+
--switch-thumb-inset: var(--space-2x-small);
|
|
9
|
+
--switch-thumb-radius: calc(var(--radius-x-small) + var(--switch-thumb-inset));
|
|
10
|
+
|
|
11
|
+
> .SwitchRoot {
|
|
12
|
+
position: relative;
|
|
13
|
+
appearance: none;
|
|
14
|
+
border: 0;
|
|
15
|
+
box-shadow: none;
|
|
16
|
+
inline-size: calc((var(--switch-thumb-size) * 2) + var(--switch-thumb-inset) * 2);
|
|
17
|
+
block-size: var(--switch-track-block-size);
|
|
18
|
+
background: var(--switch-track-background);
|
|
19
|
+
border-radius: var(--switch-track-radius);
|
|
20
|
+
|
|
21
|
+
&[data-size='small'] {
|
|
22
|
+
--switch-track-radius: var(--radius-x-small);
|
|
23
|
+
--switch-track-block-size: var(--space-medium);
|
|
24
|
+
--switch-thumb-size: calc(var(--space-medium) - var(--space-x-small));
|
|
25
|
+
--switch-thumb-radius: calc(var(--radius-x-small) - var(--switch-thumb-inset));
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* Checked track and thumb colors when not disabled or invalid */
|
|
29
|
+
&[data-checked]:not([data-disabled]):not([data-invalid]) {
|
|
30
|
+
--switch-track-background: var(--global-primary);
|
|
31
|
+
--switch-thumb-background: var(--base-1);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* Invalid: red inset border and focus outline on SwitchRoot (from parent or root data-invalid) */
|
|
35
|
+
:scope[data-invalid] > &:not([data-disabled]),
|
|
36
|
+
&[data-invalid]:not([data-disabled]) {
|
|
37
|
+
box-shadow: inset 0 0 0 1px var(--highlight-red);
|
|
38
|
+
outline-color: oklab(from var(--highlight-red) l a b / 0.5);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* Disabled: muted track/thumb and no shadow (from parent or root data-disabled) */
|
|
42
|
+
:scope[data-disabled] > &,
|
|
43
|
+
&[data-disabled] {
|
|
44
|
+
--switch-track-background: var(--global-disabled-background);
|
|
45
|
+
--switch-thumb-background: var(--global-disabled-foreground);
|
|
46
|
+
box-shadow: none;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
> .Thumb {
|
|
50
|
+
position: absolute;
|
|
51
|
+
inset-block: var(--switch-thumb-inset);
|
|
52
|
+
inset-inline-start: var(--switch-thumb-inset);
|
|
53
|
+
background: var(--switch-thumb-background);
|
|
54
|
+
inline-size: var(--switch-thumb-size);
|
|
55
|
+
block-size: var(--switch-thumb-size);
|
|
56
|
+
border-radius: var(--switch-thumb-radius);
|
|
57
|
+
transition: translate var(--easing-entrance) var(--duration-fast);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
&[data-checked] > .Thumb {
|
|
61
|
+
translate: 100% 0;
|
|
62
|
+
}
|
|
63
|
+
&[data-checked]:dir(rtl) > .Thumb {
|
|
64
|
+
translate: -100% 0;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
> .Copy > .Label {
|
|
69
|
+
-webkit-user-select: none;
|
|
70
|
+
user-select: none;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { FieldRoot } from '@base-ui/react/field';
|
|
2
|
+
import type { SwitchRoot } from '@base-ui/react/switch';
|
|
3
|
+
import type * as React from 'react';
|
|
4
|
+
import type { IntrinsicViraProps } from '@react/src/core/props/intrinsic-vira-props';
|
|
5
|
+
import './switch.css';
|
|
6
|
+
/**
|
|
7
|
+
* Public Switch props.
|
|
8
|
+
*
|
|
9
|
+
* Includes Base UI switch props such as `checked`, `defaultChecked`, `disabled`,
|
|
10
|
+
* and change handlers, plus optional field copy rendered with the shared Vira
|
|
11
|
+
* field label/helper pattern.
|
|
12
|
+
*
|
|
13
|
+
* @default Base UI pass-through props keep upstream defaults.
|
|
14
|
+
*/
|
|
15
|
+
export type SwitchProps = SwitchRoot.Props & 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
|
+
/**
|
|
29
|
+
* Visible label rendered with `Field.Label` and `Text`.
|
|
30
|
+
*
|
|
31
|
+
* @default No label is rendered.
|
|
32
|
+
*/
|
|
33
|
+
label?: React.ReactNode;
|
|
34
|
+
/**
|
|
35
|
+
* Helper copy rendered with `Field.Description` and `Text` while the field is valid.
|
|
36
|
+
*
|
|
37
|
+
* @default No description is rendered.
|
|
38
|
+
*/
|
|
39
|
+
description?: React.ReactNode;
|
|
40
|
+
/**
|
|
41
|
+
* Error copy rendered with `Field.Error` and `Text` in the same slot as `description`.
|
|
42
|
+
* Replaces description while the field is invalid.
|
|
43
|
+
*
|
|
44
|
+
* @default No static error copy is rendered.
|
|
45
|
+
*/
|
|
46
|
+
error?: React.ReactNode;
|
|
47
|
+
/**
|
|
48
|
+
* Controls the visual switch size.
|
|
49
|
+
*
|
|
50
|
+
* @default 'small'
|
|
51
|
+
*/
|
|
52
|
+
size?: 'regular' | 'small';
|
|
53
|
+
};
|
|
54
|
+
export declare const Switch: React.FC<SwitchProps>;
|
|
@@ -0,0 +1,15 @@
|
|
|
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 { Switch as PrimitiveSwitch } from '@base-ui/react/switch';
|
|
5
|
+
import { FieldHelperCopy } from '@react/src/components/basic-input/field-helper-copy';
|
|
6
|
+
import { Stack } from '@react/src/components/stack';
|
|
7
|
+
import { Text } from '@react/src/components/text';
|
|
8
|
+
import { extractIntrinsicViraProps } from '@react/src/core/props/intrinsic-vira-props';
|
|
9
|
+
import { clsx } from 'clsx';
|
|
10
|
+
import './switch.css';
|
|
11
|
+
export const Switch = ({ className, description, dirty, disabled, error, invalid, label, name, ref, size = 'small', touched, validate, validationDebounceTime, validationMode, ...switchRootProps }) => {
|
|
12
|
+
const hasTextDescription = Boolean(description || error);
|
|
13
|
+
const { componentProps, intrinsicAttributes } = extractIntrinsicViraProps(switchRootProps);
|
|
14
|
+
return (_jsxs(Field.Root, { ...intrinsicAttributes, className: "Switch", dirty: dirty, disabled: disabled, invalid: invalid, name: name, touched: touched, validate: validate, validationDebounceTime: validationDebounceTime, validationMode: validationMode, render: _jsx(Stack, { direction: "row", columnGap: size === 'small' ? 'small' : 'medium', fillChildren: false, vAlign: hasTextDescription ? 'start' : 'center' }), children: [_jsx(PrimitiveSwitch.Root, { ...componentProps, className: clsx('SwitchRoot', className), "data-size": size, disabled: disabled, name: name, nativeButton: true, render: _jsx("button", { type: "button" }), ref: ref, children: _jsx(PrimitiveSwitch.Thumb, { className: "Thumb" }) }), label || description || error ? (_jsxs(Stack, { direction: "column", fillChildren: false, rowGap: "small", className: "Copy", children: [label && (_jsx(Text, { size: size === 'small' ? 'small' : 'medium', weight: "semibold", className: "Label", render: _jsx(Field.Label, {}), children: label })), _jsx(FieldHelperCopy, { description: description, error: error })] })) : null] }));
|
|
15
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Text } from './text';
|