@tempots/ui 1.2.1-next.5 → 1.2.1-next.7

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@tempots/dom"),r=require("./index.cjs"),n=()=>{const t=a.getWindow(),o=(t==null?void 0:t.location.hash)===""?void 0:(t==null?void 0:t.location.hash.substring(1))??void 0;return{pathname:(t==null?void 0:t.location.pathname)??"",search:Object.fromEntries(new URLSearchParams((t==null?void 0:t.location.search)??"").entries()),hash:o}},c=()=>{const t=a.makeProp(n(),r.areLocationsEqual),o=a.getWindow(),s=()=>{let e=(o==null?void 0:o.location.hash)??"";e.startsWith("#")&&(e=e.substring(1));const i={pathname:(o==null?void 0:o.location.pathname)??"",search:Object.fromEntries(new URLSearchParams((o==null?void 0:o.location.search)??"").entries()),hash:e===""?void 0:e};t.set(i)};return o==null||o.addEventListener("popstate",s),t.onDispose(()=>{o==null||o.removeEventListener("popstate",s)}),t.on(e=>{o==null||o.history.pushState({},"",r.urlFromLocation(e))}),t},h=t=>{const o=c();return a.Fragment(a.OnDispose(o.dispose),a.WithProvider(r.LocationProviderMarker,o,t))};exports.ProvideBrowserLocation=h;exports._makeLocation=n;exports._makeLocationProp=c;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@tempots/dom"),r=require("./index.cjs"),n=()=>{const t=a.getWindow(),o=(t==null?void 0:t.location.hash)===""?void 0:(t==null?void 0:t.location.hash.substring(1))??void 0;return{pathname:(t==null?void 0:t.location.pathname)??"",search:Object.fromEntries(new URLSearchParams((t==null?void 0:t.location.search)??"").entries()),hash:o}},c=()=>{const t=a.makeProp(n(),r.areLocationsEqual),o=a.getWindow(),s=()=>{let e=(o==null?void 0:o.location.hash)??"";e.startsWith("#")&&(e=e.substring(1));const i={pathname:(o==null?void 0:o.location.pathname)??"",search:Object.fromEntries(new URLSearchParams((o==null?void 0:o.location.search)??"").entries()),hash:e===""?void 0:e};t.set(i)};return o==null||o.addEventListener("popstate",s),t.onDispose(()=>{o==null||o.removeEventListener("popstate",s)}),t.on(e=>{o==null||o.history.pushState({},"",r.urlFromLocation(e))}),t},h=t=>{const o=c();return a.Fragment(a.OnDispose(o.dispose),a.SetProvider(r.LocationProviderMarker,o,t))};exports.ProvideBrowserLocation=h;exports._makeLocation=n;exports._makeLocationProp=c;
@@ -1,4 +1,4 @@
1
- import { getWindow as r, makeProp as c, Fragment as n, OnDispose as h, WithProvider as i } from "@tempots/dom";
1
+ import { getWindow as r, makeProp as c, Fragment as n, OnDispose as h, SetProvider as i } from "@tempots/dom";
2
2
  import { areLocationsEqual as m, urlFromLocation as p, LocationProviderMarker as l } from "./index.js";
