@ttt-productions/mobile-core 0.2.5 → 0.2.8

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.d.ts CHANGED
@@ -11,4 +11,6 @@ export * from "./safe-area/SafeArea";
11
11
  export * from "./scroll/useScrollLock";
12
12
  export * from "./ios/useIosSafariFixes";
13
13
  export * from "./ios/useNoRubberBand";
14
+ export * from "./pull-to-refresh/usePullToRefresh";
15
+ export * from "./pull-to-refresh/PullToRefreshContainer";
14
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AAEtB,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AAEjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAEhD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AAErC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AAEtB,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AAEjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAEhD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AAErC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC"}
package/dist/index.js CHANGED
@@ -11,4 +11,6 @@ export * from "./safe-area/SafeArea";
11
11
  export * from "./scroll/useScrollLock";
12
12
  export * from "./ios/useIosSafariFixes";
13
13
  export * from "./ios/useNoRubberBand";
14
+ export * from "./pull-to-refresh/usePullToRefresh";
15
+ export * from "./pull-to-refresh/PullToRefreshContainer";
14
16
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AAEtB,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AAEjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAEhD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AAErC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AAEtB,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AAEjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAEhD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AAErC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC"}
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+ type Props = {
3
+ onRefresh: () => Promise<void>;
4
+ disabled?: boolean;
5
+ className?: string;
6
+ children: React.ReactNode;
7
+ };
8
+ /**
9
+ * Drop-in wrapper that adds pull-to-refresh to its children.
10
+ * Desktop-safe: touch handlers never fire, indicator never shows.
11
+ *
12
+ * Usage:
13
+ * ```tsx
14
+ * <PullToRefreshContainer onRefresh={async () => { await refetch(); }}>
15
+ * <YourContent />
16
+ * </PullToRefreshContainer>
17
+ * ```
18
+ */
19
+ export declare function PullToRefreshContainer({ onRefresh, disabled, className, children }: Props): import("react/jsx-runtime").JSX.Element;
20
+ export {};
21
+ //# sourceMappingURL=PullToRefreshContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PullToRefreshContainer.d.ts","sourceRoot":"","sources":["../../src/pull-to-refresh/PullToRefreshContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,KAAK,KAAK,GAAG;IACX,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AA6CF;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,KAAK,2CA+CzF"}
@@ -0,0 +1,46 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { usePullToRefresh } from "./usePullToRefresh";
3
+ const INDICATOR_SIZE = 32;
4
+ function SpinnerIndicator({ progress, isRefreshing }) {
5
+ const radius = 10;
6
+ const circumference = 2 * Math.PI * radius;
7
+ const dashOffset = circumference * (1 - progress);
8
+ return (_jsxs("svg", { width: INDICATOR_SIZE, height: INDICATOR_SIZE, viewBox: "0 0 24 24", style: {
9
+ display: "block",
10
+ animation: isRefreshing ? "ttt-ptr-spin 0.8s linear infinite" : "none",
11
+ }, children: [_jsx("circle", { cx: "12", cy: "12", r: radius, fill: "none", stroke: "currentColor", strokeWidth: "2", opacity: 0.15 }), _jsx("circle", { cx: "12", cy: "12", r: radius, fill: "none", stroke: "currentColor", strokeWidth: "2", strokeDasharray: circumference, strokeDashoffset: isRefreshing ? circumference * 0.25 : dashOffset, strokeLinecap: "round", style: { transition: isRefreshing ? "none" : "stroke-dashoffset 0.1s ease-out" }, transform: "rotate(-90 12 12)" })] }));
12
+ }
13
+ /**
14
+ * Drop-in wrapper that adds pull-to-refresh to its children.
15
+ * Desktop-safe: touch handlers never fire, indicator never shows.
16
+ *
17
+ * Usage:
18
+ * ```tsx
19
+ * <PullToRefreshContainer onRefresh={async () => { await refetch(); }}>
20
+ * <YourContent />
21
+ * </PullToRefreshContainer>
22
+ * ```
23
+ */
24
+ export function PullToRefreshContainer({ onRefresh, disabled, className, children }) {
25
+ const { isRefreshing, pullProgress, pullDistance, handlers, style } = usePullToRefresh({
26
+ onRefresh,
27
+ disabled,
28
+ });
29
+ const showIndicator = pullDistance > 0 || isRefreshing;
30
+ const indicatorOpacity = isRefreshing ? 1 : Math.min(1, pullProgress * 1.5);
31
+ return (_jsxs(_Fragment, { children: [_jsx("style", { children: `@keyframes ttt-ptr-spin { to { transform: rotate(360deg); } }` }), _jsxs("div", { className: className, ...handlers, style: { position: "relative", overscrollBehaviorY: "contain" }, children: [_jsx("div", { "aria-hidden": true, style: {
32
+ position: "absolute",
33
+ top: 0,
34
+ left: 0,
35
+ right: 0,
36
+ display: "flex",
37
+ justifyContent: "center",
38
+ transform: `translateY(${showIndicator ? pullDistance - INDICATOR_SIZE - 8 : -INDICATOR_SIZE - 8}px)`,
39
+ opacity: indicatorOpacity,
40
+ transition: pullDistance > 0 && !isRefreshing ? "none" : "transform 0.3s ease-out, opacity 0.3s ease-out",
41
+ pointerEvents: "none",
42
+ zIndex: 10,
43
+ color: "var(--foreground, currentColor)",
44
+ }, children: _jsx(SpinnerIndicator, { progress: pullProgress, isRefreshing: isRefreshing }) }), _jsx("div", { style: style, children: children })] })] }));
45
+ }
46
+ //# sourceMappingURL=PullToRefreshContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PullToRefreshContainer.js","sourceRoot":"","sources":["../../src/pull-to-refresh/PullToRefreshContainer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { type CSSProperties, type RefObject, type TouchEventHandler } from "react";
2
+ type PullToRefreshOptions = {
3
+ onRefresh: () => Promise<void>;
4
+ /** Scroll container ref. Omit to use window scroll (document.scrollingElement). */
5
+ containerRef?: RefObject<HTMLElement | null>;
6
+ /** Pixels the user must pull before a refresh triggers (default 80). */
7
+ threshold?: number;
8
+ /** Max pixels the indicator can stretch (default 120). */
9
+ maxPull?: number;
10
+ /** Disable the gesture entirely. */
11
+ disabled?: boolean;
12
+ };
13
+ type PullToRefreshResult = {
14
+ isRefreshing: boolean;
15
+ /** 0-1 progress toward the threshold. */
16
+ pullProgress: number;
17
+ /** Current pull distance in px (for indicator positioning). */
18
+ pullDistance: number;
19
+ handlers: {
20
+ onTouchStart: TouchEventHandler;
21
+ onTouchMove: TouchEventHandler;
22
+ onTouchEnd: TouchEventHandler;
23
+ };
24
+ /** Apply to the content wrapper for the translateY shift. */
25
+ style: CSSProperties;
26
+ };
27
+ /**
28
+ * Pull-to-refresh gesture for mobile web.
29
+ *
30
+ * Desktop-safe: touch handlers simply never fire on non-touch devices.
31
+ */
32
+ export declare function usePullToRefresh(opts: PullToRefreshOptions): PullToRefreshResult;
33
+ export {};
34
+ //# sourceMappingURL=usePullToRefresh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePullToRefresh.d.ts","sourceRoot":"","sources":["../../src/pull-to-refresh/usePullToRefresh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGlH,KAAK,oBAAoB,GAAG;IAC1B,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,mFAAmF;IACnF,YAAY,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC7C,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE;QACR,YAAY,EAAE,iBAAiB,CAAC;QAChC,WAAW,EAAE,iBAAiB,CAAC;QAC/B,UAAU,EAAE,iBAAiB,CAAC;KAC/B,CAAC;IACF,6DAA6D;IAC7D,KAAK,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,mBAAmB,CA8FhF"}
@@ -0,0 +1,84 @@
1
+ import { useCallback, useRef, useState } from "react";
2
+ import { isBrowser } from "../env";
3
+ /**
4
+ * Pull-to-refresh gesture for mobile web.
5
+ *
6
+ * Desktop-safe: touch handlers simply never fire on non-touch devices.
7
+ */
8
+ export function usePullToRefresh(opts) {
9
+ const { onRefresh, containerRef, threshold = 80, maxPull = 120, disabled = false, } = opts;
10
+ const [pullDistance, setPullDistance] = useState(0);
11
+ const [isRefreshing, setIsRefreshing] = useState(false);
12
+ const startYRef = useRef(0);
13
+ const pullingRef = useRef(false);
14
+ const getScrollTop = useCallback(() => {
15
+ if (!isBrowser)
16
+ return 1; // pretend not at top in SSR
17
+ if (containerRef?.current)
18
+ return containerRef.current.scrollTop;
19
+ return document.scrollingElement?.scrollTop ?? window.scrollY;
20
+ }, [containerRef]);
21
+ const onTouchStart = useCallback((e) => {
22
+ if (disabled || isRefreshing)
23
+ return;
24
+ if (getScrollTop() > 0)
25
+ return; // not at top
26
+ startYRef.current = e.touches[0].clientY;
27
+ pullingRef.current = true;
28
+ }, [disabled, isRefreshing, getScrollTop]);
29
+ const onTouchMove = useCallback((e) => {
30
+ if (!pullingRef.current || disabled || isRefreshing)
31
+ return;
32
+ const currentY = e.touches[0].clientY;
33
+ const delta = currentY - startYRef.current;
34
+ if (delta <= 0) {
35
+ // scrolling up — cancel pull
36
+ setPullDistance(0);
37
+ return;
38
+ }
39
+ // If the user has scrolled away from top mid-gesture, cancel
40
+ if (getScrollTop() > 0) {
41
+ pullingRef.current = false;
42
+ setPullDistance(0);
43
+ return;
44
+ }
45
+ // Apply resistance: diminishing returns past threshold
46
+ const clamped = Math.min(delta, maxPull);
47
+ const resisted = clamped < threshold
48
+ ? clamped
49
+ : threshold + (clamped - threshold) * 0.4;
50
+ setPullDistance(resisted);
51
+ }, [disabled, isRefreshing, threshold, maxPull, getScrollTop]);
52
+ const onTouchEnd = useCallback(async () => {
53
+ if (!pullingRef.current)
54
+ return;
55
+ pullingRef.current = false;
56
+ if (pullDistance >= threshold && !isRefreshing) {
57
+ setIsRefreshing(true);
58
+ setPullDistance(threshold * 0.5); // hold at half-threshold during refresh
59
+ try {
60
+ await onRefresh();
61
+ }
62
+ finally {
63
+ setIsRefreshing(false);
64
+ setPullDistance(0);
65
+ }
66
+ }
67
+ else {
68
+ setPullDistance(0);
69
+ }
70
+ }, [pullDistance, threshold, isRefreshing, onRefresh]);
71
+ const progress = Math.min(1, pullDistance / threshold);
72
+ const style = {
73
+ transform: pullDistance > 0 ? `translateY(${pullDistance}px)` : undefined,
74
+ transition: pullingRef.current ? "none" : "transform 0.3s ease-out",
75
+ };
76
+ return {
77
+ isRefreshing,
78
+ pullProgress: progress,
79
+ pullDistance,
80
+ handlers: { onTouchStart, onTouchMove, onTouchEnd },
81
+ style,
82
+ };
83
+ }
84
+ //# sourceMappingURL=usePullToRefresh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePullToRefresh.js","sourceRoot":"","sources":["../../src/pull-to-refresh/usePullToRefresh.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ttt-productions/mobile-core",
3
- "version": "0.2.5",
3
+ "version": "0.2.8",
4
4
  "description": "Shared mobile utilities and responsive helpers for TTT Productions apps",
5
5
  "repository": {
6
6
  "type": "git",