@axzydev/axzy_ui_system 1.0.165 → 1.0.167

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.cjs CHANGED
@@ -44,14 +44,17 @@ __export(index_exports, {
44
44
  ITLoader: () => ITLoader,
45
45
  ITNavbar: () => ITNavbar,
46
46
  ITPagination: () => ITPagination,
47
+ ITSearchSelect: () => ITSearchSelect,
47
48
  ITSelect: () => ITSelect,
48
49
  ITSlideToggle: () => ITSlideToggle,
49
50
  ITStepper: () => ITStepper,
50
51
  ITTable: () => ITTable,
52
+ ITTabs: () => tabs_default,
51
53
  ITText: () => ITText,
52
54
  ITThemeProvider: () => ITThemeProvider,
53
55
  ITTimePicker: () => ITTimePicker,
54
56
  ITToast: () => ITToast,
57
+ ITTripleFilter: () => tripleFilter_default,
55
58
  createValidationSchema: () => createValidationSchema
56
59
  });
57
60
  module.exports = __toCommonJS(index_exports);
@@ -3760,10 +3763,178 @@ function ITNavbar({
3760
3763
  ] });
3761
3764
  }
3762
3765
 
3763
- // src/components/slide/slide.tsx
3766
+ // src/components/search-select/search-select.tsx
3764
3767
  var import_react19 = require("react");
3765
3768
  var import_clsx14 = __toESM(require("clsx"), 1);
3769
+ var import_fa11 = require("react-icons/fa");
3766
3770
  var import_jsx_runtime19 = require("react/jsx-runtime");
