@axzydev/axzy_ui_system 1.0.166 → 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 +285 -189
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +56 -10
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +37 -1
- package/dist/index.d.ts +37 -1
- package/dist/index.js +266 -172
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -49,10 +49,12 @@ __export(index_exports, {
|
|
|
49
49
|
ITSlideToggle: () => ITSlideToggle,
|
|
50
50
|
ITStepper: () => ITStepper,
|
|
51
51
|
ITTable: () => ITTable,
|
|
52
|
+
ITTabs: () => tabs_default,
|
|
52
53
|
ITText: () => ITText,
|
|
53
54
|
ITThemeProvider: () => ITThemeProvider,
|
|
54
55
|
ITTimePicker: () => ITTimePicker,
|
|
55
56
|
ITToast: () => ITToast,
|
|
57
|
+
ITTripleFilter: () => tripleFilter_default,
|
|
56
58
|
createValidationSchema: () => createValidationSchema
|
|
57
59
|
});
|
|
58
60
|
module.exports = __toCommonJS(index_exports);
|
|
@@ -4025,6 +4027,90 @@ function ITText({ children, className = "" }) {
|
|
|
4025
4027
|
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: `${className} text-gray-900 `, children });
|
|
4026
4028
|
}
|
|
4027
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
|
+
|
|
4028
4114
|
// src/types/toast.types.ts
|
|
4029
4115
|
var positionStyles = {
|
|
4030
4116
|
"top-right": "top-4 right-4",
|
|
@@ -4036,10 +4122,10 @@ var positionStyles = {
|
|
|
4036
4122
|
};
|
|
4037
4123
|
|
|
4038
4124
|
// src/components/toast/toast.tsx
|
|
4039
|
-
var
|
|
4040
|
-
var
|
|
4125
|
+
var import_clsx17 = __toESM(require("clsx"), 1);
|
|
4126
|
+
var import_react22 = require("react");
|
|
4041
4127
|
var import_fa12 = require("react-icons/fa");
|
|
4042
|
-
var
|
|
4128
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
4043
4129
|
function ITToast({
|
|
4044
4130
|
message,
|
|
4045
4131
|
type = "info",
|
|
@@ -4047,8 +4133,8 @@ function ITToast({
|
|
|
4047
4133
|
position = "top-right",
|
|
4048
4134
|
onClose
|
|
4049
4135
|
}) {
|
|
4050
|
-
const [isVisible, setIsVisible] = (0,
|
|
4051
|
-
(0,
|
|
4136
|
+
const [isVisible, setIsVisible] = (0, import_react22.useState)(true);
|
|
4137
|
+
(0, import_react22.useEffect)(() => {
|
|
4052
4138
|
const timer = setTimeout(() => {
|
|
4053
4139
|
setIsVisible(false);
|
|
4054
4140
|
setTimeout(() => {
|
|
@@ -4068,21 +4154,21 @@ function ITToast({
|
|
|
4068
4154
|
const TypeIcon = () => {
|
|
4069
4155
|
switch (type) {
|
|
4070
4156
|
case "success":
|
|
4071
|
-
return /* @__PURE__ */ (0,
|
|
4157
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_fa12.FaCheckCircle, { className: "w-5 h-5 flex-shrink-0" });
|
|
4072
4158
|
case "error":
|
|
4073
4159
|
case "danger":
|
|
4074
|
-
return /* @__PURE__ */ (0,
|
|
4160
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_fa12.FaTimesCircle, { className: "w-5 h-5 flex-shrink-0" });
|
|
4075
4161
|
case "warning":
|
|
4076
|
-
return /* @__PURE__ */ (0,
|
|
4162
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_fa12.FaExclamationTriangle, { className: "w-5 h-5 flex-shrink-0" });
|
|
4077
4163
|
case "info":
|
|
4078
4164
|
default:
|
|
4079
|
-
return /* @__PURE__ */ (0,
|
|
4165
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_fa12.FaInfoCircle, { className: "w-5 h-5 flex-shrink-0" });
|
|
4080
4166
|
}
|
|
4081
4167
|
};
|
|
4082
|
-
return /* @__PURE__ */ (0,
|
|
4168
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
4083
4169
|
"div",
|
|
4084
4170
|
{
|
|
4085
|
-
className: (0,
|
|
4171
|
+
className: (0, import_clsx17.default)(
|
|
4086
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]",
|
|
4087
4173
|
positionStyles[position],
|
|
4088
4174
|
{
|
|
@@ -4095,17 +4181,17 @@ function ITToast({
|
|
|
4095
4181
|
style: { backgroundColor },
|
|
4096
4182
|
role: "alert",
|
|
4097
4183
|
children: [
|
|
4098
|
-
/* @__PURE__ */ (0,
|
|
4099
|
-
/* @__PURE__ */ (0,
|
|
4100
|
-
/* @__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 })
|
|
4101
4187
|
] }),
|
|
4102
|
-
/* @__PURE__ */ (0,
|
|
4188
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
4103
4189
|
"button",
|
|
4104
4190
|
{
|
|
4105
4191
|
onClick: handleClose,
|
|
4106
4192
|
className: "p-1.5 rounded-full hover:bg-black/15 transition-colors focus:outline-none focus:ring-2 focus:ring-white/50",
|
|
4107
4193
|
"aria-label": "Close notification",
|
|
4108
|
-
children: /* @__PURE__ */ (0,
|
|
4194
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_fa12.FaTimes, { className: "w-4 h-4" })
|
|
4109
4195
|
}
|
|
4110
4196
|
)
|
|
4111
4197
|
]
|
|
@@ -4114,10 +4200,10 @@ function ITToast({
|
|
|
4114
4200
|
}
|
|
4115
4201
|
|
|
4116
4202
|
// src/components/dropfile/dropfile.tsx
|
|
4117
|
-
var
|
|
4203
|
+
var import_react23 = require("react");
|
|
4118
4204
|
var import_react_dropzone = require("react-dropzone");
|
|
4119
|
-
var
|
|
4120
|
-
var
|
|
4205
|
+
var import_clsx18 = __toESM(require("clsx"), 1);
|
|
4206
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
4121
4207
|
var ITDropfile = ({
|
|
4122
4208
|
onFileSelect,
|
|
4123
4209
|
onCancel,
|
|
@@ -4130,15 +4216,15 @@ var ITDropfile = ({
|
|
|
4130
4216
|
onStatusChange,
|
|
4131
4217
|
initialPreviewUrl
|
|
4132
4218
|
}) => {
|
|
4133
|
-
const [selectedFile, setSelectedFile] = (0,
|
|
4134
|
-
const [fileType, setFileType] = (0,
|
|
4135
|
-
const [imagePreview, setImagePreview] = (0,
|
|
4136
|
-
const [isConfirmed, setIsConfirmed] = (0,
|
|
4137
|
-
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)(
|
|
4138
4224
|
initialPreviewUrl ? "subido" /* UPLOADED */ : "pendiente" /* PENDING */
|
|
4139
4225
|
);
|
|
4140
|
-
const canvasRef = (0,
|
|
4141
|
-
(0,
|
|
4226
|
+
const canvasRef = (0, import_react23.useRef)(null);
|
|
4227
|
+
(0, import_react23.useEffect)(() => {
|
|
4142
4228
|
if (initialPreviewUrl && !selectedFile) {
|
|
4143
4229
|
setImagePreview(initialPreviewUrl);
|
|
4144
4230
|
if (externalStatus === void 0) setInternalUploadStatus("subido" /* UPLOADED */);
|
|
@@ -4227,9 +4313,9 @@ var ITDropfile = ({
|
|
|
4227
4313
|
}
|
|
4228
4314
|
};
|
|
4229
4315
|
const { label, color, dotColor } = config[status];
|
|
4230
|
-
return /* @__PURE__ */ (0,
|
|
4231
|
-
/* @__PURE__ */ (0,
|
|
4232
|
-
/* @__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 })
|
|
4233
4319
|
] });
|
|
4234
4320
|
};
|
|
4235
4321
|
const onDrop = (acceptedFiles) => {
|
|
@@ -4261,12 +4347,12 @@ var ITDropfile = ({
|
|
|
4261
4347
|
accept: getAcceptedFileTypes(),
|
|
4262
4348
|
maxFiles: 1
|
|
4263
4349
|
});
|
|
4264
|
-
(0,
|
|
4350
|
+
(0, import_react23.useEffect)(() => {
|
|
4265
4351
|
const renderPDF = async () => {
|
|
4266
4352
|
};
|
|
4267
4353
|
renderPDF();
|
|
4268
4354
|
}, [selectedFile, fileType]);
|
|
4269
|
-
(0,
|
|
4355
|
+
(0, import_react23.useEffect)(() => {
|
|
4270
4356
|
return () => {
|
|
4271
4357
|
if (imagePreview) {
|
|
4272
4358
|
URL.revokeObjectURL(imagePreview);
|
|
@@ -4304,19 +4390,19 @@ var ITDropfile = ({
|
|
|
4304
4390
|
handleCancel();
|
|
4305
4391
|
};
|
|
4306
4392
|
const isImage = fileType && fileType.startsWith("image/");
|
|
4307
|
-
return /* @__PURE__ */ (0,
|
|
4308
|
-
/* @__PURE__ */ (0,
|
|
4309
|
-
/* @__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: [
|
|
4310
4396
|
"Subir archivo ",
|
|
4311
|
-
/* @__PURE__ */ (0,
|
|
4397
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("span", { className: "text-gray-400 font-normal text-xs", children: [
|
|
4312
4398
|
"(",
|
|
4313
4399
|
getFileExtensions(),
|
|
4314
4400
|
")"
|
|
4315
4401
|
] })
|
|
4316
4402
|
] }),
|
|
4317
|
-
showStatusBadge && selectedFile && /* @__PURE__ */ (0,
|
|
4403
|
+
showStatusBadge && selectedFile && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(StatusBadge, { status: uploadStatus })
|
|
4318
4404
|
] }),
|
|
4319
|
-
!selectedFile && !imagePreview ? /* @__PURE__ */ (0,
|
|
4405
|
+
!selectedFile && !imagePreview ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
4320
4406
|
"div",
|
|
4321
4407
|
{
|
|
4322
4408
|
...getRootProps(),
|
|
@@ -4326,41 +4412,41 @@ var ITDropfile = ({
|
|
|
4326
4412
|
${isDragActive ? "border-primary-500 bg-primary-50 scale-[1.01]" : "border-gray-300 bg-white hover:border-primary-400 hover:bg-gray-50"}
|
|
4327
4413
|
`,
|
|
4328
4414
|
children: [
|
|
4329
|
-
/* @__PURE__ */ (0,
|
|
4330
|
-
/* @__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)(
|
|
4331
4417
|
"svg",
|
|
4332
4418
|
{
|
|
4333
4419
|
className: `w-6 h-6 transition-colors duration-300 ${isDragActive ? "text-primary-600" : "text-gray-400 group-hover:text-primary-500"}`,
|
|
4334
4420
|
fill: "none",
|
|
4335
4421
|
viewBox: "0 0 24 24",
|
|
4336
4422
|
stroke: "currentColor",
|
|
4337
|
-
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" })
|
|
4338
4424
|
}
|
|
4339
4425
|
) }),
|
|
4340
|
-
/* @__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" }) })
|
|
4341
4427
|
]
|
|
4342
4428
|
}
|
|
4343
|
-
) : /* @__PURE__ */ (0,
|
|
4344
|
-
/* @__PURE__ */ (0,
|
|
4345
|
-
/* @__PURE__ */ (0,
|
|
4346
|
-
/* @__PURE__ */ (0,
|
|
4347
|
-
/* @__PURE__ */ (0,
|
|
4348
|
-
/* @__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" : "" })
|
|
4349
4435
|
] })
|
|
4350
4436
|
] }) }),
|
|
4351
|
-
/* @__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)(
|
|
4352
4438
|
"img",
|
|
4353
4439
|
{
|
|
4354
4440
|
src: imagePreview,
|
|
4355
4441
|
alt: "Vista previa",
|
|
4356
4442
|
className: "w-full h-full object-contain max-h-[200px]"
|
|
4357
4443
|
}
|
|
4358
|
-
) : /* @__PURE__ */ (0,
|
|
4359
|
-
/* @__PURE__ */ (0,
|
|
4360
|
-
/* @__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" })
|
|
4361
4447
|
] }) }),
|
|
4362
|
-
/* @__PURE__ */ (0,
|
|
4363
|
-
/* @__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)(
|
|
4364
4450
|
"button",
|
|
4365
4451
|
{
|
|
4366
4452
|
type: "button",
|
|
@@ -4369,31 +4455,31 @@ var ITDropfile = ({
|
|
|
4369
4455
|
children: "Cancelar"
|
|
4370
4456
|
}
|
|
4371
4457
|
),
|
|
4372
|
-
/* @__PURE__ */ (0,
|
|
4458
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
4373
4459
|
"button",
|
|
4374
4460
|
{
|
|
4375
4461
|
type: "button",
|
|
4376
4462
|
onClick: handleConfirm,
|
|
4377
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",
|
|
4378
4464
|
children: [
|
|
4379
|
-
/* @__PURE__ */ (0,
|
|
4380
|
-
/* @__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" }) })
|
|
4381
4467
|
]
|
|
4382
4468
|
}
|
|
4383
4469
|
)
|
|
4384
|
-
] }) : /* @__PURE__ */ (0,
|
|
4470
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
4385
4471
|
"button",
|
|
4386
4472
|
{
|
|
4387
4473
|
type: "button",
|
|
4388
4474
|
onClick: handleDelete,
|
|
4389
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",
|
|
4390
4476
|
children: [
|
|
4391
|
-
/* @__PURE__ */ (0,
|
|
4392
|
-
/* @__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" })
|
|
4393
4479
|
]
|
|
4394
4480
|
}
|
|
4395
4481
|
) }),
|
|
4396
|
-
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)(
|
|
4397
4483
|
"div",
|
|
4398
4484
|
{
|
|
4399
4485
|
className: "bg-primary-600 h-1.5 rounded-full transition-all duration-1000 ease-out",
|
|
@@ -4409,12 +4495,12 @@ var ITDropfile = ({
|
|
|
4409
4495
|
var dropfile_default = ITDropfile;
|
|
4410
4496
|
|
|
4411
4497
|
// src/components/layout/layout.tsx
|
|
4412
|
-
var
|
|
4498
|
+
var import_react26 = require("react");
|
|
4413
4499
|
|
|
4414
4500
|
// src/components/topbar/topbar.tsx
|
|
4415
4501
|
var import_fa13 = require("react-icons/fa");
|
|
4416
|
-
var
|
|
4417
|
-
var
|
|
4502
|
+
var import_react24 = require("react");
|
|
4503
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
4418
4504
|
function ITTopBar({
|
|
4419
4505
|
logo,
|
|
4420
4506
|
logoText,
|
|
@@ -4424,10 +4510,10 @@ function ITTopBar({
|
|
|
4424
4510
|
navItems,
|
|
4425
4511
|
onNavItemClick
|
|
4426
4512
|
}) {
|
|
4427
|
-
const [isUserMenuOpen, setIsUserMenuOpen] = (0,
|
|
4428
|
-
const userMenuRef = (0,
|
|
4513
|
+
const [isUserMenuOpen, setIsUserMenuOpen] = (0, import_react24.useState)(false);
|
|
4514
|
+
const userMenuRef = (0, import_react24.useRef)(null);
|
|
4429
4515
|
useClickOutside_default(userMenuRef, () => setIsUserMenuOpen(false));
|
|
4430
|
-
return /* @__PURE__ */ (0,
|
|
4516
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
4431
4517
|
"header",
|
|
4432
4518
|
{
|
|
4433
4519
|
className: "sticky top-0 z-40 backdrop-blur-md transition-all duration-300",
|
|
@@ -4436,9 +4522,9 @@ function ITTopBar({
|
|
|
4436
4522
|
borderBottom: `1px solid ${theme.topbar?.borderColor || "#e2e8f0"}`,
|
|
4437
4523
|
boxShadow: theme.topbar?.shadow || "none"
|
|
4438
4524
|
},
|
|
4439
|
-
children: /* @__PURE__ */ (0,
|
|
4440
|
-
/* @__PURE__ */ (0,
|
|
4441
|
-
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)(
|
|
4442
4528
|
"button",
|
|
4443
4529
|
{
|
|
4444
4530
|
className: "lg:hidden p-2.5 rounded-xl transition-colors duration-200",
|
|
@@ -4448,12 +4534,12 @@ function ITTopBar({
|
|
|
4448
4534
|
onMouseEnter: (e) => e.currentTarget.style.backgroundColor = theme.topbar?.userMenu?.hoverBackground || "#f1f5f9",
|
|
4449
4535
|
onMouseLeave: (e) => e.currentTarget.style.backgroundColor = "transparent",
|
|
4450
4536
|
onClick: onToggleMobileMenu,
|
|
4451
|
-
children: /* @__PURE__ */ (0,
|
|
4537
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_fa13.FaBars, { className: "w-[1.125rem] h-[1.125rem]" })
|
|
4452
4538
|
}
|
|
4453
4539
|
),
|
|
4454
|
-
/* @__PURE__ */ (0,
|
|
4455
|
-
logo && /* @__PURE__ */ (0,
|
|
4456
|
-
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)(
|
|
4457
4543
|
"span",
|
|
4458
4544
|
{
|
|
4459
4545
|
className: "text-[1.15rem] font-bold tracking-tight",
|
|
@@ -4462,7 +4548,7 @@ function ITTopBar({
|
|
|
4462
4548
|
}
|
|
4463
4549
|
)
|
|
4464
4550
|
] }),
|
|
4465
|
-
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)(
|
|
4466
4552
|
"button",
|
|
4467
4553
|
{
|
|
4468
4554
|
onClick: () => onNavItemClick?.(item.id),
|
|
@@ -4476,16 +4562,16 @@ function ITTopBar({
|
|
|
4476
4562
|
e.currentTarget.style.color = theme.topbar?.textColor || "#475569";
|
|
4477
4563
|
e.currentTarget.style.backgroundColor = "transparent";
|
|
4478
4564
|
},
|
|
4479
|
-
children: /* @__PURE__ */ (0,
|
|
4480
|
-
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 }),
|
|
4481
4567
|
item.label
|
|
4482
4568
|
] })
|
|
4483
4569
|
},
|
|
4484
4570
|
item.id
|
|
4485
4571
|
)) })
|
|
4486
4572
|
] }),
|
|
4487
|
-
userMenu && /* @__PURE__ */ (0,
|
|
4488
|
-
/* @__PURE__ */ (0,
|
|
4573
|
+
userMenu && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "relative", children: [
|
|
4574
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
4489
4575
|
"button",
|
|
4490
4576
|
{
|
|
4491
4577
|
type: "button",
|
|
@@ -4501,19 +4587,19 @@ function ITTopBar({
|
|
|
4501
4587
|
},
|
|
4502
4588
|
onClick: () => setIsUserMenuOpen(!isUserMenuOpen),
|
|
4503
4589
|
children: [
|
|
4504
|
-
/* @__PURE__ */ (0,
|
|
4505
|
-
userMenu.userImage ? /* @__PURE__ */ (0,
|
|
4590
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "relative", children: [
|
|
4591
|
+
userMenu.userImage ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
4506
4592
|
"img",
|
|
4507
4593
|
{
|
|
4508
4594
|
className: "w-9 h-9 rounded-full object-cover ring-2 ring-white shadow-sm",
|
|
4509
4595
|
src: userMenu.userImage,
|
|
4510
4596
|
alt: "Current user"
|
|
4511
4597
|
}
|
|
4512
|
-
) : /* @__PURE__ */ (0,
|
|
4513
|
-
/* @__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" })
|
|
4514
4600
|
] }),
|
|
4515
|
-
/* @__PURE__ */ (0,
|
|
4516
|
-
/* @__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)(
|
|
4517
4603
|
"span",
|
|
4518
4604
|
{
|
|
4519
4605
|
className: "font-semibold text-[0.85rem] leading-tight",
|
|
@@ -4521,7 +4607,7 @@ function ITTopBar({
|
|
|
4521
4607
|
children: userMenu.userName
|
|
4522
4608
|
}
|
|
4523
4609
|
),
|
|
4524
|
-
/* @__PURE__ */ (0,
|
|
4610
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
4525
4611
|
"span",
|
|
4526
4612
|
{
|
|
4527
4613
|
className: "text-[0.7rem] font-medium",
|
|
@@ -4533,7 +4619,7 @@ function ITTopBar({
|
|
|
4533
4619
|
]
|
|
4534
4620
|
}
|
|
4535
4621
|
),
|
|
4536
|
-
/* @__PURE__ */ (0,
|
|
4622
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
4537
4623
|
"div",
|
|
4538
4624
|
{
|
|
4539
4625
|
ref: userMenuRef,
|
|
@@ -4546,15 +4632,15 @@ function ITTopBar({
|
|
|
4546
4632
|
border: `1px solid ${theme.topbar?.userMenu?.dropdown?.borderColor || "#f1f5f9"}`
|
|
4547
4633
|
},
|
|
4548
4634
|
children: [
|
|
4549
|
-
/* @__PURE__ */ (0,
|
|
4550
|
-
/* @__PURE__ */ (0,
|
|
4551
|
-
/* @__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 })
|
|
4552
4638
|
] }),
|
|
4553
|
-
/* @__PURE__ */ (0,
|
|
4639
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("ul", { className: "py-2", children: userMenu.menuItems.map((m, i) => {
|
|
4554
4640
|
const isDestructive = m.label.toLowerCase().includes("salir") || m.label.toLowerCase().includes("cerrar") || m.label.toLowerCase().includes("logout");
|
|
4555
|
-
return /* @__PURE__ */ (0,
|
|
4556
|
-
i === userMenu.menuItems.length - 1 && isDestructive && i > 0 && /* @__PURE__ */ (0,
|
|
4557
|
-
/* @__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)(
|
|
4558
4644
|
"button",
|
|
4559
4645
|
{
|
|
4560
4646
|
onClick: (e) => {
|
|
@@ -4584,22 +4670,24 @@ function ITTopBar({
|
|
|
4584
4670
|
}
|
|
4585
4671
|
|
|
4586
4672
|
// src/components/sidebar/sidebar.tsx
|
|
4587
|
-
var
|
|
4673
|
+
var import_react25 = require("react");
|
|
4588
4674
|
var import_fa14 = require("react-icons/fa");
|
|
4589
|
-
var
|
|
4675
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
4590
4676
|
function ITSidebar({
|
|
4591
4677
|
navigationItems = [],
|
|
4592
4678
|
isCollapsed = false,
|
|
4593
4679
|
onToggleCollapse,
|
|
4594
4680
|
className = "",
|
|
4595
|
-
visibleOnMobile = false
|
|
4681
|
+
visibleOnMobile = false,
|
|
4682
|
+
onItemClick,
|
|
4683
|
+
onSubItemClick
|
|
4596
4684
|
}) {
|
|
4597
|
-
const [expandedItems, setExpandedItems] = (0,
|
|
4598
|
-
const [isHovering, setIsHovering] = (0,
|
|
4599
|
-
const sidebarRef = (0,
|
|
4600
|
-
const hoverTimeoutRef = (0,
|
|
4601
|
-
const leaveTimeoutRef = (0,
|
|
4602
|
-
(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)(() => {
|
|
4603
4691
|
const handleMouseEnter = () => {
|
|
4604
4692
|
if (hoverTimeoutRef.current) clearTimeout(hoverTimeoutRef.current);
|
|
4605
4693
|
if (leaveTimeoutRef.current) clearTimeout(leaveTimeoutRef.current);
|
|
@@ -4633,13 +4721,14 @@ function ITSidebar({
|
|
|
4633
4721
|
const handleItemClick = (item) => {
|
|
4634
4722
|
if (item.subitems && item.subitems.length > 0) {
|
|
4635
4723
|
toggleExpanded(item.id);
|
|
4636
|
-
} else
|
|
4637
|
-
item.action();
|
|
4724
|
+
} else {
|
|
4725
|
+
if (item.action) item.action();
|
|
4726
|
+
if (onItemClick) onItemClick(item);
|
|
4638
4727
|
}
|
|
4639
4728
|
};
|
|
4640
4729
|
const isSidebarCollapsed = visibleOnMobile ? false : !isHovering && isCollapsed;
|
|
4641
4730
|
const sidebarWidth = isSidebarCollapsed ? "w-[88px]" : "w-[280px]";
|
|
4642
|
-
return /* @__PURE__ */ (0,
|
|
4731
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
4643
4732
|
"aside",
|
|
4644
4733
|
{
|
|
4645
4734
|
ref: sidebarRef,
|
|
@@ -4658,8 +4747,8 @@ function ITSidebar({
|
|
|
4658
4747
|
WebkitBackdropFilter: "blur(12px)",
|
|
4659
4748
|
backdropFilter: "blur(12px)"
|
|
4660
4749
|
},
|
|
4661
|
-
children: /* @__PURE__ */ (0,
|
|
4662
|
-
/* @__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)(
|
|
4663
4752
|
"div",
|
|
4664
4753
|
{
|
|
4665
4754
|
className: `flex items-center cursor-pointer
|
|
@@ -4680,15 +4769,15 @@ function ITSidebar({
|
|
|
4680
4769
|
},
|
|
4681
4770
|
onClick: () => handleItemClick(item),
|
|
4682
4771
|
children: [
|
|
4683
|
-
item.isActive && !isSidebarCollapsed && /* @__PURE__ */ (0,
|
|
4772
|
+
item.isActive && !isSidebarCollapsed && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
4684
4773
|
"div",
|
|
4685
4774
|
{
|
|
4686
4775
|
className: "absolute left-0 top-1/4 bottom-1/4 w-[3px] rounded-r-full transition-all",
|
|
4687
4776
|
style: { backgroundColor: theme.sidebar?.active?.iconColor || "#10b981", boxShadow: `0 0 10px ${theme.sidebar?.active?.iconColor || "#10b981"}` }
|
|
4688
4777
|
}
|
|
4689
4778
|
),
|
|
4690
|
-
/* @__PURE__ */ (0,
|
|
4691
|
-
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)(
|
|
4692
4781
|
"div",
|
|
4693
4782
|
{
|
|
4694
4783
|
className: `transition-all duration-300 flex-shrink-0 flex items-center justify-center`,
|
|
@@ -4701,7 +4790,7 @@ function ITSidebar({
|
|
|
4701
4790
|
children: item.icon
|
|
4702
4791
|
}
|
|
4703
4792
|
),
|
|
4704
|
-
!isSidebarCollapsed && /* @__PURE__ */ (0,
|
|
4793
|
+
!isSidebarCollapsed && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
4705
4794
|
"span",
|
|
4706
4795
|
{
|
|
4707
4796
|
className: `transition-all duration-300 truncate tracking-wide`,
|
|
@@ -4714,15 +4803,15 @@ function ITSidebar({
|
|
|
4714
4803
|
}
|
|
4715
4804
|
)
|
|
4716
4805
|
] }),
|
|
4717
|
-
!isSidebarCollapsed && item.subitems && item.subitems.length > 0 && /* @__PURE__ */ (0,
|
|
4806
|
+
!isSidebarCollapsed && item.subitems && item.subitems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
4718
4807
|
"div",
|
|
4719
4808
|
{
|
|
4720
4809
|
className: `flex-shrink-0 transition-transform duration-300 ease-[cubic-bezier(0.2,0,0,1)] ${expandedItems.has(item.id) ? "rotate-180" : ""}`,
|
|
4721
4810
|
style: { color: item.isActive ? theme.sidebar?.active?.color || "#0f172a" : theme.sidebar?.icon?.color || "#64748b", opacity: 0.7 },
|
|
4722
|
-
children: /* @__PURE__ */ (0,
|
|
4811
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_fa14.FaChevronDown, { className: "w-3 h-3" })
|
|
4723
4812
|
}
|
|
4724
4813
|
),
|
|
4725
|
-
item.badge && /* @__PURE__ */ (0,
|
|
4814
|
+
item.badge && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
4726
4815
|
"span",
|
|
4727
4816
|
{
|
|
4728
4817
|
className: `
|
|
@@ -4740,7 +4829,7 @@ function ITSidebar({
|
|
|
4740
4829
|
]
|
|
4741
4830
|
}
|
|
4742
4831
|
),
|
|
4743
|
-
isSidebarCollapsed && /* @__PURE__ */ (0,
|
|
4832
|
+
isSidebarCollapsed && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
4744
4833
|
"div",
|
|
4745
4834
|
{
|
|
4746
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)]",
|
|
@@ -4751,30 +4840,33 @@ function ITSidebar({
|
|
|
4751
4840
|
backdropFilter: "blur(16px)"
|
|
4752
4841
|
},
|
|
4753
4842
|
children: [
|
|
4754
|
-
/* @__PURE__ */ (0,
|
|
4755
|
-
item.icon && /* @__PURE__ */ (0,
|
|
4756
|
-
/* @__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 })
|
|
4757
4846
|
] }),
|
|
4758
|
-
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)(
|
|
4759
4848
|
"div",
|
|
4760
4849
|
{
|
|
4761
4850
|
className: `px-5 py-2.5 text-sm flex items-center gap-3 transition-colors`,
|
|
4762
4851
|
children: [
|
|
4763
|
-
/* @__PURE__ */ (0,
|
|
4764
|
-
/* @__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 })
|
|
4765
4854
|
]
|
|
4766
4855
|
},
|
|
4767
4856
|
subitem.id
|
|
4768
|
-
)) }) : /* @__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" })
|
|
4769
4858
|
]
|
|
4770
4859
|
}
|
|
4771
4860
|
),
|
|
4772
|
-
!isSidebarCollapsed && item.subitems && item.subitems.length > 0 && /* @__PURE__ */ (0,
|
|
4773
|
-
subitem.isActive && /* @__PURE__ */ (0,
|
|
4774
|
-
/* @__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)(
|
|
4775
4864
|
"button",
|
|
4776
4865
|
{
|
|
4777
|
-
onClick:
|
|
4866
|
+
onClick: () => {
|
|
4867
|
+
if (subitem.action) subitem.action();
|
|
4868
|
+
if (onSubItemClick) onSubItemClick(subitem);
|
|
4869
|
+
},
|
|
4778
4870
|
className: `block w-full text-left px-4 py-2 rounded-xl transition-all duration-300`,
|
|
4779
4871
|
style: {
|
|
4780
4872
|
color: subitem.isActive ? theme.sidebar?.active?.color || "#0f172a" : theme.sidebar?.label?.color || "#475569",
|
|
@@ -4805,7 +4897,7 @@ function ITSidebar({
|
|
|
4805
4897
|
}
|
|
4806
4898
|
|
|
4807
4899
|
// src/components/layout/layout.tsx
|
|
4808
|
-
var
|
|
4900
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
4809
4901
|
function ITLayout({
|
|
4810
4902
|
topBar,
|
|
4811
4903
|
sidebar,
|
|
@@ -4813,10 +4905,10 @@ function ITLayout({
|
|
|
4813
4905
|
className = "",
|
|
4814
4906
|
contentClassName = ""
|
|
4815
4907
|
}) {
|
|
4816
|
-
const [desktopCollapsed, setDesktopCollapsed] = (0,
|
|
4817
|
-
const [mobileSidebarOpen, setMobileSidebarOpen] = (0,
|
|
4818
|
-
return /* @__PURE__ */ (0,
|
|
4819
|
-
/* @__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)(
|
|
4820
4912
|
ITTopBar,
|
|
4821
4913
|
{
|
|
4822
4914
|
...topBar,
|
|
@@ -4824,10 +4916,10 @@ function ITLayout({
|
|
|
4824
4916
|
onToggleMobileMenu: () => setMobileSidebarOpen((v) => !v)
|
|
4825
4917
|
}
|
|
4826
4918
|
),
|
|
4827
|
-
/* @__PURE__ */ (0,
|
|
4828
|
-
/* @__PURE__ */ (0,
|
|
4829
|
-
/* @__PURE__ */ (0,
|
|
4830
|
-
/* @__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)(
|
|
4831
4923
|
ITSidebar,
|
|
4832
4924
|
{
|
|
4833
4925
|
...sidebar,
|
|
@@ -4838,31 +4930,33 @@ function ITLayout({
|
|
|
4838
4930
|
}
|
|
4839
4931
|
) })
|
|
4840
4932
|
] }),
|
|
4841
|
-
mobileSidebarOpen && /* @__PURE__ */ (0,
|
|
4933
|
+
mobileSidebarOpen && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
4842
4934
|
"div",
|
|
4843
4935
|
{
|
|
4844
4936
|
className: "lg:hidden fixed inset-0 z-50 transition-opacity duration-300 backdrop-blur-sm bg-black/40",
|
|
4845
4937
|
onClick: () => setMobileSidebarOpen(false),
|
|
4846
|
-
children: /* @__PURE__ */ (0,
|
|
4938
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
4847
4939
|
"div",
|
|
4848
4940
|
{
|
|
4849
|
-
className: "h-full w-
|
|
4941
|
+
className: "h-full w-fit flex transform transition-transform duration-300 ease-[cubic-bezier(0.2,0,0,1)]",
|
|
4850
4942
|
onClick: (e) => e.stopPropagation(),
|
|
4851
|
-
children: /* @__PURE__ */ (0,
|
|
4943
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
4852
4944
|
ITSidebar,
|
|
4853
4945
|
{
|
|
4854
4946
|
...sidebar,
|
|
4855
4947
|
isCollapsed: false,
|
|
4856
4948
|
visibleOnMobile: true,
|
|
4857
|
-
className: "h-full shadow-2xl",
|
|
4858
|
-
onToggleCollapse: () => setMobileSidebarOpen(false)
|
|
4949
|
+
className: "h-full shadow-2xl relative z-[60]",
|
|
4950
|
+
onToggleCollapse: () => setMobileSidebarOpen(false),
|
|
4951
|
+
onItemClick: () => setMobileSidebarOpen(false),
|
|
4952
|
+
onSubItemClick: () => setMobileSidebarOpen(false)
|
|
4859
4953
|
}
|
|
4860
4954
|
)
|
|
4861
4955
|
}
|
|
4862
4956
|
)
|
|
4863
4957
|
}
|
|
4864
4958
|
),
|
|
4865
|
-
/* @__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)(
|
|
4866
4960
|
"div",
|
|
4867
4961
|
{
|
|
4868
4962
|
className: `mx-auto w-full h-full ${contentClassName}`,
|
|
@@ -4883,7 +4977,7 @@ var sizeClasses = {
|
|
|
4883
4977
|
};
|
|
4884
4978
|
|
|
4885
4979
|
// src/components/loader/loader.tsx
|
|
4886
|
-
var
|
|
4980
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
4887
4981
|
function ITLoader({
|
|
4888
4982
|
size = "md",
|
|
4889
4983
|
variant = "spinner",
|
|
@@ -4898,22 +4992,22 @@ function ITLoader({
|
|
|
4898
4992
|
const bgStyle = isCssValue ? { backgroundColor: resolvedColor } : {};
|
|
4899
4993
|
const colorClass = !isCssValue ? color : "";
|
|
4900
4994
|
if (variant === "spinner") {
|
|
4901
|
-
return /* @__PURE__ */ (0,
|
|
4995
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
4902
4996
|
"div",
|
|
4903
4997
|
{
|
|
4904
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}`,
|
|
4905
4999
|
role: "status",
|
|
4906
5000
|
style,
|
|
4907
|
-
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..." })
|
|
4908
5002
|
}
|
|
4909
5003
|
);
|
|
4910
5004
|
}
|
|
4911
5005
|
if (variant === "dots") {
|
|
4912
|
-
return /* @__PURE__ */ (0,
|
|
5006
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
4913
5007
|
"div",
|
|
4914
5008
|
{
|
|
4915
5009
|
className: `flex items-center justify-center space-x-2 ${className}`,
|
|
4916
|
-
children: [...Array(3)].map((_, i) => /* @__PURE__ */ (0,
|
|
5010
|
+
children: [...Array(3)].map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
4917
5011
|
"div",
|
|
4918
5012
|
{
|
|
4919
5013
|
className: `${sizeClasses[size.replace(/l|g/, "")]} animate-bounce rounded-full ${colorClass}`,
|
|
@@ -4928,11 +5022,11 @@ function ITLoader({
|
|
|
4928
5022
|
);
|
|
4929
5023
|
}
|
|
4930
5024
|
if (variant === "bar") {
|
|
4931
|
-
return /* @__PURE__ */ (0,
|
|
5025
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
4932
5026
|
"div",
|
|
4933
5027
|
{
|
|
4934
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}`,
|
|
4935
|
-
children: /* @__PURE__ */ (0,
|
|
5029
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
4936
5030
|
"div",
|
|
4937
5031
|
{
|
|
4938
5032
|
className: `h-full animate-progress ${colorClass}`,
|
|
@@ -4948,7 +5042,7 @@ function ITLoader({
|
|
|
4948
5042
|
);
|
|
4949
5043
|
}
|
|
4950
5044
|
if (variant === "pulse") {
|
|
4951
|
-
return /* @__PURE__ */ (0,
|
|
5045
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
4952
5046
|
"div",
|
|
4953
5047
|
{
|
|
4954
5048
|
className: `rounded-full ${sizeClasses[size]} animate-pulse ${colorClass} ${className}`,
|
|
@@ -4960,10 +5054,10 @@ function ITLoader({
|
|
|
4960
5054
|
}
|
|
4961
5055
|
|
|
4962
5056
|
// src/components/stepper/stepper.tsx
|
|
4963
|
-
var
|
|
4964
|
-
var
|
|
5057
|
+
var import_clsx19 = __toESM(require("clsx"), 1);
|
|
5058
|
+
var import_react27 = require("react");
|
|
4965
5059
|
var import_fa15 = require("react-icons/fa");
|
|
4966
|
-
var
|
|
5060
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
4967
5061
|
function ITStepper({
|
|
4968
5062
|
steps,
|
|
4969
5063
|
currentStep,
|
|
@@ -4978,15 +5072,15 @@ function ITStepper({
|
|
|
4978
5072
|
maxContentHeight = "400px",
|
|
4979
5073
|
color = "primary"
|
|
4980
5074
|
}) {
|
|
4981
|
-
const [direction, setDirection] = (0,
|
|
4982
|
-
const contentRef = (0,
|
|
4983
|
-
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);
|
|
4984
5078
|
const isThemeColor = color in theme.colors;
|
|
4985
5079
|
const resolvedColor = isThemeColor ? theme.colors[color][500] : color;
|
|
4986
|
-
(0,
|
|
5080
|
+
(0, import_react27.useEffect)(() => {
|
|
4987
5081
|
onStepChange?.(currentStep);
|
|
4988
5082
|
}, [currentStep, onStepChange]);
|
|
4989
|
-
(0,
|
|
5083
|
+
(0, import_react27.useEffect)(() => {
|
|
4990
5084
|
const pct = currentStep / Math.max(1, steps.length - 1) * 100;
|
|
4991
5085
|
if (progressRef.current) {
|
|
4992
5086
|
progressRef.current.style.width = `${pct}%`;
|
|
@@ -5030,23 +5124,23 @@ function ITStepper({
|
|
|
5030
5124
|
const renderStepContent = (index, isCompleted, isActive) => {
|
|
5031
5125
|
const step = steps[index];
|
|
5032
5126
|
if (isCompleted) {
|
|
5033
|
-
return /* @__PURE__ */ (0,
|
|
5127
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_fa15.FaCheck, { className: "w-4 h-4" });
|
|
5034
5128
|
}
|
|
5035
5129
|
if (step.icon && useIcons) {
|
|
5036
|
-
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 });
|
|
5037
5131
|
}
|
|
5038
|
-
return /* @__PURE__ */ (0,
|
|
5132
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "text-sm font-semibold", children: index + 1 });
|
|
5039
5133
|
};
|
|
5040
|
-
return /* @__PURE__ */ (0,
|
|
5041
|
-
/* @__PURE__ */ (0,
|
|
5042
|
-
/* @__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)(
|
|
5043
5137
|
"div",
|
|
5044
5138
|
{
|
|
5045
5139
|
className: "absolute left-6 right-6 top-5 h-1 bg-gray-200 rounded-full z-0",
|
|
5046
5140
|
"aria-hidden": true
|
|
5047
5141
|
}
|
|
5048
5142
|
),
|
|
5049
|
-
/* @__PURE__ */ (0,
|
|
5143
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5050
5144
|
"div",
|
|
5051
5145
|
{
|
|
5052
5146
|
ref: progressRef,
|
|
@@ -5054,11 +5148,11 @@ function ITStepper({
|
|
|
5054
5148
|
"aria-hidden": true
|
|
5055
5149
|
}
|
|
5056
5150
|
),
|
|
5057
|
-
/* @__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) => {
|
|
5058
5152
|
const isActive = idx === currentStep;
|
|
5059
5153
|
const isCompleted = idx < currentStep;
|
|
5060
5154
|
const hasIcon = step.icon && useIcons;
|
|
5061
|
-
return /* @__PURE__ */ (0,
|
|
5155
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5062
5156
|
"button",
|
|
5063
5157
|
{
|
|
5064
5158
|
type: "button",
|
|
@@ -5068,11 +5162,11 @@ function ITStepper({
|
|
|
5068
5162
|
"aria-label": `Paso ${idx + 1} ${step.label}`,
|
|
5069
5163
|
className: "flex-1 group",
|
|
5070
5164
|
title: step.label,
|
|
5071
|
-
children: /* @__PURE__ */ (0,
|
|
5072
|
-
/* @__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)(
|
|
5073
5167
|
"div",
|
|
5074
5168
|
{
|
|
5075
|
-
className: (0,
|
|
5169
|
+
className: (0, import_clsx19.default)(
|
|
5076
5170
|
"flex items-center justify-center w-11 h-11 rounded-full border-2 transition-all duration-300 transform",
|
|
5077
5171
|
hasIcon && "p-2",
|
|
5078
5172
|
isCompleted && "bg-slate-400 border-slate-400 text-white scale-100 shadow",
|
|
@@ -5083,10 +5177,10 @@ function ITStepper({
|
|
|
5083
5177
|
children: renderStepContent(idx, isCompleted, isActive)
|
|
5084
5178
|
}
|
|
5085
5179
|
),
|
|
5086
|
-
/* @__PURE__ */ (0,
|
|
5180
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5087
5181
|
"span",
|
|
5088
5182
|
{
|
|
5089
|
-
className: (0,
|
|
5183
|
+
className: (0, import_clsx19.default)(
|
|
5090
5184
|
"mt-2 text-xs sm:text-sm font-medium transition-colors text-center",
|
|
5091
5185
|
isCompleted ? "text-slate-400" : !isActive && "text-gray-400"
|
|
5092
5186
|
),
|
|
@@ -5100,14 +5194,14 @@ function ITStepper({
|
|
|
5100
5194
|
);
|
|
5101
5195
|
}) })
|
|
5102
5196
|
] }),
|
|
5103
|
-
/* @__PURE__ */ (0,
|
|
5197
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5104
5198
|
"div",
|
|
5105
5199
|
{
|
|
5106
5200
|
ref: contentRef,
|
|
5107
5201
|
tabIndex: -1,
|
|
5108
5202
|
role: "region",
|
|
5109
5203
|
"aria-labelledby": `step-${currentStep}`,
|
|
5110
|
-
className: (0,
|
|
5204
|
+
className: (0, import_clsx19.default)(
|
|
5111
5205
|
stepClassName,
|
|
5112
5206
|
"bg-white border border-gray-100 rounded-2xl shadow-lg min-h-[280px] transition-transform duration-400 no-scrollbar p-6",
|
|
5113
5207
|
scrollableContent && "overflow-y-auto hide-scrollbar"
|
|
@@ -5116,37 +5210,37 @@ function ITStepper({
|
|
|
5116
5210
|
children: steps[currentStep].content
|
|
5117
5211
|
}
|
|
5118
5212
|
),
|
|
5119
|
-
/* @__PURE__ */ (0,
|
|
5120
|
-
/* @__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)(
|
|
5121
5215
|
ITButton,
|
|
5122
5216
|
{
|
|
5123
5217
|
variant: "outlined",
|
|
5124
5218
|
color: "secondary",
|
|
5125
5219
|
disabled: currentStep === 0,
|
|
5126
5220
|
onClick: prevStep,
|
|
5127
|
-
children: /* @__PURE__ */ (0,
|
|
5128
|
-
/* @__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, {}),
|
|
5129
5223
|
"Atr\xE1s"
|
|
5130
5224
|
] })
|
|
5131
5225
|
}
|
|
5132
5226
|
),
|
|
5133
|
-
/* @__PURE__ */ (0,
|
|
5134
|
-
/* @__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: [
|
|
5135
5229
|
"Paso ",
|
|
5136
5230
|
currentStep + 1,
|
|
5137
5231
|
" de ",
|
|
5138
5232
|
steps.length
|
|
5139
5233
|
] }),
|
|
5140
|
-
/* @__PURE__ */ (0,
|
|
5234
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5141
5235
|
ITButton,
|
|
5142
5236
|
{
|
|
5143
5237
|
variant: "solid",
|
|
5144
5238
|
color,
|
|
5145
5239
|
disabled: disableNext,
|
|
5146
5240
|
onClick: nextStep,
|
|
5147
|
-
children: /* @__PURE__ */ (0,
|
|
5241
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
5148
5242
|
currentStep === steps.length - 1 ? "Finalizar" : "Siguiente",
|
|
5149
|
-
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, {})
|
|
5150
5244
|
] })
|
|
5151
5245
|
}
|
|
5152
5246
|
)
|
|
@@ -5156,10 +5250,10 @@ function ITStepper({
|
|
|
5156
5250
|
}
|
|
5157
5251
|
|
|
5158
5252
|
// src/components/theme-provider/themeProvider.tsx
|
|
5159
|
-
var
|
|
5160
|
-
var
|
|
5253
|
+
var import_react28 = require("react");
|
|
5254
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
5161
5255
|
function ITThemeProvider({ theme: theme2, children }) {
|
|
5162
|
-
const activeThemeContext = (0,
|
|
5256
|
+
const activeThemeContext = (0, import_react28.useMemo)(() => {
|
|
5163
5257
|
const baseColors = {
|
|
5164
5258
|
primary: palette.blue,
|
|
5165
5259
|
secondary: palette.gray,
|
|
@@ -5180,7 +5274,7 @@ function ITThemeProvider({ theme: theme2, children }) {
|
|
|
5180
5274
|
}
|
|
5181
5275
|
};
|
|
5182
5276
|
}, [theme2]);
|
|
5183
|
-
const cssVariables = (0,
|
|
5277
|
+
const cssVariables = (0, import_react28.useMemo)(() => {
|
|
5184
5278
|
let variablesString = "";
|
|
5185
5279
|
Object.entries(activeThemeContext.colors).forEach(([colorName, scale]) => {
|
|
5186
5280
|
Object.entries(scale).forEach(([shade, hexValue]) => {
|
|
@@ -5299,8 +5393,8 @@ function ITThemeProvider({ theme: theme2, children }) {
|
|
|
5299
5393
|
return `:root {
|
|
5300
5394
|
${variablesString}}`;
|
|
5301
5395
|
}, [activeThemeContext]);
|
|
5302
|
-
return /* @__PURE__ */ (0,
|
|
5303
|
-
/* @__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 }),
|
|
5304
5398
|
children
|
|
5305
5399
|
] });
|
|
5306
5400
|
}
|
|
@@ -5337,10 +5431,12 @@ var createValidationSchema = (fields) => Yup.object().shape(
|
|
|
5337
5431
|
ITSlideToggle,
|
|
5338
5432
|
ITStepper,
|
|
5339
5433
|
ITTable,
|
|
5434
|
+
ITTabs,
|
|
5340
5435
|
ITText,
|
|
5341
5436
|
ITThemeProvider,
|
|
5342
5437
|
ITTimePicker,
|
|
5343
5438
|
ITToast,
|
|
5439
|
+
ITTripleFilter,
|
|
5344
5440
|
createValidationSchema
|
|
5345
5441
|
});
|
|
5346
5442
|
//# sourceMappingURL=index.cjs.map
|