framepexls-ui-lib 0.2.8 → 0.2.10

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 (95) hide show
  1. package/dist/AppTopbar.js +1 -1
  2. package/dist/AppTopbar.mjs +1 -1
  3. package/dist/AvatarGroup.js +7 -2
  4. package/dist/AvatarGroup.mjs +7 -2
  5. package/dist/Badge.js +6 -1
  6. package/dist/Badge.mjs +6 -1
  7. package/dist/BadgeCluster.js +1 -1
  8. package/dist/BadgeCluster.mjs +1 -1
  9. package/dist/Breadcrumb.js +46 -2
  10. package/dist/Breadcrumb.mjs +46 -2
  11. package/dist/Button.js +8 -2
  12. package/dist/Button.mjs +8 -2
  13. package/dist/CalendarPanel.js +45 -26
  14. package/dist/CalendarPanel.mjs +45 -26
  15. package/dist/Card.js +7 -2
  16. package/dist/Card.mjs +7 -2
  17. package/dist/Checkbox.js +51 -18
  18. package/dist/Checkbox.mjs +51 -18
  19. package/dist/ColorPicker.js +9 -4
  20. package/dist/ColorPicker.mjs +9 -4
  21. package/dist/ColumnSelector.js +1 -1
  22. package/dist/ColumnSelector.mjs +1 -1
  23. package/dist/ComboSelect.js +11 -4
  24. package/dist/ComboSelect.mjs +11 -4
  25. package/dist/DateTimeField.js +8 -2
  26. package/dist/DateTimeField.mjs +8 -2
  27. package/dist/Dialog.js +2 -2
  28. package/dist/Dialog.mjs +2 -2
  29. package/dist/Drawer.js +2 -2
  30. package/dist/Drawer.mjs +2 -2
  31. package/dist/Dropdown.js +14 -10
  32. package/dist/Dropdown.mjs +14 -10
  33. package/dist/FiltersMultiSelect.js +1 -1
  34. package/dist/FiltersMultiSelect.mjs +1 -1
  35. package/dist/Input.js +23 -0
  36. package/dist/Input.mjs +23 -0
  37. package/dist/KpiCard.js +26 -2
  38. package/dist/KpiCard.mjs +26 -2
  39. package/dist/Link.js +16 -2
  40. package/dist/Link.mjs +16 -2
  41. package/dist/MediaCard.js +18 -11
  42. package/dist/MediaCard.mjs +18 -11
  43. package/dist/MediaSelector.js +9 -8
  44. package/dist/MediaSelector.mjs +9 -8
  45. package/dist/MotionProvider.d.mts +9 -0
  46. package/dist/MotionProvider.d.ts +9 -0
  47. package/dist/MotionProvider.js +29 -0
  48. package/dist/MotionProvider.mjs +9 -0
  49. package/dist/MultiComboSelect.js +6 -4
  50. package/dist/MultiComboSelect.mjs +6 -4
  51. package/dist/Pagination.js +65 -29
  52. package/dist/Pagination.mjs +65 -29
  53. package/dist/ReviewHistory.js +8 -6
  54. package/dist/ReviewHistory.mjs +8 -6
  55. package/dist/SearchInput.js +16 -2
  56. package/dist/SearchInput.mjs +16 -2
  57. package/dist/Select.js +12 -5
  58. package/dist/Select.mjs +12 -5
  59. package/dist/Sidebar.js +23 -5
  60. package/dist/Sidebar.mjs +23 -5
  61. package/dist/StatCard.js +17 -1
  62. package/dist/StatCard.mjs +19 -3
  63. package/dist/Steps.js +51 -37
  64. package/dist/Steps.mjs +51 -37
  65. package/dist/StorageUsage.js +6 -2
  66. package/dist/StorageUsage.mjs +6 -2
  67. package/dist/Table.d.mts +5 -1
  68. package/dist/Table.d.ts +5 -1
  69. package/dist/Table.js +31 -4
  70. package/dist/Table.mjs +30 -4
  71. package/dist/Textarea.js +42 -17
  72. package/dist/Textarea.mjs +43 -18
  73. package/dist/TimePanel.js +1 -1
  74. package/dist/TimePanel.mjs +1 -1
  75. package/dist/TimePopover.js +116 -83
  76. package/dist/TimePopover.mjs +116 -83
  77. package/dist/TimeRangeField.js +1 -1
  78. package/dist/TimeRangeField.mjs +1 -1
  79. package/dist/Toast.js +1 -5
  80. package/dist/Toast.mjs +1 -5
  81. package/dist/Tooltip.js +28 -19
  82. package/dist/Tooltip.mjs +28 -19
  83. package/dist/UploadCard.js +34 -21
  84. package/dist/UploadCard.mjs +34 -21
  85. package/dist/animations-CHrNeawW.d.mts +28 -0
  86. package/dist/animations-CHrNeawW.d.ts +28 -0
  87. package/dist/animations.d.mts +2 -0
  88. package/dist/animations.d.ts +2 -0
  89. package/dist/animations.js +75 -0
  90. package/dist/animations.mjs +42 -0
  91. package/dist/index.d.mts +4 -1
  92. package/dist/index.d.ts +4 -1
  93. package/dist/index.js +8 -0
  94. package/dist/index.mjs +18 -13
  95. package/package.json +4 -4
