@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.
Files changed (34) hide show
  1. package/dist/index.cjs +562 -506
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.css +1 -1
  4. package/dist/index.d.cts +107 -3
  5. package/dist/index.d.ts +107 -3
  6. package/dist/index.js +433 -378
  7. package/dist/index.js.map +1 -1
  8. package/package.json +1 -1
  9. package/src/App.tsx +6 -0
  10. package/src/components/atoms/input/input.props.ts +5 -0
  11. package/src/components/atoms/input/input.tsx +24 -17
  12. package/src/components/atoms/input-number/input-number.doc.mdx +74 -0
  13. package/src/components/atoms/input-number/input-number.props.ts +66 -0
  14. package/src/components/atoms/input-number/input-number.stories.tsx +111 -0
  15. package/src/components/atoms/input-number/input-number.tsx +86 -0
  16. package/src/components/molecules/date-picker/datePicker.tsx +1 -0
  17. package/src/components/molecules/dropdown-menu/dropdown-menu.tsx +1 -0
  18. package/src/components/molecules/multi-select/multi-select.tsx +1 -0
  19. package/src/components/molecules/search-select/search-select.tsx +1 -0
  20. package/src/components/molecules/time-picker/timePicker.tsx +1 -0
  21. package/src/components/organisms/dialog/dialog.stories.tsx +48 -0
  22. package/src/components/organisms/sidebar/sidebar.doc.mdx +12 -12
  23. package/src/hooks/useClickOutside.ts +6 -0
  24. package/src/hooks/useFloatingPanel.ts +4 -1
  25. package/src/index.ts +4 -2
  26. package/src/sandbox/navigation.ts +2 -0
  27. package/src/showcases/FeedbackShowcases.tsx +16 -1
  28. package/src/showcases/FormShowcases.tsx +287 -1
  29. package/src/showcases/HomeShowcase.tsx +552 -331
  30. package/src/showcases/ProductoDetalle.tsx +181 -0
  31. package/src/showcases/ProductoIcono.tsx +25 -0
  32. package/src/showcases/StructureShowcases.tsx +2 -2
  33. package/src/showcases/productos.ts +179 -0
  34. 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 ?? width ?? 0;
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: 2,
2705
- maximumFractionDigits: 2
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 (!currencyFormat && (key === "." || key === ",")) {
2765
+ if (decimalPlaces === 0 && (key === "." || key === ",")) {
2757
2766
  e.preventDefault();
2758
2767
  return;
2759
2768
  }
2760
- if (currencyFormat && (key === "." || key === ",") && currentValue.includes(".")) {
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 = currencyFormat ? /^[0-9.,]$/ : /^[0-9]$/;
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 (currencyFormat) {
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 decimals = parts.slice(1).join("").substring(0, 2);
2796
- cleanedValue = parts[0] + "." + decimals;
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 (currencyFormat) {
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 (currencyFormat) {
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 = currencyFormat ? parseFloat(cleanedValue) : parseInt(cleanedValue, 10);
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 ? (currencyFormat ? displayValue.replace(/[.,]/g, "") : displayValue).length : typeof value === "string" ? value.length : String(value ?? "").length;
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 ? currencyFormat ? "decimal" : "numeric" : void 0,
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 && !currencyFormat ? maxLength : void 0,
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 import_jsx_runtime36 = require("react/jsx-runtime");
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, import_jsx_runtime36.jsxs)("div", { className: "flex flex-col h-screen", children: [
6330
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("nav", { className: "bg-white border-b border-secondary-200", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex items-center justify-between mx-auto p-4", children: [
6331
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex items-center space-x-3 rtl:space-x-reverse", children: [
6332
- logo && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "h-8", children: logo }),
6333
- logoText && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ITText, { as: "span", className: "self-center text-2xl font-semibold whitespace-nowrap text-secondary-900", children: logoText })
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, import_jsx_runtime36.jsx)("div", { className: "flex items-center justify-end w-full md:w-auto md:order-2", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex items-center space-x-4 md:order-2", children: [
6336
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("ul", { className: "hidden md:flex space-x-4", children: navItems }),
6337
- userMenu && /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "relative", children: [
6338
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
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, import_jsx_runtime36.jsx)(
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, import_jsx_runtime36.jsx)(import_fa20.FaUserCircle, { className: "w-8 h-8 text-secondary-500" })
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, import_jsx_runtime36.jsxs)(
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, import_jsx_runtime36.jsxs)("div", { className: "px-4 py-3", children: [
6361
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ITText, { as: "span", className: "block text-sm text-secondary-900", children: userMenu.userName }),
6362
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ITText, { as: "span", className: "block text-sm text-secondary-500 truncate", children: userMenu.userEmail })
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, import_jsx_runtime36.jsx)("ul", { className: "py-2", children: userMenu.menuItems.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
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, import_jsx_runtime36.jsx)(ITText, { as: "span", children: item.label })
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, import_jsx_runtime36.jsxs)("div", { className: "flex-1 flex overflow-hidden relative", children: [
6382
- (showSidebar || showSidebarOnMobile) && /* @__PURE__ */ (0, import_jsx_runtime36.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_runtime36.jsx)("div", { className: "h-full overflow-y-auto py-4 px-3", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("ul", { className: "space-y-2 font-medium", children: sidebarItems }) }) }),
6383
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("main", { className: "flex-1 bg-secondary-100 overflow-y-auto", children })
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, import_jsx_runtime36.jsxs)("div", { className: "flex h-screen font-sans", style: { backgroundColor: theme.layout.backgroundColor }, children: [
6390
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
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, import_jsx_runtime36.jsxs)("div", { className: "p-6 flex items-center gap-3", style: { borderBottom: `1px solid ${sidebar.borderColor}` }, children: [
6397
- logo && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "h-8 w-auto object-contain transition-transform hover:scale-105", children: logo }),
6398
- logoText && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ITText, { as: "span", className: "text-lg font-bold tracking-wide", style: { color: sidebar.active.color }, children: logoText })
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, import_jsx_runtime36.jsx)("nav", { className: "flex-1 px-4 py-6 overflow-y-auto custom-scrollbar", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("ul", { className: "flex flex-col gap-1.5", children: navigationItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("li", { children: [
6401
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
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, import_jsx_runtime36.jsxs)("div", { className: "flex items-center gap-3", children: [
6425
- item.icon && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "text-xl transition-colors", style: {
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, import_jsx_runtime36.jsx)(ITText, { as: "span", className: `font-medium text-sm ${item.isActive ? "font-semibold" : ""}`, children: item.label })
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, import_jsx_runtime36.jsx)("div", { className: "transition-transform", style: { color: sidebar.icon.color }, children: expandedItems.has(item.id) ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_fa20.FaChevronDown, { className: "w-3 h-3" }) : /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_fa20.FaChevronRight, { className: "w-3 h-3" }) })
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, import_jsx_runtime36.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_runtime36.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
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, import_jsx_runtime36.jsx)(ITText, { as: "span", children: subitem.label })
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, import_jsx_runtime36.jsx)("div", { className: "p-4", style: { borderTop: `1px solid ${sidebar.borderColor}` }, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "relative", children: [
6458
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
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, import_jsx_runtime36.jsx)(
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, import_jsx_runtime36.jsx)(
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, import_jsx_runtime36.jsx)(import_fa20.FaUserCircle, { className: "w-6 h-6" })
6542
+ children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_fa20.FaUserCircle, { className: "w-6 h-6" })
6488
6543
  }
6489
6544
  ),
6490
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex-1 text-left overflow-hidden", children: [
6491
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ITText, { as: "div", className: "font-medium text-sm truncate", style: { color: sidebar.active.color }, children: userMenu.userName }),
6492
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ITText, { as: "div", className: "text-xs truncate", style: { color: sidebar.label.color }, children: userMenu.userEmail })
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, import_jsx_runtime36.jsx)(import_fa20.FaChevronRight, { className: "w-3 h-3", style: { color: sidebar.icon.color } })
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, import_jsx_runtime36.jsxs)(
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, import_jsx_runtime36.jsxs)("div", { className: "px-4 py-3", style: { backgroundColor: topbar.userMenu.backgroundColor, borderBottom: `1px solid ${topbar.userMenu.dropdown.borderColor}` }, children: [
6506
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ITText, { as: "span", className: "block text-sm font-semibold", style: { color: topbar.userMenu.textColor }, children: userMenu.userName }),
6507
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ITText, { as: "span", className: "block text-xs truncate", style: { color: topbar.userMenu.subtitleColor }, children: userMenu.userEmail })
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, import_jsx_runtime36.jsx)("ul", { className: "py-1", children: userMenu.menuItems.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
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, import_jsx_runtime36.jsx)(ITText, { as: "span", children: item.label })
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, import_jsx_runtime36.jsx)("main", { className: "flex-1 overflow-y-auto relative", style: { backgroundColor: theme.layout.backgroundColor }, children })
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 import_jsx_runtime37 = require("react/jsx-runtime");
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, import_jsx_runtime37.jsxs)("div", { className: `${className} space-y-3`, children: [
6556
- showTopRow && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-center justify-between gap-4", children: [
6557
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-center gap-2 min-w-0", children: [
6558
- backAction && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
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, import_jsx_runtime37.jsx)(import_fa21.FaChevronLeft, { size: 14 })
6619
+ children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_fa21.FaChevronLeft, { size: 14 })
6565
6620
  }
6566
6621
  ),
6567
- breadcrumbs && breadcrumbs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ITBreadcrumbs, { items: breadcrumbs })
6622
+ breadcrumbs && breadcrumbs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(ITBreadcrumbs, { items: breadcrumbs })
6568
6623
  ] }),