3771
+ function ITSearchSelect({
3772
+ name,
3773
+ options = [],
3774
+ label,
3775
+ placeholder = "Selecciona una opci\xF3n",
3776
+ valueField = "value",
3777
+ labelField = "label",
3778
+ value,
3779
+ onChange,
3780
+ onBlur,
3781
+ disabled = false,
3782
+ className,
3783
+ touched,
3784
+ required,
3785
+ error,
3786
+ readOnly = false,
3787
+ onSearch,
3788
+ isLoading = false,
3789
+ noResultsMessage = "No se encontraron resultados"
3790
+ }) {
3791
+ const [isOpen, setIsOpen] = (0, import_react19.useState)(false);
3792
+ const [searchTerm, setSearchTerm] = (0, import_react19.useState)("");
3793
+ const [isFocused, setIsFocused] = (0, import_react19.useState)(false);
3794
+ const containerRef = (0, import_react19.useRef)(null);
3795
+ const timeoutRef = (0, import_react19.useRef)(null);
3796
+ const selectedOption = (0, import_react19.useMemo)(() => {
3797
+ return options.find((opt) => opt[valueField] === value);
3798
+ }, [options, value, valueField]);
3799
+ (0, import_react19.useEffect)(() => {
3800
+ if (!isFocused) {
3801
+ setSearchTerm(selectedOption ? String(selectedOption[labelField]) : "");
3802
+ }
3803
+ }, [selectedOption, isFocused, labelField]);
3804
+ (0, import_react19.useEffect)(() => {
3805
+ function handleClickOutside(event) {
3806
+ if (containerRef.current && !containerRef.current.contains(event.target)) {
3807
+ setIsOpen(false);
3808
+ }
3809
+ }
3810
+ document.addEventListener("mousedown", handleClickOutside);
3811
+ return () => document.removeEventListener("mousedown", handleClickOutside);
3812
+ }, []);
3813
+ const filteredOptions = (0, import_react19.useMemo)(() => {
3814
+ if (onSearch) return options;
3815
+ if (!searchTerm || !isFocused) return options;
3816
+ return options.filter(
3817
+ (opt) => String(opt[labelField]).toLowerCase().includes(searchTerm.toLowerCase())
3818
+ );
3819
+ }, [options, searchTerm, onSearch, labelField, isFocused]);
3820
+ const handleInputChange = (e) => {
3821
+ const query = e.target.value;
3822
+ setSearchTerm(query);
3823
+ setIsOpen(true);
3824
+ if (onSearch) {
3825
+ if (timeoutRef.current) clearTimeout(timeoutRef.current);
3826
+ timeoutRef.current = setTimeout(() => {
3827
+ onSearch(query);
3828
+ }, 500);
3829
+ }
3830
+ };
3831
+ const handleSelect = (option) => {
3832
+ if (onChange) {
3833
+ onChange(option[valueField], option);
3834
+ }
3835
+ setSearchTerm(String(option[labelField]));
3836
+ setIsOpen(false);
3837
+ };
3838
+ const handleFocus = () => {
3839
+ if (disabled || readOnly) return;
3840
+ setIsFocused(true);
3841
+ setIsOpen(true);
3842
+ };
3843
+ const handleInputBlur = (e) => {
3844
+ setTimeout(() => {
3845
+ setIsFocused(false);
3846
+ onBlur?.(e);
3847
+ }, 200);
3848
+ };
3849
+ const inputTheme = theme.input || {};
3850
+ const getInputStyle = () => {
3851
+ const style = {
3852
+ backgroundColor: inputTheme.backgroundColor || "#ffffff",
3853
+ borderColor: inputTheme.borderColor || "#e2e8f0",
3854
+ borderRadius: inputTheme.borderRadius || "0.5rem",
3855
+ padding: inputTheme.padding || "0.5rem 0.75rem",
3856
+ fontSize: inputTheme.fontSize || "0.875rem",
3857
+ borderWidth: "1px",
3858
+ borderStyle: "solid",
3859
+ transition: "all 0.2s",
3860
+ color: theme.colors.gray[900],
3861
+ width: "100%"
3862
+ };
3863
+ if (disabled) {
3864
+ style.backgroundColor = inputTheme.disabled?.backgroundColor || "#f1f5f9";
3865
+ style.borderColor = inputTheme.disabled?.borderColor || "#e2e8f0";
3866
+ style.opacity = 0.7;
3867
+ style.cursor = "not-allowed";
3868
+ }
3869
+ if (touched && error) {
3870
+ style.borderColor = inputTheme.error?.borderColor || "red";
3871
+ if (isFocused) {
3872
+ style.boxShadow = inputTheme.error?.ring;
3873
+ }
3874
+ } else if (isFocused && !readOnly) {
3875
+ style.boxShadow = inputTheme.focus?.ring;
3876
+ style.borderColor = inputTheme.focus?.borderColor;
3877
+ }
3878
+ return style;
3879
+ };
3880
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: (0, import_clsx14.default)("w-full flex flex-col gap-1.5", className), ref: containerRef, children: [
3881
+ label && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
3882
+ "label",
3883
+ {
3884
+ className: (0, import_clsx14.default)("text-sm font-medium text-gray-700", {
3885
+ "text-red-500": touched && error
3886
+ }),
3887
+ children: [
3888
+ label,
3889
+ required && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "text-red-500 ml-1", children: "*" })
3890
+ ]
3891
+ }
3892
+ ),
3893
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "relative", children: [
3894
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "relative flex items-center", children: [
3895
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
3896
+ "input",
3897
+ {
3898
+ type: "text",
3899
+ name,
3900
+ value: searchTerm,
3901
+ onChange: handleInputChange,
3902
+ onFocus: handleFocus,
3903
+ onBlur: handleInputBlur,
3904
+ disabled,
3905
+ readOnly,
3906
+ placeholder,
3907
+ className: "outline-none pr-10",
3908
+ style: getInputStyle(),
3909
+ autoComplete: "off"
3910
+ }
3911
+ ),
3912
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "absolute right-3 flex items-center gap-2 text-gray-400 pointer-events-none", children: [
3913
+ isLoading && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "animate-spin h-4 w-4 border-2 border-primary-500 border-t-transparent rounded-full" }),
3914
+ !isLoading && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_fa11.FaSearch, { size: 14, className: (0, import_clsx14.default)({ "text-primary-500": isFocused }) })
3915
+ ] })
3916
+ ] }),
3917
+ isOpen && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("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__ */ (0, import_jsx_runtime19.jsx)("div", { className: "max-h-60 overflow-y-auto", children: filteredOptions.length > 0 ? filteredOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
3918
+ "div",
3919
+ {
3920
+ onClick: () => handleSelect(option),
3921
+ className: (0, import_clsx14.default)(
3922
+ "px-4 py-2 text-sm cursor-pointer transition-colors",
3923
+ value === option[valueField] ? "bg-primary-50 text-primary-700 font-medium" : "hover:bg-gray-50 text-gray-700"
3924
+ ),
3925
+ children: option[labelField]
3926
+ },
3927
+ option[valueField]
3928
+ )) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "px-4 py-6 text-sm text-center text-gray-500 italic", children: isLoading ? "Cargando..." : noResultsMessage }) }) })
3929
+ ] }),
3930
+ touched && error && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "text-red-500 text-xs mt-1", children: error })
3931
+ ] });
3932
+ }
3933
+
3934
+ // src/components/slide/slide.tsx
3935
+ var import_react20 = require("react");
3936
+ var import_clsx15 = __toESM(require("clsx"), 1);
3937
+ var import_jsx_runtime20 = require("react/jsx-runtime");
3767
3938
  function ITSlideToggle({
3768
3939
  onToggle,
3769
3940
  isOn: controlledIsOn,
@@ -3776,8 +3947,8 @@ function ITSlideToggle({
3776
3947
  className = ""
3777
3948
  }) {
3778
3949
  const isControlled = controlledIsOn !== void 0;
3779
- const [internalIsOn, setInternalIsOn] = (0, import_react19.useState)(initialState);
3780
- (0, import_react19.useEffect)(() => {
3950
+ const [internalIsOn, setInternalIsOn] = (0, import_react20.useState)(initialState);
3951
+ (0, import_react20.useEffect)(() => {
3781
3952
  if (isControlled) {
3782
3953
  setInternalIsOn(controlledIsOn);
3783
3954
  }
@@ -3816,11 +3987,11 @@ function ITSlideToggle({
3816
3987
  }
3817
3988
  };
3818
3989
  const { container, knob, translate } = sizeClasses2[size];
3819
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
3990
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3820
3991
  "div",
3821
3992
  {
3822
3993
  onClick: toggleSwitch,
3823
- className: (0, import_clsx14.default)(
3994
+ className: (0, import_clsx15.default)(
3824
3995
  "flex items-center rounded-full p-1 transition-colors duration-300",
3825
3996
  container,
3826
3997
  disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer",
@@ -3836,10 +4007,10 @@ function ITSlideToggle({
3836
4007
  toggleSwitch();
3837
4008
  }
3838
4009
  },
3839
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4010
+ children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3840
4011
  "div",
3841
4012
  {
3842
- className: (0, import_clsx14.default)(
4013
+ className: (0, import_clsx15.default)(
3843
4014
  "bg-white rounded-full shadow-md transform transition-transform duration-300 pointer-events-none",
3844
4015
  knob,
3845
4016
  isOn ? translate : "translate-x-0"
@@ -3851,11 +4022,95 @@ function ITSlideToggle({
3851
4022
  }
3852
4023
 
3853
4024
  // src/components/text/text.tsx
3854
- var import_jsx_runtime20 = require("react/jsx-runtime");
4025
+ var import_jsx_runtime21 = require("react/jsx-runtime");
3855
4026
  function ITText({ children, className = "" }) {
3856
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: `${className} text-gray-900 `, children });
4027
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: `${className} text-gray-900 `, children });
3857
4028
  }
3858
4029
 
4030
+ // src/components/tabs/tabs.tsx
4031
+ var import_react21 = require("react");
4032
+ var import_clsx16 = require("clsx");
4033
+ var import_jsx_runtime22 = require("react/jsx-runtime");
4034
+ var ITTabs = ({
4035
+ items,
4036
+ defaultActiveId,
4037
+ onChange,
4038
+ variant = "line",
4039
+ className = "",
4040
+ containerClassName = ""
4041
+ }) => {
4042
+ const [activeId, setActiveId] = (0, import_react21.useState)(defaultActiveId || items[0]?.id);
4043
+ const handleTabClick = (id, disabled) => {
4044
+ if (disabled) return;
4045
+ setActiveId(id);
4046
+ if (onChange) onChange(id);
4047
+ };
4048
+ const activeContent = items.find((item) => item.id === activeId)?.content;
4049
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: (0, import_clsx16.clsx)("w-full", containerClassName), children: [
4050
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: (0, import_clsx16.clsx)(
4051
+ "flex border-gray-200 mb-4",
4052
+ variant === "line" ? "border-b" : "gap-2 p-1 bg-gray-100 rounded-lg w-fit",
4053
+ className
4054
+ ), children: items.map((item) => {
4055
+ const isActive = item.id === activeId;
4056
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
4057
+ "button",
4058
+ {
4059
+ onClick: () => handleTabClick(item.id, item.disabled),
4060
+ disabled: item.disabled,
4061
+ className: (0, import_clsx16.clsx)(
4062
+ "flex items-center gap-2 px-4 py-2 text-sm font-medium transition-all duration-200 outline-none",
4063
+ // LINE VARIANT
4064
+ variant === "line" && [
4065
+ "border-b-2 -mb-[2px]",
4066
+ isActive ? "border-primary-500 text-primary-600" : "border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300"
4067
+ ],
4068
+ // PILL VARIANT
4069
+ variant === "pill" && [
4070
+ "rounded-md",
4071
+ isActive ? "bg-white text-primary-600 shadow-sm" : "text-gray-500 hover:text-gray-700"
4072
+ ],
4073
+ item.disabled && "opacity-50 cursor-not-allowed"
4074
+ ),
4075
+ children: [
4076
+ item.icon && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "w-4 h-4", children: item.icon }),
4077
+ item.label
4078
+ ]
4079
+ },
4080
+ item.id
4081
+ );
4082
+ }) }),
4083
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "tab-content animate-fadeIn", children: activeContent })
4084
+ ] });
4085
+ };
4086
+ var tabs_default = ITTabs;
4087
+
4088
+ // src/components/triple-filter/tripleFilter.tsx
4089
+ var import_jsx_runtime23 = require("react/jsx-runtime");
4090
+ var ITTripleFilter = ({
4091
+ value,
4092
+ onChange,
4093
+ options,
4094
+ className = ""
4095
+ }) => {
4096
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
4097
+ "div",
4098
+ {
4099
+ className: `flex bg-slate-100 p-1 rounded-xl gap-1 w-fit ${className}`,
4100
+ children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
4101
+ "button",
4102
+ {
4103
+ onClick: () => onChange(option.value),
4104
+ className: `px-4 py-1.5 rounded-lg text-[10px] font-bold uppercase tracking-wider transition-all duration-200 whitespace-nowrap ${value === option.value ? "bg-white text-emerald-600 shadow-sm" : "text-slate-400 hover:text-slate-600"}`,
4105
+ children: option.label
4106
+ },
4107
+ String(option.value)
4108
+ ))
4109
+ }
4110
+ );
4111
+ };
4112
+ var tripleFilter_default = ITTripleFilter;
4113
+
3859
4114
  // src/types/toast.types.ts
