@aiquants/virtualscroll 1.8.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -36,94 +36,96 @@ const Te = {
36
36
  }
37
37
  )
38
38
  ] });
39
- }, Ce = ze(ge(({ onDragChange: r, className: t, maxVisualDistance: e = 160, size: n = 40, style: o, opacity: a = 1, renderVisual: u }, p) => {
40
- const [l, d] = Xt(Te), c = w(null), f = w({ x: 0, y: 0 }), S = w(null), b = w(0), _ = y(
41
- (I) => {
42
- d(I), r(I);
43
- },
44
- [r]
45
- ), X = y(
46
- (I, m, tt = !1) => {
47
- const { x: A, y: et } = f.current, it = I - A, At = m - et, W = Math.abs(At), U = W < pe ? 0 : At < 0 ? -1 : 1, dt = b.current;
48
- let ft = U;
49
- const E = pe + He;
50
- U === 0 ? dt !== 0 && W < E ? ft = dt : (ft = 0, tt || (b.current = 0)) : U !== dt && dt !== 0 && W < E ? ft = dt : b.current = U, _({
51
- active: tt || W >= pe,
52
- offsetX: it,
53
- offsetY: At,
54
- distance: W,
55
- direction: ft,
56
- pointerId: c.current
57
- });
58
- },
59
- [_]
60
- ), k = y((I) => {
61
- if (I === null)
62
- return;
63
- const m = S.current;
64
- m?.hasPointerCapture(I) && m.releasePointerCapture(I);
65
- }, []), B = y(
66
- (I = !1) => {
67
- I && k(c.current), c.current = null, b.current = 0, _(Te);
68
- },
69
- [_, k]
70
- ), ht = y(
71
- (I) => {
72
- I.preventDefault(), I.stopPropagation();
73
- const m = S.current ?? I.currentTarget, { left: tt, top: A, width: et, height: it } = m.getBoundingClientRect();
74
- f.current = { x: tt + et / 2, y: A + it / 2 }, c.current = I.pointerId, m.setPointerCapture(I.pointerId), X(I.clientX, I.clientY, !0);
75
- },
76
- [X]
77
- ), H = y(
78
- (I) => {
79
- c.current === I.pointerId && (I.preventDefault(), X(I.clientX, I.clientY));
80
- },
81
- [X]
82
- ), F = y(
83
- (I) => {
84
- c.current === I.pointerId && (I.preventDefault(), I.stopPropagation(), B(!0));
85
- },
86
- [B]
87
- );
88
- xe(
89
- p,
90
- () => ({
91
- reset: () => {
92
- B(!0);
39
+ }, Ce = ze(
40
+ ge(({ onDragChange: r, className: t, maxVisualDistance: e = 160, size: n = 40, style: o, opacity: a = 1, renderVisual: u }, p) => {
41
+ const [l, d] = Xt(Te), c = w(null), f = w({ x: 0, y: 0 }), S = w(null), b = w(0), _ = y(
42
+ (I) => {
43
+ d(I), r(I);
93
44
  },
94
- getElement: () => S.current
95
- }),
96
- [B]
97
- );
98
- const C = Math.min(Math.max(a, 0), 1), L = n / 64, R = Math.min(l.distance, e) / e, N = l.direction * R * 10 * L, st = u ?? Ue, ut = {
99
- dragState: l,
100
- normalizedDistance: R,
101
- sizeScale: L,
102
- size: n,
103
- opacity: C
104
- }, $ = {
105
- ...o,
106
- width: n,
107
- height: n,
108
- transform: `translateY(${N}px)`
109
- };
110
- return $.opacity = C, /* @__PURE__ */ Q(
111
- "div",
112
- {
113
- ref: S,
114
- "data-testid": "virtual-scroll-tap-circle",
115
- className: Zt("relative flex touch-none select-none items-center justify-center", "transition-transform duration-100 ease-out", t),
116
- style: $,
117
- tabIndex: -1,
118
- onPointerDown: ht,
119
- onPointerMove: H,
120
- onPointerUp: F,
121
- onPointerCancel: F,
122
- role: "presentation",
123
- children: st(ut)
124
- }
125
- );
126
- }));
45
+ [r]
46
+ ), X = y(
47
+ (I, m, tt = !1) => {
48
+ const { x: A, y: et } = f.current, it = I - A, At = m - et, W = Math.abs(At), U = W < pe ? 0 : At < 0 ? -1 : 1, dt = b.current;
49
+ let ft = U;
50
+ const E = pe + He;
51
+ U === 0 ? dt !== 0 && W < E ? ft = dt : (ft = 0, tt || (b.current = 0)) : U !== dt && dt !== 0 && W < E ? ft = dt : b.current = U, _({
52
+ active: tt || W >= pe,
53
+ offsetX: it,
54
+ offsetY: At,
55
+ distance: W,
56
+ direction: ft,
57
+ pointerId: c.current
58
+ });
59
+ },
60
+ [_]
61
+ ), k = y((I) => {
62
+ if (I === null)
63
+ return;
64
+ const m = S.current;
65
+ m?.hasPointerCapture(I) && m.releasePointerCapture(I);
66
+ }, []), B = y(
67
+ (I = !1) => {
68
+ I && k(c.current), c.current = null, b.current = 0, _(Te);
69
+ },
70
+ [_, k]
71
+ ), ht = y(
72
+ (I) => {
73
+ I.preventDefault(), I.stopPropagation();
74
+ const m = S.current ?? I.currentTarget, { left: tt, top: A, width: et, height: it } = m.getBoundingClientRect();
75
+ f.current = { x: tt + et / 2, y: A + it / 2 }, c.current = I.pointerId, m.setPointerCapture(I.pointerId), X(I.clientX, I.clientY, !0);
76
+ },
77
+ [X]
78
+ ), H = y(
79
+ (I) => {
80
+ c.current === I.pointerId && (I.preventDefault(), X(I.clientX, I.clientY));
81
+ },
82
+ [X]
83
+ ), F = y(
84
+ (I) => {
85
+ c.current === I.pointerId && (I.preventDefault(), I.stopPropagation(), B(!0));
86
+ },
87
+ [B]
88
+ );
89
+ xe(
90
+ p,
91
+ () => ({
92
+ reset: () => {
93
+ B(!0);
94
+ },
95
+ getElement: () => S.current
96
+ }),
97
+ [B]
98
+ );
99
+ const C = Math.min(Math.max(a, 0), 1), L = n / 64, R = Math.min(l.distance, e) / e, N = l.direction * R * 10 * L, st = u ?? Ue, ut = {
100
+ dragState: l,
101
+ normalizedDistance: R,
102
+ sizeScale: L,
103
+ size: n,
104
+ opacity: C
105
+ }, $ = {
106
+ ...o,
107
+ width: n,
108
+ height: n,
109
+ transform: `translateY(${N}px)`
110
+ };
111
+ return $.opacity = C, /* @__PURE__ */ Q(
112
+ "div",
113
+ {
114
+ ref: S,
115
+ "data-testid": "virtual-scroll-tap-circle",
116
+ className: Zt("relative flex touch-none select-none items-center justify-center", "transition-transform duration-100 ease-out", t),
117
+ style: $,
118
+ tabIndex: -1,
119
+ onPointerDown: ht,
120
+ onPointerMove: H,
121
+ onPointerUp: F,
122
+ onPointerCancel: F,
123
+ role: "presentation",
124
+ children: st(ut)
125
+ }
126
+ );
127
+ })
128
+ );
127
129
  Ce.displayName = "TapScrollCircle";
