@axzydev/axzy_ui_system 1.3.5 → 1.4.0
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 +562 -506
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.cts +107 -3
- package/dist/index.d.ts +107 -3
- package/dist/index.js +433 -378
- 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/molecules/date-picker/datePicker.tsx +1 -0
- package/src/components/molecules/dropdown-menu/dropdown-menu.tsx +1 -0
- package/src/components/molecules/multi-select/multi-select.tsx +1 -0
- package/src/components/molecules/search-select/search-select.tsx +1 -0
- package/src/components/molecules/time-picker/timePicker.tsx +1 -0
- package/src/components/organisms/dialog/dialog.stories.tsx +48 -0
- package/src/components/organisms/sidebar/sidebar.doc.mdx +12 -12
- package/src/hooks/useClickOutside.ts +6 -0
- package/src/hooks/useFloatingPanel.ts +4 -1
- package/src/index.ts +4 -2
- package/src/sandbox/navigation.ts +2 -0
- package/src/showcases/FeedbackShowcases.tsx +16 -1
- package/src/showcases/FormShowcases.tsx +287 -1
- package/src/showcases/HomeShowcase.tsx +552 -331
- package/src/showcases/ProductoDetalle.tsx +181 -0
- package/src/showcases/ProductoIcono.tsx +25 -0
- package/src/showcases/StructureShowcases.tsx +2 -2
- package/src/showcases/productos.ts +179 -0
- package/src/showcases/techIcons.ts +67 -0
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,
|
|
@@ -112,6 +113,8 @@ var useClickOutside = (ref, callback) => {
|
|
|
112
113
|
const clickedDialog = target?.closest("[data-it-dialog]");
|
|
113
114
|
const currentDialog = ref.current?.closest("[data-it-dialog]");
|
|
114
115
|
if (clickedDialog && clickedDialog !== currentDialog) return;
|
|
116
|
+
const clickedFloating = target?.closest("[data-it-floating]");
|
|
117
|
+
if (clickedFloating && !ref.current?.contains(clickedFloating)) return;
|
|
115
118
|
if (ref.current && !ref.current.contains(event.target)) {
|
|
116
119
|
callback();
|
|
117
120
|
}
|
|
@@ -307,7 +310,7 @@ function useFloatingPanel(anchorRef, isOpen, {
|
|
|
307
310
|
const spaceAbove = rect.top;
|
|
308
311
|
const flipAbove = spaceBelow < panelHeight + offset && spaceAbove > spaceBelow;
|
|
309
312
|
const width = matchWidth ? rect.width : void 0;
|
|
310
|
-
const panelWidth = panelRef.current?.offsetWidth ??
|
|
313
|
+
const panelWidth = width ?? panelRef.current?.offsetWidth ?? 0;
|
|
311
314
|
let left = align === "end" && panelWidth ? rect.right - panelWidth : rect.left;
|
|
312
315
|
if (panelWidth) {
|
|
313
316
|
left = Math.max(8, Math.min(left, viewportWidth - panelWidth - 8));
|
|
@@ -2536,6 +2539,7 @@ function ITDropdownMenu({
|
|
|
2536
2539
|
"div",
|
|
2537
2540
|
{
|
|
2538
2541
|
ref: panelRef,
|
|
2542
|
+
"data-it-floating": "true",
|
|
2539
2543
|
role: "menu",
|
|
2540
2544
|
"aria-label": triggerLabel,
|
|
2541
2545
|
style: panelStyle,
|
|
@@ -2644,11 +2648,13 @@ function ITInput({
|
|
|
2644
2648
|
max,
|
|
2645
2649
|
readOnly = false,
|
|
2646
2650
|
focusContent,
|
|
2647
|
-
size = "md"
|
|
2651
|
+
size = "md",
|
|
2652
|
+
decimals
|
|
2648
2653
|
}) {
|
|
2649
2654
|
const isCheckboxOrRadio = type === "checkbox" || type === "radio";
|
|
2650
2655
|
const isNumberType = type === "number";
|
|
2651
2656
|
const isTextArea = type === "textarea";
|
|
2657
|
+
const decimalPlaces = decimals ?? (currencyFormat ? 2 : 0);
|
|
2652
2658
|
const [displayValue, setDisplayValue] = (0, import_react12.useState)("");
|
|
2653
2659
|
const [isFocused, setIsFocused] = (0, import_react12.useState)(false);
|
|
2654
2660
|
const [hasSelectedAll, setHasSelectedAll] = (0, import_react12.useState)(false);
|
|
@@ -2701,13 +2707,16 @@ function ITInput({
|
|
|
2701
2707
|
}
|
|
2702
2708
|
if (currencyFormat) {
|
|
2703
2709
|
return num.toLocaleString("es-MX", {
|
|
2704
|
-
minimumFractionDigits:
|
|
2705
|
-
maximumFractionDigits:
|
|
2710
|
+
minimumFractionDigits: decimalPlaces,
|
|
2711
|
+
maximumFractionDigits: decimalPlaces
|
|
2706
2712
|
});
|
|
2707
2713
|
}
|
|
2714
|
+
if (decimalPlaces > 0) {
|
|
2715
|
+
return num.toFixed(decimalPlaces);
|
|
2716
|
+
}
|
|
2708
2717
|
return num.toString();
|
|
2709
2718
|
},
|
|
2710
|
-
[currencyFormat]
|
|
2719
|
+
[currencyFormat, decimalPlaces]
|
|
2711
2720
|
);
|
|
2712
2721
|
const unformatValue = (0, import_react12.useCallback)(
|
|
2713
2722
|
(val) => {
|
|
@@ -2753,11 +2762,11 @@ function ITInput({
|
|
|
2753
2762
|
if (allowedKeys.includes(key) || ctrlKey || metaKey) {
|
|
2754
2763
|
return;
|
|
2755
2764
|
}
|
|
2756
|
-
if (
|
|
2765
|
+
if (decimalPlaces === 0 && (key === "." || key === ",")) {
|
|
2757
2766
|
e.preventDefault();
|
|
2758
2767
|
return;
|
|
2759
2768
|
}
|
|
2760
|
-
if (
|
|
2769
|
+
if (decimalPlaces > 0 && (key === "." || key === ",") && currentValue.includes(".")) {
|
|
2761
2770
|
const dotIndex = currentValue.indexOf(".");
|
|
2762
2771
|
const replacingDot = selectionStart !== null && selectionEnd !== null && selectionStart <= dotIndex && dotIndex < selectionEnd;
|
|
2763
2772
|
if (!replacingDot) {
|
|
@@ -2765,7 +2774,7 @@ function ITInput({
|
|
|
2765
2774
|
return;
|
|
2766
2775
|
}
|
|
2767
2776
|
}
|
|
2768
|
-
const allowedCharsRegex =
|
|
2777
|
+
const allowedCharsRegex = decimalPlaces > 0 ? /^[0-9.,]$/ : /^[0-9]$/;
|
|
2769
2778
|
if (key !== "Unidentified" && !allowedCharsRegex.test(key)) {
|
|
2770
2779
|
e.preventDefault();
|
|
2771
2780
|
return;
|
|
@@ -2783,7 +2792,7 @@ function ITInput({
|
|
|
2783
2792
|
if (readOnly) return;
|
|
2784
2793
|
let rawValue = e.target.value;
|
|
2785
2794
|
let cleanedValue = "";
|
|
2786
|
-
if (
|
|
2795
|
+
if (decimalPlaces > 0) {
|
|
2787
2796
|
if (rawValue.includes(",") && rawValue.includes(".")) {
|
|
2788
2797
|
rawValue = rawValue.replace(/,/g, "");
|
|
2789
2798
|
} else if (rawValue.includes(",")) {
|
|
@@ -2792,8 +2801,8 @@ function ITInput({
|
|
|
2792
2801
|
cleanedValue = rawValue.replace(/[^0-9.]/g, "");
|
|
2793
2802
|
const parts = cleanedValue.split(".");
|
|
2794
2803
|
if (parts.length > 1) {
|
|
2795
|
-
const
|
|
2796
|
-
cleanedValue = parts[0] + "." +
|
|
2804
|
+
const decimalPart = parts.slice(1).join("").substring(0, decimalPlaces);
|
|
2805
|
+
cleanedValue = parts[0] + "." + decimalPart;
|
|
2797
2806
|
}
|
|
2798
2807
|
} else {
|
|
2799
2808
|
cleanedValue = rawValue.replace(/[^0-9]/g, "");
|
|
@@ -2804,7 +2813,7 @@ function ITInput({
|
|
|
2804
2813
|
if (!formatNumber) {
|
|
2805
2814
|
valueToSend = cleanedValue;
|
|
2806
2815
|
} else if (cleanedValue !== "") {
|
|
2807
|
-
if (
|
|
2816
|
+
if (decimalPlaces > 0) {
|
|
2808
2817
|
const numericValue = parseFloat(cleanedValue);
|
|
2809
2818
|
if (!isNaN(numericValue)) {
|
|
2810
2819
|
valueToSend = cleanedValue;
|
|
@@ -2881,7 +2890,7 @@ function ITInput({
|
|
|
2881
2890
|
let numericValue = void 0;
|
|
2882
2891
|
let valueToSend = void 0;
|
|
2883
2892
|
let cleanedValue = "";
|
|
2884
|
-
if (
|
|
2893
|
+
if (decimalPlaces > 0) {
|
|
2885
2894
|
cleanedValue = currentValue.replace(/[^0-9.]/g, "");
|
|
2886
2895
|
const parts = cleanedValue.split(".");
|
|
2887
2896
|
if (parts.length > 2) {
|
|
@@ -2891,7 +2900,7 @@ function ITInput({
|
|
|
2891
2900
|
} else {
|
|
2892
2901
|
cleanedValue = currentValue.replace(/[^0-9]/g, "");
|
|
2893
2902
|
}
|
|
2894
|
-
const parsed =
|
|
2903
|
+
const parsed = decimalPlaces > 0 ? parseFloat(cleanedValue) : parseInt(cleanedValue, 10);
|
|
2895
2904
|
if (!isNaN(parsed)) {
|
|
2896
2905
|
numericValue = parsed;
|
|
2897
2906
|
if (min !== void 0 && numericValue < min) {
|
|
@@ -2924,7 +2933,7 @@ function ITInput({
|
|
|
2924
2933
|
}
|
|
2925
2934
|
onBlur?.(e);
|
|
2926
2935
|
};
|
|
2927
|
-
const currentLength = isNumberType ? (
|
|
2936
|
+
const currentLength = isNumberType ? (decimalPlaces > 0 ? displayValue.replace(/[.,]/g, "") : displayValue).length : typeof value === "string" ? value.length : String(value ?? "").length;
|
|
2928
2937
|
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: (0, import_clsx15.default)("w-full", containerClassName), children: [
|
|
2929
2938
|
isCheckboxOrRadio ? (
|
|
2930
2939
|
// CHECKBOX / RADIO LAYOUT (Row)
|
|
@@ -3021,7 +3030,7 @@ function ITInput({
|
|
|
3021
3030
|
name,
|
|
3022
3031
|
id: name,
|
|
3023
3032
|
type: isNumberType ? "text" : type === "password" ? showPassword ? "text" : "password" : type,
|
|
3024
|
-
inputMode: isNumberType ?
|
|
3033
|
+
inputMode: isNumberType ? decimalPlaces > 0 ? "decimal" : "numeric" : void 0,
|
|
3025
3034
|
placeholder,
|
|
3026
3035
|
value: isNumberType ? displayValue : String(value ?? ""),
|
|
3027
3036
|
onChange: isNumberType ? handleNumberChange : handleTextChange,
|
|
@@ -3033,7 +3042,7 @@ function ITInput({
|
|
|
3033
3042
|
},
|
|
3034
3043
|
onKeyDown: isNumberType ? handleKeyDown : onKeyDown,
|
|
3035
3044
|
readOnly,
|
|
3036
|
-
maxLength: isNumberType &&
|
|
3045
|
+
maxLength: isNumberType && decimalPlaces === 0 ? maxLength : void 0,
|
|
3037
3046
|
minLength,
|
|
3038
3047
|
min,
|
|
3039
3048
|
max,
|
|
@@ -3516,6 +3525,7 @@ function ITMultiSelect({
|
|
|
3516
3525
|
"div",
|
|
3517
3526
|
{
|
|
3518
3527
|
ref: panelRef,
|
|
3528
|
+
"data-it-floating": "true",
|
|
3519
3529
|
role: "listbox",
|
|
3520
3530
|
"aria-multiselectable": "true",
|
|
3521
3531
|
style: panelStyle,
|
|
@@ -4185,6 +4195,7 @@ function ITSearchSelect({
|
|
|
4185
4195
|
"div",
|
|
4186
4196
|
{
|
|
4187
4197
|
ref: panelRef,
|
|
4198
|
+
"data-it-floating": "true",
|
|
4188
4199
|
style: panelStyle,
|
|
4189
4200
|
className: "bg-white dark:bg-slate-900 border border-secondary-200 dark:border-slate-800 rounded-lg shadow-xl overflow-hidden animate-in fade-in zoom-in duration-200 origin-top",
|
|
4190
4201
|
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "max-h-60 overflow-y-auto", children: filteredOptions.length > 0 ? filteredOptions.map((option) => {
|
|
@@ -4430,6 +4441,7 @@ function ITDatePicker({
|
|
|
4430
4441
|
"div",
|
|
4431
4442
|
{
|
|
4432
4443
|
ref: panelRef,
|
|
4444
|
+
"data-it-floating": "true",
|
|
4433
4445
|
className: (0, import_clsx22.default)(
|
|
4434
4446
|
calendarClassName,
|
|
4435
4447
|
range ? "w-[320px]" : "w-[280px]"
|
|
@@ -5577,6 +5589,7 @@ function ITTimePicker({
|
|
|
5577
5589
|
"div",
|
|
5578
5590
|
{
|
|
5579
5591
|
ref: dropdownRef,
|
|
5592
|
+
"data-it-floating": "true",
|
|
5580
5593
|
className: "bg-white border border-secondary-100 shadow-xl rounded-xl w-64 overflow-hidden flex flex-col animate-in fade-in zoom-in-95 duration-200 origin-top it-timepicker-dropdown",
|
|
5581
5594
|
style: panelStyle,
|
|
5582
5595
|
children: [
|
|
@@ -6285,10 +6298,52 @@ var ITImage = ({
|
|
|
6285
6298
|
};
|
|
6286
6299
|
var image_default = ITImage;
|
|
6287
6300
|
|
|
6301
|
+
// src/components/atoms/input-number/input-number.tsx
|
|
6302
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
6303
|
+
function parseNumber(raw) {
|
|
6304
|
+
if (raw === void 0 || raw === null) return void 0;
|
|
6305
|
+
if (typeof raw === "number") return Number.isFinite(raw) ? raw : void 0;
|
|
6306
|
+
const cleaned = String(raw).replace(/,/g, "").trim();
|
|
6307
|
+
if (cleaned === "" || cleaned === "-" || cleaned === ".") return void 0;
|
|
6308
|
+
const parsed = Number(cleaned);
|
|
6309
|
+
return Number.isFinite(parsed) ? parsed : void 0;
|
|
6310
|
+
}
|
|
6311
|
+
function ITInputNumber({
|
|
6312
|
+
value,
|
|
6313
|
+
onChange,
|
|
6314
|
+
onBlur,
|
|
6315
|
+
decimals = 2,
|
|
6316
|
+
prefix,
|
|
6317
|
+
iconLeft,
|
|
6318
|
+
...rest
|
|
6319
|
+
}) {
|
|
6320
|
+
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);
|
|
6321
|
+
const handleChange = (event) => {
|
|
6322
|
+
onChange(parseNumber(event.target.value), event);
|
|
6323
|
+
};
|
|
6324
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
6325
|
+
ITInput,
|
|
6326
|
+
{
|
|
6327
|
+
...rest,
|
|
6328
|
+
type: "number",
|
|
6329
|
+
currencyFormat: true,
|
|
6330
|
+
formatNumber: true,
|
|
6331
|
+
decimals,
|
|
6332
|
+
iconLeft: resolvedIconLeft,
|
|
6333
|
+
value: value ?? "",
|
|
6334
|
+
onChange: handleChange,
|
|
6335
|
+
onBlur: (event) => {
|
|
6336
|
+
const input = event.target;
|
|
6337
|
+
onBlur?.(parseNumber(input.value), event);
|
|
6338
|
+
}
|
|
6339
|
+
}
|
|
6340
|
+
);
|
|
6341
|
+
}
|
|
6342
|
+
|
|
6288
6343
|
// src/components/organisms/navbar/navbar.tsx
|
|
6289
6344
|
var import_react31 = require("react");
|
|
6290
6345
|
var import_fa20 = require("react-icons/fa");
|
|
6291
|
-
var
|
|
6346
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
6292
6347
|
function ITNavbar({
|
|
6293
6348
|
logo,
|
|
6294
6349
|
logoText,
|
|
@@ -6326,42 +6381,42 @@ function ITNavbar({
|
|
|
6326
6381
|
};
|
|
6327
6382
|
const shouldUseLegacy = !navigationItems.length && (navItems || sidebarItems);
|
|
6328
6383
|
if (shouldUseLegacy) {
|
|
6329
|
-
return /* @__PURE__ */ (0,
|
|
6330
|
-
/* @__PURE__ */ (0,
|
|
6331
|
-
/* @__PURE__ */ (0,
|
|
6332
|
-
logo && /* @__PURE__ */ (0,
|
|
6333
|
-
logoText && /* @__PURE__ */ (0,
|
|
6384
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex flex-col h-screen", children: [
|
|
6385
|
+
/* @__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: [
|
|
6386
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-center space-x-3 rtl:space-x-reverse", children: [
|
|
6387
|
+
logo && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "h-8", children: logo }),
|
|
6388
|
+
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
6389
|
] }),
|
|
6335
|
-
/* @__PURE__ */ (0,
|
|
6336
|
-
/* @__PURE__ */ (0,
|
|
6337
|
-
userMenu && /* @__PURE__ */ (0,
|
|
6338
|
-
/* @__PURE__ */ (0,
|
|
6390
|
+
/* @__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: [
|
|
6391
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("ul", { className: "hidden md:flex space-x-4", children: navItems }),
|
|
6392
|
+
userMenu && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "relative", children: [
|
|
6393
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
6339
6394
|
"button",
|
|
6340
6395
|
{
|
|
6341
6396
|
type: "button",
|
|
6342
6397
|
className: "flex text-sm bg-secondary-200 rounded-full md:me-0 focus:ring-4 focus:ring-secondary-300",
|
|
6343
6398
|
onClick: toggleUserMenu,
|
|
6344
|
-
children: userMenu.userImage ? /* @__PURE__ */ (0,
|
|
6399
|
+
children: userMenu.userImage ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
6345
6400
|
"img",
|
|
6346
6401
|
{
|
|
6347
6402
|
className: "w-8 h-8 rounded-full",
|
|
6348
6403
|
src: userMenu.userImage,
|
|
6349
6404
|
alt: "user photo"
|
|
6350
6405
|
}
|
|
6351
|
-
) : /* @__PURE__ */ (0,
|
|
6406
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_fa20.FaUserCircle, { className: "w-8 h-8 text-secondary-500" })
|
|
6352
6407
|
}
|
|
6353
6408
|
),
|
|
6354
|
-
isUserMenuOpen && /* @__PURE__ */ (0,
|
|
6409
|
+
isUserMenuOpen && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
6355
6410
|
"div",
|
|
6356
6411
|
{
|
|
6357
6412
|
ref: userMenuRef,
|
|
6358
6413
|
className: "z-[70] absolute right-0 mt-2 text-base list-none bg-white divide-y divide-secondary-100 rounded-lg shadow-sm",
|
|
6359
6414
|
children: [
|
|
6360
|
-
/* @__PURE__ */ (0,
|
|
6361
|
-
/* @__PURE__ */ (0,
|
|
6362
|
-
/* @__PURE__ */ (0,
|
|
6415
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "px-4 py-3", children: [
|
|
6416
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "span", className: "block text-sm text-secondary-900", children: userMenu.userName }),
|
|
6417
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "span", className: "block text-sm text-secondary-500 truncate", children: userMenu.userEmail })
|
|
6363
6418
|
] }),
|
|
6364
|
-
/* @__PURE__ */ (0,
|
|
6419
|
+
/* @__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
6420
|
"button",
|
|
6366
6421
|
{
|
|
6367
6422
|
onClick: () => {
|
|
@@ -6369,7 +6424,7 @@ function ITNavbar({
|
|
|
6369
6424
|
setIsUserMenuOpen(false);
|
|
6370
6425
|
},
|
|
6371
6426
|
className: "block px-4 py-2 text-sm text-secondary-700 hover:bg-secondary-100 w-full text-left",
|
|
6372
|
-
children: /* @__PURE__ */ (0,
|
|
6427
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "span", children: item.label })
|
|
6373
6428
|
}
|
|
6374
6429
|
) }, index)) })
|
|
6375
6430
|
]
|
|
@@ -6378,27 +6433,27 @@ function ITNavbar({
|
|
|
6378
6433
|
] })
|
|
6379
6434
|
] }) })
|
|
6380
6435
|
] }) }),
|
|
6381
|
-
/* @__PURE__ */ (0,
|
|
6382
|
-
(showSidebar || showSidebarOnMobile) && /* @__PURE__ */ (0,
|
|
6383
|
-
/* @__PURE__ */ (0,
|
|
6436
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex-1 flex overflow-hidden relative", children: [
|
|
6437
|
+
(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 }) }) }),
|
|
6438
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("main", { className: "flex-1 bg-secondary-100 overflow-y-auto", children })
|
|
6384
6439
|
] })
|
|
6385
6440
|
] });
|
|
6386
6441
|
}
|
|
6387
6442
|
const sidebar = theme.sidebar;
|
|
6388
6443
|
const topbar = theme.topbar;
|
|
6389
|
-
return /* @__PURE__ */ (0,
|
|
6390
|
-
/* @__PURE__ */ (0,
|
|
6444
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex h-screen font-sans", style: { backgroundColor: theme.layout.backgroundColor }, children: [
|
|
6445
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
6391
6446
|
"aside",
|
|
6392
6447
|
{
|
|
6393
6448
|
className: "w-72 shadow-xl flex flex-col transition-all duration-300 ease-in-out",
|
|
6394
6449
|
style: { backgroundColor: sidebar.backgroundColor, borderRight: `1px solid ${sidebar.borderColor}` },
|
|
6395
6450
|
children: [
|
|
6396
|
-
/* @__PURE__ */ (0,
|
|
6397
|
-
logo && /* @__PURE__ */ (0,
|
|
6398
|
-
logoText && /* @__PURE__ */ (0,
|
|
6451
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "p-6 flex items-center gap-3", style: { borderBottom: `1px solid ${sidebar.borderColor}` }, children: [
|
|
6452
|
+
logo && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "h-8 w-auto object-contain transition-transform hover:scale-105", children: logo }),
|
|
6453
|
+
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
6454
|
] }),
|
|
6400
|
-
/* @__PURE__ */ (0,
|
|
6401
|
-
/* @__PURE__ */ (0,
|
|
6455
|
+
/* @__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: [
|
|
6456
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
6402
6457
|
"div",
|
|
6403
6458
|
{
|
|
6404
6459
|
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 +6476,17 @@ function ITNavbar({
|
|
|
6421
6476
|
}
|
|
6422
6477
|
},
|
|
6423
6478
|
children: [
|
|
6424
|
-
/* @__PURE__ */ (0,
|
|
6425
|
-
item.icon && /* @__PURE__ */ (0,
|
|
6479
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
6480
|
+
item.icon && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "text-xl transition-colors", style: {
|
|
6426
6481
|
color: item.isActive ? sidebar.active.iconColor : sidebar.icon.color
|
|
6427
6482
|
}, children: item.icon }),
|
|
6428
|
-
/* @__PURE__ */ (0,
|
|
6483
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "span", className: `font-medium text-sm ${item.isActive ? "font-semibold" : ""}`, children: item.label })
|
|
6429
6484
|
] }),
|
|
6430
|
-
item.subitems && item.subitems.length > 0 && /* @__PURE__ */ (0,
|
|
6485
|
+
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
6486
|
]
|
|
6432
6487
|
}
|
|
6433
6488
|
),
|
|
6434
|
-
item.subitems && item.subitems.length > 0 && expandedItems.has(item.id) && /* @__PURE__ */ (0,
|
|
6489
|
+
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
6490
|
"button",
|
|
6436
6491
|
{
|
|
6437
6492
|
onClick: subitem.action,
|
|
@@ -6450,12 +6505,12 @@ function ITNavbar({
|
|
|
6450
6505
|
e.currentTarget.style.backgroundColor = "transparent";
|
|
6451
6506
|
}
|
|
6452
6507
|
},
|
|
6453
|
-
children: /* @__PURE__ */ (0,
|
|
6508
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "span", children: subitem.label })
|
|
6454
6509
|
}
|
|
6455
6510
|
) }, subitem.id)) })
|
|
6456
6511
|
] }, item.id)) }) }),
|
|
6457
|
-
userMenu && /* @__PURE__ */ (0,
|
|
6458
|
-
/* @__PURE__ */ (0,
|
|
6512
|
+
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: [
|
|
6513
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
6459
6514
|
"button",
|
|
6460
6515
|
{
|
|
6461
6516
|
type: "button",
|
|
@@ -6471,7 +6526,7 @@ function ITNavbar({
|
|
|
6471
6526
|
},
|
|
6472
6527
|
onClick: toggleUserMenu,
|
|
6473
6528
|
children: [
|
|
6474
|
-
userMenu.userImage ? /* @__PURE__ */ (0,
|
|
6529
|
+
userMenu.userImage ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
6475
6530
|
"img",
|
|
6476
6531
|
{
|
|
6477
6532
|
className: "w-10 h-10 rounded-full border-2 transition-colors",
|
|
@@ -6479,34 +6534,34 @@ function ITNavbar({
|
|
|
6479
6534
|
alt: "user photo",
|
|
6480
6535
|
style: { borderColor: sidebar.borderColor }
|
|
6481
6536
|
}
|
|
6482
|
-
) : /* @__PURE__ */ (0,
|
|
6537
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
6483
6538
|
"div",
|
|
6484
6539
|
{
|
|
6485
6540
|
className: "w-10 h-10 rounded-full flex items-center justify-center transition-colors",
|
|
6486
6541
|
style: { backgroundColor: sidebar.hover.backgroundColor, color: sidebar.icon.color },
|
|
6487
|
-
children: /* @__PURE__ */ (0,
|
|
6542
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_fa20.FaUserCircle, { className: "w-6 h-6" })
|
|
6488
6543
|
}
|
|
6489
6544
|
),
|
|
6490
|
-
/* @__PURE__ */ (0,
|
|
6491
|
-
/* @__PURE__ */ (0,
|
|
6492
|
-
/* @__PURE__ */ (0,
|
|
6545
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex-1 text-left overflow-hidden", children: [
|
|
6546
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "div", className: "font-medium text-sm truncate", style: { color: sidebar.active.color }, children: userMenu.userName }),
|
|
6547
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "div", className: "text-xs truncate", style: { color: sidebar.label.color }, children: userMenu.userEmail })
|
|
6493
6548
|
] }),
|
|
6494
|
-
/* @__PURE__ */ (0,
|
|
6549
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_fa20.FaChevronRight, { className: "w-3 h-3", style: { color: sidebar.icon.color } })
|
|
6495
6550
|
]
|
|
6496
6551
|
}
|
|
6497
6552
|
),
|
|
6498
|
-
isUserMenuOpen && /* @__PURE__ */ (0,
|
|
6553
|
+
isUserMenuOpen && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
6499
6554
|
"div",
|
|
6500
6555
|
{
|
|
6501
6556
|
ref: userMenuRef,
|
|
6502
6557
|
className: "absolute bottom-full left-0 mb-3 w-full rounded-xl shadow-2xl overflow-hidden transform transition-all duration-200 origin-bottom",
|
|
6503
6558
|
style: { backgroundColor: topbar.userMenu.dropdown.backgroundColor, border: `1px solid ${topbar.userMenu.dropdown.borderColor}` },
|
|
6504
6559
|
children: [
|
|
6505
|
-
/* @__PURE__ */ (0,
|
|
6506
|
-
/* @__PURE__ */ (0,
|
|
6507
|
-
/* @__PURE__ */ (0,
|
|
6560
|
+
/* @__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: [
|
|
6561
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "span", className: "block text-sm font-semibold", style: { color: topbar.userMenu.textColor }, children: userMenu.userName }),
|
|
6562
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "span", className: "block text-xs truncate", style: { color: topbar.userMenu.subtitleColor }, children: userMenu.userEmail })
|
|
6508
6563
|
] }),
|
|
6509
|
-
/* @__PURE__ */ (0,
|
|
6564
|
+
/* @__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
6565
|
"button",
|
|
6511
6566
|
{
|
|
6512
6567
|
onClick: () => {
|
|
@@ -6521,7 +6576,7 @@ function ITNavbar({
|
|
|
6521
6576
|
onMouseLeave: (e) => {
|
|
6522
6577
|
e.currentTarget.style.backgroundColor = "transparent";
|
|
6523
6578
|
},
|
|
6524
|
-
children: /* @__PURE__ */ (0,
|
|
6579
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITText, { as: "span", children: item.label })
|
|
6525
6580
|
}
|
|
6526
6581
|
) }, index)) })
|
|
6527
6582
|
]
|
|
@@ -6531,7 +6586,7 @@ function ITNavbar({
|
|
|
6531
6586
|
]
|
|
6532
6587
|
}
|
|
6533
6588
|
),
|
|
6534
|
-
/* @__PURE__ */ (0,
|
|
6589
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("main", { className: "flex-1 overflow-y-auto relative", style: { backgroundColor: theme.layout.backgroundColor }, children })
|
|
6535
6590
|
] });
|
|
6536
6591
|
}
|
|
6537
6592
|
|
|
@@ -6540,7 +6595,7 @@ var import_clsx33 = __toESM(require("clsx"), 1);
|
|
|
6540
6595
|
|
|
6541
6596
|
// src/components/organisms/page-header/page-header.tsx
|
|
6542
6597
|
var import_fa21 = require("react-icons/fa");
|
|
6543
|
-
var
|
|
6598
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
6544
6599
|
function ITPageHeader({
|
|
6545
6600
|
title,
|
|
6546
6601
|
description,
|
|
@@ -6552,25 +6607,25 @@ function ITPageHeader({
|
|
|
6552
6607
|
className
|
|
6553
6608
|
}) {
|
|
6554
6609
|
const showTopRow = breadcrumbs?.length || backAction;
|
|
6555
|
-
return /* @__PURE__ */ (0,
|
|
6556
|
-
showTopRow && /* @__PURE__ */ (0,
|
|
6557
|
-
/* @__PURE__ */ (0,
|
|
6558
|
-
backAction && /* @__PURE__ */ (0,
|
|
6610
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: `${className} space-y-3`, children: [
|
|
6611
|
+
showTopRow && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-center justify-between gap-4", children: [
|
|
6612
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-center gap-2 min-w-0", children: [
|
|
6613
|
+
backAction && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
6559
6614
|
"button",
|
|
6560
6615
|
{
|
|
6561
6616
|
onClick: backAction,
|
|
6562
6617
|
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
6618
|
"aria-label": "Volver",
|
|
6564
|
-
children: /* @__PURE__ */ (0,
|
|
6619
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_fa21.FaChevronLeft, { size: 14 })
|
|
6565
6620
|
}
|
|
6566
6621
|
),
|
|
6567
|
-
breadcrumbs && breadcrumbs.length > 0 && /* @__PURE__ */ (0,
|
|
6622
|
+
breadcrumbs && breadcrumbs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(ITBreadcrumbs, { items: breadcrumbs })
|
|
6568
6623
|
] }),
|
|
6569
|
-
actions && /* @__PURE__ */ (0,
|
|
6624
|
+
actions && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex items-center gap-3 flex-shrink-0", children: actions })
|
|
6570
6625
|
] }),
|
|
6571
|
-
/* @__PURE__ */ (0,
|
|
6572
|
-
/* @__PURE__ */ (0,
|
|
6573
|
-
icon && /* @__PURE__ */ (0,
|
|
6626
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-start justify-between gap-6", children: [
|
|
6627
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-start gap-4 min-w-0", children: [
|
|
6628
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
6574
6629
|
"div",
|
|
6575
6630
|
{
|
|
6576
6631
|
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 +6633,8 @@ function ITPageHeader({
|
|
|
6578
6633
|
children: icon
|
|
6579
6634
|
}
|
|
6580
6635
|
),
|
|
6581
|
-
/* @__PURE__ */ (0,
|
|
6582
|
-
/* @__PURE__ */ (0,
|
|
6636
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "min-w-0", children: [
|
|
6637
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
6583
6638
|
ITText,
|
|
6584
6639
|
{
|
|
6585
6640
|
as: "h1",
|
|
@@ -6587,7 +6642,7 @@ function ITPageHeader({
|
|
|
6587
6642
|
children: title
|
|
6588
6643
|
}
|
|
6589
6644
|
),
|
|
6590
|
-
description && /* @__PURE__ */ (0,
|
|
6645
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
6591
6646
|
ITText,
|
|
6592
6647
|
{
|
|
6593
6648
|
as: "p",
|
|
@@ -6597,14 +6652,14 @@ function ITPageHeader({
|
|
|
6597
6652
|
)
|
|
6598
6653
|
] })
|
|
6599
6654
|
] }),
|
|
6600
|
-
!showTopRow && actions && /* @__PURE__ */ (0,
|
|
6655
|
+
!showTopRow && actions && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex items-center gap-3 flex-shrink-0", children: actions })
|
|
6601
6656
|
] })
|
|
6602
6657
|
] });
|
|
6603
6658
|
}
|
|
6604
6659
|
|
|
6605
6660
|
// src/components/atoms/skeleton/skeleton.tsx
|
|
6606
6661
|
var import_clsx31 = __toESM(require("clsx"), 1);
|
|
6607
|
-
var
|
|
6662
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
6608
6663
|
var variantClasses = {
|
|
6609
6664
|
text: "rounded-md h-4 w-full",
|
|
6610
6665
|
circular: "rounded-full",
|
|
@@ -6624,7 +6679,7 @@ function ITSkeleton({
|
|
|
6624
6679
|
...style
|
|
6625
6680
|
};
|
|
6626
6681
|
const items = Array.from({ length: count }, (_, i) => i);
|
|
6627
|
-
return /* @__PURE__ */ (0,
|
|
6682
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_jsx_runtime39.Fragment, { children: items.map((i) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
6628
6683
|
"div",
|
|
6629
6684
|
{
|
|
6630
6685
|
className: (0, import_clsx31.default)(
|
|
@@ -6645,7 +6700,7 @@ function ITSkeleton({
|
|
|
6645
6700
|
// src/components/atoms/stack/stack.tsx
|
|
6646
6701
|
var import_clsx32 = __toESM(require("clsx"), 1);
|
|
6647
6702
|
var import_react32 = require("react");
|
|
6648
|
-
var
|
|
6703
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
6649
6704
|
var directionMap2 = {
|
|
6650
6705
|
row: "flex-row",
|
|
6651
6706
|
column: "flex-col",
|
|
@@ -6690,7 +6745,7 @@ function ITStack({
|
|
|
6690
6745
|
gap: spacing > 0 ? `${spacing * 0.25}rem` : void 0,
|
|
6691
6746
|
...style
|
|
6692
6747
|
};
|
|
6693
|
-
return /* @__PURE__ */ (0,
|
|
6748
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
6694
6749
|
Component,
|
|
6695
6750
|
{
|
|
6696
6751
|
className: (0, import_clsx32.default)(
|
|
@@ -6702,7 +6757,7 @@ function ITStack({
|
|
|
6702
6757
|
className
|
|
6703
6758
|
),
|
|
6704
6759
|
style: resolvedStyle,
|
|
6705
|
-
children: hasDivider ? items.map((child, index) => /* @__PURE__ */ (0,
|
|
6760
|
+
children: hasDivider ? items.map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_react32.Fragment, { children: [
|
|
6706
6761
|
child,
|
|
6707
6762
|
index < items.length - 1 && (0, import_react32.isValidElement)(divider) ? (0, import_react32.cloneElement)(divider, { key: `divider-${index}` }) : null
|
|
6708
6763
|
] }, index)) : children
|
|
@@ -6711,11 +6766,11 @@ function ITStack({
|
|
|
6711
6766
|
}
|
|
6712
6767
|
|
|
6713
6768
|
// src/components/templates/page/page.tsx
|
|
6714
|
-
var
|
|
6769
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
6715
6770
|
var hasHeader = (props) => !!(props.title || props.description || props.breadcrumbs || props.actions || props.backAction || props.icon);
|
|
6716
6771
|
var renderHeader = (props) => {
|
|
6717
6772
|
if (!hasHeader(props)) return null;
|
|
6718
|
-
return /* @__PURE__ */ (0,
|
|
6773
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
6719
6774
|
ITPageHeader,
|
|
6720
6775
|
{
|
|
6721
6776
|
title: props.title || "",
|
|
@@ -6754,24 +6809,24 @@ function ITPage(props) {
|
|
|
6754
6809
|
className
|
|
6755
6810
|
);
|
|
6756
6811
|
if (loading) {
|
|
6757
|
-
return /* @__PURE__ */ (0,
|
|
6812
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: wrapperClass, children: [
|
|
6758
6813
|
renderHeader(props),
|
|
6759
|
-
/* @__PURE__ */ (0,
|
|
6760
|
-
/* @__PURE__ */ (0,
|
|
6761
|
-
/* @__PURE__ */ (0,
|
|
6762
|
-
/* @__PURE__ */ (0,
|
|
6814
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(ITStack, { spacing: 6, children: [
|
|
6815
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(ITSkeleton, { variant: "rectangular", height: 40, width: "40%", className: "rounded-lg" }),
|
|
6816
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(ITSkeleton, { variant: "rectangular", height: 200, className: "rounded-lg" }),
|
|
6817
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(ITSkeleton, { variant: "rectangular", height: 200, className: "rounded-lg" })
|
|
6763
6818
|
] })
|
|
6764
6819
|
] });
|
|
6765
6820
|
}
|
|
6766
6821
|
if (error) {
|
|
6767
|
-
return /* @__PURE__ */ (0,
|
|
6822
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: wrapperClass, children: [
|
|
6768
6823
|
renderHeader(props),
|
|
6769
|
-
/* @__PURE__ */ (0,
|
|
6824
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
6770
6825
|
ITEmptyState,
|
|
6771
6826
|
{
|
|
6772
6827
|
title: errorTitle || "Error",
|
|
6773
6828
|
description: error,
|
|
6774
|
-
action: onRetry ? /* @__PURE__ */ (0,
|
|
6829
|
+
action: onRetry ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
6775
6830
|
ITButton,
|
|
6776
6831
|
{
|
|
6777
6832
|
label: errorActionLabel || "Reintentar",
|
|
@@ -6784,9 +6839,9 @@ function ITPage(props) {
|
|
|
6784
6839
|
] });
|
|
6785
6840
|
}
|
|
6786
6841
|
if (empty) {
|
|
6787
|
-
return /* @__PURE__ */ (0,
|
|
6842
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: wrapperClass, children: [
|
|
6788
6843
|
renderHeader(props),
|
|
6789
|
-
/* @__PURE__ */ (0,
|
|
6844
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
6790
6845
|
ITEmptyState,
|
|
6791
6846
|
{
|
|
6792
6847
|
title: emptyTitle || "Sin datos",
|
|
@@ -6796,7 +6851,7 @@ function ITPage(props) {
|
|
|
6796
6851
|
)
|
|
6797
6852
|
] });
|
|
6798
6853
|
}
|
|
6799
|
-
return /* @__PURE__ */ (0,
|
|
6854
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: wrapperClass, children: [
|
|
6800
6855
|
renderHeader(props),
|
|
6801
6856
|
children
|
|
6802
6857
|
] });
|
|
@@ -6805,7 +6860,7 @@ function ITPage(props) {
|
|
|
6805
6860
|
// src/components/atoms/popover/popover.tsx
|
|
6806
6861
|
var import_react33 = require("react");
|
|
6807
6862
|
var import_clsx34 = __toESM(require("clsx"), 1);
|
|
6808
|
-
var
|
|
6863
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
6809
6864
|
var positionClasses = {
|
|
6810
6865
|
top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
|
|
6811
6866
|
bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
|
|
@@ -6828,15 +6883,15 @@ function ITPopover({
|
|
|
6828
6883
|
if (isControlled) onClose?.();
|
|
6829
6884
|
else setInternalOpen(false);
|
|
6830
6885
|
});
|
|
6831
|
-
return /* @__PURE__ */ (0,
|
|
6832
|
-
/* @__PURE__ */ (0,
|
|
6833
|
-
open && /* @__PURE__ */ (0,
|
|
6886
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { ref, className: (0, import_clsx34.default)("relative inline-flex", className), children: [
|
|
6887
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { onClick: () => isControlled ? onClose?.() : setInternalOpen((p) => !p), className: "cursor-pointer", children: trigger }),
|
|
6888
|
+
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
6889
|
] });
|
|
6835
6890
|
}
|
|
6836
6891
|
|
|
6837
6892
|
// src/components/atoms/progress/progress.tsx
|
|
6838
6893
|
var import_clsx35 = __toESM(require("clsx"), 1);
|
|
6839
|
-
var
|
|
6894
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
6840
6895
|
var colorMap = {
|
|
6841
6896
|
primary: "bg-primary-500",
|
|
6842
6897
|
secondary: "bg-secondary-500",
|
|
@@ -6863,7 +6918,7 @@ function ITProgress({
|
|
|
6863
6918
|
style
|
|
6864
6919
|
}) {
|
|
6865
6920
|
const pct = Math.min(Math.max(value / max * 100, 0), 100);
|
|
6866
|
-
return /* @__PURE__ */ (0,
|
|
6921
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
6867
6922
|
"div",
|
|
6868
6923
|
{
|
|
6869
6924
|
className: (0, import_clsx35.default)("w-full bg-slate-200 dark:bg-slate-700 rounded-full overflow-hidden", sizeMap2[size], className),
|
|
@@ -6871,7 +6926,7 @@ function ITProgress({
|
|
|
6871
6926
|
role: "progressbar",
|
|
6872
6927
|
"aria-valuenow": variant === "determinate" ? value : void 0,
|
|
6873
6928
|
"aria-valuemax": max,
|
|
6874
|
-
children: /* @__PURE__ */ (0,
|
|
6929
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
6875
6930
|
"div",
|
|
6876
6931
|
{
|
|
6877
6932
|
className: (0, import_clsx35.default)(
|
|
@@ -6888,7 +6943,7 @@ function ITProgress({
|
|
|
6888
6943
|
|
|
6889
6944
|
// src/components/atoms/radio/radio.tsx
|
|
6890
6945
|
var import_clsx36 = __toESM(require("clsx"), 1);
|
|
6891
|
-
var
|
|
6946
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
6892
6947
|
function ITRadioGroup({
|
|
6893
6948
|
name,
|
|
6894
6949
|
value,
|
|
@@ -6898,7 +6953,7 @@ function ITRadioGroup({
|
|
|
6898
6953
|
direction = "column",
|
|
6899
6954
|
className
|
|
6900
6955
|
}) {
|
|
6901
|
-
return /* @__PURE__ */ (0,
|
|
6956
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
6902
6957
|
"div",
|
|
6903
6958
|
{
|
|
6904
6959
|
className: (0, import_clsx36.default)(
|
|
@@ -6908,7 +6963,7 @@ function ITRadioGroup({
|
|
|
6908
6963
|
),
|
|
6909
6964
|
children: options.map((opt) => {
|
|
6910
6965
|
const isSelected = opt.value === value;
|
|
6911
|
-
return /* @__PURE__ */ (0,
|
|
6966
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
|
|
6912
6967
|
"label",
|
|
6913
6968
|
{
|
|
6914
6969
|
className: (0, import_clsx36.default)(
|
|
@@ -6916,7 +6971,7 @@ function ITRadioGroup({
|
|
|
6916
6971
|
disabled && "opacity-50 cursor-not-allowed"
|
|
6917
6972
|
),
|
|
6918
6973
|
children: [
|
|
6919
|
-
/* @__PURE__ */ (0,
|
|
6974
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
6920
6975
|
"input",
|
|
6921
6976
|
{
|
|
6922
6977
|
type: "radio",
|
|
@@ -6928,7 +6983,7 @@ function ITRadioGroup({
|
|
|
6928
6983
|
className: "peer sr-only"
|
|
6929
6984
|
}
|
|
6930
6985
|
),
|
|
6931
|
-
/* @__PURE__ */ (0,
|
|
6986
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
6932
6987
|
"div",
|
|
6933
6988
|
{
|
|
6934
6989
|
className: (0, import_clsx36.default)(
|
|
@@ -6936,10 +6991,10 @@ function ITRadioGroup({
|
|
|
6936
6991
|
isSelected ? "border-primary-500" : "border-slate-300 dark:border-slate-600",
|
|
6937
6992
|
!disabled && "peer-focus:ring-2 peer-focus:ring-primary-200"
|
|
6938
6993
|
),
|
|
6939
|
-
children: isSelected && /* @__PURE__ */ (0,
|
|
6994
|
+
children: isSelected && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "w-2 h-2 rounded-full bg-primary-500" })
|
|
6940
6995
|
}
|
|
6941
6996
|
),
|
|
6942
|
-
/* @__PURE__ */ (0,
|
|
6997
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(ITText, { as: "span", className: "text-sm text-slate-700 dark:text-slate-300", children: opt.label })
|
|
6943
6998
|
]
|
|
6944
6999
|
},
|
|
6945
7000
|
opt.value
|
|
@@ -6955,16 +7010,16 @@ var import_react34 = require("react");
|
|
|
6955
7010
|
|
|
6956
7011
|
// src/components/organisms/searchTable/components/SearchInput.tsx
|
|
6957
7012
|
var import_fa22 = require("react-icons/fa");
|
|
6958
|
-
var
|
|
7013
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
6959
7014
|
function SearchInput({
|
|
6960
7015
|
placeholder = "Buscar en todos los campos...",
|
|
6961
7016
|
value,
|
|
6962
7017
|
onChange,
|
|
6963
7018
|
className = ""
|
|
6964
7019
|
}) {
|
|
6965
|
-
return /* @__PURE__ */ (0,
|
|
6966
|
-
/* @__PURE__ */ (0,
|
|
6967
|
-
/* @__PURE__ */ (0,
|
|
7020
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: `relative flex-1 ${className}`, children: [
|
|
7021
|
+
/* @__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" }) }),
|
|
7022
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
6968
7023
|
ITInput,
|
|
6969
7024
|
{
|
|
6970
7025
|
name: "global-search",
|
|
@@ -6981,13 +7036,13 @@ function SearchInput({
|
|
|
6981
7036
|
|
|
6982
7037
|
// src/components/organisms/searchTable/components/SortButton.tsx
|
|
6983
7038
|
var import_fa23 = require("react-icons/fa");
|
|
6984
|
-
var
|
|
7039
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
6985
7040
|
function SortButton({
|
|
6986
7041
|
sortConfig,
|
|
6987
7042
|
onClick,
|
|
6988
7043
|
className = ""
|
|
6989
7044
|
}) {
|
|
6990
|
-
return /* @__PURE__ */ (0,
|
|
7045
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
|
|
6991
7046
|
"button",
|
|
6992
7047
|
{
|
|
6993
7048
|
onClick,
|
|
@@ -6995,15 +7050,15 @@ function SortButton({
|
|
|
6995
7050
|
"aria-label": `Ordenar tabla ${sortConfig ? sortConfig.direction === "asc" ? "descendente" : "ascendente" : "ascendente"}`,
|
|
6996
7051
|
title: "Ordenar tabla",
|
|
6997
7052
|
children: [
|
|
6998
|
-
sortConfig ? sortConfig.direction === "asc" ? /* @__PURE__ */ (0,
|
|
6999
|
-
/* @__PURE__ */ (0,
|
|
7053
|
+
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" }),
|
|
7054
|
+
/* @__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
7055
|
]
|
|
7001
7056
|
}
|
|
7002
7057
|
);
|
|
7003
7058
|
}
|
|
7004
7059
|
|
|
7005
7060
|
// src/components/organisms/searchTable/components/SearchAndSortBar.tsx
|
|
7006
|
-
var
|
|
7061
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
7007
7062
|
function SearchAndSortBar({
|
|
7008
7063
|
searchTerm,
|
|
7009
7064
|
onSearchChange,
|
|
@@ -7012,8 +7067,8 @@ function SearchAndSortBar({
|
|
|
7012
7067
|
sortConfig,
|
|
7013
7068
|
searchInputPlaceholder = "Buscar en todos los campos..."
|
|
7014
7069
|
}) {
|
|
7015
|
-
return /* @__PURE__ */ (0,
|
|
7016
|
-
/* @__PURE__ */ (0,
|
|
7070
|
+
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: [
|
|
7071
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
7017
7072
|
SearchInput,
|
|
7018
7073
|
{
|
|
7019
7074
|
placeholder: searchInputPlaceholder,
|
|
@@ -7021,8 +7076,8 @@ function SearchAndSortBar({
|
|
|
7021
7076
|
onChange: onSearchChange
|
|
7022
7077
|
}
|
|
7023
7078
|
),
|
|
7024
|
-
/* @__PURE__ */ (0,
|
|
7025
|
-
searchTerm && /* @__PURE__ */ (0,
|
|
7079
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(SortButton, { sortConfig, onClick: onGlobalSort }),
|
|
7080
|
+
searchTerm && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
7026
7081
|
ITButton,
|
|
7027
7082
|
{
|
|
7028
7083
|
size: "sm",
|
|
@@ -7031,14 +7086,14 @@ function SearchAndSortBar({
|
|
|
7031
7086
|
onClick: onClearSearch,
|
|
7032
7087
|
ariaLabel: "Limpiar b\xFAsqueda",
|
|
7033
7088
|
title: "Limpiar b\xFAsqueda",
|
|
7034
|
-
children: /* @__PURE__ */ (0,
|
|
7089
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(ITText, { as: "span", children: "Limpiar" })
|
|
7035
7090
|
}
|
|
7036
7091
|
)
|
|
7037
7092
|
] }) });
|
|
7038
7093
|
}
|
|
7039
7094
|
|
|
7040
7095
|
// src/components/organisms/searchTable/components/TableHeaderCell.tsx
|
|
7041
|
-
var
|
|
7096
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
7042
7097
|
function TableHeaderCell({
|
|
7043
7098
|
label,
|
|
7044
7099
|
sortable = false,
|
|
@@ -7046,8 +7101,8 @@ function TableHeaderCell({
|
|
|
7046
7101
|
sortConfig,
|
|
7047
7102
|
className = ""
|
|
7048
7103
|
}) {
|
|
7049
|
-
return /* @__PURE__ */ (0,
|
|
7050
|
-
/* @__PURE__ */ (0,
|
|
7104
|
+
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: [
|
|
7105
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
7051
7106
|
ITText,
|
|
7052
7107
|
{
|
|
7053
7108
|
as: "span",
|
|
@@ -7061,18 +7116,18 @@ function TableHeaderCell({
|
|
|
7061
7116
|
children: label
|
|
7062
7117
|
}
|
|
7063
7118
|
),
|
|
7064
|
-
sortable && /* @__PURE__ */ (0,
|
|
7119
|
+
sortable && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SortButton, { sortConfig, onClick: onSort })
|
|
7065
7120
|
] }) }) });
|
|
7066
7121
|
}
|
|
7067
7122
|
|
|
7068
7123
|
// src/components/organisms/searchTable/components/TableHeader.tsx
|
|
7069
|
-
var
|
|
7124
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
7070
7125
|
function TableHeader({
|
|
7071
7126
|
columns,
|
|
7072
7127
|
onSort,
|
|
7073
7128
|
sortConfig
|
|
7074
7129
|
}) {
|
|
7075
|
-
return /* @__PURE__ */ (0,
|
|
7130
|
+
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
7131
|
TableHeaderCell,
|
|
7077
7132
|
{
|
|
7078
7133
|
label: col.label,
|
|
@@ -7090,7 +7145,7 @@ var import_clsx37 = __toESM(require("clsx"), 1);
|
|
|
7090
7145
|
var import_fa24 = require("react-icons/fa");
|
|
7091
7146
|
|
|
7092
7147
|
// src/components/organisms/searchTable/components/EditableCell.tsx
|
|
7093
|
-
var
|
|
7148
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
7094
7149
|
function EditableCell({
|
|
7095
7150
|
column,
|
|
7096
7151
|
value,
|
|
@@ -7119,7 +7174,7 @@ function EditableCell({
|
|
|
7119
7174
|
onChange(value, errorMsg);
|
|
7120
7175
|
};
|
|
7121
7176
|
const renderITInput = (type) => {
|
|
7122
|
-
return /* @__PURE__ */ (0,
|
|
7177
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7123
7178
|
ITInput,
|
|
7124
7179
|
{
|
|
7125
7180
|
type,
|
|
@@ -7133,7 +7188,7 @@ function EditableCell({
|
|
|
7133
7188
|
);
|
|
7134
7189
|
};
|
|
7135
7190
|
const renderITDatePicker = () => {
|
|
7136
|
-
return /* @__PURE__ */ (0,
|
|
7191
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7137
7192
|
ITDatePicker,
|
|
7138
7193
|
{
|
|
7139
7194
|
name: column.key,
|
|
@@ -7146,7 +7201,7 @@ function EditableCell({
|
|
|
7146
7201
|
);
|
|
7147
7202
|
};
|
|
7148
7203
|
const renderITSelect = (options) => {
|
|
7149
|
-
return /* @__PURE__ */ (0,
|
|
7204
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7150
7205
|
ITSelect,
|
|
7151
7206
|
{
|
|
7152
7207
|
name: column.key,
|
|
@@ -7160,7 +7215,7 @@ function EditableCell({
|
|
|
7160
7215
|
);
|
|
7161
7216
|
};
|
|
7162
7217
|
const renderBooleanInput = () => {
|
|
7163
|
-
return /* @__PURE__ */ (0,
|
|
7218
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
7164
7219
|
ITInput,
|
|
7165
7220
|
{
|
|
7166
7221
|
type: "checkbox",
|
|
@@ -7201,14 +7256,14 @@ function EditableCell({
|
|
|
7201
7256
|
return renderITInput("text");
|
|
7202
7257
|
}
|
|
7203
7258
|
};
|
|
7204
|
-
return /* @__PURE__ */ (0,
|
|
7259
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "w-full", children: [
|
|
7205
7260
|
renderInput(),
|
|
7206
|
-
error && /* @__PURE__ */ (0,
|
|
7261
|
+
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
7262
|
] });
|
|
7208
7263
|
}
|
|
7209
7264
|
|
|
7210
7265
|
// src/components/organisms/searchTable/components/TableRow.tsx
|
|
7211
|
-
var
|
|
7266
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
7212
7267
|
function TableRow({
|
|
7213
7268
|
row,
|
|
7214
7269
|
rowIndex,
|
|
@@ -7241,14 +7296,14 @@ function TableRow({
|
|
|
7241
7296
|
case "number":
|
|
7242
7297
|
return typeof value === "number" && col.currencyMX ? formatCurrencyMX(value) : value;
|
|
7243
7298
|
case "boolean":
|
|
7244
|
-
return value ? /* @__PURE__ */ (0,
|
|
7299
|
+
return value ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
7245
7300
|
import_fa24.FaCheck,
|
|
7246
7301
|
{
|
|
7247
7302
|
className: "text-green-500",
|
|
7248
7303
|
"aria-label": "Verdadero",
|
|
7249
7304
|
title: "Verdadero"
|
|
7250
7305
|
}
|
|
7251
|
-
) : /* @__PURE__ */ (0,
|
|
7306
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_fa24.FaTimes, { className: "text-danger-500", "aria-label": "Falso", title: "Falso" });
|
|
7252
7307
|
case "actions":
|
|
7253
7308
|
if (isEditing && col.saveActions) {
|
|
7254
7309
|
return col.saveActions(rowData, {
|
|
@@ -7272,19 +7327,19 @@ function TableRow({
|
|
|
7272
7327
|
return value;
|
|
7273
7328
|
}
|
|
7274
7329
|
};
|
|
7275
|
-
return /* @__PURE__ */ (0,
|
|
7330
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
7276
7331
|
"tr",
|
|
7277
7332
|
{
|
|
7278
7333
|
onMouseEnter: () => setIsHovered(true),
|
|
7279
7334
|
onMouseLeave: () => setIsHovered(false),
|
|
7280
7335
|
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,
|
|
7336
|
+
children: columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
7282
7337
|
"td",
|
|
7283
7338
|
{
|
|
7284
7339
|
className: (0, import_clsx37.default)("pl-5 py-2", col.className, {
|
|
7285
7340
|
"text-center": col.type === "actions" || col.type === "boolean"
|
|
7286
7341
|
}),
|
|
7287
|
-
children: isEditing && col.editable ? /* @__PURE__ */ (0,
|
|
7342
|
+
children: isEditing && col.editable ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
7288
7343
|
EditableCell,
|
|
7289
7344
|
{
|
|
7290
7345
|
column: col,
|
|
@@ -7293,7 +7348,7 @@ function TableRow({
|
|
|
7293
7348
|
error: errors[col.key],
|
|
7294
7349
|
row: editedRow
|
|
7295
7350
|
}
|
|
7296
|
-
) : /* @__PURE__ */ (0,
|
|
7351
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
7297
7352
|
"div",
|
|
7298
7353
|
{
|
|
7299
7354
|
className: (0, import_clsx37.default)({
|
|
@@ -7313,25 +7368,25 @@ function TableRow({
|
|
|
7313
7368
|
}
|
|
7314
7369
|
|
|
7315
7370
|
// src/components/organisms/searchTable/components/TableEmptyState.tsx
|
|
7316
|
-
var
|
|
7371
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
7317
7372
|
function TableEmptyState({
|
|
7318
7373
|
colSpan,
|
|
7319
7374
|
searchTerm
|
|
7320
7375
|
}) {
|
|
7321
|
-
return /* @__PURE__ */ (0,
|
|
7376
|
+
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
7377
|
}
|
|
7323
7378
|
|
|
7324
7379
|
// src/components/organisms/searchTable/components/PaginationControls.tsx
|
|
7325
7380
|
var import_fa25 = require("react-icons/fa");
|
|
7326
7381
|
|
|
7327
7382
|
// src/components/organisms/searchTable/components/PaginationInfo.tsx
|
|
7328
|
-
var
|
|
7383
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
7329
7384
|
function PaginationInfo({
|
|
7330
7385
|
currentCount,
|
|
7331
7386
|
totalCount,
|
|
7332
7387
|
className = ""
|
|
7333
7388
|
}) {
|
|
7334
|
-
return /* @__PURE__ */ (0,
|
|
7389
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(ITText, { as: "span", className: `text-sm text-secondary-700 ${className}`, children: [
|
|
7335
7390
|
"Mostrando ",
|
|
7336
7391
|
currentCount,
|
|
7337
7392
|
" de ",
|
|
@@ -7341,7 +7396,7 @@ function PaginationInfo({
|
|
|
7341
7396
|
}
|
|
7342
7397
|
|
|
7343
7398
|
// src/components/organisms/searchTable/components/PaginationControls.tsx
|
|
7344
|
-
var
|
|
7399
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
7345
7400
|
function PaginationControls({
|
|
7346
7401
|
pageIndex,
|
|
7347
7402
|
totalPages,
|
|
@@ -7354,12 +7409,12 @@ function PaginationControls({
|
|
|
7354
7409
|
currentCount,
|
|
7355
7410
|
totalCount
|
|
7356
7411
|
}) {
|
|
7357
|
-
return /* @__PURE__ */ (0,
|
|
7358
|
-
/* @__PURE__ */ (0,
|
|
7359
|
-
/* @__PURE__ */ (0,
|
|
7360
|
-
/* @__PURE__ */ (0,
|
|
7361
|
-
/* @__PURE__ */ (0,
|
|
7362
|
-
/* @__PURE__ */ (0,
|
|
7412
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex flex-col sm:flex-row justify-between items-center gap-4", children: [
|
|
7413
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center space-x-4", children: [
|
|
7414
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(PaginationInfo, { currentCount, totalCount }),
|
|
7415
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center space-x-2", children: [
|
|
7416
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(ITText, { as: "span", className: "text-sm text-secondary-700", children: "Mostrar:" }),
|
|
7417
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
7363
7418
|
ITSelect,
|
|
7364
7419
|
{
|
|
7365
7420
|
name: "itemsPerPage",
|
|
@@ -7377,8 +7432,8 @@ function PaginationControls({
|
|
|
7377
7432
|
)
|
|
7378
7433
|
] })
|
|
7379
7434
|
] }),
|
|
7380
|
-
/* @__PURE__ */ (0,
|
|
7381
|
-
/* @__PURE__ */ (0,
|
|
7435
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center space-x-2", children: [
|
|
7436
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
7382
7437
|
ITButton,
|
|
7383
7438
|
{
|
|
7384
7439
|
color: "secondary",
|
|
@@ -7388,16 +7443,16 @@ function PaginationControls({
|
|
|
7388
7443
|
className: "min-w-[32px]",
|
|
7389
7444
|
ariaLabel: "P\xE1gina anterior",
|
|
7390
7445
|
title: "Ir a la p\xE1gina anterior",
|
|
7391
|
-
children: /* @__PURE__ */ (0,
|
|
7446
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_fa25.FaArrowLeft, { "aria-hidden": "true" })
|
|
7392
7447
|
}
|
|
7393
7448
|
),
|
|
7394
|
-
/* @__PURE__ */ (0,
|
|
7449
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(ITText, { as: "span", className: "px-4 py-2 text-sm text-secondary-700", "aria-live": "polite", children: [
|
|
7395
7450
|
"P\xE1gina ",
|
|
7396
7451
|
pageIndex,
|
|
7397
7452
|
" de ",
|
|
7398
7453
|
totalPages
|
|
7399
7454
|
] }),
|
|
7400
|
-
/* @__PURE__ */ (0,
|
|
7455
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
7401
7456
|
ITButton,
|
|
7402
7457
|
{
|
|
7403
7458
|
size: "sm",
|
|
@@ -7407,7 +7462,7 @@ function PaginationControls({
|
|
|
7407
7462
|
className: "min-w-[32px]",
|
|
7408
7463
|
ariaLabel: "P\xE1gina siguiente",
|
|
7409
7464
|
title: "Ir a la p\xE1gina siguiente",
|
|
7410
|
-
children: /* @__PURE__ */ (0,
|
|
7465
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_fa25.FaArrowRight, { "aria-hidden": "true" })
|
|
7411
7466
|
}
|
|
7412
7467
|
)
|
|
7413
7468
|
] })
|
|
@@ -7415,7 +7470,7 @@ function PaginationControls({
|
|
|
7415
7470
|
}
|
|
7416
7471
|
|
|
7417
7472
|
// src/components/organisms/searchTable/searchTable.tsx
|
|
7418
|
-
var
|
|
7473
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
7419
7474
|
function ITSearchTable({
|
|
7420
7475
|
columns,
|
|
7421
7476
|
data,
|
|
@@ -7480,11 +7535,11 @@ function ITSearchTable({
|
|
|
7480
7535
|
handleClearSearch();
|
|
7481
7536
|
onClearSearch?.();
|
|
7482
7537
|
};
|
|
7483
|
-
return /* @__PURE__ */ (0,
|
|
7484
|
-
/* @__PURE__ */ (0,
|
|
7485
|
-
title && /* @__PURE__ */ (0,
|
|
7486
|
-
/* @__PURE__ */ (0,
|
|
7487
|
-
/* @__PURE__ */ (0,
|
|
7538
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: (0, import_clsx38.default)("space-y-4 w-full", containerClassName), children: [
|
|
7539
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "shadow-md sm:rounded-lg overflow-hidden", children: [
|
|
7540
|
+
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 }) }),
|
|
7541
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "bg-white", children: [
|
|
7542
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "p-4 border-b border-secondary-200", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
7488
7543
|
SearchAndSortBar,
|
|
7489
7544
|
{
|
|
7490
7545
|
searchTerm,
|
|
@@ -7495,7 +7550,7 @@ function ITSearchTable({
|
|
|
7495
7550
|
searchInputPlaceholder
|
|
7496
7551
|
}
|
|
7497
7552
|
) }),
|
|
7498
|
-
/* @__PURE__ */ (0,
|
|
7553
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "overflow-x-auto", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
7499
7554
|
"table",
|
|
7500
7555
|
{
|
|
7501
7556
|
className: (0, import_clsx38.default)(
|
|
@@ -7504,7 +7559,7 @@ function ITSearchTable({
|
|
|
7504
7559
|
sizeStyles[size]
|
|
7505
7560
|
),
|
|
7506
7561
|
children: [
|
|
7507
|
-
/* @__PURE__ */ (0,
|
|
7562
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
7508
7563
|
TableHeader,
|
|
7509
7564
|
{
|
|
7510
7565
|
columns,
|
|
@@ -7512,7 +7567,7 @@ function ITSearchTable({
|
|
|
7512
7567
|
sortConfig
|
|
7513
7568
|
}
|
|
7514
7569
|
),
|
|
7515
|
-
/* @__PURE__ */ (0,
|
|
7570
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("tbody", { children: data.length > 0 ? data.map((row, rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
7516
7571
|
TableRow,
|
|
7517
7572
|
{
|
|
7518
7573
|
row,
|
|
@@ -7526,7 +7581,7 @@ function ITSearchTable({
|
|
|
7526
7581
|
onCancel: handleCancelEdit
|
|
7527
7582
|
},
|
|
7528
7583
|
rowIndex
|
|
7529
|
-
)) : /* @__PURE__ */ (0,
|
|
7584
|
+
)) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
7530
7585
|
TableEmptyState,
|
|
7531
7586
|
{
|
|
7532
7587
|
colSpan: columns.length + 1,
|
|
@@ -7538,7 +7593,7 @@ function ITSearchTable({
|
|
|
7538
7593
|
) })
|
|
7539
7594
|
] })
|
|
7540
7595
|
] }),
|
|
7541
|
-
/* @__PURE__ */ (0,
|
|
7596
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
7542
7597
|
PaginationControls,
|
|
7543
7598
|
{
|
|
7544
7599
|
pageIndex,
|
|
@@ -7558,7 +7613,7 @@ function ITSearchTable({
|
|
|
7558
7613
|
|
|
7559
7614
|
// src/components/atoms/segmented-control/segmented-control.tsx
|
|
7560
7615
|
var import_clsx39 = __toESM(require("clsx"), 1);
|
|
7561
|
-
var
|
|
7616
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
7562
7617
|
var sizeMap3 = {
|
|
7563
7618
|
sm: { button: "px-2.5 py-1.5 text-[11px]", container: "p-0.5" },
|
|
7564
7619
|
md: { button: "px-3 py-2 text-xs", container: "p-1" }
|
|
@@ -7572,7 +7627,7 @@ function ITSegmentedControl({
|
|
|
7572
7627
|
disabled = false
|
|
7573
7628
|
}) {
|
|
7574
7629
|
const { button, container } = sizeMap3[size];
|
|
7575
|
-
return /* @__PURE__ */ (0,
|
|
7630
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
7576
7631
|
"div",
|
|
7577
7632
|
{
|
|
7578
7633
|
className: (0, import_clsx39.default)(
|
|
@@ -7583,7 +7638,7 @@ function ITSegmentedControl({
|
|
|
7583
7638
|
),
|
|
7584
7639
|
children: options.map((opt) => {
|
|
7585
7640
|
const isActive = opt.value === value;
|
|
7586
|
-
return /* @__PURE__ */ (0,
|
|
7641
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
|
|
7587
7642
|
"button",
|
|
7588
7643
|
{
|
|
7589
7644
|
onClick: () => !disabled && onChange(opt.value),
|
|
@@ -7595,8 +7650,8 @@ function ITSegmentedControl({
|
|
|
7595
7650
|
disabled && "pointer-events-none"
|
|
7596
7651
|
),
|
|
7597
7652
|
children: [
|
|
7598
|
-
opt.icon && /* @__PURE__ */ (0,
|
|
7599
|
-
/* @__PURE__ */ (0,
|
|
7653
|
+
opt.icon && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { children: opt.icon }),
|
|
7654
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(ITText, { as: "span", children: opt.label })
|
|
7600
7655
|
]
|
|
7601
7656
|
},
|
|
7602
7657
|
opt.value
|
|
@@ -7609,7 +7664,7 @@ function ITSegmentedControl({
|
|
|
7609
7664
|
// src/components/organisms/sidebar/sidebar.tsx
|
|
7610
7665
|
var import_react35 = require("react");
|
|
7611
7666
|
var import_fa26 = require("react-icons/fa");
|
|
7612
|
-
var
|
|
7667
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
7613
7668
|
function isSubItemGroup(entry) {
|
|
7614
7669
|
return "items" in entry;
|
|
7615
7670
|
}
|
|
@@ -7697,7 +7752,7 @@ function ITSidebar({
|
|
|
7697
7752
|
};
|
|
7698
7753
|
const isSidebarCollapsed = visibleOnMobile ? false : !isHovering && isCollapsed;
|
|
7699
7754
|
const sidebarWidth = isSidebarCollapsed ? "w-[88px]" : "w-[280px]";
|
|
7700
|
-
const renderSubItem = (subitem) => /* @__PURE__ */ (0,
|
|
7755
|
+
const renderSubItem = (subitem) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("li", { className: "relative", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
7701
7756
|
"button",
|
|
7702
7757
|
{
|
|
7703
7758
|
"aria-current": subitem.isActive ? "page" : void 0,
|
|
@@ -7727,7 +7782,7 @@ function ITSidebar({
|
|
|
7727
7782
|
}
|
|
7728
7783
|
},
|
|
7729
7784
|
children: [
|
|
7730
|
-
subitem.isActive && subitemConnector === "|" && /* @__PURE__ */ (0,
|
|
7785
|
+
subitem.isActive && subitemConnector === "|" && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7731
7786
|
"div",
|
|
7732
7787
|
{
|
|
7733
7788
|
className: "absolute left-0 top-1/3 bottom-1/3 w-[2.5px] rounded-r-full transition-all",
|
|
@@ -7737,7 +7792,7 @@ function ITSidebar({
|
|
|
7737
7792
|
}
|
|
7738
7793
|
}
|
|
7739
7794
|
),
|
|
7740
|
-
subitemConnector === "dot" && /* @__PURE__ */ (0,
|
|
7795
|
+
subitemConnector === "dot" && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7741
7796
|
"span",
|
|
7742
7797
|
{
|
|
7743
7798
|
className: `w-1.5 h-1.5 rounded-full flex-shrink-0 transition-all duration-300 ${subitem.isActive ? "scale-125" : ""}`,
|
|
@@ -7746,14 +7801,14 @@ function ITSidebar({
|
|
|
7746
7801
|
}
|
|
7747
7802
|
}
|
|
7748
7803
|
),
|
|
7749
|
-
/* @__PURE__ */ (0,
|
|
7804
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ITText, { as: "span", className: "truncate", children: subitem.label })
|
|
7750
7805
|
]
|
|
7751
7806
|
}
|
|
7752
7807
|
) }, subitem.id);
|
|
7753
7808
|
const renderSubItemGroup = (group, itemId) => {
|
|
7754
7809
|
const headingId = `it-sidebar-subgroup-${itemId}-${group.id}`;
|
|
7755
|
-
return /* @__PURE__ */ (0,
|
|
7756
|
-
/* @__PURE__ */ (0,
|
|
7810
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("li", { className: "relative", children: [
|
|
7811
|
+
/* @__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
7812
|
ITText,
|
|
7758
7813
|
{
|
|
7759
7814
|
as: "span",
|
|
@@ -7768,10 +7823,10 @@ function ITSidebar({
|
|
|
7768
7823
|
children: group.label
|
|
7769
7824
|
}
|
|
7770
7825
|
) }),
|
|
7771
|
-
/* @__PURE__ */ (0,
|
|
7826
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("ul", { "aria-labelledby": headingId, className: "flex flex-col gap-0", children: group.items.map(renderSubItem) })
|
|
7772
7827
|
] }, group.id);
|
|
7773
7828
|
};
|
|
7774
|
-
return /* @__PURE__ */ (0,
|
|
7829
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
7775
7830
|
"aside",
|
|
7776
7831
|
{
|
|
7777
7832
|
ref: sidebarRef,
|
|
@@ -7791,12 +7846,12 @@ function ITSidebar({
|
|
|
7791
7846
|
backdropFilter: "blur(12px)"
|
|
7792
7847
|
},
|
|
7793
7848
|
children: [
|
|
7794
|
-
header && !isSidebarCollapsed && /* @__PURE__ */ (0,
|
|
7795
|
-
/* @__PURE__ */ (0,
|
|
7849
|
+
header && !isSidebarCollapsed && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "px-4 pt-4 pb-1 flex-shrink-0", children: header }),
|
|
7850
|
+
/* @__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
7851
|
const hasSubmenu = !!item.subitems && item.subitems.length > 0;
|
|
7797
7852
|
const submenuId = `it-sidebar-submenu-${item.id}`;
|
|
7798
|
-
return /* @__PURE__ */ (0,
|
|
7799
|
-
/* @__PURE__ */ (0,
|
|
7853
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("li", { className: "relative group/navitem", children: [
|
|
7854
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
7800
7855
|
"div",
|
|
7801
7856
|
{
|
|
7802
7857
|
role: "button",
|
|
@@ -7828,15 +7883,15 @@ function ITSidebar({
|
|
|
7828
7883
|
}
|
|
7829
7884
|
},
|
|
7830
7885
|
children: [
|
|
7831
|
-
item.isActive && !isSidebarCollapsed && /* @__PURE__ */ (0,
|
|
7886
|
+
item.isActive && !isSidebarCollapsed && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7832
7887
|
"div",
|
|
7833
7888
|
{
|
|
7834
7889
|
className: "absolute left-0 top-1/4 bottom-1/4 w-[3px] rounded-r-full transition-all",
|
|
7835
7890
|
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
7891
|
}
|
|
7837
7892
|
),
|
|
7838
|
-
/* @__PURE__ */ (0,
|
|
7839
|
-
item.icon && /* @__PURE__ */ (0,
|
|
7893
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: `flex items-center ${!isSidebarCollapsed ? "gap-2.5" : "justify-center"} relative z-10 w-full`, children: [
|
|
7894
|
+
item.icon && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7840
7895
|
"div",
|
|
7841
7896
|
{
|
|
7842
7897
|
className: `transition-all duration-300 flex-shrink-0 flex items-center justify-center`,
|
|
@@ -7849,7 +7904,7 @@ function ITSidebar({
|
|
|
7849
7904
|
children: item.icon
|
|
7850
7905
|
}
|
|
7851
7906
|
),
|
|
7852
|
-
!isSidebarCollapsed && /* @__PURE__ */ (0,
|
|
7907
|
+
!isSidebarCollapsed && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7853
7908
|
ITText,
|
|
7854
7909
|
{
|
|
7855
7910
|
as: "span",
|
|
@@ -7863,15 +7918,15 @@ function ITSidebar({
|
|
|
7863
7918
|
}
|
|
7864
7919
|
)
|
|
7865
7920
|
] }),
|
|
7866
|
-
!isSidebarCollapsed && item.subitems && item.subitems.length > 0 && /* @__PURE__ */ (0,
|
|
7921
|
+
!isSidebarCollapsed && item.subitems && item.subitems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7867
7922
|
"div",
|
|
7868
7923
|
{
|
|
7869
7924
|
className: `flex-shrink-0 transition-transform duration-300 ease-[cubic-bezier(0.2,0,0,1)] ${expandedItems.has(item.id) ? "rotate-180" : ""}`,
|
|
7870
7925
|
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,
|
|
7926
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_fa26.FaChevronDown, { className: "w-3 h-3" })
|
|
7872
7927
|
}
|
|
7873
7928
|
),
|
|
7874
|
-
item.badge && /* @__PURE__ */ (0,
|
|
7929
|
+
item.badge && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7875
7930
|
"span",
|
|
7876
7931
|
{
|
|
7877
7932
|
className: `
|
|
@@ -7889,7 +7944,7 @@ function ITSidebar({
|
|
|
7889
7944
|
]
|
|
7890
7945
|
}
|
|
7891
7946
|
),
|
|
7892
|
-
isSidebarCollapsed && /* @__PURE__ */ (0,
|
|
7947
|
+
isSidebarCollapsed && /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
7893
7948
|
"div",
|
|
7894
7949
|
{
|
|
7895
7950
|
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 +7955,16 @@ function ITSidebar({
|
|
|
7900
7955
|
backdropFilter: "blur(16px)"
|
|
7901
7956
|
},
|
|
7902
7957
|
children: [
|
|
7903
|
-
/* @__PURE__ */ (0,
|
|
7904
|
-
item.icon && /* @__PURE__ */ (0,
|
|
7905
|
-
/* @__PURE__ */ (0,
|
|
7958
|
+
/* @__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: [
|
|
7959
|
+
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 }),
|
|
7960
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ITText, { as: "span", className: "tracking-wide text-[15px]", children: item.label })
|
|
7906
7961
|
] }),
|
|
7907
|
-
item.subitems && item.subitems.length > 0 ? /* @__PURE__ */ (0,
|
|
7962
|
+
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
7963
|
"div",
|
|
7909
7964
|
{
|
|
7910
7965
|
className: `px-5 py-2.5 text-sm flex items-center gap-3 transition-colors relative`,
|
|
7911
7966
|
children: [
|
|
7912
|
-
subitem.isActive && subitemConnector === "|" && /* @__PURE__ */ (0,
|
|
7967
|
+
subitem.isActive && subitemConnector === "|" && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7913
7968
|
"div",
|
|
7914
7969
|
{
|
|
7915
7970
|
className: "absolute left-0 top-1/3 bottom-1/3 w-[2.5px] rounded-r-full",
|
|
@@ -7919,16 +7974,16 @@ function ITSidebar({
|
|
|
7919
7974
|
}
|
|
7920
7975
|
}
|
|
7921
7976
|
),
|
|
7922
|
-
/* @__PURE__ */ (0,
|
|
7923
|
-
/* @__PURE__ */ (0,
|
|
7977
|
+
/* @__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))" } }),
|
|
7978
|
+
/* @__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
7979
|
]
|
|
7925
7980
|
},
|
|
7926
7981
|
subitem.id
|
|
7927
|
-
)) }) : /* @__PURE__ */ (0,
|
|
7982
|
+
)) }) : /* @__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
7983
|
]
|
|
7929
7984
|
}
|
|
7930
7985
|
),
|
|
7931
|
-
!isSidebarCollapsed && item.subitems && item.subitems.length > 0 && /* @__PURE__ */ (0,
|
|
7986
|
+
!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
7987
|
"ul",
|
|
7933
7988
|
{
|
|
7934
7989
|
className: "ml-4 flex flex-col gap-0 py-0.5",
|
|
@@ -7950,7 +8005,7 @@ function ITSidebar({
|
|
|
7950
8005
|
// src/components/atoms/slide/slide.tsx
|
|
7951
8006
|
var import_react36 = require("react");
|
|
7952
8007
|
var import_clsx40 = __toESM(require("clsx"), 1);
|
|
7953
|
-
var
|
|
8008
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
7954
8009
|
function ITSlideToggle({
|
|
7955
8010
|
onToggle,
|
|
7956
8011
|
isOn: controlledIsOn,
|
|
@@ -8003,7 +8058,7 @@ function ITSlideToggle({
|
|
|
8003
8058
|
}
|
|
8004
8059
|
};
|
|
8005
8060
|
const { container, knob, translate } = sizeClasses2[size];
|
|
8006
|
-
return /* @__PURE__ */ (0,
|
|
8061
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
8007
8062
|
"div",
|
|
8008
8063
|
{
|
|
8009
8064
|
onClick: toggleSwitch,
|
|
@@ -8023,7 +8078,7 @@ function ITSlideToggle({
|
|
|
8023
8078
|
toggleSwitch();
|
|
8024
8079
|
}
|
|
8025
8080
|
},
|
|
8026
|
-
children: /* @__PURE__ */ (0,
|
|
8081
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
8027
8082
|
"div",
|
|
8028
8083
|
{
|
|
8029
8084
|
className: (0, import_clsx40.default)(
|
|
@@ -8039,7 +8094,7 @@ function ITSlideToggle({
|
|
|
8039
8094
|
|
|
8040
8095
|
// src/components/atoms/slider/slider.tsx
|
|
8041
8096
|
var import_clsx41 = __toESM(require("clsx"), 1);
|
|
8042
|
-
var
|
|
8097
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
8043
8098
|
function ITSlider({
|
|
8044
8099
|
value,
|
|
8045
8100
|
onChange,
|
|
@@ -8050,13 +8105,13 @@ function ITSlider({
|
|
|
8050
8105
|
disabled = false,
|
|
8051
8106
|
className
|
|
8052
8107
|
}) {
|
|
8053
|
-
return /* @__PURE__ */ (0,
|
|
8054
|
-
label && /* @__PURE__ */ (0,
|
|
8108
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: (0, import_clsx41.default)("flex flex-col gap-1.5", className), children: [
|
|
8109
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(ITText, { as: "label", className: "text-xs font-semibold text-secondary-600 dark:text-secondary-400", children: [
|
|
8055
8110
|
label,
|
|
8056
8111
|
": ",
|
|
8057
8112
|
value
|
|
8058
8113
|
] }),
|
|
8059
|
-
/* @__PURE__ */ (0,
|
|
8114
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "relative w-full h-5 flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
8060
8115
|
"input",
|
|
8061
8116
|
{
|
|
8062
8117
|
type: "range",
|
|
@@ -8087,7 +8142,7 @@ function ITSlider({
|
|
|
8087
8142
|
|
|
8088
8143
|
// src/components/molecules/stat-card/stat-card.tsx
|
|
8089
8144
|
var import_clsx42 = __toESM(require("clsx"), 1);
|
|
8090
|
-
var
|
|
8145
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
8091
8146
|
var trendColors = {
|
|
8092
8147
|
up: "text-emerald-600 bg-emerald-50 dark:text-emerald-400 dark:bg-emerald-950/30",
|
|
8093
8148
|
down: "text-rose-600 bg-rose-50 dark:text-rose-400 dark:bg-rose-950/30",
|
|
@@ -8104,7 +8159,7 @@ function ITStatCard({
|
|
|
8104
8159
|
style,
|
|
8105
8160
|
onClick
|
|
8106
8161
|
}) {
|
|
8107
|
-
return /* @__PURE__ */ (0,
|
|
8162
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
|
|
8108
8163
|
"div",
|
|
8109
8164
|
{
|
|
8110
8165
|
className: (0, import_clsx42.default)("rounded-xl p-4 border border-slate-100 dark:border-slate-800", color, className),
|
|
@@ -8113,13 +8168,13 @@ function ITStatCard({
|
|
|
8113
8168
|
role: onClick ? "button" : void 0,
|
|
8114
8169
|
tabIndex: onClick ? 0 : void 0,
|
|
8115
8170
|
children: [
|
|
8116
|
-
/* @__PURE__ */ (0,
|
|
8117
|
-
/* @__PURE__ */ (0,
|
|
8118
|
-
icon && /* @__PURE__ */ (0,
|
|
8171
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex items-start justify-between mb-1", children: [
|
|
8172
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ITText, { as: "span", className: "text-xs font-medium text-slate-400 dark:text-slate-500", children: label }),
|
|
8173
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "text-slate-400", children: icon })
|
|
8119
8174
|
] }),
|
|
8120
|
-
/* @__PURE__ */ (0,
|
|
8121
|
-
/* @__PURE__ */ (0,
|
|
8122
|
-
trend && /* @__PURE__ */ (0,
|
|
8175
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex items-baseline gap-2", children: [
|
|
8176
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ITText, { as: "span", className: "text-2xl font-bold text-slate-800 dark:text-white", children: value }),
|
|
8177
|
+
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
8178
|
] })
|
|
8124
8179
|
]
|
|
8125
8180
|
}
|
|
@@ -8132,7 +8187,7 @@ var import_react37 = __toESM(require("react"), 1);
|
|
|
8132
8187
|
var import_fa27 = require("react-icons/fa");
|
|
8133
8188
|
var import_md2 = require("react-icons/md");
|
|
8134
8189
|
var import_date_fns3 = require("date-fns");
|
|
8135
|
-
var
|
|
8190
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
8136
8191
|
function ITTable({
|
|
8137
8192
|
columns,
|
|
8138
8193
|
data = [],
|
|
@@ -8288,14 +8343,14 @@ function ITTable({
|
|
|
8288
8343
|
if (currentValue === true) return "Filtrar solo verdaderos";
|
|
8289
8344
|
return "Filtrar solo falsos";
|
|
8290
8345
|
};
|
|
8291
|
-
return /* @__PURE__ */ (0,
|
|
8346
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8292
8347
|
"button",
|
|
8293
8348
|
{
|
|
8294
8349
|
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
8350
|
onClick: () => handleFilterChange(col.key, nextValue),
|
|
8296
8351
|
"aria-label": `${getToggleLabel()} para ${col.label}`,
|
|
8297
8352
|
title: `${getToggleLabel()} para ${col.label}`,
|
|
8298
|
-
children: /* @__PURE__ */ (0,
|
|
8353
|
+
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
8354
|
"div",
|
|
8300
8355
|
{
|
|
8301
8356
|
className: (0, import_clsx43.default)(
|
|
@@ -8313,7 +8368,7 @@ function ITTable({
|
|
|
8313
8368
|
}
|
|
8314
8369
|
if (col.filter === "catalog" && col.catalogOptions) {
|
|
8315
8370
|
if (col.catalogOptions.loading) {
|
|
8316
|
-
return /* @__PURE__ */ (0,
|
|
8371
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8317
8372
|
import_fa27.FaSpinner,
|
|
8318
8373
|
{
|
|
8319
8374
|
className: "animate-spin",
|
|
@@ -8323,9 +8378,9 @@ function ITTable({
|
|
|
8323
8378
|
);
|
|
8324
8379
|
}
|
|
8325
8380
|
if (col.catalogOptions.error) {
|
|
8326
|
-
return /* @__PURE__ */ (0,
|
|
8381
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ITText, { as: "span", className: "text-danger-500 text-xs", children: "Error cargando" });
|
|
8327
8382
|
}
|
|
8328
|
-
return /* @__PURE__ */ (0,
|
|
8383
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8329
8384
|
ITSelect,
|
|
8330
8385
|
{
|
|
8331
8386
|
name: `filter-${col.key}`,
|
|
@@ -8349,7 +8404,7 @@ function ITTable({
|
|
|
8349
8404
|
}
|
|
8350
8405
|
if (col.filter === "search" && col.catalogOptions) {
|
|
8351
8406
|
if (col.catalogOptions.loading) {
|
|
8352
|
-
return /* @__PURE__ */ (0,
|
|
8407
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8353
8408
|
import_fa27.FaSpinner,
|
|
8354
8409
|
{
|
|
8355
8410
|
className: "animate-spin",
|
|
@@ -8359,10 +8414,10 @@ function ITTable({
|
|
|
8359
8414
|
);
|
|
8360
8415
|
}
|
|
8361
8416
|
if (col.catalogOptions.error) {
|
|
8362
|
-
return /* @__PURE__ */ (0,
|
|
8417
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ITText, { as: "span", className: "text-danger-500 text-xs", children: "Error cargando" });
|
|
8363
8418
|
}
|
|
8364
8419
|
const searchValue = filters[col.key];
|
|
8365
|
-
return /* @__PURE__ */ (0,
|
|
8420
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8366
8421
|
ITSearchSelect,
|
|
8367
8422
|
{
|
|
8368
8423
|
name: `filter-${col.key}`,
|
|
@@ -8385,7 +8440,7 @@ function ITTable({
|
|
|
8385
8440
|
}
|
|
8386
8441
|
if (col.filter === "date") {
|
|
8387
8442
|
const dateValue = filters[col.key];
|
|
8388
|
-
return /* @__PURE__ */ (0,
|
|
8443
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8389
8444
|
ITDatePicker,
|
|
8390
8445
|
{
|
|
8391
8446
|
name: `filter-${col.key}`,
|
|
@@ -8401,7 +8456,7 @@ function ITTable({
|
|
|
8401
8456
|
}
|
|
8402
8457
|
if (col.filter === "date-range") {
|
|
8403
8458
|
const rangeValue = filters[col.key];
|
|
8404
|
-
return /* @__PURE__ */ (0,
|
|
8459
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8405
8460
|
ITDatePicker,
|
|
8406
8461
|
{
|
|
8407
8462
|
name: `filter-${col.key}`,
|
|
@@ -8416,7 +8471,7 @@ function ITTable({
|
|
|
8416
8471
|
}
|
|
8417
8472
|
);
|
|
8418
8473
|
}
|
|
8419
|
-
return /* @__PURE__ */ (0,
|
|
8474
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8420
8475
|
ITInput,
|
|
8421
8476
|
{
|
|
8422
8477
|
name: `filter-${col.key}`,
|
|
@@ -8438,14 +8493,14 @@ function ITTable({
|
|
|
8438
8493
|
case "number":
|
|
8439
8494
|
return typeof value === "number" && col.currencyMX ? formatCurrencyMX(value) : value;
|
|
8440
8495
|
case "boolean":
|
|
8441
|
-
return value ? /* @__PURE__ */ (0,
|
|
8496
|
+
return value ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8442
8497
|
import_fa27.FaCheck,
|
|
8443
8498
|
{
|
|
8444
8499
|
className: "text-success-500",
|
|
8445
8500
|
"aria-label": "Verdadero",
|
|
8446
8501
|
title: "Verdadero"
|
|
8447
8502
|
}
|
|
8448
|
-
) : /* @__PURE__ */ (0,
|
|
8503
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8449
8504
|
import_fa27.FaTimes,
|
|
8450
8505
|
{
|
|
8451
8506
|
className: "text-danger-500",
|
|
@@ -8470,12 +8525,12 @@ function ITTable({
|
|
|
8470
8525
|
const renderDefaultCard = (row) => {
|
|
8471
8526
|
const dataCols = columns.filter((c) => c.type !== "actions");
|
|
8472
8527
|
const actionCol = columns.find((c) => c.type === "actions");
|
|
8473
|
-
return /* @__PURE__ */ (0,
|
|
8474
|
-
dataCols.map((col) => /* @__PURE__ */ (0,
|
|
8475
|
-
/* @__PURE__ */ (0,
|
|
8476
|
-
/* @__PURE__ */ (0,
|
|
8528
|
+
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: [
|
|
8529
|
+
dataCols.map((col) => /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [
|
|
8530
|
+
/* @__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 }),
|
|
8531
|
+
/* @__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
8532
|
] }, col.key)),
|
|
8478
|
-
actionCol?.actions && /* @__PURE__ */ (0,
|
|
8533
|
+
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
8534
|
] });
|
|
8480
8535
|
};
|
|
8481
8536
|
const handleRowClick = (row) => (event) => {
|
|
@@ -8489,61 +8544,61 @@ function ITTable({
|
|
|
8489
8544
|
event.preventDefault();
|
|
8490
8545
|
onRowClick(row, event);
|
|
8491
8546
|
};
|
|
8492
|
-
return /* @__PURE__ */ (0,
|
|
8493
|
-
title && /* @__PURE__ */ (0,
|
|
8494
|
-
/* @__PURE__ */ (0,
|
|
8495
|
-
/* @__PURE__ */ (0,
|
|
8496
|
-
/* @__PURE__ */ (0,
|
|
8547
|
+
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: [
|
|
8548
|
+
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: [
|
|
8549
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ITText, { as: "h2", className: "text-xl font-bold text-secondary-900 leading-tight", children: title }),
|
|
8550
|
+
/* @__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: [
|
|
8551
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
|
|
8497
8552
|
"button",
|
|
8498
8553
|
{
|
|
8499
8554
|
onClick: () => setViewMode("table"),
|
|
8500
8555
|
disabled: forcedCards,
|
|
8501
8556
|
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
8557
|
children: [
|
|
8503
|
-
/* @__PURE__ */ (0,
|
|
8558
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_fa27.FaTable, { size: 11 }),
|
|
8504
8559
|
"Table"
|
|
8505
8560
|
]
|
|
8506
8561
|
}
|
|
8507
8562
|
),
|
|
8508
|
-
/* @__PURE__ */ (0,
|
|
8563
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
|
|
8509
8564
|
"button",
|
|
8510
8565
|
{
|
|
8511
8566
|
onClick: () => setViewMode("cards"),
|
|
8512
8567
|
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
8568
|
children: [
|
|
8514
|
-
/* @__PURE__ */ (0,
|
|
8569
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_fa27.FaThLarge, { size: 11 }),
|
|
8515
8570
|
"Cards"
|
|
8516
8571
|
]
|
|
8517
8572
|
}
|
|
8518
8573
|
)
|
|
8519
8574
|
] })
|
|
8520
8575
|
] }),
|
|
8521
|
-
!title && /* @__PURE__ */ (0,
|
|
8522
|
-
/* @__PURE__ */ (0,
|
|
8576
|
+
!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: [
|
|
8577
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
|
|
8523
8578
|
"button",
|
|
8524
8579
|
{
|
|
8525
8580
|
onClick: () => setViewMode("table"),
|
|
8526
8581
|
disabled: forcedCards,
|
|
8527
8582
|
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
8583
|
children: [
|
|
8529
|
-
/* @__PURE__ */ (0,
|
|
8584
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_fa27.FaTable, { size: 11 }),
|
|
8530
8585
|
"Table"
|
|
8531
8586
|
]
|
|
8532
8587
|
}
|
|
8533
8588
|
),
|
|
8534
|
-
/* @__PURE__ */ (0,
|
|
8589
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
|
|
8535
8590
|
"button",
|
|
8536
8591
|
{
|
|
8537
8592
|
onClick: () => setViewMode("cards"),
|
|
8538
8593
|
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
8594
|
children: [
|
|
8540
|
-
/* @__PURE__ */ (0,
|
|
8595
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_fa27.FaThLarge, { size: 11 }),
|
|
8541
8596
|
"Cards"
|
|
8542
8597
|
]
|
|
8543
8598
|
}
|
|
8544
8599
|
)
|
|
8545
8600
|
] }) }),
|
|
8546
|
-
effectiveView === "cards" ? /* @__PURE__ */ (0,
|
|
8601
|
+
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
8602
|
"div",
|
|
8548
8603
|
{
|
|
8549
8604
|
className: (0, import_clsx43.default)(tableCardHover, onRowClick && tableCardClickable),
|
|
@@ -8554,16 +8609,16 @@ function ITTable({
|
|
|
8554
8609
|
children: renderCard ? renderCard(row) : renderDefaultCard(row)
|
|
8555
8610
|
},
|
|
8556
8611
|
i
|
|
8557
|
-
)) : /* @__PURE__ */ (0,
|
|
8558
|
-
/* @__PURE__ */ (0,
|
|
8559
|
-
/* @__PURE__ */ (0,
|
|
8560
|
-
] }) }) : /* @__PURE__ */ (0,
|
|
8612
|
+
)) : /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: (0, import_clsx43.default)(tableEmptyContent, "py-12"), children: [
|
|
8613
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ITText, { as: "span", className: "text-lg", children: "No se encontraron resultados" }),
|
|
8614
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ITText, { as: "span", className: "text-sm mt-1", children: "Intenta ajustar los filtros" })
|
|
8615
|
+
] }) }) : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8561
8616
|
"div",
|
|
8562
8617
|
{
|
|
8563
8618
|
ref: isTableVirtual ? scrollRef : void 0,
|
|
8564
8619
|
className: isTableVirtual ? "overflow-x-auto overflow-y-auto" : "overflow-x-auto",
|
|
8565
8620
|
style: isTableVirtual ? { maxHeight: virtualizedMaxHeight } : void 0,
|
|
8566
|
-
children: /* @__PURE__ */ (0,
|
|
8621
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
|
|
8567
8622
|
"table",
|
|
8568
8623
|
{
|
|
8569
8624
|
className: (0, import_clsx43.default)(
|
|
@@ -8576,14 +8631,14 @@ function ITTable({
|
|
|
8576
8631
|
style: isFixed ? { tableLayout: "fixed" } : void 0,
|
|
8577
8632
|
"aria-rowcount": isTableVirtual ? currentData.length + 1 : void 0,
|
|
8578
8633
|
children: [
|
|
8579
|
-
hasColumnWidths && /* @__PURE__ */ (0,
|
|
8634
|
+
hasColumnWidths && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("colgroup", { children: columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8580
8635
|
"col",
|
|
8581
8636
|
{
|
|
8582
8637
|
style: col.width != null ? { width: typeof col.width === "number" ? `${col.width}px` : col.width } : void 0
|
|
8583
8638
|
},
|
|
8584
8639
|
col.key
|
|
8585
8640
|
)) }),
|
|
8586
|
-
/* @__PURE__ */ (0,
|
|
8641
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8587
8642
|
"tr",
|
|
8588
8643
|
{
|
|
8589
8644
|
className: (0, import_clsx43.default)(tableHeaderRow, "dark:text-slate-200"),
|
|
@@ -8591,7 +8646,7 @@ function ITTable({
|
|
|
8591
8646
|
children: columns.map((col) => {
|
|
8592
8647
|
const pin = pinnedMeta[col.key];
|
|
8593
8648
|
const isPinned = pin != null;
|
|
8594
|
-
return /* @__PURE__ */ (0,
|
|
8649
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8595
8650
|
"th",
|
|
8596
8651
|
{
|
|
8597
8652
|
scope: "col",
|
|
@@ -8608,20 +8663,20 @@ function ITTable({
|
|
|
8608
8663
|
...isStickyHeader || isPinned ? { backgroundColor: "var(--color-table-headerBg, #f8fafc)" } : {},
|
|
8609
8664
|
...isPinned ? pin.side === "left" ? { left: pin.offset } : { right: pin.offset } : {}
|
|
8610
8665
|
} : void 0,
|
|
8611
|
-
children: /* @__PURE__ */ (0,
|
|
8612
|
-
/* @__PURE__ */ (0,
|
|
8613
|
-
/* @__PURE__ */ (0,
|
|
8614
|
-
col.sortable && col.type !== "actions" && /* @__PURE__ */ (0,
|
|
8666
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: isFixed ? "flex flex-col gap-3" : "flex flex-col gap-3 min-w-[150px]", children: [
|
|
8667
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [
|
|
8668
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ITText, { as: "span", className: "text-slate-900 dark:text-white font-bold", children: col.label }),
|
|
8669
|
+
col.sortable && col.type !== "actions" && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8615
8670
|
"button",
|
|
8616
8671
|
{
|
|
8617
8672
|
onClick: () => handleSort(col.key),
|
|
8618
8673
|
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
8674
|
title: `Ordenar por ${col.label}`,
|
|
8620
|
-
children: /* @__PURE__ */ (0,
|
|
8675
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_md2.MdOutlineSwapVert, { className: "w-4 h-4", "aria-hidden": "true" })
|
|
8621
8676
|
}
|
|
8622
8677
|
)
|
|
8623
8678
|
] }),
|
|
8624
|
-
/* @__PURE__ */ (0,
|
|
8679
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "w-full", children: col.filter ? renderFilterInput(col) : null })
|
|
8625
8680
|
] })
|
|
8626
8681
|
},
|
|
8627
8682
|
col.key
|
|
@@ -8629,11 +8684,11 @@ function ITTable({
|
|
|
8629
8684
|
})
|
|
8630
8685
|
}
|
|
8631
8686
|
) }),
|
|
8632
|
-
/* @__PURE__ */ (0,
|
|
8633
|
-
isTableVirtual && topSpacerHeight > 0 && /* @__PURE__ */ (0,
|
|
8687
|
+
/* @__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: [
|
|
8688
|
+
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
8689
|
windowData.map((row, windowIndex) => {
|
|
8635
8690
|
const absoluteIndex = isTableVirtual ? startIndex + windowIndex : windowIndex;
|
|
8636
|
-
return /* @__PURE__ */ (0,
|
|
8691
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8637
8692
|
"tr",
|
|
8638
8693
|
{
|
|
8639
8694
|
"aria-rowindex": isTableVirtual ? absoluteIndex + 2 : void 0,
|
|
@@ -8650,7 +8705,7 @@ function ITTable({
|
|
|
8650
8705
|
const truncateTitle = col.truncate && (typeof rawValue === "string" || typeof rawValue === "number") ? String(rawValue) : void 0;
|
|
8651
8706
|
const pin = pinnedMeta[col.key];
|
|
8652
8707
|
const isPinned = pin != null;
|
|
8653
|
-
return /* @__PURE__ */ (0,
|
|
8708
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8654
8709
|
"td",
|
|
8655
8710
|
{
|
|
8656
8711
|
className: (0, import_clsx43.default)(
|
|
@@ -8665,7 +8720,7 @@ function ITTable({
|
|
|
8665
8720
|
...isPinned ? pin.side === "left" ? { left: pin.offset } : { right: pin.offset } : {}
|
|
8666
8721
|
} : void 0,
|
|
8667
8722
|
title: truncateTitle,
|
|
8668
|
-
children: col.type === "actions" ? /* @__PURE__ */ (0,
|
|
8723
|
+
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
8724
|
},
|
|
8670
8725
|
`${absoluteIndex}-${col.key}`
|
|
8671
8726
|
);
|
|
@@ -8674,17 +8729,17 @@ function ITTable({
|
|
|
8674
8729
|
absoluteIndex
|
|
8675
8730
|
);
|
|
8676
8731
|
}),
|
|
8677
|
-
isTableVirtual && bottomSpacerHeight > 0 && /* @__PURE__ */ (0,
|
|
8678
|
-
] }) : /* @__PURE__ */ (0,
|
|
8679
|
-
/* @__PURE__ */ (0,
|
|
8680
|
-
/* @__PURE__ */ (0,
|
|
8732
|
+
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 } }) })
|
|
8733
|
+
] }) : /* @__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: [
|
|
8734
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ITText, { as: "span", className: "text-lg", children: "No se encontraron resultados" }),
|
|
8735
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ITText, { as: "span", className: "text-sm mt-1", children: "Intenta ajustar los filtros" })
|
|
8681
8736
|
] }) }) }) })
|
|
8682
8737
|
]
|
|
8683
8738
|
}
|
|
8684
8739
|
)
|
|
8685
8740
|
}
|
|
8686
8741
|
),
|
|
8687
|
-
/* @__PURE__ */ (0,
|
|
8742
|
+
/* @__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
8743
|
ITPagination,
|
|
8689
8744
|
{
|
|
8690
8745
|
currentPage,
|
|
@@ -8702,7 +8757,7 @@ function ITTable({
|
|
|
8702
8757
|
|
|
8703
8758
|
// src/components/atoms/textarea/textarea.tsx
|
|
8704
8759
|
var import_clsx44 = __toESM(require("clsx"), 1);
|
|
8705
|
-
var
|
|
8760
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
8706
8761
|
var resizeMap = {
|
|
8707
8762
|
none: "resize-none",
|
|
8708
8763
|
vertical: "resize-y",
|
|
@@ -8722,9 +8777,9 @@ function ITTextarea({
|
|
|
8722
8777
|
maxLength,
|
|
8723
8778
|
resize = "vertical"
|
|
8724
8779
|
}) {
|
|
8725
|
-
return /* @__PURE__ */ (0,
|
|
8726
|
-
label && /* @__PURE__ */ (0,
|
|
8727
|
-
/* @__PURE__ */ (0,
|
|
8780
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: (0, import_clsx44.default)("flex flex-col gap-1.5", className), children: [
|
|
8781
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(ITText, { as: "label", className: inputLabel(!!error), htmlFor: name, children: label }),
|
|
8782
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
8728
8783
|
"textarea",
|
|
8729
8784
|
{
|
|
8730
8785
|
id: name,
|
|
@@ -8744,14 +8799,14 @@ function ITTextarea({
|
|
|
8744
8799
|
)
|
|
8745
8800
|
}
|
|
8746
8801
|
),
|
|
8747
|
-
error && /* @__PURE__ */ (0,
|
|
8802
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(ITText, { as: "span", className: inputError, children: error })
|
|
8748
8803
|
] });
|
|
8749
8804
|
}
|
|
8750
8805
|
|
|
8751
8806
|
// src/components/molecules/tabs/tabs.tsx
|
|
8752
8807
|
var import_react38 = require("react");
|
|
8753
8808
|
var import_clsx45 = require("clsx");
|
|
8754
|
-
var
|
|
8809
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
8755
8810
|
var ITTabs = ({
|
|
8756
8811
|
items,
|
|
8757
8812
|
defaultActiveId,
|
|
@@ -8767,14 +8822,14 @@ var ITTabs = ({
|
|
|
8767
8822
|
if (onChange) onChange(id);
|
|
8768
8823
|
};
|
|
8769
8824
|
const activeContent = items.find((item) => item.id === activeId)?.content;
|
|
8770
|
-
return /* @__PURE__ */ (0,
|
|
8771
|
-
/* @__PURE__ */ (0,
|
|
8825
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: (0, import_clsx45.clsx)("w-full", containerClassName), children: [
|
|
8826
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: (0, import_clsx45.clsx)(
|
|
8772
8827
|
"flex border-secondary-200 mb-4",
|
|
8773
8828
|
variant === "line" ? "border-b" : "gap-2 p-1 bg-secondary-100 rounded-lg w-fit",
|
|
8774
8829
|
className
|
|
8775
8830
|
), children: items.map((item) => {
|
|
8776
8831
|
const isActive = item.id === activeId;
|
|
8777
|
-
return /* @__PURE__ */ (0,
|
|
8832
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
|
|
8778
8833
|
"button",
|
|
8779
8834
|
{
|
|
8780
8835
|
onClick: () => handleTabClick(item.id, item.disabled),
|
|
@@ -8794,21 +8849,21 @@ var ITTabs = ({
|
|
|
8794
8849
|
item.disabled && "opacity-50 cursor-not-allowed"
|
|
8795
8850
|
),
|
|
8796
8851
|
children: [
|
|
8797
|
-
item.icon && /* @__PURE__ */ (0,
|
|
8798
|
-
/* @__PURE__ */ (0,
|
|
8852
|
+
item.icon && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "w-4 h-4", children: item.icon }),
|
|
8853
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(ITText, { as: "span", children: item.label })
|
|
8799
8854
|
]
|
|
8800
8855
|
},
|
|
8801
8856
|
item.id
|
|
8802
8857
|
);
|
|
8803
8858
|
}) }),
|
|
8804
|
-
/* @__PURE__ */ (0,
|
|
8859
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "tab-content animate-fadeIn", children: activeContent })
|
|
8805
8860
|
] });
|
|
8806
8861
|
};
|
|
8807
8862
|
var tabs_default = ITTabs;
|
|
8808
8863
|
|
|
8809
8864
|
// src/components/organisms/triple-filter/tripleFilter.tsx
|
|
8810
8865
|
var import_clsx46 = __toESM(require("clsx"), 1);
|
|
8811
|
-
var
|
|
8866
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
8812
8867
|
var colorMap2 = {
|
|
8813
8868
|
primary: "text-primary-600",
|
|
8814
8869
|
secondary: "text-secondary-600",
|
|
@@ -8827,11 +8882,11 @@ var ITTripleFilter = ({
|
|
|
8827
8882
|
color = "primary",
|
|
8828
8883
|
className
|
|
8829
8884
|
}) => {
|
|
8830
|
-
return /* @__PURE__ */ (0,
|
|
8885
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
8831
8886
|
"div",
|
|
8832
8887
|
{
|
|
8833
8888
|
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,
|
|
8889
|
+
children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
8835
8890
|
"button",
|
|
8836
8891
|
{
|
|
8837
8892
|
onClick: () => onChange(option.value),
|
|
@@ -8839,7 +8894,7 @@ var ITTripleFilter = ({
|
|
|
8839
8894
|
"px-4 py-1.5 rounded-lg text-[10px] font-bold uppercase tracking-wider transition-all duration-200 whitespace-nowrap",
|
|
8840
8895
|
value === option.value ? (0, import_clsx46.default)("bg-white shadow-sm", colorMap2[color]) : "text-slate-400 hover:text-slate-600"
|
|
8841
8896
|
),
|
|
8842
|
-
children: /* @__PURE__ */ (0,
|
|
8897
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(ITText, { as: "span", children: option.label })
|
|
8843
8898
|
},
|
|
8844
8899
|
String(option.value)
|
|
8845
8900
|
))
|
|
@@ -8862,7 +8917,7 @@ var positionStyles = {
|
|
|
8862
8917
|
var import_clsx47 = __toESM(require("clsx"), 1);
|
|
8863
8918
|
var import_react39 = require("react");
|
|
8864
8919
|
var import_fa28 = require("react-icons/fa");
|
|
8865
|
-
var
|
|
8920
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
8866
8921
|
function ITToast({
|
|
8867
8922
|
message,
|
|
8868
8923
|
type = "info",
|
|
@@ -8891,18 +8946,18 @@ function ITToast({
|
|
|
8891
8946
|
const TypeIcon = () => {
|
|
8892
8947
|
switch (type) {
|
|
8893
8948
|
case "success":
|
|
8894
|
-
return /* @__PURE__ */ (0,
|
|
8949
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_fa28.FaCheckCircle, { className: "w-5 h-5 flex-shrink-0" });
|
|
8895
8950
|
case "error":
|
|
8896
8951
|
case "danger":
|
|
8897
|
-
return /* @__PURE__ */ (0,
|
|
8952
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_fa28.FaTimesCircle, { className: "w-5 h-5 flex-shrink-0" });
|
|
8898
8953
|
case "warning":
|
|
8899
|
-
return /* @__PURE__ */ (0,
|
|
8954
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_fa28.FaExclamationTriangle, { className: "w-5 h-5 flex-shrink-0" });
|
|
8900
8955
|
case "info":
|
|
8901
8956
|
default:
|
|
8902
|
-
return /* @__PURE__ */ (0,
|
|
8957
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_fa28.FaInfoCircle, { className: "w-5 h-5 flex-shrink-0" });
|
|
8903
8958
|
}
|
|
8904
8959
|
};
|
|
8905
|
-
return /* @__PURE__ */ (0,
|
|
8960
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
|
|
8906
8961
|
"div",
|
|
8907
8962
|
{
|
|
8908
8963
|
className: (0, import_clsx47.default)(
|
|
@@ -8918,17 +8973,17 @@ function ITToast({
|
|
|
8918
8973
|
style: { backgroundColor },
|
|
8919
8974
|
role: "alert",
|
|
8920
8975
|
children: [
|
|
8921
|
-
/* @__PURE__ */ (0,
|
|
8922
|
-
/* @__PURE__ */ (0,
|
|
8923
|
-
/* @__PURE__ */ (0,
|
|
8976
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
8977
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(TypeIcon, {}),
|
|
8978
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(ITText, { as: "span", className: "font-medium text-sm sm:text-base leading-snug", children: message })
|
|
8924
8979
|
] }),
|
|
8925
|
-
/* @__PURE__ */ (0,
|
|
8980
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
8926
8981
|
"button",
|
|
8927
8982
|
{
|
|
8928
8983
|
onClick: handleClose,
|
|
8929
8984
|
className: "p-1.5 rounded-full hover:bg-black/15 transition-colors focus:outline-none focus:ring-2 focus:ring-white/50",
|
|
8930
8985
|
"aria-label": "Close notification",
|
|
8931
|
-
children: /* @__PURE__ */ (0,
|
|
8986
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_fa28.FaTimes, { className: "w-4 h-4" })
|
|
8932
8987
|
}
|
|
8933
8988
|
)
|
|
8934
8989
|
]
|
|
@@ -8955,7 +9010,7 @@ var toolbarActions = [
|
|
|
8955
9010
|
// src/components/atoms/tooltip/tooltip.tsx
|
|
8956
9011
|
var import_react40 = require("react");
|
|
8957
9012
|
var import_clsx48 = __toESM(require("clsx"), 1);
|
|
8958
|
-
var
|
|
9013
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
8959
9014
|
var positionClasses2 = {
|
|
8960
9015
|
top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
|
|
8961
9016
|
bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
|
|
@@ -8984,7 +9039,7 @@ function ITTooltip({
|
|
|
8984
9039
|
clearTimeout(timeout);
|
|
8985
9040
|
setVisible(false);
|
|
8986
9041
|
};
|
|
8987
|
-
return /* @__PURE__ */ (0,
|
|
9042
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
|
|
8988
9043
|
"div",
|
|
8989
9044
|
{
|
|
8990
9045
|
className: (0, import_clsx48.default)("relative inline-flex", className),
|
|
@@ -8992,9 +9047,9 @@ function ITTooltip({
|
|
|
8992
9047
|
onMouseLeave: handleMouseLeave,
|
|
8993
9048
|
children: [
|
|
8994
9049
|
children,
|
|
8995
|
-
visible && /* @__PURE__ */ (0,
|
|
8996
|
-
/* @__PURE__ */ (0,
|
|
8997
|
-
/* @__PURE__ */ (0,
|
|
9050
|
+
visible && /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: (0, import_clsx48.default)("absolute z-[70] pointer-events-none", positionClasses2[position]), children: [
|
|
9051
|
+
/* @__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 }) }),
|
|
9052
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: (0, import_clsx48.default)("absolute", arrowClasses[position]) })
|
|
8998
9053
|
] })
|
|
8999
9054
|
]
|
|
9000
9055
|
}
|
|
@@ -9002,16 +9057,16 @@ function ITTooltip({
|
|
|
9002
9057
|
}
|
|
9003
9058
|
|
|
9004
9059
|
// src/components/molecules/wysiwyg/wysiwyg.tsx
|
|
9005
|
-
var
|
|
9060
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
9006
9061
|
var INLINE_TAGS = /* @__PURE__ */ new Set(["STRONG", "B", "EM", "I", "U", "MARK"]);
|
|
9007
9062
|
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,
|
|
9063
|
+
bold: { label: "Negrita", icon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_fa29.FaBold, {}) },
|
|
9064
|
+
italic: { label: "It\xE1lica", icon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_fa29.FaItalic, {}) },
|
|
9065
|
+
underline: { label: "Subrayado", icon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_fa29.FaUnderline, {}) },
|
|
9066
|
+
highlight: { label: "Marcador", icon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_fa29.FaHighlighter, {}) },
|
|
9067
|
+
ul: { label: "Lista con vi\xF1etas", icon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_fa29.FaListUl, {}) },
|
|
9068
|
+
ol: { label: "Lista numerada", icon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_fa29.FaListOl, {}) },
|
|
9069
|
+
clear: { label: "Limpiar formato", icon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_fa29.FaEraser, {}) }
|
|
9015
9070
|
};
|
|
9016
9071
|
function ITWysiwyg({
|
|
9017
9072
|
value,
|
|
@@ -9427,7 +9482,7 @@ function ITWysiwyg({
|
|
|
9427
9482
|
}) => {
|
|
9428
9483
|
const meta = ACTION_META[action];
|
|
9429
9484
|
const isActive = !!active[action];
|
|
9430
|
-
return /* @__PURE__ */ (0,
|
|
9485
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ITTooltip, { content: meta.label, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
9431
9486
|
"button",
|
|
9432
9487
|
{
|
|
9433
9488
|
type: "button",
|
|
@@ -9447,9 +9502,9 @@ function ITWysiwyg({
|
|
|
9447
9502
|
}
|
|
9448
9503
|
) });
|
|
9449
9504
|
};
|
|
9450
|
-
return /* @__PURE__ */ (0,
|
|
9451
|
-
label && /* @__PURE__ */ (0,
|
|
9452
|
-
/* @__PURE__ */ (0,
|
|
9505
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: inputWrapper(className), children: [
|
|
9506
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ITText, { as: "label", className: inputLabel(!!error), htmlFor: name, children: label }),
|
|
9507
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
|
|
9453
9508
|
"div",
|
|
9454
9509
|
{
|
|
9455
9510
|
className: (0, import_clsx49.default)(
|
|
@@ -9458,20 +9513,20 @@ function ITWysiwyg({
|
|
|
9458
9513
|
isLocked && "opacity-50 cursor-not-allowed bg-secondary-100 dark:bg-slate-800"
|
|
9459
9514
|
),
|
|
9460
9515
|
children: [
|
|
9461
|
-
/* @__PURE__ */ (0,
|
|
9516
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
9462
9517
|
"div",
|
|
9463
9518
|
{
|
|
9464
9519
|
className: (0, import_clsx49.default)(
|
|
9465
9520
|
"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
9521
|
isLocked && "bg-secondary-100 dark:bg-slate-900"
|
|
9467
9522
|
),
|
|
9468
|
-
children: toolbar.map((action, i) => /* @__PURE__ */ (0,
|
|
9469
|
-
i > 0 && (action === "ul" || action === "ol" || action === "clear") && /* @__PURE__ */ (0,
|
|
9470
|
-
/* @__PURE__ */ (0,
|
|
9523
|
+
children: toolbar.map((action, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("span", { className: "flex items-center", children: [
|
|
9524
|
+
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" }),
|
|
9525
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ToolbarButton, { action })
|
|
9471
9526
|
] }, action))
|
|
9472
9527
|
}
|
|
9473
9528
|
),
|
|
9474
|
-
/* @__PURE__ */ (0,
|
|
9529
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
9475
9530
|
"div",
|
|
9476
9531
|
{
|
|
9477
9532
|
id: name,
|
|
@@ -9505,7 +9560,7 @@ function ITWysiwyg({
|
|
|
9505
9560
|
]
|
|
9506
9561
|
}
|
|
9507
9562
|
),
|
|
9508
|
-
error && /* @__PURE__ */ (0,
|
|
9563
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ITText, { as: "span", className: inputError, children: error })
|
|
9509
9564
|
] });
|
|
9510
9565
|
}
|
|
9511
9566
|
|
|
@@ -9540,7 +9595,7 @@ var UploadStatus = /* @__PURE__ */ ((UploadStatus2) => {
|
|
|
9540
9595
|
})(UploadStatus || {});
|
|
9541
9596
|
|
|
9542
9597
|
// src/components/organisms/dropfile/dropfile.tsx
|
|
9543
|
-
var
|
|
9598
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
9544
9599
|
var ITDropfile = ({
|
|
9545
9600
|
onFileSelect,
|
|
9546
9601
|
onCancel,
|
|
@@ -9679,9 +9734,9 @@ var ITDropfile = ({
|
|
|
9679
9734
|
}
|
|
9680
9735
|
};
|
|
9681
9736
|
const { label, color, dotColor } = config2[status];
|
|
9682
|
-
return /* @__PURE__ */ (0,
|
|
9683
|
-
/* @__PURE__ */ (0,
|
|
9684
|
-
/* @__PURE__ */ (0,
|
|
9737
|
+
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: [
|
|
9738
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: `w-2 h-2 rounded-full ${dotColor}` }),
|
|
9739
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { as: "span", className: "text-xs font-medium flex items-center gap-1.5", children: label })
|
|
9685
9740
|
] });
|
|
9686
9741
|
};
|
|
9687
9742
|
const onDrop = (acceptedFiles) => {
|
|
@@ -9772,18 +9827,18 @@ var ITDropfile = ({
|
|
|
9772
9827
|
return () => clearTimeout(timeout);
|
|
9773
9828
|
}
|
|
9774
9829
|
}, [view, isConfirmed, uploadStatus, externalStatus, onStatusChange]);
|
|
9775
|
-
const headerRow = /* @__PURE__ */ (0,
|
|
9776
|
-
/* @__PURE__ */ (0,
|
|
9777
|
-
/* @__PURE__ */ (0,
|
|
9778
|
-
/* @__PURE__ */ (0,
|
|
9830
|
+
const headerRow = /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex items-center justify-between mb-2", children: [
|
|
9831
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("label", { className: "block text-sm font-semibold text-secondary-700", children: [
|
|
9832
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { as: "span", children: "Subir archivo " }),
|
|
9833
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(ITText, { as: "span", className: "text-secondary-400 font-normal text-xs", children: [
|
|
9779
9834
|
"(",
|
|
9780
9835
|
getFileExtensions(),
|
|
9781
9836
|
")"
|
|
9782
9837
|
] })
|
|
9783
9838
|
] }),
|
|
9784
|
-
showStatusBadge && selectedFile && /* @__PURE__ */ (0,
|
|
9839
|
+
showStatusBadge && selectedFile && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(StatusBadge, { status: uploadStatus })
|
|
9785
9840
|
] });
|
|
9786
|
-
const dropZoneOrPreview = /* @__PURE__ */ (0,
|
|
9841
|
+
const dropZoneOrPreview = /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_jsx_runtime68.Fragment, { children: !selectedFile && !imagePreview ? /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
9787
9842
|
"div",
|
|
9788
9843
|
{
|
|
9789
9844
|
...getRootProps(),
|
|
@@ -9793,41 +9848,41 @@ var ITDropfile = ({
|
|
|
9793
9848
|
${isDragActive ? "border-primary-500 bg-primary-50 scale-[1.01]" : "border-secondary-300 bg-white hover:border-primary-400 hover:bg-secondary-50"}
|
|
9794
9849
|
`,
|
|
9795
9850
|
children: [
|
|
9796
|
-
/* @__PURE__ */ (0,
|
|
9797
|
-
/* @__PURE__ */ (0,
|
|
9851
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("input", { ...getInputProps() }),
|
|
9852
|
+
/* @__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
9853
|
"svg",
|
|
9799
9854
|
{
|
|
9800
9855
|
className: `w-6 h-6 transition-colors duration-300 ${isDragActive ? "text-primary-600" : "text-secondary-400 group-hover:text-primary-500"}`,
|
|
9801
9856
|
fill: "none",
|
|
9802
9857
|
viewBox: "0 0 24 24",
|
|
9803
9858
|
stroke: "currentColor",
|
|
9804
|
-
children: /* @__PURE__ */ (0,
|
|
9859
|
+
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
9860
|
}
|
|
9806
9861
|
) }),
|
|
9807
|
-
/* @__PURE__ */ (0,
|
|
9862
|
+
/* @__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
9863
|
]
|
|
9809
9864
|
}
|
|
9810
|
-
) : /* @__PURE__ */ (0,
|
|
9811
|
-
/* @__PURE__ */ (0,
|
|
9812
|
-
/* @__PURE__ */ (0,
|
|
9813
|
-
/* @__PURE__ */ (0,
|
|
9814
|
-
/* @__PURE__ */ (0,
|
|
9815
|
-
/* @__PURE__ */ (0,
|
|
9865
|
+
) : /* @__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: [
|
|
9866
|
+
/* @__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: [
|
|
9867
|
+
/* @__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" }) }) }),
|
|
9868
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "min-w-0", children: [
|
|
9869
|
+
/* @__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" }),
|
|
9870
|
+
/* @__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
9871
|
] })
|
|
9817
9872
|
] }) }),
|
|
9818
|
-
/* @__PURE__ */ (0,
|
|
9873
|
+
/* @__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
9874
|
"img",
|
|
9820
9875
|
{
|
|
9821
9876
|
src: imagePreview,
|
|
9822
9877
|
alt: "Vista previa",
|
|
9823
9878
|
className: "w-full h-full object-contain max-h-[200px]"
|
|
9824
9879
|
}
|
|
9825
|
-
) : /* @__PURE__ */ (0,
|
|
9826
|
-
/* @__PURE__ */ (0,
|
|
9827
|
-
/* @__PURE__ */ (0,
|
|
9880
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "py-8 flex flex-col items-center text-secondary-400", children: [
|
|
9881
|
+
/* @__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" }) }),
|
|
9882
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { as: "span", className: "text-xs", children: "Sin vista previa" })
|
|
9828
9883
|
] }) }),
|
|
9829
|
-
/* @__PURE__ */ (0,
|
|
9830
|
-
/* @__PURE__ */ (0,
|
|
9884
|
+
/* @__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: [
|
|
9885
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
9831
9886
|
ITButton,
|
|
9832
9887
|
{
|
|
9833
9888
|
type: "button",
|
|
@@ -9835,10 +9890,10 @@ var ITDropfile = ({
|
|
|
9835
9890
|
color: "secondary",
|
|
9836
9891
|
size: "sm",
|
|
9837
9892
|
onClick: handleCancel,
|
|
9838
|
-
children: /* @__PURE__ */ (0,
|
|
9893
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { children: "Cancelar" })
|
|
9839
9894
|
}
|
|
9840
9895
|
),
|
|
9841
|
-
/* @__PURE__ */ (0,
|
|
9896
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
9842
9897
|
ITButton,
|
|
9843
9898
|
{
|
|
9844
9899
|
type: "button",
|
|
@@ -9846,13 +9901,13 @@ var ITDropfile = ({
|
|
|
9846
9901
|
color: "primary",
|
|
9847
9902
|
size: "sm",
|
|
9848
9903
|
onClick: handleConfirm,
|
|
9849
|
-
children: /* @__PURE__ */ (0,
|
|
9850
|
-
/* @__PURE__ */ (0,
|
|
9851
|
-
/* @__PURE__ */ (0,
|
|
9904
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
9905
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { children: "Confirmar" }),
|
|
9906
|
+
/* @__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
9907
|
] })
|
|
9853
9908
|
}
|
|
9854
9909
|
)
|
|
9855
|
-
] }) : /* @__PURE__ */ (0,
|
|
9910
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
9856
9911
|
ITButton,
|
|
9857
9912
|
{
|
|
9858
9913
|
type: "button",
|
|
@@ -9861,12 +9916,12 @@ var ITDropfile = ({
|
|
|
9861
9916
|
size: "sm",
|
|
9862
9917
|
onClick: handleDelete,
|
|
9863
9918
|
children: [
|
|
9864
|
-
/* @__PURE__ */ (0,
|
|
9865
|
-
/* @__PURE__ */ (0,
|
|
9919
|
+
/* @__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" }) }),
|
|
9920
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { children: "Eliminar" })
|
|
9866
9921
|
]
|
|
9867
9922
|
}
|
|
9868
9923
|
) }),
|
|
9869
|
-
uploadStatus === "subiendo" /* UPLOADING */ && /* @__PURE__ */ (0,
|
|
9924
|
+
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
9925
|
"div",
|
|
9871
9926
|
{
|
|
9872
9927
|
className: "bg-primary-600 h-1.5 rounded-full transition-all duration-1000 ease-out",
|
|
@@ -9879,8 +9934,8 @@ var ITDropfile = ({
|
|
|
9879
9934
|
] }) });
|
|
9880
9935
|
if (view === "button") {
|
|
9881
9936
|
const hasFile = Boolean(selectedFile || imagePreview);
|
|
9882
|
-
return /* @__PURE__ */ (0,
|
|
9883
|
-
/* @__PURE__ */ (0,
|
|
9937
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: (0, import_clsx50.default)("inline-block", containerClassName), children: [
|
|
9938
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
9884
9939
|
ITButton,
|
|
9885
9940
|
{
|
|
9886
9941
|
type: "button",
|
|
@@ -9888,20 +9943,20 @@ var ITDropfile = ({
|
|
|
9888
9943
|
color: hasFile ? "primary" : "secondary",
|
|
9889
9944
|
size: "sm",
|
|
9890
9945
|
onClick: () => setIsModalOpen(true),
|
|
9891
|
-
children: /* @__PURE__ */ (0,
|
|
9892
|
-
/* @__PURE__ */ (0,
|
|
9893
|
-
/* @__PURE__ */ (0,
|
|
9894
|
-
showStatusBadge && hasFile && /* @__PURE__ */ (0,
|
|
9946
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex items-center gap-2 max-w-[220px]", children: [
|
|
9947
|
+
/* @__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" }) }),
|
|
9948
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { className: "truncate", children: selectedFile?.name || (hasFile ? "Archivo cargado" : buttonLabel) }),
|
|
9949
|
+
showStatusBadge && hasFile && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(StatusBadge, { status: uploadStatus })
|
|
9895
9950
|
] })
|
|
9896
9951
|
}
|
|
9897
9952
|
),
|
|
9898
|
-
/* @__PURE__ */ (0,
|
|
9953
|
+
/* @__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
9954
|
headerRow,
|
|
9900
9955
|
dropZoneOrPreview
|
|
9901
9956
|
] }) })
|
|
9902
9957
|
] });
|
|
9903
9958
|
}
|
|
9904
|
-
return /* @__PURE__ */ (0,
|
|
9959
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: (0, import_clsx50.default)("w-full transition-all duration-300", containerClassName), children: [
|
|
9905
9960
|
headerRow,
|
|
9906
9961
|
dropZoneOrPreview
|
|
9907
9962
|
] });
|
|
@@ -9915,7 +9970,7 @@ var import_clsx51 = __toESM(require("clsx"), 1);
|
|
|
9915
9970
|
// src/components/organisms/topbar/topbar.tsx
|
|
9916
9971
|
var import_fa30 = require("react-icons/fa");
|
|
9917
9972
|
var import_react43 = require("react");
|
|
9918
|
-
var
|
|
9973
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
9919
9974
|
function ITTopBar({
|
|
9920
9975
|
logo,
|
|
9921
9976
|
logoText,
|
|
@@ -9930,7 +9985,7 @@ function ITTopBar({
|
|
|
9930
9985
|
const [isUserMenuOpen, setIsUserMenuOpen] = (0, import_react43.useState)(false);
|
|
9931
9986
|
const userMenuRef = (0, import_react43.useRef)(null);
|
|
9932
9987
|
useClickOutside_default(userMenuRef, () => setIsUserMenuOpen(false));
|
|
9933
|
-
return /* @__PURE__ */ (0,
|
|
9988
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
9934
9989
|
"header",
|
|
9935
9990
|
{
|
|
9936
9991
|
className: "sticky top-0 z-40 backdrop-blur-md transition-all duration-300",
|
|
@@ -9939,9 +9994,9 @@ function ITTopBar({
|
|
|
9939
9994
|
borderBottom: "1px solid var(--it-topbar-border, rgba(15, 23, 42, 0.06))",
|
|
9940
9995
|
boxShadow: "var(--shadow-xs)"
|
|
9941
9996
|
},
|
|
9942
|
-
children: /* @__PURE__ */ (0,
|
|
9943
|
-
/* @__PURE__ */ (0,
|
|
9944
|
-
showMobileMenuButton && /* @__PURE__ */ (0,
|
|
9997
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center justify-between h-[72px] px-6 lg:px-8", children: [
|
|
9998
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-5", children: [
|
|
9999
|
+
showMobileMenuButton && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
9945
10000
|
"button",
|
|
9946
10001
|
{
|
|
9947
10002
|
className: "lg:hidden p-2.5 rounded-xl transition-colors duration-200",
|
|
@@ -9951,12 +10006,12 @@ function ITTopBar({
|
|
|
9951
10006
|
onMouseEnter: (e) => e.currentTarget.style.backgroundColor = "var(--it-topbar-user-hover, #f1f5f9)",
|
|
9952
10007
|
onMouseLeave: (e) => e.currentTarget.style.backgroundColor = "transparent",
|
|
9953
10008
|
onClick: onToggleMobileMenu,
|
|
9954
|
-
children: /* @__PURE__ */ (0,
|
|
10009
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_fa30.FaBars, { className: "w-[1.125rem] h-[1.125rem]" })
|
|
9955
10010
|
}
|
|
9956
10011
|
),
|
|
9957
|
-
/* @__PURE__ */ (0,
|
|
9958
|
-
logo && /* @__PURE__ */ (0,
|
|
9959
|
-
logoText && /* @__PURE__ */ (0,
|
|
10012
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
10013
|
+
logo && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "flex-shrink-0 drop-shadow-sm", children: logo }),
|
|
10014
|
+
logoText && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
9960
10015
|
ITText,
|
|
9961
10016
|
{
|
|
9962
10017
|
as: "span",
|
|
@@ -9966,7 +10021,7 @@ function ITTopBar({
|
|
|
9966
10021
|
}
|
|
9967
10022
|
)
|
|
9968
10023
|
] }),
|
|
9969
|
-
navItems && navItems.length > 0 && /* @__PURE__ */ (0,
|
|
10024
|
+
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
10025
|
"button",
|
|
9971
10026
|
{
|
|
9972
10027
|
onClick: () => onNavItemClick?.(item.id),
|
|
@@ -9980,19 +10035,19 @@ function ITTopBar({
|
|
|
9980
10035
|
e.currentTarget.style.color = "var(--it-topbar-text, #475569)";
|
|
9981
10036
|
e.currentTarget.style.backgroundColor = "transparent";
|
|
9982
10037
|
},
|
|
9983
|
-
children: /* @__PURE__ */ (0,
|
|
9984
|
-
item.icon && /* @__PURE__ */ (0,
|
|
9985
|
-
/* @__PURE__ */ (0,
|
|
10038
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
10039
|
+
item.icon && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "opacity-70", children: item.icon }),
|
|
10040
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ITText, { as: "span", children: item.label })
|
|
9986
10041
|
] })
|
|
9987
10042
|
},
|
|
9988
10043
|
item.id
|
|
9989
10044
|
)) })
|
|
9990
10045
|
] }),
|
|
9991
|
-
centerContent && /* @__PURE__ */ (0,
|
|
9992
|
-
(children || userMenu) && /* @__PURE__ */ (0,
|
|
10046
|
+
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 }) }),
|
|
10047
|
+
(children || userMenu) && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
9993
10048
|
children,
|
|
9994
|
-
userMenu && /* @__PURE__ */ (0,
|
|
9995
|
-
/* @__PURE__ */ (0,
|
|
10049
|
+
userMenu && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "relative", children: [
|
|
10050
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
9996
10051
|
"button",
|
|
9997
10052
|
{
|
|
9998
10053
|
type: "button",
|
|
@@ -10008,19 +10063,19 @@ function ITTopBar({
|
|
|
10008
10063
|
},
|
|
10009
10064
|
onClick: () => setIsUserMenuOpen(!isUserMenuOpen),
|
|
10010
10065
|
children: [
|
|
10011
|
-
/* @__PURE__ */ (0,
|
|
10012
|
-
userMenu.userImage ? /* @__PURE__ */ (0,
|
|
10066
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "relative", children: [
|
|
10067
|
+
userMenu.userImage ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
10013
10068
|
"img",
|
|
10014
10069
|
{
|
|
10015
10070
|
className: "w-9 h-9 rounded-full object-cover ring-2 ring-white shadow-sm",
|
|
10016
10071
|
src: userMenu.userImage,
|
|
10017
10072
|
alt: "Current user"
|
|
10018
10073
|
}
|
|
10019
|
-
) : /* @__PURE__ */ (0,
|
|
10020
|
-
/* @__PURE__ */ (0,
|
|
10074
|
+
) : /* @__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)" } }) }),
|
|
10075
|
+
/* @__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
10076
|
] }),
|
|
10022
|
-
/* @__PURE__ */ (0,
|
|
10023
|
-
/* @__PURE__ */ (0,
|
|
10077
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "hidden sm:flex flex-col text-left py-0.5", children: [
|
|
10078
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
10024
10079
|
ITText,
|
|
10025
10080
|
{
|
|
10026
10081
|
as: "span",
|
|
@@ -10029,7 +10084,7 @@ function ITTopBar({
|
|
|
10029
10084
|
children: userMenu.userName
|
|
10030
10085
|
}
|
|
10031
10086
|
),
|
|
10032
|
-
/* @__PURE__ */ (0,
|
|
10087
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
10033
10088
|
ITText,
|
|
10034
10089
|
{
|
|
10035
10090
|
as: "span",
|
|
@@ -10042,7 +10097,7 @@ function ITTopBar({
|
|
|
10042
10097
|
]
|
|
10043
10098
|
}
|
|
10044
10099
|
),
|
|
10045
|
-
/* @__PURE__ */ (0,
|
|
10100
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
10046
10101
|
"div",
|
|
10047
10102
|
{
|
|
10048
10103
|
ref: userMenuRef,
|
|
@@ -10055,15 +10110,15 @@ function ITTopBar({
|
|
|
10055
10110
|
border: "1px solid var(--it-topbar-user-dropdown-border, #f1f5f9)"
|
|
10056
10111
|
},
|
|
10057
10112
|
children: [
|
|
10058
|
-
/* @__PURE__ */ (0,
|
|
10059
|
-
/* @__PURE__ */ (0,
|
|
10060
|
-
/* @__PURE__ */ (0,
|
|
10113
|
+
/* @__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: [
|
|
10114
|
+
/* @__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 }),
|
|
10115
|
+
/* @__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
10116
|
] }),
|
|
10062
|
-
/* @__PURE__ */ (0,
|
|
10117
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("ul", { className: "py-2", children: userMenu.menuItems.map((m, i) => {
|
|
10063
10118
|
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,
|
|
10119
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("li", { className: "px-2", children: [
|
|
10120
|
+
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" }),
|
|
10121
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
10067
10122
|
"button",
|
|
10068
10123
|
{
|
|
10069
10124
|
onClick: () => {
|
|
@@ -10078,7 +10133,7 @@ function ITTopBar({
|
|
|
10078
10133
|
onMouseLeave: (e) => {
|
|
10079
10134
|
e.currentTarget.style.backgroundColor = "transparent";
|
|
10080
10135
|
},
|
|
10081
|
-
children: /* @__PURE__ */ (0,
|
|
10136
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ITText, { as: "span", children: m.label })
|
|
10082
10137
|
}
|
|
10083
10138
|
)
|
|
10084
10139
|
] }, i);
|
|
@@ -10094,7 +10149,7 @@ function ITTopBar({
|
|
|
10094
10149
|
}
|
|
10095
10150
|
|
|
10096
10151
|
// src/components/templates/layout/layout.tsx
|
|
10097
|
-
var
|
|
10152
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
10098
10153
|
function ITLayout({
|
|
10099
10154
|
topBar,
|
|
10100
10155
|
sidebar,
|
|
@@ -10109,8 +10164,8 @@ function ITLayout({
|
|
|
10109
10164
|
const handleToggleCollapse = isControlled ? sidebar.onToggleCollapse ?? (() => {
|
|
10110
10165
|
}) : () => setInternalCollapsed((v) => !v);
|
|
10111
10166
|
const layoutTokens = theme.layout;
|
|
10112
|
-
return /* @__PURE__ */ (0,
|
|
10113
|
-
/* @__PURE__ */ (0,
|
|
10167
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: `flex flex-col h-screen overflow-hidden w-full ${className}`, children: [
|
|
10168
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
10114
10169
|
ITTopBar,
|
|
10115
10170
|
{
|
|
10116
10171
|
...topBar,
|
|
@@ -10118,20 +10173,20 @@ function ITLayout({
|
|
|
10118
10173
|
onToggleMobileMenu: () => setMobileSidebarOpen((v) => !v)
|
|
10119
10174
|
}
|
|
10120
10175
|
),
|
|
10121
|
-
/* @__PURE__ */ (0,
|
|
10176
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
10122
10177
|
"div",
|
|
10123
10178
|
{
|
|
10124
10179
|
className: "flex flex-1 overflow-hidden relative",
|
|
10125
10180
|
style: { backgroundColor: layoutTokens.backgroundColor },
|
|
10126
10181
|
children: [
|
|
10127
|
-
/* @__PURE__ */ (0,
|
|
10128
|
-
/* @__PURE__ */ (0,
|
|
10182
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "hidden lg:block relative z-40 h-full", children: [
|
|
10183
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
10129
10184
|
"div",
|
|
10130
10185
|
{
|
|
10131
10186
|
className: `${desktopCollapsed ? "w-[88px]" : "w-[280px]"} h-full flex-shrink-0`
|
|
10132
10187
|
}
|
|
10133
10188
|
),
|
|
10134
|
-
/* @__PURE__ */ (0,
|
|
10189
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "absolute top-0 left-0 h-full", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
10135
10190
|
ITSidebar,
|
|
10136
10191
|
{
|
|
10137
10192
|
...sidebar,
|
|
@@ -10142,17 +10197,17 @@ function ITLayout({
|
|
|
10142
10197
|
}
|
|
10143
10198
|
) })
|
|
10144
10199
|
] }),
|
|
10145
|
-
mobileSidebarOpen && /* @__PURE__ */ (0,
|
|
10200
|
+
mobileSidebarOpen && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
10146
10201
|
"div",
|
|
10147
10202
|
{
|
|
10148
10203
|
className: "lg:hidden fixed inset-0 z-[40] transition-opacity duration-300 backdrop-blur-sm bg-black/40",
|
|
10149
10204
|
onClick: () => setMobileSidebarOpen(false),
|
|
10150
|
-
children: /* @__PURE__ */ (0,
|
|
10205
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
10151
10206
|
"div",
|
|
10152
10207
|
{
|
|
10153
10208
|
className: "h-full w-fit flex transform transition-transform duration-300 ease-[cubic-bezier(0.2,0,0,1)]",
|
|
10154
10209
|
onClick: (e) => e.stopPropagation(),
|
|
10155
|
-
children: /* @__PURE__ */ (0,
|
|
10210
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
10156
10211
|
ITSidebar,
|
|
10157
10212
|
{
|
|
10158
10213
|
...sidebar,
|
|
@@ -10168,7 +10223,7 @@ function ITLayout({
|
|
|
10168
10223
|
)
|
|
10169
10224
|
}
|
|
10170
10225
|
),
|
|
10171
|
-
/* @__PURE__ */ (0,
|
|
10226
|
+
/* @__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
10227
|
]
|
|
10173
10228
|
}
|
|
10174
10229
|
)
|
|
@@ -10184,7 +10239,7 @@ var sizeClasses = {
|
|
|
10184
10239
|
};
|
|
10185
10240
|
|
|
10186
10241
|
// src/components/atoms/loader/loader.tsx
|
|
10187
|
-
var
|
|
10242
|
+
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
10188
10243
|
function ITLoader({
|
|
10189
10244
|
size = "md",
|
|
10190
10245
|
variant = "spinner",
|
|
@@ -10199,22 +10254,22 @@ function ITLoader({
|
|
|
10199
10254
|
const bgStyle = isCssValue ? { backgroundColor: resolvedColor } : {};
|
|
10200
10255
|
const colorClass = !isCssValue ? color : "";
|
|
10201
10256
|
if (variant === "spinner") {
|
|
10202
|
-
return /* @__PURE__ */ (0,
|
|
10257
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
10203
10258
|
"div",
|
|
10204
10259
|
{
|
|
10205
10260
|
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
10261
|
role: "status",
|
|
10207
10262
|
style,
|
|
10208
|
-
children: /* @__PURE__ */ (0,
|
|
10263
|
+
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
10264
|
}
|
|
10210
10265
|
);
|
|
10211
10266
|
}
|
|
10212
10267
|
if (variant === "dots") {
|
|
10213
|
-
return /* @__PURE__ */ (0,
|
|
10268
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
10214
10269
|
"div",
|
|
10215
10270
|
{
|
|
10216
10271
|
className: `flex items-center justify-center space-x-2 ${className}`,
|
|
10217
|
-
children: [...Array(3)].map((_, i) => /* @__PURE__ */ (0,
|
|
10272
|
+
children: [...Array(3)].map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
10218
10273
|
"div",
|
|
10219
10274
|
{
|
|
10220
10275
|
className: `${sizeClasses[size.replace(/l|g/, "")]} animate-bounce rounded-full ${colorClass}`,
|
|
@@ -10229,11 +10284,11 @@ function ITLoader({
|
|
|
10229
10284
|
);
|
|
10230
10285
|
}
|
|
10231
10286
|
if (variant === "bar") {
|
|
10232
|
-
return /* @__PURE__ */ (0,
|
|
10287
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
10233
10288
|
"div",
|
|
10234
10289
|
{
|
|
10235
10290
|
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,
|
|
10291
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
10237
10292
|
"div",
|
|
10238
10293
|
{
|
|
10239
10294
|
className: `h-full animate-progress ${colorClass}`,
|
|
@@ -10249,7 +10304,7 @@ function ITLoader({
|
|
|
10249
10304
|
);
|
|
10250
10305
|
}
|
|
10251
10306
|
if (variant === "pulse") {
|
|
10252
|
-
return /* @__PURE__ */ (0,
|
|
10307
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
10253
10308
|
"div",
|
|
10254
10309
|
{
|
|
10255
10310
|
className: `rounded-full ${sizeClasses[size]} animate-pulse ${colorClass} ${className}`,
|
|
@@ -10264,7 +10319,7 @@ function ITLoader({
|
|
|
10264
10319
|
var import_clsx52 = __toESM(require("clsx"), 1);
|
|
10265
10320
|
var import_react45 = require("react");
|
|
10266
10321
|
var import_fa31 = require("react-icons/fa");
|
|
10267
|
-
var
|
|
10322
|
+
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
10268
10323
|
function ITStepper({
|
|
10269
10324
|
steps,
|
|
10270
10325
|
currentStep,
|
|
@@ -10331,23 +10386,23 @@ function ITStepper({
|
|
|
10331
10386
|
const renderStepContent = (index, isCompleted) => {
|
|
10332
10387
|
const step = steps[index];
|
|
10333
10388
|
if (isCompleted) {
|
|
10334
|
-
return /* @__PURE__ */ (0,
|
|
10389
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_fa31.FaCheck, { className: "w-4 h-4" });
|
|
10335
10390
|
}
|
|
10336
10391
|
if (step.icon && useIcons) {
|
|
10337
|
-
return /* @__PURE__ */ (0,
|
|
10392
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { className: "flex items-center justify-center w-5 h-5", children: step.icon });
|
|
10338
10393
|
}
|
|
10339
|
-
return /* @__PURE__ */ (0,
|
|
10394
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ITText, { as: "span", className: "text-sm font-semibold", children: index + 1 });
|
|
10340
10395
|
};
|
|
10341
|
-
return /* @__PURE__ */ (0,
|
|
10342
|
-
/* @__PURE__ */ (0,
|
|
10343
|
-
/* @__PURE__ */ (0,
|
|
10396
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: (0, import_clsx52.default)("w-full max-w-5xl mx-auto px-4", containerClassName), children: [
|
|
10397
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "relative mb-8", children: [
|
|
10398
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
10344
10399
|
"div",
|
|
10345
10400
|
{
|
|
10346
10401
|
className: "absolute left-6 right-6 top-5 h-1 bg-secondary-200 rounded-full z-0",
|
|
10347
10402
|
"aria-hidden": true
|
|
10348
10403
|
}
|
|
10349
10404
|
),
|
|
10350
|
-
/* @__PURE__ */ (0,
|
|
10405
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
10351
10406
|
"div",
|
|
10352
10407
|
{
|
|
10353
10408
|
ref: progressRef,
|
|
@@ -10355,11 +10410,11 @@ function ITStepper({
|
|
|
10355
10410
|
"aria-hidden": true
|
|
10356
10411
|
}
|
|
10357
10412
|
),
|
|
10358
|
-
/* @__PURE__ */ (0,
|
|
10413
|
+
/* @__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
10414
|
const isActive = idx === currentStep;
|
|
10360
10415
|
const isCompleted = idx < currentStep;
|
|
10361
10416
|
const hasIcon = step.icon && useIcons;
|
|
10362
|
-
return /* @__PURE__ */ (0,
|
|
10417
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
10363
10418
|
"button",
|
|
10364
10419
|
{
|
|
10365
10420
|
type: "button",
|
|
@@ -10369,8 +10424,8 @@ function ITStepper({
|
|
|
10369
10424
|
"aria-label": `Paso ${idx + 1} ${step.label}`,
|
|
10370
10425
|
className: "flex-1 group",
|
|
10371
10426
|
title: step.label,
|
|
10372
|
-
children: /* @__PURE__ */ (0,
|
|
10373
|
-
/* @__PURE__ */ (0,
|
|
10427
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex flex-col items-center", children: [
|
|
10428
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
10374
10429
|
"div",
|
|
10375
10430
|
{
|
|
10376
10431
|
className: (0, import_clsx52.default)(
|
|
@@ -10384,7 +10439,7 @@ function ITStepper({
|
|
|
10384
10439
|
children: renderStepContent(idx, isCompleted)
|
|
10385
10440
|
}
|
|
10386
10441
|
),
|
|
10387
|
-
/* @__PURE__ */ (0,
|
|
10442
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
10388
10443
|
ITText,
|
|
10389
10444
|
{
|
|
10390
10445
|
as: "span",
|
|
@@ -10402,7 +10457,7 @@ function ITStepper({
|
|
|
10402
10457
|
);
|
|
10403
10458
|
}) })
|
|
10404
10459
|
] }),
|
|
10405
|
-
/* @__PURE__ */ (0,
|
|
10460
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
10406
10461
|
"div",
|
|
10407
10462
|
{
|
|
10408
10463
|
ref: contentRef,
|
|
@@ -10418,37 +10473,37 @@ function ITStepper({
|
|
|
10418
10473
|
children: steps[currentStep].content
|
|
10419
10474
|
}
|
|
10420
10475
|
),
|
|
10421
|
-
/* @__PURE__ */ (0,
|
|
10422
|
-
/* @__PURE__ */ (0,
|
|
10476
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex justify-between items-center mt-6", children: [
|
|
10477
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
10423
10478
|
ITButton,
|
|
10424
10479
|
{
|
|
10425
10480
|
variant: "outlined",
|
|
10426
10481
|
color: "secondary",
|
|
10427
10482
|
disabled: currentStep === 0,
|
|
10428
10483
|
onClick: prevStep,
|
|
10429
|
-
children: /* @__PURE__ */ (0,
|
|
10430
|
-
/* @__PURE__ */ (0,
|
|
10431
|
-
/* @__PURE__ */ (0,
|
|
10484
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
10485
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_fa31.FaChevronLeft, {}),
|
|
10486
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ITText, { as: "span", children: "Atr\xE1s" })
|
|
10432
10487
|
] })
|
|
10433
10488
|
}
|
|
10434
10489
|
),
|
|
10435
|
-
/* @__PURE__ */ (0,
|
|
10436
|
-
/* @__PURE__ */ (0,
|
|
10490
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
10491
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(ITText, { as: "div", className: "text-sm text-secondary-500 mr-2 hidden sm:block", children: [
|
|
10437
10492
|
"Paso ",
|
|
10438
10493
|
currentStep + 1,
|
|
10439
10494
|
" de ",
|
|
10440
10495
|
steps.length
|
|
10441
10496
|
] }),
|
|
10442
|
-
/* @__PURE__ */ (0,
|
|
10497
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
10443
10498
|
ITButton,
|
|
10444
10499
|
{
|
|
10445
10500
|
variant: "solid",
|
|
10446
10501
|
color,
|
|
10447
10502
|
disabled: disableNext,
|
|
10448
10503
|
onClick: nextStep,
|
|
10449
|
-
children: /* @__PURE__ */ (0,
|
|
10450
|
-
/* @__PURE__ */ (0,
|
|
10451
|
-
currentStep === steps.length - 1 ? /* @__PURE__ */ (0,
|
|
10504
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
10505
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ITText, { as: "span", children: currentStep === steps.length - 1 ? "Finalizar" : "Siguiente" }),
|
|
10506
|
+
currentStep === steps.length - 1 ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_fa31.FaCheck, {}) : /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_fa31.FaChevronRight, {})
|
|
10452
10507
|
] })
|
|
10453
10508
|
}
|
|
10454
10509
|
)
|
|
@@ -10636,7 +10691,7 @@ var PRESETS = [
|
|
|
10636
10691
|
];
|
|
10637
10692
|
|
|
10638
10693
|
// src/components/theme-provider/themeProvider.tsx
|
|
10639
|
-
var
|
|
10694
|
+
var import_jsx_runtime73 = require("react/jsx-runtime");
|
|
10640
10695
|
var STORAGE_KEY = "it-theme-palette";
|
|
10641
10696
|
var SHADOW_LEVELS = {
|
|
10642
10697
|
0: {
|
|
@@ -12027,14 +12082,14 @@ function ITThemeProvider({
|
|
|
12027
12082
|
const isNested = colorKey.includes(".");
|
|
12028
12083
|
const label = isNested ? colorKey.split(".")[1] : colorKey;
|
|
12029
12084
|
const value = getNestedValue3(palette2, colorKey);
|
|
12030
|
-
return /* @__PURE__ */ (0,
|
|
12085
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
|
|
12031
12086
|
"div",
|
|
12032
12087
|
{
|
|
12033
12088
|
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
12089
|
children: [
|
|
12035
|
-
/* @__PURE__ */ (0,
|
|
12036
|
-
/* @__PURE__ */ (0,
|
|
12037
|
-
/* @__PURE__ */ (0,
|
|
12090
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex items-center gap-3 flex-1 min-w-0", children: [
|
|
12091
|
+
/* @__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: [
|
|
12092
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12038
12093
|
"input",
|
|
12039
12094
|
{
|
|
12040
12095
|
type: "color",
|
|
@@ -12043,23 +12098,23 @@ function ITThemeProvider({
|
|
|
12043
12098
|
className: "absolute inset-0 opacity-0 cursor-pointer w-full h-full"
|
|
12044
12099
|
}
|
|
12045
12100
|
),
|
|
12046
|
-
/* @__PURE__ */ (0,
|
|
12101
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "w-full h-full", style: { backgroundColor: value } })
|
|
12047
12102
|
] }),
|
|
12048
|
-
/* @__PURE__ */ (0,
|
|
12049
|
-
/* @__PURE__ */ (0,
|
|
12050
|
-
/* @__PURE__ */ (0,
|
|
12051
|
-
/* @__PURE__ */ (0,
|
|
12103
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex flex-col min-w-0", children: [
|
|
12104
|
+
/* @__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() }),
|
|
12105
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex items-center gap-2 mt-0.5", children: [
|
|
12106
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12052
12107
|
"span",
|
|
12053
12108
|
{
|
|
12054
12109
|
className: "w-3 h-3 rounded-full border border-slate-200 dark:border-slate-600",
|
|
12055
12110
|
style: { backgroundColor: value }
|
|
12056
12111
|
}
|
|
12057
12112
|
),
|
|
12058
|
-
/* @__PURE__ */ (0,
|
|
12113
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ITText, { as: "span", className: "font-mono text-[11px] text-slate-400", children: value })
|
|
12059
12114
|
] })
|
|
12060
12115
|
] })
|
|
12061
12116
|
] }),
|
|
12062
|
-
/* @__PURE__ */ (0,
|
|
12117
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12063
12118
|
"input",
|
|
12064
12119
|
{
|
|
12065
12120
|
type: "text",
|
|
@@ -12078,14 +12133,14 @@ function ITThemeProvider({
|
|
|
12078
12133
|
isCustom
|
|
12079
12134
|
}) => {
|
|
12080
12135
|
const isSelected = JSON.stringify(preset.colors) === JSON.stringify(palette2);
|
|
12081
|
-
return /* @__PURE__ */ (0,
|
|
12136
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
|
|
12082
12137
|
"button",
|
|
12083
12138
|
{
|
|
12084
12139
|
type: "button",
|
|
12085
12140
|
onClick: () => applyPreset(preset.colors),
|
|
12086
12141
|
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
12142
|
children: [
|
|
12088
|
-
isCustom && /* @__PURE__ */ (0,
|
|
12143
|
+
isCustom && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12089
12144
|
"span",
|
|
12090
12145
|
{
|
|
12091
12146
|
onClick: (e) => {
|
|
@@ -12094,11 +12149,11 @@ function ITThemeProvider({
|
|
|
12094
12149
|
},
|
|
12095
12150
|
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
12151
|
title: "Eliminar",
|
|
12097
|
-
children: /* @__PURE__ */ (0,
|
|
12152
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_md3.MdClose, { size: 12 })
|
|
12098
12153
|
}
|
|
12099
12154
|
),
|
|
12100
|
-
/* @__PURE__ */ (0,
|
|
12101
|
-
/* @__PURE__ */ (0,
|
|
12155
|
+
/* @__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 }),
|
|
12156
|
+
/* @__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
12157
|
"span",
|
|
12103
12158
|
{
|
|
12104
12159
|
className: "w-3 h-3 rounded-full border border-black/10",
|
|
@@ -12110,7 +12165,7 @@ function ITThemeProvider({
|
|
|
12110
12165
|
}
|
|
12111
12166
|
);
|
|
12112
12167
|
};
|
|
12113
|
-
return /* @__PURE__ */ (0,
|
|
12168
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
|
|
12114
12169
|
ITThemeContext.Provider,
|
|
12115
12170
|
{
|
|
12116
12171
|
value: {
|
|
@@ -12126,28 +12181,28 @@ function ITThemeProvider({
|
|
|
12126
12181
|
},
|
|
12127
12182
|
children: [
|
|
12128
12183
|
children,
|
|
12129
|
-
showFab && /* @__PURE__ */ (0,
|
|
12184
|
+
showFab && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12130
12185
|
"button",
|
|
12131
12186
|
{
|
|
12132
12187
|
onClick: () => setIsOpen((prev) => !prev),
|
|
12133
12188
|
className: "it-theme-fab it-theme-bounce",
|
|
12134
12189
|
style: { backgroundColor: "var(--color-primary)" },
|
|
12135
12190
|
"aria-label": "Configurar Paleta de Colores",
|
|
12136
|
-
children: /* @__PURE__ */ (0,
|
|
12191
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_md3.MdPalette, { size: 28 })
|
|
12137
12192
|
}
|
|
12138
12193
|
),
|
|
12139
|
-
showFab && /* @__PURE__ */ (0,
|
|
12194
|
+
showFab && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12140
12195
|
ITDialog,
|
|
12141
12196
|
{
|
|
12142
12197
|
isOpen,
|
|
12143
12198
|
onClose: () => setIsOpen(false),
|
|
12144
12199
|
title: "Dise\xF1ador de Temas",
|
|
12145
12200
|
useFormHeader: true,
|
|
12146
|
-
children: /* @__PURE__ */ (0,
|
|
12147
|
-
/* @__PURE__ */ (0,
|
|
12148
|
-
/* @__PURE__ */ (0,
|
|
12149
|
-
/* @__PURE__ */ (0,
|
|
12150
|
-
/* @__PURE__ */ (0,
|
|
12201
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex gap-6 h-[580px]", children: [
|
|
12202
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "w-64 flex-shrink-0 flex flex-col gap-5 overflow-y-auto pr-1", children: [
|
|
12203
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { children: [
|
|
12204
|
+
/* @__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" }),
|
|
12205
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12151
12206
|
ITSegmentedControl,
|
|
12152
12207
|
{
|
|
12153
12208
|
options: [
|
|
@@ -12161,16 +12216,16 @@ function ITThemeProvider({
|
|
|
12161
12216
|
}
|
|
12162
12217
|
)
|
|
12163
12218
|
] }),
|
|
12164
|
-
/* @__PURE__ */ (0,
|
|
12165
|
-
/* @__PURE__ */ (0,
|
|
12166
|
-
/* @__PURE__ */ (0,
|
|
12219
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { children: [
|
|
12220
|
+
/* @__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" }) }),
|
|
12221
|
+
/* @__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
12222
|
] }),
|
|
12168
|
-
customPresets.length > 0 && /* @__PURE__ */ (0,
|
|
12169
|
-
/* @__PURE__ */ (0,
|
|
12170
|
-
/* @__PURE__ */ (0,
|
|
12223
|
+
customPresets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { children: [
|
|
12224
|
+
/* @__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" }),
|
|
12225
|
+
/* @__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
12226
|
] }),
|
|
12172
|
-
isSavingPreset && /* @__PURE__ */ (0,
|
|
12173
|
-
/* @__PURE__ */ (0,
|
|
12227
|
+
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: [
|
|
12228
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12174
12229
|
ITInput,
|
|
12175
12230
|
{
|
|
12176
12231
|
name: "presetName",
|
|
@@ -12188,8 +12243,8 @@ function ITThemeProvider({
|
|
|
12188
12243
|
}
|
|
12189
12244
|
}
|
|
12190
12245
|
),
|
|
12191
|
-
/* @__PURE__ */ (0,
|
|
12192
|
-
/* @__PURE__ */ (0,
|
|
12246
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex gap-2", children: [
|
|
12247
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12193
12248
|
ITButton,
|
|
12194
12249
|
{
|
|
12195
12250
|
label: "Guardar",
|
|
@@ -12200,7 +12255,7 @@ function ITThemeProvider({
|
|
|
12200
12255
|
className: "flex-1"
|
|
12201
12256
|
}
|
|
12202
12257
|
),
|
|
12203
|
-
/* @__PURE__ */ (0,
|
|
12258
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12204
12259
|
ITButton,
|
|
12205
12260
|
{
|
|
12206
12261
|
label: "X",
|
|
@@ -12214,31 +12269,31 @@ function ITThemeProvider({
|
|
|
12214
12269
|
)
|
|
12215
12270
|
] })
|
|
12216
12271
|
] }),
|
|
12217
|
-
!isSavingPreset && /* @__PURE__ */ (0,
|
|
12272
|
+
!isSavingPreset && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12218
12273
|
ITButton,
|
|
12219
12274
|
{
|
|
12220
12275
|
variant: "outlined",
|
|
12221
|
-
icon: /* @__PURE__ */ (0,
|
|
12276
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_md3.MdPalette, { size: 14 }),
|
|
12222
12277
|
label: "Guardar actual",
|
|
12223
12278
|
onClick: () => setIsSavingPreset(true),
|
|
12224
12279
|
size: "sm"
|
|
12225
12280
|
}
|
|
12226
12281
|
),
|
|
12227
|
-
/* @__PURE__ */ (0,
|
|
12282
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12228
12283
|
ITButton,
|
|
12229
12284
|
{
|
|
12230
12285
|
variant: "outlined",
|
|
12231
12286
|
color: "danger",
|
|
12232
|
-
icon: /* @__PURE__ */ (0,
|
|
12287
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_md3.MdRefresh, { size: 14 }),
|
|
12233
12288
|
label: "Restaurar default",
|
|
12234
12289
|
onClick: resetTheme,
|
|
12235
12290
|
size: "sm"
|
|
12236
12291
|
}
|
|
12237
12292
|
)
|
|
12238
12293
|
] }),
|
|
12239
|
-
/* @__PURE__ */ (0,
|
|
12240
|
-
/* @__PURE__ */ (0,
|
|
12241
|
-
/* @__PURE__ */ (0,
|
|
12294
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ITDivider, { orientation: "vertical" }),
|
|
12295
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex-1 flex flex-col min-w-0", children: [
|
|
12296
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12242
12297
|
tabs_default,
|
|
12243
12298
|
{
|
|
12244
12299
|
variant: "pill",
|
|
@@ -12246,7 +12301,7 @@ function ITThemeProvider({
|
|
|
12246
12301
|
{
|
|
12247
12302
|
id: "brand",
|
|
12248
12303
|
label: "Marca",
|
|
12249
|
-
content: /* @__PURE__ */ (0,
|
|
12304
|
+
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
12305
|
"primary",
|
|
12251
12306
|
"secondary",
|
|
12252
12307
|
"ternary",
|
|
@@ -12255,35 +12310,35 @@ function ITThemeProvider({
|
|
|
12255
12310
|
"info",
|
|
12256
12311
|
"alert",
|
|
12257
12312
|
"warning"
|
|
12258
|
-
].map((key) => /* @__PURE__ */ (0,
|
|
12313
|
+
].map((key) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ColorRow, { colorKey: key }, key)) })
|
|
12259
12314
|
},
|
|
12260
12315
|
{
|
|
12261
12316
|
id: "layout",
|
|
12262
12317
|
label: "Nav & Sidebar",
|
|
12263
|
-
content: /* @__PURE__ */ (0,
|
|
12318
|
+
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
12319
|
"layout.sidebarBg",
|
|
12265
12320
|
"layout.sidebarText",
|
|
12266
12321
|
"layout.navbarBg",
|
|
12267
12322
|
"layout.navbarText"
|
|
12268
|
-
].map((key) => /* @__PURE__ */ (0,
|
|
12323
|
+
].map((key) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ColorRow, { colorKey: key }, key)) })
|
|
12269
12324
|
},
|
|
12270
12325
|
{
|
|
12271
12326
|
id: "tables",
|
|
12272
12327
|
label: "Tablas",
|
|
12273
|
-
content: /* @__PURE__ */ (0,
|
|
12328
|
+
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
12329
|
"table.headerBg",
|
|
12275
12330
|
"table.headerText",
|
|
12276
12331
|
"table.rowBg",
|
|
12277
12332
|
"table.rowText",
|
|
12278
12333
|
"table.rowHover"
|
|
12279
|
-
].map((key) => /* @__PURE__ */ (0,
|
|
12334
|
+
].map((key) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ColorRow, { colorKey: key }, key)) })
|
|
12280
12335
|
}
|
|
12281
12336
|
]
|
|
12282
12337
|
}
|
|
12283
12338
|
),
|
|
12284
|
-
/* @__PURE__ */ (0,
|
|
12285
|
-
/* @__PURE__ */ (0,
|
|
12286
|
-
/* @__PURE__ */ (0,
|
|
12339
|
+
/* @__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: [
|
|
12340
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ITText, { as: "p", className: "text-[11px] text-slate-400 mr-auto", children: "Los cambios se guardan autom\xE1ticamente" }),
|
|
12341
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
12287
12342
|
ITButton,
|
|
12288
12343
|
{
|
|
12289
12344
|
label: "Cerrar",
|
|
@@ -12342,6 +12397,7 @@ var createValidationSchema = (fields) => Yup.object().shape(
|
|
|
12342
12397
|
ITGrid,
|
|
12343
12398
|
ITImage,
|
|
12344
12399
|
ITInput,
|
|
12400
|
+
ITInputNumber,
|
|
12345
12401
|
ITLayout,
|
|
12346
12402
|
ITLoader,
|
|
12347
12403
|
ITMaskedInput,
|