p-backlog 0.3.0 → 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.
Files changed (33) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/cli.js +363 -103
  3. package/dist/web/assets/{ChartTooltip-DwQKHXkN.js → ChartTooltip-DWaDSRan.js} +3 -3
  4. package/dist/web/assets/CodeTab-C87LaJFD.js +1 -0
  5. package/dist/web/assets/{CostTab-B21EB-7P.js → CostTab-D4ByOnHX.js} +1 -1
  6. package/dist/web/assets/EffectTab-Dq06ghtZ.js +1 -0
  7. package/dist/web/assets/Figure-BC1eGh3_.js +1 -0
  8. package/dist/web/assets/OverviewTab-BBmohHJR.js +1 -0
  9. package/dist/web/assets/QualityTab-Rb7zRcGH.js +1 -0
  10. package/dist/web/assets/StatsPage-Dtyc1gAc.js +1 -0
  11. package/dist/web/assets/StatsTabState-Br-8FgKd.js +1 -0
  12. package/dist/web/assets/{StatsTable-Bd3vAxKU.js → StatsTable-BXG0IS8p.js} +1 -1
  13. package/dist/web/assets/UnavailableRepos-KiTvsm1X.js +1 -0
  14. package/dist/web/assets/cx-CNNf0q6V.js +58 -0
  15. package/dist/web/assets/index-AJ1Qzly1.js +2 -0
  16. package/dist/web/assets/start-BGXTwsB0.js +38 -0
  17. package/dist/web/assets/{index-CAKUAPJF.css → start-Cy19NMke.css} +1 -1
  18. package/dist/web/assets/{value-dot-kiMizZCu.js → value-dot-W-8PsGpd.js} +1 -1
  19. package/dist/web/index.html +1 -5
  20. package/package.json +1 -1
  21. package/skill/backlog/SKILL.md +3 -2
  22. package/skill/backlog-en/SKILL.md +3 -2
  23. package/dist/web/assets/CodeTab-BGxsIZMH.js +0 -1
  24. package/dist/web/assets/EffectTab-97OFZkWY.js +0 -1
  25. package/dist/web/assets/Figure-CiIqHKnb.js +0 -1
  26. package/dist/web/assets/OverviewTab-X_g8WfUl.js +0 -1
  27. package/dist/web/assets/QualityTab-DYnFz37G.js +0 -1
  28. package/dist/web/assets/StatsPage-D9gJHHQg.js +0 -1
  29. package/dist/web/assets/StatsTabState-DbuUIt-D.js +0 -1
  30. package/dist/web/assets/UnavailableRepos-D2iehY7u.js +0 -1
  31. package/dist/web/assets/cx-BZTW4xgb.js +0 -58
  32. package/dist/web/assets/index-BrkoyuWi.js +0 -38
  33. package/dist/web/assets/paths-ZO6w2vYU.js +0 -1
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{$t as t,At as n,Bt as r,Et as i,Ft as a,Gt as o,Ht as s,It as c,Jt as l,Kt as u,Lt as d,Mt as f,Nt as p,Pt as m,Qt as h,Rt as g,St as _,Ut as v,Vt as y,Wt as b,Xt as x,Yt as S,Zt as C,_t as w,an as T,bt as E,en as D,gt as O,in as k,kt as A,nn as j,on as M,qt as N,rn as P,tn as F,vt as I,wn as ee,wt as L,xt as R,yt as te,zt as z}from"./cx-BZTW4xgb.js";var B={};function V(e,t){!e&&!B[t]&&(B[t]=!0,console.warn(t))}var H=e(ee(),1),ne=[`HydrateFallback`,`hydrateFallbackElement`],re=class{status=`pending`;promise;resolve;reject;constructor(){this.promise=new Promise((e,t)=>{this.resolve=t=>{this.status===`pending`&&(this.status=`resolved`,e(t))},this.reject=e=>{this.status===`pending`&&(this.status=`rejected`,t(e))}})}};function ie({router:e,flushSync:t,onError:n,useTransitions:i}){i=y()||i;let[o,s]=H.useState(e.state),[l,u]=(0,H.useOptimistic)(o),[d,h]=H.useState(),[g,_]=H.useState({isTransitioning:!1}),[v,b]=H.useState(),[x,C]=H.useState(),[w,T]=H.useState(),E=H.useRef(new Map),D=H.useCallback((r,{deletedFetchers:a,newErrors:o,flushSync:c,viewTransitionOpts:l})=>{o&&n&&Object.values(o).forEach(e=>n(e,{location:r.location,params:r.matches[0]?.params??{},pattern:S(r.matches)})),r.fetchers.forEach((e,t)=>{e.data!==void 0&&E.current.set(t,e.data)}),a.forEach(e=>E.current.delete(e)),V(c===!1||t!=null,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let d=e.window!=null&&e.window.document!=null&&typeof e.window.document.startViewTransition==`function`;if(V(l==null||d,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!l||!d){t&&c?t(()=>s(r)):i===!1?s(r):H.startTransition(()=>{i===!0&&u(e=>U(e,r)),s(r)});return}if(t&&c){t(()=>{x&&(v?.resolve(),x.skipTransition()),_({isTransitioning:!0,flushSync:!0,currentLocation:l.currentLocation,nextLocation:l.nextLocation})});let n=e.window.document.startViewTransition(()=>{t(()=>s(r))});n.finished.finally(()=>{t(()=>{b(void 0),C(void 0),h(void 0),_({isTransitioning:!1})})}),t(()=>C(n));return}x?(v?.resolve(),x.skipTransition(),T({state:r,currentLocation:l.currentLocation,nextLocation:l.nextLocation})):(h(r),_({isTransitioning:!0,flushSync:!1,currentLocation:l.currentLocation,nextLocation:l.nextLocation}))},[e.window,t,x,v,i,u,n]);H.useLayoutEffect(()=>e.subscribe(D),[e,D]),H.useEffect(()=>{g.isTransitioning&&!g.flushSync&&b(new re)},[g]),H.useEffect(()=>{if(v&&d&&e.window){let t=d,n=v.promise,r=e.window.document.startViewTransition(async()=>{i===!1?s(t):H.startTransition(()=>{i===!0&&u(e=>U(e,t)),s(t)}),await n});r.finished.finally(()=>{b(void 0),C(void 0),h(void 0),_({isTransitioning:!1})}),C(r)}},[d,v,e.window,i,u]),H.useEffect(()=>{v&&d&&l.location.key===d.location.key&&v.resolve()},[v,x,l.location,d]),H.useEffect(()=>{!g.isTransitioning&&w&&(h(w.state),_({isTransitioning:!0,flushSync:!1,currentLocation:w.currentLocation,nextLocation:w.nextLocation}),T(void 0))},[g.isTransitioning,w]);let O=H.useMemo(()=>({createHref:e.createHref,createURL:e.createURL,encodeLocation:e.encodeLocation,go:t=>e.navigate(t),push:(t,n,r)=>e.navigate(t,{state:n,preventScrollReset:r?.preventScrollReset}),replace:(t,n,r)=>e.navigate(t,{replace:!0,state:n,preventScrollReset:r?.preventScrollReset})}),[e]),k=e.basename||`/`,A=H.useMemo(()=>({router:e,navigator:O,static:!1,basename:k,onError:n}),[e,O,k,n]),j=H.useMemo(()=>({historyAction:l.historyAction,location:l.location,matches:l.matches,initialized:l.initialized,renderFallback:l.renderFallback,restoreScrollPosition:l.restoreScrollPosition,preventScrollReset:l.preventScrollReset,blockers:l.blockers}),[l.historyAction,l.location,l.matches,l.initialized,l.renderFallback,l.restoreScrollPosition,l.preventScrollReset,l.blockers]),M=H.useMemo(()=>({navigation:l.navigation,revalidation:l.revalidation}),[l.navigation,l.revalidation]),N=H.useMemo(()=>({loaderData:l.loaderData,actionData:l.actionData,errors:l.errors}),[l.loaderData,l.actionData,l.errors]),P=H.useMemo(()=>({fetchers:l.fetchers,fetcherData:E.current}),[l.fetchers]);return H.createElement(H.Fragment,null,H.createElement(f.Provider,{value:A},H.createElement(a.Provider,{value:j},H.createElement(m.Provider,{value:M},H.createElement(p.Provider,{value:N},H.createElement(c.Provider,{value:P},H.createElement(r.Provider,{value:g},H.createElement(le,{basename:k,location:l.location,navigationType:l.historyAction,navigator:O,useTransitions:i},H.createElement(ae,{routes:e.routes,manifest:e.manifest,state:l,isStatic:!1,onError:n})))))))),null)}function U(e,t){return{...e,navigation:t.navigation.state===`idle`?e.navigation:t.navigation,revalidation:t.revalidation===`idle`?e.revalidation:t.revalidation,actionData:t.navigation.state===`submitting`?e.actionData:t.actionData,fetchers:t.fetchers}}var ae=H.memo(oe);function oe({routes:e,manifest:t,state:r,isStatic:i,onError:a}){let o=H.useContext(f);return P(o,`You must render this element inside a <DataRouterContext.Provider> element`),n(e,void 0,{router:o.router,manifest:t,state:r,isStatic:i,onError:a})}function se({to:e,replace:n,state:r,relative:i}){P(R(),`<Navigate> may be used only in the context of a <Router> component.`);let{static:a,navigator:o}=H.useContext(g);T(!a,`<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.`);let{matches:s}=H.useContext(z),{pathname:c}=_(),u=L(),d=t(e,l(s),c,i===`path`);b(typeof e==`string`?e:j(e),o.createHref(d),v(o),`reject`);let f=JSON.stringify(d);return H.useEffect(()=>{u(JSON.parse(f),{replace:n,state:r,relative:i})},[u,f,i,n,r]),null}function ce(e){return i(e.context)}function le({basename:e=`/`,children:t=null,location:n,navigationType:r=`POP`,navigator:i,static:a=!1,useTransitions:o}){P(!R(),`You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`);let s=e.replace(/^\/*/,`/`),c=H.useMemo(()=>({basename:s,navigator:i,static:a,useTransitions:o,future:{}}),[s,i,a,o]);typeof n==`string`&&(n=k(n));let{pathname:l=`/`,search:u=``,hash:f=``,state:p=null,key:m=`default`,mask:h}=n,_=H.useMemo(()=>{let e=D(l,s);return e==null?null:{location:{pathname:e,search:u,hash:f,state:p,key:m,mask:h},navigationType:r}},[s,l,u,f,p,m,r,h]);return T(_!=null,`<Router basename="${s}"> is not able to match the URL "${l}${u}${f}" because it does not start with the basename, so the <Router> won't render anything.`),_==null?null:H.createElement(g.Provider,{value:c},H.createElement(d.Provider,{children:t,value:_}))}H.Component;var W=`application/x-www-form-urlencoded`;function G(e){return typeof HTMLElement<`u`&&e instanceof HTMLElement}function ue(e){return G(e)&&e.tagName.toLowerCase()===`button`}function de(e){return G(e)&&e.tagName.toLowerCase()===`form`}function fe(e){return G(e)&&e.tagName.toLowerCase()===`input`}function pe(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function me(e,t){return e.button===0&&(!t||t===`_self`)&&!pe(e)}function K(e=``){return new URLSearchParams(typeof e==`string`||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(e=>[n,e]):[[n,r]])},[]))}function he(e,t){let n=K(e);return t&&t.forEach((e,r)=>{n.has(r)||t.getAll(r).forEach(e=>{n.append(r,e)})}),n}var q=null;function ge(){if(q===null)try{new FormData(document.createElement(`form`),0),q=!1}catch{q=!0}return q}var _e=new Set([`application/x-www-form-urlencoded`,`multipart/form-data`,`text/plain`]);function J(e){return e!=null&&!_e.has(e)?(T(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${W}"`),null):e}function ve(e,t){let n,r,i,a,o;if(de(e)){let o=e.getAttribute(`action`);r=o?D(o,t):null,n=e.getAttribute(`method`)||`get`,i=J(e.getAttribute(`enctype`))||W,a=new FormData(e)}else if(ue(e)||fe(e)&&(e.type===`submit`||e.type===`image`)){let o=e.form;if(o==null)throw Error(`Cannot submit a <button> or <input type="submit"> without a <form>`);let s=e.getAttribute(`formaction`)||o.getAttribute(`action`);if(r=s?D(s,t):null,n=e.getAttribute(`formmethod`)||o.getAttribute(`method`)||`get`,i=J(e.getAttribute(`formenctype`))||J(o.getAttribute(`enctype`))||W,a=new FormData(o,e),!ge()){let{name:t,type:n,value:r}=e;if(n===`image`){let e=t?`${t}.`:``;a.append(`${e}x`,`0`),a.append(`${e}y`,`0`)}else t&&a.append(t,r)}}else if(G(e))throw Error(`Cannot submit element that is not <form>, <button>, or <input type="submit|image">`);else n=`get`,r=null,i=W,o=e;return a&&i===`text/plain`&&(o=a,a=void 0),{action:r,method:n.toLowerCase(),encType:i,formData:a,body:o}}function ye(e,t){if(e===!1||e==null)throw Error(t)}function Y(e,t){let n=typeof e==`string`?new URL(e,typeof window>`u`?`server://singlefetch/`:window.location.origin):e;return n.pathname=n.pathname.endsWith(`/`)?`${n.pathname}_.${t}`:`${n.pathname}.${t}`,n}var be=`modulepreload`,xe=function(e){return`/`+e},Se={},Ce=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=xe(t,n),t=s(t),t in Se)return;Se[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:be,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};async function we(e,t){if(e.id in t)return t[e.id];try{let n=await Ce(()=>import(e.module),[]);return t[e.id]=n,n}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function Te(e){return e!=null&&typeof e.page==`string`}function Ee(e){return e==null?!1:e.href==null?e.rel===`preload`&&typeof e.imageSrcSet==`string`&&typeof e.imageSizes==`string`:typeof e.rel==`string`&&typeof e.href==`string`}async function De(e,t,n){return Me((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await we(r,n);return e.links?e.links():[]}return[]}))).flat(1).filter(Ee).filter(e=>e.rel===`stylesheet`||e.rel===`preload`).map(e=>e.rel===`stylesheet`?{...e,rel:`prefetch`,as:`style`}:{...e,rel:`prefetch`}))}function Oe(e,t,n,r,i,a){let o=(e,t)=>!n[t]||e.route.id!==n[t].route.id,s=(e,t)=>n[t].pathname!==e.pathname||n[t].route.path?.endsWith(`*`)&&n[t].params[`*`]!==e.params[`*`];return a===`assets`?t.filter((e,t)=>o(e,t)||s(e,t)):a===`data`?t.filter((t,a)=>{let c=r.routes[t.route.id];if(!c||!c.hasLoader)return!1;if(o(t,a)||s(t,a))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if(typeof r==`boolean`)return r}return!0}):[]}function ke(e,t,{includeHydrateFallback:n}={}){return Ae(e.map(e=>{let r=t.routes[e.route.id];if(!r)return[];let i=[r.module];return r.clientActionModule&&(i=i.concat(r.clientActionModule)),r.clientLoaderModule&&(i=i.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(i=i.concat(r.hydrateFallbackModule)),r.imports&&(i=i.concat(r.imports)),i}).flat(1))}function Ae(e){return[...new Set(e)]}function je(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function Me(e,t){let n=new Set,r=new Set(t);return e.reduce((e,i)=>{if(t&&!Te(i)&&i.as===`script`&&i.href&&r.has(i.href))return e;let a=JSON.stringify(je(i));return n.has(a)||(n.add(a),e.push({key:a,link:i})),e},[])}var X=H.createContext(void 0);X.displayName=`FrameworkContext`;function Z(){let e=H.useContext(X);return ye(e,`You must render this element inside a <HydratedRouter> element`),e}function Ne(e,t){let n=H.useContext(X),[r,i]=H.useState(!1),[a,o]=H.useState(!1),{onFocus:s,onBlur:c,onMouseEnter:l,onMouseLeave:u,onTouchStart:d}=t,f=H.useRef(null);H.useEffect(()=>{if(e===`render`&&o(!0),e===`viewport`){let e=new IntersectionObserver(e=>{e.forEach(e=>{o(e.isIntersecting)})},{threshold:.5});return f.current&&e.observe(f.current),()=>{e.disconnect()}}},[e]),H.useEffect(()=>{if(r){let e=setTimeout(()=>{o(!0)},100);return()=>{clearTimeout(e)}}},[r]);let p=()=>{i(!0)},m=()=>{i(!1),o(!1)};return n?e===`intent`?[a,f,{onFocus:Q(s,p),onBlur:Q(c,m),onMouseEnter:Q(l,p),onMouseLeave:Q(u,m),onTouchStart:Q(d,p)}]:[a,f,{}]:[!1,f,{}]}function Q(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function Pe({page:e,...t}){let n=y(),{nonce:r}=Z(),{router:i}=w(`PrefetchPageLinks`),a=H.useMemo(()=>i.match(e),[i,i.routes,e]);return a?(t.nonce==null&&r&&(t={...t,nonce:r}),n?H.createElement(Ie,{page:e,matches:a,...t}):H.createElement(Le,{page:e,matches:a,...t})):null}function Fe(e){let{manifest:t,routeModules:n}=Z(),[r,i]=H.useState([]);return H.useEffect(()=>{let r=!1;return De(e,t,n).then(e=>{r||i(e)}),()=>{r=!0}},[e,t,n]),r}function Ie({page:e,matches:t,...n}){let r=_(),i=H.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=Y(e,`rsc`),i=!1,a=[];for(let e of t)typeof e.route.shouldRevalidate==`function`?i=!0:a.push(e.route.id);return i&&a.length>0&&n.searchParams.set(`_routes`,a.join(`,`)),[n.pathname+n.search]},[e,r,t]);return H.createElement(H.Fragment,null,i.map(e=>H.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})))}function Le({page:e,matches:t,...n}){let r=_(),{manifest:i,routeModules:a}=Z(),{matches:o}=te(`PrefetchPageLinks`),{loaderData:s}=I(`PrefetchPageLinks`),c=H.useMemo(()=>Oe(e,t,o,i,r,`data`),[e,t,o,i,r]),l=H.useMemo(()=>Oe(e,t,o,i,r,`assets`),[e,t,o,i,r]),u=H.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=new Set,o=!1;if(t.forEach(e=>{let t=i.routes[e.route.id];t&&t.hasLoader&&(!c.some(t=>t.route.id===e.route.id)&&e.route.id in s&&a[e.route.id]?.shouldRevalidate||t.hasClientLoader?o=!0:n.add(e.route.id))}),n.size===0)return[];let l=Y(e,`data`);return o&&n.size>0&&l.searchParams.set(`_routes`,t.filter(e=>n.has(e.route.id)).map(e=>e.route.id).join(`,`)),[l.pathname+l.search]},[s,r,i,c,t,e,a]),d=H.useMemo(()=>ke(l,i),[l,i]),f=Fe(l);return H.createElement(H.Fragment,null,u.map(e=>H.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})),d.map(e=>H.createElement(`link`,{key:e,rel:`modulepreload`,href:e,...n})),f.map(({key:e,link:t})=>H.createElement(`link`,{key:e,nonce:n.nonce,...t,crossOrigin:t.crossOrigin??n.crossOrigin})))}function Re(...e){return t=>{e.forEach(e=>{typeof e==`function`?e(t):e!=null&&(e.current=t)})}}var ze=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;try{ze&&(window.__reactRouterVersion=`8`)}catch{}function Be(e,t){return s({basename:t?.basename,getContext:t?.getContext,future:t?.future,history:F({window:t?.window}),hydrationData:t?.hydrationData||Ve(),routes:e,mapRouteProperties:N,hydrationRouteProperties:ne,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,window:t?.window,instrumentations:t?.instrumentations}).initialize()}function Ve(){let e=window?.__staticRouterHydrationData;return e&&e.errors&&(e={...e,errors:He(e.errors)}),e}function He(e){if(!e)return null;let t=Object.entries(e),n={};for(let[e,r]of t)if(r&&r.__type===`RouteErrorResponse`)n[e]=new o(r.status,r.statusText,r.data,r.internal===!0);else if(r&&r.__type===`Error`){if(typeof r.__subType==`string`&&u.includes(r.__subType)){let t=window[r.__subType];if(typeof t==`function`)try{let i=new t(r.message);i.stack=``,n[e]=i}catch{}}if(n[e]==null){let t=Error(r.message);t.stack=``,n[e]=t}}else n[e]=r;return n}var $=H.forwardRef(function({onClick:e,discover:n=`render`,prefetch:r=`none`,relative:i,reloadDocument:a,replace:o,mask:s,state:c,target:l,to:u,preventScrollReset:d,viewTransition:f,defaultShouldRevalidate:p,...m},v){let{basename:y,navigator:b,useTransitions:S}=H.useContext(g),C=typeof u==`string`&&M.test(u),w=h(u,y);u=w.to;let T=E(u,{relative:i}),D=_(),O=null;if(s){let e=t(s,[],D.mask?D.mask.pathname:`/`,!0);y!==`/`&&(e.pathname=e.pathname===`/`?y:x([y,e.pathname])),O=b.createHref(e)}let[k,A,j]=Ne(r,m),N=Ge(u,{replace:o,mask:s,state:c,target:l,preventScrollReset:d,relative:i,viewTransition:f,defaultShouldRevalidate:p,useTransitions:S});function P(t){e&&e(t),t.defaultPrevented||N(t)}let F=!(w.isExternal||a),I=H.createElement(`a`,{...m,...j,href:(F?O:void 0)||w.absoluteURL||T,onClick:F?P:e,ref:Re(v,A),target:l,"data-discover":!C&&n===`render`?`true`:void 0});return k&&!C?H.createElement(H.Fragment,null,I,H.createElement(Pe,{page:T})):I});$.displayName=`Link`;var Ue=H.forwardRef(function({"aria-current":e=`page`,caseSensitive:t=!1,className:n=``,end:r=!1,style:i,to:a,viewTransition:o,children:s,...c},l){let u=A(a,{relative:c.relative}),d=_(),f=H.useContext(m),{navigator:p,basename:h}=H.useContext(g),v=f!=null&&Qe(u)&&o===!0,y=p.encodeLocation?p.encodeLocation(u).pathname:u.pathname,b=d.pathname,x=f?.navigation.location?f.navigation.location.pathname:null;t||(b=b.toLowerCase(),x=x?x.toLowerCase():null,y=y.toLowerCase()),x&&h&&(x=D(x,h)||x);let S=y!==`/`&&y.endsWith(`/`)?y.length-1:y.length,C=b===y||!r&&b.startsWith(y)&&b.charAt(S)===`/`,w=x!=null&&(x===y||!r&&x.startsWith(y)&&x.charAt(S)===`/`),T={isActive:C,isPending:w,isTransitioning:v},E=C?e:void 0,O;O=typeof n==`function`?n(T):[n,C?`active`:null,w?`pending`:null,v?`transitioning`:null].filter(Boolean).join(` `);let k=typeof i==`function`?i(T):i;return H.createElement($,{...c,"aria-current":E,className:O,ref:l,style:k,to:a,viewTransition:o},typeof s==`function`?s(T):s)});Ue.displayName=`NavLink`;var We=H.forwardRef(({discover:e=`render`,fetcherKey:t,navigate:n,reloadDocument:r,replace:i,state:a,method:o=`get`,action:s,onSubmit:c,relative:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f,...p},m)=>{let{useTransitions:h}=H.useContext(g),_=Ye(),v=Xe(s,{relative:l}),y=o.toLowerCase()===`get`?`get`:`post`,b=typeof s==`string`&&M.test(s);return H.createElement(`form`,{ref:m,method:y,action:v,onSubmit:r?c:e=>{if(c&&c(e),e.defaultPrevented)return;e.preventDefault();let r=e.nativeEvent.submitter,s=r?.getAttribute(`formmethod`)||o,p=()=>_(r||e.currentTarget,{fetcherKey:t,method:s,navigate:n,replace:i,state:a,relative:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f});h&&n!==!1?H.startTransition(()=>p()):p()},...p,"data-discover":!b&&e===`render`?`true`:void 0})});We.displayName=`Form`;function Ge(e,{target:t,replace:n,mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,defaultShouldRevalidate:c,useTransitions:l}={}){let u=L(),d=_(),f=A(e,{relative:o});return H.useCallback(p=>{if(me(p,t)){p.preventDefault();let t=n===void 0?j(d)===j(f):n,m=()=>u(e,{replace:t,mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,defaultShouldRevalidate:c});l?H.startTransition(()=>m()):m()}},[d,u,f,n,r,i,t,e,a,o,s,c,l])}function Ke(e){T(typeof URLSearchParams<`u`,"You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=H.useRef(K(e)),n=H.useRef(!1),r=_(),i=H.useMemo(()=>he(r.search,n.current?null:t.current),[r.search]),a=L();return[i,H.useCallback((e,t)=>{let r=K(typeof e==`function`?e(new URLSearchParams(i)):e);n.current=!0,a(`?`+r,t)},[a,i])]}var qe=0,Je=()=>`__${String(++qe)}__`;function Ye(){let{router:e}=w(`useSubmit`),{basename:t}=H.useContext(g),n=O(`useSubmit`),r=e.fetch,i=e.navigate;return H.useCallback(async(e,a={})=>{let{action:o,method:s,encType:c,formData:l,body:u}=ve(e,t);a.navigate===!1?await r(a.fetcherKey||Je(),n,a.action||o,{defaultShouldRevalidate:a.defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,relative:a.relative,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,flushSync:a.flushSync}):await i(a.action||o,{defaultShouldRevalidate:a.defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,relative:a.relative,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,replace:a.replace,state:a.state,fromRouteId:n,flushSync:a.flushSync,viewTransition:a.viewTransition})},[r,i,t,n])}function Xe(e,{relative:t}={}){let{basename:n}=H.useContext(g),r=H.useContext(z);P(r,`useFormAction must be used inside a RouteContext`);let[i]=r.matches.slice(-1),a={...A(e||`.`,{relative:t})},o=_();if(e==null){a.search=o.search;let e=new URLSearchParams(a.search),t=e.getAll(`index`);if(t.some(e=>e===``)){e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();a.search=n?`?${n}`:``}}return(!e||e===`.`)&&i.route.index&&(a.search=a.search?a.search.replace(/^\?/,`?index&`):`?index`),n!==`/`&&(a.pathname=a.pathname===`/`?n:x([n,a.pathname])),j(a)}function Ze(e,t){let{capture:n}=t||{};H.useEffect(()=>{let t=n==null?void 0:{capture:n};return window.addEventListener(`beforeunload`,e,t),()=>{window.removeEventListener(`beforeunload`,e,t)}},[e,n])}function Qe(e,{relative:t}={}){let n=H.useContext(r);P(n!=null,"`useViewTransitionState` must be used within `react-router/dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:i}=w(`useViewTransitionState`),a=A(e,{relative:t});if(!n.isTransitioning)return!1;let o=D(n.currentLocation.pathname,i)||n.currentLocation.pathname,s=D(n.nextLocation.pathname,i)||n.nextLocation.pathname;return C(a.pathname,s)!=null||C(a.pathname,o)!=null}function $e(e){return e===void 0?`/`:`/p/${e}`}function et(e,t){return e===void 0?`/t/${t}`:`${$e(e)}/t/${t}`}function tt(e){return e===void 0?`/stats`:`/p/${e}/stats`}export{Ue as a,Ke as c,ce as d,ie as f,$ as i,Ce as l,tt as n,Be as o,et as r,Ze as s,$e as t,se as u};