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