framepexls-ui-lib 0.3.0 → 0.3.2

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 (75) hide show
  1. package/dist/AvatarGroup.js +1 -1
  2. package/dist/AvatarGroup.mjs +1 -1
  3. package/dist/Badge.js +12 -12
  4. package/dist/Badge.mjs +12 -12
  5. package/dist/BadgeCluster.js +1 -1
  6. package/dist/BadgeCluster.mjs +1 -1
  7. package/dist/Button.js +1 -1
  8. package/dist/Button.mjs +1 -1
  9. package/dist/Card.js +1 -1
  10. package/dist/Card.mjs +1 -1
  11. package/dist/ChartCard.js +1 -1
  12. package/dist/ChartCard.mjs +1 -1
  13. package/dist/Checkbox.d.mts +1 -1
  14. package/dist/Checkbox.d.ts +1 -1
  15. package/dist/Checkbox.js +1 -1
  16. package/dist/Checkbox.mjs +1 -1
  17. package/dist/CheckboxPillsGroup.js +3 -3
  18. package/dist/CheckboxPillsGroup.mjs +3 -3
  19. package/dist/ComboSelect.js +2 -2
  20. package/dist/ComboSelect.mjs +2 -2
  21. package/dist/DateTimeField.js +1 -1
  22. package/dist/DateTimeField.mjs +1 -1
  23. package/dist/EmptyState.js +1 -1
  24. package/dist/EmptyState.mjs +1 -1
  25. package/dist/FiltersMultiSelect.js +3 -3
  26. package/dist/FiltersMultiSelect.mjs +3 -3
  27. package/dist/Input.js +4 -4
  28. package/dist/Input.mjs +4 -4
  29. package/dist/KpiCard.js +1 -1
  30. package/dist/KpiCard.mjs +1 -1
  31. package/dist/MediaCard.js +1 -1
  32. package/dist/MediaCard.mjs +1 -1
  33. package/dist/MediaSelector.js +235 -135
  34. package/dist/MediaSelector.mjs +235 -135
  35. package/dist/MediaTile.d.mts +18 -0
  36. package/dist/MediaTile.d.ts +18 -0
  37. package/dist/MediaTile.js +146 -0
  38. package/dist/MediaTile.mjs +116 -0
  39. package/dist/MultiComboSelect.js +2 -2
  40. package/dist/MultiComboSelect.mjs +2 -2
  41. package/dist/Pagination.js +8 -6
  42. package/dist/Pagination.mjs +8 -6
  43. package/dist/Sidebar.js +40 -16
  44. package/dist/Sidebar.mjs +40 -16
  45. package/dist/Skeleton.d.mts +34 -0
  46. package/dist/Skeleton.d.ts +34 -0
  47. package/dist/Skeleton.js +92 -0
  48. package/dist/Skeleton.mjs +64 -0
  49. package/dist/StatCard.js +1 -1
  50. package/dist/StatCard.mjs +1 -1
  51. package/dist/Steps.js +2 -2
  52. package/dist/Steps.mjs +2 -2
  53. package/dist/Table.js +5 -5
  54. package/dist/Table.mjs +5 -5
  55. package/dist/Textarea.js +1 -1
  56. package/dist/Textarea.mjs +1 -1
  57. package/dist/TimePanel.js +4 -4
  58. package/dist/TimePanel.mjs +4 -4
  59. package/dist/TimePopover.js +2 -2
  60. package/dist/TimePopover.mjs +2 -2
  61. package/dist/TimeRangeField.js +1 -1
  62. package/dist/TimeRangeField.mjs +1 -1
  63. package/dist/Tooltip.js +1 -1
  64. package/dist/Tooltip.mjs +1 -1
  65. package/dist/UploadCard.js +7 -7
  66. package/dist/UploadCard.mjs +7 -7
  67. package/dist/iconos/index.js +4 -14
  68. package/dist/iconos/index.mjs +4 -14
  69. package/dist/index.d.mts +2 -0
  70. package/dist/index.d.ts +2 -0
  71. package/dist/index.js +6 -0
  72. package/dist/index.mjs +68 -64
  73. package/dist/theme/ThemeToggle.js +2 -1
  74. package/dist/theme/ThemeToggle.mjs +2 -1
  75. package/package.json +1 -1