@@ -146,7 +146,7 @@ function TimeRangeField({ value, onValueChange, portal = true, portalId, clearab
146
146
  setTo(t2);
147
147
  onValueChange == null ? void 0 : onValueChange({ from: f2 ? fmtHHmm(f2.hh, f2.mm) : null, to: t2 ? fmtHHmm(t2.hh, t2.mm) : null });
148
148
  };
149
- const popover = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { "data-trf-pop": true, style: stylePop, className: "w-1/3 overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-xl dark:border-white/10 dark:bg-[#0b0a0a]", children: [
149
+ const popover = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { "data-trf-pop": true, style: stylePop, className: "w-1/3 overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-xl dark:border-white/10 dark:bg-[var(--fx-surface)]", children: [
150
150
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center justify-between gap-2 px-3 py-2 text-sm", children: [
151
151
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "font-medium", children: "Selecciona horario" }),
152
152
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -113,7 +113,7 @@ function TimeRangeField({ value, onValueChange, portal = true, portalId, clearab
113
113
  setTo(t2);
114
114
  onValueChange == null ? void 0 : onValueChange({ from: f2 ? fmtHHmm(f2.hh, f2.mm) : null, to: t2 ? fmtHHmm(t2.hh, t2.mm) : null });
115
115
  };
116
- const popover = /* @__PURE__ */ jsxs("div", { "data-trf-pop": true, style: stylePop, className: "w-1/3 overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-xl dark:border-white/10 dark:bg-[#0b0a0a]", children: [
116
+ const popover = /* @__PURE__ */ jsxs("div", { "data-trf-pop": true, style: stylePop, className: "w-1/3 overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-xl dark:border-white/10 dark:bg-[var(--fx-surface)]", children: [
117
117
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2 px-3 py-2 text-sm", children: [
118
118
  /* @__PURE__ */ jsx("div", { className: "font-medium", children: "Selecciona horario" }),
119
119
  /* @__PURE__ */ jsx(
package/dist/Toast.js CHANGED
@@ -90,10 +90,6 @@ const typeAccent = {
90
90
  progress: "bg-sky-500/60"
91
91
  }
92
92
  };
93
- function useIsomorphicLayoutEffect(effect, deps) {
94
- const useIso = typeof window !== "undefined" ? import_react.default.useLayoutEffect : import_react.default.useEffect;
95
- return useIso(effect, deps);
96
- }
97
93
  function ToastView({ item, onClose, placement }) {
98
94
  var _a;
99
95
  const [hovered, setHovered] = import_react.default.useState(false);
@@ -132,7 +128,7 @@ function ToastView({ item, onClose, placement }) {
132
128
  onMouseEnter,
133
129
  onMouseLeave,
134
130
  className: [
135
- "pointer-events-auto relative w-[380px] max-w-[92vw] overflow-hidden rounded-xl border bg-white p-3 pr-10 shadow-lg dark:bg-[#0b0a0a]",
131
+ "pointer-events-auto relative w-[380px] max-w-[92vw] overflow-hidden rounded-xl border bg-white p-3 pr-10 shadow-lg dark:bg-[var(--fx-surface)]",
136
132
  accent.border
137
133
  ].join(" "),
138
134
  children: [
package/dist/Toast.mjs CHANGED
@@ -55,10 +55,6 @@ const typeAccent = {
55
55
  progress: "bg-sky-500/60"
56
56
  }
57
57
  };
58
- function useIsomorphicLayoutEffect(effect, deps) {
59
- const useIso = typeof window !== "undefined" ? React.useLayoutEffect : React.useEffect;
60
- return useIso(effect, deps);
61
- }
62
58
  function ToastView({ item, onClose, placement }) {
63
59
  var _a;
64
60
  const [hovered, setHovered] = React.useState(false);
@@ -97,7 +93,7 @@ function ToastView({ item, onClose, placement }) {
97
93
  onMouseEnter,
98
94
  onMouseLeave,
99
95
  className: [
100
- "pointer-events-auto relative w-[380px] max-w-[92vw] overflow-hidden rounded-xl border bg-white p-3 pr-10 shadow-lg dark:bg-[#0b0a0a]",
96
+ "pointer-events-auto relative w-[380px] max-w-[92vw] overflow-hidden rounded-xl border bg-white p-3 pr-10 shadow-lg dark:bg-[var(--fx-surface)]",
101
97
  accent.border
102
98
  ].join(" "),
103
99
  children: [
package/dist/Tooltip.js CHANGED
@@ -35,6 +35,8 @@ module.exports = __toCommonJS(Tooltip_exports);
35
35
  var import_jsx_runtime = require("react/jsx-runtime");
36
36
  var import_react = __toESM(require("react"));
37
37
  var import_react_dom = require("react-dom");
38
+ var import_framer_motion = require("framer-motion");
39
+ var import_animations = require("./animations");
38
40
  function Tooltip({ content, placement = "top", delay = 80, offset = 8, className = "", children }) {
39
41
  const [open, setOpen] = import_react.default.useState(false);
40
42
  const [pos, setPos] = import_react.default.useState(null);
@@ -110,26 +112,33 @@ function Tooltip({ content, placement = "top", delay = 80, offset = 8, className
110
112
  },
111
113
  "aria-describedby": open ? id : void 0
112
114
  };
113
- const body = open && pos && typeof document !== "undefined" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
114
- "div",
115
- {
116
- id,
117
- role: "tooltip",
118
- className: [
119
- "pointer-events-none fixed z-[2000] max-w-xs rounded-xl border border-slate-200/80 bg-slate-900/95 px-2.5 py-1.5 text-[12px] text-white shadow-xl backdrop-blur",
120
- "dark:border-white/10 dark:bg-white/10",
121
- className != null ? className : ""
122
- ].join(" "),
123
- style: {
124
- top: placement === "top" || placement === "bottom" ? pos.top : pos.top,
125
- left: placement === "top" || placement === "bottom" ? pos.left : pos.left,
126
- transform: placement === "top" || placement === "bottom" ? "translate(-50%, -100%)" : placement === "left" ? "translate(-100%, -50%)" : "translate(0, -50%)"
127
- },
128
- children: content
129
- }
130
- ) : null;
131
115
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
132
116
  import_react.default.cloneElement(children, triggerProps),
133
- body ? (0, import_react_dom.createPortal)(body, document.body) : null
117
+ typeof document !== "undefined" ? (0, import_react_dom.createPortal)(
118
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_framer_motion.AnimatePresence, { children: open && pos ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
119
+ import_framer_motion.motion.div,
120
+ {
121
+ id,
122
+ role: "tooltip",
123
+ variants: import_animations.tooltipVariant,
124
+ initial: "initial",
125
+ animate: "animate",
126
+ exit: "exit",
127
+ transition: import_animations.menuTransition,
128
+ className: [
129
+ "pointer-events-none fixed z-[2000] max-w-xs rounded-xl border border-slate-200/80 bg-slate-900/95 px-2.5 py-1.5 text-[12px] text-white shadow-xl backdrop-blur",
130
+ "dark:border-white/10 dark:bg-white/10",
131
+ className != null ? className : ""
132
+ ].join(" "),
133
+ style: {
134
+ top: placement === "top" || placement === "bottom" ? pos.top : pos.top,
135
+ left: placement === "top" || placement === "bottom" ? pos.left : pos.left,
136
+ transform: placement === "top" || placement === "bottom" ? "translate(-50%, -100%)" : placement === "left" ? "translate(-100%, -50%)" : "translate(0, -50%)"
137
+ },
138
+ children: content
139
+ }
140
+ ) : null }),
141
+ document.body
142
+ ) : null
134
143
  ] });
135
144
  }
package/dist/Tooltip.mjs CHANGED
@@ -2,6 +2,8 @@
2
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
3
  import React from "react";
4
4
  import { createPortal } from "react-dom";
5
+ import { AnimatePresence, motion } from "framer-motion";
6
+ import { tooltipVariant, menuTransition } from "./animations";
5
7
  function Tooltip({ content, placement = "top", delay = 80, offset = 8, className = "", children }) {
6
8
  const [open, setOpen] = React.useState(false);
7
9
  const [pos, setPos] = React.useState(null);
@@ -77,27 +79,34 @@ function Tooltip({ content, placement = "top", delay = 80, offset = 8, className
77
79
  },
78
80
  "aria-describedby": open ? id : void 0
79
81
  };
80
- const body = open && pos && typeof document !== "undefined" ? /* @__PURE__ */ jsx(
81
- "div",
82
- {
83
- id,
84
- role: "tooltip",
85
- className: [
86
- "pointer-events-none fixed z-[2000] max-w-xs rounded-xl border border-slate-200/80 bg-slate-900/95 px-2.5 py-1.5 text-[12px] text-white shadow-xl backdrop-blur",
87
- "dark:border-white/10 dark:bg-white/10",
88
- className != null ? className : ""
89
- ].join(" "),
90
- style: {
91
- top: placement === "top" || placement === "bottom" ? pos.top : pos.top,
92
- left: placement === "top" || placement === "bottom" ? pos.left : pos.left,
93
- transform: placement === "top" || placement === "bottom" ? "translate(-50%, -100%)" : placement === "left" ? "translate(-100%, -50%)" : "translate(0, -50%)"
94
- },
95
- children: content
96
- }
97
- ) : null;
98
82
  return /* @__PURE__ */ jsxs(Fragment, { children: [
99
83
  React.cloneElement(children, triggerProps),
100
- body ? createPortal(body, document.body) : null
84
+ typeof document !== "undefined" ? createPortal(
85
+ /* @__PURE__ */ jsx(AnimatePresence, { children: open && pos ? /* @__PURE__ */ jsx(
86
+ motion.div,
87
+ {
88
+ id,
89
+ role: "tooltip",
90
+ variants: tooltipVariant,
91
+ initial: "initial",
92
+ animate: "animate",
93
+ exit: "exit",
94
+ transition: menuTransition,
95
+ className: [
96
+ "pointer-events-none fixed z-[2000] max-w-xs rounded-xl border border-slate-200/80 bg-slate-900/95 px-2.5 py-1.5 text-[12px] text-white shadow-xl backdrop-blur",
97
+ "dark:border-white/10 dark:bg-white/10",
98
+ className != null ? className : ""
99
+ ].join(" "),
100
+ style: {
101
+ top: placement === "top" || placement === "bottom" ? pos.top : pos.top,
102
+ left: placement === "top" || placement === "bottom" ? pos.left : pos.left,
103
+ transform: placement === "top" || placement === "bottom" ? "translate(-50%, -100%)" : placement === "left" ? "translate(-100%, -50%)" : "translate(0, -50%)"
104
+ },
105
+ children: content
106
+ }
107
+ ) : null }),
108
+ document.body
109
+ ) : null
101
110
  ] });
102
111
  }
103
112
  export {
@@ -37,6 +37,8 @@ var import_react = require("react");
37
37
  var import_ChartCard = __toESM(require("./ChartCard"));
38
38
  var import_Button = __toESM(require("./Button"));
39
39
  var import_Input = __toESM(require("./Input"));
40
+ var import_framer_motion = require("framer-motion");
41
+ var import_animations = require("./animations");
40
42
  function UploadCard({
41
43
  title = "Subir archivos",
42
44
  subtitle,
@@ -110,33 +112,44 @@ function UploadCard({
110
112
  ]
111
113
  }
112
114
  ),
113
- uploads && uploads.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "mt-4 space-y-2", children: uploads.map((u) => {
114
- var _a, _b;
115
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
116
- "div",
115
+ uploads && uploads.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "mt-4 space-y-2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_framer_motion.AnimatePresence, { initial: false, children: uploads.map((u) => {
116
+ var _a;
117
+ const pct = Math.max(0, Math.min(100, Math.round((_a = u.progress) != null ? _a : 0)));
118
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
119
+ import_framer_motion.motion.div,
117
120
  {
121
+ layout: true,
122
+ initial: { opacity: 0, y: 6 },
123
+ animate: { opacity: 1, y: 0 },
124
+ exit: { opacity: 0, y: -6 },
125
+ transition: import_animations.springSm,
118
126
  className: "flex items-center gap-3 rounded-xl border border-slate-200 bg-white/70 p-2 dark:border-white/10 dark:bg-white/5",
119
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "min-w-0 flex-1", children: [
120
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
121
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "truncate text-sm font-medium", children: u.name }),
122
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "text-xs text-slate-500 dark:text-slate-400", children: [
123
- Math.max(0, Math.min(100, Math.round((_a = u.progress) != null ? _a : 0))),
124
- "%"
125
- ] })
127
+ children: [
128
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "min-w-0 flex-1", children: [
129
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center justify-between gap-3", children: [
130
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "truncate text-sm font-medium", children: u.name }),
131
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "text-xs text-slate-500 dark:text-slate-400", children: [
132
+ pct,
133
+ "%"
134
+ ] })
135
+ ] }),
136
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "mt-1 h-2 w-full overflow-hidden rounded-full bg-slate-100 dark:bg-white/10", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
137
+ import_framer_motion.motion.div,
138
+ {
139
+ className: "h-full bg-gradient-to-r from-emerald-500/70 to-emerald-500/20",
140
+ initial: { width: 0 },
141
+ animate: { width: `${pct}%` },
142
+ transition: import_animations.springSm
143
+ }
144
+ ) }),
145
+ u.status === "error" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "mt-1 text-xs text-blue-600", children: u.error })
126
146
  ] }),
