weifuwu 0.84.0 → 0.85.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.
@@ -1,7 +1,7 @@
1
- function W(e){if(e==null||typeof e=="boolean")return"null";if(typeof e=="string"||typeof e=="number")return"text";let t=e.type;return typeof t=="function"?"comp":typeof t=="symbol"?t===j?"app":e.props?.portalKey!=null?"portal":"frag":"native"}function Ne(e){return e==null||typeof e=="boolean"?[]:Array.isArray(e)?e.flatMap(t=>Ne(t)):[e]}function T(e){if(e.children!=null)return Ne(e.children);let t=e.props?.children??[];return Ne(t)}var Z=Symbol("v3-fragment"),X=Symbol("v3-portal"),j=Symbol("v3-app");function h(e,t,n,o){let r={entity:e,action:t,ts:Date.now()};return n!=null&&(r.target=n),o!=null&&(r.payload=o),r}function Bt(e=2e4,t){let n=[],o=0,r=0,s=0,a=!1,l=t?.watermark??.8,u=new Set,i=d=>n[(o+d)%e],c=(d,f)=>{n[(o+d)%e]=f},p=(d,f)=>{r<e?(c(r,d),r++):(c(0,d),o=(o+1)%e,f||(s++,(s%64===1||s===1)&&p(h("stream","overflow",void 0,{capacity:e,count:s,dropped:`${d.entity}:${d.action}`,droppedTarget:d.target??null}),!0)))};return{emit(d){p(d,!1),l>0&&!a&&r>=e*l&&(a=!0,p(h("stream","watermark",void 0,{usage:r,capacity:e,ratio:l}),!0));for(let f of u)try{f(d)}catch{}},subscribe(d,f){let m=typeof d=="function"?null:d,w=typeof d=="function"?d:f,b=y=>{if(m==null){w(y);return}(Array.isArray(m)?m:[m]).includes(y.entity)&&w(y)};return u.add(b),()=>{u.delete(b)}},size(){return r},capacity(){return e},overflowCount(){return s},events(){let d=new Array(r);for(let f=0;f<r;f++)d[f]=i(f);return d},inverse(d){switch(d.entity+":"+d.action){case"node:insert":return h("node","remove",d.target,{parent:d.payload?.parent});case"node:remove":return null;case"prop:update":return h("prop","update",d.target,{key:d.payload?.key,value:d.payload?.prev,prev:d.payload?.value});case"text:update":return h("text","update",d.target,{value:d.payload?.prev,prev:d.payload?.value});case"node:move":return null;default:return null}},reset(){o=0,r=0,s=0,a=!1}}}var v=Bt(),Gt=0;function F(){return`n${++Gt}`}var ee=new Map,Ge=new Set,Ke=new Map,qe=new Map,ke=new Map,xe=new Map,Xe={focus:"focusin",blur:"focusout"},Xt=new Set(["error","load","loadstart","loadend","abort","unload","resize","message"]),Yt=new Set(["input","change","compositionstart","compositionend"]);function Ye(e,t,n,o=!1){let r=ee.get(t);r||(r=new Map,ee.set(t,r)),r.set(e,{handler:n,once:o})}function zt(e,t){ee.get(t)?.delete(e)&&v.emit(h("event","unbind",e,{event:t}))}function Ce(e){for(let[t,n]of ee)n.delete(e)&&v.emit(h("event","unbind",e,{event:t}))}function re(e,t,n,o=!1){let r=e.getAttribute("data-v3-id");if(!r)return()=>{};Ye(r,t,n,o);let s=ze(e);return s&&Qe(s,t),()=>zt(r,t)}function Ve(e){Ge.add(e),Qt()}var $e=!1,Te=0,oe=[];function Be(){let e=document.getSelection?.(),t=e?.toString?.()??"",n=e?.anchorNode;return{target:n&&n.nodeType===1?n.getAttribute?.("data-v3-id")??null:n?.parentElement?.getAttribute?.("data-v3-id")??null,text:t}}function Qt(){if($e||($e=!0,typeof document>"u"))return;let e=()=>{Te||(Te=requestAnimationFrame(()=>{Te=0;try{let{target:o,text:r}=Be();if(!r)return;v.emit(h("text","select",void 0,{target:o,length:r.length,sample:r.slice(0,40)}))}catch{}}))};oe.push(x(document,"selectionchange",e));let t=o=>{let{target:r,text:s}=Be(),a=s;return o.type==="paste"&&(a=o.clipboardData?.getData?.("text")??""),{target:r,sample:a.slice(0,40)}},n=o=>{if(!(o.type!=="copy"&&o.type!=="cut"&&o.type!=="paste"))try{let{target:r,sample:s}=t(o);if(!s)return;v.emit(h("text",o.type,void 0,{target:r,length:s.length,sample:s}))}catch{}};oe.push(x(document,"copy",n)),oe.push(x(document,"cut",n)),oe.push(x(document,"paste",n))}function ze(e){let t=e;for(;t;){if(t.nodeType===1&&Ge.has(t))return t;t=t.parentNode}return null}function Qe(e,t){let n=Ke.get(e)??new Set;if(n.has(t))return;n.add(t),Ke.set(e,n);let o=Xe[t]??t,r=u=>Jt(u),s=Xt.has(o);e.addEventListener(o,r,s?{capture:!0}:void 0);let a=qe.get(e)??new Map;a.set(o,r),qe.set(e,a);let l=e.hasAttribute("data-wf-portal-key")?`portal:${e.getAttribute("data-wf-portal-key")}`:"root";v.emit(h("event","bind",l,{event:o,delegated:!0}))}function x(e,t,n,o){let r=Xe[t]??t,s=ke.get(r);s||(s=new Set,ke.set(r,s)),s.add(n);let a=xe.get(e)??new Map;if(!a.has(r)){let l=i=>{for(let c of ke.get(r)??[])try{c(i)}catch{}},u=o?.capture?{capture:!0,passive:o?.passive??!1}:void 0;e.addEventListener(r,l,u),a.set(r,l),xe.set(e,a),v.emit(h("event","bind",e===window?"window":"document",{event:r,delegated:!0,capture:o?.capture??!1}))}return()=>{if(s.delete(n),s.size===0){let l=a.get(r);l&&e.removeEventListener(r,l,o?.capture?{capture:!0}:void 0),a.delete(r),a.size===0&&xe.delete(e),v.emit(h("event","unbind",e===window?"window":"document",{event:r}))}}}function Pe(e,t,n,o){if(Ye(e,t,n),o){let r=ze(o);r&&Qe(r,t)}}function Jt(e){let t=e.target;t&&t.nodeType===3&&(t=t.parentElement);let n=ee.get(e.type);if(n)for(;t;){if(!t.hasAttribute?.("data-v3-id")){let r=t.closest?.("[data-v3-id]");if(r&&r!==t){t=r;continue}}let o=t.getAttribute?.("data-v3-id");if(o){let r=n.get(o);if(r){try{Object.defineProperty(e,"currentTarget",{value:t,configurable:!0})}catch{}try{r.handler(e)}catch{}if(Yt.has(e.type)){let s=t?.value??null;v.emit(h("text","input",o,{event:e.type,value:typeof s=="string"?s.slice(0,100):null}))}if(r.once&&(n.delete(o),v.emit(h("event","unbind",o,{event:e.type}))),e.cancelBubble)break}}t=t.parentElement}}var Je=new Map;function Se(e){e._id&&Je.set(e._id,e)}function Ze(e){Je.delete(e)}function Y(e){let t=document.getElementById("__wf_portal");t||(t=document.createElement("div"),t.id="__wf_portal",document.body.appendChild(t));let n=t.querySelector(`[data-wf-portal-key="${e}"]`);return n||(n=document.createElement("div"),n.setAttribute("data-wf-portal-key",e),t.appendChild(n)),n}var A=class{byId=new Map;idByNode=new WeakMap;removed=new Map;static PORTAL=t=>`portal:${t}`;resolveParent(t){return t.startsWith("portal:")?Y(t.slice(7)):this.get(t)}get(t){return t.startsWith("portal:")?Y(t.slice(7)):this.byId.get(t)??null}register(t,n){this.byId.set(t,n),this.idByNode.set(n,t)}idOf(t){return t?t.nodeType===1?t.getAttribute("data-v3-id")??this.idByNode.get(t)??"el":this.idByNode.get(t)??"node":"null"}unregister(t,n){this.byId.delete(t),this.removed.set(t,n)}takeRemoved(t){let n=this.removed.get(t);return n&&this.removed.delete(t),n??null}static ROOT="root"};function O(){return{activeElement:()=>typeof document<"u"?document.activeElement:null,byId:e=>typeof document<"u"?document.getElementById(e):null,query:e=>typeof document<"u"?document.querySelector(e):null,queryAll:e=>typeof document<"u"?document.querySelectorAll(e):null,createElement:e=>typeof document<"u"?document.createElement(e):null,createElementNS:(e,t)=>typeof document<"u"?document.createElementNS(e,t):null,createDocumentFragment:()=>typeof document<"u"?document.createDocumentFragment():null,createComment:e=>typeof document<"u"?document.createComment(e):null,createTextNode:e=>typeof document<"u"?document.createTextNode(e):null,addEventListener:(e,t,n)=>{typeof window<"u"&&window.addEventListener(e,t,n)},removeEventListener:(e,t,n)=>{typeof window<"u"&&window.removeEventListener(e,t,n)},scrollTo:e=>{typeof window<"u"&&window.scrollTo(0,e)},matchMedia:e=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia(e):null,visualViewport:()=>(typeof window<"u"?window:null)?.visualViewport??null,scrollingElement:()=>typeof document<"u"?document.scrollingElement:null,bodyElement:()=>typeof document<"u"?document.body:null,bodyAppend:e=>{typeof document<"u"&&document.body.appendChild(e)},bodyRemove:e=>{typeof document<"u"&&e.parentNode&&document.body.removeChild(e)},clearBody:()=>{typeof document<"u"&&(document.body.innerHTML="")},event:(e,t)=>{let n=typeof window<"u"?window:null,o=t&&(t.key||t.code)?"KeyboardEvent":t&&(t.clientX!==void 0||t.clientY!==void 0||t.pointerId!==void 0)?"PointerEvent":"Event";try{return new n[o](e,t)}catch{return new n.Event(e,t)}},dispatchEvent:(e,t)=>typeof e<"u"?e.dispatchEvent(t):!1,reload:()=>{typeof window<"u"&&window.location.reload()},navigate:e=>{typeof window>"u"||(window.history.pushState(null,"",e),window.dispatchEvent(new PopStateEvent("popstate",{state:null})))},downloadFile:(e,t,n="text/plain")=>{try{if(typeof document>"u"||typeof URL>"u"||!URL.createObjectURL)return!1;let o=new Blob([t],{type:n}),r=URL.createObjectURL(o),s=document.createElement("a");return s.href=r,s.download=e,document.body.appendChild(s),s.click(),document.body.removeChild(s),setTimeout(()=>URL.revokeObjectURL(r),1e3),!0}catch{return!1}},copyText:async e=>{let t=typeof window<"u"?window:null;if(t?.navigator?.clipboard?.writeText)try{return await t.navigator.clipboard.writeText(e),!0}catch{}try{if(typeof document>"u")return!1;let n=document.createElement("textarea");n.value=e,n.style.position="fixed",n.style.opacity="0",document.body.appendChild(n),n.select();let o=document.execCommand("copy");return document.body.removeChild(n),o}catch{return!1}},execCommand:(e,t)=>typeof document<"u"?document.execCommand(e,!1,t):!1,queryCommandState:e=>typeof document<"u"?document.queryCommandState(e):!1,queryCommandValue:e=>typeof document<"u"?document.queryCommandValue(e):"",selectionText:()=>typeof window<"u"?window.getSelection?.()?.toString()??null:null,getSelection:()=>typeof window<"u"?window.getSelection():null,viewportHeight:()=>typeof window<"u"?window.innerHeight:0,viewportWidth:()=>typeof window<"u"?window.innerWidth:0,pathname:()=>typeof window<"u"?window.location.pathname:"",createTreeWalker:(e,t)=>typeof document<"u"?document.createTreeWalker(e,t??NodeFilter.SHOW_ALL):null,scrollTop:()=>{let e=typeof document<"u"?document:null,t=typeof window<"u"?window:null;return e?.scrollingElement?.scrollTop??t?.scrollY??0},hash:()=>typeof window<"u"?window.location?.hash??"":"",setHash:e=>{typeof window<"u"&&(window.location.hash=e)},timeout:(e,t)=>typeof window<"u"?window.setTimeout(e,t):0,rootElement:()=>typeof document<"u"?document.documentElement:null,storageGet:e=>{try{return typeof window<"u"?window.localStorage?.getItem(e)??null:null}catch{return null}},storageSet:(e,t)=>{try{typeof window<"u"&&window.localStorage?.setItem(e,t)}catch{}}}}var Zt=new Map;function et(e){return Zt.get(e)??null}function tt(e,t){let n=e.selfId(),o;return n&&(o=t.subscribe(()=>e.render([n])),e.onUnmount(()=>o?.())),t}function Le(e,t){let n=e.selfId(),o=t.value!==void 0;if(o&&!t.onChange&&t.name&&(e.warned.has(t.name)||(e.warned.add(t.name),console.warn(`[weifuwu/${t.name}] \u53D7\u63A7\u6A21\u5F0F\uFF08value \u5DF2\u4F20\uFF09\u4F46\u672A\u63D0\u4F9B onChange\uFF0C\u4EA4\u4E92\u65E0\u6CD5\u751F\u6548\u3002
2
- \u975E\u53D7\u63A7\uFF1A\u53BB\u6389 value\uFF1B\u53D7\u63A7\uFF1A\u4F20\u5165 onChange={(v) => setValue(v)}`))),!o&&n&&!e.uncontrolledValues.has(n)){e.uncontrolledValues.set(n,t.value);let s=e.onUnmount(a=>{a===n&&(e.uncontrolledValues.delete(n),s())})}let r=s=>{if(o){t.onChange?.(s);return}n&&e.uncontrolledValues.set(n,s),n?e.render([n]):e.render()};return{value:o?t.value:n?e.uncontrolledValues.get(n):t.value,setValue:r,controlled:o}}function nt(e,t){let n=e.selfId(),o=Le(e,{value:t.value,onChange:t.onChange,name:t.name});if(n&&!e.inputStates.has(n)){e.inputStates.set(n,{keyword:"",selectedLabel:""});let a=e.onUnmount(l=>{l===n&&(e.inputStates.delete(n),a())})}let r=n?e.inputStates.get(n):{keyword:"",selectedLabel:""},s=()=>{n?e.render([n]):e.render()};return{...o,get keyword(){return r.keyword},setKeyword(a){r.keyword=a,s()},get selectedLabel(){return r.selectedLabel},setSelectedLabel(a){r.selectedLabel=a,s()}}}function ot(e,t){let n=e.selfId(),o=!1;if(n){let u=e.onUnmount(i=>{i===n&&(o=!0,u())})}let r=()=>{o||(n?e.render([n]):e.render())},s={data:void 0,loading:!1,error:void 0},a=0,l=()=>{let u=++a;s.loading=!0,s.error=null,r(),Promise.resolve().then(()=>t()).then(i=>{a===u&&(s.data=i,s.loading=!1,r())}).catch(i=>{a===u&&(s.error=i,s.loading=!1,r())})};return l(),s.reload=l,s}function rt(e,t,n){return r=>{r?t(r):n?.()}}function se(e){return typeof window<"u"&&!!window.matchMedia?.("(hover: hover)").matches}function Me(e){return typeof window<"u"&&!!window.matchMedia?.("(prefers-reduced-motion: reduce)").matches}function st(e,t){let{onLongPress:n,duration:o=500}=t,r,s=0,a=0,l=null,u=()=>{clearTimeout(r),r=void 0},i=e.selfId();if(i){let c=e.onUnmount(p=>{p===i&&(u(),c())})}return{onPointerDown:c=>{s=c.clientX??0,a=c.clientY??0,l=c,u(),r=setTimeout(()=>{r=void 0,l&&n(l)},o)},onPointerUp:u,onPointerLeave:u,onPointerMove:c=>{let p=Math.abs((c.clientX??0)-s),d=Math.abs((c.clientY??0)-a);(p>10||d>10)&&u()},onContextMenu:c=>{c.preventDefault(),n(c)}}}function ie(e,t){let n=e.selfId(),o="closed",r,s=()=>{o="closed",n?e.render([n]):e.render()},a=null;return{get phase(){return o},ref:u=>{u?a||(r=()=>{o==="exit"&&s()},a=re(u,"animationend",r)):(a?.(),a=null,r=void 0)},sync:u=>(u?o="open":o==="open"&&(o="exit"),o)}}function it(e,t,n){let o=e.selfId(),r=Me(e),s=n?.duration??400,a=n?.ease==="linear"?d=>d:d=>1-Math.pow(1-d,3),l,u=t,i={value:r?t:0,reset:()=>{}},c=()=>{o?e.render([o]):e.render()},p=d=>{if(u=d,r){i.value=d,c();return}if(d===i.value)return;l&&cancelAnimationFrame(l);let f=i.value,m=performance.now(),w=b=>{let y=Math.min(1,(b-m)/s);i.value=Math.round(f+(d-f)*a(y)),y<1?(l=requestAnimationFrame(w),c()):(l=void 0,c())};l=requestAnimationFrame(w)};if(i.reset=d=>{d===u&&l||p(d)},o){let d=e.onUnmount(f=>{f===o&&(l&&(cancelAnimationFrame(l),l=void 0),d())})}return queueMicrotask(()=>p(t)),i}var lt=O();function at(e,t="bottom",n=6,o=!0){switch(t){case"bottom":return{top:e.bottom+n,left:o?e.left+e.width/2:e.left};case"top":return{top:e.top-n,left:o?e.left+e.width/2:e.left};case"left":return{top:o?e.top+e.height/2:e.top,left:e.left-n};case"right":return{top:o?e.top+e.height/2:e.top,left:e.right+n}}}function le(e,t,n=8){if(!t)return e;let o=t.getBoundingClientRect();if(o.width===0&&o.height===0)return e;let r=Number.parseFloat(t.style.top)||o.top,s=Number.parseFloat(t.style.left)||o.left,a=e.top-r,l=e.left-s,u={top:o.top+a,bottom:o.bottom+a,left:o.left+l,right:o.right+l},i=lt.viewportWidth(),c=lt.viewportHeight(),p=e.top,d=e.left;return u.bottom>c-n&&(p=Math.max(n,p-(u.bottom-(c-n)))),u.top<n&&(p=Math.max(n,p+(n-u.top))),u.right>i-n&&(d=Math.max(n,d-(u.right-(i-n)))),u.left<n&&(d=Math.max(n,d+(n-u.left))),{top:p,left:d,width:e.width}}function ae(e,t,...n){let o=t?{...t}:{};return n.length>0&&(o.children=n.length===1?n[0]:n),{type:e,props:o,key:t?.key??null}}function ue(e,t){return{type:X,props:{children:Array.isArray(e)?e:[e],portalKey:t??"default"},key:t??null}}function Ae(e,t){let n=e.selfId(),o={top:0,left:0,refresh:()=>{}};if(!n)return o;let r={pos:o,getEl:t.el,isOpen:t.isOpen,compute:t.compute,panel:t.panel,margin:t.margin??8};e.popupTrackers.set(n,r),e.ensurePopupListeners();let s=e.onUnmount(a=>{a===n&&(e.popupTrackers.delete(n),s())});return o.refresh=()=>{let a=r.getEl();if(!a)return;let l=a.getBoundingClientRect();if(l.width===0&&l.height===0)return;let u=r.compute(l);Object.assign(o,le(u,r.panel?.(),r.margin))},o}function ut(e,t){let n=e.selfId(),o=e.browser,r=se(e),s=()=>typeof t.trigger=="function"?t.trigger():t.trigger??"manual",a=t.open!==void 0,l=()=>!!t.disabled?.(),u=()=>a?typeof t.open=="function"?!!t.open():!!t.open:t.isOpen(),i=t.presence?ie(e,{name:t.name}):null,c,p=!1,d=g=>{if(!i)return g?"open":"closed";let N=i.sync(g);return g&&t.lockScroll&&!p&&(en(),p=!0),N},f=g=>{l()||(a?t.onOpenChange?.(g):i?g?d(!0):u()&&d(!1):t.setOpen(g))},m=()=>{let g=t.placement;return typeof g=="function"?g():g??"bottom"},w=null,b=!1,y=Ae(e,{el:t.el??(()=>null),isOpen:()=>u(),compute:g=>{if(t.position){let N=t.position();return{top:N.y,left:N.x,width:N.width}}return at(g,m(),t.gap??6,t.center!==!1)},panel:()=>w,margin:t.margin??8}),k=g=>{if(t.closeOnOutside===!1||t.mask||!u())return;let N=g.target;if(!(N instanceof Node))return;let M=t.el?.()??null;M&&M.contains(N)||w&&w.contains(N)||f(!1)},V=g=>{t.closeOnEscape!==!1&&(g.key!=="Escape"||!u()||f(!1))},I=x(o,"mousedown",k),Ht=x(o,"keydown",V);if(n){let g=e.onUnmount(N=>{N===n&&(I(),Ht(),g())})}let S={},We=g=>typeof g=="function"?g():g??0,je=()=>We(t.openDelay),he=()=>We(t.closeDelay),L,P,It=()=>{clearTimeout(L),clearTimeout(P),L=void 0,P=void 0},Ut=g=>{if(l())return;let N=g.currentTarget,M=g.relatedTarget;N.contains(M)||(clearTimeout(P),P=void 0,L=setTimeout(()=>{L=void 0,f(!0)},je()))},Dt=g=>{if(l())return;let N=g.currentTarget,M=g.relatedTarget;N.contains(M)||(clearTimeout(L),L=void 0,P=setTimeout(()=>{P=void 0,f(!1)},he()))},Wt=()=>{l()||(clearTimeout(P),P=void 0,L=setTimeout(()=>{L=void 0,f(!0)},je()))},jt=()=>{l()||(clearTimeout(L),L=void 0,P=setTimeout(()=>{P=void 0,f(!1)},he()))},J=()=>s()==="hover";if(S.onMouseOver=g=>{J()&&Ut(g)},S.onMouseOut=g=>{J()&&Dt(g)},S.onClick=()=>{J()?r||f(!u()):s()==="click"&&f(!0)},S.onFocus=()=>{J()?Wt():s()==="focus"&&(clearTimeout(P),P=void 0,f(!0))},S.onBlur=()=>{J()?jt():s()==="focus"&&(clearTimeout(L),L=void 0,P=setTimeout(()=>{P=void 0,f(!1)},he()))},s()==="longpress"){let g,N=0,M=0,U=()=>{clearTimeout(g),g=void 0};S.onPointerDown=C=>{l()||(N=C.clientX??0,M=C.clientY??0,U(),g=setTimeout(()=>{g=void 0,t.onTrigger?.({clientX:N,clientY:M}),f(!0)},t.longPressDuration??500))},S.onPointerUp=U,S.onPointerLeave=U,S.onPointerMove=C=>{let be=Math.abs((C.clientX??0)-N),Ee=Math.abs((C.clientY??0)-M);(be>10||Ee>10)&&U()},S.onContextMenu=C=>{C.preventDefault(),t.onTrigger?.({clientX:C.clientX??0,clientY:C.clientY??0}),f(!0)}}if(S.onKeyDown=g=>{g.key==="Escape"&&t.closeOnEscape!==!1&&f(!1)},n){let g=e.onUnmount(N=>{N===n&&(It(),g())})}let Ft=g=>{g?(w=g,re(g,"animationend",()=>y.refresh(),!0)):w=null},ve=null,we=null,Fe=g=>{Ft(g),we&&we(g),i?.ref(g),t.trapFocus&&(g?c=on(g):(c?.(),c=void 0)),t.lockScroll&&!g&&p&&(tn(),p=!1)};return{get open(){return u()},setOpen:f,get phase(){return i?i.phase:u()?"open":"closed"},sync:d,wrapProps:S,portal:(g,N="popover")=>{if(l())return null;if(!(i?i.phase!=="closed":u()))return b=!1,ve=null,null;let U=t.el?.()??null;(!b||U!==ve)&&(U?y.refresh():queueMicrotask(()=>{u()&&y.refresh()}),b=!0,ve=U);let C=g.props??{};we=C.ref??null;let be=t.positioning==="none"?C.class??"":["wf-popup",C.class].filter(Boolean).join(" "),Ee=t.positioning==="none"?{...C.style??{},position:"fixed"}:{...C.style??{},position:"fixed",top:`${y.top}px`,left:`${y.left}px`,...y.width!==void 0?{width:`${y.width}px`}:{},maxWidth:(()=>{let ne=typeof t.width=="function"?t.width():t.width;return ne!==void 0?`min(${ne}px, calc(100vw - 32px))`:"calc(100vw - 32px)"})()},G={...g,props:{...C,class:be,style:Ee,ref:Fe}};if(t.mask){let ne=typeof t.mask=="object"?t.mask:ae("div",{class:"wf-popup-mask","data-portal-mask":N,onClick:t.maskClosable===!1?void 0:()=>f(!1)}),Kt=t.maskCentered?ae("div",{class:"wf-cover",style:{"--wf-z":"var(--wf-z-popover)",pointerEvents:"none"}},{...G,props:{...G.props,style:{...C.style??{},pointerEvents:"auto"},ref:Fe}}):null,qt=t.maskCentered?void 0:{...G.props?.style??{},zIndex:"var(--wf-z-popover)"},$t=t.maskCentered?Kt:{...G,props:{...G.props,style:qt}};return ue([ne,$t],N)}return ue(G,N)},refresh:()=>y.refresh()}}function dt(e,t){let n=e.selfId();if(n&&!e.openStates.has(n)){e.openStates.set(n,!1);let l=e.onUnmount(u=>{u===n&&(e.openStates.delete(n),l())})}let o=t.open!==void 0;o&&!t.onOpenChange&&t.name&&!e.warned.has(t.name)&&(e.warned.add(t.name),console.warn(`[weifuwu/${t.name}] \u53D7\u63A7\u6A21\u5F0F\uFF08open \u5DF2\u4F20\uFF09\u4F46\u672A\u63D0\u4F9B onOpenChange\uFF0C\u4EA4\u4E92\u65E0\u6CD5\u751F\u6548\u3002
3
- \u975E\u53D7\u63A7\uFF1A\u53BB\u6389 open\uFF1B\u53D7\u63A7\uFF1A\u4F20\u5165 onOpenChange={(o) => setOpen(o)}`));let r=()=>o?!!t.open:n?e.openStates.get(n)??!1:!1,s=()=>{n?e.render([n]):e.render()},a=l=>{if(o){t.onOpenChange?.(l);return}n&&e.openStates.set(n,l),s()};return{get open(){return r()},setOpen:a,triggerProps:{onClick:()=>a(!0),onFocus:()=>{t.openOnFocus&&a(!0)}}}}var q=O(),K=0,ct="",ft="",pt="",mt="",de=0;function yt(){return typeof window<"u"&&typeof document<"u"}function en(){if(K++,v.emit(h("effect","lock",void 0,{depth:K})),K>1||!yt())return;de=q.scrollTop();let e=q.bodyElement();ct=e.style.overflow,ft=e.style.position,pt=e.style.top,mt=e.style.width,e.style.overflow="hidden",(/iPhone|iPad|iPod/.test(navigator.platform)||/Mac/.test(navigator.platform)&&"ontouchend"in document)&&(e.style.position="fixed",e.style.top=`-${de}px`,e.style.width="100%")}function tn(){if(K===0||(K--,v.emit(h("effect","unlock",void 0,{depth:K})),K>0)||!yt())return;let e=q.bodyElement();e.style.overflow=ct,e.style.position=ft,e.style.top=pt,e.style.width=mt,de>0&&q.scrollTo(de)}var nn='a[href], button:not([disabled]), input:not([disabled]), textarea:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])';function on(e){let t;return queueMicrotask(()=>{let n=e.querySelectorAll(nn);if(n.length===0)return;let o=n[0],r=n[n.length-1],s=u=>{u.key==="Tab"&&(u.shiftKey&&q.activeElement()===o?(u.preventDefault(),r.focus()):!u.shiftKey&&q.activeElement()===r&&(u.preventDefault(),o.focus()))},a=q.activeElement();v.emit(h("effect","focus",void 0,{mode:"trap-start"})),o.focus();let l=x(e,"keydown",s);t=()=>{l(),v.emit(h("effect","focus",void 0,{mode:"restore"})),a?.focus()}}),()=>t?.()}function gt(e,t,n){let o=e.selfId(),r=e.browser,s=`media:${o}:${t}`;if(!e.mediaRegistry.has(s)){let a=r.matchMedia(t);n(a.matches);let l=i=>n(i.matches);x(a,"change",l),e.mediaRegistry.set(s,{mql:a,handler:l});let u=e.onUnmount(i=>{if(i!==o)return;let c=e.mediaRegistry.get(s);if(c?.mql&&c.handler)try{c.mql.removeEventListener("change",c.handler)}catch{}e.mediaRegistry.delete(s),u()})}}function ht(e,t,n){let o=e.browser,r=typeof t=="function"?{mobile:"(max-width: 639px)",tablet:"(min-width: 640px) and (max-width: 1023px)",desktop:"(min-width: 1024px)"}:t,s=typeof t=="function"?t:n,a=e.selfId(),l=`bp:${a}`;function u(){for(let[i,c]of Object.entries(r))if(o.matchMedia(c).matches)return i;return Object.keys(r)[0]??""}if(!e.mediaRegistry.has(l)){s(u());let i=[];for(let p of Object.values(r)){let d=o.matchMedia(p),f=()=>s(u());x(d,"change",f),i.push({mql:d,handler:f})}e.mediaRegistry.set(l,{mqls:i});let c=e.onUnmount(p=>{if(p!==a)return;let d=e.mediaRegistry.get(l);if(d?.mqls)for(let f of d.mqls)try{f.mql.removeEventListener("change",f.handler)}catch{}e.mediaRegistry.delete(l),c()})}}function vt(e){let t=e.selfId(),n=e.browser,o={height:n.viewportHeight(),offsetTop:0,keyboardOpen:!1},r=()=>{t?e.render([t]):e.render()},s=()=>{let i=n.visualViewport();o.height=i?.height??n.viewportHeight(),o.offsetTop=i?.offsetTop??0,o.keyboardOpen=o.height<n.viewportHeight()*.9,r()},a=n.visualViewport(),l=null,u=null;if(a?.addEventListener?(l=x(a,"resize",s),x(a,"scroll",s)):u=x(window,"resize",s),t){let i=e.onUnmount(c=>{c===t&&(l?.(),u?.(),i())})}return o}function wt(e,t){let n=e.selfId(),o={isIn:!1,ready:!1,observe:u,refresh:i,disconnect:c},r=null,s=null,a=()=>{n?e.render([n]):e.render()};function l(){if(s?.disconnect(),s=null,!r)return;let p=typeof t.rootMargin=="function"?t.rootMargin():t.rootMargin,d=typeof t.threshold=="function"?t.threshold():t.threshold;s=new IntersectionObserver(f=>{let m=f[f.length-1];if(!m)return;let w=m.isIntersecting,b=w!==o.isIn,y=!o.ready;o.isIn=w,o.ready=!0,t.onChange?.(m,w),(b||y)&&a()},{root:t.root?t.root():null,rootMargin:p??"0px",threshold:d??0}),s.observe(r)}function u(p){r=p,p?l():(s?.disconnect(),s=null,o.isIn=!1)}function i(){l()}function c(){s?.disconnect(),s=null}if(n){let p=e.onUnmount(d=>{d===n&&(c(),p())})}return o}function bt(e,t){let n=e.selfId(),o=e.browser,r={y:0,refresh(){let l=s.getScroller();r.y=l instanceof Window?o.scrollingElement()?.scrollTop??o.scrollTop():l.scrollTop??0}},s={handle:r,getScroller:t.getScroller??(()=>window)};if(!n)return r.refresh(),r;e.scrollTrackers.set(n,s),e.ensurePopupListeners(),r.refresh();let a=e.onUnmount(l=>{l===n&&(e.scrollTrackers.delete(n),a())});return r}function Et(e,t){let n=e.selfId();if(typeof window>"u")return()=>{};let o=x(window,"keydown",t);if(n){let r=e.onUnmount(s=>{s===n&&(o(),r())})}return o}function Nt(e,t){let n=e.browser,o=0,r=0,s=!1,a=f=>{s&&t.onMove(f,{x:f.clientX-o,y:f.clientY-r})},l=null,u=null,i=()=>{l?.(),l=null,u?.(),u=null},c=f=>{s&&(s=!1,i(),t.onEnd?.(f))},p=f=>{s||(f.preventDefault(),s=!0,o=f.clientX,r=f.clientY,l=x(window,"pointermove",a),u=x(window,"pointerup",c),t.onStart?.(f))},d=e.selfId();if(d){let f=e.onUnmount(m=>{m===d&&(s&&(i(),s=!1),f())})}return{onPointerDown:p}}function kt(e,t){let n={};t.onDrop&&(n.onDrop=r=>{r.preventDefault(),t.onDrop(r)}),t.onDragOver&&(n.onDragOver=r=>{r.preventDefault(),t.onDragOver(r)}),t.onDragLeave&&(n.onDragLeave=r=>t.onDragLeave(r));let o={draggable:!0};if(t.onDragStart){let r=t.onDragStart;o.onDragStart=s=>{typeof document<"u"&&document.body.classList.add("wf-dragging"),r(s)}}if(t.onDragEnd){let r=t.onDragEnd;o.onDragEnd=s=>{typeof document<"u"&&document.body.classList.remove("wf-dragging"),r(s)}}return{dropProps:n,dragProps:o}}function rn(e){return e.map(t=>{let n={role:t.role,content:t.content};return t.reasoning&&(n.reasoning_content=t.reasoning),n})}function Oe(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`msg-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function xt(e,t,n,o){n.initialMessages?e.messages=structuredClone(n.initialMessages):e.messages===void 0&&(e.messages=[]),e.input===void 0&&(e.input=""),e.streaming===void 0&&(e.streaming=!1),e.error===void 0&&(e.error=null),e.usage===void 0&&(e.usage=null),e.step===void 0&&(e.step=null);let r=null;function s(){if(!e.streaming)return;let m=e.messages[e.messages.length-1];return m&&m.role==="assistant"&&m.status==="streaming"?m:void 0}function a(m,w,b){let y=s();switch(m){case"wf:token":y&&(y.content+=w.text);break;case"wf:tool_call":{y&&(y.toolCalls||(y.toolCalls=[]),y.toolCalls.push({call:w,status:"running"}));break}case"wf:tool_progress":{let k=w,V=y?.toolCalls?.find(I=>I.call.id===k.toolCallId);V&&(V.progress=k);break}case"wf:tool_result":{let k=w,V=y?.toolCalls?.find(I=>I.call.id===k.id);V&&(V.result=k,V.status=k.ok?"ok":"error");break}case"wf:approval_request":y&&(y.approval=w);break;case"wf:usage":y&&(y.usage=w);break;case"wf:step":e.step=w;break;case"wf:done":if(y){y.status="done",y.approval=void 0;let k=w;k.reasoning&&(y.reasoning=k.reasoning)}e.streaming=!1,e.step=null;break;case"wf:error":y&&(y.status="error",y.error=w,y.approval=void 0),e.error=w,e.streaming=!1,e.step=null;break;default:b?.(m,w);break}o?.()}function l(){let m=n.body?n.body(e.messages):{messages:rn(e.messages)};r=t(n.url,m,{onToken:b=>a("wf:token",{text:b}),onToolCall:b=>a("wf:tool_call",b),onToolProgress:b=>a("wf:tool_progress",b),onToolResult:b=>a("wf:tool_result",b),onApproval:b=>a("wf:approval_request",b),onUsage:b=>a("wf:usage",b),onStep:b=>a("wf:step",b),onDone:b=>a("wf:done",b),onError:b=>a("wf:error",b),onEvent:(b,y)=>a(b,y,n.onEvent)},{signal:n.signal,headers:n.headers}),e.streaming=!0;let w=s();w&&r?.traceId&&(w.id=r.traceId)}function u(){if(e.streaming)return;let m=String(e.input??"").trim();m&&(e.input="",e.error=null,e.usage=null,e.step=null,e.messages.push({id:Oe(),role:"user",content:m,status:"done"},{id:Oe(),role:"assistant",content:"",status:"streaming",toolCalls:[]}),l(),o?.())}function i(){r?.abort(),e.streaming=!1,e.step=null;let m=e.messages[e.messages.length-1];m&&m.role==="assistant"&&m.status==="streaming"&&(!m.content&&(!m.toolCalls||m.toolCalls.length===0)?e.messages.pop():m.status="done"),o?.()}function c(){if(e.streaming)return;let m=-1;for(let w=e.messages.length-1;w>=0;w--)if(e.messages[w].role==="user"){m=w;break}m!==-1&&(e.messages.splice(m+1),e.error=null,e.usage=null,e.step=null,e.messages.push({id:Oe(),role:"assistant",content:"",status:"streaming",toolCalls:[]}),l(),o?.())}function p(){r?.abort(),e.messages=[],e.input="",e.streaming=!1,e.error=null,e.usage=null,e.step=null,o?.()}async function d(m,w,b){let y=e.messages[e.messages.length-1],k=y?.role==="assistant"?y.approval:void 0;if(k&&(y.approval=void 0,o?.(),!!n.approveUrl))try{await fetch(n.approveUrl,{method:"POST",headers:{"Content-Type":"application/json",...n.headers},body:JSON.stringify(b?{id:k.id,decision:m,note:w,modifiedArgs:b}:{id:k.id,decision:m,note:w}),signal:n.signal})}catch(V){if(n.signal?.aborted)return;e.error={code:"provider_error",message:V instanceof Error?V.message:String(V)},o?.()}}function f(){r?.abort(),r=null}return{send:u,stop:i,retry:c,clear:p,approve:d,dispose:f}}function Tt(e,t,n){let o=new AbortController,r=n?.signal;r&&(r.aborted?o.abort():r.addEventListener("abort",()=>o.abort(),{once:!0}));let s=n?.traceId??dn(),a=n?.record!==!1,l=[],u=(async()=>{let i;try{i=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json","X-Trace-Id":s,Accept:"text/event-stream",...n?.headers},body:JSON.stringify(t),signal:o.signal})}catch(c){if(o.signal.aborted)return;n?.onError?.({code:"provider_error",message:c instanceof Error?c.message:String(c)});return}if(!i.ok){n?.onError?.({code:un(i.status),message:`HTTP ${i.status} ${i.statusText}`});return}try{for await(let{name:c,data:p}of ln(i.body)){if(o.signal.aborted)return;an(l,{name:c,data:p},a),sn(c,p,n??{})}}catch(c){if(o.signal.aborted)return;n?.onError?.({code:"provider_error",message:c instanceof Error?c.message:String(c)})}})();return{abort:()=>o.abort(),done:u,traceId:s,events:l}}function sn(e,t,n){switch(e){case"wf:token":return n.onToken?.(t.text);case"wf:tool_call":return n.onToolCall?.(t);case"wf:tool_result":return n.onToolResult?.(t);case"wf:tool_progress":return n.onToolProgress?.(t);case"wf:step":return n.onStep?.(t);case"wf:approval_request":return n.onApproval?.(t);case"wf:usage":return n.onUsage?.(t);case"wf:done":return n.onDone?.(t);case"wf:error":return n.onError?.(t);default:return n.onEvent?.(e,t)}}async function*ln(e){let t=e.getReader(),n=new TextDecoder,o="";try{for(;;){let{done:r,value:s}=await t.read();if(r)break;o+=n.decode(s,{stream:!0});let a=o.split(`
1
+ function K(e){if(e==null||typeof e=="boolean")return"null";if(typeof e=="string"||typeof e=="number")return"text";let t=e.type;return typeof t=="function"?"comp":typeof t=="symbol"?t===B?"app":e.props?.portalKey!=null?"portal":"frag":"native"}function Te(e){return Array.isArray(e)?e.flatMap(t=>Te(t)):[e]}function T(e){if(e.children!=null)return Te(e.children);let t=e.props?.children??[];return Te(t)}var J=Symbol("v3-fragment"),q=Symbol("v3-portal"),B=Symbol("v3-app");function h(e,t,n,o){let r={entity:e,action:t,ts:Date.now()};return n!=null&&(r.target=n),o!=null&&(r.payload=o),r}function on(e=2e4,t){let n=[],o=0,r=0,s=0,a=!1,l=t?.watermark??.8,u=new Set,i=d=>n[(o+d)%e],c=(d,g)=>{n[(o+d)%e]=g},f=(d,g)=>{r<e?(c(r,d),r++):(c(0,d),o=(o+1)%e,g||(s++,(s%64===1||s===1)&&f(h("stream","overflow",void 0,{capacity:e,count:s,dropped:`${d.entity}:${d.action}`,droppedTarget:d.target??null}),!0)))},p=null,m=0;return{setSession(){return p=`s${++m}`,p},currentSession(){return p},emit(d){p!=null&&d.session==null&&(d.session=p),f(d,!1),l>0&&!a&&r>=e*l&&(a=!0,f(h("stream","watermark",void 0,{usage:r,capacity:e,ratio:l}),!0));for(let g of u)try{g(d)}catch{}},subscribe(d,g){let v=typeof d=="function"?null:d,y=typeof d=="function"?d:g,N=x=>{if(v==null){y(x);return}(Array.isArray(v)?v:[v]).includes(x.entity)&&y(x)};return u.add(N),()=>{u.delete(N)}},size(){return r},capacity(){return e},overflowCount(){return s},events(){let d=new Array(r);for(let g=0;g<r;g++)d[g]=i(g);return d},eventsBySession(d){return this.events().filter(g=>g.session===d)},inverse(d){switch(d.entity+":"+d.action){case"node:insert":return h("node","remove",d.target,{parent:d.payload?.parent});case"node:remove":return null;case"prop:update":return h("prop","update",d.target,{key:d.payload?.key,value:d.payload?.prev,prev:d.payload?.value});case"text:update":return h("text","update",d.target,{value:d.payload?.prev,prev:d.payload?.value});case"node:move":return null;default:return null}},reset(){o=0,r=0,s=0,a=!1}}}var w=on();if(typeof globalThis<"u"){let e=globalThis;e.__wf_tail||(e.__wf_tail=(t=200,n)=>{let o=w.events().slice(-t);return n?o.filter(r=>!(n.comp&&r.payload?.name!==n.comp||n.decision&&r.payload?.reason!==n.decision||n.causeId&&r.payload?.causeId!==n.causeId)):o},e.__wf_builds=t=>{let n=w.events().filter(o=>o.entity==="comp"&&o.action==="build");return t?n.filter(o=>o.payload?.name===t).map(o=>({name:o.payload?.name,reason:o.payload?.reason,changedKeys:o.payload?.changedKeys})):n.map(o=>({name:o.payload?.name,reason:o.payload?.reason,changedKeys:o.payload?.changedKeys}))},e.__wf_recent=(t=50)=>w.events().slice(-t),e.__wf_comp=t=>w.events().filter(o=>!!(o.target===t||o.payload?.name&&!t)).map(o=>({entity:o.entity,action:o.action,target:o.target,payload:o.payload,session:o.session})))}var rn=0;function j(){return`n${++rn}`}function Se(e){if(!e)return 0;let t=0;for(let n of Q.values())n.has(e)&&t++;return t}var Q=new Map,Ze=new Set,Ye=new Map,ze=new Map,Ve=new Map,Ce=new Map,et={focus:"focusin",blur:"focusout"},sn=new Set(["error","load","loadstart","loadend","abort","unload","resize","message"]),ln=new Set(["input","change","compositionstart","compositionend"]);function tt(e,t,n,o=!1){let r=Q.get(t);r||(r=new Map,Q.set(t,r)),r.set(e,{handler:n,once:o})}function an(e,t){Q.get(t)?.delete(e)&&w.emit(h("event","unbind",e,{event:t}))}function Pe(e){for(let[t,n]of Q)n.delete(e)&&w.emit(h("event","unbind",e,{event:t}))}function ie(e,t,n,o=!1){let r=e.getAttribute("data-v3-id");if(!r)return()=>{};tt(r,t,n,o);let s=nt(e);return s&&ot(s,t),()=>an(r,t)}function Le(e){Ze.add(e),un()}var Je=!1,_e=0,se=[];function Qe(){let e=document.getSelection?.(),t=e?.toString?.()??"",n=e?.anchorNode;return{target:n&&n.nodeType===1?n.getAttribute?.("data-v3-id")??null:n?.parentElement?.getAttribute?.("data-v3-id")??null,text:t}}function un(){if(Je||(Je=!0,typeof document>"u"))return;let e=()=>{_e||(_e=requestAnimationFrame(()=>{_e=0;try{let{target:o,text:r}=Qe();if(!r)return;w.emit(h("text","select",void 0,{target:o,length:r.length,sample:r.slice(0,40)}))}catch{}}))};se.push(V(document,"selectionchange",e));let t=o=>{let{target:r,text:s}=Qe(),a=s;return o.type==="paste"&&(a=o.clipboardData?.getData?.("text")??""),{target:r,sample:a.slice(0,40)}},n=o=>{if(!(o.type!=="copy"&&o.type!=="cut"&&o.type!=="paste"))try{let{target:r,sample:s}=t(o);if(!s)return;w.emit(h("text",o.type,void 0,{target:r,length:s.length,sample:s}))}catch{}};se.push(V(document,"copy",n)),se.push(V(document,"cut",n)),se.push(V(document,"paste",n))}function nt(e){let t=e;for(;t;){if(t.nodeType===1&&Ze.has(t))return t;t=t.parentNode}return null}function ot(e,t){let n=Ye.get(e)??new Set;if(n.has(t))return;n.add(t),Ye.set(e,n);let o=et[t]??t,r=u=>dn(u),s=sn.has(o);e.addEventListener(o,r,s?{capture:!0}:void 0);let a=ze.get(e)??new Map;a.set(o,r),ze.set(e,a);let l=e.hasAttribute("data-wf-portal-key")?`portal:${e.getAttribute("data-wf-portal-key")}`:"root";w.emit(h("event","bind",l,{event:o,delegated:!0}))}function V(e,t,n,o){let r=et[t]??t,s=Ve.get(r);s||(s=new Set,Ve.set(r,s)),s.add(n);let a=Ce.get(e)??new Map;if(!a.has(r)){let l=i=>{for(let c of Ve.get(r)??[])try{c(i)}catch{}},u=o?.capture?{capture:!0,passive:o?.passive??!1}:void 0;e.addEventListener(r,l,u),a.set(r,l),Ce.set(e,a),w.emit(h("event","bind",e===window?"window":"document",{event:r,delegated:!0,capture:o?.capture??!1}))}return()=>{if(s.delete(n),s.size===0){let l=a.get(r);l&&e.removeEventListener(r,l,o?.capture?{capture:!0}:void 0),a.delete(r),a.size===0&&Ce.delete(e),w.emit(h("event","unbind",e===window?"window":"document",{event:r}))}}}function Ae(e,t,n,o){if(tt(e,t,n),o){let r=nt(o);r&&ot(r,t)}}function dn(e){let t=e.target;t&&t.nodeType===3&&(t=t.parentElement);let n=Q.get(e.type);if(n)for(;t;){if(!t.hasAttribute?.("data-v3-id")){let r=t.closest?.("[data-v3-id]");if(r&&r!==t){t=r;continue}}let o=t.getAttribute?.("data-v3-id");if(o){let r=n.get(o);if(r){try{Object.defineProperty(e,"currentTarget",{value:t,configurable:!0})}catch{}try{r.handler(e)}catch{}if(ln.has(e.type)){let s=t?.value??null;w.emit(h("text","input",o,{event:e.type,value:typeof s=="string"?s.slice(0,100):null}))}if(r.once&&(n.delete(o),w.emit(h("event","unbind",o,{event:e.type}))),e.cancelBubble)break}}t=t.parentElement}}var rt=new Map;function Me(e){e._id&&rt.set(e._id,e)}function st(e){rt.delete(e)}function Z(e){let t=document.getElementById("__wf_portal");t||(t=document.createElement("div"),t.id="__wf_portal",document.body.appendChild(t));let n=t.querySelector(`[data-wf-portal-key="${e}"]`);return n||(n=document.createElement("div"),n.setAttribute("data-wf-portal-key",e),t.appendChild(n)),n}var O=class{byId=new Map;idByNode=new WeakMap;removed=new Map;static PORTAL=t=>`portal:${t}`;resolveParent(t){return t.startsWith("portal:")?Z(t.slice(7)):this.get(t)}get(t){return t.startsWith("portal:")?Z(t.slice(7)):this.byId.get(t)??null}register(t,n){this.byId.set(t,n),this.idByNode.set(n,t)}idOf(t){return t?t.nodeType===1?t.getAttribute("data-v3-id")??this.idByNode.get(t)??"el":this.idByNode.get(t)??"node":"null"}unregister(t,n){this.byId.delete(t),this.removed.set(t,n)}takeRemoved(t){let n=this.removed.get(t);return n&&this.removed.delete(t),n??null}static ROOT="root"};function I(){return{activeElement:()=>typeof document<"u"?document.activeElement:null,byId:e=>typeof document<"u"?document.getElementById(e):null,query:e=>typeof document<"u"?document.querySelector(e):null,queryAll:e=>typeof document<"u"?document.querySelectorAll(e):null,createElement:e=>typeof document<"u"?document.createElement(e):null,createElementNS:(e,t)=>typeof document<"u"?document.createElementNS(e,t):null,createDocumentFragment:()=>typeof document<"u"?document.createDocumentFragment():null,createComment:e=>typeof document<"u"?document.createComment(e):null,createTextNode:e=>typeof document<"u"?document.createTextNode(e):null,addEventListener:(e,t,n)=>{typeof window<"u"&&window.addEventListener(e,t,n)},removeEventListener:(e,t,n)=>{typeof window<"u"&&window.removeEventListener(e,t,n)},scrollTo:e=>{typeof window<"u"&&window.scrollTo(0,e)},matchMedia:e=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia(e):null,visualViewport:()=>(typeof window<"u"?window:null)?.visualViewport??null,scrollingElement:()=>typeof document<"u"?document.scrollingElement:null,bodyElement:()=>typeof document<"u"?document.body:null,bodyAppend:e=>{typeof document<"u"&&document.body.appendChild(e)},bodyRemove:e=>{typeof document<"u"&&e.parentNode&&document.body.removeChild(e)},clearBody:()=>{typeof document<"u"&&(document.body.innerHTML="")},event:(e,t)=>{let n=typeof window<"u"?window:null,o=t&&(t.key||t.code)?"KeyboardEvent":t&&(t.clientX!==void 0||t.clientY!==void 0||t.pointerId!==void 0)?"PointerEvent":"Event";try{return new n[o](e,t)}catch{return new n.Event(e,t)}},dispatchEvent:(e,t)=>typeof e<"u"?e.dispatchEvent(t):!1,reload:()=>{typeof window<"u"&&window.location.reload()},navigate:e=>{typeof window>"u"||(window.history.pushState(null,"",e),window.dispatchEvent(new PopStateEvent("popstate",{state:null})))},downloadFile:(e,t,n="text/plain")=>{try{if(typeof document>"u"||typeof URL>"u"||!URL.createObjectURL)return!1;let o=new Blob([t],{type:n}),r=URL.createObjectURL(o),s=document.createElement("a");return s.href=r,s.download=e,document.body.appendChild(s),s.click(),document.body.removeChild(s),setTimeout(()=>URL.revokeObjectURL(r),1e3),!0}catch{return!1}},copyText:async e=>{let t=typeof window<"u"?window:null;if(t?.navigator?.clipboard?.writeText)try{return await t.navigator.clipboard.writeText(e),!0}catch{}try{if(typeof document>"u")return!1;let n=document.createElement("textarea");n.value=e,n.style.position="fixed",n.style.opacity="0",document.body.appendChild(n),n.select();let o=document.execCommand("copy");return document.body.removeChild(n),o}catch{return!1}},execCommand:(e,t)=>typeof document<"u"?document.execCommand(e,!1,t):!1,queryCommandState:e=>typeof document<"u"?document.queryCommandState(e):!1,queryCommandValue:e=>typeof document<"u"?document.queryCommandValue(e):"",selectionText:()=>typeof window<"u"?window.getSelection?.()?.toString()??null:null,getSelection:()=>typeof window<"u"?window.getSelection():null,viewportHeight:()=>typeof window<"u"?window.innerHeight:0,viewportWidth:()=>typeof window<"u"?window.innerWidth:0,pathname:()=>typeof window<"u"?window.location.pathname:"",createTreeWalker:(e,t)=>typeof document<"u"?document.createTreeWalker(e,t??NodeFilter.SHOW_ALL):null,scrollTop:()=>{let e=typeof document<"u"?document:null,t=typeof window<"u"?window:null;return e?.scrollingElement?.scrollTop??t?.scrollY??0},hash:()=>typeof window<"u"?window.location?.hash??"":"",setHash:e=>{typeof window<"u"&&(window.location.hash=e)},timeout:(e,t)=>typeof window<"u"?window.setTimeout(e,t):0,rootElement:()=>typeof document<"u"?document.documentElement:null,storageGet:e=>{try{return typeof window<"u"?window.localStorage?.getItem(e)??null:null}catch{return null}},storageSet:(e,t)=>{try{typeof window<"u"&&window.localStorage?.setItem(e,t)}catch{}}}}var cn=new Map;function it(e){return cn.get(e)??null}function lt(e,t){let n=e.selfId(),o;return n&&(o=t.subscribe(()=>e.render([n])),e.onUnmount(()=>o?.())),t}function Oe(e,t){let n=e.selfId(),o=t.value!==void 0;if(o&&!t.onChange&&t.name&&(e.warned.has(t.name)||(e.warned.add(t.name),console.warn(`[weifuwu/${t.name}] \u53D7\u63A7\u6A21\u5F0F\uFF08value \u5DF2\u4F20\uFF09\u4F46\u672A\u63D0\u4F9B onChange\uFF0C\u4EA4\u4E92\u65E0\u6CD5\u751F\u6548\u3002
2
+ \u975E\u53D7\u63A7\uFF1A\u53BB\u6389 value\uFF1B\u53D7\u63A7\uFF1A\u4F20\u5165 onChange={(v) => setValue(v)}`))),!o&&n&&!e.uncontrolledValues.has(n)){e.uncontrolledValues.set(n,t.value);let s=e.onUnmount(a=>{a===n&&(e.uncontrolledValues.delete(n),s())})}let r=s=>{if(o){t.onChange?.(s);return}n&&e.uncontrolledValues.set(n,s),n?e.render([n]):e.render()};return{value:o?t.value:n?e.uncontrolledValues.get(n):t.value,setValue:r,controlled:o}}function at(e,t){let n=e.selfId(),o=Oe(e,{value:t.value,onChange:t.onChange,name:t.name});if(n&&!e.inputStates.has(n)){e.inputStates.set(n,{keyword:"",selectedLabel:""});let a=e.onUnmount(l=>{l===n&&(e.inputStates.delete(n),a())})}let r=n?e.inputStates.get(n):{keyword:"",selectedLabel:""},s=()=>{n?e.render([n]):e.render()};return{...o,get keyword(){return r.keyword},setKeyword(a){r.keyword=a,s()},get selectedLabel(){return r.selectedLabel},setSelectedLabel(a){r.selectedLabel=a,s()}}}function ut(e,t){let n=e.selfId(),o=!1;if(n){let u=e.onUnmount(i=>{i===n&&(o=!0,u())})}let r=()=>{o||(n?e.render([n]):e.render())},s={data:void 0,loading:!1,error:void 0},a=0,l=()=>{let u=++a;s.loading=!0,s.error=null,r(),Promise.resolve().then(()=>t()).then(i=>{a===u&&(s.data=i,s.loading=!1,r())}).catch(i=>{a===u&&(s.error=i,s.loading=!1,r())})};return l(),s.reload=l,s}function dt(e,t,n){return r=>{r?t(r):n?.()}}function le(e){return typeof window<"u"&&!!window.matchMedia?.("(hover: hover)").matches}function Ie(e){return typeof window<"u"&&!!window.matchMedia?.("(prefers-reduced-motion: reduce)").matches}function ct(e,t){let{onLongPress:n,duration:o=500}=t,r,s=0,a=0,l=null,u=()=>{clearTimeout(r),r=void 0},i=e.selfId();if(i){let c=e.onUnmount(f=>{f===i&&(u(),c())})}return{onPointerDown:c=>{s=c.clientX??0,a=c.clientY??0,l=c,u(),r=setTimeout(()=>{r=void 0,l&&n(l)},o)},onPointerUp:u,onPointerLeave:u,onPointerMove:c=>{let f=Math.abs((c.clientX??0)-s),p=Math.abs((c.clientY??0)-a);(f>10||p>10)&&u()},onContextMenu:c=>{c.preventDefault(),n(c)}}}function ae(e,t){let n=e.selfId(),o="closed",r,s=()=>{o="closed",n?e.render([n]):e.render()},a=null;return{get phase(){return o},ref:u=>{u?a||(r=()=>{o==="exit"&&s()},a=ie(u,"animationend",r)):(a?.(),a=null,r=void 0)},sync:u=>(u?o="open":o==="open"&&(o="exit"),o)}}function ft(e,t,n){let o=e.selfId(),r=Ie(e),s=n?.duration??400,a=n?.ease==="linear"?p=>p:p=>1-Math.pow(1-p,3),l,u=t,i={value:r?t:0,reset:()=>{}},c=()=>{o?e.render([o]):e.render()},f=p=>{if(u=p,r){i.value=p,c();return}if(p===i.value)return;l&&cancelAnimationFrame(l);let m=i.value,d=performance.now(),g=v=>{let y=Math.min(1,(v-d)/s);i.value=Math.round(m+(p-m)*a(y)),y<1?(l=requestAnimationFrame(g),c()):(l=void 0,c())};l=requestAnimationFrame(g)};if(i.reset=p=>{p===u&&l||f(p)},o){let p=e.onUnmount(m=>{m===o&&(l&&(cancelAnimationFrame(l),l=void 0),p())})}return queueMicrotask(()=>f(t)),i}var pt=I();function mt(e,t="bottom",n=6,o=!0){switch(t){case"bottom":return{top:e.bottom+n,left:o?e.left+e.width/2:e.left};case"top":return{top:e.top-n,left:o?e.left+e.width/2:e.left};case"left":return{top:o?e.top+e.height/2:e.top,left:e.left-n};case"right":return{top:o?e.top+e.height/2:e.top,left:e.right+n}}}function ue(e,t,n=8){if(!t)return e;let o=t.getBoundingClientRect();if(o.width===0&&o.height===0)return e;let r=Number.parseFloat(t.style.top)||o.top,s=Number.parseFloat(t.style.left)||o.left,a=e.top-r,l=e.left-s,u={top:o.top+a,bottom:o.bottom+a,left:o.left+l,right:o.right+l},i=pt.viewportWidth(),c=pt.viewportHeight(),f=e.top,p=e.left;return u.bottom>c-n&&(f=Math.max(n,f-(u.bottom-(c-n)))),u.top<n&&(f=Math.max(n,f+(n-u.top))),u.right>i-n&&(p=Math.max(n,p-(u.right-(i-n)))),u.left<n&&(p=Math.max(n,p+(n-u.left))),{top:f,left:p,width:e.width}}function de(e,t,...n){let o=t?{...t}:{};return n.length>0&&(o.children=n.length===1?n[0]:n),{type:e,props:o,key:t?.key??null}}function ce(e,t){return{type:q,props:{children:Array.isArray(e)?e:[e],portalKey:t??"default"},key:t??null}}function Re(e,t){let n=e.selfId(),o={top:0,left:0,refresh:()=>{}};if(!n)return o;let r={pos:o,getEl:t.el,isOpen:t.isOpen,compute:t.compute,panel:t.panel,margin:t.margin??8};e.popupTrackers.set(n,r),e.ensurePopupListeners();let s=e.onUnmount(a=>{a===n&&(e.popupTrackers.delete(n),s())});return o.refresh=()=>{let a=r.getEl();if(!a)return;let l=a.getBoundingClientRect();if(l.width===0&&l.height===0)return;let u=r.compute(l);Object.assign(o,ue(u,r.panel?.(),r.margin))},o}function yt(e,t){let n=e.selfId(),o=e.browser,r=le(e),s=()=>typeof t.trigger=="function"?t.trigger():t.trigger??"manual",a=t.open!==void 0,l=()=>!!t.disabled?.(),u=()=>a?typeof t.open=="function"?!!t.open():!!t.open:t.isOpen(),i=t.presence?ae(e,{name:t.name}):null,c,f=!1,p=b=>{if(!i)return b?"open":"closed";let k=i.sync(b);return b&&t.lockScroll&&!f&&(fn(),f=!0),k},m=b=>{l()||(a?t.onOpenChange?.(b):i?b?p(!0):u()&&p(!1):t.setOpen(b))},d=()=>{let b=t.placement;return typeof b=="function"?b():b??"bottom"},g=null,v=!1,y=Re(e,{el:t.el??(()=>null),isOpen:()=>u(),compute:b=>{if(t.position){let k=t.position();return{top:k.y,left:k.x,width:k.width}}return mt(b,d(),t.gap??6,t.center!==!1)},panel:()=>g,margin:t.margin??8}),N=b=>{if(t.closeOnOutside===!1||t.mask||!u())return;let k=b.target;if(!(k instanceof Node))return;let A=t.el?.()??null;A&&A.contains(k)||g&&g.contains(k)||m(!1)},x=b=>{t.closeOnEscape!==!1&&(b.key!=="Escape"||!u()||m(!1))},S=V(o,"mousedown",N),Gt=V(o,"keydown",x);if(n){let b=e.onUnmount(k=>{k===n&&(S(),Gt(),b())})}let P={},Be=b=>typeof b=="function"?b():b??0,Ge=()=>Be(t.openDelay),be=()=>Be(t.closeDelay),L,_,Xt=()=>{clearTimeout(L),clearTimeout(_),L=void 0,_=void 0},Yt=b=>{if(l())return;let k=b.currentTarget,A=b.relatedTarget;k.contains(A)||(clearTimeout(_),_=void 0,L=setTimeout(()=>{L=void 0,m(!0)},Ge()))},zt=b=>{if(l())return;let k=b.currentTarget,A=b.relatedTarget;k.contains(A)||(clearTimeout(L),L=void 0,_=setTimeout(()=>{_=void 0,m(!1)},be()))},Jt=()=>{l()||(clearTimeout(_),_=void 0,L=setTimeout(()=>{L=void 0,m(!0)},Ge()))},Qt=()=>{l()||(clearTimeout(L),L=void 0,_=setTimeout(()=>{_=void 0,m(!1)},be()))},te=()=>s()==="hover";if(P.onMouseOver=b=>{te()&&Yt(b)},P.onMouseOut=b=>{te()&&zt(b)},P.onClick=()=>{te()?r||m(!u()):s()==="click"&&m(!0)},P.onFocus=()=>{te()?Jt():s()==="focus"&&(clearTimeout(_),_=void 0,m(!0))},P.onBlur=()=>{te()?Qt():s()==="focus"&&(clearTimeout(L),L=void 0,_=setTimeout(()=>{_=void 0,m(!1)},be()))},s()==="longpress"){let b,k=0,A=0,F=()=>{clearTimeout(b),b=void 0};P.onPointerDown=C=>{l()||(k=C.clientX??0,A=C.clientY??0,F(),b=setTimeout(()=>{b=void 0,t.onTrigger?.({clientX:k,clientY:A}),m(!0)},t.longPressDuration??500))},P.onPointerUp=F,P.onPointerLeave=F,P.onPointerMove=C=>{let ke=Math.abs((C.clientX??0)-k),xe=Math.abs((C.clientY??0)-A);(ke>10||xe>10)&&F()},P.onContextMenu=C=>{C.preventDefault(),t.onTrigger?.({clientX:C.clientX??0,clientY:C.clientY??0}),m(!0)}}if(P.onKeyDown=b=>{b.key==="Escape"&&t.closeOnEscape!==!1&&m(!1)},n){let b=e.onUnmount(k=>{k===n&&(Xt(),b())})}let Zt=b=>{b?(g=b,ie(b,"animationend",()=>y.refresh(),!0)):g=null},Ee=null,Ne=null,Xe=b=>{Zt(b),Ne&&Ne(b),i?.ref(b),t.trapFocus&&(b?c=yn(b):(c?.(),c=void 0)),t.lockScroll&&!b&&f&&(pn(),f=!1)};return{get open(){return u()},setOpen:m,get phase(){return i?i.phase:u()?"open":"closed"},sync:p,wrapProps:P,portal:(b,k="popover")=>{if(l())return null;if(!(i?i.phase!=="closed":u()))return v=!1,Ee=null,null;let F=t.el?.()??null;(!v||F!==Ee)&&(F?y.refresh():queueMicrotask(()=>{u()&&y.refresh()}),v=!0,Ee=F);let C=b.props??{};Ne=C.ref??null;let ke=t.positioning==="none"?C.class??"":["wf-popup",C.class].filter(Boolean).join(" "),xe=t.positioning==="none"?{...C.style??{},position:"fixed"}:{...C.style??{},position:"fixed",top:`${y.top}px`,left:`${y.left}px`,...y.width!==void 0?{width:`${y.width}px`}:{},maxWidth:(()=>{let re=typeof t.width=="function"?t.width():t.width;return re!==void 0?`min(${re}px, calc(100vw - 32px))`:"calc(100vw - 32px)"})()},z={...b,props:{...C,class:ke,style:xe,ref:Xe}};if(t.mask){let re=typeof t.mask=="object"?t.mask:de("div",{class:"wf-popup-mask","data-portal-mask":k,onClick:t.maskClosable===!1?void 0:()=>m(!1)}),en=t.maskCentered?de("div",{class:"wf-cover",style:{"--wf-z":"var(--wf-z-popover)",pointerEvents:"none"}},{...z,props:{...z.props,style:{...C.style??{},pointerEvents:"auto"},ref:Xe}}):null,tn=t.maskCentered?void 0:{...z.props?.style??{},zIndex:"var(--wf-z-popover)"},nn=t.maskCentered?en:{...z,props:{...z.props,style:tn}};return ce([re,nn],k)}return ce(z,k)},refresh:()=>y.refresh()}}function gt(e,t){let n=e.selfId();if(n&&!e.openStates.has(n)){e.openStates.set(n,!1);let l=e.onUnmount(u=>{u===n&&(e.openStates.delete(n),l())})}let o=t.open!==void 0;o&&!t.onOpenChange&&t.name&&!e.warned.has(t.name)&&(e.warned.add(t.name),console.warn(`[weifuwu/${t.name}] \u53D7\u63A7\u6A21\u5F0F\uFF08open \u5DF2\u4F20\uFF09\u4F46\u672A\u63D0\u4F9B onOpenChange\uFF0C\u4EA4\u4E92\u65E0\u6CD5\u751F\u6548\u3002
3
+ \u975E\u53D7\u63A7\uFF1A\u53BB\u6389 open\uFF1B\u53D7\u63A7\uFF1A\u4F20\u5165 onOpenChange={(o) => setOpen(o)}`));let r=()=>o?!!t.open:n?e.openStates.get(n)??!1:!1,s=()=>{n?e.render([n]):e.render()},a=l=>{if(o){t.onOpenChange?.(l);return}n&&e.openStates.set(n,l),s()};return{get open(){return r()},setOpen:a,triggerProps:{onClick:()=>a(!0),onFocus:()=>{t.openOnFocus&&a(!0)}}}}var X=I(),G=0,ht="",wt="",vt="",bt="",fe=0;function Et(){return typeof window<"u"&&typeof document<"u"}function fn(){if(G++,w.emit(h("effect","lock",void 0,{depth:G})),G>1||!Et())return;fe=X.scrollTop();let e=X.bodyElement();ht=e.style.overflow,wt=e.style.position,vt=e.style.top,bt=e.style.width,e.style.overflow="hidden",(/iPhone|iPad|iPod/.test(navigator.platform)||/Mac/.test(navigator.platform)&&"ontouchend"in document)&&(e.style.position="fixed",e.style.top=`-${fe}px`,e.style.width="100%")}function pn(){if(G===0||(G--,w.emit(h("effect","unlock",void 0,{depth:G})),G>0)||!Et())return;let e=X.bodyElement();e.style.overflow=ht,e.style.position=wt,e.style.top=vt,e.style.width=bt,fe>0&&X.scrollTo(fe)}var mn='a[href], button:not([disabled]), input:not([disabled]), textarea:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])';function yn(e){let t;return queueMicrotask(()=>{let n=e.querySelectorAll(mn);if(n.length===0)return;let o=n[0],r=n[n.length-1],s=u=>{u.key==="Tab"&&(u.shiftKey&&X.activeElement()===o?(u.preventDefault(),r.focus()):!u.shiftKey&&X.activeElement()===r&&(u.preventDefault(),o.focus()))},a=X.activeElement();w.emit(h("effect","focus",void 0,{mode:"trap-start"})),o.focus();let l=V(e,"keydown",s);t=()=>{l(),w.emit(h("effect","focus",void 0,{mode:"restore"})),a?.focus()}}),()=>t?.()}function Nt(e,t,n){let o=e.selfId(),r=e.browser,s=`media:${o}:${t}`;if(!e.mediaRegistry.has(s)){let a=r.matchMedia(t);n(a.matches);let l=i=>n(i.matches);V(a,"change",l),e.mediaRegistry.set(s,{mql:a,handler:l});let u=e.onUnmount(i=>{if(i!==o)return;let c=e.mediaRegistry.get(s);if(c?.mql&&c.handler)try{c.mql.removeEventListener("change",c.handler)}catch{}e.mediaRegistry.delete(s),u()})}}function kt(e,t,n){let o=e.browser,r=typeof t=="function"?{mobile:"(max-width: 639px)",tablet:"(min-width: 640px) and (max-width: 1023px)",desktop:"(min-width: 1024px)"}:t,s=typeof t=="function"?t:n,a=e.selfId(),l=`bp:${a}`;function u(){for(let[i,c]of Object.entries(r))if(o.matchMedia(c).matches)return i;return Object.keys(r)[0]??""}if(!e.mediaRegistry.has(l)){s(u());let i=[];for(let f of Object.values(r)){let p=o.matchMedia(f),m=()=>s(u());V(p,"change",m),i.push({mql:p,handler:m})}e.mediaRegistry.set(l,{mqls:i});let c=e.onUnmount(f=>{if(f!==a)return;let p=e.mediaRegistry.get(l);if(p?.mqls)for(let m of p.mqls)try{m.mql.removeEventListener("change",m.handler)}catch{}e.mediaRegistry.delete(l),c()})}}function xt(e){let t=e.selfId(),n=e.browser,o={height:n.viewportHeight(),offsetTop:0,keyboardOpen:!1},r=()=>{t?e.render([t]):e.render()},s=()=>{let i=n.visualViewport();o.height=i?.height??n.viewportHeight(),o.offsetTop=i?.offsetTop??0,o.keyboardOpen=o.height<n.viewportHeight()*.9,r()},a=n.visualViewport(),l=null,u=null;if(a?.addEventListener?(l=V(a,"resize",s),V(a,"scroll",s)):u=V(window,"resize",s),t){let i=e.onUnmount(c=>{c===t&&(l?.(),u?.(),i())})}return o}function Tt(e,t){let n=e.selfId(),o={isIn:!1,ready:!1,observe:u,refresh:i,disconnect:c},r=null,s=null,a=()=>{n?e.render([n]):e.render()};function l(){if(s?.disconnect(),s=null,!r)return;let f=typeof t.rootMargin=="function"?t.rootMargin():t.rootMargin,p=typeof t.threshold=="function"?t.threshold():t.threshold;s=new IntersectionObserver(m=>{let d=m[m.length-1];if(!d)return;let g=d.isIntersecting,v=g!==o.isIn,y=!o.ready;o.isIn=g,o.ready=!0,t.onChange?.(d,g),(v||y)&&a()},{root:t.root?t.root():null,rootMargin:f??"0px",threshold:p??0}),s.observe(r)}function u(f){r=f,f?l():(s?.disconnect(),s=null,o.isIn=!1)}function i(){l()}function c(){s?.disconnect(),s=null}if(n){let f=e.onUnmount(p=>{p===n&&(c(),f())})}return o}function Vt(e,t){let n=e.selfId(),o=e.browser,r={y:0,refresh(){let l=s.getScroller();r.y=l instanceof Window?o.scrollingElement()?.scrollTop??o.scrollTop():l.scrollTop??0}},s={handle:r,getScroller:t.getScroller??(()=>window)};if(!n)return r.refresh(),r;e.scrollTrackers.set(n,s),e.ensurePopupListeners(),r.refresh();let a=e.onUnmount(l=>{l===n&&(e.scrollTrackers.delete(n),a())});return r}function Ct(e,t){let n=e.selfId();if(typeof window>"u")return()=>{};let o=V(window,"keydown",t);if(n){let r=e.onUnmount(s=>{s===n&&(o(),r())})}return o}function _t(e,t){let n=e.browser,o=0,r=0,s=!1,a=m=>{s&&t.onMove(m,{x:m.clientX-o,y:m.clientY-r})},l=null,u=null,i=()=>{l?.(),l=null,u?.(),u=null},c=m=>{s&&(s=!1,i(),t.onEnd?.(m))},f=m=>{s||(m.preventDefault(),s=!0,o=m.clientX,r=m.clientY,l=V(window,"pointermove",a),u=V(window,"pointerup",c),t.onStart?.(m))},p=e.selfId();if(p){let m=e.onUnmount(d=>{d===p&&(s&&(i(),s=!1),m())})}return{onPointerDown:f}}function St(e,t){let n={};t.onDrop&&(n.onDrop=r=>{r.preventDefault(),t.onDrop(r)}),t.onDragOver&&(n.onDragOver=r=>{r.preventDefault(),t.onDragOver(r)}),t.onDragLeave&&(n.onDragLeave=r=>t.onDragLeave(r));let o={draggable:!0};if(t.onDragStart){let r=t.onDragStart;o.onDragStart=s=>{typeof document<"u"&&document.body.classList.add("wf-dragging"),r(s)}}if(t.onDragEnd){let r=t.onDragEnd;o.onDragEnd=s=>{typeof document<"u"&&document.body.classList.remove("wf-dragging"),r(s)}}return{dropProps:n,dragProps:o}}function gn(e){return e.map(t=>{let n={role:t.role,content:t.content};return t.reasoning&&(n.reasoning_content=t.reasoning),n})}function He(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`msg-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function Pt(e,t,n,o){n.initialMessages?e.messages=structuredClone(n.initialMessages):e.messages===void 0&&(e.messages=[]),e.input===void 0&&(e.input=""),e.streaming===void 0&&(e.streaming=!1),e.error===void 0&&(e.error=null),e.usage===void 0&&(e.usage=null),e.step===void 0&&(e.step=null);let r=null;function s(){if(!e.streaming)return;let d=e.messages[e.messages.length-1];return d&&d.role==="assistant"&&d.status==="streaming"?d:void 0}function a(d,g,v){let y=s();switch(d){case"wf:token":y&&(y.content+=g.text);break;case"wf:tool_call":{y&&(y.toolCalls||(y.toolCalls=[]),y.toolCalls.push({call:g,status:"running"}));break}case"wf:tool_progress":{let N=g,x=y?.toolCalls?.find(S=>S.call.id===N.toolCallId);x&&(x.progress=N);break}case"wf:tool_result":{let N=g,x=y?.toolCalls?.find(S=>S.call.id===N.id);x&&(x.result=N,x.status=N.ok?"ok":"error");break}case"wf:approval_request":y&&(y.approval=g);break;case"wf:usage":y&&(y.usage=g);break;case"wf:step":e.step=g;break;case"wf:done":if(y){y.status="done",y.approval=void 0;let N=g;N.reasoning&&(y.reasoning=N.reasoning)}e.streaming=!1,e.step=null;break;case"wf:error":y&&(y.status="error",y.error=g,y.approval=void 0),e.error=g,e.streaming=!1,e.step=null;break;default:v?.(d,g);break}o?.()}function l(){let d=n.body?n.body(e.messages):{messages:gn(e.messages)};r=t(n.url,d,{onToken:v=>a("wf:token",{text:v}),onToolCall:v=>a("wf:tool_call",v),onToolProgress:v=>a("wf:tool_progress",v),onToolResult:v=>a("wf:tool_result",v),onApproval:v=>a("wf:approval_request",v),onUsage:v=>a("wf:usage",v),onStep:v=>a("wf:step",v),onDone:v=>a("wf:done",v),onError:v=>a("wf:error",v),onEvent:(v,y)=>a(v,y,n.onEvent)},{signal:n.signal,headers:n.headers}),e.streaming=!0;let g=s();g&&r?.traceId&&(g.id=r.traceId)}function u(){if(e.streaming)return;let d=String(e.input??"").trim();d&&(e.input="",e.error=null,e.usage=null,e.step=null,e.messages.push({id:He(),role:"user",content:d,status:"done"},{id:He(),role:"assistant",content:"",status:"streaming",toolCalls:[]}),l(),o?.())}function i(){r?.abort(),e.streaming=!1,e.step=null;let d=e.messages[e.messages.length-1];d&&d.role==="assistant"&&d.status==="streaming"&&(!d.content&&(!d.toolCalls||d.toolCalls.length===0)?e.messages.pop():d.status="done"),o?.()}function c(){if(e.streaming)return;let d=-1;for(let g=e.messages.length-1;g>=0;g--)if(e.messages[g].role==="user"){d=g;break}d!==-1&&(e.messages.splice(d+1),e.error=null,e.usage=null,e.step=null,e.messages.push({id:He(),role:"assistant",content:"",status:"streaming",toolCalls:[]}),l(),o?.())}function f(){r?.abort(),e.messages=[],e.input="",e.streaming=!1,e.error=null,e.usage=null,e.step=null,o?.()}async function p(d,g,v){let y=e.messages[e.messages.length-1],N=y?.role==="assistant"?y.approval:void 0;if(N&&(y.approval=void 0,o?.(),!!n.approveUrl))try{await fetch(n.approveUrl,{method:"POST",headers:{"Content-Type":"application/json",...n.headers},body:JSON.stringify(v?{id:N.id,decision:d,note:g,modifiedArgs:v}:{id:N.id,decision:d,note:g}),signal:n.signal})}catch(x){if(n.signal?.aborted)return;e.error={code:"provider_error",message:x instanceof Error?x.message:String(x)},o?.()}}function m(){r?.abort(),r=null}return{send:u,stop:i,retry:c,clear:f,approve:p,dispose:m}}function Lt(e,t,n){let o=new AbortController,r=n?.signal;r&&(r.aborted?o.abort():r.addEventListener("abort",()=>o.abort(),{once:!0}));let s=n?.traceId??En(),a=n?.record!==!1,l=[],u=(async()=>{let i;try{i=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json","X-Trace-Id":s,Accept:"text/event-stream",...n?.headers},body:JSON.stringify(t),signal:o.signal})}catch(c){if(o.signal.aborted)return;n?.onError?.({code:"provider_error",message:c instanceof Error?c.message:String(c)});return}if(!i.ok){n?.onError?.({code:bn(i.status),message:`HTTP ${i.status} ${i.statusText}`});return}try{for await(let{name:c,data:f}of wn(i.body)){if(o.signal.aborted)return;vn(l,{name:c,data:f},a),hn(c,f,n??{})}}catch(c){if(o.signal.aborted)return;n?.onError?.({code:"provider_error",message:c instanceof Error?c.message:String(c)})}})();return{abort:()=>o.abort(),done:u,traceId:s,events:l}}function hn(e,t,n){switch(e){case"wf:token":return n.onToken?.(t.text);case"wf:tool_call":return n.onToolCall?.(t);case"wf:tool_result":return n.onToolResult?.(t);case"wf:tool_progress":return n.onToolProgress?.(t);case"wf:step":return n.onStep?.(t);case"wf:approval_request":return n.onApproval?.(t);case"wf:usage":return n.onUsage?.(t);case"wf:done":return n.onDone?.(t);case"wf:error":return n.onError?.(t);default:return n.onEvent?.(e,t)}}async function*wn(e){let t=e.getReader(),n=new TextDecoder,o="";try{for(;;){let{done:r,value:s}=await t.read();if(r)break;o+=n.decode(s,{stream:!0});let a=o.split(`
4
4
 
5
5
  `);o=a.pop()??"";for(let l of a){let u="message",i="";for(let c of l.split(`
6
- `))c.startsWith("event: ")?u=c.slice(7):c.startsWith("data: ")&&(i+=c.slice(6));if(i)try{yield{name:u,data:JSON.parse(i)}}catch{}}}}finally{t.releaseLock()}}function an(e,t,n){n&&(e.length>=1e3&&e.shift(),e.push(t))}function un(e){return e===401||e===403?"auth_failed":e===429?"rate_limited":e>=500?"provider_error":"invalid_request"}function dn(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`trace-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function Ct(e,t){let n={messages:[],input:"",streaming:!1,error:null,usage:null,step:null},o=new Set,s=xt(n,Tt,t,()=>{for(let l of[...o])l()});Object.assign(n,s),n.subscribe=l=>(o.add(l),()=>{o.delete(l)});let a=e.selfId();if(a){let l=e.onUnmount(u=>{u===a&&(s.dispose(),l())})}return n}var Vt=O();function Pt(e){let t=new Map,n=new Map,o=!1,r=0;function s(){r||(r=requestAnimationFrame(()=>{r=0;let d=[];for(let[f,m]of t){if(!m.isOpen())continue;let w=m.getEl();if(!w)continue;let b=w.getBoundingClientRect();if(b.width===0&&b.height===0)continue;let y=m.compute(b);Object.assign(m.pos,le(y,m.panel?.(),m.margin)),d.push(f)}for(let[f,m]of n){let w=m.getScroller(),b=w instanceof Window?Vt.scrollingElement()?.scrollTop??Vt.scrollTop():w.scrollTop??0;b!==m.handle.y&&(m.handle.y=b,d.push(f))}d.length>0&&e(d)}))}let a=null,l=null;function u(){o||(o=!0,a=x(window,"scroll",s,{capture:!0,passive:!0}),l=x(window,"resize",s))}function i(){o&&(a?.(),l?.(),a=null,l=null,o=!1)}function c(d){for(let f of[...t.keys()])(f.startsWith(`popup:${d}:`)||f===`popup:${d}`||f===d)&&t.delete(f);n.delete(d)}function p(){i(),r&&(cancelAnimationFrame(r),r=0),t.clear(),n.clear()}return{popupTrackers:t,scrollTrackers:n,schedulePopupRecompute:s,ensurePopupListeners:u,destroyPopupListeners:i,cleanupTrackers:c,destroy:p}}var cn=new Map,fn=new Set,pn=new Map,mn=new Map,yn=new Map,_e=new Map,Re=Pt(e=>{for(let t of e){let n=_e.get(t);if(n)try{n()}catch{}}}),gn=Re.popupTrackers,hn=Re.scrollTrackers,vn=Re.ensurePopupListeners;function St(e,t,n){_e.set(e,t);let o={selfId:()=>e,render:s=>{window.__chain="env.render",!s||s.length===0||s.includes(e)?t():console.warn(`[vdom3/ui] render([${s.join(",")}]) \u8DE8\u7EC4\u4EF6\u6E32\u67D3\u6682\u672A\u5B9E\u73B0\uFF08vdom3 \u5F53\u524D\u4EC5\u7EC4\u4EF6\u81EA\u8EAB render\uFF09`)},browser:O(),onUnmount:s=>(n(()=>{s(e),_e.delete(e)}),()=>{}),registry:{idRegistry:new Map},mediaRegistry:cn,popupTrackers:gn,scrollTrackers:hn,isMounting:()=>!1,warned:fn,uncontrolledValues:pn,inputStates:mn,openStates:yn,ensurePopupListeners:vn};return{__v3ui:!0,__compId:e,render:s=>o.render(s),onUnmount:s=>{n(s)},selfId:s=>{o.registry.idRegistry.set(s,e)},useExternal:s=>tt(o,s),useControlled:s=>Le(o,s),useControlledInput:s=>nt(o,s),useOpen:s=>dt(o,s),usePopup:s=>ut(o,s),usePopupPosition:s=>Ae(o,s),useTween:(s,a)=>it(o,s,a),useInView:s=>wt(o,s),useScrollPosition:s=>bt(o,s),useGlobalKey:s=>Et(o,s),useDrag:s=>Nt(o,s),useDragDrop:s=>kt(o,s),useMedia:(s,a)=>{gt(o,s,a)},useBreakpoint:(s,a)=>{ht(o,s,a)},useReducedMotion:()=>Me(o),useStableRef:(s,a)=>rt(o,s,a),usePresence:s=>ie(o,s),useLongPress:s=>st(o,s),useHoverCapable:()=>se(o),useVisualViewport:()=>vt(o),useAsync:s=>ot(o,s),useChat:s=>Ct(o,s)}}var ce=new Map;function He(e){let t=ce.get(e);if(t){try{t()}catch{}ce.delete(e)}}function _(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)&&"type"in e}function Lt(e,t){let n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(let r of n)if(e[r]!==t[r])return!1;return!0}async function D(e,t,n,o=!1){if(typeof e.type=="function"||e.type===j){let i={...e};if(e.type===j)return r(i,t,n);let c=n!=null&&typeof n=="object"&&n.type===e.type&&n.key===e.key&&n._render?n:null;if(c){if(i._render=c._render,i._id=c._id,Se(i),v.emit(h("comp","build",i._id,{name:$(i.type),reused:!0,index:!0})),!o&&Lt(c.props,i.props))return i._child=c._child,i;let f=Object.keys({...c.props,...i.props}).filter(m=>c.props[m]!==i.props[m]);v.emit(h("props","update",i._id,{name:$(i.type),keys:f}))}else{i._id=F(),Se(i),v.emit(h("comp","build",i._id,{name:$(i.type),reused:!1,index:!0})),v.emit(h("comp","mount",i._id,{name:$(i.type)}));let f=i._id,m=()=>{window.__chain="componentRender:"+f;let y=t._componentRender;y?(window.__chain="fn("+f+")",y(f)):(window.__chain="ctx.render("+f+")",t.render())},w=Object.assign(Object.create(t),{render:m,onUnmount:y=>{ce.set(f,y)},browser:O(),ui:St(f,m,y=>{ce.set(f,y)})}),b=null;try{b=await i.type(i.props,w)}catch(y){let k=y;throw v.emit(h("error","throw",i._id,{phase:"factory",name:$(i.type),message:k?.message??String(y)})),y}i._render=b}v.emit(h("comp","render",i._id,{name:$(i.type)}));let p=null;try{p=await i._render(i.props)}catch(f){let m=f;throw v.emit(h("error","throw",i._id,{phase:"renderFn",name:$(i.type),message:m?.message??String(f)})),f}i._child=null;let d=c?._child??null;if(p){let f=await D(p,t,d!=null&&typeof d=="object"?d:null);i._child=f}return i}async function r(i,c,p){let d=String(i.props?.appId??""),f=et(d);if(!f)return v.emit(h("app","error",void 0,{appId:d,reason:"unknown-app"})),i;let m=p!=null&&p.type===j&&p.appId===d;if(!m||!p._appOutput){v.emit(h("app","mount",void 0,{appId:d}));let y=await f(i.props?.props??{},c);i._appOutput=y}else{i._appOutput=p._appOutput;let y=p.props?.props??{},k=i.props?.props??{},V=[...new Set([...Object.keys(y),...Object.keys(k)])].filter(I=>y[I]!==k[I]);V.length>0&&v.emit(h("app","update",void 0,{appId:d,keys:V}))}let w=m&&p._appOutput?await D(p._appOutput,c,null):null,b=i._appOutput?await D(i._appOutput,c,w):null;return i._child=b,i.appId=d,i}let s=T(n??{}),a=0,l=null;for(let i of T(e)){if(_(i)){let c=s[a],p=await D(i,t,c!=null&&typeof c=="object"?c:null);p!==i&&(l??=[...T(e)],l[a]=p)}a++}if(l==null&&n!=null&&typeof n=="object"&&!Array.isArray(n)){let i=T(n),c=T(e);if(Lt(n.props??{},e.props??{})&&i.length===c.length&&i.every((p,d)=>p===c[d]))return n}let u={...e};return l&&(u.children=l),u}function $(e){return typeof e=="function"?e.name||"anonymous":String(e)}var wn=globalThis.__WF_V3_AUDIT!=="0";function Mt(e,t){if(!wn)return;let n=T(t).filter(s=>s!=null&&typeof s=="object"&&s.el!=null);if(n.length<2)return;let o=n[0].el?.parentNode;if(!o)return;let r=-1;for(let s of n){let a=s.el;if(a.parentNode!==o)return;let l=[...o.childNodes].indexOf(a);if(l<0)return;if(l<r){let u=globalThis.__WF_V3_AUDIT_STACK?new Error().stack?.split(`
7
- `).slice(2,5).map(i=>i.trim().slice(0,70)).join(" | "):"";console.warn(`[vdom3/audit] children \u987A\u5E8F\u9519\u4F4D idx=${l}<${r} tag=${String(s.type).slice(0,30)}${u?" || "+u:""}`);return}r=l}}var bn=new Set(["svg","path","circle","rect","line","polyline","polygon","g","defs","use","text","tspan","ellipse","title","desc","marker","symbol","linearGradient","radialGradient","stop","mask","pattern","clipPath"]);function B(e){if(e==null||typeof e!="object")return!1;let t=e.type;return t===X||typeof t=="symbol"&&e.props?.portalKey!=null}function En(e){if(e==null||typeof e!="object")return!1;let t=e.type;return(t===Z||typeof t=="symbol")&&e.props?.portalKey==null}var E=new A;function Ue(e,t,n){let o=E;n&&(E=n);try{Ve(t),t.innerHTML="",E.register(A.ROOT,t),R(e,t)}finally{E=o}}function R(e,t,n){if(typeof e.type=="function"||e.type===j){let l=e._child!==void 0?e._child:T(e)[0]??null;if(l==null)return null;if(e.el!=null&&(e.el.isConnected||e.el.parentNode===t))return e.el;let u=R(l,t,n);return e.el=u,u}if(En(e)){let l=null;for(let u of T(e)){let i=Ie(u,t,n);i&&!l&&(l=i)}return l}if(B(e)){let u=String(e.props?.portalKey??"default"),i=Y(u);Ve(i),E.register(A.PORTAL(u),i);let c=null;for(let p of T(e)){let d=Ie(p,i);d&&!c&&(c=d)}return e.el=i,c??i}let o=e.type,r=bn.has(o)?document.createElementNS("http://www.w3.org/2000/svg",o):document.createElement(o),s=F();r.setAttribute("data-v3-id",s),E.register(s,r),e.el=r,v.emit(h("node","create",s,{tag:e.type}));for(let[l,u]of Object.entries(e.props??{}))if(!(l==="key"||l==="children"||l==="ref")){if(typeof u=="function"&&/^on[A-Z]/.test(l)){Pe(s,l.slice(2).toLowerCase(),u,t);continue}if(u!=null&&u!==!1){if(l==="value"&&r instanceof HTMLInputElement)r.value=String(u);else if(l==="style"&&typeof u=="object"&&!Array.isArray(u)){let i=Object.entries(u).filter(([,c])=>c!=null&&c!==!1).map(([c,p])=>`${c.replace(/[A-Z]/g,d=>"-"+d.toLowerCase())}:${p}`).join(";");r.setAttribute("style",i)}else r.setAttribute(l,String(u));v.emit(h("prop","update",s,{key:l,value:u,prev:""}))}}n&&n.parentNode===t?t.insertBefore(r,n):t.appendChild(r),v.emit(h("node","insert",s,{parent:Q(t),ref:n?H(n):null}));let a=e.props?.ref;typeof a=="function"&&(v.emit(h("ref","mount",s,{})),a(r));for(let l of T(e))Ie(l,r);return r}function Ie(e,t,n){if(e==null||e===!1||e===!0)return null;if(typeof e=="string"||typeof e=="number"){let o=document.createTextNode(String(e)),r=F();return E.register(r,o),v.emit(h("text","create",r,{value:String(e)})),n&&n.parentNode===t?t.insertBefore(o,n):t.appendChild(o),v.emit(h("node","insert",r,{parent:Q(t),ref:n?H(n):null})),o}return R(e,t,n)}function te(e,t,n,o,r){let s=E;r&&(E=r);try{return e!==null&&t!==null&&typeof e=="object"&&typeof t=="object"&&e===t?e.el??null:Nn(e,t,n,o)}finally{E=s}}function Nn(e,t,n,o){if(typeof t=="string"||typeof t=="number"){let l=String(t),u=e&&typeof e=="object"?e.el:n.childNodes[0]??null;if(u&&u.nodeType===3)return u.nodeValue!==l&&(v.emit(h("text","update",H(u),{value:l,prev:u.nodeValue??""})),u.nodeValue=l),u;let i=document.createTextNode(l),c=F();return E.register(c,i),v.emit(h("text","create",c,{value:l})),o&&o.parentNode===n?n.insertBefore(i,o):n.appendChild(i),v.emit(h("node","insert",c,{parent:Q(n),ref:o?H(o):null})),i}if(t==null||t===!1||t===!0){if(e!=null&&typeof e=="object"&&!Array.isArray(e)){if(B(e))z(e);else if(e.el&&e.el.parentNode===n){let l=E.idOf(e.el);v.emit(h("node","remove",l,{parent:Q(n)})),e.el.parentNode?.removeChild(e.el),E.unregister(l,e.el)}}return null}let r=t,s=e!=null&&typeof e=="object"&&"type"in e;if(s&&e.type===r.type&&e.key===r.key){let l=e,u=W(r);fe(s?W(e):null,u,"reuse");let i=Vn[u];return i?i(l,r,n,o):(fe(s?W(e):null,u,"unhandled"),console.warn(`[vdom3/patch] kind=${u} \u65E0\u540C\u7C7B\u578B\u5904\u7406\u5668\u2014\u2014\u964D\u7EA7\u91CD\u5EFA\uFF08kind \u5206\u53D1\u5B8C\u6574\u6027\u7F3A\u5931\uFF09`),R(r,n,o))}if(fe(s?W(e):null,W(r),"rebuild"),s&&typeof e.type=="function"&&e._id&&(He(e._id),v.emit(h("comp","unmount",e._id,{name:_t(e.type)}))),s){let l=e.el;l&&l.parentNode===n?pe(l,n,e):e&&B(e)&&z(e)}return R(r,n,o)}function kn(e,t,n){let o=H(e),r=new Set([...Object.keys(t??{}),...Object.keys(n??{})]),s=t?.ref,a=n?.ref;s!==a&&(typeof s=="function"&&s(null),typeof a=="function"&&a(e));for(let l of r){if(l==="key"||l==="children"||l==="ref")continue;let u=t?.[l],i=n?.[l];if(u!==i&&!(u!=null&&i!=null&&typeof u=="object"&&typeof i=="object"&&!Array.isArray(u)&&!Array.isArray(i)&&Mn(u,i))){if(typeof i=="function"&&/^on[A-Z]/.test(l)){Pe(o,l.slice(2).toLowerCase(),i,e);continue}if(i==null||i===!1)l==="value"&&e instanceof HTMLInputElement?e.value="":e.removeAttribute(l);else if(l==="value"&&e instanceof HTMLInputElement)e.value=String(i);else if(l==="style"&&typeof i=="object"&&!Array.isArray(i)){let c=Object.entries(i).filter(([,p])=>p!=null&&p!==!1).map(([p,d])=>`${p.replace(/[A-Z]/g,f=>"-"+f.toLowerCase())}:${d}`).join(";");e.setAttribute("style",c)}else e.setAttribute(l,String(i));v.emit(h("prop","update",o,{key:l,value:i,prev:u??""}))}}}function fe(e,t,n){v.emit(h("vnode","patch",void 0,{oldKind:e,newKind:t,strategy:n}))}function xn(e,t,n,o){let r=e.el;return r==null?(fe(W(e),"native","unhandled"),console.warn(`[vdom3/patch] native \u590D\u7528\u4F46 ov.el \u7F3A\u5931\uFF08tag=${String(e.type)}\u2014\u2014kind \u5206\u53D1\u6216\u6E32\u67D3\u65F6\u5E8F\u9519\u8BEF\uFF09\u2014\u2014\u964D\u7EA7\u91CD\u5EFA`),R(t,n,o)):(t.el=r,kn(r,e.props,t.props),De(e,t,r),r)}function At(e,t,n,o){t._render=e._render,t._id=e._id;let r=t._child!==void 0?t._child:T(t)[0]??null,s=e._child!==void 0?e._child:T(e)[0]??null;if(r==null){if(s&&B(s))z(s);else if(e.el){me(s);let a=E.idOf(e.el);v.emit(h("node","remove",a,{parent:Q(n)})),e.el.parentNode?.removeChild(e.el),E.unregister(a,e.el),e.el=null}return t.el=null,null}return e.el==null||!(e.el.isConnected||e.el.parentNode===n)?t.el=R(t,n,o):(te(s,r,n,o),t.el=e.el),t.el}function Tn(e,t,n,o){De(e,t,n,Pn(e));let r=T(e).find(s=>s!=null&&typeof s=="object"&&!Array.isArray(s));return t.el=e.el??r?.el??null,t.el}function Cn(e,t,n,o){let r=String(t.props?.portalKey??"default"),s=Y(r);return E.register(A.PORTAL(r),s),De(e,t,s),t.el=s,s}var Vn={native:xn,comp:At,app:At,frag:Tn,portal:Cn,text:void 0,null:void 0};function Pn(e){let n=T(e).find(r=>r!=null&&typeof r=="object"&&!Array.isArray(r))?.el,o=n?.parentNode;if(o&&n){let r=0;for(let s of o.childNodes){if(s===n)return r;r++}}return 0}function Sn(e,t,n){let o=new Map;e.forEach((s,a)=>{_(s)&&s.key!=null&&o.set(s.key,a)});let r=null;for(let s=0;s<t.length;s++){let a=t[s];if(!_(a)||a.key==null){r=null;continue}let l=o.get(a.key),u=null;if(l!=null&&_(e[l])&&(u=e[l].el??null),u&&u.parentNode===n){let i=r?r.nextSibling:n.firstChild;if(i!==u){let c=u.previousSibling?E.idOf(u.previousSibling):null;n.insertBefore(u,i),v.emit(h("node","move",E.idOf(u),{parent:H(n),ref:i?E.idOf(i):null,prev:c}))}r=u}}}function Ln(e,t,n){let o=new Map;for(let a of e)_(a)&&a.key!=null&&o.set(a.key,a);Sn(e,t,n);let r=null;for(let a of t){let l=a,u=o.get(l.key??"")??null;u&&u!==l?(te(u,l,n),r=l.el??r):u||(R(l,n,r?r.nextSibling:n.firstChild),r=l.el??r)}let s=new Set(t.filter(a=>_(a)).map(a=>a.key));for(let a of e)if(_(a)&&a.key!=null&&!s.has(a.key)&&a.el?.parentNode===n){let l=E.idOf(a.el);v.emit(h("node","remove",l,{parent:H(n)})),a.el.parentNode?.removeChild(a.el),E.unregister(l,a.el)}}function me(e){if(e==null||typeof e!="object"||Array.isArray(e))return;let t=e.props?.ref;if(typeof t=="function"){let n=e.el;v.emit(h("ref","cleanup",n?E.idOf(n):"null")),t(null)}for(let n of T(e))n!=null&&typeof n=="object"&&!Array.isArray(n)&&me(n)}function Ot(e,t,n){let o=e._id;if(o&&(He(o),v.emit(h("comp","unmount",o,{name:_t(e.type)})),Ze(o)),e.el)pe(e.el,t,e);else{let r=t.childNodes[n];r&&r.parentNode?.removeChild(r)}}function pe(e,t,n){Ce(E.idOf(e)),n&&me(n);let o=E.idOf(e);v.emit(h("node","remove",o,{parent:Q(t)})),e.parentNode?.removeChild(e),E.unregister(o,e)}function Mn(e,t){let n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(let r of n)if(e[r]!==t[r])return!1;return!0}function z(e){let t=String(e.props?.portalKey??"default"),n=Y(t);me(e);for(let o of[...n.childNodes]){Ce(E.idOf(o));let r=E.idOf(o);v.emit(h("node","remove",r,{parent:A.PORTAL(t)})),n.removeChild(o),E.unregister(r,o)}}function De(e,t,n,o=0){let r=T(e),s=T(t);if(s.length>1&&s.every(u=>_(u)&&u.key!=null)){Ln(r,s,n);return}let a=null,l=Math.max(r.length,s.length);for(let u=0;u<l;u++){let i=u<r.length?r[u]:null,c=u<s.length?s[u]:null;if(u>=s.length){if(i!=null&&typeof i=="object"&&B(i)){z(i);continue}if(i!=null&&typeof i=="object"&&i._child&&B(i._child)){z(i._child);continue}if(i!=null&&typeof i=="object"&&typeof i.type=="function"&&i._id){Ot(i,n,u);continue}if(i!=null&&typeof i=="object"&&i.el)pe(i.el,n,i);else{let p=n.childNodes[u];p&&p.parentNode?.removeChild(p)}continue}if(typeof c=="string"||typeof c=="number"){let p=String(c),d=n.childNodes[u];if(d&&d.nodeType===3)d.nodeValue!==p&&(v.emit(h("text","update",H(d),{value:p,prev:d.nodeValue??""})),d.nodeValue=p);else{let f=document.createTextNode(p),m=F();E.register(m,f),v.emit(h("text","create",m,{value:p})),n.insertBefore(f,n.childNodes[u]??null),v.emit(h("node","insert",m,{parent:H(n),ref:null}))}continue}if(c==null||c===!1||c===!0){if(i!=null&&typeof i=="object"&&B(i)){z(i);continue}if(i!=null&&typeof i=="object"&&typeof i.type=="function"&&i._id){Ot(i,n,u);continue}i!=null&&typeof i=="object"&&i.el&&pe(i.el,n,i);continue}if(i!=null&&typeof i=="object"){te(i,c,n);let p=c.el;p&&p.parentNode===n&&(a=p)}else{let p=a?a.nextSibling:n.firstChild,d=R(c,n,p);d&&d.parentNode===n&&(a=d)}}Mt(n,t)}function _t(e){return typeof e=="function"?e.name||"anonymous":String(e)}function H(e){return E.idOf(e)}function Q(e){return E.idOf(e)}var ye=new WeakMap,Rt=new WeakMap;function Zo(e,t,n){return new Promise((o,r)=>{(async()=>{try{document.getElementById("__wf_portal")?.remove();let s=new A,a=await D(t,{});Ue(a,e,s),ye.set(e,a),Rt.set(e,s),o()}catch(s){r(s)}})()})}async function er(e,t,n,o,r){let s=ye.get(e)??null,a=Rt.get(e)??E;if(o==null)return e.innerHTML="",ye.set(e,null),null;let l=await D(o,{},s);return s?te(s,l,e,void 0,a):Ue(l,e,a),ye.set(e,l),l}function tr(e,t){return D(e,{})}async function nr(e,t,n){let o=await e(t,n);return typeof o=="function"?o(t):o}async function or(e,t,n){let o=await e(t,n);return()=>typeof o=="function"?o(t):o}function ge(e,t){if(e==null||typeof e!="object")return;if(Array.isArray(e)){for(let o of e)ge(o,t);return}t(e);let n=e?.props?.children;n!=null&&ge(n,t)}function rr(e,t){let n;return ge(e,o=>{!n&&t(o)&&(n=o)}),n}function sr(e,t){let n=[];return ge(e,o=>{typeof o?.props?.class=="string"&&o.props.class.split(" ").includes(t)&&n.push(o)}),n}function ir(e){let t={ui:{render:()=>{},ready:!0,useExternal:()=>{},useVisualViewport:()=>({keyboardOpen:!1,height:0,offsetTop:0}),useScrollPosition:()=>({y:0}),useStableRef:()=>()=>{},useGlobalKey:()=>()=>{},useReducedMotion:()=>!1,useControlledInput:o=>({value:o.value??"",setValue:o.onChange??(()=>{}),keyword:o.value??"",setKeyword:()=>{},setSelectedLabel:()=>{}}),useOpen:o=>({get open(){return!!o.open},setOpen:o.onOpenChange??(()=>{}),triggerProps:{}})}};return e?{ui:{...t.ui,...e.ui??{}},...e.browser?{browser:e.browser}:{}}:t}function lr(e=()=>!1,t){return{get open(){return e()},setOpen:t??(n=>{}),refresh:()=>{},portal:(n,o)=>e()?n:null,wrapProps:{}}}export{tr as buildToDom,lr as createPopupMock,ir as createTestCtx,sr as findByClass,rr as findVNode,or as mountComponent,Zo as mountToDom,er as patchToDom,nr as renderVNode,ge as walkVNode};
6
+ `))c.startsWith("event: ")?u=c.slice(7):c.startsWith("data: ")&&(i+=c.slice(6));if(i)try{yield{name:u,data:JSON.parse(i)}}catch{}}}}finally{t.releaseLock()}}function vn(e,t,n){n&&(e.length>=1e3&&e.shift(),e.push(t))}function bn(e){return e===401||e===403?"auth_failed":e===429?"rate_limited":e>=500?"provider_error":"invalid_request"}function En(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`trace-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function At(e,t){let n={messages:[],input:"",streaming:!1,error:null,usage:null,step:null},o=new Set,s=Pt(n,Lt,t,()=>{for(let l of[...o])l()});Object.assign(n,s),n.subscribe=l=>(o.add(l),()=>{o.delete(l)});let a=e.selfId();if(a){let l=e.onUnmount(u=>{u===a&&(s.dispose(),l())})}return n}var Mt=I();function Ot(e){let t=new Map,n=new Map,o=!1,r=0;function s(){r||(r=requestAnimationFrame(()=>{r=0;let p=[];for(let[m,d]of t){if(!d.isOpen())continue;let g=d.getEl();if(!g)continue;let v=g.getBoundingClientRect();if(v.width===0&&v.height===0)continue;let y=d.compute(v);Object.assign(d.pos,ue(y,d.panel?.(),d.margin)),p.push(m)}for(let[m,d]of n){let g=d.getScroller(),v=g instanceof Window?Mt.scrollingElement()?.scrollTop??Mt.scrollTop():g.scrollTop??0;v!==d.handle.y&&(d.handle.y=v,p.push(m))}p.length>0&&e(p)}))}let a=null,l=null;function u(){o||(o=!0,a=V(window,"scroll",s,{capture:!0,passive:!0}),l=V(window,"resize",s))}function i(){o&&(a?.(),l?.(),a=null,l=null,o=!1)}function c(p){for(let m of[...t.keys()])(m.startsWith(`popup:${p}:`)||m===`popup:${p}`||m===p)&&t.delete(m);n.delete(p)}function f(){i(),r&&(cancelAnimationFrame(r),r=0),t.clear(),n.clear()}return{popupTrackers:t,scrollTrackers:n,schedulePopupRecompute:s,ensurePopupListeners:u,destroyPopupListeners:i,cleanupTrackers:c,destroy:f}}var Nn=new Map,kn=new Set,xn=new Map,Tn=new Map,Vn=new Map,Ue=new Map,De=Ot(e=>{for(let t of e){let n=Ue.get(t);if(n)try{n()}catch{}}}),Cn=De.popupTrackers,_n=De.scrollTrackers,Sn=De.ensurePopupListeners;function It(e,t,n){Ue.set(e,t);let o={selfId:()=>e,render:s=>{window.__chain="env.render",!s||s.length===0||s.includes(e)?t():console.warn(`[vdom3/ui] render([${s.join(",")}]) \u8DE8\u7EC4\u4EF6\u6E32\u67D3\u6682\u672A\u5B9E\u73B0\uFF08vdom3 \u5F53\u524D\u4EC5\u7EC4\u4EF6\u81EA\u8EAB render\uFF09`)},browser:I(),onUnmount:s=>(n(()=>{s(e),Ue.delete(e)}),()=>{}),registry:{idRegistry:new Map},mediaRegistry:Nn,popupTrackers:Cn,scrollTrackers:_n,isMounting:()=>!1,warned:kn,uncontrolledValues:xn,inputStates:Tn,openStates:Vn,ensurePopupListeners:Sn};return{__v3ui:!0,__compId:e,render:s=>o.render(s),onUnmount:s=>{n(s)},selfId:s=>{o.registry.idRegistry.set(s,e)},useExternal:s=>lt(o,s),useControlled:s=>Oe(o,s),useControlledInput:s=>at(o,s),useOpen:s=>gt(o,s),usePopup:s=>yt(o,s),usePopupPosition:s=>Re(o,s),useTween:(s,a)=>ft(o,s,a),useInView:s=>Tt(o,s),useScrollPosition:s=>Vt(o,s),useGlobalKey:s=>Ct(o,s),useDrag:s=>_t(o,s),useDragDrop:s=>St(o,s),useMedia:(s,a)=>{Nt(o,s,a)},useBreakpoint:(s,a)=>{kt(o,s,a)},useReducedMotion:()=>Ie(o),useStableRef:(s,a)=>dt(o,s,a),usePresence:s=>ae(o,s),useLongPress:s=>ct(o,s),useHoverCapable:()=>le(o),useVisualViewport:()=>xt(o),useAsync:s=>ut(o,s),useChat:s=>At(o,s)}}var me=new Map;function We(e){let t=me.get(e);if(t){try{t()}catch{}me.delete(e)}}function H(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)&&"type"in e}function pe(e){try{let t={};for(let[n,o]of Object.entries(e))if(o!=null&&typeof o=="object"){let r=JSON.stringify(o);r!=null&&r.length<=1e4&&(t[n]=r)}return Object.keys(t).length>0?JSON.stringify(t):null}catch{return null}}var Rt=new Set;function Ht(e,t){let n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(let r of n)if(e[r]!==t[r])return!1;return!0}async function $(e,t,n,o=!1){if(typeof e.type=="function"||e.type===B){let i={...e};if(e.type===B)return r(i,t,n);let c=n!=null&&typeof n=="object"&&n.type===e.type&&n.key===e.key&&n._render?n:null;if(c){if(i._render=c._render,i._id=c._id,Me(i),!o&&Ht(c.props,i.props)){if(i._child=c._child,c.el!=null&&(i.el=c.el),globalThis.__WF_V3_AUDIT!=="0"&&c._propsSnap!=null){let d=pe(i.props);if(d!=null&&d!==c._propsSnap){let g=`${R(i.type)}:${d.slice(0,40)}`;Rt.has(g)||(Rt.add(g),console.warn(`[vdom3/audit] \u7EC4\u4EF6 ${R(i.type)} \u7684 props \u5BF9\u8C61\u5185\u5BB9\u5DF2\u53D8\u4F46\u5F15\u7528\u672A\u53D8\uFF08\u539F\u5730\u4FEE\u6539\u5BF9\u8C61\uFF1F\uFF09\u2014\u2014\u526A\u679D\u5C06\u8DF3\u8FC7\u91CD\u6E32\u67D3\u2014\u2014\u8BF7\u65B0\u5EFA\u5BF9\u8C61\u4F20 props\uFF08props \u4E0D\u53EF\u53D8\u5951\u7EA6\uFF09`))}}return w.emit(h("comp","build",i._id,{name:R(i.type),reused:!0,index:!0,reason:"reuse-skip",propsKeys:Object.keys(i.props)})),i._propsSnap=pe(i.props),i}let m=Object.keys({...c.props,...i.props}).filter(d=>c.props[d]!==i.props[d]);w.emit(h("props","update",i._id,{name:R(i.type),keys:m})),i._propsSnap=pe(i.props),w.emit(h("comp","build",i._id,{name:R(i.type),reused:!0,index:!0,reason:o?"root-render":"props-changed",changedKeys:m}))}else{i._id=j(),Me(i),w.emit(h("comp","build",i._id,{name:R(i.type),reused:!1,index:!0,reason:"mount"})),w.emit(h("comp","mount",i._id,{name:R(i.type)}));let m=i._id,d=()=>{window.__chain="componentRender:"+m;let y=t._componentRender;y?(window.__chain="fn("+m+")",y(m)):(window.__chain="ctx.render("+m+")",t.render())},g=Object.assign(Object.create(t),{render:d,onUnmount:y=>{me.set(m,y)},browser:I(),ui:It(m,d,y=>{me.set(m,y)})}),v=null;try{v=await i.type(i.props,g)}catch(y){let N=y;throw w.emit(h("error","throw",i._id,{phase:"factory",name:R(i.type),message:N?.message??String(y)})),y}i._render=v,i._propsSnap=pe(i.props)}w.emit(h("comp","render",i._id,{name:R(i.type)}));let f=null;try{f=await i._render(i.props)}catch(m){let d=m;throw w.emit(h("error","throw",i._id,{phase:"renderFn",name:R(i.type),message:d?.message??String(m)})),m}i._child=null;let p=c?._child??null;if(f){let m=await $(f,t,p!=null&&typeof p=="object"?p:null);i._child=m}return i}async function r(i,c,f){let p=String(i.props?.appId??""),m=it(p);if(!m)return w.emit(h("app","error",void 0,{appId:p,reason:"unknown-app"})),i;let d=f!=null&&f.type===B&&f.appId===p;if(!d||!f._appOutput){w.emit(h("app","mount",void 0,{appId:p}));let y=await m(i.props?.props??{},c);i._appOutput=y}else{i._appOutput=f._appOutput;let y=f.props?.props??{},N=i.props?.props??{},x=[...new Set([...Object.keys(y),...Object.keys(N)])].filter(S=>y[S]!==N[S]);x.length>0&&w.emit(h("app","update",void 0,{appId:p,keys:x}))}let g=d&&f._appOutput?await $(f._appOutput,c,null):null,v=i._appOutput?await $(i._appOutput,c,g):null;return i._child=v,i.appId=p,i}let s=T(n??{}),a=0,l=null;for(let i of T(e)){if(H(i)){let c=s[a],f=await $(i,t,c!=null&&typeof c=="object"?c:null);f!==i&&(l??=[...T(e)],l[a]=f)}a++}if(l==null&&n!=null&&typeof n=="object"&&!Array.isArray(n)){let i=T(n),c=T(e);if(Ht(n.props??{},e.props??{})&&i.length===c.length&&i.every((f,p)=>f===c[p]))return n}let u={...e};return l&&(u.children=l),u}function R(e){return typeof e=="function"?e.name||"anonymous":String(e)}var Pn=globalThis.__WF_V3_AUDIT!=="0";function Ut(e,t){if(!Pn)return;let n=T(t).filter(s=>s!=null&&typeof s=="object"&&s.el!=null);if(n.length<2)return;let o=n[0].el?.parentNode;if(!o)return;let r=-1;for(let s of n){let a=s.el;if(a.parentNode!==o)return;let l=[...o.childNodes].indexOf(a);if(l<0)return;if(l<r){let u=globalThis.__WF_V3_AUDIT_STACK?new Error().stack?.split(`
7
+ `).slice(2,5).map(f=>f.trim().slice(0,70)).join(" | "):"",i=n.map(f=>typeof f.type=="function"?"C":String(f.type).slice(0,8)),c=n.map(f=>[...o.childNodes].indexOf(f.el));console.warn(`[vdom3/audit] children \u987A\u5E8F\u9519\u4F4D idx=${l}<${r} tag=${String(s.type).slice(0,30)} kinds=[${i.join(",")}] idxs=[${c.join(",")}] kids=${n.length} domKids=${o.childNodes.length}${u?" || "+u:""}`);return}r=l}}var Ln=new Set(["svg","path","circle","rect","line","polyline","polygon","g","defs","use","text","tspan","ellipse","title","desc","marker","symbol","linearGradient","radialGradient","stop","mask","pattern","clipPath"]);function ee(e){if(e==null||typeof e!="object")return!1;let t=e.type;return t===q||typeof t=="symbol"&&e.props?.portalKey!=null}function An(e){if(e==null||typeof e!="object")return!1;let t=e.type;return(t===J||typeof t=="symbol")&&e.props?.portalKey==null}var E=new O;function $e(e,t,n){let o=E;n&&(E=n);try{Le(t),t.innerHTML="",E.register(O.ROOT,t),D(e,t)}finally{E=o}}function D(e,t,n){if(typeof e.type=="function"||e.type===B){let l=e._child!==void 0?e._child:T(e)[0]??null;if(l==null)return null;if(e.el!=null&&(e.el.isConnected||e.el.parentNode===t))return e.el;let u=D(l,t,n);return e.el=u,e._outFirst=l._outFirst??u,e._outLast=l._outLast??u,u}if(An(e)){let l=null,u=null;for(let i of T(e)){let c=Fe(i,t,n);c&&(l||(l=c),u=c)}return e._outFirst=l,e._outLast=u,l}if(ee(e)){let u=String(e.props?.portalKey??"default"),i=Z(u);Le(i),E.register(O.PORTAL(u),i);let c=null,f=i.childNodes.length===0;for(let p of T(e)){let m=Fe(p,i);m&&!c&&(c=m)}return f&&i.childNodes.length>0&&w.emit(h("portal","open",void 0,{portalKey:u})),e.el=i,c??i}let o=e.type,r=Ln.has(o)?document.createElementNS("http://www.w3.org/2000/svg",o):document.createElement(o),s=j();r.setAttribute("data-v3-id",s),E.register(s,r),e.el=r,w.emit(h("node","create",s,{tag:e.type}));for(let[l,u]of Object.entries(e.props??{}))if(!(l==="key"||l==="children"||l==="ref")){if(typeof u=="function"&&/^on[A-Z]/.test(l)){Ae(s,l.slice(2).toLowerCase(),u,t);continue}if(u!=null&&u!==!1){if(l==="value"&&r instanceof HTMLInputElement)r.value=String(u);else if(l==="style"&&typeof u=="object"&&!Array.isArray(u)){let i=Object.entries(u).filter(([,c])=>c!=null&&c!==!1).map(([c,f])=>`${c.replace(/[A-Z]/g,p=>"-"+p.toLowerCase())}:${f}`).join(";");r.setAttribute("style",i)}else r.setAttribute(l,String(u));w.emit(h("prop","update",s,{key:l,value:u,prev:""}))}}e._outFirst=r,e._outLast=r,n&&n.parentNode===t?t.insertBefore(r,n):t.appendChild(r),w.emit(h("node","insert",s,{parent:W(t),ref:n?M(n):null,causeId:U??void 0}));let a=e.props?.ref;typeof a=="function"&&(w.emit(h("ref","mount",s,{})),a(r));for(let l of T(e))Fe(l,r);return r}function Mn(e,t,n,o){if(e!=null&&typeof e=="object"&&e._outFirst&&e._outLast&&e._outLast!==e._outFirst){let r=e._outFirst,s=e._outLast;typeof e.type=="function"&&e._id?$t(e,t,o):e.el&&e.el.parentNode===t?ge(e.el,t,e):r.parentNode===t&&Y(r,t);let a=r.nextSibling,l=64,u=0;for(;a&&a!==s&&u++<l;){let i=a.nextSibling;Y(a,t),a=i}s.parentNode===t&&Y(s,t);return}if(e!=null&&typeof e=="object"&&ee(e)){ne(e);return}if(e!=null&&typeof e=="object"&&e._child&&ee(e._child)){ne(e._child);return}if(e!=null&&typeof e=="object"&&typeof e.type=="function"&&e._id){$t(e,t,o);return}e!=null&&typeof e=="object"&&e.el?ge(e.el,t,e):n&&Y(n,t)}function Y(e,t){let n=E.idOf(e);n&&(w.emit(h("node","remove",n,{parent:W(t),causeId:U??void 0})),E.unregister(n,e)),e.parentNode?.removeChild(e)}function je(e,t){let n=document.createComment("wf-hole"),o=j();return E.register(o,n),w.emit(h("node","create",o,{kind:"hole"})),t&&t.parentNode===e?e.insertBefore(n,t):e.appendChild(n),w.emit(h("node","insert",o,{parent:W(e),ref:t?M(t):null,kind:"hole",causeId:U??void 0})),n}function Fe(e,t,n){if(e==null||e===!1||e===!0)return je(t,n);if(typeof e=="string"||typeof e=="number"){let o=document.createTextNode(String(e)),r=j();return E.register(r,o),w.emit(h("text","create",r,{value:String(e)})),n&&n.parentNode===t?t.insertBefore(o,n):t.appendChild(o),w.emit(h("node","insert",r,{parent:W(t),ref:n?M(n):null})),o}return D(e,t,n)}function oe(e,t,n,o,r){let s=E;r&&(E=r);try{return e!==null&&t!==null&&typeof e=="object"&&typeof t=="object"&&e===t?e.el??null:In(e,t,n,o)}finally{E=s}}var On=0,U=null,qt=[];function Dt(){return qt.push(U),U=`c${++On}`,U}function Wt(){U=qt.pop()??null}function Ft(e){if(e==null||typeof e=="boolean")return"hole";if(typeof e=="string"||typeof e=="number")return"text";if(typeof e=="object"&&!Array.isArray(e)){let t=e.type;return typeof t=="function"?"comp":t===J?"frag":t===q?"portal":"native"}return"unknown"}function In(e,t,n,o){let r=Ft(e),s=Ft(t);if(w.emit(h("diff","transition",void 0,{from:r,to:s,level:"trace"})),typeof t=="string"||typeof t=="number"){let i=String(t),c=e&&typeof e=="object"?e.el:n.childNodes[0]??null;if(c&&c.nodeType===3)return c.nodeValue!==i&&(w.emit(h("text","update",M(c),{value:i,prev:c.nodeValue??""})),c.nodeValue=i),c;let f=document.createTextNode(i),p=j();return E.register(p,f),w.emit(h("text","create",p,{value:i})),o&&o.parentNode===n?n.insertBefore(f,o):n.appendChild(f),w.emit(h("node","insert",p,{parent:W(n),ref:o?M(o):null})),f}if(t==null||t===!1||t===!0){if(e!=null&&typeof e=="object"&&!Array.isArray(e)){if(ee(e))ne(e);else if(e.el&&e.el.parentNode===n){let i=E.idOf(e.el);w.emit(h("node","remove",i,{parent:W(n)})),e.el.parentNode?.removeChild(e.el),E.unregister(i,e.el)}}return null}let a=t,l=e!=null&&typeof e=="object"&&"type"in e;if(l&&e.type===a.type&&e.key===a.key){let i=e,c=K(a);ye(l?K(e):null,c,"reuse");let f=Wn[c];return f?f(i,a,n,o):(ye(l?K(e):null,c,"unhandled"),console.warn(`[vdom3/patch] kind=${c} \u65E0\u540C\u7C7B\u578B\u5904\u7406\u5668\u2014\u2014\u964D\u7EA7\u91CD\u5EFA\uFF08kind \u5206\u53D1\u5B8C\u6574\u6027\u7F3A\u5931\uFF09`),D(a,n,o))}if(ye(l?K(e):null,K(a),"rebuild"),l&&typeof e.type=="function"&&e._id&&(We(e._id),w.emit(h("comp","unmount",e._id,{name:qe(e.type)}))),l){let i=e.el;i&&i.parentNode===n?ge(i,n,e):e&&ee(e)&&ne(e)}return D(a,n,o)}function Rn(e,t,n){let o=M(e),r=new Set([...Object.keys(t??{}),...Object.keys(n??{})]),s=t?.ref,a=n?.ref;s!==a&&(typeof s=="function"&&s(null),typeof a=="function"&&a(e));for(let l of r){if(l==="key"||l==="children"||l==="ref")continue;let u=t?.[l],i=n?.[l];if(u!==i&&!(u!=null&&i!=null&&typeof u=="object"&&typeof i=="object"&&!Array.isArray(u)&&!Array.isArray(i)&&Kn(u,i))){if(typeof i=="function"&&/^on[A-Z]/.test(l)){Ae(o,l.slice(2).toLowerCase(),i,e);continue}if(i==null||i===!1)l==="value"&&e instanceof HTMLInputElement?e.value="":e.removeAttribute(l);else if(l==="value"&&e instanceof HTMLInputElement)e.value=String(i);else if(l==="style"&&typeof i=="object"&&!Array.isArray(i)){let c=Object.entries(i).filter(([,f])=>f!=null&&f!==!1).map(([f,p])=>`${f.replace(/[A-Z]/g,m=>"-"+m.toLowerCase())}:${p}`).join(";");e.setAttribute("style",c)}else e.setAttribute(l,String(i));w.emit(h("prop","update",o,{key:l,value:i,prev:u??""}))}}}function ye(e,t,n){w.emit(h("vnode","patch",void 0,{oldKind:e,newKind:t,strategy:n}))}function Hn(e,t,n,o){let r=e.el;return r==null?(ye(K(e),"native","unhandled"),console.warn(`[vdom3/patch] native \u590D\u7528\u4F46 ov.el \u7F3A\u5931\uFF08tag=${String(e.type)}\u2014\u2014kind \u5206\u53D1\u6216\u6E32\u67D3\u65F6\u5E8F\u9519\u8BEF\uFF09\u2014\u2014\u964D\u7EA7\u91CD\u5EFA`),D(t,n,o)):(t.el=r,Rn(r,e.props,t.props),Ke(e,t,r),r)}function jt(e,t,n,o){t._render=e._render,t._id=e._id;let r=t._child!==void 0?t._child:T(t)[0]??null,s=e._child!==void 0?e._child:T(e)[0]??null;if(r==null||r===!1||r===!0){if(s&&ee(s))ne(s);else if(e.el){he(s);let a=e._outFirst??e.el,l=e._outLast??e.el;if(l!==a&&a.parentNode===n){let u=E.idOf(a);w.emit(h("node","remove",u,{parent:W(n)})),a.parentNode?.removeChild(a),E.unregister(u,a);let i=a.nextSibling,c=64,f=0;for(;i&&i!==l&&f++<c;){let p=i.nextSibling;Y(i,n),i=p}l.parentNode===n&&Y(l,n)}else{let u=E.idOf(e.el);w.emit(h("node","remove",u,{parent:W(n)})),e.el.parentNode?.removeChild(e.el),E.unregister(u,e.el)}e.el=null}return t.el=null,null}return e.el==null||!(e.el.isConnected||e.el.parentNode===n)?t.el=D(t,n,o):(oe(s,r,n,o),t.el=e.el,t._outFirst=r._outFirst??t.el,t._outLast=r._outLast??t.el),t.el}function Un(e,t,n,o){Ke(e,t,n,Fn(e));let r=T(e).find(u=>u!=null&&typeof u=="object"&&!Array.isArray(u));t.el=e.el??r?.el??null;let s=T(t).filter(u=>u!=null&&typeof u=="object"&&!Array.isArray(u)),a=s[0],l=s[s.length-1];return t._outFirst=a?.el??t.el,t._outLast=l?._outLast??l?.el??t.el,t.el}function Dn(e,t,n,o){let r=String(t.props?.portalKey??"default"),s=Z(r);return E.register(O.PORTAL(r),s),Ke(e,t,s),t.el=s,s}var Wn={native:Hn,comp:jt,app:jt,frag:Un,portal:Dn,text:void 0,null:void 0};function Fn(e){let n=T(e).find(r=>r!=null&&typeof r=="object"&&!Array.isArray(r))?.el,o=n?.parentNode;if(o&&n){let r=0;for(let s of o.childNodes){if(s===n)return r;r++}}return 0}function jn(e,t,n){let o=new Map;e.forEach((s,a)=>{H(s)&&s.key!=null&&o.set(s.key,a)});let r=null;for(let s=0;s<t.length;s++){let a=t[s];if(!H(a)||a.key==null){r=null;continue}let l=o.get(a.key),u=null;if(l!=null&&H(e[l])&&(u=e[l].el??null),u&&u.parentNode===n){let i=r?r.nextSibling:n.firstChild;if(i!==u){let c=u.previousSibling?E.idOf(u.previousSibling):null;n.insertBefore(u,i),w.emit(h("node","move",E.idOf(u),{parent:M(n),ref:i?E.idOf(i):null,prev:c,key:a.key,causeId:U??void 0}))}r=u}}}function $n(e,t,n){let o=new Map;for(let a of e)H(a)&&a.key!=null&&o.set(a.key,a);jn(e,t,n);let r=null;for(let a of t){let l=a,u=o.get(l.key??"")??null;u&&u!==l?(oe(u,l,n),r=l.el??r):u||(D(l,n,r?r.nextSibling:n.firstChild),r=l.el??r)}let s=new Set(t.filter(a=>H(a)).map(a=>a.key));for(let a of e)if(H(a)&&a.key!=null&&!s.has(a.key)&&a.el?.parentNode===n){let l=E.idOf(a.el);w.emit(h("node","remove",l,{parent:M(n)})),a.el.parentNode?.removeChild(a.el),E.unregister(l,a.el)}}function he(e){if(e==null||typeof e!="object"||Array.isArray(e))return;let t=e.props?.ref;if(typeof t=="function"){let n=e.el;w.emit(h("ref","cleanup",n?E.idOf(n):"null")),t(null)}for(let n of T(e))n!=null&&typeof n=="object"&&!Array.isArray(n)&&he(n)}function $t(e,t,n){let o=e._id;if(o&&(We(o),w.emit(h("comp","unmount",o,{name:qe(e.type)})),st(o)),e.el)ge(e.el,t,e);else{let r=t.childNodes[n];r&&r.parentNode?.removeChild(r)}}function ge(e,t,n){let o=globalThis.__WF_V3_AUDIT!=="0"?Se(E.idOf(e)):0;if(Pe(E.idOf(e)),o>0){let s=Se(E.idOf(e));s>0&&console.warn(`[vdom3/audit] \u8282\u70B9\u76D1\u542C\u6B8B\u7559\uFF1A${s}/${o} \u4E2A\u76D1\u542C\u672A\u6E05\u7406\uFF08${String(n?.type??e.nodeName).slice(0,20)}\uFF09\u2014\u2014\u4E8B\u4EF6\u4ECD\u4F1A\u54CD\u5E94\u2014\u2014\u6CC4\u6F0F`)}n&&he(n);let r=E.idOf(e);w.emit(h("node","remove",r,{parent:W(t),causeId:U??void 0})),e.parentNode?.removeChild(e),E.unregister(r,e)}function Kn(e,t){let n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(let r of n)if(e[r]!==t[r])return!1;return!0}function ne(e){let t=String(e.props?.portalKey??"default"),n=Z(t);he(e);for(let o of[...n.childNodes]){Pe(E.idOf(o));let r=E.idOf(o);w.emit(h("node","remove",r,{parent:O.PORTAL(t)})),n.removeChild(o),E.unregister(r,o)}n.childNodes.length===0&&w.emit(h("portal","close",void 0,{portalKey:t}))}var Kt=new Set;function Ke(e,t,n,o=0){let r=T(e),s=T(t),a=s.length>1&&s.every(f=>H(f)&&f.key!=null)?"keyed":"unkeyed";if(w.emit(h("diff","mode",void 0,{mode:a,len:s.length,prevLen:r.length,level:"trace"})),globalThis.__WF_V3_AUDIT!=="0"&&r.length!==s.length){let f=`${s.length}:${r.length}`;if(!Kt.has(f)){Kt.add(f);for(let p=0;p<s.length;p++){let m=s[p];if(m!=null&&typeof m=="object"&&!Array.isArray(m)&&typeof m.type=="function"&&m.key==null){console.error(`[vdom3/audit] \u52A8\u6001\u6570\u7EC4\u4F4D\u7F6E ${p} \u7684\u7EC4\u4EF6\u7F3A\u5C11 key\uFF08${qe(m.type)}\uFF09\u2014\u2014\u5217\u8868\u589E\u5220/\u91CD\u6392\u4F1A\u9519\u4F4D\u7EC4\u4EF6\u5B9E\u4F8B\u72B6\u6001\u3002\u8BF7\u63D0\u4F9B\u4E1A\u52A1\u8EAB\u4EFD key\uFF08\u5982 key={item.id}\uFF09\uFF1B\u65E0\u72B6\u6001 native \u9879\u8C41\u514D\u3002`);break}}}}if(s.length>1&&s.every(f=>H(f)&&f.key!=null)){$n(r,s,n);return}let l=f=>!!f&&f.nodeType===8&&(f.nodeValue??"").includes("wf-hole"),u=Math.max(r.length,s.length),i=o,c=(f,p)=>{if(f!=null&&typeof f=="object"&&!Array.isArray(f)){let m=f._outFirst,d=f._outLast;if(m&&d&&d!==m){let g=1,v=m,y=64,N=0;for(;v&&v!==d&&N++<y;)g++,v=v.nextSibling;return g}}return p?1:0};for(let f=0;f<u;f++){let p=f<r.length?r[f]:null,m=f<s.length?s[f]:null,d=n.childNodes[i]??null,g=()=>Mn(p,n,d,f);if(f>=s.length){let y=p!=null&&typeof p=="object"&&p._outFirst&&p._outLast&&p._outLast!==p._outFirst?c(p,d):1;g(),i+=y;continue}if(typeof m=="string"||typeof m=="number"){let y=String(m);if(d&&d.nodeType===3)d.nodeValue!==y&&(w.emit(h("text","update",M(d),{value:y,prev:d.nodeValue??""})),d.nodeValue=y);else{let N=document.createTextNode(y),x=j();if(E.register(x,N),w.emit(h("text","create",x,{value:y})),d&&d.parentNode===n){let S=E.idOf(d);S&&(w.emit(h("node","remove",S,{parent:M(n)})),E.unregister(S,d)),n.replaceChild(N,d)}else n.appendChild(N);w.emit(h("node","insert",x,{parent:M(n),ref:null}))}i+=1;continue}if(m==null||m===!1||m===!0){if(!l(d)){Dt();try{let y=d?d.nextSibling:null;g(),je(n,y)}finally{Wt()}}i+=1;continue}if(p!=null&&typeof p=="object"&&p.type===m.type)oe(p,m,n,d??null);else{Dt();try{let y=D(m,n,d??null);d&&!l(d)?g():d&&l(d)&&Y(d,n),y==null&&!d&&je(n,null)}finally{Wt()}}let v=c(m,d)||(p!=null&&typeof p=="object"&&!Array.isArray(p)&&p._outFirst&&p._outLast&&p._outLast!==p._outFirst?c(p,d):1);i+=v}Ut(n,t)}function qe(e){return typeof e=="function"?e.name||"anonymous":String(e)}function M(e){return E.idOf(e)}function W(e){return E.idOf(e)}var we=new WeakMap,Bt=new WeakMap;function fr(e,t,n){return new Promise((o,r)=>{(async()=>{try{document.getElementById("__wf_portal")?.remove();let s=new O,a=await $(t,{});$e(a,e,s),we.set(e,a),Bt.set(e,s),o()}catch(s){r(s)}})()})}async function pr(e,t,n,o,r){let s=we.get(e)??null,a=Bt.get(e)??E;if(o==null)return e.innerHTML="",we.set(e,null),null;let l=await $(o,{},s);return s?oe(s,l,e,void 0,a):$e(l,e,a),we.set(e,l),l}function mr(e,t){return $(e,{})}async function yr(e,t,n){let o=await e(t,n);return typeof o=="function"?o(t):o}async function gr(e,t,n){let o=await e(t,n);return()=>typeof o=="function"?o(t):o}function ve(e,t){if(e==null||typeof e!="object")return;if(Array.isArray(e)){for(let o of e)ve(o,t);return}t(e);let n=e?.props?.children;n!=null&&ve(n,t)}function hr(e,t){let n;return ve(e,o=>{!n&&t(o)&&(n=o)}),n}function wr(e,t){let n=[];return ve(e,o=>{typeof o?.props?.class=="string"&&o.props.class.split(" ").includes(t)&&n.push(o)}),n}function vr(e){let t={ui:{render:()=>{},ready:!0,useExternal:()=>{},useVisualViewport:()=>({keyboardOpen:!1,height:0,offsetTop:0}),useScrollPosition:()=>({y:0}),useStableRef:()=>()=>{},useGlobalKey:()=>()=>{},useReducedMotion:()=>!1,useControlledInput:o=>({value:o.value??"",setValue:o.onChange??(()=>{}),keyword:o.value??"",setKeyword:()=>{},setSelectedLabel:()=>{}}),useOpen:o=>({get open(){return!!o.open},setOpen:o.onOpenChange??(()=>{}),triggerProps:{}})}};return e?{ui:{...t.ui,...e.ui??{}},...e.browser?{browser:e.browser}:{}}:t}function br(e=()=>!1,t){return{get open(){return e()},setOpen:t??(n=>{}),refresh:()=>{},portal:(n,o)=>e()?n:null,wrapProps:{}}}export{mr as buildToDom,br as createPopupMock,vr as createTestCtx,wr as findByClass,hr as findVNode,gr as mountComponent,fr as mountToDom,pr as patchToDom,yr as renderVNode,ve as walkVNode};
@@ -12,6 +12,10 @@
12
12
  * - 零重绑(handler 变化 = Map 覆盖——事件流零噪音——§5.1 稳定引用仅为性能建议)
