@stacknav/core 0.3.1 → 0.4.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/README.md +111 -59
- package/dist/animate.d.ts +18 -0
- package/dist/animate.d.ts.map +1 -1
- package/dist/animate.js +44 -2
- package/dist/animate.js.map +1 -1
- package/dist/css-vars.d.ts +3 -3
- package/dist/css-vars.d.ts.map +1 -1
- package/dist/css-vars.js +47 -4
- package/dist/css-vars.js.map +1 -1
- package/dist/history-adapter.d.ts +0 -1
- package/dist/history-adapter.d.ts.map +1 -1
- package/dist/history-adapter.js +1 -5
- package/dist/history-adapter.js.map +1 -1
- package/dist/index.d.ts +27 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +38 -15
- package/dist/index.js.map +1 -1
- package/dist/native-transition.d.ts +93 -0
- package/dist/native-transition.d.ts.map +1 -0
- package/dist/{ios-transition.js → native-transition.js} +42 -25
- package/dist/native-transition.js.map +1 -0
- package/dist/navigation-stack.d.ts +3 -0
- package/dist/navigation-stack.d.ts.map +1 -1
- package/dist/navigation-stack.js +42 -3
- package/dist/navigation-stack.js.map +1 -1
- package/dist/platform.d.ts +6 -0
- package/dist/platform.d.ts.map +1 -0
- package/dist/platform.js +22 -0
- package/dist/platform.js.map +1 -0
- package/dist/stacknav.css +4 -13
- package/dist/styles.d.ts +5 -9
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +6 -12
- package/dist/styles.js.map +1 -1
- package/dist/swipe-back.d.ts +4 -0
- package/dist/swipe-back.d.ts.map +1 -0
- package/dist/swipe-back.js +31 -0
- package/dist/swipe-back.js.map +1 -0
- package/package.json +3 -2
- package/src/animate.ts +47 -4
- package/src/css-vars.ts +43 -4
- package/src/history-adapter.ts +1 -5
- package/src/index.ts +49 -24
- package/src/{ios-transition.ts → native-transition.ts} +67 -35
- package/src/navigation-stack.ts +30 -3
- package/src/platform.ts +23 -0
- package/src/styles.ts +6 -12
- package/src/swipe-back.ts +35 -0
- package/dist/edge-pan-gesture.d.ts +0 -36
- package/dist/edge-pan-gesture.d.ts.map +0 -1
- package/dist/edge-pan-gesture.js +0 -155
- package/dist/edge-pan-gesture.js.map +0 -1
- package/dist/ios-transition.d.ts +0 -61
- package/dist/ios-transition.d.ts.map +0 -1
- package/dist/ios-transition.js.map +0 -1
- package/src/edge-pan-gesture.ts +0 -190
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation-stack.js","sourceRoot":"","sources":["../src/navigation-stack.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"navigation-stack.js","sourceRoot":"","sources":["../src/navigation-stack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type Platform = 'ios' | 'android';
|
|
2
|
+
export declare function isIOSBrowser(): boolean;
|
|
3
|
+
export declare function isAndroidBrowser(): boolean;
|
|
4
|
+
/** `android` on an Android browser, otherwise `ios`. */
|
|
5
|
+
export declare function detectPlatform(): Platform;
|
|
6
|
+
//# sourceMappingURL=platform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAEzC,wBAAgB,YAAY,IAAI,OAAO,CAGtC;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAK1C;AAED,wDAAwD;AACxD,wBAAgB,cAAc,IAAI,QAAQ,CAEzC"}
|
package/dist/platform.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// Which native platform the page is running on, so the transition can follow
|
|
2
|
+
// that platform's own push/pop. Nothing here is certain: user agents lie, and
|
|
3
|
+
// desktop browsers are neither. iOS is the default when nothing is recognized,
|
|
4
|
+
// because that is the look most web apps expect from a stack transition.
|
|
5
|
+
export function isIOSBrowser() {
|
|
6
|
+
if (typeof navigator === 'undefined')
|
|
7
|
+
return false;
|
|
8
|
+
return /iP(hone|ad|od)/.test(navigator.platform) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);
|
|
9
|
+
}
|
|
10
|
+
export function isAndroidBrowser() {
|
|
11
|
+
if (typeof navigator === 'undefined')
|
|
12
|
+
return false;
|
|
13
|
+
const hints = navigator.userAgentData;
|
|
14
|
+
if (hints?.platform)
|
|
15
|
+
return hints.platform === 'Android';
|
|
16
|
+
return /\bAndroid\b/.test(navigator.userAgent ?? '');
|
|
17
|
+
}
|
|
18
|
+
/** `android` on an Android browser, otherwise `ios`. */
|
|
19
|
+
export function detectPlatform() {
|
|
20
|
+
return !isIOSBrowser() && isAndroidBrowser() ? 'android' : 'ios';
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=platform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,8EAA8E;AAC9E,+EAA+E;AAC/E,yEAAyE;AAIzE,MAAM,UAAU,YAAY;IAC1B,IAAI,OAAO,SAAS,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IACnD,OAAO,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,UAAU,IAAI,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;AAC1H,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,OAAO,SAAS,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IACnD,MAAM,KAAK,GAAI,SAAuD,CAAC,aAAa,CAAC;IACrF,IAAI,KAAK,EAAE,QAAQ;QAAE,OAAO,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC;IACzD,OAAO,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,YAAY,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AACnE,CAAC"}
|
package/dist/stacknav.css
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
/* Tune the
|
|
1
|
+
/* Tune the transition by setting these on .sn-container or any ancestor (the values shown are the iOS preset):
|
|
2
2
|
--sn-duration: 500ms; push/pop length
|
|
3
|
-
--sn-easing: cubic-bezier(0.32, 0.72, 0, 1); its curve: a cubic-bezier, a keyword, or
|
|
3
|
+
--sn-easing: cubic-bezier(0.32, 0.72, 0, 1); its curve: a cubic-bezier, linear(), a keyword, ios or android
|
|
4
|
+
--sn-travel: 100%; how far the incoming page travels
|
|
4
5
|
--sn-parallax: 30%; how far the page beneath travels
|
|
6
|
+
--sn-fade: 1; the incoming page opacity when closed; 0 fades it in
|
|
5
7
|
--sn-dim-color: #000; overlay on the page beneath
|
|
6
8
|
--sn-dim-max: 10%; its opacity at full open
|
|
7
9
|
--sn-shadow: -3px 0 14px rgba(0,0,0,0.16); on the incoming page; none to remove it
|
|
@@ -24,7 +26,6 @@
|
|
|
24
26
|
overflow-x: hidden;
|
|
25
27
|
-webkit-overflow-scrolling: touch;
|
|
26
28
|
overscroll-behavior-y: contain;
|
|
27
|
-
touch-action: pan-y;
|
|
28
29
|
visibility: hidden;
|
|
29
30
|
transform: translate3d(0,0,0);
|
|
30
31
|
}
|
|
@@ -46,16 +47,6 @@
|
|
|
46
47
|
opacity: 0;
|
|
47
48
|
transition: opacity var(--sn-t,0s) var(--sn-e,linear);
|
|
48
49
|
}
|
|
49
|
-
.sn-edge {
|
|
50
|
-
position: absolute;
|
|
51
|
-
inset-block: 0;
|
|
52
|
-
inset-inline-start: 0;
|
|
53
|
-
z-index: 10;
|
|
54
|
-
touch-action: none;
|
|
55
|
-
}
|
|
56
|
-
.sn-container:not(.sn-can-pop) .sn-edge,.sn-container.sn-anywhere .sn-edge {
|
|
57
|
-
display: none;
|
|
58
|
-
}
|
|
59
50
|
.sn-busy {
|
|
60
51
|
user-select: none;
|
|
61
52
|
-webkit-user-select: none;
|
package/dist/styles.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The only styles the engine needs. These cover layout and the motion itself,
|
|
3
3
|
* not appearance: the look lives in the transition and is tuned through the
|
|
4
|
-
* `--sn-*` custom properties (see `
|
|
4
|
+
* `--sn-*` custom properties (see `NATIVE_TRANSITION_CSS_VARS` and the README).
|
|
5
5
|
* Those properties are documented but deliberately not declared, because
|
|
6
6
|
* leaving one unset is what makes its JS default apply.
|
|
7
7
|
*
|
|
@@ -20,8 +20,7 @@
|
|
|
20
20
|
* - `.sn-container:dir(rtl)`: reading direction is a CSS question, so the
|
|
21
21
|
* transform the engine writes is signed by `--sn-dir` rather than by JS.
|
|
22
22
|
* - `.sn-page`: absolutely fills the container and is its own scroll container.
|
|
23
|
-
* `
|
|
24
|
-
* drags reach the gesture; `visibility: hidden` keeps pages beneath the top
|
|
23
|
+
* `visibility: hidden` keeps pages beneath the top
|
|
25
24
|
* mounted (scroll position, form state) but out of sight and out of the
|
|
26
25
|
* accessibility tree. The identity transform is the resting state, and the
|
|
27
26
|
* containing block the dim overlay is positioned against.
|
|
@@ -30,14 +29,11 @@
|
|
|
30
29
|
* transition in flight. Only these transition, and only these are promoted,
|
|
31
30
|
* so a deep stack costs nothing at rest. Both `transform` and `opacity` are
|
|
32
31
|
* listed, so a transition of your own can fade a page as well as move it and
|
|
33
|
-
* still be run by the browser; the iOS look only ever changes `transform
|
|
34
|
-
* and a property that does not change
|
|
32
|
+
* still be run by the browser; the iOS look only ever changes `transform`
|
|
33
|
+
* (the Android look fades as well), and a property that does not change
|
|
34
|
+
* starts no transition.
|
|
35
35
|
* - `.sn-dim`: the overlay the lower page dims behind. CSS resolves its colour;
|
|
36
36
|
* the transition supplies a fallback colour and writes its opacity.
|
|
37
|
-
* - `.sn-edge`: the strip the swipe-back gesture listens on. `inset-inline-start`
|
|
38
|
-
* puts it on the leading edge in either reading direction; its width is the
|
|
39
|
-
* gesture's `edgeWidth` option, and whether it is shown at all follows from
|
|
40
|
-
* the container's classes.
|
|
41
37
|
* - `.sn-busy`: no clicks land on a page that is mid-transition, and a drag
|
|
42
38
|
* does not select the text under it.
|
|
43
39
|
* - `prefers-reduced-motion`: forces the phase duration to zero in CSS. The
|
package/dist/styles.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,YAAY,QASoD,CAAC;AAE9E,eAAO,MAAM,iBAAiB,oBAAoB,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,GAAE,QAAQ,GAAG,IAAwD,GAAG,IAAI,CAM3G"}
|
package/dist/styles.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The only styles the engine needs. These cover layout and the motion itself,
|
|
3
3
|
* not appearance: the look lives in the transition and is tuned through the
|
|
4
|
-
* `--sn-*` custom properties (see `
|
|
4
|
+
* `--sn-*` custom properties (see `NATIVE_TRANSITION_CSS_VARS` and the README).
|
|
5
5
|
* Those properties are documented but deliberately not declared, because
|
|
6
6
|
* leaving one unset is what makes its JS default apply.
|
|
7
7
|
*
|
|
@@ -20,8 +20,7 @@
|
|
|
20
20
|
* - `.sn-container:dir(rtl)`: reading direction is a CSS question, so the
|
|
21
21
|
* transform the engine writes is signed by `--sn-dir` rather than by JS.
|
|
22
22
|
* - `.sn-page`: absolutely fills the container and is its own scroll container.
|
|
23
|
-
* `
|
|
24
|
-
* drags reach the gesture; `visibility: hidden` keeps pages beneath the top
|
|
23
|
+
* `visibility: hidden` keeps pages beneath the top
|
|
25
24
|
* mounted (scroll position, form state) but out of sight and out of the
|
|
26
25
|
* accessibility tree. The identity transform is the resting state, and the
|
|
27
26
|
* containing block the dim overlay is positioned against.
|
|
@@ -30,14 +29,11 @@
|
|
|
30
29
|
* transition in flight. Only these transition, and only these are promoted,
|
|
31
30
|
* so a deep stack costs nothing at rest. Both `transform` and `opacity` are
|
|
32
31
|
* listed, so a transition of your own can fade a page as well as move it and
|
|
33
|
-
* still be run by the browser; the iOS look only ever changes `transform
|
|
34
|
-
* and a property that does not change
|
|
32
|
+
* still be run by the browser; the iOS look only ever changes `transform`
|
|
33
|
+
* (the Android look fades as well), and a property that does not change
|
|
34
|
+
* starts no transition.
|
|
35
35
|
* - `.sn-dim`: the overlay the lower page dims behind. CSS resolves its colour;
|
|
36
36
|
* the transition supplies a fallback colour and writes its opacity.
|
|
37
|
-
* - `.sn-edge`: the strip the swipe-back gesture listens on. `inset-inline-start`
|
|
38
|
-
* puts it on the leading edge in either reading direction; its width is the
|
|
39
|
-
* gesture's `edgeWidth` option, and whether it is shown at all follows from
|
|
40
|
-
* the container's classes.
|
|
41
37
|
* - `.sn-busy`: no clicks land on a page that is mid-transition, and a drag
|
|
42
38
|
* does not select the text under it.
|
|
43
39
|
* - `prefers-reduced-motion`: forces the phase duration to zero in CSS. The
|
|
@@ -46,12 +42,10 @@
|
|
|
46
42
|
*/
|
|
47
43
|
export const STACKNAV_CSS = '.sn-container{position:relative;overflow:hidden}' +
|
|
48
44
|
'.sn-container:dir(rtl){--sn-dir:-1}' +
|
|
49
|
-
'.sn-page{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;
|
|
45
|
+
'.sn-page{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;visibility:hidden;transform:translate3d(0,0,0)}' +
|
|
50
46
|
'.sn-page-visible{visibility:visible}' +
|
|
51
47
|
'.sn-page-upper,.sn-page-lower{will-change:transform;transition-property:transform,opacity;transition-duration:var(--sn-t,0s);transition-timing-function:var(--sn-e,linear)}' +
|
|
52
48
|
'.sn-dim{position:fixed;inset:0;z-index:2147483647;pointer-events:none;background:var(--sn-dim-color,var(--sn-dim-fallback,#000));opacity:0;transition:opacity var(--sn-t,0s) var(--sn-e,linear)}' +
|
|
53
|
-
'.sn-edge{position:absolute;inset-block:0;inset-inline-start:0;z-index:10;touch-action:none}' +
|
|
54
|
-
'.sn-container:not(.sn-can-pop) .sn-edge,.sn-container.sn-anywhere .sn-edge{display:none}' +
|
|
55
49
|
'.sn-busy{user-select:none;-webkit-user-select:none}' +
|
|
56
50
|
'.sn-busy .sn-page{pointer-events:none}' +
|
|
57
51
|
'@media(prefers-reduced-motion:reduce){.sn-container{--sn-t:0s!important}}';
|
package/dist/styles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,CAAC,MAAM,YAAY,GACvB,kDAAkD;IAClD,qCAAqC;IACrC,qLAAqL;IACrL,sCAAsC;IACtC,6KAA6K;IAC7K,kMAAkM;IAClM,qDAAqD;IACrD,wCAAwC;IACxC,2EAA2E,CAAC;AAE9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAAuB,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;IACnG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,iBAAiB,CAAC;QAAE,OAAO;IAC1D,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,GAAG,iBAAiB,CAAC;IAC7B,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC;IACjC,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swipe-back.d.ts","sourceRoot":"","sources":["../src/swipe-back.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;AAYnD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,WAAW,GAAG,MAAM,IAAI,CAqBvE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// Several outlets can share one viewport. Restore it only after the last
|
|
2
|
+
// suppression request is released, including when stacks are destroyed.
|
|
3
|
+
const suppressions = /*#__PURE__*/ new WeakMap();
|
|
4
|
+
export function suppressBrowserSwipe(container) {
|
|
5
|
+
const root = container.ownerDocument.documentElement;
|
|
6
|
+
const property = 'overscroll-behavior-x';
|
|
7
|
+
let state = suppressions.get(root);
|
|
8
|
+
if (!state) {
|
|
9
|
+
state = { count: 0, value: root.style.getPropertyValue(property), priority: root.style.getPropertyPriority(property) };
|
|
10
|
+
suppressions.set(root, state);
|
|
11
|
+
root.style.setProperty(property, 'contain', 'important');
|
|
12
|
+
}
|
|
13
|
+
state.count++;
|
|
14
|
+
let released = false;
|
|
15
|
+
return () => {
|
|
16
|
+
if (released)
|
|
17
|
+
return;
|
|
18
|
+
released = true;
|
|
19
|
+
if (--state.count)
|
|
20
|
+
return;
|
|
21
|
+
suppressions.delete(root);
|
|
22
|
+
// Do not overwrite a newer declaration installed by the application.
|
|
23
|
+
if (root.style.getPropertyValue(property) !== 'contain' || root.style.getPropertyPriority(property) !== 'important')
|
|
24
|
+
return;
|
|
25
|
+
if (state.value)
|
|
26
|
+
root.style.setProperty(property, state.value, state.priority);
|
|
27
|
+
else
|
|
28
|
+
root.style.removeProperty(property);
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=swipe-back.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swipe-back.js","sourceRoot":"","sources":["../src/swipe-back.ts"],"names":[],"mappings":"AASA,yEAAyE;AACzE,wEAAwE;AACxE,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,OAAO,EAA4B,CAAC;AAE3E,MAAM,UAAU,oBAAoB,CAAC,SAAsB;IACzD,MAAM,IAAI,GAAG,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC;IACrD,MAAM,QAAQ,GAAG,uBAAuB,CAAC;IACzC,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvH,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC;IACD,KAAK,CAAC,KAAK,EAAE,CAAC;IACd,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,OAAO,GAAG,EAAE;QACV,IAAI,QAAQ;YAAE,OAAO;QACrB,QAAQ,GAAG,IAAI,CAAC;QAChB,IAAI,EAAE,KAAK,CAAC,KAAK;YAAE,OAAO;QAC1B,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,qEAAqE;QACrE,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,WAAW;YAAE,OAAO;QAC5H,IAAI,KAAK,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;;YAC1E,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stacknav/core",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Framework-agnostic
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "Framework-agnostic native-style (iOS and Android) push/pop navigation stack: transition, interactive swipe back, direction resolution, history mirroring.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"keywords": [
|
|
8
8
|
"navigation",
|
|
9
9
|
"transition",
|
|
10
10
|
"ios",
|
|
11
|
+
"android",
|
|
11
12
|
"swipe-back",
|
|
12
13
|
"stack",
|
|
13
14
|
"animation"
|
package/src/animate.ts
CHANGED
|
@@ -50,10 +50,40 @@ export function cubicBezier(x1: number, y1: number, x2: number, y2: number): Eas
|
|
|
50
50
|
// `#__PURE__` marks the module-load calls as droppable, so a bundler that does
|
|
51
51
|
// not honour the package's `sideEffects` flag can still leave this module out
|
|
52
52
|
// when nothing here is imported.
|
|
53
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Straight lines through `points` (`[x, y]` pairs, x from 0 to 1 and never
|
|
55
|
+
* decreasing), the curve CSS `linear()` draws. Spelled for CSS the same way
|
|
56
|
+
* unless `css` says otherwise. A browser without `linear()` (Chrome < 113,
|
|
57
|
+
* Safari < 17.2, Firefox < 112) runs its default `ease` instead.
|
|
58
|
+
*/
|
|
59
|
+
export function linearEasing(points: ReadonlyArray<readonly [number, number]>, css?: string): Easing {
|
|
60
|
+
const f = (t: number): number => {
|
|
61
|
+
if (t <= points[0][0]) return points[0][1];
|
|
62
|
+
let i = 1;
|
|
63
|
+
while (i < points.length - 1 && points[i][0] < t) i++;
|
|
64
|
+
const [x0, y0] = points[i - 1], [x1, y1] = points[i];
|
|
65
|
+
return x1 > x0 ? y0 + (y1 - y0) * Math.min(1, (t - x0) / (x1 - x0)) : y1;
|
|
66
|
+
};
|
|
67
|
+
return Object.assign(f, { css: css ?? `linear(${points.map(([x, y]) => `${y} ${x * 100}%`).join(', ')})` });
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export const easings: { linear: Easing; ios: Easing; easeOut: Easing; android: Easing; androidSettle: Easing } = {
|
|
54
71
|
linear: /*#__PURE__*/ Object.assign((t: number) => t, { css: 'linear' }),
|
|
55
72
|
ios: /*#__PURE__*/ cubicBezier(0.32, 0.72, 0, 1), // the common approximation of UIKit's navigation curve
|
|
56
73
|
easeOut: /*#__PURE__*/ cubicBezier(0.2, 0.8, 0.2, 1),
|
|
74
|
+
// AOSP's `fast_out_extra_slow_in`, the interpolator behind activity open and
|
|
75
|
+
// close since Android 13 (frameworks/base, core/res/res/interpolator). It is
|
|
76
|
+
// a path of two cubics, `M0,0 C0.05,0 0.133,0.06 0.167,0.4 C0.208,0.82 0.25,1
|
|
77
|
+
// 1,1`, which one `cubic-bezier()` cannot bend into; these stops follow it
|
|
78
|
+
// to within 0.006 and are what CSS gets.
|
|
79
|
+
android: /*#__PURE__*/ linearEasing([
|
|
80
|
+
[0, 0], [0.03125, 0.008], [0.0625, 0.033], [0.09375, 0.08], [0.125, 0.162], [0.140625, 0.225], [0.15625, 0.313],
|
|
81
|
+
[0.1640625, 0.375], [0.171875, 0.451], [0.1796875, 0.517], [0.1875, 0.571], [0.203125, 0.649], [0.21875, 0.702],
|
|
82
|
+
[0.25, 0.773], [0.28125, 0.819], [0.3125, 0.853], [0.375, 0.899], [0.5, 0.951], [0.625, 0.977], [0.75, 0.991], [1, 1],
|
|
83
|
+
]),
|
|
84
|
+
// The "standard decelerate" Android's predictive-back guidelines ask for
|
|
85
|
+
// when a released gesture runs out.
|
|
86
|
+
androidSettle: /*#__PURE__*/ cubicBezier(0, 0, 0, 1),
|
|
57
87
|
};
|
|
58
88
|
|
|
59
89
|
/** How an easing should be spelled for CSS. A curve with no spelling runs linearly. */
|
|
@@ -81,7 +111,9 @@ export type CancellableTween = Promise<void> & { cancel(): void };
|
|
|
81
111
|
* The engine does not use this to move pages, CSS does that. It uses it to
|
|
82
112
|
* report `progress` to listeners, and only while someone is listening.
|
|
83
113
|
*/
|
|
84
|
-
|
|
114
|
+
// The default is spelled out rather than taken from `easings`, so a bundle that
|
|
115
|
+
// only needs the tween does not carry the curves.
|
|
116
|
+
export function tween({ from, to, duration, ease = (t) => t, onUpdate }: TweenOptions): CancellableTween {
|
|
85
117
|
let raf = 0;
|
|
86
118
|
let done = false;
|
|
87
119
|
let finish: () => void;
|
|
@@ -145,5 +177,16 @@ export function animationsFinished(els: Array<HTMLElement | null | undefined>, p
|
|
|
145
177
|
return running.length ? Promise.all(running).then(() => {}) : Promise.resolve();
|
|
146
178
|
}
|
|
147
179
|
|
|
148
|
-
|
|
149
|
-
|
|
180
|
+
/** `matchMedia`, and false where there is none: a server, a test. */
|
|
181
|
+
export const matchesMedia = (query: string): boolean =>
|
|
182
|
+
typeof matchMedia === 'function' && matchMedia(query).matches;
|
|
183
|
+
|
|
184
|
+
export const prefersReducedMotion = (): boolean => matchesMedia('(prefers-reduced-motion: reduce)');
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Whether the primary pointer is coarse: a phone or a tablet, not a mouse. The
|
|
188
|
+
* test to reach for when a behaviour is meant for handhelds only. It is a media
|
|
189
|
+
* query, so it answers again after the device changes — a tablet docked to a
|
|
190
|
+
* trackpad stops being touch-primary.
|
|
191
|
+
*/
|
|
192
|
+
export const isTouchPrimary = (): boolean => matchesMedia('(pointer: coarse)');
|
package/src/css-vars.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// NaN, so an unreadable value falls through to its JS option instead of
|
|
8
8
|
// producing an invalid transform.
|
|
9
9
|
|
|
10
|
-
import { cubicBezier, easings, type Easing } from './animate.ts';
|
|
10
|
+
import { cubicBezier, easings, linearEasing, type Easing } from './animate.ts';
|
|
11
11
|
|
|
12
12
|
/** Looks a custom property up on an element; `undefined` when it is not set. */
|
|
13
13
|
export type CSSVarReader = (name: string) => string | undefined;
|
|
@@ -69,18 +69,57 @@ const easingKeywordsOf = (): Record<string, Easing> =>
|
|
|
69
69
|
'ease-in-out': cubicBezier(0.42, 0, 0.58, 1),
|
|
70
70
|
ios: easings.ios,
|
|
71
71
|
'ios-settle': easings.easeOut,
|
|
72
|
+
android: easings.android,
|
|
73
|
+
'android-settle': easings.androidSettle,
|
|
72
74
|
}));
|
|
73
75
|
|
|
74
76
|
/**
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
77
|
+
* `linear(y [x%] [x%], …)` as CSS defines it: a stop without a position sits
|
|
78
|
+
* evenly between its positioned neighbours, the first and last default to 0%
|
|
79
|
+
* and 100%, positions never go backwards, and two positions make two stops.
|
|
80
|
+
*/
|
|
81
|
+
function parseLinear(body: string): Easing | undefined {
|
|
82
|
+
const xs: Array<number | undefined> = [], ys: number[] = [];
|
|
83
|
+
for (const stop of body.split(',')) {
|
|
84
|
+
const [y, ...positions] = stop.trim().split(/\s+/);
|
|
85
|
+
const yn = parseNumber(y);
|
|
86
|
+
if (yn === undefined || positions.length > 2) return undefined;
|
|
87
|
+
for (const pos of positions.length ? positions : [undefined]) {
|
|
88
|
+
const xn = pos === undefined ? undefined : pos.endsWith('%') ? parseNumber(pos.slice(0, -1)) : NaN;
|
|
89
|
+
if (Number.isNaN(xn)) return undefined;
|
|
90
|
+
xs.push(xn === undefined ? undefined : xn / 100);
|
|
91
|
+
ys.push(yn);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (ys.length < 2) return undefined;
|
|
95
|
+
xs[0] ??= 0;
|
|
96
|
+
xs[xs.length - 1] ??= 1;
|
|
97
|
+
for (let i = 1; i < xs.length; i++) {
|
|
98
|
+
if (xs[i] !== undefined) continue;
|
|
99
|
+
let j = i;
|
|
100
|
+
while (xs[j] === undefined) j++;
|
|
101
|
+
for (let k = i; k < j; k++) xs[k] = xs[i - 1]! + ((xs[j]! - xs[i - 1]!) * (k - i + 1)) / (j - i + 1);
|
|
102
|
+
}
|
|
103
|
+
const x = xs as number[];
|
|
104
|
+
for (let i = 1; i < x.length; i++) x[i] = Math.max(x[i], x[i - 1]);
|
|
105
|
+
return linearEasing(
|
|
106
|
+
x.map((xi, i) => [xi, ys[i]] as const),
|
|
107
|
+
`linear(${body.trim()})`,
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* A timing keyword, `cubic-bezier(x1, y1, x2, y2)` or `linear(…)`. The bezier's
|
|
113
|
+
* x coordinates must be within [0, 1], as CSS requires. Outside that range the
|
|
114
|
+
* curve is not a function of time and the solver would not converge.
|
|
78
115
|
*/
|
|
79
116
|
export function parseEasing(v: string | undefined): Easing | undefined {
|
|
80
117
|
if (v === undefined) return undefined;
|
|
81
118
|
const s = v.trim().toLowerCase();
|
|
82
119
|
const keyword = easingKeywordsOf()[s];
|
|
83
120
|
if (keyword) return keyword;
|
|
121
|
+
const l = /^linear\(([^)]*)\)$/.exec(s);
|
|
122
|
+
if (l) return parseLinear(l[1]);
|
|
84
123
|
const m = /^cubic-bezier\(([^)]*)\)$/.exec(s);
|
|
85
124
|
if (!m) return undefined;
|
|
86
125
|
const n = m[1].split(',').map((part) => parseNumber(part));
|
package/src/history-adapter.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { NavigationStack } from './navigation-stack.ts';
|
|
2
|
+
import { isIOSBrowser } from './platform.ts';
|
|
2
3
|
|
|
3
4
|
export interface BrowserHistoryOptions {
|
|
4
5
|
/** the `history.state` property that carries the depth */
|
|
@@ -45,8 +46,3 @@ export function attachBrowserHistory(stack: NavigationStack, { key = 'snDepth',
|
|
|
45
46
|
window.removeEventListener('popstate', onPopState);
|
|
46
47
|
};
|
|
47
48
|
}
|
|
48
|
-
|
|
49
|
-
export function isIOSBrowser(): boolean {
|
|
50
|
-
if (typeof navigator === 'undefined') return false;
|
|
51
|
-
return /iP(hone|ad|od)/.test(navigator.platform) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);
|
|
52
|
-
}
|
package/src/index.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export type { SwipeBackMode } from './swipe-back.ts';
|
|
1
2
|
export { NavigationStack } from './navigation-stack.ts';
|
|
2
3
|
export type {
|
|
3
4
|
StackEntry,
|
|
@@ -16,15 +17,15 @@ export type {
|
|
|
16
17
|
TransitionEvent,
|
|
17
18
|
ProgressEvent,
|
|
18
19
|
} from './navigation-stack.ts';
|
|
19
|
-
export {
|
|
20
|
-
export type {
|
|
20
|
+
export { createNativeTransition, nativeTransitionPreset, NATIVE_TRANSITION_CSS_VARS } from './native-transition.ts';
|
|
21
|
+
export type { NativeTransition, NativeTransitionOptions, NativeTransitionPreset } from './native-transition.ts';
|
|
21
22
|
export { cssVars, parseTime, parseNumber, parseRatio, parseEasing } from './css-vars.ts';
|
|
22
23
|
export type { CSSVarReader } from './css-vars.ts';
|
|
23
|
-
export {
|
|
24
|
-
export type { EdgePanGesture, EdgePanGestureOptions } from './edge-pan-gesture.ts';
|
|
25
|
-
export { attachBrowserHistory, isIOSBrowser } from './history-adapter.ts';
|
|
24
|
+
export { attachBrowserHistory } from './history-adapter.ts';
|
|
26
25
|
export type { BrowserHistoryOptions } from './history-adapter.ts';
|
|
27
|
-
export {
|
|
26
|
+
export { detectPlatform, isIOSBrowser, isAndroidBrowser } from './platform.ts';
|
|
27
|
+
export type { Platform } from './platform.ts';
|
|
28
|
+
export { cubicBezier, linearEasing, easings, cssEasing, cssDuration, tween, commitStyles, animationsFinished, prefersReducedMotion, matchesMedia, isTouchPrimary } from './animate.ts';
|
|
28
29
|
export type { Easing, TweenOptions, CancellableTween } from './animate.ts';
|
|
29
30
|
export {
|
|
30
31
|
resolveDirection,
|
|
@@ -52,34 +53,58 @@ export type {
|
|
|
52
53
|
export { STACKNAV_CSS, STACKNAV_STYLE_ID, injectStyles } from './styles.ts';
|
|
53
54
|
|
|
54
55
|
import { NavigationStack } from './navigation-stack.ts';
|
|
55
|
-
import {
|
|
56
|
-
import { createEdgePanGesture, type EdgePanGesture, type EdgePanGestureOptions } from './edge-pan-gesture.ts';
|
|
56
|
+
import { createNativeTransition, type NativeTransition, type NativeTransitionOptions } from './native-transition.ts';
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
import { suppressBrowserSwipe, type SwipeBackMode } from './swipe-back.ts';
|
|
59
|
+
|
|
60
|
+
export interface NativeStackOptions {
|
|
59
61
|
container: HTMLElement;
|
|
60
|
-
transition?: Partial<
|
|
61
|
-
|
|
62
|
+
transition?: Partial<NativeTransitionOptions>;
|
|
63
|
+
/** Default browser. Disabled requests document-wide browser swipe suppression. */
|
|
64
|
+
swipeBack?: SwipeBackMode;
|
|
62
65
|
}
|
|
63
66
|
|
|
64
|
-
export interface
|
|
65
|
-
transition:
|
|
66
|
-
|
|
67
|
+
export interface NativeStack extends NavigationStack {
|
|
68
|
+
transition: NativeTransition;
|
|
69
|
+
readonly swipeBack: SwipeBackMode;
|
|
70
|
+
/** Changes the policy without replacing pages or changing browser history. */
|
|
71
|
+
setSwipeBack(mode: SwipeBackMode): void;
|
|
67
72
|
}
|
|
68
73
|
|
|
69
74
|
/**
|
|
70
|
-
* Wires the
|
|
71
|
-
* transition
|
|
72
|
-
* `
|
|
75
|
+
* Wires the two pieces together in one call: a stack in `container` and the
|
|
76
|
+
* platform's native transition. The browser keeps the back gesture unless
|
|
77
|
+
* `disabled` asks for suppression; destroying releases that request.
|
|
78
|
+
*
|
|
79
|
+
* There is no gesture recognizer here on purpose. In a browser tab the browser
|
|
80
|
+
* already owns the edge and will not give it up, so a second recognizer reads
|
|
81
|
+
* as two backs at once. Apps that own the edge -- an installed PWA, a native
|
|
82
|
+
* webview -- can drive `beginInteractivePop()` from their own pointer handling.
|
|
73
83
|
*/
|
|
74
|
-
export function
|
|
75
|
-
const t =
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
84
|
+
export function createNativeStack({ container, transition = {}, swipeBack = 'browser' }: NativeStackOptions): NativeStack {
|
|
85
|
+
const t = createNativeTransition(transition);
|
|
86
|
+
const stack = new NavigationStack({ container, transition: t }) as NativeStack;
|
|
87
|
+
let mode: SwipeBackMode | undefined;
|
|
88
|
+
let release: (() => void) | undefined;
|
|
89
|
+
let destroyed = false;
|
|
90
|
+
Object.defineProperty(stack, 'swipeBack', { get: () => mode });
|
|
91
|
+
stack.setSwipeBack = (next) => {
|
|
92
|
+
if (destroyed || next === mode) return;
|
|
93
|
+
if (next !== 'browser' && next !== 'disabled') throw new TypeError('Invalid swipeBack mode');
|
|
94
|
+
if (next === 'browser') {
|
|
95
|
+
release?.();
|
|
96
|
+
release = undefined;
|
|
97
|
+
} else {
|
|
98
|
+
release ??= suppressBrowserSwipe(container);
|
|
99
|
+
}
|
|
100
|
+
mode = next;
|
|
101
|
+
};
|
|
102
|
+
stack.setSwipeBack(swipeBack);
|
|
80
103
|
const destroy = stack.destroy.bind(stack);
|
|
81
104
|
stack.destroy = () => {
|
|
82
|
-
|
|
105
|
+
destroyed = true;
|
|
106
|
+
release?.();
|
|
107
|
+
release = undefined;
|
|
83
108
|
destroy();
|
|
84
109
|
};
|
|
85
110
|
return stack;
|