127
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "mt-1 h-2 w-full overflow-hidden rounded-full bg-slate-100 dark:bg-white/10", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
128
- "div",
129
- {
130
- className: "h-full bg-gradient-to-r from-emerald-500/70 to-emerald-500/20",
131
- style: { width: `${Math.max(0, Math.min(100, Math.round((_b = u.progress) != null ? _b : 0)))}%` }
132
- }
133
- ) }),
134
- u.status === "error" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "mt-1 text-xs text-blue-600", children: u.error })
135
- ] })
147
+ u.status === "done" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { viewBox: "0 0 24 24", className: "h-4.5 w-4.5 text-emerald-600", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M5 13l4 4L19 7" }) })
148
+ ]
136
149
  },
137
150
  u.id
138
151
  );
139
- }) })
152
+ }) }) })
140
153
  ]
141
154
  }
142
155
  );
@@ -4,6 +4,8 @@ import { useRef } from "react";
4
4
  import ChartCard from "./ChartCard";
5
5
  import Button from "./Button";
6
6
  import Input from "./Input";
7
+ import { AnimatePresence, motion } from "framer-motion";
8
+ import { springSm } from "./animations";
7
9
  function UploadCard({
8
10
  title = "Subir archivos",
9
11
  subtitle,
@@ -77,33 +79,44 @@ function UploadCard({
77
79
  ]
78
80
  }
79
81
  ),
80
- uploads && uploads.length > 0 && /* @__PURE__ */ jsx("div", { className: "mt-4 space-y-2", children: uploads.map((u) => {
81
- var _a, _b;
82
- return /* @__PURE__ */ jsx(
83
- "div",
82
+ uploads && uploads.length > 0 && /* @__PURE__ */ jsx("div", { className: "mt-4 space-y-2", children: /* @__PURE__ */ jsx(AnimatePresence, { initial: false, children: uploads.map((u) => {
83
+ var _a;
84
+ const pct = Math.max(0, Math.min(100, Math.round((_a = u.progress) != null ? _a : 0)));
85
+ return /* @__PURE__ */ jsxs(
86
+ motion.div,
84
87
  {
88
+ layout: true,
89
+ initial: { opacity: 0, y: 6 },
90
+ animate: { opacity: 1, y: 0 },
91
+ exit: { opacity: 0, y: -6 },
92
+ transition: springSm,
85
93
  className: "flex items-center gap-3 rounded-xl border border-slate-200 bg-white/70 p-2 dark:border-white/10 dark:bg-white/5",
86
- children: /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
87
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3", children: [
88
- /* @__PURE__ */ jsx("div", { className: "truncate text-sm font-medium", children: u.name }),
89
- /* @__PURE__ */ jsxs("div", { className: "text-xs text-slate-500 dark:text-slate-400", children: [
90
- Math.max(0, Math.min(100, Math.round((_a = u.progress) != null ? _a : 0))),
91
- "%"
92
- ] })
94
+ children: [
95
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
96
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3", children: [
97
+ /* @__PURE__ */ jsx("div", { className: "truncate text-sm font-medium", children: u.name }),
98
+ /* @__PURE__ */ jsxs("div", { className: "text-xs text-slate-500 dark:text-slate-400", children: [
99
+ pct,
100
+ "%"
101
+ ] })
102
+ ] }),
103
+ /* @__PURE__ */ jsx("div", { className: "mt-1 h-2 w-full overflow-hidden rounded-full bg-slate-100 dark:bg-white/10", children: /* @__PURE__ */ jsx(
104
+ motion.div,
105
+ {
106
+ className: "h-full bg-gradient-to-r from-emerald-500/70 to-emerald-500/20",
107
+ initial: { width: 0 },
108
+ animate: { width: `${pct}%` },
109
+ transition: springSm
110
+ }
111
+ ) }),
112
+ u.status === "error" && /* @__PURE__ */ jsx("div", { className: "mt-1 text-xs text-blue-600", children: u.error })
93
113
  ] }),
94
- /* @__PURE__ */ jsx("div", { className: "mt-1 h-2 w-full overflow-hidden rounded-full bg-slate-100 dark:bg-white/10", children: /* @__PURE__ */ jsx(
95
- "div",
96
- {
97
- className: "h-full bg-gradient-to-r from-emerald-500/70 to-emerald-500/20",
98
- style: { width: `${Math.max(0, Math.min(100, Math.round((_b = u.progress) != null ? _b : 0)))}%` }
99
- }
100
- ) }),
101
- u.status === "error" && /* @__PURE__ */ jsx("div", { className: "mt-1 text-xs text-blue-600", children: u.error })
102
- ] })
114
+ u.status === "done" && /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", className: "h-4.5 w-4.5 text-emerald-600", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ jsx("path", { d: "M5 13l4 4L19 7" }) })
115
+ ]
103
116
  },
104
117
  u.id
105
118
  );
106
- }) })
119
+ }) }) })
107
120
  ]
