ivt
Version:
Ivt Components Library
1 lines • 14.8 kB
Source Map (JSON)
{"version":3,"file":"select-BBatgGtL.mjs","sources":["../../node_modules/lucide-react/dist/esm/icons/chevron-up.js","../../src/components/ui/select/select.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.479.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m18 15-6-6-6 6\", key: \"153udz\" }]];\nconst ChevronUp = createLucideIcon(\"ChevronUp\", __iconNode);\n\nexport { __iconNode, ChevronUp as default };\n//# sourceMappingURL=chevron-up.js.map\n","\"use client\";\n\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon, XIcon } from \"lucide-react\";\nimport * as React from \"react\";\nimport { Separator } from \"@/components/ui/separator/separator\";\nimport { cn } from \"@/lib/utils\";\n\nconst SelectContext = React.createContext<{\n\tclearable?: boolean;\n\tonValueChange?: (value: string) => void;\n\tvalue?: string;\n\tdisabled?: boolean;\n}>({});\n\nfunction Select({\n\tclearable = false,\n\tonValueChange,\n\tdefaultValue,\n\tvalue: controlledValue,\n\tdisabled,\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Root> & {\n\tclearable?: boolean;\n}) {\n\tconst [internalValue, setInternalValue] = React.useState(defaultValue || \"\");\n\n\t// Se for controlado, usa o value da prop. Se não, usa o estado interno.\n\tconst value = controlledValue !== undefined ? controlledValue : internalValue;\n\n\tconst handleValueChange = (val: string) => {\n\t\tif (controlledValue === undefined) {\n\t\t\tsetInternalValue(val);\n\t\t}\n\t\tonValueChange?.(val);\n\t};\n\n\treturn (\n\t\t<SelectContext.Provider\n\t\t\tvalue={{ clearable, onValueChange: handleValueChange, value, disabled }}\n\t\t>\n\t\t\t<SelectPrimitive.Root\n\t\t\t\tdata-slot=\"select\"\n\t\t\t\tonValueChange={handleValueChange}\n\t\t\t\tvalue={value}\n\t\t\t\tdisabled={disabled}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</SelectContext.Provider>\n\t);\n}\n\nfunction SelectGroup({ ...props }: React.ComponentProps<typeof SelectPrimitive.Group>) {\n\treturn <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>) {\n\treturn <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n\tclassName,\n\tsize = \"default\",\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n\tsize?: \"sm\" | \"default\";\n}) {\n\tconst { clearable, onValueChange, value, disabled } = React.useContext(SelectContext);\n\n\tconst handleClear = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\te.preventDefault();\n\t\tonValueChange?.(\"\");\n\t};\n\n\tconst hasValue = !!value;\n\n\treturn (\n\t\t<SelectPrimitive.Trigger\n\t\t\tdata-slot=\"select-trigger\"\n\t\t\tdata-size={size}\n\t\t\tclassName={cn(\n\t\t\t\t\"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-full items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:min-h-9 data-[size=sm]:min-h-8 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className=\"flex flex-1 items-center min-w-0\">{children}</div>\n\n\t\t\t<div className=\"flex items-center gap-1 shrink-0 ml-auto pointer-events-auto\">\n\t\t\t\t{clearable && hasValue && !disabled && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{/* biome-ignore lint/a11y/useKeyWithClickEvents: clear button action */}\n\t\t\t\t\t\t{/* biome-ignore lint/a11y/noStaticElementInteractions: clear button action */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\thandleClear(event);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tclassName=\"cursor-pointer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<XIcon className=\"text-muted-foreground h-4\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<Separator orientation=\"vertical\" className=\"flex h-full min-h-6\" />\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t\t<SelectPrimitive.Icon asChild>\n\t\t\t\t\t<ChevronDownIcon className=\"size-4\" />\n\t\t\t\t</SelectPrimitive.Icon>\n\t\t\t</div>\n\t\t</SelectPrimitive.Trigger>\n\t);\n}\n\nfunction SelectContent({\n\tclassName,\n\tchildren,\n\tposition = \"popper\",\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n\treturn (\n\t\t<SelectPrimitive.Portal>\n\t\t\t<SelectPrimitive.Content\n\t\t\t\tdata-slot=\"select-content\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-popover text-popover-foreground 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-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md\",\n\t\t\t\t\tposition === \"popper\" &&\n\t\t\t\t\t\t\"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\tposition={position}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<SelectScrollUpButton />\n\t\t\t\t<SelectPrimitive.Viewport\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"p-1\",\n\t\t\t\t\t\tposition === \"popper\" &&\n\t\t\t\t\t\t\t\"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1\",\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</SelectPrimitive.Viewport>\n\t\t\t\t<SelectScrollDownButton />\n\t\t\t</SelectPrimitive.Content>\n\t\t</SelectPrimitive.Portal>\n\t);\n}\n\nfunction SelectLabel({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>) {\n\treturn (\n\t\t<SelectPrimitive.Label\n\t\t\tdata-slot=\"select-label\"\n\t\t\tclassName={cn(\"text-muted-foreground px-2 py-1.5 text-xs\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SelectItem({\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n\treturn (\n\t\t<SelectPrimitive.Item\n\t\t\tdata-slot=\"select-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm 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 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className=\"absolute right-2 flex size-3.5 items-center justify-center\">\n\t\t\t\t<SelectPrimitive.ItemIndicator>\n\t\t\t\t\t<CheckIcon className=\"size-4\" />\n\t\t\t\t</SelectPrimitive.ItemIndicator>\n\t\t\t</span>\n\t\t\t<SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n\t\t</SelectPrimitive.Item>\n\t);\n}\n\nfunction SelectSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n\treturn (\n\t\t<SelectPrimitive.Separator\n\t\t\tdata-slot=\"select-separator\"\n\t\t\tclassName={cn(\"bg-border pointer-events-none -mx-1 my-1 h-px\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SelectScrollUpButton({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n\treturn (\n\t\t<SelectPrimitive.ScrollUpButton\n\t\t\tdata-slot=\"select-scroll-up-button\"\n\t\t\tclassName={cn(\"flex cursor-default items-center justify-center py-1\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ChevronUpIcon className=\"size-4\" />\n\t\t</SelectPrimitive.ScrollUpButton>\n\t);\n}\n\nfunction SelectScrollDownButton({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n\treturn (\n\t\t<SelectPrimitive.ScrollDownButton\n\t\t\tdata-slot=\"select-scroll-down-button\"\n\t\t\tclassName={cn(\"flex cursor-default items-center justify-center py-1\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ChevronDownIcon className=\"size-4\" />\n\t\t</SelectPrimitive.ScrollDownButton>\n\t);\n}\n\nexport {\n\tSelect,\n\tSelectContent,\n\tSelectGroup,\n\tSelectItem,\n\tSelectLabel,\n\tSelectScrollDownButton,\n\tSelectScrollUpButton,\n\tSelectSeparator,\n\tSelectTrigger,\n\tSelectValue,\n};\n"],"names":["SelectContext","React","createContext","Select","clearable","onValueChange","defaultValue","value","controlledValue","disabled","props","internalValue","setInternalValue","useState","undefined","handleValueChange","val","Provider","SelectPrimitive","Root","data-slot","SelectGroup","Group","SelectValue","Value","SelectTrigger","className","size","children","useContext","handleClear","e","stopPropagation","preventDefault","hasValue","Trigger","data-size","cn","div","onClick","event","XIcon","Separator","orientation","Icon","asChild","ChevronDownIcon","SelectContent","position","Portal","Content","SelectScrollUpButton","Viewport","SelectScrollDownButton","SelectLabel","Label","SelectItem","Item","span","ItemIndicator","CheckIcon","ItemText","SelectSeparator","ScrollUpButton","ChevronUpIcon","ScrollDownButton"],"mappings":"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","x_google_ignoreList":[0]}