3
3
  const d = () => {
4
4
  const t = r(), o = (t == null ? void 0 : t.location.hash) === "" ? void 0 : (t == null ? void 0 : t.location.hash.substring(1)) ?? void 0;
@@ -10,22 +10,22 @@ const d = () => {
10
10
  hash: o
11
11
  };
12
12
  }, L = () => {
13
- const t = c(d(), m), o = r(), e = () => {
14
- let a = (o == null ? void 0 : o.location.hash) ?? "";
15
- a.startsWith("#") && (a = a.substring(1));
13
+ const t = c(d(), m), o = r(), a = () => {
14
+ let e = (o == null ? void 0 : o.location.hash) ?? "";
15
+ e.startsWith("#") && (e = e.substring(1));
16
16
  const s = {
17
17
  pathname: (o == null ? void 0 : o.location.pathname) ?? "",
18
18
  search: Object.fromEntries(
19
19
  new URLSearchParams((o == null ? void 0 : o.location.search) ?? "").entries()
20
20
  ),
21
- hash: a === "" ? void 0 : a
21
+ hash: e === "" ? void 0 : e
22
22
  };
23
23
  t.set(s);
24
24
  };
25
- return o == null || o.addEventListener("popstate", e), t.onDispose(() => {
26
- o == null || o.removeEventListener("popstate", e);
27
- }), t.on((a) => {
28
- o == null || o.history.pushState({}, "", p(a));
25
+ return o == null || o.addEventListener("popstate", a), t.onDispose(() => {
26
+ o == null || o.removeEventListener("popstate", a);
27
+ }), t.on((e) => {
28
+ o == null || o.history.pushState({}, "", p(e));
29
29
  }), t;
30
30
  }, P = (t) => {
31
31
  const o = L();
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("@tempots/dom"),e=require("./index.cjs"),i=t=>t.startsWith("http://")||t.startsWith("https://")||t.startsWith("//"),u=(t,a)=>{const n=t.iso(o=>e.locationFromURL(o),o=>{if(i(o.pathname))return e.urlFromLocation(o);const s=new URL(o.pathname,t.value),c=s.origin+s.pathname;return e.urlFromLocation({...o,pathname:c})});return r.Fragment(r.OnDispose(n.dispose),r.SetProvider(e.LocationProviderMarker,n,a))};exports.ProvideHeadlessLocation=u;exports.isAbsoluteURL=i;
@@ -1,18 +1,18 @@
1
- import { Fragment as a, OnDispose as m, WithProvider as p } from "@tempots/dom";
1
+ import { Fragment as a, OnDispose as m, SetProvider as p } from "@tempots/dom";
2
2
  import { locationFromURL as c, urlFromLocation as e, LocationProviderMarker as h } from "./index.js";
3
- const L = (t) => t.startsWith("http://") || t.startsWith("https://") || t.startsWith("//"), v = (t, i) => {
3
+ const L = (t) => t.startsWith("http://") || t.startsWith("https://") || t.startsWith("//"), v = (t, s) => {
4
4
  const r = t.iso(
5
5
  (o) => c(o),
6
6
  (o) => {
7
7
  if (L(o.pathname))
8
8
  return e(o);
9
- const n = new URL(o.pathname, t.value), s = n.origin + n.pathname;
10
- return e({ ...o, pathname: s });
9
+ const n = new URL(o.pathname, t.value), i = n.origin + n.pathname;
10
+ return e({ ...o, pathname: i });
11
11
  }
12
12
  );
13
13
  return a(
14
14
  m(r.dispose),
15
- p(h, r, i)
15
+ p(h, r, s)
16
16
  );
17
17
  };
18
18
  export {
package/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var de=Object.defineProperty;var me=(t,e,n)=>e in t?de(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Ot=(t,e,n)=>me(t,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@tempots/dom"),O=require("@tempots/std"),Mt=t=>{const e=t.split("/").pop();if(e==null||e.startsWith("."))return;const n=e.split(".")||[];return n.length>1?"."+n.pop():void 0},Wt=(t,e)=>{const n=Mt(e);return n!=null&&(t.length===0||!t.some(o=>n==o))},he=(t,e,n,o)=>{let r=t.target;for(;r!=null&&!(r instanceof HTMLAnchorElement);)r=r.parentElement;if(r==null)return!0;const i=r;if(t.button!==0||t.ctrlKey||t.metaKey||i.target!=="_self"&&i.target!==""||i.getAttribute("download")!=null)return!0;const{pathname:s,search:c,hash:l}=i;if(o){const u=s+c+l,d=i.getAttribute("href");if(!(d!=null&&d.startsWith("#"))&&d!==u)return!0}return e?!1:Wt(n,s)},Nt=(t,e={ignoreUrlWithExtension:!0,allowedExtensions:[],ignoreExternalUrl:!0})=>{const n=e.ignoreUrlWithExtension===!0&&Array.isArray(e.allowedExtensions)?e.allowedExtensions.map(o=>o.startsWith(".")?o:"."+o):[];return o=>{he(o,e.ignoreUrlWithExtension??!0,n,e.ignoreExternalUrl??!0)||t()&&o.preventDefault()}},Vt=a.makeProviderMark("LocationProvider"),pe=t=>a.Fragment(a.OnBrowserCtx(()=>a.Async(Promise.resolve().then(()=>require("./browser-location-D36kVbd7.cjs")).then(e=>e.ProvideBrowserLocation),e=>e(t))),a.OnHeadlessCtx(e=>a.Async(Promise.resolve().then(()=>require("./headless-location-8Va85S-Q.cjs")).then(n=>n.ProvideHeadlessLocation),n=>n(e.container.currentURL,t)))),mt=t=>a.UseProvider(Vt,e=>n=>{const o=a.makeProp(e.value,e.equals);e.feedProp(o),o.on(e.set);const r=a.renderableOfTNode(t(o))(n);return i=>{o.dispose(),r(i)}}),ge=(t,e)=>t.pathname===e.pathname&&JSON.stringify(t.search)===JSON.stringify(e.search)&&t.hash===e.hash,Ht=(t,e)=>{var i;const n=new URL(t,e??((i=a.getWindow())==null?void 0:i.location.toString())),o=Object.fromEntries(n.searchParams.entries());let r=n.hash;return r.startsWith("#")&&(r=r.substring(1)),{pathname:n.pathname,search:o,hash:r===""?void 0:r}},Ut=(t,e)=>{const n=Ht(e);return t.set(n),t},ye=t=>{const n=new URLSearchParams(t.search).toString(),o=t.hash;return`${t.pathname}${n?`?${n}`:""}${o?`#${o}`:""}`},$t=(t,...e)=>{if(typeof t=="string"||a.Signal.is(t))return $t({href:t},...e);const{href:n,...o}=t;return mt(r=>a.html.a(a.on.click(Nt(()=>(Ut(r,a.Value.get(n)),!0),o)),a.attr.href(n),...e))},ht=a.makeProviderMark("Appearance"),we=t=>{const e=a.getWindow(),n=e!=null&&e.matchMedia!=null&&e.matchMedia("(prefers-color-scheme: dark)").matches,o=a.makeProp(n?"dark":"light"),r=s=>{o.set(s.matches?"dark":"light")},i=e!=null&&e.matchMedia!=null?e.matchMedia("(prefers-color-scheme: dark)"):void 0;return i==null||i.addEventListener("change",r),a.Fragment(a.WithProvider(ht,o,t),a.OnDispose(()=>i==null?void 0:i.removeEventListener("change",r)))},ve=t=>a.UseProvider(ht,t),pt=(t,e)=>{if(typeof e=="function")return pt(t,{success:e});const n=e.failure??(s=>s.map(c=>`Error: ${c}`)),o=e.success,r=e.loading??(()=>a.Empty),i=e.notAsked??(()=>a.Empty);return a.OneOfType(a.Value.toSignal(t),{AsyncSuccess:s=>o(s.$.value),AsyncFailure:s=>n(s.$.error),Loading:s=>r(s.map(c=>c.previousValue)),NotAsked:i})},xe=(t=10)=>a.OnElement(e=>a.OnDispose(O.delayed(()=>e==null?void 0:e.focus(),t))),be=(t=10)=>a.OnElement(e=>{const n=O.delayed(()=>e.select(),t);return a.OnDispose(n)}),Ae=a.OnElement(t=>{const e=t.style.getPropertyValue(":empty");return t.style.setProperty(":empty","display:none"),a.OnDispose(n=>{n&&t.style.setProperty(":empty",e)})}),Re=t=>a.Portal("head > title",a.attr.innerText(t)),Oe={partial:{root:null,rootMargin:"0px",threshold:0},full:{root:null,rootMargin:"0px",threshold:1}},G={partial:new Map,full:new Map},j={partial:null,full:null};function Ee(t){return j[t]==null&&(j[t]=new IntersectionObserver(e=>{e.forEach(n=>{const o=G[t].get(n.target);o==null||o.set(n.isIntersecting)})},Oe[t])),j[t]}const zt=(t,e)=>{const n=a.makeProp(!1);return a.Fragment(a.OnElement(o=>{const r=typeof IntersectionObserver<"u"?Ee(t):null;return G[t].set(o,n),r==null||r.observe(o),a.OnDispose(()=>{var i;n.dispose(),r==null||r.unobserve(o),G[t].delete(o),G[t].size===0&&((i=j[t])==null||i.disconnect(),j[t]=null)})}),a.renderableOfTNode(e(n)))},ke=(t,e,n)=>zt(t,o=>a.When(o,e,n??(()=>a.Empty))),Q=Math.min,M=Math.max,Z=Math.round,J=Math.floor,L=t=>({x:t,y:t}),Le={left:"right",right:"left",bottom:"top",top:"bottom"},Te={start:"end",end:"start"};function Et(t,e,n){return M(t,Q(e,n))}function ot(t,e){return typeof t=="function"?t(e):t}function W(t){return t.split("-")[0]}function rt(t){return t.split("-")[1]}function Bt(t){return t==="x"?"y":"x"}function _t(t){return t==="y"?"height":"width"}function $(t){return["top","bottom"].includes(W(t))?"y":"x"}function It(t){return Bt($(t))}function Se(t,e,n){n===void 0&&(n=!1);const o=rt(t),r=It(t),i=_t(r);let s=r==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return e.reference[i]>e.floating[i]&&(s=tt(s)),[s,tt(s)]}function Pe(t){const e=tt(t);return[ut(t),e,ut(e)]}function ut(t){return t.replace(/start|end/g,e=>Te[e])}function Ce(t,e,n){const o=["left","right"],r=["right","left"],i=["top","bottom"],s=["bottom","top"];switch(t){case"top":case"bottom":return n?e?r:o:e?o:r;case"left":case"right":return e?i:s;default:return[]}}function De(t,e,n,o){const r=rt(t);let i=Ce(W(t),n==="start",o);return r&&(i=i.map(s=>s+"-"+r),e&&(i=i.concat(i.map(ut)))),i}function tt(t){return t.replace(/left|right|bottom|top/g,e=>Le[e])}function Fe(t){return{top:0,right:0,bottom:0,left:0,...t}}function Me(t){return typeof t!="number"?Fe(t):{top:t,right:t,bottom:t,left:t}}function et(t){const{x:e,y:n,width:o,height:r}=t;return{width:o,height:r,top:n,left:e,right:e+o,bottom:n+r,x:e,y:n}}function kt(t,e,n){let{reference:o,floating:r}=t;const i=$(e),s=It(e),c=_t(s),l=W(e),u=i==="y",d=o.x+o.width/2-r.width/2,f=o.y+o.height/2-r.height/2,h=o[c]/2-r[c]/2;let m;switch(l){case"top":m={x:d,y:o.y-r.height};break;case"bottom":m={x:d,y:o.y+o.height};break;case"right":m={x:o.x+o.width,y:f};break;case"left":m={x:o.x-r.width,y:f};break;default:m={x:o.x,y:o.y}}switch(rt(e)){case"start":m[s]-=h*(n&&u?-1:1);break;case"end":m[s]+=h*(n&&u?-1:1);break}return m}const We=async(t,e,n)=>{const{placement:o="bottom",strategy:r="absolute",middleware:i=[],platform:s}=n,c=i.filter(Boolean),l=await(s.isRTL==null?void 0:s.isRTL(e));let u=await s.getElementRects({reference:t,floating:e,strategy:r}),{x:d,y:f}=kt(u,o,l),h=o,m={},p=0;for(let y=0;y<c.length;y++){const{name:w,fn:g}=c[y],{x:v,y:x,data:A,reset:b}=await g({x:d,y:f,initialPlacement:o,placement:h,strategy:r,middlewareData:m,rects:u,platform:s,elements:{reference:t,floating:e}});d=v??d,f=x??f,m={...m,[w]:{...m[w],...A}},b&&p<=50&&(p++,typeof b=="object"&&(b.placement&&(h=b.placement),b.rects&&(u=b.rects===!0?await s.getElementRects({reference:t,floating:e,strategy:r}):b.rects),{x:d,y:f}=kt(u,h,l)),y=-1)}return{x:d,y:f,placement:h,strategy:r,middlewareData:m}};async function jt(t,e){var n;e===void 0&&(e={});const{x:o,y:r,platform:i,rects:s,elements:c,strategy:l}=t,{boundary:u="clippingAncestors",rootBoundary:d="viewport",elementContext:f="floating",altBoundary:h=!1,padding:m=0}=ot(e,t),p=Me(m),w=c[h?f==="floating"?"reference":"floating":f],g=et(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(w)))==null||n?w:w.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(c.floating)),boundary:u,rootBoundary:d,strategy:l})),v=f==="floating"?{x:o,y:r,width:s.floating.width,height:s.floating.height}:s.reference,x=await(i.getOffsetParent==null?void 0:i.getOffsetParent(c.floating)),A=await(i.isElement==null?void 0:i.isElement(x))?await(i.getScale==null?void 0:i.getScale(x))||{x:1,y:1}:{x:1,y:1},b=et(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:c,rect:v,offsetParent:x,strategy:l}):v);return{top:(g.top-b.top+p.top)/A.y,bottom:(b.bottom-g.bottom+p.bottom)/A.y,left:(g.left-b.left+p.left)/A.x,right:(b.right-g.right+p.right)/A.x}}const Ne=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var n,o;const{placement:r,middlewareData:i,rects:s,initialPlacement:c,platform:l,elements:u}=e,{mainAxis:d=!0,crossAxis:f=!0,fallbackPlacements:h,fallbackStrategy:m="bestFit",fallbackAxisSideDirection:p="none",flipAlignment:y=!0,...w}=ot(t,e);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const g=W(r),v=$(c),x=W(c)===c,A=await(l.isRTL==null?void 0:l.isRTL(u.floating)),b=h||(x||!y?[tt(c)]:Pe(c)),V=p!=="none";!h&&V&&b.push(...De(c,y,p,A));const ue=[c,...b],lt=await jt(e,w),X=[];let _=((o=i.flip)==null?void 0:o.overflows)||[];if(d&&X.push(lt[g]),f){const F=Se(r,s,A);X.push(lt[F[0]],lt[F[1]])}if(_=[..._,{placement:r,overflows:X}],!X.every(F=>F<=0)){var xt,bt;const F=(((xt=i.flip)==null?void 0:xt.index)||0)+1,Rt=ue[F];if(Rt)return{data:{index:F,overflows:_},reset:{placement:Rt}};let I=(bt=_.filter(H=>H.overflows[0]<=0).sort((H,P)=>H.overflows[1]-P.overflows[1])[0])==null?void 0:bt.placement;if(!I)switch(m){case"bestFit":{var At;const H=(At=_.filter(P=>{if(V){const C=$(P.placement);return C===v||C==="y"}return!0}).map(P=>[P.placement,P.overflows.filter(C=>C>0).reduce((C,fe)=>C+fe,0)]).sort((P,C)=>P[1]-C[1])[0])==null?void 0:At[0];H&&(I=H);break}case"initialPlacement":I=c;break}if(r!==I)return{reset:{placement:I}}}return{}}}};async function Ve(t,e){const{placement:n,platform:o,elements:r}=t,i=await(o.isRTL==null?void 0:o.isRTL(r.floating)),s=W(n),c=rt(n),l=$(n)==="y",u=["left","top"].includes(s)?-1:1,d=i&&l?-1:1,f=ot(e,t);let{mainAxis:h,crossAxis:m,alignmentAxis:p}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return c&&typeof p=="number"&&(m=c==="end"?p*-1:p),l?{x:m*d,y:h*u}:{x:h*u,y:m*d}}const He=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var n,o;const{x:r,y:i,placement:s,middlewareData:c}=e,l=await Ve(e,t);return s===((n=c.offset)==null?void 0:n.placement)&&(o=c.arrow)!=null&&o.alignmentOffset?{}:{x:r+l.x,y:i+l.y,data:{...l,placement:s}}}}},Ue=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:o,placement:r}=e,{mainAxis:i=!0,crossAxis:s=!1,limiter:c={fn:w=>{let{x:g,y:v}=w;return{x:g,y:v}}},...l}=ot(t,e),u={x:n,y:o},d=await jt(e,l),f=$(W(r)),h=Bt(f);let m=u[h],p=u[f];if(i){const w=h==="y"?"top":"left",g=h==="y"?"bottom":"right",v=m+d[w],x=m-d[g];m=Et(v,m,x)}if(s){const w=f==="y"?"top":"left",g=f==="y"?"bottom":"right",v=p+d[w],x=p-d[g];p=Et(v,p,x)}const y=c.fn({...e,[h]:m,[f]:p});return{...y,data:{x:y.x-n,y:y.y-o,enabled:{[h]:i,[f]:s}}}}}};function it(){return typeof window<"u"}function B(t){return qt(t)?(t.nodeName||"").toLowerCase():"#document"}function R(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function S(t){var e;return(e=(qt(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function qt(t){return it()?t instanceof Node||t instanceof R(t).Node:!1}function E(t){return it()?t instanceof Element||t instanceof R(t).Element:!1}function T(t){return it()?t instanceof HTMLElement||t instanceof R(t).HTMLElement:!1}function Lt(t){return!it()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof R(t).ShadowRoot}function K(t){const{overflow:e,overflowX:n,overflowY:o,display:r}=k(t);return/auto|scroll|overlay|hidden|clip/.test(e+o+n)&&!["inline","contents"].includes(r)}function $e(t){return["table","td","th"].includes(B(t))}function st(t){return[":popover-open",":modal"].some(e=>{try{return t.matches(e)}catch{return!1}})}function gt(t){const e=yt(),n=E(t)?k(t):t;return n.transform!=="none"||n.perspective!=="none"||(n.containerType?n.containerType!=="normal":!1)||!e&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!e&&(n.filter?n.filter!=="none":!1)||["transform","perspective","filter"].some(o=>(n.willChange||"").includes(o))||["paint","layout","strict","content"].some(o=>(n.contain||"").includes(o))}function ze(t){let e=D(t);for(;T(e)&&!z(e);){if(gt(e))return e;if(st(e))return null;e=D(e)}return null}function yt(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function z(t){return["html","body","#document"].includes(B(t))}function k(t){return R(t).getComputedStyle(t)}function ct(t){return E(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function D(t){if(B(t)==="html")return t;const e=t.assignedSlot||t.parentNode||Lt(t)&&t.host||S(t);return Lt(e)?e.host:e}function Yt(t){const e=D(t);return z(e)?t.ownerDocument?t.ownerDocument.body:t.body:T(e)&&K(e)?e:Yt(e)}function q(t,e,n){var o;e===void 0&&(e=[]),n===void 0&&(n=!0);const r=Yt(t),i=r===((o=t.ownerDocument)==null?void 0:o.body),s=R(r);if(i){const c=ft(s);return e.concat(s,s.visualViewport||[],K(r)?r:[],c&&n?q(c):[])}return e.concat(r,q(r,[],n))}function ft(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function Kt(t){const e=k(t);let n=parseFloat(e.width)||0,o=parseFloat(e.height)||0;const r=T(t),i=r?t.offsetWidth:n,s=r?t.offsetHeight:o,c=Z(n)!==i||Z(o)!==s;return c&&(n=i,o=s),{width:n,height:o,$:c}}function wt(t){return E(t)?t:t.contextElement}function U(t){const e=wt(t);if(!T(e))return L(1);const n=e.getBoundingClientRect(),{width:o,height:r,$:i}=Kt(e);let s=(i?Z(n.width):n.width)/o,c=(i?Z(n.height):n.height)/r;return(!s||!Number.isFinite(s))&&(s=1),(!c||!Number.isFinite(c))&&(c=1),{x:s,y:c}}const Be=L(0);function Xt(t){const e=R(t);return!yt()||!e.visualViewport?Be:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function _e(t,e,n){return e===void 0&&(e=!1),!n||e&&n!==R(t)?!1:e}function N(t,e,n,o){e===void 0&&(e=!1),n===void 0&&(n=!1);const r=t.getBoundingClientRect(),i=wt(t);let s=L(1);e&&(o?E(o)&&(s=U(o)):s=U(t));const c=_e(i,n,o)?Xt(i):L(0);let l=(r.left+c.x)/s.x,u=(r.top+c.y)/s.y,d=r.width/s.x,f=r.height/s.y;if(i){const h=R(i),m=o&&E(o)?R(o):o;let p=h,y=ft(p);for(;y&&o&&m!==p;){const w=U(y),g=y.getBoundingClientRect(),v=k(y),x=g.left+(y.clientLeft+parseFloat(v.paddingLeft))*w.x,A=g.top+(y.clientTop+parseFloat(v.paddingTop))*w.y;l*=w.x,u*=w.y,d*=w.x,f*=w.y,l+=x,u+=A,p=R(y),y=ft(p)}}return et({width:d,height:f,x:l,y:u})}function vt(t,e){const n=ct(t).scrollLeft;return e?e.left+n:N(S(t)).left+n}function Jt(t,e,n){n===void 0&&(n=!1);const o=t.getBoundingClientRect(),r=o.left+e.scrollLeft-(n?0:vt(t,o)),i=o.top+e.scrollTop;return{x:r,y:i}}function Ie(t){let{elements:e,rect:n,offsetParent:o,strategy:r}=t;const i=r==="fixed",s=S(o),c=e?st(e.floating):!1;if(o===s||c&&i)return n;let l={scrollLeft:0,scrollTop:0},u=L(1);const d=L(0),f=T(o);if((f||!f&&!i)&&((B(o)!=="body"||K(s))&&(l=ct(o)),T(o))){const m=N(o);u=U(o),d.x=m.x+o.clientLeft,d.y=m.y+o.clientTop}const h=s&&!f&&!i?Jt(s,l,!0):L(0);return{width:n.width*u.x,height:n.height*u.y,x:n.x*u.x-l.scrollLeft*u.x+d.x+h.x,y:n.y*u.y-l.scrollTop*u.y+d.y+h.y}}function je(t){return Array.from(t.getClientRects())}function qe(t){const e=S(t),n=ct(t),o=t.ownerDocument.body,r=M(e.scrollWidth,e.clientWidth,o.scrollWidth,o.clientWidth),i=M(e.scrollHeight,e.clientHeight,o.scrollHeight,o.clientHeight);let s=-n.scrollLeft+vt(t);const c=-n.scrollTop;return k(o).direction==="rtl"&&(s+=M(e.clientWidth,o.clientWidth)-r),{width:r,height:i,x:s,y:c}}function Ye(t,e){const n=R(t),o=S(t),r=n.visualViewport;let i=o.clientWidth,s=o.clientHeight,c=0,l=0;if(r){i=r.width,s=r.height;const u=yt();(!u||u&&e==="fixed")&&(c=r.offsetLeft,l=r.offsetTop)}return{width:i,height:s,x:c,y:l}}function Ke(t,e){const n=N(t,!0,e==="fixed"),o=n.top+t.clientTop,r=n.left+t.clientLeft,i=T(t)?U(t):L(1),s=t.clientWidth*i.x,c=t.clientHeight*i.y,l=r*i.x,u=o*i.y;return{width:s,height:c,x:l,y:u}}function Tt(t,e,n){let o;if(e==="viewport")o=Ye(t,n);else if(e==="document")o=qe(S(t));else if(E(e))o=Ke(e,n);else{const r=Xt(t);o={x:e.x-r.x,y:e.y-r.y,width:e.width,height:e.height}}return et(o)}function Gt(t,e){const n=D(t);return n===e||!E(n)||z(n)?!1:k(n).position==="fixed"||Gt(n,e)}function Xe(t,e){const n=e.get(t);if(n)return n;let o=q(t,[],!1).filter(c=>E(c)&&B(c)!=="body"),r=null;const i=k(t).position==="fixed";let s=i?D(t):t;for(;E(s)&&!z(s);){const c=k(s),l=gt(s);!l&&c.position==="fixed"&&(r=null),(i?!l&&!r:!l&&c.position==="static"&&!!r&&["absolute","fixed"].includes(r.position)||K(s)&&!l&&Gt(t,s))?o=o.filter(d=>d!==s):r=c,s=D(s)}return e.set(t,o),o}function Je(t){let{element:e,boundary:n,rootBoundary:o,strategy:r}=t;const s=[...n==="clippingAncestors"?st(e)?[]:Xe(e,this._c):[].concat(n),o],c=s[0],l=s.reduce((u,d)=>{const f=Tt(e,d,r);return u.top=M(f.top,u.top),u.right=Q(f.right,u.right),u.bottom=Q(f.bottom,u.bottom),u.left=M(f.left,u.left),u},Tt(e,c,r));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function Ge(t){const{width:e,height:n}=Kt(t);return{width:e,height:n}}function Qe(t,e,n){const o=T(e),r=S(e),i=n==="fixed",s=N(t,!0,i,e);let c={scrollLeft:0,scrollTop:0};const l=L(0);if(o||!o&&!i)if((B(e)!=="body"||K(r))&&(c=ct(e)),o){const h=N(e,!0,i,e);l.x=h.x+e.clientLeft,l.y=h.y+e.clientTop}else r&&(l.x=vt(r));const u=r&&!o&&!i?Jt(r,c):L(0),d=s.left+c.scrollLeft-l.x-u.x,f=s.top+c.scrollTop-l.y-u.y;return{x:d,y:f,width:s.width,height:s.height}}function at(t){return k(t).position==="static"}function St(t,e){if(!T(t)||k(t).position==="fixed")return null;if(e)return e(t);let n=t.offsetParent;return S(t)===n&&(n=n.ownerDocument.body),n}function Qt(t,e){const n=R(t);if(st(t))return n;if(!T(t)){let r=D(t);for(;r&&!z(r);){if(E(r)&&!at(r))return r;r=D(r)}return n}let o=St(t,e);for(;o&&$e(o)&&at(o);)o=St(o,e);return o&&z(o)&&at(o)&&!gt(o)?n:o||ze(t)||n}const Ze=async function(t){const e=this.getOffsetParent||Qt,n=this.getDimensions,o=await n(t.floating);return{reference:Qe(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function tn(t){return k(t).direction==="rtl"}const en={convertOffsetParentRelativeRectToViewportRelativeRect:Ie,getDocumentElement:S,getClippingRect:Je,getOffsetParent:Qt,getElementRects:Ze,getClientRects:je,getDimensions:Ge,getScale:U,isElement:E,isRTL:tn};function nn(t,e){let n=null,o;const r=S(t);function i(){var c;clearTimeout(o),(c=n)==null||c.disconnect(),n=null}function s(c,l){c===void 0&&(c=!1),l===void 0&&(l=1),i();const{left:u,top:d,width:f,height:h}=t.getBoundingClientRect();if(c||e(),!f||!h)return;const m=J(d),p=J(r.clientWidth-(u+f)),y=J(r.clientHeight-(d+h)),w=J(u),v={rootMargin:-m+"px "+-p+"px "+-y+"px "+-w+"px",threshold:M(0,Q(1,l))||1};let x=!0;function A(b){const V=b[0].intersectionRatio;if(V!==l){if(!x)return s();V?s(!1,V):o=setTimeout(()=>{s(!1,1e-7)},1e3)}x=!1}try{n=new IntersectionObserver(A,{...v,root:r.ownerDocument})}catch{n=new IntersectionObserver(A,v)}n.observe(t)}return s(!0),i}function on(t,e,n,o){o===void 0&&(o={});const{ancestorScroll:r=!0,ancestorResize:i=!0,elementResize:s=typeof ResizeObserver=="function",layoutShift:c=typeof IntersectionObserver=="function",animationFrame:l=!1}=o,u=wt(t),d=r||i?[...u?q(u):[],...q(e)]:[];d.forEach(g=>{r&&g.addEventListener("scroll",n,{passive:!0}),i&&g.addEventListener("resize",n)});const f=u&&c?nn(u,n):null;let h=-1,m=null;s&&(m=new ResizeObserver(g=>{let[v]=g;v&&v.target===u&&m&&(m.unobserve(e),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var x;(x=m)==null||x.observe(e)})),n()}),u&&!l&&m.observe(u),m.observe(e));let p,y=l?N(t):null;l&&w();function w(){const g=N(t);y&&(g.x!==y.x||g.y!==y.y||g.width!==y.width||g.height!==y.height)&&n(),y=g,p=requestAnimationFrame(w)}return n(),()=>{var g;d.forEach(v=>{r&&v.removeEventListener("scroll",n),i&&v.removeEventListener("resize",n)}),f==null||f(),(g=m)==null||g.disconnect(),m=null,l&&cancelAnimationFrame(p)}}const rn=He,sn=Ue,Pt=Ne,cn=(t,e,n)=>{const o=new Map,r={platform:en,...n},i={...r.platform,_c:o};return We(t,e,{...r,platform:i})},ln=({content:t,open:e,placement:n,offset:{mainAxis:o,crossAxis:r}={mainAxis:0,crossAxis:0}})=>a.OnBrowserCtx(i=>{const s=a.Value.toSignal(e),c=i.element;return a.When(s,()=>a.Portal("body",a.html.div(a.OnElement(l=>{const u=l;return u.style.position="absolute",a.OnDispose(on(c,u,async()=>{const{x:d,y:f}=await cn(c,u,{placement:n,strategy:"absolute",middleware:[Pt(),rn({mainAxis:o,crossAxis:r}),sn(),Pt()]});u.style.top=`${f}px`,u.style.left=`${d}px`}))}),t())))}),Zt=(t,e,n)=>{const o=a.makeProp(O.AsyncResult.notAsked),r=o.map(f=>O.AsyncResult.isSuccess(f)?f.value:void 0),i=o.map(f=>O.AsyncResult.isFailure(f)?f.error:void 0),s=o.map(f=>O.AsyncResult.isLoading(f));let c;const l=async f=>{c==null||c.abort(),c=new AbortController;const h=c.signal,m=o.get();o.set(O.AsyncResult.loading(O.AsyncResult.getOrUndefined(m)));try{const p=await e({request:f,abortSignal:h,previous:m});await Promise.resolve(),c=void 0,o.set(O.AsyncResult.success(p))}catch(p){c=void 0,o.set(O.AsyncResult.failure(n(p)))}},u=()=>l(t.get()),d=()=>{c==null||c.abort(),c=void 0,o.dispose()};return o.onDispose(t.on(l)),{status:o,value:r,error:i,loading:s,reload:u,dispose:d}},te=(t,e)=>{const{status:n,dispose:o,reload:r}=t,{loading:i,failure:s,success:c}=e;return a.Fragment(a.OnDispose(o),pt(n,{loading:i!=null?l=>i(l,r):void 0,failure:s!=null?l=>s(l,r):void 0,success:l=>c(l,r)}))},an=({request:t,load:e,mapError:n=o=>o})=>{const o=Zt(t,e,n);return r=>te(o,r)},ee=(t,e)=>{if(typeof e=="function")return ee(t,{success:e});const n=e.failure??(r=>a.Fragment(a.OnDispose(r.on(console.error)),r.map(i=>`Error: ${i}`))),o=e.success;return a.OneOfType(a.Value.toSignal(t),{Success:r=>o(r.$.value),Failure:r=>n(r.$.error)})},un=()=>a.on.focus(t=>{var e;return(e=t.target)==null?void 0:e.select()}),fn=t=>a.OnBrowserCtx(e=>{const{element:n}=e,o=a.makeProp({width:n.clientWidth,height:n.clientHeight}),r=a.renderableOfTNode(t(o))(e),i=()=>{o.set({width:n.clientWidth,height:n.clientHeight})};let s;return typeof ResizeObserver=="function"&&(s=new ResizeObserver(i),s.observe(n)),a.OnDispose(c=>{s==null||s.disconnect(),r(c)})}),dn=t=>e=>{const n=a.getWindow(),o=a.makeProp({width:(n==null?void 0:n.innerWidth)??0,height:(n==null?void 0:n.innerHeight)??0}),r=a.renderableOfTNode(t(o))(e),i=()=>{o.set({width:(n==null?void 0:n.innerWidth)??0,height:(n==null?void 0:n.innerHeight)??0})};return n==null||n.addEventListener("resize",i),s=>{n==null||n.removeEventListener("resize",i),r(s)}},ne=(t,e)=>{const n=e.split("/").filter(r=>r!==""),o={};for(let r=0;r<t.length;r++){const i=t[r],s=n[r];if(!s&&i.type!=="catch-all")return null;if(i.type==="literal"){if(i.value!==s)return null}else if(i.type==="param")o[i.name]=s;else if(i.type==="catch-all")return{params:o,path:e}}return n.length!==t.length?null:{params:o,path:e}},oe=t=>t.split("/").map(e=>e.startsWith(":")?{type:"param",name:e.slice(1)}:e==="*"?{type:"catch-all"}:{type:"literal",value:e}).filter(e=>e.type!=="literal"||e.value!==""),re=t=>{const e=t.map(n=>{const o=oe(n);return{route:n,segments:o}});return function(o){for(const{segments:r,route:i}of e){const s=ne(r,o);if(s)return{...s,route:i}}return null}},mn=t=>{const e=re(Object.keys(t));return mt(n=>{const o=n.map(r=>{const i=e(r.pathname);if(i==null)throw console.error("No route found for",r),new Error("No route found");return{params:i.params,route:i.route,path:i.path,search:r.search,hash:r.hash}});return a.OneOfTuple(o.map(r=>[r.route,r]),t)})},nt=60*1e3,dt=60*nt,Y=24*dt,Ct=7*Y,Dt=30*Y,hn=365*Y,pn=[{max:nt*90,value:nt,name:"minute",past:{singular:"a minute ago",plural:"{} minutes ago"},future:{singular:"in a minute",plural:"in {} minutes"}},{max:dt*36,value:dt,name:"hour",past:{singular:"an hour ago",plural:"{} hours ago"},future:{singular:"in an hour",plural:"in {} hours"}},{max:Y*10,value:Y,name:"day",past:{singular:"yesterday",plural:"{} days ago"},future:{singular:"tomorrow",plural:"in {} days"}},{max:Ct*6,value:Ct,name:"week",past:{singular:"last week",plural:"{} weeks ago"},future:{singular:"in a week",plural:"in {} weeks"}},{max:Dt*18,value:Dt,name:"month",past:{singular:"last month",plural:"{} months ago"},future:{singular:"in a month",plural:"in {} months"}},{max:1/0,value:hn,name:"year",past:{singular:"last year",plural:"{} years ago"},future:{singular:"in a year",plural:"in {} years"}}];function Ft(t,e,n,o){const r=Math.round(t/e);return r<=1?n:o.replace("{}",r.toLocaleString(void 0,{maximumFractionDigits:0,minimumFractionDigits:0}))}const ie=(t=1e3)=>{const e=a.makeProp(new Date),n=O.interval(()=>e.set(new Date),t);return e.onDispose(n),e},se=t=>{const e=Math.abs(t);if(e<nt)return t<0?"just now":"in a moment";for(const n of pn)if(e<n.max)return t<0?Ft(e,n.value,n.past.singular,n.past.plural):Ft(e,n.value,n.future.singular,n.future.plural);throw new Error("unreachable")},ce=(t,{now:e,frequency:n=1e4}={})=>{const o=e!=null?a.Signal.is(e)?e.derive():a.makeProp(e):ie(n),r=a.makeComputedOf(t,o)((i,s)=>i.getTime()-s.getTime());return r.onDispose(()=>a.Value.dispose(o)),r},le=(t,e={})=>{const n=ce(t,e),o=n.map(se);return o.onDispose(n.dispose),o},gn=(t,e={})=>le(t,e);class ae extends a.Prop{constructor(){super(...arguments);Ot(this,"tick",()=>this.update(n=>n+1))}}const yn=(t=0)=>new ae(t,(e,n)=>e===n);exports.Anchor=$t;exports.AsyncResultView=pt;exports.AutoFocus=xe;exports.AutoSelect=be;exports.ElementSize=fn;exports.HTMLTitle=Re;exports.HiddenWhenEmpty=Ae;exports.InViewport=zt;exports.LocationProviderMarker=Vt;exports.PopOver=ln;exports.ProvideAppearance=we;exports.ProvideLocation=pe;exports.Resource=an;exports.ResourceDisplay=te;exports.ResultView=ee;exports.Router=mn;exports.SelectOnFocus=un;exports.Ticker=ae;exports.UseAppearance=ve;exports.UseLocation=mt;exports.WhenInViewport=ke;exports.WindowSize=dn;exports._checkExtensionCondition=Wt;exports._getExtension=Mt;exports._makeRouteMatcher=re;exports._parseRouteSegments=oe;exports.appearanceMarker=ht;exports.areLocationsEqual=ge;exports.handleAnchorClick=Nt;exports.locationFromURL=Ht;exports.makeNowSignal=ie;exports.makeRelativeTime=gn;exports.makeRelativeTimeMillisSignal=ce;exports.makeRelativeTimeSignal=le;exports.makeResource=Zt;exports.makeTicker=yn;exports.matchesRoute=ne;exports.setLocationFromUrl=Ut;exports.timeDiffToString=se;exports.urlFromLocation=ye;
1
+ "use strict";var de=Object.defineProperty;var me=(t,e,n)=>e in t?de(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Et=(t,e,n)=>me(t,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@tempots/dom"),E=require("@tempots/std"),Ft=t=>{const e=t.split("/").pop();if(e==null||e.startsWith("."))return;const n=e.split(".")||[];return n.length>1?"."+n.pop():void 0},Mt=(t,e)=>{const n=Ft(e);return n!=null&&(t.length===0||!t.some(o=>n==o))},he=(t,e,n,o)=>{let r=t.target;for(;r!=null&&!(r instanceof HTMLAnchorElement);)r=r.parentElement;if(r==null)return!0;const i=r;if(t.button!==0||t.ctrlKey||t.metaKey||i.target!=="_self"&&i.target!==""||i.getAttribute("download")!=null)return!0;const{pathname:s,search:c,hash:l}=i;if(o){const u=s+c+l,d=i.getAttribute("href");if(!(d!=null&&d.startsWith("#"))&&d!==u)return!0}return e?!1:Mt(n,s)},Nt=(t,e={ignoreUrlWithExtension:!0,allowedExtensions:[],ignoreExternalUrl:!0})=>{const n=e.ignoreUrlWithExtension===!0&&Array.isArray(e.allowedExtensions)?e.allowedExtensions.map(o=>o.startsWith(".")?o:"."+o):[];return o=>{he(o,e.ignoreUrlWithExtension??!0,n,e.ignoreExternalUrl??!0)||t()&&o.preventDefault()}},Vt=a.makeProviderMark("LocationProvider"),pe=t=>a.Fragment(a.WithBrowserCtx(()=>a.Async(Promise.resolve().then(()=>require("./browser-location-8M6odBVW.cjs")).then(e=>e.ProvideBrowserLocation),e=>e(t))),a.WithHeadlessCtx(e=>a.Async(Promise.resolve().then(()=>require("./headless-location-24MkNdBT.cjs")).then(n=>n.ProvideHeadlessLocation),n=>n(e.container.currentURL,t)))),mt=t=>a.UseProvider(Vt,e=>n=>{const o=a.makeProp(e.value,e.equals);e.feedProp(o),o.on(e.set);const r=a.renderableOfTNode(t(o))(n);return i=>{o.dispose(),r(i)}}),ge=(t,e)=>t.pathname===e.pathname&&JSON.stringify(t.search)===JSON.stringify(e.search)&&t.hash===e.hash,Ht=(t,e)=>{var i;const n=new URL(t,e??((i=a.getWindow())==null?void 0:i.location.toString())),o=Object.fromEntries(n.searchParams.entries());let r=n.hash;return r.startsWith("#")&&(r=r.substring(1)),{pathname:n.pathname,search:o,hash:r===""?void 0:r}},Ut=(t,e)=>{const n=Ht(e);return t.set(n),t},ye=t=>{const n=new URLSearchParams(t.search).toString(),o=t.hash;return`${t.pathname}${n?`?${n}`:""}${o?`#${o}`:""}`},$t=(t,...e)=>{if(typeof t=="string"||a.Signal.is(t))return $t({href:t},...e);const{href:n,...o}=t;return mt(r=>a.html.a(a.on.click(Nt(()=>(Ut(r,a.Value.get(n)),!0),o)),a.attr.href(n),...e))},ht=a.makeProviderMark("Appearance"),we=t=>{const e=a.getWindow(),n=e!=null&&e.matchMedia!=null?e.matchMedia("(prefers-color-scheme: dark)"):void 0,o=(n==null?void 0:n.matches)??!1,r=a.makeProp(o?"dark":"light"),i=s=>{r.set(s.matches?"dark":"light")};return n==null||n.addEventListener("change",i),a.Fragment(a.SetProvider(ht,r,t),a.OnDispose(()=>n==null?void 0:n.removeEventListener("change",i)))},ve=t=>a.UseProvider(ht,t),pt=(t,e)=>{if(typeof e=="function")return pt(t,{success:e});const n=e.failure??(s=>s.map(c=>`Error: ${c}`)),o=e.success,r=e.loading??(()=>a.Empty),i=e.notAsked??(()=>a.Empty);return a.OneOfType(a.Value.toSignal(t),{AsyncSuccess:s=>o(s.$.value),AsyncFailure:s=>n(s.$.error),Loading:s=>r(s.map(c=>c.previousValue)),NotAsked:i})},xe=(t=10)=>a.WithElement(e=>a.OnDispose(E.delayed(()=>e==null?void 0:e.focus(),t))),be=(t=10)=>a.WithElement(e=>{const n=E.delayed(()=>e.select(),t);return a.OnDispose(n)}),Ae=a.WithElement(t=>{const e=t.style.getPropertyValue(":empty");return t.style.setProperty(":empty","display:none"),a.OnDispose(n=>{n&&t.style.setProperty(":empty",e)})}),Re=t=>a.Portal("head > title",a.attr.innerText(t)),Ee={partial:{root:null,rootMargin:"0px",threshold:0},full:{root:null,rootMargin:"0px",threshold:1}},G={partial:new Map,full:new Map},j={partial:null,full:null};function Oe(t){return j[t]==null&&(j[t]=new IntersectionObserver(e=>{e.forEach(n=>{const o=G[t].get(n.target);o==null||o.set(n.isIntersecting)})},Ee[t])),j[t]}const zt=(t,e)=>{const n=a.makeProp(!1);return a.Fragment(a.WithElement(o=>{const r=typeof IntersectionObserver<"u"?Oe(t):null;return G[t].set(o,n),r==null||r.observe(o),a.OnDispose(()=>{var i;n.dispose(),r==null||r.unobserve(o),G[t].delete(o),G[t].size===0&&((i=j[t])==null||i.disconnect(),j[t]=null)})}),a.renderableOfTNode(e(n)))},ke=(t,e,n)=>zt(t,o=>a.When(o,e,n??(()=>a.Empty))),Q=Math.min,F=Math.max,Z=Math.round,J=Math.floor,S=t=>({x:t,y:t}),Se={left:"right",right:"left",bottom:"top",top:"bottom"},Le={start:"end",end:"start"};function Ot(t,e,n){return F(t,Q(e,n))}function ot(t,e){return typeof t=="function"?t(e):t}function M(t){return t.split("-")[0]}function rt(t){return t.split("-")[1]}function Bt(t){return t==="x"?"y":"x"}function _t(t){return t==="y"?"height":"width"}function $(t){return["top","bottom"].includes(M(t))?"y":"x"}function It(t){return Bt($(t))}function Te(t,e,n){n===void 0&&(n=!1);const o=rt(t),r=It(t),i=_t(r);let s=r==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return e.reference[i]>e.floating[i]&&(s=tt(s)),[s,tt(s)]}function Pe(t){const e=tt(t);return[ut(t),e,ut(e)]}function ut(t){return t.replace(/start|end/g,e=>Le[e])}function Ce(t,e,n){const o=["left","right"],r=["right","left"],i=["top","bottom"],s=["bottom","top"];switch(t){case"top":case"bottom":return n?e?r:o:e?o:r;case"left":case"right":return e?i:s;default:return[]}}function De(t,e,n,o){const r=rt(t);let i=Ce(M(t),n==="start",o);return r&&(i=i.map(s=>s+"-"+r),e&&(i=i.concat(i.map(ut)))),i}function tt(t){return t.replace(/left|right|bottom|top/g,e=>Se[e])}function We(t){return{top:0,right:0,bottom:0,left:0,...t}}function Fe(t){return typeof t!="number"?We(t):{top:t,right:t,bottom:t,left:t}}function et(t){const{x:e,y:n,width:o,height:r}=t;return{width:o,height:r,top:n,left:e,right:e+o,bottom:n+r,x:e,y:n}}function kt(t,e,n){let{reference:o,floating:r}=t;const i=$(e),s=It(e),c=_t(s),l=M(e),u=i==="y",d=o.x+o.width/2-r.width/2,f=o.y+o.height/2-r.height/2,h=o[c]/2-r[c]/2;let m;switch(l){case"top":m={x:d,y:o.y-r.height};break;case"bottom":m={x:d,y:o.y+o.height};break;case"right":m={x:o.x+o.width,y:f};break;case"left":m={x:o.x-r.width,y:f};break;default:m={x:o.x,y:o.y}}switch(rt(e)){case"start":m[s]-=h*(n&&u?-1:1);break;case"end":m[s]+=h*(n&&u?-1:1);break}return m}const Me=async(t,e,n)=>{const{placement:o="bottom",strategy:r="absolute",middleware:i=[],platform:s}=n,c=i.filter(Boolean),l=await(s.isRTL==null?void 0:s.isRTL(e));let u=await s.getElementRects({reference:t,floating:e,strategy:r}),{x:d,y:f}=kt(u,o,l),h=o,m={},p=0;for(let y=0;y<c.length;y++){const{name:w,fn:g}=c[y],{x:v,y:x,data:A,reset:b}=await g({x:d,y:f,initialPlacement:o,placement:h,strategy:r,middlewareData:m,rects:u,platform:s,elements:{reference:t,floating:e}});d=v??d,f=x??f,m={...m,[w]:{...m[w],...A}},b&&p<=50&&(p++,typeof b=="object"&&(b.placement&&(h=b.placement),b.rects&&(u=b.rects===!0?await s.getElementRects({reference:t,floating:e,strategy:r}):b.rects),{x:d,y:f}=kt(u,h,l)),y=-1)}return{x:d,y:f,placement:h,strategy:r,middlewareData:m}};async function jt(t,e){var n;e===void 0&&(e={});const{x:o,y:r,platform:i,rects:s,elements:c,strategy:l}=t,{boundary:u="clippingAncestors",rootBoundary:d="viewport",elementContext:f="floating",altBoundary:h=!1,padding:m=0}=ot(e,t),p=Fe(m),w=c[h?f==="floating"?"reference":"floating":f],g=et(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(w)))==null||n?w:w.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(c.floating)),boundary:u,rootBoundary:d,strategy:l})),v=f==="floating"?{x:o,y:r,width:s.floating.width,height:s.floating.height}:s.reference,x=await(i.getOffsetParent==null?void 0:i.getOffsetParent(c.floating)),A=await(i.isElement==null?void 0:i.isElement(x))?await(i.getScale==null?void 0:i.getScale(x))||{x:1,y:1}:{x:1,y:1},b=et(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:c,rect:v,offsetParent:x,strategy:l}):v);return{top:(g.top-b.top+p.top)/A.y,bottom:(b.bottom-g.bottom+p.bottom)/A.y,left:(g.left-b.left+p.left)/A.x,right:(b.right-g.right+p.right)/A.x}}const Ne=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var n,o;const{placement:r,middlewareData:i,rects:s,initialPlacement:c,platform:l,elements:u}=e,{mainAxis:d=!0,crossAxis:f=!0,fallbackPlacements:h,fallbackStrategy:m="bestFit",fallbackAxisSideDirection:p="none",flipAlignment:y=!0,...w}=ot(t,e);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const g=M(r),v=$(c),x=M(c)===c,A=await(l.isRTL==null?void 0:l.isRTL(u.floating)),b=h||(x||!y?[tt(c)]:Pe(c)),V=p!=="none";!h&&V&&b.push(...De(c,y,p,A));const ue=[c,...b],lt=await jt(e,w),X=[];let _=((o=i.flip)==null?void 0:o.overflows)||[];if(d&&X.push(lt[g]),f){const W=Te(r,s,A);X.push(lt[W[0]],lt[W[1]])}if(_=[..._,{placement:r,overflows:X}],!X.every(W=>W<=0)){var xt,bt;const W=(((xt=i.flip)==null?void 0:xt.index)||0)+1,Rt=ue[W];if(Rt)return{data:{index:W,overflows:_},reset:{placement:Rt}};let I=(bt=_.filter(H=>H.overflows[0]<=0).sort((H,P)=>H.overflows[1]-P.overflows[1])[0])==null?void 0:bt.placement;if(!I)switch(m){case"bestFit":{var At;const H=(At=_.filter(P=>{if(V){const C=$(P.placement);return C===v||C==="y"}return!0}).map(P=>[P.placement,P.overflows.filter(C=>C>0).reduce((C,fe)=>C+fe,0)]).sort((P,C)=>P[1]-C[1])[0])==null?void 0:At[0];H&&(I=H);break}case"initialPlacement":I=c;break}if(r!==I)return{reset:{placement:I}}}return{}}}};async function Ve(t,e){const{placement:n,platform:o,elements:r}=t,i=await(o.isRTL==null?void 0:o.isRTL(r.floating)),s=M(n),c=rt(n),l=$(n)==="y",u=["left","top"].includes(s)?-1:1,d=i&&l?-1:1,f=ot(e,t);let{mainAxis:h,crossAxis:m,alignmentAxis:p}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return c&&typeof p=="number"&&(m=c==="end"?p*-1:p),l?{x:m*d,y:h*u}:{x:h*u,y:m*d}}const He=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var n,o;const{x:r,y:i,placement:s,middlewareData:c}=e,l=await Ve(e,t);return s===((n=c.offset)==null?void 0:n.placement)&&(o=c.arrow)!=null&&o.alignmentOffset?{}:{x:r+l.x,y:i+l.y,data:{...l,placement:s}}}}},Ue=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:o,placement:r}=e,{mainAxis:i=!0,crossAxis:s=!1,limiter:c={fn:w=>{let{x:g,y:v}=w;return{x:g,y:v}}},...l}=ot(t,e),u={x:n,y:o},d=await jt(e,l),f=$(M(r)),h=Bt(f);let m=u[h],p=u[f];if(i){const w=h==="y"?"top":"left",g=h==="y"?"bottom":"right",v=m+d[w],x=m-d[g];m=Ot(v,m,x)}if(s){const w=f==="y"?"top":"left",g=f==="y"?"bottom":"right",v=p+d[w],x=p-d[g];p=Ot(v,p,x)}const y=c.fn({...e,[h]:m,[f]:p});return{...y,data:{x:y.x-n,y:y.y-o,enabled:{[h]:i,[f]:s}}}}}};function it(){return typeof window<"u"}function B(t){return qt(t)?(t.nodeName||"").toLowerCase():"#document"}function R(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function T(t){var e;return(e=(qt(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function qt(t){return it()?t instanceof Node||t instanceof R(t).Node:!1}function O(t){return it()?t instanceof Element||t instanceof R(t).Element:!1}function L(t){return it()?t instanceof HTMLElement||t instanceof R(t).HTMLElement:!1}function St(t){return!it()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof R(t).ShadowRoot}function K(t){const{overflow:e,overflowX:n,overflowY:o,display:r}=k(t);return/auto|scroll|overlay|hidden|clip/.test(e+o+n)&&!["inline","contents"].includes(r)}function $e(t){return["table","td","th"].includes(B(t))}function st(t){return[":popover-open",":modal"].some(e=>{try{return t.matches(e)}catch{return!1}})}function gt(t){const e=yt(),n=O(t)?k(t):t;return n.transform!=="none"||n.perspective!=="none"||(n.containerType?n.containerType!=="normal":!1)||!e&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!e&&(n.filter?n.filter!=="none":!1)||["transform","perspective","filter"].some(o=>(n.willChange||"").includes(o))||["paint","layout","strict","content"].some(o=>(n.contain||"").includes(o))}function ze(t){let e=D(t);for(;L(e)&&!z(e);){if(gt(e))return e;if(st(e))return null;e=D(e)}return null}function yt(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function z(t){return["html","body","#document"].includes(B(t))}function k(t){return R(t).getComputedStyle(t)}function ct(t){return O(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function D(t){if(B(t)==="html")return t;const e=t.assignedSlot||t.parentNode||St(t)&&t.host||T(t);return St(e)?e.host:e}function Yt(t){const e=D(t);return z(e)?t.ownerDocument?t.ownerDocument.body:t.body:L(e)&&K(e)?e:Yt(e)}function q(t,e,n){var o;e===void 0&&(e=[]),n===void 0&&(n=!0);const r=Yt(t),i=r===((o=t.ownerDocument)==null?void 0:o.body),s=R(r);if(i){const c=ft(s);return e.concat(s,s.visualViewport||[],K(r)?r:[],c&&n?q(c):[])}return e.concat(r,q(r,[],n))}function ft(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function Kt(t){const e=k(t);let n=parseFloat(e.width)||0,o=parseFloat(e.height)||0;const r=L(t),i=r?t.offsetWidth:n,s=r?t.offsetHeight:o,c=Z(n)!==i||Z(o)!==s;return c&&(n=i,o=s),{width:n,height:o,$:c}}function wt(t){return O(t)?t:t.contextElement}function U(t){const e=wt(t);if(!L(e))return S(1);const n=e.getBoundingClientRect(),{width:o,height:r,$:i}=Kt(e);let s=(i?Z(n.width):n.width)/o,c=(i?Z(n.height):n.height)/r;return(!s||!Number.isFinite(s))&&(s=1),(!c||!Number.isFinite(c))&&(c=1),{x:s,y:c}}const Be=S(0);function Xt(t){const e=R(t);return!yt()||!e.visualViewport?Be:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function _e(t,e,n){return e===void 0&&(e=!1),!n||e&&n!==R(t)?!1:e}function N(t,e,n,o){e===void 0&&(e=!1),n===void 0&&(n=!1);const r=t.getBoundingClientRect(),i=wt(t);let s=S(1);e&&(o?O(o)&&(s=U(o)):s=U(t));const c=_e(i,n,o)?Xt(i):S(0);let l=(r.left+c.x)/s.x,u=(r.top+c.y)/s.y,d=r.width/s.x,f=r.height/s.y;if(i){const h=R(i),m=o&&O(o)?R(o):o;let p=h,y=ft(p);for(;y&&o&&m!==p;){const w=U(y),g=y.getBoundingClientRect(),v=k(y),x=g.left+(y.clientLeft+parseFloat(v.paddingLeft))*w.x,A=g.top+(y.clientTop+parseFloat(v.paddingTop))*w.y;l*=w.x,u*=w.y,d*=w.x,f*=w.y,l+=x,u+=A,p=R(y),y=ft(p)}}return et({width:d,height:f,x:l,y:u})}function vt(t,e){const n=ct(t).scrollLeft;return e?e.left+n:N(T(t)).left+n}function Jt(t,e,n){n===void 0&&(n=!1);const o=t.getBoundingClientRect(),r=o.left+e.scrollLeft-(n?0:vt(t,o)),i=o.top+e.scrollTop;return{x:r,y:i}}function Ie(t){let{elements:e,rect:n,offsetParent:o,strategy:r}=t;const i=r==="fixed",s=T(o),c=e?st(e.floating):!1;if(o===s||c&&i)return n;let l={scrollLeft:0,scrollTop:0},u=S(1);const d=S(0),f=L(o);if((f||!f&&!i)&&((B(o)!=="body"||K(s))&&(l=ct(o)),L(o))){const m=N(o);u=U(o),d.x=m.x+o.clientLeft,d.y=m.y+o.clientTop}const h=s&&!f&&!i?Jt(s,l,!0):S(0);return{width:n.width*u.x,height:n.height*u.y,x:n.x*u.x-l.scrollLeft*u.x+d.x+h.x,y:n.y*u.y-l.scrollTop*u.y+d.y+h.y}}function je(t){return Array.from(t.getClientRects())}function qe(t){const e=T(t),n=ct(t),o=t.ownerDocument.body,r=F(e.scrollWidth,e.clientWidth,o.scrollWidth,o.clientWidth),i=F(e.scrollHeight,e.clientHeight,o.scrollHeight,o.clientHeight);let s=-n.scrollLeft+vt(t);const c=-n.scrollTop;return k(o).direction==="rtl"&&(s+=F(e.clientWidth,o.clientWidth)-r),{width:r,height:i,x:s,y:c}}function Ye(t,e){const n=R(t),o=T(t),r=n.visualViewport;let i=o.clientWidth,s=o.clientHeight,c=0,l=0;if(r){i=r.width,s=r.height;const u=yt();(!u||u&&e==="fixed")&&(c=r.offsetLeft,l=r.offsetTop)}return{width:i,height:s,x:c,y:l}}function Ke(t,e){const n=N(t,!0,e==="fixed"),o=n.top+t.clientTop,r=n.left+t.clientLeft,i=L(t)?U(t):S(1),s=t.clientWidth*i.x,c=t.clientHeight*i.y,l=r*i.x,u=o*i.y;return{width:s,height:c,x:l,y:u}}function Lt(t,e,n){let o;if(e==="viewport")o=Ye(t,n);else if(e==="document")o=qe(T(t));else if(O(e))o=Ke(e,n);else{const r=Xt(t);o={x:e.x-r.x,y:e.y-r.y,width:e.width,height:e.height}}return et(o)}function Gt(t,e){const n=D(t);return n===e||!O(n)||z(n)?!1:k(n).position==="fixed"||Gt(n,e)}function Xe(t,e){const n=e.get(t);if(n)return n;let o=q(t,[],!1).filter(c=>O(c)&&B(c)!=="body"),r=null;const i=k(t).position==="fixed";let s=i?D(t):t;for(;O(s)&&!z(s);){const c=k(s),l=gt(s);!l&&c.position==="fixed"&&(r=null),(i?!l&&!r:!l&&c.position==="static"&&!!r&&["absolute","fixed"].includes(r.position)||K(s)&&!l&&Gt(t,s))?o=o.filter(d=>d!==s):r=c,s=D(s)}return e.set(t,o),o}function Je(t){let{element:e,boundary:n,rootBoundary:o,strategy:r}=t;const s=[...n==="clippingAncestors"?st(e)?[]:Xe(e,this._c):[].concat(n),o],c=s[0],l=s.reduce((u,d)=>{const f=Lt(e,d,r);return u.top=F(f.top,u.top),u.right=Q(f.right,u.right),u.bottom=Q(f.bottom,u.bottom),u.left=F(f.left,u.left),u},Lt(e,c,r));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function Ge(t){const{width:e,height:n}=Kt(t);return{width:e,height:n}}function Qe(t,e,n){const o=L(e),r=T(e),i=n==="fixed",s=N(t,!0,i,e);let c={scrollLeft:0,scrollTop:0};const l=S(0);if(o||!o&&!i)if((B(e)!=="body"||K(r))&&(c=ct(e)),o){const h=N(e,!0,i,e);l.x=h.x+e.clientLeft,l.y=h.y+e.clientTop}else r&&(l.x=vt(r));const u=r&&!o&&!i?Jt(r,c):S(0),d=s.left+c.scrollLeft-l.x-u.x,f=s.top+c.scrollTop-l.y-u.y;return{x:d,y:f,width:s.width,height:s.height}}function at(t){return k(t).position==="static"}function Tt(t,e){if(!L(t)||k(t).position==="fixed")return null;if(e)return e(t);let n=t.offsetParent;return T(t)===n&&(n=n.ownerDocument.body),n}function Qt(t,e){const n=R(t);if(st(t))return n;if(!L(t)){let r=D(t);for(;r&&!z(r);){if(O(r)&&!at(r))return r;r=D(r)}return n}let o=Tt(t,e);for(;o&&$e(o)&&at(o);)o=Tt(o,e);return o&&z(o)&&at(o)&&!gt(o)?n:o||ze(t)||n}const Ze=async function(t){const e=this.getOffsetParent||Qt,n=this.getDimensions,o=await n(t.floating);return{reference:Qe(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function tn(t){return k(t).direction==="rtl"}const en={convertOffsetParentRelativeRectToViewportRelativeRect:Ie,getDocumentElement:T,getClippingRect:Je,getOffsetParent:Qt,getElementRects:Ze,getClientRects:je,getDimensions:Ge,getScale:U,isElement:O,isRTL:tn};function nn(t,e){let n=null,o;const r=T(t);function i(){var c;clearTimeout(o),(c=n)==null||c.disconnect(),n=null}function s(c,l){c===void 0&&(c=!1),l===void 0&&(l=1),i();const{left:u,top:d,width:f,height:h}=t.getBoundingClientRect();if(c||e(),!f||!h)return;const m=J(d),p=J(r.clientWidth-(u+f)),y=J(r.clientHeight-(d+h)),w=J(u),v={rootMargin:-m+"px "+-p+"px "+-y+"px "+-w+"px",threshold:F(0,Q(1,l))||1};let x=!0;function A(b){const V=b[0].intersectionRatio;if(V!==l){if(!x)return s();V?s(!1,V):o=setTimeout(()=>{s(!1,1e-7)},1e3)}x=!1}try{n=new IntersectionObserver(A,{...v,root:r.ownerDocument})}catch{n=new IntersectionObserver(A,v)}n.observe(t)}return s(!0),i}function on(t,e,n,o){o===void 0&&(o={});const{ancestorScroll:r=!0,ancestorResize:i=!0,elementResize:s=typeof ResizeObserver=="function",layoutShift:c=typeof IntersectionObserver=="function",animationFrame:l=!1}=o,u=wt(t),d=r||i?[...u?q(u):[],...q(e)]:[];d.forEach(g=>{r&&g.addEventListener("scroll",n,{passive:!0}),i&&g.addEventListener("resize",n)});const f=u&&c?nn(u,n):null;let h=-1,m=null;s&&(m=new ResizeObserver(g=>{let[v]=g;v&&v.target===u&&m&&(m.unobserve(e),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var x;(x=m)==null||x.observe(e)})),n()}),u&&!l&&m.observe(u),m.observe(e));let p,y=l?N(t):null;l&&w();function w(){const g=N(t);y&&(g.x!==y.x||g.y!==y.y||g.width!==y.width||g.height!==y.height)&&n(),y=g,p=requestAnimationFrame(w)}return n(),()=>{var g;d.forEach(v=>{r&&v.removeEventListener("scroll",n),i&&v.removeEventListener("resize",n)}),f==null||f(),(g=m)==null||g.disconnect(),m=null,l&&cancelAnimationFrame(p)}}const rn=He,sn=Ue,Pt=Ne,cn=(t,e,n)=>{const o=new Map,r={platform:en,...n},i={...r.platform,_c:o};return Me(t,e,{...r,platform:i})},ln=({content:t,open:e,placement:n,offset:{mainAxis:o,crossAxis:r}={mainAxis:0,crossAxis:0}})=>a.WithBrowserCtx(i=>{const s=a.Value.toSignal(e),c=i.element;return a.When(s,()=>a.Portal("body",a.html.div(a.WithElement(l=>{const u=l;return u.style.position="absolute",a.OnDispose(on(c,u,async()=>{const{x:d,y:f}=await cn(c,u,{placement:n,strategy:"absolute",middleware:[Pt(),rn({mainAxis:o,crossAxis:r}),sn(),Pt()]});u.style.top=`${f}px`,u.style.left=`${d}px`}))}),t())))}),Zt=(t,e,n)=>{const o=a.makeProp(E.AsyncResult.notAsked),r=o.map(f=>E.AsyncResult.isSuccess(f)?f.value:void 0),i=o.map(f=>E.AsyncResult.isFailure(f)?f.error:void 0),s=o.map(f=>E.AsyncResult.isLoading(f));let c;const l=async f=>{c==null||c.abort(),c=new AbortController;const h=c.signal,m=o.get();o.set(E.AsyncResult.loading(E.AsyncResult.getOrUndefined(m)));try{const p=await e({request:f,abortSignal:h,previous:m});await Promise.resolve(),c=void 0,o.set(E.AsyncResult.success(p))}catch(p){c=void 0,o.set(E.AsyncResult.failure(n(p)))}},u=()=>l(t.get()),d=()=>{c==null||c.abort(),c=void 0,o.dispose()};return o.onDispose(t.on(l)),{status:o,value:r,error:i,loading:s,reload:u,dispose:d}},te=(t,e)=>{const{status:n,dispose:o,reload:r}=t,{loading:i,failure:s,success:c}=e;return a.Fragment(a.OnDispose(o),pt(n,{loading:i!=null?l=>i(l,r):void 0,failure:s!=null?l=>s(l,r):void 0,success:l=>c(l,r)}))},an=({request:t,load:e,mapError:n=o=>o})=>{const o=Zt(t,e,n);return r=>te(o,r)},ee=(t,e)=>{if(typeof e=="function")return ee(t,{success:e});const n=e.failure??(r=>a.Fragment(a.OnDispose(r.on(console.error)),r.map(i=>`Error: ${i}`))),o=e.success;return a.OneOfType(a.Value.toSignal(t),{Success:r=>o(r.$.value),Failure:r=>n(r.$.error)})},un=()=>a.on.focus(t=>{var e;return(e=t.target)==null?void 0:e.select()}),fn=t=>a.WithBrowserCtx(e=>{const{element:n}=e,o=a.makeProp({width:n.clientWidth,height:n.clientHeight}),r=a.renderableOfTNode(t(o))(e),i=()=>{o.set({width:n.clientWidth,height:n.clientHeight})};let s;return typeof ResizeObserver=="function"&&(s=new ResizeObserver(i),s.observe(n)),a.OnDispose(c=>{s==null||s.disconnect(),r(c)})}),dn=t=>e=>{const n=a.getWindow(),o=a.makeProp({width:(n==null?void 0:n.innerWidth)??0,height:(n==null?void 0:n.innerHeight)??0}),r=a.renderableOfTNode(t(o))(e),i=()=>{o.set({width:(n==null?void 0:n.innerWidth)??0,height:(n==null?void 0:n.innerHeight)??0})};return n==null||n.addEventListener("resize",i),s=>{n==null||n.removeEventListener("resize",i),r(s)}},ne=(t,e)=>{const n=e.split("/").filter(r=>r!==""),o={};for(let r=0;r<t.length;r++){const i=t[r],s=n[r];if(!s&&i.type!=="catch-all")return null;if(i.type==="literal"){if(i.value!==s)return null}else if(i.type==="param")o[i.name]=s;else if(i.type==="catch-all")return{params:o,path:e}}return n.length!==t.length?null:{params:o,path:e}},oe=t=>t.split("/").map(e=>e.startsWith(":")?{type:"param",name:e.slice(1)}:e==="*"?{type:"catch-all"}:{type:"literal",value:e}).filter(e=>e.type!=="literal"||e.value!==""),re=t=>{const e=t.map(n=>{const o=oe(n);return{route:n,segments:o}});return function(o){for(const{segments:r,route:i}of e){const s=ne(r,o);if(s)return{...s,route:i}}return null}},mn=t=>{const e=re(Object.keys(t));return mt(n=>{const o=n.map(r=>{const i=e(r.pathname);if(i==null)throw console.error("No route found for",r),new Error("No route found");return{params:i.params,route:i.route,path:i.path,search:r.search,hash:r.hash}});return a.OneOfTuple(o.map(r=>[r.route,r]),t)})},nt=60*1e3,dt=60*nt,Y=24*dt,Ct=7*Y,Dt=30*Y,hn=365*Y,pn=[{max:nt*90,value:nt,name:"minute",past:{singular:"a minute ago",plural:"{} minutes ago"},future:{singular:"in a minute",plural:"in {} minutes"}},{max:dt*36,value:dt,name:"hour",past:{singular:"an hour ago",plural:"{} hours ago"},future:{singular:"in an hour",plural:"in {} hours"}},{max:Y*10,value:Y,name:"day",past:{singular:"yesterday",plural:"{} days ago"},future:{singular:"tomorrow",plural:"in {} days"}},{max:Ct*6,value:Ct,name:"week",past:{singular:"last week",plural:"{} weeks ago"},future:{singular:"in a week",plural:"in {} weeks"}},{max:Dt*18,value:Dt,name:"month",past:{singular:"last month",plural:"{} months ago"},future:{singular:"in a month",plural:"in {} months"}},{max:1/0,value:hn,name:"year",past:{singular:"last year",plural:"{} years ago"},future:{singular:"in a year",plural:"in {} years"}}];function Wt(t,e,n,o){const r=Math.round(t/e);return r<=1?n:o.replace("{}",r.toLocaleString(void 0,{maximumFractionDigits:0,minimumFractionDigits:0}))}const ie=(t=1e3)=>{const e=a.makeProp(new Date),n=E.interval(()=>e.set(new Date),t);return e.onDispose(n),e},se=t=>{const e=Math.abs(t);if(e<nt)return t<0?"just now":"in a moment";for(const n of pn)if(e<n.max)return t<0?Wt(e,n.value,n.past.singular,n.past.plural):Wt(e,n.value,n.future.singular,n.future.plural);throw new Error("unreachable")},ce=(t,{now:e,frequency:n=1e4}={})=>{const o=e!=null?a.Signal.is(e)?e.derive():a.makeProp(e):ie(n),r=a.makeComputedOf(t,o)((i,s)=>i.getTime()-s.getTime());return r.onDispose(()=>a.Value.dispose(o)),r},le=(t,e={})=>{const n=ce(t,e),o=n.map(se);return o.onDispose(n.dispose),o},gn=(t,e={})=>le(t,e);class ae extends a.Prop{constructor(){super(...arguments);Et(this,"tick",()=>this.update(n=>n+1))}}const yn=(t=0)=>new ae(t,(e,n)=>e===n);exports.Anchor=$t;exports.AsyncResultView=pt;exports.AutoFocus=xe;exports.AutoSelect=be;exports.ElementSize=fn;exports.HTMLTitle=Re;exports.HiddenWhenEmpty=Ae;exports.InViewport=zt;exports.LocationProviderMarker=Vt;exports.PopOver=ln;exports.ProvideAppearance=we;exports.Resource=an;exports.ResourceDisplay=te;exports.ResultView=ee;exports.Router=mn;exports.SelectOnFocus=un;exports.SetLocation=pe;exports.Ticker=ae;exports.UseAppearance=ve;exports.UseLocation=mt;exports.WhenInViewport=ke;exports.WindowSize=dn;exports._checkExtensionCondition=Mt;exports._getExtension=Ft;exports._makeRouteMatcher=re;exports._parseRouteSegments=oe;exports.appearanceMarker=ht;exports.areLocationsEqual=ge;exports.handleAnchorClick=Nt;exports.locationFromURL=Ht;exports.makeNowSignal=ie;exports.makeRelativeTime=gn;exports.makeRelativeTimeMillisSignal=ce;exports.makeRelativeTimeSignal=le;exports.makeResource=Zt;exports.makeTicker=yn;exports.matchesRoute=ne;exports.setLocationFromUrl=Ut;exports.timeDiffToString=se;exports.urlFromLocation=ye;
package/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  var de = Object.defineProperty;
2
2
  var he = (t, e, n) => e in t ? de(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
3
3
  var Tt = (t, e, n) => he(t, typeof e != "symbol" ? e + "" : e, n);
4
- import { makeProviderMark as zt, Fragment as X, OnBrowserCtx as xt, Async as Ct, OnHeadlessCtx as me, UseProvider as Bt, makeProp as W, renderableOfTNode as ct, getWindow as vt, Signal as Ut, html as _t, on as It, Value as J, attr as jt, WithProvider as pe, OnDispose as S, Empty as pt, OneOfType as Yt, OnElement as G, Portal as qt, When as Kt, OneOfTuple as ge, makeComputedOf as ye, Prop as we } from "@tempots/dom";
4
+ import { makeProviderMark as zt, Fragment as X, WithBrowserCtx as xt, Async as Ct, WithHeadlessCtx as me, UseProvider as Bt, makeProp as W, renderableOfTNode as ct, getWindow as vt, Signal as Ut, html as _t, on as It, Value as J, attr as jt, SetProvider as pe, OnDispose as k, Empty as pt, OneOfType as Yt, WithElement as G, Portal as qt, When as Kt, OneOfTuple as ge, makeComputedOf as ye, Prop as we } from "@tempots/dom";
5
5
  import { delayed as Xt, AsyncResult as P, interval as xe } from "@tempots/std";
6
6
  const ve = (t) => {
7
7
  const e = t.split("/").pop();
@@ -43,13 +43,13 @@ const ve = (t) => {
43
43
  e.ignoreExternalUrl ?? !0
44
44
  ) || t() && o.preventDefault();
45
45
  };
46
- }, Ee = zt("LocationProvider"), Sn = (t) => X(
46
+ }, Ee = zt("LocationProvider"), kn = (t) => X(
47
47
  xt(() => Ct(
48
- import("./browser-location-12vUH3Kv.js").then((e) => e.ProvideBrowserLocation),
48
+ import("./browser-location-NHbWKVZU.js").then((e) => e.ProvideBrowserLocation),
49
49
  (e) => e(t)
50
50
  )),
51
51
  me((e) => Ct(
52
- import("./headless-location-Ba_ht5ZQ.js").then((n) => n.ProvideHeadlessLocation),
52
+ import("./headless-location-CR5zPUNK.js").then((n) => n.ProvideHeadlessLocation),
53
53
  (n) => n(e.container.currentURL, t)
54
54
  ))
55
55
  ), Jt = (t) => Bt(Ee, (e) => (n) => {
@@ -74,9 +74,9 @@ const ve = (t) => {
74
74
  }, Cn = (t) => {
75
75
  const n = new URLSearchParams(t.search).toString(), o = t.hash;
76
76
  return `${t.pathname}${n ? `?${n}` : ""}${o ? `#${o}` : ""}`;
77
- }, ke = (t, ...e) => {
77
+ }, Se = (t, ...e) => {
78
78
  if (typeof t == "string" || Ut.is(t))
79
- return ke({ href: t }, ...e);
79
+ return Se({ href: t }, ...e);
80
80
  const { href: n, ...o } = t;
81
81
  return Jt((r) => _t.a(
82
82
  It.click(
@@ -86,12 +86,12 @@ const ve = (t) => {
86
86
  ...e
87
87
  ));
88
88
  }, Gt = zt("Appearance"), Pn = (t) => {
89
- const e = vt(), n = e != null && e.matchMedia != null && e.matchMedia("(prefers-color-scheme: dark)").matches, o = W(n ? "dark" : "light"), r = (s) => {
90
- o.set(s.matches ? "dark" : "light");
91
- }, i = e != null && e.matchMedia != null ? e.matchMedia("(prefers-color-scheme: dark)") : void 0;
92
- return i == null || i.addEventListener("change", r), X(
93
- pe(Gt, o, t),
94
- S(() => i == null ? void 0 : i.removeEventListener("change", r))
89
+ const e = vt(), n = e != null && e.matchMedia != null ? e.matchMedia("(prefers-color-scheme: dark)") : void 0, o = (n == null ? void 0 : n.matches) ?? !1, r = W(o ? "dark" : "light"), i = (s) => {
90
+ r.set(s.matches ? "dark" : "light");
91
+ };
92
+ return n == null || n.addEventListener("change", i), X(
93
+ pe(Gt, r, t),
94
+ k(() => n == null ? void 0 : n.removeEventListener("change", i))
95
95
  );
96
96
  }, Dn = (t) => Bt(Gt, t), Qt = (t, e) => {
97
97
  if (typeof e == "function")
@@ -103,15 +103,15 @@ const ve = (t) => {
103
103
  Loading: (s) => r(s.map((c) => c.previousValue)),
104
104
  NotAsked: i
105
105
  });
106
- }, Wn = (t = 10) => G((e) => S(Xt(() => e == null ? void 0 : e.focus(), t))), Fn = (t = 10) => G((e) => {
106
+ }, Wn = (t = 10) => G((e) => k(Xt(() => e == null ? void 0 : e.focus(), t))), Fn = (t = 10) => G((e) => {
107
107
  const n = Xt(() => e.select(), t);
108
- return S(n);
108
+ return k(n);
109
109
  }), Mn = G((t) => {
110
110
  const e = t.style.getPropertyValue(":empty");
111
- return t.style.setProperty(":empty", "display:none"), S((n) => {
111
+ return t.style.setProperty(":empty", "display:none"), k((n) => {
112
112
  n && t.style.setProperty(":empty", e);
113
113
  });
114
- }), Nn = (t) => qt("head > title", jt.innerText(t)), Se = {
114
+ }), Nn = (t) => qt("head > title", jt.innerText(t)), ke = {
115
115
  partial: {
116
116
  root: null,
117
117
  rootMargin: "0px",
@@ -135,14 +135,14 @@ function Te(t) {
135
135
  const o = et[t].get(n.target);
136
136
  o == null || o.set(n.isIntersecting);
137
137
  });
138
- }, Se[t])), Y[t];
138
+ }, ke[t])), Y[t];
139
139
  }
140
140
  const Ce = (t, e) => {
141
141
  const n = W(!1);
142
142
  return X(
143
143
  G((o) => {
144
144
  const r = typeof IntersectionObserver < "u" ? Te(t) : null;
145
- return et[t].set(o, n), r == null || r.observe(o), S(() => {
145
+ return et[t].set(o, n), r == null || r.observe(o), k(() => {
146
146
  var i;
147
147
  n.dispose(), r == null || r.unobserve(o), et[t].delete(o), et[t].size === 0 && ((i = Y[t]) == null || i.disconnect(), Y[t] = null);
148
148
  });
@@ -445,23 +445,23 @@ const ze = function(t) {
445
445
  overflows: Z
446
446
  }], !Z.every((F) => F <= 0)) {
447
447
  var Ot, Lt;
448
- const F = (((Ot = i.flip) == null ? void 0 : Ot.index) || 0) + 1, St = ue[F];
449
- if (St)
448
+ const F = (((Ot = i.flip) == null ? void 0 : Ot.index) || 0) + 1, kt = ue[F];
449
+ if (kt)
450
450
  return {
451
451
  data: {
452
452
  index: F,
453
453
  overflows: I
454
454
  },
455
455
  reset: {
456
- placement: St
456
+ placement: kt
457
457
  }
458
458
  };
459
459
  let j = (Lt = I.filter((H) => H.overflows[0] <= 0).sort((H, T) => H.overflows[1] - T.overflows[1])[0]) == null ? void 0 : Lt.placement;
460
460
  if (!j)
461
461
  switch (d) {
462
462
  case "bestFit": {
463
- var kt;
464
- const H = (kt = I.filter((T) => {
463
+ var St;
464
+ const H = (St = I.filter((T) => {
465
465
  if ($) {
466
466
  const C = B(T.placement);
467
467
  return C === w || // Create a bias to the `y` side axis due to horizontal
@@ -469,7 +469,7 @@ const ze = function(t) {
469
469
  C === "y";
470
470
  }
471
471
  return !0;
472
- }).map((T) => [T.placement, T.overflows.filter((C) => C > 0).reduce((C, fe) => C + fe, 0)]).sort((T, C) => T[1] - C[1])[0]) == null ? void 0 : kt[0];
472
+ }).map((T) => [T.placement, T.overflows.filter((C) => C > 0).reduce((C, fe) => C + fe, 0)]).sort((T, C) => T[1] - C[1])[0]) == null ? void 0 : St[0];
473
473
  H && (j = H);
474
474
  break;
475
475
  }
@@ -604,7 +604,7 @@ function A(t) {
604
604
  var e;
605
605
  return (t == null || (e = t.ownerDocument) == null ? void 0 : e.defaultView) || window;
606
606
  }
607
- function k(t) {
607
+ function S(t) {
608
608
  var e;
609
609
  return (e = (oe(t) ? t.ownerDocument : t.document) || window.document) == null ? void 0 : e.documentElement;
610
610
  }
@@ -682,7 +682,7 @@ function D(t) {
682
682
  t.assignedSlot || // DOM Element detected.
683
683
  t.parentNode || // ShadowRoot detected.
684
684
  Wt(t) && t.host || // Fallback.
685
- k(t)
685
+ S(t)
686
686
  );
687
687
  return Wt(e) ? e.host : e;
688
688
  }
@@ -766,7 +766,7 @@ function V(t, e, n, o) {
766
766
  }
767
767
  function Et(t, e) {
768
768
  const n = dt(t).scrollLeft;
769
- return e ? e.left + n : V(k(t)).left + n;
769
+ return e ? e.left + n : V(S(t)).left + n;
770
770
  }
771
771
  function ce(t, e, n) {
772
772
  n === void 0 && (n = !1);
@@ -786,7 +786,7 @@ function Ke(t) {
786
786
  offsetParent: o,
787
787
  strategy: r
788
788
  } = t;
789
- const i = r === "fixed", s = k(o), c = e ? ft(e.floating) : !1;
789
+ const i = r === "fixed", s = S(o), c = e ? ft(e.floating) : !1;
790
790
  if (o === s || c && i)
791
791
  return n;
792
792
  let l = {
@@ -810,7 +810,7 @@ function Xe(t) {
810
810
  return Array.from(t.getClientRects());
811
811
  }
812
812
  function Je(t) {
813
- const e = k(t), n = dt(t), o = t.ownerDocument.body, r = M(e.scrollWidth, e.clientWidth, o.scrollWidth, o.clientWidth), i = M(e.scrollHeight, e.clientHeight, o.scrollHeight, o.clientHeight);
813
+ const e = S(t), n = dt(t), o = t.ownerDocument.body, r = M(e.scrollWidth, e.clientWidth, o.scrollWidth, o.clientWidth), i = M(e.scrollHeight, e.clientHeight, o.scrollHeight, o.clientHeight);
814
814
  let s = -n.scrollLeft + Et(t);
815
815
  const c = -n.scrollTop;
816
816
  return E(o).direction === "rtl" && (s += M(e.clientWidth, o.clientWidth) - r), {
@@ -821,7 +821,7 @@ function Je(t) {
821
821
  };
822
822
  }
823
823
  function Ge(t, e) {
824
- const n = A(t), o = k(t), r = n.visualViewport;
824
+ const n = A(t), o = S(t), r = n.visualViewport;
825
825
  let i = o.clientWidth, s = o.clientHeight, c = 0, l = 0;
826
826
  if (r) {
827
827
  i = r.width, s = r.height;
@@ -849,7 +849,7 @@ function Ft(t, e, n) {
849
849
  if (e === "viewport")
850
850
  o = Ge(t, n);
851
851
  else if (e === "document")
852
- o = Je(k(t));
852
+ o = Je(S(t));
853
853
  else if (R(e))
854
854
  o = Qe(e, n);
855
855
  else {
@@ -909,7 +909,7 @@ function en(t) {
909
909
  };
910
910
  }
911
911
  function nn(t, e, n) {
912
- const o = L(e), r = k(e), i = n === "fixed", s = V(t, !0, i, e);
912
+ const o = L(e), r = S(e), i = n === "fixed", s = V(t, !0, i, e);
913
913
  let c = {
914
914
  scrollLeft: 0,
915
915
  scrollTop: 0
@@ -937,7 +937,7 @@ function Mt(t, e) {
937
937
  if (e)
938
938
  return e(t);
939
939
  let n = t.offsetParent;
940
- return k(t) === n && (n = n.ownerDocument.body), n;
940
+ return S(t) === n && (n = n.ownerDocument.body), n;
941
941
  }
942
942
  function ae(t, e) {
943
943
  const n = A(t);
@@ -974,7 +974,7 @@ function rn(t) {
974
974
  }
975
975
  const sn = {
976
976
  convertOffsetParentRelativeRectToViewportRelativeRect: Ke,
977
- getDocumentElement: k,
977
+ getDocumentElement: S,
978
978
  getClippingRect: tn,
979
979
  getOffsetParent: ae,
980
980
  getElementRects: on,
@@ -986,7 +986,7 @@ const sn = {
986
986
  };
987
987
  function cn(t, e) {
988
988
  let n = null, o;
989
- const r = k(t);
989
+ const r = S(t);
990
990
  function i() {
991
991
  var c;
992
992
  clearTimeout(o), (c = n) == null || c.disconnect(), n = null;
@@ -1092,7 +1092,7 @@ const an = Ue, un = _e, Nt = ze, fn = (t, e, n) => {
1092
1092
  _t.div(
1093
1093
  G((l) => {
1094
1094
  const a = l;
1095
- return a.style.position = "absolute", S(
1095
+ return a.style.position = "absolute", k(
1096
1096
  ln(c, a, async () => {
1097
1097
  const { x: f, y: u } = await fn(c, a, {
1098
1098
  placement: n,
@@ -1143,7 +1143,7 @@ const an = Ue, un = _e, Nt = ze, fn = (t, e, n) => {
1143
1143
  }, hn = (t, e) => {
1144
1144
  const { status: n, dispose: o, reload: r } = t, { loading: i, failure: s, success: c } = e;
1145
1145
  return X(
1146
- S(o),
1146
+ k(o),
1147
1147
  Qt(n, {
1148
1148
  loading: i != null ? (l) => i(l, r) : void 0,
1149
1149
  failure: s != null ? (l) => s(l, r) : void 0,
@@ -1161,7 +1161,7 @@ const an = Ue, un = _e, Nt = ze, fn = (t, e, n) => {
1161
1161
  if (typeof e == "function")
1162
1162
  return mn(t, { success: e });
1163
1163
  const n = e.failure ?? ((r) => X(
1164
- S(r.on(console.error)),
1164
+ k(r.on(console.error)),
1165
1165
  r.map((i) => `Error: ${i}`)
1166
1166
  )), o = e.success;
1167
1167
  return Yt(J.toSignal(t), {
@@ -1179,7 +1179,7 @@ const an = Ue, un = _e, Nt = ze, fn = (t, e, n) => {
1179
1179
  o.set({ width: n.clientWidth, height: n.clientHeight });
1180
1180
  };
1181
1181
  let s;
1182
- return typeof ResizeObserver == "function" && (s = new ResizeObserver(i), s.observe(n)), S((c) => {
1182
+ return typeof ResizeObserver == "function" && (s = new ResizeObserver(i), s.observe(n)), k((c) => {
1183
1183
  s == null || s.disconnect(), r(c);
1184
1184
  });
1185
1185
  }), Un = (t) => (e) => {
@@ -1331,7 +1331,7 @@ class En extends we {
1331
1331
  }
1332
1332
  const jn = (t = 0) => new En(t, (e, n) => e === n);
1333
1333
  export {
1334
- ke as Anchor,
1334
+ Se as Anchor,
1335
1335
  Qt as AsyncResultView,
1336
1336
  Wn as AutoFocus,
1337
1337
  Fn as AutoSelect,
@@ -1342,12 +1342,12 @@ export {
1342
1342
  Ee as LocationProviderMarker,
1343
1343
  $n as PopOver,
1344
1344
  Pn as ProvideAppearance,
1345
- Sn as ProvideLocation,
1346
1345
  Hn as Resource,
1347
1346
  hn as ResourceDisplay,
1348
1347
  mn as ResultView,
1349
1348
  _n as Router,
1350
1349
  zn as SelectOnFocus,
1350
+ kn as SetLocation,
1351
1351
  En as Ticker,
1352
1352
  Dn as UseAppearance,
1353
1353
  Jt as UseLocation,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tempots/ui",
3
- "version": "1.2.1-next.5",
3
+ "version": "1.2.1-next.7",
4
4
  "type": "module",
5
5
  "main": "./index.cjs",
6
6
  "module": "./index.js",
@@ -22,7 +22,7 @@ export declare const appearanceMarker: import('@tempots/dom').ProviderMark<Signa
22
22
  * @returns The child component with the appearance context.
23
23
  * @public
24
24
  */
25
- export declare const ProvideAppearance: (child: TNode) => Renderable;
25
+ export declare const ProvideAppearance: (child: (appearance: Signal<AppearanceType>) => TNode) => Renderable;
26
26
  /**
27
27
  * Makes the AppearanceType available to the child component by consuming the signal provided by the parent.
28
28
  * The result of the function is returned as the final output.
@@ -20,4 +20,4 @@ export declare const _makeLocationProp: () => Prop<LocationData>;
20
20
  * @returns The wrapped component with the location context.
21
21
  * @public
22
22
  */
23
- export declare const ProvideBrowserLocation: (child: TNode) => import('@tempots/dom').Renderable;
23
+ export declare const ProvideBrowserLocation: (child: (location: Prop<LocationData>) => TNode) => import('@tempots/dom').Renderable;
@@ -1,4 +1,5 @@
1
1
  import { TNode, Prop } from '@tempots/dom';
2
+ import { LocationData } from './location-data';
2
3
  export declare const isAbsoluteURL: (url: string) => boolean;
3
4
  /**
4
5
  * Provides the location context to the child component.
@@ -6,4 +7,4 @@ export declare const isAbsoluteURL: (url: string) => boolean;
6
7
  * @returns The wrapped component with the location context.
7
8
  * @public
8
9
  */
9
- export declare const ProvideHeadlessLocation: (url: Prop<string>, child: TNode) => import('@tempots/dom').Renderable;
10
+ export declare const ProvideHeadlessLocation: (url: Prop<string>, child: (location: Prop<LocationData>) => TNode) => import('@tempots/dom').Renderable;
@@ -12,7 +12,7 @@ export declare const LocationProviderMarker: import('@tempots/dom').ProviderMark
12
12
  * @returns The wrapped component with the location context.
13
13
  * @public
14
14
  */
15
- export declare const ProvideLocation: (child: TNode) => import('@tempots/dom').Renderable;
15
+ export declare const SetLocation: (child: (location: Prop<LocationData>) => TNode) => import('@tempots/dom').Renderable;
16
16
  /**
17
17
  * A hook that provides the current location data to the given function.
18
18
  * @param fn - The function that receives the location data.
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("@tempots/dom"),e=require("./index.cjs"),s=t=>t.startsWith("http://")||t.startsWith("https://")||t.startsWith("//"),u=(t,a)=>{const n=t.iso(o=>e.locationFromURL(o),o=>{if(s(o.pathname))return e.urlFromLocation(o);const i=new URL(o.pathname,t.value),c=i.origin+i.pathname;return e.urlFromLocation({...o,pathname:c})});return r.Fragment(r.OnDispose(n.dispose),r.WithProvider(e.LocationProviderMarker,n,a))};exports.ProvideHeadlessLocation=u;exports.isAbsoluteURL=s;