pageturn 0.1.0 → 0.2.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/CHANGELOG.md +41 -0
- package/README.md +179 -4
- package/dist/astro.js +0 -2
- package/dist/chunks/chunk-3ABPYO7H.js +43 -0
- package/dist/chunks/chunk-6FXXBNAF.js +197 -0
- package/dist/chunks/chunk-AEOAXMU3.js +33 -0
- package/dist/chunks/chunk-BOM5VXA5.js +167 -0
- package/dist/chunks/chunk-C3T7BGNG.js +30 -0
- package/dist/chunks/chunk-FYSSNYA4.js +17 -0
- package/dist/chunks/chunk-JHM7F4CH.js +172 -0
- package/dist/chunks/chunk-LM3XLSCW.js +799 -0
- package/dist/chunks/{chunk-QJ7GGFM4.js → chunk-YAL4MNCU.js} +4 -6
- package/dist/core.js +4 -3
- package/dist/dev/chunks/chunk-3JAWIMHB.js +184 -0
- package/dist/dev/chunks/chunk-3SU4CIKL.js +799 -0
- package/dist/dev/chunks/chunk-AEOAXMU3.js +33 -0
- package/dist/dev/chunks/chunk-C3T7BGNG.js +30 -0
- package/dist/dev/chunks/chunk-FYSSNYA4.js +17 -0
- package/dist/dev/chunks/chunk-I4SBUABE.js +175 -0
- package/dist/dev/chunks/chunk-U3XN54YY.js +219 -0
- package/dist/dev/chunks/chunk-Y6TD2T53.js +43 -0
- package/dist/dev/chunks/chunk-YAL4MNCU.js +22 -0
- package/dist/dev/core.js +19 -0
- package/dist/dev/index.js +21 -0
- package/dist/dev/morph-markup.js +34 -0
- package/dist/dev/morph.js +457 -0
- package/dist/dev/native.js +3 -0
- package/dist/dev/next.js +79 -0
- package/dist/dev/nuxt-plugin.js +24 -0
- package/dist/dev/prefetch.js +2 -0
- package/dist/dev/react-router.js +46 -0
- package/dist/dev/router.js +9 -0
- package/dist/dev/sveltekit.js +32 -0
- package/dist/dev/testing.js +48 -0
- package/dist/dev/turbo.js +49 -0
- package/dist/dev/vue.js +11 -0
- package/dist/head-core.js +1 -1
- package/dist/head-string.js +6 -6
- package/dist/head.js +1 -1
- package/dist/index.js +6 -5
- package/dist/morph-head.js +1 -1
- package/dist/morph-markup.js +11 -9
- package/dist/morph.js +145 -287
- package/dist/native.js +3 -2
- package/dist/next.js +79 -0
- package/dist/nuxt-plugin.js +24 -0
- package/dist/nuxt.js +34 -0
- package/dist/pageturn-morph.js +1 -1
- package/dist/pageturn.js +1 -1
- package/dist/prefetch.js +2 -2
- package/dist/react-router.js +46 -0
- package/dist/router.js +5 -183
- package/dist/sveltekit-server.js +22 -0
- package/dist/sveltekit.js +32 -0
- package/dist/testing.js +12 -22
- package/dist/turbo.js +49 -0
- package/dist/types/astro/integration.d.ts +0 -4
- package/dist/types/common/dev.d.ts +6 -0
- package/dist/types/common/page.d.ts +5 -0
- package/dist/types/common/registry.d.ts +3 -1
- package/dist/types/next/next.d.ts +27 -0
- package/dist/types/nuxt/module.d.ts +32 -0
- package/dist/types/react-router/react-router.d.ts +12 -0
- package/dist/types/router/router.d.ts +4 -2
- package/dist/types/sveltekit/server.d.ts +21 -0
- package/dist/types/sveltekit/sveltekit.d.ts +32 -0
- package/dist/types/turbo/turbo.d.ts +1 -0
- package/dist/types/vue/vue.d.ts +36 -0
- package/dist/vue.js +11 -0
- package/package.json +102 -23
- package/dist/chunks/chunk-237GNQNZ.js +0 -37
- package/dist/chunks/chunk-7LMNJ25V.js +0 -244
- package/dist/chunks/chunk-QC36TQP3.js +0 -24
- package/dist/chunks/chunk-WTHN3UIQ.js +0 -1000
- package/dist/chunks/chunk-YBAP3PHO.js +0 -247
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// src/testing/testing.ts
|
|
2
|
+
var LAYER = "[data-turn-layer]", PARTS = `${LAYER}, [data-turn-shadow]`;
|
|
3
|
+
function layer(page) {
|
|
4
|
+
return {
|
|
5
|
+
root: page.locator(LAYER),
|
|
6
|
+
content: page.locator(`${LAYER} [data-turn-content]`),
|
|
7
|
+
words: page.locator(`${LAYER} [data-turn-words]`),
|
|
8
|
+
box: page.locator(`${LAYER} [data-turn-box]`),
|
|
9
|
+
part: (name) => page.locator(`${LAYER} [data-turn-part="${name}"]`),
|
|
10
|
+
shadow: page.locator("[data-turn-shadow]")
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function seekTravel(page, time) {
|
|
14
|
+
return page.evaluate(
|
|
15
|
+
({ at, selector }) => {
|
|
16
|
+
let parts = document.querySelectorAll(selector);
|
|
17
|
+
for (let part of parts)
|
|
18
|
+
for (let animation of part.getAnimations({ subtree: !0 }))
|
|
19
|
+
animation.pause(), animation.currentTime = at;
|
|
20
|
+
return parts.length > 0;
|
|
21
|
+
},
|
|
22
|
+
{ at: time, selector: PARTS }
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
function resumeTravel(page) {
|
|
26
|
+
return page.evaluate((selector) => {
|
|
27
|
+
for (let part of document.querySelectorAll(selector))
|
|
28
|
+
for (let animation of part.getAnimations({ subtree: !0 }))
|
|
29
|
+
animation.play();
|
|
30
|
+
}, PARTS);
|
|
31
|
+
}
|
|
32
|
+
function endTravel(page) {
|
|
33
|
+
return page.evaluate((selector) => {
|
|
34
|
+
let parts = document.querySelectorAll(selector);
|
|
35
|
+
for (let part of parts)
|
|
36
|
+
for (let animation of part.getAnimations({ subtree: !0 })) {
|
|
37
|
+
let end = animation.effect?.getComputedTiming().endTime;
|
|
38
|
+
Number.isFinite(Number(end)) && (animation.pause(), animation.currentTime = Number(end));
|
|
39
|
+
}
|
|
40
|
+
return parts.length > 0;
|
|
41
|
+
}, PARTS);
|
|
42
|
+
}
|
|
43
|
+
export {
|
|
44
|
+
endTravel,
|
|
45
|
+
layer,
|
|
46
|
+
resumeTravel,
|
|
47
|
+
seekTravel
|
|
48
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import "./chunks/chunk-U3XN54YY.js";
|
|
2
|
+
import {
|
|
3
|
+
startNavigation
|
|
4
|
+
} from "./chunks/chunk-I4SBUABE.js";
|
|
5
|
+
import "./chunks/chunk-3JAWIMHB.js";
|
|
6
|
+
import {
|
|
7
|
+
inBrowser
|
|
8
|
+
} from "./chunks/chunk-AEOAXMU3.js";
|
|
9
|
+
import "./chunks/chunk-YAL4MNCU.js";
|
|
10
|
+
|
|
11
|
+
// src/turbo/turbo.ts
|
|
12
|
+
var current = null, clicked = null;
|
|
13
|
+
function cancel(turn) {
|
|
14
|
+
current === turn && (current = null, turn.cancelled());
|
|
15
|
+
}
|
|
16
|
+
inBrowser && (addEventListener("turbo:click", (event) => {
|
|
17
|
+
let { target } = event, { url } = event.detail;
|
|
18
|
+
clicked = target instanceof HTMLAnchorElement ? { url, link: target } : null;
|
|
19
|
+
}), addEventListener("turbo:before-visit", (event) => {
|
|
20
|
+
let { url } = event.detail, link = clicked?.url === url ? clicked.link : null;
|
|
21
|
+
clicked = null;
|
|
22
|
+
let turn = startNavigation({
|
|
23
|
+
to: url,
|
|
24
|
+
via: link ? "link" : "script",
|
|
25
|
+
link
|
|
26
|
+
});
|
|
27
|
+
current = turn, setTimeout(() => {
|
|
28
|
+
event.defaultPrevented && cancel(turn);
|
|
29
|
+
});
|
|
30
|
+
}), addEventListener("turbo:visit", (event) => {
|
|
31
|
+
let { url, action } = event.detail;
|
|
32
|
+
action === "restore" && (current = startNavigation({ to: url, via: "history" }));
|
|
33
|
+
}), addEventListener("turbo:before-render", (event) => {
|
|
34
|
+
let turn = current;
|
|
35
|
+
if (!turn) return;
|
|
36
|
+
let detail = event.detail;
|
|
37
|
+
if (document.documentElement.hasAttribute("data-turbo-preview")) {
|
|
38
|
+
detail.render = () => {
|
|
39
|
+
};
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
current = null;
|
|
43
|
+
let { render } = detail;
|
|
44
|
+
detail.render = async (now, next) => {
|
|
45
|
+
await render(now, next), turn.swapped();
|
|
46
|
+
}, event.preventDefault(), turn.left.then(() => detail.resume());
|
|
47
|
+
}), addEventListener("turbo:fetch-request-error", () => {
|
|
48
|
+
current && cancel(current);
|
|
49
|
+
}));
|
package/dist/dev/vue.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import {
|
|
2
|
+
pageturn
|
|
3
|
+
} from "./chunks/chunk-Y6TD2T53.js";
|
|
4
|
+
import "./chunks/chunk-U3XN54YY.js";
|
|
5
|
+
import "./chunks/chunk-I4SBUABE.js";
|
|
6
|
+
import "./chunks/chunk-3JAWIMHB.js";
|
|
7
|
+
import "./chunks/chunk-AEOAXMU3.js";
|
|
8
|
+
import "./chunks/chunk-YAL4MNCU.js";
|
|
9
|
+
export {
|
|
10
|
+
pageturn
|
|
11
|
+
};
|
package/dist/head-core.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var k=()=>performance.getEntriesByType("navigation")[0];var R;function x(){return R??=matchMedia("(prefers-reduced-motion: reduce)"),R.matches}function T(){window.pageturn&&(window.pageturn.l=!0),delete document.documentElement.dataset.turnEntering}function g(e){try{let t=sessionStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}}function d(e,t){try{return sessionStorage.setItem(e,JSON.stringify(t)),!0}catch{return!1}}function f(e){try{sessionStorage.getItem(e)!==null&&sessionStorage.removeItem(e)}catch{}}var C=2,i="pageturn",F="pageturn:left",N=1e4,V=3e3,O=(e,t)=>{let n=Date.now()-e;return n>=0&&n<t};function L(){let e=g(i);return f(i),e&&O(e.at,N)?e:null}var y=e=>e.pathname+e.search,j=(e,t)=>d(i,{...e,to:y(t)}),B=()=>f(i);function w(){let e=g(F);return e&&O(e.at,V)?e:null}var J=e=>d(F,e);function K(){let e=`${i}:probe`,t=d(e,0);return f(e),t}function H(){let e=history.state;return e&&typeof e=="object"?e:null}function b(){let e=H()?.[i];return e&&typeof e=="object"?e:null}function U(e){let t=history.state;if(t!==null&&(typeof t!="object"||Object.getPrototypeOf(t)!==Object.prototype))return;let{[i]:n,...r}=t??{};if(!(!e&&!n))try{history.replaceState(e?{...r,[i]:e}:r,"")}catch{}}function E(e,t){return!e?.returnAs||!t||t.none||t.from!==e.to?null:{move:e.returnAs,via:"history",from:t.from,data:null,remembered:e.remember??null,reported:t.data??null}}var M={m:C,
|
|
1
|
+
(()=>{var k=()=>performance.getEntriesByType("navigation")[0];var R;function x(){return R??=matchMedia("(prefers-reduced-motion: reduce)"),R.matches}function T(){window.pageturn&&(window.pageturn.l=!0),delete document.documentElement.dataset.turnEntering}function g(e){try{let t=sessionStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}}function d(e,t){try{return sessionStorage.setItem(e,JSON.stringify(t)),!0}catch{return!1}}function f(e){try{sessionStorage.getItem(e)!==null&&sessionStorage.removeItem(e)}catch{}}var C=2,i="pageturn",F="pageturn:left",N=1e4,V=3e3,O=(e,t)=>{let n=Date.now()-e;return n>=0&&n<t};function L(){let e=g(i);return f(i),e&&O(e.at,N)?e:null}var y=e=>e.pathname+e.search,j=(e,t)=>d(i,{...e,to:y(t)}),B=()=>f(i);function w(){let e=g(F);return e&&O(e.at,V)?e:null}var J=e=>d(F,e);function K(){let e=`${i}:probe`,t=d(e,0);return f(e),t}function H(){let e=history.state;return e&&typeof e=="object"?e:null}function b(){let e=H()?.[i];return e&&typeof e=="object"?e:null}function U(e){let t=history.state;if(t!==null&&(typeof t!="object"||Object.getPrototypeOf(t)!==Object.prototype))return;let{[i]:n,...r}=t??{};if(!(!e&&!n))try{history.replaceState(e?{...r,[i]:e}:r,"")}catch{}}function E(e,t){return!e?.returnAs||!t||t.none||t.from!==e.to?null:{move:e.returnAs,via:"history",from:t.from,data:null,remembered:e.remember??null,reported:t.data??null}}var M={m:C,h:j,n:B,o:w,p:J,q:K,r:b,i:U,s:E};var o=document.documentElement,$="--turn-",p=new Map;function _(e){if(!e||o.dataset.turnArriving===e){delete o.dataset.turnArriving,delete o.dataset.turnEntering,delete o.dataset.turnWith;for(let[t,{covered:n,own:r}]of p)o.style.getPropertyValue(t)===r&&(n?o.style.setProperty(t,n):o.style.removeProperty(t));p.clear()}}function h(e){if(typeof e=="object")for(let[t,n]of Object.entries(e??{}))if(/^(string|number)$/.test(typeof n)){let r=$+t,a=`${n}`;p.set(r,{covered:p.get(r)?.covered??o.style.getPropertyValue(r),own:a}),o.style.setProperty(r,a)}else n===!0&&(o.dataset.turnWith=`${o.dataset.turnWith??""} ${t}`.trim())}function I(e){h(e.remembered),h(e.reported),h(e.data)}function P(e){o.dataset.turnArriving=e.move,I(e)}function D(){let e={arrival:null,endArrival:_,t:P};if(window.pageturn=e,window.top!==window)return;e.j=M;let t=L();if(x())return;let n=k(),r=t&&n?.type!=="reload"&&n?.type!=="back_forward"&&(!t.to||t.to===y(location)||(n?.redirectCount??0)>0)?t:null;e.arrival=r?{move:r.move,via:"link",from:r.from,data:r.data??null,remembered:null,reported:null}:n?.type==="back_forward"?E(b(),w()):null;let a=!1,{arrival:m}=e;if(m&&(a?I(m):P(m)),n?.type!=="back_forward"){o.dataset.turnEntering="";let s=["wheel","touchstart","keydown","pointerdown"],l=!0,u=()=>{l&&(scrollX||scrollY)&&(T(),c())},S=new ResizeObserver(u),c=()=>{l=!1,S.disconnect(),removeEventListener("scroll",u);for(let v of s)removeEventListener(v,c,!0)},A=()=>{l&&(S.observe(o),requestAnimationFrame(A))};A(),addEventListener("scroll",u);for(let v of s)addEventListener(v,c,!0);addEventListener("load",()=>requestAnimationFrame(()=>requestAnimationFrame(c)))}addEventListener("pagehide",s=>{s.persisted&&(e.arrival=null,_())})}window.pageturn||D();})();
|
package/dist/head-string.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export const headScript = "(()=>{var
|
|
2
|
-
export const headScriptHash = "sha256-
|
|
3
|
-
export const coreHeadScript = "(()=>{var k=()=>performance.getEntriesByType(\"navigation\")[0];var R;function x(){return R??=matchMedia(\"(prefers-reduced-motion: reduce)\"),R.matches}function T(){window.pageturn&&(window.pageturn.l=!0),delete document.documentElement.dataset.turnEntering}function g(e){try{let t=sessionStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}}function d(e,t){try{return sessionStorage.setItem(e,JSON.stringify(t)),!0}catch{return!1}}function f(e){try{sessionStorage.getItem(e)!==null&&sessionStorage.removeItem(e)}catch{}}var C=2,i=\"pageturn\",F=\"pageturn:left\",N=1e4,V=3e3,O=(e,t)=>{let n=Date.now()-e;return n>=0&&n<t};function L(){let e=g(i);return f(i),e&&O(e.at,N)?e:null}var y=e=>e.pathname+e.search,j=(e,t)=>d(i,{...e,to:y(t)}),B=()=>f(i);function w(){let e=g(F);return e&&O(e.at,V)?e:null}var J=e=>d(F,e);function K(){let e=`${i}:probe`,t=d(e,0);return f(e),t}function H(){let e=history.state;return e&&typeof e==\"object\"?e:null}function b(){let e=H()?.[i];return e&&typeof e==\"object\"?e:null}function U(e){let t=history.state;if(t!==null&&(typeof t!=\"object\"||Object.getPrototypeOf(t)!==Object.prototype))return;let{[i]:n,...r}=t??{};if(!(!e&&!n))try{history.replaceState(e?{...r,[i]:e}:r,\"\")}catch{}}function E(e,t){return!e?.returnAs||!t||t.none||t.from!==e.to?null:{move:e.returnAs,via:\"history\",from:t.from,data:null,remembered:e.remember??null,reported:t.data??null}}var M={m:C,
|
|
4
|
-
export const coreHeadScriptHash = "sha256-
|
|
5
|
-
export const morphHeadScript = "(()=>{var T=()=>performance.getEntriesByType(\"navigation\")[0];function
|
|
6
|
-
export const morphHeadScriptHash = "sha256-
|
|
1
|
+
export const headScript = "(()=>{var x=()=>performance.getEntriesByType(\"navigation\")[0];var k;function R(){return k??=matchMedia(\"(prefers-reduced-motion: reduce)\"),k.matches}function T(){window.pageturn&&(window.pageturn.l=!0),delete document.documentElement.dataset.turnEntering}function g(e){try{let t=sessionStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}}function d(e,t){try{return sessionStorage.setItem(e,JSON.stringify(t)),!0}catch{return!1}}function f(e){try{sessionStorage.getItem(e)!==null&&sessionStorage.removeItem(e)}catch{}}var C=2,a=\"pageturn\",O=\"pageturn:left\",N=1e4,V=3e3,L=(e,t)=>{let n=Date.now()-e;return n>=0&&n<t};function M(){let e=g(a);return f(a),e&&L(e.at,N)?e:null}var y=e=>e.pathname+e.search,j=(e,t)=>d(a,{...e,to:y(t)}),B=()=>f(a);function w(){let e=g(O);return e&&L(e.at,V)?e:null}var J=e=>d(O,e);function K(){let e=`${a}:probe`,t=d(e,0);return f(e),t}function H(){let e=history.state;return e&&typeof e==\"object\"?e:null}function E(){let e=H()?.[a];return e&&typeof e==\"object\"?e:null}function U(e){let t=history.state;if(t!==null&&(typeof t!=\"object\"||Object.getPrototypeOf(t)!==Object.prototype))return;let{[a]:n,...r}=t??{};if(!(!e&&!n))try{history.replaceState(e?{...r,[a]:e}:r,\"\")}catch{}}function b(e,t){return!e?.returnAs||!t||t.none||t.from!==e.to?null:{move:e.returnAs,via:\"history\",from:t.from,data:null,remembered:e.remember??null,reported:t.data??null}}var F={m:C,h:j,n:B,o:w,p:J,q:K,r:E,i:U,s:b};var o=document.documentElement,$=\"--turn-\",p=new Map;function _(e){if(!e||o.dataset.turnArriving===e){delete o.dataset.turnArriving,delete o.dataset.turnEntering,delete o.dataset.turnWith;for(let[t,{covered:n,own:r}]of p)o.style.getPropertyValue(t)===r&&(n?o.style.setProperty(t,n):o.style.removeProperty(t));p.clear()}}function h(e){if(typeof e==\"object\")for(let[t,n]of Object.entries(e??{}))if(/^(string|number)$/.test(typeof n)){let r=$+t,u=`${n}`;p.set(r,{covered:p.get(r)?.covered??o.style.getPropertyValue(r),own:u}),o.style.setProperty(r,u)}else n===!0&&(o.dataset.turnWith=`${o.dataset.turnWith??\"\"} ${t}`.trim())}function I(e){h(e.remembered),h(e.reported),h(e.data)}function P(e){o.dataset.turnArriving=e.move,I(e)}function D(){let e={arrival:null,endArrival:_,t:P};if(window.pageturn=e,window.top!==window)return;e.j=F,e.a=!0;let t=M();if(R())return;let n=x(),r=t&&n?.type!==\"reload\"&&n?.type!==\"back_forward\"&&(!t.to||t.to===y(location)||(n?.redirectCount??0)>0)?t:null;e.arrival=r?{move:r.move,via:\"link\",from:r.from,data:r.data??null,remembered:null,reported:null}:n?.type===\"back_forward\"?b(E(),w()):null;let u=!!(r?.a&&\"CSSViewTransitionRule\"in window),{arrival:m}=e;if(m&&(u?I(m):P(m)),n?.type!==\"back_forward\"){o.dataset.turnEntering=\"\";let i=[\"wheel\",\"touchstart\",\"keydown\",\"pointerdown\"],s=!0,l=()=>{s&&(scrollX||scrollY)&&(T(),c())},S=new ResizeObserver(l),c=()=>{s=!1,S.disconnect(),removeEventListener(\"scroll\",l);for(let v of i)removeEventListener(v,c,!0)},A=()=>{s&&(S.observe(o),requestAnimationFrame(A))};A(),addEventListener(\"scroll\",l);for(let v of i)addEventListener(v,c,!0);addEventListener(\"load\",()=>requestAnimationFrame(()=>requestAnimationFrame(c)))}addEventListener(\"pagehide\",i=>{i.persisted&&(e.k=null,u=!1)}),addEventListener(\"pagereveal\",i=>{let s=i.viewTransition;e.k=s;let{arrival:l}=e;l&&(u?s?s.types.add(l.move):o.dataset.turnArriving=l.move:s?.skipTransition(),u=!1)}),addEventListener(\"pagehide\",i=>{i.persisted&&(e.arrival=null,_())})}window.pageturn||D();})();";
|
|
2
|
+
export const headScriptHash = "sha256-85kMAiHbtWUbxJ2HCdeljozAF0YTOzo8AzP3J+Cs5/A=";
|
|
3
|
+
export const coreHeadScript = "(()=>{var k=()=>performance.getEntriesByType(\"navigation\")[0];var R;function x(){return R??=matchMedia(\"(prefers-reduced-motion: reduce)\"),R.matches}function T(){window.pageturn&&(window.pageturn.l=!0),delete document.documentElement.dataset.turnEntering}function g(e){try{let t=sessionStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}}function d(e,t){try{return sessionStorage.setItem(e,JSON.stringify(t)),!0}catch{return!1}}function f(e){try{sessionStorage.getItem(e)!==null&&sessionStorage.removeItem(e)}catch{}}var C=2,i=\"pageturn\",F=\"pageturn:left\",N=1e4,V=3e3,O=(e,t)=>{let n=Date.now()-e;return n>=0&&n<t};function L(){let e=g(i);return f(i),e&&O(e.at,N)?e:null}var y=e=>e.pathname+e.search,j=(e,t)=>d(i,{...e,to:y(t)}),B=()=>f(i);function w(){let e=g(F);return e&&O(e.at,V)?e:null}var J=e=>d(F,e);function K(){let e=`${i}:probe`,t=d(e,0);return f(e),t}function H(){let e=history.state;return e&&typeof e==\"object\"?e:null}function b(){let e=H()?.[i];return e&&typeof e==\"object\"?e:null}function U(e){let t=history.state;if(t!==null&&(typeof t!=\"object\"||Object.getPrototypeOf(t)!==Object.prototype))return;let{[i]:n,...r}=t??{};if(!(!e&&!n))try{history.replaceState(e?{...r,[i]:e}:r,\"\")}catch{}}function E(e,t){return!e?.returnAs||!t||t.none||t.from!==e.to?null:{move:e.returnAs,via:\"history\",from:t.from,data:null,remembered:e.remember??null,reported:t.data??null}}var M={m:C,h:j,n:B,o:w,p:J,q:K,r:b,i:U,s:E};var o=document.documentElement,$=\"--turn-\",p=new Map;function _(e){if(!e||o.dataset.turnArriving===e){delete o.dataset.turnArriving,delete o.dataset.turnEntering,delete o.dataset.turnWith;for(let[t,{covered:n,own:r}]of p)o.style.getPropertyValue(t)===r&&(n?o.style.setProperty(t,n):o.style.removeProperty(t));p.clear()}}function h(e){if(typeof e==\"object\")for(let[t,n]of Object.entries(e??{}))if(/^(string|number)$/.test(typeof n)){let r=$+t,a=`${n}`;p.set(r,{covered:p.get(r)?.covered??o.style.getPropertyValue(r),own:a}),o.style.setProperty(r,a)}else n===!0&&(o.dataset.turnWith=`${o.dataset.turnWith??\"\"} ${t}`.trim())}function I(e){h(e.remembered),h(e.reported),h(e.data)}function P(e){o.dataset.turnArriving=e.move,I(e)}function D(){let e={arrival:null,endArrival:_,t:P};if(window.pageturn=e,window.top!==window)return;e.j=M;let t=L();if(x())return;let n=k(),r=t&&n?.type!==\"reload\"&&n?.type!==\"back_forward\"&&(!t.to||t.to===y(location)||(n?.redirectCount??0)>0)?t:null;e.arrival=r?{move:r.move,via:\"link\",from:r.from,data:r.data??null,remembered:null,reported:null}:n?.type===\"back_forward\"?E(b(),w()):null;let a=!1,{arrival:m}=e;if(m&&(a?I(m):P(m)),n?.type!==\"back_forward\"){o.dataset.turnEntering=\"\";let s=[\"wheel\",\"touchstart\",\"keydown\",\"pointerdown\"],l=!0,u=()=>{l&&(scrollX||scrollY)&&(T(),c())},S=new ResizeObserver(u),c=()=>{l=!1,S.disconnect(),removeEventListener(\"scroll\",u);for(let v of s)removeEventListener(v,c,!0)},A=()=>{l&&(S.observe(o),requestAnimationFrame(A))};A(),addEventListener(\"scroll\",u);for(let v of s)addEventListener(v,c,!0);addEventListener(\"load\",()=>requestAnimationFrame(()=>requestAnimationFrame(c)))}addEventListener(\"pagehide\",s=>{s.persisted&&(e.arrival=null,_())})}window.pageturn||D();})();";
|
|
4
|
+
export const coreHeadScriptHash = "sha256-ukJFyi8MVr3nE6UQ4DuID2E9MpgmReI9yUmnAwgHsAc=";
|
|
5
|
+
export const morphHeadScript = "(()=>{var T=()=>performance.getEntriesByType(\"navigation\")[0];function d(e){let n=T();(n?n.domContentLoadedEventStart>0:document.readyState!==\"loading\")?e():document.addEventListener(\"DOMContentLoaded\",e,{once:!0})}function y(){window.pageturn&&(window.pageturn.l=!0),delete document.documentElement.dataset.turnEntering}var g=Symbol.for(\"pageturn.focusBack\"),h=globalThis;function b(e,n){h[g]=e;try{e.focus(n)}finally{delete h[g]}}function S(e){try{let n=sessionStorage.getItem(e);return n?JSON.parse(n):null}catch{return null}}function v(e){try{sessionStorage.getItem(e)!==null&&sessionStorage.removeItem(e)}catch{}}var l=\"pageturn:morph\",x=e=>`:is(${e}):not([data-turn-layer] *)`,L=e=>document.querySelector(x(e));function c(e){document.readyState===\"loading\"?document.addEventListener(\"readystatechange\",e,{once:!0}):e()}function w(e,n,o=!1,u=[],r){let a=document.documentElement;a.dataset.turnRestoring=\"\",y();let i=[];c(()=>{let t=null;try{t=e?L(e):null}catch{}t?.setAttribute(\"data-turn-origin\",n);for(let[s,m,p]of u)try{let f=document.querySelector(s);p===null?f?.removeAttribute(m):f?.setAttribute(m,p)}catch{}for(let s=t?.parentElement?.closest(\"[popover]\");o&&s;s=s.parentElement?.closest(\"[popover]\"))i.unshift(s);for(let s of i)try{s.showPopover()}catch{}}),d(()=>requestAnimationFrame(()=>requestAnimationFrame(()=>{r&&A(r,i),delete a.dataset.turnRestoring})))}var M=(e,n)=>[...document.querySelectorAll(\"a[href]\")].filter(o=>o.href===e)[n];function A([e,n,o],u){let r=document.activeElement,a=M(e,n);a&&(!r||r===document.body||u.some(i=>i.contains(r)))&&b(a,{preventScroll:!0,focusVisible:o})}function F(e){e.setAttribute(\"aria-hidden\",\"true\"),e.setAttribute(\"popover\",\"manual\"),e.dataset.turnLayer=\"\",document.documentElement.append(e);try{e.showPopover()}catch{}}function E(){if(window.top!==window){try{let t=JSON.parse(window.name.split(`${l}:`)[1]??\"\");c(()=>scrollTo(t.x,t.y)),w(t.p,t.o,t.v,t.w),window.pageturn&&(window.pageturn.behind={move:t.m,data:t.d})}catch{}return null}let e=S(l);if(v(l),!e||e.n!==window.pageturn?.arrival?.move)return null;let n=document.createElement(\"div\");n.innerHTML=e.h;let o=n.firstElementChild;if(!(o instanceof HTMLElement))return null;let u=null;if(e.s)try{let t=new CSSStyleSheet;t.insertRule(`${x(e.s)}{visibility:hidden!important}`),document.adoptedStyleSheets=[...document.adoptedStyleSheets,t],u=t}catch{}for(let t of[o,...o.querySelectorAll(\"[data-turn-style]\")])t.style.cssText=t.dataset.turnStyle??\"\";F(o);let r={flight:e,layer:o,sheet:u,taken:!1};e.b&&(document.documentElement.dataset.turnBehind=\"\");let{x:a=0,y:i}=e;return i!==void 0&&c(()=>scrollTo(a,i)),e.o&&w(e.s,e.o,e.v,e.w,e.l),d(()=>setTimeout(()=>r.taken||H(r))),r}function H(e){e.taken=!0,document.querySelector(\"[data-turn-origin]\")?.removeAttribute(\"data-turn-origin\"),e.layer.remove(),document.adoptedStyleSheets=document.adoptedStyleSheets.filter(n=>n!==e.sheet)}window.pageturnMorph===void 0&&(window.pageturnMorph=E());})();";
|
|
6
|
+
export const morphHeadScriptHash = "sha256-0na143TMOAyfIT4jzvnW+/Mx2LF8wOTZ8MwzphbRgaQ=";
|
package/dist/head.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var
|
|
1
|
+
(()=>{var x=()=>performance.getEntriesByType("navigation")[0];var k;function R(){return k??=matchMedia("(prefers-reduced-motion: reduce)"),k.matches}function T(){window.pageturn&&(window.pageturn.l=!0),delete document.documentElement.dataset.turnEntering}function g(e){try{let t=sessionStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}}function d(e,t){try{return sessionStorage.setItem(e,JSON.stringify(t)),!0}catch{return!1}}function f(e){try{sessionStorage.getItem(e)!==null&&sessionStorage.removeItem(e)}catch{}}var C=2,a="pageturn",O="pageturn:left",N=1e4,V=3e3,L=(e,t)=>{let n=Date.now()-e;return n>=0&&n<t};function M(){let e=g(a);return f(a),e&&L(e.at,N)?e:null}var y=e=>e.pathname+e.search,j=(e,t)=>d(a,{...e,to:y(t)}),B=()=>f(a);function w(){let e=g(O);return e&&L(e.at,V)?e:null}var J=e=>d(O,e);function K(){let e=`${a}:probe`,t=d(e,0);return f(e),t}function H(){let e=history.state;return e&&typeof e=="object"?e:null}function E(){let e=H()?.[a];return e&&typeof e=="object"?e:null}function U(e){let t=history.state;if(t!==null&&(typeof t!="object"||Object.getPrototypeOf(t)!==Object.prototype))return;let{[a]:n,...r}=t??{};if(!(!e&&!n))try{history.replaceState(e?{...r,[a]:e}:r,"")}catch{}}function b(e,t){return!e?.returnAs||!t||t.none||t.from!==e.to?null:{move:e.returnAs,via:"history",from:t.from,data:null,remembered:e.remember??null,reported:t.data??null}}var F={m:C,h:j,n:B,o:w,p:J,q:K,r:E,i:U,s:b};var o=document.documentElement,$="--turn-",p=new Map;function _(e){if(!e||o.dataset.turnArriving===e){delete o.dataset.turnArriving,delete o.dataset.turnEntering,delete o.dataset.turnWith;for(let[t,{covered:n,own:r}]of p)o.style.getPropertyValue(t)===r&&(n?o.style.setProperty(t,n):o.style.removeProperty(t));p.clear()}}function h(e){if(typeof e=="object")for(let[t,n]of Object.entries(e??{}))if(/^(string|number)$/.test(typeof n)){let r=$+t,u=`${n}`;p.set(r,{covered:p.get(r)?.covered??o.style.getPropertyValue(r),own:u}),o.style.setProperty(r,u)}else n===!0&&(o.dataset.turnWith=`${o.dataset.turnWith??""} ${t}`.trim())}function I(e){h(e.remembered),h(e.reported),h(e.data)}function P(e){o.dataset.turnArriving=e.move,I(e)}function D(){let e={arrival:null,endArrival:_,t:P};if(window.pageturn=e,window.top!==window)return;e.j=F,e.a=!0;let t=M();if(R())return;let n=x(),r=t&&n?.type!=="reload"&&n?.type!=="back_forward"&&(!t.to||t.to===y(location)||(n?.redirectCount??0)>0)?t:null;e.arrival=r?{move:r.move,via:"link",from:r.from,data:r.data??null,remembered:null,reported:null}:n?.type==="back_forward"?b(E(),w()):null;let u=!!(r?.a&&"CSSViewTransitionRule"in window),{arrival:m}=e;if(m&&(u?I(m):P(m)),n?.type!=="back_forward"){o.dataset.turnEntering="";let i=["wheel","touchstart","keydown","pointerdown"],s=!0,l=()=>{s&&(scrollX||scrollY)&&(T(),c())},S=new ResizeObserver(l),c=()=>{s=!1,S.disconnect(),removeEventListener("scroll",l);for(let v of i)removeEventListener(v,c,!0)},A=()=>{s&&(S.observe(o),requestAnimationFrame(A))};A(),addEventListener("scroll",l);for(let v of i)addEventListener(v,c,!0);addEventListener("load",()=>requestAnimationFrame(()=>requestAnimationFrame(c)))}addEventListener("pagehide",i=>{i.persisted&&(e.k=null,u=!1)}),addEventListener("pagereveal",i=>{let s=i.viewTransition;e.k=s;let{arrival:l}=e;l&&(u?s?s.types.add(l.move):o.dataset.turnArriving=l.move:s?.skipTransition(),u=!1)}),addEventListener("pagehide",i=>{i.persisted&&(e.arrival=null,_())})}window.pageturn||D();})();
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import "./chunks/chunk-
|
|
2
|
-
import "./chunks/chunk-
|
|
1
|
+
import "./chunks/chunk-FYSSNYA4.js";
|
|
2
|
+
import "./chunks/chunk-C3T7BGNG.js";
|
|
3
3
|
import {
|
|
4
4
|
arrival,
|
|
5
5
|
chooseMove,
|
|
@@ -7,9 +7,10 @@ import {
|
|
|
7
7
|
defineMove,
|
|
8
8
|
endArrival,
|
|
9
9
|
whenLeft
|
|
10
|
-
} from "./chunks/chunk-
|
|
11
|
-
import "./chunks/chunk-
|
|
12
|
-
import "./chunks/chunk-
|
|
10
|
+
} from "./chunks/chunk-6FXXBNAF.js";
|
|
11
|
+
import "./chunks/chunk-JHM7F4CH.js";
|
|
12
|
+
import "./chunks/chunk-AEOAXMU3.js";
|
|
13
|
+
import "./chunks/chunk-YAL4MNCU.js";
|
|
13
14
|
export {
|
|
14
15
|
arrival,
|
|
15
16
|
chooseMove,
|
package/dist/morph-head.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var T=()=>performance.getEntriesByType("navigation")[0];function
|
|
1
|
+
(()=>{var T=()=>performance.getEntriesByType("navigation")[0];function d(e){let n=T();(n?n.domContentLoadedEventStart>0:document.readyState!=="loading")?e():document.addEventListener("DOMContentLoaded",e,{once:!0})}function y(){window.pageturn&&(window.pageturn.l=!0),delete document.documentElement.dataset.turnEntering}var g=Symbol.for("pageturn.focusBack"),h=globalThis;function b(e,n){h[g]=e;try{e.focus(n)}finally{delete h[g]}}function S(e){try{let n=sessionStorage.getItem(e);return n?JSON.parse(n):null}catch{return null}}function v(e){try{sessionStorage.getItem(e)!==null&&sessionStorage.removeItem(e)}catch{}}var l="pageturn:morph",x=e=>`:is(${e}):not([data-turn-layer] *)`,L=e=>document.querySelector(x(e));function c(e){document.readyState==="loading"?document.addEventListener("readystatechange",e,{once:!0}):e()}function w(e,n,o=!1,u=[],r){let a=document.documentElement;a.dataset.turnRestoring="",y();let i=[];c(()=>{let t=null;try{t=e?L(e):null}catch{}t?.setAttribute("data-turn-origin",n);for(let[s,m,p]of u)try{let f=document.querySelector(s);p===null?f?.removeAttribute(m):f?.setAttribute(m,p)}catch{}for(let s=t?.parentElement?.closest("[popover]");o&&s;s=s.parentElement?.closest("[popover]"))i.unshift(s);for(let s of i)try{s.showPopover()}catch{}}),d(()=>requestAnimationFrame(()=>requestAnimationFrame(()=>{r&&A(r,i),delete a.dataset.turnRestoring})))}var M=(e,n)=>[...document.querySelectorAll("a[href]")].filter(o=>o.href===e)[n];function A([e,n,o],u){let r=document.activeElement,a=M(e,n);a&&(!r||r===document.body||u.some(i=>i.contains(r)))&&b(a,{preventScroll:!0,focusVisible:o})}function F(e){e.setAttribute("aria-hidden","true"),e.setAttribute("popover","manual"),e.dataset.turnLayer="",document.documentElement.append(e);try{e.showPopover()}catch{}}function E(){if(window.top!==window){try{let t=JSON.parse(window.name.split(`${l}:`)[1]??"");c(()=>scrollTo(t.x,t.y)),w(t.p,t.o,t.v,t.w),window.pageturn&&(window.pageturn.behind={move:t.m,data:t.d})}catch{}return null}let e=S(l);if(v(l),!e||e.n!==window.pageturn?.arrival?.move)return null;let n=document.createElement("div");n.innerHTML=e.h;let o=n.firstElementChild;if(!(o instanceof HTMLElement))return null;let u=null;if(e.s)try{let t=new CSSStyleSheet;t.insertRule(`${x(e.s)}{visibility:hidden!important}`),document.adoptedStyleSheets=[...document.adoptedStyleSheets,t],u=t}catch{}for(let t of[o,...o.querySelectorAll("[data-turn-style]")])t.style.cssText=t.dataset.turnStyle??"";F(o);let r={flight:e,layer:o,sheet:u,taken:!1};e.b&&(document.documentElement.dataset.turnBehind="");let{x:a=0,y:i}=e;return i!==void 0&&c(()=>scrollTo(a,i)),e.o&&w(e.s,e.o,e.v,e.w,e.l),d(()=>setTimeout(()=>r.taken||H(r))),r}function H(e){e.taken=!0,document.querySelector("[data-turn-origin]")?.removeAttribute("data-turn-origin"),e.layer.remove(),document.adoptedStyleSheets=document.adoptedStyleSheets.filter(n=>n!==e.sheet)}window.pageturnMorph===void 0&&(window.pageturnMorph=E());})();
|
package/dist/morph-markup.js
CHANGED
|
@@ -3,24 +3,26 @@ import {
|
|
|
3
3
|
defineMorph,
|
|
4
4
|
isDefined,
|
|
5
5
|
seen
|
|
6
|
-
} from "./chunks/chunk-
|
|
7
|
-
import "./chunks/chunk-
|
|
6
|
+
} from "./chunks/chunk-LM3XLSCW.js";
|
|
7
|
+
import "./chunks/chunk-6FXXBNAF.js";
|
|
8
|
+
import "./chunks/chunk-JHM7F4CH.js";
|
|
8
9
|
import {
|
|
9
|
-
afterDomContentLoaded
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
afterDomContentLoaded,
|
|
11
|
+
inBrowser
|
|
12
|
+
} from "./chunks/chunk-AEOAXMU3.js";
|
|
13
|
+
import "./chunks/chunk-YAL4MNCU.js";
|
|
12
14
|
|
|
13
15
|
// src/morph/markup.ts
|
|
14
16
|
var ATTRIBUTE = "data-turn-morph";
|
|
15
17
|
function morphsFromMarkup() {
|
|
16
|
-
|
|
18
|
+
let names = new Set(
|
|
17
19
|
[...document.querySelectorAll(`[${ATTRIBUTE}]`)].map(
|
|
18
20
|
(element) => element.getAttribute(ATTRIBUTE) ?? ""
|
|
19
21
|
)
|
|
20
22
|
);
|
|
21
|
-
for (
|
|
23
|
+
for (let name of names) {
|
|
22
24
|
if (!name || isDefined(name)) continue;
|
|
23
|
-
|
|
25
|
+
let selector = `[${ATTRIBUTE}="${CSS.escape(name)}"]`;
|
|
24
26
|
defineMorph(name, {
|
|
25
27
|
from: (link) => link.querySelector(selector) ?? link.closest(selector),
|
|
26
28
|
to: selector,
|
|
@@ -29,4 +31,4 @@ function morphsFromMarkup() {
|
|
|
29
31
|
});
|
|
30
32
|
}
|
|
31
33
|
}
|
|
32
|
-
afterDomContentLoaded(morphsFromMarkup);
|
|
34
|
+
inBrowser && afterDomContentLoaded(morphsFromMarkup);
|