@axzydev/axzy_ui_system 1.0.165 → 1.0.166

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.js CHANGED
@@ -3724,10 +3724,178 @@ function ITNavbar({
3724
3724
  ] });
3725
3725
  }
3726
3726
 
3727
- // src/components/slide/slide.tsx
3728
- import { useState as useState15, useEffect as useEffect12 } from "react";
3727
+ // src/components/search-select/search-select.tsx
3728
+ import { useState as useState15, useEffect as useEffect12, useRef as useRef7, useMemo as useMemo4 } from "react";
3729
3729
  import clsx14 from "clsx";
3730
- import { jsx as jsx19 } from "react/jsx-runtime";
3730
+ import { FaSearch } from "react-icons/fa";
3731
+ import { jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
3732
+ function ITSearchSelect({
3733
+ name,
3734
+ options = [],
3735
+ label,
3736
+ placeholder = "Selecciona una opci\xF3n",
3737
+ valueField = "value",
3738
+ labelField = "label",
3739
+ value,
3740
+ onChange,
3741
+ onBlur,
3742
+ disabled = false,
3743
+ className,
3744
+ touched,
3745
+ required,
3746
+ error,
3747
+ readOnly = false,
3748
+ onSearch,
3749
+ isLoading = false,
3750
+ noResultsMessage = "No se encontraron resultados"
3751
+ }) {
3752
+ const [isOpen, setIsOpen] = useState15(false);
3753
+ const [searchTerm, setSearchTerm] = useState15("");
3754
+ const [isFocused, setIsFocused] = useState15(false);
3755
+ const containerRef = useRef7(null);
3756
+ const timeoutRef = useRef7(null);
3757
+ const selectedOption = useMemo4(() => {
3758
+ return options.find((opt) => opt[valueField] === value);
3759
+ }, [options, value, valueField]);
3760
+ useEffect12(() => {
3761
+ if (!isFocused) {
3762
+ setSearchTerm(selectedOption ? String(selectedOption[labelField]) : "");
3763
+ }
3764
+ }, [selectedOption, isFocused, labelField]);
3765
+ useEffect12(() => {
3766
+ function handleClickOutside(event) {
3767
+ if (containerRef.current && !containerRef.current.contains(event.target)) {
3768
+ setIsOpen(false);
3769
+ }
3770
+ }
3771
+ document.addEventListener("mousedown", handleClickOutside);
3772
+ return () => document.removeEventListener("mousedown", handleClickOutside);
3773
+ }, []);
3774
+ const filteredOptions = useMemo4(() => {
3775
+ if (onSearch) return options;
3776
+ if (!searchTerm || !isFocused) return options;
3777
+ return options.filter(
3778
+ (opt) => String(opt[labelField]).toLowerCase().includes(searchTerm.toLowerCase())
3779
+ );
3780
+ }, [options, searchTerm, onSearch, labelField, isFocused]);
3781
+ const handleInputChange = (e) => {
3782
+ const query = e.target.value;
3783
+ setSearchTerm(query);
3784
+ setIsOpen(true);
3785
+ if (onSearch) {
3786
+ if (timeoutRef.current) clearTimeout(timeoutRef.current);
3787
+ timeoutRef.current = setTimeout(() => {
3788
+ onSearch(query);
3789
+ }, 500);
3790
+ }
3791
+ };
3792
+ const handleSelect = (option) => {
3793
+ if (onChange) {
3794
+ onChange(option[valueField], option);
3795
+ }
3796
+ setSearchTerm(String(option[labelField]));
3797
+ setIsOpen(false);
3798
+ };
3799
+ const handleFocus = () => {
3800
+ if (disabled || readOnly) return;
3801
+ setIsFocused(true);
3802
+ setIsOpen(true);
3803
+ };
3804
+ const handleInputBlur = (e) => {
3805
+ setTimeout(() => {
3806
+ setIsFocused(false);
3807
+ onBlur?.(e);
3808
+ }, 200);
3809
+ };
3810
+ const inputTheme = theme.input || {};
3811
+ const getInputStyle = () => {
3812
+ const style = {
3813
+ backgroundColor: inputTheme.backgroundColor || "#ffffff",
3814
+ borderColor: inputTheme.borderColor || "#e2e8f0",
3815
+ borderRadius: inputTheme.borderRadius || "0.5rem",
3816
+ padding: inputTheme.padding || "0.5rem 0.75rem",
3817
+ fontSize: inputTheme.fontSize || "0.875rem",
3818
+ borderWidth: "1px",
3819
+ borderStyle: "solid",
3820
+ transition: "all 0.2s",
3821
+ color: theme.colors.gray[900],
3822
+ width: "100%"
3823
+ };
3824
+ if (disabled) {
3825
+ style.backgroundColor = inputTheme.disabled?.backgroundColor || "#f1f5f9";
3826
+ style.borderColor = inputTheme.disabled?.borderColor || "#e2e8f0";
3827
+ style.opacity = 0.7;
3828
+ style.cursor = "not-allowed";
3829
+ }
3830
+ if (touched && error) {
3831
+ style.borderColor = inputTheme.error?.borderColor || "red";
3832
+ if (isFocused) {
3833
+ style.boxShadow = inputTheme.error?.ring;
3834
+ }
3835
+ } else if (isFocused && !readOnly) {
3836
+ style.boxShadow = inputTheme.focus?.ring;
3837
+ style.borderColor = inputTheme.focus?.borderColor;
3838
+ }
3839
+ return style;
3840
+ };
3841
+ return /* @__PURE__ */ jsxs14("div", { className: clsx14("w-full flex flex-col gap-1.5", className), ref: containerRef, children: [
3842
+ label && /* @__PURE__ */ jsxs14(
3843
+ "label",
3844
+ {
3845
+ className: clsx14("text-sm font-medium text-gray-700", {
3846
+ "text-red-500": touched && error
3847
+ }),
3848
+ children: [
3849
+ label,
3850
+ required && /* @__PURE__ */ jsx19("span", { className: "text-red-500 ml-1", children: "*" })
3851
+ ]
3852
+ }
3853
+ ),
3854
+ /* @__PURE__ */ jsxs14("div", { className: "relative", children: [
3855
+ /* @__PURE__ */ jsxs14("div", { className: "relative flex items-center", children: [
3856
+ /* @__PURE__ */ jsx19(
3857
+ "input",
3858
+ {
3859
+ type: "text",
3860
+ name,
3861
+ value: searchTerm,
3862
+ onChange: handleInputChange,
3863
+ onFocus: handleFocus,
3864
+ onBlur: handleInputBlur,
3865
+ disabled,
3866
+ readOnly,
3867
+ placeholder,
3868
+ className: "outline-none pr-10",
3869
+ style: getInputStyle(),
3870
+ autoComplete: "off"
3871
+ }
3872
+ ),
3873
+ /* @__PURE__ */ jsxs14("div", { className: "absolute right-3 flex items-center gap-2 text-gray-400 pointer-events-none", children: [
3874
+ isLoading && /* @__PURE__ */ jsx19("div", { className: "animate-spin h-4 w-4 border-2 border-primary-500 border-t-transparent rounded-full" }),
3875
+ !isLoading && /* @__PURE__ */ jsx19(FaSearch, { size: 14, className: clsx14({ "text-primary-500": isFocused }) })
3876
+ ] })
3877
+ ] }),
3878
+ isOpen && /* @__PURE__ */ jsx19("div", { className: "absolute z-50 w-full mt-1 bg-white border border-gray-200 rounded-lg shadow-xl overflow-hidden animate-in fade-in zoom-in duration-200 origin-top", children: /* @__PURE__ */ jsx19("div", { className: "max-h-60 overflow-y-auto", children: filteredOptions.length > 0 ? filteredOptions.map((option) => /* @__PURE__ */ jsx19(
3879
+ "div",
3880
+ {
3881
+ onClick: () => handleSelect(option),
3882
+ className: clsx14(
3883
+ "px-4 py-2 text-sm cursor-pointer transition-colors",
3884
+ value === option[valueField] ? "bg-primary-50 text-primary-700 font-medium" : "hover:bg-gray-50 text-gray-700"
3885
+ ),
3886
+ children: option[labelField]
3887
+ },
3888
+ option[valueField]
3889
+ )) : /* @__PURE__ */ jsx19("div", { className: "px-4 py-6 text-sm text-center text-gray-500 italic", children: isLoading ? "Cargando..." : noResultsMessage }) }) })
3890
+ ] }),
3891
+ touched && error && /* @__PURE__ */ jsx19("p", { className: "text-red-500 text-xs mt-1", children: error })
3892
+ ] });
3893
+ }
3894
+
3895
+ // src/components/slide/slide.tsx
3896
+ import { useState as useState16, useEffect as useEffect13 } from "react";
3897
+ import clsx15 from "clsx";
3898
+ import { jsx as jsx20 } from "react/jsx-runtime";
3731
3899
  function ITSlideToggle({
3732
3900
  onToggle,
3733
3901
  isOn: controlledIsOn,
@@ -3740,8 +3908,8 @@ function ITSlideToggle({
3740
3908
  className = ""
3741
3909
  }) {
3742
3910
  const isControlled = controlledIsOn !== void 0;
3743
- const [internalIsOn, setInternalIsOn] = useState15(initialState);
3744
- useEffect12(() => {
3911
+ const [internalIsOn, setInternalIsOn] = useState16(initialState);
3912
+ useEffect13(() => {
3745
3913
  if (isControlled) {
3746
3914
  setInternalIsOn(controlledIsOn);
3747
3915
  }
@@ -3780,11 +3948,11 @@ function ITSlideToggle({
3780
3948
  }
3781
3949
  };
3782
3950
  const { container, knob, translate } = sizeClasses2[size];
3783
- return /* @__PURE__ */ jsx19(
3951
+ return /* @__PURE__ */ jsx20(
3784
3952
  "div",
3785
3953
  {
3786
3954
  onClick: toggleSwitch,
3787
- className: clsx14(
3955
+ className: clsx15(
3788
3956
  "flex items-center rounded-full p-1 transition-colors duration-300",
3789
3957
  container,
3790
3958
  disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer",
@@ -3800,10 +3968,10 @@ function ITSlideToggle({
3800
3968
  toggleSwitch();
3801
3969
  }
3802
3970
  },
3803
- children: /* @__PURE__ */ jsx19(
3971
+ children: /* @__PURE__ */ jsx20(
3804
3972
  "div",
3805
3973
  {
3806
- className: clsx14(
3974
+ className: clsx15(
3807
3975
  "bg-white rounded-full shadow-md transform transition-transform duration-300 pointer-events-none",
3808
3976
  knob,
3809
3977
  isOn ? translate : "translate-x-0"
@@ -3815,9 +3983,9 @@ function ITSlideToggle({
3815
3983
  }
3816
3984
 
3817
3985
  // src/components/text/text.tsx
3818
- import { jsx as jsx20 } from "react/jsx-runtime";
3986
+ import { jsx as jsx21 } from "react/jsx-runtime";
3819
3987
  function ITText({ children, className = "" }) {
3820
- return /* @__PURE__ */ jsx20("p", { className: `${className} text-gray-900 `, children });
3988
+ return /* @__PURE__ */ jsx21("p", { className: `${className} text-gray-900 `, children });
3821
3989
  }
3822
3990
 
3823
3991
  // src/types/toast.types.ts
@@ -3831,10 +3999,10 @@ var positionStyles = {
3831
3999
  };
3832
4000
 
3833
4001
  // src/components/toast/toast.tsx
3834
- import clsx15 from "clsx";
3835
- import { useEffect as useEffect13, useState as useState16 } from "react";
3836
- import { FaTimesCircle, FaCheckCircle, FaExclamationTriangle, FaInfoCircle, FaTimes as FaTimes4 } from "react-icons/fa";
3837
- import { jsx as jsx21, jsxs as jsxs14 } from "react/jsx-runtime";
4002
+ import clsx16 from "clsx";
4003
+ import { useEffect as useEffect14, useState as useState17 } from "react";
4004
+ import { FaTimesCircle, FaCheckCircle, FaExclamationTriangle, FaInfoCircle, FaTimes as FaTimes5 } from "react-icons/fa";
4005
+ import { jsx as jsx22, jsxs as jsxs15 } from "react/jsx-runtime";
3838
4006
  function ITToast({
3839
4007
  message,
3840
4008
  type = "info",
@@ -3842,8 +4010,8 @@ function ITToast({
3842
4010
  position = "top-right",
3843
4011
  onClose
3844
4012
  }) {
3845
- const [isVisible, setIsVisible] = useState16(true);
3846
- useEffect13(() => {
4013
+ const [isVisible, setIsVisible] = useState17(true);
4014
+ useEffect14(() => {
3847
4015
  const timer = setTimeout(() => {
3848
4016
  setIsVisible(false);
3849
4017
  setTimeout(() => {
@@ -3863,21 +4031,21 @@ function ITToast({
3863
4031
  const TypeIcon = () => {
3864
4032
  switch (type) {
3865
4033
  case "success":
3866
- return /* @__PURE__ */ jsx21(FaCheckCircle, { className: "w-5 h-5 flex-shrink-0" });
4034
+ return /* @__PURE__ */ jsx22(FaCheckCircle, { className: "w-5 h-5 flex-shrink-0" });
3867
4035
  case "error":
3868
4036
  case "danger":
3869
- return /* @__PURE__ */ jsx21(FaTimesCircle, { className: "w-5 h-5 flex-shrink-0" });
4037
+ return /* @__PURE__ */ jsx22(FaTimesCircle, { className: "w-5 h-5 flex-shrink-0" });
3870
4038
  case "warning":
3871
- return /* @__PURE__ */ jsx21(FaExclamationTriangle, { className: "w-5 h-5 flex-shrink-0" });
4039
+ return /* @__PURE__ */ jsx22(FaExclamationTriangle, { className: "w-5 h-5 flex-shrink-0" });
3872
4040
  case "info":
3873
4041
  default:
3874
- return /* @__PURE__ */ jsx21(FaInfoCircle, { className: "w-5 h-5 flex-shrink-0" });
4042
+ return /* @__PURE__ */ jsx22(FaInfoCircle, { className: "w-5 h-5 flex-shrink-0" });
3875
4043
  }
3876
4044
  };
3877
- return /* @__PURE__ */ jsxs14(
4045
+ return /* @__PURE__ */ jsxs15(
3878
4046
  "div",
3879
4047
  {
3880
- className: clsx15(
4048
+ className: clsx16(
3881
4049
  "fixed z-50 p-4 rounded-xl shadow-xl flex items-center justify-between gap-4 transition-all duration-300 text-white min-w-[300px]",
3882
4050
  positionStyles[position],
3883
4051
  {
@@ -3890,17 +4058,17 @@ function ITToast({
3890
4058
  style: { backgroundColor },
3891
4059
  role: "alert",
3892
4060
  children: [
3893
- /* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-3", children: [
3894
- /* @__PURE__ */ jsx21(TypeIcon, {}),
3895
- /* @__PURE__ */ jsx21("span", { className: "font-medium text-sm sm:text-base leading-snug", children: message })
4061
+ /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-3", children: [
4062
+ /* @__PURE__ */ jsx22(TypeIcon, {}),
4063
+ /* @__PURE__ */ jsx22("span", { className: "font-medium text-sm sm:text-base leading-snug", children: message })
3896
4064
  ] }),
3897
- /* @__PURE__ */ jsx21(
4065
+ /* @__PURE__ */ jsx22(
3898
4066
  "button",
3899
4067
  {
3900
4068
  onClick: handleClose,
3901
4069
  className: "p-1.5 rounded-full hover:bg-black/15 transition-colors focus:outline-none focus:ring-2 focus:ring-white/50",
3902
4070
  "aria-label": "Close notification",
3903
- children: /* @__PURE__ */ jsx21(FaTimes4, { className: "w-4 h-4" })
4071
+ children: /* @__PURE__ */ jsx22(FaTimes5, { className: "w-4 h-4" })
3904
4072
  }
3905
4073
  )
3906
4074
  ]
@@ -3909,10 +4077,10 @@ function ITToast({
3909
4077
  }
3910
4078
 
3911
4079
  // src/components/dropfile/dropfile.tsx
3912
- import { useState as useState17, useEffect as useEffect14, useRef as useRef7 } from "react";
4080
+ import { useState as useState18, useEffect as useEffect15, useRef as useRef8 } from "react";
3913
4081
  import { useDropzone } from "react-dropzone";
3914
- import clsx16 from "clsx";
3915
- import { Fragment as Fragment5, jsx as jsx22, jsxs as jsxs15 } from "react/jsx-runtime";
4082
+ import clsx17 from "clsx";
4083
+ import { Fragment as Fragment5, jsx as jsx23, jsxs as jsxs16 } from "react/jsx-runtime";
3916
4084
  var ITDropfile = ({
3917
4085
  onFileSelect,
3918
4086
  onCancel,
@@ -3925,15 +4093,15 @@ var ITDropfile = ({
3925
4093
  onStatusChange,
3926
4094
  initialPreviewUrl
3927
4095
  }) => {
3928
- const [selectedFile, setSelectedFile] = useState17(null);
3929
- const [fileType, setFileType] = useState17(null);
3930
- const [imagePreview, setImagePreview] = useState17(initialPreviewUrl || null);
3931
- const [isConfirmed, setIsConfirmed] = useState17(false);
3932
- const [internalUploadStatus, setInternalUploadStatus] = useState17(
4096
+ const [selectedFile, setSelectedFile] = useState18(null);
4097
+ const [fileType, setFileType] = useState18(null);
4098
+ const [imagePreview, setImagePreview] = useState18(initialPreviewUrl || null);
4099
+ const [isConfirmed, setIsConfirmed] = useState18(false);
4100
+ const [internalUploadStatus, setInternalUploadStatus] = useState18(
3933
4101
  initialPreviewUrl ? "subido" /* UPLOADED */ : "pendiente" /* PENDING */
3934
4102
  );
3935
- const canvasRef = useRef7(null);
3936
- useEffect14(() => {
4103
+ const canvasRef = useRef8(null);
4104
+ useEffect15(() => {
3937
4105
  if (initialPreviewUrl && !selectedFile) {
3938
4106
  setImagePreview(initialPreviewUrl);
3939
4107
  if (externalStatus === void 0) setInternalUploadStatus("subido" /* UPLOADED */);
@@ -4022,9 +4190,9 @@ var ITDropfile = ({
4022
4190
  }
4023
4191
  };
4024
4192
  const { label, color, dotColor } = config[status];
4025
- return /* @__PURE__ */ jsxs15("div", { className: `inline-flex items-center gap-2 px-2.5 py-1 rounded-full border ${color}`, children: [
4026
- /* @__PURE__ */ jsx22("div", { className: `w-2 h-2 rounded-full ${dotColor}` }),
4027
- /* @__PURE__ */ jsx22("span", { className: "text-xs font-medium flex items-center gap-1.5", children: label })
4193
+ return /* @__PURE__ */ jsxs16("div", { className: `inline-flex items-center gap-2 px-2.5 py-1 rounded-full border ${color}`, children: [
4194
+ /* @__PURE__ */ jsx23("div", { className: `w-2 h-2 rounded-full ${dotColor}` }),
4195
+ /* @__PURE__ */ jsx23("span", { className: "text-xs font-medium flex items-center gap-1.5", children: label })
4028
4196
  ] });
4029
4197
  };
4030
4198
  const onDrop = (acceptedFiles) => {
@@ -4056,12 +4224,12 @@ var ITDropfile = ({
4056
4224
  accept: getAcceptedFileTypes(),
4057
4225
  maxFiles: 1
4058
4226
  });
4059
- useEffect14(() => {
4227
+ useEffect15(() => {
4060
4228
  const renderPDF = async () => {
4061
4229
  };
4062
4230
  renderPDF();
4063
4231
  }, [selectedFile, fileType]);
4064
- useEffect14(() => {
4232
+ useEffect15(() => {
4065
4233
  return () => {
4066
4234
  if (imagePreview) {
4067
4235
  URL.revokeObjectURL(imagePreview);
@@ -4099,19 +4267,19 @@ var ITDropfile = ({
4099
4267
  handleCancel();
4100
4268
  };
4101
4269
  const isImage = fileType && fileType.startsWith("image/");
4102
- return /* @__PURE__ */ jsxs15("div", { className: clsx16("w-full transition-all duration-300", containerClassName), children: [
4103
- /* @__PURE__ */ jsxs15("div", { className: "flex items-center justify-between mb-2", children: [
4104
- /* @__PURE__ */ jsxs15("label", { className: "block text-sm font-semibold text-gray-700", children: [
4270
+ return /* @__PURE__ */ jsxs16("div", { className: clsx17("w-full transition-all duration-300", containerClassName), children: [
4271
+ /* @__PURE__ */ jsxs16("div", { className: "flex items-center justify-between mb-2", children: [
4272
+ /* @__PURE__ */ jsxs16("label", { className: "block text-sm font-semibold text-gray-700", children: [
4105
4273
  "Subir archivo ",
4106
- /* @__PURE__ */ jsxs15("span", { className: "text-gray-400 font-normal text-xs", children: [
4274
+ /* @__PURE__ */ jsxs16("span", { className: "text-gray-400 font-normal text-xs", children: [
4107
4275
  "(",
4108
4276
  getFileExtensions(),
4109
4277
  ")"
4110
4278
  ] })
4111
4279
  ] }),
4112
- showStatusBadge && selectedFile && /* @__PURE__ */ jsx22(StatusBadge, { status: uploadStatus })
4280
+ showStatusBadge && selectedFile && /* @__PURE__ */ jsx23(StatusBadge, { status: uploadStatus })
4113
4281
  ] }),
4114
- !selectedFile && !imagePreview ? /* @__PURE__ */ jsxs15(
4282
+ !selectedFile && !imagePreview ? /* @__PURE__ */ jsxs16(
4115
4283
  "div",
4116
4284
  {
4117
4285
  ...getRootProps(),
@@ -4121,41 +4289,41 @@ var ITDropfile = ({
4121
4289
  ${isDragActive ? "border-primary-500 bg-primary-50 scale-[1.01]" : "border-gray-300 bg-white hover:border-primary-400 hover:bg-gray-50"}
4122
4290
  `,
4123
4291
  children: [
4124
- /* @__PURE__ */ jsx22("input", { ...getInputProps() }),
4125
- /* @__PURE__ */ jsx22("div", { className: `mb-3 p-3 rounded-full transition-colors duration-300 ${isDragActive ? "bg-primary-100" : "bg-gray-100 group-hover:bg-primary-50"}`, children: /* @__PURE__ */ jsx22(
4292
+ /* @__PURE__ */ jsx23("input", { ...getInputProps() }),
4293
+ /* @__PURE__ */ jsx23("div", { className: `mb-3 p-3 rounded-full transition-colors duration-300 ${isDragActive ? "bg-primary-100" : "bg-gray-100 group-hover:bg-primary-50"}`, children: /* @__PURE__ */ jsx23(
4126
4294
  "svg",
4127
4295
  {
4128
4296
  className: `w-6 h-6 transition-colors duration-300 ${isDragActive ? "text-primary-600" : "text-gray-400 group-hover:text-primary-500"}`,
4129
4297
  fill: "none",
4130
4298
  viewBox: "0 0 24 24",
4131
4299
  stroke: "currentColor",
4132
- children: /* @__PURE__ */ jsx22("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12" })
4300
+ children: /* @__PURE__ */ jsx23("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12" })
4133
4301
  }
4134
4302
  ) }),
4135
- /* @__PURE__ */ jsx22("div", { className: "text-center space-y-1", children: /* @__PURE__ */ jsx22("p", { className: `text-sm font-medium transition-colors duration-300 ${isDragActive ? "text-primary-700" : "text-gray-700"}`, children: isDragActive ? "\xA1Suelta aqu\xED!" : "Haz clic o arrastra" }) })
4303
+ /* @__PURE__ */ jsx23("div", { className: "text-center space-y-1", children: /* @__PURE__ */ jsx23("p", { className: `text-sm font-medium transition-colors duration-300 ${isDragActive ? "text-primary-700" : "text-gray-700"}`, children: isDragActive ? "\xA1Suelta aqu\xED!" : "Haz clic o arrastra" }) })
4136
4304
  ]
4137
4305
  }
4138
- ) : /* @__PURE__ */ jsxs15("div", { className: "w-full bg-white border border-gray-200 rounded-xl shadow-sm overflow-hidden animate-fade-in", children: [
4139
- /* @__PURE__ */ jsx22("div", { className: "flex items-center justify-between p-3 bg-gray-50 border-b border-gray-100", children: /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-3 overflow-hidden", children: [
4140
- /* @__PURE__ */ jsx22("div", { className: "flex-shrink-0 w-8 h-8 rounded-lg bg-primary-100 flex items-center justify-center text-primary-600", children: selectedFile && fileType?.startsWith("image/") || !selectedFile && imagePreview ? /* @__PURE__ */ jsx22("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx22("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" }) }) : /* @__PURE__ */ jsx22("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx22("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" }) }) }),
4141
- /* @__PURE__ */ jsxs15("div", { className: "min-w-0", children: [
4142
- /* @__PURE__ */ jsx22("p", { className: "text-xs font-medium text-gray-900 truncate", title: selectedFile?.name || "Imagen cargada", children: selectedFile?.name || "Imagen cargada" }),
4143
- /* @__PURE__ */ jsx22("p", { className: "text-[10px] text-gray-500", children: selectedFile ? (selectedFile.size / 1024 / 1024).toFixed(2) + " MB" : "" })
4306
+ ) : /* @__PURE__ */ jsxs16("div", { className: "w-full bg-white border border-gray-200 rounded-xl shadow-sm overflow-hidden animate-fade-in", children: [
4307
+ /* @__PURE__ */ jsx23("div", { className: "flex items-center justify-between p-3 bg-gray-50 border-b border-gray-100", children: /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-3 overflow-hidden", children: [
4308
+ /* @__PURE__ */ jsx23("div", { className: "flex-shrink-0 w-8 h-8 rounded-lg bg-primary-100 flex items-center justify-center text-primary-600", children: selectedFile && fileType?.startsWith("image/") || !selectedFile && imagePreview ? /* @__PURE__ */ jsx23("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx23("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" }) }) : /* @__PURE__ */ jsx23("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx23("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" }) }) }),
4309
+ /* @__PURE__ */ jsxs16("div", { className: "min-w-0", children: [
4310
+ /* @__PURE__ */ jsx23("p", { className: "text-xs font-medium text-gray-900 truncate", title: selectedFile?.name || "Imagen cargada", children: selectedFile?.name || "Imagen cargada" }),
4311
+ /* @__PURE__ */ jsx23("p", { className: "text-[10px] text-gray-500", children: selectedFile ? (selectedFile.size / 1024 / 1024).toFixed(2) + " MB" : "" })
4144
4312
  ] })
4145
4313
  ] }) }),
4146
- /* @__PURE__ */ jsx22("div", { className: clsx16("relative bg-gray-100 flex items-center justify-center", !contentClassName ? "max-h-[200px] min-h-[100px] overflow-auto" : contentClassName), children: selectedFile && fileType?.startsWith("image/") || !selectedFile && imagePreview ? /* @__PURE__ */ jsx22(
4314
+ /* @__PURE__ */ jsx23("div", { className: clsx17("relative bg-gray-100 flex items-center justify-center", !contentClassName ? "max-h-[200px] min-h-[100px] overflow-auto" : contentClassName), children: selectedFile && fileType?.startsWith("image/") || !selectedFile && imagePreview ? /* @__PURE__ */ jsx23(
4147
4315
  "img",
4148
4316
  {
4149
4317
  src: imagePreview,
4150
4318
  alt: "Vista previa",
4151
4319
  className: "w-full h-full object-contain max-h-[200px]"
4152
4320
  }
4153
- ) : /* @__PURE__ */ jsxs15("div", { className: "py-8 flex flex-col items-center text-gray-400", children: [
4154
- /* @__PURE__ */ jsx22("svg", { className: "w-10 h-10 mb-2 opacity-50", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx22("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M7 21h10a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-5.414-5.414A1 1 0 0012.586 3H7a2 2 0 00-2 2v14a2 2 0 002 2z" }) }),
4155
- /* @__PURE__ */ jsx22("span", { className: "text-xs", children: "Sin vista previa" })
4321
+ ) : /* @__PURE__ */ jsxs16("div", { className: "py-8 flex flex-col items-center text-gray-400", children: [
4322
+ /* @__PURE__ */ jsx23("svg", { className: "w-10 h-10 mb-2 opacity-50", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx23("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M7 21h10a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-5.414-5.414A1 1 0 0012.586 3H7a2 2 0 00-2 2v14a2 2 0 002 2z" }) }),
4323
+ /* @__PURE__ */ jsx23("span", { className: "text-xs", children: "Sin vista previa" })
4156
4324
  ] }) }),
4157
- /* @__PURE__ */ jsx22("div", { className: "px-3 py-2 bg-white border-t border-gray-100 flex justify-end gap-2", children: !isConfirmed ? /* @__PURE__ */ jsxs15(Fragment5, { children: [
4158
- /* @__PURE__ */ jsx22(
4325
+ /* @__PURE__ */ jsx23("div", { className: "px-3 py-2 bg-white border-t border-gray-100 flex justify-end gap-2", children: !isConfirmed ? /* @__PURE__ */ jsxs16(Fragment5, { children: [
4326
+ /* @__PURE__ */ jsx23(
4159
4327
  "button",
4160
4328
  {
4161
4329
  type: "button",
@@ -4164,31 +4332,31 @@ var ITDropfile = ({
4164
4332
  children: "Cancelar"
4165
4333
  }
4166
4334
  ),
4167
- /* @__PURE__ */ jsxs15(
4335
+ /* @__PURE__ */ jsxs16(
4168
4336
  "button",
4169
4337
  {
4170
4338
  type: "button",
4171
4339
  onClick: handleConfirm,
4172
4340
  className: "px-3 py-1.5 text-xs font-medium text-white bg-primary-600 rounded-lg hover:bg-primary-700 shadow-sm transition-colors flex items-center gap-1",
4173
4341
  children: [
4174
- /* @__PURE__ */ jsx22("span", { children: "Confirmar" }),
4175
- /* @__PURE__ */ jsx22("svg", { className: "w-3 h-3", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx22("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) })
4342
+ /* @__PURE__ */ jsx23("span", { children: "Confirmar" }),
4343
+ /* @__PURE__ */ jsx23("svg", { className: "w-3 h-3", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx23("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) })
4176
4344
  ]
4177
4345
  }
4178
4346
  )
4179
- ] }) : /* @__PURE__ */ jsxs15(
4347
+ ] }) : /* @__PURE__ */ jsxs16(
4180
4348
  "button",
4181
4349
  {
4182
4350
  type: "button",
4183
4351
  onClick: handleDelete,
4184
4352
  className: "px-3 py-1.5 text-xs font-medium text-danger-600 bg-danger-50 border border-danger-100 rounded-lg hover:bg-danger-100 transition-colors flex items-center gap-1",
4185
4353
  children: [
4186
- /* @__PURE__ */ jsx22("svg", { className: "w-3 h-3", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx22("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" }) }),
4187
- /* @__PURE__ */ jsx22("span", { children: "Eliminar" })
4354
+ /* @__PURE__ */ jsx23("svg", { className: "w-3 h-3", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx23("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" }) }),
4355
+ /* @__PURE__ */ jsx23("span", { children: "Eliminar" })
4188
4356
  ]
4189
4357
  }
4190
4358
  ) }),
4191
- uploadStatus === "subiendo" /* UPLOADING */ && /* @__PURE__ */ jsx22("div", { className: "px-4 pb-2", children: /* @__PURE__ */ jsx22("div", { className: "w-full bg-gray-200 rounded-full h-1.5", children: /* @__PURE__ */ jsx22(
4359
+ uploadStatus === "subiendo" /* UPLOADING */ && /* @__PURE__ */ jsx23("div", { className: "px-4 pb-2", children: /* @__PURE__ */ jsx23("div", { className: "w-full bg-gray-200 rounded-full h-1.5", children: /* @__PURE__ */ jsx23(
4192
4360
  "div",
4193
4361
  {
4194
4362
  className: "bg-primary-600 h-1.5 rounded-full transition-all duration-1000 ease-out",
@@ -4204,12 +4372,12 @@ var ITDropfile = ({
4204
4372
  var dropfile_default = ITDropfile;
4205
4373
 
4206
4374
  // src/components/layout/layout.tsx
4207
- import { useState as useState20 } from "react";
4375
+ import { useState as useState21 } from "react";
4208
4376
 
4209
4377
  // src/components/topbar/topbar.tsx
4210
4378
  import { FaUserCircle as FaUserCircle2, FaBars } from "react-icons/fa";
4211
- import { useRef as useRef8, useState as useState18 } from "react";
4212
- import { jsx as jsx23, jsxs as jsxs16 } from "react/jsx-runtime";
4379
+ import { useRef as useRef9, useState as useState19 } from "react";
4380
+ import { jsx as jsx24, jsxs as jsxs17 } from "react/jsx-runtime";
4213
4381
  function ITTopBar({
4214
4382
  logo,
4215
4383
  logoText,
@@ -4219,10 +4387,10 @@ function ITTopBar({
4219
4387
  navItems,
4220
4388
  onNavItemClick
4221
4389
  }) {
4222
- const [isUserMenuOpen, setIsUserMenuOpen] = useState18(false);
4223
- const userMenuRef = useRef8(null);
4390
+ const [isUserMenuOpen, setIsUserMenuOpen] = useState19(false);
4391
+ const userMenuRef = useRef9(null);
4224
4392
  useClickOutside_default(userMenuRef, () => setIsUserMenuOpen(false));
4225
- return /* @__PURE__ */ jsx23(
4393
+ return /* @__PURE__ */ jsx24(
4226
4394
  "header",
4227
4395
  {
4228
4396
  className: "sticky top-0 z-40 backdrop-blur-md transition-all duration-300",
@@ -4231,9 +4399,9 @@ function ITTopBar({
4231
4399
  borderBottom: `1px solid ${theme.topbar?.borderColor || "#e2e8f0"}`,
4232
4400
  boxShadow: theme.topbar?.shadow || "none"
4233
4401
  },
4234
- children: /* @__PURE__ */ jsxs16("div", { className: "flex items-center justify-between h-[72px] px-6 lg:px-8", children: [
4235
- /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-5", children: [
4236
- showMobileMenuButton && /* @__PURE__ */ jsx23(
4402
+ children: /* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between h-[72px] px-6 lg:px-8", children: [
4403
+ /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-5", children: [
4404
+ showMobileMenuButton && /* @__PURE__ */ jsx24(
4237
4405
  "button",
4238
4406
  {
4239
4407
  className: "lg:hidden p-2.5 rounded-xl transition-colors duration-200",
@@ -4243,12 +4411,12 @@ function ITTopBar({
4243
4411
  onMouseEnter: (e) => e.currentTarget.style.backgroundColor = theme.topbar?.userMenu?.hoverBackground || "#f1f5f9",
4244
4412
  onMouseLeave: (e) => e.currentTarget.style.backgroundColor = "transparent",
4245
4413
  onClick: onToggleMobileMenu,
4246
- children: /* @__PURE__ */ jsx23(FaBars, { className: "w-[1.125rem] h-[1.125rem]" })
4414
+ children: /* @__PURE__ */ jsx24(FaBars, { className: "w-[1.125rem] h-[1.125rem]" })
4247
4415
  }
4248
4416
  ),
4249
- /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-3", children: [
4250
- logo && /* @__PURE__ */ jsx23("div", { className: "flex-shrink-0 drop-shadow-sm", children: logo }),
4251
- logoText && /* @__PURE__ */ jsx23(
4417
+ /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-3", children: [
4418
+ logo && /* @__PURE__ */ jsx24("div", { className: "flex-shrink-0 drop-shadow-sm", children: logo }),
4419
+ logoText && /* @__PURE__ */ jsx24(
4252
4420
  "span",
4253
4421
  {
4254
4422
  className: "text-[1.15rem] font-bold tracking-tight",
@@ -4257,7 +4425,7 @@ function ITTopBar({
4257
4425
  }
4258
4426
  )
4259
4427
  ] }),
4260
- navItems && navItems.length > 0 && /* @__PURE__ */ jsx23("nav", { className: "hidden md:flex ml-8 space-x-1 border-l pl-8", style: { borderColor: theme.topbar?.borderColor || "#e2e8f0" }, children: navItems.map((item) => /* @__PURE__ */ jsx23(
4428
+ navItems && navItems.length > 0 && /* @__PURE__ */ jsx24("nav", { className: "hidden md:flex ml-8 space-x-1 border-l pl-8", style: { borderColor: theme.topbar?.borderColor || "#e2e8f0" }, children: navItems.map((item) => /* @__PURE__ */ jsx24(
4261
4429
  "button",
4262
4430
  {
4263
4431
  onClick: () => onNavItemClick?.(item.id),
@@ -4271,16 +4439,16 @@ function ITTopBar({
4271
4439
  e.currentTarget.style.color = theme.topbar?.textColor || "#475569";
4272
4440
  e.currentTarget.style.backgroundColor = "transparent";
4273
4441
  },
4274
- children: /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-2", children: [
4275
- item.icon && /* @__PURE__ */ jsx23("span", { className: "opacity-70", children: item.icon }),
4442
+ children: /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-2", children: [
4443
+ item.icon && /* @__PURE__ */ jsx24("span", { className: "opacity-70", children: item.icon }),
4276
4444
  item.label
4277
4445
  ] })
4278
4446
  },
4279
4447
  item.id
4280
4448
  )) })
4281
4449
  ] }),
4282
- userMenu && /* @__PURE__ */ jsxs16("div", { className: "relative", children: [
4283
- /* @__PURE__ */ jsxs16(
4450
+ userMenu && /* @__PURE__ */ jsxs17("div", { className: "relative", children: [
4451
+ /* @__PURE__ */ jsxs17(
4284
4452
  "button",
4285
4453
  {
4286
4454
  type: "button",
@@ -4296,19 +4464,19 @@ function ITTopBar({
4296
4464
  },
4297
4465
  onClick: () => setIsUserMenuOpen(!isUserMenuOpen),
4298
4466
  children: [
4299
- /* @__PURE__ */ jsxs16("div", { className: "relative", children: [
4300
- userMenu.userImage ? /* @__PURE__ */ jsx23(
4467
+ /* @__PURE__ */ jsxs17("div", { className: "relative", children: [
4468
+ userMenu.userImage ? /* @__PURE__ */ jsx24(
4301
4469
  "img",
4302
4470
  {
4303
4471
  className: "w-9 h-9 rounded-full object-cover ring-2 ring-white shadow-sm",
4304
4472
  src: userMenu.userImage,
4305
4473
  alt: "Current user"
4306
4474
  }
4307
- ) : /* @__PURE__ */ jsx23("div", { className: "w-9 h-9 rounded-full bg-slate-100 flex items-center justify-center ring-2 ring-white shadow-sm", children: /* @__PURE__ */ jsx23(FaUserCircle2, { className: "w-6 h-6", style: { color: theme.topbar?.iconColor || "#94a3b8" } }) }),
4308
- /* @__PURE__ */ jsx23("div", { className: "absolute bottom-0 right-0 w-2.5 h-2.5 bg-green-500 border-2 border-white rounded-full" })
4475
+ ) : /* @__PURE__ */ jsx24("div", { className: "w-9 h-9 rounded-full bg-slate-100 flex items-center justify-center ring-2 ring-white shadow-sm", children: /* @__PURE__ */ jsx24(FaUserCircle2, { className: "w-6 h-6", style: { color: theme.topbar?.iconColor || "#94a3b8" } }) }),
4476
+ /* @__PURE__ */ jsx24("div", { className: "absolute bottom-0 right-0 w-2.5 h-2.5 bg-green-500 border-2 border-white rounded-full" })
4309
4477
  ] }),
4310
- /* @__PURE__ */ jsxs16("div", { className: "hidden sm:flex flex-col text-left py-0.5", children: [
4311
- /* @__PURE__ */ jsx23(
4478
+ /* @__PURE__ */ jsxs17("div", { className: "hidden sm:flex flex-col text-left py-0.5", children: [
4479
+ /* @__PURE__ */ jsx24(
4312
4480
  "span",
4313
4481
  {
4314
4482
  className: "font-semibold text-[0.85rem] leading-tight",
@@ -4316,7 +4484,7 @@ function ITTopBar({
4316
4484
  children: userMenu.userName
4317
4485
  }
4318
4486
  ),
4319
- /* @__PURE__ */ jsx23(
4487
+ /* @__PURE__ */ jsx24(
4320
4488
  "span",
4321
4489
  {
4322
4490
  className: "text-[0.7rem] font-medium",
@@ -4328,7 +4496,7 @@ function ITTopBar({
4328
4496
  ]
4329
4497
  }
4330
4498
  ),
4331
- /* @__PURE__ */ jsxs16(
4499
+ /* @__PURE__ */ jsxs17(
4332
4500
  "div",
4333
4501
  {
4334
4502
  ref: userMenuRef,
@@ -4341,15 +4509,15 @@ function ITTopBar({
4341
4509
  border: `1px solid ${theme.topbar?.userMenu?.dropdown?.borderColor || "#f1f5f9"}`
4342
4510
  },
4343
4511
  children: [
4344
- /* @__PURE__ */ jsxs16("div", { className: "px-5 py-4 border-b bg-slate-50/50", style: { borderColor: theme.topbar?.userMenu?.dropdown?.borderColor || "#f1f5f9" }, children: [
4345
- /* @__PURE__ */ jsx23("span", { className: "block font-bold text-[0.9rem]", style: { color: theme.topbar?.userMenu?.textColor || "#0f172a" }, children: userMenu.userName }),
4346
- /* @__PURE__ */ jsx23("span", { className: "block text-xs font-medium truncate mt-0.5", style: { color: theme.topbar?.userMenu?.subtitleColor || "#64748b" }, children: userMenu.userEmail })
4512
+ /* @__PURE__ */ jsxs17("div", { className: "px-5 py-4 border-b bg-slate-50/50", style: { borderColor: theme.topbar?.userMenu?.dropdown?.borderColor || "#f1f5f9" }, children: [
4513
+ /* @__PURE__ */ jsx24("span", { className: "block font-bold text-[0.9rem]", style: { color: theme.topbar?.userMenu?.textColor || "#0f172a" }, children: userMenu.userName }),
4514
+ /* @__PURE__ */ jsx24("span", { className: "block text-xs font-medium truncate mt-0.5", style: { color: theme.topbar?.userMenu?.subtitleColor || "#64748b" }, children: userMenu.userEmail })
4347
4515
  ] }),
4348
- /* @__PURE__ */ jsx23("ul", { className: "py-2", children: userMenu.menuItems.map((m, i) => {
4516
+ /* @__PURE__ */ jsx24("ul", { className: "py-2", children: userMenu.menuItems.map((m, i) => {
4349
4517
  const isDestructive = m.label.toLowerCase().includes("salir") || m.label.toLowerCase().includes("cerrar") || m.label.toLowerCase().includes("logout");
4350
- return /* @__PURE__ */ jsxs16("li", { className: "px-2", children: [
4351
- i === userMenu.menuItems.length - 1 && isDestructive && i > 0 && /* @__PURE__ */ jsx23("div", { className: "h-px bg-slate-100 my-1 mx-2" }),
4352
- /* @__PURE__ */ jsx23(
4518
+ return /* @__PURE__ */ jsxs17("li", { className: "px-2", children: [
4519
+ i === userMenu.menuItems.length - 1 && isDestructive && i > 0 && /* @__PURE__ */ jsx24("div", { className: "h-px bg-slate-100 my-1 mx-2" }),
4520
+ /* @__PURE__ */ jsx24(
4353
4521
  "button",
4354
4522
  {
4355
4523
  onClick: (e) => {
@@ -4379,9 +4547,9 @@ function ITTopBar({
4379
4547
  }
4380
4548
 
4381
4549
  // src/components/sidebar/sidebar.tsx
4382
- import { useEffect as useEffect15, useRef as useRef9, useState as useState19 } from "react";
4550
+ import { useEffect as useEffect16, useRef as useRef10, useState as useState20 } from "react";
4383
4551
  import { FaChevronDown as FaChevronDown2 } from "react-icons/fa";
4384
- import { jsx as jsx24, jsxs as jsxs17 } from "react/jsx-runtime";
4552
+ import { jsx as jsx25, jsxs as jsxs18 } from "react/jsx-runtime";
4385
4553
  function ITSidebar({
4386
4554
  navigationItems = [],
4387
4555
  isCollapsed = false,
@@ -4389,12 +4557,12 @@ function ITSidebar({
4389
4557
  className = "",
4390
4558
  visibleOnMobile = false
4391
4559
  }) {
4392
- const [expandedItems, setExpandedItems] = useState19(/* @__PURE__ */ new Set());
4393
- const [isHovering, setIsHovering] = useState19(false);
4394
- const sidebarRef = useRef9(null);
4395
- const hoverTimeoutRef = useRef9(null);
4396
- const leaveTimeoutRef = useRef9(null);
4397
- useEffect15(() => {
4560
+ const [expandedItems, setExpandedItems] = useState20(/* @__PURE__ */ new Set());
4561
+ const [isHovering, setIsHovering] = useState20(false);
4562
+ const sidebarRef = useRef10(null);
4563
+ const hoverTimeoutRef = useRef10(null);
4564
+ const leaveTimeoutRef = useRef10(null);
4565
+ useEffect16(() => {
4398
4566
  const handleMouseEnter = () => {
4399
4567
  if (hoverTimeoutRef.current) clearTimeout(hoverTimeoutRef.current);
4400
4568
  if (leaveTimeoutRef.current) clearTimeout(leaveTimeoutRef.current);
@@ -4434,7 +4602,7 @@ function ITSidebar({
4434
4602
  };
4435
4603
  const isSidebarCollapsed = visibleOnMobile ? false : !isHovering && isCollapsed;
4436
4604
  const sidebarWidth = isSidebarCollapsed ? "w-[88px]" : "w-[280px]";
4437
- return /* @__PURE__ */ jsx24(
4605
+ return /* @__PURE__ */ jsx25(
4438
4606
  "aside",
4439
4607
  {
4440
4608
  ref: sidebarRef,
@@ -4453,8 +4621,8 @@ function ITSidebar({
4453
4621
  WebkitBackdropFilter: "blur(12px)",
4454
4622
  backdropFilter: "blur(12px)"
4455
4623
  },
4456
- children: /* @__PURE__ */ jsx24("nav", { className: "flex-1 py-6 overflow-y-auto overflow-x-hidden custom-scrollbar px-4", children: /* @__PURE__ */ jsx24("ul", { className: "space-y-2", children: navigationItems.map((item) => /* @__PURE__ */ jsxs17("li", { className: "relative group/navitem", children: [
4457
- /* @__PURE__ */ jsxs17(
4624
+ children: /* @__PURE__ */ jsx25("nav", { className: "flex-1 py-6 overflow-y-auto overflow-x-hidden custom-scrollbar px-4", children: /* @__PURE__ */ jsx25("ul", { className: "space-y-2", children: navigationItems.map((item) => /* @__PURE__ */ jsxs18("li", { className: "relative group/navitem", children: [
4625
+ /* @__PURE__ */ jsxs18(
4458
4626
  "div",
4459
4627
  {
4460
4628
  className: `flex items-center cursor-pointer
@@ -4475,15 +4643,15 @@ function ITSidebar({
4475
4643
  },
4476
4644
  onClick: () => handleItemClick(item),
4477
4645
  children: [
4478
- item.isActive && !isSidebarCollapsed && /* @__PURE__ */ jsx24(
4646
+ item.isActive && !isSidebarCollapsed && /* @__PURE__ */ jsx25(
4479
4647
  "div",
4480
4648
  {
4481
4649
  className: "absolute left-0 top-1/4 bottom-1/4 w-[3px] rounded-r-full transition-all",
4482
4650
  style: { backgroundColor: theme.sidebar?.active?.iconColor || "#10b981", boxShadow: `0 0 10px ${theme.sidebar?.active?.iconColor || "#10b981"}` }
4483
4651
  }
4484
4652
  ),
4485
- /* @__PURE__ */ jsxs17("div", { className: `flex items-center ${!isSidebarCollapsed ? "gap-3.5" : "justify-center"} relative z-10 w-full`, children: [
4486
- item.icon && /* @__PURE__ */ jsx24(
4653
+ /* @__PURE__ */ jsxs18("div", { className: `flex items-center ${!isSidebarCollapsed ? "gap-3.5" : "justify-center"} relative z-10 w-full`, children: [
4654
+ item.icon && /* @__PURE__ */ jsx25(
4487
4655
  "div",
4488
4656
  {
4489
4657
  className: `transition-all duration-300 flex-shrink-0 flex items-center justify-center`,
@@ -4496,7 +4664,7 @@ function ITSidebar({
4496
4664
  children: item.icon
4497
4665
  }
4498
4666
  ),
4499
- !isSidebarCollapsed && /* @__PURE__ */ jsx24(
4667
+ !isSidebarCollapsed && /* @__PURE__ */ jsx25(
4500
4668
  "span",
4501
4669
  {
4502
4670
  className: `transition-all duration-300 truncate tracking-wide`,
@@ -4509,15 +4677,15 @@ function ITSidebar({
4509
4677
  }
4510
4678
  )
4511
4679
  ] }),
4512
- !isSidebarCollapsed && item.subitems && item.subitems.length > 0 && /* @__PURE__ */ jsx24(
4680
+ !isSidebarCollapsed && item.subitems && item.subitems.length > 0 && /* @__PURE__ */ jsx25(
4513
4681
  "div",
4514
4682
  {
4515
4683
  className: `flex-shrink-0 transition-transform duration-300 ease-[cubic-bezier(0.2,0,0,1)] ${expandedItems.has(item.id) ? "rotate-180" : ""}`,
4516
4684
  style: { color: item.isActive ? theme.sidebar?.active?.color || "#0f172a" : theme.sidebar?.icon?.color || "#64748b", opacity: 0.7 },
4517
- children: /* @__PURE__ */ jsx24(FaChevronDown2, { className: "w-3 h-3" })
4685
+ children: /* @__PURE__ */ jsx25(FaChevronDown2, { className: "w-3 h-3" })
4518
4686
  }
4519
4687
  ),
4520
- item.badge && /* @__PURE__ */ jsx24(
4688
+ item.badge && /* @__PURE__ */ jsx25(
4521
4689
  "span",
4522
4690
  {
4523
4691
  className: `
@@ -4535,7 +4703,7 @@ function ITSidebar({
4535
4703
  ]
4536
4704
  }
4537
4705
  ),
4538
- isSidebarCollapsed && /* @__PURE__ */ jsxs17(
4706
+ isSidebarCollapsed && /* @__PURE__ */ jsxs18(
4539
4707
  "div",
4540
4708
  {
4541
4709
  className: "absolute left-full top-0 ml-4 rounded-2xl opacity-0 invisible group-hover/navitem:opacity-100 group-hover/navitem:visible transition-all duration-300 pointer-events-none z-50 min-w-[220px] overflow-hidden -translate-x-2 group-hover/navitem:translate-x-0 shadow-[0_10px_40px_-10px_rgba(0,0,0,0.15)]",
@@ -4546,27 +4714,27 @@ function ITSidebar({
4546
4714
  backdropFilter: "blur(16px)"
4547
4715
  },
4548
4716
  children: [
4549
- /* @__PURE__ */ jsxs17("div", { className: "px-5 py-4 flex items-center gap-3 font-semibold border-b", style: { borderColor: theme.sidebar?.borderColor || "#e2e8f0", color: theme.sidebar?.active?.color || "#0f172a" }, children: [
4550
- item.icon && /* @__PURE__ */ jsx24("span", { style: { color: theme.sidebar?.active?.iconColor || "#10b981" }, className: "text-xl drop-shadow-sm", children: item.icon }),
4551
- /* @__PURE__ */ jsx24("span", { className: "tracking-wide text-[15px]", children: item.label })
4717
+ /* @__PURE__ */ jsxs18("div", { className: "px-5 py-4 flex items-center gap-3 font-semibold border-b", style: { borderColor: theme.sidebar?.borderColor || "#e2e8f0", color: theme.sidebar?.active?.color || "#0f172a" }, children: [
4718
+ item.icon && /* @__PURE__ */ jsx25("span", { style: { color: theme.sidebar?.active?.iconColor || "#10b981" }, className: "text-xl drop-shadow-sm", children: item.icon }),
4719
+ /* @__PURE__ */ jsx25("span", { className: "tracking-wide text-[15px]", children: item.label })
4552
4720
  ] }),
4553
- item.subitems && item.subitems.length > 0 ? /* @__PURE__ */ jsx24("div", { className: "py-2", children: item.subitems.map((subitem) => /* @__PURE__ */ jsxs17(
4721
+ item.subitems && item.subitems.length > 0 ? /* @__PURE__ */ jsx25("div", { className: "py-2", children: item.subitems.map((subitem) => /* @__PURE__ */ jsxs18(
4554
4722
  "div",
4555
4723
  {
4556
4724
  className: `px-5 py-2.5 text-sm flex items-center gap-3 transition-colors`,
4557
4725
  children: [
4558
- /* @__PURE__ */ jsx24("span", { className: `w-1.5 h-1.5 rounded-full transition-all ${subitem.isActive ? "scale-125" : ""}`, style: { backgroundColor: subitem.isActive ? theme.sidebar?.active?.iconColor || "#10b981" : theme.sidebar?.icon?.color || "#94a3b8" } }),
4559
- /* @__PURE__ */ jsx24("span", { style: { color: subitem.isActive ? theme.sidebar?.active?.color || "#0f172a" : theme.sidebar?.label?.color || "#475569", fontWeight: subitem.isActive ? 600 : 500 }, children: subitem.label })
4726
+ /* @__PURE__ */ jsx25("span", { className: `w-1.5 h-1.5 rounded-full transition-all ${subitem.isActive ? "scale-125" : ""}`, style: { backgroundColor: subitem.isActive ? theme.sidebar?.active?.iconColor || "#10b981" : theme.sidebar?.icon?.color || "#94a3b8" } }),
4727
+ /* @__PURE__ */ jsx25("span", { style: { color: subitem.isActive ? theme.sidebar?.active?.color || "#0f172a" : theme.sidebar?.label?.color || "#475569", fontWeight: subitem.isActive ? 600 : 500 }, children: subitem.label })
4560
4728
  ]
4561
4729
  },
4562
4730
  subitem.id
4563
- )) }) : /* @__PURE__ */ jsx24("div", { className: "px-5 py-3 text-sm text-zinc-500 italic", children: "No hay submen\xFA" })
4731
+ )) }) : /* @__PURE__ */ jsx25("div", { className: "px-5 py-3 text-sm text-zinc-500 italic", children: "No hay submen\xFA" })
4564
4732
  ]
4565
4733
  }
4566
4734
  ),
4567
- !isSidebarCollapsed && item.subitems && item.subitems.length > 0 && /* @__PURE__ */ jsx24("div", { className: `overflow-hidden transition-all duration-400 ease-[cubic-bezier(0.2,0,0,1)] ${expandedItems.has(item.id) ? "max-h-[500px] opacity-100 mt-1" : "max-h-0 opacity-0"}`, children: /* @__PURE__ */ jsx24("ul", { className: "ml-5 pl-4 space-y-1 py-1", style: { borderLeft: `2px solid ${theme.sidebar?.borderColor || "#e2e8f0"}` }, children: item.subitems.map((subitem) => /* @__PURE__ */ jsxs17("li", { className: "relative", children: [
4568
- subitem.isActive && /* @__PURE__ */ jsx24("div", { className: "absolute -left-[18px] top-1/2 -translate-y-1/2 w-4 h-[2px] rounded-r-full", style: { backgroundColor: theme.sidebar?.active?.iconColor || "#10b981" } }),
4569
- /* @__PURE__ */ jsx24(
4735
+ !isSidebarCollapsed && item.subitems && item.subitems.length > 0 && /* @__PURE__ */ jsx25("div", { className: `overflow-hidden transition-all duration-400 ease-[cubic-bezier(0.2,0,0,1)] ${expandedItems.has(item.id) ? "max-h-[500px] opacity-100 mt-1" : "max-h-0 opacity-0"}`, children: /* @__PURE__ */ jsx25("ul", { className: "ml-5 pl-4 space-y-1 py-1", style: { borderLeft: `2px solid ${theme.sidebar?.borderColor || "#e2e8f0"}` }, children: item.subitems.map((subitem) => /* @__PURE__ */ jsxs18("li", { className: "relative", children: [
4736
+ subitem.isActive && /* @__PURE__ */ jsx25("div", { className: "absolute -left-[18px] top-1/2 -translate-y-1/2 w-4 h-[2px] rounded-r-full", style: { backgroundColor: theme.sidebar?.active?.iconColor || "#10b981" } }),
4737
+ /* @__PURE__ */ jsx25(
4570
4738
  "button",
4571
4739
  {
4572
4740
  onClick: subitem.action,
@@ -4600,7 +4768,7 @@ function ITSidebar({
4600
4768
  }
4601
4769
 
4602
4770
  // src/components/layout/layout.tsx
4603
- import { jsx as jsx25, jsxs as jsxs18 } from "react/jsx-runtime";
4771
+ import { jsx as jsx26, jsxs as jsxs19 } from "react/jsx-runtime";
4604
4772
  function ITLayout({
4605
4773
  topBar,
4606
4774
  sidebar,
@@ -4608,10 +4776,10 @@ function ITLayout({
4608
4776
  className = "",
4609
4777
  contentClassName = ""
4610
4778
  }) {
4611
- const [desktopCollapsed, setDesktopCollapsed] = useState20(true);
4612
- const [mobileSidebarOpen, setMobileSidebarOpen] = useState20(false);
4613
- return /* @__PURE__ */ jsxs18("div", { className: `flex flex-col h-screen overflow-hidden w-full ${className}`, children: [
4614
- /* @__PURE__ */ jsx25(
4779
+ const [desktopCollapsed, setDesktopCollapsed] = useState21(true);
4780
+ const [mobileSidebarOpen, setMobileSidebarOpen] = useState21(false);
4781
+ return /* @__PURE__ */ jsxs19("div", { className: `flex flex-col h-screen overflow-hidden w-full ${className}`, children: [
4782
+ /* @__PURE__ */ jsx26(
4615
4783
  ITTopBar,
4616
4784
  {
4617
4785
  ...topBar,
@@ -4619,10 +4787,10 @@ function ITLayout({
4619
4787
  onToggleMobileMenu: () => setMobileSidebarOpen((v) => !v)
4620
4788
  }
4621
4789
  ),
4622
- /* @__PURE__ */ jsxs18("div", { className: "flex flex-1 overflow-hidden relative", style: { backgroundColor: theme.layout?.backgroundColor || "#f8fafc" }, children: [
4623
- /* @__PURE__ */ jsxs18("div", { className: "hidden lg:block relative z-40 h-full", children: [
4624
- /* @__PURE__ */ jsx25("div", { className: "w-[88px] h-full flex-shrink-0" }),
4625
- /* @__PURE__ */ jsx25("div", { className: "absolute top-0 left-0 h-full", children: /* @__PURE__ */ jsx25(
4790
+ /* @__PURE__ */ jsxs19("div", { className: "flex flex-1 overflow-hidden relative", style: { backgroundColor: theme.layout?.backgroundColor || "#f8fafc" }, children: [
4791
+ /* @__PURE__ */ jsxs19("div", { className: "hidden lg:block relative z-40 h-full", children: [
4792
+ /* @__PURE__ */ jsx26("div", { className: "w-[88px] h-full flex-shrink-0" }),
4793
+ /* @__PURE__ */ jsx26("div", { className: "absolute top-0 left-0 h-full", children: /* @__PURE__ */ jsx26(
4626
4794
  ITSidebar,
4627
4795
  {
4628
4796
  ...sidebar,
@@ -4633,17 +4801,17 @@ function ITLayout({
4633
4801
  }
4634
4802
  ) })
4635
4803
  ] }),
4636
- mobileSidebarOpen && /* @__PURE__ */ jsx25(
4804
+ mobileSidebarOpen && /* @__PURE__ */ jsx26(
4637
4805
  "div",
4638
4806
  {
4639
4807
  className: "lg:hidden fixed inset-0 z-50 transition-opacity duration-300 backdrop-blur-sm bg-black/40",
4640
4808
  onClick: () => setMobileSidebarOpen(false),
4641
- children: /* @__PURE__ */ jsx25(
4809
+ children: /* @__PURE__ */ jsx26(
4642
4810
  "div",
4643
4811
  {
4644
4812
  className: "h-full w-auto transform transition-transform duration-300 ease-[cubic-bezier(0.2,0,0,1)]",
4645
4813
  onClick: (e) => e.stopPropagation(),
4646
- children: /* @__PURE__ */ jsx25(
4814
+ children: /* @__PURE__ */ jsx26(
4647
4815
  ITSidebar,
4648
4816
  {
4649
4817
  ...sidebar,
@@ -4657,7 +4825,7 @@ function ITLayout({
4657
4825
  )
4658
4826
  }
4659
4827
  ),
4660
- /* @__PURE__ */ jsx25("main", { className: "flex-1 overflow-y-auto w-full custom-scrollbar relative z-0", children: /* @__PURE__ */ jsx25(
4828
+ /* @__PURE__ */ jsx26("main", { className: "flex-1 overflow-y-auto w-full custom-scrollbar relative z-0", children: /* @__PURE__ */ jsx26(
4661
4829
  "div",
4662
4830
  {
4663
4831
  className: `mx-auto w-full h-full ${contentClassName}`,
@@ -4678,7 +4846,7 @@ var sizeClasses = {
4678
4846
  };
4679
4847
 
4680
4848
  // src/components/loader/loader.tsx
4681
- import { jsx as jsx26 } from "react/jsx-runtime";
4849
+ import { jsx as jsx27 } from "react/jsx-runtime";
4682
4850
  function ITLoader({
4683
4851
  size = "md",
4684
4852
  variant = "spinner",
@@ -4693,22 +4861,22 @@ function ITLoader({
4693
4861
  const bgStyle = isCssValue ? { backgroundColor: resolvedColor } : {};
4694
4862
  const colorClass = !isCssValue ? color : "";
4695
4863
  if (variant === "spinner") {
4696
- return /* @__PURE__ */ jsx26(
4864
+ return /* @__PURE__ */ jsx27(
4697
4865
  "div",
4698
4866
  {
4699
4867
  className: `inline-block ${sizeClasses[size]} animate-spin rounded-full border-2 border-solid border-current border-r-transparent align-[-0.125em] motion-reduce:animate-[spin_1.5s_linear_infinite] ${colorClass} ${className}`,
4700
4868
  role: "status",
4701
4869
  style,
4702
- children: /* @__PURE__ */ jsx26("span", { className: "!absolute !-m-px !h-px !w-px !overflow-hidden !whitespace-nowrap !border-0 !p-0 ![clip:rect(0,0,0,0)]", children: "Loading..." })
4870
+ children: /* @__PURE__ */ jsx27("span", { className: "!absolute !-m-px !h-px !w-px !overflow-hidden !whitespace-nowrap !border-0 !p-0 ![clip:rect(0,0,0,0)]", children: "Loading..." })
4703
4871
  }
4704
4872
  );
4705
4873
  }
4706
4874
  if (variant === "dots") {
4707
- return /* @__PURE__ */ jsx26(
4875
+ return /* @__PURE__ */ jsx27(
4708
4876
  "div",
4709
4877
  {
4710
4878
  className: `flex items-center justify-center space-x-2 ${className}`,
4711
- children: [...Array(3)].map((_, i) => /* @__PURE__ */ jsx26(
4879
+ children: [...Array(3)].map((_, i) => /* @__PURE__ */ jsx27(
4712
4880
  "div",
4713
4881
  {
4714
4882
  className: `${sizeClasses[size.replace(/l|g/, "")]} animate-bounce rounded-full ${colorClass}`,
@@ -4723,11 +4891,11 @@ function ITLoader({
4723
4891
  );
4724
4892
  }
4725
4893
  if (variant === "bar") {
4726
- return /* @__PURE__ */ jsx26(
4894
+ return /* @__PURE__ */ jsx27(
4727
4895
  "div",
4728
4896
  {
4729
4897
  className: `w-full ${size === "sm" ? "h-1" : size === "md" ? "h-1.5" : size === "lg" ? "h-2" : "h-2.5"} bg-gray-200 rounded-full overflow-hidden ${className}`,
4730
- children: /* @__PURE__ */ jsx26(
4898
+ children: /* @__PURE__ */ jsx27(
4731
4899
  "div",
4732
4900
  {
4733
4901
  className: `h-full animate-progress ${colorClass}`,
@@ -4743,7 +4911,7 @@ function ITLoader({
4743
4911
  );
4744
4912
  }
4745
4913
  if (variant === "pulse") {
4746
- return /* @__PURE__ */ jsx26(
4914
+ return /* @__PURE__ */ jsx27(
4747
4915
  "div",
4748
4916
  {
4749
4917
  className: `rounded-full ${sizeClasses[size]} animate-pulse ${colorClass} ${className}`,
@@ -4755,10 +4923,10 @@ function ITLoader({
4755
4923
  }
4756
4924
 
4757
4925
  // src/components/stepper/stepper.tsx
4758
- import clsx17 from "clsx";
4759
- import { useEffect as useEffect16, useRef as useRef10, useState as useState21 } from "react";
4926
+ import clsx18 from "clsx";
4927
+ import { useEffect as useEffect17, useRef as useRef11, useState as useState22 } from "react";
4760
4928
  import { FaChevronLeft as FaChevronLeft4, FaChevronRight as FaChevronRight5, FaCheck as FaCheck3 } from "react-icons/fa";
4761
- import { jsx as jsx27, jsxs as jsxs19 } from "react/jsx-runtime";
4929
+ import { jsx as jsx28, jsxs as jsxs20 } from "react/jsx-runtime";
4762
4930
  function ITStepper({
4763
4931
  steps,
4764
4932
  currentStep,
@@ -4773,15 +4941,15 @@ function ITStepper({
4773
4941
  maxContentHeight = "400px",
4774
4942
  color = "primary"
4775
4943
  }) {
4776
- const [direction, setDirection] = useState21("next");
4777
- const contentRef = useRef10(null);
4778
- const progressRef = useRef10(null);
4944
+ const [direction, setDirection] = useState22("next");
4945
+ const contentRef = useRef11(null);
4946
+ const progressRef = useRef11(null);
4779
4947
  const isThemeColor = color in theme.colors;
4780
4948
  const resolvedColor = isThemeColor ? theme.colors[color][500] : color;
4781
- useEffect16(() => {
4949
+ useEffect17(() => {
4782
4950
  onStepChange?.(currentStep);
4783
4951
  }, [currentStep, onStepChange]);
4784
- useEffect16(() => {
4952
+ useEffect17(() => {
4785
4953
  const pct = currentStep / Math.max(1, steps.length - 1) * 100;
4786
4954
  if (progressRef.current) {
4787
4955
  progressRef.current.style.width = `${pct}%`;
@@ -4825,23 +4993,23 @@ function ITStepper({
4825
4993
  const renderStepContent = (index, isCompleted, isActive) => {
4826
4994
  const step = steps[index];
4827
4995
  if (isCompleted) {
4828
- return /* @__PURE__ */ jsx27(FaCheck3, { className: "w-4 h-4" });
4996
+ return /* @__PURE__ */ jsx28(FaCheck3, { className: "w-4 h-4" });
4829
4997
  }
4830
4998
  if (step.icon && useIcons) {
4831
- return /* @__PURE__ */ jsx27("div", { className: "flex items-center justify-center w-5 h-5", children: step.icon });
4999
+ return /* @__PURE__ */ jsx28("div", { className: "flex items-center justify-center w-5 h-5", children: step.icon });
4832
5000
  }
4833
- return /* @__PURE__ */ jsx27("span", { className: "text-sm font-semibold", children: index + 1 });
5001
+ return /* @__PURE__ */ jsx28("span", { className: "text-sm font-semibold", children: index + 1 });
4834
5002
  };
4835
- return /* @__PURE__ */ jsxs19("div", { className: clsx17("w-full max-w-5xl mx-auto px-4", containerClassName), children: [
4836
- /* @__PURE__ */ jsxs19("div", { className: "relative mb-8", children: [
4837
- /* @__PURE__ */ jsx27(
5003
+ return /* @__PURE__ */ jsxs20("div", { className: clsx18("w-full max-w-5xl mx-auto px-4", containerClassName), children: [
5004
+ /* @__PURE__ */ jsxs20("div", { className: "relative mb-8", children: [
5005
+ /* @__PURE__ */ jsx28(
4838
5006
  "div",
4839
5007
  {
4840
5008
  className: "absolute left-6 right-6 top-5 h-1 bg-gray-200 rounded-full z-0",
4841
5009
  "aria-hidden": true
4842
5010
  }
4843
5011
  ),
4844
- /* @__PURE__ */ jsx27(
5012
+ /* @__PURE__ */ jsx28(
4845
5013
  "div",
4846
5014
  {
4847
5015
  ref: progressRef,
@@ -4849,11 +5017,11 @@ function ITStepper({
4849
5017
  "aria-hidden": true
4850
5018
  }
4851
5019
  ),
4852
- /* @__PURE__ */ jsx27("div", { className: "flex items-start justify-between space-x-2 relative z-20", children: steps.map((step, idx) => {
5020
+ /* @__PURE__ */ jsx28("div", { className: "flex items-start justify-between space-x-2 relative z-20", children: steps.map((step, idx) => {
4853
5021
  const isActive = idx === currentStep;
4854
5022
  const isCompleted = idx < currentStep;
4855
5023
  const hasIcon = step.icon && useIcons;
4856
- return /* @__PURE__ */ jsx27(
5024
+ return /* @__PURE__ */ jsx28(
4857
5025
  "button",
4858
5026
  {
4859
5027
  type: "button",
@@ -4863,11 +5031,11 @@ function ITStepper({
4863
5031
  "aria-label": `Paso ${idx + 1} ${step.label}`,
4864
5032
  className: "flex-1 group",
4865
5033
  title: step.label,
4866
- children: /* @__PURE__ */ jsxs19("div", { className: "flex flex-col items-center", children: [
4867
- /* @__PURE__ */ jsx27(
5034
+ children: /* @__PURE__ */ jsxs20("div", { className: "flex flex-col items-center", children: [
5035
+ /* @__PURE__ */ jsx28(
4868
5036
  "div",
4869
5037
  {
4870
- className: clsx17(
5038
+ className: clsx18(
4871
5039
  "flex items-center justify-center w-11 h-11 rounded-full border-2 transition-all duration-300 transform",
4872
5040
  hasIcon && "p-2",
4873
5041
  isCompleted && "bg-slate-400 border-slate-400 text-white scale-100 shadow",
@@ -4878,10 +5046,10 @@ function ITStepper({
4878
5046
  children: renderStepContent(idx, isCompleted, isActive)
4879
5047
  }
4880
5048
  ),
4881
- /* @__PURE__ */ jsx27(
5049
+ /* @__PURE__ */ jsx28(
4882
5050
  "span",
4883
5051
  {
4884
- className: clsx17(
5052
+ className: clsx18(
4885
5053
  "mt-2 text-xs sm:text-sm font-medium transition-colors text-center",
4886
5054
  isCompleted ? "text-slate-400" : !isActive && "text-gray-400"
4887
5055
  ),
@@ -4895,14 +5063,14 @@ function ITStepper({
4895
5063
  );
4896
5064
  }) })
4897
5065
  ] }),
4898
- /* @__PURE__ */ jsx27(
5066
+ /* @__PURE__ */ jsx28(
4899
5067
  "div",
4900
5068
  {
4901
5069
  ref: contentRef,
4902
5070
  tabIndex: -1,
4903
5071
  role: "region",
4904
5072
  "aria-labelledby": `step-${currentStep}`,
4905
- className: clsx17(
5073
+ className: clsx18(
4906
5074
  stepClassName,
4907
5075
  "bg-white border border-gray-100 rounded-2xl shadow-lg min-h-[280px] transition-transform duration-400 no-scrollbar p-6",
4908
5076
  scrollableContent && "overflow-y-auto hide-scrollbar"
@@ -4911,37 +5079,37 @@ function ITStepper({
4911
5079
  children: steps[currentStep].content
4912
5080
  }
4913
5081
  ),
4914
- /* @__PURE__ */ jsxs19("div", { className: "flex justify-between items-center mt-6", children: [
4915
- /* @__PURE__ */ jsx27(
5082
+ /* @__PURE__ */ jsxs20("div", { className: "flex justify-between items-center mt-6", children: [
5083
+ /* @__PURE__ */ jsx28(
4916
5084
  ITButton,
4917
5085
  {
4918
5086
  variant: "outlined",
4919
5087
  color: "secondary",
4920
5088
  disabled: currentStep === 0,
4921
5089
  onClick: prevStep,
4922
- children: /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-2", children: [
4923
- /* @__PURE__ */ jsx27(FaChevronLeft4, {}),
5090
+ children: /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2", children: [
5091
+ /* @__PURE__ */ jsx28(FaChevronLeft4, {}),
4924
5092
  "Atr\xE1s"
4925
5093
  ] })
4926
5094
  }
4927
5095
  ),
4928
- /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-3", children: [
4929
- /* @__PURE__ */ jsxs19("div", { className: "text-sm text-gray-500 mr-2 hidden sm:block", children: [
5096
+ /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-3", children: [
5097
+ /* @__PURE__ */ jsxs20("div", { className: "text-sm text-gray-500 mr-2 hidden sm:block", children: [
4930
5098
  "Paso ",
4931
5099
  currentStep + 1,
4932
5100
  " de ",
4933
5101
  steps.length
4934
5102
  ] }),
4935
- /* @__PURE__ */ jsx27(
5103
+ /* @__PURE__ */ jsx28(
4936
5104
  ITButton,
4937
5105
  {
4938
5106
  variant: "solid",
4939
5107
  color,
4940
5108
  disabled: disableNext,
4941
5109
  onClick: nextStep,
4942
- children: /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-2", children: [
5110
+ children: /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2", children: [
4943
5111
  currentStep === steps.length - 1 ? "Finalizar" : "Siguiente",
4944
- currentStep === steps.length - 1 ? /* @__PURE__ */ jsx27(FaCheck3, {}) : /* @__PURE__ */ jsx27(FaChevronRight5, {})
5112
+ currentStep === steps.length - 1 ? /* @__PURE__ */ jsx28(FaCheck3, {}) : /* @__PURE__ */ jsx28(FaChevronRight5, {})
4945
5113
  ] })
4946
5114
  }
4947
5115
  )
@@ -4951,10 +5119,10 @@ function ITStepper({
4951
5119
  }
4952
5120
 
4953
5121
  // src/components/theme-provider/themeProvider.tsx
4954
- import { useMemo as useMemo4 } from "react";
4955
- import { Fragment as Fragment6, jsx as jsx28, jsxs as jsxs20 } from "react/jsx-runtime";
5122
+ import { useMemo as useMemo5 } from "react";
5123
+ import { Fragment as Fragment6, jsx as jsx29, jsxs as jsxs21 } from "react/jsx-runtime";
4956
5124
  function ITThemeProvider({ theme: theme2, children }) {
4957
- const activeThemeContext = useMemo4(() => {
5125
+ const activeThemeContext = useMemo5(() => {
4958
5126
  const baseColors = {
4959
5127
  primary: palette.blue,
4960
5128
  secondary: palette.gray,
@@ -4975,7 +5143,7 @@ function ITThemeProvider({ theme: theme2, children }) {
4975
5143
  }
4976
5144
  };
4977
5145
  }, [theme2]);
4978
- const cssVariables = useMemo4(() => {
5146
+ const cssVariables = useMemo5(() => {
4979
5147
  let variablesString = "";
4980
5148
  Object.entries(activeThemeContext.colors).forEach(([colorName, scale]) => {
4981
5149
  Object.entries(scale).forEach(([shade, hexValue]) => {
@@ -5094,8 +5262,8 @@ function ITThemeProvider({ theme: theme2, children }) {
5094
5262
  return `:root {
5095
5263
  ${variablesString}}`;
5096
5264
  }, [activeThemeContext]);
5097
- return /* @__PURE__ */ jsxs20(Fragment6, { children: [
5098
- /* @__PURE__ */ jsx28("style", { suppressHydrationWarning: true, children: cssVariables }),
5265
+ return /* @__PURE__ */ jsxs21(Fragment6, { children: [
5266
+ /* @__PURE__ */ jsx29("style", { suppressHydrationWarning: true, children: cssVariables }),
5099
5267
  children
5100
5268
  ] });
5101
5269
  }
@@ -5126,6 +5294,7 @@ export {
5126
5294
  ITLoader,
5127
5295
  ITNavbar,
5128
5296
  ITPagination,
5297
+ ITSearchSelect,
5129
5298
  ITSelect,
5130
5299
  ITSlideToggle,
5131
5300
  ITStepper,