13
13
  * - 生命周期:EVENT_BIND(挂载点首次注册)/ EVENT_UNBIND(节点移除时代理删除)
14
14
  */
15
+ /** event → (nodeId → 条目{handler, once})——模块级全局(节点 id 全局唯一) */
16
+ /** 监听计数 API(round3 阶段 4——泄漏检测:unmount 后残留检查——
17
+ * handlers[event][nodeId] 数 = 某节点的绑定数) */
18
+ export declare function listenerCount(nodeId: string | null): number;
15
19
  /** 绑定/更新 handler(Map 覆盖——零重绑零事件) */
16
20
  export declare function bindEvent(nodeId: string, event: string, handler: EventListener, once?: boolean): void;
17
21
  /** 解绑(节点移除——代理删除 + EVENT_UNBIND) */
@@ -59,6 +59,12 @@ export interface VNode {
59
59
  _id?: string;
60
60
  /** 组件输出(build 写——独立于 children(props.children 是入参);避免覆盖污染对照树) */
61
61
  _child?: VNode | null;
62
+ /** 多节点输出范围(阶段 2——渲染后回填:首/尾 DOM 节点——组件/Fragment 输出
63
+ * 多节点时移除/推进用范围(vdom2 getOutputRange 语义——事件流引用替代 DOM 标记) */
64
+ _outFirst?: Node | null;
65
+ _outLast?: Node | null;
66
+ /** props 内容快照(透明度 round2 阶段 1——dev only——检测原地改对象) */
67
+ _propsSnap?: string | null;
62
68
  }
