UNPKG

@arolariu/components

Version:

A collection of reusable components for React applications, built as ESM & CJS modules with tree shake, minify and bundler optimizations enabled, for the lowest bundle size (import cost)!

1 lines 9.63 kB
{"version":3,"file":"components\\ui\\select.cjs","sources":["webpack://@arolariu/components/./src/components/ui/select.tsx"],"sourcesContent":["\r\n\r\nimport * as React from \"react\";\r\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\r\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\r\nimport { cn } from \"./../../lib/utils\";\r\n\r\nfunction Select({\r\n ...props\r\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\r\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\r\n}\r\n\r\nfunction SelectGroup({\r\n ...props\r\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\r\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\r\n}\r\n\r\nfunction SelectValue({\r\n ...props\r\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\r\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\r\n}\r\n\r\nfunction SelectTrigger({\r\n className,\r\n children,\r\n ...props\r\n}: React.ComponentProps<typeof SelectPrimitive.Trigger>) {\r\n return (\r\n <SelectPrimitive.Trigger\r\n data-slot=\"select-trigger\"\r\n className={cn(\r\n \"border-neutral-200 data-placeholder:text-neutral-500 [&_svg:not([class*='text-'])]:text-neutral-500 focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 flex h-9 w-full items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-2xs transition-[color,box-shadow] outline-hidden focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[slot=select-value]:*:line-clamp-1 data-[slot=select-value]:*:flex data-[slot=select-value]:*:items-center data-[slot=select-value]:*:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 dark:border-neutral-800 dark:data-placeholder:text-neutral-400 dark:[&_svg:not([class*='text-'])]:text-neutral-400 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <SelectPrimitive.Icon asChild>\r\n <ChevronDownIcon className=\"size-4 opacity-50\" />\r\n </SelectPrimitive.Icon>\r\n </SelectPrimitive.Trigger>\r\n );\r\n}\r\n\r\nfunction SelectContent({\r\n className,\r\n children,\r\n position = \"popper\",\r\n ...props\r\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\r\n return (\r\n <SelectPrimitive.Portal>\r\n <SelectPrimitive.Content\r\n data-slot=\"select-content\"\r\n className={cn(\r\n \"bg-white text-neutral-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-neutral-200 shadow-md dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800\",\r\n position === \"popper\" &&\r\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\r\n className\r\n )}\r\n position={position}\r\n {...props}\r\n >\r\n <SelectScrollUpButton />\r\n <SelectPrimitive.Viewport\r\n className={cn(\r\n \"p-1\",\r\n position === \"popper\" &&\r\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1\"\r\n )}\r\n >\r\n {children}\r\n </SelectPrimitive.Viewport>\r\n <SelectScrollDownButton />\r\n </SelectPrimitive.Content>\r\n </SelectPrimitive.Portal>\r\n );\r\n}\r\n\r\nfunction SelectLabel({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\r\n return (\r\n <SelectPrimitive.Label\r\n data-slot=\"select-label\"\r\n className={cn(\"px-2 py-1.5 text-sm font-medium\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction SelectItem({\r\n className,\r\n children,\r\n ...props\r\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\r\n return (\r\n <SelectPrimitive.Item\r\n data-slot=\"select-item\"\r\n className={cn(\r\n \"focus:bg-neutral-100 focus:text-neutral-900 [&_svg:not([class*='text-'])]:text-neutral-500 relative flex w-full cursor-default items-center gap-2 rounded-xs py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 last:[span]:*:flex last:[span]:*:items-center last:[span]:*:gap-2 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:[&_svg:not([class*='text-'])]:text-neutral-400\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <span className=\"absolute right-2 flex size-3.5 items-center justify-center\">\r\n <SelectPrimitive.ItemIndicator>\r\n <CheckIcon className=\"size-4\" />\r\n </SelectPrimitive.ItemIndicator>\r\n </span>\r\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\r\n </SelectPrimitive.Item>\r\n );\r\n}\r\n\r\nfunction SelectSeparator({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\r\n return (\r\n <SelectPrimitive.Separator\r\n data-slot=\"select-separator\"\r\n className={cn(\r\n \"bg-neutral-200 pointer-events-none -mx-1 my-1 h-px dark:bg-neutral-800\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction SelectScrollUpButton({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\r\n return (\r\n <SelectPrimitive.ScrollUpButton\r\n data-slot=\"select-scroll-up-button\"\r\n className={cn(\r\n \"flex cursor-default items-center justify-center py-1\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <ChevronUpIcon className=\"size-4\" />\r\n </SelectPrimitive.ScrollUpButton>\r\n );\r\n}\r\n\r\nfunction SelectScrollDownButton({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\r\n return (\r\n <SelectPrimitive.ScrollDownButton\r\n data-slot=\"select-scroll-down-button\"\r\n className={cn(\r\n \"flex cursor-default items-center justify-center py-1\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <ChevronDownIcon className=\"size-4\" />\r\n </SelectPrimitive.ScrollDownButton>\r\n );\r\n}\r\n\r\nexport {\r\n Select,\r\n SelectContent,\r\n SelectGroup,\r\n SelectItem,\r\n SelectLabel,\r\n SelectScrollDownButton,\r\n SelectScrollUpButton,\r\n SelectSeparator,\r\n SelectTrigger,\r\n SelectValue,\r\n};\r\n"],"names":["Select","props","SelectPrimitive","SelectGroup","SelectValue","SelectTrigger","className","children","cn","ChevronDownIcon","SelectContent","position","SelectScrollUpButton","SelectScrollDownButton","SelectLabel","SelectItem","CheckIcon","SelectSeparator","ChevronUpIcon"],"mappings":"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"}