@mlw-packages/react-components 1.10.3 → 1.10.4

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/index.mjs CHANGED
@@ -1532,7 +1532,7 @@ var TooltipContentBase = React32.forwardRef(
1532
1532
  ...props,
1533
1533
  children: [
1534
1534
  props.children,
1535
- /* @__PURE__ */ jsx(TooltipPrimitive.Arrow, { className: "fill-primary" })
1535
+ /* @__PURE__ */ jsx(TooltipPrimitive.Arrow, { className: "fill-primary h-1.5 w-3" })
1536
1536
  ]
1537
1537
  }
1538
1538
  ) });
@@ -2323,7 +2323,7 @@ function ComboboxBase({
2323
2323
  "aria-disabled": disabled || void 0,
2324
2324
  disabled,
2325
2325
  className: cn(
2326
- `flex items-center gap-2 justify-between [&>div]:line-clamp-1 relative h-9 no-active-animation`,
2326
+ `flex items-center gap-2 justify-between [&>div]:line-clamp-1 relative h-9 no-active-animation font-light`,
2327
2327
  error && "border-red-500"
2328
2328
  ),
2329
2329
  "data-testid": testIds.trigger ?? "combobox-trigger",
@@ -2465,7 +2465,7 @@ function Combobox({
2465
2465
  className: cn(
2466
2466
  "truncate",
2467
2467
  disabled && "opacity-60 cursor-not-allowed",
2468
- !selectedItem && "text-gray-500"
2468
+ !selectedItem && "text-muted-foreground"
2469
2469
  ),
2470
2470
  children: selectedItem?.label ?? placeholder ?? "Selecione uma op\xE7\xE3o..."
2471
2471
  }
@@ -2675,46 +2675,48 @@ function MultiSelectValueBase({
2675
2675
  if (valueRef.current == null) return;
2676
2676
  const containerElement = valueRef.current;
2677
2677
  const overflowElement = overflowRef.current;
2678
- const items2 = containerElement.querySelectorAll(
2678
+ const badgeItems = containerElement.querySelectorAll(
2679
2679
  "[data-selected-item]"
2680
2680
  );
2681
2681
  if (overflowElement != null) overflowElement.style.display = "none";
2682
- items2.forEach((child) => child.style.removeProperty("display"));
2682
+ badgeItems.forEach((child) => child.style.removeProperty("display"));
2683
+ if (shouldWrap) {
2684
+ setOverflowAmount(0);
2685
+ return;
2686
+ }
2683
2687
  let amount = 0;
2684
- for (let i = items2.length - 1; i >= 0; i--) {
2685
- const child = items2[i];
2686
- if (containerElement.scrollWidth <= containerElement.clientWidth) {
2687
- break;
2688
- }
2689
- amount = items2.length - i;
2688
+ for (let i = badgeItems.length - 1; i >= 0; i--) {
2689
+ if (containerElement.scrollWidth <= containerElement.clientWidth) break;
2690
+ const child = badgeItems[i];
2691
+ amount = badgeItems.length - i;
2690
2692
  child.style.display = "none";
2691
- overflowElement?.style.removeProperty("display");
2693
+ if (overflowElement != null) {
2694
+ overflowElement.style.removeProperty("display");
2695
+ }
2692
2696
  }
2693
2697
  setOverflowAmount(amount);
2698
+ }, [shouldWrap]);
2699
+ useEffect(() => {
2700
+ if (overflowRef.current) {
2701
+ overflowRef.current.style.display = "none";
2702
+ }
2694
2703
  }, []);
2704
+ useEffect(() => {
2705
+ checkOverflow();
2706
+ }, [open, shouldWrap, checkOverflow]);
2695
2707
  const handleResize = useCallback(
2696
2708
  (node) => {
2697
2709
  if (node == null) {
2698
2710
  valueRef.current = null;
2699
- if (resizeObserverRef.current) {
2700
- resizeObserverRef.current.disconnect();
2701
- resizeObserverRef.current = null;
2702
- }
2703
- if (mutationObserverRef.current) {
2704
- mutationObserverRef.current.disconnect();
2705
- mutationObserverRef.current = null;
2706
- }
2707
- return;
2708
- }
2709
- valueRef.current = node;
2710
- if (resizeObserverRef.current) {
2711
- resizeObserverRef.current.disconnect();
2711
+ resizeObserverRef.current?.disconnect();
2712
2712
  resizeObserverRef.current = null;
2713
- }
2714
- if (mutationObserverRef.current) {
2715
- mutationObserverRef.current.disconnect();
2713
+ mutationObserverRef.current?.disconnect();
2716
2714
  mutationObserverRef.current = null;
2715
+ return;
2717
2716
  }
2717
+ valueRef.current = node;
2718
+ resizeObserverRef.current?.disconnect();
2719
+ mutationObserverRef.current?.disconnect();
2718
2720
  const mo = new MutationObserver(checkOverflow);
2719
2721
  const ro = new ResizeObserver(debounce(checkOverflow, 100));
2720
2722
  mutationObserverRef.current = mo;
@@ -2729,6 +2731,7 @@ function MultiSelectValueBase({
2729
2731
  },
2730
2732
  [checkOverflow]
2731
2733
  );
2734
+ const [overflowHovered, setOverflowHovered] = useState(false);
2732
2735
  const visibleSelected = [...selectedValues].filter((value) => items.has(value)).sort((a, b) => {
2733
2736
  const aNode = items.get(a);
2734
2737
  const bNode = items.get(b);
@@ -2756,7 +2759,7 @@ function MultiSelectValueBase({
2756
2759
  {
2757
2760
  "data-selected-item": true,
2758
2761
  size: "sm",
2759
- className: "group flex items-center gap-1 border-border",
2762
+ className: "group flex items-center gap-1 border-border shrink-0",
2760
2763
  onClick: clickToRemove ? (e) => {
2761
2764
  e.stopPropagation();
2762
2765
  toggleValue(value);
@@ -2768,19 +2771,38 @@ function MultiSelectValueBase({
2768
2771
  },
2769
2772
  value
2770
2773
  )),
2771
- /* @__PURE__ */ jsxs(
2772
- Badge,
2773
- {
2774
- style: {
2775
- display: overflowAmount > 0 && !shouldWrap ? "block" : "none"
2776
- },
2777
- ref: overflowRef,
2778
- children: [
2779
- "+",
2780
- overflowAmount
2781
- ]
2782
- }
2783
- )
2774
+ overflowAmount > 0 && /* @__PURE__ */ jsx(TooltipProviderBase, { children: /* @__PURE__ */ jsxs(TooltipBase, { open: overflowHovered, children: [
2775
+ /* @__PURE__ */ jsx(TooltipTriggerBase, { asChild: true, children: /* @__PURE__ */ jsx(
2776
+ "div",
2777
+ {
2778
+ ref: overflowRef,
2779
+ className: "inline-flex",
2780
+ onMouseEnter: () => setOverflowHovered(true),
2781
+ onMouseLeave: () => setOverflowHovered(false),
2782
+ children: /* @__PURE__ */ jsxs(Badge, { size: "sm", className: "shrink-0 cursor-default", children: [
2783
+ "+",
2784
+ overflowAmount
2785
+ ] })
2786
+ }
2787
+ ) }),
2788
+ /* @__PURE__ */ jsxs(TooltipContentBase, { className: "p-2 max-w-xs", children: [
2789
+ /* @__PURE__ */ jsxs("p", { className: "text-xs font-medium text-primary-foreground/60 mb-1.5 px-1", children: [
2790
+ overflowAmount,
2791
+ " item",
2792
+ overflowAmount > 1 ? "s" : "",
2793
+ " oculto",
2794
+ overflowAmount > 1 ? "s" : ""
2795
+ ] }),
2796
+ /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1", children: visibleSelected.slice(visibleSelected.length - overflowAmount).map((value) => /* @__PURE__ */ jsx(
2797
+ "span",
2798
+ {
2799
+ className: "inline-flex items-center rounded-md bg-primary-foreground/15 px-2 py-0.5 text-xs font-medium text-primary-foreground",
2800
+ children: typeof items.get(value) === "string" ? items.get(value) : value
2801
+ },
2802
+ value
2803
+ )) })
2804
+ ] })
2805
+ ] }) })
2784
2806
  ]
2785
2807
  }
2786
2808
  );
@@ -2842,7 +2864,7 @@ function MultiSelectItemBase({
2842
2864
  ...props
2843
2865
  }) {
2844
2866
  const { toggleValue, selectedValues, onItemAdded } = useMultiSelectContext();
2845
- const isSelected = selectedValues.has(value);
2867
+ const [hovered, setHovered] = useState(false);
2846
2868
  useEffect(() => {
2847
2869
  onItemAdded(value, badgeLabel ?? children);
2848
2870
  }, [value, children, onItemAdded, badgeLabel]);
@@ -2854,17 +2876,35 @@ function MultiSelectItemBase({
2854
2876
  toggleValue(value);
2855
2877
  onSelect?.(value);
2856
2878
  },
2857
- children: /* @__PURE__ */ jsxs(motion.div, { transition: { duration: 0.1 }, children: [
2858
- /* @__PURE__ */ jsx("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(
2859
- motion.div,
2879
+ children: /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-between gap-2", children: [
2880
+ /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children }),
2881
+ /* @__PURE__ */ jsx(
2882
+ "div",
2860
2883
  {
2861
- initial: { scale: 0 },
2862
- animate: { scale: isSelected ? 1 : 0 },
2863
- transition: { type: "spring", stiffness: 500, damping: 30 },
2864
- children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" })
2884
+ className: "relative flex h-4 w-4 shrink-0 items-center justify-center",
2885
+ onMouseEnter: () => setHovered(true),
2886
+ onMouseLeave: () => setHovered(false),
2887
+ children: /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", children: selectedValues.has(value) && (hovered ? /* @__PURE__ */ jsx(
2888
+ motion.div,
2889
+ {
2890
+ initial: { scale: 0, rotate: -90, opacity: 0 },
2891
+ animate: { scale: 1, rotate: 0, opacity: 1 },
2892
+ transition: { duration: 0.05, ease: "easeOut" },
2893
+ children: /* @__PURE__ */ jsx(XIcon, { className: "size-4 text-destructive" })
2894
+ },
2895
+ "x"
2896
+ ) : /* @__PURE__ */ jsx(
2897
+ motion.div,
2898
+ {
2899
+ initial: { scale: 0, rotate: 90, opacity: 0 },
2900
+ animate: { scale: 1, rotate: 0, opacity: 1 },
2901
+ transition: { duration: 0.05, ease: "easeOut" },
2902
+ children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" })
2903
+ },
2904
+ "check"
2905
+ )) })
2865
2906
  }
2866
- ) }),
2867
- children
2907
+ )
2868
2908
  ] })