6569
- actions && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "flex items-center gap-3 flex-shrink-0", children: actions })
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, import_jsx_runtime37.jsxs)("div", { className: "flex items-start justify-between gap-6", children: [
6572
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-start gap-4 min-w-0", children: [
6573
- icon && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
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, import_jsx_runtime37.jsxs)("div", { className: "min-w-0", children: [
6582
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
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, import_jsx_runtime37.jsx)(
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, import_jsx_runtime37.jsx)("div", { className: "flex items-center gap-3 flex-shrink-0", children: actions })
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 import_jsx_runtime38 = require("react/jsx-runtime");
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, import_jsx_runtime38.jsx)(import_jsx_runtime38.Fragment, { children: items.map((i) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
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 import_jsx_runtime39 = require("react/jsx-runtime");
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, import_jsx_runtime39.jsx)(
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, import_jsx_runtime39.jsxs)(import_react32.Fragment, { children: [
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 import_jsx_runtime40 = require("react/jsx-runtime");
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, import_jsx_runtime40.jsx)(
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, import_jsx_runtime40.jsxs)("div", { className: wrapperClass, children: [
6812
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: wrapperClass, children: [
6758
6813
  renderHeader(props),
6759
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(ITStack, { spacing: 6, children: [
6760
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ITSkeleton, { variant: "rectangular", height: 40, width: "40%", className: "rounded-lg" }),
6761
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ITSkeleton, { variant: "rectangular", height: 200, className: "rounded-lg" }),
6762
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ITSkeleton, { variant: "rectangular", height: 200, className: "rounded-lg" })
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, import_jsx_runtime40.jsxs)("div", { className: wrapperClass, children: [
6822
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: wrapperClass, children: [
6768
6823
  renderHeader(props),
6769
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
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, import_jsx_runtime40.jsx)(
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, import_jsx_runtime40.jsxs)("div", { className: wrapperClass, children: [
6842
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: wrapperClass, children: [
6788
6843
  renderHeader(props),
6789
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
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, import_jsx_runtime40.jsxs)("div", { className: wrapperClass, children: [
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 import_jsx_runtime41 = require("react/jsx-runtime");
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, import_jsx_runtime41.jsxs)("div", { ref, className: (0, import_clsx34.default)("relative inline-flex", className), children: [
6832
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { onClick: () => isControlled ? onClose?.() : setInternalOpen((p) => !p), className: "cursor-pointer", children: trigger }),
6833
- open && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: (0, import_clsx34.default)("absolute z-[70]", positionClasses[position]), children: /* @__PURE__ */ (0, import_jsx_runtime41.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 }) })
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 import_jsx_runtime42 = require("react/jsx-runtime");
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, import_jsx_runtime42.jsx)(
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, import_jsx_runtime42.jsx)(
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 import_jsx_runtime43 = require("react/jsx-runtime");
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, import_jsx_runtime43.jsx)(
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, import_jsx_runtime43.jsxs)(
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, import_jsx_runtime43.jsx)(
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, import_jsx_runtime43.jsx)(
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, import_jsx_runtime43.jsx)("div", { className: "w-2 h-2 rounded-full bg-primary-500" })
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, import_jsx_runtime43.jsx)(ITText, { as: "span", className: "text-sm text-slate-700 dark:text-slate-300", children: opt.label })
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 import_jsx_runtime44 = require("react/jsx-runtime");
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, import_jsx_runtime44.jsxs)("div", { className: `relative flex-1 ${className}`, children: [
6966
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_fa22.FaSearch, { className: "h-5 w-5 text-secondary-400" }) }),
6967
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
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 import_jsx_runtime45 = require("react/jsx-runtime");
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, import_jsx_runtime45.jsxs)(
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, import_jsx_runtime45.jsx)(import_fa23.FaSortUp, { className: "w-4 h-4 text-slate-500" }) : /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_fa23.FaSortDown, { className: "w-4 h-4 text-slate-500" }) : /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_fa23.FaSort, { className: "w-4 h-4 text-secondary-500" }),
6999
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(ITText, { as: "span", className: "text-sm font-medium text-secondary-700", children: sortConfig ? sortConfig.direction === "asc" ? "Asc \u2191" : "Desc \u2193" : "Ordenar" })
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 import_jsx_runtime46 = require("react/jsx-runtime");
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, import_jsx_runtime46.jsx)("div", { className: "bg-secondary-50 px-6 py-4 border-b border-secondary-200", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex items-center gap-4", children: [
7016
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
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, import_jsx_runtime46.jsx)(SortButton, { sortConfig, onClick: onGlobalSort }),
7025
- searchTerm && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
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, import_jsx_runtime46.jsx)(ITText, { as: "span", children: "Limpiar" })
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 import_jsx_runtime47 = require("react/jsx-runtime");
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, import_jsx_runtime47.jsx)("th", { className, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "flex flex-col items-center gap-2 w-full", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-center justify-center gap-2 w-full", children: [
7050
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
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, import_jsx_runtime47.jsx)(SortButton, { sortConfig, onClick: onSort })
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 import_jsx_runtime48 = require("react/jsx-runtime");
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, import_jsx_runtime48.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("tr", { className: "bg-white border-b border-secondary-200", children: columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
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 import_jsx_runtime49 = require("react/jsx-runtime");
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, import_jsx_runtime49.jsx)(
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, import_jsx_runtime49.jsx)(
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, import_jsx_runtime49.jsx)(
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, import_jsx_runtime49.jsx)(
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, import_jsx_runtime49.jsxs)("div", { className: "w-full", children: [
7259
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "w-full", children: [
7205
7260
  renderInput(),
7206
- error && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "text-danger-500 text-xs mt-1", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ITText, { as: "span", children: error }) })
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 import_jsx_runtime50 = require("react/jsx-runtime");
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, import_jsx_runtime50.jsx)(
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, import_jsx_runtime50.jsx)(import_fa24.FaTimes, { className: "text-danger-500", "aria-label": "Falso", title: "Falso" });
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, import_jsx_runtime50.jsx)(
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, import_jsx_runtime50.jsx)(
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, import_jsx_runtime50.jsx)(
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, import_jsx_runtime50.jsx)(
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 import_jsx_runtime51 = require("react/jsx-runtime");
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, import_jsx_runtime51.jsx)("tr", { children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("td", { colSpan, className: "px-6 py-4 text-center", children: searchTerm ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ITText, { as: "span", children: "No se encontraron resultados para tu b\xFAsqueda" }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ITText, { as: "span", children: "No se encontraron resultados" }) }) });
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 import_jsx_runtime52 = require("react/jsx-runtime");
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, import_jsx_runtime52.jsxs)(ITText, { as: "span", className: `text-sm text-secondary-700 ${className}`, children: [
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 import_jsx_runtime53 = require("react/jsx-runtime");
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, import_jsx_runtime53.jsxs)("div", { className: "flex flex-col sm:flex-row justify-between items-center gap-4", children: [
7358
- /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex items-center space-x-4", children: [
7359
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PaginationInfo, { currentCount, totalCount }),
7360
- /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex items-center space-x-2", children: [
7361
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(ITText, { as: "span", className: "text-sm text-secondary-700", children: "Mostrar:" }),
7362
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
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, import_jsx_runtime53.jsxs)("div", { className: "flex items-center space-x-2", children: [
7381
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
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, import_jsx_runtime53.jsx)(import_fa25.FaArrowLeft, { "aria-hidden": "true" })
7446
+ children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_fa25.FaArrowLeft, { "aria-hidden": "true" })
7392
7447
  }
7393
7448
  ),
7394
- /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(ITText, { as: "span", className: "px-4 py-2 text-sm text-secondary-700", "aria-live": "polite", children: [
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, import_jsx_runtime53.jsx)(
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, import_jsx_runtime53.jsx)(import_fa25.FaArrowRight, { "aria-hidden": "true" })
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 import_jsx_runtime54 = require("react/jsx-runtime");
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, import_jsx_runtime54.jsxs)("div", { className: (0, import_clsx38.default)("space-y-4 w-full", containerClassName), children: [
7484
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "shadow-md sm:rounded-lg overflow-hidden", children: [
7485
- title && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "bg-teal-500 text-white px-6 py-4", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(ITText, { as: "h2", className: "text-xl font-bold text-center whitespace-nowrap", children: title }) }),
7486
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "bg-white", children: [
7487
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "p-4 border-b border-secondary-200", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
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, import_jsx_runtime54.jsx)("div", { className: "overflow-x-auto", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
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, import_jsx_runtime54.jsx)(
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, import_jsx_runtime54.jsx)("tbody", { children: data.length > 0 ? data.map((row, rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
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, import_jsx_runtime54.jsx)(
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, import_jsx_runtime54.jsx)(
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 import_jsx_runtime55 = require("react/jsx-runtime");
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, import_jsx_runtime55.jsx)(
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, import_jsx_runtime55.jsxs)(
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, import_jsx_runtime55.jsx)("span", { children: opt.icon }),
7599
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ITText, { as: "span", children: opt.label })
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 import_jsx_runtime56 = require("react/jsx-runtime");
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, import_jsx_runtime56.jsx)("li", { className: "relative", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
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, import_jsx_runtime56.jsx)(
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, import_jsx_runtime56.jsx)(
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, import_jsx_runtime56.jsx)(ITText, { as: "span", className: "truncate", children: subitem.label })
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, import_jsx_runtime56.jsxs)("li", { className: "relative", children: [
7756
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { id: headingId, className: "px-3 pt-2.5 pb-1 mt-1", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
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, import_jsx_runtime56.jsx)("ul", { "aria-labelledby": headingId, className: "flex flex-col gap-0", children: group.items.map(renderSubItem) })
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, import_jsx_runtime56.jsxs)(
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, import_jsx_runtime56.jsx)("div", { className: "px-4 pt-4 pb-1 flex-shrink-0", children: header }),
7795
- /* @__PURE__ */ (0, import_jsx_runtime56.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_runtime56.jsx)("ul", { className: "space-y-1", children: navigationItems.map((item) => {
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, import_jsx_runtime56.jsxs)("li", { className: "relative group/navitem", children: [
7799
- /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
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, import_jsx_runtime56.jsx)(
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, import_jsx_runtime56.jsxs)("div", { className: `flex items-center ${!isSidebarCollapsed ? "gap-2.5" : "justify-center"} relative z-10 w-full`, children: [
7839
- item.icon && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
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, import_jsx_runtime56.jsx)(
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, import_jsx_runtime56.jsx)(
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, import_jsx_runtime56.jsx)(import_fa26.FaChevronDown, { className: "w-3 h-3" })
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, import_jsx_runtime56.jsx)(
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, import_jsx_runtime56.jsxs)(
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, import_jsx_runtime56.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: [
7904
- item.icon && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { style: { color: "var(--it-sidebar-active-icon, var(--color-primary-500))" }, className: "text-xl drop-shadow-sm", children: item.icon }),
7905
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(ITText, { as: "span", className: "tracking-wide text-[15px]", children: item.label })
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, import_jsx_runtime56.jsx)("div", { className: "py-2", children: flattenSubItems(item.subitems).map((subitem) => /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
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, import_jsx_runtime56.jsx)(
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, import_jsx_runtime56.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))" } }),
7923
- /* @__PURE__ */ (0, import_jsx_runtime56.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 })
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, import_jsx_runtime56.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" })
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, import_jsx_runtime56.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_runtime56.jsx)(
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 import_jsx_runtime57 = require("react/jsx-runtime");
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, import_jsx_runtime57.jsx)(
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, import_jsx_runtime57.jsx)(
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 import_jsx_runtime58 = require("react/jsx-runtime");
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, import_jsx_runtime58.jsxs)("div", { className: (0, import_clsx41.default)("flex flex-col gap-1.5", className), children: [
8054
- label && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(ITText, { as: "label", className: "text-xs font-semibold text-secondary-600 dark:text-secondary-400", children: [
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, import_jsx_runtime58.jsx)("div", { className: "relative w-full h-5 flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
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 import_jsx_runtime59 = require("react/jsx-runtime");
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, import_jsx_runtime59.jsxs)(
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, import_jsx_runtime59.jsxs)("div", { className: "flex items-start justify-between mb-1", children: [
8117
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(ITText, { as: "span", className: "text-xs font-medium text-slate-400 dark:text-slate-500", children: label }),
8118
- icon && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "text-slate-400", children: icon })
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, import_jsx_runtime59.jsxs)("div", { className: "flex items-baseline gap-2", children: [
8121
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(ITText, { as: "span", className: "text-2xl font-bold text-slate-800 dark:text-white", children: value }),
8122
- trend && /* @__PURE__ */ (0, import_jsx_runtime59.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 })
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 import_jsx_runtime60 = require("react/jsx-runtime");
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, import_jsx_runtime60.jsx)(
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, import_jsx_runtime60.jsx)("div", { className: "relative w-10 h-5 bg-secondary-300 rounded-full", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
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, import_jsx_runtime60.jsx)(
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, import_jsx_runtime60.jsx)(ITText, { as: "span", className: "text-danger-500 text-xs", children: "Error cargando" });
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, import_jsx_runtime60.jsx)(
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, import_jsx_runtime60.jsx)(
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, import_jsx_runtime60.jsx)(ITText, { as: "span", className: "text-danger-500 text-xs", children: "Error cargando" });
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, import_jsx_runtime60.jsx)(
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, import_jsx_runtime60.jsx)(
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, import_jsx_runtime60.jsx)(
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, import_jsx_runtime60.jsx)(
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, import_jsx_runtime60.jsx)(
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, import_jsx_runtime60.jsx)(
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, import_jsx_runtime60.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: [
8474
- dataCols.map((col) => /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [
8475
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "text-[10px] font-bold uppercase tracking-wider text-slate-400 whitespace-nowrap flex-shrink-0 min-w-[70px]", children: col.label }),
8476
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "text-sm font-medium text-slate-800 dark:text-white text-right truncate", children: renderCellContent(col, row) })
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, import_jsx_runtime60.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) })
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, import_jsx_runtime60.jsx)("div", { ref: rootRef, className: (0, import_clsx43.default)("space-y-4 w-full", containerClassName), children: /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: tableContainer, style: { backgroundColor: "var(--color-table-rowBg, #ffffff)" }, children: [
8493
- title && /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "px-6 py-5 flex items-center justify-between", style: { backgroundColor: "var(--color-table-rowBg, #ffffff)" }, children: [
8494
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ITText, { as: "h2", className: "text-xl font-bold text-secondary-900 leading-tight", children: title }),
8495
- /* @__PURE__ */ (0, import_jsx_runtime60.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: [
8496
- /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
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, import_jsx_runtime60.jsx)(import_fa27.FaTable, { size: 11 }),
8558
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_fa27.FaTable, { size: 11 }),
8504
8559
  "Table"
8505
8560
  ]
8506
8561
  }
8507
8562
  ),
8508
- /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
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, import_jsx_runtime60.jsx)(import_fa27.FaThLarge, { size: 11 }),
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, import_jsx_runtime60.jsx)("div", { className: "flex justify-end px-4 pt-3", children: /* @__PURE__ */ (0, import_jsx_runtime60.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: [
8522
- /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
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, import_jsx_runtime60.jsx)(import_fa27.FaTable, { size: 11 }),
8584
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_fa27.FaTable, { size: 11 }),
8530
8585
  "Table"
8531
8586
  ]
8532
8587
  }
8533
8588
  ),
8534
- /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
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, import_jsx_runtime60.jsx)(import_fa27.FaThLarge, { size: 11 }),
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, import_jsx_runtime60.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_runtime60.jsx)(
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, import_jsx_runtime60.jsxs)("div", { className: (0, import_clsx43.default)(tableEmptyContent, "py-12"), children: [
8558
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ITText, { as: "span", className: "text-lg", children: "No se encontraron resultados" }),
8559
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ITText, { as: "span", className: "text-sm mt-1", children: "Intenta ajustar los filtros" })
8560
- ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
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, import_jsx_runtime60.jsxs)(
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, import_jsx_runtime60.jsx)("colgroup", { children: columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
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, import_jsx_runtime60.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
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, import_jsx_runtime60.jsx)(
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, import_jsx_runtime60.jsxs)("div", { className: isFixed ? "flex flex-col gap-3" : "flex flex-col gap-3 min-w-[150px]", children: [
8612
- /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex items-center justify-between gap-2", children: [
8613
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ITText, { as: "span", className: "text-slate-900 dark:text-white font-bold", children: col.label }),
8614
- col.sortable && col.type !== "actions" && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
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, import_jsx_runtime60.jsx)(import_md2.MdOutlineSwapVert, { className: "w-4 h-4", "aria-hidden": "true" })
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, import_jsx_runtime60.jsx)("div", { className: "w-full", children: col.filter ? renderFilterInput(col) : null })
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, import_jsx_runtime60.jsx)("tbody", { className: (0, import_clsx43.default)(tableBody, "dark:divide-slate-700/30"), children: currentData.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_jsx_runtime60.Fragment, { children: [
8633
- isTableVirtual && topSpacerHeight > 0 && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("tr", { "aria-hidden": "true", style: { height: topSpacerHeight }, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("td", { colSpan: columnCount, style: { padding: 0, border: 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, import_jsx_runtime60.jsx)(
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, import_jsx_runtime60.jsx)(
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, import_jsx_runtime60.jsx)("div", { className: tableActionsCell, children: renderCellContent(col, row) }) : /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: (0, import_clsx43.default)(tableCellText, col.truncate && "truncate"), children: renderCellContent(col, row) })
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, import_jsx_runtime60.jsx)("tr", { "aria-hidden": "true", style: { height: bottomSpacerHeight }, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("td", { colSpan: columnCount, style: { padding: 0, border: 0 } }) })
8678
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("tr", { children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("td", { colSpan: columns.length, className: "px-6 py-12 text-center", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: tableEmptyContent, children: [
8679
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ITText, { as: "span", className: "text-lg", children: "No se encontraron resultados" }),
8680
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ITText, { as: "span", className: "text-sm mt-1", children: "Intenta ajustar los filtros" })
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, import_jsx_runtime60.jsx)("div", { className: "rounded-b-xl px-6 py-4", style: { backgroundColor: "var(--color-table-rowBg, #ffffff)" }, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
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 import_jsx_runtime61 = require("react/jsx-runtime");
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, import_jsx_runtime61.jsxs)("div", { className: (0, import_clsx44.default)("flex flex-col gap-1.5", className), children: [
8726
- label && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ITText, { as: "label", className: inputLabel(!!error), htmlFor: name, children: label }),
8727
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
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, import_jsx_runtime61.jsx)(ITText, { as: "span", className: inputError, children: error })
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 import_jsx_runtime62 = require("react/jsx-runtime");
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, import_jsx_runtime62.jsxs)("div", { className: (0, import_clsx45.clsx)("w-full", containerClassName), children: [
8771
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: (0, import_clsx45.clsx)(
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, import_jsx_runtime62.jsxs)(
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, import_jsx_runtime62.jsx)("span", { className: "w-4 h-4", children: item.icon }),
8798
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(ITText, { as: "span", children: item.label })
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, import_jsx_runtime62.jsx)("div", { className: "tab-content animate-fadeIn", children: activeContent })
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 import_jsx_runtime63 = require("react/jsx-runtime");
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, import_jsx_runtime63.jsx)(
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, import_jsx_runtime63.jsx)(
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, import_jsx_runtime63.jsx)(ITText, { as: "span", children: option.label })
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 import_jsx_runtime64 = require("react/jsx-runtime");
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, import_jsx_runtime64.jsx)(import_fa28.FaCheckCircle, { className: "w-5 h-5 flex-shrink-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, import_jsx_runtime64.jsx)(import_fa28.FaTimesCircle, { className: "w-5 h-5 flex-shrink-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, import_jsx_runtime64.jsx)(import_fa28.FaExclamationTriangle, { className: "w-5 h-5 flex-shrink-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, import_jsx_runtime64.jsx)(import_fa28.FaInfoCircle, { className: "w-5 h-5 flex-shrink-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, import_jsx_runtime64.jsxs)(
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, import_jsx_runtime64.jsxs)("div", { className: "flex items-center gap-3", children: [
8922
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(TypeIcon, {}),
8923
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(ITText, { as: "span", className: "font-medium text-sm sm:text-base leading-snug", children: message })
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, import_jsx_runtime64.jsx)(
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, import_jsx_runtime64.jsx)(import_fa28.FaTimes, { className: "w-4 h-4" })
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 import_jsx_runtime65 = require("react/jsx-runtime");
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, import_jsx_runtime65.jsxs)(
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, import_jsx_runtime65.jsxs)("div", { className: (0, import_clsx48.default)("absolute z-[70] pointer-events-none", positionClasses2[position]), children: [
8996
- /* @__PURE__ */ (0, import_jsx_runtime65.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_runtime65.jsx)(ITText, { as: "span", children: content }) }),
8997
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: (0, import_clsx48.default)("absolute", arrowClasses[position]) })
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 import_jsx_runtime66 = require("react/jsx-runtime");
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, import_jsx_runtime66.jsx)(import_fa29.FaBold, {}) },
9009
- italic: { label: "It\xE1lica", icon: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_fa29.FaItalic, {}) },
9010
- underline: { label: "Subrayado", icon: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_fa29.FaUnderline, {}) },
9011
- highlight: { label: "Marcador", icon: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_fa29.FaHighlighter, {}) },
9012
- ul: { label: "Lista con vi\xF1etas", icon: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_fa29.FaListUl, {}) },
9013
- ol: { label: "Lista numerada", icon: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_fa29.FaListOl, {}) },
9014
- clear: { label: "Limpiar formato", icon: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_fa29.FaEraser, {}) }
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, import_jsx_runtime66.jsx)(ITTooltip, { content: meta.label, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
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, import_jsx_runtime66.jsxs)("div", { className: inputWrapper(className), children: [
9451
- label && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(ITText, { as: "label", className: inputLabel(!!error), htmlFor: name, children: label }),
9452
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
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, import_jsx_runtime66.jsx)(
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, import_jsx_runtime66.jsxs)("span", { className: "flex items-center", children: [
9469
- i > 0 && (action === "ul" || action === "ol" || action === "clear") && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "mx-1 h-4 w-px bg-secondary-200 dark:bg-slate-600" }),
9470
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(ToolbarButton, { action })
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, import_jsx_runtime66.jsx)(
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, import_jsx_runtime66.jsx)(ITText, { as: "span", className: inputError, children: error })
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 import_jsx_runtime67 = require("react/jsx-runtime");
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, import_jsx_runtime67.jsxs)("div", { className: `inline-flex items-center gap-2 px-2.5 py-1 rounded-full border ${color}`, children: [
9683
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: `w-2 h-2 rounded-full ${dotColor}` }),
9684
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ITText, { as: "span", className: "text-xs font-medium flex items-center gap-1.5", children: label })
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, import_jsx_runtime67.jsxs)("div", { className: "flex items-center justify-between mb-2", children: [
9776
- /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("label", { className: "block text-sm font-semibold text-secondary-700", children: [
9777
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ITText, { as: "span", children: "Subir archivo " }),
9778
- /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(ITText, { as: "span", className: "text-secondary-400 font-normal text-xs", children: [
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, import_jsx_runtime67.jsx)(StatusBadge, { status: uploadStatus })
9839
+ showStatusBadge && selectedFile && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(StatusBadge, { status: uploadStatus })
9785
9840
  ] });
9786
- const dropZoneOrPreview = /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_jsx_runtime67.Fragment, { children: !selectedFile && !imagePreview ? /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
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, import_jsx_runtime67.jsx)("input", { ...getInputProps() }),
9797
- /* @__PURE__ */ (0, import_jsx_runtime67.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_runtime67.jsx)(
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, import_jsx_runtime67.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" })
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, import_jsx_runtime67.jsx)("div", { className: "text-center space-y-1", children: /* @__PURE__ */ (0, import_jsx_runtime67.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" }) })
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, import_jsx_runtime67.jsxs)("div", { className: "w-full bg-white border border-secondary-200 rounded-xl shadow-sm overflow-hidden animate-fade-in", children: [
9811
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "flex items-center justify-between p-3 bg-secondary-50 border-b border-secondary-100", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex items-center gap-3 overflow-hidden", children: [
9812
- /* @__PURE__ */ (0, import_jsx_runtime67.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_runtime67.jsx)("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime67.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_runtime67.jsx)("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime67.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" }) }) }),
9813
- /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "min-w-0", children: [
9814
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ITText, { as: "p", className: "text-xs font-medium text-secondary-900 truncate", title: selectedFile?.name || "Imagen cargada", children: selectedFile?.name || "Imagen cargada" }),
9815
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ITText, { as: "p", className: "text-[10px] text-secondary-500", children: selectedFile ? (selectedFile.size / 1024 / 1024).toFixed(2) + " MB" : "" })
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, import_jsx_runtime67.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_runtime67.jsx)(
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, import_jsx_runtime67.jsxs)("div", { className: "py-8 flex flex-col items-center text-secondary-400", children: [
9826
- /* @__PURE__ */ (0, import_jsx_runtime67.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_runtime67.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" }) }),
9827
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ITText, { as: "span", className: "text-xs", children: "Sin vista previa" })
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, import_jsx_runtime67.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_runtime67.jsxs)(import_jsx_runtime67.Fragment, { children: [
9830
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
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, import_jsx_runtime67.jsx)(ITText, { children: "Cancelar" })
9893
+ children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { children: "Cancelar" })
9839
9894
  }
9840
9895
  ),
9841
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
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, import_jsx_runtime67.jsxs)("div", { className: "flex items-center gap-2", children: [
9850
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ITText, { children: "Confirmar" }),
9851
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("svg", { className: "w-3 h-3", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) })
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, import_jsx_runtime67.jsxs)(
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, import_jsx_runtime67.jsx)("svg", { className: "w-3 h-3", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime67.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" }) }),
9865
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ITText, { children: "Eliminar" })
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, import_jsx_runtime67.jsx)("div", { className: "px-4 pb-2", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "w-full bg-secondary-200 rounded-full h-1.5", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
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, import_jsx_runtime67.jsxs)("div", { className: (0, import_clsx50.default)("inline-block", containerClassName), children: [
9883
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
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, import_jsx_runtime67.jsxs)("div", { className: "flex items-center gap-2 max-w-[220px]", children: [
9892
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("svg", { className: "w-4 h-4 flex-shrink-0", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime67.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" }) }),
9893
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ITText, { className: "truncate", children: selectedFile?.name || (hasFile ? "Archivo cargado" : buttonLabel) }),
9894
- showStatusBadge && hasFile && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(StatusBadge, { status: uploadStatus })
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, import_jsx_runtime67.jsx)(ITDialog, { isOpen: isModalOpen, onClose: () => setIsModalOpen(false), title: modalTitle ?? buttonLabel, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "w-full transition-all duration-300", children: [
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, import_jsx_runtime67.jsxs)("div", { className: (0, import_clsx50.default)("w-full transition-all duration-300", containerClassName), children: [
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 import_jsx_runtime68 = require("react/jsx-runtime");
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, import_jsx_runtime68.jsx)(
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, import_jsx_runtime68.jsxs)("div", { className: "flex items-center justify-between h-[72px] px-6 lg:px-8", children: [
9943
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex items-center gap-5", children: [
9944
- showMobileMenuButton && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
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, import_jsx_runtime68.jsx)(import_fa30.FaBars, { className: "w-[1.125rem] h-[1.125rem]" })
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, import_jsx_runtime68.jsxs)("div", { className: "flex items-center gap-3", children: [
9958
- logo && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "flex-shrink-0 drop-shadow-sm", children: logo }),
9959
- logoText && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
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, import_jsx_runtime68.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_runtime68.jsx)(
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, import_jsx_runtime68.jsxs)("div", { className: "flex items-center gap-2", children: [
9984
- item.icon && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "opacity-70", children: item.icon }),
9985
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { as: "span", children: item.label })
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, import_jsx_runtime68.jsx)("div", { className: "hidden lg:flex flex-1 min-w-0 items-center justify-center px-4", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "w-full max-w-[420px]", children: centerContent }) }),
9992
- (children || userMenu) && /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex items-center gap-2", children: [
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, import_jsx_runtime68.jsxs)("div", { className: "relative", children: [
9995
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
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, import_jsx_runtime68.jsxs)("div", { className: "relative", children: [
10012
- userMenu.userImage ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
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, import_jsx_runtime68.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_runtime68.jsx)(import_fa30.FaUserCircle, { className: "w-6 h-6", style: { color: "var(--it-topbar-icon, #94a3b8)" } }) }),
10020
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "absolute bottom-0 right-0 w-2.5 h-2.5 bg-green-500 border-2 border-white rounded-full" })
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, import_jsx_runtime68.jsxs)("div", { className: "hidden sm:flex flex-col text-left py-0.5", children: [
10023
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
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, import_jsx_runtime68.jsx)(
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, import_jsx_runtime68.jsxs)(
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, import_jsx_runtime68.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: [
10059
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { as: "span", className: "block font-bold text-[0.9rem]", style: { color: "var(--it-topbar-user-text, #0f172a)" }, children: userMenu.userName }),
10060
- /* @__PURE__ */ (0, import_jsx_runtime68.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 })
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, import_jsx_runtime68.jsx)("ul", { className: "py-2", children: userMenu.menuItems.map((m, i) => {
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, import_jsx_runtime68.jsxs)("li", { className: "px-2", children: [
10065
- i === userMenu.menuItems.length - 1 && isDestructive && i > 0 && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "h-px bg-slate-100 my-1 mx-2" }),
10066
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
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, import_jsx_runtime68.jsx)(ITText, { as: "span", children: m.label })
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 import_jsx_runtime69 = require("react/jsx-runtime");
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, import_jsx_runtime69.jsxs)("div", { className: `flex flex-col h-screen overflow-hidden w-full ${className}`, children: [
10113
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
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, import_jsx_runtime69.jsxs)(
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, import_jsx_runtime69.jsxs)("div", { className: "hidden lg:block relative z-40 h-full", children: [
10128
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
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, import_jsx_runtime69.jsx)("div", { className: "absolute top-0 left-0 h-full", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
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, import_jsx_runtime69.jsx)(
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, import_jsx_runtime69.jsx)(
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, import_jsx_runtime69.jsx)(
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, import_jsx_runtime69.jsx)("main", { className: "flex-1 overflow-y-auto w-full custom-scrollbar relative z-0", children: /* @__PURE__ */ (0, import_jsx_runtime69.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 }) })
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 import_jsx_runtime70 = require("react/jsx-runtime");
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, import_jsx_runtime70.jsx)(
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, import_jsx_runtime70.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..." })
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, import_jsx_runtime70.jsx)(
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, import_jsx_runtime70.jsx)(
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, import_jsx_runtime70.jsx)(
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, import_jsx_runtime70.jsx)(
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, import_jsx_runtime70.jsx)(
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 import_jsx_runtime71 = require("react/jsx-runtime");
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, import_jsx_runtime71.jsx)(import_fa31.FaCheck, { className: "w-4 h-4" });
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, import_jsx_runtime71.jsx)("div", { className: "flex items-center justify-center w-5 h-5", children: step.icon });
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, import_jsx_runtime71.jsx)(ITText, { as: "span", className: "text-sm font-semibold", children: index + 1 });
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, import_jsx_runtime71.jsxs)("div", { className: (0, import_clsx52.default)("w-full max-w-5xl mx-auto px-4", containerClassName), children: [
10342
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "relative mb-8", children: [
10343
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
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, import_jsx_runtime71.jsx)(
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, import_jsx_runtime71.jsx)("div", { className: "flex items-start justify-between space-x-2 relative z-20", children: steps.map((step, idx) => {
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, import_jsx_runtime71.jsx)(
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, import_jsx_runtime71.jsxs)("div", { className: "flex flex-col items-center", children: [
10373
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
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, import_jsx_runtime71.jsx)(
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, import_jsx_runtime71.jsx)(
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, import_jsx_runtime71.jsxs)("div", { className: "flex justify-between items-center mt-6", children: [
10422
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
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, import_jsx_runtime71.jsxs)("div", { className: "flex items-center gap-2", children: [
10430
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_fa31.FaChevronLeft, {}),
10431
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(ITText, { as: "span", children: "Atr\xE1s" })
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, import_jsx_runtime71.jsxs)("div", { className: "flex items-center gap-3", children: [
10436
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(ITText, { as: "div", className: "text-sm text-secondary-500 mr-2 hidden sm:block", children: [
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, import_jsx_runtime71.jsx)(
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, import_jsx_runtime71.jsxs)("div", { className: "flex items-center gap-2", children: [
10450
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(ITText, { as: "span", children: currentStep === steps.length - 1 ? "Finalizar" : "Siguiente" }),
10451
- currentStep === steps.length - 1 ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_fa31.FaCheck, {}) : /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_fa31.FaChevronRight, {})
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 import_jsx_runtime72 = require("react/jsx-runtime");
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, import_jsx_runtime72.jsxs)(
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, import_jsx_runtime72.jsxs)("div", { className: "flex items-center gap-3 flex-1 min-w-0", children: [
12036
- /* @__PURE__ */ (0, import_jsx_runtime72.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: [
12037
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
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, import_jsx_runtime72.jsx)("div", { className: "w-full h-full", style: { backgroundColor: value } })
12101
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "w-full h-full", style: { backgroundColor: value } })
12047
12102
  ] }),
12048
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex flex-col min-w-0", children: [
12049
- /* @__PURE__ */ (0, import_jsx_runtime72.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() }),
12050
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex items-center gap-2 mt-0.5", children: [
12051
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
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, import_jsx_runtime72.jsx)(ITText, { as: "span", className: "font-mono text-[11px] text-slate-400", children: value })
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, import_jsx_runtime72.jsx)(
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, import_jsx_runtime72.jsxs)(
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, import_jsx_runtime72.jsx)(
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, import_jsx_runtime72.jsx)(import_md3.MdClose, { size: 12 })
12152
+ children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_md3.MdClose, { size: 12 })
12098
12153
  }
12099
12154
  ),
12100
- /* @__PURE__ */ (0, import_jsx_runtime72.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 }),
12101
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { className: "flex gap-1", children: ["primary", "secondary", "ternary", "success"].map((c) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
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, import_jsx_runtime72.jsxs)(
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, import_jsx_runtime72.jsx)(
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, import_jsx_runtime72.jsx)(import_md3.MdPalette, { size: 28 })
12191
+ children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_md3.MdPalette, { size: 28 })
12137
12192
  }
12138
12193
  ),
12139
- showFab && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
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, import_jsx_runtime72.jsxs)("div", { className: "flex gap-6 h-[580px]", children: [
12147
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "w-64 flex-shrink-0 flex flex-col gap-5 overflow-y-auto pr-1", children: [
12148
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { children: [
12149
- /* @__PURE__ */ (0, import_jsx_runtime72.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" }),
12150
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
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, import_jsx_runtime72.jsxs)("div", { children: [
12165
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { className: "flex items-center justify-between mb-2.5", children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ITText, { as: "span", className: "text-[11px] font-bold uppercase tracking-wider text-slate-400 dark:text-slate-500", children: "Presets" }) }),
12166
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { className: "grid grid-cols-2 gap-2", children: PRESETS.map((preset) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(PresetCard, { preset }, preset.name)) })
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, import_jsx_runtime72.jsxs)("div", { children: [
12169
- /* @__PURE__ */ (0, import_jsx_runtime72.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" }),
12170
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { className: "flex flex-col gap-1.5", children: customPresets.map((preset) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(PresetCard, { preset, isCustom: true }, preset.name)) })
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, import_jsx_runtime72.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: [
12173
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
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, import_jsx_runtime72.jsxs)("div", { className: "flex gap-2", children: [
12192
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
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, import_jsx_runtime72.jsx)(
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, import_jsx_runtime72.jsx)(
12272
+ !isSavingPreset && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
12218
12273
  ITButton,
12219
12274
  {
12220
12275
  variant: "outlined",
12221
- icon: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_md3.MdPalette, { size: 14 }),
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, import_jsx_runtime72.jsx)(
12282
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
12228
12283
  ITButton,
12229
12284
  {
12230
12285
  variant: "outlined",
12231
12286
  color: "danger",
12232
- icon: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_md3.MdRefresh, { size: 14 }),
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, import_jsx_runtime72.jsx)(ITDivider, { orientation: "vertical" }),
12240
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex-1 flex flex-col min-w-0", children: [
12241
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
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, import_jsx_runtime72.jsx)("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-3 max-h-[480px] overflow-y-auto pr-2 mt-3", children: [
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, import_jsx_runtime72.jsx)(ColorRow, { colorKey: key }, key)) })
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, import_jsx_runtime72.jsx)("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-3 max-h-[480px] overflow-y-auto pr-2 mt-3", children: [
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, import_jsx_runtime72.jsx)(ColorRow, { colorKey: key }, key)) })
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, import_jsx_runtime72.jsx)("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-3 max-h-[480px] overflow-y-auto pr-2 mt-3", children: [
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, import_jsx_runtime72.jsx)(ColorRow, { colorKey: key }, key)) })
12334
+ ].map((key) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ColorRow, { colorKey: key }, key)) })
12280
12335
  }
12281
12336
  ]
12282
12337
  }
12283
12338
  ),
12284
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex items-center justify-end gap-3 mt-auto pt-4 border-t border-slate-100 dark:border-slate-800", children: [
12285
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ITText, { as: "p", className: "text-[11px] text-slate-400 mr-auto", children: "Los cambios se guardan autom\xE1ticamente" }),
12286
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
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,