@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 +468 -202
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +66 -10
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +88 -2
- package/dist/index.d.ts +88 -2
- package/dist/index.js +464 -201
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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/
|
|
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,
|
|
3780
|
-
(0,
|
|
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,
|
|
3990
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3820
3991
|
"div",
|
|
3821
3992
|
{
|
|
3822
3993
|
onClick: toggleSwitch,
|
|
3823
|
-
className: (0,
|
|
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,
|
|
4010
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3840
4011
|
"div",
|
|
3841
4012
|
{
|
|
3842
|
-
className: (0,
|
|
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
|
|
4025
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
3855
4026
|
function ITText({ children, className = "" }) {
|
|
3856
|
-
return /* @__PURE__ */ (0,
|
|
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
|
|
3871
|
-
var
|
|
3872
|
-
var
|
|
3873
|
-
var
|
|
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,
|
|
3882
|
-
(0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
4168
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
3914
4169
|
"div",
|
|
3915
4170
|
{
|
|
3916
|
-
className: (0,
|
|
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,
|
|
3930
|
-
/* @__PURE__ */ (0,
|
|
3931
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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
|
|
4203
|
+
var import_react23 = require("react");
|
|
3949
4204
|
var import_react_dropzone = require("react-dropzone");
|
|
3950
|
-
var
|
|
3951
|
-
var
|
|
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,
|
|
3965
|
-
const [fileType, setFileType] = (0,
|
|
3966
|
-
const [imagePreview, setImagePreview] = (0,
|
|
3967
|
-
const [isConfirmed, setIsConfirmed] = (0,
|
|
3968
|
-
const [internalUploadStatus, setInternalUploadStatus] = (0,
|
|
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,
|
|
3972
|
-
(0,
|
|
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,
|
|
4062
|
-
/* @__PURE__ */ (0,
|
|
4063
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
4350
|
+
(0, import_react23.useEffect)(() => {
|
|
4096
4351
|
const renderPDF = async () => {
|
|
4097
4352
|
};
|
|
4098
4353
|
renderPDF();
|
|
4099
4354
|
}, [selectedFile, fileType]);
|
|
4100
|
-
(0,
|
|
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,
|
|
4139
|
-
/* @__PURE__ */ (0,
|
|
4140
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
4403
|
+
showStatusBadge && selectedFile && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(StatusBadge, { status: uploadStatus })
|
|
4149
4404
|
] }),
|
|
4150
|
-
!selectedFile && !imagePreview ? /* @__PURE__ */ (0,
|
|
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,
|
|
4161
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
4175
|
-
/* @__PURE__ */ (0,
|
|
4176
|
-
/* @__PURE__ */ (0,
|
|
4177
|
-
/* @__PURE__ */ (0,
|
|
4178
|
-
/* @__PURE__ */ (0,
|
|
4179
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
4190
|
-
/* @__PURE__ */ (0,
|
|
4191
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
4194
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
4211
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
4223
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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
|
|
4498
|
+
var import_react26 = require("react");
|
|
4244
4499
|
|
|
4245
4500
|
// src/components/topbar/topbar.tsx
|
|
4246
|
-
var
|
|
4247
|
-
var
|
|
4248
|
-
var
|
|
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,
|
|
4259
|
-
const userMenuRef = (0,
|
|
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,
|
|
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,
|
|
4271
|
-
/* @__PURE__ */ (0,
|
|
4272
|
-
showMobileMenuButton && /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
4286
|
-
logo && /* @__PURE__ */ (0,
|
|
4287
|
-
logoText && /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
4311
|
-
item.icon && /* @__PURE__ */ (0,
|
|
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,
|
|
4319
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
4336
|
-
userMenu.userImage ? /* @__PURE__ */ (0,
|
|
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,
|
|
4344
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
4347
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
4381
|
-
/* @__PURE__ */ (0,
|
|
4382
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
4387
|
-
i === userMenu.menuItems.length - 1 && isDestructive && i > 0 && /* @__PURE__ */ (0,
|
|
4388
|
-
/* @__PURE__ */ (0,
|
|
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
|
|
4419
|
-
var
|
|
4420
|
-
var
|
|
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,
|
|
4429
|
-
const [isHovering, setIsHovering] = (0,
|
|
4430
|
-
const sidebarRef = (0,
|
|
4431
|
-
const hoverTimeoutRef = (0,
|
|
4432
|
-
const leaveTimeoutRef = (0,
|
|
4433
|
-
(0,
|
|
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
|
|
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,
|
|
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,
|
|
4493
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
4522
|
-
item.icon && /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
4586
|
-
item.icon && /* @__PURE__ */ (0,
|
|
4587
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
4595
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
4604
|
-
subitem.isActive && /* @__PURE__ */ (0,
|
|
4605
|
-
/* @__PURE__ */ (0,
|
|
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:
|
|
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
|
|
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,
|
|
4648
|
-
const [mobileSidebarOpen, setMobileSidebarOpen] = (0,
|
|
4649
|
-
return /* @__PURE__ */ (0,
|
|
4650
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
4659
|
-
/* @__PURE__ */ (0,
|
|
4660
|
-
/* @__PURE__ */ (0,
|
|
4661
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
4938
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
4678
4939
|
"div",
|
|
4679
4940
|
{
|
|
4680
|
-
className: "h-full w-
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
4795
|
-
var
|
|
4796
|
-
var
|
|
4797
|
-
var
|
|
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,
|
|
4813
|
-
const contentRef = (0,
|
|
4814
|
-
const progressRef = (0,
|
|
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,
|
|
5080
|
+
(0, import_react27.useEffect)(() => {
|
|
4818
5081
|
onStepChange?.(currentStep);
|
|
4819
5082
|
}, [currentStep, onStepChange]);
|
|
4820
|
-
(0,
|
|
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,
|
|
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,
|
|
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,
|
|
5132
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "text-sm font-semibold", children: index + 1 });
|
|
4870
5133
|
};
|
|
4871
|
-
return /* @__PURE__ */ (0,
|
|
4872
|
-
/* @__PURE__ */ (0,
|
|
4873
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
4903
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
5180
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
4918
5181
|
"span",
|
|
4919
5182
|
{
|
|
4920
|
-
className: (0,
|
|
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,
|
|
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,
|
|
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,
|
|
4951
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
4959
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
4965
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
4991
|
-
var
|
|
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,
|
|
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,
|
|
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,
|
|
5134
|
-
/* @__PURE__ */ (0,
|
|
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
|