weifuwu 0.76.0 → 0.78.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -41
- package/dist/components/DatePicker/DatePicker.d.ts +1 -1
- package/dist/components/List/List.d.ts +3 -0
- package/dist/components/Tour/Tour.d.ts +1 -1
- package/dist/components/index.js +12 -12
- package/dist/components/style.css +17 -0
- package/dist/index.js +1272 -1228
- package/dist/scheduler/index.d.ts +7 -2
- package/dist/ui-dom/hooks/index.d.ts +0 -1
- package/dist/ui-dom/hooks/popup.d.ts +1 -10
- package/dist/ui-dom/hooks/stable.d.ts +1 -1
- package/dist/ui-dom/hooks/types.d.ts +0 -1
- package/dist/ui-dom/index.d.ts +1 -1
- package/dist/ui-dom/index.js +10 -10
- package/dist/ui-dom/jsx-runtime.js +1 -1
- package/dist/ui-dom/testing.js +1 -1
- package/dist/ui-dom/types.d.ts +31 -41
- package/dist/ui-dom/vdom/audit.d.ts +20 -0
- package/dist/ui-dom/vdom/build.d.ts +10 -3
- package/dist/ui-dom/vdom/diff.d.ts +7 -8
- package/dist/ui-dom/vdom/index.d.ts +1 -1
- package/dist/ui-dom/vdom/mount.d.ts +14 -5
- package/dist/ui-dom/vdom/render.d.ts +4 -0
- package/dist/ui-dom/vdom/serve.d.ts +1 -1
- package/dist/ui-dom/vdom/transform.d.ts +32 -0
- package/dist/ui-dom/vnode.d.ts +18 -10
- package/docs/components.md +5 -5
- package/docs/custom-components.md +86 -54
- package/docs/examples.md +35 -41
- package/docs/frontend-middleware.md +3 -4
- package/docs/frontend-ui-dom.md +22 -18
- package/docs/frontend.md +243 -168
- package/docs/mobile.md +2 -2
- package/docs/realtime.md +8 -3
- package/package.json +1 -1
- package/dist/ui-dom/focus-trap.d.ts +0 -4
- package/dist/ui-dom/scroll-lock.d.ts +0 -5
- package/dist/ui-dom/vdom/scheduler.d.ts +0 -13
|
@@ -8,10 +8,15 @@
|
|
|
8
8
|
* 依赖:queue(参数传入——触发后入队执行)
|
|
9
9
|
*/
|
|
10
10
|
import type { Context, Middleware } from '../types.ts';
|
|
11
|
+
import type { Redis } from '../db/contracts.ts';
|
|
11
12
|
import type { QueueClientModule } from '../queue/index.ts';
|
|
12
13
|
export interface SchedulerOptions {
|
|
13
|
-
/**
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Redis 客户端(必传——模式 A 显式注入,对齐 queue({ redis })):
|
|
16
|
+
* 守护循环走 redis.createConnection() 独立连接(不占池——对齐 queue worker 阻塞读);
|
|
17
|
+
* 所有权在调用方:scheduler.close() 不关闭注入的 redis(只关守护连接)。
|
|
18
|
+
*/
|
|
19
|
+
redis: Redis;
|
|
15
20
|
/** key 前缀。默认 'wf:sched:'。 */
|
|
16
21
|
prefix?: string;
|
|
17
22
|
/** 守护循环扫描间隔 ms。默认 1000(延时任务精度上限)。 */
|
|
@@ -26,6 +26,5 @@ export { useDragDrop } from './events.ts';
|
|
|
26
26
|
export { usePopupPosition } from './popup.ts';
|
|
27
27
|
export { usePopup } from './popup.ts';
|
|
28
28
|
export { useOpen } from './popup.ts';
|
|
29
|
-
export { useDialog } from './popup.ts';
|
|
30
29
|
export { useChat } from './chat.ts';
|
|
31
30
|
export { useExternal } from './external.ts';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* hooks/popup — 弹层 hooks
|
|
3
3
|
*
|
|
4
|
-
* usePopupPosition / usePopup / useOpen
|
|
4
|
+
* usePopupPosition / usePopup / useOpen
|
|
5
5
|
*/
|
|
6
6
|
import type { HookEnv } from './types.ts';
|
|
7
7
|
import type { PopupPositionOptions, PopupPosition, UsePopupOptions, UsePopupHandle } from '../types.ts';
|
|
@@ -26,12 +26,3 @@ export declare function useOpen(env: HookEnv, options: {
|
|
|
26
26
|
onFocus: () => void;
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
|
-
/** 全屏对话框组合器:退场状态机 + 滚动锁 + 焦点 trap(基于 usePresence) */
|
|
30
|
-
export declare function useDialog(env: HookEnv, options?: {
|
|
31
|
-
name?: string;
|
|
32
|
-
}): {
|
|
33
|
-
readonly phase: "closed" | "open" | "exit";
|
|
34
|
-
rootRef: (el: HTMLElement | null) => void;
|
|
35
|
-
panelRef: (el: HTMLElement | null) => void;
|
|
36
|
-
sync: (open: boolean) => "closed" | "open" | "exit";
|
|
37
|
-
};
|
|
@@ -20,7 +20,7 @@ export declare function useAnimationEnd(env: HookEnv, cb: () => void, opts?: {
|
|
|
20
20
|
export declare function useLongPress(env: HookEnv, options: UseLongPressOptions): UseLongPressHandle;
|
|
21
21
|
/**
|
|
22
22
|
* 通用显隐状态机:open → exit → closed(animationend 延迟卸载)。
|
|
23
|
-
*
|
|
23
|
+
* usePopup presence 模式基于它——状态机单点实现。
|
|
24
24
|
*/
|
|
25
25
|
export declare function usePresence(env: HookEnv, options?: {
|
|
26
26
|
name?: string;
|
package/dist/ui-dom/index.d.ts
CHANGED
|
@@ -30,6 +30,6 @@ export { ssrPage, ssrToString, serializeData } from './vdom/ssr.ts';
|
|
|
30
30
|
export { mountRoot, createVdomContext, mountCommand, unmountCommand, createCommandContainer } from './vdom/mount.ts';
|
|
31
31
|
export { buildVNode } from './vdom/build.ts';
|
|
32
32
|
export { renderValue } from './vdom/render.ts';
|
|
33
|
-
export {
|
|
33
|
+
export { createRenderer, type Renderer } from './vdom/mount.ts';
|
|
34
34
|
export { createStore } from './store.ts';
|
|
35
35
|
export type { ExternalStore } from './store.ts';
|
package/dist/ui-dom/index.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
function mn(e){let t=[],n=(e||"/").replace(/:(\w+)/g,(r,o)=>(t.push(o),"([^/]+)")).replace(/\*/g,".*");return{re:new RegExp(`^${n}$`),keys:t}}var me=class{_routes=[];_middlewares=[];_injections=[];_injected=!1;_mode;_notFound;constructor(t={}){this._mode=t.mode??"history"}get mode(){return this._mode}use(t,n){if(typeof t=="string"&&n){let r=this,o=t,s=async(a,d,l)=>{let u=d.__routePath??r.getPath(),i=null;return u===o?i="/":(o==="/"?u!=="/"&&u.startsWith("/"):u.startsWith(o+"/"))&&(i=u.slice(o.length)),i===null?l:async(c,y)=>{let w=await n._handle(i,c,y);return w===null?l(c,y):w}};return this._middlewares.push(s),this}return t.length<=1?(this._injections.push(t),this):(this._middlewares.push(t),this)}async _ensureInjected(t){if(!this._injected){this._injected=!0;for(let n of this._injections){let r=await n(t);r&&r!==t&&Object.assign(t,r)}}}get(t,n,r){return this._routes.push({path:t,handler:n,title:r?.title}),this}notFound(t){return this._notFound=t,this}getPath(){return this._getPath(void 0)}_getPath(t){let n=t?.location??(typeof window<"u"?window.location:null);return this._mode==="hash"?(n?.hash??"").replace(/^#/,"")||"/":n?.pathname??"/"}match(t){let n=null;for(let r of this._routes){let{re:o,keys:s}=mn(r.path),a=t.match(o);if(!a)continue;let d={};for(let l=0;l<s.length;l++)d[s[l]]=decodeURIComponent(a[l+1]);n={handler:r.handler,params:d,title:r.title};break}return n||(n={handler:this._notFound??(()=>null),params:{}}),n}async _handle(t,n,r){await this._ensureInjected(r);let o=this.match(t);o.title&&typeof document<"u"&&(document.title=o.title),r.params=o.params,r.route&&(r.route.params=o.params);let a=o.handler,d=r.__routePath;r.__routePath=t;try{for(let l=this._middlewares.length-1;l>=0;l--){let u=this._middlewares[l],i=a;a=await u(n,r,i)??i}return await a(n,r)}finally{r.__routePath=d}}async execute(t,n,r){await this._ensureInjected(n);let o=this.match(r);o.title&&typeof document<"u"&&(document.title=o.title),n.params=o.params,n.route&&(n.route.params=o.params);let a=o.handler;for(let d=this._middlewares.length-1;d>=0;d--){let l=this._middlewares[d],u=a;a=await l(t,n,u)??u}return await a(t,n)}};var L=Symbol("Fragment"),H=Symbol("Portal");function ye(e,t,n){return{type:e,props:Ke(t),key:n??void 0}}var yn=ye;function gn(e,t,n){return ye(e,t,n)}function W(e,t,...n){let r=Ke(t??{});return n.length>0&&(r.children=n.length===1?n[0]:n),{type:e,props:r,key:t?.key??void 0}}function Ke(e){if(!e)return{};let t={};for(let n of Object.keys(e))n!=="key"&&(t[n]=e[n]);return t}function Z(e,t){return{type:H,props:{children:e,portalKey:t},key:t??void 0,_placement:"remote"}}function P(){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,r=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[r](e,t)}catch{return new n.Event(e,t)}},dispatchEvent:(e,t)=>typeof e<"u"?e.dispatchEvent(t):!1,navigate:e=>{typeof window>"u"||(window.history.pushState(null,"",e),window.dispatchEvent(new PopStateEvent("popstate",{state:null})))},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 r=document.execCommand("copy");return document.body.removeChild(n),r}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{}}}}function hn(e,t,n=400){let r=!1,o=()=>{r||(r=!0,e.removeEventListener("animationend",o),clearTimeout(s),t())};e.addEventListener("animationend",o);let s=setTimeout(o,n)}function $(e,t){return Object.assign(Object.create(e),t)}function wn(e){let t={baseURL:e?.baseURL??"",headers:{"Content-Type":"application/json",...e?.headers}},n=e?.onRequest,r=e?.onResponse,o=e?.timeout??0;async function s(a,d,l,u){let i=t.baseURL+d,c={method:a,headers:{...t.headers,...u?.headers}},y=e?.token?.();y&&!c.headers.Authorization&&(c.headers.Authorization=`Bearer ${y}`);let w=o>0,h=!!u?.signal,m=null,p=null;(w||h)&&(m=new AbortController,c.signal=m.signal,w&&(p=setTimeout(()=>m.abort(new Error("Request timed out")),o)),h&&u.signal.addEventListener("abort",()=>m.abort())),l!==void 0&&a!=="GET"&&a!=="HEAD"&&(c.body=JSON.stringify(l));let f={url:i,init:c};n&&(f=n(f));try{let g=await fetch(f.url,f.init);if(r)return r(g);if(!g.ok){let C=await g.text().catch(()=>"");throw new ge(g.status,C||g.statusText)}let v=g.headers.get("content-length");if(g.status===204||v==="0")return;let E=(g.headers.get("content-type")||"").toLowerCase();return E.includes("application/json")||E.includes("json")?g.json():g.text()}finally{p&&clearTimeout(p)}}return a=>$(a,{api:{get:(l,u)=>s("GET",l,void 0,u),post:(l,u,i)=>s("POST",l,u,i),put:(l,u,i)=>s("PUT",l,u,i),patch:(l,u,i)=>s("PATCH",l,u,i),delete:(l,u)=>s("DELETE",l,void 0,u)}})}var ge=class extends Error{status;body;constructor(t,n){super(`API Error ${t}: ${n}`),this.name="ApiError",this.status=t,this.body=n}};function vn(e){try{let t=e.split(".");if(t.length!==3)return null;let n=t[1].replace(/-/g,"+").replace(/_/g,"/");return JSON.parse(atob(n))}catch{return null}}function bn(e){let t=vn(e);return t?.exp?t.exp*1e3-3e4<Date.now():!0}function Cn(e){let t=e?.storage??localStorage,n=e?.tokenKey??"weifuwu_token",r=e?.userKey??"weifuwu_user",o=e?.refreshTokenKey??"weifuwu_refresh",s=e?.refreshEndpoint??"/api/auth/refresh";return a=>{let d=t.getItem(n),l=t.getItem(r),u={token:d,user:l?JSON.parse(l):null,get isLoggedIn(){return this.token!==null},login(i,c,y){u.token=i,u.user=c,t.setItem(n,i),t.setItem(r,JSON.stringify(c)),y&&t.setItem(o,y)},logout(){u.token=null,u.user=null,t.removeItem(n),t.removeItem(r),t.removeItem(o)},setUser(i){u.user=i,t.setItem(r,JSON.stringify(i))},async refresh(){let i=t.getItem(o);if(!i)return!1;try{let c=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:i})});if(!c.ok)return u.logout(),!1;let y=await c.json();return u.token=y.token,t.setItem(n,y.token),y.refreshToken&&t.setItem(o,y.refreshToken),!0}catch{return!1}}};return d&&bn(d)&&u.refresh().catch(()=>{}),$(a,{auth:u})}}function En(e={}){let t=e.url??"/ws",n=e.reconnectInterval??3e3,r=e.maxReconnect??10,o=e.pingInterval??3e4,s=e.pingTimeout??1e4;return a=>{let d=new Set,l=null,u=0,i=null,c=null,y=null,w=!1,h={isConnected:!1,onMessage:v=>(d.add(v),()=>{d.delete(v)}),send:v=>{l?.readyState===WebSocket.OPEN&&l.send(JSON.stringify(v))},_connect:m,close:()=>{w=!0,g(),l?.close(),l=null,h.isConnected=!1}};async function m(){if(!w)try{l=new WebSocket(t),l.onopen=()=>{h.isConnected=!0,u=0,p()},l.onmessage=v=>{try{let E=JSON.parse(v.data);for(let C of d)C(E)}catch{}f()},l.onclose=()=>{h.isConnected=!1,g(),!w&&u<r&&(u++,i=setTimeout(m,n*Math.min(u,5)))},l.onerror=()=>{l?.close()}}catch{w||(i=setTimeout(m,n))}}function p(){o<=0||(c=setInterval(()=>{l?.readyState===WebSocket.OPEN&&l.send(JSON.stringify({type:"ping"})),y=setTimeout(()=>{l?.close()},s)},o))}function f(){clearTimeout(y)}function g(){clearInterval(c),clearTimeout(y),clearTimeout(i)}return m(),$(a,{ws:h})}}function he(e,t){if(e===t)return!0;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let o of n)if(e[o]!==t[o])return!1;return!0}async function ze(e,t,n,r){e._id||(r?.reuse?._id?e._id=r.reuse._id:e._id=n.nextId(),n.idRegistry.set(e._id,e)),r?.reuse&&(r.reuse._parentNode&&(e._parentNode=r.reuse._parentNode),r.reuse._refNode&&(e._refNode=r.reuse._refNode));let o=Object.create(t);o.ui=Object.create(t.ui);let s=o.ui;if(s._selfId=e._id,s._selfVNode=e,s.render=function(a){return a==null&&e._id?t.ui.render([e._id]):t.ui.render(a)},typeof e._render!="function"&&typeof r?.reuse?._render=="function"&&(e._render=r.reuse._render),typeof e._render!="function"){t.ui?.setMounting?.(!0);let a;try{a=await e.type(e.props??{},o)}finally{t.ui?.endMounting?.()}if(typeof a!="function")throw new Error(`Component ${e.type.name||"anonymous"} must return a render function. Use (init_props, ctx) => (props) => VNode pattern.`);e._render=a}return{renderFn:e._render,childCtx:o}}async function _(e,t,n,r,o){if(e==null||typeof e=="boolean"||typeof e=="string"||typeof e=="number")return e;if(Array.isArray(e)){let l=Array.isArray(n)?n:[];return await Promise.all(e.map((u,i)=>_(u,t,l[i],r,o))),e}let s=e,a=r??t.__registry,d=n!=null&&typeof n=="object"&&!Array.isArray(n)&&n.type===s.type?n:null;if(typeof s.type=="function"){let{childCtx:l}=await ze(s,t,a,{reuse:d??void 0}),u=he(d?.props??{},s.props??{});if(o?.force||!u||d?._child==null){let i=await _(s._render(s.props),l,d?._child,a);s._child=i??null}else s._child=d._child;return s}if(s.type===L){let l=await _(s.props?.children??null,t,d?._child??d?.props?.children,a);return s._child=l??null,s}if(typeof s.type=="string"||typeof s.type=="symbol"){let l=await _(s.props?.children??null,t,d?.props?.children,a);return s._child=l??null,s}return s}var we=new Set(["svg","path","circle","rect","line","polyline","polygon","g","text","defs","use","clipPath"]),xn=/^on[A-Z]/,Tn=new Set(["zIndex","opacity","lineHeight","fontWeight","fontSizeAdjust","flex","flexGrow","flexShrink","order","zoom","aspectRatio","gridRow","gridColumn","scale","rotate","animationIterationCount","columnCount","fillOpacity","strokeOpacity","stopOpacity","floodOpacity"]);function G(e,t,n){if(n==null||n===!1)return;let r=e.ownerDocument?.defaultView;if(t==="class"||t==="className"){if(typeof n=="object")for(let[o,s]of Object.entries(n))s&&e.classList.add(o);else e.setAttribute("class",String(n));return}if(t==="style"){if(typeof n=="string")e.setAttribute("style",n);else{let o=e.style;for(let[s,a]of Object.entries(n))a==null?o[s]="":s.startsWith("--")?o.setProperty(s,String(a)):typeof a=="number"&&!Tn.has(s)?o[s]=`${a}px`:o[s]=String(a)}return}if(t==="ref"){if(typeof n=="function")try{n(e)}catch(o){console.error("[weifuwu] ref error",o)}return}if(xn.test(t)){let o=t.slice(2).toLowerCase();e.addEventListener(o,n);return}if(t==="value"){e.value=n;return}if(t==="indeterminate"){e.indeterminate=!!n;return}if(t==="innerHTML"){e.innerHTML=String(n??"");return}if(t==="draggable"||t==="contenteditable"||t==="spellcheck"){e.setAttribute(t,n?"true":"false");return}if(t.startsWith("aria-")&&typeof n=="boolean"){e.setAttribute(t,n?"true":"false");return}if(n===!0){e.setAttribute(t,"");return}try{e[t]=n,e.getAttribute(t)!==String(n)&&e.setAttribute(t,String(n))}catch{e.setAttribute(t,String(n))}}function k(e,t,n){let r=t?.browser??n;if(!r)throw new Error("[vdom] renderValue requires browser env (ctx.browser)");if(e==null||typeof e=="boolean")return null;if(typeof e=="string"||typeof e=="number")return r.createTextNode(String(e));if(Array.isArray(e)){let l=r.createDocumentFragment();if(!l)return null;for(let u of e){let i=k(u,t,r);i!=null&&l.appendChild(i)}return l}let o=e;if(o.type===H){let l=r.bodyElement();if(!l)return null;let u=l.querySelector("#__wf_portal");u||(u=r.createElement("div"),u&&(u.id="__wf_portal",l.appendChild(u)));let i=r.createElement("div");if(i){i.setAttribute("data-portal",String(o.props?.portalKey??"wf"));let c=k(o.props?.children??null,t,r);c!=null&&i.appendChild(c),u&&u.appendChild(i),o._remoteEl=i}return null}if(o.type===L){let l=r.createDocumentFragment();if(!l)return null;let u=(Array.isArray(o.props?.children)?o.props.children:[o.props?.children]).flat(1/0);for(let i of u){let c=k(i,t,r);c!=null&&l.appendChild(c)}return o._childNodes=Array.from(l.childNodes),l}if(typeof o.type=="function"){if(typeof o._render!="function")throw new Error(`[vdom] component ${o.type.name||"anonymous"} not built (missing _render) \u2014 buildVNode must run before renderValue`);let l=o._child!==void 0?o._child:o._render(o.props);if(l==null)return o._child=null,null;let u=(Array.isArray(l)||typeof l=="object"&&typeof l.type=="function",l);o._child=u,typeof u=="object"&&!Array.isArray(u)&&(u._parentVNode=o);let i=k(u,t,r);return i&&(o._refNode=i),i}let s=o.type,a=we.has(s)?r.createElementNS("http://www.w3.org/2000/svg",s):r.createElement(s);if(!a)return null;o.el=a;let d;for(let[l,u]of Object.entries(o.props??{}))if(!(l==="children"||l==="key")){if(l==="value"&&a instanceof HTMLSelectElement){d=u;continue}G(a,l,u)}if(!("innerHTML"in(o.props??{}))){let l=(Array.isArray(o.props?.children)?o.props.children:[o.props?.children]).flat(1/0);for(let u of l){let i=k(u,t,r);if(i!=null&&(a.appendChild(i),u&&typeof u=="object"&&!Array.isArray(u)&&typeof u.type=="function")){let c=u;c._parentNode||(c._parentNode=a,c._refNode=i)}}}return d!==void 0&&(a.value=String(d)),a}var Pn=0;function ve(){return{idRegistry:new Map,unmountHooks:[],nextId:()=>`_wf_${Pn++}`}}function be(e,t){return e.unmountHooks.push(t),()=>{let n=e.unmountHooks.indexOf(t);n>=0&&e.unmountHooks.splice(n,1)}}function ee(e,t){for(let n of[...e.unmountHooks])n(t);e.idRegistry.delete(t),e.idRegistry.delete(`custom:${t}`)}function kn(e,t,n,r){try{e(t)}catch(o){console.error(`[weifuwu] ref ${n} error in <${r??"anonymous"}>`,o)}}function N(e,t){if(e==null||typeof e!="object")return;let n=e;if(n._id){if(n._customId&&t.idRegistry.delete(n._customId),t.idRegistry.delete(n._id),t.unmountHooks.length>0){let r=[...t.unmountHooks];for(let o of r)o(n._id);if(n._customId)for(let o of r)o(n._customId)}n._id=void 0,n._customId=void 0,n._render=void 0,n._parentNode=void 0,n._refNode=void 0}if(n._child!=null){if(Array.isArray(n._child))for(let r of n._child)r&&typeof r=="object"&&N(r,t);else N(n._child,t);n._child=void 0}if(n.props?.children&&typeof n.type=="string"){let r=Array.isArray(n.props.children)?n.props.children:[n.props.children];for(let o of r)o&&typeof o=="object"&&N(o,t)}if(typeof n.props?.ref=="function"&&kn(n.props.ref,null,"cleanup"),n._remoteEl){let r=n._child;if(r!=null)if(Array.isArray(r))for(let o of r)o&&typeof o=="object"&&N(o,t);else typeof r=="object"&&N(r,t);n._remoteEl.remove(),n._remoteEl=void 0}}function te(e,t){if(t&&typeof e.type=="function"&&e._id){try{N(e,t)}catch(n){console.error("[weifuwu] ref cleanup error",n)}ee(t,e._id)}}function Ge(e){if(e==null||typeof e=="boolean")return[];let t=[],n=Array.isArray(e)?[...e]:[e];for(;n.length>0;){let r=n.shift();Array.isArray(r)?n.unshift(...r):t.push(r)}return t}function F(e){if(e==null||typeof e!="object"||Array.isArray(e))return;let t=e;return t._placement==="remote"?t.props?.portalKey:t.key}function O(e,t,n,r,o){if(typeof r=="string"||typeof r=="number"){if(typeof n=="string"||typeof n=="number"){if(String(n)!==String(r)){let c=e.ownerDocument.createTextNode(String(r));return t?.parentNode?t.parentNode.replaceChild(c,t):e.appendChild(c),c}return t}let i=e.ownerDocument.createTextNode(String(r));return t?.parentNode?t.parentNode.replaceChild(i,t):e.appendChild(i),i}if(r==null||typeof r=="boolean"){if(n&&typeof n=="object"&&!Array.isArray(n)&&n.type===H){let i=n._remoteEl;try{N(n.props?.children,o.registry)}catch(c){console.error("[weifuwu] portal ref cleanup error",c)}return i?.parentNode?.removeChild(i),null}if(n&&typeof n=="object"&&!Array.isArray(n))if(typeof n.type=="function")te(n,o.registry);else try{N(n,o.registry)}catch(i){console.error("[weifuwu] ref cleanup error",i)}return t?.parentNode&&t.parentNode.removeChild(t),null}if(Array.isArray(r)){let i=e.ownerDocument.createDocumentFragment(),c=ne(e,n,r,o,t?[t]:void 0);for(let y of c)y&&i.appendChild(y);return t?.parentNode?i.contains(t)?e.appendChild(i):t.parentNode.replaceChild(i,t):e.appendChild(i),i}let s=r;if(s.type===H){let i=n&&typeof n=="object"&&!Array.isArray(n)?n:null;if(i?.type===H){let c=i._remoteEl;if(c){let y=i.props?.children??null,w=s.props?.children??null;ne(c,y,w,o)}return s._remoteEl=i._remoteEl,null}return k(s,o,o.browser??P()),null}if(s.type===L){let c=(n&&typeof n=="object"&&!Array.isArray(n)?n:null)?._childNodes,y=ne(e,n,s.props?.children??null,o,c);return s._childNodes=y.filter(Boolean),t?.parentNode&&t.nodeType===8&&t.parentNode.removeChild(t),t&&t.nodeType===1?t:y[0]??null}if(typeof s.type=="function"){if(typeof s._render!="function")throw new Error(`[vdom] component ${s.type.name||"anonymous"} not built in diff \u2014 buildVNode must run before patchValue`);let i=n&&typeof n=="object"&&!Array.isArray(n)?n:null;i?.type===s.type&&i._id&&(s._id=i._id,o.registry.idRegistry.set(s._id,s)),s._parentNode=e,t&&(s._refNode=t);let c=i?.type===s.type,y=he(i?.props??{},s.props??{}),w=o.getCtxVersion?o.getCtxVersion(s._id??""):void 0,h=w===void 0||(o.ctxVersion??0)===w;if(i&&c&&y&&h&&i._child!==void 0)return s._child=i._child,t;let m;s._child!==void 0?m=s._child:(m=s._render(s.props),s._child=m);let p=O(e,t,i?._child,m,o);return p&&(s._refNode=p),p}let a=n&&typeof n=="object"&&!Array.isArray(n)?n:null,d=a?.type??null,l=s.type;if(t&&t.nodeType===1&&d===l){let i=t;return s.el=i,Nn(i,a?.props??{},s.props??{}),ne(i,a?.props?.children??null,s.props?.children??null,o),i}let u=k(s,o,o.browser??P());if(u==null)return null;if(t?.parentNode)if(n!=null&&typeof n!="boolean"){if(typeof n=="object"&&!Array.isArray(n))try{N(n,o.registry)}catch(i){console.error("[weifuwu] ref cleanup error",i)}t.parentNode.replaceChild(u,t)}else t.parentNode.insertBefore(u,t);else e.appendChild(u);return u}function Nn(e,t,n){let r=new Set([...Object.keys(t),...Object.keys(n)]);for(let o of r){if(o==="children"||o==="key")continue;let s=t[o],a=n[o];if(s!==a){if(o.startsWith("on")){typeof s=="function"&&e.removeEventListener(o.slice(2).toLowerCase(),s),a!=null&&a!==!1&&e.addEventListener(o.slice(2).toLowerCase(),a);continue}if(a==null||a===!1){if(o==="class"||o==="className")e.removeAttribute("class");else if(o.startsWith("on"))e.removeEventListener(o.slice(2).toLowerCase(),s);else if(o==="ref"){if(typeof s=="function")try{s(null)}catch(d){console.error("[weifuwu] ref cleanup error",d)}}else if(o==="value")e.value="";else if(o==="indeterminate")e.indeterminate=!1;else{e.removeAttribute(o);try{delete e[o]}catch{}}continue}G(e,o,a)}}}function ne(e,t,n,r,o){let s=Ge(t),a=Ge(n),d=o??Array.from(e.childNodes);if(a.some(m=>F(m)!==void 0)){for(let m=0;m<a.length;m++){let p=a[m];p&&typeof p=="object"&&!Array.isArray(p)&&F(p)===void 0&&(p.key=`pos:${m}`)}for(let m=0;m<s.length;m++){let p=s[m];p&&typeof p=="object"&&!Array.isArray(p)&&F(p)===void 0&&(p.key=`pos:${m}`)}}let u=s.map((m,p)=>{if(m==null||typeof m!="object"||Array.isArray(m))return d[p]??null;let f=m;return f._placement==="remote"?f._remoteEl??null:f.type===L?f._childNodes?.[0]??null:f._refNode??f.el??null});if(!a.some(m=>{if(m==null||typeof m!="object"||Array.isArray(m))return!1;let p=m;return p._placement!=="remote"&&p.key!==void 0})){let m=Math.max(s.length,a.length),p=[];for(let f=0;f<m;f++){let g=f<s.length?s[f]:null,v=f<a.length?a[f]:null;if(v==null||typeof v=="boolean"){if(g&&typeof g=="object"&&!Array.isArray(g))if(typeof g.type=="function")te(g,r.registry);else try{N(g,r.registry)}catch(x){console.error("[weifuwu] ref cleanup error",x)}let C=u[f];C?.parentNode&&C.parentNode.removeChild(C),p.push(null);continue}if(g==null||typeof g=="boolean"){let C=k(v,r,r.browser??P());if(C==null){p.push(null);continue}let x=null;for(let S=f+1;S<u.length;S++){let R=u[S];if(R&&R.parentNode===e){x=R;break}}x&&x.parentNode===e?e.insertBefore(C,x):e.appendChild(C),p.push(C);continue}let E=O(e,u[f],g,v,r);p.push(E)}return p}let c=new Map;s.forEach((m,p)=>{let f=F(m);f!==void 0&&m&&typeof m=="object"&&!Array.isArray(m)&&c.set(f,{vnode:m,nodes:[u[p]??null].filter(Boolean),index:p})});let y=[],w=new Set,h=null;return a.forEach((m,p)=>{let f=F(m),g=m;if(f!==void 0&&c.has(f)){let v=c.get(f),E=v.nodes[0]??null;w.add(f);let C=O(e,E,v.vnode,g,r);C&&C.parentNode===e&&h&&C.previousSibling!==h&&e.insertBefore(C,h.nextSibling),y.push(C),C&&(h=C)}else if(g?._placement==="remote"){let v=s[p]??null,E=O(e,u[p]??null,v,g,r);y.push(E),E&&(h=E)}else{let v=k(g,r,r.browser??P());y.push(v),v!=null&&(e.appendChild(v),h&&v.previousSibling!==h&&e.insertBefore(v,h.nextSibling),h=v)}}),s.forEach((m,p)=>{let f=F(m),g=m&&typeof m=="object"&&!Array.isArray(m)&&typeof m.type=="function";if(f!==void 0&&!w.has(f)){if(m&&typeof m=="object"&&!Array.isArray(m))if(g)te(m,r.registry);else try{N(m,r.registry)}catch(E){console.error("[weifuwu] ref cleanup error",E)}let v=u[p];v?.parentNode&&v.parentNode.removeChild(v)}else if(f===void 0){if(m&&typeof m=="object"&&!Array.isArray(m))if(g)te(m,r.registry);else try{N(m,r.registry)}catch(E){console.error("[weifuwu] ref cleanup error",E)}let v=u[p];v?.parentNode&&v.parentNode.removeChild(v)}}),y}function Ce(e){let t=Promise.resolve();async function n(s){let a=e.registry.idRegistry.get(s);if(!(!a||typeof a._render!="function"))try{let d={browser:e.ctx.browser,registry:e.registry,ctxVersion:e.getCtxVersion?.(s)??0,getCtxVersion:e.getCtxVersion},l=a._render(a.props),u=await _(l,e.ctx,a._child,e.registry)??null,i=a._child;a._child=u;let c=a._parentNode??a._refNode?.parentNode??e.rootEl??null;if(c){let y=O(c,a._refNode??null,i,u,d);y?a._refNode=y:a._refNode=null}}catch(d){e.onError?e.onError(d):console.error("[weifuwu] render error:",d?.stack??d)}}function r(s){let a=e.registry.idRegistry.get(s);if(!a||typeof a._render!="function")return Promise.resolve();let d=t.then(()=>n(s));return t=d.catch(()=>{}),d}function o(s){if(s==null){let a=e.ctx.ui?._selfId;return a?r(a):Promise.resolve()}return Promise.all(s.map(a=>r(a))).then(()=>{})}return{render:o}}var Ye=P();function Xe(e,t="bottom",n=6,r=!0){switch(t){case"bottom":return{top:e.bottom+n,left:r?e.left+e.width/2:e.left};case"top":return{top:e.top-n,left:r?e.left+e.width/2:e.left};case"left":return{top:r?e.top+e.height/2:e.top,left:e.left-n};case"right":return{top:r?e.top+e.height/2:e.top,left:e.right+n}}}function oe(e,t,n=8){if(!t)return e;let r=t.getBoundingClientRect();if(r.width===0&&r.height===0)return e;let o=Number.parseFloat(t.style.top)||r.top,s=Number.parseFloat(t.style.left)||r.left,a=e.top-o,d=e.left-s,l={top:r.top+a,bottom:r.bottom+a,left:r.left+d,right:r.right+d},u=Ye.viewportWidth(),i=Ye.viewportHeight(),c=e.top,y=e.left;return l.bottom>i-n&&(c=Math.max(n,c-(l.bottom-(i-n)))),l.top<n&&(c=Math.max(n,c+(n-l.top))),l.right>u-n&&(y=Math.max(n,y-(l.right-(u-n)))),l.left<n&&(y=Math.max(n,y+(n-l.left))),{top:c,left:y,width:e.width}}var B=P();function Je(e){let t=new Map,n=new Map,r=!1,o=0;function s(){o||(o=requestAnimationFrame(()=>{o=0;let i=[];for(let[c,y]of t){if(!y.isOpen())continue;let w=y.getEl();if(!w)continue;let h=w.getBoundingClientRect();if(h.width===0&&h.height===0)continue;let m=y.compute(h);Object.assign(y.pos,oe(m,y.panel?.(),y.margin)),i.push(c)}for(let[c,y]of n){let w=y.getScroller(),h=w instanceof Window?B.scrollingElement()?.scrollTop??B.scrollTop():w.scrollTop??0;h!==y.handle.y&&(y.handle.y=h,i.push(c))}i.length>0&&e(i)}))}function a(){r||(r=!0,B.addEventListener("scroll",s,{capture:!0,passive:!0}),B.addEventListener("resize",s))}function d(){r&&(B.removeEventListener("scroll",s,{capture:!0}),B.removeEventListener("resize",s),r=!1)}function l(i){for(let c of[...t.keys()])(c.startsWith(`popup:${i}:`)||c===`popup:${i}`||c===i)&&t.delete(c);n.delete(i)}function u(){d(),o&&(cancelAnimationFrame(o),o=0),t.clear(),n.clear()}return{popupTrackers:t,scrollTrackers:n,schedulePopupRecompute:s,ensurePopupListeners:a,destroyPopupListeners:d,cleanupTrackers:l,destroy:u}}function Ee(e,t,n){return o=>{o?t(o):n?.()}}function Y(e){return typeof window<"u"&&!!window.matchMedia?.("(hover: hover)").matches}function re(e){return typeof window<"u"&&!!window.matchMedia?.("(prefers-reduced-motion: reduce)").matches}function xe(e,t,n){let r=null,o=()=>{t(),n?.once&&r&&r.removeEventListener("animationend",o)};return a=>{a?(r=a,a.addEventListener("animationend",o)):r&&(r.removeEventListener("animationend",o),r=null)}}function Te(e,t){let{onLongPress:n,duration:r=500}=t,o,s=0,a=0,d=null,l=()=>{clearTimeout(o),o=void 0},u=e.selfId();if(u){let i=e.onUnmount(c=>{c===u&&(l(),i())})}return{onPointerDown:i=>{s=i.clientX??0,a=i.clientY??0,d=i,l(),o=setTimeout(()=>{o=void 0,d&&n(d)},r)},onPointerUp:l,onPointerLeave:l,onPointerMove:i=>{let c=Math.abs((i.clientX??0)-s),y=Math.abs((i.clientY??0)-a);(c>10||y>10)&&l()},onContextMenu:i=>{i.preventDefault(),n(i)}}}function X(e,t){let n=e.selfId(),r="closed",o,s=()=>{r="closed",n?e.render([n]):e.render()};return{get phase(){return r},ref:d=>{d?o||(o=()=>{r==="exit"&&s()},d.addEventListener("animationend",o)):o=void 0},sync:d=>(d?r="open":r==="open"&&(r="exit"),r)}}function Pe(e,t,n){let r=e.selfId(),o=re(e),s=n?.duration??400,a=n?.ease==="linear"?y=>y:y=>1-Math.pow(1-y,3),d,l=t,u={value:o?t:0,reset:()=>{}},i=()=>{r?e.render([r]):e.render()},c=y=>{if(l=y,o){u.value=y,i();return}if(y===u.value)return;d&&cancelAnimationFrame(d);let w=u.value,h=performance.now(),m=p=>{let f=Math.min(1,(p-h)/s);u.value=Math.round(w+(y-w)*a(f)),f<1?(d=requestAnimationFrame(m),i()):(d=void 0,i())};d=requestAnimationFrame(m)};if(u.reset=y=>{y===l&&d||c(y)},r){let y=e.onUnmount(w=>{w===r&&(d&&(cancelAnimationFrame(d),d=void 0),y())})}return queueMicrotask(()=>c(t)),u}function ke(e,t,n){let r=e.selfId(),o=e.browser,s=`media:${r}:${t}`;if(!e.mediaRegistry.has(s)){let a=o.matchMedia(t);n(a.matches);let d=u=>n(u.matches);a.addEventListener("change",d),e.mediaRegistry.set(s,{mql:a,handler:d});let l=e.onUnmount(u=>{if(u!==r)return;let i=e.mediaRegistry.get(s);if(i?.mql&&i.handler)try{i.mql.removeEventListener("change",i.handler)}catch{}e.mediaRegistry.delete(s),l()})}}function Ne(e,t,n){let r=e.browser,o=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(),d=`bp:${a}`;function l(){for(let[u,i]of Object.entries(o))if(r.matchMedia(i).matches)return u;return Object.keys(o)[0]??""}if(!e.mediaRegistry.has(d)){s(l());let u=[];for(let c of Object.values(o)){let y=r.matchMedia(c),w=()=>s(l());y.addEventListener("change",w),u.push({mql:y,handler:w})}e.mediaRegistry.set(d,{mqls:u});let i=e.onUnmount(c=>{if(c!==a)return;let y=e.mediaRegistry.get(d);if(y?.mqls)for(let w of y.mqls)try{w.mql.removeEventListener("change",w.handler)}catch{}e.mediaRegistry.delete(d),i()})}}function Ve(e){let t=e.selfId(),n=e.browser,r={height:n.viewportHeight(),offsetTop:0,keyboardOpen:!1},o=()=>{t?e.render([t]):e.render()},s=()=>{let d=n.visualViewport();r.height=d?.height??n.viewportHeight(),r.offsetTop=d?.offsetTop??0,r.keyboardOpen=r.height<n.viewportHeight()*.9,o()},a=n.visualViewport();if(a?.addEventListener?(a.addEventListener("resize",s),a.addEventListener("scroll",s)):n.addEventListener("resize",s),t){let d=e.onUnmount(l=>{l===t&&(a?.removeEventListener?(a.removeEventListener("resize",s),a.removeEventListener("scroll",s)):n.removeEventListener("resize",s),d())})}return r}function _e(e,t){let n=e.selfId(),r={isIn:!1,ready:!1,observe:l,refresh:u,disconnect:i},o=null,s=null,a=()=>{n?e.render([n]):e.render()};function d(){if(s?.disconnect(),s=null,!o)return;let c=typeof t.rootMargin=="function"?t.rootMargin():t.rootMargin,y=typeof t.threshold=="function"?t.threshold():t.threshold;s=new IntersectionObserver(w=>{let h=w[w.length-1];if(!h)return;let m=h.isIntersecting,p=m!==r.isIn,f=!r.ready;r.isIn=m,r.ready=!0,t.onChange?.(h,m),(p||f)&&a()},{root:t.root?t.root():null,rootMargin:c??"0px",threshold:y??0}),s.observe(o)}function l(c){o=c,c?d():(s?.disconnect(),s=null,r.isIn=!1)}function u(){d()}function i(){s?.disconnect(),s=null}if(n){let c=e.onUnmount(y=>{y===n&&(i(),c())})}return r}function Se(e,t){let n=e.selfId(),r=e.browser,o={y:0,refresh(){let d=s.getScroller();o.y=d instanceof Window?r.scrollingElement()?.scrollTop??r.scrollTop():d.scrollTop??0}},s={handle:o,getScroller:t.getScroller??(()=>window)};if(!n)return o.refresh(),o;e.scrollTrackers.set(n,s),e.ensurePopupListeners(),o.refresh();let a=e.onUnmount(d=>{d===n&&(e.scrollTrackers.delete(n),a())});return o}function se(e,t){let n=e.selfId(),r=t.value!==void 0;if(r&&!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)}`))),!
|
|
3
|
-
\u975E\u53D7\u63A7\uFF1A\u53BB\u6389 open\uFF1B\u53D7\u63A7\uFF1A\u4F20\u5165 onOpenChange={(o) => setOpen(o)}`));let
|
|
1
|
+
function Nn(e){let n=[],t=(e||"/").replace(/:(\w+)/g,(o,r)=>(n.push(r),"([^/]+)")).replace(/\*/g,".*");return{re:new RegExp(`^${t}$`),keys:n}}var ke=class{_routes=[];_middlewares=[];_injections=[];_injected=!1;_mode;_notFound;constructor(n={}){this._mode=n.mode??"history"}get mode(){return this._mode}use(n,t){if(typeof n=="string"&&t){let o=this,r=n,s=async(a,l,d)=>{let c=l.__routePath??o.getPath(),i=null;return c===r?i="/":(r==="/"?c!=="/"&&c.startsWith("/"):c.startsWith(r+"/"))&&(i=c.slice(r.length)),i===null?d:async(u,p)=>{let g=await t._handle(i,u,p);return g===null?d(u,p):g}};return this._middlewares.push(s),this}return n.length<=1?(this._injections.push(n),this):(this._middlewares.push(n),this)}async _ensureInjected(n){if(!this._injected){this._injected=!0;for(let t of this._injections){let o=await t(n);o&&o!==n&&Object.assign(n,o)}}}get(n,t,o){return this._routes.push({path:n,handler:t,title:o?.title}),this}notFound(n){return this._notFound=n,this}getPath(){return this._getPath(void 0)}_getPath(n){let t=n?.location??(typeof window<"u"?window.location:null);return this._mode==="hash"?(t?.hash??"").replace(/^#/,"")||"/":t?.pathname??"/"}match(n){let t=null;for(let o of this._routes){let{re:r,keys:s}=Nn(o.path),a=n.match(r);if(!a)continue;let l={};for(let d=0;d<s.length;d++)l[s[d]]=decodeURIComponent(a[d+1]);t={handler:o.handler,params:l,title:o.title};break}return t||(t={handler:this._notFound??(()=>null),params:{}}),t}async _handle(n,t,o){await this._ensureInjected(o);let r=this.match(n);r.title&&typeof document<"u"&&(document.title=r.title),o.params=r.params,o.route&&(o.route.params=r.params);let a=r.handler,l=o.__routePath;o.__routePath=n;try{for(let d=this._middlewares.length-1;d>=0;d--){let c=this._middlewares[d],i=a;a=await c(t,o,i)??i}return await a(t,o)}finally{o.__routePath=l}}async execute(n,t,o){await this._ensureInjected(t);let r=this.match(o);r.title&&typeof document<"u"&&(document.title=r.title),t.params=r.params,t.route&&(t.route.params=r.params);let a=r.handler;for(let l=this._middlewares.length-1;l>=0;l--){let d=this._middlewares[l],c=a;a=await d(n,t,c)??c}return await a(n,t)}};var S=Symbol("Fragment"),R=Symbol("Portal");function Pe(e,n,t){return{type:e,props:on(n),key:t??void 0}}var Vn=Pe;function _n(e,n,t){return Pe(e,n,t)}function F(e,n,...t){let o=on(n??{});return t.length>0&&(o.children=t.length===1?t[0]:t),{type:e,props:o,key:n?.key??void 0}}function on(e){if(!e)return{};let n={};for(let t of Object.keys(e))t!=="key"&&(n[t]=e[t]);return n}function j(e){if(e==null||typeof e=="boolean")return[];if(Array.isArray(e)){let n=!1;for(let r=0;r<e.length;r++)if(Array.isArray(e[r])){n=!0;break}if(!n)return e;let t=[],o=[...e].reverse();for(;o.length>0;){let r=o.pop();if(Array.isArray(r))for(let s=r.length-1;s>=0;s--)o.push(r[s]);else t.push(r)}return t}return[e]}function fe(e,n){return{type:R,props:{children:e,portalKey:n},key:n??void 0,_placement:"remote"}}function A(){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,n)=>typeof document<"u"?document.createElementNS(e,n):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,n,t)=>{typeof window<"u"&&window.addEventListener(e,n,t)},removeEventListener:(e,n,t)=>{typeof window<"u"&&window.removeEventListener(e,n,t)},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,n)=>{let t=typeof window<"u"?window:null,o=n&&(n.key||n.code)?"KeyboardEvent":n&&(n.clientX!==void 0||n.clientY!==void 0||n.pointerId!==void 0)?"PointerEvent":"Event";try{return new t[o](e,n)}catch{return new t.Event(e,n)}},dispatchEvent:(e,n)=>typeof e<"u"?e.dispatchEvent(n):!1,navigate:e=>{typeof window>"u"||(window.history.pushState(null,"",e),window.dispatchEvent(new PopStateEvent("popstate",{state:null})))},copyText:async e=>{let n=typeof window<"u"?window:null;if(n?.navigator?.clipboard?.writeText)try{return await n.navigator.clipboard.writeText(e),!0}catch{}try{if(typeof document>"u")return!1;let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select();let o=document.execCommand("copy");return document.body.removeChild(t),o}catch{return!1}},execCommand:(e,n)=>typeof document<"u"?document.execCommand(e,!1,n):!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,n)=>typeof document<"u"?document.createTreeWalker(e,n??NodeFilter.SHOW_ALL):null,scrollTop:()=>{let e=typeof document<"u"?document:null,n=typeof window<"u"?window:null;return e?.scrollingElement?.scrollTop??n?.scrollY??0},hash:()=>typeof window<"u"?window.location?.hash??"":"",setHash:e=>{typeof window<"u"&&(window.location.hash=e)},timeout:(e,n)=>typeof window<"u"?window.setTimeout(e,n):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,n)=>{try{typeof window<"u"&&window.localStorage?.setItem(e,n)}catch{}}}}function kn(e,n,t=400){let o=!1,r=()=>{o||(o=!0,e.removeEventListener("animationend",r),clearTimeout(s),n())};e.addEventListener("animationend",r);let s=setTimeout(r,t)}function Y(e,n){return Object.assign(Object.create(e),n)}function Pn(e){let n={baseURL:e?.baseURL??"",headers:{"Content-Type":"application/json",...e?.headers}},t=e?.onRequest,o=e?.onResponse,r=e?.timeout??0;async function s(a,l,d,c){let i=n.baseURL+l,u={method:a,headers:{...n.headers,...c?.headers}},p=e?.token?.();p&&!u.headers.Authorization&&(u.headers.Authorization=`Bearer ${p}`);let g=r>0,h=!!c?.signal,w=null,x=null;(g||h)&&(w=new AbortController,u.signal=w.signal,g&&(x=setTimeout(()=>w.abort(new Error("Request timed out")),r)),h&&c.signal.addEventListener("abort",()=>w.abort())),d!==void 0&&a!=="GET"&&a!=="HEAD"&&(u.body=JSON.stringify(d));let y={url:i,init:u};t&&(y=t(y));try{let f=await fetch(y.url,y.init);if(o)return o(f);if(!f.ok){let _=await f.text().catch(()=>"");throw new Ae(f.status,_||f.statusText)}let m=f.headers.get("content-length");if(f.status===204||m==="0")return;let T=(f.headers.get("content-type")||"").toLowerCase();return T.includes("application/json")||T.includes("json")?f.json():f.text()}finally{x&&clearTimeout(x)}}return a=>Y(a,{api:{get:(d,c)=>s("GET",d,void 0,c),post:(d,c,i)=>s("POST",d,c,i),put:(d,c,i)=>s("PUT",d,c,i),patch:(d,c,i)=>s("PATCH",d,c,i),delete:(d,c)=>s("DELETE",d,void 0,c)}})}var Ae=class extends Error{status;body;constructor(n,t){super(`API Error ${n}: ${t}`),this.name="ApiError",this.status=n,this.body=t}};function An(e){try{let n=e.split(".");if(n.length!==3)return null;let t=n[1].replace(/-/g,"+").replace(/_/g,"/");return JSON.parse(atob(t))}catch{return null}}function Sn(e){let n=An(e);return n?.exp?n.exp*1e3-3e4<Date.now():!0}function Rn(e){let n=e?.storage??localStorage,t=e?.tokenKey??"weifuwu_token",o=e?.userKey??"weifuwu_user",r=e?.refreshTokenKey??"weifuwu_refresh",s=e?.refreshEndpoint??"/api/auth/refresh";return a=>{let l=n.getItem(t),d=n.getItem(o),c={token:l,user:d?JSON.parse(d):null,get isLoggedIn(){return this.token!==null},login(i,u,p){c.token=i,c.user=u,n.setItem(t,i),n.setItem(o,JSON.stringify(u)),p&&n.setItem(r,p)},logout(){c.token=null,c.user=null,n.removeItem(t),n.removeItem(o),n.removeItem(r)},setUser(i){c.user=i,n.setItem(o,JSON.stringify(i))},async refresh(){let i=n.getItem(r);if(!i)return!1;try{let u=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:i})});if(!u.ok)return c.logout(),!1;let p=await u.json();return c.token=p.token,n.setItem(t,p.token),p.refreshToken&&n.setItem(r,p.refreshToken),!0}catch{return!1}}};return l&&Sn(l)&&c.refresh().catch(()=>{}),Y(a,{auth:c})}}function Mn(e={}){let n=e.url??"/ws",t=e.reconnectInterval??3e3,o=e.maxReconnect??10,r=e.pingInterval??3e4,s=e.pingTimeout??1e4;return a=>{let l=new Set,d=null,c=0,i=null,u=null,p=null,g=!1,h={isConnected:!1,onMessage:m=>(l.add(m),()=>{l.delete(m)}),send:m=>{d?.readyState===WebSocket.OPEN&&d.send(JSON.stringify(m))},_connect:w,close:()=>{g=!0,f(),d?.close(),d=null,h.isConnected=!1}};async function w(){if(!g)try{d=new WebSocket(n),d.onopen=()=>{h.isConnected=!0,c=0,x()},d.onmessage=m=>{try{let T=JSON.parse(m.data);for(let _ of l)_(T)}catch{}y()},d.onclose=()=>{h.isConnected=!1,f(),!g&&c<o&&(c++,i=setTimeout(w,t*Math.min(c,5)))},d.onerror=()=>{d?.close()}}catch{g||(i=setTimeout(w,t))}}function x(){r<=0||(u=setInterval(()=>{d?.readyState===WebSocket.OPEN&&d.send(JSON.stringify({type:"ping"})),p=setTimeout(()=>{d?.close()},s)},r))}function y(){clearTimeout(p)}function f(){clearInterval(u),clearTimeout(p),clearTimeout(i)}return w(),Y(a,{ws:h})}}function Ln(e,n){if(e===n)return!0;let t=Object.keys(e),o=Object.keys(n);if(t.length!==o.length)return!1;for(let r of t)if(e[r]!==n[r])return!1;return!0}async function rn(e,n,t,o){e._id||(o?.reuse?._id?e._id=o.reuse._id:e._id=t.nextId(),t.idRegistry.set(e._id,e)),o?.reuse&&(o.reuse._parentNode&&(e._parentNode=o.reuse._parentNode),o.reuse._refNode&&(e._refNode=o.reuse._refNode),o.reuse._ctxVersion!=null&&(e._ctxVersion=o.reuse._ctxVersion));let r=Object.create(n);r.ui=Object.create(n.ui);let s=r.ui;if(s._selfId=e._id,s._selfVNode=e,s.render=function(a){return a==null&&e._id?n.ui.render([e._id]):n.ui.render(a)},typeof e._render!="function"&&typeof o?.reuse?._render=="function"&&(e._render=o.reuse._render),typeof e._render!="function"){n.ui?.setMounting?.(!0);let a;try{a=await e.type(e.props??{},r)}finally{n.ui?.endMounting?.()}if(typeof a!="function")throw new Error(`Component ${e.type.name||"anonymous"} must return a render function. Use (init_props, ctx) => (props) => VNode pattern.`);e._render=a}return{renderFn:e._render,childCtx:r}}function Se(e){return!!e&&typeof e.then=="function"}function D(e,n,t,o,r){if(e==null||typeof e=="boolean"||typeof e=="string"||typeof e=="number")return e;if(Array.isArray(e)){let d=Array.isArray(t)?t:[];for(let u=0;u<e.length;u++){let p=e[u];if(p!=null&&typeof p=="object"&&!Array.isArray(p)){let g=p;g.key===void 0?g.key=String(u):g.key=String(g.key)}}let c=e.map((u,p)=>D(u,n,d[p],o,r)),i=!1;for(let u=0;u<c.length;u++)if(Se(c[u])){i=!0;break}return i?Promise.all(c).then(()=>e):e}let s=e,a=o??n.__registry,l=t!=null&&typeof t=="object"&&!Array.isArray(t)&&t.type===s.type?t:null;if(typeof s.type=="function"){s._id||(s._id=l?._id??a.nextId(),a.idRegistry.set(s._id,s)),l&&(l._parentNode&&(s._parentNode=l._parentNode),l._refNode&&(s._refNode=l._refNode),l._ctxVersion!=null&&(s._ctxVersion=l._ctxVersion),typeof l._render=="function"&&(s._render=l._render));let d=Ln(l?.props??{},s.props??{}),c=n?.ui?._ctxVersion??0,i=(l?._ctxVersion??-1)===c;return!r?.force&&d&&i&&l?._child!=null?(s._child=l._child,s._ctxVersion=l._ctxVersion,s):(async()=>{let{childCtx:u}=await rn(s,n,a,{reuse:l??void 0}),p=await D(await s._render(s.props),u,l?._child,a);return s._child=p??null,s._ctxVersion=c,s})()}if(s.type===S){let d=D(s.props?.children??null,n,l?._child??l?.props?.children,a);return Se(d)?d.then(c=>(s._child=c??null,s)):(s._child=d??null,s)}if(typeof s.type=="string"||typeof s.type=="symbol"){let d=D(s.props?.children??null,n,l?.props?.children,a);return Se(d)?d.then(c=>(s._child=c??null,s)):(s._child=d??null,s)}return s}function B(e){if(e===!1)return"false";if(e===null)return"null";if(e===void 0)return"undefined";if(e===!0)return"true";if(typeof e=="object")try{let n=JSON.stringify(e);return`object ${n!=null&&n.length>80?n.slice(0,80)+"\u2026":n??""}`}catch{return`object ${Object.prototype.toString.call(e)}`}return`bad-vnode type=${typeof e}`}function pe(e){return typeof e!="string"&&typeof e!="function"&&e!==S&&e!==R}function sn(e){for(let n=0;n<e.length;n++){let t=e[n];if(t!=null&&typeof t=="object"&&!Array.isArray(t)){let o=t;o.key===void 0?o.key=String(n):o.key=String(o.key)}}}var J=/^on[A-Z]/,Hn=/^on[A-Z].*Capture$/;function te(e){let n=Hn.test(e);return{type:(n?e.slice(2,-7):e.slice(2)).toLowerCase(),capture:n}}var oe=new Set(["draggable","contenteditable","spellcheck","translate"]),an=new Set(["zIndex","opacity","lineHeight","fontWeight","fontSizeAdjust","flex","flexGrow","flexShrink","order","zoom","aspectRatio","gridRow","gridColumn","scale","rotate","animationIterationCount","columnCount","fillOpacity","strokeOpacity","stopOpacity","floodOpacity"]);var Re=new Set(["svg","path","circle","rect","line","polyline","polygon","g","text","defs","use","clipPath"]);function X(e,n,t){if(t==null)return;let o=e.ownerDocument?.defaultView;if(oe.has(n)){e.setAttribute(n,t?"true":"false");return}if(t!==!1){if(n==="class"||n==="className"){if(typeof t=="object")for(let[r,s]of Object.entries(t))s&&e.classList.add(r);else e.setAttribute("class",String(t));return}if(n==="style"){if(typeof t=="string")e.setAttribute("style",t);else{let r=e.style;for(let[s,a]of Object.entries(t))a==null?r[s]="":s.startsWith("--")?r.setProperty(s,String(a)):typeof a=="number"&&!an.has(s)?r[s]=`${a}px`:r[s]=String(a)}return}if(n==="ref"){if(typeof t=="function")try{t(e)}catch(r){console.error("[weifuwu] ref error",r)}return}if(J.test(n)){let{type:r,capture:s}=te(n);if(typeof t!="function"){console.warn(`[weifuwu] event prop ${n} expects a function, got ${typeof t} \u2014 ignored`);return}e.addEventListener(r,t,s?{capture:!0}:void 0);return}if(n==="value"){e.value=t;return}if(n==="indeterminate"){e.indeterminate=!!t;return}if(n==="innerHTML"){e.innerHTML=String(t??"");return}if(n.startsWith("aria-")&&typeof t=="boolean"){e.setAttribute(n,t?"true":"false");return}if(t===!0){e.setAttribute(n,"");return}try{e[n]=t,e.getAttribute(n)!==String(t)&&e.setAttribute(n,String(t))}catch{e.setAttribute(n,String(t))}}}function K(e,n){return e.createComment(`wf-hole: ${B(n)}`)}function U(e,n,t){let o=n?.browser??t;if(!o)throw new Error("[vdom] renderValue requires browser env (ctx.browser)");if(e==null||typeof e=="boolean")return null;if(typeof e=="string"||typeof e=="number")return o.createTextNode(String(e));if(Array.isArray(e)){let c=o.createDocumentFragment();if(!c)return null;for(let i of e){let u=i==null||typeof i=="boolean"?K(o,i):U(i,n,o);u!=null&&c.appendChild(u)}return c}let r=e,s=r.type;if(typeof s!="string"&&typeof s!="function"&&s!==S&&s!==R)return console.warn(`[weifuwu] children \u9879\u975E\u6CD5\uFF1Atype=${String(s)}\uFF08${typeof s}\uFF09\uFF0C\u503C=${B(e)}\u2014\u2014\u5DF2\u5360\u4F4D\uFF08wf-hole\uFF09\uFF0C\u68C0\u67E5\u4F20\u5165\u7684 children`),K(o,e);if(r.type===R){let c=o.bodyElement();if(!c)return null;let i=c.querySelector("#__wf_portal");i||(i=o.createElement("div"),i&&(i.id="__wf_portal",c.appendChild(i)));let u=o.createElement("div");if(u){u.setAttribute("data-portal",String(r.props?.portalKey??"wf"));let p=U(r.props?.children??null,n,o);p!=null&&u.appendChild(p),i&&i.appendChild(u),r._remoteEl=u}return null}if(r.type===S){let c=o.createDocumentFragment();if(!c)return null;for(let i of j(r.props?.children)){let u=i==null||typeof i=="boolean"?K(o,i):U(i,n,o);u!=null&&c.appendChild(u)}return r._childNodes=Array.from(c.childNodes),c}if(typeof r.type=="function"){if(typeof r._render!="function")throw new Error(`[vdom] component ${r.type.name||"anonymous"} not built (missing _render) \u2014 buildVNode must run before renderValue`);if(r._child===void 0)throw new Error(`[vdom] component ${r.type.name||"anonymous"} not built (missing _child) \u2014 buildVNode must run before renderValue`);let c=r._child;if(c==null)return r._child=null,null;let i=(Array.isArray(c)||typeof c=="object"&&typeof c.type=="function",c);r._child=i,typeof i=="object"&&!Array.isArray(i)&&(i._parentVNode=r);let u=U(i,n,o);if(u){if(r._refNode=u,r._id)if(u.nodeType===11)for(let p of Array.from(u.childNodes))p.nodeType===1&&p.setAttribute("data-wf-id",r._id);else u.nodeType===1&&u.setAttribute("data-wf-id",r._id);if(r.key!=null)if(u.nodeType===11)for(let p of Array.from(u.childNodes))p.nodeType===1&&p.setAttribute("data-wf-key",r.key);else u.nodeType===1&&u.setAttribute("data-wf-key",r.key)}return u}let a=r.type,l=Re.has(a)?o.createElementNS("http://www.w3.org/2000/svg",a):o.createElement(a);if(!l)return null;r.el=l,r.key!=null&&l.setAttribute("data-wf-key",r.key);let d;for(let[c,i]of Object.entries(r.props??{}))if(!(c==="children"||c==="key")){if(c==="value"&&l instanceof HTMLSelectElement){d=i;continue}X(l,c,i)}if(!("innerHTML"in(r.props??{}))){let c=[];for(let i of j(r.props?.children)){let u=i==null||typeof i=="boolean"?K(o,i):U(i,n,o);if(u==null){c.push(null);continue}if(l.appendChild(u),c.push(u.nodeType===11?u.firstChild:u),i&&typeof i=="object"&&!Array.isArray(i)&&typeof i.type=="function"){let p=i;p._parentNode||(p._parentNode=l,p._refNode=u)}}r._childAnchors=c}return d!==void 0&&(l.value=String(d)),l}var Un=0;function Me(){return{idRegistry:new Map,unmountHooks:[],nextId:()=>`_wf_${Un++}`}}function me(e,n){return e.unmountHooks.push(n),()=>{let t=e.unmountHooks.indexOf(n);t>=0&&e.unmountHooks.splice(t,1)}}function ye(e,n){for(let t of[...e.unmountHooks])t(n);e.idRegistry.delete(n),e.idRegistry.delete(`custom:${n}`)}function In(e,n,t,o){try{e(n)}catch(r){console.error(`[weifuwu] ref ${t} error in <${o??"anonymous"}>`,r)}}function H(e,n){if(e==null||typeof e!="object")return;let t=e;if(t._id){if(t._customId&&n.idRegistry.delete(t._customId),n.idRegistry.delete(t._id),n.unmountHooks.length>0){let o=[...n.unmountHooks];for(let r of o)r(t._id);if(t._customId)for(let r of o)r(t._customId)}t._id=void 0,t._customId=void 0,t._render=void 0,t._parentNode=void 0,t._refNode=void 0}if(t._child!=null){if(Array.isArray(t._child))for(let o of t._child)o&&typeof o=="object"&&H(o,n);else H(t._child,n);t._child=void 0}if(t.props?.children&&typeof t.type=="string"){let o=Array.isArray(t.props.children)?t.props.children:[t.props.children];for(let r of o)r&&typeof r=="object"&&H(r,n)}if(typeof t.props?.ref=="function"&&In(t.props.ref,null,"cleanup"),t._remoteEl){let o=t._child;if(o!=null)if(Array.isArray(o))for(let r of o)r&&typeof r=="object"&&H(r,n);else typeof o=="object"&&H(o,n);t._remoteEl.remove(),t._remoteEl=void 0}}function se(e,n){if(n&&typeof e.type=="function"&&e._id){try{H(e,n)}catch(t){console.error("[weifuwu] ref cleanup error",t)}ye(n,e._id)}}function re(e){if(e==null||typeof e!="object"||Array.isArray(e))return;let n=e;return n._placement==="remote"?n.props?.portalKey:n.key}function Le(e,n){if(n&&e&&typeof e=="object"&&!Array.isArray(e)&&e.type===S){let t=e._childNodes;if(t&&t.length)return t}return[n]}function $(e,n,t,o,r){if(typeof o=="string"||typeof o=="number"){if(typeof t=="string"||typeof t=="number"){if(String(t)!==String(o)){if(n&&n.nodeType===3)return n.nodeValue=String(o),n;let u=e.ownerDocument.createTextNode(String(o));return n?.parentNode?n.parentNode.replaceChild(u,n):e.appendChild(u),u}return n}let i=e.ownerDocument.createTextNode(String(o));return n?.parentNode?n.parentNode.replaceChild(i,n):e.appendChild(i),i}if(o==null||typeof o=="boolean"){if(t&&typeof t=="object"&&!Array.isArray(t)&&t.type===R){let i=t._remoteEl;try{H(t.props?.children,r.registry)}catch(u){console.error("[weifuwu] portal ref cleanup error",u)}return i?.parentNode?.removeChild(i),null}if(t&&typeof t=="object"&&!Array.isArray(t))if(typeof t.type=="function")se(t,r.registry);else try{H(t,r.registry)}catch(i){console.error("[weifuwu] ref cleanup error",i)}return n?.parentNode&&n.parentNode.removeChild(n),null}if(Array.isArray(o)){if(t===o&&n?.parentNode)return n;let i=e.ownerDocument.createDocumentFragment(),u=ge(e,t,o,r,n?[n]:void 0);for(let p of u)p&&i.appendChild(p);return n?.parentNode?i.contains(n)?e.appendChild(i):n.parentNode.replaceChild(i,n):e.appendChild(i),i}let s=o;if(s.type===R){let i=t&&typeof t=="object"&&!Array.isArray(t)?t:null;if(i?.type===R){let u=i._remoteEl;if(u){let p=i.props?.children??null,g=s.props?.children??null;ge(u,p,g,r)}return s._remoteEl=i._remoteEl,null}return U(s,r,r.browser??A()),null}if(s.type===S){let i=t&&typeof t=="object"&&!Array.isArray(t)?t:null,u=i?._childNodes,p=ge(e,i?.props?.children??t,s.props?.children??null,r,u);return s._childNodes=p.filter(Boolean),n?.parentNode&&n.nodeType===8&&n.parentNode.removeChild(n),n&&n.nodeType===1?n:p[0]??null}if(typeof s.type=="function"){if(typeof s._render!="function")throw new Error(`[vdom] component ${s.type.name||"anonymous"} not built in diff \u2014 buildVNode must run before patchValue`);let i=t&&typeof t=="object"&&!Array.isArray(t)?t:null,u=i?.type===s.type;if(!r.force&&i&&u&&i._child!==void 0&&s._child===i._child)return n;i?.type===s.type&&i._id&&(s._id=i._id,r.registry.idRegistry.set(s._id,s)),s._parentNode=e,n&&(s._refNode=n);let p;if(s._child===void 0)throw new Error(`[vdom] component ${s.type.name||"anonymous"} not built (missing _child) \u2014 buildVNode must run before patchValue`);p=s._child;let g=$(e,n,i?._child,p,r);return g&&(s._refNode=g),g}let a=t&&typeof t=="object"&&!Array.isArray(t)?t:null,l=a?.type??null,d=s.type;if(n&&n.nodeType===1&&l===d){let i=n;if(s.el=i,On(i,a?.props??{},s.props??{}),!("innerHTML"in(s.props??{}))){let u=[];ge(i,a?.props?.children??null,s.props?.children??null,r,void 0,a?._childAnchors,u),s._childAnchors=u}return i}let c=U(s,r,r.browser??A());if(c==null)return null;if(n?.parentNode)if(t!=null&&typeof t!="boolean"){if(typeof t=="object"&&!Array.isArray(t))try{H(t,r.registry)}catch(i){console.error("[weifuwu] ref cleanup error",i)}n.parentNode.replaceChild(c,n)}else n.parentNode.insertBefore(c,n);else e.appendChild(c);return c}function On(e,n,t){let o=Object.keys(n),r=Object.keys(t);if(o.length===r.length){let a=!0;for(let l=0;l<o.length;l++)if(o[l]!==r[l]||n[o[l]]!==t[o[l]]){a=!1;break}if(a)return}let s=new Set([...o,...r]);for(let a of s){if(a==="children"||a==="key")continue;let l=n[a],d=t[a];if(l!==d){if(J.test(a)){let{type:c,capture:i}=te(a);typeof l=="function"&&e.removeEventListener(c,l,i?{capture:!0}:void 0),d!=null&&d!==!1&&(typeof d!="function"?console.warn(`[weifuwu] event prop ${a} expects a function, got ${typeof d} \u2014 ignored`):e.addEventListener(c,d,i?{capture:!0}:void 0));continue}if(a==="class"||a==="className"){d==null||d===!1?e.removeAttribute("class"):(e.className="",X(e,a,d));continue}if(d==null||d===!1){if(a==="class"||a==="className")e.removeAttribute("class");else if(J.test(a))e.removeEventListener(a.slice(2).toLowerCase(),l);else if(a==="ref"){if(typeof l=="function")try{l(null)}catch(c){console.error("[weifuwu] ref cleanup error",c)}}else if(a==="value")e.value="";else if(a==="indeterminate")e.indeterminate=!1;else{e.removeAttribute(a);try{delete e[a]}catch{}}continue}X(e,a,d)}}}function ge(e,n,t,o,r,s,a){let l=j(n),d=j(t),c=s??r??Array.from(e.childNodes);if(d.some(f=>{if(f==null||typeof f!="object"||Array.isArray(f))return!1;let m=f;return m._placement!=="remote"&&m.key!==void 0})){for(let f=0;f<d.length;f++){let m=d[f];m&&typeof m=="object"&&!Array.isArray(m)&&re(m)===void 0&&(m.key=`pos:${f}`)}for(let f=0;f<l.length;f++){let m=l[f];m&&typeof m=="object"&&!Array.isArray(m)&&re(m)===void 0&&(m.key=`pos:${f}`)}}let u=s?s.map((f,m)=>f??(m<l.length?l[m]?._refNode??null:null)):l.map((f,m)=>{if(f==null||typeof f!="object"||Array.isArray(f))return c[m]??null;let T=f;return T._placement==="remote"?T._remoteEl??null:T.type===S?T._childNodes?.[0]??null:T._refNode??T.el??null});if(!d.some(f=>{if(f==null||typeof f!="object"||Array.isArray(f))return!1;let m=f;return m._placement!=="remote"&&m.key!==void 0})){let f=Math.max(l.length,d.length),m=[],T=_=>{a&&a.push(_)};for(let _=0;_<f;_++){let b=_<l.length?l[_]:null,v=_<d.length?d[_]:null;if(v==null||typeof v=="boolean"){let V=u[_],M=o.browser??A(),N=K(M,v);if(b==null||typeof b=="boolean"){V?.nodeType===8?(N&&V.nodeValue!==N.nodeValue&&(V.nodeValue=N.nodeValue),m.push(V),T(V)):(N&&V?.parentNode?V.parentNode.replaceChild(N,V):N&&e.appendChild(N),m.push(N),T(N));continue}if(b&&typeof b=="object"&&!Array.isArray(b))if(typeof b.type=="function")se(b,o.registry);else try{H(b,o.registry)}catch(I){console.error("[weifuwu] ref cleanup error",I)}N&&V?.parentNode?V.parentNode.replaceChild(N,V):N&&e.appendChild(N),m.push(N),T(N);continue}if(b!=null&&typeof b=="object"&&!Array.isArray(b)&&v!=null&&typeof v=="object"&&!Array.isArray(v)&&v===b){m.push(u[_]),T(u[_]);continue}if(b==null||typeof b=="boolean"){let V=U(v,o,o.browser??A());if(V==null){m.push(null),T(null);continue}let M=u[_];if(M&&M.nodeType===8&&M.nodeValue?.startsWith("wf-hole:")){M.parentNode?.replaceChild(V,M),m.push(V),T(V);continue}let N=null;for(let I=_+1;I<u.length;I++){let O=u[I];if(O&&O.parentNode===e){N=O;break}}if(!N){let I=null;for(let O=m.length-1;O>=0;O--)if(m[O]){I=m[O];break}if(I&&I.parentNode===e&&(N=I.nextSibling),!N){let O=u[u.length-1];O&&O.parentNode===e&&(N=O.nextSibling)}}N&&N.parentNode===e?e.insertBefore(V,N):e.appendChild(V),m.push(V),T(V);continue}let C=$(e,u[_],b,v,o),k=Le(v,C);m.push(...k),T(k[0]??C??null)}return m}let g=new Map;l.forEach((f,m)=>{let T=re(f);T!==void 0&&f&&typeof f=="object"&&!Array.isArray(f)&&g.set(T,{vnode:f,nodes:[u[m]??null].filter(Boolean),index:m})});let h=[],w=new Set,x=f=>{a&&a.push(f)},y=null;return d.forEach((f,m)=>{let T=re(f),_=f;if(T!==void 0&&g.has(T)){let b=g.get(T),v=b.nodes[0]??null;w.add(T);let C=$(e,v,b.vnode,_,o),k=Le(_,C),V=k[k.length-1]??C;V&&V.parentNode===e&&y&&V.previousSibling!==y&&e.insertBefore(V,y.nextSibling),h.push(...k),x(k[0]??C??null),V&&(y=V)}else{if(f==null||typeof f=="boolean"){let b=l[m]??null,v=u[m]??null,C=K(o.browser??A(),f);if(b==null||typeof b=="boolean")v?.nodeType===8?(C&&v.nodeValue!==C.nodeValue&&(v.nodeValue=C.nodeValue),h.push(v),x(v),v&&(y=v)):(C&&v?.parentNode?v.parentNode.replaceChild(C,v):C&&e.appendChild(C),h.push(C),x(C),C&&(y=C));else{if(typeof b=="object"&&!Array.isArray(b))if(typeof b.type=="function")se(b,o.registry);else try{H(b,o.registry)}catch(k){console.error("[weifuwu] ref cleanup error",k)}C&&v?.parentNode?v.parentNode.replaceChild(C,v):C&&e.appendChild(C),h.push(C),x(C),C&&(y=C)}return}if(_?._placement==="remote"){let b=l[m]??null,v=$(e,u[m]??null,b,_,o),C=Le(_,v);h.push(...C),x(C[0]??v??null);let k=C[C.length-1]??v;k&&(y=k)}else{let b=U(_,o,o.browser??A());if(h.push(b),x(b??null),b!=null){let v=u[m];v&&v.nodeType===8&&v.nodeValue?.startsWith("wf-hole:")?(v.parentNode?.replaceChild(b,v),y=b):(y?e.insertBefore(b,y.nextSibling):e.insertBefore(b,e.firstChild),y=b)}}}}),l.forEach((f,m)=>{let T=re(f),_=f&&typeof f=="object"&&!Array.isArray(f)&&typeof f.type=="function";if(T!==void 0&&!w.has(T)){if(f&&typeof f=="object"&&!Array.isArray(f))if(_)se(f,o.registry);else try{H(f,o.registry)}catch(v){console.error("[weifuwu] ref cleanup error",v)}let b=u[m];b?.parentNode&&b.parentNode.removeChild(b)}else if(T===void 0){let b=m<d.length?d[m]:null,v=u[m];if(!(v?.nodeType===8&&v.nodeValue?.startsWith("wf-hole:"))||b==null){if(f&&typeof f=="object"&&!Array.isArray(f))if(_)se(f,o.registry);else try{H(f,o.registry)}catch(k){console.error("[weifuwu] ref cleanup error",k)}v?.parentNode&&v.parentNode.removeChild(v)}}}),h}function He(){return!!globalThis?.__WF_VDOM_AUDIT}function he(e,n,t){if(n==null||n.length===0)return;let o=Array.from(e.childNodes);n.some(s=>{if(s==null||typeof s!="object"||Array.isArray(s))return!1;let a=s.type;return a===S||a===R})||o.length!==n.length&&t(`[audit] \u6570\u7EC4\u6570\u91CF\u9519\u4F4D\uFF1A${e.nodeName} \u671F\u671B ${n.length} \u4E2A childNodes\uFF0C\u5B9E\u9645 ${o.length}\uFF08vnode/DOM \u4E0D\u540C\u6784\uFF09`);for(let s=0;s<n.length;s++){let a=n[s];if(a==null||typeof a=="boolean"){let l=o[s];(!l||l.nodeType!==8||!l.nodeValue?.startsWith("wf-hole:"))&&t(`[audit] \u5360\u4F4D\u9519\u4F4D\uFF1A\u4F4D\u7F6E ${s} \u671F\u671B\u6CE8\u91CA(wf-hole)\uFF0C\u5B9E\u9645 ${l?.nodeName??"null"}\uFF08${e.nodeName}\uFF09`)}else if(typeof a=="string"||typeof a=="number"){let l=o[s];l&&l.nodeType!==3&&t(`[audit] \u6587\u672C\u9519\u4F4D\uFF1A\u4F4D\u7F6E ${s} \u671F\u671B\u6587\u672C\u8282\u70B9\uFF0C\u5B9E\u9645 ${l.nodeName}\uFF08${e.nodeName}\uFF09`)}}}function Q(e,n,t){if(n==null||typeof n=="boolean"||typeof n=="string"||typeof n=="number")return;if(Array.isArray(n)){he(e,n,t);for(let s of n)if(s!=null&&typeof s=="object"&&Array.isArray(s))for(let a of s)Q(e,a,t);else s!=null&&typeof s=="object"&&!Array.isArray(s)&&s.type===S&&he(e,j(s.props?.children),t);return}let o=n;if(o.type===R)return;if(o.type===S){he(e,j(o.props?.children),t);return}if(pe(o.type))return;if(typeof o.type=="function"){let s=o._refNode;s&&s.parentNode!==e&&t(`[audit] \u7EC4\u4EF6\u951A\u70B9\u9519\u4F4D\uFF1A${o.type.name||"anonymous"} _refNode \u4E0D\u5728\u7236\u8282\u70B9\u5185`),o._child!=null&&Q(e,o._child,t);return}let r=o.el??o._refNode;if(r&&r.nodeType===1&&r.tagName.toLowerCase()!==String(o.type)&&t(`[audit] \u5143\u7D20\u7C7B\u578B\u9519\u4F4D\uFF1A\u671F\u671B <${String(o.type)}>\uFF0C\u5B9E\u9645 ${r.tagName}`),r&&r.nodeType===1&&!("innerHTML"in(o.props??{}))){he(r,j(o.props?.children),t);for(let s of j(o.props?.children))s!=null&&typeof s=="object"&&!Array.isArray(s)&&typeof s.type=="function"&&Q(r,s,t)}}var ln=A();function un(e,n="bottom",t=6,o=!0){switch(n){case"bottom":return{top:e.bottom+t,left:o?e.left+e.width/2:e.left};case"top":return{top:e.top-t,left:o?e.left+e.width/2:e.left};case"left":return{top:o?e.top+e.height/2:e.top,left:e.left-t};case"right":return{top:o?e.top+e.height/2:e.top,left:e.right+t}}}function be(e,n,t=8){if(!n)return e;let o=n.getBoundingClientRect();if(o.width===0&&o.height===0)return e;let r=Number.parseFloat(n.style.top)||o.top,s=Number.parseFloat(n.style.left)||o.left,a=e.top-r,l=e.left-s,d={top:o.top+a,bottom:o.bottom+a,left:o.left+l,right:o.right+l},c=ln.viewportWidth(),i=ln.viewportHeight(),u=e.top,p=e.left;return d.bottom>i-t&&(u=Math.max(t,u-(d.bottom-(i-t)))),d.top<t&&(u=Math.max(t,u+(t-d.top))),d.right>c-t&&(p=Math.max(t,p-(d.right-(c-t)))),d.left<t&&(p=Math.max(t,p+(t-d.left))),{top:u,left:p,width:e.width}}var Z=A();function dn(e){let n=new Map,t=new Map,o=!1,r=0;function s(){r||(r=requestAnimationFrame(()=>{r=0;let i=[];for(let[u,p]of n){if(!p.isOpen())continue;let g=p.getEl();if(!g)continue;let h=g.getBoundingClientRect();if(h.width===0&&h.height===0)continue;let w=p.compute(h);Object.assign(p.pos,be(w,p.panel?.(),p.margin)),i.push(u)}for(let[u,p]of t){let g=p.getScroller(),h=g instanceof Window?Z.scrollingElement()?.scrollTop??Z.scrollTop():g.scrollTop??0;h!==p.handle.y&&(p.handle.y=h,i.push(u))}i.length>0&&e(i)}))}function a(){o||(o=!0,Z.addEventListener("scroll",s,{capture:!0,passive:!0}),Z.addEventListener("resize",s))}function l(){o&&(Z.removeEventListener("scroll",s,{capture:!0}),Z.removeEventListener("resize",s),o=!1)}function d(i){for(let u of[...n.keys()])(u.startsWith(`popup:${i}:`)||u===`popup:${i}`||u===i)&&n.delete(u);t.delete(i)}function c(){l(),r&&(cancelAnimationFrame(r),r=0),n.clear(),t.clear()}return{popupTrackers:n,scrollTrackers:t,schedulePopupRecompute:s,ensurePopupListeners:a,destroyPopupListeners:l,cleanupTrackers:d,destroy:c}}function Ue(e,n,t){return r=>{r?n(r):t?.()}}function ie(e){return typeof window<"u"&&!!window.matchMedia?.("(hover: hover)").matches}function we(e){return typeof window<"u"&&!!window.matchMedia?.("(prefers-reduced-motion: reduce)").matches}function Ie(e,n,t){let o=null,r=()=>{n(),t?.once&&o&&o.removeEventListener("animationend",r)};return a=>{a?(o=a,a.addEventListener("animationend",r)):o&&(o.removeEventListener("animationend",r),o=null)}}function Oe(e,n){let{onLongPress:t,duration:o=500}=n,r,s=0,a=0,l=null,d=()=>{clearTimeout(r),r=void 0},c=e.selfId();if(c){let i=e.onUnmount(u=>{u===c&&(d(),i())})}return{onPointerDown:i=>{s=i.clientX??0,a=i.clientY??0,l=i,d(),r=setTimeout(()=>{r=void 0,l&&t(l)},o)},onPointerUp:d,onPointerLeave:d,onPointerMove:i=>{let u=Math.abs((i.clientX??0)-s),p=Math.abs((i.clientY??0)-a);(u>10||p>10)&&d()},onContextMenu:i=>{i.preventDefault(),t(i)}}}function ae(e,n){let t=e.selfId(),o="closed",r,s=()=>{o="closed",t?e.render([t]):e.render()};return{get phase(){return o},ref:l=>{l?r||(r=()=>{o==="exit"&&s()},l.addEventListener("animationend",r)):r=void 0},sync:l=>(l?o="open":o==="open"&&(o="exit"),o)}}function De(e,n,t){let o=e.selfId(),r=we(e),s=t?.duration??400,a=t?.ease==="linear"?p=>p:p=>1-Math.pow(1-p,3),l,d=n,c={value:r?n:0,reset:()=>{}},i=()=>{o?e.render([o]):e.render()},u=p=>{if(d=p,r){c.value=p,i();return}if(p===c.value)return;l&&cancelAnimationFrame(l);let g=c.value,h=performance.now(),w=x=>{let y=Math.min(1,(x-h)/s);c.value=Math.round(g+(p-g)*a(y)),y<1?(l=requestAnimationFrame(w),i()):(l=void 0,i())};l=requestAnimationFrame(w)};if(c.reset=p=>{p===d&&l||u(p)},o){let p=e.onUnmount(g=>{g===o&&(l&&(cancelAnimationFrame(l),l=void 0),p())})}return queueMicrotask(()=>u(n)),c}function We(e,n,t){let o=e.selfId(),r=e.browser,s=`media:${o}:${n}`;if(!e.mediaRegistry.has(s)){let a=r.matchMedia(n);t(a.matches);let l=c=>t(c.matches);a.addEventListener("change",l),e.mediaRegistry.set(s,{mql:a,handler:l});let d=e.onUnmount(c=>{if(c!==o)return;let i=e.mediaRegistry.get(s);if(i?.mql&&i.handler)try{i.mql.removeEventListener("change",i.handler)}catch{}e.mediaRegistry.delete(s),d()})}}function je(e,n,t){let o=e.browser,r=typeof n=="function"?{mobile:"(max-width: 639px)",tablet:"(min-width: 640px) and (max-width: 1023px)",desktop:"(min-width: 1024px)"}:n,s=typeof n=="function"?n:t,a=e.selfId(),l=`bp:${a}`;function d(){for(let[c,i]of Object.entries(r))if(o.matchMedia(i).matches)return c;return Object.keys(r)[0]??""}if(!e.mediaRegistry.has(l)){s(d());let c=[];for(let u of Object.values(r)){let p=o.matchMedia(u),g=()=>s(d());p.addEventListener("change",g),c.push({mql:p,handler:g})}e.mediaRegistry.set(l,{mqls:c});let i=e.onUnmount(u=>{if(u!==a)return;let p=e.mediaRegistry.get(l);if(p?.mqls)for(let g of p.mqls)try{g.mql.removeEventListener("change",g.handler)}catch{}e.mediaRegistry.delete(l),i()})}}function $e(e){let n=e.selfId(),t=e.browser,o={height:t.viewportHeight(),offsetTop:0,keyboardOpen:!1},r=()=>{n?e.render([n]):e.render()},s=()=>{let l=t.visualViewport();o.height=l?.height??t.viewportHeight(),o.offsetTop=l?.offsetTop??0,o.keyboardOpen=o.height<t.viewportHeight()*.9,r()},a=t.visualViewport();if(a?.addEventListener?(a.addEventListener("resize",s),a.addEventListener("scroll",s)):t.addEventListener("resize",s),n){let l=e.onUnmount(d=>{d===n&&(a?.removeEventListener?(a.removeEventListener("resize",s),a.removeEventListener("scroll",s)):t.removeEventListener("resize",s),l())})}return o}function qe(e,n){let t=e.selfId(),o={isIn:!1,ready:!1,observe:d,refresh:c,disconnect:i},r=null,s=null,a=()=>{t?e.render([t]):e.render()};function l(){if(s?.disconnect(),s=null,!r)return;let u=typeof n.rootMargin=="function"?n.rootMargin():n.rootMargin,p=typeof n.threshold=="function"?n.threshold():n.threshold;s=new IntersectionObserver(g=>{let h=g[g.length-1];if(!h)return;let w=h.isIntersecting,x=w!==o.isIn,y=!o.ready;o.isIn=w,o.ready=!0,n.onChange?.(h,w),(x||y)&&a()},{root:n.root?n.root():null,rootMargin:u??"0px",threshold:p??0}),s.observe(r)}function d(u){r=u,u?l():(s?.disconnect(),s=null,o.isIn=!1)}function c(){l()}function i(){s?.disconnect(),s=null}if(t){let u=e.onUnmount(p=>{p===t&&(i(),u())})}return o}function Fe(e,n){let t=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:n.getScroller??(()=>window)};if(!t)return r.refresh(),r;e.scrollTrackers.set(t,s),e.ensurePopupListeners(),r.refresh();let a=e.onUnmount(l=>{l===t&&(e.scrollTrackers.delete(t),a())});return r}function ve(e,n){let t=e.selfId(),o=n.value!==void 0;if(o&&!n.onChange&&n.name&&(e.warned.has(n.name)||(e.warned.add(n.name),console.warn(`[weifuwu/${n.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&&t&&!e.uncontrolledValues.has(t)){e.uncontrolledValues.set(t,n.value);let s=e.onUnmount(a=>{a===t&&(e.uncontrolledValues.delete(t),s())})}let r=s=>{if(o){n.onChange?.(s);return}t&&e.uncontrolledValues.set(t,s),t?e.render([t]):e.render()};return{value:o?n.value:t?e.uncontrolledValues.get(t):n.value,setValue:r,controlled:o}}function Be(e,n){let t=e.selfId(),o=ve(e,{value:n.value,onChange:n.onChange,name:n.name});if(t&&!e.inputStates.has(t)){e.inputStates.set(t,{keyword:"",selectedLabel:""});let a=e.onUnmount(l=>{l===t&&(e.inputStates.delete(t),a())})}let r=t?e.inputStates.get(t):{keyword:"",selectedLabel:""},s=()=>{t?e.render([t]):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 Ke(e,n){let t=e.selfId(),o=!1;if(t){let d=e.onUnmount(c=>{c===t&&(o=!0,d())})}let r=()=>{o||(t?e.render([t]):e.render())},s={data:void 0,loading:!1,error:void 0},a=0,l=()=>{let d=++a;s.loading=!0,s.error=null,r(),Promise.resolve().then(()=>n()).then(c=>{a===d&&(s.data=c,s.loading=!1,r())}).catch(c=>{a===d&&(s.error=c,s.loading=!1,r())})};return l(),s.reload=l,s}function ze(e,n){let t=e.selfId(),o=e.browser;if(typeof window>"u")return()=>{};if(o.addEventListener("keydown",n),t){let r=e.onUnmount(s=>{s===t&&(o.removeEventListener("keydown",n),r())})}return()=>o.removeEventListener("keydown",n)}function Ge(e,n){let t=e.browser,o=0,r=0,s=!1,a=i=>{s&&n.onMove(i,{x:i.clientX-o,y:i.clientY-r})},l=i=>{s&&(s=!1,t.removeEventListener("pointermove",a),t.removeEventListener("pointerup",l),n.onEnd?.(i))},d=i=>{s||(i.preventDefault(),s=!0,o=i.clientX,r=i.clientY,t.addEventListener("pointermove",a),t.addEventListener("pointerup",l),n.onStart?.(i))},c=e.selfId();if(c){let i=e.onUnmount(u=>{u===c&&(s&&(t.removeEventListener("pointermove",a),t.removeEventListener("pointerup",l),s=!1),i())})}return{onPointerDown:d}}function Ye(e,n){let t={};n.onDrop&&(t.onDrop=r=>{r.preventDefault(),n.onDrop(r)}),n.onDragOver&&(t.onDragOver=r=>{r.preventDefault(),n.onDragOver(r)}),n.onDragLeave&&(t.onDragLeave=r=>n.onDragLeave(r));let o={draggable:!0};if(n.onDragStart){let r=n.onDragStart;o.onDragStart=s=>{typeof document<"u"&&document.body.classList.add("wf-dragging"),r(s)}}if(n.onDragEnd){let r=n.onDragEnd;o.onDragEnd=s=>{typeof document<"u"&&document.body.classList.remove("wf-dragging"),r(s)}}return{dropProps:t,dragProps:o}}function Ce(e,n){let t=e.selfId(),o={top:0,left:0,refresh:()=>{}};if(!t)return o;let r={pos:o,getEl:n.el,isOpen:n.isOpen,compute:n.compute,panel:n.panel,margin:n.margin??8};e.popupTrackers.set(t,r),e.ensurePopupListeners();let s=e.onUnmount(a=>{a===t&&(e.popupTrackers.delete(t),s())});return o.refresh=()=>{let a=r.getEl();if(!a)return;let l=a.getBoundingClientRect();if(l.width===0&&l.height===0)return;let d=r.compute(l);Object.assign(o,be(d,r.panel?.(),r.margin))},o}function Je(e,n){let t=e.selfId(),o=e.browser,r=ie(e),s=()=>typeof n.trigger=="function"?n.trigger():n.trigger??"manual",a=n.open!==void 0,l=()=>!!n.disabled?.(),d=()=>a?typeof n.open=="function"?!!n.open():!!n.open:n.isOpen(),c=n.presence?ae(e,{name:n.name}):null,i,u=!1,p=E=>{if(!c)return E?"open":"closed";let P=c.sync(E);return E&&n.lockScroll&&!u&&(Dn(),u=!0),P},g=E=>{l()||(a?n.onOpenChange?.(E):c?E?p(!0):d()&&p(!1):n.setOpen(E))},h=()=>{let E=n.placement;return typeof E=="function"?E():E??"bottom"},w=null,x=!1,y=Ce(e,{el:n.el??(()=>null),isOpen:()=>d(),compute:E=>{if(n.position){let P=n.position();return{top:P.y,left:P.x,width:P.width}}return un(E,h(),n.gap??6,n.center!==!1)},panel:()=>w,margin:n.margin??8}),f=E=>{if(n.closeOnOutside===!1||n.mask||!d())return;let P=E.target;if(!(P instanceof Node))return;let W=n.el?.()??null;W&&W.contains(P)||w&&w.contains(P)||g(!1)},m=E=>{n.closeOnEscape!==!1&&(E.key!=="Escape"||!d()||g(!1))};if(o.addEventListener("mousedown",f),o.addEventListener("keydown",m),t){let E=e.onUnmount(P=>{P===t&&(o.removeEventListener("mousedown",f),o.removeEventListener("keydown",m),E())})}let T={},_=E=>typeof E=="function"?E():E??0,b=()=>_(n.openDelay),v=()=>_(n.closeDelay),C,k,V=()=>{clearTimeout(C),clearTimeout(k),C=void 0,k=void 0},M=E=>{if(l())return;let P=E.currentTarget,W=E.relatedTarget;P.contains(W)||(clearTimeout(k),k=void 0,C=setTimeout(()=>{C=void 0,g(!0)},b()))},N=E=>{if(l())return;let P=E.currentTarget,W=E.relatedTarget;P.contains(W)||(clearTimeout(C),C=void 0,k=setTimeout(()=>{k=void 0,g(!1)},v()))},I=()=>{l()||(clearTimeout(k),k=void 0,C=setTimeout(()=>{C=void 0,g(!0)},b()))},O=()=>{l()||(clearTimeout(C),C=void 0,k=setTimeout(()=>{k=void 0,g(!1)},v()))},ne=()=>s()==="hover";if(T.onMouseOver=E=>{ne()&&M(E)},T.onMouseOut=E=>{ne()&&N(E)},T.onClick=()=>{ne()?r||g(!d()):s()==="click"&&g(!0)},T.onFocus=()=>{ne()?I():s()==="focus"&&(clearTimeout(k),k=void 0,g(!0))},T.onBlur=()=>{ne()?O():s()==="focus"&&(clearTimeout(C),C=void 0,k=setTimeout(()=>{k=void 0,g(!1)},v()))},s()==="longpress"){let E,P=0,W=0,q=()=>{clearTimeout(E),E=void 0};T.onPointerDown=L=>{l()||(P=L.clientX??0,W=L.clientY??0,q(),E=setTimeout(()=>{E=void 0,n.onTrigger?.({clientX:P,clientY:W}),g(!0)},n.longPressDuration??500))},T.onPointerUp=q,T.onPointerLeave=q,T.onPointerMove=L=>{let Ve=Math.abs((L.clientX??0)-P),_e=Math.abs((L.clientY??0)-W);(Ve>10||_e>10)&&q()},T.onContextMenu=L=>{L.preventDefault(),n.onTrigger?.({clientX:L.clientX??0,clientY:L.clientY??0}),g(!0)}}if(T.onKeyDown=E=>{E.key==="Escape"&&n.closeOnEscape!==!1&&g(!1)},t){let E=e.onUnmount(P=>{P===t&&(V(),E())})}let En=E=>{if(E){w=E;let P=()=>y.refresh();E.addEventListener("animationend",P,{once:!0})}else w=null},xe=null,Ne=null,tn=E=>{En(E),Ne&&Ne(E),c?.ref(E),n.trapFocus&&(E?i=$n(E):(i?.(),i=void 0)),n.lockScroll&&!E&&u&&(Wn(),u=!1)};return{get open(){return d()},setOpen:g,get phase(){return c?c.phase:d()?"open":"closed"},sync:p,wrapProps:T,portal:(E,P="popover")=>{if(l())return null;if(!(c?c.phase!=="closed":d()))return x=!1,xe=null,null;let q=n.el?.()??null;(!x||q!==xe)&&(q?y.refresh():queueMicrotask(()=>{d()&&y.refresh()}),x=!0,xe=q);let L=E.props??{};Ne=L.ref??null;let Ve=n.positioning==="none"?L.class??"":["wf-popup",L.class].filter(Boolean).join(" "),_e=n.positioning==="none"?{...L.style??{},position:"fixed"}:{...L.style??{},position:"fixed",top:`${y.top}px`,left:`${y.left}px`,...y.width!==void 0?{width:`${y.width}px`}:{},maxWidth:(()=>{let ce=typeof n.width=="function"?n.width():n.width;return ce!==void 0?`min(${ce}px, calc(100vw - 32px))`:"calc(100vw - 32px)"})()},G={...E,props:{...L,class:Ve,style:_e,ref:tn}};if(n.mask){let ce=typeof n.mask=="object"?n.mask:F("div",{class:"wf-popup-mask","data-portal-mask":P,onClick:n.maskClosable===!1?void 0:()=>g(!1)}),Cn=n.maskCentered?F("div",{class:"wf-cover",style:{"--wf-z":"var(--wf-z-popover)",pointerEvents:"none"}},{...G,props:{...G.props,style:{...L.style??{},pointerEvents:"auto"},ref:tn}}):null,Tn=n.maskCentered?void 0:{...G.props?.style??{},zIndex:"var(--wf-z-popover)"},xn=n.maskCentered?Cn:{...G,props:{...G.props,style:Tn}};return fe([ce,xn],P)}return fe(G,P)},refresh:()=>y.refresh()}}function Xe(e,n){let t=e.selfId();if(t&&!e.openStates.has(t)){e.openStates.set(t,!1);let l=e.onUnmount(d=>{d===t&&(e.openStates.delete(t),l())})}let o=n.open!==void 0;o&&!n.onOpenChange&&n.name&&!e.warned.has(n.name)&&(e.warned.add(n.name),console.warn(`[weifuwu/${n.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?!!n.open:t?e.openStates.get(t)??!1:!1,s=()=>{t?e.render([t]):e.render()},a=l=>{if(o){n.onOpenChange?.(l);return}t&&e.openStates.set(t,l),s()};return{get open(){return r()},setOpen:a,triggerProps:{onClick:()=>a(!0),onFocus:()=>{n.openOnFocus&&a(!0)}}}}var z=A(),le=0,cn="",fn="",pn="",mn="",Ee=0;function yn(){return typeof window<"u"&&typeof document<"u"}function Dn(){if(le++,le>1||!yn())return;Ee=z.scrollTop();let e=z.bodyElement();cn=e.style.overflow,fn=e.style.position,pn=e.style.top,mn=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=`-${Ee}px`,e.style.width="100%")}function Wn(){if(le===0||(le--,le>0)||!yn())return;let e=z.bodyElement();e.style.overflow=cn,e.style.position=fn,e.style.top=pn,e.style.width=mn,Ee>0&&z.scrollTo(Ee)}var jn='a[href], button:not([disabled]), input:not([disabled]), textarea:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])';function $n(e){let n;return queueMicrotask(()=>{let t=e.querySelectorAll(jn);if(t.length===0)return;let o=t[0],r=t[t.length-1],s=l=>{l.key==="Tab"&&(l.shiftKey&&z.activeElement()===o?(l.preventDefault(),r.focus()):!l.shiftKey&&z.activeElement()===r&&(l.preventDefault(),o.focus()))},a=z.activeElement();o.focus(),e.addEventListener("keydown",s),n=()=>{e.removeEventListener("keydown",s),a?.focus()}}),()=>n?.()}function qn(e){return e.map(n=>{let t={role:n.role,content:n.content};return n.reasoning&&(t.reasoning_content=n.reasoning),t})}function Qe(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`msg-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function gn(e,n,t,o){t.initialMessages?e.messages=structuredClone(t.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 h=e.messages[e.messages.length-1];return h&&h.role==="assistant"&&h.status==="streaming"?h:void 0}function a(h,w,x){let y=s();switch(h){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 f=w,m=y?.toolCalls?.find(T=>T.call.id===f.toolCallId);m&&(m.progress=f);break}case"wf:tool_result":{let f=w,m=y?.toolCalls?.find(T=>T.call.id===f.id);m&&(m.result=f,m.status=f.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 f=w;f.reasoning&&(y.reasoning=f.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:x?.(h,w);break}o?.()}function l(){let h=t.body?t.body(e.messages):{messages:qn(e.messages)};r=n(t.url,h,{onToken:x=>a("wf:token",{text:x}),onToolCall:x=>a("wf:tool_call",x),onToolProgress:x=>a("wf:tool_progress",x),onToolResult:x=>a("wf:tool_result",x),onApproval:x=>a("wf:approval_request",x),onUsage:x=>a("wf:usage",x),onStep:x=>a("wf:step",x),onDone:x=>a("wf:done",x),onError:x=>a("wf:error",x),onEvent:(x,y)=>a(x,y,t.onEvent)},{signal:t.signal,headers:t.headers}),e.streaming=!0;let w=s();w&&r?.traceId&&(w.id=r.traceId)}function d(){if(e.streaming)return;let h=String(e.input??"").trim();h&&(e.input="",e.error=null,e.usage=null,e.step=null,e.messages.push({id:Qe(),role:"user",content:h,status:"done"},{id:Qe(),role:"assistant",content:"",status:"streaming",toolCalls:[]}),l(),o?.())}function c(){r?.abort(),e.streaming=!1,e.step=null;let h=e.messages[e.messages.length-1];h&&h.role==="assistant"&&h.status==="streaming"&&(!h.content&&(!h.toolCalls||h.toolCalls.length===0)?e.messages.pop():h.status="done"),o?.()}function i(){if(e.streaming)return;let h=-1;for(let w=e.messages.length-1;w>=0;w--)if(e.messages[w].role==="user"){h=w;break}h!==-1&&(e.messages.splice(h+1),e.error=null,e.usage=null,e.step=null,e.messages.push({id:Qe(),role:"assistant",content:"",status:"streaming",toolCalls:[]}),l(),o?.())}function u(){r?.abort(),e.messages=[],e.input="",e.streaming=!1,e.error=null,e.usage=null,e.step=null,o?.()}async function p(h,w,x){let y=e.messages[e.messages.length-1],f=y?.role==="assistant"?y.approval:void 0;if(f&&(y.approval=void 0,o?.(),!!t.approveUrl))try{await fetch(t.approveUrl,{method:"POST",headers:{"Content-Type":"application/json",...t.headers},body:JSON.stringify(x?{id:f.id,decision:h,note:w,modifiedArgs:x}:{id:f.id,decision:h,note:w}),signal:t.signal})}catch(m){if(t.signal?.aborted)return;e.error={code:"provider_error",message:m instanceof Error?m.message:String(m)},o?.()}}function g(){r?.abort(),r=null}return{send:d,stop:c,retry:i,clear:u,approve:p,dispose:g}}function hn(e,n,t){let o=new AbortController,r=t?.signal;r&&(r.aborted?o.abort():r.addEventListener("abort",()=>o.abort(),{once:!0}));let s=t?.traceId??Gn(),a=t?.record!==!1,l=[],d=(async()=>{let c;try{c=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json","X-Trace-Id":s,Accept:"text/event-stream",...t?.headers},body:JSON.stringify(n),signal:o.signal})}catch(i){if(o.signal.aborted)return;t?.onError?.({code:"provider_error",message:i instanceof Error?i.message:String(i)});return}if(!c.ok){t?.onError?.({code:zn(c.status),message:`HTTP ${c.status} ${c.statusText}`});return}try{for await(let{name:i,data:u}of Bn(c.body)){if(o.signal.aborted)return;Kn(l,{name:i,data:u},a),Fn(i,u,t??{})}}catch(i){if(o.signal.aborted)return;t?.onError?.({code:"provider_error",message:i instanceof Error?i.message:String(i)})}})();return{abort:()=>o.abort(),done:d,traceId:s,events:l}}function Fn(e,n,t){switch(e){case"wf:token":return t.onToken?.(n.text);case"wf:tool_call":return t.onToolCall?.(n);case"wf:tool_result":return t.onToolResult?.(n);case"wf:tool_progress":return t.onToolProgress?.(n);case"wf:step":return t.onStep?.(n);case"wf:approval_request":return t.onApproval?.(n);case"wf:usage":return t.onUsage?.(n);case"wf:done":return t.onDone?.(n);case"wf:error":return t.onError?.(n);default:return t.onEvent?.(e,n)}}async function*Bn(e){let n=e.getReader(),t=new TextDecoder,o="";try{for(;;){let{done:r,value:s}=await n.read();if(r)break;o+=t.decode(s,{stream:!0});let a=o.split(`
|
|
4
4
|
|
|
5
|
-
`);
|
|
6
|
-
`))i.startsWith("event: ")?l=i.slice(7):i.startsWith("data: ")&&(u+=i.slice(6));if(u)try{yield{name:l,data:JSON.parse(u)}}catch{}}}}finally{t.releaseLock()}}function Mn(e,t,n){n&&(e.length>=1e3&&e.shift(),e.push(t))}function An(e){return e===401||e===403?"auth_failed":e===429?"rate_limited":e>=500?"provider_error":"invalid_request"}function Ln(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`trace-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function qe(e,t){let n={messages:[],input:"",streaming:!1,error:null,usage:null,step:null},r=new Set,s=sn(n,an,t,()=>{for(let d of[...r])d()});Object.assign(n,s),n.subscribe=d=>(r.add(d),()=>{r.delete(d)});let a=e.selfId();if(a){let d=e.onUnmount(l=>{l===a&&(s.dispose(),d())})}return n}function $e(e,t){let n=e.selfId(),r;return n&&(r=t.subscribe(()=>e.render([n])),e.onUnmount(()=>r?.())),t}function ue(e){let t=e.registry??ve(),n={_selfId:"_wf_root",_mounting:!1,_rendering:!1,_ctxVersion:0},r={browser:e.browser,__registry:t},o=e.scheduler??Ce({registry:t,ctx:r,rootEl:e.root});n.render=function(f){if(f==null){let g=this._selfId??"_wf_root";return g?o.render([g]):Promise.resolve()}return o.render(f)},n.setMounting=f=>{n._mounting=f},n.endMounting=()=>{n._mounting=!1},r.ui=n;let s=Je(f=>{for(let g of f)o.render([g])}),{mediaRegistry:a,popupTrackers:d,scrollTrackers:l,ensurePopupListeners:u,destroyPopupListeners:i,cleanupTrackers:c}=s;be(t,f=>{c(f),d.has(f)&&d.delete(f)});let y=new Set,w=new Map,h=new Map,m=new Map,p=f=>({selfId:()=>{let g=f?._selfVNode?._id??f?._selfId;return typeof g=="string"?g:void 0},render:g=>o.render(g),browser:e.browser,onUnmount:g=>be(t,g),registry:t,mediaRegistry:a,popupTrackers:d,scrollTrackers:l,isMounting:()=>n._mounting===!0,isRendering:()=>n._rendering===!0,warned:y,uncontrolledValues:w,inputStates:h,openStates:m,ensurePopupListeners:u});return n.bumpCtxVersion=()=>{n._ctxVersion=(n._ctxVersion??0)+1},n.selfId=function(f){if(typeof f!="string"||!f)throw new Error(`[weifuwu] selfId requires a non-empty string, got ${typeof f}`);if(t.idRegistry.has(f))throw new Error(`[weifuwu] Duplicate component ID: "${f}". Each component must have a unique custom ID.`);let g=this._selfVNode;g&&(g._customId=f,t.idRegistry.set(f,g))},n.useChat=function(f){return qe(p(this),f)},n.useMedia=function(f,g){return ke(p(this),f,g)},n.useBreakpoint=function(f,g){return Ne(p(this),f,g)},n.usePopupPosition=function(f){return le(p(this),f)},n.useHoverCapable=function(){return Y(p(this))},n.useStableRef=function(f,g){return Ee(p(this),f,g)},n.useVisualViewport=function(){return Ve(p(this))},n.usePopup=function(f){return Ue(p(this),f)},n.useLongPress=function(f){return Te(p(this),f)},n.useInView=function(f){return _e(p(this),f)},n.useScrollPosition=function(f){return Se(p(this),f)},n.useAsync=function(f){return Me(p(this),f)},n.useControlled=function(f){return se(p(this),f)},n.useControlledInput=function(f){return Re(p(this),f)},n.useOpen=function(f){return De(p(this),f)},n.usePresence=function(f){return X(p(this),f)},n.useDialog=function(f){return We(p(this),f)},n.useGlobalKey=function(f){return Ae(p(this),f)},n.useDrag=function(f){return Le(p(this),f)},n.useDragDrop=function(f){return He(p(this),f)},n.useExternal=function(f){return $e(p(this),f)},n.useReducedMotion=function(){return re(p(this))},n.useAnimationEnd=function(f,g){return xe(p(this),f,g)},n.useTween=function(f,g){return Pe(p(this),f,g)},n.destroyPopupListeners=i,{ctx:r,registry:t,scheduler:o,rootUi:n,destroyPopupListeners:i}}function Hn(e){let{ctx:t,registry:n,scheduler:r,rootUi:o,destroyPopupListeners:s}=ue(e),a=null,d=null;return{ctx:t,registry:n,scheduler:r,async mount(u){a=u;let i=await _(u,t,void 0,n);e.root.innerHTML="";let c=k(i,t,e.browser);c!=null&&e.root.appendChild(c),d=i?._child??i},async rerender(){if(a==null)return;let u=await _(a,t,a,n,{force:!0}),i=a,c=d,y=i._child,w=e.root.firstChild;O(e.root,w,c,y,{browser:e.browser,registry:n}),d=y},unmount(){for(let[,u]of n.idRegistry)try{N(u,n)}catch(i){console.error("[weifuwu] unmount ref error",i)}e.root.innerHTML="",n.idRegistry.clear(),s()}}}function In(e){return e.__registry??(e.__registry=ve())}function On(e,t,n,r){let o=In(n),s=n.browser??P();return _(t,n,void 0,o).then(()=>{let a=k(t,n,s);if(a!=null&&e.appendChild(a),t._id&&o){let d=o.idRegistry.get(t._id);d&&(d._parentNode=e)}r?.onMounted?.()}).catch(a=>console.error("[weifuwu] command mount error",a)),{id:t._id??""}}function Un(e,t,n){let r=n.__registry;t&&r&&(N(t,r),t._id&&ee(r,t._id)),e.remove()}function Dn(){let e=P(),t=e.createElement("div");return t?(e.bodyAppend(t),t):null}function Wn(e,t){let n=P(),r=typeof t.root=="string"?n.query(t.root):t.root;if(!r)throw new Error(`uiServe: root not found: ${t.root}`);let o=r;!t.hydrate&&!t.loading&&(o.innerHTML="");let{ctx:a,registry:d,scheduler:l,rootUi:u,destroyPopupListeners:i}=ue({browser:n,root:o}),c=new Map,y=globalThis.__DATA__??window.__DATA__;if(y&&typeof y=="object")for(let[x,S]of Object.entries(y))c.set(x,{value:S});a.data={async get(x,S){let R=c.get(x);if(R&&"value"in R)return R.value;if(R?.promise)return R.promise;if(!S)return;let j=Promise.resolve().then(()=>S()).then(U=>(c.set(x,{value:U}),U));return c.set(x,{promise:j}),j},set(x,S){c.set(x,{value:S})},has(x){return c.has(x)}},a.route={params:{},query:{},path:""};let w=null,h="",m=0,p,f=new Promise(x=>{p=x}),g=!1;async function v(x,S){let R=++m,j={pathname:x,search:""};a.route.path=x;let U;try{U=await e.execute(j,a,x)}catch(M){U=W("div",{class:"ui-dom-error"},`\u9875\u9762\u6E32\u67D3\u5931\u8D25: ${M?.message??String(M)}`)}if(g||R!==m)return;let A;try{A=await _(U,a,w,d)}catch(M){A=W("div",{class:"ui-dom-error"},`\u7EC4\u4EF6\u6E32\u67D3\u5931\u8D25: ${M?.message??String(M)}`)}if(!(g||R!==m)){if(S){o.innerHTML="";let M=k(A,a,n);M!=null&&o.appendChild(M)}else if(w!==void 0){let M=w;w=A;let z=M?.el??M?._refNode??null;O(o,z,M,A,{browser:n,registry:d,ctxVersion:0})}w=A,h=x}}let E=n.pathname();v(E,!0).finally(()=>{g||p()});let C=()=>{let x=n.pathname();x!==h&&v(x,!1)};return n.addEventListener("popstate",C),{close(){g=!0,n.removeEventListener("popstate",C),i(),d.idRegistry.clear()},ready:f,ctx:a}}function Fe(e){e.node=e.node?e.node.nextSibling:null}function jn(e,t){e.node&&e.node.parentNode?e.node.parentNode.insertBefore(t,e.node):e.parent.appendChild(t)}function qn(e,t){e.node&&e.node.parentNode?(e.node.parentNode.replaceChild(t,e.node),Fe(e)):e.parent.appendChild(t)}function $n(e,t){for(let[n,r]of Object.entries(t))n==="children"||n==="key"||n==="innerHTML"||G(e,n,r)}function Q(e,t,n){let r=t.browser??P();if(e==null||typeof e=="boolean")return null;if(typeof e=="string"||typeof e=="number"){let l=String(e);if(n.node&&n.node.nodeType===3)return n.node.textContent!==l&&(n.node.textContent=l),Fe(n),n.node;let u=r.createTextNode(l);return jn(n,u),u}if(Array.isArray(e)){let l=null;for(let u of e){let i=Q(u,t,n);i!=null&&!l&&(l=i)}return l}let o=e;if(o.type===H||o.type===L){let l=o.props?.children,u=l==null?[]:Array.isArray(l)?l:[l],i=null;for(let c of u){let y=Q(c,t,n);y!=null&&!i&&(i=y)}return i}if(typeof o.type=="function"){let l=o._child;if(l==null){if(typeof o._render!="function"&&!(o._asyncDef||typeof o._render=="function"))throw new Error(`[vdom] component ${o.type.name||"anonymous"} not built before hydration`);return o._child=null,null}let u=Q(l,t,n);return o._refNode||(o._refNode=u),u}let s=o.type,a=o.props??{},d;if(n.node&&n.node.nodeType===1&&n.node.tagName.toLowerCase()===s.toLowerCase()?(d=n.node,Fe(n)):(d=we.has(s)?r.createElementNS("http://www.w3.org/2000/svg",s):r.createElement(s),qn(n,d)),o.el=d,$n(d,a),!("innerHTML"in a)){let l={parent:d,node:d.firstChild},u=(Array.isArray(a.children)?a.children:[a.children]).flat(1/0);for(let i of u){let c=Q(i,t,l);if(c!=null&&c.parentNode!==d&&d.appendChild(c),i&&typeof i=="object"&&!Array.isArray(i)&&typeof i.type=="function"){let y=i;y._parentNode||(y._parentNode=d,y._refNode=c)}}for(;l.node;){let i=l.node;l.node=i.nextSibling,i.parentNode?.removeChild(i)}}return"value"in a&&d instanceof HTMLSelectElement&&(d.value=String(a.value??"")),d}async function Fn(e,t,n){let r=n.__registry;await _(t,n,void 0,r);let o={parent:e,node:e.firstChild};for(Q(t,n,o);o.node;){let s=o.node;o.node=s.nextSibling,s.parentNode?.removeChild(s)}}var Bn=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),Kn=new Set(["svg","path","circle","rect","line","polyline","polygon","g","text","defs","use","clipPath"]);function de(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function zn(e){return typeof e=="string"?e:Array.isArray(e)?e.filter(Boolean).join(" "):e&&typeof e=="object"?Object.entries(e).filter(([,t])=>t).map(([t])=>t).join(" "):""}function Gn(e){return Object.entries(e).filter(([,t])=>t!=null).map(([t,n])=>{let r=t.replace(/[A-Z]/g,s=>"-"+s.toLowerCase()),o=typeof n=="number"&&n!==0?`${n}px`:String(n);return`${r}:${o}`}).join(";")}async function K(e,t){if(e==null||typeof e=="boolean")return"";if(typeof e=="string"||typeof e=="number")return de(String(e));if(Array.isArray(e)){let i="";for(let c of e)i+=await K(c,t);return i}let n=e;if(n.type===H||n.type===L)return K(n.props?.children,t);if(typeof n.type=="function"){let i=Object.create(t),c=await n.type(n.props??{},i);if(typeof c!="function")throw new Error(`Component ${n.type.name||"anonymous"} must return a render function. Use (init_props, ctx) => (props) => VNode pattern.`);return K(c(n.props??{}),i)}let r=n.type,o=n.props??{},s=[],a;for(let[i,c]of Object.entries(o))if(!(i==="children"||i==="key")&&i!=="ref"&&!(i.startsWith("on")&&typeof c=="function")){if(i==="innerHTML"){a=String(c??"");continue}if(i==="class"||i==="className"){let y=zn(c);y&&s.push(` class="${de(y)}"`);continue}if(i==="style"&&c&&typeof c=="object"){s.push(` style="${de(Gn(c))}"`);continue}if(i==="draggable"||i==="contenteditable"||i==="spellcheck"){s.push(` ${i}="${c?"true":"false"}"`);continue}if(c===!0){s.push(` ${i}`);continue}c===!1||c==null||s.push(` ${i}="${de(String(c))}"`)}let d=s.join(""),l=Kn.has(r);if(Bn.has(r))return`<${r}${d}>`;if(a!==void 0)return`<${r}${d}>${a}</${r}>`;let u=await K(o.children,t);return l?`<${r}${d}>${u}</${r}>`:`<${r}${d}>${u}</${r}>`}function Yn(){let e=()=>()=>{},t=()=>({});return{_selfId:"_wf_root",render:()=>{},dirty:()=>{},$:()=>({}),selfId:()=>{},bumpCtxVersion:()=>{},setMounting:()=>{},endMounting:()=>{},useChat:()=>({messages:[],input:"",streaming:!1,error:null,usage:null,step:null,send:()=>{},stop:()=>{},retry:()=>{},clear:()=>{},approve:()=>{},subscribe:()=>()=>{}}),useExternal:n=>n,useMedia:e,useBreakpoint:e,usePopupPosition:()=>({top:0,left:0,refresh:()=>{}}),useHoverCapable:()=>!1,useStableRef:n=>r=>{r&&n?.(r)},useVisualViewport:()=>({height:0,offsetTop:0,keyboardOpen:!1}),usePopup:()=>({open:!1,setOpen:()=>{},wrapProps:{},portal:()=>null,refresh:()=>{}}),useLongPress:t,useInView:()=>({isIn:!1,ready:!1,observe:()=>{},refresh:()=>{},disconnect:()=>{}}),useScrollPosition:()=>({y:0,refresh:()=>{}}),useAsync:()=>({data:void 0,loading:!0,error:void 0,reload:()=>{}}),useControlled:()=>({value:void 0,setValue:()=>{},controlled:!1}),useControlledInput:()=>({value:void 0,setValue:()=>{},keyword:"",setKeyword:()=>{},selectedLabel:"",setSelectedLabel:()=>{},controlled:!1}),useOpen:()=>({open:!1,setOpen:()=>{},triggerProps:{}}),usePresence:()=>({phase:"closed",ref:()=>{},sync:()=>"closed"}),useDialog:()=>({phase:"closed",rootRef:()=>{},panelRef:()=>{},sync:n=>n?"open":"closed"}),useGlobalKey:()=>()=>{},useDrag:t,useDragDrop:()=>({dropProps:{},dragProps:{}}),useReducedMotion:()=>!0,useAnimationEnd:()=>()=>{},useTween:n=>{let r=n;return{get value(){return r},set value(o){r=o},reset:o=>(o!==void 0&&(r=o),r)}}}}function ln(e,t){let n={...e,ui:Yn(),browser:void 0},r=new Map;return n.data={async get(o,s){let a=r.get(o);if(a&&"value"in a)return a.value;if(a?.promise)return a.promise;if(!s)return;let d=Promise.resolve().then(()=>s()).then(l=>(r.set(o,{value:l}),t.set(o,l),l));return r.set(o,{promise:d}),d},set(o,s){r.set(o,{value:s}),t.set(o,s)},has(o){return r.has(o)}},n}function un(e){return`<script>window.__DATA__=${JSON.stringify(Object.fromEntries(e)).replace(/</g,"\\u003c")};<\/script>`}async function Xn(e,t){let n=new Map,o=ln({params:{},query:{}},n),s=t.url.split("?")[0].split("#")[0],a=e.match(s);o.params=a.params,o.query=Object.fromEntries(new URLSearchParams(t.url.split("?")[1]??""));let d=new URL(t.url.startsWith("http")?t.url:`http://localhost${t.url.startsWith("/")?t.url:"/"+t.url}`),l=await e.execute(d,o,s),u=await K(l,o),i=un(n),c=a.title??t.title??"",y=t.rootId??"root",w=(t.styles??[]).map(m=>` <link rel="stylesheet" href="${m}">`).join(`
|
|
5
|
+
`);o=a.pop()??"";for(let l of a){let d="message",c="";for(let i of l.split(`
|
|
6
|
+
`))i.startsWith("event: ")?d=i.slice(7):i.startsWith("data: ")&&(c+=i.slice(6));if(c)try{yield{name:d,data:JSON.parse(c)}}catch{}}}}finally{n.releaseLock()}}function Kn(e,n,t){t&&(e.length>=1e3&&e.shift(),e.push(n))}function zn(e){return e===401||e===403?"auth_failed":e===429?"rate_limited":e>=500?"provider_error":"invalid_request"}function Gn(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`trace-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function Ze(e,n){let t={messages:[],input:"",streaming:!1,error:null,usage:null,step:null},o=new Set,s=gn(t,hn,n,()=>{for(let l of[...o])l()});Object.assign(t,s),t.subscribe=l=>(o.add(l),()=>{o.delete(l)});let a=e.selfId();if(a){let l=e.onUnmount(d=>{d===a&&(s.dispose(),l())})}return t}function en(e,n){let t=e.selfId(),o;return t&&(o=n.subscribe(()=>e.render([t])),e.onUnmount(()=>o?.())),n}function bn(e){let n=new Map;async function t(s){let a=n.get(s);if(a)return await a,n.has(s)?void 0:t(s);let l=o(s);n.set(s,l);try{await l}finally{n.delete(s)}}async function o(s){let a=e.registry.idRegistry.get(s);if(!a||typeof a._render!="function")return;let l=!!globalThis?.__WF_VDOM_DEBUG;try{let d={browser:e.ctx.browser,registry:e.registry,ctxVersion:e.ctx?.ui?._ctxVersion??0};l&&console.log(`[vdom/trace] render id=${s} comp=${a.type?.name||"?"}`);let c=await a._render(a.props),i=await D(c,e.ctx,a._child,e.registry)??null,u=a._child;a._child=i;let p=a._parentNode??a._refNode?.parentNode??e.rootEl??null;if(p){let g=$(p,a._refNode??null,u,i,d);if(g?a._refNode=g:a._refNode=null,l&&console.log(`[vdom/trace] patch parent=${p.nodeName} ref=${a._refNode?.nodeName??"null"}`),He())try{let h=[];Q(p,i,w=>h.push(w)),h.length?console.error("[weifuwu/audit] "+h.join(" | ")):l&&console.log("[vdom/trace] audit \u2713 \u4E00\u81F4")}catch(h){console.error("[weifuwu/audit] \u6821\u9A8C\u5F02\u5E38:",h)}}}catch(d){e.onError?e.onError(d):console.error("[weifuwu] render error:",d?.stack??d)}}function r(s){if(s==null){let a=e.ctx.ui?._selfId;return a?t(a):Promise.resolve()}return Promise.all(s.map(a=>t(a))).then(()=>{})}return{render:r}}function Te(e){let n=e.registry??Me(),t={_selfId:"_wf_root",_mounting:!1,_ctxVersion:0,_rootVNodeId:void 0},o={browser:e.browser,__registry:n};o.app={navigate:f=>e.browser.navigate(f)};let r=e.renderer??bn({registry:n,ctx:o,rootEl:e.root}),s=!1;t.render=function(f){if(f==null){let m=this._selfId!=="_wf_root"&&this._selfId?this._selfId:t._rootVNodeId;return m?r.render([m]):(s||(s=!0,console.warn("[weifuwu] render() \u65E0\u53C2\u4F46\u65E0\u6E32\u67D3\u76EE\u6807\uFF1A\u9875\u9762\u6839\u662F native vnode\uFF08UIHandler \u76F4\u63A5\u8FD4\u56DE vnode \u7684\u9875\u9762\u5F62\u6001\uFF09\uFF0C\u5185\u90E8\u72B6\u6001\u6E32\u67D3\u65E0\u6548\u3002\u6539\u7528 async \u7EC4\u4EF6\u5F62\u6001\uFF08const Page: Component = async ... => (props) => ...\uFF09\u6216 createStore + useExternal \u5171\u4EAB\u72B6\u6001\u3002")),Promise.resolve())}return r.render(f)},t.setMounting=f=>{t._mounting=f},t.endMounting=()=>{t._mounting=!1},t.onUnmount=function(f){let m=this?._selfVNode?._id??this?._selfId;if(m)return me(n,T=>{T===m&&f()})},o.ui=t;let a=dn(f=>{for(let m of f)r.render([m])}),l=new Map,{popupTrackers:d,scrollTrackers:c,ensurePopupListeners:i,destroyPopupListeners:u,cleanupTrackers:p}=a;me(n,f=>{p(f),d.has(f)&&d.delete(f)});let g=new Set,h=new Map,w=new Map,x=new Map,y=f=>({selfId:()=>{let m=f?._selfVNode?._id??f?._selfId;return typeof m=="string"?m:void 0},render:m=>r.render(m),browser:e.browser,onUnmount:m=>me(n,m),registry:n,mediaRegistry:l,popupTrackers:d,scrollTrackers:c,isMounting:()=>t._mounting===!0,warned:g,uncontrolledValues:h,inputStates:w,openStates:x,ensurePopupListeners:i});return t.bumpCtxVersion=()=>{t._ctxVersion=(t._ctxVersion??0)+1},t.selfId=function(f){if(typeof f!="string"||!f)throw new Error(`[weifuwu] selfId requires a non-empty string, got ${typeof f}`);if(n.idRegistry.has(f))throw new Error(`[weifuwu] Duplicate component ID: "${f}". Each component must have a unique custom ID.`);let m=this._selfVNode;m&&(m._customId=f,n.idRegistry.set(f,m))},t.useChat=function(f){return Ze(y(this),f)},t.useMedia=function(f,m){return We(y(this),f,m)},t.useBreakpoint=function(f,m){return je(y(this),f,m)},t.usePopupPosition=function(f){return Ce(y(this),f)},t.useHoverCapable=function(){return ie(y(this))},t.useStableRef=function(f,m){return Ue(y(this),f,m)},t.useVisualViewport=function(){return $e(y(this))},t.usePopup=function(f){return Je(y(this),f)},t.useLongPress=function(f){return Oe(y(this),f)},t.useInView=function(f){return qe(y(this),f)},t.useScrollPosition=function(f){return Fe(y(this),f)},t.useAsync=function(f){return Ke(y(this),f)},t.useControlled=function(f){return ve(y(this),f)},t.useControlledInput=function(f){return Be(y(this),f)},t.useOpen=function(f){return Xe(y(this),f)},t.usePresence=function(f){return ae(y(this),f)},t.useGlobalKey=function(f){return ze(y(this),f)},t.useDrag=function(f){return Ge(y(this),f)},t.useDragDrop=function(f){return Ye(y(this),f)},t.useExternal=function(f){return en(y(this),f)},t.useReducedMotion=function(){return we(y(this))},t.useAnimationEnd=function(f,m){return Ie(y(this),f,m)},t.useTween=function(f,m){return De(y(this),f,m)},t.destroyPopupListeners=u,{ctx:o,registry:n,renderer:r,rootUi:t,destroyPopupListeners:u}}function Yn(e){let{ctx:n,registry:t,renderer:o,rootUi:r,destroyPopupListeners:s}=Te(e),a=null,l=null;return{ctx:n,registry:t,renderer:o,async mount(c){a=c;let i=await D(c,n,void 0,t);e.root.innerHTML="";let u=U(i,n,e.browser);if(u!=null&&e.root.appendChild(u),He())try{let p=[];Q(e.root,i,g=>p.push(g)),p.length&&console.error("[weifuwu/audit] "+p.join(" | "))}catch(p){console.error("[weifuwu/audit] \u6821\u9A8C\u5F02\u5E38:",p)}l=i?._child??i,r._rootVNodeId=i?._id},async rerender(){if(a==null)return;let c=await D(a,n,a,t,{force:!0}),i=a,u=l,p=i._child,g=e.root.firstChild;$(e.root,g,u,p,{browser:e.browser,registry:t,ctxVersion:n?.ui?._ctxVersion??0,force:!0}),l=p},unmount(){for(let[,c]of t.idRegistry)try{H(c,t)}catch(i){console.error("[weifuwu] unmount ref error",i)}e.root.innerHTML="",t.idRegistry.clear(),s()}}}function Jn(e){return e.__registry??(e.__registry=Me())}function Xn(e,n,t,o){let r=Jn(t),s=t.browser??A();return Promise.resolve(D(n,t,void 0,r)).then(()=>{let a=U(n,t,s);if(a!=null&&e.appendChild(a),n._id&&r){let l=r.idRegistry.get(n._id);l&&(l._parentNode=e)}o?.onMounted?.()}).catch(a=>console.error("[weifuwu] command mount error",a)),{id:n._id??""}}function Qn(e,n,t){let o=t.__registry;n&&o&&(H(n,o),n._id&&ye(o,n._id)),e.remove()}function Zn(){let e=A(),n=e.createElement("div");return n?(e.bodyAppend(n),n):null}function et(e,n){let t=A(),o=typeof n.root=="string"?t.query(n.root):n.root;if(!o)throw new Error(`uiServe: root not found: ${n.root}`);let r=o;!n.hydrate&&!n.loading&&(r.innerHTML="");try{(new URLSearchParams(globalThis?.location?.search??"").get("vdom_debug")==="1"||globalThis?.localStorage?.getItem?.("__WF_VDOM_DEBUG")==="1")&&(globalThis.__WF_VDOM_DEBUG=!0,globalThis.__WF_VDOM_AUDIT=!0,console.log("[weifuwu] vdom debug + audit \u5DF2\u5F00\u542F\uFF08?vdom_debug=1\uFF09"))}catch{}let{ctx:a,registry:l,renderer:d,rootUi:c,destroyPopupListeners:i}=Te({browser:t,root:r}),u=new Map,p=globalThis.__DATA__??window.__DATA__;if(p&&typeof p=="object")for(let[b,v]of Object.entries(p))u.set(b,{value:v});a.data={async get(b,v){let C=u.get(b);if(C&&"value"in C)return C.value;if(C?.promise)return C.promise;if(!v)return;let k=Promise.resolve().then(()=>v()).then(V=>(u.set(b,{value:V}),V));return u.set(b,{promise:k}),k},set(b,v){u.set(b,{value:v})},has(b){return u.has(b)}},a.route={params:{},query:{},path:""};let g=null,h="",w=0,x,y=new Promise(b=>{x=b}),f=!1;async function m(b,v){let C=++w,k={pathname:b,search:""};a.route.path=b;let V;try{V=await e.execute(k,a,b)}catch(N){V=F("div",{class:"ui-dom-error"},`\u9875\u9762\u6E32\u67D3\u5931\u8D25: ${N?.message??String(N)}`)}if(f||C!==w)return;let M;try{M=await D(V,a,g,l)}catch(N){M=F("div",{class:"ui-dom-error"},`\u7EC4\u4EF6\u6E32\u67D3\u5931\u8D25: ${N?.message??String(N)}`)}if(!(f||C!==w)){if(v){r.innerHTML="";let N=U(M,a,t);N!=null&&r.appendChild(N)}else if(g!==void 0){let N=g;g=M;let I=N?.el??N?._refNode??null;$(r,I,N,M,{browser:t,registry:l,ctxVersion:a?.ui?._ctxVersion??0})}g=M,h=b,c._rootVNodeId=M?._id}}let T=t.pathname();m(T,!0).finally(()=>{f||x()});let _=()=>{let b=t.pathname();b!==h&&m(b,!1)};return t.addEventListener("popstate",_),{close(){f=!0,t.removeEventListener("popstate",_),i(),l.idRegistry.clear()},ready:y,ctx:a}}function nn(e){e.node=e.node?e.node.nextSibling:null}function nt(e,n){e.node&&e.node.parentNode?e.node.parentNode.insertBefore(n,e.node):e.parent.appendChild(n)}function tt(e,n){e.node&&e.node.parentNode?(e.node.parentNode.replaceChild(n,e.node),nn(e)):e.parent.appendChild(n)}function ot(e,n){for(let[t,o]of Object.entries(n))t==="children"||t==="key"||t==="innerHTML"||X(e,t,o)}function ue(e,n,t){let o=n.browser??A();if(e==null||typeof e=="boolean")return null;if(typeof e=="string"||typeof e=="number"){let d=String(e);if(t.node&&t.node.nodeType===3)return t.node.textContent!==d&&(t.node.textContent=d),nn(t),t.node;let c=o.createTextNode(d);return nt(t,c),c}if(Array.isArray(e)){let d=null;for(let c of e){let i=ue(c,n,t);i!=null&&!d&&(d=i)}return d}let r=e;if(r.type===R||r.type===S){let d=r.props?.children,c=d==null?[]:Array.isArray(d)?d:[d],i=null;for(let u of c){let p=ue(u,n,t);p!=null&&!i&&(i=p)}return i}if(typeof r.type=="function"){let d=r._child;if(d==null){if(typeof r._render!="function")throw new Error(`[vdom] component ${r.type.name||"anonymous"} not built before hydration`);return r._child=null,null}let c=ue(d,n,t);return r._refNode||(r._refNode=c),c}let s=r.type,a=r.props??{},l;if(t.node&&t.node.nodeType===1&&t.node.tagName.toLowerCase()===s.toLowerCase()?(l=t.node,nn(t)):(l=Re.has(s)?o.createElementNS("http://www.w3.org/2000/svg",s):o.createElement(s),tt(t,l)),r.el=l,ot(l,a),!("innerHTML"in a)){let d={parent:l,node:l.firstChild},c=(Array.isArray(a.children)?a.children:[a.children]).flat(1/0);for(let i of c){let u=ue(i,n,d);if(u!=null&&u.parentNode!==l&&l.appendChild(u),i&&typeof i=="object"&&!Array.isArray(i)&&typeof i.type=="function"){let p=i;p._parentNode||(p._parentNode=l,p._refNode=u)}}for(;d.node;){let i=d.node;d.node=i.nextSibling,i.parentNode?.removeChild(i)}}return"value"in a&&l instanceof HTMLSelectElement&&(l.value=String(a.value??"")),l}async function rt(e,n,t){let o=t.__registry;await D(n,t,void 0,o);let r={parent:e,node:e.firstChild};for(ue(n,t,r);r.node;){let s=r.node;r.node=s.nextSibling,s.parentNode?.removeChild(s)}}var st=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),it=new Set(["svg","path","circle","rect","line","polyline","polygon","g","text","defs","use","clipPath"]);function de(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function at(e){return typeof e=="string"?e:Array.isArray(e)?e.filter(Boolean).join(" "):e&&typeof e=="object"?Object.entries(e).filter(([,n])=>n).map(([n])=>n).join(" "):""}function lt(e){return Object.entries(e).filter(([,n])=>n!=null).map(([n,t])=>{let o=n.replace(/[A-Z]/g,s=>"-"+s.toLowerCase()),r=typeof t=="number"&&t!==0?`${t}px`:String(t);return`${o}:${r}`}).join(";")}async function ee(e,n){if(e==null||typeof e=="boolean")return"";if(typeof e=="string"||typeof e=="number")return de(String(e));if(Array.isArray(e))return sn(e),(await Promise.all(e.map(u=>u==null||typeof u=="boolean"?Promise.resolve(`<!--wf-hole: ${B(u)}-->`):ee(u,n)))).join("");let t=e;if(pe(t.type))return console.warn(`[weifuwu] children \u9879\u975E\u6CD5\uFF1Atype=${String(t.type)}\uFF08${typeof t.type}\uFF09\u2014\u2014\u5DF2\u5360\u4F4D\uFF08wf-hole\uFF09`),`<!--wf-hole: ${B(e)}-->`;if(t.type===R||t.type===S)return ee(t.props?.children,n);if(typeof t.type=="function"){let i=Object.create(n),u=await t.type(t.props??{},i);if(typeof u!="function")throw new Error(`Component ${t.type.name||"anonymous"} must return a render function. Use (init_props, ctx) => (props) => VNode pattern.`);let p=await u(t.props??{});if(t.key!=null&&p!=null&&typeof p=="object")if(Array.isArray(p))for(let g of p)g!=null&&typeof g=="object"&&!Array.isArray(g)&&(g.key=t.key);else p.key=t.key;return ee(p,i)}let o=t.type,r=t.props??{},s=[],a;t.key!=null&&s.push(` data-wf-key="${de(String(t.key))}"`);for(let[i,u]of Object.entries(r))if(!(i==="children"||i==="key")&&i!=="ref"&&!(i.startsWith("on")&&typeof u=="function")){if(i==="innerHTML"){a=String(u??"");continue}if(i==="class"||i==="className"){let p=at(u);p&&s.push(` class="${de(p)}"`);continue}if(i==="style"&&u&&typeof u=="object"){s.push(` style="${de(lt(u))}"`);continue}if(oe.has(i)){s.push(` ${i}="${u?"true":"false"}"`);continue}if(u===!0){s.push(` ${i}`);continue}u===!1||u==null||s.push(` ${i}="${de(String(u))}"`)}let l=s.join(""),d=it.has(o);if(st.has(o))return`<${o}${l}>`;if(a!==void 0)return`<${o}${l}>${a}</${o}>`;let c=await ee(r.children,n);return d?`<${o}${l}>${c}</${o}>`:`<${o}${l}>${c}</${o}>`}function ut(){let e=()=>()=>{},n=()=>({});return{_selfId:"_wf_root",render:()=>{},selfId:()=>{},bumpCtxVersion:()=>{},setMounting:()=>{},endMounting:()=>{},onUnmount:()=>{},useChat:()=>({messages:[],input:"",streaming:!1,error:null,usage:null,step:null,send:()=>{},stop:()=>{},retry:()=>{},clear:()=>{},approve:()=>{},subscribe:()=>()=>{}}),useExternal:t=>t,useMedia:e,useBreakpoint:e,usePopupPosition:()=>({top:0,left:0,refresh:()=>{}}),useHoverCapable:()=>!1,useStableRef:t=>o=>{o&&t?.(o)},useVisualViewport:()=>({height:0,offsetTop:0,keyboardOpen:!1}),usePopup:()=>({open:!1,setOpen:()=>{},phase:"closed",sync:t=>t?"open":"closed",wrapProps:{},portal:t=>t,refresh:()=>{}}),useLongPress:n,useInView:()=>({isIn:!1,ready:!1,observe:()=>{},refresh:()=>{},disconnect:()=>{}}),useScrollPosition:()=>({y:0,refresh:()=>{}}),useAsync:()=>({data:void 0,loading:!0,error:void 0,reload:()=>{}}),useControlled:()=>({value:void 0,setValue:()=>{},controlled:!1}),useControlledInput:()=>({value:void 0,setValue:()=>{},keyword:"",setKeyword:()=>{},selectedLabel:"",setSelectedLabel:()=>{},controlled:!1}),useOpen:()=>({open:!1,setOpen:()=>{},triggerProps:{}}),usePresence:()=>({phase:"closed",ref:()=>{},sync:()=>"closed"}),useGlobalKey:()=>()=>{},useDrag:n,useDragDrop:()=>({dropProps:{},dragProps:{}}),useReducedMotion:()=>!0,useAnimationEnd:()=>()=>{},useTween:t=>{let o=t;return{get value(){return o},set value(r){o=r},reset:r=>(r!==void 0&&(o=r),o)}}}}function wn(e,n){let t={...e,ui:ut(),browser:void 0},o=new Map;return t.data={async get(r,s){let a=o.get(r);if(a&&"value"in a)return a.value;if(a?.promise)return a.promise;if(!s)return;let l=Promise.resolve().then(()=>s()).then(d=>(o.set(r,{value:d}),n.set(r,d),d));return o.set(r,{promise:l}),l},set(r,s){o.set(r,{value:s}),n.set(r,s)},has(r){return o.has(r)}},t}function vn(e){return`<script>window.__DATA__=${JSON.stringify(Object.fromEntries(e)).replace(/</g,"\\u003c")};<\/script>`}async function dt(e,n){let t=new Map,r=wn({params:{},query:{}},t),s=n.url.split("?")[0].split("#")[0],a=e.match(s);r.params=a.params,r.query=Object.fromEntries(new URLSearchParams(n.url.split("?")[1]??""));let l=new URL(n.url.startsWith("http")?n.url:`http://localhost${n.url.startsWith("/")?n.url:"/"+n.url}`),d=await e.execute(l,r,s),c=await ee(d,r),i=vn(t),u=a.title??n.title??"",p=n.rootId??"root",g=(n.styles??[]).map(w=>` <link rel="stylesheet" href="${w}">`).join(`
|
|
7
7
|
`),h=`<!DOCTYPE html>
|
|
8
|
-
<html lang="${
|
|
8
|
+
<html lang="${n.lang??"zh-CN"}">
|
|
9
9
|
<head>
|
|
10
10
|
<meta charset="UTF-8">
|
|
11
11
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
12
|
-
${
|
|
13
|
-
${
|
|
12
|
+
${u?`<title>${u}</title>`:""}
|
|
13
|
+
${g}
|
|
14
14
|
</head>
|
|
15
15
|
<body>
|
|
16
|
-
<div id="${
|
|
16
|
+
<div id="${p}">${c}</div>
|
|
17
17
|
${i}
|
|
18
18
|
<script src="/app.js"><\/script>
|
|
19
19
|
</body>
|
|
20
|
-
</html>`;return{html:
|
|
20
|
+
</html>`;return{html:c,dataScript:i,page:h}}async function ct(e,n,t,o={}){let r=o.data??new Map,s=wn(t,r);return ee({type:e,props:n??{},key:void 0},s)}function ft(e){let n={...e},t=new Set,o=()=>{for(let r of[...t])r()};return{state:n,subscribe(r){return t.add(r),()=>{t.delete(r)}},set(r){Object.assign(n,r),o()},update(r){r(n),o()},notify:o}}export{S as Fragment,R as Portal,ke as UIRouter,kn as animateOut,Pn as api,Rn as auth,D as buildVNode,A as createClientBrowser,Zn as createCommandContainer,fe as createPortal,bn as createRenderer,ft as createStore,Te as createVdomContext,F as h,rt as hydrateVNode,Pe as jsx,_n as jsxDEV,Vn as jsxs,Xn as mountCommand,Yn as mountRoot,$ as patchValue,U as renderValue,vn as serializeData,dt as ssrPage,ct as ssrToString,et as uiServe,Qn as unmountCommand,Mn as ws};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var r=Symbol("Fragment");function o(e,t,n){return{type:e,props:
|
|
1
|
+
var r=Symbol("Fragment");function o(e,t,n){return{type:e,props:d(t),key:n??void 0}}var i=o;function l(e,t,n){return o(e,t,n)}function d(e){if(!e)return{};let t={};for(let n of Object.keys(e))n!=="key"&&(t[n]=e[n]);return t}export{r as Fragment,o as jsx,l as jsxDEV,i as jsxs};
|