// Tremor Raw Select [v0.0.0] import React from "react"; import * as SelectPrimitives from "@radix-ui/react-select"; import { cx, focusInput, hasErrorInput } from "../../lib/utils"; import { ChevronDownIcon, ChevronUpIcon, ChevronUpDownIcon, CheckIcon, } from "@heroicons/react/20/solid"; const Select = SelectPrimitives.Root; Select.displayName = "Select"; const SelectGroup = SelectPrimitives.Group; SelectGroup.displayName = "SelectGroup"; const SelectValue = SelectPrimitives.Value; SelectValue.displayName = "SelectValue"; const selectTriggerStyles = [ cx( // base "onvo-group/trigger onvo-flex onvo-w-full onvo-select-none onvo-items-center onvo-justify-between onvo-truncate onvo-rounded-md onvo-border onvo-px-2 onvo-py-1.5 onvo-shadow-sm onvo-outline-none onvo-transition sm:onvo-text-sm", // border color "onvo-border-slate-200 dark:onvo-border-slate-800", // text color "onvo-text-slate-900 dark:onvo-text-slate-50", // placeholder "data-[placeholder]:onvo-text-slate-400 data-[placeholder]:dark:onvo-text-slate-500", // background color "bg-white dark:bg-slate-950", // hover "hover:onvo-bg-slate-50 hover:dark:onvo-bg-slate-950/50", // disabled "data-[disabled]:onvo-bg-slate-100 data-[disabled]:onvo-text-slate-400", "data-[disabled]:dark:onvo-border-slate-700 data-[disabled]:dark:onvo-bg-slate-800 data-[disabled]:dark:onvo-text-slate-500", focusInput // invalid (optional) // "aria-[invalid=true]:dark:ring-red-400/20 aria-[invalid=true]:ring-2 aria-[invalid=true]:ring-red-200 aria-[invalid=true]:border-red-500 invalid:ring-2 invalid:ring-red-200 invalid:border-red-500" ), ]; const SelectTrigger = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef & { hasError?: boolean; } >(({ className, hasError, children, ...props }, forwardedRef) => { return ( {children} ); }); SelectTrigger.displayName = "SelectTrigger"; const SelectScrollUpButton = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, ...props }, forwardedRef) => ( )); SelectScrollUpButton.displayName = SelectPrimitives.ScrollUpButton.displayName; const SelectScrollDownButton = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, ...props }, forwardedRef) => ( )); SelectScrollDownButton.displayName = SelectPrimitives.ScrollDownButton.displayName; const SelectContent = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >( ( { className, position = "popper", children, sideOffset = 8, collisionPadding = 10, ...props }, forwardedRef ) => ( {children} ) ); SelectContent.displayName = "SelectContent"; const SelectGroupLabel = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, ...props }, forwardedRef) => ( )); SelectGroupLabel.displayName = "SelectGroupLabel"; const SelectItem = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, children, ...props }, forwardedRef) => { return ( {children} ); }); SelectItem.displayName = "SelectItem"; const SelectSeparator = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, ...props }, forwardedRef) => ( )); SelectSeparator.displayName = "SelectSeparator"; export { Select, SelectContent, SelectGroup, SelectGroupLabel, SelectItem, SelectSeparator, SelectTrigger, SelectValue, };