128
130
  const mt = (r, t, e) => Math.min(e, Math.max(t, r)), he = "virtualscroll:tap-scroll-cancel", be = 20, qe = 250, Be = 60, $e = 20, We = 20, Ke = 240, Pe = { active: !1, offsetX: 0, offsetY: 0, distance: 0, direction: 0, pointerId: null }, me = 2.2, je = 8, Ge = 120, Ze = 1 / 60, zt = {
129
131
  enabled: !0,
@@ -1 +1 @@
1
- {"version":3,"file":"TapScrollCircle.d.ts","sourceRoot":"","sources":["../../src/TapScrollCircle.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAqC,MAAM,OAAO,CAAA;AAIxF,MAAM,MAAM,wBAAwB,GAAG;IACnC,mEAAmE;IACnE,MAAM,EAAE,OAAO,CAAA;IACf,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAA;IACf,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAA;IAChB,+DAA+D;IAC/D,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IAC/B,4EAA4E;IAC5E,YAAY,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAA;IACvD,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAA;IACf,8EAA8E;IAC9E,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,SAAS,CAAA;CAClE,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAChC;;;;OAIG;IACH,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB;;;;OAIG;IACH,UAAU,EAAE,MAAM,cAAc,GAAG,IAAI,CAAA;CAC1C,CAAA;AAcD,MAAM,MAAM,0BAA0B,GAAG;IACrC,yDAAyD;IACzD,SAAS,EAAE,wBAAwB,CAAA;IACnC,+DAA+D;IAC/D,kBAAkB,EAAE,MAAM,CAAA;IAC1B,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAA;IACjB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAA;IACZ,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;CAClB,CAAA;AAgCD;;;GAGG;AACH,eAAO,MAAM,eAAe,mHAoKzB,CAAA"}
1
+ {"version":3,"file":"TapScrollCircle.d.ts","sourceRoot":"","sources":["../../src/TapScrollCircle.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAqC,MAAM,OAAO,CAAA;AAIxF,MAAM,MAAM,wBAAwB,GAAG;IACnC,mEAAmE;IACnE,MAAM,EAAE,OAAO,CAAA;IACf,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAA;IACf,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAA;IAChB,+DAA+D;IAC/D,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IAC/B,4EAA4E;IAC5E,YAAY,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAA;IACvD,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAA;IACf,8EAA8E;IAC9E,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,SAAS,CAAA;CAClE,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAChC;;;;OAIG;IACH,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB;;;;OAIG;IACH,UAAU,EAAE,MAAM,cAAc,GAAG,IAAI,CAAA;CAC1C,CAAA;AAcD,MAAM,MAAM,0BAA0B,GAAG;IACrC,yDAAyD;IACzD,SAAS,EAAE,wBAAwB,CAAA;IACnC,+DAA+D;IAC/D,kBAAkB,EAAE,MAAM,CAAA;IAC1B,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAA;IACjB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAA;IACZ,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;CAClB,CAAA;AAgCD;;;GAGG;AACH,eAAO,MAAM,eAAe,mHAsK3B,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiquants/virtualscroll",
3
- "version": "1.8.0",
3
+ "version": "1.9.0",
4
4
  "description": "High-performance virtual scrolling component for React with variable item heights",
5
5
  "sideEffects": [
6
6
  "**/*.css"