63
69
  export type VNodeChild = VNode | string | number | null | undefined | boolean | VNodeChild[];
64
70
  /** vnode kind 分类(全链路事件流的决策基础——单一规则源)
@@ -82,7 +88,7 @@ export type AppVNode = VNode & {
82
88
  appId?: string;
83
89
  _appOutput?: VNode | null;
84
90
  };
85
- export type Entity = 'route' | 'comp' | 'props' | 'vnode' | 'node' | 'text' | 'prop' | 'event' | 'ref' | 'error' | 'internal' | 'stream' | 'effect' | 'app' | 'app';
91
+ export type Entity = 'route' | 'comp' | 'props' | 'vnode' | 'node' | 'text' | 'prop' | 'event' | 'ref' | 'error' | 'internal' | 'stream' | 'effect' | 'app' | 'diff' | 'render' | 'portal';
86
92
  export type Action =
87
93
  /** location 层 */
88
94
  'change'
@@ -98,6 +104,17 @@ export type Action =
98
104
  | 'queue' | 'notfound' | 'skip'
99
105
  /** 事件流自身层(buffer 状态——溢出覆盖/水位预警可观测) */
100
106
  | 'overflow' | 'watermark'
107
+ /** diff 决策层(阶段 0——vdom2 机制事件化):
108
+ * transition = 类型转换决策(from 旧 kind → to 新 kind——patch 查表分派观测)
109
+ * mode = key 模式选择(unkeyed/keyed/mixed——业务身份声明协议观测)
110
+ * summary = children 摘要(old/new/dom 三序列——顺序错乱快速定位) */
111
+ | 'transition' | 'mode' | 'summary'
112
+ /** 渲染性能层(round2 阶段 2——每次渲染耗时可观测) */
113
+ | 'duration'
114
+ /** 调度时间线层(round3 阶段 2——渲染排队/合并可观测) */
115
+ | 'queued' | 'flushed'
116
+ /** portal 生命周期层(round3 阶段 3——弹层开合可观测) */
117
+ | 'open' | 'close'
101
118
  /** 组件副作用层(ref 挂载/动画/滚动锁/焦点 trap/滚动——非渲染的 DOM 行为可观测) */