108
121
  }
109
122
  );
@@ -0,0 +1,28 @@
1
+ import { Transition, Variants } from 'framer-motion';
2
+
3
+ declare const springSm: Transition;
4
+ declare const springMd: Transition;
5
+ declare const springLg: Transition;
6
+ declare const fadeInOut: Variants;
7
+ declare const popOver: Variants;
8
+ declare const slideFromRight: Variants;
9
+ declare const slideFromBottom: Variants;
10
+ declare const tooltipVariant: Variants;
11
+ declare const menuTransition: Transition;
12
+ declare const microTransition: Transition;
13
+
14
+ declare const animations_fadeInOut: typeof fadeInOut;
15
+ declare const animations_menuTransition: typeof menuTransition;
16
+ declare const animations_microTransition: typeof microTransition;
17
+ declare const animations_popOver: typeof popOver;
18
+ declare const animations_slideFromBottom: typeof slideFromBottom;
19
+ declare const animations_slideFromRight: typeof slideFromRight;
20
+ declare const animations_springLg: typeof springLg;
21
+ declare const animations_springMd: typeof springMd;
22
+ declare const animations_springSm: typeof springSm;
23
+ declare const animations_tooltipVariant: typeof tooltipVariant;
24
+ declare namespace animations {
25
+ export { animations_fadeInOut as fadeInOut, animations_menuTransition as menuTransition, animations_microTransition as microTransition, animations_popOver as popOver, animations_slideFromBottom as slideFromBottom, animations_slideFromRight as slideFromRight, animations_springLg as springLg, animations_springMd as springMd, animations_springSm as springSm, animations_tooltipVariant as tooltipVariant };
26
+ }
27
+
28
+ export { animations as a, springMd as b, springLg as c, slideFromRight as d, slideFromBottom as e, fadeInOut as f, microTransition as g, menuTransition as m, popOver as p, springSm as s, tooltipVariant as t };
@@ -0,0 +1,28 @@
1
+ import { Transition, Variants } from 'framer-motion';
2
+
3
+ declare const springSm: Transition;
4
+ declare const springMd: Transition;
5
+ declare const springLg: Transition;
6
+ declare const fadeInOut: Variants;
7
+ declare const popOver: Variants;
8
+ declare const slideFromRight: Variants;
9
+ declare const slideFromBottom: Variants;
10
+ declare const tooltipVariant: Variants;
11
+ declare const menuTransition: Transition;
12
+ declare const microTransition: Transition;
13
+
14
+ declare const animations_fadeInOut: typeof fadeInOut;
15
+ declare const animations_menuTransition: typeof menuTransition;
16
+ declare const animations_microTransition: typeof microTransition;
17
+ declare const animations_popOver: typeof popOver;
18
+ declare const animations_slideFromBottom: typeof slideFromBottom;
19
+ declare const animations_slideFromRight: typeof slideFromRight;
20
+ declare const animations_springLg: typeof springLg;
21
+ declare const animations_springMd: typeof springMd;
22
+ declare const animations_springSm: typeof springSm;
23
+ declare const animations_tooltipVariant: typeof tooltipVariant;
24
+ declare namespace animations {
25
+ export { animations_fadeInOut as fadeInOut, animations_menuTransition as menuTransition, animations_microTransition as microTransition, animations_popOver as popOver, animations_slideFromBottom as slideFromBottom, animations_slideFromRight as slideFromRight, animations_springLg as springLg, animations_springMd as springMd, animations_springSm as springSm, animations_tooltipVariant as tooltipVariant };
26
+ }
27
+
28
+ export { animations as a, springMd as b, springLg as c, slideFromRight as d, slideFromBottom as e, fadeInOut as f, microTransition as g, menuTransition as m, popOver as p, springSm as s, tooltipVariant as t };
@@ -0,0 +1,2 @@
1
+ import 'framer-motion';
2
+ export { f as fadeInOut, m as menuTransition, g as microTransition, p as popOver, e as slideFromBottom, d as slideFromRight, c as springLg, b as springMd, s as springSm, t as tooltipVariant } from './animations-CHrNeawW.mjs';
@@ -0,0 +1,2 @@
1
+ import 'framer-motion';
2
+ export { f as fadeInOut, m as menuTransition, g as microTransition, p as popOver, e as slideFromBottom, d as slideFromRight, c as springLg, b as springMd, s as springSm, t as tooltipVariant } from './animations-CHrNeawW.js';
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var animations_exports = {};
20
+ __export(animations_exports, {
21
+ fadeInOut: () => fadeInOut,
22
+ menuTransition: () => menuTransition,
23
+ microTransition: () => microTransition,
24
+ popOver: () => popOver,
25
+ slideFromBottom: () => slideFromBottom,
26
+ slideFromRight: () => slideFromRight,
27
+ springLg: () => springLg,
28
+ springMd: () => springMd,
29
+ springSm: () => springSm,
30
+ tooltipVariant: () => tooltipVariant
31
+ });
32
+ module.exports = __toCommonJS(animations_exports);
33
+ const springSm = { type: "spring", stiffness: 320, damping: 26 };
34
+ const springMd = { type: "spring", stiffness: 260, damping: 24 };
35
+ const springLg = { type: "spring", stiffness: 220, damping: 22 };
36
+ const fadeInOut = {
37
+ initial: { opacity: 0 },
38
+ animate: { opacity: 1 },
39
+ exit: { opacity: 0 }
40
+ };
41
+ const popOver = {
42
+ initial: { opacity: 0, y: 8, scale: 0.98 },
43
+ animate: { opacity: 1, y: 0, scale: 1 },
44
+ exit: { opacity: 0, y: 6, scale: 0.98 }
45
+ };
46
+ const slideFromRight = {
47
+ initial: { x: 32, opacity: 0 },
48
+ animate: { x: 0, opacity: 1 },
49
+ exit: { x: 32, opacity: 0 }
50
+ };
51
+ const slideFromBottom = {
52
+ initial: { y: 24, opacity: 0 },
53
+ animate: { y: 0, opacity: 1 },
54
+ exit: { y: 24, opacity: 0 }
55
+ };
56
+ const tooltipVariant = {
57
+ initial: { opacity: 0, y: 6, scale: 0.98 },
58
+ animate: { opacity: 1, y: 0, scale: 1 },
59
+ exit: { opacity: 0, y: 4, scale: 0.98 }
60
+ };
61
+ const menuTransition = springSm;
62
+ const microTransition = { duration: 0.15 };
63
+ // Annotate the CommonJS export names for ESM import in node:
64
+ 0 && (module.exports = {
65
+ fadeInOut,
66
+ menuTransition,
67
+ microTransition,
68
+ popOver,
69
+ slideFromBottom,
70
+ slideFromRight,
71
+ springLg,
72
+ springMd,
73
+ springSm,
74
+ tooltipVariant
75
+ });
@@ -0,0 +1,42 @@
1
+ const springSm = { type: "spring", stiffness: 320, damping: 26 };
2
+ const springMd = { type: "spring", stiffness: 260, damping: 24 };
3
+ const springLg = { type: "spring", stiffness: 220, damping: 22 };
4
+ const fadeInOut = {
5
+ initial: { opacity: 0 },
6
+ animate: { opacity: 1 },
7
+ exit: { opacity: 0 }
8
+ };
9
+ const popOver = {
10
+ initial: { opacity: 0, y: 8, scale: 0.98 },
11
+ animate: { opacity: 1, y: 0, scale: 1 },
12
+ exit: { opacity: 0, y: 6, scale: 0.98 }
13
+ };
14
+ const slideFromRight = {
15
+ initial: { x: 32, opacity: 0 },
16
+ animate: { x: 0, opacity: 1 },
17
+ exit: { x: 32, opacity: 0 }
18
+ };
19
+ const slideFromBottom = {
20
+ initial: { y: 24, opacity: 0 },
21
+ animate: { y: 0, opacity: 1 },
22
+ exit: { y: 24, opacity: 0 }
23
+ };
24
+ const tooltipVariant = {
25
+ initial: { opacity: 0, y: 6, scale: 0.98 },
26
+ animate: { opacity: 1, y: 0, scale: 1 },
27
+ exit: { opacity: 0, y: 4, scale: 0.98 }
28
+ };
29
+ const menuTransition = springSm;
30
+ const microTransition = { duration: 0.15 };
31
+ export {
32
+ fadeInOut,
33
+ menuTransition,
34
+ microTransition,
35
+ popOver,
36
+ slideFromBottom,
37
+ slideFromRight,
38
+ springLg,
39
+ springMd,
40
+ springSm,
41
+ tooltipVariant
42
+ };
package/dist/index.d.mts CHANGED
@@ -11,7 +11,7 @@ export { ColumnItem, default as ColumnSelector } from './ColumnSelector.mjs';
11
11
  export { default as DateTimeField, DateTimeFieldProps } from './DateTimeField.mjs';
