@axzydev/axzy_ui_system 1.3.5 → 1.3.6
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 +554 -505
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +107 -3
- package/dist/index.d.ts +107 -3
- package/dist/index.js +425 -377
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/App.tsx +6 -0
- package/src/components/atoms/input/input.props.ts +5 -0
- package/src/components/atoms/input/input.tsx +24 -17
- package/src/components/atoms/input-number/input-number.doc.mdx +74 -0
- package/src/components/atoms/input-number/input-number.props.ts +66 -0
- package/src/components/atoms/input-number/input-number.stories.tsx +111 -0
- package/src/components/atoms/input-number/input-number.tsx +86 -0
- package/src/components/organisms/sidebar/sidebar.doc.mdx +12 -12
- package/src/index.ts +4 -2
- package/src/sandbox/navigation.ts +2 -0
- package/src/showcases/FormShowcases.tsx +287 -1
- package/src/showcases/StructureShowcases.tsx +2 -2
package/dist/index.cjs
CHANGED
|
@@ -57,6 +57,7 @@ __export(index_exports, {
|
|
|
57
57
|
ITGrid: () => ITGrid,
|
|
58
58
|
ITImage: () => image_default,
|
|
59
59
|
ITInput: () => ITInput,
|
|
60
|
+
ITInputNumber: () => ITInputNumber,
|
|
60
61
|
ITLayout: () => ITLayout,
|
|
61
62
|
ITLoader: () => ITLoader,
|
|
62
63
|
ITMaskedInput: () => ITMaskedInput,
|
|
@@ -2644,11 +2645,13 @@ function ITInput({
|
|
|
2644
2645
|
max,
|
|
2645
2646
|
readOnly = false,
|
|
2646
2647
|
focusContent,
|
|
2647
|
-
size = "md"
|
|
2648
|
+
size = "md",
|
|
2649
|
+
decimals
|
|
2648
2650
|
}) {
|
|
2649
2651
|
const isCheckboxOrRadio = type === "checkbox" || type === "radio";
|
|
2650
2652
|
const isNumberType = type === "number";
|
|
2651
2653
|
const isTextArea = type === "textarea";
|
|
2654
|
+
const decimalPlaces = decimals ?? (currencyFormat ? 2 : 0);
|
|
2652
2655
|
const [displayValue, setDisplayValue] = (0, import_react12.useState)("");
|
|
2653
2656
|
const [isFocused, setIsFocused] = (0, import_react12.useState)(false);
|
|
2654
2657
|
const [hasSelectedAll, setHasSelectedAll] = (0, import_react12.useState)(false);
|
|
@@ -2701,13 +2704,16 @@ function ITInput({
|
|
|
2701
2704
|
}
|
|
2702
2705
|
if (currencyFormat) {
|
|
2703
2706
|
return num.toLocaleString("es-MX", {
|
|
2704
|
-
minimumFractionDigits:
|
|
2705
|
-
maximumFractionDigits:
|
|
2707
|
+
minimumFractionDigits: decimalPlaces,
|
|
2708
|
+
maximumFractionDigits: decimalPlaces
|
|
2706
2709
|
});
|
|
2707
2710
|
}
|
|
2711
|
+
if (decimalPlaces > 0) {
|
|
2712
|
+
return num.toFixed(decimalPlaces);
|
|
2713
|
+
}
|
|
2708
2714
|
return num.toString();
|
|
2709
2715
|
},
|
|
2710
|
-
[currencyFormat]
|
|
2716
|
+
[currencyFormat, decimalPlaces]
|
|
2711
2717
|
);
|
|
2712
2718
|
const unformatValue = (0, import_react12.useCallback)(
|
|
2713
2719
|
(val) => {
|
|
@@ -2753,11 +2759,11 @@ function ITInput({
|
|
|
2753
2759
|
if (allowedKeys.includes(key) || ctrlKey || metaKey) {
|
|
2754
2760
|
return;
|
|
2755
2761
|
}
|
|
2756
|
-
if (
|
|
2762
|
+
if (decimalPlaces === 0 && (key === "." || key === ",")) {
|
|
2757
2763
|
e.preventDefault();
|
|
2758
2764
|
return;
|
|
2759
2765
|
}
|
|
2760
|
-
if (
|
|
2766
|
+
if (decimalPlaces > 0 && (key === "." || key === ",") && currentValue.includes(".")) {
|
|
2761
2767
|
const dotIndex = currentValue.indexOf(".");
|
|
2762
2768
|
const replacingDot = selectionStart !== null && selectionEnd !== null && selectionStart <= dotIndex && dotIndex < selectionEnd;
|
|
2763
2769
|
if (!replacingDot) {
|
|
@@ -2765,7 +2771,7 @@ function ITInput({
|
|
|
2765
2771
|
return;
|
|
2766
2772
|
}
|
|
2767
2773
|
}
|
|
2768
|
-
const allowedCharsRegex =
|
|
2774
|
+
const allowedCharsRegex = decimalPlaces > 0 ? /^[0-9.,]$/ : /^[0-9]$/;
|
|
2769
2775
|
if (key !== "Unidentified" && !allowedCharsRegex.test(key)) {
|
|
2770
2776
|
e.preventDefault();
|
|
2771
2777
|
return;
|
|
@@ -2783,7 +2789,7 @@ function ITInput({
|
|
|
2783
2789
|
if (readOnly) return;
|
|
2784
2790
|
let rawValue = e.target.value;
|
|
2785
2791
|
let cleanedValue = "";
|
|
2786
|
-
if (
|
|
2792
|
+
if (decimalPlaces > 0) {
|
|
2787
2793
|
if (rawValue.includes(",") && rawValue.includes(".")) {
|
|
2788
2794
|
rawValue = rawValue.replace(/,/g, "");
|
|
2789
2795
|
} else if (rawValue.includes(",")) {
|
|
@@ -2792,8 +2798,8 @@ function ITInput({
|
|
|
2792
2798
|
cleanedValue = rawValue.replace(/[^0-9.]/g, "");
|
|
2793
2799
|
const parts = cleanedValue.split(".");
|
|
2794
2800
|
if (parts.length > 1) {
|
|
2795
|
-
const
|
|
2796
|
-
cleanedValue = parts[0] + "." +
|
|
2801
|
+
const decimalPart = parts.slice(1).join("").substring(0, decimalPlaces);
|
|
2802
|
+
cleanedValue = parts[0] + "." + decimalPart;
|
|
2797
2803
|
}
|
|
2798
2804
|
} else {
|
|
2799
2805
|
cleanedValue = rawValue.replace(/[^0-9]/g, "");
|
|
@@ -2804,7 +2810,7 @@ function ITInput({
|
|
|
2804
2810
|
if (!formatNumber) {
|
|
2805
2811
|
valueToSend = cleanedValue;
|
|
2806
2812
|
} else if (cleanedValue !== "") {
|
|
2807
|
-
if (
|
|
2813
|
+
if (decimalPlaces > 0) {
|
|
2808
2814
|
const numericValue = parseFloat(cleanedValue);
|
|
2809
2815
|
if (!isNaN(numericValue)) {
|
|
2810
2816
|
valueToSend = cleanedValue;
|
|
@@ -2881,7 +2887,7 @@ function ITInput({
|
|
|
2881
2887
|
let numericValue = void 0;
|
|
2882
2888
|
let valueToSend = void 0;
|
|
2883
2889
|
let cleanedValue = "";
|
|
2884
|
-
if (
|
|
2890
|
+
if (decimalPlaces > 0) {
|
|
2885
2891
|
cleanedValue = currentValue.replace(/[^0-9.]/g, "");
|
|
2886
2892
|
const parts = cleanedValue.split(".");
|
|
2887
2893
|
if (parts.length > 2) {
|
|
@@ -2891,7 +2897,7 @@ function ITInput({
|
|
|
2891
2897
|
} else {
|
|
2892
2898
|
cleanedValue = currentValue.replace(/[^0-9]/g, "");
|
|
2893
2899
|
}
|
|
2894
|
-
const parsed =
|
|
2900
|
+
const parsed = decimalPlaces > 0 ? parseFloat(cleanedValue) : parseInt(cleanedValue, 10);
|
|
2895
2901
|
if (!isNaN(parsed)) {
|
|
2896
2902
|
numericValue = parsed;
|
|
2897
2903
|
if (min !== void 0 && numericValue < min) {
|
|
@@ -2924,7 +2930,7 @@ function ITInput({
|
|
|
2924
2930
|
}
|
|
2925
2931
|
onBlur?.(e);
|
|
2926
2932
|
};
|
|
2927
|
-
const currentLength = isNumberType ? (
|
|
2933
|
+
const currentLength = isNumberType ? (decimalPlaces > 0 ? displayValue.replace(/[.,]/g, "") : displayValue).length : typeof value === "string" ? value.length : String(value ?? "").length;
|
|
2928
2934
|
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: (0, import_clsx15.default)("w-full", containerClassName), children: [
|
|
2929
2935
|
isCheckboxOrRadio ? (
|
|
2930
2936
|
// CHECKBOX / RADIO LAYOUT (Row)
|
|
@@ -3021,7 +3027,7 @@ function ITInput({
|
|
|
3021
3027
|
name,
|
|
3022
3028
|
id: name,
|
|
3023
3029
|
type: isNumberType ? "text" : type === "password" ? showPassword ? "text" : "password" : type,
|
|
3024
|
-
inputMode: isNumberType ?
|
|
3030
|
+
inputMode: isNumberType ? decimalPlaces > 0 ? "decimal" : "numeric" : void 0,
|
|
3025
3031
|
placeholder,
|
|
3026
3032
|
value: isNumberType ? displayValue : String(value ?? ""),
|
|
3027
3033
|
onChange: isNumberType ? handleNumberChange : handleTextChange,
|
|
@@ -3033,7 +3039,7 @@ function ITInput({
|
|
|
3033
3039
|
},
|
|
3034
3040
|
onKeyDown: isNumberType ? handleKeyDown : onKeyDown,
|
|
3035
3041
|
readOnly,
|
|
3036
|
-
maxLength: isNumberType &&
|
|
3042
|
+
maxLength: isNumberType && decimalPlaces === 0 ? maxLength : void 0,
|
|
3037
3043
|
minLength,
|
|
3038
3044
|
min,
|
|
3039
3045
|
max,
|
|
@@ -6285,10 +6291,52 @@ var ITImage = ({
|
|
|
6285
6291
|
};
|
|
6286
6292
|
var image_default = ITImage;
|
|
6287
6293
|
|
|
6294
|
+
// src/components/atoms/input-number/input-number.tsx
|
|
6295
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
6296
|
+
function parseNumber(raw) {
|
|
6297
|
+
if (raw === void 0 || raw === null) return void 0;
|
|
6298
|
+
if (typeof raw === "number") return Number.isFinite(raw) ? raw : void 0;
|
|
6299
|
+
const cleaned = String(raw).replace(/,/g, "").trim();
|
|
6300
|
+
if (cleaned === "" || cleaned === "-" || cleaned === ".") return void 0;
|
|
6301
|
+
const parsed = Number(cleaned);
|
|
6302
|
+
return Number.isFinite(parsed) ? parsed : void 0;
|
|
6303
|
+
}
|
|
6304
|
+
function ITInputNumber({
|
|
6305
|
+
value,
|
|
6306
|
+
onChange,
|
|
6307
|
+
onBlur,
|
|
6308
|
+
decimals = 2,
|
|
6309
|
+
prefix,
|
|
6310
|
+
iconLeft,
|
|
6311
|
+
...rest
|
|
6312
|
+
}) {
|
|
6313
|
+
const resolvedIconLeft = iconLeft ?? (prefix ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ITText, { as: "span", className: "text-secondary-500 text-xs font-semibold", children: prefix }) : void 0);
|
|
6314
|
+
const handleChange = (event) => {
|
|
6315
|
+
onChange(parseNumber(event.target.value), event);
|
|
6316
|
+
};
|
|
6317
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
6318
|
+
ITInput,
|
|
6319
|
+
{
|
|
6320
|
+
...rest,
|
|
6321
|
+
type: "number",
|
|
6322
|
+
currencyFormat: true,
|
|
6323
|
+
formatNumber: true,
|
|
6324
|
+
decimals,
|
|
6325
|
+
iconLeft: resolvedIconLeft,
|
|
6326
|
+
value: value ?? "",
|
|
6327
|
+
onChange: handleChange,
|
|
6328
|
+
onBlur: (event) => {
|
|
6329
|
+
const input = event.target;
|
|
6330
|
+
onBlur?.(parseNumber(input.value), event);
|
|
6331
|
+
}
|
|
6332
|
+
}
|
|
6333
|
+
);
|
|
6334
|
+
}
|
|
6335
|
+
|
|
6288
6336
|
// src/components/organisms/navbar/navbar.tsx
|
|
6289
6337
|
var import_react31 = require("react");
|
|
6290
6338
|
var import_fa20 = require("react-icons/fa");
|
|
6291
|
-
var
|
|
6339
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
6292
6340
|
function ITNavbar({
|
|
6293
6341
|
logo,
|
|
6294
6342
|
logoText,
|
|
@@ -6326,42 +6374,42 @@ function ITNavbar({
|
|
|
6326
6374
|
};
|
|
6327
6375
|
const shouldUseLegacy = !navigationItems.length && (navItems || sidebarItems);
|
|
6328
6376
|
if (shouldUseLegacy) {
|
|
6329
|
-
return /* @__PURE__ */ (0,
|
|
6330
|
-
/* @__PURE__ */ (0,
|
|
6331
|
-
/* @__PURE__ */ (0,
|
|
6332
|
-
logo && /* @__PURE__ */ (0,
|
|
6333
|
-
logoText && /* @__PURE__ */ (0,
|
|
6377
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex flex-col h-screen", children: [
|
|
6378
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("nav", { className: "bg-white border-b border-secondary-200", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-center justify-between mx-auto p-4", children: [
|
|
6379
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-center space-x-3 rtl:space-x-reverse", children: [
|
|
6380
|
+
logo && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "h-8", children: logo }),
|
|
6381
|
+
logoText && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "span", className: "self-center text-2xl font-semibold whitespace-nowrap text-secondary-900", children: logoText })
|
|
6334
6382
|
] }),
|
|
6335
|
-
/* @__PURE__ */ (0,
|
|
6336
|
-
/* @__PURE__ */ (0,
|
|
6337
|
-
userMenu && /* @__PURE__ */ (0,
|
|
6338
|
-
/* @__PURE__ */ (0,
|
|
6383
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "flex items-center justify-end w-full md:w-auto md:order-2", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-center space-x-4 md:order-2", children: [
|
|
6384
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("ul", { className: "hidden md:flex space-x-4", children: navItems }),
|
|
6385
|
+
userMenu && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "relative", children: [
|
|
6386
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
6339
6387
|
"button",
|
|
6340
6388
|
{
|
|
6341
6389
|
type: "button",
|
|
6342
6390
|
className: "flex text-sm bg-secondary-200 rounded-full md:me-0 focus:ring-4 focus:ring-secondary-300",
|
|
6343
6391
|
onClick: toggleUserMenu,
|
|
6344
|
-
children: userMenu.userImage ? /* @__PURE__ */ (0,
|
|
6392
|
+
children: userMenu.userImage ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
6345
6393
|
"img",
|
|
6346
6394
|
{
|
|
6347
6395
|
className: "w-8 h-8 rounded-full",
|
|
6348
6396
|
src: userMenu.userImage,
|
|
6349
6397
|
alt: "user photo"
|
|
6350
6398
|
}
|
|
6351
|
-
) : /* @__PURE__ */ (0,
|
|
6399
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_fa20.FaUserCircle, { className: "w-8 h-8 text-secondary-500" })
|
|
6352
6400
|
}
|
|
6353
6401
|
),
|
|
6354
|
-
isUserMenuOpen && /* @__PURE__ */ (0,
|
|
6402
|
+
isUserMenuOpen && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
6355
6403
|
"div",
|
|
6356
6404
|
{
|
|
6357
6405
|
ref: userMenuRef,
|
|
6358
6406
|
className: "z-[70] absolute right-0 mt-2 text-base list-none bg-white divide-y divide-secondary-100 rounded-lg shadow-sm",
|
|
6359
6407
|
children: [
|
|
6360
|
-
/* @__PURE__ */ (0,
|
|
6361
|
-
/* @__PURE__ */ (0,
|
|
6362
|
-
/* @__PURE__ */ (0,
|
|
6408
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "px-4 py-3", children: [
|
|
6409
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "span", className: "block text-sm text-secondary-900", children: userMenu.userName }),
|
|
6410
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "span", className: "block text-sm text-secondary-500 truncate", children: userMenu.userEmail })
|
|
6363
6411
|
] }),
|
|
6364
|
-
/* @__PURE__ */ (0,
|
|
6412
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("ul", { className: "py-2", children: userMenu.menuItems.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
6365
6413
|
"button",
|
|
6366
6414
|
{
|
|
6367
6415
|
onClick: () => {
|
|
@@ -6369,7 +6417,7 @@ function ITNavbar({
|
|
|
6369
6417
|
setIsUserMenuOpen(false);
|
|
6370
6418
|
},
|
|
6371
6419
|
className: "block px-4 py-2 text-sm text-secondary-700 hover:bg-secondary-100 w-full text-left",
|
|
6372
|
-
children: /* @__PURE__ */ (0,
|
|
6420
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "span", children: item.label })
|
|
6373
6421
|
}
|
|
6374
6422
|
) }, index)) })
|
|
6375
6423
|
]
|
|
@@ -6378,27 +6426,27 @@ function ITNavbar({
|
|
|
6378
6426
|
] })
|
|
6379
6427
|
] }) })
|
|
6380
6428
|
] }) }),
|
|
6381
|
-
/* @__PURE__ */ (0,
|
|
6382
|
-
(showSidebar || showSidebarOnMobile) && /* @__PURE__ */ (0,
|
|
6383
|
-
/* @__PURE__ */ (0,
|
|
6429
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex-1 flex overflow-hidden relative", children: [
|
|
6430
|
+
(showSidebar || showSidebarOnMobile) && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("aside", { className: "fixed inset-y-0 left-0 w-64 bg-secondary-50 transform transition-transform duration-300 ease-in-out z-[40] shadow-lg md:static md:transform-none md:shadow-none md:border-r md:border-secondary-200", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "h-full overflow-y-auto py-4 px-3", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("ul", { className: "space-y-2 font-medium", children: sidebarItems }) }) }),
|
|
6431
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("main", { className: "flex-1 bg-secondary-100 overflow-y-auto", children })
|
|
6384
6432
|
] })
|
|
6385
6433
|
] });
|
|
6386
6434
|
}
|
|
6387
6435
|
const sidebar = theme.sidebar;
|
|
6388
6436
|
const topbar = theme.topbar;
|
|
6389
|
-
return /* @__PURE__ */ (0,
|
|
6390
|
-
/* @__PURE__ */ (0,
|
|
6437
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex h-screen font-sans", style: { backgroundColor: theme.layout.backgroundColor }, children: [
|
|
6438
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
6391
6439
|
"aside",
|
|
6392
6440
|
{
|
|
6393
6441
|
className: "w-72 shadow-xl flex flex-col transition-all duration-300 ease-in-out",
|
|
6394
6442
|
style: { backgroundColor: sidebar.backgroundColor, borderRight: `1px solid ${sidebar.borderColor}` },
|
|
6395
6443
|
children: [
|
|
6396
|
-
/* @__PURE__ */ (0,
|
|
6397
|
-
logo && /* @__PURE__ */ (0,
|
|
6398
|
-
logoText && /* @__PURE__ */ (0,
|
|
6444
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "p-6 flex items-center gap-3", style: { borderBottom: `1px solid ${sidebar.borderColor}` }, children: [
|
|
6445
|
+
logo && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "h-8 w-auto object-contain transition-transform hover:scale-105", children: logo }),
|
|
6446
|
+
logoText && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "span", className: "text-lg font-bold tracking-wide", style: { color: sidebar.active.color }, children: logoText })
|
|
6399
6447
|
] }),
|
|
6400
|
-
/* @__PURE__ */ (0,
|
|
6401
|
-
/* @__PURE__ */ (0,
|
|
6448
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("nav", { className: "flex-1 px-4 py-6 overflow-y-auto custom-scrollbar", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("ul", { className: "flex flex-col gap-1.5", children: navigationItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("li", { children: [
|
|
6449
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
6402
6450
|
"div",
|
|
6403
6451
|
{
|
|
6404
6452
|
className: `group flex items-center justify-between px-4 py-3 rounded-xl cursor-pointer transition-all duration-200 border-l-4 ${item.isActive ? "shadow-sm" : "hover:shadow-sm"}`,
|
|
@@ -6421,17 +6469,17 @@ function ITNavbar({
|
|
|
6421
6469
|
}
|
|
6422
6470
|
},
|
|
6423
6471
|
children: [
|
|
6424
|
-
/* @__PURE__ */ (0,
|
|
6425
|
-
item.icon && /* @__PURE__ */ (0,
|
|
6472
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
6473
|
+
item.icon && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "text-xl transition-colors", style: {
|
|
6426
6474
|
color: item.isActive ? sidebar.active.iconColor : sidebar.icon.color
|
|
6427
6475
|
}, children: item.icon }),
|
|
6428
|
-
/* @__PURE__ */ (0,
|
|
6476
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "span", className: `font-medium text-sm ${item.isActive ? "font-semibold" : ""}`, children: item.label })
|
|
6429
6477
|
] }),
|
|
6430
|
-
item.subitems && item.subitems.length > 0 && /* @__PURE__ */ (0,
|
|
6478
|
+
item.subitems && item.subitems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "transition-transform", style: { color: sidebar.icon.color }, children: expandedItems.has(item.id) ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_fa20.FaChevronDown, { className: "w-3 h-3" }) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_fa20.FaChevronRight, { className: "w-3 h-3" }) })
|
|
6431
6479
|
]
|
|
6432
6480
|
}
|
|
6433
6481
|
),
|
|
6434
|
-
item.subitems && item.subitems.length > 0 && expandedItems.has(item.id) && /* @__PURE__ */ (0,
|
|
6482
|
+
item.subitems && item.subitems.length > 0 && expandedItems.has(item.id) && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("ul", { className: "mt-1 ml-4 pl-4 space-y-1", style: { borderLeft: `1px solid ${sidebar.borderColor}` }, children: item.subitems.map((subitem) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
6435
6483
|
"button",
|
|
6436
6484
|
{
|
|
6437
6485
|
onClick: subitem.action,
|
|
@@ -6450,12 +6498,12 @@ function ITNavbar({
|
|
|
6450
6498
|
e.currentTarget.style.backgroundColor = "transparent";
|
|
6451
6499
|
}
|
|
6452
6500
|
},
|
|
6453
|
-
children: /* @__PURE__ */ (0,
|
|
6501
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "span", children: subitem.label })
|
|
6454
6502
|
}
|
|
6455
6503
|
) }, subitem.id)) })
|
|
6456
6504
|
] }, item.id)) }) }),
|
|
6457
|
-
userMenu && /* @__PURE__ */ (0,
|
|
6458
|
-
/* @__PURE__ */ (0,
|
|
6505
|
+
userMenu && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "p-4", style: { borderTop: `1px solid ${sidebar.borderColor}` }, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "relative", children: [
|
|
6506
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
6459
6507
|
"button",
|
|
6460
6508
|
{
|
|
6461
6509
|
type: "button",
|
|
@@ -6471,7 +6519,7 @@ function ITNavbar({
|
|
|
6471
6519
|
},
|
|
6472
6520
|
onClick: toggleUserMenu,
|
|
6473
6521
|
children: [
|
|
6474
|
-
userMenu.userImage ? /* @__PURE__ */ (0,
|
|
6522
|
+
userMenu.userImage ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
6475
6523
|
"img",
|
|
6476
6524
|
{
|
|
6477
6525
|
className: "w-10 h-10 rounded-full border-2 transition-colors",
|
|
@@ -6479,34 +6527,34 @@ function ITNavbar({
|
|
|
6479
6527
|
alt: "user photo",
|
|
6480
6528
|
style: { borderColor: sidebar.borderColor }
|
|
6481
6529
|
}
|
|
6482
|
-
) : /* @__PURE__ */ (0,
|
|
6530
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
6483
6531
|
"div",
|
|
6484
6532
|
{
|
|
6485
6533
|
className: "w-10 h-10 rounded-full flex items-center justify-center transition-colors",
|
|
6486
6534
|
style: { backgroundColor: sidebar.hover.backgroundColor, color: sidebar.icon.color },
|
|
6487
|
-
children: /* @__PURE__ */ (0,
|
|
6535
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_fa20.FaUserCircle, { className: "w-6 h-6" })
|
|
6488
6536
|
}
|
|
6489
6537
|
),
|
|
6490
|
-
/* @__PURE__ */ (0,
|
|
6491
|
-
/* @__PURE__ */ (0,
|
|
6492
|
-
/* @__PURE__ */ (0,
|
|
6538
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex-1 text-left overflow-hidden", children: [
|
|
6539
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "div", className: "font-medium text-sm truncate", style: { color: sidebar.active.color }, children: userMenu.userName }),
|
|
6540
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "div", className: "text-xs truncate", style: { color: sidebar.label.color }, children: userMenu.userEmail })
|
|
6493
6541
|
] }),
|
|
6494
|
-
/* @__PURE__ */ (0,
|
|
6542
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_fa20.FaChevronRight, { className: "w-3 h-3", style: { color: sidebar.icon.color } })
|
|
6495
6543
|
]
|
|
6496
6544
|
}
|
|
6497
6545
|
),
|
|
6498
|
-
isUserMenuOpen && /* @__PURE__ */ (0,
|
|
6546
|
+
isUserMenuOpen && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
6499
6547
|
"div",
|
|
6500
6548
|
{
|
|
6501
6549
|
ref: userMenuRef,
|
|
6502
6550
|
className: "absolute bottom-full left-0 mb-3 w-full rounded-xl shadow-2xl overflow-hidden transform transition-all duration-200 origin-bottom",
|
|
6503
6551
|
style: { backgroundColor: topbar.userMenu.dropdown.backgroundColor, border: `1px solid ${topbar.userMenu.dropdown.borderColor}` },
|
|
6504
6552
|
children: [
|
|
6505
|
-
/* @__PURE__ */ (0,
|
|
6506
|
-
/* @__PURE__ */ (0,
|
|
6507
|
-
/* @__PURE__ */ (0,
|
|
6553
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "px-4 py-3", style: { backgroundColor: topbar.userMenu.backgroundColor, borderBottom: `1px solid ${topbar.userMenu.dropdown.borderColor}` }, children: [
|
|
6554
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "span", className: "block text-sm font-semibold", style: { color: topbar.userMenu.textColor }, children: userMenu.userName }),
|
|
6555
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "span", className: "block text-xs truncate", style: { color: topbar.userMenu.subtitleColor }, children: userMenu.userEmail })
|
|
6508
6556
|
] }),
|
|
6509
|
-
/* @__PURE__ */ (0,
|
|
6557
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("ul", { className: "py-1", children: userMenu.menuItems.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
6510
6558
|
"button",
|
|
6511
6559
|
{
|
|
6512
6560
|
onClick: () => {
|
|
@@ -6521,7 +6569,7 @@ function ITNavbar({
|
|
|
6521
6569
|
onMouseLeave: (e) => {
|
|
6522
6570
|
e.currentTarget.style.backgroundColor = "transparent";
|
|
6523
6571
|
},
|
|
6524
|
-
children: /* @__PURE__ */ (0,
|
|
6572
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "span", children: item.label })
|
|
6525
6573
|
}
|
|
6526
6574
|
) }, index)) })
|
|
6527
6575
|
]
|
|
@@ -6531,7 +6579,7 @@ function ITNavbar({
|
|
|
6531
6579
|
]
|
|
6532
6580
|
}
|
|
6533
6581
|
),
|
|
6534
|
-
/* @__PURE__ */ (0,
|
|
6582
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("main", { className: "flex-1 overflow-y-auto relative", style: { backgroundColor: theme.layout.backgroundColor }, children })
|
|
6535
6583
|
] });
|
|
6536
6584
|
}
|
|
6537
6585
|
|
|
@@ -6540,7 +6588,7 @@ var import_clsx33 = __toESM(require("clsx"), 1);
|
|
|
6540
6588
|
|
|
6541
6589
|
// src/components/organisms/page-header/page-header.tsx
|
|
6542
6590
|
var import_fa21 = require("react-icons/fa");
|
|
6543
|
-
var
|
|
6591
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
6544
6592
|
function ITPageHeader({
|
|
6545
6593
|
title,
|
|
6546
6594
|
description,
|
|
@@ -6552,25 +6600,25 @@ function ITPageHeader({
|
|
|
6552
6600
|
className
|
|
6553
6601
|
}) {
|
|
6554
6602
|
const showTopRow = breadcrumbs?.length || backAction;
|
|
6555
|
-
return /* @__PURE__ */ (0,
|
|
6556
|
-
showTopRow && /* @__PURE__ */ (0,
|
|
6557
|
-
/* @__PURE__ */ (0,
|
|
6558
|
-
backAction && /* @__PURE__ */ (0,
|
|
6603
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: `${className} space-y-3`, children: [
|
|
6604
|
+
showTopRow && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-center justify-between gap-4", children: [
|
|
6605
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-center gap-2 min-w-0", children: [
|
|
6606
|
+
backAction && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
6559
6607
|
"button",
|
|
6560
6608
|
{
|
|
6561
6609
|
onClick: backAction,
|
|
6562
6610
|
className: "flex items-center justify-center w-9 h-9 rounded-full border border-slate-200 dark:border-slate-700 text-slate-400 hover:text-slate-700 dark:hover:text-slate-200 hover:border-slate-300 dark:hover:border-slate-600 hover:bg-slate-50 dark:hover:bg-slate-800/60 transition-all duration-200 flex-shrink-0",
|
|
6563
6611
|
"aria-label": "Volver",
|
|
6564
|
-
children: /* @__PURE__ */ (0,
|
|
6612
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_fa21.FaChevronLeft, { size: 14 })
|
|
6565
6613
|
}
|
|
6566
6614
|
),
|
|
6567
|
-
breadcrumbs && breadcrumbs.length > 0 && /* @__PURE__ */ (0,
|
|
6615
|
+
breadcrumbs && breadcrumbs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(ITBreadcrumbs, { items: breadcrumbs })
|
|
6568
6616
|
] }),
|
|
6569
|
-
actions && /* @__PURE__ */ (0,
|
|
6617
|
+
actions && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex items-center gap-3 flex-shrink-0", children: actions })
|
|
6570
6618
|
] }),
|
|
6571
|
-
/* @__PURE__ */ (0,
|
|
6572
|
-
/* @__PURE__ */ (0,
|
|
6573
|
-
icon && /* @__PURE__ */ (0,
|
|
6619
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-start justify-between gap-6", children: [
|
|
6620
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-start gap-4 min-w-0", children: [
|
|
6621
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
6574
6622
|
"div",
|
|
6575
6623
|
{
|
|
6576
6624
|
className: "flex items-center justify-center w-12 h-12 rounded-full border border-slate-200 dark:border-slate-700 bg-slate-50/50 dark:bg-slate-800/50 text-slate-600 dark:text-slate-300 flex-shrink-0 transition-all duration-200 hover:border-slate-300 dark:hover:border-slate-500 hover:shadow-sm",
|
|
@@ -6578,8 +6626,8 @@ function ITPageHeader({
|
|
|
6578
6626
|
children: icon
|
|
6579
6627
|
}
|
|
6580
6628
|
),
|
|
6581
|
-
/* @__PURE__ */ (0,
|
|
6582
|
-
/* @__PURE__ */ (0,
|
|
6629
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "min-w-0", children: [
|
|
6630
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
6583
6631
|
ITText,
|
|
6584
6632
|
{
|
|
6585
6633
|
as: "h1",
|
|
@@ -6587,7 +6635,7 @@ function ITPageHeader({
|
|
|
6587
6635
|
children: title
|
|
6588
6636
|
}
|
|
6589
6637
|
),
|
|
6590
|
-
description && /* @__PURE__ */ (0,
|
|
6638
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
6591
6639
|
ITText,
|
|
6592
6640
|
{
|
|
6593
6641
|
as: "p",
|
|
@@ -6597,14 +6645,14 @@ function ITPageHeader({
|
|
|
6597
6645
|
)
|
|
6598
6646
|
] })
|
|
6599
6647
|
] }),
|
|
6600
|
-
!showTopRow && actions && /* @__PURE__ */ (0,
|
|
6648
|
+
!showTopRow && actions && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex items-center gap-3 flex-shrink-0", children: actions })
|
|
6601
6649
|
] })
|
|
6602
6650
|
] });
|
|
6603
6651
|
}
|
|
6604
6652
|
|
|
6605
6653
|
// src/components/atoms/skeleton/skeleton.tsx
|
|
6606
6654
|
var import_clsx31 = __toESM(require("clsx"), 1);
|
|
6607
|
-
var
|
|
6655
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
6608
6656
|
var variantClasses = {
|
|
6609
6657
|
text: "rounded-md h-4 w-full",
|
|
6610
6658
|
circular: "rounded-full",
|
|
@@ -6624,7 +6672,7 @@ function ITSkeleton({
|
|
|
6624
6672
|
...style
|
|
6625
6673
|
};
|
|
6626
6674
|
const items = Array.from({ length: count }, (_, i) => i);
|
|
6627
|
-
return /* @__PURE__ */ (0,
|
|
6675
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_jsx_runtime39.Fragment, { children: items.map((i) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
6628
6676
|
"div",
|
|
6629
6677
|
{
|
|
6630
6678
|
className: (0, import_clsx31.default)(
|
|
@@ -6645,7 +6693,7 @@ function ITSkeleton({
|
|
|
6645
6693
|
// src/components/atoms/stack/stack.tsx
|
|
6646
6694
|
var import_clsx32 = __toESM(require("clsx"), 1);
|
|
6647
6695
|
var import_react32 = require("react");
|
|
6648
|
-
var
|
|
6696
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
6649
6697
|
var directionMap2 = {
|
|
6650
6698
|
row: "flex-row",
|
|
6651
6699
|
column: "flex-col",
|
|
@@ -6690,7 +6738,7 @@ function ITStack({
|
|
|
6690
6738
|
gap: spacing > 0 ? `${spacing * 0.25}rem` : void 0,
|
|
6691
6739
|
...style
|
|
6692
6740
|
};
|
|
6693
|
-
return /* @__PURE__ */ (0,
|
|
6741
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
6694
6742
|
Component,
|
|
6695
6743
|
{
|
|
6696
6744
|
className: (0, import_clsx32.default)(
|
|
@@ -6702,7 +6750,7 @@ function ITStack({
|
|
|
6702
6750
|
className
|
|
6703
6751
|
),
|
|
6704
6752
|
style: resolvedStyle,
|
|
6705
|
-
children: hasDivider ? items.map((child, index) => /* @__PURE__ */ (0,
|
|
6753
|
+
children: hasDivider ? items.map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_react32.Fragment, { children: [
|
|
6706
6754
|
child,
|
|
6707
6755
|
index < items.length - 1 && (0, import_react32.isValidElement)(divider) ? (0, import_react32.cloneElement)(divider, { key: `divider-${index}` }) : null
|
|
6708
6756
|
] }, index)) : children
|
|
@@ -6711,11 +6759,11 @@ function ITStack({
|
|
|
6711
6759
|
}
|
|
6712
6760
|
|
|
6713
6761
|
// src/components/templates/page/page.tsx
|
|
6714
|
-
var
|
|
6762
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
6715
6763
|
var hasHeader = (props) => !!(props.title || props.description || props.breadcrumbs || props.actions || props.backAction || props.icon);
|
|
6716
6764
|
var renderHeader = (props) => {
|
|
6717
6765
|
if (!hasHeader(props)) return null;
|
|
6718
|
-
return /* @__PURE__ */ (0,
|
|
6766
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
6719
6767
|
ITPageHeader,
|
|
6720
6768
|
{
|
|
6721
6769
|
title: props.title || "",
|
|
@@ -6754,24 +6802,24 @@ function ITPage(props) {
|
|
|
6754
6802
|
className
|
|
6755
6803
|
);
|
|
6756
6804
|
if (loading) {
|
|
6757
|
-
return /* @__PURE__ */ (0,
|
|
6805
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: wrapperClass, children: [
|
|
6758
6806
|
renderHeader(props),
|
|
6759
|
-
/* @__PURE__ */ (0,
|
|
6760
|
-
/* @__PURE__ */ (0,
|
|
6761
|
-
/* @__PURE__ */ (0,
|
|
6762
|
-
/* @__PURE__ */ (0,
|
|
6807
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(ITStack, { spacing: 6, children: [
|
|
6808
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(ITSkeleton, { variant: "rectangular", height: 40, width: "40%", className: "rounded-lg" }),
|
|
6809
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(ITSkeleton, { variant: "rectangular", height: 200, className: "rounded-lg" }),
|
|
6810
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(ITSkeleton, { variant: "rectangular", height: 200, className: "rounded-lg" })
|
|
6763
6811
|
] })
|
|
6764
6812
|
] });
|
|
6765
6813
|
}
|
|
6766
6814
|
if (error) {
|
|
6767
|
-
return /* @__PURE__ */ (0,
|
|
6815
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: wrapperClass, children: [
|
|
6768
6816
|
renderHeader(props),
|
|
6769
|
-
/* @__PURE__ */ (0,
|
|
6817
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
6770
6818
|
ITEmptyState,
|
|
6771
6819
|
{
|
|
6772
6820
|
title: errorTitle || "Error",
|
|
6773
6821
|
description: error,
|
|
6774
|
-
action: onRetry ? /* @__PURE__ */ (0,
|
|
6822
|
+
action: onRetry ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
6775
6823
|
ITButton,
|
|
6776
6824
|
{
|
|
6777
6825
|
label: errorActionLabel || "Reintentar",
|
|
@@ -6784,9 +6832,9 @@ function ITPage(props) {
|
|
|
6784
6832
|
] });
|
|
6785
6833
|
}
|
|
6786
6834
|
if (empty) {
|
|
6787
|
-
return /* @__PURE__ */ (0,
|
|
6835
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: wrapperClass, children: [
|
|
6788
6836
|
renderHeader(props),
|
|
6789
|
-
/* @__PURE__ */ (0,
|
|
6837
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
6790
6838
|
ITEmptyState,
|
|
6791
6839
|
{
|
|
6792
6840
|
title: emptyTitle || "Sin datos",
|
|
@@ -6796,7 +6844,7 @@ function ITPage(props) {
|
|
|
6796
6844
|
)
|
|
6797
6845
|
] });
|
|
6798
6846
|
}
|
|
6799
|
-
return /* @__PURE__ */ (0,
|
|
6847
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: wrapperClass, children: [
|
|
6800
6848
|
renderHeader(props),
|
|
6801
6849
|
children
|
|
6802
6850
|
] });
|
|
@@ -6805,7 +6853,7 @@ function ITPage(props) {
|
|
|
6805
6853
|
// src/components/atoms/popover/popover.tsx
|
|
6806
6854
|
var import_react33 = require("react");
|
|
6807
6855
|
var import_clsx34 = __toESM(require("clsx"), 1);
|
|
6808
|
-
var
|
|
6856
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
6809
6857
|
var positionClasses = {
|
|
6810
6858
|
top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
|
|
6811
6859
|
bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
|
|
@@ -6828,15 +6876,15 @@ function ITPopover({
|
|
|
6828
6876
|
if (isControlled) onClose?.();
|
|
6829
6877
|
else setInternalOpen(false);
|
|
6830
6878
|
});
|
|
6831
|
-
return /* @__PURE__ */ (0,
|
|
6832
|
-
/* @__PURE__ */ (0,
|
|
6833
|
-
open && /* @__PURE__ */ (0,
|
|
6879
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { ref, className: (0, import_clsx34.default)("relative inline-flex", className), children: [
|
|
6880
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { onClick: () => isControlled ? onClose?.() : setInternalOpen((p) => !p), className: "cursor-pointer", children: trigger }),
|
|
6881
|
+
open && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: (0, import_clsx34.default)("absolute z-[70]", positionClasses[position]), children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "bg-white dark:bg-slate-800 rounded-xl shadow-xl border border-slate-200 dark:border-slate-700 p-3 min-w-[160px]", children }) })
|
|
6834
6882
|
] });
|
|
6835
6883
|
}
|
|
6836
6884
|
|
|
6837
6885
|
// src/components/atoms/progress/progress.tsx
|
|
6838
6886
|
var import_clsx35 = __toESM(require("clsx"), 1);
|
|
6839
|
-
var
|
|
6887
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
6840
6888
|
var colorMap = {
|
|
6841
6889
|
primary: "bg-primary-500",
|
|
6842
6890
|
secondary: "bg-secondary-500",
|
|
@@ -6863,7 +6911,7 @@ function ITProgress({
|
|
|
6863
6911
|
style
|
|
6864
6912
|
}) {
|
|
6865
6913
|
const pct = Math.min(Math.max(value / max * 100, 0), 100);
|
|
6866
|
-
return /* @__PURE__ */ (0,
|
|
6914
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
6867
6915
|
"div",
|
|
6868
6916
|
{
|
|
6869
6917
|
className: (0, import_clsx35.default)("w-full bg-slate-200 dark:bg-slate-700 rounded-full overflow-hidden", sizeMap2[size], className),
|
|
@@ -6871,7 +6919,7 @@ function ITProgress({
|
|
|
6871
6919
|
role: "progressbar",
|
|
6872
6920
|
"aria-valuenow": variant === "determinate" ? value : void 0,
|
|
6873
6921
|
"aria-valuemax": max,
|
|
6874
|
-
children: /* @__PURE__ */ (0,
|
|
6922
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
6875
6923
|
"div",
|
|
6876
6924
|
{
|
|
6877
6925
|
className: (0, import_clsx35.default)(
|
|
@@ -6888,7 +6936,7 @@ function ITProgress({
|
|
|
6888
6936
|
|
|
6889
6937
|
// src/components/atoms/radio/radio.tsx
|
|
6890
6938
|
var import_clsx36 = __toESM(require("clsx"), 1);
|
|
6891
|
-
var
|
|
6939
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
6892
6940
|
function ITRadioGroup({
|
|
6893
6941
|
name,
|
|
6894
6942
|
value,
|
|
@@ -6898,7 +6946,7 @@ function ITRadioGroup({
|
|
|
6898
6946
|
direction = "column",
|
|
6899
6947
|
className
|
|
6900
6948
|
}) {
|
|
6901
|
-
return /* @__PURE__ */ (0,
|
|
6949
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
6902
6950
|
"div",
|
|
6903
6951
|
{
|
|
6904
6952
|
className: (0, import_clsx36.default)(
|
|
@@ -6908,7 +6956,7 @@ function ITRadioGroup({
|
|
|
6908
6956
|
),
|
|
6909
6957
|
children: options.map((opt) => {
|
|
6910
6958
|
const isSelected = opt.value === value;
|
|
6911
|
-
return /* @__PURE__ */ (0,
|
|
6959
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
|
|
6912
6960
|
"label",
|
|
6913
6961
|
{
|
|
6914
6962
|
className: (0, import_clsx36.default)(
|
|
@@ -6916,7 +6964,7 @@ function ITRadioGroup({
|
|
|
6916
6964
|
disabled && "opacity-50 cursor-not-allowed"
|
|
6917
6965
|
),
|
|
6918
6966
|
children: [
|
|
6919
|
-
/* @__PURE__ */ (0,
|
|
6967
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
6920
6968
|
"input",
|
|
6921
6969
|
{
|
|
6922
6970
|
type: "radio",
|
|
@@ -6928,7 +6976,7 @@ function ITRadioGroup({
|
|
|
6928
6976
|
className: "peer sr-only"
|
|
6929
6977
|
}
|
|
6930
6978
|
),
|
|
6931
|
-
/* @__PURE__ */ (0,
|
|
6979
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
6932
6980
|
"div",
|
|
6933
6981
|
{
|
|
6934
6982
|
className: (0, import_clsx36.default)(
|
|
@@ -6936,10 +6984,10 @@ function ITRadioGroup({
|
|
|
6936
6984
|
isSelected ? "border-primary-500" : "border-slate-300 dark:border-slate-600",
|
|
6937
6985
|
!disabled && "peer-focus:ring-2 peer-focus:ring-primary-200"
|
|
6938
6986
|
),
|
|
6939
|
-
children: isSelected && /* @__PURE__ */ (0,
|
|
6987
|
+
children: isSelected && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "w-2 h-2 rounded-full bg-primary-500" })
|
|
6940
6988
|
}
|
|
6941
6989
|
),
|
|
6942
|
-
/* @__PURE__ */ (0,
|
|
6990
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(ITText, { as: "span", className: "text-sm text-slate-700 dark:text-slate-300", children: opt.label })
|
|
6943
6991
|
]
|
|
6944
6992
|
},
|
|
6945
6993
|
opt.value
|
|
@@ -6955,16 +7003,16 @@ var import_react34 = require("react");
|
|
|
6955
7003
|
|
|
6956
7004
|
// src/components/organisms/searchTable/components/SearchInput.tsx
|
|
6957
7005
|
var import_fa22 = require("react-icons/fa");
|
|
6958
|
-
var
|
|
7006
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
6959
7007
|
function SearchInput({
|
|
6960
7008
|
placeholder = "Buscar en todos los campos...",
|
|
6961
7009
|
value,
|
|
6962
7010
|
onChange,
|
|
6963
7011
|
className = ""
|
|
6964
7012
|
}) {
|
|
6965
|
-
return /* @__PURE__ */ (0,
|
|
6966
|
-
/* @__PURE__ */ (0,
|
|
6967
|
-
/* @__PURE__ */ (0,
|
|
7013
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: `relative flex-1 ${className}`, children: [
|
|
7014
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_fa22.FaSearch, { className: "h-5 w-5 text-secondary-400" }) }),
|
|
7015
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
6968
7016
|
ITInput,
|
|
6969
7017
|
{
|
|
6970
7018
|
name: "global-search",
|
|
@@ -6981,13 +7029,13 @@ function SearchInput({
|
|
|
6981
7029
|
|
|
6982
7030
|
// src/components/organisms/searchTable/components/SortButton.tsx
|
|
6983
7031
|
var import_fa23 = require("react-icons/fa");
|
|
6984
|
-
var
|
|
7032
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
6985
7033
|
function SortButton({
|
|
6986
7034
|
sortConfig,
|
|
6987
7035
|
onClick,
|
|
6988
7036
|
className = ""
|
|
6989
7037
|
}) {
|
|
6990
|
-
return /* @__PURE__ */ (0,
|
|
7038
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
|
|
6991
7039
|
"button",
|
|
6992
7040
|
{
|
|
6993
7041
|
onClick,
|
|
@@ -6995,15 +7043,15 @@ function SortButton({
|
|
|
6995
7043
|
"aria-label": `Ordenar tabla ${sortConfig ? sortConfig.direction === "asc" ? "descendente" : "ascendente" : "ascendente"}`,
|
|
6996
7044
|
title: "Ordenar tabla",
|
|
6997
7045
|
children: [
|
|
6998
|
-
sortConfig ? sortConfig.direction === "asc" ? /* @__PURE__ */ (0,
|
|
6999
|
-
/* @__PURE__ */ (0,
|
|
7046
|
+
sortConfig ? sortConfig.direction === "asc" ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_fa23.FaSortUp, { className: "w-4 h-4 text-slate-500" }) : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_fa23.FaSortDown, { className: "w-4 h-4 text-slate-500" }) : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_fa23.FaSort, { className: "w-4 h-4 text-secondary-500" }),
|
|
7047
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(ITText, { as: "span", className: "text-sm font-medium text-secondary-700", children: sortConfig ? sortConfig.direction === "asc" ? "Asc \u2191" : "Desc \u2193" : "Ordenar" })
|
|
7000
7048
|
]
|
|
7001
7049
|
}
|
|
7002
7050
|
);
|
|
7003
7051
|
}
|
|
7004
7052
|
|
|
7005
7053
|
// src/components/organisms/searchTable/components/SearchAndSortBar.tsx
|
|
7006
|
-
var
|
|
7054
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
7007
7055
|
function SearchAndSortBar({
|
|
7008
7056
|
searchTerm,
|
|
7009
7057
|
onSearchChange,
|
|
@@ -7012,8 +7060,8 @@ function SearchAndSortBar({
|
|
|
7012
7060
|
sortConfig,
|
|
7013
7061
|
searchInputPlaceholder = "Buscar en todos los campos..."
|
|
7014
7062
|
}) {
|
|
7015
|
-
return /* @__PURE__ */ (0,
|
|
7016
|
-
/* @__PURE__ */ (0,
|
|
7063
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "bg-secondary-50 px-6 py-4 border-b border-secondary-200", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-center gap-4", children: [
|
|
7064
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
7017
7065
|
SearchInput,
|
|
7018
7066
|
{
|
|
7019
7067
|
placeholder: searchInputPlaceholder,
|
|
@@ -7021,8 +7069,8 @@ function SearchAndSortBar({
|
|
|
7021
7069
|
onChange: onSearchChange
|
|
7022
7070
|
}
|
|
7023
7071
|
),
|
|
7024
|
-
/* @__PURE__ */ (0,
|
|
7025
|
-
searchTerm && /* @__PURE__ */ (0,
|
|
7072
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(SortButton, { sortConfig, onClick: onGlobalSort }),
|
|
7073
|
+
searchTerm && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
7026
7074
|
ITButton,
|
|
7027
7075
|
{
|
|
7028
7076
|
size: "sm",
|
|
@@ -7031,14 +7079,14 @@ function SearchAndSortBar({
|
|
|
7031
7079
|
onClick: onClearSearch,
|
|
7032
7080
|
ariaLabel: "Limpiar b\xFAsqueda",
|
|
7033
7081
|
title: "Limpiar b\xFAsqueda",
|
|
7034
|
-
children: /* @__PURE__ */ (0,
|
|
7082
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(ITText, { as: "span", children: "Limpiar" })
|
|
7035
7083
|
}
|
|
7036
7084
|
)
|
|
7037
7085
|
] }) });
|
|
7038
7086
|
}
|
|
7039
7087
|
|
|
7040
7088
|
// src/components/organisms/searchTable/components/TableHeaderCell.tsx
|
|
7041
|
-
var
|
|
7089
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
7042
7090
|
function TableHeaderCell({
|
|
7043
7091
|
label,
|
|
7044
7092
|
sortable = false,
|
|
@@ -7046,8 +7094,8 @@ function TableHeaderCell({
|
|
|
7046
7094
|
sortConfig,
|
|
7047
7095
|
className = ""
|
|
7048
7096
|
}) {
|
|
7049
|
-
return /* @__PURE__ */ (0,
|
|
7050
|
-
/* @__PURE__ */ (0,
|
|
7097
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("th", { className, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "flex flex-col items-center gap-2 w-full", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex items-center justify-center gap-2 w-full", children: [
|
|
7098
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
7051
7099
|
ITText,
|
|
7052
7100
|
{
|
|
7053
7101
|
as: "span",
|
|
@@ -7061,18 +7109,18 @@ function TableHeaderCell({
|
|
|
7061
7109
|
children: label
|
|
7062
7110
|
}
|
|
7063
7111
|
),
|
|
7064
|
-
sortable && /* @__PURE__ */ (0,
|
|
7112
|
+
sortable && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SortButton, { sortConfig, onClick: onSort })
|
|
7065
7113
|
] }) }) });
|
|
7066
7114
|
}
|
|
7067
7115
|
|
|
7068
7116
|
// src/components/organisms/searchTable/components/TableHeader.tsx
|
|
7069
|
-
var
|
|
7117
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
7070
7118
|
function TableHeader({
|
|
7071
7119
|
columns,
|
|
7072
7120
|
onSort,
|
|
7073
7121
|
sortConfig
|
|
7074
7122
|
}) {
|
|
7075
|
-
return /* @__PURE__ */ (0,
|
|
7123
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("tr", { className: "bg-white border-b border-secondary-200", children: columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
7076
7124
|
TableHeaderCell,
|
|
7077
7125
|
{
|
|
7078
7126
|
label: col.label,
|
|
@@ -7090,7 +7138,7 @@ var import_clsx37 = __toESM(require("clsx"), 1);
|
|
|
7090
7138
|
var import_fa24 = require("react-icons/fa");
|
|
7091
7139
|
|
|
7092
7140
|
// src/components/organisms/searchTable/components/EditableCell.tsx
|
|
7093
|
-
var
|
|
7141
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
7094
7142
|
function EditableCell({
|
|
7095
7143
|
column,
|
|
7096
7144
|
value,
|
|
@@ -7119,7 +7167,7 @@ function EditableCell({
|
|
|
7119
7167
|
onChange(value, errorMsg);
|
|
7120
7168
|
};
|
|
7121
7169
|
const renderITInput = (type) => {
|
|
7122
|
-
return /* @__PURE__ */ (0,
|
|
7170
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7123
7171
|
ITInput,
|
|
7124
7172
|
{
|
|
7125
7173
|
type,
|
|
@@ -7133,7 +7181,7 @@ function EditableCell({
|
|
|
7133
7181
|
);
|
|
7134
7182
|
};
|
|
7135
7183
|
const renderITDatePicker = () => {
|
|
7136
|
-
return /* @__PURE__ */ (0,
|
|
7184
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7137
7185
|
ITDatePicker,
|
|
7138
7186
|
{
|
|
7139
7187
|
name: column.key,
|
|
@@ -7146,7 +7194,7 @@ function EditableCell({
|
|
|
7146
7194
|
);
|
|
7147
7195
|
};
|
|
7148
7196
|
const renderITSelect = (options) => {
|
|
7149
|
-
return /* @__PURE__ */ (0,
|
|
7197
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7150
7198
|
ITSelect,
|
|
7151
7199
|
{
|
|
7152
7200
|
name: column.key,
|
|
@@ -7160,7 +7208,7 @@ function EditableCell({
|
|
|
7160
7208
|
);
|
|
7161
7209
|
};
|
|
7162
7210
|
const renderBooleanInput = () => {
|
|
7163
|
-
return /* @__PURE__ */ (0,
|
|
7211
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7164
7212
|
ITInput,
|
|
7165
7213
|
{
|
|
7166
7214
|
type: "checkbox",
|
|
@@ -7201,14 +7249,14 @@ function EditableCell({
|
|
|
7201
7249
|
return renderITInput("text");
|
|
7202
7250
|
}
|
|
7203
7251
|
};
|
|
7204
|
-
return /* @__PURE__ */ (0,
|
|
7252
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "w-full", children: [
|
|
7205
7253
|
renderInput(),
|
|
7206
|
-
error && /* @__PURE__ */ (0,
|
|
7254
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "text-danger-500 text-xs mt-1", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ITText, { as: "span", children: error }) })
|
|
7207
7255
|
] });
|
|
7208
7256
|
}
|
|
7209
7257
|
|
|
7210
7258
|
// src/components/organisms/searchTable/components/TableRow.tsx
|
|
7211
|
-
var
|
|
7259
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
7212
7260
|
function TableRow({
|
|
7213
7261
|
row,
|
|
7214
7262
|
rowIndex,
|
|
@@ -7241,14 +7289,14 @@ function TableRow({
|
|
|
7241
7289
|
case "number":
|
|
7242
7290
|
return typeof value === "number" && col.currencyMX ? formatCurrencyMX(value) : value;
|
|
7243
7291
|
case "boolean":
|
|
7244
|
-
return value ? /* @__PURE__ */ (0,
|
|
7292
|
+
return value ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
7245
7293
|
import_fa24.FaCheck,
|
|
7246
7294
|
{
|
|
7247
7295
|
className: "text-green-500",
|
|
7248
7296
|
"aria-label": "Verdadero",
|
|
7249
7297
|
title: "Verdadero"
|
|
7250
7298
|
}
|
|
7251
|
-
) : /* @__PURE__ */ (0,
|
|
7299
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_fa24.FaTimes, { className: "text-danger-500", "aria-label": "Falso", title: "Falso" });
|
|
7252
7300
|
case "actions":
|
|
7253
7301
|
if (isEditing && col.saveActions) {
|
|
7254
7302
|
return col.saveActions(rowData, {
|
|
@@ -7272,19 +7320,19 @@ function TableRow({
|
|
|
7272
7320
|
return value;
|
|
7273
7321
|
}
|
|
7274
7322
|
};
|
|
7275
|
-
return /* @__PURE__ */ (0,
|
|
7323
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
7276
7324
|
"tr",
|
|
7277
7325
|
{
|
|
7278
7326
|
onMouseEnter: () => setIsHovered(true),
|
|
7279
7327
|
onMouseLeave: () => setIsHovered(false),
|
|
7280
7328
|
className: `border-b border-secondary-200 transition-colors duration-150 ${isEditing ? "bg-slate-50" : rowIndex % 2 === 0 ? "bg-white" : "bg-secondary-50"} ${isHovered && !isEditing ? "bg-secondary-100" : ""}`,
|
|
7281
|
-
children: columns.map((col) => /* @__PURE__ */ (0,
|
|
7329
|
+
children: columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
7282
7330
|
"td",
|
|
7283
7331
|
{
|
|
7284
7332
|
className: (0, import_clsx37.default)("pl-5 py-2", col.className, {
|
|
7285
7333
|
"text-center": col.type === "actions" || col.type === "boolean"
|
|
7286
7334
|
}),
|
|
7287
|
-
children: isEditing && col.editable ? /* @__PURE__ */ (0,
|
|
7335
|
+
children: isEditing && col.editable ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
7288
7336
|
EditableCell,
|
|
7289
7337
|
{
|
|
7290
7338
|
column: col,
|
|
@@ -7293,7 +7341,7 @@ function TableRow({
|
|
|
7293
7341
|
error: errors[col.key],
|
|
7294
7342
|
row: editedRow
|
|
7295
7343
|
}
|
|
7296
|
-
) : /* @__PURE__ */ (0,
|
|
7344
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
7297
7345
|
"div",
|
|
7298
7346
|
{
|
|
7299
7347
|
className: (0, import_clsx37.default)({
|
|
@@ -7313,25 +7361,25 @@ function TableRow({
|
|
|
7313
7361
|
}
|
|
7314
7362
|
|
|
7315
7363
|
// src/components/organisms/searchTable/components/TableEmptyState.tsx
|
|
7316
|
-
var
|
|
7364
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
7317
7365
|
function TableEmptyState({
|
|
7318
7366
|
colSpan,
|
|
7319
7367
|
searchTerm
|
|
7320
7368
|
}) {
|
|
7321
|
-
return /* @__PURE__ */ (0,
|
|
7369
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("tr", { children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("td", { colSpan, className: "px-6 py-4 text-center", children: searchTerm ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ITText, { as: "span", children: "No se encontraron resultados para tu b\xFAsqueda" }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ITText, { as: "span", children: "No se encontraron resultados" }) }) });
|
|
7322
7370
|
}
|
|
7323
7371
|
|
|
7324
7372
|
// src/components/organisms/searchTable/components/PaginationControls.tsx
|
|
7325
7373
|
var import_fa25 = require("react-icons/fa");
|
|
7326
7374
|
|
|
7327
7375
|
// src/components/organisms/searchTable/components/PaginationInfo.tsx
|
|
7328
|
-
var
|
|
7376
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
7329
7377
|
function PaginationInfo({
|
|
7330
7378
|
currentCount,
|
|
7331
7379
|
totalCount,
|
|
7332
7380
|
className = ""
|
|
7333
7381
|
}) {
|
|
7334
|
-
return /* @__PURE__ */ (0,
|
|
7382
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(ITText, { as: "span", className: `text-sm text-secondary-700 ${className}`, children: [
|
|
7335
7383
|
"Mostrando ",
|
|
7336
7384
|
currentCount,
|
|
7337
7385
|
" de ",
|
|
@@ -7341,7 +7389,7 @@ function PaginationInfo({
|
|
|
7341
7389
|
}
|
|
7342
7390
|
|
|
7343
7391
|
// src/components/organisms/searchTable/components/PaginationControls.tsx
|
|
7344
|
-
var
|
|
7392
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
7345
7393
|
function PaginationControls({
|
|
7346
7394
|
pageIndex,
|
|
7347
7395
|
totalPages,
|
|
@@ -7354,12 +7402,12 @@ function PaginationControls({
|
|
|
7354
7402
|
currentCount,
|
|
7355
7403
|
totalCount
|
|
7356
7404
|
}) {
|
|
7357
|
-
return /* @__PURE__ */ (0,
|
|
7358
|
-
/* @__PURE__ */ (0,
|
|
7359
|
-
/* @__PURE__ */ (0,
|
|
7360
|
-
/* @__PURE__ */ (0,
|
|
7361
|
-
/* @__PURE__ */ (0,
|
|
7362
|
-
/* @__PURE__ */ (0,
|
|
7405
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex flex-col sm:flex-row justify-between items-center gap-4", children: [
|
|
7406
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center space-x-4", children: [
|
|
7407
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(PaginationInfo, { currentCount, totalCount }),
|
|
7408
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center space-x-2", children: [
|
|
7409
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(ITText, { as: "span", className: "text-sm text-secondary-700", children: "Mostrar:" }),
|
|
7410
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
7363
7411
|
ITSelect,
|
|
7364
7412
|
{
|
|
7365
7413
|
name: "itemsPerPage",
|
|
@@ -7377,8 +7425,8 @@ function PaginationControls({
|
|
|
7377
7425
|
)
|
|
7378
7426
|
] })
|
|
7379
7427
|
] }),
|
|
7380
|
-
/* @__PURE__ */ (0,
|
|
7381
|
-
/* @__PURE__ */ (0,
|
|
7428
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center space-x-2", children: [
|
|
7429
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
7382
7430
|
ITButton,
|
|
7383
7431
|
{
|
|
7384
7432
|
color: "secondary",
|
|
@@ -7388,16 +7436,16 @@ function PaginationControls({
|
|
|
7388
7436
|
className: "min-w-[32px]",
|
|
7389
7437
|
ariaLabel: "P\xE1gina anterior",
|
|
7390
7438
|
title: "Ir a la p\xE1gina anterior",
|
|
7391
|
-
children: /* @__PURE__ */ (0,
|
|
7439
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_fa25.FaArrowLeft, { "aria-hidden": "true" })
|
|
7392
7440
|
}
|
|
7393
7441
|
),
|
|
7394
|
-
/* @__PURE__ */ (0,
|
|
7442
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(ITText, { as: "span", className: "px-4 py-2 text-sm text-secondary-700", "aria-live": "polite", children: [
|
|
7395
7443
|
"P\xE1gina ",
|
|
7396
7444
|
pageIndex,
|
|
7397
7445
|
" de ",
|
|
7398
7446
|
totalPages
|
|
7399
7447
|
] }),
|
|
7400
|
-
/* @__PURE__ */ (0,
|
|
7448
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
7401
7449
|
ITButton,
|
|
7402
7450
|
{
|
|
7403
7451
|
size: "sm",
|
|
@@ -7407,7 +7455,7 @@ function PaginationControls({
|
|
|
7407
7455
|
className: "min-w-[32px]",
|
|
7408
7456
|
ariaLabel: "P\xE1gina siguiente",
|
|
7409
7457
|
title: "Ir a la p\xE1gina siguiente",
|
|
7410
|
-
children: /* @__PURE__ */ (0,
|
|
7458
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_fa25.FaArrowRight, { "aria-hidden": "true" })
|
|
7411
7459
|
}
|
|
7412
7460
|
)
|
|
7413
7461
|
] })
|
|
@@ -7415,7 +7463,7 @@ function PaginationControls({
|
|
|
7415
7463
|
}
|
|
7416
7464
|
|
|
7417
7465
|
// src/components/organisms/searchTable/searchTable.tsx
|
|
7418
|
-
var
|
|
7466
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
7419
7467
|
function ITSearchTable({
|
|
7420
7468
|
columns,
|
|
7421
7469
|
data,
|
|
@@ -7480,11 +7528,11 @@ function ITSearchTable({
|
|
|
7480
7528
|
handleClearSearch();
|
|
7481
7529
|
onClearSearch?.();
|
|
7482
7530
|
};
|
|
7483
|
-
return /* @__PURE__ */ (0,
|
|
7484
|
-
/* @__PURE__ */ (0,
|
|
7485
|
-
title && /* @__PURE__ */ (0,
|
|
7486
|
-
/* @__PURE__ */ (0,
|
|
7487
|
-
/* @__PURE__ */ (0,
|
|
7531
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: (0, import_clsx38.default)("space-y-4 w-full", containerClassName), children: [
|
|
7532
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "shadow-md sm:rounded-lg overflow-hidden", children: [
|
|
7533
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "bg-teal-500 text-white px-6 py-4", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ITText, { as: "h2", className: "text-xl font-bold text-center whitespace-nowrap", children: title }) }),
|
|
7534
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "bg-white", children: [
|
|
7535
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "p-4 border-b border-secondary-200", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
7488
7536
|
SearchAndSortBar,
|
|
7489
7537
|
{
|
|
7490
7538
|
searchTerm,
|
|
@@ -7495,7 +7543,7 @@ function ITSearchTable({
|
|
|
7495
7543
|
searchInputPlaceholder
|
|
7496
7544
|
}
|
|
7497
7545
|
) }),
|
|
7498
|
-
/* @__PURE__ */ (0,
|
|
7546
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "overflow-x-auto", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
7499
7547
|
"table",
|
|
7500
7548
|
{
|
|
7501
7549
|
className: (0, import_clsx38.default)(
|
|
@@ -7504,7 +7552,7 @@ function ITSearchTable({
|
|
|
7504
7552
|
sizeStyles[size]
|
|
7505
7553
|
),
|
|
7506
7554
|
children: [
|
|
7507
|
-
/* @__PURE__ */ (0,
|
|
7555
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
7508
7556
|
TableHeader,
|
|
7509
7557
|
{
|
|
7510
7558
|
columns,
|
|
@@ -7512,7 +7560,7 @@ function ITSearchTable({
|
|
|
7512
7560
|
sortConfig
|
|
7513
7561
|
}
|
|
7514
7562
|
),
|
|
7515
|
-
/* @__PURE__ */ (0,
|
|
7563
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("tbody", { children: data.length > 0 ? data.map((row, rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
7516
7564
|
TableRow,
|
|
7517
7565
|
{
|
|
7518
7566
|
row,
|
|
@@ -7526,7 +7574,7 @@ function ITSearchTable({
|
|
|
7526
7574
|
onCancel: handleCancelEdit
|
|
7527
7575
|
},
|
|
7528
7576
|
rowIndex
|
|
7529
|
-
)) : /* @__PURE__ */ (0,
|
|
7577
|
+
)) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
7530
7578
|
TableEmptyState,
|
|
7531
7579
|
{
|
|
7532
7580
|
colSpan: columns.length + 1,
|
|
@@ -7538,7 +7586,7 @@ function ITSearchTable({
|
|
|
7538
7586
|
) })
|
|
7539
7587
|
] })
|
|
7540
7588
|
] }),
|
|
7541
|
-
/* @__PURE__ */ (0,
|
|
7589
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
7542
7590
|
PaginationControls,
|
|
7543
7591
|
{
|
|
7544
7592
|
pageIndex,
|
|
@@ -7558,7 +7606,7 @@ function ITSearchTable({
|
|
|
7558
7606
|
|
|
7559
7607
|
// src/components/atoms/segmented-control/segmented-control.tsx
|
|
7560
7608
|
var import_clsx39 = __toESM(require("clsx"), 1);
|
|
7561
|
-
var
|
|
7609
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
7562
7610
|
var sizeMap3 = {
|
|
7563
7611
|
sm: { button: "px-2.5 py-1.5 text-[11px]", container: "p-0.5" },
|
|
7564
7612
|
md: { button: "px-3 py-2 text-xs", container: "p-1" }
|
|
@@ -7572,7 +7620,7 @@ function ITSegmentedControl({
|
|
|
7572
7620
|
disabled = false
|
|
7573
7621
|
}) {
|
|
7574
7622
|
const { button, container } = sizeMap3[size];
|
|
7575
|
-
return /* @__PURE__ */ (0,
|
|
7623
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
7576
7624
|
"div",
|
|
7577
7625
|
{
|
|
7578
7626
|
className: (0, import_clsx39.default)(
|
|
@@ -7583,7 +7631,7 @@ function ITSegmentedControl({
|
|
|
7583
7631
|
),
|
|
7584
7632
|
children: options.map((opt) => {
|
|
7585
7633
|
const isActive = opt.value === value;
|
|
7586
|
-
return /* @__PURE__ */ (0,
|
|
7634
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
|
|
7587
7635
|
"button",
|
|
7588
7636
|
{
|
|
7589
7637
|
onClick: () => !disabled && onChange(opt.value),
|
|
@@ -7595,8 +7643,8 @@ function ITSegmentedControl({
|
|
|
7595
7643
|
disabled && "pointer-events-none"
|
|
7596
7644
|
),
|
|
7597
7645
|
children: [
|
|
7598
|
-
opt.icon && /* @__PURE__ */ (0,
|
|
7599
|
-
/* @__PURE__ */ (0,
|
|
7646
|
+
opt.icon && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { children: opt.icon }),
|
|
7647
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(ITText, { as: "span", children: opt.label })
|
|
7600
7648
|
]
|
|
7601
7649
|
},
|
|
7602
7650
|
opt.value
|
|
@@ -7609,7 +7657,7 @@ function ITSegmentedControl({
|
|
|
7609
7657
|
// src/components/organisms/sidebar/sidebar.tsx
|
|
7610
7658
|
var import_react35 = require("react");
|
|
7611
7659
|
var import_fa26 = require("react-icons/fa");
|
|
7612
|
-
var
|
|
7660
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
7613
7661
|
function isSubItemGroup(entry) {
|
|
7614
7662
|
return "items" in entry;
|
|
7615
7663
|
}
|
|
@@ -7697,7 +7745,7 @@ function ITSidebar({
|
|
|
7697
7745
|
};
|
|
7698
7746
|
const isSidebarCollapsed = visibleOnMobile ? false : !isHovering && isCollapsed;
|
|
7699
7747
|
const sidebarWidth = isSidebarCollapsed ? "w-[88px]" : "w-[280px]";
|
|
7700
|
-
const renderSubItem = (subitem) => /* @__PURE__ */ (0,
|
|
7748
|
+
const renderSubItem = (subitem) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("li", { className: "relative", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
7701
7749
|
"button",
|
|
7702
7750
|
{
|
|
7703
7751
|
"aria-current": subitem.isActive ? "page" : void 0,
|
|
@@ -7727,7 +7775,7 @@ function ITSidebar({
|
|
|
7727
7775
|
}
|
|
7728
7776
|
},
|
|
7729
7777
|
children: [
|
|
7730
|
-
subitem.isActive && subitemConnector === "|" && /* @__PURE__ */ (0,
|
|
7778
|
+
subitem.isActive && subitemConnector === "|" && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7731
7779
|
"div",
|
|
7732
7780
|
{
|
|
7733
7781
|
className: "absolute left-0 top-1/3 bottom-1/3 w-[2.5px] rounded-r-full transition-all",
|
|
@@ -7737,7 +7785,7 @@ function ITSidebar({
|
|
|
7737
7785
|
}
|
|
7738
7786
|
}
|
|
7739
7787
|
),
|
|
7740
|
-
subitemConnector === "dot" && /* @__PURE__ */ (0,
|
|
7788
|
+
subitemConnector === "dot" && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7741
7789
|
"span",
|
|
7742
7790
|
{
|
|
7743
7791
|
className: `w-1.5 h-1.5 rounded-full flex-shrink-0 transition-all duration-300 ${subitem.isActive ? "scale-125" : ""}`,
|
|
@@ -7746,14 +7794,14 @@ function ITSidebar({
|
|
|
7746
7794
|
}
|
|
7747
7795
|
}
|
|
7748
7796
|
),
|
|
7749
|
-
/* @__PURE__ */ (0,
|
|
7797
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ITText, { as: "span", className: "truncate", children: subitem.label })
|
|
7750
7798
|
]
|
|
7751
7799
|
}
|
|
7752
7800
|
) }, subitem.id);
|
|
7753
7801
|
const renderSubItemGroup = (group, itemId) => {
|
|
7754
7802
|
const headingId = `it-sidebar-subgroup-${itemId}-${group.id}`;
|
|
7755
|
-
return /* @__PURE__ */ (0,
|
|
7756
|
-
/* @__PURE__ */ (0,
|
|
7803
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("li", { className: "relative", children: [
|
|
7804
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { id: headingId, className: "px-3 pt-2.5 pb-1 mt-1", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7757
7805
|
ITText,
|
|
7758
7806
|
{
|
|
7759
7807
|
as: "span",
|
|
@@ -7768,10 +7816,10 @@ function ITSidebar({
|
|
|
7768
7816
|
children: group.label
|
|
7769
7817
|
}
|
|
7770
7818
|
) }),
|
|
7771
|
-
/* @__PURE__ */ (0,
|
|
7819
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("ul", { "aria-labelledby": headingId, className: "flex flex-col gap-0", children: group.items.map(renderSubItem) })
|
|
7772
7820
|
] }, group.id);
|
|
7773
7821
|
};
|
|
7774
|
-
return /* @__PURE__ */ (0,
|
|
7822
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
7775
7823
|
"aside",
|
|
7776
7824
|
{
|
|
7777
7825
|
ref: sidebarRef,
|
|
@@ -7791,12 +7839,12 @@ function ITSidebar({
|
|
|
7791
7839
|
backdropFilter: "blur(12px)"
|
|
7792
7840
|
},
|
|
7793
7841
|
children: [
|
|
7794
|
-
header && !isSidebarCollapsed && /* @__PURE__ */ (0,
|
|
7795
|
-
/* @__PURE__ */ (0,
|
|
7842
|
+
header && !isSidebarCollapsed && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "px-4 pt-4 pb-1 flex-shrink-0", children: header }),
|
|
7843
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("nav", { "aria-label": "Componentes de la librer\xEDa", className: "flex-1 py-4 overflow-y-auto overflow-x-hidden custom-scrollbar px-4", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("ul", { className: "space-y-1", children: navigationItems.map((item) => {
|
|
7796
7844
|
const hasSubmenu = !!item.subitems && item.subitems.length > 0;
|
|
7797
7845
|
const submenuId = `it-sidebar-submenu-${item.id}`;
|
|
7798
|
-
return /* @__PURE__ */ (0,
|
|
7799
|
-
/* @__PURE__ */ (0,
|
|
7846
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("li", { className: "relative group/navitem", children: [
|
|
7847
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
7800
7848
|
"div",
|
|
7801
7849
|
{
|
|
7802
7850
|
role: "button",
|
|
@@ -7828,15 +7876,15 @@ function ITSidebar({
|
|
|
7828
7876
|
}
|
|
7829
7877
|
},
|
|
7830
7878
|
children: [
|
|
7831
|
-
item.isActive && !isSidebarCollapsed && /* @__PURE__ */ (0,
|
|
7879
|
+
item.isActive && !isSidebarCollapsed && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7832
7880
|
"div",
|
|
7833
7881
|
{
|
|
7834
7882
|
className: "absolute left-0 top-1/4 bottom-1/4 w-[3px] rounded-r-full transition-all",
|
|
7835
7883
|
style: { backgroundColor: "var(--it-sidebar-active-icon, var(--color-primary-500))", boxShadow: "0 0 10px var(--it-sidebar-active-icon, var(--color-primary-500))" }
|
|
7836
7884
|
}
|
|
7837
7885
|
),
|
|
7838
|
-
/* @__PURE__ */ (0,
|
|
7839
|
-
item.icon && /* @__PURE__ */ (0,
|
|
7886
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: `flex items-center ${!isSidebarCollapsed ? "gap-2.5" : "justify-center"} relative z-10 w-full`, children: [
|
|
7887
|
+
item.icon && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7840
7888
|
"div",
|
|
7841
7889
|
{
|
|
7842
7890
|
className: `transition-all duration-300 flex-shrink-0 flex items-center justify-center`,
|
|
@@ -7849,7 +7897,7 @@ function ITSidebar({
|
|
|
7849
7897
|
children: item.icon
|
|
7850
7898
|
}
|
|
7851
7899
|
),
|
|
7852
|
-
!isSidebarCollapsed && /* @__PURE__ */ (0,
|
|
7900
|
+
!isSidebarCollapsed && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7853
7901
|
ITText,
|
|
7854
7902
|
{
|
|
7855
7903
|
as: "span",
|
|
@@ -7863,15 +7911,15 @@ function ITSidebar({
|
|
|
7863
7911
|
}
|
|
7864
7912
|
)
|
|
7865
7913
|
] }),
|
|
7866
|
-
!isSidebarCollapsed && item.subitems && item.subitems.length > 0 && /* @__PURE__ */ (0,
|
|
7914
|
+
!isSidebarCollapsed && item.subitems && item.subitems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7867
7915
|
"div",
|
|
7868
7916
|
{
|
|
7869
7917
|
className: `flex-shrink-0 transition-transform duration-300 ease-[cubic-bezier(0.2,0,0,1)] ${expandedItems.has(item.id) ? "rotate-180" : ""}`,
|
|
7870
7918
|
style: { color: item.isActive ? "var(--it-sidebar-active-color, var(--color-secondary-900))" : "var(--it-sidebar-icon-color, var(--color-secondary-500))", opacity: 0.7 },
|
|
7871
|
-
children: /* @__PURE__ */ (0,
|
|
7919
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_fa26.FaChevronDown, { className: "w-3 h-3" })
|
|
7872
7920
|
}
|
|
7873
7921
|
),
|
|
7874
|
-
item.badge && /* @__PURE__ */ (0,
|
|
7922
|
+
item.badge && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7875
7923
|
"span",
|
|
7876
7924
|
{
|
|
7877
7925
|
className: `
|
|
@@ -7889,7 +7937,7 @@ function ITSidebar({
|
|
|
7889
7937
|
]
|
|
7890
7938
|
}
|
|
7891
7939
|
),
|
|
7892
|
-
isSidebarCollapsed && /* @__PURE__ */ (0,
|
|
7940
|
+
isSidebarCollapsed && /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
7893
7941
|
"div",
|
|
7894
7942
|
{
|
|
7895
7943
|
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-[70] 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)]",
|
|
@@ -7900,16 +7948,16 @@ function ITSidebar({
|
|
|
7900
7948
|
backdropFilter: "blur(16px)"
|
|
7901
7949
|
},
|
|
7902
7950
|
children: [
|
|
7903
|
-
/* @__PURE__ */ (0,
|
|
7904
|
-
item.icon && /* @__PURE__ */ (0,
|
|
7905
|
-
/* @__PURE__ */ (0,
|
|
7951
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "px-5 py-4 flex items-center gap-3 font-semibold border-b", style: { borderColor: "var(--it-sidebar-border, var(--color-secondary-200))", color: "var(--it-sidebar-active-color, var(--color-secondary-900))" }, children: [
|
|
7952
|
+
item.icon && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { style: { color: "var(--it-sidebar-active-icon, var(--color-primary-500))" }, className: "text-xl drop-shadow-sm", children: item.icon }),
|
|
7953
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ITText, { as: "span", className: "tracking-wide text-[15px]", children: item.label })
|
|
7906
7954
|
] }),
|
|
7907
|
-
item.subitems && item.subitems.length > 0 ? /* @__PURE__ */ (0,
|
|
7955
|
+
item.subitems && item.subitems.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "py-2", children: flattenSubItems(item.subitems).map((subitem) => /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
7908
7956
|
"div",
|
|
7909
7957
|
{
|
|
7910
7958
|
className: `px-5 py-2.5 text-sm flex items-center gap-3 transition-colors relative`,
|
|
7911
7959
|
children: [
|
|
7912
|
-
subitem.isActive && subitemConnector === "|" && /* @__PURE__ */ (0,
|
|
7960
|
+
subitem.isActive && subitemConnector === "|" && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7913
7961
|
"div",
|
|
7914
7962
|
{
|
|
7915
7963
|
className: "absolute left-0 top-1/3 bottom-1/3 w-[2.5px] rounded-r-full",
|
|
@@ -7919,16 +7967,16 @@ function ITSidebar({
|
|
|
7919
7967
|
}
|
|
7920
7968
|
}
|
|
7921
7969
|
),
|
|
7922
|
-
/* @__PURE__ */ (0,
|
|
7923
|
-
/* @__PURE__ */ (0,
|
|
7970
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: `w-1.5 h-1.5 rounded-full transition-all ${subitem.isActive ? "scale-125" : ""}`, style: { backgroundColor: subitem.isActive ? "var(--it-sidebar-active-icon, var(--color-primary-500))" : "var(--it-sidebar-icon-color, var(--color-secondary-400))" } }),
|
|
7971
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ITText, { as: "span", style: { color: subitem.isActive ? "var(--it-sidebar-active-color, var(--color-secondary-900))" : "var(--it-sidebar-label-color, var(--color-secondary-600))", fontWeight: subitem.isActive ? 600 : 500 }, children: subitem.label })
|
|
7924
7972
|
]
|
|
7925
7973
|
},
|
|
7926
7974
|
subitem.id
|
|
7927
|
-
)) }) : /* @__PURE__ */ (0,
|
|
7975
|
+
)) }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ITText, { as: "div", className: "px-5 py-3 text-sm italic", style: { color: "var(--it-sidebar-label-color, var(--color-secondary-400))" }, children: "No hay submen\xFA" })
|
|
7928
7976
|
]
|
|
7929
7977
|
}
|
|
7930
7978
|
),
|
|
7931
|
-
!isSidebarCollapsed && item.subitems && item.subitems.length > 0 && /* @__PURE__ */ (0,
|
|
7979
|
+
!isSidebarCollapsed && item.subitems && item.subitems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { id: submenuId, role: "group", "aria-label": item.label, className: `overflow-hidden transition-all duration-400 ease-[cubic-bezier(0.2,0,0,1)] ${expandedItems.has(item.id) ? "max-h-[1000px] opacity-100 mt-1" : "max-h-0 opacity-0"}`, children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7932
7980
|
"ul",
|
|
7933
7981
|
{
|
|
7934
7982
|
className: "ml-4 flex flex-col gap-0 py-0.5",
|
|
@@ -7950,7 +7998,7 @@ function ITSidebar({
|
|
|
7950
7998
|
// src/components/atoms/slide/slide.tsx
|
|
7951
7999
|
var import_react36 = require("react");
|
|
7952
8000
|
var import_clsx40 = __toESM(require("clsx"), 1);
|
|
7953
|
-
var
|
|
8001
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
7954
8002
|
function ITSlideToggle({
|
|
7955
8003
|
onToggle,
|
|
7956
8004
|
isOn: controlledIsOn,
|
|
@@ -8003,7 +8051,7 @@ function ITSlideToggle({
|
|
|
8003
8051
|
}
|
|
8004
8052
|
};
|
|
8005
8053
|
const { container, knob, translate } = sizeClasses2[size];
|
|
8006
|
-
return /* @__PURE__ */ (0,
|
|
8054
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
8007
8055
|
"div",
|
|
8008
8056
|
{
|
|
8009
8057
|
onClick: toggleSwitch,
|
|
@@ -8023,7 +8071,7 @@ function ITSlideToggle({
|
|
|
8023
8071
|
toggleSwitch();
|
|
8024
8072
|
}
|
|
8025
8073
|
},
|
|
8026
|
-
children: /* @__PURE__ */ (0,
|
|
8074
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
8027
8075
|
"div",
|
|
8028
8076
|
{
|
|
8029
8077
|
className: (0, import_clsx40.default)(
|
|
@@ -8039,7 +8087,7 @@ function ITSlideToggle({
|
|
|
8039
8087
|
|
|
8040
8088
|
// src/components/atoms/slider/slider.tsx
|
|
8041
8089
|
var import_clsx41 = __toESM(require("clsx"), 1);
|
|
8042
|
-
var
|
|
8090
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
8043
8091
|
function ITSlider({
|
|
8044
8092
|
value,
|
|
8045
8093
|
onChange,
|
|
@@ -8050,13 +8098,13 @@ function ITSlider({
|
|
|
8050
8098
|
disabled = false,
|
|
8051
8099
|
className
|
|
8052
8100
|
}) {
|
|
8053
|
-
return /* @__PURE__ */ (0,
|
|
8054
|
-
label && /* @__PURE__ */ (0,
|
|
8101
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: (0, import_clsx41.default)("flex flex-col gap-1.5", className), children: [
|
|
8102
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(ITText, { as: "label", className: "text-xs font-semibold text-secondary-600 dark:text-secondary-400", children: [
|
|
8055
8103
|
label,
|
|
8056
8104
|
": ",
|
|
8057
8105
|
value
|
|
8058
8106
|
] }),
|
|
8059
|
-
/* @__PURE__ */ (0,
|
|
8107
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "relative w-full h-5 flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
8060
8108
|
"input",
|
|
8061
8109
|
{
|
|
8062
8110
|
type: "range",
|
|
@@ -8087,7 +8135,7 @@ function ITSlider({
|
|
|
8087
8135
|
|
|
8088
8136
|
// src/components/molecules/stat-card/stat-card.tsx
|
|
8089
8137
|
var import_clsx42 = __toESM(require("clsx"), 1);
|
|
8090
|
-
var
|
|
8138
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
8091
8139
|
var trendColors = {
|
|
8092
8140
|
up: "text-emerald-600 bg-emerald-50 dark:text-emerald-400 dark:bg-emerald-950/30",
|
|
8093
8141
|
down: "text-rose-600 bg-rose-50 dark:text-rose-400 dark:bg-rose-950/30",
|
|
@@ -8104,7 +8152,7 @@ function ITStatCard({
|
|
|
8104
8152
|
style,
|
|
8105
8153
|
onClick
|
|
8106
8154
|
}) {
|
|
8107
|
-
return /* @__PURE__ */ (0,
|
|
8155
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
|
|
8108
8156
|
"div",
|
|
8109
8157
|
{
|
|
8110
8158
|
className: (0, import_clsx42.default)("rounded-xl p-4 border border-slate-100 dark:border-slate-800", color, className),
|
|
@@ -8113,13 +8161,13 @@ function ITStatCard({
|
|
|
8113
8161
|
role: onClick ? "button" : void 0,
|
|
8114
8162
|
tabIndex: onClick ? 0 : void 0,
|
|
8115
8163
|
children: [
|
|
8116
|
-
/* @__PURE__ */ (0,
|
|
8117
|
-
/* @__PURE__ */ (0,
|
|
8118
|
-
icon && /* @__PURE__ */ (0,
|
|
8164
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex items-start justify-between mb-1", children: [
|
|
8165
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ITText, { as: "span", className: "text-xs font-medium text-slate-400 dark:text-slate-500", children: label }),
|
|
8166
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "text-slate-400", children: icon })
|
|
8119
8167
|
] }),
|
|
8120
|
-
/* @__PURE__ */ (0,
|
|
8121
|
-
/* @__PURE__ */ (0,
|
|
8122
|
-
trend && /* @__PURE__ */ (0,
|
|
8168
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex items-baseline gap-2", children: [
|
|
8169
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ITText, { as: "span", className: "text-2xl font-bold text-slate-800 dark:text-white", children: value }),
|
|
8170
|
+
trend && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ITText, { as: "span", className: (0, import_clsx42.default)("text-[11px] font-semibold px-1.5 py-0.5 rounded-md", trendColors[trendDirection]), children: trend })
|
|
8123
8171
|
] })
|
|
8124
8172
|
]
|
|
8125
8173
|
}
|
|
@@ -8132,7 +8180,7 @@ var import_react37 = __toESM(require("react"), 1);
|
|
|
8132
8180
|
var import_fa27 = require("react-icons/fa");
|
|
8133
8181
|
var import_md2 = require("react-icons/md");
|
|
8134
8182
|
var import_date_fns3 = require("date-fns");
|
|
8135
|
-
var
|
|
8183
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
8136
8184
|
function ITTable({
|
|
8137
8185
|
columns,
|
|
8138
8186
|
data = [],
|
|
@@ -8288,14 +8336,14 @@ function ITTable({
|
|
|
8288
8336
|
if (currentValue === true) return "Filtrar solo verdaderos";
|
|
8289
8337
|
return "Filtrar solo falsos";
|
|
8290
8338
|
};
|
|
8291
|
-
return /* @__PURE__ */ (0,
|
|
8339
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8292
8340
|
"button",
|
|
8293
8341
|
{
|
|
8294
8342
|
className: "flex items-center justify-center cursor-pointer focus:outline-none focus:ring-2 focus:ring-slate-400 focus:ring-offset-2 rounded-full p-1 transition-all duration-200",
|
|
8295
8343
|
onClick: () => handleFilterChange(col.key, nextValue),
|
|
8296
8344
|
"aria-label": `${getToggleLabel()} para ${col.label}`,
|
|
8297
8345
|
title: `${getToggleLabel()} para ${col.label}`,
|
|
8298
|
-
children: /* @__PURE__ */ (0,
|
|
8346
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "relative w-10 h-5 bg-secondary-300 rounded-full", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8299
8347
|
"div",
|
|
8300
8348
|
{
|
|
8301
8349
|
className: (0, import_clsx43.default)(
|
|
@@ -8313,7 +8361,7 @@ function ITTable({
|
|
|
8313
8361
|
}
|
|
8314
8362
|
if (col.filter === "catalog" && col.catalogOptions) {
|
|
8315
8363
|
if (col.catalogOptions.loading) {
|
|
8316
|
-
return /* @__PURE__ */ (0,
|
|
8364
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8317
8365
|
import_fa27.FaSpinner,
|
|
8318
8366
|
{
|
|
8319
8367
|
className: "animate-spin",
|
|
@@ -8323,9 +8371,9 @@ function ITTable({
|
|
|
8323
8371
|
);
|
|
8324
8372
|
}
|
|
8325
8373
|
if (col.catalogOptions.error) {
|
|
8326
|
-
return /* @__PURE__ */ (0,
|
|
8374
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ITText, { as: "span", className: "text-danger-500 text-xs", children: "Error cargando" });
|
|
8327
8375
|
}
|
|
8328
|
-
return /* @__PURE__ */ (0,
|
|
8376
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8329
8377
|
ITSelect,
|
|
8330
8378
|
{
|
|
8331
8379
|
name: `filter-${col.key}`,
|
|
@@ -8349,7 +8397,7 @@ function ITTable({
|
|
|
8349
8397
|
}
|
|
8350
8398
|
if (col.filter === "search" && col.catalogOptions) {
|
|
8351
8399
|
if (col.catalogOptions.loading) {
|
|
8352
|
-
return /* @__PURE__ */ (0,
|
|
8400
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8353
8401
|
import_fa27.FaSpinner,
|
|
8354
8402
|
{
|
|
8355
8403
|
className: "animate-spin",
|
|
@@ -8359,10 +8407,10 @@ function ITTable({
|
|
|
8359
8407
|
);
|
|
8360
8408
|
}
|
|
8361
8409
|
if (col.catalogOptions.error) {
|
|
8362
|
-
return /* @__PURE__ */ (0,
|
|
8410
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ITText, { as: "span", className: "text-danger-500 text-xs", children: "Error cargando" });
|
|
8363
8411
|
}
|
|
8364
8412
|
const searchValue = filters[col.key];
|
|
8365
|
-
return /* @__PURE__ */ (0,
|
|
8413
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8366
8414
|
ITSearchSelect,
|
|
8367
8415
|
{
|
|
8368
8416
|
name: `filter-${col.key}`,
|
|
@@ -8385,7 +8433,7 @@ function ITTable({
|
|
|
8385
8433
|
}
|
|
8386
8434
|
if (col.filter === "date") {
|
|
8387
8435
|
const dateValue = filters[col.key];
|
|
8388
|
-
return /* @__PURE__ */ (0,
|
|
8436
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8389
8437
|
ITDatePicker,
|
|
8390
8438
|
{
|
|
8391
8439
|
name: `filter-${col.key}`,
|
|
@@ -8401,7 +8449,7 @@ function ITTable({
|
|
|
8401
8449
|
}
|
|
8402
8450
|
if (col.filter === "date-range") {
|
|
8403
8451
|
const rangeValue = filters[col.key];
|
|
8404
|
-
return /* @__PURE__ */ (0,
|
|
8452
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8405
8453
|
ITDatePicker,
|
|
8406
8454
|
{
|
|
8407
8455
|
name: `filter-${col.key}`,
|
|
@@ -8416,7 +8464,7 @@ function ITTable({
|
|
|
8416
8464
|
}
|
|
8417
8465
|
);
|
|
8418
8466
|
}
|
|
8419
|
-
return /* @__PURE__ */ (0,
|
|
8467
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8420
8468
|
ITInput,
|
|
8421
8469
|
{
|
|
8422
8470
|
name: `filter-${col.key}`,
|
|
@@ -8438,14 +8486,14 @@ function ITTable({
|
|
|
8438
8486
|
case "number":
|
|
8439
8487
|
return typeof value === "number" && col.currencyMX ? formatCurrencyMX(value) : value;
|
|
8440
8488
|
case "boolean":
|
|
8441
|
-
return value ? /* @__PURE__ */ (0,
|
|
8489
|
+
return value ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8442
8490
|
import_fa27.FaCheck,
|
|
8443
8491
|
{
|
|
8444
8492
|
className: "text-success-500",
|
|
8445
8493
|
"aria-label": "Verdadero",
|
|
8446
8494
|
title: "Verdadero"
|
|
8447
8495
|
}
|
|
8448
|
-
) : /* @__PURE__ */ (0,
|
|
8496
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8449
8497
|
import_fa27.FaTimes,
|
|
8450
8498
|
{
|
|
8451
8499
|
className: "text-danger-500",
|
|
@@ -8470,12 +8518,12 @@ function ITTable({
|
|
|
8470
8518
|
const renderDefaultCard = (row) => {
|
|
8471
8519
|
const dataCols = columns.filter((c) => c.type !== "actions");
|
|
8472
8520
|
const actionCol = columns.find((c) => c.type === "actions");
|
|
8473
|
-
return /* @__PURE__ */ (0,
|
|
8474
|
-
dataCols.map((col) => /* @__PURE__ */ (0,
|
|
8475
|
-
/* @__PURE__ */ (0,
|
|
8476
|
-
/* @__PURE__ */ (0,
|
|
8521
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "bg-white dark:bg-slate-800 rounded-lg border border-slate-200 dark:border-slate-700 p-3 space-y-2 shadow-sm", children: [
|
|
8522
|
+
dataCols.map((col) => /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [
|
|
8523
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "text-[10px] font-bold uppercase tracking-wider text-slate-400 whitespace-nowrap flex-shrink-0 min-w-[70px]", children: col.label }),
|
|
8524
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "text-sm font-medium text-slate-800 dark:text-white text-right truncate", children: renderCellContent(col, row) })
|
|
8477
8525
|
] }, col.key)),
|
|
8478
|
-
actionCol?.actions && /* @__PURE__ */ (0,
|
|
8526
|
+
actionCol?.actions && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "flex items-center justify-end gap-2 pt-2 border-t border-slate-100 dark:border-slate-700", children: actionCol.actions(row) })
|
|
8479
8527
|
] });
|
|
8480
8528
|
};
|
|
8481
8529
|
const handleRowClick = (row) => (event) => {
|
|
@@ -8489,61 +8537,61 @@ function ITTable({
|
|
|
8489
8537
|
event.preventDefault();
|
|
8490
8538
|
onRowClick(row, event);
|
|
8491
8539
|
};
|
|
8492
|
-
return /* @__PURE__ */ (0,
|
|
8493
|
-
title && /* @__PURE__ */ (0,
|
|
8494
|
-
/* @__PURE__ */ (0,
|
|
8495
|
-
/* @__PURE__ */ (0,
|
|
8496
|
-
/* @__PURE__ */ (0,
|
|
8540
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { ref: rootRef, className: (0, import_clsx43.default)("space-y-4 w-full", containerClassName), children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: tableContainer, style: { backgroundColor: "var(--color-table-rowBg, #ffffff)" }, children: [
|
|
8541
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "px-6 py-5 flex items-center justify-between", style: { backgroundColor: "var(--color-table-rowBg, #ffffff)" }, children: [
|
|
8542
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ITText, { as: "h2", className: "text-xl font-bold text-secondary-900 leading-tight", children: title }),
|
|
8543
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-center bg-slate-100 dark:bg-slate-800/80 rounded-lg p-0.5 border border-slate-200 dark:border-slate-700/50", children: [
|
|
8544
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
|
|
8497
8545
|
"button",
|
|
8498
8546
|
{
|
|
8499
8547
|
onClick: () => setViewMode("table"),
|
|
8500
8548
|
disabled: forcedCards,
|
|
8501
8549
|
className: `flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs font-semibold transition-all ${effectiveView === "table" ? "bg-white dark:bg-slate-900 text-slate-900 dark:text-white shadow-sm border border-slate-200/50 dark:border-slate-700" : "text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-200"}`,
|
|
8502
8550
|
children: [
|
|
8503
|
-
/* @__PURE__ */ (0,
|
|
8551
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_fa27.FaTable, { size: 11 }),
|
|
8504
8552
|
"Table"
|
|
8505
8553
|
]
|
|
8506
8554
|
}
|
|
8507
8555
|
),
|
|
8508
|
-
/* @__PURE__ */ (0,
|
|
8556
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
|
|
8509
8557
|
"button",
|
|
8510
8558
|
{
|
|
8511
8559
|
onClick: () => setViewMode("cards"),
|
|
8512
8560
|
className: `flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs font-semibold transition-all ${effectiveView === "cards" ? "bg-white dark:bg-slate-900 text-slate-900 dark:text-white shadow-sm border border-slate-200/50 dark:border-slate-700" : "text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-200"}`,
|
|
8513
8561
|
children: [
|
|
8514
|
-
/* @__PURE__ */ (0,
|
|
8562
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_fa27.FaThLarge, { size: 11 }),
|
|
8515
8563
|
"Cards"
|
|
8516
8564
|
]
|
|
8517
8565
|
}
|
|
8518
8566
|
)
|
|
8519
8567
|
] })
|
|
8520
8568
|
] }),
|
|
8521
|
-
!title && /* @__PURE__ */ (0,
|
|
8522
|
-
/* @__PURE__ */ (0,
|
|
8569
|
+
!title && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "flex justify-end px-4 pt-3", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-center bg-slate-100 dark:bg-slate-800/80 rounded-lg p-0.5 border border-slate-200 dark:border-slate-700/50", children: [
|
|
8570
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
|
|
8523
8571
|
"button",
|
|
8524
8572
|
{
|
|
8525
8573
|
onClick: () => setViewMode("table"),
|
|
8526
8574
|
disabled: forcedCards,
|
|
8527
8575
|
className: `flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs font-semibold transition-all ${effectiveView === "table" ? "bg-white dark:bg-slate-900 text-slate-900 dark:text-white shadow-sm border border-slate-200/50 dark:border-slate-700" : "text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-200"}`,
|
|
8528
8576
|
children: [
|
|
8529
|
-
/* @__PURE__ */ (0,
|
|
8577
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_fa27.FaTable, { size: 11 }),
|
|
8530
8578
|
"Table"
|
|
8531
8579
|
]
|
|
8532
8580
|
}
|
|
8533
8581
|
),
|
|
8534
|
-
/* @__PURE__ */ (0,
|
|
8582
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
|
|
8535
8583
|
"button",
|
|
8536
8584
|
{
|
|
8537
8585
|
onClick: () => setViewMode("cards"),
|
|
8538
8586
|
className: `flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs font-semibold transition-all ${effectiveView === "cards" ? "bg-white dark:bg-slate-900 text-slate-900 dark:text-white shadow-sm border border-slate-200/50 dark:border-slate-700" : "text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-200"}`,
|
|
8539
8587
|
children: [
|
|
8540
|
-
/* @__PURE__ */ (0,
|
|
8588
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_fa27.FaThLarge, { size: 11 }),
|
|
8541
8589
|
"Cards"
|
|
8542
8590
|
]
|
|
8543
8591
|
}
|
|
8544
8592
|
)
|
|
8545
8593
|
] }) }),
|
|
8546
|
-
effectiveView === "cards" ? /* @__PURE__ */ (0,
|
|
8594
|
+
effectiveView === "cards" ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "p-4 space-y-3 max-h-[400px] overflow-y-auto", children: currentData.length > 0 ? currentData.map((row, i) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8547
8595
|
"div",
|
|
8548
8596
|
{
|
|
8549
8597
|
className: (0, import_clsx43.default)(tableCardHover, onRowClick && tableCardClickable),
|
|
@@ -8554,16 +8602,16 @@ function ITTable({
|
|
|
8554
8602
|
children: renderCard ? renderCard(row) : renderDefaultCard(row)
|
|
8555
8603
|
},
|
|
8556
8604
|
i
|
|
8557
|
-
)) : /* @__PURE__ */ (0,
|
|
8558
|
-
/* @__PURE__ */ (0,
|
|
8559
|
-
/* @__PURE__ */ (0,
|
|
8560
|
-
] }) }) : /* @__PURE__ */ (0,
|
|
8605
|
+
)) : /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: (0, import_clsx43.default)(tableEmptyContent, "py-12"), children: [
|
|
8606
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ITText, { as: "span", className: "text-lg", children: "No se encontraron resultados" }),
|
|
8607
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ITText, { as: "span", className: "text-sm mt-1", children: "Intenta ajustar los filtros" })
|
|
8608
|
+
] }) }) : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8561
8609
|
"div",
|
|
8562
8610
|
{
|
|
8563
8611
|
ref: isTableVirtual ? scrollRef : void 0,
|
|
8564
8612
|
className: isTableVirtual ? "overflow-x-auto overflow-y-auto" : "overflow-x-auto",
|
|
8565
8613
|
style: isTableVirtual ? { maxHeight: virtualizedMaxHeight } : void 0,
|
|
8566
|
-
children: /* @__PURE__ */ (0,
|
|
8614
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
|
|
8567
8615
|
"table",
|
|
8568
8616
|
{
|
|
8569
8617
|
className: (0, import_clsx43.default)(
|
|
@@ -8576,14 +8624,14 @@ function ITTable({
|
|
|
8576
8624
|
style: isFixed ? { tableLayout: "fixed" } : void 0,
|
|
8577
8625
|
"aria-rowcount": isTableVirtual ? currentData.length + 1 : void 0,
|
|
8578
8626
|
children: [
|
|
8579
|
-
hasColumnWidths && /* @__PURE__ */ (0,
|
|
8627
|
+
hasColumnWidths && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("colgroup", { children: columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8580
8628
|
"col",
|
|
8581
8629
|
{
|
|
8582
8630
|
style: col.width != null ? { width: typeof col.width === "number" ? `${col.width}px` : col.width } : void 0
|
|
8583
8631
|
},
|
|
8584
8632
|
col.key
|
|
8585
8633
|
)) }),
|
|
8586
|
-
/* @__PURE__ */ (0,
|
|
8634
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8587
8635
|
"tr",
|
|
8588
8636
|
{
|
|
8589
8637
|
className: (0, import_clsx43.default)(tableHeaderRow, "dark:text-slate-200"),
|
|
@@ -8591,7 +8639,7 @@ function ITTable({
|
|
|
8591
8639
|
children: columns.map((col) => {
|
|
8592
8640
|
const pin = pinnedMeta[col.key];
|
|
8593
8641
|
const isPinned = pin != null;
|
|
8594
|
-
return /* @__PURE__ */ (0,
|
|
8642
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8595
8643
|
"th",
|
|
8596
8644
|
{
|
|
8597
8645
|
scope: "col",
|
|
@@ -8608,20 +8656,20 @@ function ITTable({
|
|
|
8608
8656
|
...isStickyHeader || isPinned ? { backgroundColor: "var(--color-table-headerBg, #f8fafc)" } : {},
|
|
8609
8657
|
...isPinned ? pin.side === "left" ? { left: pin.offset } : { right: pin.offset } : {}
|
|
8610
8658
|
} : void 0,
|
|
8611
|
-
children: /* @__PURE__ */ (0,
|
|
8612
|
-
/* @__PURE__ */ (0,
|
|
8613
|
-
/* @__PURE__ */ (0,
|
|
8614
|
-
col.sortable && col.type !== "actions" && /* @__PURE__ */ (0,
|
|
8659
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: isFixed ? "flex flex-col gap-3" : "flex flex-col gap-3 min-w-[150px]", children: [
|
|
8660
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [
|
|
8661
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ITText, { as: "span", className: "text-slate-900 dark:text-white font-bold", children: col.label }),
|
|
8662
|
+
col.sortable && col.type !== "actions" && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8615
8663
|
"button",
|
|
8616
8664
|
{
|
|
8617
8665
|
onClick: () => handleSort(col.key),
|
|
8618
8666
|
className: `p-1 rounded-md transition-colors ${sortConfig?.key === col.key ? "bg-secondary-200 text-secondary-900" : "hover:bg-secondary-200 text-secondary-400 hover:text-secondary-700"}`,
|
|
8619
8667
|
title: `Ordenar por ${col.label}`,
|
|
8620
|
-
children: /* @__PURE__ */ (0,
|
|
8668
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_md2.MdOutlineSwapVert, { className: "w-4 h-4", "aria-hidden": "true" })
|
|
8621
8669
|
}
|
|
8622
8670
|
)
|
|
8623
8671
|
] }),
|
|
8624
|
-
/* @__PURE__ */ (0,
|
|
8672
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "w-full", children: col.filter ? renderFilterInput(col) : null })
|
|
8625
8673
|
] })
|
|
8626
8674
|
},
|
|
8627
8675
|
col.key
|
|
@@ -8629,11 +8677,11 @@ function ITTable({
|
|
|
8629
8677
|
})
|
|
8630
8678
|
}
|
|
8631
8679
|
) }),
|
|
8632
|
-
/* @__PURE__ */ (0,
|
|
8633
|
-
isTableVirtual && topSpacerHeight > 0 && /* @__PURE__ */ (0,
|
|
8680
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("tbody", { className: (0, import_clsx43.default)(tableBody, "dark:divide-slate-700/30"), children: currentData.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_jsx_runtime61.Fragment, { children: [
|
|
8681
|
+
isTableVirtual && topSpacerHeight > 0 && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("tr", { "aria-hidden": "true", style: { height: topSpacerHeight }, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("td", { colSpan: columnCount, style: { padding: 0, border: 0 } }) }),
|
|
8634
8682
|
windowData.map((row, windowIndex) => {
|
|
8635
8683
|
const absoluteIndex = isTableVirtual ? startIndex + windowIndex : windowIndex;
|
|
8636
|
-
return /* @__PURE__ */ (0,
|
|
8684
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8637
8685
|
"tr",
|
|
8638
8686
|
{
|
|
8639
8687
|
"aria-rowindex": isTableVirtual ? absoluteIndex + 2 : void 0,
|
|
@@ -8650,7 +8698,7 @@ function ITTable({
|
|
|
8650
8698
|
const truncateTitle = col.truncate && (typeof rawValue === "string" || typeof rawValue === "number") ? String(rawValue) : void 0;
|
|
8651
8699
|
const pin = pinnedMeta[col.key];
|
|
8652
8700
|
const isPinned = pin != null;
|
|
8653
|
-
return /* @__PURE__ */ (0,
|
|
8701
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8654
8702
|
"td",
|
|
8655
8703
|
{
|
|
8656
8704
|
className: (0, import_clsx43.default)(
|
|
@@ -8665,7 +8713,7 @@ function ITTable({
|
|
|
8665
8713
|
...isPinned ? pin.side === "left" ? { left: pin.offset } : { right: pin.offset } : {}
|
|
8666
8714
|
} : void 0,
|
|
8667
8715
|
title: truncateTitle,
|
|
8668
|
-
children: col.type === "actions" ? /* @__PURE__ */ (0,
|
|
8716
|
+
children: col.type === "actions" ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: tableActionsCell, children: renderCellContent(col, row) }) : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: (0, import_clsx43.default)(tableCellText, col.truncate && "truncate"), children: renderCellContent(col, row) })
|
|
8669
8717
|
},
|
|
8670
8718
|
`${absoluteIndex}-${col.key}`
|
|
8671
8719
|
);
|
|
@@ -8674,17 +8722,17 @@ function ITTable({
|
|
|
8674
8722
|
absoluteIndex
|
|
8675
8723
|
);
|
|
8676
8724
|
}),
|
|
8677
|
-
isTableVirtual && bottomSpacerHeight > 0 && /* @__PURE__ */ (0,
|
|
8678
|
-
] }) : /* @__PURE__ */ (0,
|
|
8679
|
-
/* @__PURE__ */ (0,
|
|
8680
|
-
/* @__PURE__ */ (0,
|
|
8725
|
+
isTableVirtual && bottomSpacerHeight > 0 && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("tr", { "aria-hidden": "true", style: { height: bottomSpacerHeight }, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("td", { colSpan: columnCount, style: { padding: 0, border: 0 } }) })
|
|
8726
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("tr", { children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("td", { colSpan: columns.length, className: "px-6 py-12 text-center", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: tableEmptyContent, children: [
|
|
8727
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ITText, { as: "span", className: "text-lg", children: "No se encontraron resultados" }),
|
|
8728
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ITText, { as: "span", className: "text-sm mt-1", children: "Intenta ajustar los filtros" })
|
|
8681
8729
|
] }) }) }) })
|
|
8682
8730
|
]
|
|
8683
8731
|
}
|
|
8684
8732
|
)
|
|
8685
8733
|
}
|
|
8686
8734
|
),
|
|
8687
|
-
/* @__PURE__ */ (0,
|
|
8735
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "rounded-b-xl px-6 py-4", style: { backgroundColor: "var(--color-table-rowBg, #ffffff)" }, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8688
8736
|
ITPagination,
|
|
8689
8737
|
{
|
|
8690
8738
|
currentPage,
|
|
@@ -8702,7 +8750,7 @@ function ITTable({
|
|
|
8702
8750
|
|
|
8703
8751
|
// src/components/atoms/textarea/textarea.tsx
|
|
8704
8752
|
var import_clsx44 = __toESM(require("clsx"), 1);
|
|
8705
|
-
var
|
|
8753
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
8706
8754
|
var resizeMap = {
|
|
8707
8755
|
none: "resize-none",
|
|
8708
8756
|
vertical: "resize-y",
|
|
@@ -8722,9 +8770,9 @@ function ITTextarea({
|
|
|
8722
8770
|
maxLength,
|
|
8723
8771
|
resize = "vertical"
|
|
8724
8772
|
}) {
|
|
8725
|
-
return /* @__PURE__ */ (0,
|
|
8726
|
-
label && /* @__PURE__ */ (0,
|
|
8727
|
-
/* @__PURE__ */ (0,
|
|
8773
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: (0, import_clsx44.default)("flex flex-col gap-1.5", className), children: [
|
|
8774
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(ITText, { as: "label", className: inputLabel(!!error), htmlFor: name, children: label }),
|
|
8775
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
8728
8776
|
"textarea",
|
|
8729
8777
|
{
|
|
8730
8778
|
id: name,
|
|
@@ -8744,14 +8792,14 @@ function ITTextarea({
|
|
|
8744
8792
|
)
|
|
8745
8793
|
}
|
|
8746
8794
|
),
|
|
8747
|
-
error && /* @__PURE__ */ (0,
|
|
8795
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(ITText, { as: "span", className: inputError, children: error })
|
|
8748
8796
|
] });
|
|
8749
8797
|
}
|
|
8750
8798
|
|
|
8751
8799
|
// src/components/molecules/tabs/tabs.tsx
|
|
8752
8800
|
var import_react38 = require("react");
|
|
8753
8801
|
var import_clsx45 = require("clsx");
|
|
8754
|
-
var
|
|
8802
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
8755
8803
|
var ITTabs = ({
|
|
8756
8804
|
items,
|
|
8757
8805
|
defaultActiveId,
|
|
@@ -8767,14 +8815,14 @@ var ITTabs = ({
|
|
|
8767
8815
|
if (onChange) onChange(id);
|
|
8768
8816
|
};
|
|
8769
8817
|
const activeContent = items.find((item) => item.id === activeId)?.content;
|
|
8770
|
-
return /* @__PURE__ */ (0,
|
|
8771
|
-
/* @__PURE__ */ (0,
|
|
8818
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: (0, import_clsx45.clsx)("w-full", containerClassName), children: [
|
|
8819
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: (0, import_clsx45.clsx)(
|
|
8772
8820
|
"flex border-secondary-200 mb-4",
|
|
8773
8821
|
variant === "line" ? "border-b" : "gap-2 p-1 bg-secondary-100 rounded-lg w-fit",
|
|
8774
8822
|
className
|
|
8775
8823
|
), children: items.map((item) => {
|
|
8776
8824
|
const isActive = item.id === activeId;
|
|
8777
|
-
return /* @__PURE__ */ (0,
|
|
8825
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
|
|
8778
8826
|
"button",
|
|
8779
8827
|
{
|
|
8780
8828
|
onClick: () => handleTabClick(item.id, item.disabled),
|
|
@@ -8794,21 +8842,21 @@ var ITTabs = ({
|
|
|
8794
8842
|
item.disabled && "opacity-50 cursor-not-allowed"
|
|
8795
8843
|
),
|
|
8796
8844
|
children: [
|
|
8797
|
-
item.icon && /* @__PURE__ */ (0,
|
|
8798
|
-
/* @__PURE__ */ (0,
|
|
8845
|
+
item.icon && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "w-4 h-4", children: item.icon }),
|
|
8846
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(ITText, { as: "span", children: item.label })
|
|
8799
8847
|
]
|
|
8800
8848
|
},
|
|
8801
8849
|
item.id
|
|
8802
8850
|
);
|
|
8803
8851
|
}) }),
|
|
8804
|
-
/* @__PURE__ */ (0,
|
|
8852
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "tab-content animate-fadeIn", children: activeContent })
|
|
8805
8853
|
] });
|
|
8806
8854
|
};
|
|
8807
8855
|
var tabs_default = ITTabs;
|
|
8808
8856
|
|
|
8809
8857
|
// src/components/organisms/triple-filter/tripleFilter.tsx
|
|
8810
8858
|
var import_clsx46 = __toESM(require("clsx"), 1);
|
|
8811
|
-
var
|
|
8859
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
8812
8860
|
var colorMap2 = {
|
|
8813
8861
|
primary: "text-primary-600",
|
|
8814
8862
|
secondary: "text-secondary-600",
|
|
@@ -8827,11 +8875,11 @@ var ITTripleFilter = ({
|
|
|
8827
8875
|
color = "primary",
|
|
8828
8876
|
className
|
|
8829
8877
|
}) => {
|
|
8830
|
-
return /* @__PURE__ */ (0,
|
|
8878
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
8831
8879
|
"div",
|
|
8832
8880
|
{
|
|
8833
8881
|
className: (0, import_clsx46.default)("flex bg-slate-100 p-1 rounded-xl gap-1 w-fit", className),
|
|
8834
|
-
children: options.map((option) => /* @__PURE__ */ (0,
|
|
8882
|
+
children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
8835
8883
|
"button",
|
|
8836
8884
|
{
|
|
8837
8885
|
onClick: () => onChange(option.value),
|
|
@@ -8839,7 +8887,7 @@ var ITTripleFilter = ({
|
|
|
8839
8887
|
"px-4 py-1.5 rounded-lg text-[10px] font-bold uppercase tracking-wider transition-all duration-200 whitespace-nowrap",
|
|
8840
8888
|
value === option.value ? (0, import_clsx46.default)("bg-white shadow-sm", colorMap2[color]) : "text-slate-400 hover:text-slate-600"
|
|
8841
8889
|
),
|
|
8842
|
-
children: /* @__PURE__ */ (0,
|
|
8890
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(ITText, { as: "span", children: option.label })
|
|
8843
8891
|
},
|
|
8844
8892
|
String(option.value)
|
|
8845
8893
|
))
|
|
@@ -8862,7 +8910,7 @@ var positionStyles = {
|
|
|
8862
8910
|
var import_clsx47 = __toESM(require("clsx"), 1);
|
|
8863
8911
|
var import_react39 = require("react");
|
|
8864
8912
|
var import_fa28 = require("react-icons/fa");
|
|
8865
|
-
var
|
|
8913
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
8866
8914
|
function ITToast({
|
|
8867
8915
|
message,
|
|
8868
8916
|
type = "info",
|
|
@@ -8891,18 +8939,18 @@ function ITToast({
|
|
|
8891
8939
|
const TypeIcon = () => {
|
|
8892
8940
|
switch (type) {
|
|
8893
8941
|
case "success":
|
|
8894
|
-
return /* @__PURE__ */ (0,
|
|
8942
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_fa28.FaCheckCircle, { className: "w-5 h-5 flex-shrink-0" });
|
|
8895
8943
|
case "error":
|
|
8896
8944
|
case "danger":
|
|
8897
|
-
return /* @__PURE__ */ (0,
|
|
8945
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_fa28.FaTimesCircle, { className: "w-5 h-5 flex-shrink-0" });
|
|
8898
8946
|
case "warning":
|
|
8899
|
-
return /* @__PURE__ */ (0,
|
|
8947
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_fa28.FaExclamationTriangle, { className: "w-5 h-5 flex-shrink-0" });
|
|
8900
8948
|
case "info":
|
|
8901
8949
|
default:
|
|
8902
|
-
return /* @__PURE__ */ (0,
|
|
8950
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_fa28.FaInfoCircle, { className: "w-5 h-5 flex-shrink-0" });
|
|
8903
8951
|
}
|
|
8904
8952
|
};
|
|
8905
|
-
return /* @__PURE__ */ (0,
|
|
8953
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
|
|
8906
8954
|
"div",
|
|
8907
8955
|
{
|
|
8908
8956
|
className: (0, import_clsx47.default)(
|
|
@@ -8918,17 +8966,17 @@ function ITToast({
|
|
|
8918
8966
|
style: { backgroundColor },
|
|
8919
8967
|
role: "alert",
|
|
8920
8968
|
children: [
|
|
8921
|
-
/* @__PURE__ */ (0,
|
|
8922
|
-
/* @__PURE__ */ (0,
|
|
8923
|
-
/* @__PURE__ */ (0,
|
|
8969
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
8970
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(TypeIcon, {}),
|
|
8971
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(ITText, { as: "span", className: "font-medium text-sm sm:text-base leading-snug", children: message })
|
|
8924
8972
|
] }),
|
|
8925
|
-
/* @__PURE__ */ (0,
|
|
8973
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
8926
8974
|
"button",
|
|
8927
8975
|
{
|
|
8928
8976
|
onClick: handleClose,
|
|
8929
8977
|
className: "p-1.5 rounded-full hover:bg-black/15 transition-colors focus:outline-none focus:ring-2 focus:ring-white/50",
|
|
8930
8978
|
"aria-label": "Close notification",
|
|
8931
|
-
children: /* @__PURE__ */ (0,
|
|
8979
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_fa28.FaTimes, { className: "w-4 h-4" })
|
|
8932
8980
|
}
|
|
8933
8981
|
)
|
|
8934
8982
|
]
|
|
@@ -8955,7 +9003,7 @@ var toolbarActions = [
|
|
|
8955
9003
|
// src/components/atoms/tooltip/tooltip.tsx
|
|
8956
9004
|
var import_react40 = require("react");
|
|
8957
9005
|
var import_clsx48 = __toESM(require("clsx"), 1);
|
|
8958
|
-
var
|
|
9006
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
8959
9007
|
var positionClasses2 = {
|
|
8960
9008
|
top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
|
|
8961
9009
|
bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
|
|
@@ -8984,7 +9032,7 @@ function ITTooltip({
|
|
|
8984
9032
|
clearTimeout(timeout);
|
|
8985
9033
|
setVisible(false);
|
|
8986
9034
|
};
|
|
8987
|
-
return /* @__PURE__ */ (0,
|
|
9035
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
|
|
8988
9036
|
"div",
|
|
8989
9037
|
{
|
|
8990
9038
|
className: (0, import_clsx48.default)("relative inline-flex", className),
|
|
@@ -8992,9 +9040,9 @@ function ITTooltip({
|
|
|
8992
9040
|
onMouseLeave: handleMouseLeave,
|
|
8993
9041
|
children: [
|
|
8994
9042
|
children,
|
|
8995
|
-
visible && /* @__PURE__ */ (0,
|
|
8996
|
-
/* @__PURE__ */ (0,
|
|
8997
|
-
/* @__PURE__ */ (0,
|
|
9043
|
+
visible && /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: (0, import_clsx48.default)("absolute z-[70] pointer-events-none", positionClasses2[position]), children: [
|
|
9044
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "bg-slate-800 dark:bg-slate-700 text-white text-xs rounded-lg px-2.5 py-1.5 whitespace-nowrap shadow-lg", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(ITText, { as: "span", children: content }) }),
|
|
9045
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: (0, import_clsx48.default)("absolute", arrowClasses[position]) })
|
|
8998
9046
|
] })
|
|
8999
9047
|
]
|
|
9000
9048
|
}
|
|
@@ -9002,16 +9050,16 @@ function ITTooltip({
|
|
|
9002
9050
|
}
|
|
9003
9051
|
|
|
9004
9052
|
// src/components/molecules/wysiwyg/wysiwyg.tsx
|
|
9005
|
-
var
|
|
9053
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
9006
9054
|
var INLINE_TAGS = /* @__PURE__ */ new Set(["STRONG", "B", "EM", "I", "U", "MARK"]);
|
|
9007
9055
|
var ACTION_META = {
|
|
9008
|
-
bold: { label: "Negrita", icon: /* @__PURE__ */ (0,
|
|
9009
|
-
italic: { label: "It\xE1lica", icon: /* @__PURE__ */ (0,
|
|
9010
|
-
underline: { label: "Subrayado", icon: /* @__PURE__ */ (0,
|
|
9011
|
-
highlight: { label: "Marcador", icon: /* @__PURE__ */ (0,
|
|
9012
|
-
ul: { label: "Lista con vi\xF1etas", icon: /* @__PURE__ */ (0,
|
|
9013
|
-
ol: { label: "Lista numerada", icon: /* @__PURE__ */ (0,
|
|
9014
|
-
clear: { label: "Limpiar formato", icon: /* @__PURE__ */ (0,
|
|
9056
|
+
bold: { label: "Negrita", icon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_fa29.FaBold, {}) },
|
|
9057
|
+
italic: { label: "It\xE1lica", icon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_fa29.FaItalic, {}) },
|
|
9058
|
+
underline: { label: "Subrayado", icon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_fa29.FaUnderline, {}) },
|
|
9059
|
+
highlight: { label: "Marcador", icon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_fa29.FaHighlighter, {}) },
|
|
9060
|
+
ul: { label: "Lista con vi\xF1etas", icon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_fa29.FaListUl, {}) },
|
|
9061
|
+
ol: { label: "Lista numerada", icon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_fa29.FaListOl, {}) },
|
|
9062
|
+
clear: { label: "Limpiar formato", icon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_fa29.FaEraser, {}) }
|
|
9015
9063
|
};
|
|
9016
9064
|
function ITWysiwyg({
|
|
9017
9065
|
value,
|
|
@@ -9427,7 +9475,7 @@ function ITWysiwyg({
|
|
|
9427
9475
|
}) => {
|
|
9428
9476
|
const meta = ACTION_META[action];
|
|
9429
9477
|
const isActive = !!active[action];
|
|
9430
|
-
return /* @__PURE__ */ (0,
|
|
9478
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ITTooltip, { content: meta.label, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
9431
9479
|
"button",
|
|
9432
9480
|
{
|
|
9433
9481
|
type: "button",
|
|
@@ -9447,9 +9495,9 @@ function ITWysiwyg({
|
|
|
9447
9495
|
}
|
|
9448
9496
|
) });
|
|
9449
9497
|
};
|
|
9450
|
-
return /* @__PURE__ */ (0,
|
|
9451
|
-
label && /* @__PURE__ */ (0,
|
|
9452
|
-
/* @__PURE__ */ (0,
|
|
9498
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: inputWrapper(className), children: [
|
|
9499
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ITText, { as: "label", className: inputLabel(!!error), htmlFor: name, children: label }),
|
|
9500
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
|
|
9453
9501
|
"div",
|
|
9454
9502
|
{
|
|
9455
9503
|
className: (0, import_clsx49.default)(
|
|
@@ -9458,20 +9506,20 @@ function ITWysiwyg({
|
|
|
9458
9506
|
isLocked && "opacity-50 cursor-not-allowed bg-secondary-100 dark:bg-slate-800"
|
|
9459
9507
|
),
|
|
9460
9508
|
children: [
|
|
9461
|
-
/* @__PURE__ */ (0,
|
|
9509
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
9462
9510
|
"div",
|
|
9463
9511
|
{
|
|
9464
9512
|
className: (0, import_clsx49.default)(
|
|
9465
9513
|
"flex flex-wrap items-center gap-0.5 px-1.5 py-1 border-b border-secondary-200 bg-secondary-50 dark:bg-slate-800",
|
|
9466
9514
|
isLocked && "bg-secondary-100 dark:bg-slate-900"
|
|
9467
9515
|
),
|
|
9468
|
-
children: toolbar.map((action, i) => /* @__PURE__ */ (0,
|
|
9469
|
-
i > 0 && (action === "ul" || action === "ol" || action === "clear") && /* @__PURE__ */ (0,
|
|
9470
|
-
/* @__PURE__ */ (0,
|
|
9516
|
+
children: toolbar.map((action, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("span", { className: "flex items-center", children: [
|
|
9517
|
+
i > 0 && (action === "ul" || action === "ol" || action === "clear") && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("span", { className: "mx-1 h-4 w-px bg-secondary-200 dark:bg-slate-600" }),
|
|
9518
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ToolbarButton, { action })
|
|
9471
9519
|
] }, action))
|
|
9472
9520
|
}
|
|
9473
9521
|
),
|
|
9474
|
-
/* @__PURE__ */ (0,
|
|
9522
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
9475
9523
|
"div",
|
|
9476
9524
|
{
|
|
9477
9525
|
id: name,
|
|
@@ -9505,7 +9553,7 @@ function ITWysiwyg({
|
|
|
9505
9553
|
]
|
|
9506
9554
|
}
|
|
9507
9555
|
),
|
|
9508
|
-
error && /* @__PURE__ */ (0,
|
|
9556
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ITText, { as: "span", className: inputError, children: error })
|
|
9509
9557
|
] });
|
|
9510
9558
|
}
|
|
9511
9559
|
|
|
@@ -9540,7 +9588,7 @@ var UploadStatus = /* @__PURE__ */ ((UploadStatus2) => {
|
|
|
9540
9588
|
})(UploadStatus || {});
|
|
9541
9589
|
|
|
9542
9590
|
// src/components/organisms/dropfile/dropfile.tsx
|
|
9543
|
-
var
|
|
9591
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
9544
9592
|
var ITDropfile = ({
|
|
9545
9593
|
onFileSelect,
|
|
9546
9594
|
onCancel,
|
|
@@ -9679,9 +9727,9 @@ var ITDropfile = ({
|
|
|
9679
9727
|
}
|
|
9680
9728
|
};
|
|
9681
9729
|
const { label, color, dotColor } = config2[status];
|
|
9682
|
-
return /* @__PURE__ */ (0,
|
|
9683
|
-
/* @__PURE__ */ (0,
|
|
9684
|
-
/* @__PURE__ */ (0,
|
|
9730
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: `inline-flex items-center gap-2 px-2.5 py-1 rounded-full border ${color}`, children: [
|
|
9731
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: `w-2 h-2 rounded-full ${dotColor}` }),
|
|
9732
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { as: "span", className: "text-xs font-medium flex items-center gap-1.5", children: label })
|
|
9685
9733
|
] });
|
|
9686
9734
|
};
|
|
9687
9735
|
const onDrop = (acceptedFiles) => {
|
|
@@ -9772,18 +9820,18 @@ var ITDropfile = ({
|
|
|
9772
9820
|
return () => clearTimeout(timeout);
|
|
9773
9821
|
}
|
|
9774
9822
|
}, [view, isConfirmed, uploadStatus, externalStatus, onStatusChange]);
|
|
9775
|
-
const headerRow = /* @__PURE__ */ (0,
|
|
9776
|
-
/* @__PURE__ */ (0,
|
|
9777
|
-
/* @__PURE__ */ (0,
|
|
9778
|
-
/* @__PURE__ */ (0,
|
|
9823
|
+
const headerRow = /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex items-center justify-between mb-2", children: [
|
|
9824
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("label", { className: "block text-sm font-semibold text-secondary-700", children: [
|
|
9825
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { as: "span", children: "Subir archivo " }),
|
|
9826
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(ITText, { as: "span", className: "text-secondary-400 font-normal text-xs", children: [
|
|
9779
9827
|
"(",
|
|
9780
9828
|
getFileExtensions(),
|
|
9781
9829
|
")"
|
|
9782
9830
|
] })
|
|
9783
9831
|
] }),
|
|
9784
|
-
showStatusBadge && selectedFile && /* @__PURE__ */ (0,
|
|
9832
|
+
showStatusBadge && selectedFile && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(StatusBadge, { status: uploadStatus })
|
|
9785
9833
|
] });
|
|
9786
|
-
const dropZoneOrPreview = /* @__PURE__ */ (0,
|
|
9834
|
+
const dropZoneOrPreview = /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_jsx_runtime68.Fragment, { children: !selectedFile && !imagePreview ? /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
9787
9835
|
"div",
|
|
9788
9836
|
{
|
|
9789
9837
|
...getRootProps(),
|
|
@@ -9793,41 +9841,41 @@ var ITDropfile = ({
|
|
|
9793
9841
|
${isDragActive ? "border-primary-500 bg-primary-50 scale-[1.01]" : "border-secondary-300 bg-white hover:border-primary-400 hover:bg-secondary-50"}
|
|
9794
9842
|
`,
|
|
9795
9843
|
children: [
|
|
9796
|
-
/* @__PURE__ */ (0,
|
|
9797
|
-
/* @__PURE__ */ (0,
|
|
9844
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("input", { ...getInputProps() }),
|
|
9845
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: `mb-3 p-3 rounded-full transition-colors duration-300 ${isDragActive ? "bg-primary-100" : "bg-secondary-100 group-hover:bg-primary-50"}`, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
9798
9846
|
"svg",
|
|
9799
9847
|
{
|
|
9800
9848
|
className: `w-6 h-6 transition-colors duration-300 ${isDragActive ? "text-primary-600" : "text-secondary-400 group-hover:text-primary-500"}`,
|
|
9801
9849
|
fill: "none",
|
|
9802
9850
|
viewBox: "0 0 24 24",
|
|
9803
9851
|
stroke: "currentColor",
|
|
9804
|
-
children: /* @__PURE__ */ (0,
|
|
9852
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime68.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" })
|
|
9805
9853
|
}
|
|
9806
9854
|
) }),
|
|
9807
|
-
/* @__PURE__ */ (0,
|
|
9855
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "text-center space-y-1", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { as: "p", className: `text-sm font-medium transition-colors duration-300 ${isDragActive ? "text-primary-700" : "text-secondary-700"}`, children: isDragActive ? "\xA1Suelta aqu\xED!" : "Haz clic o arrastra" }) })
|
|
9808
9856
|
]
|
|
9809
9857
|
}
|
|
9810
|
-
) : /* @__PURE__ */ (0,
|
|
9811
|
-
/* @__PURE__ */ (0,
|
|
9812
|
-
/* @__PURE__ */ (0,
|
|
9813
|
-
/* @__PURE__ */ (0,
|
|
9814
|
-
/* @__PURE__ */ (0,
|
|
9815
|
-
/* @__PURE__ */ (0,
|
|
9858
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "w-full bg-white border border-secondary-200 rounded-xl shadow-sm overflow-hidden animate-fade-in", children: [
|
|
9859
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "flex items-center justify-between p-3 bg-secondary-50 border-b border-secondary-100", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex items-center gap-3 overflow-hidden", children: [
|
|
9860
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.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_runtime68.jsx)("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime68.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_runtime68.jsx)("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime68.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" }) }) }),
|
|
9861
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "min-w-0", children: [
|
|
9862
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { as: "p", className: "text-xs font-medium text-secondary-900 truncate", title: selectedFile?.name || "Imagen cargada", children: selectedFile?.name || "Imagen cargada" }),
|
|
9863
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { as: "p", className: "text-[10px] text-secondary-500", children: selectedFile ? (selectedFile.size / 1024 / 1024).toFixed(2) + " MB" : "" })
|
|
9816
9864
|
] })
|
|
9817
9865
|
] }) }),
|
|
9818
|
-
/* @__PURE__ */ (0,
|
|
9866
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: (0, import_clsx50.default)("relative bg-secondary-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_runtime68.jsx)(
|
|
9819
9867
|
"img",
|
|
9820
9868
|
{
|
|
9821
9869
|
src: imagePreview,
|
|
9822
9870
|
alt: "Vista previa",
|
|
9823
9871
|
className: "w-full h-full object-contain max-h-[200px]"
|
|
9824
9872
|
}
|
|
9825
|
-
) : /* @__PURE__ */ (0,
|
|
9826
|
-
/* @__PURE__ */ (0,
|
|
9827
|
-
/* @__PURE__ */ (0,
|
|
9873
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "py-8 flex flex-col items-center text-secondary-400", children: [
|
|
9874
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.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_runtime68.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" }) }),
|
|
9875
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { as: "span", className: "text-xs", children: "Sin vista previa" })
|
|
9828
9876
|
] }) }),
|
|
9829
|
-
/* @__PURE__ */ (0,
|
|
9830
|
-
/* @__PURE__ */ (0,
|
|
9877
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "px-3 py-2 bg-white border-t border-secondary-100 flex justify-end gap-2", children: !isConfirmed ? /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_jsx_runtime68.Fragment, { children: [
|
|
9878
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
9831
9879
|
ITButton,
|
|
9832
9880
|
{
|
|
9833
9881
|
type: "button",
|
|
@@ -9835,10 +9883,10 @@ var ITDropfile = ({
|
|
|
9835
9883
|
color: "secondary",
|
|
9836
9884
|
size: "sm",
|
|
9837
9885
|
onClick: handleCancel,
|
|
9838
|
-
children: /* @__PURE__ */ (0,
|
|
9886
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { children: "Cancelar" })
|
|
9839
9887
|
}
|
|
9840
9888
|
),
|
|
9841
|
-
/* @__PURE__ */ (0,
|
|
9889
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
9842
9890
|
ITButton,
|
|
9843
9891
|
{
|
|
9844
9892
|
type: "button",
|
|
@@ -9846,13 +9894,13 @@ var ITDropfile = ({
|
|
|
9846
9894
|
color: "primary",
|
|
9847
9895
|
size: "sm",
|
|
9848
9896
|
onClick: handleConfirm,
|
|
9849
|
-
children: /* @__PURE__ */ (0,
|
|
9850
|
-
/* @__PURE__ */ (0,
|
|
9851
|
-
/* @__PURE__ */ (0,
|
|
9897
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
9898
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { children: "Confirmar" }),
|
|
9899
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("svg", { className: "w-3 h-3", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) })
|
|
9852
9900
|
] })
|
|
9853
9901
|
}
|
|
9854
9902
|
)
|
|
9855
|
-
] }) : /* @__PURE__ */ (0,
|
|
9903
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
9856
9904
|
ITButton,
|
|
9857
9905
|
{
|
|
9858
9906
|
type: "button",
|
|
@@ -9861,12 +9909,12 @@ var ITDropfile = ({
|
|
|
9861
9909
|
size: "sm",
|
|
9862
9910
|
onClick: handleDelete,
|
|
9863
9911
|
children: [
|
|
9864
|
-
/* @__PURE__ */ (0,
|
|
9865
|
-
/* @__PURE__ */ (0,
|
|
9912
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("svg", { className: "w-3 h-3", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime68.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" }) }),
|
|
9913
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { children: "Eliminar" })
|
|
9866
9914
|
]
|
|
9867
9915
|
}
|
|
9868
9916
|
) }),
|
|
9869
|
-
uploadStatus === "subiendo" /* UPLOADING */ && /* @__PURE__ */ (0,
|
|
9917
|
+
uploadStatus === "subiendo" /* UPLOADING */ && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "px-4 pb-2", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "w-full bg-secondary-200 rounded-full h-1.5", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
9870
9918
|
"div",
|
|
9871
9919
|
{
|
|
9872
9920
|
className: "bg-primary-600 h-1.5 rounded-full transition-all duration-1000 ease-out",
|
|
@@ -9879,8 +9927,8 @@ var ITDropfile = ({
|
|
|
9879
9927
|
] }) });
|
|
9880
9928
|
if (view === "button") {
|
|
9881
9929
|
const hasFile = Boolean(selectedFile || imagePreview);
|
|
9882
|
-
return /* @__PURE__ */ (0,
|
|
9883
|
-
/* @__PURE__ */ (0,
|
|
9930
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: (0, import_clsx50.default)("inline-block", containerClassName), children: [
|
|
9931
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
9884
9932
|
ITButton,
|
|
9885
9933
|
{
|
|
9886
9934
|
type: "button",
|
|
@@ -9888,20 +9936,20 @@ var ITDropfile = ({
|
|
|
9888
9936
|
color: hasFile ? "primary" : "secondary",
|
|
9889
9937
|
size: "sm",
|
|
9890
9938
|
onClick: () => setIsModalOpen(true),
|
|
9891
|
-
children: /* @__PURE__ */ (0,
|
|
9892
|
-
/* @__PURE__ */ (0,
|
|
9893
|
-
/* @__PURE__ */ (0,
|
|
9894
|
-
showStatusBadge && hasFile && /* @__PURE__ */ (0,
|
|
9939
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex items-center gap-2 max-w-[220px]", children: [
|
|
9940
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("svg", { className: "w-4 h-4 flex-shrink-0", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime68.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" }) }),
|
|
9941
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { className: "truncate", children: selectedFile?.name || (hasFile ? "Archivo cargado" : buttonLabel) }),
|
|
9942
|
+
showStatusBadge && hasFile && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(StatusBadge, { status: uploadStatus })
|
|
9895
9943
|
] })
|
|
9896
9944
|
}
|
|
9897
9945
|
),
|
|
9898
|
-
/* @__PURE__ */ (0,
|
|
9946
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITDialog, { isOpen: isModalOpen, onClose: () => setIsModalOpen(false), title: modalTitle ?? buttonLabel, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "w-full transition-all duration-300", children: [
|
|
9899
9947
|
headerRow,
|
|
9900
9948
|
dropZoneOrPreview
|
|
9901
9949
|
] }) })
|
|
9902
9950
|
] });
|
|
9903
9951
|
}
|
|
9904
|
-
return /* @__PURE__ */ (0,
|
|
9952
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: (0, import_clsx50.default)("w-full transition-all duration-300", containerClassName), children: [
|
|
9905
9953
|
headerRow,
|
|
9906
9954
|
dropZoneOrPreview
|
|
9907
9955
|
] });
|
|
@@ -9915,7 +9963,7 @@ var import_clsx51 = __toESM(require("clsx"), 1);
|
|
|
9915
9963
|
// src/components/organisms/topbar/topbar.tsx
|
|
9916
9964
|
var import_fa30 = require("react-icons/fa");
|
|
9917
9965
|
var import_react43 = require("react");
|
|
9918
|
-
var
|
|
9966
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
9919
9967
|
function ITTopBar({
|
|
9920
9968
|
logo,
|
|
9921
9969
|
logoText,
|
|
@@ -9930,7 +9978,7 @@ function ITTopBar({
|
|
|
9930
9978
|
const [isUserMenuOpen, setIsUserMenuOpen] = (0, import_react43.useState)(false);
|
|
9931
9979
|
const userMenuRef = (0, import_react43.useRef)(null);
|
|
9932
9980
|
useClickOutside_default(userMenuRef, () => setIsUserMenuOpen(false));
|
|
9933
|
-
return /* @__PURE__ */ (0,
|
|
9981
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
9934
9982
|
"header",
|
|
9935
9983
|
{
|
|
9936
9984
|
className: "sticky top-0 z-40 backdrop-blur-md transition-all duration-300",
|
|
@@ -9939,9 +9987,9 @@ function ITTopBar({
|
|
|
9939
9987
|
borderBottom: "1px solid var(--it-topbar-border, rgba(15, 23, 42, 0.06))",
|
|
9940
9988
|
boxShadow: "var(--shadow-xs)"
|
|
9941
9989
|
},
|
|
9942
|
-
children: /* @__PURE__ */ (0,
|
|
9943
|
-
/* @__PURE__ */ (0,
|
|
9944
|
-
showMobileMenuButton && /* @__PURE__ */ (0,
|
|
9990
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center justify-between h-[72px] px-6 lg:px-8", children: [
|
|
9991
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-5", children: [
|
|
9992
|
+
showMobileMenuButton && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
9945
9993
|
"button",
|
|
9946
9994
|
{
|
|
9947
9995
|
className: "lg:hidden p-2.5 rounded-xl transition-colors duration-200",
|
|
@@ -9951,12 +9999,12 @@ function ITTopBar({
|
|
|
9951
9999
|
onMouseEnter: (e) => e.currentTarget.style.backgroundColor = "var(--it-topbar-user-hover, #f1f5f9)",
|
|
9952
10000
|
onMouseLeave: (e) => e.currentTarget.style.backgroundColor = "transparent",
|
|
9953
10001
|
onClick: onToggleMobileMenu,
|
|
9954
|
-
children: /* @__PURE__ */ (0,
|
|
10002
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_fa30.FaBars, { className: "w-[1.125rem] h-[1.125rem]" })
|
|
9955
10003
|
}
|
|
9956
10004
|
),
|
|
9957
|
-
/* @__PURE__ */ (0,
|
|
9958
|
-
logo && /* @__PURE__ */ (0,
|
|
9959
|
-
logoText && /* @__PURE__ */ (0,
|
|
10005
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
10006
|
+
logo && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "flex-shrink-0 drop-shadow-sm", children: logo }),
|
|
10007
|
+
logoText && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
9960
10008
|
ITText,
|
|
9961
10009
|
{
|
|
9962
10010
|
as: "span",
|
|
@@ -9966,7 +10014,7 @@ function ITTopBar({
|
|
|
9966
10014
|
}
|
|
9967
10015
|
)
|
|
9968
10016
|
] }),
|
|
9969
|
-
navItems && navItems.length > 0 && /* @__PURE__ */ (0,
|
|
10017
|
+
navItems && navItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("nav", { className: "hidden md:flex ml-8 space-x-1 border-l pl-8", style: { borderColor: "var(--it-topbar-border, rgba(15, 23, 42, 0.06))" }, children: navItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
9970
10018
|
"button",
|
|
9971
10019
|
{
|
|
9972
10020
|
onClick: () => onNavItemClick?.(item.id),
|
|
@@ -9980,19 +10028,19 @@ function ITTopBar({
|
|
|
9980
10028
|
e.currentTarget.style.color = "var(--it-topbar-text, #475569)";
|
|
9981
10029
|
e.currentTarget.style.backgroundColor = "transparent";
|
|
9982
10030
|
},
|
|
9983
|
-
children: /* @__PURE__ */ (0,
|
|
9984
|
-
item.icon && /* @__PURE__ */ (0,
|
|
9985
|
-
/* @__PURE__ */ (0,
|
|
10031
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
10032
|
+
item.icon && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "opacity-70", children: item.icon }),
|
|
10033
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ITText, { as: "span", children: item.label })
|
|
9986
10034
|
] })
|
|
9987
10035
|
},
|
|
9988
10036
|
item.id
|
|
9989
10037
|
)) })
|
|
9990
10038
|
] }),
|
|
9991
|
-
centerContent && /* @__PURE__ */ (0,
|
|
9992
|
-
(children || userMenu) && /* @__PURE__ */ (0,
|
|
10039
|
+
centerContent && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "hidden lg:flex flex-1 min-w-0 items-center justify-center px-4", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "w-full max-w-[420px]", children: centerContent }) }),
|
|
10040
|
+
(children || userMenu) && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
9993
10041
|
children,
|
|
9994
|
-
userMenu && /* @__PURE__ */ (0,
|
|
9995
|
-
/* @__PURE__ */ (0,
|
|
10042
|
+
userMenu && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "relative", children: [
|
|
10043
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
9996
10044
|
"button",
|
|
9997
10045
|
{
|
|
9998
10046
|
type: "button",
|
|
@@ -10008,19 +10056,19 @@ function ITTopBar({
|
|
|
10008
10056
|
},
|
|
10009
10057
|
onClick: () => setIsUserMenuOpen(!isUserMenuOpen),
|
|
10010
10058
|
children: [
|
|
10011
|
-
/* @__PURE__ */ (0,
|
|
10012
|
-
userMenu.userImage ? /* @__PURE__ */ (0,
|
|
10059
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "relative", children: [
|
|
10060
|
+
userMenu.userImage ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
10013
10061
|
"img",
|
|
10014
10062
|
{
|
|
10015
10063
|
className: "w-9 h-9 rounded-full object-cover ring-2 ring-white shadow-sm",
|
|
10016
10064
|
src: userMenu.userImage,
|
|
10017
10065
|
alt: "Current user"
|
|
10018
10066
|
}
|
|
10019
|
-
) : /* @__PURE__ */ (0,
|
|
10020
|
-
/* @__PURE__ */ (0,
|
|
10067
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime69.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_runtime69.jsx)(import_fa30.FaUserCircle, { className: "w-6 h-6", style: { color: "var(--it-topbar-icon, #94a3b8)" } }) }),
|
|
10068
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "absolute bottom-0 right-0 w-2.5 h-2.5 bg-green-500 border-2 border-white rounded-full" })
|
|
10021
10069
|
] }),
|
|
10022
|
-
/* @__PURE__ */ (0,
|
|
10023
|
-
/* @__PURE__ */ (0,
|
|
10070
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "hidden sm:flex flex-col text-left py-0.5", children: [
|
|
10071
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
10024
10072
|
ITText,
|
|
10025
10073
|
{
|
|
10026
10074
|
as: "span",
|
|
@@ -10029,7 +10077,7 @@ function ITTopBar({
|
|
|
10029
10077
|
children: userMenu.userName
|
|
10030
10078
|
}
|
|
10031
10079
|
),
|
|
10032
|
-
/* @__PURE__ */ (0,
|
|
10080
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
10033
10081
|
ITText,
|
|
10034
10082
|
{
|
|
10035
10083
|
as: "span",
|
|
@@ -10042,7 +10090,7 @@ function ITTopBar({
|
|
|
10042
10090
|
]
|
|
10043
10091
|
}
|
|
10044
10092
|
),
|
|
10045
|
-
/* @__PURE__ */ (0,
|
|
10093
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
10046
10094
|
"div",
|
|
10047
10095
|
{
|
|
10048
10096
|
ref: userMenuRef,
|
|
@@ -10055,15 +10103,15 @@ function ITTopBar({
|
|
|
10055
10103
|
border: "1px solid var(--it-topbar-user-dropdown-border, #f1f5f9)"
|
|
10056
10104
|
},
|
|
10057
10105
|
children: [
|
|
10058
|
-
/* @__PURE__ */ (0,
|
|
10059
|
-
/* @__PURE__ */ (0,
|
|
10060
|
-
/* @__PURE__ */ (0,
|
|
10106
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "px-5 py-4 border-b", style: { borderColor: "var(--it-topbar-user-dropdown-border, #f1f5f9)", backgroundColor: "var(--it-topbar-user-bg, #f8fafc)" }, children: [
|
|
10107
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ITText, { as: "span", className: "block font-bold text-[0.9rem]", style: { color: "var(--it-topbar-user-text, #0f172a)" }, children: userMenu.userName }),
|
|
10108
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ITText, { as: "span", className: "block text-xs font-medium truncate mt-0.5", style: { color: "var(--it-topbar-user-subtitle, #64748b)" }, children: userMenu.userEmail })
|
|
10061
10109
|
] }),
|
|
10062
|
-
/* @__PURE__ */ (0,
|
|
10110
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("ul", { className: "py-2", children: userMenu.menuItems.map((m, i) => {
|
|
10063
10111
|
const isDestructive = m.label.toLowerCase().includes("salir") || m.label.toLowerCase().includes("cerrar") || m.label.toLowerCase().includes("logout");
|
|
10064
|
-
return /* @__PURE__ */ (0,
|
|
10065
|
-
i === userMenu.menuItems.length - 1 && isDestructive && i > 0 && /* @__PURE__ */ (0,
|
|
10066
|
-
/* @__PURE__ */ (0,
|
|
10112
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("li", { className: "px-2", children: [
|
|
10113
|
+
i === userMenu.menuItems.length - 1 && isDestructive && i > 0 && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "h-px bg-slate-100 my-1 mx-2" }),
|
|
10114
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
10067
10115
|
"button",
|
|
10068
10116
|
{
|
|
10069
10117
|
onClick: () => {
|
|
@@ -10078,7 +10126,7 @@ function ITTopBar({
|
|
|
10078
10126
|
onMouseLeave: (e) => {
|
|
10079
10127
|
e.currentTarget.style.backgroundColor = "transparent";
|
|
10080
10128
|
},
|
|
10081
|
-
children: /* @__PURE__ */ (0,
|
|
10129
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ITText, { as: "span", children: m.label })
|
|
10082
10130
|
}
|
|
10083
10131
|
)
|
|
10084
10132
|
] }, i);
|
|
@@ -10094,7 +10142,7 @@ function ITTopBar({
|
|
|
10094
10142
|
}
|
|
10095
10143
|
|
|
10096
10144
|
// src/components/templates/layout/layout.tsx
|
|
10097
|
-
var
|
|
10145
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
10098
10146
|
function ITLayout({
|
|
10099
10147
|
topBar,
|
|
10100
10148
|
sidebar,
|
|
@@ -10109,8 +10157,8 @@ function ITLayout({
|
|
|
10109
10157
|
const handleToggleCollapse = isControlled ? sidebar.onToggleCollapse ?? (() => {
|
|
10110
10158
|
}) : () => setInternalCollapsed((v) => !v);
|
|
10111
10159
|
const layoutTokens = theme.layout;
|
|
10112
|
-
return /* @__PURE__ */ (0,
|
|
10113
|
-
/* @__PURE__ */ (0,
|
|
10160
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: `flex flex-col h-screen overflow-hidden w-full ${className}`, children: [
|
|
10161
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
10114
10162
|
ITTopBar,
|
|
10115
10163
|
{
|
|
10116
10164
|
...topBar,
|
|
@@ -10118,20 +10166,20 @@ function ITLayout({
|
|
|
10118
10166
|
onToggleMobileMenu: () => setMobileSidebarOpen((v) => !v)
|
|
10119
10167
|
}
|
|
10120
10168
|
),
|
|
10121
|
-
/* @__PURE__ */ (0,
|
|
10169
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
10122
10170
|
"div",
|
|
10123
10171
|
{
|
|
10124
10172
|
className: "flex flex-1 overflow-hidden relative",
|
|
10125
10173
|
style: { backgroundColor: layoutTokens.backgroundColor },
|
|
10126
10174
|
children: [
|
|
10127
|
-
/* @__PURE__ */ (0,
|
|
10128
|
-
/* @__PURE__ */ (0,
|
|
10175
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "hidden lg:block relative z-40 h-full", children: [
|
|
10176
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
10129
10177
|
"div",
|
|
10130
10178
|
{
|
|
10131
10179
|
className: `${desktopCollapsed ? "w-[88px]" : "w-[280px]"} h-full flex-shrink-0`
|
|
10132
10180
|
}
|
|
10133
10181
|
),
|
|
10134
|
-
/* @__PURE__ */ (0,
|
|
10182
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "absolute top-0 left-0 h-full", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
10135
10183
|
ITSidebar,
|
|
10136
10184
|
{
|
|
10137
10185
|
...sidebar,
|
|
@@ -10142,17 +10190,17 @@ function ITLayout({
|
|
|
10142
10190
|
}
|
|
10143
10191
|
) })
|
|
10144
10192
|
] }),
|
|
10145
|
-
mobileSidebarOpen && /* @__PURE__ */ (0,
|
|
10193
|
+
mobileSidebarOpen && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
10146
10194
|
"div",
|
|
10147
10195
|
{
|
|
10148
10196
|
className: "lg:hidden fixed inset-0 z-[40] transition-opacity duration-300 backdrop-blur-sm bg-black/40",
|
|
10149
10197
|
onClick: () => setMobileSidebarOpen(false),
|
|
10150
|
-
children: /* @__PURE__ */ (0,
|
|
10198
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
10151
10199
|
"div",
|
|
10152
10200
|
{
|
|
10153
10201
|
className: "h-full w-fit flex transform transition-transform duration-300 ease-[cubic-bezier(0.2,0,0,1)]",
|
|
10154
10202
|
onClick: (e) => e.stopPropagation(),
|
|
10155
|
-
children: /* @__PURE__ */ (0,
|
|
10203
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
10156
10204
|
ITSidebar,
|
|
10157
10205
|
{
|
|
10158
10206
|
...sidebar,
|
|
@@ -10168,7 +10216,7 @@ function ITLayout({
|
|
|
10168
10216
|
)
|
|
10169
10217
|
}
|
|
10170
10218
|
),
|
|
10171
|
-
/* @__PURE__ */ (0,
|
|
10219
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("main", { className: "flex-1 overflow-y-auto w-full custom-scrollbar relative z-0", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: (0, import_clsx51.default)("mx-auto w-full max-w-7xl px-4 sm:px-6 lg:px-8 py-6 h-full", contentClassName), children }) })
|
|
10172
10220
|
]
|
|
10173
10221
|
}
|
|
10174
10222
|
)
|
|
@@ -10184,7 +10232,7 @@ var sizeClasses = {
|
|
|
10184
10232
|
};
|
|
10185
10233
|
|
|
10186
10234
|
// src/components/atoms/loader/loader.tsx
|
|
10187
|
-
var
|
|
10235
|
+
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
10188
10236
|
function ITLoader({
|
|
10189
10237
|
size = "md",
|
|
10190
10238
|
variant = "spinner",
|
|
@@ -10199,22 +10247,22 @@ function ITLoader({
|
|
|
10199
10247
|
const bgStyle = isCssValue ? { backgroundColor: resolvedColor } : {};
|
|
10200
10248
|
const colorClass = !isCssValue ? color : "";
|
|
10201
10249
|
if (variant === "spinner") {
|
|
10202
|
-
return /* @__PURE__ */ (0,
|
|
10250
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
10203
10251
|
"div",
|
|
10204
10252
|
{
|
|
10205
10253
|
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}`,
|
|
10206
10254
|
role: "status",
|
|
10207
10255
|
style,
|
|
10208
|
-
children: /* @__PURE__ */ (0,
|
|
10256
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(ITText, { as: "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..." })
|
|
10209
10257
|
}
|
|
10210
10258
|
);
|
|
10211
10259
|
}
|
|
10212
10260
|
if (variant === "dots") {
|
|
10213
|
-
return /* @__PURE__ */ (0,
|
|
10261
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
10214
10262
|
"div",
|
|
10215
10263
|
{
|
|
10216
10264
|
className: `flex items-center justify-center space-x-2 ${className}`,
|
|
10217
|
-
children: [...Array(3)].map((_, i) => /* @__PURE__ */ (0,
|
|
10265
|
+
children: [...Array(3)].map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
10218
10266
|
"div",
|
|
10219
10267
|
{
|
|
10220
10268
|
className: `${sizeClasses[size.replace(/l|g/, "")]} animate-bounce rounded-full ${colorClass}`,
|
|
@@ -10229,11 +10277,11 @@ function ITLoader({
|
|
|
10229
10277
|
);
|
|
10230
10278
|
}
|
|
10231
10279
|
if (variant === "bar") {
|
|
10232
|
-
return /* @__PURE__ */ (0,
|
|
10280
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
10233
10281
|
"div",
|
|
10234
10282
|
{
|
|
10235
10283
|
className: `w-full ${size === "sm" ? "h-1" : size === "md" ? "h-1.5" : size === "lg" ? "h-2" : "h-2.5"} bg-secondary-200 rounded-full overflow-hidden ${className}`,
|
|
10236
|
-
children: /* @__PURE__ */ (0,
|
|
10284
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
10237
10285
|
"div",
|
|
10238
10286
|
{
|
|
10239
10287
|
className: `h-full animate-progress ${colorClass}`,
|
|
@@ -10249,7 +10297,7 @@ function ITLoader({
|
|
|
10249
10297
|
);
|
|
10250
10298
|
}
|
|
10251
10299
|
if (variant === "pulse") {
|
|
10252
|
-
return /* @__PURE__ */ (0,
|
|
10300
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
10253
10301
|
"div",
|
|
10254
10302
|
{
|
|
10255
10303
|
className: `rounded-full ${sizeClasses[size]} animate-pulse ${colorClass} ${className}`,
|
|
@@ -10264,7 +10312,7 @@ function ITLoader({
|
|
|
10264
10312
|
var import_clsx52 = __toESM(require("clsx"), 1);
|
|
10265
10313
|
var import_react45 = require("react");
|
|
10266
10314
|
var import_fa31 = require("react-icons/fa");
|
|
10267
|
-
var
|
|
10315
|
+
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
10268
10316
|
function ITStepper({
|
|
10269
10317
|
steps,
|
|
10270
10318
|
currentStep,
|
|
@@ -10331,23 +10379,23 @@ function ITStepper({
|
|
|
10331
10379
|
const renderStepContent = (index, isCompleted) => {
|
|
10332
10380
|
const step = steps[index];
|
|
10333
10381
|
if (isCompleted) {
|
|
10334
|
-
return /* @__PURE__ */ (0,
|
|
10382
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_fa31.FaCheck, { className: "w-4 h-4" });
|
|
10335
10383
|
}
|
|
10336
10384
|
if (step.icon && useIcons) {
|
|
10337
|
-
return /* @__PURE__ */ (0,
|
|
10385
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { className: "flex items-center justify-center w-5 h-5", children: step.icon });
|
|
10338
10386
|
}
|
|
10339
|
-
return /* @__PURE__ */ (0,
|
|
10387
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ITText, { as: "span", className: "text-sm font-semibold", children: index + 1 });
|
|
10340
10388
|
};
|
|
10341
|
-
return /* @__PURE__ */ (0,
|
|
10342
|
-
/* @__PURE__ */ (0,
|
|
10343
|
-
/* @__PURE__ */ (0,
|
|
10389
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: (0, import_clsx52.default)("w-full max-w-5xl mx-auto px-4", containerClassName), children: [
|
|
10390
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "relative mb-8", children: [
|
|
10391
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
10344
10392
|
"div",
|
|
10345
10393
|
{
|
|
10346
10394
|
className: "absolute left-6 right-6 top-5 h-1 bg-secondary-200 rounded-full z-0",
|
|
10347
10395
|
"aria-hidden": true
|
|
10348
10396
|
}
|
|
10349
10397
|
),
|
|
10350
|
-
/* @__PURE__ */ (0,
|
|
10398
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
10351
10399
|
"div",
|
|
10352
10400
|
{
|
|
10353
10401
|
ref: progressRef,
|
|
@@ -10355,11 +10403,11 @@ function ITStepper({
|
|
|
10355
10403
|
"aria-hidden": true
|
|
10356
10404
|
}
|
|
10357
10405
|
),
|
|
10358
|
-
/* @__PURE__ */ (0,
|
|
10406
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { className: "flex items-start justify-between space-x-2 relative z-20", children: steps.map((step, idx) => {
|
|
10359
10407
|
const isActive = idx === currentStep;
|
|
10360
10408
|
const isCompleted = idx < currentStep;
|
|
10361
10409
|
const hasIcon = step.icon && useIcons;
|
|
10362
|
-
return /* @__PURE__ */ (0,
|
|
10410
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
10363
10411
|
"button",
|
|
10364
10412
|
{
|
|
10365
10413
|
type: "button",
|
|
@@ -10369,8 +10417,8 @@ function ITStepper({
|
|
|
10369
10417
|
"aria-label": `Paso ${idx + 1} ${step.label}`,
|
|
10370
10418
|
className: "flex-1 group",
|
|
10371
10419
|
title: step.label,
|
|
10372
|
-
children: /* @__PURE__ */ (0,
|
|
10373
|
-
/* @__PURE__ */ (0,
|
|
10420
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex flex-col items-center", children: [
|
|
10421
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
10374
10422
|
"div",
|
|
10375
10423
|
{
|
|
10376
10424
|
className: (0, import_clsx52.default)(
|
|
@@ -10384,7 +10432,7 @@ function ITStepper({
|
|
|
10384
10432
|
children: renderStepContent(idx, isCompleted)
|
|
10385
10433
|
}
|
|
10386
10434
|
),
|
|
10387
|
-
/* @__PURE__ */ (0,
|
|
10435
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
10388
10436
|
ITText,
|
|
10389
10437
|
{
|
|
10390
10438
|
as: "span",
|
|
@@ -10402,7 +10450,7 @@ function ITStepper({
|
|
|
10402
10450
|
);
|
|
10403
10451
|
}) })
|
|
10404
10452
|
] }),
|
|
10405
|
-
/* @__PURE__ */ (0,
|
|
10453
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
10406
10454
|
"div",
|
|
10407
10455
|
{
|
|
10408
10456
|
ref: contentRef,
|
|
@@ -10418,37 +10466,37 @@ function ITStepper({
|
|
|
10418
10466
|
children: steps[currentStep].content
|
|
10419
10467
|
}
|
|
10420
10468
|
),
|
|
10421
|
-
/* @__PURE__ */ (0,
|
|
10422
|
-
/* @__PURE__ */ (0,
|
|
10469
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex justify-between items-center mt-6", children: [
|
|
10470
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
10423
10471
|
ITButton,
|
|
10424
10472
|
{
|
|
10425
10473
|
variant: "outlined",
|
|
10426
10474
|
color: "secondary",
|
|
10427
10475
|
disabled: currentStep === 0,
|
|
10428
10476
|
onClick: prevStep,
|
|
10429
|
-
children: /* @__PURE__ */ (0,
|
|
10430
|
-
/* @__PURE__ */ (0,
|
|
10431
|
-
/* @__PURE__ */ (0,
|
|
10477
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
10478
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_fa31.FaChevronLeft, {}),
|
|
10479
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ITText, { as: "span", children: "Atr\xE1s" })
|
|
10432
10480
|
] })
|
|
10433
10481
|
}
|
|
10434
10482
|
),
|
|
10435
|
-
/* @__PURE__ */ (0,
|
|
10436
|
-
/* @__PURE__ */ (0,
|
|
10483
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
10484
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(ITText, { as: "div", className: "text-sm text-secondary-500 mr-2 hidden sm:block", children: [
|
|
10437
10485
|
"Paso ",
|
|
10438
10486
|
currentStep + 1,
|
|
10439
10487
|
" de ",
|
|
10440
10488
|
steps.length
|
|
10441
10489
|
] }),
|
|
10442
|
-
/* @__PURE__ */ (0,
|
|
10490
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
10443
10491
|
ITButton,
|
|
10444
10492
|
{
|
|
10445
10493
|
variant: "solid",
|
|
10446
10494
|
color,
|
|
10447
10495
|
disabled: disableNext,
|
|
10448
10496
|
onClick: nextStep,
|
|
10449
|
-
children: /* @__PURE__ */ (0,
|
|
10450
|
-
/* @__PURE__ */ (0,
|
|
10451
|
-
currentStep === steps.length - 1 ? /* @__PURE__ */ (0,
|
|
10497
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
10498
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ITText, { as: "span", children: currentStep === steps.length - 1 ? "Finalizar" : "Siguiente" }),
|
|
10499
|
+
currentStep === steps.length - 1 ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_fa31.FaCheck, {}) : /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_fa31.FaChevronRight, {})
|
|
10452
10500
|
] })
|
|
10453
10501
|
}
|
|
10454
10502
|
)
|
|
@@ -10636,7 +10684,7 @@ var PRESETS = [
|
|
|
10636
10684
|
];
|
|
10637
10685
|
|
|
10638
10686
|
// src/components/theme-provider/themeProvider.tsx
|
|
10639
|
-
var
|
|
10687
|
+
var import_jsx_runtime73 = require("react/jsx-runtime");
|
|
10640
10688
|
var STORAGE_KEY = "it-theme-palette";
|
|
10641
10689
|
var SHADOW_LEVELS = {
|
|
10642
10690
|
0: {
|
|
@@ -12027,14 +12075,14 @@ function ITThemeProvider({
|
|
|
12027
12075
|
const isNested = colorKey.includes(".");
|
|
12028
12076
|
const label = isNested ? colorKey.split(".")[1] : colorKey;
|
|
12029
12077
|
const value = getNestedValue3(palette2, colorKey);
|
|
12030
|
-
return /* @__PURE__ */ (0,
|
|
12078
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
|
|
12031
12079
|
"div",
|
|
12032
12080
|
{
|
|
12033
12081
|
className: "flex items-center justify-between p-3 rounded-xl border border-slate-100 dark:border-slate-800 bg-white dark:bg-slate-900/50 gap-3 hover:border-slate-200 dark:hover:border-slate-700 transition-colors",
|
|
12034
12082
|
children: [
|
|
12035
|
-
/* @__PURE__ */ (0,
|
|
12036
|
-
/* @__PURE__ */ (0,
|
|
12037
|
-
/* @__PURE__ */ (0,
|
|
12083
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex items-center gap-3 flex-1 min-w-0", children: [
|
|
12084
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "relative w-10 h-10 rounded-xl border-2 border-slate-200 dark:border-slate-700 overflow-hidden cursor-pointer flex-shrink-0 shadow-sm hover:scale-105 transition-transform", children: [
|
|
12085
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12038
12086
|
"input",
|
|
12039
12087
|
{
|
|
12040
12088
|
type: "color",
|
|
@@ -12043,23 +12091,23 @@ function ITThemeProvider({
|
|
|
12043
12091
|
className: "absolute inset-0 opacity-0 cursor-pointer w-full h-full"
|
|
12044
12092
|
}
|
|
12045
12093
|
),
|
|
12046
|
-
/* @__PURE__ */ (0,
|
|
12094
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "w-full h-full", style: { backgroundColor: value } })
|
|
12047
12095
|
] }),
|
|
12048
|
-
/* @__PURE__ */ (0,
|
|
12049
|
-
/* @__PURE__ */ (0,
|
|
12050
|
-
/* @__PURE__ */ (0,
|
|
12051
|
-
/* @__PURE__ */ (0,
|
|
12096
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex flex-col min-w-0", children: [
|
|
12097
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ITText, { as: "span", className: "text-xs font-bold text-slate-700 dark:text-slate-300 truncate capitalize", children: label.replace(/([A-Z])/g, " $1").trim() }),
|
|
12098
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex items-center gap-2 mt-0.5", children: [
|
|
12099
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12052
12100
|
"span",
|
|
12053
12101
|
{
|
|
12054
12102
|
className: "w-3 h-3 rounded-full border border-slate-200 dark:border-slate-600",
|
|
12055
12103
|
style: { backgroundColor: value }
|
|
12056
12104
|
}
|
|
12057
12105
|
),
|
|
12058
|
-
/* @__PURE__ */ (0,
|
|
12106
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ITText, { as: "span", className: "font-mono text-[11px] text-slate-400", children: value })
|
|
12059
12107
|
] })
|
|
12060
12108
|
] })
|
|
12061
12109
|
] }),
|
|
12062
|
-
/* @__PURE__ */ (0,
|
|
12110
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12063
12111
|
"input",
|
|
12064
12112
|
{
|
|
12065
12113
|
type: "text",
|
|
@@ -12078,14 +12126,14 @@ function ITThemeProvider({
|
|
|
12078
12126
|
isCustom
|
|
12079
12127
|
}) => {
|
|
12080
12128
|
const isSelected = JSON.stringify(preset.colors) === JSON.stringify(palette2);
|
|
12081
|
-
return /* @__PURE__ */ (0,
|
|
12129
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
|
|
12082
12130
|
"button",
|
|
12083
12131
|
{
|
|
12084
12132
|
type: "button",
|
|
12085
12133
|
onClick: () => applyPreset(preset.colors),
|
|
12086
12134
|
className: `relative flex flex-col items-start p-2.5 rounded-xl border text-left transition-all group ${isSelected ? "border-primary-500 bg-primary-500/5 shadow-sm ring-1 ring-primary-500/20" : "border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-900/50 hover:border-slate-300 dark:hover:border-slate-600"}`,
|
|
12087
12135
|
children: [
|
|
12088
|
-
isCustom && /* @__PURE__ */ (0,
|
|
12136
|
+
isCustom && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12089
12137
|
"span",
|
|
12090
12138
|
{
|
|
12091
12139
|
onClick: (e) => {
|
|
@@ -12094,11 +12142,11 @@ function ITThemeProvider({
|
|
|
12094
12142
|
},
|
|
12095
12143
|
className: "absolute top-1.5 right-1.5 opacity-0 group-hover:opacity-100 p-0.5 rounded-md hover:bg-danger-500/10 hover:text-danger-500 text-slate-400 dark:text-slate-500 cursor-pointer transition-all z-10",
|
|
12096
12144
|
title: "Eliminar",
|
|
12097
|
-
children: /* @__PURE__ */ (0,
|
|
12145
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_md3.MdClose, { size: 12 })
|
|
12098
12146
|
}
|
|
12099
12147
|
),
|
|
12100
|
-
/* @__PURE__ */ (0,
|
|
12101
|
-
/* @__PURE__ */ (0,
|
|
12148
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ITText, { as: "span", className: "text-xs font-semibold truncate w-full mb-1.5 pr-4 text-slate-700 dark:text-slate-300", children: preset.name }),
|
|
12149
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "flex gap-1", children: ["primary", "secondary", "ternary", "success"].map((c) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12102
12150
|
"span",
|
|
12103
12151
|
{
|
|
12104
12152
|
className: "w-3 h-3 rounded-full border border-black/10",
|
|
@@ -12110,7 +12158,7 @@ function ITThemeProvider({
|
|
|
12110
12158
|
}
|
|
12111
12159
|
);
|
|
12112
12160
|
};
|
|
12113
|
-
return /* @__PURE__ */ (0,
|
|
12161
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
|
|
12114
12162
|
ITThemeContext.Provider,
|
|
12115
12163
|
{
|
|
12116
12164
|
value: {
|
|
@@ -12126,28 +12174,28 @@ function ITThemeProvider({
|
|
|
12126
12174
|
},
|
|
12127
12175
|
children: [
|
|
12128
12176
|
children,
|
|
12129
|
-
showFab && /* @__PURE__ */ (0,
|
|
12177
|
+
showFab && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12130
12178
|
"button",
|
|
12131
12179
|
{
|
|
12132
12180
|
onClick: () => setIsOpen((prev) => !prev),
|
|
12133
12181
|
className: "it-theme-fab it-theme-bounce",
|
|
12134
12182
|
style: { backgroundColor: "var(--color-primary)" },
|
|
12135
12183
|
"aria-label": "Configurar Paleta de Colores",
|
|
12136
|
-
children: /* @__PURE__ */ (0,
|
|
12184
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_md3.MdPalette, { size: 28 })
|
|
12137
12185
|
}
|
|
12138
12186
|
),
|
|
12139
|
-
showFab && /* @__PURE__ */ (0,
|
|
12187
|
+
showFab && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12140
12188
|
ITDialog,
|
|
12141
12189
|
{
|
|
12142
12190
|
isOpen,
|
|
12143
12191
|
onClose: () => setIsOpen(false),
|
|
12144
12192
|
title: "Dise\xF1ador de Temas",
|
|
12145
12193
|
useFormHeader: true,
|
|
12146
|
-
children: /* @__PURE__ */ (0,
|
|
12147
|
-
/* @__PURE__ */ (0,
|
|
12148
|
-
/* @__PURE__ */ (0,
|
|
12149
|
-
/* @__PURE__ */ (0,
|
|
12150
|
-
/* @__PURE__ */ (0,
|
|
12194
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex gap-6 h-[580px]", children: [
|
|
12195
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "w-64 flex-shrink-0 flex flex-col gap-5 overflow-y-auto pr-1", children: [
|
|
12196
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { children: [
|
|
12197
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ITText, { as: "span", className: "text-[11px] font-bold uppercase tracking-wider text-slate-400 dark:text-slate-500 mb-2.5 block", children: "Apariencia" }),
|
|
12198
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12151
12199
|
ITSegmentedControl,
|
|
12152
12200
|
{
|
|
12153
12201
|
options: [
|
|
@@ -12161,16 +12209,16 @@ function ITThemeProvider({
|
|
|
12161
12209
|
}
|
|
12162
12210
|
)
|
|
12163
12211
|
] }),
|
|
12164
|
-
/* @__PURE__ */ (0,
|
|
12165
|
-
/* @__PURE__ */ (0,
|
|
12166
|
-
/* @__PURE__ */ (0,
|
|
12212
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { children: [
|
|
12213
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "flex items-center justify-between mb-2.5", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ITText, { as: "span", className: "text-[11px] font-bold uppercase tracking-wider text-slate-400 dark:text-slate-500", children: "Presets" }) }),
|
|
12214
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "grid grid-cols-2 gap-2", children: PRESETS.map((preset) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(PresetCard, { preset }, preset.name)) })
|
|
12167
12215
|
] }),
|
|
12168
|
-
customPresets.length > 0 && /* @__PURE__ */ (0,
|
|
12169
|
-
/* @__PURE__ */ (0,
|
|
12170
|
-
/* @__PURE__ */ (0,
|
|
12216
|
+
customPresets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { children: [
|
|
12217
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ITText, { as: "span", className: "text-[11px] font-bold uppercase tracking-wider text-slate-400 dark:text-slate-500 mb-2.5 block", children: "Mis Temas" }),
|
|
12218
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "flex flex-col gap-1.5", children: customPresets.map((preset) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(PresetCard, { preset, isCustom: true }, preset.name)) })
|
|
12171
12219
|
] }),
|
|
12172
|
-
isSavingPreset && /* @__PURE__ */ (0,
|
|
12173
|
-
/* @__PURE__ */ (0,
|
|
12220
|
+
isSavingPreset && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex flex-col gap-2 p-3 rounded-xl border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-900/50", children: [
|
|
12221
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12174
12222
|
ITInput,
|
|
12175
12223
|
{
|
|
12176
12224
|
name: "presetName",
|
|
@@ -12188,8 +12236,8 @@ function ITThemeProvider({
|
|
|
12188
12236
|
}
|
|
12189
12237
|
}
|
|
12190
12238
|
),
|
|
12191
|
-
/* @__PURE__ */ (0,
|
|
12192
|
-
/* @__PURE__ */ (0,
|
|
12239
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex gap-2", children: [
|
|
12240
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12193
12241
|
ITButton,
|
|
12194
12242
|
{
|
|
12195
12243
|
label: "Guardar",
|
|
@@ -12200,7 +12248,7 @@ function ITThemeProvider({
|
|
|
12200
12248
|
className: "flex-1"
|
|
12201
12249
|
}
|
|
12202
12250
|
),
|
|
12203
|
-
/* @__PURE__ */ (0,
|
|
12251
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12204
12252
|
ITButton,
|
|
12205
12253
|
{
|
|
12206
12254
|
label: "X",
|
|
@@ -12214,31 +12262,31 @@ function ITThemeProvider({
|
|
|
12214
12262
|
)
|
|
12215
12263
|
] })
|
|
12216
12264
|
] }),
|
|
12217
|
-
!isSavingPreset && /* @__PURE__ */ (0,
|
|
12265
|
+
!isSavingPreset && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12218
12266
|
ITButton,
|
|
12219
12267
|
{
|
|
12220
12268
|
variant: "outlined",
|
|
12221
|
-
icon: /* @__PURE__ */ (0,
|
|
12269
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_md3.MdPalette, { size: 14 }),
|
|
12222
12270
|
label: "Guardar actual",
|
|
12223
12271
|
onClick: () => setIsSavingPreset(true),
|
|
12224
12272
|
size: "sm"
|
|
12225
12273
|
}
|
|
12226
12274
|
),
|
|
12227
|
-
/* @__PURE__ */ (0,
|
|
12275
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12228
12276
|
ITButton,
|
|
12229
12277
|
{
|
|
12230
12278
|
variant: "outlined",
|
|
12231
12279
|
color: "danger",
|
|
12232
|
-
icon: /* @__PURE__ */ (0,
|
|
12280
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_md3.MdRefresh, { size: 14 }),
|
|
12233
12281
|
label: "Restaurar default",
|
|
12234
12282
|
onClick: resetTheme,
|
|
12235
12283
|
size: "sm"
|
|
12236
12284
|
}
|
|
12237
12285
|
)
|
|
12238
12286
|
] }),
|
|
12239
|
-
/* @__PURE__ */ (0,
|
|
12240
|
-
/* @__PURE__ */ (0,
|
|
12241
|
-
/* @__PURE__ */ (0,
|
|
12287
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ITDivider, { orientation: "vertical" }),
|
|
12288
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex-1 flex flex-col min-w-0", children: [
|
|
12289
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12242
12290
|
tabs_default,
|
|
12243
12291
|
{
|
|
12244
12292
|
variant: "pill",
|
|
@@ -12246,7 +12294,7 @@ function ITThemeProvider({
|
|
|
12246
12294
|
{
|
|
12247
12295
|
id: "brand",
|
|
12248
12296
|
label: "Marca",
|
|
12249
|
-
content: /* @__PURE__ */ (0,
|
|
12297
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-3 max-h-[480px] overflow-y-auto pr-2 mt-3", children: [
|
|
12250
12298
|
"primary",
|
|
12251
12299
|
"secondary",
|
|
12252
12300
|
"ternary",
|
|
@@ -12255,35 +12303,35 @@ function ITThemeProvider({
|
|
|
12255
12303
|
"info",
|
|
12256
12304
|
"alert",
|
|
12257
12305
|
"warning"
|
|
12258
|
-
].map((key) => /* @__PURE__ */ (0,
|
|
12306
|
+
].map((key) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ColorRow, { colorKey: key }, key)) })
|
|
12259
12307
|
},
|
|
12260
12308
|
{
|
|
12261
12309
|
id: "layout",
|
|
12262
12310
|
label: "Nav & Sidebar",
|
|
12263
|
-
content: /* @__PURE__ */ (0,
|
|
12311
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-3 max-h-[480px] overflow-y-auto pr-2 mt-3", children: [
|
|
12264
12312
|
"layout.sidebarBg",
|
|
12265
12313
|
"layout.sidebarText",
|
|
12266
12314
|
"layout.navbarBg",
|
|
12267
12315
|
"layout.navbarText"
|
|
12268
|
-
].map((key) => /* @__PURE__ */ (0,
|
|
12316
|
+
].map((key) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ColorRow, { colorKey: key }, key)) })
|
|
12269
12317
|
},
|
|
12270
12318
|
{
|
|
12271
12319
|
id: "tables",
|
|
12272
12320
|
label: "Tablas",
|
|
12273
|
-
content: /* @__PURE__ */ (0,
|
|
12321
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-3 max-h-[480px] overflow-y-auto pr-2 mt-3", children: [
|
|
12274
12322
|
"table.headerBg",
|
|
12275
12323
|
"table.headerText",
|
|
12276
12324
|
"table.rowBg",
|
|
12277
12325
|
"table.rowText",
|
|
12278
12326
|
"table.rowHover"
|
|
12279
|
-
].map((key) => /* @__PURE__ */ (0,
|
|
12327
|
+
].map((key) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ColorRow, { colorKey: key }, key)) })
|
|
12280
12328
|
}
|
|
12281
12329
|
]
|
|
12282
12330
|
}
|
|
12283
12331
|
),
|
|
12284
|
-
/* @__PURE__ */ (0,
|
|
12285
|
-
/* @__PURE__ */ (0,
|
|
12286
|
-
/* @__PURE__ */ (0,
|
|
12332
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex items-center justify-end gap-3 mt-auto pt-4 border-t border-slate-100 dark:border-slate-800", children: [
|
|
12333
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ITText, { as: "p", className: "text-[11px] text-slate-400 mr-auto", children: "Los cambios se guardan autom\xE1ticamente" }),
|
|
12334
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12287
12335
|
ITButton,
|
|
12288
12336
|
{
|
|
12289
12337
|
label: "Cerrar",
|
|
@@ -12342,6 +12390,7 @@ var createValidationSchema = (fields) => Yup.object().shape(
|
|
|
12342
12390
|
ITGrid,
|
|
12343
12391
|
ITImage,
|
|
12344
12392
|
ITInput,
|
|
12393
|
+
ITInputNumber,
|
|
12345
12394
|
ITLayout,
|
|
12346
12395
|
ITLoader,
|
|
12347
12396
|
ITMaskedInput,
|