102
119
  | 'mount' | 'animate' | 'lock' | 'unlock' | 'focus' | 'scroll'
103
120
  /** 用户文本操作层(输入/选区/剪贴板——用户对文本的交互可观测) */
@@ -115,6 +132,9 @@ export type V3Event = {
115
132
  target?: string;
116
133
  /** 参数(对象相关数据——旧值/新值/父节点/属性 key 等) */
117
134
  payload?: Record<string, unknown>;
135
+ /** 渲染会话 id(一次渲染(renderByIds/首帧/导航)内的事件共享同一 session——
136
+ * 按会话过滤/回放——vdom2 traceId 事件流化)——emit 时注入(stream 持有当前会话) */
137
+ session?: string;
118
138
  ts: number;
119
139
  };
120
140
  /** patch 决策策略(vnode:patch 的 payload.strategy) */
@@ -124,11 +144,17 @@ export type ErrorPhase = 'factory' | 'renderFn' | 'build' | 'patch' | 'mount' |
124
144
  /** 事件流(记录/回放/断言——DOM = fold(events)) */
125
145
  export interface EventStream {
126
146
  emit(ev: V3Event): void;
147
+ /** 新渲染会话开始(每次渲染入口调用——同一次渲染的事件共享 session) */
148
+ setSession(): string;
149
+ /** 当前会话 id(无渲染进行时 null) */
150
+ currentSession(): string | null;
127
151
  /** 实时订阅(emit 同步回调——缓冲溢出也不丢事件——返回退订)
128
152
  * 重载:subscribe(fn) 全部事件;subscribe(filter, fn) 按层过滤(entity) */
129
153
  subscribe(fn: (ev: V3Event) => void): () => void;
130
154
  subscribe(filter: Entity[] | Entity, fn: (ev: V3Event) => void): () => void;
131
155
  events(): V3Event[];
156
+ /** 按渲染会话过滤(一次渲染的事件全量——调试/回放按会话) */
157
+ eventsBySession(sessionId: string): V3Event[];
132
158
  /** 当前有效条数(缓冲占用——事件流自身状态可观测) */
133
159
  size(): number;
134
160
  /** 缓冲容量 */