12
12
  export { ConfirmDialog, ConfirmDialogProps, Dialog, DialogBody, DialogField, DialogFooter, DialogHeader, DialogProps, FormDialog, FormDialogProps } from './Dialog.mjs';
13
13
  export { Content, default as Dropdown, Item, Label, Separator, Trigger } from './Dropdown.mjs';
14
- export { SortTh, Td, Th } from './Table.mjs';
14
+ export { AnimatedBody, SortTh, Td, Th } from './Table.mjs';
15
15
  export { default as Pagination, PaginationProps } from './Pagination.mjs';
16
16
  export { default as InfoGrid, InfoItem } from './InfoGrid.mjs';
17
17
  export { default as ChartCard } from './ChartCard.mjs';
@@ -41,6 +41,8 @@ export { default as Tooltip } from './Tooltip.mjs';
41
41
  export { default as Link } from './Link.mjs';
42
42
  export { ToastProvider, useToast } from './Toast.mjs';
43
43
  export { default as StorageUsage, StorageUsageProps } from './StorageUsage.mjs';
44
+ export { a as Animations } from './animations-CHrNeawW.mjs';
45
+ export { default as MotionProvider } from './MotionProvider.mjs';
44
46
  export { default as CalendarPanel, CalendarPanelProps } from './CalendarPanel.mjs';
