ivt 0.5.2 → 0.5.3

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.
@@ -99,6 +99,7 @@ const MultiSelect = /*#__PURE__*/ React.forwardRef(({ options, onValueChange, va
99
99
  const [selectedValues, setSelectedValues] = React.useState(defaultValue);
100
100
  const [isPopoverOpen, setIsPopoverOpen] = React.useState(false);
101
101
  const [isAnimating, setIsAnimating] = React.useState(false);
102
+ const [isShiftOn, setIsShiftOn] = React.useState(false);
102
103
  const handleInputKeyDown = (event)=>{
103
104
  if (event.key === "Enter") {
104
105
  setIsPopoverOpen(true);
@@ -119,6 +120,22 @@ const MultiSelect = /*#__PURE__*/ React.forwardRef(({ options, onValueChange, va
119
120
  setSelectedValues(newSelectedValues);
120
121
  onValueChange(newSelectedValues);
121
122
  };
123
+ const toggleInterval = (index)=>{
124
+ if (selectedValues.length < 1) return;
125
+ const lastIndex = options.findIndex((o)=>o.value === selectedValues.at(-1));
126
+ const start = Math.min(lastIndex, index);
127
+ const end = Math.max(lastIndex, index) + 1;
128
+ const rangeValues = options.slice(start, end).map((o)=>o.value);
129
+ const areAllSelected = rangeValues.every((v)=>selectedValues.includes(v));
130
+ const newSelectedValues = areAllSelected ? selectedValues.filter((v)=>!rangeValues.includes(v)) : [
131
+ ...new Set([
132
+ ...selectedValues,
133
+ ...rangeValues
134
+ ])
135
+ ];
136
+ setSelectedValues(newSelectedValues);
137
+ onValueChange(newSelectedValues);
138
+ };
122
139
  const handleClear = ()=>{
123
140
  setSelectedValues([]);
124
141
  onValueChange([]);
@@ -237,7 +254,13 @@ const MultiSelect = /*#__PURE__*/ React.forwardRef(({ options, onValueChange, va
237
254
  })))), /*#__PURE__*/ React.createElement(PopoverContent, {
238
255
  className: "w-auto p-0",
239
256
  align: "start",
240
- onEscapeKeyDown: ()=>setIsPopoverOpen(false)
257
+ onEscapeKeyDown: ()=>setIsPopoverOpen(false),
258
+ onKeyDown: (event)=>{
259
+ event.key === "Shift" ? setIsShiftOn(true) : null;
260
+ },
261
+ onKeyUp: (event)=>{
262
+ event.key === "Shift" ? setIsShiftOn(false) : null;
263
+ }
241
264
  }, /*#__PURE__*/ React.createElement(Command, null, /*#__PURE__*/ React.createElement(CommandInput, {
242
265
  placeholder: "Buscar...",
243
266
  onKeyDown: handleInputKeyDown
@@ -249,11 +272,14 @@ const MultiSelect = /*#__PURE__*/ React.forwardRef(({ options, onValueChange, va
249
272
  className: cn(selectedValues.length === options.length ? "" : "opacity-50 [&_svg]:invisible")
250
273
  }, /*#__PURE__*/ React.createElement(Check, {
251
274
  className: "text-foreground h-4 w-4"
252
- }))), options.map((option)=>{
275
+ }))), options.map((option, index)=>{
253
276
  const isSelected = selectedValues.includes(option.value);
254
277
  return /*#__PURE__*/ React.createElement(CommandItem, {
255
278
  key: option.value,
256
- onSelect: ()=>toggleOption(option.value),
279
+ onSelect: ()=>{
280
+ if (isShiftOn) toggleInterval(index);
281
+ else toggleOption(option.value);
282
+ },
257
283
  className: "flex cursor-pointer items-center justify-between"
258
284
  }, /*#__PURE__*/ React.createElement("div", {
259
285
  className: "flex items-center"
@@ -274,4 +300,4 @@ const MultiSelect = /*#__PURE__*/ React.forwardRef(({ options, onValueChange, va
274
300
  MultiSelect.displayName = "MultiSelect";
275
301
 
276
302
  export { MultiSelect as M };
277
- //# sourceMappingURL=multi-select-BAp66njF.mjs.map
303
+ //# sourceMappingURL=multi-select-Ek4Es0bm.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-select-Ek4Es0bm.mjs","sources":["../../node_modules/lucide-react/dist/esm/icons/wand-sparkles.js","../../src/components/ui/multi-select/multi-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 = [\n [\n \"path\",\n {\n d: \"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72\",\n key: \"ul74o6\"\n }\n ],\n [\"path\", { d: \"m14 7 3 3\", key: \"1r5n42\" }],\n [\"path\", { d: \"M5 6v4\", key: \"ilb8ba\" }],\n [\"path\", { d: \"M19 14v4\", key: \"blhpug\" }],\n [\"path\", { d: \"M10 2v2\", key: \"7u0qdc\" }],\n [\"path\", { d: \"M7 8H3\", key: \"zfb6yr\" }],\n [\"path\", { d: \"M21 16h-4\", key: \"1cnmox\" }],\n [\"path\", { d: \"M11 3H9\", key: \"1obp7u\" }]\n];\nconst WandSparkles = createLucideIcon(\"WandSparkles\", __iconNode);\n\nexport { __iconNode, WandSparkles as default };\n//# sourceMappingURL=wand-sparkles.js.map\n","\"use client\";\n\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport { CheckIcon, ChevronsUpDownIcon, WandSparkles, XIcon } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { Badge, type BadgeVariants } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n\tCommand,\n\tCommandEmpty,\n\tCommandGroup,\n\tCommandInput,\n\tCommandItem,\n\tCommandList,\n\tCommandSeparator,\n} from \"@/components/ui/command\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/ui/popover\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { cn } from \"@/lib/utils\";\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"../tooltip\";\n\n/**\n * Variants for the multi-select component to handle different styles.\n * Uses class-variance-authority (cva) to define different styles based on \"variant\" prop.\n */\nconst multiSelectVariants = cva(\"m-1 transition ease-in-out delay-150 duration-300\", {\n\tvariants: {\n\t\tvariant: {\n\t\t\tdefault: \"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80\",\n\t\t\tsecondary: \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n\t\t\tdestructive:\n\t\t\t\t\"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80\",\n\t\t\tpositive:\n\t\t\t\t\"border-transparent bg-positive text-positive-foreground shadow hover:bg-positive/80\",\n\t\t\twarning: \"border-transparent bg-warning text-warning-foreground shadow hover:bg-warning/80\",\n\t\t\tinfo: \"border-transparent bg-info text-info-foreground shadow hover:bg-info/80\",\n\t\t\toutline: \"text-foreground bg-transparent hover:bg-transparent border\",\n\t\t},\n\t\tsubtle: {\n\t\t\ttrue: \"\",\n\t\t\tfalse: \"\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tvariant: \"default\",\n\t},\n});\n\n/**\n * Props for MultiSelect component\n */\ninterface MultiSelectProps\n\textends React.ButtonHTMLAttributes<HTMLButtonElement>,\n\t\tVariantProps<typeof multiSelectVariants> {\n\t/**\n\t * An array of option objects to be displayed in the multi-select component.\n\t * Each option object has a label, value, and an optional icon.\n\t */\n\toptions: {\n\t\t/** The text to display for the option. */\n\t\tlabel: string;\n\t\t/** The unique value associated with the option. */\n\t\tvalue: string;\n\t\t/** Optional icon component to display alongside the option. */\n\t\ticon?: React.ComponentType<{ className?: string }>;\n\t}[];\n\n\t/**\n\t * Callback function triggered when the selected values change.\n\t * Receives an array of the new selected values.\n\t */\n\tonValueChange: (value: string[]) => void;\n\n\t/** The default selected values when the component mounts. */\n\tdefaultValue?: string[];\n\n\t/**\n\t * Placeholder text to be displayed when no values are selected.\n\t * Optional, defaults to \"Select options\".\n\t */\n\tplaceholder?: string;\n\n\t/**\n\t * Animation duration in seconds for the visual effects (e.g., bouncing badges).\n\t * Optional, defaults to 0 (no animation).\n\t */\n\tanimation?: number;\n\n\t/**\n\t * Maximum number of items to display. Extra selected items will be summarized.\n\t * Optional, defaults to 3.\n\t */\n\tmaxCount?: number;\n\n\t/**\n\t * The modality of the popover. When set to true, interaction with outside elements\n\t * will be disabled and only popover content will be visible to screen readers.\n\t * Optional, defaults to false.\n\t */\n\tmodalPopover?: boolean;\n\n\t/**\n\t * If true, renders the multi-select component as a child of another component.\n\t * Optional, defaults to false.\n\t */\n\tasChild?: boolean;\n\n\t/**\n\t * Additional class names to apply custom styles to the multi-select component.\n\t * Optional, can be used to add custom styles.\n\t */\n\tclassName?: string;\n\tlabel?: string;\n\tdescription?: string;\n\tsubtle?: boolean;\n}\n\nexport const MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(\n\t(\n\t\t{\n\t\t\toptions,\n\t\t\tonValueChange,\n\t\t\tvariant,\n\t\t\tdefaultValue = [],\n\t\t\tplaceholder = \"Select options\",\n\t\t\tanimation = 0,\n\t\t\tmaxCount = 3,\n\t\t\tmodalPopover = false,\n\t\t\tasChild = false,\n\t\t\tclassName,\n\t\t\tlabel,\n\t\t\tdescription,\n\t\t\tsubtle = false,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst [selectedValues, setSelectedValues] = React.useState<string[]>(defaultValue);\n\t\tconst [isPopoverOpen, setIsPopoverOpen] = React.useState(false);\n\t\tconst [isAnimating, setIsAnimating] = React.useState(false);\n\t\tconst [isShiftOn, setIsShiftOn] = React.useState(false);\n\n\t\tconst handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n\t\t\tif (event.key === \"Enter\") {\n\t\t\t\tsetIsPopoverOpen(true);\n\t\t\t} else if (event.key === \"Backspace\" && !event.currentTarget.value) {\n\t\t\t\tconst newSelectedValues = [...selectedValues];\n\t\t\t\tnewSelectedValues.pop();\n\t\t\t\tsetSelectedValues(newSelectedValues);\n\t\t\t\tonValueChange(newSelectedValues);\n\t\t\t}\n\t\t};\n\n\t\tconst toggleOption = (option: string) => {\n\t\t\tconst newSelectedValues = selectedValues.includes(option)\n\t\t\t\t? selectedValues.filter((value) => value !== option)\n\t\t\t\t: [...selectedValues, option];\n\t\t\tsetSelectedValues(newSelectedValues);\n\t\t\tonValueChange(newSelectedValues);\n\t\t};\n\n\t\tconst toggleInterval = (index: number) => {\n\t\t\tif (selectedValues.length < 1) return;\n\n\t\t\tconst lastIndex = options.findIndex((o) => o.value === selectedValues.at(-1));\n\t\t\tconst start = Math.min(lastIndex, index);\n\t\t\tconst end = Math.max(lastIndex, index) + 1;\n\t\t\tconst rangeValues = options.slice(start, end).map((o) => o.value);\n\t\t\tconst areAllSelected = rangeValues.every((v) => selectedValues.includes(v));\n\t\t\tconst newSelectedValues = areAllSelected\n\t\t\t\t? selectedValues.filter((v) => !rangeValues.includes(v))\n\t\t\t\t: [...new Set([...selectedValues, ...rangeValues])];\n\t\t\tsetSelectedValues(newSelectedValues);\n\t\t\tonValueChange(newSelectedValues);\n\t\t};\n\n\t\tconst handleClear = () => {\n\t\t\tsetSelectedValues([]);\n\t\t\tonValueChange([]);\n\t\t};\n\n\t\tconst handleTogglePopover = () => {\n\t\t\tsetIsPopoverOpen((prev) => !prev);\n\t\t};\n\n\t\tconst clearExtraOptions = () => {\n\t\t\tconst newSelectedValues = selectedValues.slice(0, maxCount);\n\t\t\tsetSelectedValues(newSelectedValues);\n\t\t\tonValueChange(newSelectedValues);\n\t\t};\n\n\t\tconst toggleAll = () => {\n\t\t\tif (selectedValues.length === options.length) {\n\t\t\t\thandleClear();\n\t\t\t} else {\n\t\t\t\tconst allValues = options.map((option) => option.value);\n\t\t\t\tsetSelectedValues(allValues);\n\t\t\t\tonValueChange(allValues);\n\t\t\t}\n\t\t};\n\n\t\tconst subtleStyles = (variant: BadgeVariants) => {\n\t\t\tif (variant === \"default\") {\n\t\t\t\treturn \"border-transparent bg-accent text-primary hover:bg-accent/80\";\n\t\t\t}\n\t\t\tif (variant === \"destructive\") {\n\t\t\t\treturn \"border-transparent bg-destructive-foreground text-destructive hover:bg-destructive-foreground/80\";\n\t\t\t}\n\t\t\tif (variant === \"positive\") {\n\t\t\t\treturn \"border-transparent bg-positive-foreground text-positive hover:bg-positive-foreground/80\";\n\t\t\t}\n\t\t\tif (variant === \"warning\") {\n\t\t\t\treturn \"border-transparent bg-warning-foreground text-warning hover:bg-warning-foreground/80\";\n\t\t\t}\n\t\t\tif (variant === \"info\") {\n\t\t\t\treturn \"border-transparent bg-info-foreground text-info hover:bg-info-foreground/80\";\n\t\t\t}\n\n\t\t\treturn \"\";\n\t\t};\n\n\t\tconst finalSubtleStyles = subtleStyles(variant);\n\n\t\treturn (\n\t\t\t<div className=\"font-lato space-y-2\">\n\t\t\t\t{label && <p className=\"text-foreground text-sm font-medium\">{label}</p>}\n\n\t\t\t\t<Popover open={isPopoverOpen} onOpenChange={setIsPopoverOpen} modal={modalPopover}>\n\t\t\t\t\t<PopoverTrigger asChild>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t\t{...props}\n\t\t\t\t\t\t\tonClick={handleTogglePopover}\n\t\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\t\taria-expanded={isPopoverOpen}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"flex h-auto min-h-9 w-full items-center justify-between rounded-md border bg-inherit px-4 py-2 hover:bg-inherit [&_svg]:pointer-events-auto\",\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{selectedValues.length > 0 ? (\n\t\t\t\t\t\t\t\t<div className=\"flex w-full items-center justify-between\">\n\t\t\t\t\t\t\t\t\t<div className=\"flex flex-wrap items-center\">\n\t\t\t\t\t\t\t\t\t\t{selectedValues.slice(0, maxCount).map((value) => {\n\t\t\t\t\t\t\t\t\t\t\tconst option = options.find((o) => o.value === value);\n\t\t\t\t\t\t\t\t\t\t\tconst IconComponent = option?.icon;\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"px-1\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisAnimating ? \"animate-bounce\" : \"\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmultiSelectVariants({ variant }),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsubtle && finalSubtleStyles,\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ animationDuration: `${animation}s` }}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{IconComponent && <IconComponent className=\"mr-2 h-4 w-4\" />}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{option?.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<XIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"ml-2 size-3 cursor-pointer\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttoggleOption(value);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t{selectedValues.length > maxCount && (\n\t\t\t\t\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"text-foreground border-foreground/1 bg-transparent px-1 hover:bg-transparent\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tisAnimating ? \"animate-bounce\" : \"\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tmultiSelectVariants({ variant }),\n\t\t\t\t\t\t\t\t\t\t\t\t\tsubtle && finalSubtleStyles,\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ animationDuration: `${animation}s` }}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{`+ ${selectedValues.length - maxCount} itens`}\n\t\t\t\t\t\t\t\t\t\t\t\t<XIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"ml-2 size-3 cursor-pointer\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearExtraOptions();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div className=\"flex items-center justify-between gap-1\">\n\t\t\t\t\t\t\t\t\t\t<TooltipProvider>\n\t\t\t\t\t\t\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t\t\t\t\t\t\t<TooltipTrigger>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<XIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"text-muted-foreground h-4 cursor-pointer\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleClear();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</TooltipTrigger>\n\t\t\t\t\t\t\t\t\t\t\t\t<TooltipContent>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"text-xs\">Limpar tudo</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</TooltipContent>\n\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t\t</TooltipProvider>\n\n\t\t\t\t\t\t\t\t\t\t<Separator orientation=\"vertical\" className=\"flex h-full min-h-6\" />\n\t\t\t\t\t\t\t\t\t\t<ChevronsUpDownIcon className=\"text-muted-foreground h-4 cursor-pointer\" />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<div className=\"flex w-full items-center justify-between\">\n\t\t\t\t\t\t\t\t\t<span className=\"text-muted-foreground\">{placeholder}</span>\n\t\t\t\t\t\t\t\t\t<ChevronsUpDownIcon className=\"text-muted-foreground h-4 cursor-pointer\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</PopoverTrigger>\n\t\t\t\t\t<PopoverContent\n\t\t\t\t\t\tclassName=\"w-auto p-0\"\n\t\t\t\t\t\talign=\"start\"\n\t\t\t\t\t\tonEscapeKeyDown={() => setIsPopoverOpen(false)}\n\t\t\t\t\t\tonKeyDown={(event) => {\n\t\t\t\t\t\t\tevent.key === \"Shift\" ? setIsShiftOn(true) : null;\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonKeyUp={(event) => {\n\t\t\t\t\t\t\tevent.key === \"Shift\" ? setIsShiftOn(false) : null;\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Command>\n\t\t\t\t\t\t\t<CommandInput placeholder=\"Buscar...\" onKeyDown={handleInputKeyDown} />\n\t\t\t\t\t\t\t<CommandList>\n\t\t\t\t\t\t\t\t<CommandEmpty>Nenhum resultado encontrado.</CommandEmpty>\n\t\t\t\t\t\t\t\t<CommandGroup>\n\t\t\t\t\t\t\t\t\t<CommandItem\n\t\t\t\t\t\t\t\t\t\tkey=\"all\"\n\t\t\t\t\t\t\t\t\t\tonSelect={toggleAll}\n\t\t\t\t\t\t\t\t\t\tclassName=\"flex cursor-pointer items-center justify-between\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span>(Selecionar tudo)</span>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\tselectedValues.length === options.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"opacity-50 [&_svg]:invisible\",\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<CheckIcon className=\"text-foreground h-4 w-4\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</CommandItem>\n\t\t\t\t\t\t\t\t\t{options.map((option, index) => {\n\t\t\t\t\t\t\t\t\t\tconst isSelected = selectedValues.includes(option.value);\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<CommandItem\n\t\t\t\t\t\t\t\t\t\t\t\tkey={option.value}\n\t\t\t\t\t\t\t\t\t\t\t\tonSelect={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (isShiftOn) toggleInterval(index);\n\t\t\t\t\t\t\t\t\t\t\t\t\telse toggleOption(option.value);\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"flex cursor-pointer items-center justify-between\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"flex items-center\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{option.icon && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option.icon className=\"text-muted-foreground mr-2 h-4 w-4\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span>{option.label}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div className={cn(isSelected ? \"\" : \"opacity-50 [&_svg]:invisible\")}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<CheckIcon className=\"text-foreground h-4 w-4\" />\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</CommandItem>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t</CommandGroup>\n\t\t\t\t\t\t\t\t<CommandSeparator />\n\t\t\t\t\t\t\t</CommandList>\n\t\t\t\t\t\t</Command>\n\t\t\t\t\t</PopoverContent>\n\t\t\t\t\t{animation > 0 && selectedValues.length > 0 && (\n\t\t\t\t\t\t<WandSparkles\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"text-foreground bg-background my-2 h-3 w-3 cursor-pointer\",\n\t\t\t\t\t\t\t\tisAnimating ? \"\" : \"text-muted-foreground\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tonClick={() => setIsAnimating(!isAnimating)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</Popover>\n\n\t\t\t\t{description && <p className=\"text-muted-foreground text-sm\">{description}</p>}\n\t\t\t</div>\n\t\t);\n\t},\n);\n\nMultiSelect.displayName = \"MultiSelect\";\n"],"names":["multiSelectVariants","cva","variants","variant","default","secondary","destructive","positive","warning","info","outline","subtle","true","false","defaultVariants","MultiSelect","React","forwardRef","options","onValueChange","defaultValue","placeholder","animation","maxCount","modalPopover","asChild","className","label","description","props","ref","selectedValues","setSelectedValues","useState","isPopoverOpen","setIsPopoverOpen","isAnimating","setIsAnimating","isShiftOn","setIsShiftOn","handleInputKeyDown","event","key","currentTarget","value","newSelectedValues","pop","toggleOption","option","includes","filter","toggleInterval","index","length","lastIndex","findIndex","o","at","start","Math","min","end","max","rangeValues","slice","map","areAllSelected","every","v","Set","handleClear","handleTogglePopover","prev","clearExtraOptions","toggleAll","allValues","subtleStyles","finalSubtleStyles","div","p","Popover","open","onOpenChange","modal","PopoverTrigger","Button","onClick","aria-expanded","cn","find","IconComponent","icon","Badge","style","animationDuration","XIcon","stopPropagation","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent","span","Separator","orientation","ChevronsUpDownIcon","PopoverContent","align","onEscapeKeyDown","onKeyDown","onKeyUp","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","CommandItem","onSelect","CheckIcon","isSelected","CommandSeparator","WandSparkles","displayName"],"mappings":";;;;;;;;;;;;;;AAGO,MAAM,UAAuB,GAAA;IAClC;AACE,QAAA,MAAA;QACA;AACE,YAAA,CAAG,EAAA,+IAAA;YACH,GAAK,EAAA;;KAET;AACA,IAAA;AAAC,QAAA,MAAQ;QAAA;YAAE,CAAA,EAAG,WAAa;YAAA,GAAA,EAAK;;KAAU;AAC1C,IAAA;AAAC,QAAA,MAAQ;QAAA;YAAE,CAAA,EAAG,QAAU;YAAA,GAAA,EAAK;;KAAU;AACvC,IAAA;AAAC,QAAA,MAAQ;QAAA;YAAE,CAAA,EAAG,UAAY;YAAA,GAAA,EAAK;;KAAU;AACzC,IAAA;AAAC,QAAA,MAAQ;QAAA;YAAE,CAAA,EAAG,SAAW;YAAA,GAAA,EAAK;;KAAU;AACxC,IAAA;AAAC,QAAA,MAAQ;QAAA;YAAE,CAAA,EAAG,QAAU;YAAA,GAAA,EAAK;;KAAU;AACvC,IAAA;AAAC,QAAA,MAAQ;QAAA;YAAE,CAAA,EAAG,WAAa;YAAA,GAAA,EAAK;;KAAU;AAC1C,IAAA;AAAC,QAAA,MAAQ;QAAA;YAAE,CAAA,EAAG,SAAW;YAAA,GAAA,EAAK;;AAAU;CAC1C;AAaM,MAAA,YAAA,GAAe,gBAAiB,CAAA,cAAA,EAAgB,UAAU,CAAA;;ACThE;;;IAIA,MAAMA,mBAAAA,GAAsBC,GAAAA,CAAI,mDAAA,EAAqD;IACpFC,QAAAA,EAAU;QACTC,OAAAA,EAAS;YACRC,OAAAA,EAAS,kFAAA;YACTC,SAAAA,EAAW,iFAAA;YACXC,WAAAA,EACC,8FAAA;YACDC,QAAAA,EACC,qFAAA;YACDC,OAAAA,EAAS,kFAAA;YACTC,IAAAA,EAAM,yEAAA;YACNC,OAAAA,EAAS;AACV,SAAA;QACAC,MAAAA,EAAQ;YACPC,IAAAA,EAAM,EAAA;YACNC,KAAAA,EAAO;AACR;AACD,KAAA;IACAC,eAAAA,EAAiB;QAChBX,OAAAA,EAAS;AACV;AACD,CAAA,CAAA;MAuEaY,WAAAA,iBAAcC,KAAAA,CAAMC,UAAU,CAC1C,CACC,EACCC,OAAO,EACPC,aAAa,EACbhB,OAAO,EACPiB,YAAAA,GAAe,EAAE,EACjBC,WAAAA,GAAc,gBAAgB,EAC9BC,SAAAA,GAAY,CAAC,EACbC,QAAAA,GAAW,CAAC,EACZC,YAAAA,GAAe,KAAK,EACpBC,OAAAA,GAAU,KAAK,EACfC,SAAS,EACTC,KAAK,EACLC,WAAW,EACXjB,MAAAA,GAAS,KAAK,EACd,GAAGkB,OACH,EACDC,GAAAA,GAAAA;AAEA,IAAA,MAAM,CAACC,cAAAA,EAAgBC,iBAAAA,CAAkB,GAAGhB,KAAAA,CAAMiB,QAAQ,CAAWb,YAAAA,CAAAA;AACrE,IAAA,MAAM,CAACc,aAAAA,EAAeC,gBAAAA,CAAiB,GAAGnB,KAAAA,CAAMiB,QAAQ,CAAC,KAAA,CAAA;AACzD,IAAA,MAAM,CAACG,WAAAA,EAAaC,cAAAA,CAAe,GAAGrB,KAAAA,CAAMiB,QAAQ,CAAC,KAAA,CAAA;AACrD,IAAA,MAAM,CAACK,SAAAA,EAAWC,YAAAA,CAAa,GAAGvB,KAAAA,CAAMiB,QAAQ,CAAC,KAAA,CAAA;AAEjD,IAAA,MAAMO,qBAAqB,CAACC,KAAAA,GAAAA;QAC3B,IAAIA,KAAAA,CAAMC,GAAG,KAAK,OAAA,EAAS;YAC1BP,gBAAAA,CAAiB,IAAA,CAAA;QAClB,CAAA,MAAO,IAAIM,KAAAA,CAAMC,GAAG,KAAK,WAAA,IAAe,CAACD,KAAAA,CAAME,aAAa,CAACC,KAAK,EAAE;AACnE,YAAA,MAAMC,iBAAAA,GAAoB;AAAId,gBAAAA,GAAAA;AAAe,aAAA;AAC7Cc,YAAAA,iBAAAA,CAAkBC,GAAG,EAAA;YACrBd,iBAAAA,CAAkBa,iBAAAA,CAAAA;YAClB1B,aAAAA,CAAc0B,iBAAAA,CAAAA;AACf,QAAA;AACD,IAAA,CAAA;AAEA,IAAA,MAAME,eAAe,CAACC,MAAAA,GAAAA;QACrB,MAAMH,iBAAAA,GAAoBd,cAAAA,CAAekB,QAAQ,CAACD,MAAAA,CAAAA,GAC/CjB,cAAAA,CAAemB,MAAM,CAAC,CAACN,KAAAA,GAAUA,KAAAA,KAAUI,MAAAA,CAAAA,GAC3C;AAAIjB,YAAAA,GAAAA,cAAAA;AAAgBiB,YAAAA;AAAO,SAAA;QAC9BhB,iBAAAA,CAAkBa,iBAAAA,CAAAA;QAClB1B,aAAAA,CAAc0B,iBAAAA,CAAAA;AACf,IAAA,CAAA;AAEA,IAAA,MAAMM,iBAAiB,CAACC,KAAAA,GAAAA;QACvB,IAAIrB,cAAAA,CAAesB,MAAM,GAAG,CAAA,EAAG;AAE/B,QAAA,MAAMC,SAAAA,GAAYpC,OAAAA,CAAQqC,SAAS,CAAC,CAACC,CAAAA,GAAMA,CAAAA,CAAEZ,KAAK,KAAKb,cAAAA,CAAe0B,EAAE,CAAC,EAAC,CAAA,CAAA;AAC1E,QAAA,MAAMC,KAAAA,GAAQC,IAAAA,CAAKC,GAAG,CAACN,SAAAA,EAAWF,KAAAA,CAAAA;AAClC,QAAA,MAAMS,GAAAA,GAAMF,IAAAA,CAAKG,GAAG,CAACR,WAAWF,KAAAA,CAAAA,GAAS,CAAA;QACzC,MAAMW,WAAAA,GAAc7C,OAAAA,CAAQ8C,KAAK,CAACN,KAAAA,EAAOG,GAAAA,CAAAA,CAAKI,GAAG,CAAC,CAACT,CAAAA,GAAMA,CAAAA,CAAEZ,KAAK,CAAA;QAChE,MAAMsB,cAAAA,GAAiBH,YAAYI,KAAK,CAAC,CAACC,CAAAA,GAAMrC,cAAAA,CAAekB,QAAQ,CAACmB,CAAAA,CAAAA,CAAAA;QACxE,MAAMvB,iBAAAA,GAAoBqB,cAAAA,GACvBnC,cAAAA,CAAemB,MAAM,CAAC,CAACkB,CAAAA,GAAM,CAACL,WAAAA,CAAYd,QAAQ,CAACmB,CAAAA,CAAAA,CAAAA,GACnD;AAAI,YAAA,GAAA,IAAIC,GAAAA,CAAI;AAAItC,gBAAAA,GAAAA,cAAAA;AAAmBgC,gBAAAA,GAAAA;AAAY,aAAA;AAAE,SAAA;QACpD/B,iBAAAA,CAAkBa,iBAAAA,CAAAA;QAClB1B,aAAAA,CAAc0B,iBAAAA,CAAAA;AACf,IAAA,CAAA;AAEA,IAAA,MAAMyB,WAAAA,GAAc,IAAA;AACnBtC,QAAAA,iBAAAA,CAAkB,EAAE,CAAA;AACpBb,QAAAA,aAAAA,CAAc,EAAE,CAAA;AACjB,IAAA,CAAA;AAEA,IAAA,MAAMoD,mBAAAA,GAAsB,IAAA;QAC3BpC,gBAAAA,CAAiB,CAACqC,OAAS,CAACA,IAAAA,CAAAA;AAC7B,IAAA,CAAA;AAEA,IAAA,MAAMC,iBAAAA,GAAoB,IAAA;AACzB,QAAA,MAAM5B,iBAAAA,GAAoBd,cAAAA,CAAeiC,KAAK,CAAC,CAAA,EAAGzC,QAAAA,CAAAA;QAClDS,iBAAAA,CAAkBa,iBAAAA,CAAAA;QAClB1B,aAAAA,CAAc0B,iBAAAA,CAAAA;AACf,IAAA,CAAA;AAEA,IAAA,MAAM6B,SAAAA,GAAY,IAAA;AACjB,QAAA,IAAI3C,cAAAA,CAAesB,MAAM,KAAKnC,OAAAA,CAAQmC,MAAM,EAAE;AAC7CiB,YAAAA,WAAAA,EAAAA;QACD,CAAA,MAAO;AACN,YAAA,MAAMK,YAAYzD,OAAAA,CAAQ+C,GAAG,CAAC,CAACjB,MAAAA,GAAWA,OAAOJ,KAAK,CAAA;YACtDZ,iBAAAA,CAAkB2C,SAAAA,CAAAA;YAClBxD,aAAAA,CAAcwD,SAAAA,CAAAA;AACf,QAAA;AACD,IAAA,CAAA;AAEA,IAAA,MAAMC,eAAe,CAACzE,OAAAA,GAAAA;AACrB,QAAA,IAAIA,YAAY,SAAA,EAAW;YAC1B,OAAO,8DAAA;AACR,QAAA;AACA,QAAA,IAAIA,YAAY,aAAA,EAAe;YAC9B,OAAO,kGAAA;AACR,QAAA;AACA,QAAA,IAAIA,YAAY,UAAA,EAAY;YAC3B,OAAO,yFAAA;AACR,QAAA;AACA,QAAA,IAAIA,YAAY,SAAA,EAAW;YAC1B,OAAO,sFAAA;AACR,QAAA;AACA,QAAA,IAAIA,YAAY,MAAA,EAAQ;YACvB,OAAO,6EAAA;AACR,QAAA;QAEA,OAAO,EAAA;AACR,IAAA,CAAA;AAEA,IAAA,MAAM0E,oBAAoBD,YAAAA,CAAazE,OAAAA,CAAAA;AAEvC,IAAA,qBACC,KAAA,CAAA,aAAA,CAAC2E,KAAAA,EAAAA;QAAIpD,SAAAA,EAAU;AACbC,KAAAA,EAAAA,KAAAA,kBAAS,KAAA,CAAA,aAAA,CAACoD,GAAAA,EAAAA;QAAErD,SAAAA,EAAU;AAAuCC,KAAAA,EAAAA,KAAAA,CAAAA,gBAE9D,KAAA,CAAA,aAAA,CAACqD,OAAAA,EAAAA;QAAQC,IAAAA,EAAM/C,aAAAA;QAAegD,YAAAA,EAAc/C,gBAAAA;QAAkBgD,KAAAA,EAAO3D;qBACpE,KAAA,CAAA,aAAA,CAAC4D,cAAAA,EAAAA;QAAe3D,OAAAA,EAAAA;qBACf,KAAA,CAAA,aAAA,CAAC4D,MAAAA,EAAAA;QACAvD,GAAAA,EAAKA,GAAAA;AACJ,QAAA,GAAGD,KAAK;QACTyD,OAAAA,EAASf,mBAAAA;QACTpE,OAAAA,EAAQ,SAAA;QACRoF,eAAAA,EAAerD,aAAAA;AACfR,QAAAA,SAAAA,EAAW8D,GACV,6IAAA,EACA9D,SAAAA;OAGAK,cAAAA,CAAesB,MAAM,GAAG,CAAA,iBACxB,KAAA,CAAA,aAAA,CAACyB,KAAAA,EAAAA;QAAIpD,SAAAA,EAAU;qBACd,KAAA,CAAA,aAAA,CAACoD,KAAAA,EAAAA;QAAIpD,SAAAA,EAAU;AACbK,KAAAA,EAAAA,cAAAA,CAAeiC,KAAK,CAAC,CAAA,EAAGzC,QAAAA,CAAAA,CAAU0C,GAAG,CAAC,CAACrB,KAAAA,GAAAA;QACvC,MAAMI,MAAAA,GAAS9B,QAAQuE,IAAI,CAAC,CAACjC,CAAAA,GAAMA,CAAAA,CAAEZ,KAAK,KAAKA,KAAAA,CAAAA;AAC/C,QAAA,MAAM8C,gBAAgB1C,MAAAA,EAAQ2C,IAAAA;AAC9B,QAAA,qBACC,KAAA,CAAA,aAAA,CAACC,KAAAA,EAAAA;YACAlD,GAAAA,EAAKE,KAAAA;AACLlB,YAAAA,SAAAA,EAAW8D,EAAAA,CACV,MAAA,EACApD,WAAAA,GAAc,gBAAA,GAAmB,IACjCpC,mBAAAA,CAAoB;AAAEG,gBAAAA;AAAQ,aAAA,CAAA,EAC9BQ,MAAAA,IAAUkE,iBAAAA,CAAAA;YAEXgB,KAAAA,EAAO;gBAAEC,iBAAAA,EAAmB,CAAA,EAAGxE,SAAAA,CAAU,CAAC;AAAE;AAE3CoE,SAAAA,EAAAA,aAAAA,kBAAiB,KAAA,CAAA,aAAA,CAACA,aAAAA,EAAAA;YAAchE,SAAAA,EAAU;AAC1CsB,SAAAA,CAAAA,EAAAA,MAAAA,EAAQrB,qBACT,KAAA,CAAA,aAAA,CAACoE,CAAAA,EAAAA;YACArE,SAAAA,EAAU,4BAAA;AACV4D,YAAAA,OAAAA,EAAS,CAAC7C,KAAAA,GAAAA;AACTA,gBAAAA,KAAAA,CAAMuD,eAAe,EAAA;gBACrBjD,YAAAA,CAAaH,KAAAA,CAAAA;AACd,YAAA;;AAIJ,IAAA,CAAA,CAAA,EACCb,cAAAA,CAAesB,MAAM,GAAG9B,QAAAA,kBACxB,KAAA,CAAA,aAAA,CAACqE,KAAAA,EAAAA;AACAlE,QAAAA,SAAAA,EAAW8D,EAAAA,CACV,8EAAA,EACApD,WAAAA,GAAc,gBAAA,GAAmB,IACjCpC,mBAAAA,CAAoB;AAAEG,YAAAA;AAAQ,SAAA,CAAA,EAC9BQ,MAAAA,IAAUkE,iBAAAA,CAAAA;QAEXgB,KAAAA,EAAO;YAAEC,iBAAAA,EAAmB,CAAA,EAAGxE,SAAAA,CAAU,CAAC;AAAE;OAE3C,CAAC,EAAE,EAAES,cAAAA,CAAesB,MAAM,GAAG9B,QAAAA,CAAS,MAAM,CAAC,gBAC9C,KAAA,CAAA,aAAA,CAACwE,CAAAA,EAAAA;QACArE,SAAAA,EAAU,4BAAA;AACV4D,QAAAA,OAAAA,EAAS,CAAC7C,KAAAA,GAAAA;AACTA,YAAAA,KAAAA,CAAMuD,eAAe,EAAA;AACrBvB,YAAAA,iBAAAA,EAAAA;AACD,QAAA;wBAKJ,KAAA,CAAA,aAAA,CAACK,KAAAA,EAAAA;QAAIpD,SAAAA,EAAU;AACd,KAAA,gBAAA,KAAA,CAAA,aAAA,CAACuE,eAAAA,EAAAA,IAAAA,gBACA,KAAA,CAAA,aAAA,CAACC,OAAAA,EAAAA,IAAAA,gBACA,KAAA,CAAA,aAAA,CAACC,oCACA,KAAA,CAAA,aAAA,CAACJ,CAAAA,EAAAA;QACArE,SAAAA,EAAU,0CAAA;AACV4D,QAAAA,OAAAA,EAAS,CAAC7C,KAAAA,GAAAA;AACTA,YAAAA,KAAAA,CAAMuD,eAAe,EAAA;AACrB1B,YAAAA,WAAAA,EAAAA;AACD,QAAA;AAGF,KAAA,CAAA,CAAA,gBAAA,KAAA,CAAA,aAAA,CAAC8B,oCACA,KAAA,CAAA,aAAA,CAACC,MAAAA,EAAAA;QAAK3E,SAAAA,EAAU;AAAU,KAAA,EAAA,aAAA,CAAA,CAAA,CAAA,CAAA,gBAK7B,KAAA,CAAA,aAAA,CAAC4E,SAAAA,EAAAA;QAAUC,WAAAA,EAAY,UAAA;QAAW7E,SAAAA,EAAU;sBAC5C,KAAA,CAAA,aAAA,CAAC8E,cAAAA,EAAAA;QAAmB9E,SAAAA,EAAU;yBAIhC,KAAA,CAAA,aAAA,CAACoD,KAAAA,EAAAA;QAAIpD,SAAAA,EAAU;qBACd,KAAA,CAAA,aAAA,CAAC2E,MAAAA,EAAAA;QAAK3E,SAAAA,EAAU;AAAyBL,KAAAA,EAAAA,WAAAA,CAAAA,gBACzC,KAAA,CAAA,aAAA,CAACmF,cAAAA,EAAAA;QAAmB9E,SAAAA,EAAU;yBAKlC,KAAA,CAAA,aAAA,CAAC+E,cAAAA,EAAAA;QACA/E,SAAAA,EAAU,YAAA;QACVgF,KAAAA,EAAM,OAAA;AACNC,QAAAA,eAAAA,EAAiB,IAAMxE,gBAAAA,CAAiB,KAAA,CAAA;AACxCyE,QAAAA,SAAAA,EAAW,CAACnE,KAAAA,GAAAA;AACXA,YAAAA,KAAAA,CAAMC,GAAG,KAAK,OAAA,GAAUH,YAAAA,CAAa,IAAA,CAAA,GAAQ,IAAA;AAC9C,QAAA,CAAA;AACAsE,QAAAA,OAAAA,EAAS,CAACpE,KAAAA,GAAAA;AACTA,YAAAA,KAAAA,CAAMC,GAAG,KAAK,OAAA,GAAUH,YAAAA,CAAa,KAAA,CAAA,GAAS,IAAA;AAC/C,QAAA;AAEA,KAAA,gBAAA,KAAA,CAAA,aAAA,CAACuE,6BACA,KAAA,CAAA,aAAA,CAACC,YAAAA,EAAAA;QAAa1F,WAAAA,EAAY,WAAA;QAAYuF,SAAAA,EAAWpE;AACjD,KAAA,CAAA,gBAAA,KAAA,CAAA,aAAA,CAACwE,iCACA,KAAA,CAAA,aAAA,CAACC,YAAAA,EAAAA,IAAAA,EAAa,8BAAA,CAAA,gBACd,KAAA,CAAA,aAAA,CAACC,kCACA,KAAA,CAAA,aAAA,CAACC,WAAAA,EAAAA;QACAzE,GAAAA,EAAI,KAAA;QACJ0E,QAAAA,EAAU1C,SAAAA;QACVhD,SAAAA,EAAU;qBAEV,KAAA,CAAA,aAAA,CAAC2E,MAAAA,EAAAA,IAAAA,EAAK,oCACN,KAAA,CAAA,aAAA,CAACvB,KAAAA,EAAAA;AACApD,QAAAA,SAAAA,EAAW8D,GACVzD,cAAAA,CAAesB,MAAM,KAAKnC,OAAAA,CAAQmC,MAAM,GACrC,EAAA,GACA,8BAAA;qBAGJ,KAAA,CAAA,aAAA,CAACgE,KAAAA,EAAAA;QAAU3F,SAAAA,EAAU;UAGtBR,OAAAA,CAAQ+C,GAAG,CAAC,CAACjB,MAAAA,EAAQI,KAAAA,GAAAA;AACrB,QAAA,MAAMkE,UAAAA,GAAavF,cAAAA,CAAekB,QAAQ,CAACD,OAAOJ,KAAK,CAAA;AACvD,QAAA,qBACC,KAAA,CAAA,aAAA,CAACuE,WAAAA,EAAAA;AACAzE,YAAAA,GAAAA,EAAKM,OAAOJ,KAAK;YACjBwE,QAAAA,EAAU,IAAA;AACT,gBAAA,IAAI9E,WAAWa,cAAAA,CAAeC,KAAAA,CAAAA;AACzBL,qBAAAA,YAAAA,CAAaC,OAAOJ,KAAK,CAAA;AAC/B,YAAA,CAAA;YACAlB,SAAAA,EAAU;yBAEV,KAAA,CAAA,aAAA,CAACoD,KAAAA,EAAAA;YAAIpD,SAAAA,EAAU;AACbsB,SAAAA,EAAAA,MAAAA,CAAO2C,IAAI,kBACX,KAAA,CAAA,aAAA,CAAC3C,MAAAA,CAAO2C,IAAI,EAAA;YAACjE,SAAAA,EAAU;AAExB,SAAA,CAAA,gBAAA,KAAA,CAAA,aAAA,CAAC2E,MAAAA,EAAAA,IAAAA,EAAMrD,MAAAA,CAAOrB,KAAK,CAAA,CAAA,gBAEpB,KAAA,CAAA,aAAA,CAACmD,KAAAA,EAAAA;YAAIpD,SAAAA,EAAW8D,EAAAA,CAAG8B,aAAa,EAAA,GAAK,8BAAA;yBACpC,KAAA,CAAA,aAAA,CAACD,KAAAA,EAAAA;YAAU3F,SAAAA,EAAU;;IAIzB,CAAA,CAAA,CAAA,gBAED,KAAA,CAAA,aAAA,CAAC6F,4BAIHjG,SAAAA,GAAY,CAAA,IAAKS,eAAesB,MAAM,GAAG,mBACzC,KAAA,CAAA,aAAA,CAACmE,YAAAA,EAAAA;QACA9F,SAAAA,EAAW8D,EAAAA,CACV,2DAAA,EACApD,WAAAA,GAAc,EAAA,GAAK,uBAAA,CAAA;QAEpBkD,OAAAA,EAAS,IAAMjD,eAAe,CAACD,WAAAA;AAKjCR,KAAAA,CAAAA,CAAAA,EAAAA,WAAAA,kBAAe,KAAA,CAAA,aAAA,CAACmD,GAAAA,EAAAA;QAAErD,SAAAA,EAAU;AAAiCE,KAAAA,EAAAA,WAAAA,CAAAA,CAAAA;AAGjE,CAAA;AAGDb,WAAAA,CAAY0G,WAAW,GAAG,aAAA;;;;","x_google_ignoreList":[0]}
@@ -1,4 +1,4 @@
1
- export { M as MultiSelect } from '../chunks/multi-select-BAp66njF.mjs';
1
+ export { M as MultiSelect } from '../chunks/multi-select-Ek4Es0bm.mjs';
2
2
  import 'class-variance-authority';
3
3
  import 'react';
4
4
  import '../chunks/utils-DfaTa-5f.mjs';
@@ -9,7 +9,7 @@ import { C as CalendarDays } from '../chunks/calendar-days-C_RzSweF.mjs';
9
9
  import { C as Checkbox } from '../chunks/checkbox-BvnI-3Q6.mjs';
10
10
  import { C as CalendarRange } from '../chunks/CalendarRange-cGKHXdiT.mjs';
11
11
  import { C as ComboboxField } from '../chunks/ComboboxField-BTKXl9y7.mjs';
12
- import { M as MultiSelect } from '../chunks/multi-select-BAp66njF.mjs';
12
+ import { M as MultiSelect } from '../chunks/multi-select-Ek4Es0bm.mjs';
13
13
  import { B as Button } from '../chunks/button-BrmYbiY8.mjs';
14
14
  import { B as Badge } from '../chunks/badge-CpWQDnGV.mjs';
15
15
  import { S as ScrollArea } from '../chunks/scroll-area-Bu_eg6tq.mjs';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "author": "Investtools",
3
3
  "name": "ivt",
4
- "version": "0.5.2",
4
+ "version": "0.5.3",
5
5
  "description": "Ivt Components Library",
6
6
  "keywords": [
7
7
  "ivt",
@@ -1 +0,0 @@
1
- {"version":3,"file":"multi-select-BAp66njF.mjs","sources":["../../node_modules/lucide-react/dist/esm/icons/wand-sparkles.js","../../src/components/ui/multi-select/multi-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 = [\n [\n \"path\",\n {\n d: \"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72\",\n key: \"ul74o6\"\n }\n ],\n [\"path\", { d: \"m14 7 3 3\", key: \"1r5n42\" }],\n [\"path\", { d: \"M5 6v4\", key: \"ilb8ba\" }],\n [\"path\", { d: \"M19 14v4\", key: \"blhpug\" }],\n [\"path\", { d: \"M10 2v2\", key: \"7u0qdc\" }],\n [\"path\", { d: \"M7 8H3\", key: \"zfb6yr\" }],\n [\"path\", { d: \"M21 16h-4\", key: \"1cnmox\" }],\n [\"path\", { d: \"M11 3H9\", key: \"1obp7u\" }]\n];\nconst WandSparkles = createLucideIcon(\"WandSparkles\", __iconNode);\n\nexport { __iconNode, WandSparkles as default };\n//# sourceMappingURL=wand-sparkles.js.map\n","\"use client\";\n\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport { CheckIcon, ChevronsUpDownIcon, WandSparkles, XIcon } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { Badge, BadgeVariants } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n\tCommand,\n\tCommandEmpty,\n\tCommandGroup,\n\tCommandInput,\n\tCommandItem,\n\tCommandList,\n\tCommandSeparator,\n} from \"@/components/ui/command\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/ui/popover\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { cn } from \"@/lib/utils\";\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"../tooltip\";\n\n/**\n * Variants for the multi-select component to handle different styles.\n * Uses class-variance-authority (cva) to define different styles based on \"variant\" prop.\n */\nconst multiSelectVariants = cva(\"m-1 transition ease-in-out delay-150 duration-300\", {\n\tvariants: {\n\t\tvariant: {\n\t\t\tdefault: \"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80\",\n\t\t\tsecondary: \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n\t\t\tdestructive:\n\t\t\t\t\"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80\",\n\t\t\tpositive:\n\t\t\t\t\"border-transparent bg-positive text-positive-foreground shadow hover:bg-positive/80\",\n\t\t\twarning: \"border-transparent bg-warning text-warning-foreground shadow hover:bg-warning/80\",\n\t\t\tinfo: \"border-transparent bg-info text-info-foreground shadow hover:bg-info/80\",\n\t\t\toutline: \"text-foreground bg-transparent hover:bg-transparent border\",\n\t\t},\n\t\tsubtle: {\n\t\t\ttrue: \"\",\n\t\t\tfalse: \"\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tvariant: \"default\",\n\t},\n});\n\n/**\n * Props for MultiSelect component\n */\ninterface MultiSelectProps\n\textends React.ButtonHTMLAttributes<HTMLButtonElement>,\n\t\tVariantProps<typeof multiSelectVariants> {\n\t/**\n\t * An array of option objects to be displayed in the multi-select component.\n\t * Each option object has a label, value, and an optional icon.\n\t */\n\toptions: {\n\t\t/** The text to display for the option. */\n\t\tlabel: string;\n\t\t/** The unique value associated with the option. */\n\t\tvalue: string;\n\t\t/** Optional icon component to display alongside the option. */\n\t\ticon?: React.ComponentType<{ className?: string }>;\n\t}[];\n\n\t/**\n\t * Callback function triggered when the selected values change.\n\t * Receives an array of the new selected values.\n\t */\n\tonValueChange: (value: string[]) => void;\n\n\t/** The default selected values when the component mounts. */\n\tdefaultValue?: string[];\n\n\t/**\n\t * Placeholder text to be displayed when no values are selected.\n\t * Optional, defaults to \"Select options\".\n\t */\n\tplaceholder?: string;\n\n\t/**\n\t * Animation duration in seconds for the visual effects (e.g., bouncing badges).\n\t * Optional, defaults to 0 (no animation).\n\t */\n\tanimation?: number;\n\n\t/**\n\t * Maximum number of items to display. Extra selected items will be summarized.\n\t * Optional, defaults to 3.\n\t */\n\tmaxCount?: number;\n\n\t/**\n\t * The modality of the popover. When set to true, interaction with outside elements\n\t * will be disabled and only popover content will be visible to screen readers.\n\t * Optional, defaults to false.\n\t */\n\tmodalPopover?: boolean;\n\n\t/**\n\t * If true, renders the multi-select component as a child of another component.\n\t * Optional, defaults to false.\n\t */\n\tasChild?: boolean;\n\n\t/**\n\t * Additional class names to apply custom styles to the multi-select component.\n\t * Optional, can be used to add custom styles.\n\t */\n\tclassName?: string;\n\tlabel?: string;\n\tdescription?: string;\n\tsubtle?: boolean;\n}\n\nexport const MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(\n\t(\n\t\t{\n\t\t\toptions,\n\t\t\tonValueChange,\n\t\t\tvariant,\n\t\t\tdefaultValue = [],\n\t\t\tplaceholder = \"Select options\",\n\t\t\tanimation = 0,\n\t\t\tmaxCount = 3,\n\t\t\tmodalPopover = false,\n\t\t\tasChild = false,\n\t\t\tclassName,\n\t\t\tlabel,\n\t\t\tdescription,\n\t\t\tsubtle = false,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst [selectedValues, setSelectedValues] = React.useState<string[]>(defaultValue);\n\t\tconst [isPopoverOpen, setIsPopoverOpen] = React.useState(false);\n\t\tconst [isAnimating, setIsAnimating] = React.useState(false);\n\n\t\tconst handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n\t\t\tif (event.key === \"Enter\") {\n\t\t\t\tsetIsPopoverOpen(true);\n\t\t\t} else if (event.key === \"Backspace\" && !event.currentTarget.value) {\n\t\t\t\tconst newSelectedValues = [...selectedValues];\n\t\t\t\tnewSelectedValues.pop();\n\t\t\t\tsetSelectedValues(newSelectedValues);\n\t\t\t\tonValueChange(newSelectedValues);\n\t\t\t}\n\t\t};\n\n\t\tconst toggleOption = (option: string) => {\n\t\t\tconst newSelectedValues = selectedValues.includes(option)\n\t\t\t\t? selectedValues.filter((value) => value !== option)\n\t\t\t\t: [...selectedValues, option];\n\t\t\tsetSelectedValues(newSelectedValues);\n\t\t\tonValueChange(newSelectedValues);\n\t\t};\n\n\t\tconst handleClear = () => {\n\t\t\tsetSelectedValues([]);\n\t\t\tonValueChange([]);\n\t\t};\n\n\t\tconst handleTogglePopover = () => {\n\t\t\tsetIsPopoverOpen((prev) => !prev);\n\t\t};\n\n\t\tconst clearExtraOptions = () => {\n\t\t\tconst newSelectedValues = selectedValues.slice(0, maxCount);\n\t\t\tsetSelectedValues(newSelectedValues);\n\t\t\tonValueChange(newSelectedValues);\n\t\t};\n\n\t\tconst toggleAll = () => {\n\t\t\tif (selectedValues.length === options.length) {\n\t\t\t\thandleClear();\n\t\t\t} else {\n\t\t\t\tconst allValues = options.map((option) => option.value);\n\t\t\t\tsetSelectedValues(allValues);\n\t\t\t\tonValueChange(allValues);\n\t\t\t}\n\t\t};\n\n\t\tconst subtleStyles = (variant: BadgeVariants) => {\n\t\t\tif (variant === \"default\") {\n\t\t\t\treturn \"border-transparent bg-accent text-primary hover:bg-accent/80\";\n\t\t\t}\n\t\t\tif (variant === \"destructive\") {\n\t\t\t\treturn \"border-transparent bg-destructive-foreground text-destructive hover:bg-destructive-foreground/80\";\n\t\t\t}\n\t\t\tif (variant === \"positive\") {\n\t\t\t\treturn \"border-transparent bg-positive-foreground text-positive hover:bg-positive-foreground/80\";\n\t\t\t}\n\t\t\tif (variant === \"warning\") {\n\t\t\t\treturn \"border-transparent bg-warning-foreground text-warning hover:bg-warning-foreground/80\";\n\t\t\t}\n\t\t\tif (variant === \"info\") {\n\t\t\t\treturn \"border-transparent bg-info-foreground text-info hover:bg-info-foreground/80\";\n\t\t\t}\n\n\t\t\treturn \"\";\n\t\t};\n\n\t\tconst finalSubtleStyles = subtleStyles(variant);\n\n\t\treturn (\n\t\t\t<div className=\"font-lato space-y-2\">\n\t\t\t\t{label && <p className=\"text-foreground text-sm font-medium\">{label}</p>}\n\n\t\t\t\t<Popover open={isPopoverOpen} onOpenChange={setIsPopoverOpen} modal={modalPopover}>\n\t\t\t\t\t<PopoverTrigger asChild>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t\t{...props}\n\t\t\t\t\t\t\tonClick={handleTogglePopover}\n\t\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\t\taria-expanded={isPopoverOpen}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"flex h-auto min-h-9 w-full items-center justify-between rounded-md border bg-inherit px-4 py-2 hover:bg-inherit [&_svg]:pointer-events-auto\",\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{selectedValues.length > 0 ? (\n\t\t\t\t\t\t\t\t<div className=\"flex w-full items-center justify-between\">\n\t\t\t\t\t\t\t\t\t<div className=\"flex flex-wrap items-center\">\n\t\t\t\t\t\t\t\t\t\t{selectedValues.slice(0, maxCount).map((value) => {\n\t\t\t\t\t\t\t\t\t\t\tconst option = options.find((o) => o.value === value);\n\t\t\t\t\t\t\t\t\t\t\tconst IconComponent = option?.icon;\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={value}\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"px-1\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisAnimating ? \"animate-bounce\" : \"\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmultiSelectVariants({ variant }),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsubtle && finalSubtleStyles,\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ animationDuration: `${animation}s` }}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{IconComponent && <IconComponent className=\"mr-2 h-4 w-4\" />}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{option?.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<XIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"ml-2 size-3 cursor-pointer\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttoggleOption(value);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t{selectedValues.length > maxCount && (\n\t\t\t\t\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"text-foreground border-foreground/1 bg-transparent px-1 hover:bg-transparent\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tisAnimating ? \"animate-bounce\" : \"\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tmultiSelectVariants({ variant }),\n\t\t\t\t\t\t\t\t\t\t\t\t\tsubtle && finalSubtleStyles,\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ animationDuration: `${animation}s` }}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{`+ ${selectedValues.length - maxCount} itens`}\n\t\t\t\t\t\t\t\t\t\t\t\t<XIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"ml-2 size-3 cursor-pointer\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearExtraOptions();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div className=\"flex items-center justify-between gap-1\">\n\t\t\t\t\t\t\t\t\t\t<TooltipProvider>\n\t\t\t\t\t\t\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t\t\t\t\t\t\t<TooltipTrigger>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<XIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"text-muted-foreground h-4 cursor-pointer\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleClear();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</TooltipTrigger>\n\t\t\t\t\t\t\t\t\t\t\t\t<TooltipContent>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"text-xs\">Limpar tudo</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</TooltipContent>\n\t\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t\t</TooltipProvider>\n\n\t\t\t\t\t\t\t\t\t\t<Separator orientation=\"vertical\" className=\"flex h-full min-h-6\" />\n\t\t\t\t\t\t\t\t\t\t<ChevronsUpDownIcon className=\"text-muted-foreground h-4 cursor-pointer\" />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<div className=\"flex w-full items-center justify-between\">\n\t\t\t\t\t\t\t\t\t<span className=\"text-muted-foreground\">{placeholder}</span>\n\t\t\t\t\t\t\t\t\t<ChevronsUpDownIcon className=\"text-muted-foreground h-4 cursor-pointer\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</PopoverTrigger>\n\t\t\t\t\t<PopoverContent\n\t\t\t\t\t\tclassName=\"w-auto p-0\"\n\t\t\t\t\t\talign=\"start\"\n\t\t\t\t\t\tonEscapeKeyDown={() => setIsPopoverOpen(false)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Command>\n\t\t\t\t\t\t\t<CommandInput placeholder=\"Buscar...\" onKeyDown={handleInputKeyDown} />\n\t\t\t\t\t\t\t<CommandList>\n\t\t\t\t\t\t\t\t<CommandEmpty>Nenhum resultado encontrado.</CommandEmpty>\n\t\t\t\t\t\t\t\t<CommandGroup>\n\t\t\t\t\t\t\t\t\t<CommandItem\n\t\t\t\t\t\t\t\t\t\tkey=\"all\"\n\t\t\t\t\t\t\t\t\t\tonSelect={toggleAll}\n\t\t\t\t\t\t\t\t\t\tclassName=\"flex cursor-pointer items-center justify-between\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span>(Selecionar tudo)</span>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\tselectedValues.length === options.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"opacity-50 [&_svg]:invisible\",\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<CheckIcon className=\"text-foreground h-4 w-4\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</CommandItem>\n\t\t\t\t\t\t\t\t\t{options.map((option) => {\n\t\t\t\t\t\t\t\t\t\tconst isSelected = selectedValues.includes(option.value);\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<CommandItem\n\t\t\t\t\t\t\t\t\t\t\t\tkey={option.value}\n\t\t\t\t\t\t\t\t\t\t\t\tonSelect={() => toggleOption(option.value)}\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"flex cursor-pointer items-center justify-between\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"flex items-center\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{option.icon && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option.icon className=\"text-muted-foreground mr-2 h-4 w-4\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span>{option.label}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div className={cn(isSelected ? \"\" : \"opacity-50 [&_svg]:invisible\")}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<CheckIcon className=\"text-foreground h-4 w-4\" />\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</CommandItem>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t</CommandGroup>\n\t\t\t\t\t\t\t\t<CommandSeparator />\n\t\t\t\t\t\t\t</CommandList>\n\t\t\t\t\t\t</Command>\n\t\t\t\t\t</PopoverContent>\n\t\t\t\t\t{animation > 0 && selectedValues.length > 0 && (\n\t\t\t\t\t\t<WandSparkles\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"text-foreground bg-background my-2 h-3 w-3 cursor-pointer\",\n\t\t\t\t\t\t\t\tisAnimating ? \"\" : \"text-muted-foreground\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tonClick={() => setIsAnimating(!isAnimating)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</Popover>\n\n\t\t\t\t{description && <p className=\"text-muted-foreground text-sm\">{description}</p>}\n\t\t\t</div>\n\t\t);\n\t},\n);\n\nMultiSelect.displayName = \"MultiSelect\";\n"],"names":["multiSelectVariants","cva","variants","variant","default","secondary","destructive","positive","warning","info","outline","subtle","true","false","defaultVariants","MultiSelect","React","forwardRef","options","onValueChange","defaultValue","placeholder","animation","maxCount","modalPopover","asChild","className","label","description","props","ref","selectedValues","setSelectedValues","useState","isPopoverOpen","setIsPopoverOpen","isAnimating","setIsAnimating","handleInputKeyDown","event","key","currentTarget","value","newSelectedValues","pop","toggleOption","option","includes","filter","handleClear","handleTogglePopover","prev","clearExtraOptions","slice","toggleAll","length","allValues","map","subtleStyles","finalSubtleStyles","div","p","Popover","open","onOpenChange","modal","PopoverTrigger","Button","onClick","aria-expanded","cn","find","o","IconComponent","icon","Badge","style","animationDuration","XIcon","stopPropagation","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent","span","Separator","orientation","ChevronsUpDownIcon","PopoverContent","align","onEscapeKeyDown","Command","CommandInput","onKeyDown","CommandList","CommandEmpty","CommandGroup","CommandItem","onSelect","CheckIcon","isSelected","CommandSeparator","WandSparkles","displayName"],"mappings":"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","x_google_ignoreList":[0]}