3860
4115
  var positionStyles = {
3861
4116
  "top-right": "top-4 right-4",
@@ -3867,10 +4122,10 @@ var positionStyles = {
3867
4122
  };
3868
4123
 
3869
4124
  // src/components/toast/toast.tsx
3870
- var import_clsx15 = __toESM(require("clsx"), 1);
3871
- var import_react20 = require("react");
3872
- var import_fa11 = require("react-icons/fa");
3873
- var import_jsx_runtime21 = require("react/jsx-runtime");
4125
+ var import_clsx17 = __toESM(require("clsx"), 1);
4126
+ var import_react22 = require("react");
4127
+ var import_fa12 = require("react-icons/fa");
4128
+ var import_jsx_runtime24 = require("react/jsx-runtime");
3874
4129
  function ITToast({
3875
4130
  message,
3876
4131
  type = "info",
@@ -3878,8 +4133,8 @@ function ITToast({
3878
4133
  position = "top-right",
3879
4134
  onClose
3880
4135
  }) {
3881
- const [isVisible, setIsVisible] = (0, import_react20.useState)(true);
3882
- (0, import_react20.useEffect)(() => {
4136
+ const [isVisible, setIsVisible] = (0, import_react22.useState)(true);
4137
+ (0, import_react22.useEffect)(() => {
3883
4138
  const timer = setTimeout(() => {
3884
4139
  setIsVisible(false);
3885
4140
  setTimeout(() => {
@@ -3899,21 +4154,21 @@ function ITToast({
3899
4154
  const TypeIcon = () => {
3900
4155
  switch (type) {
3901
4156
  case "success":
3902
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_fa11.FaCheckCircle, { className: "w-5 h-5 flex-shrink-0" });
4157
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_fa12.FaCheckCircle, { className: "w-5 h-5 flex-shrink-0" });
3903
4158
  case "error":
3904
4159
  case "danger":
3905
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_fa11.FaTimesCircle, { className: "w-5 h-5 flex-shrink-0" });
4160
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_fa12.FaTimesCircle, { className: "w-5 h-5 flex-shrink-0" });
3906
4161
  case "warning":
3907
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_fa11.FaExclamationTriangle, { className: "w-5 h-5 flex-shrink-0" });
4162
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_fa12.FaExclamationTriangle, { className: "w-5 h-5 flex-shrink-0" });
3908
4163
  case "info":
3909
4164
  default:
3910
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_fa11.FaInfoCircle, { className: "w-5 h-5 flex-shrink-0" });
4165
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_fa12.FaInfoCircle, { className: "w-5 h-5 flex-shrink-0" });
3911
4166
  }
3912
4167
  };
3913
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
4168
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
3914
4169
  "div",
3915
4170
  {
3916
- className: (0, import_clsx15.default)(
4171
+ className: (0, import_clsx17.default)(
3917
4172
  "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]",
3918
4173
  positionStyles[position],
3919
4174
  {
@@ -3926,17 +4181,17 @@ function ITToast({
3926
4181
  style: { backgroundColor },
3927
4182
  role: "alert",
3928
4183
  children: [
3929
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "flex items-center gap-3", children: [
3930
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(TypeIcon, {}),
3931
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "font-medium text-sm sm:text-base leading-snug", children: message })
4184
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "flex items-center gap-3", children: [
4185
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(TypeIcon, {}),
4186
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "font-medium text-sm sm:text-base leading-snug", children: message })
3932
4187
  ] }),
3933
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
4188
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3934
4189
  "button",
3935
4190
  {
3936
4191
  onClick: handleClose,
3937
4192
  className: "p-1.5 rounded-full hover:bg-black/15 transition-colors focus:outline-none focus:ring-2 focus:ring-white/50",
3938
4193
  "aria-label": "Close notification",
3939
- children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_fa11.FaTimes, { className: "w-4 h-4" })
4194
+ children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_fa12.FaTimes, { className: "w-4 h-4" })
3940
4195
  }
3941
4196
  )
3942
4197
  ]
@@ -3945,10 +4200,10 @@ function ITToast({
3945
4200
  }
3946
4201
 
3947
4202
  // src/components/dropfile/dropfile.tsx
3948
- var import_react21 = require("react");
4203
+ var import_react23 = require("react");
3949
4204
  var import_react_dropzone = require("react-dropzone");
3950
- var import_clsx16 = __toESM(require("clsx"), 1);
3951
- var import_jsx_runtime22 = require("react/jsx-runtime");
4205
+ var import_clsx18 = __toESM(require("clsx"), 1);
4206
+ var import_jsx_runtime25 = require("react/jsx-runtime");
3952
4207
  var ITDropfile = ({
3953
4208
  onFileSelect,
3954
4209
  onCancel,
@@ -3961,15 +4216,15 @@ var ITDropfile = ({
3961
4216
  onStatusChange,
3962
4217
  initialPreviewUrl
3963
4218
  }) => {
3964
- const [selectedFile, setSelectedFile] = (0, import_react21.useState)(null);
3965
- const [fileType, setFileType] = (0, import_react21.useState)(null);
3966
- const [imagePreview, setImagePreview] = (0, import_react21.useState)(initialPreviewUrl || null);
3967
- const [isConfirmed, setIsConfirmed] = (0, import_react21.useState)(false);
3968
- const [internalUploadStatus, setInternalUploadStatus] = (0, import_react21.useState)(
4219
+ const [selectedFile, setSelectedFile] = (0, import_react23.useState)(null);
4220
+ const [fileType, setFileType] = (0, import_react23.useState)(null);
4221
+ const [imagePreview, setImagePreview] = (0, import_react23.useState)(initialPreviewUrl || null);
4222
+ const [isConfirmed, setIsConfirmed] = (0, import_react23.useState)(false);
4223
+ const [internalUploadStatus, setInternalUploadStatus] = (0, import_react23.useState)(
3969
4224
  initialPreviewUrl ? "subido" /* UPLOADED */ : "pendiente" /* PENDING */
3970
4225
  );
3971
- const canvasRef = (0, import_react21.useRef)(null);
3972
- (0, import_react21.useEffect)(() => {
4226
+ const canvasRef = (0, import_react23.useRef)(null);
4227
+ (0, import_react23.useEffect)(() => {
3973
4228
  if (initialPreviewUrl && !selectedFile) {
3974
4229
  setImagePreview(initialPreviewUrl);
3975
4230
  if (externalStatus === void 0) setInternalUploadStatus("subido" /* UPLOADED */);
@@ -4058,9 +4313,9 @@ var ITDropfile = ({
4058
4313
  }
4059
4314
  };
4060
4315
  const { label, color, dotColor } = config[status];
4061
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: `inline-flex items-center gap-2 px-2.5 py-1 rounded-full border ${color}`, children: [
4062
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: `w-2 h-2 rounded-full ${dotColor}` }),
4063
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "text-xs font-medium flex items-center gap-1.5", children: label })
4316
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: `inline-flex items-center gap-2 px-2.5 py-1 rounded-full border ${color}`, children: [
4317
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: `w-2 h-2 rounded-full ${dotColor}` }),
4318
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "text-xs font-medium flex items-center gap-1.5", children: label })
4064
4319
  ] });
4065
4320
  };
4066
4321
  const onDrop = (acceptedFiles) => {
@@ -4092,12 +4347,12 @@ var ITDropfile = ({
4092
4347
  accept: getAcceptedFileTypes(),
4093
4348
  maxFiles: 1
4094
4349
  });
4095
- (0, import_react21.useEffect)(() => {
4350
+ (0, import_react23.useEffect)(() => {
4096
4351
  const renderPDF = async () => {
4097
4352
  };
4098
4353
  renderPDF();
4099
4354
  }, [selectedFile, fileType]);
4100
- (0, import_react21.useEffect)(() => {
4355
+ (0, import_react23.useEffect)(() => {
4101
4356
  return () => {
4102
4357
  if (imagePreview) {
4103
4358
  URL.revokeObjectURL(imagePreview);
@@ -4135,19 +4390,19 @@ var ITDropfile = ({
4135
4390
  handleCancel();
4136
4391
  };
4137
4392
  const isImage = fileType && fileType.startsWith("image/");
4138
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: (0, import_clsx16.default)("w-full transition-all duration-300", containerClassName), children: [
4139
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex items-center justify-between mb-2", children: [
4140
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("label", { className: "block text-sm font-semibold text-gray-700", children: [
4393
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: (0, import_clsx18.default)("w-full transition-all duration-300", containerClassName), children: [
4394
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "flex items-center justify-between mb-2", children: [
4395
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("label", { className: "block text-sm font-semibold text-gray-700", children: [
4141
4396
  "Subir archivo ",
4142
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("span", { className: "text-gray-400 font-normal text-xs", children: [
4397
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("span", { className: "text-gray-400 font-normal text-xs", children: [
4143
4398
  "(",
4144
4399
  getFileExtensions(),
4145
4400
  ")"
4146
4401
  ] })
4147
4402
  ] }),
4148
- showStatusBadge && selectedFile && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(StatusBadge, { status: uploadStatus })
4403
+ showStatusBadge && selectedFile && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(StatusBadge, { status: uploadStatus })
4149
4404
  ] }),
4150
- !selectedFile && !imagePreview ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
4405
+ !selectedFile && !imagePreview ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
4151
4406
  "div",
4152
4407
  {
4153
4408
  ...getRootProps(),
@@ -4157,41 +4412,41 @@ var ITDropfile = ({
4157
4412
  ${isDragActive ? "border-primary-500 bg-primary-50 scale-[1.01]" : "border-gray-300 bg-white hover:border-primary-400 hover:bg-gray-50"}
4158
4413
  `,
4159
4414
  children: [
4160
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("input", { ...getInputProps() }),
4161
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("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__ */ (0, import_jsx_runtime22.jsx)(
4415
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("input", { ...getInputProps() }),
4416
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("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__ */ (0, import_jsx_runtime25.jsx)(
4162
4417
  "svg",
4163
4418
  {
4164
4419
  className: `w-6 h-6 transition-colors duration-300 ${isDragActive ? "text-primary-600" : "text-gray-400 group-hover:text-primary-500"}`,
4165
4420
  fill: "none",
4166
4421
  viewBox: "0 0 24 24",
4167
4422
  stroke: "currentColor",
4168
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("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" })
4423
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("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" })
4169
4424
  }
4170
4425
  ) }),
4171
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "text-center space-y-1", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("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" }) })
4426
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "text-center space-y-1", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("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" }) })
4172
4427
  ]
4173
4428
  }
4174
- ) : /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "w-full bg-white border border-gray-200 rounded-xl shadow-sm overflow-hidden animate-fade-in", children: [
4175
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "flex items-center justify-between p-3 bg-gray-50 border-b border-gray-100", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex items-center gap-3 overflow-hidden", children: [
4176
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("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__ */ (0, import_jsx_runtime22.jsx)("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("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__ */ (0, import_jsx_runtime22.jsx)("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("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" }) }) }),
4177
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "min-w-0", children: [
4178
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { className: "text-xs font-medium text-gray-900 truncate", title: selectedFile?.name || "Imagen cargada", children: selectedFile?.name || "Imagen cargada" }),
4179
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { className: "text-[10px] text-gray-500", children: selectedFile ? (selectedFile.size / 1024 / 1024).toFixed(2) + " MB" : "" })
4429
+ ) : /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "w-full bg-white border border-gray-200 rounded-xl shadow-sm overflow-hidden animate-fade-in", children: [
4430
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "flex items-center justify-between p-3 bg-gray-50 border-b border-gray-100", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "flex items-center gap-3 overflow-hidden", children: [
4431
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("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__ */ (0, import_jsx_runtime25.jsx)("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("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__ */ (0, import_jsx_runtime25.jsx)("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("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" }) }) }),
4432
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "min-w-0", children: [
4433
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { className: "text-xs font-medium text-gray-900 truncate", title: selectedFile?.name || "Imagen cargada", children: selectedFile?.name || "Imagen cargada" }),
4434
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { className: "text-[10px] text-gray-500", children: selectedFile ? (selectedFile.size / 1024 / 1024).toFixed(2) + " MB" : "" })
4180
4435
  ] })
4181
4436
  ] }) }),
4182
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: (0, import_clsx16.default)("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__ */ (0, import_jsx_runtime22.jsx)(
4437
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: (0, import_clsx18.default)("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__ */ (0, import_jsx_runtime25.jsx)(
4183
4438
  "img",
4184
4439
  {
4185
4440
  src: imagePreview,
4186
4441
  alt: "Vista previa",
4187
4442
  className: "w-full h-full object-contain max-h-[200px]"
4188
4443
  }
4189
- ) : /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "py-8 flex flex-col items-center text-gray-400", children: [
4190
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("svg", { className: "w-10 h-10 mb-2 opacity-50", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("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" }) }),
4191
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "text-xs", children: "Sin vista previa" })
4444
+ ) : /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "py-8 flex flex-col items-center text-gray-400", children: [
4445
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("svg", { className: "w-10 h-10 mb-2 opacity-50", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("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" }) }),
4446
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "text-xs", children: "Sin vista previa" })
4192
4447
  ] }) }),
4193
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "px-3 py-2 bg-white border-t border-gray-100 flex justify-end gap-2", children: !isConfirmed ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
4194
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
4448
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "px-3 py-2 bg-white border-t border-gray-100 flex justify-end gap-2", children: !isConfirmed ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, { children: [
4449
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
4195
4450
  "button",
4196
4451
  {
4197
4452
  type: "button",
@@ -4200,31 +4455,31 @@ var ITDropfile = ({
4200
4455
  children: "Cancelar"
4201
4456
  }
4202
4457
  ),
4203
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
4458
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
4204
4459
  "button",
4205
4460
  {
4206
4461
  type: "button",
4207
4462
  onClick: handleConfirm,
4208
4463
  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",
4209
4464
  children: [
4210
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { children: "Confirmar" }),
4211
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("svg", { className: "w-3 h-3", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) })
4465
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { children: "Confirmar" }),
4466
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("svg", { className: "w-3 h-3", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) })
4212
4467
  ]
4213
4468
  }
4214
4469
  )
4215
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
4470
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
4216
4471
  "button",
4217
4472
  {
4218
4473
  type: "button",
4219
4474
  onClick: handleDelete,
4220
4475
  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",
4221
4476
  children: [
4222
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("svg", { className: "w-3 h-3", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("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" }) }),
4223
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { children: "Eliminar" })
4477
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("svg", { className: "w-3 h-3", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("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" }) }),
4478
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { children: "Eliminar" })
4224
4479
  ]
4225
4480
  }
4226
4481
  ) }),
4227
- uploadStatus === "subiendo" /* UPLOADING */ && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "px-4 pb-2", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "w-full bg-gray-200 rounded-full h-1.5", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
4482
+ uploadStatus === "subiendo" /* UPLOADING */ && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "px-4 pb-2", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "w-full bg-gray-200 rounded-full h-1.5", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
4228
4483
  "div",
4229
4484
  {
4230
4485
  className: "bg-primary-600 h-1.5 rounded-full transition-all duration-1000 ease-out",
@@ -4240,12 +4495,12 @@ var ITDropfile = ({
4240
4495
  var dropfile_default = ITDropfile;
4241
4496
 
4242
4497
  // src/components/layout/layout.tsx
4243
- var import_react24 = require("react");
4498
+ var import_react26 = require("react");
4244
4499
 
4245
4500
  // src/components/topbar/topbar.tsx
4246
- var import_fa12 = require("react-icons/fa");
4247
- var import_react22 = require("react");
4248
- var import_jsx_runtime23 = require("react/jsx-runtime");
4501
+ var import_fa13 = require("react-icons/fa");
4502
+ var import_react24 = require("react");
4503
+ var import_jsx_runtime26 = require("react/jsx-runtime");
4249
4504
  function ITTopBar({
4250
4505
  logo,
4251
4506
  logoText,
@@ -4255,10 +4510,10 @@ function ITTopBar({
4255
4510
  navItems,
4256
4511
  onNavItemClick
4257
4512
  }) {
4258
- const [isUserMenuOpen, setIsUserMenuOpen] = (0, import_react22.useState)(false);
4259
- const userMenuRef = (0, import_react22.useRef)(null);
4513
+ const [isUserMenuOpen, setIsUserMenuOpen] = (0, import_react24.useState)(false);
4514
+ const userMenuRef = (0, import_react24.useRef)(null);
4260
4515
  useClickOutside_default(userMenuRef, () => setIsUserMenuOpen(false));
4261
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
4516
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4262
4517
  "header",
4263
4518
  {
4264
4519
  className: "sticky top-0 z-40 backdrop-blur-md transition-all duration-300",
@@ -4267,9 +4522,9 @@ function ITTopBar({
4267
4522
  borderBottom: `1px solid ${theme.topbar?.borderColor || "#e2e8f0"}`,
4268
4523
  boxShadow: theme.topbar?.shadow || "none"
4269
4524
  },
4270
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex items-center justify-between h-[72px] px-6 lg:px-8", children: [
4271
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex items-center gap-5", children: [
4272
- showMobileMenuButton && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
4525
+ children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center justify-between h-[72px] px-6 lg:px-8", children: [
4526
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center gap-5", children: [
4527
+ showMobileMenuButton && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4273
4528
  "button",
4274
4529
  {
4275
4530
  className: "lg:hidden p-2.5 rounded-xl transition-colors duration-200",
@@ -4279,12 +4534,12 @@ function ITTopBar({
4279
4534
  onMouseEnter: (e) => e.currentTarget.style.backgroundColor = theme.topbar?.userMenu?.hoverBackground || "#f1f5f9",
4280
4535
  onMouseLeave: (e) => e.currentTarget.style.backgroundColor = "transparent",
4281
4536
  onClick: onToggleMobileMenu,
4282
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_fa12.FaBars, { className: "w-[1.125rem] h-[1.125rem]" })
4537
+ children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_fa13.FaBars, { className: "w-[1.125rem] h-[1.125rem]" })
4283
4538
  }
4284
4539
  ),
4285
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex items-center gap-3", children: [
4286
- logo && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "flex-shrink-0 drop-shadow-sm", children: logo }),
4287
- logoText && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
4540
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center gap-3", children: [
4541
+ logo && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "flex-shrink-0 drop-shadow-sm", children: logo }),
4542
+ logoText && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4288
4543
  "span",
4289
4544
  {
4290
4545
  className: "text-[1.15rem] font-bold tracking-tight",
@@ -4293,7 +4548,7 @@ function ITTopBar({
4293
4548
  }
4294
4549
  )
4295
4550
  ] }),
4296
- navItems && navItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("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__ */ (0, import_jsx_runtime23.jsx)(
4551
+ navItems && navItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("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__ */ (0, import_jsx_runtime26.jsx)(
4297
4552
  "button",
4298
4553
  {
4299
4554
  onClick: () => onNavItemClick?.(item.id),
@@ -4307,16 +4562,16 @@ function ITTopBar({
4307
4562
  e.currentTarget.style.color = theme.topbar?.textColor || "#475569";
4308
4563
  e.currentTarget.style.backgroundColor = "transparent";
4309
4564
  },
4310
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex items-center gap-2", children: [
4311
- item.icon && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "opacity-70", children: item.icon }),
4565
+ children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center gap-2", children: [
4566
+ item.icon && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "opacity-70", children: item.icon }),
4312
4567
  item.label
4313
4568
  ] })
4314
4569
  },
4315
4570
  item.id
4316
4571
  )) })
4317
4572
  ] }),
4318
- userMenu && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "relative", children: [
4319
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
4573
+ userMenu && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "relative", children: [
4574
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
4320
4575
  "button",
4321
4576
  {
4322
4577
  type: "button",
@@ -4332,19 +4587,19 @@ function ITTopBar({
4332
4587
  },
4333
4588
  onClick: () => setIsUserMenuOpen(!isUserMenuOpen),
4334
4589
  children: [
4335
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "relative", children: [
4336
- userMenu.userImage ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
4590
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "relative", children: [
4591
+ userMenu.userImage ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4337
4592
  "img",
4338
4593
  {
4339
4594
  className: "w-9 h-9 rounded-full object-cover ring-2 ring-white shadow-sm",
4340
4595
  src: userMenu.userImage,
4341
4596
  alt: "Current user"
4342
4597
  }
4343
- ) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "w-9 h-9 rounded-full bg-slate-100 flex items-center justify-center ring-2 ring-white shadow-sm", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_fa12.FaUserCircle, { className: "w-6 h-6", style: { color: theme.topbar?.iconColor || "#94a3b8" } }) }),
4344
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "absolute bottom-0 right-0 w-2.5 h-2.5 bg-green-500 border-2 border-white rounded-full" })
4598
+ ) : /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "w-9 h-9 rounded-full bg-slate-100 flex items-center justify-center ring-2 ring-white shadow-sm", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_fa13.FaUserCircle, { className: "w-6 h-6", style: { color: theme.topbar?.iconColor || "#94a3b8" } }) }),
4599
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "absolute bottom-0 right-0 w-2.5 h-2.5 bg-green-500 border-2 border-white rounded-full" })
4345
4600
  ] }),
4346
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "hidden sm:flex flex-col text-left py-0.5", children: [
4347
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
4601
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "hidden sm:flex flex-col text-left py-0.5", children: [
4602
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4348
4603
  "span",
4349
4604
  {
4350
4605
  className: "font-semibold text-[0.85rem] leading-tight",
@@ -4352,7 +4607,7 @@ function ITTopBar({
4352
4607
  children: userMenu.userName
4353
4608
  }
4354
4609
  ),
4355
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
4610
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4356
4611
  "span",
4357
4612
  {
4358
4613
  className: "text-[0.7rem] font-medium",
@@ -4364,7 +4619,7 @@ function ITTopBar({
4364
4619
  ]
4365
4620
  }
4366
4621
  ),
4367
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
4622
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
4368
4623
  "div",
4369
4624
  {
4370
4625
  ref: userMenuRef,
@@ -4377,15 +4632,15 @@ function ITTopBar({
4377
4632
  border: `1px solid ${theme.topbar?.userMenu?.dropdown?.borderColor || "#f1f5f9"}`
4378
4633
  },
4379
4634
  children: [
4380
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "px-5 py-4 border-b bg-slate-50/50", style: { borderColor: theme.topbar?.userMenu?.dropdown?.borderColor || "#f1f5f9" }, children: [
4381
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "block font-bold text-[0.9rem]", style: { color: theme.topbar?.userMenu?.textColor || "#0f172a" }, children: userMenu.userName }),
4382
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "block text-xs font-medium truncate mt-0.5", style: { color: theme.topbar?.userMenu?.subtitleColor || "#64748b" }, children: userMenu.userEmail })
4635
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "px-5 py-4 border-b bg-slate-50/50", style: { borderColor: theme.topbar?.userMenu?.dropdown?.borderColor || "#f1f5f9" }, children: [
4636
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "block font-bold text-[0.9rem]", style: { color: theme.topbar?.userMenu?.textColor || "#0f172a" }, children: userMenu.userName }),
4637
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "block text-xs font-medium truncate mt-0.5", style: { color: theme.topbar?.userMenu?.subtitleColor || "#64748b" }, children: userMenu.userEmail })
4383
4638
  ] }),
4384
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("ul", { className: "py-2", children: userMenu.menuItems.map((m, i) => {
4639
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("ul", { className: "py-2", children: userMenu.menuItems.map((m, i) => {
4385
4640
  const isDestructive = m.label.toLowerCase().includes("salir") || m.label.toLowerCase().includes("cerrar") || m.label.toLowerCase().includes("logout");
4386
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("li", { className: "px-2", children: [
4387
- i === userMenu.menuItems.length - 1 && isDestructive && i > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "h-px bg-slate-100 my-1 mx-2" }),
4388
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
4641
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("li", { className: "px-2", children: [
4642
+ i === userMenu.menuItems.length - 1 && isDestructive && i > 0 && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "h-px bg-slate-100 my-1 mx-2" }),
4643
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4389
4644
  "button",
4390
4645
  {
4391
4646
  onClick: (e) => {
@@ -4415,22 +4670,24 @@ function ITTopBar({
4415
4670
  }
4416
4671
 
4417
4672
  // src/components/sidebar/sidebar.tsx
4418
- var import_react23 = require("react");
4419
- var import_fa13 = require("react-icons/fa");
4420
- var import_jsx_runtime24 = require("react/jsx-runtime");
4673
+ var import_react25 = require("react");
4674
+ var import_fa14 = require("react-icons/fa");
4675
+ var import_jsx_runtime27 = require("react/jsx-runtime");
4421
4676
  function ITSidebar({
4422
4677
  navigationItems = [],
4423
4678
  isCollapsed = false,
4424
4679
  onToggleCollapse,
4425
4680
  className = "",
4426
- visibleOnMobile = false
4681
+ visibleOnMobile = false,
4682
+ onItemClick,
4683
+ onSubItemClick
4427
4684
  }) {
4428
- const [expandedItems, setExpandedItems] = (0, import_react23.useState)(/* @__PURE__ */ new Set());
4429
- const [isHovering, setIsHovering] = (0, import_react23.useState)(false);
4430
- const sidebarRef = (0, import_react23.useRef)(null);
4431
- const hoverTimeoutRef = (0, import_react23.useRef)(null);
4432
- const leaveTimeoutRef = (0, import_react23.useRef)(null);
4433
- (0, import_react23.useEffect)(() => {
4685
+ const [expandedItems, setExpandedItems] = (0, import_react25.useState)(/* @__PURE__ */ new Set());
4686
+ const [isHovering, setIsHovering] = (0, import_react25.useState)(false);
4687
+ const sidebarRef = (0, import_react25.useRef)(null);
4688
+ const hoverTimeoutRef = (0, import_react25.useRef)(null);
4689
+ const leaveTimeoutRef = (0, import_react25.useRef)(null);
4690
+ (0, import_react25.useEffect)(() => {
4434
4691
  const handleMouseEnter = () => {
4435
4692
  if (hoverTimeoutRef.current) clearTimeout(hoverTimeoutRef.current);
4436
4693
  if (leaveTimeoutRef.current) clearTimeout(leaveTimeoutRef.current);
@@ -4464,13 +4721,14 @@ function ITSidebar({
4464
4721
  const handleItemClick = (item) => {
4465
4722
  if (item.subitems && item.subitems.length > 0) {
4466
4723
  toggleExpanded(item.id);
4467
- } else if (item.action) {
4468
- item.action();
4724
+ } else {
4725
+ if (item.action) item.action();
4726
+ if (onItemClick) onItemClick(item);
4469
4727
  }
4470
4728
  };
4471
4729
  const isSidebarCollapsed = visibleOnMobile ? false : !isHovering && isCollapsed;
4472
4730
  const sidebarWidth = isSidebarCollapsed ? "w-[88px]" : "w-[280px]";
4473
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
4731
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4474
4732
  "aside",
4475
4733
  {
4476
4734
  ref: sidebarRef,
@@ -4489,8 +4747,8 @@ function ITSidebar({
4489
4747
  WebkitBackdropFilter: "blur(12px)",
4490
4748
  backdropFilter: "blur(12px)"
4491
4749
  },
4492
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("nav", { className: "flex-1 py-6 overflow-y-auto overflow-x-hidden custom-scrollbar px-4", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("ul", { className: "space-y-2", children: navigationItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("li", { className: "relative group/navitem", children: [
4493
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
4750
+ children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("nav", { className: "flex-1 py-6 overflow-y-auto overflow-x-hidden custom-scrollbar px-4", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("ul", { className: "space-y-2", children: navigationItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("li", { className: "relative group/navitem", children: [
4751
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
4494
4752
  "div",
4495
4753
  {
4496
4754
  className: `flex items-center cursor-pointer
@@ -4511,15 +4769,15 @@ function ITSidebar({
4511
4769
  },
4512
4770
  onClick: () => handleItemClick(item),
4513
4771
  children: [
4514
- item.isActive && !isSidebarCollapsed && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
4772
+ item.isActive && !isSidebarCollapsed && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4515
4773
  "div",
4516
4774
  {
4517
4775
  className: "absolute left-0 top-1/4 bottom-1/4 w-[3px] rounded-r-full transition-all",
4518
4776
  style: { backgroundColor: theme.sidebar?.active?.iconColor || "#10b981", boxShadow: `0 0 10px ${theme.sidebar?.active?.iconColor || "#10b981"}` }
4519
4777
  }
4520
4778
  ),
4521
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: `flex items-center ${!isSidebarCollapsed ? "gap-3.5" : "justify-center"} relative z-10 w-full`, children: [
4522
- item.icon && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
4779
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: `flex items-center ${!isSidebarCollapsed ? "gap-3.5" : "justify-center"} relative z-10 w-full`, children: [
4780
+ item.icon && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4523
4781
  "div",
4524
4782
  {
4525
4783
  className: `transition-all duration-300 flex-shrink-0 flex items-center justify-center`,
@@ -4532,7 +4790,7 @@ function ITSidebar({
4532
4790
  children: item.icon
4533
4791
  }
4534
4792
  ),
4535
- !isSidebarCollapsed && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
4793
+ !isSidebarCollapsed && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4536
4794
  "span",
4537
4795
  {
4538
4796
  className: `transition-all duration-300 truncate tracking-wide`,
@@ -4545,15 +4803,15 @@ function ITSidebar({
4545
4803
  }
4546
4804
  )
4547
4805
  ] }),
4548
- !isSidebarCollapsed && item.subitems && item.subitems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
4806
+ !isSidebarCollapsed && item.subitems && item.subitems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4549
4807
  "div",
4550
4808
  {
4551
4809
  className: `flex-shrink-0 transition-transform duration-300 ease-[cubic-bezier(0.2,0,0,1)] ${expandedItems.has(item.id) ? "rotate-180" : ""}`,
4552
4810
  style: { color: item.isActive ? theme.sidebar?.active?.color || "#0f172a" : theme.sidebar?.icon?.color || "#64748b", opacity: 0.7 },
4553
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_fa13.FaChevronDown, { className: "w-3 h-3" })
4811
+ children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_fa14.FaChevronDown, { className: "w-3 h-3" })
4554
4812
  }
4555
4813
  ),
4556
- item.badge && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
4814
+ item.badge && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4557
4815
  "span",
4558
4816
  {
4559
4817
  className: `
@@ -4571,7 +4829,7 @@ function ITSidebar({
4571
4829
  ]
4572
4830
  }
4573
4831
  ),
4574
- isSidebarCollapsed && /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
4832
+ isSidebarCollapsed && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
4575
4833
  "div",
4576
4834
  {
4577
4835
  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)]",
@@ -4582,30 +4840,33 @@ function ITSidebar({
4582
4840
  backdropFilter: "blur(16px)"
4583
4841
  },
4584
4842
  children: [
4585
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("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: [
4586
- item.icon && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { style: { color: theme.sidebar?.active?.iconColor || "#10b981" }, className: "text-xl drop-shadow-sm", children: item.icon }),
4587
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "tracking-wide text-[15px]", children: item.label })
4843
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("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: [
4844
+ item.icon && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { style: { color: theme.sidebar?.active?.iconColor || "#10b981" }, className: "text-xl drop-shadow-sm", children: item.icon }),
4845
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "tracking-wide text-[15px]", children: item.label })
4588
4846
  ] }),
4589
- item.subitems && item.subitems.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "py-2", children: item.subitems.map((subitem) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
4847
+ item.subitems && item.subitems.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "py-2", children: item.subitems.map((subitem) => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
4590
4848
  "div",
4591
4849
  {
4592
4850
  className: `px-5 py-2.5 text-sm flex items-center gap-3 transition-colors`,
4593
4851
  children: [
4594
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("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" } }),
4595
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { style: { color: subitem.isActive ? theme.sidebar?.active?.color || "#0f172a" : theme.sidebar?.label?.color || "#475569", fontWeight: subitem.isActive ? 600 : 500 }, children: subitem.label })
4852
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("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" } }),
4853
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { style: { color: subitem.isActive ? theme.sidebar?.active?.color || "#0f172a" : theme.sidebar?.label?.color || "#475569", fontWeight: subitem.isActive ? 600 : 500 }, children: subitem.label })
4596
4854
  ]
4597
4855
  },
4598
4856
  subitem.id
4599
- )) }) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "px-5 py-3 text-sm text-zinc-500 italic", children: "No hay submen\xFA" })
4857
+ )) }) : /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "px-5 py-3 text-sm text-zinc-500 italic", children: "No hay submen\xFA" })
4600
4858
  ]
4601
4859
  }
4602
4860
  ),
4603
- !isSidebarCollapsed && item.subitems && item.subitems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("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__ */ (0, import_jsx_runtime24.jsx)("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__ */ (0, import_jsx_runtime24.jsxs)("li", { className: "relative", children: [
4604
- subitem.isActive && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("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" } }),
4605
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
4861
+ !isSidebarCollapsed && item.subitems && item.subitems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("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__ */ (0, import_jsx_runtime27.jsx)("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__ */ (0, import_jsx_runtime27.jsxs)("li", { className: "relative", children: [
4862
+ subitem.isActive && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("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" } }),
4863
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4606
4864
  "button",
4607
4865
  {
4608
- onClick: subitem.action,
4866
+ onClick: () => {
4867
+ if (subitem.action) subitem.action();
4868
+ if (onSubItemClick) onSubItemClick(subitem);
4869
+ },
4609
4870
  className: `block w-full text-left px-4 py-2 rounded-xl transition-all duration-300`,
4610
4871
  style: {
4611
4872
  color: subitem.isActive ? theme.sidebar?.active?.color || "#0f172a" : theme.sidebar?.label?.color || "#475569",
@@ -4636,7 +4897,7 @@ function ITSidebar({
4636
4897
  }
4637
4898
 
4638
4899
  // src/components/layout/layout.tsx
4639
- var import_jsx_runtime25 = require("react/jsx-runtime");
4900
+ var import_jsx_runtime28 = require("react/jsx-runtime");
4640
4901
  function ITLayout({
4641
4902
  topBar,
4642
4903
  sidebar,
@@ -4644,10 +4905,10 @@ function ITLayout({
4644
4905
  className = "",
4645
4906
  contentClassName = ""
4646
4907
  }) {
4647
- const [desktopCollapsed, setDesktopCollapsed] = (0, import_react24.useState)(true);
4648
- const [mobileSidebarOpen, setMobileSidebarOpen] = (0, import_react24.useState)(false);
4649
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: `flex flex-col h-screen overflow-hidden w-full ${className}`, children: [
4650
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
4908
+ const [desktopCollapsed, setDesktopCollapsed] = (0, import_react26.useState)(true);
4909
+ const [mobileSidebarOpen, setMobileSidebarOpen] = (0, import_react26.useState)(false);
4910
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: `flex flex-col h-screen overflow-hidden w-full ${className}`, children: [
4911
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4651
4912
  ITTopBar,
4652
4913
  {
4653
4914
  ...topBar,
@@ -4655,10 +4916,10 @@ function ITLayout({
4655
4916
  onToggleMobileMenu: () => setMobileSidebarOpen((v) => !v)
4656
4917
  }
4657
4918
  ),
4658
- /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "flex flex-1 overflow-hidden relative", style: { backgroundColor: theme.layout?.backgroundColor || "#f8fafc" }, children: [
4659
- /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "hidden lg:block relative z-40 h-full", children: [
4660
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "w-[88px] h-full flex-shrink-0" }),
4661
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "absolute top-0 left-0 h-full", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
4919
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex flex-1 overflow-hidden relative", style: { backgroundColor: theme.layout?.backgroundColor || "#f8fafc" }, children: [
4920
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "hidden lg:block relative z-40 h-full", children: [
4921
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "w-[88px] h-full flex-shrink-0" }),
4922
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "absolute top-0 left-0 h-full", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4662
4923
  ITSidebar,
4663
4924
  {
4664
4925
  ...sidebar,
@@ -4669,31 +4930,33 @@ function ITLayout({
4669
4930
  }
4670
4931
  ) })
4671
4932
  ] }),
4672
- mobileSidebarOpen && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
4933
+ mobileSidebarOpen && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4673
4934
  "div",
4674
4935
  {
4675
4936
  className: "lg:hidden fixed inset-0 z-50 transition-opacity duration-300 backdrop-blur-sm bg-black/40",
4676
4937
  onClick: () => setMobileSidebarOpen(false),
4677
- children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
4938
+ children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4678
4939
  "div",
4679
4940
  {
4680
- className: "h-full w-auto transform transition-transform duration-300 ease-[cubic-bezier(0.2,0,0,1)]",
4941
+ className: "h-full w-fit flex transform transition-transform duration-300 ease-[cubic-bezier(0.2,0,0,1)]",
4681
4942
  onClick: (e) => e.stopPropagation(),
4682
- children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
4943
+ children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4683
4944
  ITSidebar,
4684
4945
  {
4685
4946
  ...sidebar,
4686
4947
  isCollapsed: false,
4687
4948
  visibleOnMobile: true,
4688
- className: "h-full shadow-2xl",
4689
- onToggleCollapse: () => setMobileSidebarOpen(false)
4949
+ className: "h-full shadow-2xl relative z-[60]",
4950
+ onToggleCollapse: () => setMobileSidebarOpen(false),
4951
+ onItemClick: () => setMobileSidebarOpen(false),
4952
+ onSubItemClick: () => setMobileSidebarOpen(false)
4690
4953
  }
4691
4954
  )
4692
4955
  }
4693
4956
  )
4694
4957
  }
4695
4958
  ),
4696
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("main", { className: "flex-1 overflow-y-auto w-full custom-scrollbar relative z-0", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
4959
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("main", { className: "flex-1 overflow-y-auto w-full custom-scrollbar relative z-0", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4697
4960
  "div",
4698
4961
  {
4699
4962
  className: `mx-auto w-full h-full ${contentClassName}`,
@@ -4714,7 +4977,7 @@ var sizeClasses = {
4714
4977
  };
4715
4978
 
4716
4979
  // src/components/loader/loader.tsx
4717
- var import_jsx_runtime26 = require("react/jsx-runtime");
4980
+ var import_jsx_runtime29 = require("react/jsx-runtime");
4718
4981
  function ITLoader({
4719
4982
  size = "md",
4720
4983
  variant = "spinner",
@@ -4729,22 +4992,22 @@ function ITLoader({
4729
4992
  const bgStyle = isCssValue ? { backgroundColor: resolvedColor } : {};
4730
4993
  const colorClass = !isCssValue ? color : "";
4731
4994
  if (variant === "spinner") {
4732
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4995
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
4733
4996
  "div",
4734
4997
  {
4735
4998
  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}`,
4736
4999
  role: "status",
4737
5000
  style,
4738
- children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("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..." })
5001
+ children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("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..." })
4739
5002
  }
4740
5003
  );
4741
5004
  }
4742
5005
  if (variant === "dots") {
4743
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
5006
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
4744
5007
  "div",
4745
5008
  {
4746
5009
  className: `flex items-center justify-center space-x-2 ${className}`,
4747
- children: [...Array(3)].map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
5010
+ children: [...Array(3)].map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
4748
5011
  "div",
4749
5012
  {
4750
5013
  className: `${sizeClasses[size.replace(/l|g/, "")]} animate-bounce rounded-full ${colorClass}`,
@@ -4759,11 +5022,11 @@ function ITLoader({
4759
5022
  );
4760
5023
  }
4761
5024
  if (variant === "bar") {
4762
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
5025
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
4763
5026
  "div",
4764
5027
  {
4765
5028
  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}`,
4766
- children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
5029
+ children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
4767
5030
  "div",
4768
5031
  {
4769
5032
  className: `h-full animate-progress ${colorClass}`,
@@ -4779,7 +5042,7 @@ function ITLoader({
4779
5042
  );
4780
5043
  }
4781
5044
  if (variant === "pulse") {
4782
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
5045
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
4783
5046
  "div",
4784
5047
  {
4785
5048
  className: `rounded-full ${sizeClasses[size]} animate-pulse ${colorClass} ${className}`,
@@ -4791,10 +5054,10 @@ function ITLoader({
4791
5054
  }
4792
5055
 
4793
5056
  // src/components/stepper/stepper.tsx
4794
- var import_clsx17 = __toESM(require("clsx"), 1);
4795
- var import_react25 = require("react");
4796
- var import_fa14 = require("react-icons/fa");
4797
- var import_jsx_runtime27 = require("react/jsx-runtime");
5057
+ var import_clsx19 = __toESM(require("clsx"), 1);
5058
+ var import_react27 = require("react");
5059
+ var import_fa15 = require("react-icons/fa");
5060
+ var import_jsx_runtime30 = require("react/jsx-runtime");
4798
5061
  function ITStepper({
4799
5062
  steps,
4800
5063
  currentStep,
@@ -4809,15 +5072,15 @@ function ITStepper({
4809
5072
  maxContentHeight = "400px",
4810
5073
  color = "primary"
4811
5074
  }) {
4812
- const [direction, setDirection] = (0, import_react25.useState)("next");
4813
- const contentRef = (0, import_react25.useRef)(null);
4814
- const progressRef = (0, import_react25.useRef)(null);
5075
+ const [direction, setDirection] = (0, import_react27.useState)("next");
5076
+ const contentRef = (0, import_react27.useRef)(null);
5077
+ const progressRef = (0, import_react27.useRef)(null);
4815
5078
  const isThemeColor = color in theme.colors;
4816
5079
  const resolvedColor = isThemeColor ? theme.colors[color][500] : color;
4817
- (0, import_react25.useEffect)(() => {
5080
+ (0, import_react27.useEffect)(() => {
4818
5081
  onStepChange?.(currentStep);
4819
5082
  }, [currentStep, onStepChange]);
4820
- (0, import_react25.useEffect)(() => {
5083
+ (0, import_react27.useEffect)(() => {
4821
5084
  const pct = currentStep / Math.max(1, steps.length - 1) * 100;
4822
5085
  if (progressRef.current) {
4823
5086
  progressRef.current.style.width = `${pct}%`;
@@ -4861,23 +5124,23 @@ function ITStepper({
4861
5124
  const renderStepContent = (index, isCompleted, isActive) => {
4862
5125
  const step = steps[index];
4863
5126
  if (isCompleted) {
4864
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_fa14.FaCheck, { className: "w-4 h-4" });
5127
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_fa15.FaCheck, { className: "w-4 h-4" });
4865
5128
  }
4866
5129
  if (step.icon && useIcons) {
4867
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "flex items-center justify-center w-5 h-5", children: step.icon });
5130
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "flex items-center justify-center w-5 h-5", children: step.icon });
4868
5131
  }
4869
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "text-sm font-semibold", children: index + 1 });
5132
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "text-sm font-semibold", children: index + 1 });
4870
5133
  };
4871
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: (0, import_clsx17.default)("w-full max-w-5xl mx-auto px-4", containerClassName), children: [
4872
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "relative mb-8", children: [
4873
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
5134
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: (0, import_clsx19.default)("w-full max-w-5xl mx-auto px-4", containerClassName), children: [
5135
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "relative mb-8", children: [
5136
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4874
5137
  "div",
4875
5138
  {
4876
5139
  className: "absolute left-6 right-6 top-5 h-1 bg-gray-200 rounded-full z-0",
4877
5140
  "aria-hidden": true
4878
5141
  }
4879
5142
  ),
4880
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
5143
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4881
5144
  "div",
4882
5145
  {
4883
5146
  ref: progressRef,
@@ -4885,11 +5148,11 @@ function ITStepper({
4885
5148
  "aria-hidden": true
4886
5149
  }
4887
5150
  ),
4888
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "flex items-start justify-between space-x-2 relative z-20", children: steps.map((step, idx) => {
5151
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "flex items-start justify-between space-x-2 relative z-20", children: steps.map((step, idx) => {
4889
5152
  const isActive = idx === currentStep;
4890
5153
  const isCompleted = idx < currentStep;
4891
5154
  const hasIcon = step.icon && useIcons;
4892
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
5155
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4893
5156
  "button",
4894
5157
  {
4895
5158
  type: "button",
@@ -4899,11 +5162,11 @@ function ITStepper({
4899
5162
  "aria-label": `Paso ${idx + 1} ${step.label}`,
4900
5163
  className: "flex-1 group",
4901
5164
  title: step.label,
4902
- children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "flex flex-col items-center", children: [
4903
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
5165
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "flex flex-col items-center", children: [
5166
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4904
5167
  "div",
4905
5168
  {
4906
- className: (0, import_clsx17.default)(
5169
+ className: (0, import_clsx19.default)(
4907
5170
  "flex items-center justify-center w-11 h-11 rounded-full border-2 transition-all duration-300 transform",
4908
5171
  hasIcon && "p-2",
4909
5172
  isCompleted && "bg-slate-400 border-slate-400 text-white scale-100 shadow",
@@ -4914,10 +5177,10 @@ function ITStepper({
4914
5177
  children: renderStepContent(idx, isCompleted, isActive)
4915
5178
  }
4916
5179
  ),
4917
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
5180
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4918
5181
  "span",
4919
5182
  {
4920
- className: (0, import_clsx17.default)(
5183
+ className: (0, import_clsx19.default)(
4921
5184
  "mt-2 text-xs sm:text-sm font-medium transition-colors text-center",
4922
5185
  isCompleted ? "text-slate-400" : !isActive && "text-gray-400"
4923
5186
  ),
@@ -4931,14 +5194,14 @@ function ITStepper({
4931
5194
  );
4932
5195
  }) })
4933
5196
  ] }),
4934
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
5197
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4935
5198
  "div",
4936
5199
  {
4937
5200
  ref: contentRef,
4938
5201
  tabIndex: -1,
4939
5202
  role: "region",
4940
5203
  "aria-labelledby": `step-${currentStep}`,
4941
- className: (0, import_clsx17.default)(
5204
+ className: (0, import_clsx19.default)(
4942
5205
  stepClassName,
4943
5206
  "bg-white border border-gray-100 rounded-2xl shadow-lg min-h-[280px] transition-transform duration-400 no-scrollbar p-6",
4944
5207
  scrollableContent && "overflow-y-auto hide-scrollbar"
@@ -4947,37 +5210,37 @@ function ITStepper({
4947
5210
  children: steps[currentStep].content
4948
5211
  }
4949
5212
  ),
4950
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "flex justify-between items-center mt-6", children: [
4951
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
5213
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "flex justify-between items-center mt-6", children: [
5214
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4952
5215
  ITButton,
4953
5216
  {
4954
5217
  variant: "outlined",
4955
5218
  color: "secondary",
4956
5219
  disabled: currentStep === 0,
4957
5220
  onClick: prevStep,
4958
- children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "flex items-center gap-2", children: [
4959
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_fa14.FaChevronLeft, {}),
5221
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "flex items-center gap-2", children: [
5222
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_fa15.FaChevronLeft, {}),
4960
5223
  "Atr\xE1s"
4961
5224
  ] })
4962
5225
  }
4963
5226
  ),
4964
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "flex items-center gap-3", children: [
4965
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "text-sm text-gray-500 mr-2 hidden sm:block", children: [
5227
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "flex items-center gap-3", children: [
5228
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "text-sm text-gray-500 mr-2 hidden sm:block", children: [
4966
5229
  "Paso ",
4967
5230
  currentStep + 1,
4968
5231
  " de ",
4969
5232
  steps.length
4970
5233
  ] }),
4971
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
5234
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4972
5235
  ITButton,
4973
5236
  {
4974
5237
  variant: "solid",
4975
5238
  color,
4976
5239
  disabled: disableNext,
4977
5240
  onClick: nextStep,
4978
- children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "flex items-center gap-2", children: [
5241
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "flex items-center gap-2", children: [
4979
5242
  currentStep === steps.length - 1 ? "Finalizar" : "Siguiente",
4980
- currentStep === steps.length - 1 ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_fa14.FaCheck, {}) : /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_fa14.FaChevronRight, {})
5243
+ currentStep === steps.length - 1 ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_fa15.FaCheck, {}) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_fa15.FaChevronRight, {})
4981
5244
  ] })
4982
5245
  }
4983
5246
  )
@@ -4987,10 +5250,10 @@ function ITStepper({
4987
5250
  }
4988
5251
 
4989
5252
  // src/components/theme-provider/themeProvider.tsx
4990
- var import_react26 = require("react");
4991
- var import_jsx_runtime28 = require("react/jsx-runtime");
5253
+ var import_react28 = require("react");
5254
+ var import_jsx_runtime31 = require("react/jsx-runtime");
4992
5255
  function ITThemeProvider({ theme: theme2, children }) {
4993
- const activeThemeContext = (0, import_react26.useMemo)(() => {
5256
+ const activeThemeContext = (0, import_react28.useMemo)(() => {
4994
5257
  const baseColors = {
4995
5258
  primary: palette.blue,
4996
5259
  secondary: palette.gray,
@@ -5011,7 +5274,7 @@ function ITThemeProvider({ theme: theme2, children }) {
5011
5274
  }
5012
5275
  };
5013
5276
  }, [theme2]);
5014
- const cssVariables = (0, import_react26.useMemo)(() => {
5277
+ const cssVariables = (0, import_react28.useMemo)(() => {
5015
5278
  let variablesString = "";
5016
5279
  Object.entries(activeThemeContext.colors).forEach(([colorName, scale]) => {
5017
5280
  Object.entries(scale).forEach(([shade, hexValue]) => {
@@ -5130,8 +5393,8 @@ function ITThemeProvider({ theme: theme2, children }) {
5130
5393
  return `:root {
5131
5394
  ${variablesString}}`;
5132
5395
  }, [activeThemeContext]);
5133
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
5134
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("style", { suppressHydrationWarning: true, children: cssVariables }),
5396
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
5397
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("style", { suppressHydrationWarning: true, children: cssVariables }),
5135
5398
  children
5136
5399
  ] });
5137
5400
  }
@@ -5163,14 +5426,17 @@ var createValidationSchema = (fields) => Yup.object().shape(
5163
5426
  ITLoader,
5164
5427
  ITNavbar,
5165
5428
  ITPagination,
5429
+ ITSearchSelect,
5166
5430
  ITSelect,
5167
5431
  ITSlideToggle,
5168
5432
  ITStepper,
5169
5433
  ITTable,
5434
+ ITTabs,
5170
5435
  ITText,
5171
5436
  ITThemeProvider,
5172
5437
  ITTimePicker,
5173
5438
  ITToast,
5439
+ ITTripleFilter,
5174
5440
  createValidationSchema
5175
5441
  });
5176
5442
  //# sourceMappingURL=index.cjs.map