45
47
  export { MonthPopover, default as TimePopover, WeekPopover } from './TimePopover.mjs';
46
48
  export { default as TimePanel } from './TimePanel.mjs';
@@ -50,3 +52,4 @@ export { Aficionados, AuditarDocumento, Borrar, CajaDeMano, Cajas, Calendario, C
50
52
  export { default as ColorPicker, ColorPickerProps } from './ColorPicker.mjs';
51
53
  import 'react';
52
54
  import 'react/jsx-runtime';
55
+ import 'framer-motion';
package/dist/index.d.ts CHANGED
@@ -11,7 +11,7 @@ export { ColumnItem, default as ColumnSelector } from './ColumnSelector.js';
11
11
  export { default as DateTimeField, DateTimeFieldProps } from './DateTimeField.js';
12
12
  export { ConfirmDialog, ConfirmDialogProps, Dialog, DialogBody, DialogField, DialogFooter, DialogHeader, DialogProps, FormDialog, FormDialogProps } from './Dialog.js';
13
13
  export { Content, default as Dropdown, Item, Label, Separator, Trigger } from './Dropdown.js';
14
- export { SortTh, Td, Th } from './Table.js';
14
+ export { AnimatedBody, SortTh, Td, Th } from './Table.js';
15
15
  export { default as Pagination, PaginationProps } from './Pagination.js';
16
16
  export { default as InfoGrid, InfoItem } from './InfoGrid.js';
17
17
  export { default as ChartCard } from './ChartCard.js';
@@ -41,6 +41,8 @@ export { default as Tooltip } from './Tooltip.js';
41
41
  export { default as Link } from './Link.js';
42
42
  export { ToastProvider, useToast } from './Toast.js';
43
43
  export { default as StorageUsage, StorageUsageProps } from './StorageUsage.js';
44
+ export { a as Animations } from './animations-CHrNeawW.js';
45
+ export { default as MotionProvider } from './MotionProvider.js';
44
46
  export { default as CalendarPanel, CalendarPanelProps } from './CalendarPanel.js';
45
47
  export { MonthPopover, default as TimePopover, WeekPopover } from './TimePopover.js';
46
48
  export { default as TimePanel } from './TimePanel.js';
@@ -50,3 +52,4 @@ export { Aficionados, AuditarDocumento, Borrar, CajaDeMano, Cajas, Calendario, C
50
52
  export { default as ColorPicker, ColorPickerProps } from './ColorPicker.js';
51
53
  import 'react';
52
54
  import 'react/jsx-runtime';
55
+ import 'framer-motion';
package/dist/index.js CHANGED
@@ -30,6 +30,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  var index_exports = {};
31
31
  __export(index_exports, {
32
32
  ActionIconButton: () => import_ActionIconButton.default,
33
+ AnimatedBody: () => import_Table.AnimatedBody,
34
+ Animations: () => Animations,
33
35
  AppTopbar: () => import_AppTopbar.default,
34
36
  AvatarGroup: () => import_AvatarGroup.default,
35
37
  AvatarSquare: () => import_AvatarSquare.default,
@@ -61,6 +63,7 @@ __export(index_exports, {
61
63
  MediaSelector: () => import_MediaSelector.default,
62
64
  Money: () => import_Money.default,
63
65
  MonthPopover: () => import_TimePopover2.MonthPopover,
66
+ MotionProvider: () => import_MotionProvider.default,
64
67
  MultiComboSelect: () => import_MultiComboSelect.default,
65
68
  OrderButton: () => import_OrderButton.default,
66
69
  Pagination: () => import_Pagination.default,
@@ -135,6 +138,8 @@ var import_Tooltip = __toESM(require("./Tooltip"));
135
138
  var import_Link = __toESM(require("./Link"));
136
139
  var import_Toast = require("./Toast");
137
140
  var import_StorageUsage = __toESM(require("./StorageUsage"));
141
+ var Animations = __toESM(require("./animations"));
142
+ var import_MotionProvider = __toESM(require("./MotionProvider"));
138
143
  var import_CalendarPanel = __toESM(require("./CalendarPanel"));
139
144
  var import_TimePopover = __toESM(require("./TimePopover"));
140
145
  var import_TimePopover2 = require("./TimePopover");
@@ -147,6 +152,8 @@ var import_ColorPicker = __toESM(require("./ColorPicker"));
147
152
  // Annotate the CommonJS export names for ESM import in node:
148
153
  0 && (module.exports = {
149
154
  ActionIconButton,
155
+ AnimatedBody,
156
+ Animations,
150
157
  AppTopbar,
151
158
  AvatarGroup,
152
159
  AvatarSquare,
@@ -178,6 +185,7 @@ var import_ColorPicker = __toESM(require("./ColorPicker"));
178
185
  MediaSelector,
179
186
  Money,
180
187
  MonthPopover,
188
+ MotionProvider,
181
189
  MultiComboSelect,
182
190
  OrderButton,
183
191
  Pagination,