@@ -0,0 +1,116 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import Image from "next/image";
5
+ import { motion } from "framer-motion";
6
+ import { microTransition } from "./animations";
7
+ import Dropdown from "./Dropdown";
8
+ function MediaTile({
9
+ imageUrl,
10
+ title,
11
+ subtitle,
12
+ copyUrl,
13
+ onPreview,
14
+ onRename,
15
+ onReplace,
16
+ onDelete,
17
+ loading,
18
+ menuSize = "md",
19
+ className
20
+ }) {
21
+ const [copied, setCopied] = useState(false);
22
+ const copy = async () => {
23
+ if (!copyUrl) return;
24
+ try {
25
+ await navigator.clipboard.writeText(copyUrl);
26
+ setCopied(true);
27
+ setTimeout(() => setCopied(false), 1200);
28
+ } catch {
29
+ }
30
+ };
31
+ const btnSize = menuSize === "lg" ? "h-11 w-11" : menuSize === "sm" ? "h-8 w-8" : "h-9 w-9";
32
+ const iconSize = menuSize === "lg" ? "h-7 w-7" : menuSize === "sm" ? "h-5 w-5" : "h-6 w-6";
33
+ const ImgWrap = onPreview ? (props) => /* @__PURE__ */ jsx("button", { type: "button", onClick: onPreview, ...props }) : (props) => /* @__PURE__ */ jsx("div", { ...props });
34
+ if (loading) {
35
+ return /* @__PURE__ */ jsxs(
36
+ "div",
37
+ {
38
+ className: [
39
+ "overflow-hidden rounded-2xl border border-slate-200 bg-white/80 shadow-sm ring-1 ring-black/5 backdrop-blur dark:border-white/10 dark:bg-[var(--fx-surface)]",
40
+ className != null ? className : ""
41
+ ].join(" "),
42
+ children: [
43
+ /* @__PURE__ */ jsx("div", { className: "aspect-square w-full", children: /* @__PURE__ */ jsx("div", { className: "h-full w-full animate-pulse bg-slate-200 dark:bg-white/10" }) }),
44
+ /* @__PURE__ */ jsxs("div", { className: "p-2 space-y-2", children: [
45
+ /* @__PURE__ */ jsx("div", { className: "h-3 w-3/4 animate-pulse rounded bg-slate-200 dark:bg-white/10" }),
46
+ /* @__PURE__ */ jsx("div", { className: "h-2 w-1/3 animate-pulse rounded bg-slate-200 dark:bg-white/10" })
47
+ ] })
48
+ ]
49
+ }
50
+ );
51
+ }
52
+ return /* @__PURE__ */ jsxs(
53
+ motion.div,
54
+ {
55
+ whileHover: { y: -2 },
56
+ transition: microTransition,
57
+ className: [
58
+ "group relative overflow-hidden rounded-2xl border border-slate-200 bg-white/80 shadow-sm ring-1 ring-black/5 backdrop-blur dark:border-white/10 dark:bg-[var(--fx-surface)]",
59
+ className != null ? className : ""
60
+ ].join(" "),
61
+ children: [
62
+ /* @__PURE__ */ jsxs(ImgWrap, { className: "aspect-square w-full bg-slate-100 relative text-left", children: [
63
+ imageUrl ? /* @__PURE__ */ jsx(
64
+ Image,
65
+ {
66
+ src: imageUrl,
67
+ alt: title,
68
+ fill: true,
69
+ sizes: "(min-width:1024px) 20vw, (min-width:768px) 25vw, (min-width:640px) 33vw, 50vw",
70
+ className: "object-cover transition-transform duration-200 will-change-transform group-hover:scale-105"
71
+ }
72
+ ) : /* @__PURE__ */ jsx("div", { className: "h-full w-full" }),
73
+ /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-0 bg-gradient-to-t from-black/30 to-transparent opacity-0 transition-opacity duration-200 group-hover:opacity-100" })
74
+ ] }),
75
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2 p-2", children: [
76
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
77
+ /* @__PURE__ */ jsx("div", { className: "truncate text-sm font-medium", children: title }),
78
+ subtitle && /* @__PURE__ */ jsx("div", { className: "text-xs text-slate-500 dark:text-slate-400", children: subtitle })
79
+ ] }),
80
+ /* @__PURE__ */ jsx("div", { className: "flex items-center gap-1", children: /* @__PURE__ */ jsxs(Dropdown, { children: [
81
+ /* @__PURE__ */ jsx(Dropdown.Trigger, { "aria-label": "Acciones", className: [btnSize, "p-0 !gap-0"].join(" "), children: /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", className: iconSize, fill: "currentColor", children: [
82
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "5", r: "2" }),
83
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "2" }),
84
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "19", r: "2" })
85
+ ] }) }),
86
+ /* @__PURE__ */ jsxs(Dropdown.Content, { children: [
87
+ onPreview && /* @__PURE__ */ jsx(Dropdown.Item, { onSelect: onPreview, icon: /* @__PURE__ */ jsx("span", { className: "inline-flex h-4 w-4 items-center justify-center", children: /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", className: "h-4 w-4", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [
88
+ /* @__PURE__ */ jsx("path", { d: "M1 12s4-7 11-7 11 7 11 7-4 7-11 7-11-7-11-7Z" }),
89
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "3" })
90
+ ] }) }), children: "Ver" }),
91
+ copyUrl && /* @__PURE__ */ jsx(Dropdown.Item, { onSelect: copy, icon: /* @__PURE__ */ jsx("span", { className: "inline-flex h-4 w-4 items-center justify-center", children: /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", className: "h-4 w-4", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [
92
+ /* @__PURE__ */ jsx("rect", { x: "9", y: "9", width: "13", height: "13", rx: "2" }),
93
+ /* @__PURE__ */ jsx("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })
94
+ ] }) }), children: copied ? "Copiado" : "Copiar URL" }),
95
+ (onRename || onReplace) && /* @__PURE__ */ jsx(Dropdown.Separator, {}),
96
+ onRename && /* @__PURE__ */ jsx(Dropdown.Item, { onSelect: onRename, icon: /* @__PURE__ */ jsx("span", { className: "inline-flex h-4 w-4 items-center justify-center", children: /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", className: "h-4 w-4", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [
97
+ /* @__PURE__ */ jsx("path", { d: "M3 21v-4l12-12 4 4-12 12z" }),
98
+ /* @__PURE__ */ jsx("path", { d: "M14 7l4 4" })
99
+ ] }) }), children: "Renombrar" }),
100
+ onReplace && /* @__PURE__ */ jsx(Dropdown.Item, { onSelect: onReplace, icon: /* @__PURE__ */ jsx("span", { className: "inline-flex h-4 w-4 items-center justify-center", children: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", className: "h-4 w-4", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ jsx("path", { d: "M12 5v14M5 12h14" }) }) }), children: "Reemplazar" }),
101
+ onDelete && /* @__PURE__ */ jsx(Dropdown.Item, { danger: true, onSelect: onDelete, icon: /* @__PURE__ */ jsx("span", { className: "inline-flex h-4 w-4 items-center justify-center", children: /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", className: "h-4 w-4", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [
102
+ /* @__PURE__ */ jsx("path", { d: "M3 6h18" }),
103
+ /* @__PURE__ */ jsx("path", { d: "M8 6v14a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2V6" }),
104
+ /* @__PURE__ */ jsx("path", { d: "M10 11v6M14 11v6" }),
105
+ /* @__PURE__ */ jsx("path", { d: "M9 6V4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2" })
106
+ ] }) }), children: "Eliminar" })
107
+ ] })
108
+ ] }) })
109
+ ] })
110
+ ]
111
+ }
112
+ );
113
+ }
114
+ export {
115
+ MediaTile as default
116
+ };
@@ -106,7 +106,7 @@ function MultiComboSelect({
106
106
  {
107
107
  unstyled: true,
108
108
  type: "button",
109
- className: "inline-flex items-center gap-1 rounded-full border border-slate-200 bg-white px-2 py-0.5 text-xs text-slate-700 hover:bg-slate-50 active:scale-95 dark:border-white/10 dark:bg-white/10 dark:text-slate-200",
109
+ className: "inline-flex items-center gap-1 rounded-full border border-slate-200 bg-white px-2 py-0.5 text-xs text-slate-700 hover:bg-slate-50 active:scale-95 dark:border-white/10 dark:bg-[var(--fx-surface)] dark:text-slate-200",
110
110
  onClick: () => setDialogOpen(true),
111
111
  title: "Ver todas",
112
112
  children: [
@@ -135,7 +135,7 @@ function MultiComboSelect({
135
135
  {
136
136
  unstyled: true,
137
137
  type: "button",
138
- className: "inline-flex h-8 items-center justify-center rounded-lg border border-slate-300/80 bg-white px-2 text-xs text-slate-700 hover:bg-slate-50 active:scale-95 dark:border-white/10 dark:bg-white/5 dark:text-slate-200 dark:hover:bg-white/10",
138
+ className: "inline-flex h-8 items-center justify-center rounded-lg border border-slate-300/80 bg-white px-2 text-xs text-slate-700 hover:bg-slate-50 active:scale-95 dark:border-white/10 dark:bg-[var(--fx-surface)] dark:text-slate-200 dark:hover:bg-white/10",
139
139
  onClick: () => toggle(v),
140
140
  children: "Quitar"
141
141
  }
@@ -73,7 +73,7 @@ function MultiComboSelect({
73
73
  {
74
74
  unstyled: true,
75
75
  type: "button",
76
- className: "inline-flex items-center gap-1 rounded-full border border-slate-200 bg-white px-2 py-0.5 text-xs text-slate-700 hover:bg-slate-50 active:scale-95 dark:border-white/10 dark:bg-white/10 dark:text-slate-200",
76
+ className: "inline-flex items-center gap-1 rounded-full border border-slate-200 bg-white px-2 py-0.5 text-xs text-slate-700 hover:bg-slate-50 active:scale-95 dark:border-white/10 dark:bg-[var(--fx-surface)] dark:text-slate-200",
77
77
  onClick: () => setDialogOpen(true),
78
78
  title: "Ver todas",
79
79
  children: [
@@ -102,7 +102,7 @@ function MultiComboSelect({
102
102
  {
103
103
  unstyled: true,
104
104
  type: "button",
105
- className: "inline-flex h-8 items-center justify-center rounded-lg border border-slate-300/80 bg-white px-2 text-xs text-slate-700 hover:bg-slate-50 active:scale-95 dark:border-white/10 dark:bg-white/5 dark:text-slate-200 dark:hover:bg-white/10",
105
+ className: "inline-flex h-8 items-center justify-center rounded-lg border border-slate-300/80 bg-white px-2 text-xs text-slate-700 hover:bg-slate-50 active:scale-95 dark:border-white/10 dark:bg-[var(--fx-surface)] dark:text-slate-200 dark:hover:bg-white/10",
106
106
  onClick: () => toggle(v),
107
107
  children: "Quitar"
108
108
  }
@@ -108,25 +108,27 @@ function Pagination({
108
108
  children,
109
109
  active,
110
110
  disabled,
111
- onClick
111
+ onClick,
112
+ ariaLabel
112
113
  }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
113
114
  import_Button.default,
114
115
  {
115
116
  unstyled: true,
116
117
  disabled,
117
118
  onClick,
118
- className: `relative h-10 min-w-10 px-3 inline-flex items-center justify-center text-[15px] font-medium transition
119
- ${active ? `${PILL_BG[color]} ${ACTIVE_TEXT[color]} rounded-2xl shadow-sm` : "text-slate-900 hover:bg-white/60"}
119
+ "aria-label": ariaLabel,
120
+ className: `relative h-10 min-w-10 px-3 inline-flex items-center justify-center text-[15px] font-medium transition focus:outline-none focus:ring-2 focus:ring-blue-200 dark:focus:ring-white/10
121
+ ${active ? `${PILL_BG[color]} ${ACTIVE_TEXT[color]} rounded-2xl shadow-sm` : "text-slate-700 dark:text-slate-200 hover:bg-white/60 dark:hover:bg-white/10"}
120
122
  ${disabled ? "opacity-40 cursor-not-allowed" : ""}`,
121
123
  "aria-current": active ? "page" : void 0,
122
124
  children
123
125
  }
124
126
  );
125
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("nav", { className: className || "w-full md:w-auto", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "relative inline-flex overflow-hidden rounded-2xl border border-slate-200 bg-slate-100/60 shadow-sm dark:border-white/10 dark:bg-white/5", children: [
126
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Btn, { disabled: page === 1, onClick: () => onPageChange(page - 1), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { viewBox: "0 0 24 24", className: "h-5 w-5", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M15 18l-6-6 6-6" }) }) }),
127
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("nav", { className: className || "w-full md:w-auto", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "relative inline-flex overflow-hidden rounded-2xl border border-slate-200 bg-slate-100/60 shadow-sm dark:border-white/10 dark:bg-[var(--fx-surface)]", children: [
128
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Btn, { disabled: page === 1, onClick: () => onPageChange(page - 1), ariaLabel: "P\xE1gina anterior", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { viewBox: "0 0 24 24", className: "h-5 w-5", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M15 18l-6-6 6-6" }) }) }),
127
129
  range.map(
128
130
  (it, idx) => it === "..." ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "h-10 min-w-10 px-3 inline-flex items-center justify-center text-slate-500 dark:text-slate-400", children: "\u2026" }, `dots-${idx}`) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Btn, { active: it === page, onClick: () => onPageChange(it), children: it }, it)
129
131
  ),
130
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Btn, { disabled: page === totalPages, onClick: () => onPageChange(page + 1), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { viewBox: "0 0 24 24", className: "h-5 w-5", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M9 6l6 6-6 6" }) }) })
132
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Btn, { disabled: page === totalPages, onClick: () => onPageChange(page + 1), ariaLabel: "P\xE1gina siguiente", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { viewBox: "0 0 24 24", className: "h-5 w-5", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M9 6l6 6-6 6" }) }) })
131
133
  ] }) });
132
134
  }
@@ -75,26 +75,28 @@ function Pagination({
75
75
  children,
76
76
  active,
77
77
  disabled,
78
- onClick
78
+ onClick,
79
+ ariaLabel
79
80
  }) => /* @__PURE__ */ jsx(
80
81
  Button,
81
82
  {
82
83
  unstyled: true,
83
84
  disabled,
84
85
  onClick,
85
- className: `relative h-10 min-w-10 px-3 inline-flex items-center justify-center text-[15px] font-medium transition
86
- ${active ? `${PILL_BG[color]} ${ACTIVE_TEXT[color]} rounded-2xl shadow-sm` : "text-slate-900 hover:bg-white/60"}
86
+ "aria-label": ariaLabel,
87
+ className: `relative h-10 min-w-10 px-3 inline-flex items-center justify-center text-[15px] font-medium transition focus:outline-none focus:ring-2 focus:ring-blue-200 dark:focus:ring-white/10
88
+ ${active ? `${PILL_BG[color]} ${ACTIVE_TEXT[color]} rounded-2xl shadow-sm` : "text-slate-700 dark:text-slate-200 hover:bg-white/60 dark:hover:bg-white/10"}
87
89
  ${disabled ? "opacity-40 cursor-not-allowed" : ""}`,
88
90
  "aria-current": active ? "page" : void 0,
89
91
  children
90
92
  }
91
93
  );
92
- return /* @__PURE__ */ jsx("nav", { className: className || "w-full md:w-auto", children: /* @__PURE__ */ jsxs("div", { className: "relative inline-flex overflow-hidden rounded-2xl border border-slate-200 bg-slate-100/60 shadow-sm dark:border-white/10 dark:bg-white/5", children: [
93
- /* @__PURE__ */ jsx(Btn, { disabled: page === 1, onClick: () => onPageChange(page - 1), children: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", className: "h-5 w-5", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ jsx("path", { d: "M15 18l-6-6 6-6" }) }) }),
94
+ return /* @__PURE__ */ jsx("nav", { className: className || "w-full md:w-auto", children: /* @__PURE__ */ jsxs("div", { className: "relative inline-flex overflow-hidden rounded-2xl border border-slate-200 bg-slate-100/60 shadow-sm dark:border-white/10 dark:bg-[var(--fx-surface)]", children: [
95
+ /* @__PURE__ */ jsx(Btn, { disabled: page === 1, onClick: () => onPageChange(page - 1), ariaLabel: "P\xE1gina anterior", children: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", className: "h-5 w-5", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ jsx("path", { d: "M15 18l-6-6 6-6" }) }) }),
94
96
  range.map(
95
97
  (it, idx) => it === "..." ? /* @__PURE__ */ jsx("span", { className: "h-10 min-w-10 px-3 inline-flex items-center justify-center text-slate-500 dark:text-slate-400", children: "\u2026" }, `dots-${idx}`) : /* @__PURE__ */ jsx(Btn, { active: it === page, onClick: () => onPageChange(it), children: it }, it)
96
98
  ),
97
- /* @__PURE__ */ jsx(Btn, { disabled: page === totalPages, onClick: () => onPageChange(page + 1), children: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", className: "h-5 w-5", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ jsx("path", { d: "M9 6l6 6-6 6" }) }) })
99
+ /* @__PURE__ */ jsx(Btn, { disabled: page === totalPages, onClick: () => onPageChange(page + 1), ariaLabel: "P\xE1gina siguiente", children: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", className: "h-5 w-5", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ jsx("path", { d: "M9 6l6 6-6 6" }) }) })
98
100
  ] }) });
99
101
  }
100
102
  export {
package/dist/Sidebar.js CHANGED
@@ -210,7 +210,7 @@ function Sidebar({
210
210
  variant: "ghost",
211
211
  size: "sm",
212
212
  leftIcon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_iconos.MenuIcon, {}),
213
- className: "h-9 w-9 p-0 !gap-0 rounded-xl border border-slate-200 bg-white text-slate-700 shadow-sm hover:bg-slate-50 active:scale-95 dark:border-white/10 dark:bg-white/5 dark:text-slate-200 dark:hover:bg-white/10"
213
+ className: "h-9 w-9 p-0 !gap-0 rounded-xl border border-slate-200 bg-white text-slate-700 shadow-sm hover:bg-slate-50 active:scale-95 dark:border-white/10 dark:bg-[var(--fx-surface)] dark:text-slate-200 dark:hover:bg-white/10"
214
214
  }
215
215
  ),
216
216
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_Button.default, { unstyled: true, type: "button", onClick: onBrandClick, className: "flex items-center gap-2", children: [
@@ -222,12 +222,16 @@ function Sidebar({
222
222
  ] })
223
223
  ] }),
224
224
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
225
- "aside",
225
+ import_framer_motion.motion.aside,
226
226
  {
227
227
  className: [
228
228
  "hidden xl:fixed xl:inset-y-0 xl:flex xl:flex-col xl:border-r xl:border-black/5 bg-white xl:py-6 dark:bg-[var(--fx-surface)] z-40",
229
- collapsed ? "xl:w-28 xl:px-3" : "xl:w-72 xl:px-4"
229
+ collapsed ? "xl:px-3" : "xl:px-4"
230
230
  ].join(" "),
231
+ initial: false,
232
+ animate: { width: collapsed ? 112 : 288 },
233
+ transition: { type: "spring", stiffness: 260, damping: 30, mass: 0.9 },
234
+ style: { width: collapsed ? 112 : 288 },
231
235
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
232
236
  SidebarInner,
233
237
  {
@@ -246,7 +250,16 @@ function Sidebar({
246
250
  )
247
251
  }
248
252
  ),
249
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: ["hidden xl:block", collapsed ? "xl:w-20" : "xl:w-72"].join(" ") }),
253
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
254
+ import_framer_motion.motion.div,
255
+ {
256
+ className: "hidden xl:block",
257
+ initial: false,
258
+ animate: { width: collapsed ? 112 : 288 },
259
+ transition: { type: "spring", stiffness: 260, damping: 30, mass: 0.9 },
260
+ style: { width: collapsed ? 112 : 288 }
261
+ }
262
+ ),
250
263
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_framer_motion.AnimatePresence, { children: drawerOpen && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_framer_motion.motion.div, { className: "fixed inset-0 z-40 xl:hidden", initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, children: [
251
264
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute inset-0 bg-black/40" }),
252
265
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
@@ -270,7 +283,7 @@ function Sidebar({
270
283
  variant: "ghost",
271
284
  size: "sm",
272
285
  leftIcon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_iconos.CloseIcon, {}),
273
- className: "h-9 w-9 p-0 !gap-0 rounded-xl border border-slate-200 bg-white text-slate-700 shadow-sm hover:bg-slate-50 dark:border-white/10 dark:bg-white/5 dark:text-slate-200"
286
+ className: "h-9 w-9 p-0 !gap-0 rounded-xl border border-slate-200 bg-white text-slate-700 shadow-sm hover:bg-slate-50 dark:border-white/10 dark:bg-[var(--fx-surface)] dark:text-slate-200"
274
287
  }
275
288
  ),
276
289
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-sm text-slate-500 dark:text-slate-400", children: "Men\xFA" })
@@ -315,10 +328,21 @@ function SidebarInner({
315
328
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center justify-between px-1", children: [
316
329
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_Button.default, { unstyled: true, type: "button", className: "flex items-center gap-3", title: "Ir al inicio", children: [
317
330
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-2xl font-black tracking-tight", children: brandInitials }),
318
- !collapsed && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "leading-tight", children: [
319
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-lg font-semibold tracking-tight", children: brandTitle }),
320
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-[11px] uppercase tracking-wide text-slate-400 text-left", children: brandSubtitle })
321
- ] })
331
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_framer_motion.AnimatePresence, { initial: false, children: !collapsed && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
332
+ import_framer_motion.motion.div,
333
+ {
334
+ initial: { opacity: 0, x: -6 },
335
+ animate: { opacity: 1, x: 0 },
336
+ exit: { opacity: 0, x: -6 },
337
+ transition: { duration: 0.15 },
338
+ className: "leading-tight",
339
+ children: [
340
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-lg font-semibold tracking-tight", children: brandTitle }),
341
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-[11px] uppercase tracking-wide text-slate-400 text-left", children: brandSubtitle })
342
+ ]
343
+ },
344
+ "brand-meta"
345
+ ) })
322
346
  ] }),
323
347
  !mobile && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
324
348
  import_Button.default,
@@ -329,13 +353,13 @@ function SidebarInner({
329
353
  variant: "ghost",
330
354
  size: "sm",
331
355
  leftIcon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_iconos.ChevronLeftRightIcon, { collapsed: collapsed != null ? collapsed : false }),
332
- className: "hidden xl:inline-flex h-8 w-8 p-0 !gap-0 rounded-xl border border-slate-200 bg-white text-slate-700 shadow-sm hover:bg-slate-50 dark:border-white/10 dark:bg-white/5 dark:text-slate-200",
356
+ className: "hidden xl:inline-flex h-8 w-8 p-0 !gap-0 rounded-xl border border-slate-200 bg-white text-slate-700 shadow-sm hover:bg-slate-50 active:scale-[0.98] dark:border-white/10 dark:bg-[var(--fx-surface)] dark:text-slate-200",
333
357
  title: collapsed ? "Expandir" : "Contraer"
334
358
  }
335
359
  )
336
360
  ] }),
337
361
  collapsed && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "mt-4 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_AvatarSquare.default, { size: 48, src: (_a = user == null ? void 0 : user.avatarUrl) != null ? _a : void 0, radiusClass: "rounded-2xl", color }) }),
338
- !collapsed && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mt-4 flex items-center gap-3 rounded-2xl border border-slate-200 bg-white p-2 pr-3 shadow-sm dark:border-white/10 dark:bg-white/5", children: [
362
+ !collapsed && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mt-4 flex items-center gap-3 rounded-2xl border border-slate-200 bg-white p-2 pr-3 shadow-sm dark:border-white/10 dark:bg-[var(--fx-surface)]", children: [
339
363
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_AvatarSquare.default, { size: 48, src: (_b = user == null ? void 0 : user.avatarUrl) != null ? _b : void 0, radiusClass: "rounded-2xl", color }),
340
364
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "min-w-0", children: [
341
365
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "truncate text-sm font-semibold", children: (_c = user == null ? void 0 : user.name) != null ? _c : "Usuario" }),
@@ -401,7 +425,7 @@ function RenderItem({
401
425
  {
402
426
  className: [
403
427
  "grid h-9 w-9 place-items-center rounded-xl border transition",
404
- isActive ? `${ICON_BORDER_ACTIVE[color]} bg-white shadow-sm dark:bg-white/10` : "border-slate-200 bg-white shadow-sm dark:border-white/10 dark:bg-white/10"
428
+ isActive ? `${ICON_BORDER_ACTIVE[color]} bg-white shadow-sm dark:bg-[var(--fx-surface)]` : "border-slate-200 bg-white shadow-sm dark:border-white/10 dark:bg-[var(--fx-surface)]"
405
429
  ].join(" "),
406
430
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { className: "h-5 w-5" })
407
431
  }
@@ -437,7 +461,7 @@ function RenderItem({
437
461
  {
438
462
  className: [
439
463
  "grid h-9 w-9 place-items-center rounded-xl border transition",
440
- isActive ? `${ICON_BORDER_ACTIVE[color]} bg-white shadow-sm dark:bg-white/10` : "border-slate-200 bg-white shadow-sm dark:border-white/10 dark:bg-white/10"
464
+ isActive ? `${ICON_BORDER_ACTIVE[color]} bg-white shadow-sm dark:bg-[var(--fx-surface)]` : "border-slate-200 bg-white shadow-sm dark:border-white/10 dark:bg-[var(--fx-surface)]"
441
465
  ].join(" "),
442
466
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { className: "h-5 w-5" })
443
467
  }
@@ -460,7 +484,7 @@ function RenderItem({
460
484
  leftIcon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ChevronDown, { open }),
461
485
  className: [
462
486
  "h-8 w-8 shrink-0 rounded-lg p-0 !gap-0 border",
463
- isActive ? `${TOGGLE_BORDER_ACTIVE[color]} bg-white/80 dark:bg-white/15` : "border-slate-200 bg-white dark:border-white/10 dark:bg-white/10"
487
+ isActive ? `${TOGGLE_BORDER_ACTIVE[color]} bg-white/80 dark:bg-white/15` : "border-slate-200 bg-white dark:border-white/10 dark:bg-[var(--fx-surface)]"
464
488
  ].join(" ")
465
489
  }
466
490
  )
@@ -476,7 +500,7 @@ function RenderItem({
476
500
  transition: { type: "tween", duration: 0.18 },
477
501
  className: "mt-1 overflow-hidden",
478
502
  style: { willChange: "height, opacity, transform" },
479
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "rounded-xl border border-slate-200 bg-white shadow-sm dark:border-white/10 dark:bg-white/10", children: children.map((ch) => {
503
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "rounded-xl border border-slate-200 bg-white shadow-sm dark:border-white/10 dark:bg-[var(--fx-surface)]", children: children.map((ch) => {
480
504
  const active2 = ch.key === activeKey;
481
505
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
482
506
  import_Button.default,
@@ -528,7 +552,7 @@ function RenderItem({
528
552
  {
529
553
  className: [
530
554
  "grid h-9 w-9 place-items-center rounded-xl border text-slate-700 transition group-hover:scale-105 dark:text-slate-200",
531
- active ? `${ICON_BORDER_ACTIVE[color]} bg-white shadow-sm dark:bg-white/10` : "border-slate-200 bg-white shadow-sm dark:border-white/10 dark:bg-white/10"
555
+ active ? `${ICON_BORDER_ACTIVE[color]} bg-white shadow-sm dark:bg-[var(--fx-surface)]` : "border-slate-200 bg-white shadow-sm dark:border-white/10 dark:bg-[var(--fx-surface)]"
532
556
  ].join(" "),
533
557
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { className: "h-5 w-5" })
534
558
  }
package/dist/Sidebar.mjs CHANGED
@@ -177,7 +177,7 @@ function Sidebar({
177
177
  variant: "ghost",
178
178
  size: "sm",
179
179
  leftIcon: /* @__PURE__ */ jsx(MenuIcon, {}),
180
- className: "h-9 w-9 p-0 !gap-0 rounded-xl border border-slate-200 bg-white text-slate-700 shadow-sm hover:bg-slate-50 active:scale-95 dark:border-white/10 dark:bg-white/5 dark:text-slate-200 dark:hover:bg-white/10"
180
+ className: "h-9 w-9 p-0 !gap-0 rounded-xl border border-slate-200 bg-white text-slate-700 shadow-sm hover:bg-slate-50 active:scale-95 dark:border-white/10 dark:bg-[var(--fx-surface)] dark:text-slate-200 dark:hover:bg-white/10"
181
181
  }
182
182
  ),
183
183
  /* @__PURE__ */ jsxs(Button, { unstyled: true, type: "button", onClick: onBrandClick, className: "flex items-center gap-2", children: [
@@ -189,12 +189,16 @@ function Sidebar({
189
189
  ] })
190
190
  ] }),
191
191
  /* @__PURE__ */ jsx(
192
- "aside",
192
+ motion.aside,
193
193
  {
194
194
  className: [
195
195
  "hidden xl:fixed xl:inset-y-0 xl:flex xl:flex-col xl:border-r xl:border-black/5 bg-white xl:py-6 dark:bg-[var(--fx-surface)] z-40",
196
- collapsed ? "xl:w-28 xl:px-3" : "xl:w-72 xl:px-4"
196
+ collapsed ? "xl:px-3" : "xl:px-4"
197
197
  ].join(" "),
198
+ initial: false,
199
+ animate: { width: collapsed ? 112 : 288 },
200
+ transition: { type: "spring", stiffness: 260, damping: 30, mass: 0.9 },
201
+ style: { width: collapsed ? 112 : 288 },
198
202
  children: /* @__PURE__ */ jsx(
199
203
  SidebarInner,
200
204
  {
@@ -213,7 +217,16 @@ function Sidebar({
213
217
  )
214
218
  }
215
219
  ),
216
- /* @__PURE__ */ jsx("div", { className: ["hidden xl:block", collapsed ? "xl:w-20" : "xl:w-72"].join(" ") }),
220
+ /* @__PURE__ */ jsx(
221
+ motion.div,
222
+ {
223
+ className: "hidden xl:block",
224
+ initial: false,
225
+ animate: { width: collapsed ? 112 : 288 },
226
+ transition: { type: "spring", stiffness: 260, damping: 30, mass: 0.9 },
227
+ style: { width: collapsed ? 112 : 288 }
228
+ }
229
+ ),
217
230
  /* @__PURE__ */ jsx(AnimatePresence, { children: drawerOpen && /* @__PURE__ */ jsxs(motion.div, { className: "fixed inset-0 z-40 xl:hidden", initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, children: [
218
231
  /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-black/40" }),
219
232
  /* @__PURE__ */ jsxs(
@@ -237,7 +250,7 @@ function Sidebar({
237
250
  variant: "ghost",
238
251
  size: "sm",
239
252
  leftIcon: /* @__PURE__ */ jsx(CloseIcon, {}),
240
- className: "h-9 w-9 p-0 !gap-0 rounded-xl border border-slate-200 bg-white text-slate-700 shadow-sm hover:bg-slate-50 dark:border-white/10 dark:bg-white/5 dark:text-slate-200"
253
+ className: "h-9 w-9 p-0 !gap-0 rounded-xl border border-slate-200 bg-white text-slate-700 shadow-sm hover:bg-slate-50 dark:border-white/10 dark:bg-[var(--fx-surface)] dark:text-slate-200"
241
254
  }
242
255
  ),
243
256
  /* @__PURE__ */ jsx("div", { className: "text-sm text-slate-500 dark:text-slate-400", children: "Men\xFA" })
@@ -282,10 +295,21 @@ function SidebarInner({
282
295
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between px-1", children: [
283
296
  /* @__PURE__ */ jsxs(Button, { unstyled: true, type: "button", className: "flex items-center gap-3", title: "Ir al inicio", children: [
284
297
  /* @__PURE__ */ jsx("div", { className: "text-2xl font-black tracking-tight", children: brandInitials }),
285
- !collapsed && /* @__PURE__ */ jsxs("div", { className: "leading-tight", children: [
286
- /* @__PURE__ */ jsx("div", { className: "text-lg font-semibold tracking-tight", children: brandTitle }),
287
- /* @__PURE__ */ jsx("div", { className: "text-[11px] uppercase tracking-wide text-slate-400 text-left", children: brandSubtitle })
288
- ] })
298
+ /* @__PURE__ */ jsx(AnimatePresence, { initial: false, children: !collapsed && /* @__PURE__ */ jsxs(
299
+ motion.div,
300
+ {
301
+ initial: { opacity: 0, x: -6 },
302
+ animate: { opacity: 1, x: 0 },
303
+ exit: { opacity: 0, x: -6 },
304
+ transition: { duration: 0.15 },
305
+ className: "leading-tight",
306
+ children: [
307
+ /* @__PURE__ */ jsx("div", { className: "text-lg font-semibold tracking-tight", children: brandTitle }),
308
+ /* @__PURE__ */ jsx("div", { className: "text-[11px] uppercase tracking-wide text-slate-400 text-left", children: brandSubtitle })
309
+ ]
310
+ },
311
+ "brand-meta"
312
+ ) })
289
313
  ] }),
290
314
  !mobile && /* @__PURE__ */ jsx(
291
315
  Button,
@@ -296,13 +320,13 @@ function SidebarInner({
296
320
  variant: "ghost",
297
321
  size: "sm",
298
322
  leftIcon: /* @__PURE__ */ jsx(ChevronLeftRightIcon, { collapsed: collapsed != null ? collapsed : false }),
299
- className: "hidden xl:inline-flex h-8 w-8 p-0 !gap-0 rounded-xl border border-slate-200 bg-white text-slate-700 shadow-sm hover:bg-slate-50 dark:border-white/10 dark:bg-white/5 dark:text-slate-200",
323
+ className: "hidden xl:inline-flex h-8 w-8 p-0 !gap-0 rounded-xl border border-slate-200 bg-white text-slate-700 shadow-sm hover:bg-slate-50 active:scale-[0.98] dark:border-white/10 dark:bg-[var(--fx-surface)] dark:text-slate-200",
300
324
  title: collapsed ? "Expandir" : "Contraer"
301
325
  }
302
326
  )
303
327
  ] }),
304
328
  collapsed && /* @__PURE__ */ jsx("div", { className: "mt-4 flex items-center justify-center", children: /* @__PURE__ */ jsx(AvatarSquare, { size: 48, src: (_a = user == null ? void 0 : user.avatarUrl) != null ? _a : void 0, radiusClass: "rounded-2xl", color }) }),
305
- !collapsed && /* @__PURE__ */ jsxs("div", { className: "mt-4 flex items-center gap-3 rounded-2xl border border-slate-200 bg-white p-2 pr-3 shadow-sm dark:border-white/10 dark:bg-white/5", children: [
329
+ !collapsed && /* @__PURE__ */ jsxs("div", { className: "mt-4 flex items-center gap-3 rounded-2xl border border-slate-200 bg-white p-2 pr-3 shadow-sm dark:border-white/10 dark:bg-[var(--fx-surface)]", children: [
306
330
  /* @__PURE__ */ jsx(AvatarSquare, { size: 48, src: (_b = user == null ? void 0 : user.avatarUrl) != null ? _b : void 0, radiusClass: "rounded-2xl", color }),
307
331
  /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
308
332
  /* @__PURE__ */ jsx("div", { className: "truncate text-sm font-semibold", children: (_c = user == null ? void 0 : user.name) != null ? _c : "Usuario" }),
@@ -368,7 +392,7 @@ function RenderItem({
368
392
  {
369
393
  className: [
370
394
  "grid h-9 w-9 place-items-center rounded-xl border transition",
371
- isActive ? `${ICON_BORDER_ACTIVE[color]} bg-white shadow-sm dark:bg-white/10` : "border-slate-200 bg-white shadow-sm dark:border-white/10 dark:bg-white/10"
395
+ isActive ? `${ICON_BORDER_ACTIVE[color]} bg-white shadow-sm dark:bg-[var(--fx-surface)]` : "border-slate-200 bg-white shadow-sm dark:border-white/10 dark:bg-[var(--fx-surface)]"
372
396
  ].join(" "),
373
397
  children: /* @__PURE__ */ jsx(Icon, { className: "h-5 w-5" })
374
398
  }
@@ -404,7 +428,7 @@ function RenderItem({
404
428
  {
405
429
  className: [
406
430
  "grid h-9 w-9 place-items-center rounded-xl border transition",
407
- isActive ? `${ICON_BORDER_ACTIVE[color]} bg-white shadow-sm dark:bg-white/10` : "border-slate-200 bg-white shadow-sm dark:border-white/10 dark:bg-white/10"
431
+ isActive ? `${ICON_BORDER_ACTIVE[color]} bg-white shadow-sm dark:bg-[var(--fx-surface)]` : "border-slate-200 bg-white shadow-sm dark:border-white/10 dark:bg-[var(--fx-surface)]"
408
432
  ].join(" "),
409
433
  children: /* @__PURE__ */ jsx(Icon, { className: "h-5 w-5" })
410
434
  }
@@ -427,7 +451,7 @@ function RenderItem({
427
451
  leftIcon: /* @__PURE__ */ jsx(ChevronDown, { open }),
428
452
  className: [
429
453
  "h-8 w-8 shrink-0 rounded-lg p-0 !gap-0 border",
430
- isActive ? `${TOGGLE_BORDER_ACTIVE[color]} bg-white/80 dark:bg-white/15` : "border-slate-200 bg-white dark:border-white/10 dark:bg-white/10"
454
+ isActive ? `${TOGGLE_BORDER_ACTIVE[color]} bg-white/80 dark:bg-white/15` : "border-slate-200 bg-white dark:border-white/10 dark:bg-[var(--fx-surface)]"
431
455
  ].join(" ")
432
456
  }
433
457
  )
@@ -443,7 +467,7 @@ function RenderItem({
443
467
  transition: { type: "tween", duration: 0.18 },
444
468
  className: "mt-1 overflow-hidden",
445
469
  style: { willChange: "height, opacity, transform" },
446
- children: /* @__PURE__ */ jsx("div", { className: "rounded-xl border border-slate-200 bg-white shadow-sm dark:border-white/10 dark:bg-white/10", children: children.map((ch) => {
470
+ children: /* @__PURE__ */ jsx("div", { className: "rounded-xl border border-slate-200 bg-white shadow-sm dark:border-white/10 dark:bg-[var(--fx-surface)]", children: children.map((ch) => {
447
471
  const active2 = ch.key === activeKey;
448
472
  return /* @__PURE__ */ jsx(
449
473
  Button,
@@ -495,7 +519,7 @@ function RenderItem({
495
519
  {
496
520
  className: [
497
521
  "grid h-9 w-9 place-items-center rounded-xl border text-slate-700 transition group-hover:scale-105 dark:text-slate-200",
498
- active ? `${ICON_BORDER_ACTIVE[color]} bg-white shadow-sm dark:bg-white/10` : "border-slate-200 bg-white shadow-sm dark:border-white/10 dark:bg-white/10"
522
+ active ? `${ICON_BORDER_ACTIVE[color]} bg-white shadow-sm dark:bg-[var(--fx-surface)]` : "border-slate-200 bg-white shadow-sm dark:border-white/10 dark:bg-[var(--fx-surface)]"
499
523
  ].join(" "),
500
524
  children: /* @__PURE__ */ jsx(Icon, { className: "h-5 w-5" })
501
525
  }
@@ -0,0 +1,34 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import React__default from 'react';
3
+
4
+ type SkeletonBaseProps = {
5
+ className?: string;
6
+ style?: React__default.CSSProperties;
7
+ };
8
+ declare function Skeleton({ className, style }: SkeletonBaseProps): react_jsx_runtime.JSX.Element;
9
+ declare function SkeletonCircle({ size, className }: {
10
+ size?: number;
11
+ className?: string;
12
+ }): react_jsx_runtime.JSX.Element;
13
+ declare function SkeletonLine({ width, height, className }: {
14
+ width?: number | string;
15
+ height?: number;
16
+ className?: string;
17
+ }): react_jsx_runtime.JSX.Element;
18
+ declare function SkeletonText({ lines, widths }: {
19
+ lines?: number;
20
+ widths?: Array<number | string>;
21
+ }): react_jsx_runtime.JSX.Element;
22
+ declare function SkeletonContainer({ loading, skeleton, children }: {
23
+ loading: boolean;
24
+ skeleton: React__default.ReactNode;
25
+ children: React__default.ReactNode;
26
+ }): react_jsx_runtime.JSX.Element;
27
+ declare const SkeletonCompound: typeof Skeleton & {
28
+ Circle: typeof SkeletonCircle;
29
+ Line: typeof SkeletonLine;
30
+ Text: typeof SkeletonText;
31
+ Container: typeof SkeletonContainer;
32
+ };
33
+
34
+ export { Skeleton, type SkeletonBaseProps, SkeletonCircle, SkeletonContainer, SkeletonLine, SkeletonText, SkeletonCompound as default };
@@ -0,0 +1,34 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import React__default from 'react';
3
+
4
+ type SkeletonBaseProps = {
5
+ className?: string;
6
+ style?: React__default.CSSProperties;
7
+ };
8
+ declare function Skeleton({ className, style }: SkeletonBaseProps): react_jsx_runtime.JSX.Element;
9
+ declare function SkeletonCircle({ size, className }: {
10
+ size?: number;
11
+ className?: string;
12
+ }): react_jsx_runtime.JSX.Element;
13
+ declare function SkeletonLine({ width, height, className }: {
14
+ width?: number | string;
15
+ height?: number;
16
+ className?: string;
17
+ }): react_jsx_runtime.JSX.Element;
18
+ declare function SkeletonText({ lines, widths }: {
19
+ lines?: number;
20
+ widths?: Array<number | string>;
21
+ }): react_jsx_runtime.JSX.Element;
22
+ declare function SkeletonContainer({ loading, skeleton, children }: {
23
+ loading: boolean;
24
+ skeleton: React__default.ReactNode;
25
+ children: React__default.ReactNode;
26
+ }): react_jsx_runtime.JSX.Element;
27
+ declare const SkeletonCompound: typeof Skeleton & {
28
+ Circle: typeof SkeletonCircle;
29
+ Line: typeof SkeletonLine;
30
+ Text: typeof SkeletonText;
31
+ Container: typeof SkeletonContainer;
32
+ };
33
+
34
+ export { Skeleton, type SkeletonBaseProps, SkeletonCircle, SkeletonContainer, SkeletonLine, SkeletonText, SkeletonCompound as default };