2869
2909
  }
2870
2910
  );
@@ -3646,14 +3686,14 @@ var CardFooterBase = React32.forwardRef(({ className, testid: dataTestId = "card
3646
3686
  }
3647
3687
  ));
3648
3688
  CardFooterBase.displayName = "CardFooter";
3649
- var FileTypes = {
3650
- Image: ["image/*", ".jpeg", ".jpg", ".png", ".gif", ".webp", ".svg"],
3651
- Document: [".pdf", ".doc", ".docx", ".txt", ".rtf"],
3652
- Spreadsheet: [".xls", ".xlsx", ".csv"],
3653
- Presentation: [".ppt", ".pptx"],
3654
- Video: ["video/*", ".mp4", ".webm", ".mkv", ".avi"],
3655
- Audio: ["audio/*", ".mp3", ".wav", ".ogg"],
3656
- All: []
3689
+ var FileAccept = {
3690
+ Image: "image/*",
3691
+ Document: "pdf,doc,docx,txt,rtf",
3692
+ Spreadsheet: "xls,xlsx,csv",
3693
+ Presentation: "ppt,pptx",
3694
+ Video: "video/*",
3695
+ Audio: "audio/*",
3696
+ All: "*"
3657
3697
  };
3658
3698
  var formatFileSize = (bytes) => {
3659
3699
  if (bytes === 0) return "0 Bytes";
@@ -3662,66 +3702,62 @@ var formatFileSize = (bytes) => {
3662
3702
  const i = Math.floor(Math.log(bytes) / Math.log(k));
3663
3703
  return Math.round(bytes / Math.pow(k, i) * 100) / 100 + " " + sizes[i];
3664
3704
  };
3665
- var getFileExtension = (filename) => {
3666
- return filename.slice((filename.lastIndexOf(".") - 1 >>> 0) + 2);
3705
+ var getFileExtension = (filename) => filename.slice((filename.lastIndexOf(".") - 1 >>> 0) + 2);
3706
+ var parseAcceptTokens = (accept) => accept.split(",").map((t) => t.trim().toLowerCase()).filter(Boolean);
3707
+ var validateFileAgainstAccept = (file, accept) => {
3708
+ if (!accept || accept === "*") return true;
3709
+ const tokens = parseAcceptTokens(accept);
3710
+ const ext = getFileExtension(file.name).toLowerCase();
3711
+ const mime = file.type.toLowerCase();
3712
+ return tokens.some((token) => {
3713
+ if (token.endsWith("/*")) return mime.startsWith(token.replace("/*", ""));
3714
+ const tokenExt = token.startsWith(".") ? token.substring(1) : token;
3715
+ if (!token.includes("/")) return ext === tokenExt;
3716
+ return mime === token;
3717
+ });
3718
+ };
3719
+ var formatAcceptForInput = (accept) => {
3720
+ if (!accept || accept === "*") return void 0;
3721
+ return parseAcceptTokens(accept).map((t) => t.includes("/") || t.startsWith(".") ? t : `.${t}`).join(",");
3667
3722
  };
3668
3723
  var getFileTypeIcon = (file) => {
3669
3724
  const extension = getFileExtension(file.name).toLowerCase();
3670
3725
  const mimeType = file.type.toLowerCase();
3671
- if (extension === "pdf" || mimeType === "application/pdf") {
3726
+ if (extension === "pdf" || mimeType === "application/pdf")
3672
3727
  return /* @__PURE__ */ jsx(FilePdfIcon, { size: 20, className: "text-red-500" });
3673
- }
3674
- if (["doc", "docx"].includes(extension) || mimeType.includes("word")) {
3728
+ if (["doc", "docx"].includes(extension) || mimeType.includes("word"))
3675
3729
  return /* @__PURE__ */ jsx(FileDocIcon, { size: 20, className: "text-blue-500" });
3676
- }
3677
- if (["xls", "xlsx"].includes(extension) || mimeType.includes("sheet")) {
3730
+ if (["xls", "xlsx"].includes(extension) || mimeType.includes("sheet"))
3678
3731
  return /* @__PURE__ */ jsx(FileXlsIcon, { size: 20, className: "text-green-500" });
3679
- }
3680
- if (["ppt", "pptx"].includes(extension) || mimeType.includes("presentation")) {
3732
+ if (["ppt", "pptx"].includes(extension) || mimeType.includes("presentation"))
3681
3733
  return /* @__PURE__ */ jsx(FilePptIcon, { size: 20, className: "text-orange-500" });
3682
- }
3683
- if (extension === "csv" || mimeType === "text/csv") {
3734
+ if (extension === "csv" || mimeType === "text/csv")
3684
3735
  return /* @__PURE__ */ jsx(FileCsvIcon, { size: 20, className: "text-green-600" });
3685
- }
3686
3736
  if (["txt", "md", "json", "xml", "js", "ts", "html", "css"].includes(
3687
3737
  extension
3688
- ) || mimeType.includes("text")) {
3738
+ ) || mimeType.includes("text"))
3689
3739
  return /* @__PURE__ */ jsx(FileTextIcon, { size: 20, className: "text-gray-500" });
3690
- }
3691
- if (mimeType.startsWith("image/")) {
3740
+ if (mimeType.startsWith("image/"))
3692
3741
  return /* @__PURE__ */ jsx(FileImageIcon, { size: 20, className: "text-purple-500" });
3693
- }
3694
- if (mimeType.startsWith("video/")) {
3742
+ if (mimeType.startsWith("video/"))
3695
3743
  return /* @__PURE__ */ jsx(FileVideoIcon, { size: 20, className: "text-pink-500" });
3696
- }
3697
- if (mimeType.startsWith("audio/")) {
3744
+ if (mimeType.startsWith("audio/"))
3698
3745
  return /* @__PURE__ */ jsx(FileAudioIcon, { size: 20, className: "text-indigo-500" });
3699
- }
3700
- if (["zip", "rar", "7z", "tar", "gz"].includes(extension)) {
3746
+ if (["zip", "rar", "7z", "tar", "gz"].includes(extension))
3701
3747
  return /* @__PURE__ */ jsx(FileZipIcon, { size: 20, className: "text-yellow-600" });
3702
- }
3703
3748
  return /* @__PURE__ */ jsx(FileIcon, { size: 20, className: "text-muted-foreground" });
3704
3749
  };
3705
- var createImagePreview = (file) => {
3706
- return new Promise((resolve) => {
3707
- if (!file.type.startsWith("image/")) {
3708
- resolve(null);
3709
- return;
3710
- }
3711
- const reader = new FileReader();
3712
- reader.onload = (e) => {
3713
- resolve(e.target?.result);
3714
- };
3715
- reader.onerror = () => {
3716
- resolve(null);
3717
- };
3718
- reader.readAsDataURL(file);
3719
- });
3720
- };
3750
+ var createImagePreview = (file) => new Promise((resolve) => {
3751
+ if (!file.type.startsWith("image/")) return resolve(null);
3752
+ const reader = new FileReader();
3753
+ reader.onload = (e) => resolve(e.target?.result);
3754
+ reader.onerror = () => resolve(null);
3755
+ reader.readAsDataURL(file);
3756
+ });
3721
3757
  var FileUploader = React32.forwardRef(
3722
3758
  ({
3723
3759
  className,
3724
- accept = FileTypes.All,
3760
+ accept = "*",
3725
3761
  maxSize = 10,
3726
3762
  maxFiles = 1,
3727
3763
  disabled = false,
@@ -3744,72 +3780,49 @@ var FileUploader = React32.forwardRef(
3744
3780
  }, [value]);
3745
3781
  React32.useEffect(() => {
3746
3782
  return () => {
3747
- files.forEach((file) => {
3748
- if (file.preview) {
3749
- URL.revokeObjectURL(file.preview);
3750
- }
3783
+ files.forEach((f) => {
3784
+ if (f.preview) URL.revokeObjectURL(f.preview);
3751
3785
  });
3752
3786
  };
3753
3787
  }, [files]);
3754
3788
  const validateFile = (file) => {
3755
- const maxSizeBytes = maxSize * 1024 * 1024;
3756
- if (file.size > maxSizeBytes) {
3757
- return `Arquivo muito grande. M\xE1ximo: ${maxSize} MB`;
3758
- }
3759
- if (accept.length > 0) {
3760
- const fileExtension = `.${getFileExtension(file.name)}`;
3761
- const fileType = file.type;
3762
- const isAccepted = accept.some((acceptItem) => {
3763
- if (acceptItem.startsWith(".")) {
3764
- return fileExtension.toLowerCase() === acceptItem.toLowerCase();
3765
- }
3766
- if (acceptItem.endsWith("/*")) {
3767
- return fileType.startsWith(acceptItem.replace("/*", ""));
3768
- }
3769
- return fileType === acceptItem;
3770
- });
3771
- if (!isAccepted) {
3772
- return `Tipo de arquivo n\xE3o permitido. Aceitos: ${accept.join(", ")}`;
3773
- }
3774
- }
3789
+ if (file.size > maxSize * 1024 * 1024)
3790
+ return `Arquivo muito grande. M\xE1ximo: ${maxSize}MB`;
3791
+ if (!validateFileAgainstAccept(file, accept))
3792
+ return `Tipo n\xE3o permitido. Aceitos: ${accept}`;
3775
3793
  return null;
3776
3794
  };
3777
3795
  const createFileWithPreview = async (file) => {
3778
- const fileWithPreview = file;
3779
- fileWithPreview.id = `${file.name}-${Date.now()}-${Math.random()}`;
3780
- const error = validateFile(file);
3781
- if (error) {
3782
- fileWithPreview.error = error;
3783
- }
3784
- if (file.type.startsWith("image/")) {
3796
+ const f = file;
3797
+ f.id = `${file.name}-${Date.now()}-${Math.random()}`;
3798
+ f.error = validateFile(file) ?? void 0;
3799
+ if (!f.error && file.type.startsWith("image/")) {
3785
3800
  try {
3786
3801
  const preview = await createImagePreview(file);
3787
- if (preview) {
3788
- fileWithPreview.preview = preview;
3789
- }
3790
- } catch (error2) {
3791
- console.warn("Erro ao criar preview da imagem:", error2);
3802
+ if (preview) f.preview = preview;
3803
+ } catch (err) {
3804
+ console.warn("Erro ao criar preview:", err);
3792
3805
  }
3793
3806
  }
3794
- return fileWithPreview;
3807
+ return f;
3795
3808
  };
3796
3809
  const handleFiles = async (newFiles) => {
3797
3810
  if (disabled) return;
3798
- const availableSlots = maxFiles - files.length;
3799
- const filesToAdd = multiple ? newFiles.slice(0, availableSlots) : [newFiles[0]];
3800
- const filesWithPreview = await Promise.all(
3801
- filesToAdd.map((file) => createFileWithPreview(file))
3811
+ const slots = maxFiles - files.length;
3812
+ const filesToAdd = multiple ? newFiles.slice(0, slots) : [newFiles[0]];
3813
+ const processed = await Promise.all(
3814
+ filesToAdd.map(createFileWithPreview)
3802
3815
  );
3803
- const updatedFiles = multiple ? [...files, ...filesWithPreview] : filesWithPreview;
3804
- setFiles(updatedFiles);
3805
- onValueChange(updatedFiles);
3816
+ const updated = multiple ? [...files, ...processed] : processed;
3817
+ setFiles(updated);
3818
+ onValueChange(updated);
3806
3819
  if (onUpload) {
3807
- const validFiles = filesWithPreview.filter((f) => !f.error);
3808
- if (validFiles.length > 0) {
3820
+ const valid = processed.filter((f) => !f.error);
3821
+ if (valid.length > 0) {
3809
3822
  try {
3810
- await onUpload(validFiles);
3811
- } catch (error) {
3812
- console.error("Erro no upload:", error);
3823
+ await onUpload(valid);
3824
+ } catch (err) {
3825
+ console.error("Erro no upload:", err);
3813
3826
  }
3814
3827
  }
3815
3828
  }
@@ -3818,17 +3831,12 @@ var FileUploader = React32.forwardRef(
3818
3831
  e.preventDefault();
3819
3832
  e.stopPropagation();
3820
3833
  dragCounterRef.current++;
3821
- if (e.dataTransfer.items && e.dataTransfer.items.length > 0) {
3822
- setIsDragging(true);
3823
- }
3834
+ if (e.dataTransfer.items?.length > 0) setIsDragging(true);
3824
3835
  };
3825
3836
  const handleDragLeave = (e) => {
3826
3837
  e.preventDefault();
3827
3838
  e.stopPropagation();
3828
- dragCounterRef.current--;
3829
- if (dragCounterRef.current === 0) {
3830
- setIsDragging(false);
3831
- }
3839
+ if (--dragCounterRef.current === 0) setIsDragging(false);
3832
3840
  };
3833
3841
  const handleDragOver = (e) => {
3834
3842
  e.preventDefault();
@@ -3839,43 +3847,19 @@ var FileUploader = React32.forwardRef(
3839
3847
  e.stopPropagation();
3840
3848
  setIsDragging(false);
3841
3849
  dragCounterRef.current = 0;
3842
- if (disabled) return;
3843
- const droppedFiles = Array.from(e.dataTransfer.files);
3844
- handleFiles(droppedFiles);
3850
+ if (!disabled) handleFiles(Array.from(e.dataTransfer.files));
3845
3851
  };
3846
3852
  const handleInputChange = (e) => {
3847
- if (e.target.files) {
3848
- const selectedFiles = Array.from(e.target.files);
3849
- handleFiles(selectedFiles);
3850
- }
3853
+ if (e.target.files) handleFiles(Array.from(e.target.files));
3851
3854
  };
3852
3855
  const handleRemoveFile = (fileId) => {
3853
- const fileToRemove = files.find((f) => f.id === fileId);
3854
- if (fileToRemove?.preview) {
3855
- URL.revokeObjectURL(fileToRemove.preview);
3856
- }
3857
- const updatedFiles = files.filter((f) => f.id !== fileId);
3858
- setFiles(updatedFiles);
3859
- onValueChange(updatedFiles);
3860
- };
3861
- const handleClick = () => {
3862
- if (!disabled) {
3863
- inputRef.current?.click();
3864
- }
3856
+ const target = files.find((f) => f.id === fileId);
3857
+ if (target?.preview) URL.revokeObjectURL(target.preview);
3858
+ const updated = files.filter((f) => f.id !== fileId);
3859
+ setFiles(updated);
3860
+ onValueChange(updated);
3865
3861
  };
3866
- const acceptString = accept.join(",");
3867
- const getFormatText = () => {
3868
- if (accept === FileTypes.All || accept.length === 0)
3869
- return "Qualquer formato";
3870
- if (accept === FileTypes.Image) return "Apenas imagens";
3871
- if (accept === FileTypes.Document) return "Apenas documentos";
3872
- if (accept === FileTypes.Video) return "Apenas v\xEDdeos";
3873
- if (accept === FileTypes.Audio) return "Apenas \xE1udio";
3874
- if (accept === FileTypes.Spreadsheet) return "Apenas planilhas";
3875
- if (accept === FileTypes.Presentation) return "Apenas apresenta\xE7\xF5es";
3876
- return "Formatos espec\xEDficos v\xE1lidos";
3877
- };
3878
- const defaultSubtext = dropzoneSubtext || `${getFormatText()} (M\xE1x: ${maxSize}MB)`;
3862
+ const defaultSubtext = dropzoneSubtext ?? `${accept === "*" ? "Qualquer formato" : accept} (M\xE1x: ${maxSize}MB)`;
3879
3863
  return /* @__PURE__ */ jsx("div", { ref, className: cn("w-full", className), ...props, children: /* @__PURE__ */ jsxs(
3880
3864
  motion.div,
3881
3865
  {
@@ -3889,7 +3873,7 @@ var FileUploader = React32.forwardRef(
3889
3873
  onDragOver: handleDragOver,
3890
3874
  onDragLeave: handleDragLeave,
3891
3875
  onDrop: handleDrop,
3892
- onClick: handleClick,
3876
+ onClick: () => !disabled && inputRef.current?.click(),
3893
3877
  whileTap: !disabled ? { scale: 0.99 } : void 0,
3894
3878
  animate: isDragging ? {
3895
3879
  borderColor: `hsl(var(--primary))`,
@@ -3900,12 +3884,7 @@ var FileUploader = React32.forwardRef(
3900
3884
  backgroundColor: `hsl(var(--background))`,
3901
3885
  scale: 1
3902
3886
  },
3903
- transition: {
3904
- type: "spring",
3905
- stiffness: 300,
3906
- damping: 25,
3907
- duration: 0.3
3908
- },
3887
+ transition: { type: "spring", stiffness: 300, damping: 25 },
3909
3888
  children: [
3910
3889
  /* @__PURE__ */ jsx(
3911
3890
  "input",
@@ -3913,7 +3892,7 @@ var FileUploader = React32.forwardRef(
3913
3892
  ref: inputRef,
3914
3893
  type: "file",
3915
3894
  className: "hidden",
3916
- accept: acceptString,
3895
+ accept: formatAcceptForInput(accept),
3917
3896
  multiple,
3918
3897
  disabled,
3919
3898
  onChange: handleInputChange
@@ -3923,20 +3902,11 @@ var FileUploader = React32.forwardRef(
3923
3902
  motion.div,
3924
3903
  {
3925
3904
  animate: isDragging ? { scale: 1.2, rotate: 10 } : { scale: 1, rotate: 0 },
3926
- transition: {
3927
- type: "spring",
3928
- stiffness: 300,
3929
- damping: 20,
3930
- duration: 0.3
3931
- },
3905
+ transition: { type: "spring", stiffness: 300, damping: 20 },
3932
3906
  children: /* @__PURE__ */ jsx(
3933
3907
  motion.div,
3934
3908
  {
3935
- className: cn(
3936
- "mb-4 h-16 w-16 text-muted-foreground transition-colors duration-300 drop-shadow-lg flex items-center justify-center",
3937
- isDragging && "text-primary"
3938
- ),
3939
- initial: false,
3909
+ className: "mb-4 h-16 w-16 drop-shadow-lg flex items-center justify-center",
3940
3910
  animate: {
3941
3911
  color: isDragging ? `hsl(var(--primary))` : `hsl(var(--muted-foreground))`
3942
3912
  },
@@ -3966,14 +3936,14 @@ var FileUploader = React32.forwardRef(
3966
3936
  children: defaultSubtext
3967
3937
  }
3968
3938
  ),
3969
- showPreview && files.length > 0 && /* @__PURE__ */ jsx(
3939
+ showPreview && files.length > 0 && /* @__PURE__ */ jsxs(
3970
3940
  motion.div,
3971
3941
  {
3972
3942
  className: "py-2 w-full",
3973
3943
  initial: animate ? { opacity: 0, y: 10 } : false,
3974
3944
  animate: { opacity: 1, y: 0 },
3975
3945
  transition: { delay: 0.3 },
3976
- children: /* @__PURE__ */ jsxs("div", { children: [
3946
+ children: [
3977
3947
  /* @__PURE__ */ jsxs("h4", { className: "text-xs font-medium text-muted-foreground pb-0.5", children: [
3978
3948
  "Arquivos selecionados (",
3979
3949
  files.length,
@@ -4052,7 +4022,7 @@ var FileUploader = React32.forwardRef(
4052
4022
  },
4053
4023
  file.id
4054
4024
  )) }) })
4055
- ] })
4025
+ ]
4056
4026
  }
4057
4027
  )
4058
4028
  ]
@@ -9906,6 +9876,7 @@ function Select({
9906
9876
  {
9907
9877
  className: cn(
9908
9878
  "flex items-center gap-2 justify-between [&>div]:line-clamp-1 [&>span]:line-clamp-1 relative",
9879
+ !selected && "text-muted-foreground",
9909
9880
  error && "border-red-500",
9910
9881
  className
9911
9882
  ),
@@ -14479,6 +14450,7 @@ function MultiSelect({
14479
14450
  {
14480
14451
  className: cn(
14481
14452
  "flex items-center gap-2 justify-between hover:bg-muted transition-all duration-150",
14453
+ !selected && "text-muted-foreground",
14482
14454
  error && "border-red-500",
14483
14455
  className
14484
14456
  ),
@@ -16817,7 +16789,7 @@ var IntegrationCard = ({ title, details }) => {
16817
16789
  }) })
16818
16790
  ] });
16819
16791
  };
16820
- var TooltipBodyComponent = ({ data, isLoading, connections, isInput, externalSystem }) => /* @__PURE__ */ jsxs("div", { className: "px-3 py-3 space-y-3 overflow-y-auto flex-1 [&::-webkit-scrollbar]:w-1 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:bg-muted-foreground/20 [&::-webkit-scrollbar-thumb]:rounded-full hover:[&::-webkit-scrollbar-thumb]:bg-muted-foreground/40 transition-colors", children: [
16792
+ var TooltipBodyComponent = ({ data, isLoading, connections, isInput, externalSystem }) => /* @__PURE__ */ jsx(ScrollAreaBase, { className: "flex-1", children: /* @__PURE__ */ jsxs("div", { className: "px-3 py-3 space-y-3", children: [
16821
16793
  isLoading ? /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
16822
16794
  /* @__PURE__ */ jsx(SkeletonBase, { className: "h-6 w-3/4" }),
16823
16795
  /* @__PURE__ */ jsx(SkeletonBase, { className: "h-3.5 w-1/2" })
@@ -16860,7 +16832,7 @@ var TooltipBodyComponent = ({ data, isLoading, connections, isInput, externalSys
16860
16832
  conn.id
16861
16833
  )) })
16862
16834
  ] })
16863
- ] });
16835
+ ] }) });
16864
16836
  var TooltipBody = React32__default.memo(TooltipBodyComponent);
16865
16837
  var tooltipVariants3 = {
16866
16838
  hidden: {
@@ -20251,44 +20223,6 @@ var Lens = ({
20251
20223
  }
20252
20224
  );
20253
20225
  };
20254
- var carouselThemes = {
20255
- malwee: {
20256
- foreground: "text-[#222222]",
20257
- primary: "bg-[#0b5430]",
20258
- primaryForeground: "text-white",
20259
- muted: "bg-[#f0eacc]",
20260
- mutedForeground: "text-[#6b665c]",
20261
- border: "!border-[#0b5430]",
20262
- font: "font-[family-name:var(--font-playfair)]"
20263
- },
20264
- enfim: {
20265
- foreground: "text-black",
20266
- primary: "bg-black",
20267
- primaryForeground: "text-white",
20268
- muted: "bg-gray-100",
20269
- mutedForeground: "text-gray-600",
20270
- border: "!border-black",
20271
- font: "font-[family-name:var(--font-libre-caslon)]"
20272
- },
20273
- carinhoso: {
20274
- foreground: "text-[#222222]",
20275
- primary: "bg-[#d9d0c0]",
20276
- primaryForeground: "text-[#222222]",
20277
- muted: "bg-[#e2ddd6]",
20278
- mutedForeground: "text-[#5e5b56]",
20279
- border: "!border-[#d9d0c0]",
20280
- font: "font-[family-name:var(--font-josefin)]"
20281
- },
20282
- "malwee-kids": {
20283
- foreground: "text-[#005bbf]",
20284
- primary: "bg-[#005bbf]",
20285
- primaryForeground: "text-white",
20286
- muted: "bg-[#fcf5c2]",
20287
- mutedForeground: "text-[#004a9e]",
20288
- border: "!border-[#005bbf]",
20289
- font: "font-[family-name:var(--font-poppins)]"
20290
- }
20291
- };
20292
20226
  function CarouselSkeleton({ className }) {
20293
20227
  return /* @__PURE__ */ jsx("div", { className: cn("w-full h-full lg:p-10 sm:p-4 p-2", className), children: /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-3 h-full", children: /* @__PURE__ */ jsx("div", { className: "relative overflow-hidden rounded-lg h-full", children: /* @__PURE__ */ jsxs("div", { className: "w-full h-full min-h-[300px] bg-muted rounded-lg overflow-hidden relative", children: [
20294
20228
  /* @__PURE__ */ jsx(
@@ -20369,7 +20303,8 @@ function CarouselBase({
20369
20303
  zoomEffect = null,
20370
20304
  download = false,
20371
20305
  isLoading = false,
20372
- onChange
20306
+ onChange,
20307
+ fernando
20373
20308
  }) {
20374
20309
  const isMobile = useIsMobile();
20375
20310
  const [index, setIndex] = useState(0);
@@ -20391,9 +20326,6 @@ function CarouselBase({
20391
20326
  emblaApi.off("reInit", onSelect);
20392
20327
  };
20393
20328
  }, [emblaApi, onChange]);
20394
- const currentItem = items[index];
20395
- const themeKey = currentItem?.theme || "malwee";
20396
- const currentTheme = carouselThemes[themeKey] || carouselThemes.malwee;
20397
20329
  useEffect(() => {
20398
20330
  if (!autoPlay || items.length <= 1 || !emblaApi) return;
20399
20331
  const interval = setInterval(() => {
@@ -20405,14 +20337,14 @@ function CarouselBase({
20405
20337
  if (isDownloading) return;
20406
20338
  setIsDownloading(true);
20407
20339
  setDownloadSuccess(false);
20408
- const currentItem2 = items[index];
20340
+ const currentItem = items[index];
20409
20341
  try {
20410
- const response = await fetch(currentItem2.url);
20342
+ const response = await fetch(currentItem.url);
20411
20343
  const blob = await response.blob();
20412
20344
  const url = window.URL.createObjectURL(blob);
20413
20345
  const link = document.createElement("a");
20414
20346
  link.href = url;
20415
- link.download = currentItem2.title || "image";
20347
+ link.download = currentItem.title || "image";
20416
20348
  document.body.appendChild(link);
20417
20349
  link.click();
20418
20350
  document.body.removeChild(link);
@@ -20448,8 +20380,6 @@ function CarouselBase({
20448
20380
  transition: { duration: 0.4 },
20449
20381
  className: cn(
20450
20382
  "w-full lg:p-10 sm:p-4 p-2 transition-colors duration-500",
20451
- currentTheme.foreground,
20452
- currentTheme.font,
20453
20383
  className
20454
20384
  ),
20455
20385
  style: { width },
@@ -20503,7 +20433,8 @@ function CarouselBase({
20503
20433
  onMouseDown: (e) => e.stopPropagation(),
20504
20434
  className: cn(
20505
20435
  "absolute top-4 right-4 z-50 p-2 rounded-full text-white transition-colors border border-white/10",
20506
- downloadSuccess ? "bg-green-500 hover:bg-green-600" : "bg-black/50 hover:bg-black/70"
20436
+ downloadSuccess ? "bg-green-500 hover:bg-green-600" : "bg-black/50 hover:bg-black/70",
20437
+ className
20507
20438
  ),
20508
20439
  title: "Download image",
20509
20440
  initial: false,
@@ -20589,9 +20520,10 @@ function CarouselBase({
20589
20520
  className: cn(
20590
20521
  "absolute left-4 top-1/2 -translate-y-1/2 w-10 h-10 rounded-full flex items-center justify-center shadow-lg transition-all z-50",
20591
20522
  !emblaApi?.canScrollPrev() ? "opacity-40 cursor-not-allowed" : "hover:scale-110 hover:opacity-100 opacity-70",
20592
- currentTheme.primary,
20593
- currentTheme.primaryForeground
20523
+ "bg-primary text-primary-foreground",
20524
+ className
20594
20525
  ),
20526
+ style: fernando ? { backgroundColor: fernando } : void 0,
20595
20527
  children: /* @__PURE__ */ jsx(
20596
20528
  "svg",
20597
20529
  {
@@ -20623,9 +20555,10 @@ function CarouselBase({
20623
20555
  className: cn(
20624
20556
  "absolute right-4 top-1/2 -translate-y-1/2 w-10 h-10 rounded-full flex items-center justify-center shadow-lg transition-all z-50",
20625
20557
  !emblaApi?.canScrollNext() ? "opacity-40 cursor-not-allowed" : "hover:scale-110 hover:opacity-100 opacity-70",
20626
- currentTheme.primary,
20627
- currentTheme.primaryForeground
20558
+ "bg-primary text-primary-foreground",
20559
+ className
20628
20560
  ),
20561
+ style: fernando ? { backgroundColor: fernando } : void 0,
20629
20562
  children: /* @__PURE__ */ jsx(
20630
20563
  "svg",
20631
20564
  {
@@ -20656,12 +20589,10 @@ function CarouselBase({
20656
20589
  onMouseDown: (e) => e.stopPropagation(),
20657
20590
  className: cn(
20658
20591
  "h-2 rounded-full transition-all duration-300",
20659
- i === index ? cn("w-8", currentTheme.primary) : cn(
20660
- "w-2 hover:opacity-80",
20661
- currentTheme.primary,
20662
- "opacity-40"
20663
- )
20664
- )
20592
+ i === index ? cn("w-8 bg-primary") : cn("w-2 hover:opacity-80 bg-primary opacity-40"),
20593
+ className
20594
+ ),
20595
+ style: fernando ? { backgroundColor: fernando } : void 0
20665
20596
  },
20666
20597
  i
20667
20598
  )) })
@@ -20850,9 +20781,9 @@ function RadialMenu({
20850
20781
  }
20851
20782
  function ControlledCombobox({
20852
20783
  items,
20853
- renderSelected,
20854
- handleSelection,
20855
- checkIsSelected,
20784
+ value,
20785
+ onChange,
20786
+ placeholder = "Selecione uma op\xE7\xE3o",
20856
20787
  disabled = false,
20857
20788
  keepOpen = false,
20858
20789
  searchPlaceholder,
@@ -20862,7 +20793,6 @@ function ControlledCombobox({
20862
20793
  labelClassname,
20863
20794
  testIds = {},
20864
20795
  onClear,
20865
- hasSelected = false,
20866
20796
  hideClear = false,
20867
20797
  onSearchChange,
20868
20798
  search,
@@ -20870,6 +20800,11 @@ function ControlledCombobox({
20870
20800
  loading = false
20871
20801
  }) {
20872
20802
  const [open, setOpen] = useState(false);
20803
+ const selectedItem = items.find((item) => item.value === value);
20804
+ const renderSelected = selectedItem?.label ?? placeholder;
20805
+ const hasSelected = Boolean(value);
20806
+ const checkIsSelected = (v) => v === value;
20807
+ const handleSelection = (v) => onChange?.(v);
20873
20808
  return /* @__PURE__ */ jsxs(
20874
20809
  "div",
20875
20810
  {
@@ -20942,9 +20877,9 @@ function ControlledCombobox({
20942
20877
  {
20943
20878
  className: "dark:text-white hover:bg-rsecondary focus:ring-0 focus:outline-none",
20944
20879
  "data-testid": testIds.command ?? "combobox-command",
20945
- filter: onSearchChange ? () => 1 : (value, search2) => {
20946
- const label2 = items.find((item) => item.value === value)?.label || value;
20947
- if (label2.toLowerCase().includes(search2.toLowerCase()))
20880
+ filter: onSearchChange ? () => 1 : (itemValue, search2) => {
20881
+ const itemLabel = items.find((item) => item.value === itemValue)?.label || itemValue;
20882
+ if (itemLabel.toLowerCase().includes(search2.toLowerCase()))
20948
20883
  return 1;
20949
20884
  return 0;
20950
20885
  },
@@ -20976,9 +20911,9 @@ function ControlledCombobox({
20976
20911
  {
20977
20912
  keywords: [item.label],
20978
20913
  value: item.value,
20979
- onSelect: (value) => {
20914
+ onSelect: (v) => {
20980
20915
  if (disabled) return;
20981
- handleSelection(value);
20916
+ handleSelection(v);
20982
20917
  if (!keepOpen) setOpen(false);
20983
20918
  },
20984
20919
  disabled,
@@ -20995,7 +20930,7 @@ function ControlledCombobox({
20995
20930
  stiffness: 500,
20996
20931
  damping: 30
20997
20932
  },
20998
- className: "ml-auto ",
20933
+ className: "ml-auto",
20999
20934
  children: /* @__PURE__ */ jsx(
21000
20935
  CheckIcon,
21001
20936
  {
@@ -21031,4 +20966,4 @@ function ControlledCombobox({
21031
20966
  );
21032
20967
  }
21033
20968
 
21034
- export { AddButton, Agenda, AgendaDaysToShow, AgendaDaysToShowAgenda, AgendaView, AlertDialogActionBase, AlertDialogBase, AlertDialogCancelBase, AlertDialogContentBase, AlertDialogDescriptionBase, AlertDialogFooterBase, AlertDialogHeaderBase, AlertDialogOverlayBase, AlertDialogPortalBase, AlertDialogTitleBase, AlertDialogTriggerBase, AvatarBase, AvatarCombobox, AvatarFallbackBase, AvatarImageBase, BackButton, Badge, Beam, BreadcrumbBase, BreadcrumbEllipsisBase, BreadcrumbItemBase, BreadcrumbLinkBase, BreadcrumbListBase, BreadcrumbPageBase, BreadcrumbSeparatorBase, Brush_default as Brush, ButtonBase, ButtonGroupBase, CENTER_INDEX, CalendarBase, CalendarDndProvider, CalendarDndProviderAgenda, CardBase, CardContentBase, CardDescriptionBase, CardFooterBase, CardHeaderBase, CardTitleBase, CarouselBase, ChangeButton, Chart_default as Chart, ChartControls, ChartHeader, ChartTotalLegend_default as ChartTotalLegend, CheckButton, CheckboxBase, CheckboxTree, CloseAllButton_default as CloseAllButton, CloseButton, CodeBlock, CollapsibleBase, CollapsibleContentBase, CollapsibleTriggerBase, Combobox, CommandBase, CommandDebouncedInputBase, CommandDialogBase, CommandEmptyBase, CommandGroupBase, CommandInputBase, CommandItemBase, CommandListBase, CommandSeparatorBase, CommandShortcutBase, ContextMenuBase, ContextMenuCheckboxItemBase, ContextMenuContentBase, ContextMenuGroupBase, ContextMenuItemBase, ContextMenuLabelBase, ContextMenuPortalBase, ContextMenuRadioGroupBase, ContextMenuRadioItemBase, ContextMenuSeparatorBase, ContextMenuShortcutBase, ContextMenuSubBase, ContextMenuSubContentBase, ContextMenuSubTriggerBase, ContextMenuTriggerBase, ControlledCombobox, CopyButton, CopyData, DateTimePicker, DayView, DayViewAgenda, DebouncedInput, DefaultEndHour, DefaultEndHourAgenda, DefaultStartHour, DefaultStartHourAgenda, DestructiveDialog, DialogBase, DialogCloseBase, DialogContentBase, DialogDescriptionBase, DialogFooterBase, DialogHeaderBase, DialogOverlayBase, DialogPortalBase, DialogTitleBase, DialogTriggerBase, DownloadButton, DraggableEvent2 as DraggableEvent, DraggableTooltip_default as DraggableTooltip, DrawerBase, DrawerCloseBase, DrawerContentBase, DrawerDescriptionBase, DrawerFooterBase, DrawerHeaderBase, DrawerOverlayBase, DrawerPortalBase, DrawerTitleBase, DrawerTriggerBase, DropDownMenuBase, DropDownMenuCheckboxItemBase, DropDownMenuContentBase, DropDownMenuGroupBase, DropDownMenuItemBase, DropDownMenuLabelBase, DropDownMenuPortalBase, DropDownMenuRadioGroupBase, DropDownMenuRadioItemBase, DropDownMenuSeparatorBase, DropDownMenuShortcutBase, DropDownMenuSubBase, DropDownMenuSubContentBase, DropDownMenuSubTriggerBase, DropDownMenuTriggerBase, DroppableCell, DroppableCellAgenda, EditButton, EndHour, EndHourAgenda, ErrorMessage_default as ErrorMessage, EventAgenda, EventCalendar, EventDetailModalAgenda, EventDialog, EventGap, EventGapAgenda, EventHeight, EventHeightAgenda, EventItem, EventItemAgenda, EventsPopup, FavoriteButton, FileTypes, FileUploader, FilterButton, HideButton, Highlights_default as Highlights, HorizontalChart_default as HorizontalChart, HorizontalLegend_default as HorizontalLegend, HoverCardBase, HoverCardContentBase, HoverCardTriggerBase, ITEM_HEIGHT, InputBase, InputOTPBase, InputOTPGroupBase, InputOTPSeparatorBase, InputOTPSlotBase, IntegrationCard, IntegrationTooltip_default as IntegrationTooltip, LabelBase_default as LabelBase, Leaderboard, LikeButton, LoadingBase, LockButton, ModalBase, ModalCloseBase, ModalContentBase, ModalDescriptionBase, ModalFooterBase, ModalHeaderBase, ModalOverlayBase, ModalPortalBase, ModalTitleBase, ModalTriggerBase, ModeToggleBase, MonthView, MonthViewAgenda, MoreButton, MultiCombobox, MultiDayOverlay, MultiSelect, MultiSelectBase, MultiSelectContentBase, MultiSelectGroupBase, MultiSelectItemBase, MultiSelectSeparatorBase, MultiSelectTriggerBase, MultiSelectValueBase, NameTooltip, NavigationMenuBase, NavigationMenuContentBase, NavigationMenuIndicatorBase, NavigationMenuItemBase, NavigationMenuLinkBase, NavigationMenuListBase, NavigationMenuTriggerBase, NavigationMenuViewportBase, NoData_default as NoData, NotificationButton, NumericInput, PeriodsDropdown_default as PeriodsDropdown, PopoverAnchorBase, PopoverBase, PopoverContentBase, PopoverTriggerBase, ProgressBase, ProgressCirclesBase, ProgressPanelsBase, ProgressSegmentsBase, RadialMenu, RangePicker, RefreshButton, SaveButton, ScrollAreaBase, ScrollBarBase, SearchButton, Select, SelectBase, SelectContentBase, SelectEmpty, SelectGroupBase, SelectItemBase, SelectLabelBase, SelectScrollDownButtonBase, SelectScrollUpButtonBase, SelectSeparatorBase, SelectTriggerBase, SelectValueBase, SeparatorBase, SettingsButton, SheetBase, SheetCloseBase, SheetContentBase, SheetDescriptionBase, SheetFooterBase, SheetHeaderBase, SheetOverlayBase, SheetPortalBase, SheetTitleBase, SheetTriggerBase, ShowOnly_default as ShowOnly, SidebarBase, SidebarContentBase, SidebarFooterBase, SidebarGroupActionBase, SidebarGroupBase, SidebarGroupContentBase, SidebarGroupLabelBase, SidebarHeaderBase, SidebarInputBase, SidebarInsetBase, SidebarMenuActionBase, SidebarMenuBadgeBase, SidebarMenuBase, SidebarMenuButtonBase, SidebarMenuItemBase, SidebarMenuSkeletonBase, SidebarMenuSubBase, SidebarMenuSubButtonBase, SidebarMenuSubItemBase, SidebarProviderBase, SidebarRailBase, SidebarSeparatorBase, SidebarTriggerBase, SkeletonBase, SlideBase, StartHour, StartHourAgenda, StatusIndicator, SwitchBase, SystemNode, SystemTooltip_default as SystemTooltip, SystemsDiagram, TableBase, TableBodyBase, TableCaptionBase, TableCellBase, TableFooterBase, TableHeadBase, TableHeaderBase, TableRowBase, TabsBase, TabsContentBase, TabsListBase, TabsTriggerBase, TextAreaBase, ThemeProviderBase, TimePicker, TimePickerInput, TimeSeries_default as TimeSeries, Toaster, TooltipBase, TooltipBody, TooltipContentBase, TooltipProviderBase, TooltipSimple_default as TooltipSimple, TooltipTriggerBase, TooltipWithTotal_default as TooltipWithTotal, UndatedEvents, UniversalTooltipRenderer, UnlockButton, UploadButton, UseSideBarBase, VISIBLE_ITEMS, ViewButton, VisibilityButton, WeekCellsHeight, WeekCellsHeightAgenda, WeekView, WeekViewAgenda, YearViewAgenda, adaptDataForTooltip, addHoursToDate, addHoursToDateAgenda, addMinutesToDateAgenda, badgeVariants, buttonVariantsBase, compactTick, computeChartWidth, computeNiceMax, computeYAxisTickWidth, convert12HourTo24Hour, createValueFormatter, createYTickFormatter, detectDataFields, detectXAxis, display12HourValue, formatDurationAgenda, formatDurationAgendaDays, formatFieldName, formatLinePercentage, generateAdditionalColors, generateColorMap, getAgendaEventsForDay, getAgendaEventsForDayAgenda, getAllEventsForDay, getAllEventsForDayAgenda, getArrowByType, getAutoColorAgenda, getBorderRadiusClasses, getBorderRadiusClassesAgenda, getDateByType, getEventColorClasses, getEventColorClassesAgenda, getEventEndDate, getEventStartDate, getEventsForDay, getEventsForDayAgenda, getItems, getMaxDataValue, getMinDataValue, getSpanningEventsForDay, getSpanningEventsForDayAgenda, getValid12Hour, getValidArrow12Hour, getValidArrowHour, getValidArrowMinuteOrSecond, getValidArrowNumber, getValidHour, getValidMinuteOrSecond, getValidNumber, isMultiDayEvent, isMultiDayEventAgenda, isValid12Hour, isValidHour, isValidMinuteOrSecond, niceCeil, normalizeAttendDate, processIntegrationData, processNeo4jData, renderInsideBarLabel, pillLabelRenderer_default as renderPillLabel, resolveChartMargins, resolveContainerPaddingLeft, set12Hours, setDateByType, setHours, setMinutes, setSeconds, sortEvents, sortEventsAgenda, toast, useBiaxial, useCalendarDnd, useCalendarDndAgenda, useChartClick, useChartDimensions, useChartHighlights, useChartLayout, useChartMinMax, useChartTooltips, useCurrentTimeIndicator, useCurrentTimeIndicatorAgenda, useDrag, useEventVisibility, useEventVisibilityAgenda, useIsMobile, useIsTruncated, useOpenTooltipForPeriod, useProcessedData, useSeriesOpacity, useTheme, useTimeSeriesRange, visualForItem };
20969
+ export { AddButton, Agenda, AgendaDaysToShow, AgendaDaysToShowAgenda, AgendaView, AlertDialogActionBase, AlertDialogBase, AlertDialogCancelBase, AlertDialogContentBase, AlertDialogDescriptionBase, AlertDialogFooterBase, AlertDialogHeaderBase, AlertDialogOverlayBase, AlertDialogPortalBase, AlertDialogTitleBase, AlertDialogTriggerBase, AvatarBase, AvatarCombobox, AvatarFallbackBase, AvatarImageBase, BackButton, Badge, Beam, BreadcrumbBase, BreadcrumbEllipsisBase, BreadcrumbItemBase, BreadcrumbLinkBase, BreadcrumbListBase, BreadcrumbPageBase, BreadcrumbSeparatorBase, Brush_default as Brush, ButtonBase, ButtonGroupBase, CENTER_INDEX, CalendarBase, CalendarDndProvider, CalendarDndProviderAgenda, CardBase, CardContentBase, CardDescriptionBase, CardFooterBase, CardHeaderBase, CardTitleBase, CarouselBase, ChangeButton, Chart_default as Chart, ChartControls, ChartHeader, ChartTotalLegend_default as ChartTotalLegend, CheckButton, CheckboxBase, CheckboxTree, CloseAllButton_default as CloseAllButton, CloseButton, CodeBlock, CollapsibleBase, CollapsibleContentBase, CollapsibleTriggerBase, Combobox, CommandBase, CommandDebouncedInputBase, CommandDialogBase, CommandEmptyBase, CommandGroupBase, CommandInputBase, CommandItemBase, CommandListBase, CommandSeparatorBase, CommandShortcutBase, ContextMenuBase, ContextMenuCheckboxItemBase, ContextMenuContentBase, ContextMenuGroupBase, ContextMenuItemBase, ContextMenuLabelBase, ContextMenuPortalBase, ContextMenuRadioGroupBase, ContextMenuRadioItemBase, ContextMenuSeparatorBase, ContextMenuShortcutBase, ContextMenuSubBase, ContextMenuSubContentBase, ContextMenuSubTriggerBase, ContextMenuTriggerBase, ControlledCombobox, CopyButton, CopyData, DateTimePicker, DayView, DayViewAgenda, DebouncedInput, DefaultEndHour, DefaultEndHourAgenda, DefaultStartHour, DefaultStartHourAgenda, DestructiveDialog, DialogBase, DialogCloseBase, DialogContentBase, DialogDescriptionBase, DialogFooterBase, DialogHeaderBase, DialogOverlayBase, DialogPortalBase, DialogTitleBase, DialogTriggerBase, DownloadButton, DraggableEvent2 as DraggableEvent, DraggableTooltip_default as DraggableTooltip, DrawerBase, DrawerCloseBase, DrawerContentBase, DrawerDescriptionBase, DrawerFooterBase, DrawerHeaderBase, DrawerOverlayBase, DrawerPortalBase, DrawerTitleBase, DrawerTriggerBase, DropDownMenuBase, DropDownMenuCheckboxItemBase, DropDownMenuContentBase, DropDownMenuGroupBase, DropDownMenuItemBase, DropDownMenuLabelBase, DropDownMenuPortalBase, DropDownMenuRadioGroupBase, DropDownMenuRadioItemBase, DropDownMenuSeparatorBase, DropDownMenuShortcutBase, DropDownMenuSubBase, DropDownMenuSubContentBase, DropDownMenuSubTriggerBase, DropDownMenuTriggerBase, DroppableCell, DroppableCellAgenda, EditButton, EndHour, EndHourAgenda, ErrorMessage_default as ErrorMessage, EventAgenda, EventCalendar, EventDetailModalAgenda, EventDialog, EventGap, EventGapAgenda, EventHeight, EventHeightAgenda, EventItem, EventItemAgenda, EventsPopup, FavoriteButton, FileAccept, FileUploader, FilterButton, HideButton, Highlights_default as Highlights, HorizontalChart_default as HorizontalChart, HorizontalLegend_default as HorizontalLegend, HoverCardBase, HoverCardContentBase, HoverCardTriggerBase, ITEM_HEIGHT, InputBase, InputOTPBase, InputOTPGroupBase, InputOTPSeparatorBase, InputOTPSlotBase, IntegrationCard, IntegrationTooltip_default as IntegrationTooltip, LabelBase_default as LabelBase, Leaderboard, LikeButton, LoadingBase, LockButton, ModalBase, ModalCloseBase, ModalContentBase, ModalDescriptionBase, ModalFooterBase, ModalHeaderBase, ModalOverlayBase, ModalPortalBase, ModalTitleBase, ModalTriggerBase, ModeToggleBase, MonthView, MonthViewAgenda, MoreButton, MultiCombobox, MultiDayOverlay, MultiSelect, MultiSelectBase, MultiSelectContentBase, MultiSelectGroupBase, MultiSelectItemBase, MultiSelectSeparatorBase, MultiSelectTriggerBase, MultiSelectValueBase, NameTooltip, NavigationMenuBase, NavigationMenuContentBase, NavigationMenuIndicatorBase, NavigationMenuItemBase, NavigationMenuLinkBase, NavigationMenuListBase, NavigationMenuTriggerBase, NavigationMenuViewportBase, NoData_default as NoData, NotificationButton, NumericInput, PeriodsDropdown_default as PeriodsDropdown, PopoverAnchorBase, PopoverBase, PopoverContentBase, PopoverTriggerBase, ProgressBase, ProgressCirclesBase, ProgressPanelsBase, ProgressSegmentsBase, RadialMenu, RangePicker, RefreshButton, SaveButton, ScrollAreaBase, ScrollBarBase, SearchButton, Select, SelectBase, SelectContentBase, SelectEmpty, SelectGroupBase, SelectItemBase, SelectLabelBase, SelectScrollDownButtonBase, SelectScrollUpButtonBase, SelectSeparatorBase, SelectTriggerBase, SelectValueBase, SeparatorBase, SettingsButton, SheetBase, SheetCloseBase, SheetContentBase, SheetDescriptionBase, SheetFooterBase, SheetHeaderBase, SheetOverlayBase, SheetPortalBase, SheetTitleBase, SheetTriggerBase, ShowOnly_default as ShowOnly, SidebarBase, SidebarContentBase, SidebarFooterBase, SidebarGroupActionBase, SidebarGroupBase, SidebarGroupContentBase, SidebarGroupLabelBase, SidebarHeaderBase, SidebarInputBase, SidebarInsetBase, SidebarMenuActionBase, SidebarMenuBadgeBase, SidebarMenuBase, SidebarMenuButtonBase, SidebarMenuItemBase, SidebarMenuSkeletonBase, SidebarMenuSubBase, SidebarMenuSubButtonBase, SidebarMenuSubItemBase, SidebarProviderBase, SidebarRailBase, SidebarSeparatorBase, SidebarTriggerBase, SkeletonBase, SlideBase, StartHour, StartHourAgenda, StatusIndicator, SwitchBase, SystemNode, SystemTooltip_default as SystemTooltip, SystemsDiagram, TableBase, TableBodyBase, TableCaptionBase, TableCellBase, TableFooterBase, TableHeadBase, TableHeaderBase, TableRowBase, TabsBase, TabsContentBase, TabsListBase, TabsTriggerBase, TextAreaBase, ThemeProviderBase, TimePicker, TimePickerInput, TimeSeries_default as TimeSeries, Toaster, TooltipBase, TooltipBody, TooltipContentBase, TooltipProviderBase, TooltipSimple_default as TooltipSimple, TooltipTriggerBase, TooltipWithTotal_default as TooltipWithTotal, UndatedEvents, UniversalTooltipRenderer, UnlockButton, UploadButton, UseSideBarBase, VISIBLE_ITEMS, ViewButton, VisibilityButton, WeekCellsHeight, WeekCellsHeightAgenda, WeekView, WeekViewAgenda, YearViewAgenda, adaptDataForTooltip, addHoursToDate, addHoursToDateAgenda, addMinutesToDateAgenda, badgeVariants, buttonVariantsBase, compactTick, computeChartWidth, computeNiceMax, computeYAxisTickWidth, convert12HourTo24Hour, createValueFormatter, createYTickFormatter, detectDataFields, detectXAxis, display12HourValue, formatDurationAgenda, formatDurationAgendaDays, formatFieldName, formatLinePercentage, generateAdditionalColors, generateColorMap, getAgendaEventsForDay, getAgendaEventsForDayAgenda, getAllEventsForDay, getAllEventsForDayAgenda, getArrowByType, getAutoColorAgenda, getBorderRadiusClasses, getBorderRadiusClassesAgenda, getDateByType, getEventColorClasses, getEventColorClassesAgenda, getEventEndDate, getEventStartDate, getEventsForDay, getEventsForDayAgenda, getItems, getMaxDataValue, getMinDataValue, getSpanningEventsForDay, getSpanningEventsForDayAgenda, getValid12Hour, getValidArrow12Hour, getValidArrowHour, getValidArrowMinuteOrSecond, getValidArrowNumber, getValidHour, getValidMinuteOrSecond, getValidNumber, isMultiDayEvent, isMultiDayEventAgenda, isValid12Hour, isValidHour, isValidMinuteOrSecond, niceCeil, normalizeAttendDate, processIntegrationData, processNeo4jData, renderInsideBarLabel, pillLabelRenderer_default as renderPillLabel, resolveChartMargins, resolveContainerPaddingLeft, set12Hours, setDateByType, setHours, setMinutes, setSeconds, sortEvents, sortEventsAgenda, toast, useBiaxial, useCalendarDnd, useCalendarDndAgenda, useChartClick, useChartDimensions, useChartHighlights, useChartLayout, useChartMinMax, useChartTooltips, useCurrentTimeIndicator, useCurrentTimeIndicatorAgenda, useDrag, useEventVisibility, useEventVisibilityAgenda, useIsMobile, useIsTruncated, useOpenTooltipForPeriod, useProcessedData, useSeriesOpacity, useTheme, useTimeSeriesRange, visualForItem };