@fluixi/core 1.0.0-alpha.75 → 1.0.0-alpha.76
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/cdn/core.global.js +1 -1
- package/dist/src/cdn/chunk-MYXLT5LG.mjs +1 -0
- package/dist/src/cdn/core.cjs +1 -1
- package/dist/src/cdn/core.mjs +1 -1
- package/dist/src/cdn/router-next-YWV2KJP4.mjs +1 -0
- package/dist/src/index.cjs +1 -1
- package/dist/src/index.mjs +1 -1
- package/dist/src/lib/client/index.cjs +1 -1
- package/dist/src/lib/client/index.mjs +1 -1
- package/dist/src/lib/client/router-next-2FH6DRYT.mjs +1 -0
- package/dist/src/lib/core.cjs +1 -1
- package/dist/src/lib/core.d.ts +2 -2
- package/dist/src/lib/core.d.ts.map +1 -1
- package/dist/src/lib/core.js +4 -2
- package/dist/src/lib/core.mjs +1 -1
- package/dist/src/lib/index.cjs +1 -1
- package/dist/src/lib/index.mjs +1 -1
- package/dist/src/lib/render/index.cjs +1 -1
- package/dist/src/lib/render/index.mjs +1 -1
- package/dist/src/lib/render/suspense.cjs +1 -1
- package/dist/src/lib/render/suspense.d.ts.map +1 -1
- package/dist/src/lib/render/suspense.js +32 -13
- package/dist/src/lib/render/suspense.mjs +1 -1
- package/dist/src/lib/render/versions.cjs +1 -1
- package/dist/src/lib/render/versions.mjs +1 -1
- package/dist/src/lib/router-next/index.cjs +1 -1
- package/dist/src/lib/router-next/index.d.ts +33 -0
- package/dist/src/lib/router-next/index.d.ts.map +1 -1
- package/dist/src/lib/router-next/index.js +54 -0
- package/dist/src/lib/router-next/index.mjs +1 -1
- package/dist/src/version.generated.cjs +1 -1
- package/dist/src/version.generated.d.ts +1 -1
- package/dist/src/version.generated.js +1 -1
- package/dist/src/version.generated.mjs +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +11 -11
- package/dist/src/cdn/chunk-77RTVCS5.mjs +0 -1
- package/dist/src/cdn/router-next-32ZDQIFJ.mjs +0 -1
- package/dist/src/lib/client/router-next-NL65GSYA.mjs +0 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SuspenseContext on this component's owner), which flips inFallback. The output
|
|
5
5
|
* memo swaps between fallback and children on that signal.
|
|
6
6
|
*/
|
|
7
|
-
import { createSignal, createMemo, createEffect, createRenderEffect, isSignal, useContext, createContext, createSuspenseBoundary, provideSuspense, } from '@fluixi/reactive/signal';
|
|
7
|
+
import { createSignal, createMemo, createEffect, createRenderEffect, isSignal, readChildren, useContext, createContext, createSuspenseBoundary, provideSuspense, } from '@fluixi/reactive/signal';
|
|
8
8
|
import { asSuspense, isComponent, createComponent, runWithoutHydration, } from '@fluixi/dom';
|
|
9
9
|
export const $SUSPENSE = Symbol.for('suspense');
|
|
10
10
|
function isNode(value) {
|
|
@@ -49,24 +49,41 @@ function SuspenseImpl(props) {
|
|
|
49
49
|
const fallback = runWithoutHydration(() => instantiateOnce(props.fallback ?? null));
|
|
50
50
|
// Read the children under the boundary so the memos they create capture its owner;
|
|
51
51
|
// then a suspended resource read inside them throws to THIS boundary, not the parent.
|
|
52
|
-
|
|
52
|
+
//
|
|
53
|
+
// `readChildren`, not a bare `props.children` read: a component child arrives as a THUNK
|
|
54
|
+
// that instantiates when called, so reading the prop alone hands back a function and the
|
|
55
|
+
// component never runs here. It would then be instantiated later, downstream of the output
|
|
56
|
+
// memo, where a suspend has no boundary that can re-run it — the failure that produced an
|
|
57
|
+
// empty node on a client navigation into a not-yet-loaded lazy route: no fallback, no
|
|
58
|
+
// content, no error. `readChildren` unwraps the thunks (so the lazy component runs under
|
|
59
|
+
// this boundary), stops at signals so dynamic children stay reactive, and memoises the
|
|
60
|
+
// result so the tracking effect below and the output render the same instantiation.
|
|
61
|
+
const children = provideSuspense(boundary, () => readChildren(() => props.children));
|
|
53
62
|
// Instantiate the children now, in their own effect under the boundary. A suspended
|
|
54
63
|
// resource read inside them throws here synchronously — a sibling of the output memo
|
|
55
64
|
// below — so the increment reschedules the output cleanly (matching the canary). If we
|
|
56
65
|
// only rendered children through the output's return, the resource read would be nested
|
|
57
66
|
// inside the output's own insert effect, which then never re-runs to show the fallback.
|
|
67
|
+
//
|
|
68
|
+
// Follow NESTED accessors, not just the outer one: the compiler wraps a dynamic child in
|
|
69
|
+
// its own memo, and `readChildren` stops at signals on purpose so they stay reactive. Stop
|
|
70
|
+
// at the outer read and a lazy component behind a condition is never instantiated here —
|
|
71
|
+
// it runs later, downstream, where its suspend reaches no boundary. Reading a memo is
|
|
72
|
+
// idempotent (it caches, and the output reads the same one), so following the chain costs
|
|
73
|
+
// nothing and cannot duplicate the subtree.
|
|
74
|
+
const track = (value, depth) => {
|
|
75
|
+
if (depth > 8)
|
|
76
|
+
return;
|
|
77
|
+
if (Array.isArray(value)) {
|
|
78
|
+
for (const x of value)
|
|
79
|
+
track(x, depth + 1);
|
|
80
|
+
}
|
|
81
|
+
else if (typeof value === 'function' && isSignal(value)) {
|
|
82
|
+
track(value(), depth + 1);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
58
85
|
provideSuspense(boundary, () => {
|
|
59
|
-
createRenderEffect(() =>
|
|
60
|
-
const c = children;
|
|
61
|
-
if (Array.isArray(c)) {
|
|
62
|
-
for (const x of c)
|
|
63
|
-
if (typeof x === 'function' && isSignal(x))
|
|
64
|
-
x();
|
|
65
|
-
}
|
|
66
|
-
else if (typeof c === 'function' && isSignal(c)) {
|
|
67
|
-
c();
|
|
68
|
-
}
|
|
69
|
-
});
|
|
86
|
+
createRenderEffect(() => track(children, 0));
|
|
70
87
|
});
|
|
71
88
|
// A raw promise child: track it directly on the boundary.
|
|
72
89
|
const [resolved, setResolved] = createSignal(undefined);
|
|
@@ -80,6 +97,8 @@ function SuspenseImpl(props) {
|
|
|
80
97
|
}
|
|
81
98
|
return createMemo(() => {
|
|
82
99
|
const showFallback = listState ? listState.showFallback() : boundary.inFallback();
|
|
100
|
+
if (process.env.FX_DEBUG)
|
|
101
|
+
console.log('[s] output; showFallback:', showFallback);
|
|
83
102
|
if (showFallback)
|
|
84
103
|
return fallback;
|
|
85
104
|
if (childIsPromise)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createSignal as d,createMemo as
|
|
1
|
+
import{createSignal as d,createMemo as w,createEffect as C,createRenderEffect as F,isSignal as y,readChildren as g,useContext as P,createContext as A,createSuspenseBoundary as L,provideSuspense as b}from"@fluixi/reactive/signal";import{asSuspense as x,isComponent as E,createComponent as S,runWithoutHydration as R}from"@fluixi/dom";var O=Symbol.for("suspense");function T(e){return typeof window>"u"?!1:typeof Node=="function"&&e instanceof Node?!0:!!(e&&typeof e=="object"&&typeof e.nodeType=="number")}function I(e){return!e||typeof e!="object"?!1:!!(typeof e._$litType$<"u"||typeof e._$litDirective$<"u"||Array.isArray(e.strings)&&Array.isArray(e.values))}function j(e){return!!(e&&typeof e=="object"&&typeof e.then=="function"||e instanceof Promise)}function D(e){return!!(e&&typeof e=="object"&&"type"in e&&"props"in e)}var h=A();function m(e){return S(N,e)}function N(e){let s=L(),a=P(h),i=a?a.register(s.inFallback):void 0;function l(n){return n==null||typeof n=="boolean"?null:typeof n=="function"&&E(n)&&!y(n)?n():n}let f=R(()=>l(e.fallback??null)),o=b(s,()=>g(()=>e.children)),t=(n,p)=>{if(!(p>8))if(Array.isArray(n))for(let k of n)t(k,p+1);else typeof n=="function"&&y(n)&&t(n(),p+1)};b(s,()=>{F(()=>t(o,0))});let[r,u]=d(void 0),c=j(o);return c&&(s.increment(),o.then(n=>{u(()=>n),s.decrement()},()=>s.decrement())),w(()=>{let n=i?i.showFallback():s.inFallback();return process.env.FX_DEBUG&&console.log("[s] output; showFallback:",n),n?f:c?r():o})}function U(e){return S(_,e)}function _(e){let{revealOrder:s="together",tail:a}=e,i=[];function l(){if(s==="together"){let o=i.every(t=>!t.inFallback());i.forEach(t=>{t.setShowContent(o),t.setShowFallback(!o)})}else{let o=s==="backwards"?[...i].reverse():i,t=!1;for(let r of o)t||r.inFallback()?(t=!0,r.setShowContent(!1),r.setShowFallback(a!=="hidden")):(r.setShowContent(!0),r.setShowFallback(!1))}}let f={register:o=>{let[t,r]=d(!0),[u,c]=d(!1);return i.push({inFallback:o,setShowContent:r,setShowFallback:c}),C(()=>{o(),l()}),{showContent:t,showFallback:u}}};return h.Provider({value:f,children:e.children})}x(m);Object.defineProperty(m,"__suspense",{value:!0,enumerable:!0});export{O as $SUSPENSE,m as Suspense,U as SuspenseList,D as isJSXElement,I as isLitResult,T as isNode,j as isPromise};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var n=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var f=(o,r)=>{for(var i in r)n(o,i,{get:r[i],enumerable:!0})},x=(o,r,i,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of a(r))!O.call(o,s)&&s!==i&&n(o,s,{get:()=>r[s],enumerable:!(t=V(r,s))||t.enumerable});return o};var E=o=>x(n({},"__esModule",{value:!0}),o);var R={};f(R,{stampVersions:()=>e.stampVersions,versions:()=>e.versions,warnOnVersionSkew:()=>e.warnOnVersionSkew});module.exports=E(R);var m=require("@fluixi/dom");var p="1.0.0-alpha.
|
|
1
|
+
"use strict";var n=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var f=(o,r)=>{for(var i in r)n(o,i,{get:r[i],enumerable:!0})},x=(o,r,i,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of a(r))!O.call(o,s)&&s!==i&&n(o,s,{get:()=>r[s],enumerable:!(t=V(r,s))||t.enumerable});return o};var E=o=>x(n({},"__esModule",{value:!0}),o);var R={};f(R,{stampVersions:()=>e.stampVersions,versions:()=>e.versions,warnOnVersionSkew:()=>e.warnOnVersionSkew});module.exports=E(R);var m=require("@fluixi/dom");var p="1.0.0-alpha.76";var e=require("@fluixi/dom");(0,m.registerCoreVersion)(p);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{registerCoreVersion as o}from"@fluixi/dom";var r="1.0.0-alpha.
|
|
1
|
+
import{registerCoreVersion as o}from"@fluixi/dom";var r="1.0.0-alpha.76";import{stampVersions as p,warnOnVersionSkew as m,versions as V}from"@fluixi/dom";o(r);export{p as stampVersions,V as versions,m as warnOnVersionSkew};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var P=Object.defineProperty;var re=Object.getOwnPropertyDescriptor;var oe=Object.getOwnPropertyNames;var ae=Object.prototype.hasOwnProperty;var ie=(e,n)=>{for(var t in n)P(e,t,{get:n[t],enumerable:!0})},se=(e,n,t,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of oe(n))!ae.call(e,r)&&r!==t&&P(e,r,{get:()=>n[r],enumerable:!(o=re(n,r))||o.enumerable});return e};var ce=e=>se(P({},"__esModule",{value:!0}),e);var He={};ie(He,{A:()=>Me,Form:()=>Ne,Link:()=>Z,Outlet:()=>Re,Redirect:()=>be,Router:()=>Ce,action:()=>E,cache:()=>F,createAsync:()=>I,createBrowserHistory:()=>g.createBrowserHistory,createMemoryHistory:()=>g.createMemoryHistory,lazy:()=>$,matchPath:()=>g.matchPath,matchRoutes:()=>g.matchRoutes,preloadRoutes:()=>_e,revalidate:()=>U,runWithOwner:()=>ee.runWithOwner,select:()=>Le,useAction:()=>W,useLevelParams:()=>Pe,useLocation:()=>D,useMatch:()=>Oe,useNavigate:()=>Q,useParam:()=>Ae,useParamSelector:()=>Se,useParams:()=>L,useRouteData:()=>De,useRouter:()=>w,useSearchParams:()=>Ee,useSubmission:()=>z});module.exports=ce(He);var s=require("@fluixi/reactive/signal"),u=require("@fluixi/dom"),l=require("@fluixi/reactive/signal"),q=require("@fluixi/utils/object"),B=require("@fluixi/utils/compare"),m=require("@fluixi/router"),g=require("@fluixi/router");var T=require("@fluixi/reactive/signal");var ue=!1,A=new Map;function k(){return ue}function M(e,n){A.set(e,n)}function N(e){return A.get(e)}function de(){A.clear()}function fe(){if(typeof window>"u")return;let e=document.getElementById("__FLUIXI_HYDRATION__");e&&e.remove();let n=document.createTreeWalker(document.body,NodeFilter.SHOW_COMMENT,null),t=[],o;for(;o=n.nextNode();){let r=o,a=r.nodeValue||"";(a.startsWith("#")||a.startsWith("/"))&&t.push(r)}t.forEach(r=>r.remove()),de()}typeof window<"u"&&window.addEventListener("load",()=>{setTimeout(fe,100)});function _(){return typeof window>"u"}var V=require("@fluixi/dom"),S=require("@fluixi/reactive/signal"),ye=require("@fluixi/reactive/signal");var R=require("@fluixi/dom"),f=require("@fluixi/reactive/signal");function H(e){(0,R.registerCreateComponent)(le)}function le(e,n){return pe(e,n)}function pe(e,n){let t=typeof e=="function"?(0,f.untrack)(()=>e(n)):e;if(t!=null&&(typeof t=="function"||typeof t=="object")&&!(0,f.isSignal)(t)){try{t.$name=e.name}catch{}return(0,R.asComponent)(t)}return t}H("index");function j(e){let n=(0,S.createContext)(e),t=o=>(o.debug,n.Provider({value:o.value,get children(){return o.children},debug:o.debug}));return typeof Symbol<"u"&&Symbol.for&&(t.$$typeof=Symbol.for("react.provider")),t.$$typeof=Symbol.for("react.provider"),{id:n.id,Provider:(0,V.asProvider)(t),defaultValue:e}}var v=new Map,h=new Map;function F(e,n){return async(...t)=>{let o=n+":"+JSON.stringify(t);if(k()||typeof window<"u"){let a=N(o);if(a!==void 0)return a}if(v.has(o))return v.get(o);if(h.has(o))return h.get(o);let r=Promise.resolve(e(...t)).then(a=>(v.set(o,a),h.delete(o),_()&&M(o,a),a),a=>{throw h.delete(o),a});return h.set(o,r),r}}var[rt,me]=(0,T.createSignal)(0),ge=new Set;function U(e){let n=typeof e=="string"?t=>t.startsWith(e):e;for(let t of v.keys())n(t)&&(v.delete(t),ge.add(t));me(t=>t+1)}function I(e,n){let[t]=(0,T.createResource)(n||(()=>!0),e);return t}var O=new Map;function K(e){return O.has(e)||O.set(e,(0,T.createSignal)(void 0)),O.get(e)}function E(e,n){let t=n||e.name||"action",o=async r=>{let[,a]=K(t),i=()=>a(void 0),c=()=>o(r);a({input:r,pending:!0,clear:i,retry:c});try{let d=await e(r);return a({input:r,result:d,pending:!1,clear:i,retry:c}),d}catch(d){throw a({input:r,error:d,pending:!1,clear:i,retry:c}),d}};return o.url=t,o.with=r=>E((...a)=>e(r,...a),n),o}function z(e){let[n]=K(e.url);return n}function W(e){return e}var xe=j(),ot=xe.Provider;var x=require("@fluixi/reactive/signal");function $(e,n){let t,o,r;function a(){return o||(o=e().then(c=>t=c.default)),o}n?.preload&&a();let i=(c=>{if(t){let d=t;return(0,x.untrack)(()=>d(c))}if(!r){let[d]=(0,x.createResource)(()=>a(),{transport:!1});if(r=d,d.error)throw d.error}return(0,x.createMemo)(()=>{let d=r();return d?(0,x.untrack)(()=>d(c)):void 0},void 0,{name:"lazy"})});return i.preload=()=>a().then(()=>{}),i.$lazy=!0,i.loader=e,i}var ee=require("@fluixi/reactive/signal"),b=(0,l.createContext)(),J=(0,l.createContext)(),X=(0,l.createContext)(),Y=(0,l.createContext)();function he(e,n,t){let o,r=e.route.data;if(typeof r=="function"){let C=!1;(0,s.onCleanup)(()=>{C=!0});let te=(0,s.getOwner)(),[ne]=(0,s.createResource)(()=>r({params:t.params,location:t.location},te,()=>C));o=ne}let a=()=>Y.Provider({value:o,get children(){return X.Provider({value:e.params,get children(){return J.Provider({value:{depth:n,...t},get children(){return(0,u.createComponent)(e.component,{})}})}})}});if(!o)return a();let i=o,c=()=>i.loading,[d,p]=(0,s.createSignal)((0,s.untrack)(()=>!c()));return(0,s.createEffect)(()=>p(!c())),(0,s.createMemo)(()=>d()?a():null)}function G(e){let n=e.depth+1,[t,o]=(0,s.createSignal)((0,s.untrack)(()=>e.matched()[n]?.component));return(0,s.createEffect)(()=>{let r=e.matched()[n]?.component;o(()=>r)}),(0,s.createMemo)(()=>{if(!t())return e.notFound?e.notFound():null;let a=(0,s.untrack)(()=>e.matched())[n];return he(a,n,{matched:e.matched,params:e.params,location:e.location})})}function ve(e){return e==null?Te():typeof e=="function"?(0,u.createComponent)(e,{}):e}function Te(){let e=(0,u.createNativeElement)("div");(0,u.setAttribute)(e,"class","fx-not-found"),(0,u.setAttribute)(e,"role","main"),(0,u.setAttribute)(e,"style","min-height:60vh;display:grid;place-content:center;gap:.25rem;text-align:center;font-family:system-ui,-apple-system,sans-serif");let n=(0,u.createNativeElement)("h1");(0,u.setAttribute)(n,"style","margin:0;font-size:2.5rem;font-weight:700"),(0,u.insert)(n,"404");let t=(0,u.createNativeElement)("p");return(0,u.setAttribute)(t,"style","margin:0;opacity:.7"),(0,u.insert)(t,"This page could not be found."),e.appendChild(n),e.appendChild(t),e}function Ce(e){let n=e.history??(0,m.createBrowserHistory)(),t=(0,m.createRouter)({routes:e.routes,base:e.base,history:n}),[o,r]=(0,s.createSignal)(t.state()),a=t.subscribe(r);(0,s.onCleanup)(()=>{a(),t.destroy()});let i=(0,s.createMemo)(()=>(o().match?.matched??[]).filter(C=>C.component)),c={router:t,location:(0,s.createMemo)(()=>o().location),params:(0,s.createMemo)(()=>o().match?.params??{})},d={depth:-1,matched:i,params:c.params,location:c.location,notFound:()=>ve(e.notFound)},p;return b.Provider({value:c,get children(){return p??=G(d)}})}function Re(){let e=(0,l.useContext)(J);return e?G(e):null}function be(e){let n=(0,l.useContext)(b);if(!n||typeof window>"u")return null;let t=!1;return(0,s.onCleanup)(()=>t=!0),queueMicrotask(()=>{t||n.router.navigate(e.to,{replace:e.replace!==!1})}),null}var we={router:{navigate:()=>{}},location:()=>({pathname:"",search:"",hash:"",query:{}}),params:()=>({})};function w(){let e=(0,l.useContext)(b);if(e)return e;if(typeof window>"u")return we;throw new Error("[router-next] useRouter must be used within <Router>")}function L(){let e=w().params;return(0,s.createMemo)(()=>e(),{},{equals:(n,t)=>JSON.stringify(n)===JSON.stringify(t)})}function Pe(){return(0,l.useContext)(X)??{}}function Ae(e){let n=L();return(0,s.createMemo)(()=>n()[e])}function Se(e,n){let t=L();return(0,s.createMemo)(()=>e(t()),void 0,n?{equals:n}:void 0)}function Oe(e){let n=D();return(0,s.createMemo)(()=>(0,m.matchPath)(typeof e=="function"?e():e,n.pathname))}function Ee(){let e=D(),n=Q();return[(0,s.createMemo)(()=>e.query),(r,a)=>{let i=new URLSearchParams(e.search);for(let[d,p]of Object.entries(r))p===null?i.delete(d):i.set(d,p);let c=i.toString();n(e.pathname+(c?`?${c}`:""),a)}]}function Le(e,n){let t=(o,r)=>(0,B.deepEqual)(o,r);return n!==void 0?(0,s.createMemo)(()=>(0,q.get)(e(),n),void 0,{equals:t}):(0,s.createMemo)(e,void 0,{equals:t})}function D(){let{location:e}=w();return new Proxy({},{get:(n,t)=>e()[t],has:(n,t)=>t in e(),ownKeys:()=>Reflect.ownKeys(e()),getOwnPropertyDescriptor:(n,t)=>Object.getOwnPropertyDescriptor(e(),t)})}function Q(){let{router:e}=w();return(n,t)=>e.navigate(n,t)}function De(){return(0,l.useContext)(Y)??(()=>{})}var y=e=>typeof e=="function"?e():e,ke=new Set(["href","slot","class","className","active","activeClass","replace","children"]);function Z(e){let n=(0,l.useContext)(b),t=typeof document>"u",o=()=>n?.router.navigate(y(e.href)??"",{replace:y(e.replace)}),r=(0,u.createNativeElement)("a");(0,u.setAttribute)(r,"href",y(e.href)??""),e.slot&&(0,u.setAttribute)(r,"slot",y(e.slot));for(let i of Object.keys(e)){if(ke.has(i))continue;let c=e[i];c!=null&&typeof c!="function"&&(0,u.setAttribute)(r,i,String(c))}if(typeof r.addEventListener=="function")r.addEventListener("click",i=>{i.metaKey||i.ctrlKey||i.shiftKey||i.altKey||(i.preventDefault(),o())});else{let i=y(e.className??e.class)??"";i&&(0,u.setAttribute)(r,"class",i)}typeof r.addEventListener=="function"&&(0,s.createEffect)(()=>{let i=y(e.href)??"";r.setAttribute("href",i);let c=y(e.className??e.class)??"",d=y(e.activeClass)??"",p=y(e.active)??n?.location().pathname===i;r.className=[c,p?d:""].filter(Boolean).join(" ")});let a=e.children;return a!=null&&(0,u.insert)(r,a),r}var Me=Z;function Ne(e){let n=e.action,t=e.className??e.class,o=n.url??"",r=(0,u.createNativeElement)("form");(0,u.setAttribute)(r,"method","post"),o&&(0,u.setAttribute)(r,"action",o),t&&(0,u.setAttribute)(r,"class",t);for(let i of Object.keys(e)){if(i==="action"||i==="children"||i==="class"||i==="className")continue;let c=e[i];c!=null&&typeof c!="function"&&(0,u.setAttribute)(r,i,String(c))}typeof r.addEventListener=="function"&&r.addEventListener("submit",i=>{i.preventDefault();let c={};new FormData(r).forEach((d,p)=>{c[p]=d}),Promise.resolve(n(c)).catch(()=>{})});let a=e.children;return a!=null&&(0,u.insert)(r,a),r}async function _e(e,n){let t=(0,m.matchRoutes)(e,n);if(!t)return;let o=[];for(let r of t.matched){let a=r.component;a&&typeof a.preload=="function"&&o.push(a.preload())}await Promise.all(o)}
|
|
1
|
+
"use strict";var P=Object.defineProperty;var re=Object.getOwnPropertyDescriptor;var oe=Object.getOwnPropertyNames;var ae=Object.prototype.hasOwnProperty;var ie=(e,n)=>{for(var t in n)P(e,t,{get:n[t],enumerable:!0})},se=(e,n,t,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of oe(n))!ae.call(e,r)&&r!==t&&P(e,r,{get:()=>n[r],enumerable:!(o=re(n,r))||o.enumerable});return e};var ce=e=>se(P({},"__esModule",{value:!0}),e);var Ve={};ie(Ve,{A:()=>Ne,Form:()=>_e,Link:()=>Z,Outlet:()=>be,Redirect:()=>Re,Router:()=>Ce,action:()=>L,cache:()=>F,createAsync:()=>K,createBrowserHistory:()=>g.createBrowserHistory,createMemoryHistory:()=>g.createMemoryHistory,lazy:()=>$,matchPath:()=>g.matchPath,matchRoutes:()=>g.matchRoutes,preloadRoutes:()=>He,revalidate:()=>U,runWithOwner:()=>ee.runWithOwner,select:()=>Ee,useAction:()=>W,useLevelParams:()=>Pe,useLinkNavigation:()=>ke,useLocation:()=>k,useMatch:()=>Oe,useNavigate:()=>Q,useParam:()=>Ae,useParamSelector:()=>Se,useParams:()=>E,useRouteData:()=>De,useRouter:()=>w,useSearchParams:()=>Le,useSubmission:()=>z});module.exports=ce(Ve);var s=require("@fluixi/reactive/signal"),u=require("@fluixi/dom"),l=require("@fluixi/reactive/signal"),q=require("@fluixi/utils/object"),B=require("@fluixi/utils/compare"),m=require("@fluixi/router"),g=require("@fluixi/router");var T=require("@fluixi/reactive/signal");var ue=!1,A=new Map;function D(){return ue}function M(e,n){A.set(e,n)}function N(e){return A.get(e)}function de(){A.clear()}function le(){if(typeof window>"u")return;let e=document.getElementById("__FLUIXI_HYDRATION__");e&&e.remove();let n=document.createTreeWalker(document.body,NodeFilter.SHOW_COMMENT,null),t=[],o;for(;o=n.nextNode();){let r=o,a=r.nodeValue||"";(a.startsWith("#")||a.startsWith("/"))&&t.push(r)}t.forEach(r=>r.remove()),de()}typeof window<"u"&&window.addEventListener("load",()=>{setTimeout(le,100)});function _(){return typeof window>"u"}var V=require("@fluixi/dom"),S=require("@fluixi/reactive/signal"),ye=require("@fluixi/reactive/signal");var R=require("@fluixi/dom"),f=require("@fluixi/reactive/signal");function H(e){(0,R.registerCreateComponent)(fe)}function fe(e,n){return pe(e,n)}function pe(e,n){let t=typeof e=="function"?(0,f.untrack)(()=>e(n)):e;if(t!=null&&(typeof t=="function"||typeof t=="object")&&!(0,f.isSignal)(t)){try{t.$name=e.name}catch{}return(0,R.asComponent)(t)}return t}H("index");function j(e){let n=(0,S.createContext)(e),t=o=>(o.debug,n.Provider({value:o.value,get children(){return o.children},debug:o.debug}));return typeof Symbol<"u"&&Symbol.for&&(t.$$typeof=Symbol.for("react.provider")),t.$$typeof=Symbol.for("react.provider"),{id:n.id,Provider:(0,V.asProvider)(t),defaultValue:e}}var v=new Map,x=new Map;function F(e,n){return async(...t)=>{let o=n+":"+JSON.stringify(t);if(D()||typeof window<"u"){let a=N(o);if(a!==void 0)return a}if(v.has(o))return v.get(o);if(x.has(o))return x.get(o);let r=Promise.resolve(e(...t)).then(a=>(v.set(o,a),x.delete(o),_()&&M(o,a),a),a=>{throw x.delete(o),a});return x.set(o,r),r}}var[ot,me]=(0,T.createSignal)(0),ge=new Set;function U(e){let n=typeof e=="string"?t=>t.startsWith(e):e;for(let t of v.keys())n(t)&&(v.delete(t),ge.add(t));me(t=>t+1)}function K(e,n){let[t]=(0,T.createResource)(n||(()=>!0),e);return t}var O=new Map;function I(e){return O.has(e)||O.set(e,(0,T.createSignal)(void 0)),O.get(e)}function L(e,n){let t=n||e.name||"action",o=async r=>{let[,a]=I(t),i=()=>a(void 0),c=()=>o(r);a({input:r,pending:!0,clear:i,retry:c});try{let d=await e(r);return a({input:r,result:d,pending:!1,clear:i,retry:c}),d}catch(d){throw a({input:r,error:d,pending:!1,clear:i,retry:c}),d}};return o.url=t,o.with=r=>L((...a)=>e(r,...a),n),o}function z(e){let[n]=I(e.url);return n}function W(e){return e}var he=j(),at=he.Provider;var h=require("@fluixi/reactive/signal");function $(e,n){let t,o,r;function a(){return o||(o=e().then(c=>t=c.default)),o}n?.preload&&a();let i=(c=>{if(t){let d=t;return(0,h.untrack)(()=>d(c))}if(!r){let[d]=(0,h.createResource)(()=>a(),{transport:!1});if(r=d,d.error)throw d.error}return(0,h.createMemo)(()=>{let d=r();return d?(0,h.untrack)(()=>d(c)):void 0},void 0,{name:"lazy"})});return i.preload=()=>a().then(()=>{}),i.$lazy=!0,i.loader=e,i}var ee=require("@fluixi/reactive/signal"),C=(0,l.createContext)(),J=(0,l.createContext)(),X=(0,l.createContext)(),Y=(0,l.createContext)();function xe(e,n,t){let o,r=e.route.data;if(typeof r=="function"){let b=!1;(0,s.onCleanup)(()=>{b=!0});let te=(0,s.getOwner)(),[ne]=(0,s.createResource)(()=>r({params:t.params,location:t.location},te,()=>b));o=ne}let a=()=>Y.Provider({value:o,get children(){return X.Provider({value:e.params,get children(){return J.Provider({value:{depth:n,...t},get children(){return(0,u.createComponent)(e.component,{})}})}})}});if(!o)return a();let i=o,c=()=>i.loading,[d,p]=(0,s.createSignal)((0,s.untrack)(()=>!c()));return(0,s.createEffect)(()=>p(!c())),(0,s.createMemo)(()=>d()?a():null)}function G(e){let n=e.depth+1,[t,o]=(0,s.createSignal)((0,s.untrack)(()=>e.matched()[n]?.component));return(0,s.createEffect)(()=>{let r=e.matched()[n]?.component;o(()=>r)}),(0,s.createMemo)(()=>{if(!t())return e.notFound?e.notFound():null;let a=(0,s.untrack)(()=>e.matched())[n];return xe(a,n,{matched:e.matched,params:e.params,location:e.location})})}function ve(e){return e==null?Te():typeof e=="function"?(0,u.createComponent)(e,{}):e}function Te(){let e=(0,u.createNativeElement)("div");(0,u.setAttribute)(e,"class","fx-not-found"),(0,u.setAttribute)(e,"role","main"),(0,u.setAttribute)(e,"style","min-height:60vh;display:grid;place-content:center;gap:.25rem;text-align:center;font-family:system-ui,-apple-system,sans-serif");let n=(0,u.createNativeElement)("h1");(0,u.setAttribute)(n,"style","margin:0;font-size:2.5rem;font-weight:700"),(0,u.insert)(n,"404");let t=(0,u.createNativeElement)("p");return(0,u.setAttribute)(t,"style","margin:0;opacity:.7"),(0,u.insert)(t,"This page could not be found."),e.appendChild(n),e.appendChild(t),e}function Ce(e){let n=e.history??(0,m.createBrowserHistory)(),t=(0,m.createRouter)({routes:e.routes,base:e.base,history:n}),[o,r]=(0,s.createSignal)(t.state()),a=t.subscribe(r);(0,s.onCleanup)(()=>{a(),t.destroy()});let i=(0,s.createMemo)(()=>(o().match?.matched??[]).filter(b=>b.component)),c={router:t,location:(0,s.createMemo)(()=>o().location),params:(0,s.createMemo)(()=>o().match?.params??{})},d={depth:-1,matched:i,params:c.params,location:c.location,notFound:()=>ve(e.notFound)},p;return C.Provider({value:c,get children(){return p??=G(d)}})}function be(){let e=(0,l.useContext)(J);return e?G(e):null}function Re(e){let n=(0,l.useContext)(C);if(!n||typeof window>"u")return null;let t=!1;return(0,s.onCleanup)(()=>t=!0),queueMicrotask(()=>{t||n.router.navigate(e.to,{replace:e.replace!==!1})}),null}var we={router:{navigate:()=>{}},location:()=>({pathname:"",search:"",hash:"",query:{}}),params:()=>({})};function w(){let e=(0,l.useContext)(C);if(e)return e;if(typeof window>"u")return we;throw new Error("[router-next] useRouter must be used within <Router>")}function E(){let e=w().params;return(0,s.createMemo)(()=>e(),{},{equals:(n,t)=>JSON.stringify(n)===JSON.stringify(t)})}function Pe(){return(0,l.useContext)(X)??{}}function Ae(e){let n=E();return(0,s.createMemo)(()=>n()[e])}function Se(e,n){let t=E();return(0,s.createMemo)(()=>e(t()),void 0,n?{equals:n}:void 0)}function Oe(e){let n=k();return(0,s.createMemo)(()=>(0,m.matchPath)(typeof e=="function"?e():e,n.pathname))}function Le(){let e=k(),n=Q();return[(0,s.createMemo)(()=>e.query),(r,a)=>{let i=new URLSearchParams(e.search);for(let[d,p]of Object.entries(r))p===null?i.delete(d):i.set(d,p);let c=i.toString();n(e.pathname+(c?`?${c}`:""),a)}]}function Ee(e,n){let t=(o,r)=>(0,B.deepEqual)(o,r);return n!==void 0?(0,s.createMemo)(()=>(0,q.get)(e(),n),void 0,{equals:t}):(0,s.createMemo)(e,void 0,{equals:t})}function k(){let{location:e}=w();return new Proxy({},{get:(n,t)=>e()[t],has:(n,t)=>t in e(),ownKeys:()=>Reflect.ownKeys(e()),getOwnPropertyDescriptor:(n,t)=>Object.getOwnPropertyDescriptor(e(),t)})}function ke(e={}){let n=(0,l.useContext)(C);return t=>{if(!n||t.defaultPrevented||t.button!==0||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)return;let r=t.target?.closest?.("a");if(!r||!r.getAttribute("href")||r.target&&r.target!=="_self"||r.hasAttribute("download")||/(^|\s)external(\s|$)/.test(r.getAttribute("rel")??""))return;let a=new URL(r.href);a.protocol!=="http:"&&a.protocol!=="https:"||a.origin===window.location.origin&&(a.hash&&a.pathname===window.location.pathname&&a.search===window.location.search||e.shouldNavigate&&!e.shouldNavigate(a,r)||(t.preventDefault(),n.router.navigate(a.pathname+a.search+a.hash,{replace:e.replace})))}}function Q(){let{router:e}=w();return(n,t)=>e.navigate(n,t)}function De(){return(0,l.useContext)(Y)??(()=>{})}var y=e=>typeof e=="function"?e():e,Me=new Set(["href","slot","class","className","active","activeClass","replace","children"]);function Z(e){let n=(0,l.useContext)(C),t=typeof document>"u",o=()=>n?.router.navigate(y(e.href)??"",{replace:y(e.replace)}),r=(0,u.createNativeElement)("a");(0,u.setAttribute)(r,"href",y(e.href)??""),e.slot&&(0,u.setAttribute)(r,"slot",y(e.slot));for(let i of Object.keys(e)){if(Me.has(i))continue;let c=e[i];c!=null&&typeof c!="function"&&(0,u.setAttribute)(r,i,String(c))}if(typeof r.addEventListener=="function")r.addEventListener("click",i=>{i.metaKey||i.ctrlKey||i.shiftKey||i.altKey||(i.preventDefault(),o())});else{let i=y(e.className??e.class)??"";i&&(0,u.setAttribute)(r,"class",i)}typeof r.addEventListener=="function"&&(0,s.createEffect)(()=>{let i=y(e.href)??"";r.setAttribute("href",i);let c=y(e.className??e.class)??"",d=y(e.activeClass)??"",p=y(e.active)??n?.location().pathname===i;r.className=[c,p?d:""].filter(Boolean).join(" ")});let a=e.children;return a!=null&&(0,u.insert)(r,a),r}var Ne=Z;function _e(e){let n=e.action,t=e.className??e.class,o=n.url??"",r=(0,u.createNativeElement)("form");(0,u.setAttribute)(r,"method","post"),o&&(0,u.setAttribute)(r,"action",o),t&&(0,u.setAttribute)(r,"class",t);for(let i of Object.keys(e)){if(i==="action"||i==="children"||i==="class"||i==="className")continue;let c=e[i];c!=null&&typeof c!="function"&&(0,u.setAttribute)(r,i,String(c))}typeof r.addEventListener=="function"&&r.addEventListener("submit",i=>{i.preventDefault();let c={};new FormData(r).forEach((d,p)=>{c[p]=d}),Promise.resolve(n(c)).catch(()=>{})});let a=e.children;return a!=null&&(0,u.insert)(r,a),r}async function He(e,n){let t=(0,m.matchRoutes)(e,n);if(!t)return;let o=[];for(let r of t.matched){let a=r.component;a&&typeof a.preload=="function"&&o.push(a.preload())}await Promise.all(o)}
|
|
@@ -94,6 +94,39 @@ export declare function select<T, K extends string = never>(source: () => T, key
|
|
|
94
94
|
* subscribes to location changes. Matches the old router's useLocation().
|
|
95
95
|
*/
|
|
96
96
|
export declare function useLocation(): RouterLocation;
|
|
97
|
+
export interface LinkNavigationOptions {
|
|
98
|
+
/** Replace the current history entry instead of pushing a new one. */
|
|
99
|
+
replace?: boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Called with the resolved URL before navigating. Return false to leave the click
|
|
102
|
+
* alone — for a section of the app that must load as a document (a different
|
|
103
|
+
* bundle, a server-rendered admin area, a file route).
|
|
104
|
+
*/
|
|
105
|
+
shouldNavigate?: (url: URL, anchor: HTMLAnchorElement) => boolean;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* A delegated click handler that turns plain `<a>` elements into client-side navigations.
|
|
109
|
+
*
|
|
110
|
+
* `<Link>` covers the links an app writes as JSX. This covers the ones it doesn't own:
|
|
111
|
+
* markdown or CMS HTML dropped in through `innerHTML`, where there is no component to
|
|
112
|
+
* bind to and the anchors arrive as prerendered text. Put it on the container and every
|
|
113
|
+
* link inside it navigates without reloading the document:
|
|
114
|
+
*
|
|
115
|
+
* ```tsx
|
|
116
|
+
* const onClick = useLinkNavigation();
|
|
117
|
+
* <article onClick={onClick} innerHTML={doc.html} />
|
|
118
|
+
* ```
|
|
119
|
+
*
|
|
120
|
+
* The anchors stay real anchors — middle-click, right-click → open in new tab, "copy
|
|
121
|
+
* link address" and crawlers all keep working, because the element is untouched and only
|
|
122
|
+
* a plain left-click is intercepted.
|
|
123
|
+
*
|
|
124
|
+
* Left alone: modified clicks, anything but the primary button, an already-prevented
|
|
125
|
+
* event, `target`, `download`, `rel="external"`, a non-http scheme (`mailto:`, `tel:`),
|
|
126
|
+
* another origin, and a hash pointing inside the current page — that last one is the
|
|
127
|
+
* browser's scroll, and hijacking it breaks in-page anchors.
|
|
128
|
+
*/
|
|
129
|
+
export declare function useLinkNavigation(options?: LinkNavigationOptions): (event: MouseEvent) => void;
|
|
97
130
|
export declare function useNavigate(): (to: string, options?: NavigateOptions) => void;
|
|
98
131
|
/**
|
|
99
132
|
* The resolved data for the nearest route that declared a `data` loader. Always
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/router-next/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/router-next/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -317,6 +317,60 @@ export function useLocation() {
|
|
|
317
317
|
getOwnPropertyDescriptor: (_t, key) => Object.getOwnPropertyDescriptor(location(), key),
|
|
318
318
|
});
|
|
319
319
|
}
|
|
320
|
+
/**
|
|
321
|
+
* A delegated click handler that turns plain `<a>` elements into client-side navigations.
|
|
322
|
+
*
|
|
323
|
+
* `<Link>` covers the links an app writes as JSX. This covers the ones it doesn't own:
|
|
324
|
+
* markdown or CMS HTML dropped in through `innerHTML`, where there is no component to
|
|
325
|
+
* bind to and the anchors arrive as prerendered text. Put it on the container and every
|
|
326
|
+
* link inside it navigates without reloading the document:
|
|
327
|
+
*
|
|
328
|
+
* ```tsx
|
|
329
|
+
* const onClick = useLinkNavigation();
|
|
330
|
+
* <article onClick={onClick} innerHTML={doc.html} />
|
|
331
|
+
* ```
|
|
332
|
+
*
|
|
333
|
+
* The anchors stay real anchors — middle-click, right-click → open in new tab, "copy
|
|
334
|
+
* link address" and crawlers all keep working, because the element is untouched and only
|
|
335
|
+
* a plain left-click is intercepted.
|
|
336
|
+
*
|
|
337
|
+
* Left alone: modified clicks, anything but the primary button, an already-prevented
|
|
338
|
+
* event, `target`, `download`, `rel="external"`, a non-http scheme (`mailto:`, `tel:`),
|
|
339
|
+
* another origin, and a hash pointing inside the current page — that last one is the
|
|
340
|
+
* browser's scroll, and hijacking it breaks in-page anchors.
|
|
341
|
+
*/
|
|
342
|
+
export function useLinkNavigation(options = {}) {
|
|
343
|
+
const ctx = useContext(RouterContext);
|
|
344
|
+
return (event) => {
|
|
345
|
+
if (!ctx || event.defaultPrevented || event.button !== 0)
|
|
346
|
+
return;
|
|
347
|
+
if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey)
|
|
348
|
+
return;
|
|
349
|
+
const target = event.target;
|
|
350
|
+
const anchor = target?.closest?.('a');
|
|
351
|
+
if (!anchor || !anchor.getAttribute('href'))
|
|
352
|
+
return;
|
|
353
|
+
if (anchor.target && anchor.target !== '_self')
|
|
354
|
+
return;
|
|
355
|
+
if (anchor.hasAttribute('download'))
|
|
356
|
+
return;
|
|
357
|
+
if (/(^|\s)external(\s|$)/.test(anchor.getAttribute('rel') ?? ''))
|
|
358
|
+
return;
|
|
359
|
+
// `anchor.href` is resolved against the document, so a relative `./guide` from
|
|
360
|
+
// prerendered markdown lands on the right absolute path.
|
|
361
|
+
const url = new URL(anchor.href);
|
|
362
|
+
if (url.protocol !== 'http:' && url.protocol !== 'https:')
|
|
363
|
+
return;
|
|
364
|
+
if (url.origin !== window.location.origin)
|
|
365
|
+
return;
|
|
366
|
+
if (url.hash && url.pathname === window.location.pathname && url.search === window.location.search)
|
|
367
|
+
return;
|
|
368
|
+
if (options.shouldNavigate && !options.shouldNavigate(url, anchor))
|
|
369
|
+
return;
|
|
370
|
+
event.preventDefault();
|
|
371
|
+
ctx.router.navigate(url.pathname + url.search + url.hash, { replace: options.replace });
|
|
372
|
+
};
|
|
373
|
+
}
|
|
320
374
|
export function useNavigate() {
|
|
321
375
|
// useRouter is SSR-safe (returns a no-op stub on the server when the context is
|
|
322
376
|
// detached), so navigation degrades to a no-op during SSR and only throws on
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createSignal as w,createMemo as d,createResource as ge,createEffect as P,getOwner as
|
|
1
|
+
import{createSignal as w,createMemo as d,createResource as ge,createEffect as P,getOwner as he,onCleanup as A,untrack as R}from"@fluixi/reactive/signal";import{insert as v,createComponent as j,createNativeElement as g,setAttribute as u}from"@fluixi/dom";import{createContext as T,useContext as p}from"@fluixi/reactive/signal";import{get as xe}from"@fluixi/utils/object";import{deepEqual as ve}from"@fluixi/utils/compare";import{createRouter as Te,createBrowserHistory as Ce,matchRoutes as be,matchPath as Re}from"@fluixi/router";import{createMemoryHistory as Ut,createBrowserHistory as Kt,matchRoutes as It,matchPath as zt}from"@fluixi/router";import{createResource as oe,createSignal as N}from"@fluixi/reactive/signal";var B=!1,C=new Map;function O(){return B}function L(e,n){C.set(e,n)}function E(e){return C.get(e)}function J(){C.clear()}function X(){if(typeof window>"u")return;let e=document.getElementById("__FLUIXI_HYDRATION__");e&&e.remove();let n=document.createTreeWalker(document.body,NodeFilter.SHOW_COMMENT,null),t=[],a;for(;a=n.nextNode();){let r=a,o=r.nodeValue||"";(o.startsWith("#")||o.startsWith("/"))&&t.push(r)}t.forEach(r=>r.remove()),J()}typeof window<"u"&&window.addEventListener("load",()=>{setTimeout(X,100)});function k(){return typeof window>"u"}import{asProvider as ne}from"@fluixi/dom";import{createContext as re,useContext as et}from"@fluixi/reactive/signal";import{readChildren as ot}from"@fluixi/reactive/signal";import{registerCreateComponent as Y,asComponent as G}from"@fluixi/dom";import{untrack as Q,onCleanup as _e,getOwner as He,createEffect as Ve,createMemo as je,createSignal as Fe,isSignal as Z,batch as Ue,runWithOwner as Ie,isOwnerDisposed as ze}from"@fluixi/reactive/signal";function D(e){Y(ee)}function ee(e,n){return te(e,n)}function te(e,n){let t=typeof e=="function"?Q(()=>e(n)):e;if(t!=null&&(typeof t=="function"||typeof t=="object")&&!Z(t)){try{t.$name=e.name}catch{}return G(t)}return t}D("index");function M(e){let n=re(e),t=a=>(a.debug,n.Provider({value:a.value,get children(){return a.children},debug:a.debug}));return typeof Symbol<"u"&&Symbol.for&&(t.$$typeof=Symbol.for("react.provider")),t.$$typeof=Symbol.for("react.provider"),{id:n.id,Provider:ne(t),defaultValue:e}}var m=new Map,y=new Map;function ae(e,n){return async(...t)=>{let a=n+":"+JSON.stringify(t);if(O()||typeof window<"u"){let o=E(a);if(o!==void 0)return o}if(m.has(a))return m.get(a);if(y.has(a))return y.get(a);let r=Promise.resolve(e(...t)).then(o=>(m.set(a,o),y.delete(a),k()&&L(a,o),o),o=>{throw y.delete(a),o});return y.set(a,r),r}}var[ft,ie]=N(0),se=new Set;function ce(e){let n=typeof e=="string"?t=>t.startsWith(e):e;for(let t of m.keys())n(t)&&(m.delete(t),se.add(t));ie(t=>t+1)}function ue(e,n){let[t]=oe(n||(()=>!0),e);return t}var b=new Map;function _(e){return b.has(e)||b.set(e,N(void 0)),b.get(e)}function H(e,n){let t=n||e.name||"action",a=async r=>{let[,o]=_(t),i=()=>o(void 0),s=()=>a(r);o({input:r,pending:!0,clear:i,retry:s});try{let c=await e(r);return o({input:r,result:c,pending:!1,clear:i,retry:s}),c}catch(c){throw o({input:r,error:c,pending:!1,clear:i,retry:s}),c}};return a.url=t,a.with=r=>H((...o)=>e(r,...o),n),a}function de(e){let[n]=_(e.url);return n}function le(e){return e}var fe=M(),pt=fe.Provider;import{untrack as V,createMemo as pe,createResource as ye}from"@fluixi/reactive/signal";function me(e,n){let t,a,r;function o(){return a||(a=e().then(s=>t=s.default)),a}n?.preload&&o();let i=(s=>{if(t){let c=t;return V(()=>c(s))}if(!r){let[c]=ye(()=>o(),{transport:!1});if(r=c,c.error)throw c.error}return pe(()=>{let c=r();return c?V(()=>c(s)):void 0},void 0,{name:"lazy"})});return i.preload=()=>o().then(()=>{}),i.$lazy=!0,i.loader=e,i}import{runWithOwner as Bt}from"@fluixi/reactive/signal";var h=T(),F=T(),U=T(),K=T();function we(e,n,t){let a,r=e.route.data;if(typeof r=="function"){let x=!1;A(()=>{x=!0});let $=he(),[q]=ge(()=>r({params:t.params,location:t.location},$,()=>x));a=q}let o=()=>K.Provider({value:a,get children(){return U.Provider({value:e.params,get children(){return F.Provider({value:{depth:n,...t},get children(){return j(e.component,{})}})}})}});if(!a)return o();let i=a,s=()=>i.loading,[c,l]=w(R(()=>!s()));return P(()=>l(!s())),d(()=>c()?o():null)}function I(e){let n=e.depth+1,[t,a]=w(R(()=>e.matched()[n]?.component));return P(()=>{let r=e.matched()[n]?.component;a(()=>r)}),d(()=>{if(!t())return e.notFound?e.notFound():null;let o=R(()=>e.matched())[n];return we(o,n,{matched:e.matched,params:e.params,location:e.location})})}function Pe(e){return e==null?Ae():typeof e=="function"?j(e,{}):e}function Ae(){let e=g("div");u(e,"class","fx-not-found"),u(e,"role","main"),u(e,"style","min-height:60vh;display:grid;place-content:center;gap:.25rem;text-align:center;font-family:system-ui,-apple-system,sans-serif");let n=g("h1");u(n,"style","margin:0;font-size:2.5rem;font-weight:700"),v(n,"404");let t=g("p");return u(t,"style","margin:0;opacity:.7"),v(t,"This page could not be found."),e.appendChild(n),e.appendChild(t),e}function wt(e){let n=e.history??Ce(),t=Te({routes:e.routes,base:e.base,history:n}),[a,r]=w(t.state()),o=t.subscribe(r);A(()=>{o(),t.destroy()});let i=d(()=>(a().match?.matched??[]).filter(x=>x.component)),s={router:t,location:d(()=>a().location),params:d(()=>a().match?.params??{})},c={depth:-1,matched:i,params:s.params,location:s.location,notFound:()=>Pe(e.notFound)},l;return h.Provider({value:s,get children(){return l??=I(c)}})}function Pt(){let e=p(F);return e?I(e):null}function At(e){let n=p(h);if(!n||typeof window>"u")return null;let t=!1;return A(()=>t=!0),queueMicrotask(()=>{t||n.router.navigate(e.to,{replace:e.replace!==!1})}),null}var Se={router:{navigate:()=>{}},location:()=>({pathname:"",search:"",hash:"",query:{}}),params:()=>({})};function S(){let e=p(h);if(e)return e;if(typeof window>"u")return Se;throw new Error("[router-next] useRouter must be used within <Router>")}function z(){let e=S().params;return d(()=>e(),{},{equals:(n,t)=>JSON.stringify(n)===JSON.stringify(t)})}function St(){return p(U)??{}}function Ot(e){let n=z();return d(()=>n()[e])}function Lt(e,n){let t=z();return d(()=>e(t()),void 0,n?{equals:n}:void 0)}function Et(e){let n=W();return d(()=>Re(typeof e=="function"?e():e,n.pathname))}function kt(){let e=W(),n=Oe();return[d(()=>e.query),(r,o)=>{let i=new URLSearchParams(e.search);for(let[c,l]of Object.entries(r))l===null?i.delete(c):i.set(c,l);let s=i.toString();n(e.pathname+(s?`?${s}`:""),o)}]}function Dt(e,n){let t=(a,r)=>ve(a,r);return n!==void 0?d(()=>xe(e(),n),void 0,{equals:t}):d(e,void 0,{equals:t})}function W(){let{location:e}=S();return new Proxy({},{get:(n,t)=>e()[t],has:(n,t)=>t in e(),ownKeys:()=>Reflect.ownKeys(e()),getOwnPropertyDescriptor:(n,t)=>Object.getOwnPropertyDescriptor(e(),t)})}function Mt(e={}){let n=p(h);return t=>{if(!n||t.defaultPrevented||t.button!==0||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)return;let r=t.target?.closest?.("a");if(!r||!r.getAttribute("href")||r.target&&r.target!=="_self"||r.hasAttribute("download")||/(^|\s)external(\s|$)/.test(r.getAttribute("rel")??""))return;let o=new URL(r.href);o.protocol!=="http:"&&o.protocol!=="https:"||o.origin===window.location.origin&&(o.hash&&o.pathname===window.location.pathname&&o.search===window.location.search||e.shouldNavigate&&!e.shouldNavigate(o,r)||(t.preventDefault(),n.router.navigate(o.pathname+o.search+o.hash,{replace:e.replace})))}}function Oe(){let{router:e}=S();return(n,t)=>e.navigate(n,t)}function Nt(){return p(K)??(()=>{})}var f=e=>typeof e=="function"?e():e,Le=new Set(["href","slot","class","className","active","activeClass","replace","children"]);function Ee(e){let n=p(h),t=typeof document>"u",a=()=>n?.router.navigate(f(e.href)??"",{replace:f(e.replace)}),r=g("a");u(r,"href",f(e.href)??""),e.slot&&u(r,"slot",f(e.slot));for(let i of Object.keys(e)){if(Le.has(i))continue;let s=e[i];s!=null&&typeof s!="function"&&u(r,i,String(s))}if(typeof r.addEventListener=="function")r.addEventListener("click",i=>{i.metaKey||i.ctrlKey||i.shiftKey||i.altKey||(i.preventDefault(),a())});else{let i=f(e.className??e.class)??"";i&&u(r,"class",i)}typeof r.addEventListener=="function"&&P(()=>{let i=f(e.href)??"";r.setAttribute("href",i);let s=f(e.className??e.class)??"",c=f(e.activeClass)??"",l=f(e.active)??n?.location().pathname===i;r.className=[s,l?c:""].filter(Boolean).join(" ")});let o=e.children;return o!=null&&v(r,o),r}var _t=Ee;function Ht(e){let n=e.action,t=e.className??e.class,a=n.url??"",r=g("form");u(r,"method","post"),a&&u(r,"action",a),t&&u(r,"class",t);for(let i of Object.keys(e)){if(i==="action"||i==="children"||i==="class"||i==="className")continue;let s=e[i];s!=null&&typeof s!="function"&&u(r,i,String(s))}typeof r.addEventListener=="function"&&r.addEventListener("submit",i=>{i.preventDefault();let s={};new FormData(r).forEach((c,l)=>{s[l]=c}),Promise.resolve(n(s)).catch(()=>{})});let o=e.children;return o!=null&&v(r,o),r}async function Vt(e,n){let t=be(e,n);if(!t)return;let a=[];for(let r of t.matched){let o=r.component;o&&typeof o.preload=="function"&&a.push(o.preload())}await Promise.all(a)}export{_t as A,Ht as Form,Ee as Link,Pt as Outlet,At as Redirect,wt as Router,H as action,ae as cache,ue as createAsync,Kt as createBrowserHistory,Ut as createMemoryHistory,me as lazy,zt as matchPath,It as matchRoutes,Vt as preloadRoutes,ce as revalidate,Bt as runWithOwner,Dt as select,le as useAction,St as useLevelParams,Mt as useLinkNavigation,W as useLocation,Et as useMatch,Oe as useNavigate,Ot as useParam,Lt as useParamSelector,z as useParams,Nt as useRouteData,S as useRouter,kt as useSearchParams,de as useSubmission};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var c=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var r=(o,a)=>{for(var t in a)c(o,t,{get:a[t],enumerable:!0})},s=(o,a,t,e)=>{if(a&&typeof a=="object"||typeof a=="function")for(let p of l(a))!n.call(o,p)&&p!==t&&c(o,p,{get:()=>a[p],enumerable:!(e=h(a,p))||e.enumerable});return o};var x=o=>s(c({},"__esModule",{value:!0}),o);var I={};r(I,{VERSION:()=>E});module.exports=x(I);var E="1.0.0-alpha.
|
|
1
|
+
"use strict";var c=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var r=(o,a)=>{for(var t in a)c(o,t,{get:a[t],enumerable:!0})},s=(o,a,t,e)=>{if(a&&typeof a=="object"||typeof a=="function")for(let p of l(a))!n.call(o,p)&&p!==t&&c(o,p,{get:()=>a[p],enumerable:!(e=h(a,p))||e.enumerable});return o};var x=o=>s(c({},"__esModule",{value:!0}),o);var I={};r(I,{VERSION:()=>E});module.exports=x(I);var E="1.0.0-alpha.76";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var a="1.0.0-alpha.
|
|
1
|
+
var a="1.0.0-alpha.76";export{a as VERSION};
|