prometeo-design-system 4.2.5 → 4.3.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.
@@ -1,11 +1,11 @@
1
- import { j as m } from "./jsx-runtime-GkKLlHH4.js";
2
- import { u as St } from "./useDevice-vwn4GLwK.js";
3
- import { g as ct, r as H } from "./useLabelBackground-D5SzHhl_.js";
4
- import { c as E } from "./cn-B6yFEsav.js";
5
- import { c as U } from "./index-BOQuZ0gG.js";
6
- import at, { useRef as a, useCallback as P, useImperativeHandle as Mt, useLayoutEffect as Et, useEffect as Nt } from "react";
7
- import { CrevronLeft as kt } from "./Icons/CrevronLeft.es.js";
8
- const it = U(
1
+ import { j as y } from "./jsx-runtime-GkKLlHH4.js";
2
+ import { u as Pt } from "./useDevice-vwn4GLwK.js";
3
+ import { g as dt, r as V } from "./useLabelBackground-D5SzHhl_.js";
4
+ import { c as M } from "./cn-B6yFEsav.js";
5
+ import { c as K } from "./index-BOQuZ0gG.js";
6
+ import pt, { useRef as i, useState as zt, useCallback as C, useImperativeHandle as At, useLayoutEffect as Rt, useEffect as Bt } from "react";
7
+ import { CrevronLeft as gt } from "./Icons/CrevronLeft.es.js";
8
+ const mt = K(
9
9
  "",
10
10
  {
11
11
  variants: {
@@ -16,7 +16,7 @@ const it = U(
16
16
  }
17
17
  }
18
18
  }
19
- ), ut = U("", {
19
+ ), bt = K("", {
20
20
  variants: {
21
21
  position: {
22
22
  top: "",
@@ -39,7 +39,7 @@ const it = U(
39
39
  { type: "shadow", position: "left", className: "left-0 top-0 h-full w-5" },
40
40
  { type: "shadow", position: "right", className: "right-0 top-0 h-full w-5 rotate-180" }
41
41
  ]
42
- }), Ct = U("", {
42
+ }), $t = K("", {
43
43
  variants: {
44
44
  hide: {
45
45
  true: " prometeo-scrollbar-none",
@@ -50,317 +50,388 @@ const it = U(
50
50
  medium: ""
51
51
  }
52
52
  }
53
- }), Ot = (V) => {
54
- const { defaultBehavior: I = "scroll-on-click" } = V, ft = St(), dt = {
55
- top: { show: !0, type: "shadow", behavior: I },
56
- bottom: { show: !0, type: "shadow", behavior: I },
57
- left: { show: !0, type: "icon", behavior: I },
58
- right: { show: !0, type: "icon", behavior: I }
59
- }, ht = {
53
+ }), Kt = (X) => {
54
+ const { defaultBehavior: z = "scroll-on-click" } = X, vt = Pt(), yt = {
55
+ top: { show: !0, type: "shadow", behavior: z },
56
+ bottom: { show: !0, type: "shadow", behavior: z },
57
+ left: { show: !0, type: "icon", behavior: z },
58
+ right: { show: !0, type: "icon", behavior: z }
59
+ }, Tt = {
60
60
  hide: !1,
61
61
  size: "medium"
62
62
  }, {
63
- debugMode: pt = !1,
64
- className: _,
65
- axis: u = "both",
66
- children: gt,
67
- indicators: N = dt,
68
- scrollbarProps: F = ht,
69
- disableMouseScroll: J = !1,
70
- persistScroll: D = !1,
71
- controls: bt
72
- } = V, n = a({}), l = a(null), v = a(null), k = a(null), p = a(null), g = a(5), b = a({}), z = a(null), y = a(!1), X = a(!1), j = a(null), C = a(null), A = a([]), Y = a({ scrollTop: 0, scrollLeft: 0 }), mt = (e) => {
73
- if (!l.current) return 0;
74
- const { scrollTop: t, scrollLeft: r, scrollHeight: o, clientHeight: s, scrollWidth: c, clientWidth: f } = l.current;
75
- switch (e) {
63
+ debugMode: wt = !1,
64
+ className: Y,
65
+ axis: v = "both",
66
+ children: xt,
67
+ indicators: j = yt,
68
+ scrollbarProps: G = Tt,
69
+ disableMouseScroll: Q = !1,
70
+ persistScroll: A = !1,
71
+ controls: Lt,
72
+ scrollTopButton: w
73
+ } = X, c = i({}), n = i(null), u = i(null), N = i(null), a = i(null), f = i(5), h = i({}), D = i(null), g = i(!1), Z = i(!1), R = i(null), H = i(null), [St, Mt] = zt(!1), P = i([]), tt = i(/* @__PURE__ */ new Map()), et = i({ scrollTop: 0, scrollLeft: 0 }), q = (t) => {
74
+ if (!n.current) return 0;
75
+ const { scrollTop: r, scrollLeft: e, scrollHeight: o, clientHeight: s, scrollWidth: l, clientWidth: d } = n.current;
76
+ switch (t) {
76
77
  case "top":
77
- return Math.max(0, t);
78
+ return Math.max(0, r);
78
79
  case "bottom":
79
- return Math.max(0, o - (t + s));
80
+ return Math.max(0, o - (r + s));
80
81
  case "left":
81
- return Math.max(0, r);
82
+ return Math.max(0, e);
82
83
  case "right":
83
- return Math.max(0, c - (r + f));
84
+ return Math.max(0, l - (e + d));
84
85
  default:
85
86
  return 0;
86
87
  }
87
- }, K = P(() => {
88
- if (!l.current) return { x: 0, y: 0 };
89
- const { scrollTop: e, scrollLeft: t, scrollHeight: r, scrollWidth: o, clientHeight: s, clientWidth: c } = l.current, f = Math.max(0, r - s), d = Math.max(0, o - c), w = f > 0 ? e / f * 100 : 0;
90
- return { x: d > 0 ? t / d * 100 : 0, y: w };
91
- }, []), G = P((e) => {
92
- const t = Y.current;
93
- let r = null;
94
- return e.scrollTop > t.scrollTop ? r = "down" : e.scrollTop < t.scrollTop ? r = "up" : e.scrollLeft > t.scrollLeft ? r = "right" : e.scrollLeft < t.scrollLeft && (r = "left"), Y.current = e, r;
95
- }, []), vt = P((e) => {
96
- if (!l.current) return;
97
- const { scrollTop: t, scrollLeft: r, scrollHeight: o, scrollWidth: s, clientHeight: c, clientWidth: f } = l.current, d = G(e), { x: w, y: L } = K(), T = {
88
+ }, rt = C((t) => {
89
+ if (!t || !n.current) return 0;
90
+ const { clientHeight: r, scrollHeight: e } = n.current;
91
+ if (t.includes("%")) {
92
+ const o = parseFloat(t.replace("%", "")), s = Math.max(0, e - r);
93
+ return o / 100 * s;
94
+ } else {
95
+ if (t.includes("px"))
96
+ return parseFloat(t.replace("px", ""));
97
+ if (t.includes("vh"))
98
+ return parseFloat(t.replace("vh", "")) / 100 * window.innerHeight;
99
+ }
100
+ return 0;
101
+ }, []), Nt = C(() => {
102
+ if (!n.current || !w) return;
103
+ const { scrollTop: t } = n.current, r = rt(w.target || "40vh");
104
+ Mt(t >= r);
105
+ }, [w, rt]), ot = C(() => {
106
+ if (!n.current) return { x: 0, y: 0 };
107
+ const { scrollTop: t, scrollLeft: r, scrollHeight: e, scrollWidth: o, clientHeight: s, clientWidth: l } = n.current, d = Math.max(0, e - s), m = Math.max(0, o - l), T = d > 0 ? t / d * 100 : 0;
108
+ return { x: m > 0 ? r / m * 100 : 0, y: T };
109
+ }, []), nt = C((t) => {
110
+ const r = et.current;
111
+ let e = null;
112
+ return t.scrollTop > r.scrollTop ? e = "down" : t.scrollTop < r.scrollTop ? e = "up" : t.scrollLeft > r.scrollLeft ? e = "right" : t.scrollLeft < r.scrollLeft && (e = "left"), et.current = t, e;
113
+ }, []), Et = C((t) => {
114
+ if (!n.current) return;
115
+ const { scrollTop: r, scrollLeft: e, scrollHeight: o, scrollWidth: s, clientHeight: l, clientWidth: d } = n.current, m = nt(t), { x: T, y: L } = ot(), S = {
98
116
  percentage: L,
99
- direction: d,
100
- scrollTop: t,
101
- scrollLeft: r,
117
+ direction: m,
118
+ scrollTop: r,
119
+ scrollLeft: e,
102
120
  scrollHeight: o,
103
121
  scrollWidth: s,
104
- clientHeight: c,
105
- clientWidth: f
106
- }, B = {
107
- percentage: w,
108
- direction: d,
109
- scrollTop: t,
110
- scrollLeft: r,
122
+ clientHeight: l,
123
+ clientWidth: d
124
+ }, _ = {
125
+ percentage: T,
126
+ direction: m,
127
+ scrollTop: r,
128
+ scrollLeft: e,
111
129
  scrollHeight: o,
112
130
  scrollWidth: s,
113
- clientHeight: c,
114
- clientWidth: f
131
+ clientHeight: l,
132
+ clientWidth: d
115
133
  };
116
- A.current.forEach((i) => {
117
- const { config: h, triggered: R } = i;
118
- if (!h) {
119
- (u === "y" || u === "both") && i.callback(T), (u === "x" || u === "both") && i.callback(B);
134
+ P.current.forEach((p) => {
135
+ const { config: b, triggered: $ } = p;
136
+ if (!b) {
137
+ (v === "y" || v === "both") && p.callback(S), (v === "x" || v === "both") && p.callback(_);
120
138
  return;
121
139
  }
122
- const q = (h.direction === "y" || h.direction === "both") && (u === "y" || u === "both"), nt = (h.direction === "x" || h.direction === "both") && (u === "x" || u === "both");
123
- if (!q && !nt) return;
124
- const x = (q ? T : B).percentage, S = h.target * 100;
125
- let M = !1;
126
- if (h.trip === "forth")
127
- M = !R && x >= S, M && (i.triggered = !0), R && x < S && (i.triggered = !1);
128
- else if (h.trip === "back")
129
- M = R && x < S, M && (i.triggered = !1), !R && x >= S && (i.triggered = !0);
130
- else if (h.trip === "round-trip") {
131
- const xt = x >= S;
132
- M = i.triggered !== xt;
140
+ const J = (b.direction === "y" || b.direction === "both") && (v === "y" || v === "both"), ht = (b.direction === "x" || b.direction === "both") && (v === "x" || v === "both");
141
+ if (!J && !ht) return;
142
+ const E = (J ? S : _).percentage, I = b.target * 100;
143
+ let k = !1;
144
+ if (b.trip === "forth")
145
+ k = !$ && E >= I, k && (p.triggered = !0), $ && E < I && (p.triggered = !1);
146
+ else if (b.trip === "back")
147
+ k = $ && E < I, k && (p.triggered = !1), !$ && E >= I && (p.triggered = !0);
148
+ else if (b.trip === "round-trip") {
149
+ const O = E >= I;
150
+ k = p.triggered !== O;
151
+ }
152
+ if (k) {
153
+ const O = `${P.current.indexOf(p)}-${b?.target || 0}-${b?.direction || "y"}`, W = Date.now(), Ht = tt.current.get(O) || 0;
154
+ if (W - Ht < 500)
155
+ return;
156
+ b.trip === "round-trip" && (p.triggered = E >= I, p.lastDirection = m || void 0), tt.current.set(O, W), p.lastTriggerTime = W, J ? p.callback(S) : ht && p.callback(_);
133
157
  }
134
- M && (h.trip === "round-trip" && (i.triggered = x >= S, i.lastDirection = d || void 0), q && i.callback(T), nt && i.callback(B));
135
158
  });
136
- }, [u, G, K]), Q = P((e, t) => {
137
- const r = {
138
- callback: e,
139
- config: t,
159
+ }, [v, nt, ot]), st = C((t, r) => {
160
+ const e = {
161
+ callback: t,
162
+ config: r,
140
163
  triggered: !1,
141
164
  lastDirection: void 0
142
165
  };
143
- return A.current.push(r), () => {
144
- const o = A.current.indexOf(r);
145
- o > -1 && A.current.splice(o, 1);
166
+ return P.current.push(e), () => {
167
+ const o = P.current.indexOf(e);
168
+ o > -1 && P.current.splice(o, 1);
146
169
  };
147
170
  }, []);
148
- Mt(bt, () => ({
149
- subscribeToScrollTarget: Q
150
- }), [Q]);
151
- const W = (e, t = 100, r = !0) => {
152
- if (!l.current) return;
153
- const o = mt(e), s = Math.min(Math.abs(t), o);
171
+ At(Lt, () => ({
172
+ subscribeToScrollTarget: st
173
+ }), [st]);
174
+ const B = (t, r = 100, e = !0) => {
175
+ if (!n.current) return;
176
+ const o = q(t), s = Math.min(Math.abs(r), o);
154
177
  if (s === 0) return;
155
- const c = e === "top" || e === "left" ? -s : s, f = {
156
- top: { top: c, left: 0 },
157
- bottom: { top: c, left: 0 },
158
- left: { top: 0, left: c },
159
- right: { top: 0, left: c }
178
+ const l = t === "top" || t === "left" ? -s : s, d = {
179
+ top: { top: l, left: 0 },
180
+ bottom: { top: l, left: 0 },
181
+ left: { top: 0, left: l },
182
+ right: { top: 0, left: l }
160
183
  };
161
- l.current.scrollBy({ ...f[e], behavior: r ? "smooth" : "auto" });
162
- }, yt = (e) => {
163
- if (!l.current) return;
164
- const t = l.current, r = {
165
- top: { top: 0, left: t.scrollLeft },
166
- bottom: { top: t.scrollHeight, left: t.scrollLeft },
167
- left: { top: t.scrollTop, left: 0 },
168
- right: { top: t.scrollTop, left: t.scrollWidth }
184
+ n.current.scrollBy({ ...d[t], behavior: e ? "smooth" : "auto" });
185
+ }, It = (t) => {
186
+ if (!n.current) return;
187
+ const r = n.current, e = {
188
+ top: { top: 0, left: r.scrollLeft },
189
+ bottom: { top: r.scrollHeight, left: r.scrollLeft },
190
+ left: { top: r.scrollTop, left: 0 },
191
+ right: { top: r.scrollTop, left: r.scrollWidth }
169
192
  };
170
- t.scrollTo({ ...r[e], behavior: "smooth" });
171
- }, wt = (e, t) => {
172
- const r = n.current[e];
173
- if (r) {
174
- if (r.style.cursor = "pointer", t === "icon") {
175
- const o = r.querySelector("svg");
193
+ r.scrollTo({ ...e[t], behavior: "smooth" });
194
+ }, kt = () => {
195
+ n.current && n.current.scrollTo({ top: 0, behavior: "smooth" });
196
+ }, Ct = (t, r) => {
197
+ const e = c.current[t];
198
+ if (e) {
199
+ if (e.style.cursor = "pointer", r === "icon") {
200
+ const o = e.querySelector("svg");
176
201
  o && (o.style.transition = "all 0.3s ease-in-out", o.style.transform = "scale(1.3)", o.style.backgroundColor = "rgba(255, 255, 255, 0.2)", o.style.borderRadius = "100%");
177
- } else if (t === "shadow") {
178
- const o = r.querySelector("span"), s = ct(l.current);
179
- o && (e === "top" || e === "bottom" ? (o.style.height = "110px", o.style.background = `linear-gradient(to bottom, ${s} 5%, ${H(s, -2)} 10%, ${H(s, -5, 30)} 70%, transparent)`) : o.style.width = "40px");
202
+ } else if (r === "shadow") {
203
+ const o = e.querySelector("span"), s = dt(n.current);
204
+ o && (t === "top" || t === "bottom" ? (o.style.height = "110px", o.style.background = `linear-gradient(to bottom, ${s} 5%, ${V(s, -2)} 10%, ${V(s, -5, 30)} 70%, transparent)`, o.style.animation = "scrollToEndPulse 3.5s ease-out", setTimeout(() => {
205
+ o.style.animation = "";
206
+ }, 3500)) : (o.style.width = "40px", o.style.animation = "scrollToEndPulseVertical 1.5s ease-out", setTimeout(() => {
207
+ o.style.animation = "";
208
+ }, 1500)));
180
209
  }
181
210
  }
182
- }, O = (e) => {
183
- const t = n.current[e];
184
- if (!t) return;
185
- t.style.cursor = "";
186
- const r = t.querySelector("svg");
187
- r && (r.style.transform = "", r.style.backgroundColor = "", r.style.borderRadius = "");
188
- const o = t.querySelector("span");
211
+ }, x = (t) => {
212
+ const r = c.current[t];
213
+ if (!r) return;
214
+ r.style.cursor = "";
215
+ const e = r.querySelector("svg");
216
+ e && (e.style.transform = "", e.style.backgroundColor = "", e.style.borderRadius = "");
217
+ const o = r.querySelector("span");
189
218
  o && (o.style.height = "", o.style.width = "");
190
- }, Z = (e, t) => {
191
- if (t === "scroll-on-click" && y.current) {
192
- y.current = !1;
219
+ }, lt = (t, r) => {
220
+ if (r === "scroll-on-click" && g.current) {
221
+ g.current = !1;
193
222
  return;
194
223
  }
195
- if (b.current[e]) {
196
- p.current && (clearTimeout(p.current), p.current = null), v.current && (clearInterval(v.current), v.current = null), O(e), b.current[e] = !1, yt(e);
224
+ if (h.current[t]) {
225
+ a.current && (clearTimeout(a.current), a.current = null), u.current && (clearInterval(u.current), u.current = null), x(t), h.current[t] = !1, It(t);
197
226
  return;
198
227
  }
199
- if (t === "scroll-on-click") {
200
- if (!l.current) return;
201
- const { clientHeight: r, clientWidth: o } = l.current, s = e === "top" || e === "bottom" ? r * 0.8 : o * 0.8;
202
- W(e, s);
228
+ if (r === "scroll-on-click") {
229
+ if (!n.current) return;
230
+ const { clientHeight: e, clientWidth: o } = n.current, s = t === "top" || t === "bottom" ? e * 0.8 : o * 0.8;
231
+ B(t, s);
203
232
  }
204
- }, tt = (e, t) => {
205
- p.current && (clearTimeout(p.current), p.current = null), y.current = !0, g.current = 3;
206
- let r = 0;
207
- z.current = e, b.current[e] = !1, W(e, g.current, !1), v.current = setInterval(() => {
208
- r += 16;
209
- const o = r / 1e3;
210
- if (o >= 2 && !b.current[e] && (b.current[e] = !0, wt(e, t)), o <= 2)
211
- g.current = 5 + o * 0.4;
233
+ }, ct = (t, r) => {
234
+ a.current && (clearTimeout(a.current), a.current = null), g.current = !0, f.current = 3;
235
+ let e = 0;
236
+ D.current = t, h.current[t] = !1, B(t, f.current, !1), u.current = setInterval(() => {
237
+ e += 16;
238
+ const o = e / 1e3;
239
+ if (q(t) === 0) {
240
+ F(t);
241
+ return;
242
+ }
243
+ if (o >= 2 && !h.current[t] && (h.current[t] = !0, Ct(t, r)), o <= 2)
244
+ f.current = 5 + o * 0.4;
212
245
  else {
213
- const s = o - 2;
214
- g.current += Math.pow(s, 1.1) * 2;
246
+ const l = o - 2;
247
+ f.current += Math.pow(l, 1.1) * 2;
215
248
  }
216
- g.current = Math.min(g.current, 100), W(e, g.current, !1);
249
+ f.current = Math.min(f.current, 100), B(t, f.current, !1);
217
250
  }, 16);
218
- }, et = (e) => {
219
- k.current && (clearTimeout(k.current), k.current = null), v.current && (clearInterval(v.current), v.current = null), g.current = 5;
220
- const t = e || z.current;
221
- t ? b.current[t] ? (p.current && clearTimeout(p.current), p.current = setTimeout(() => {
222
- O(t), b.current[t] = !1, y.current = !1;
223
- }, 1e3)) : (O(t), b.current[t] = !1, y.current = !1) : y.current = !1, z.current = null;
224
- }, rt = (e, t, r) => {
225
- ft || t === "scroll-on-hover" && (k.current = setTimeout(() => {
226
- tt(e, r);
251
+ }, F = (t, r = !1) => {
252
+ N.current && (clearTimeout(N.current), N.current = null);
253
+ const e = t || D.current;
254
+ if (!r && e && u.current) {
255
+ let o = 0;
256
+ const s = f.current, l = 800, d = setInterval(() => {
257
+ o += 16;
258
+ const m = o / l, T = 1 - Math.pow(1 - m, 3);
259
+ if (f.current = s * (1 - T), q(e) === 0 || f.current <= 0.5) {
260
+ clearInterval(d), u.current && (clearInterval(u.current), u.current = null), f.current = 5, e ? h.current[e] ? (a.current && clearTimeout(a.current), a.current = setTimeout(() => {
261
+ x(e), h.current[e] = !1, g.current = !1;
262
+ }, 1e3)) : (x(e), h.current[e] = !1, g.current = !1) : g.current = !1, D.current = null;
263
+ return;
264
+ }
265
+ B(e, f.current, !1);
266
+ }, 16);
267
+ N.current = setTimeout(() => {
268
+ clearInterval(d), u.current && (clearInterval(u.current), u.current = null), f.current = 5, e ? h.current[e] ? (a.current && clearTimeout(a.current), a.current = setTimeout(() => {
269
+ x(e), h.current[e] = !1, g.current = !1;
270
+ }, 1e3)) : (x(e), h.current[e] = !1, g.current = !1) : g.current = !1, D.current = null;
271
+ }, l);
272
+ } else
273
+ u.current && (clearInterval(u.current), u.current = null), f.current = 5, e ? h.current[e] ? (a.current && clearTimeout(a.current), a.current = setTimeout(() => {
274
+ x(e), h.current[e] = !1, g.current = !1;
275
+ }, 1e3)) : (x(e), h.current[e] = !1, g.current = !1) : g.current = !1, D.current = null;
276
+ }, at = (t, r, e) => {
277
+ vt || r === "scroll-on-hover" && (N.current = setTimeout(() => {
278
+ ct(t, e);
227
279
  }, 200));
228
- }, ot = (e, t) => {
229
- t === "scroll-on-hover" && et(e);
230
- }, st = (e, t, r) => {
231
- t === "scroll-on-click" && (y.current = !1, k.current = setTimeout(() => {
232
- tt(e, r);
280
+ }, it = (t, r) => {
281
+ r === "scroll-on-hover" && F(t, !0);
282
+ }, ut = (t, r, e) => {
283
+ r === "scroll-on-click" && (g.current = !1, N.current = setTimeout(() => {
284
+ ct(t, e);
233
285
  }, 200));
234
- }, lt = (e, t) => {
235
- t === "scroll-on-click" && et(e);
236
- }, $ = () => {
237
- if (!l.current) return;
238
- const e = l.current, { scrollTop: t, scrollLeft: r, scrollHeight: o, scrollWidth: s, clientHeight: c, clientWidth: f } = e, d = t <= 10, w = t + c >= o - 10, L = r <= 10, T = r + f >= s - 10;
239
- n.current.top?.classList.toggle("opacity-0", d), n.current.top?.classList.toggle("pointer-events-none", d), n.current.top?.classList.toggle("pointer-events-auto", !d), n.current.bottom?.classList.toggle("opacity-0", w), n.current.bottom?.classList.toggle("pointer-events-none", w), n.current.bottom?.classList.toggle("pointer-events-auto", !w), n.current.left?.classList.toggle("opacity-0", L), n.current.left?.classList.toggle("pointer-events-none", L), n.current.left?.classList.toggle("pointer-events-auto", !L), n.current.right?.classList.toggle("opacity-0", T), n.current.right?.classList.toggle("pointer-events-none", T), n.current.right?.classList.toggle("pointer-events-auto", !T);
286
+ }, ft = (t, r) => {
287
+ r === "scroll-on-click" && F(t, !1);
288
+ }, U = () => {
289
+ if (!n.current) return;
290
+ const t = n.current, { scrollTop: r, scrollLeft: e, scrollHeight: o, scrollWidth: s, clientHeight: l, clientWidth: d } = t, m = r <= 10, T = r + l >= o - 10, L = e <= 10, S = e + d >= s - 10;
291
+ c.current.top?.classList.toggle("opacity-0", m), c.current.top?.classList.toggle("pointer-events-none", m), c.current.top?.classList.toggle("pointer-events-auto", !m), c.current.bottom?.classList.toggle("opacity-0", T), c.current.bottom?.classList.toggle("pointer-events-none", T), c.current.bottom?.classList.toggle("pointer-events-auto", !T), c.current.left?.classList.toggle("opacity-0", L), c.current.left?.classList.toggle("pointer-events-none", L), c.current.left?.classList.toggle("pointer-events-auto", !L), c.current.right?.classList.toggle("opacity-0", S), c.current.right?.classList.toggle("pointer-events-none", S), c.current.right?.classList.toggle("pointer-events-auto", !S);
240
292
  };
241
- Et(() => {
242
- if (!l.current) return;
243
- const e = l.current;
244
- if (D) {
245
- j.current = typeof D == "string" ? `scrollable-${D}` : `scrollable-${Math.random().toString(36).substr(2, 9)}`;
293
+ Rt(() => {
294
+ if (!n.current) return;
295
+ const t = n.current;
296
+ if (A) {
297
+ R.current = typeof A == "string" ? `scrollable-${A}` : `scrollable-${Math.random().toString(36).substr(2, 9)}`;
246
298
  try {
247
- const o = sessionStorage.getItem(j.current);
299
+ const o = sessionStorage.getItem(R.current);
248
300
  if (o) {
249
- const { scrollTop: s, scrollLeft: c } = JSON.parse(o);
250
- e.scrollTop = s, e.scrollLeft = c;
301
+ const { scrollTop: s, scrollLeft: l } = JSON.parse(o);
302
+ t.scrollTop = s, t.scrollLeft = l;
251
303
  }
252
304
  } catch {
253
305
  }
254
306
  }
255
- $(), X.current || (X.current = !0, requestAnimationFrame(() => {
256
- Object.values(n.current).forEach((o) => {
307
+ U(), Z.current || (Z.current = !0, requestAnimationFrame(() => {
308
+ Object.values(c.current).forEach((o) => {
257
309
  o?.classList.add("transition-all", "duration-300");
258
310
  }), setTimeout(() => {
259
- $();
311
+ U();
260
312
  }, 0);
261
313
  }));
262
- const t = () => {
263
- if ($(), l.current) {
314
+ const r = () => {
315
+ if (U(), Nt(), n.current) {
264
316
  const o = {
265
- scrollTop: l.current.scrollTop,
266
- scrollLeft: l.current.scrollLeft
317
+ scrollTop: n.current.scrollTop,
318
+ scrollLeft: n.current.scrollLeft
267
319
  };
268
- vt(o);
320
+ Et(o);
269
321
  }
270
- D && j.current && (C.current && clearTimeout(C.current), C.current = setTimeout(() => {
322
+ A && R.current && (H.current && clearTimeout(H.current), H.current = setTimeout(() => {
271
323
  try {
272
324
  const o = {
273
- scrollTop: e.scrollTop,
274
- scrollLeft: e.scrollLeft
325
+ scrollTop: t.scrollTop,
326
+ scrollLeft: t.scrollLeft
275
327
  };
276
- sessionStorage.setItem(j.current, JSON.stringify(o));
328
+ sessionStorage.setItem(R.current, JSON.stringify(o));
277
329
  } catch {
278
330
  }
279
331
  }, 150));
280
332
  };
281
- e.addEventListener("scroll", t);
282
- const r = (o) => {
283
- J && o.preventDefault();
333
+ t.addEventListener("scroll", r);
334
+ const e = (o) => {
335
+ Q && o.preventDefault();
284
336
  };
285
- return e.addEventListener("wheel", r, { passive: !1 }), () => {
286
- e.removeEventListener("scroll", t), e.removeEventListener("wheel", r), C.current && clearTimeout(C.current);
337
+ return t.addEventListener("wheel", e, { passive: !1 }), () => {
338
+ t.removeEventListener("scroll", r), t.removeEventListener("wheel", e), H.current && clearTimeout(H.current);
287
339
  };
288
- }, [J]), Nt(() => {
289
- if (!l.current) return;
290
- let e = ct(l.current);
291
- Object.entries(N).forEach(([t, r]) => {
292
- if (r?.show && r.type === "shadow") {
293
- const s = n.current[t]?.querySelector("span");
340
+ }, [Q]), Bt(() => {
341
+ if (!n.current) return;
342
+ let t = dt(n.current);
343
+ Object.entries(j).forEach(([r, e]) => {
344
+ if (e?.show && e.type === "shadow") {
345
+ const s = c.current[r]?.querySelector("span");
294
346
  if (s) {
295
- s.dataset.bgColor = e;
296
- const c = t === "left" || t === "right" ? "to right" : "to bottom";
297
- s.style.background = `linear-gradient(${c}, ${e} 5%, ${H(e, -2)} 10%, ${H(e, -5, 30)} 70%, transparent)`;
347
+ s.dataset.bgColor = t;
348
+ const l = r === "left" || r === "right" ? "to right" : "to bottom";
349
+ s.style.background = `linear-gradient(${l}, ${t} 5%, ${V(t, -2)} 10%, ${V(t, -5, 30)} 70%, transparent)`;
298
350
  }
299
351
  }
300
352
  });
301
- }, [N]);
302
- const Tt = at.Children.toArray(gt), Lt = Object.values(N).some((e) => e?.show && e?.type === "icon");
303
- return /* @__PURE__ */ m.jsxs("div", { className: E("relative p-0", _, it({ axis: u }), "scrolleable", Lt ? "overflow-visible" : "overflow-hidden!"), children: [
304
- /* @__PURE__ */ m.jsx(
353
+ }, [j]);
354
+ const jt = pt.Children.toArray(xt), Dt = Object.values(j).some((t) => t?.show && t?.type === "icon");
355
+ return /* @__PURE__ */ y.jsxs("div", { className: M("relative p-0", Y, mt({ axis: v }), "scrolleable", Dt ? "overflow-visible" : "overflow-hidden!"), children: [
356
+ /* @__PURE__ */ y.jsx(
305
357
  "div",
306
358
  {
307
- ref: l,
308
- className: E(
309
- pt && "border border-red-900 border-dashed",
310
- _,
359
+ ref: n,
360
+ className: M(
361
+ wt && "border border-red-900 border-dashed",
362
+ Y,
311
363
  "py-2 relative w-full h-full min-h-full",
312
- it({ axis: u }),
313
- Ct({ hide: F?.hide, size: F?.size }),
364
+ mt({ axis: v }),
365
+ $t({ hide: G?.hide, size: G?.size }),
314
366
  ""
315
367
  ),
316
- children: Tt?.map((e) => at.cloneElement(e, { className: E(e?.props?.className, "shrink-0! pointer-events-auto") }))
368
+ children: jt?.map((t) => pt.cloneElement(t, { className: M(t?.props?.className, "shrink-0! pointer-events-auto") }))
317
369
  }
318
370
  ),
319
- /* @__PURE__ */ m.jsx("div", { className: "h-full w-full z-10 absolute inset-0 pointer-events-none overflow-hidden rounded-[inherit]", children: Object.entries(N).map(([e, t]) => {
320
- if (!t?.show || t.type !== "shadow") return null;
321
- const r = e;
322
- return /* @__PURE__ */ m.jsx(
371
+ /* @__PURE__ */ y.jsx("div", { className: "h-full w-full z-10 absolute inset-0 pointer-events-none overflow-hidden rounded-[inherit]", children: Object.entries(j).map(([t, r]) => {
372
+ if (!r?.show || r.type !== "shadow") return null;
373
+ const e = t;
374
+ return /* @__PURE__ */ y.jsx(
323
375
  "span",
324
376
  {
325
377
  ref: (o) => {
326
- n.current[e] = o;
378
+ c.current[t] = o;
327
379
  },
328
- className: E(
380
+ className: M(
329
381
  "cursor-default ease-in-out z-100",
330
382
  "opacity-0 pointer-events-none"
331
383
  ),
332
- onClick: () => Z(r, t.behavior),
333
- onMouseEnter: () => rt(r, t.behavior, t.type),
334
- onMouseLeave: () => ot(r, t.behavior),
335
- onMouseDown: () => st(r, t.behavior, t.type),
336
- onMouseUp: () => lt(r, t.behavior),
337
- children: /* @__PURE__ */ m.jsx("span", { className: E(ut({ position: r, type: "shadow" }), t.className) })
384
+ onClick: () => lt(e, r.behavior),
385
+ onMouseEnter: () => at(e, r.behavior, r.type),
386
+ onMouseLeave: () => it(e, r.behavior),
387
+ onMouseDown: () => ut(e, r.behavior, r.type),
388
+ onMouseUp: () => ft(e, r.behavior),
389
+ children: /* @__PURE__ */ y.jsx("span", { className: M(bt({ position: e, type: "shadow" }), r.className) })
338
390
  },
339
- e
391
+ t
340
392
  );
341
393
  }) }),
342
- /* @__PURE__ */ m.jsx("div", { className: "h-full w-full z-20 absolute inset-0 pointer-events-none", children: Object.entries(N).map(([e, t]) => {
343
- if (!t?.show || t.type !== "icon") return null;
344
- const r = e;
345
- return /* @__PURE__ */ m.jsx(
394
+ /* @__PURE__ */ y.jsx("div", { className: "h-full w-full z-20 absolute inset-0 pointer-events-none", children: Object.entries(j).map(([t, r]) => {
395
+ if (!r?.show || r.type !== "icon") return null;
396
+ const e = t;
397
+ return /* @__PURE__ */ y.jsx(
346
398
  "span",
347
399
  {
348
400
  ref: (o) => {
349
- n.current[e] = o;
401
+ c.current[t] = o;
350
402
  },
351
403
  className: "pointer-events-auto cursor-default transition-all duration-300 opacity-0",
352
- onClick: () => Z(r, t.behavior),
353
- onMouseEnter: () => rt(r, t.behavior, t.type),
354
- onMouseLeave: () => ot(r, t.behavior),
355
- onMouseDown: () => st(r, t.behavior, t.type),
356
- onMouseUp: () => lt(r, t.behavior),
357
- children: /* @__PURE__ */ m.jsx(kt, { size: 20, className: E(ut({ position: r, type: "icon" }), t.className) })
404
+ onClick: () => lt(e, r.behavior),
405
+ onMouseEnter: () => at(e, r.behavior, r.type),
406
+ onMouseLeave: () => it(e, r.behavior),
407
+ onMouseDown: () => ut(e, r.behavior, r.type),
408
+ onMouseUp: () => ft(e, r.behavior),
409
+ children: /* @__PURE__ */ y.jsx(gt, { size: 20, className: M(bt({ position: e, type: "icon" }), r.className) })
358
410
  },
359
- e
411
+ t
360
412
  );
361
- }) })
413
+ }) }),
414
+ w && /* @__PURE__ */ y.jsx(
415
+ "button",
416
+ {
417
+ onClick: kt,
418
+ className: M(
419
+ "absolute bottom-6 right-6 z-50 p-3 rounded-full shadow-lg transition-all duration-300 hover:scale-110 pointer-events-auto cursor-pointer",
420
+ "bg-primary-default-default hover:bg-primary-default-hover text-white",
421
+ // Transiciones de aparición/desaparición
422
+ "transform translate-y-0 opacity-70",
423
+ !St && "translate-y-4 opacity-0 pointer-events-none",
424
+ w.className
425
+ ),
426
+ "aria-label": "Scroll to top",
427
+ style: {
428
+ transition: "all 0.3s ease-in-out"
429
+ },
430
+ children: w.icon ? /* @__PURE__ */ y.jsx(w.icon, { size: 20, className: "text-white" }) : /* @__PURE__ */ y.jsx(gt, { size: 20, className: "text-white rotate-90" })
431
+ }
432
+ )
362
433
  ] });
363
434
  };
364
435
  export {
365
- Ot as Scrollable
436
+ Kt as Scrollable
366
437
  };