dsh-mobile-plugin 0.1.93 → 0.1.95
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 +1 -1
- package/lib/desktop-view.cjs +20 -0
- package/lib/impl.js +1 -1
- package/lib/mirror/pusher.cjs +40 -0
- package/lib/mobile/archive-clean.js +17 -18
- package/lib/mobile/completion.js +33 -25
- package/lib/mobile/events.js +28 -3
- package/lib/mobile/host-bridge/endpoints.js +0 -1
- package/lib/mobile/host-bridge/event-synthesis.js +33 -3
- package/lib/mobile/host-bridge/shims.js +25 -2
- package/lib/mobile/monitor.js +135 -0
- package/lib/mobile/plugin-update.js +199 -0
- package/lib/mobile/session-cache.js +18 -0
- package/lib/mobile/session-flags.js +63 -0
- package/lib/mobile/session-last-turn.js +106 -0
- package/lib/mobile/session-send.js +4 -0
- package/lib/mobile/session-snapshot.js +9 -17
- package/lib/mobile/sessions.js +16 -39
- package/lib/mobile/stream.js +69 -11
- package/lib/panel/index.html +1 -1
- package/lib/reconnect-scheduler.cjs +31 -4
- package/lib/relay/lan-proxy.js +10 -2
- package/lib/relay/protocol.js +3 -3
- package/lib/relay/tunnel.js +17 -4
- package/lib/routes/control-plane.js +15 -4
- package/lib/routes/mobile-api.js +27 -1
- package/lib/session-cleanup.cjs +160 -27
- package/lib/shared/desktop-view-signal.js +66 -0
- package/lib/shared/http-util.js +50 -4
- package/lib/shared/sse-write.js +52 -2
- package/lib/sidecar-facade-worker.cjs +16 -2
- package/package.json +1 -1
package/lib/panel/index.html
CHANGED
|
@@ -20,7 +20,7 @@ Error generating stack: `+e.message+`
|
|
|
20
20
|
${_}px !important;
|
|
21
21
|
${v}px !important;
|
|
22
22
|
}
|
|
23
|
-
`),()=>{s.current?.removeAttribute(`data-motion-pop-id`),b.contains(y)&&b.removeChild(y)}},[t]),(0,Y.jsx)(k_,{isPresent:t,childRef:s,sizeRef:c,pop:a,children:a===!1?e:g.cloneElement(e,{ref:u})})}var j_=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:a,mode:o,anchorX:s,anchorY:c,root:l})=>{let u=yu(M_),d=(0,g.useId)(),f=(0,g.useRef)(n),p=(0,g.useRef)(r);bu(()=>{f.current=n,p.current=r});let m=!0,h=(0,g.useMemo)(()=>(m=!1,{id:d,initial:t,isPresent:n,custom:i,onExitComplete:e=>{u.set(e,!0);for(let e of u.values())if(!e)return;r&&r()},register:e=>(u.set(e,!1),()=>{u.delete(e),!f.current&&!u.size&&p.current?.()})}),[n,u,r]);return a&&m&&(h={...h}),(0,g.useMemo)(()=>{u.forEach((e,t)=>u.set(t,!1))},[n]),g.useEffect(()=>{!n&&!u.size&&r&&r()},[n]),e=(0,Y.jsx)(A_,{pop:o===`popLayout`,isPresent:n,anchorX:s,anchorY:c,root:l,children:e}),(0,Y.jsx)(xu.Provider,{value:h,children:e})};function M_(){return new Map}function N_(e=!0){let t=(0,g.useContext)(xu);if(t===null)return[!0,null];let{isPresent:n,onExitComplete:r,register:i}=t,a=(0,g.useId)();(0,g.useEffect)(()=>{if(e)return i(a)},[e]);let o=(0,g.useCallback)(()=>e&&r&&r(a),[a,r,e]);return!n&&r?[!1,o]:[!0]}var P_=e=>e.key||``;function F_(e){let t=[];return g.Children.forEach(e,e=>{(0,g.isValidElement)(e)&&t.push(e)}),t}var I_=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:a=`sync`,propagate:o=!1,anchorX:s=`left`,anchorY:c=`top`,root:l})=>{let[u,d]=N_(o),f=(0,g.useMemo)(()=>F_(e),[e]),p=o&&!u?[]:f.map(P_),m=(0,g.useRef)(!0),h=yu(()=>new Map),_=(0,g.useRef)(new Set),[v,y]=(0,g.useState)(f),[b,x]=(0,g.useState)(f);bu(()=>{o&&!u&&!b.length&&d?.()},[u,o,b.length,d]),bu(()=>{m.current=!1;for(let e=0;e<b.length;e++){let t=P_(b[e]);p.includes(t)?(h.delete(t),_.current.delete(t)):h.get(t)!==!0&&h.set(t,!1)}},[b,p.length,p.join(`-`)]);let S=[];if(f!==v){let e=[...f],t=0;for(let n of b){let r=p.indexOf(P_(n));r===-1?(e.splice(t++,0,n),S.push(n)):t=r+S.length+1}return S.every(e=>h.get(P_(e)))?e=f:a===`wait`&&(e=S),x(F_(e)),y(f),null}let{forceRender:C}=(0,g.useContext)(vu);return(0,Y.jsx)(Y.Fragment,{children:b.map(e=>{let g=P_(e),v=o&&!u?!1:f===b||p.includes(g);return(0,Y.jsx)(j_,{isPresent:v,initial:!m.current||n?void 0:!1,custom:t,presenceAffectsLayout:i,mode:a,root:l,onExitComplete:v?void 0:()=>{if(_.current.has(g))return;if(h.has(g))_.current.add(g),h.set(g,!0);else return;let e=!0;h.forEach(t=>{t||(e=!1)}),e&&(C?.(),y([]),o&&d?.(),r&&r())},anchorX:s,anchorY:c,children:e},g)})})},L_=(0,g.createContext)({strict:!1}),R_={animation:[`animate`,`variants`,`whileHover`,`whileTap`,`exit`,`whileInView`,`whileFocus`,`whileDrag`],exit:[`exit`],drag:[`drag`,`dragControls`],focus:[`whileFocus`],hover:[`whileHover`,`onHoverStart`,`onHoverEnd`],tap:[`whileTap`,`onTap`,`onTapStart`,`onTapCancel`],pan:[`onPan`,`onPanStart`,`onPanSessionStart`,`onPanEnd`],inView:[`whileInView`,`onViewportEnter`,`onViewportLeave`],layout:[`layout`,`layoutId`]},z_=!1;function B_(){if(z_)return;let e={};for(let t in R_)e[t]={isEnabled:e=>R_[t].some(t=>!!e[t])};t_(e),z_=!0}function V_(){return B_(),n_()}function H_(e){let t=V_();for(let n in e)t[n]={...t[n],...e[n]};t_(t)}function U_({children:e,features:t,strict:n=!1}){let[,r]=(0,g.useState)(!W_(t)),i=(0,g.useRef)(void 0);if(!W_(t)){let{renderer:e,...n}=t;i.current=e,H_(n)}return(0,g.useEffect)(()=>{W_(t)&&t().then(({renderer:e,...t})=>{H_(t),i.current=e,r(!0)})},[]),(0,Y.jsx)(L_.Provider,{value:{renderer:i.current,strict:n},children:e})}function W_(e){return typeof e==`function`}var G_=(0,g.createContext)({});function K_(e,t){if(Kg(e)){let{initial:t,animate:n}=e;return{initial:t===!1||Ug(t)?t:void 0,animate:Ug(n)?n:void 0}}return e.inherit===!1?{}:t}function q_(e){let{initial:t,animate:n}=K_(e,(0,g.useContext)(G_));return(0,g.useMemo)(()=>({initial:t,animate:n}),[J_(t),J_(n)])}function J_(e){return Array.isArray(e)?e.join(` `):e}var Y_=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function X_(e,t,n){for(let r in t)!dh(t[r])&&!c_(r,n)&&(e[r]=t[r])}function Z_({transformTemplate:e},t){return(0,g.useMemo)(()=>{let n=Y_();return tg(n,t,e),Object.assign({},n.vars,n.style)},[t])}function Q_(e,t){let n=e.style||{},r={};return X_(r,n,e),Object.assign(r,Z_(e,t)),r}function $_(e,t){let n={},r=Q_(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout=`none`,r.touchAction=e.drag===!0?`none`:`pan-${e.drag===`x`?`y`:`x`}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}var ev=()=>({...Y_(),attrs:{}});function tv(e,t,n,r){let i=(0,g.useMemo)(()=>{let n=ev();return og(n,t,p_(r),e.transformTemplate,e.style),{...n.attrs,style:{...n.style}}},[t]);if(e.style){let t={};X_(t,e.style,e),i.style={...t,...i.style}}return i}var nv=new Set(`animate.exit.variants.initial.style.values.transition.transformTemplate.custom.inherit.onBeforeLayoutMeasure.onAnimationStart.onAnimationComplete.onUpdate.onDragStart.onDrag.onDragEnd.onMeasureDragConstraints.onDirectionLock.onDragTransitionEnd._dragX._dragY.onHoverStart.onHoverEnd.onViewportEnter.onViewportLeave.globalTapTarget.propagate.ignoreStrict.viewport`.split(`.`));function rv(e){return e.startsWith(`while`)||e.startsWith(`drag`)&&e!==`draggable`||e.startsWith(`layout`)||e.startsWith(`onTap`)||e.startsWith(`onPan`)||e.startsWith(`onLayout`)||nv.has(e)}function iv(e,t){return e.startsWith(`on`)?!rv(e):t?.(e)??!rv(e)}function av(e,t,n,r){let i={};for(let a in e)(a!==`values`||typeof e.values!=`object`)&&(dh(e[a])||(iv(a,r)||n===!0&&rv(a)||!t&&!rv(a)||e.draggable&&a.startsWith(`onDrag`))&&(i[a]=e[a]));return i}var ov=[`animate`,`circle`,`defs`,`desc`,`ellipse`,`g`,`image`,`line`,`filter`,`marker`,`mask`,`metadata`,`path`,`pattern`,`polygon`,`polyline`,`rect`,`stop`,`switch`,`symbol`,`svg`,`text`,`tspan`,`use`,`view`];function sv(e){return typeof e!=`string`||e.includes(`-`)?!1:!!(ov.indexOf(e)>-1||/[A-Z]/u.test(e))}function cv(e,t,n,{latestValues:r},i,a=!1,o,s){let c=(o??sv(e)?tv:$_)(t,r,i,e),l=av(t,typeof e==`string`,a,s),u=e===g.Fragment?{}:{...l,...c,ref:n},{children:d}=t,f=(0,g.useMemo)(()=>dh(d)?d.get():d,[d]);return(0,g.createElement)(e,{...u,children:f})}function lv({scrapeMotionValuesFromProps:e,createRenderState:t},n,r,i){return{latestValues:uv(n,r,i,e),renderState:t()}}function uv(e,t,n,r){let i={},a=r(e,{});for(let e in a)i[e]=w_(a[e]);let{initial:o,animate:s}=e,c=Kg(e),l=qg(e);t&&l&&!c&&e.inherit!==!1&&(o===void 0&&(o=t.initial),s===void 0&&(s=t.animate));let u=n?n.initial===!1:!1;u||=o===!1;let d=u?s:o;if(d&&typeof d!=`boolean`&&!Hg(d)){let t=Array.isArray(d)?d:[d];for(let n=0;n<t.length;n++){let r=rh(e,t[n]);if(r){let{transitionEnd:e,transition:t,...n}=r;for(let e in n){let t=n[e];if(Array.isArray(t)){let e=u?t.length-1:0;t=t[e]}t!==null&&(i[e]=t)}for(let t in e)i[t]=e[t]}}}return i}var dv=e=>(t,n)=>{let r=(0,g.useContext)(G_),i=(0,g.useContext)(xu),a=()=>lv(e,t,r,i);return n?a():yu(a)},fv=dv({scrapeMotionValuesFromProps:l_,createRenderState:Y_}),pv=dv({scrapeMotionValuesFromProps:h_,createRenderState:ev}),mv=Symbol.for(`motionComponentSymbol`);function hv(e,t,n){let r=(0,g.useRef)(n);(0,g.useInsertionEffect)(()=>{r.current=n});let i=(0,g.useRef)(null);return(0,g.useCallback)(n=>{n&&e.onMount?.(n),t&&(n?t.mount(n):t.unmount());let a=r.current;if(typeof a==`function`){if(n){let e=a(n);typeof e==`function`&&(i.current=e)}else i.current?(i.current(),i.current=null):a(n)}else a&&(a.current=n)},[t])}var gv=(0,g.createContext)({});function _v(e){return e&&typeof e==`object`&&Object.prototype.hasOwnProperty.call(e,`current`)}function vv(e,t,n,r,i,a){let{visualElement:o}=(0,g.useContext)(G_),s=(0,g.useContext)(L_),c=(0,g.useContext)(xu),l=(0,g.useContext)(T_),u=l.reducedMotion,d=l.skipAnimations,f=(0,g.useRef)(null),p=(0,g.useRef)(!1);r||=s.renderer,!f.current&&r&&(f.current=r(e,{visualState:t,parent:o,props:n,presenceContext:c,blockInitialAnimation:c?c.initial===!1:!1,reducedMotionConfig:u,skipAnimations:d,isSVG:a}),p.current&&f.current&&(f.current.manuallyAnimateOnMount=!0));let m=f.current,h=(0,g.useContext)(gv);m&&!m.projection&&i&&(m.type===`html`||m.type===`svg`)&&yv(f.current,n,i,h);let _=(0,g.useRef)(!1);(0,g.useInsertionEffect)(()=>{m&&_.current&&m.update(n,c)});let v=n[hh],y=(0,g.useRef)(!!v&&typeof window<`u`&&!window.MotionHandoffIsComplete?.(v)&&window.MotionHasOptimisedAnimation?.(v));return bu(()=>{p.current&&m&&(m.animationState?.animateChanges(),m.enteringChildren=void 0)},[]),bu(()=>{p.current=!0,m&&(_.current=!0,window.MotionIsMounted=!0,m.updateFeatures(),m.scheduleRenderMicrotask(),y.current&&m.animationState&&m.animationState.animateChanges())}),(0,g.useEffect)(()=>{m&&(!y.current&&m.animationState&&m.animationState.animateChanges(),y.current&&=(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(v)}),!1),m.enteringChildren=void 0)}),m}function yv(e,t,n,r){let{layoutId:i,layout:a,drag:o,dragConstraints:s,layoutScroll:c,layoutRoot:l,layoutAnchor:u,layoutCrossfade:d}=t;e.projection=new n(e.latestValues,t[`data-framer-portal-id`]?void 0:bv(e.parent)),e.projection.setOptions({layoutId:i,layout:a,alwaysMeasureLayout:!!o||s&&_v(s),visualElement:e,animationType:typeof a==`string`?a:`both`,initialPromotionConfig:r,crossfade:d,layoutScroll:c,layoutRoot:l,layoutAnchor:u})}function bv(e){if(e)return e.options.allowProjection===!1?bv(e.parent):e.projection}function xv(e,{forwardMotionProps:t=!1,type:n}={},r,i){r&&H_(r);let a=n?n===`svg`:sv(e),o=a?pv:fv;function s(n,s){let c,l={...(0,g.useContext)(T_),...n,layoutId:Sv(n)},{isStatic:u,isValidProp:d}=l,f=q_(n),p=o(n,u);if(!u&&typeof window<`u`){Cv(l,r);let t=wv(l);c=t.MeasureLayout,f.visualElement=vv(e,p,l,i,t.ProjectionNode,a)}return(0,Y.jsxs)(G_.Provider,{value:f,children:[c&&f.visualElement?(0,Y.jsx)(c,{visualElement:f.visualElement,...l}):null,cv(e,n,hv(p,f.visualElement,s),p,u,t,a,d)]})}s.displayName=`motion.${typeof e==`string`?e:`create(${e.displayName??e.name??``})`}`;let c=(0,g.forwardRef)(s);return c[mv]=e,c}function Sv({layoutId:e}){let t=(0,g.useContext)(vu).id;return t&&e!==void 0?t+`-`+e:e}function Cv(e,t){(0,g.useContext)(L_).strict}function wv(e){let{drag:t,layout:n}=V_();if(!t&&!n)return{};let r={...t,...n};return{MeasureLayout:t?.isEnabled(e)||n?.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}function Tv(e,t){if(typeof Proxy>`u`)return xv;let n=new Map,r=(n,r)=>xv(n,r,e,t);return new Proxy((e,t)=>r(e,t),{get:(i,a)=>a===`create`?r:(n.has(a)||n.set(a,xv(a,void 0,e,t)),n.get(a))})}var Ev=Tv(),Dv=(e,t)=>t.isSVG??sv(e)?new g_(t):new d_(t,{allowProjection:e!==g.Fragment}),Ov=class extends a_{constructor(e){super(e),e.animationState||=y_(e)}updateAnimationControlsSubscription(){let{animate:e}=this.node.getProps();Hg(e)&&(this.unmountControls=e.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){let{animate:e}=this.node.getProps(),{animate:t}=this.node.prevProps||{};e!==t&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}},kv=0,Av={animation:{Feature:Ov},exit:{Feature:class extends a_{constructor(){super(...arguments),this.id=kv++}update(){let{presenceContext:e,prevPresenceContext:t,animationState:n}=this.node;if(!e||!n)return;let{isPresent:r,onExitComplete:i}=e,a=t?.isPresent;if(r===a)return;if(r&&a===!1){if(this.exit===!0){let{initial:e}=this.node.getProps();if(e&&!Array.isArray(e)){let{transition:t,transitionEnd:n,...r}=ih(this.node,e)||{};for(let e in r)this.node.getValue(e)?.jump(r[e])}this.node.blockInitialAnimation=!1,n.reset(),n.animateChanges()}else n.setActive(`exit`,!1);this.exit=void 0;return}let o=this.exit=n.setActive(`exit`,!r);i&&!r&&o.then(()=>{this.exit===o&&(this.exit=!0,i(this.id))})}mount(){let{register:e,onExitComplete:t}=this.node.presenceContext||{};t&&t(this.id),e&&(this.unmount=e(this.id))}unmount(){}}}};function jv(e){return{point:{x:e.pageX,y:e.pageY}}}function Mv(e,t,n){let{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive(`whileHover`,n===`Start`);let i=r[`onHover`+n];i&&kf.postRender(()=>i(t,jv(t)))}var Nv=class extends a_{mount(){let{current:e}=this.node;e&&(this.unmount=Eg(e,(e,t)=>(Mv(this.node,t,`Start`),e=>Mv(this.node,e,`End`))))}unmount(){}},Pv=class extends a_{constructor(){super(...arguments),this.isActive=!1}onFocus(){let e=!1;try{e=this.node.current.matches(`:focus-visible`)}catch{e=!0}e&&this.node.animationState&&(this.node.animationState.setActive(`whileFocus`,!0),this.isActive=!0)}onBlur(){this.isActive&&this.node.animationState&&(this.node.animationState.setActive(`whileFocus`,!1),this.isActive=!1)}mount(){this.unmount=ju(C_(this.node.current,`focus`,()=>this.onFocus()),C_(this.node.current,`blur`,()=>this.onBlur()))}unmount(){}};function Fv(e,t,n){let{props:r}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&r.whileTap&&e.animationState.setActive(`whileTap`,n===`Start`);let i=r[`onTap`+(n===`End`?``:n)];i&&kf.postRender(()=>i(t,jv(t)))}var Iv=class extends a_{mount(){let{current:e}=this.node;if(!e)return;let{globalTapTarget:t,propagate:n}=this.node.props;this.unmount=Lg(e,(e,t)=>(Fv(this.node,t,`Start`),(e,{success:t})=>Fv(this.node,e,t?`End`:`Cancel`)),{useGlobalTarget:t,stopPropagation:n?.tap===!1})}unmount(){}},Lv=new WeakMap,Rv=new WeakMap,zv=e=>{let t=Lv.get(e.target);t&&t(e)},Bv=e=>{e.forEach(zv)};function Vv({root:e,...t}){let n=e||document;Rv.has(n)||Rv.set(n,{});let r=Rv.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(Bv,{root:e,...t})),r[i]}function Hv(e,t,n){let r=Vv(t);return Lv.set(e,n),r.observe(e),()=>{Lv.delete(e),r.unobserve(e)}}var Uv={some:0,all:1},Wv=class extends a_{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.stopObserver?.();let{viewport:e={}}=this.node.getProps(),{root:t,margin:n,amount:r=`some`,once:i}=e,a={root:t?t.current:void 0,rootMargin:n,threshold:typeof r==`number`?r:Uv[r]},o=e=>{let{isIntersecting:t}=e;if(this.isInView===t||(this.isInView=t,i&&!t&&this.hasEnteredView))return;t&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive(`whileInView`,t);let{onViewportEnter:n,onViewportLeave:r}=this.node.getProps(),a=t?n:r;a&&a(e)};this.stopObserver=Hv(this.node.current,a,o)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>`u`)return;let{props:e,prevProps:t}=this.node;[`amount`,`margin`,`root`].some(Gv(e,t))&&this.startObserver()}unmount(){this.stopObserver?.(),this.hasEnteredView=!1,this.isInView=!1}};function Gv({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}var Kv={inView:{Feature:Wv},tap:{Feature:Iv},focus:{Feature:Pv},hover:{Feature:Nv}};function qv(e){return(0,g.useEffect)(()=>()=>e(),[])}var Jv={renderer:Dv,...Av,...Kv};function Yv(e){let t=yu(()=>Hm(e)),{isStatic:n}=(0,g.useContext)(T_);if(n){let[,n]=(0,g.useState)(e);(0,g.useEffect)(()=>t.on(`change`,n),[])}return t}function Xv(e,t){let n=Yv(t()),r=()=>n.set(t());return r(),bu(()=>{let t=()=>kf.preRender(r,!1,!0),n=e.map(e=>e.on(`change`,t));return()=>{n.forEach(e=>e()),Af(r)}}),n}function Zv(e){Bm.current=[],e();let t=Xv(Bm.current,e);return Bm.current=void 0,t}function Qv(e,t,n,r){if(typeof e==`function`)return Zv(e);if(n!==void 0&&!Array.isArray(n)&&typeof t!=`function`)return ey(e,t,n,r);let i=typeof t==`function`?t:Rg(t,n,r),a=Array.isArray(e)?$v(e,i):$v([e],([e])=>i(e)),o=Array.isArray(e)?void 0:e.accelerate;if(o&&!o.isTransformed&&typeof t!=`function`&&Array.isArray(n)&&r?.clamp!==!1){let e=r?.ease;a.accelerate={...o,times:[0,...t,1],keyframes:[n[0],...n,n[n.length-1]],isTransformed:!0,...e?{ease:Array.isArray(e)?[e[0],...e]:e}:{}}}return a}function $v(e,t){let n=yu(()=>[]);return Xv(e,()=>{n.length=0;let r=e.length;for(let t=0;t<r;t++)n[t]=e[t].get();return t(n)})}function ey(e,t,n,r){let i=yu(()=>Object.keys(n)),a=yu(()=>({}));for(let o of i)a[o]=Qv(e,t,n[o],r);return a}function ty(){!Xg.current&&Qg();let[e]=(0,g.useState)(Yg.current);return e}function ny(){let e=ty(),{reducedMotion:t}=(0,g.useContext)(T_);return t===`never`?!1:t===`always`||e}function ry(e){return typeof e==`object`&&!Array.isArray(e)}function iy(e,t,n,r){return e==null?[]:typeof e==`string`&&ry(t)?Bh(e,n,r):e instanceof NodeList?Array.from(e):Array.isArray(e)?e.filter(e=>e!=null):[e]}function ay(e,t,n){return e*(t+1)+n*t}function oy(e,t,n,r){return typeof t==`number`?t:t.startsWith(`-`)||t.startsWith(`+`)?Math.max(0,e+parseFloat(t)):t===`<`?n:t.startsWith(`<`)?Math.max(0,n+parseFloat(t.slice(1))):r.get(t)??e}function sy(e,t,n){for(let r=0;r<e.length;r++){let i=e[r];i.at>t&&i.at<n&&(Cu(e,i),r--)}}function cy(e,t,n,r,i,a){sy(e,i,a);for(let o=0;o<t.length;o++)e.push({value:t[o],at:cf(i,a,r[o]),easing:nd(n,o)})}function ly(e,t,n=0){let r=t+1+t*n;for(let t=0;t<e.length;t++)e[t]=e[t]/r}function uy(e,t){return e.at===t.at?e.value===null?1:t.value===null?-1:0:e.at-t.at}var dy=`easeInOut`,fy=20;function py(e,{defaultTransition:t={},...n}={},r,i){let a=t.duration||.3,o=new Map,s=new Map,c={},l=new Map,u=0,d=0,f=0;for(let n=0;n<e.length;n++){let o=e[n];if(typeof o==`string`){l.set(o,d);continue}if(!Array.isArray(o)){l.set(o.name,oy(d,o.at,u,l));continue}let[p,m,h={}]=o;h.at!==void 0&&(d=oy(d,h.at,u,l));let g=0,_=(e,n,r,o=0,s=0)=>{let c=gy(e),{delay:l=0,times:u=$f(c),type:p=t.type||`keyframes`,repeat:m,repeatType:h,repeatDelay:_=0,...v}=n,{ease:y=t.ease||`easeOut`,duration:b}=n,x=typeof l==`function`?l(o,s):l,S=c.length,C=mm(p)?p:i?.[p||`keyframes`];if(S<=2&&C){let e=100;if(S===2&&yy(c)){let t=c[1]-c[0];e=Math.abs(t)}let n={...t,...v};b!==void 0&&(n.duration=Pu(b));let r=If(n,e,C);y=r.ease,b=r.duration}b??=a;let w=d+x;u.length===1&&u[0]===0&&(u[1]=1);let T=u.length-c.length;if(T>0&&Qf(u,T),c.length===1&&c.unshift(null),m&&`${m}${fy}`,m&&m<fy){let e=b>0?_/b:0;b=ay(b,m,_);let t=[...c],n=[...u];y=Array.isArray(y)?[...y]:[y];let r=[...y],i=h===`reverse`||h===`mirror`,a=t,o=r;i&&(a=[...t].reverse(),h===`reverse`&&(o=[...r].reverse().map(e=>typeof e==`function`?Wu(e):e)));for(let s=0;s<m;s++){let l=i&&s%2==0,d=l?a:t,f=l?o:r,p=(s+1)*(1+e);e>0&&(c.push(c[c.length-1]),u.push(p),y.push(`linear`)),c.push(...d);for(let e=0;e<d.length;e++)u.push(n[e]+p),y.push(e===0?`linear`:nd(f,e-1))}ly(u,m,e)}let E=w+b;cy(r,c,y,u,w,E),g=Math.max(x+b,g),f=Math.max(E,f)};if(dh(p)){let e=my(p,s);_(m,h,hy(`default`,e))}else{let e=iy(p,m,r,c),t=e.length;for(let n=0;n<t;n++){m=m,h=h;let r=e[n],i=my(r,s);for(let e in m)_(m[e],_y(h,e),hy(e,i),n,t)}}u=d,d+=g}return s.forEach((e,r)=>{for(let i in e){let a=e[i];a.sort(uy);let s=[],c=[],l=[];for(let e=0;e<a.length;e++){let{at:t,value:n,easing:r}=a[e];s.push(n),c.push(Mu(0,f,t)),l.push(r||`easeOut`)}c[0]!==0&&(c.unshift(0),s.unshift(s[0]),l.unshift(dy)),c[c.length-1]!==1&&(c.push(1),s.push(null)),o.has(r)||o.set(r,{keyframes:{},transition:{}});let u=o.get(r);u.keyframes[i]=s;let{type:d,...p}=t;u.transition[i]={...p,duration:f,ease:l,times:c,...n}}}),o}function my(e,t){return!t.has(e)&&t.set(e,{}),t.get(e)}function hy(e,t){return t[e]||(t[e]=[]),t[e]}function gy(e){return Array.isArray(e)?e:[e]}function _y(e,t){return e&&e[t]?{...e,...e[t]}:{...e}}var vy=e=>typeof e==`number`,yy=e=>e.every(vy);function by(e,t){return dh(e)||typeof e==`number`||typeof e==`string`&&!ry(t)}function xy(e,t,n,r){let i=[];if(by(e,t))i.push(S_(e,ry(t)&&t.default||t,n&&(n.default||n)));else{if(e==null)return i;let a=iy(e,t,r),o=a.length;for(let e=0;e<o;e++){let r=a[e],s={...n};`delay`in s&&typeof s.delay==`function`&&(s.delay=s.delay(e,o)),r instanceof Element?i.push(...vg(r,t,s,Vg.get(r))):i.push(...Fh(Nh(r)??yg,r,t,s))}}return i}function Sy(e,t,n){let r=[];return py(e.map(e=>{if(Array.isArray(e)&&typeof e[0]==`function`){let t=e[0],n=Hm(0);return n.on(`change`,t),e.length===1?[n,[0,1]]:e.length===2?[n,[0,1],e[1]]:[n,e[1],e[2]]}return e}),t,n,{spring:Jf}).forEach(({keyframes:e,transition:t},n)=>{r.push(...xy(n,e,t))}),r}function Cy(e){return Array.isArray(e)&&e.some(Array.isArray)}function wy(e={}){let{scope:t,reduceMotion:n,skipAnimations:r}=e;function i(e,i,a){let o=[],s,c={};if(n!==void 0&&(c.reduceMotion=n),r!==void 0&&(c.skipAnimations=r),Cy(e)){let{onComplete:n,...r}=i||{};typeof n==`function`&&(s=n),o=Sy(e,{...c,...r},t)}else{let{onComplete:n,...r}=a||{};typeof n==`function`&&(s=n),o=xy(e,i,{...c,...r},t)}let l=new Im(o);return s&&l.finished.then(s),t&&(t.animations.push(l),l.finished.then(()=>{Cu(t.animations,l)})),l}return i}var Ty=Object.assign(wy(),{addEffect:jh,removeEffect:Mh});function Ey(){let e=yu(()=>({current:null,animations:[]})),t=ny()??void 0,{skipAnimations:n}=(0,g.useContext)(T_),r=(0,g.useMemo)(()=>wy({scope:e,reduceMotion:t,skipAnimations:n}),[e,t,n]);return qv(()=>{e.animations.forEach(e=>e.stop()),e.animations.length=0}),[e,r]}var Dy=Ev,Oy=(0,g.createContext)({disableAnimations:!1});function ky(){return(0,g.use)(Oy)}var Ay=`(prefers-reduced-motion: reduce)`;function jy(){let e=eu(Ay),{disableAnimations:t}=ky();return t||e}var My=`text-[2.5rem]`,Ny={indicator:`text-primary`,track:`text-primary-soft`},Py={indicator:`text-current`,track:`text-current/20`};function Fy({colors:e,reduced:t}){return(0,Y.jsxs)(`svg`,{width:`1em`,height:`1em`,viewBox:`0 0 40 40`,fill:`none`,stroke:`currentColor`,strokeWidth:`4`,strokeLinecap:`round`,"aria-hidden":`true`,className:Q(`size-[1em] stroke-4!`,e.indicator),children:[(0,Y.jsx)(`circle`,{cx:`20`,cy:`20`,r:`16`,className:e.track}),t?(0,Y.jsx)(`circle`,{cx:`20`,cy:`20`,r:`16`,pathLength:1,strokeDasharray:`0.25 0.75`}):(0,Y.jsx)(Dy.circle,{cx:`20`,cy:`20`,r:`16`,pathLength:1,strokeDasharray:`0.25 0.75`,initial:{strokeDashoffset:0},animate:{strokeDashoffset:-1},transition:{duration:.9,repeat:1/0,ease:`linear`}})]})}var Iy=12,Ly=1.2;function Ry({colors:e,reduced:t}){return(0,Y.jsx)(`svg`,{width:`1em`,height:`1em`,viewBox:`0 0 40 40`,fill:`currentColor`,"aria-hidden":`true`,className:Q(`size-[1em]`,e.indicator),children:Array.from({length:Iy},(e,n)=>{let r={x:18,y:2,width:4,height:6,rx:2,transform:`rotate(${360/Iy*n} 20 20)`};return t?(0,Y.jsx)(`rect`,{...r,opacity:.25},n):(0,Y.jsx)(Dy.rect,{...r,initial:{opacity:0},animate:{opacity:[0,1,.5,0]},transition:{duration:Ly,repeat:1/0,ease:`linear`,delay:n/Iy*Ly-Ly,times:[0,.1,.5,1]}},n)})})}var zy=`M12.846 3.581C12.711 3.231 12.375 3 12 3C11.625 3 11.278 3.263 11.154 3.581C10.604 5.011 10.054 6.442 9.504 7.872C8.752 8.16 8.159 8.752 7.871 9.504C6.441 10.054 5.011 10.604 3.581 11.154C3.41 11.22 3.263 11.336 3.159 11.487C3.055 11.638 3 11.817 3 12C3 12.183 3.056 12.362 3.159 12.513C3.262 12.664 3.41 12.78 3.581 12.846C5.011 13.396 6.442 13.946 7.872 14.496C8.16 15.248 8.752 15.841 9.504 16.129C10.054 17.559 10.604 18.989 11.154 20.419C11.22 20.59 11.336 20.737 11.487 20.841C11.638 20.945 11.817 21 12 21C12.183 21 12.362 20.945 12.513 20.841C12.664 20.737 12.78 20.59 12.846 20.419C13.396 18.989 13.946 17.559 14.496 16.129C15.248 15.841 15.841 15.248 16.129 14.496C17.559 13.946 18.989 13.396 20.419 12.846C20.59 12.78 20.737 12.664 20.841 12.513C20.945 12.362 21 12.183 21 12C21 11.817 20.945 11.638 20.841 11.487C20.737 11.336 20.59 11.22 20.419 11.154C18.989 10.604 17.559 10.054 16.129 9.504C15.841 8.752 15.248 8.16 14.496 7.871C13.946 6.441 13.396 5.011 12.846 3.581Z`,By=`M12.704 5C12.469 5 12.235 5 12 5C11.765 5 11.531 5 11.296 5C10.161 5.053 9.025 5.106 7.889 5.159C6.979 6.069 6.069 6.979 5.159 7.889C5.106 9.025 5.053 10.161 5 11.296C5 11.395 5 11.494 5 11.593C5 11.729 5 11.864 5 12C5 12.136 5 12.271 5 12.407C5 12.506 5 12.605 5 12.704C5.053 13.839 5.106 14.975 5.159 16.111C6.069 17.021 6.979 17.931 7.889 18.841C9.025 18.894 10.161 18.947 11.296 19C11.395 19 11.494 19 11.593 19C11.729 19 11.864 19 12 19C12.136 19 12.271 19 12.407 19C12.506 19 12.605 19 12.704 19C13.839 18.947 14.975 18.894 16.111 18.841C17.021 17.931 17.931 17.021 18.841 16.111C18.894 14.975 18.947 13.839 19 12.704C19 12.605 19 12.506 19 12.407C19 12.271 19 12.136 19 12C19 11.864 19 11.729 19 11.593C19 11.494 19 11.395 19 11.296C18.947 10.161 18.894 9.025 18.841 7.889C17.931 6.979 17.021 6.069 16.111 5.159C14.975 5.106 13.839 5.053 12.704 5Z`;function Vy(e){return e.match(/-?\d+(?:\.\d+)?/g)?.map(Number)??[]}var Hy=Vy(zy),Uy=Vy(By),Wy=(Hy.length-2)/6;function Gy(e){let t=`M${e[0]} ${e[1]}`;for(let n=0;n<Wy;n++){let r=2+n*6;t+=`C${e[r]} ${e[r+1]} ${e[r+2]} ${e[r+3]} ${e[r+4]} ${e[r+5]}`}return t+`Z`}function Ky(e,t,n){return e+(t-e)*n}function qy(e){return e<.5?2*e*e:1-(-2*e+2)**2/2}var Jy=2.5,Yy=.4;function Xy({colors:e,reduced:t}){let n=Yv(0);g.useEffect(()=>{if(t)return;let e=Ty(n,1,{duration:Jy,repeat:1/0,ease:`linear`});return()=>e.stop()},[t,n]);let r=Qv(n,e=>{if(e<Yy/2){let t=qy(e/(Yy/2));return Gy(Hy.map((e,n)=>Ky(e,Uy[n],t)))}if(e<Yy){let t=qy((e-Yy/2)/(Yy/2));return Gy(Uy.map((e,n)=>Ky(e,Hy[n],t)))}return zy}),i=Qv(n,e=>e<Yy?qy(e/Yy)*360:360);return(0,Y.jsx)(`svg`,{width:`1em`,height:`1em`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinejoin:`round`,strokeLinecap:`round`,"aria-hidden":`true`,className:Q(`size-[1em]`,e.indicator),children:t?(0,Y.jsx)(`path`,{d:zy}):(0,Y.jsx)(Dy.path,{d:r,style:{transformOrigin:`12px 12px`,rotate:i}})})}var Zy={circular:Fy,dots:Ry,sparkle:Xy};function Qy({variant:e=`circular`,currentColor:t=!1,"aria-label":n=`Loading`,className:r,...i}){let a=jy(),o=t?Py:Ny,s=Zy[e],c=(0,Y.jsx)(s,{colors:o,reduced:a});return(0,Y.jsx)(`span`,{"data-slot":`spinner`,role:`status`,"aria-label":n,className:Q(`inline-flex shrink-0 items-center justify-center align-middle`,My,r),...i,children:a?c:(0,Y.jsx)(U_,{features:Jv,strict:!0,children:c})})}function $y(e,{storage:t=`local`}={}){let[n,r,i]=Ql(t,e,``,{serializer:e=>e,deserializer:e=>e}),a=n!==`1`,o=(0,g.useCallback)(()=>r(`1`),[r]),s=(0,g.useCallback)(()=>i(),[i]);return(0,g.useMemo)(()=>({open:a,dismiss:o,reset:s}),[a,o,s])}var eb=xl(Q(`group/alert relative rounded-xl border p-5 text-foreground backdrop-blur-xl`,`grid w-full items-start`,`[grid-template-columns:auto_1fr_auto] [grid-template-areas:'icon_title_close'_'._description_.'_'._actions_actions']`,`@min-[460px]:data-[layout=inline]:items-center`,`@min-[460px]:data-[layout=inline]:[grid-template-columns:auto_auto_1fr_auto_auto]`,`@min-[460px]:data-[layout=inline]:[grid-template-areas:'icon_title_description_actions_close']`),{variants:{variant:{default:`bg-background border-border`,primary:`bg-primary-subtle border-primary-soft`,secondary:`bg-secondary-subtle border-secondary-soft`,error:`bg-error-subtle border-error-soft`,success:`bg-success-subtle border-success-soft`,warning:`bg-warning-subtle border-warning-soft`,info:`bg-info-subtle border-info-soft`}},defaultVariants:{variant:`default`}}),tb={default:`text-foreground-intense`,primary:`text-primary`,secondary:`text-secondary-emphasis`,error:`text-error-emphasis`,success:`text-success-emphasis`,warning:`text-warning-emphasis`,info:`text-info-emphasis`},nb=g.createContext(`default`),rb={opacity:0,scale:.88,filter:`blur(12px)`,height:0},ib={opacity:0},ab={default:{duration:.32,ease:[.4,0,.2,1]},height:{duration:.3,ease:[.4,0,.2,1],delay:.18}};function ob({variant:e,layout:t=`block`,dismissible:n=!1,open:r,onOpenChange:i,persistKey:a,persistStorage:o=`local`,closeLabel:s=`Dismiss`,role:c=`alert`,className:l,children:u,style:d,...f}){let p=jy(),[m,h]=g.useState(!0),_=$y(a??``,{storage:o}),v=r!==void 0,y=!v&&a!=null,b=v?r:y?_.open:m,x=g.useCallback(()=>{if(v){i?.(!1);return}y?_.dismiss():h(!1),i?.(!1)},[v,y,_,i]);return(0,Y.jsx)(nb.Provider,{value:e??`default`,children:(0,Y.jsx)(U_,{features:Jv,strict:!0,children:(0,Y.jsx)(I_,{initial:!1,children:b&&(0,Y.jsx)(Dy.div,{initial:!1,exit:p?ib:rb,transition:p?{duration:0}:ab,className:`@container overflow-hidden`,children:(0,Y.jsxs)(`div`,{role:c,"data-slot":`alert`,"data-layout":t,style:d,className:Q(eb({variant:e}),l),...f,children:[u,n&&(0,Y.jsx)(`button`,{type:`button`,"aria-label":s,"data-slot":`alert-close`,onClick:x,className:Q(`text-foreground-muted cursor-pointer rounded-md p-1 transition-colors outline-none [grid-area:close]`,`hover:text-foreground-intense`,`focus-visible:ring-ring focus-visible:ring-2`,`self-start @min-[460px]:group-data-[layout=inline]/alert:self-center`,`ms-3 -me-1 -mt-1 @min-[460px]:group-data-[layout=inline]/alert:my-0`),children:(0,Y.jsx)(sb,{})})]})},`alert`)})})})}function sb(){return(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,className:`size-4`,children:(0,Y.jsx)(`path`,{d:`M11.523 3.522c.264-.264.691-.264.955 0s.264.691 0 .955L8.955 8l3.522 3.522c.264.264.264.691 0 .955s-.691.264-.955 0L8 8.955l-3.522 3.522c-.264.264-.691.264-.955 0s-.264-.691 0-.955L7.045 8 3.522 4.478c-.264-.264-.264-.691 0-.955s.691-.264.955 0L8 7.045l3.523-3.522z`})})}function cb({className:e,...t}){let n=g.useContext(nb);return(0,Y.jsx)(`span`,{"data-slot":`alert-icon`,className:Q(`me-3 flex h-lh shrink-0 items-center [grid-area:icon] [&_svg:not([class*='size-'])]:size-5`,tb[n],e),...t})}function lb({className:e,as:t=`h5`,...n}){return(0,Y.jsx)(t,{"data-slot":`alert-title`,className:Q(`text-foreground-intense self-center font-semibold [grid-area:title]`,`text-base @min-[460px]:group-data-[layout=inline]/alert:me-3 @min-[460px]:group-data-[layout=inline]/alert:text-sm`,e),...n})}function ub({className:e,...t}){return(0,Y.jsx)(`p`,{"data-slot":`alert-description`,className:Q(`text-foreground text-sm [grid-area:description]`,`mt-2 @min-[460px]:group-data-[layout=inline]/alert:mt-0`,e),...t})}function db(e){return kr(e.defaultTagName??`div`,e,e)}var fb=[`before:pointer-events-none`,`before:absolute`,`before:inset-0`,`before:-z-1`,`before:rounded-[inherit]`,`[a,button]:before:transition-[opacity,background-color,border-color]`,`[a,button]:before:duration-250`,`motion-reduce:[a,button]:before:transition-none`],pb=xl(`relative isolate inline-flex shrink-0 items-center justify-center rounded-full whitespace-nowrap outline-offset-1 select-none [&_svg]:shrink-0 [a,button]:transform-gpu [a,button]:cursor-pointer [a,button]:transition [a,button]:duration-250 [a,button]:ease-[cubic-bezier(0.175,0.885,0.32,1.5)] [a,button]:not-data-popup-open:active:translate-y-px [a,button]:not-data-popup-open:active:scale-[0.97] [a,button]:not-data-popup-open:active:duration-100 [a,button]:not-data-popup-open:active:ease-in-out motion-reduce:[a,button]:transition-none`,{variants:{variant:{primary:Q(fb,`bg-primary text-primary-foreground outline-ring-primary [a,button]:before:bg-[radial-gradient(138.15%_78.13%_at_52.05%_50%,var(--primary)_0%,var(--primary-muted)_75%)] [a,button]:before:opacity-0`,`[a,button]:hover:before:opacity-100`,`[a,button]:data-pressed:before:opacity-100`,`[a,button]:data-popup-open:before:opacity-100`),"primary-outline":Q(fb,`text-primary before:border before:border-primary outline-ring-primary`,`[a,button]:hover:before:bg-primary [a,button]:hover:text-primary-foreground`,`[a,button]:data-pressed:before:bg-primary [a,button]:data-pressed:text-primary-foreground`,`[a,button]:data-popup-open:before:bg-primary [a,button]:data-popup-open:text-primary-foreground`),secondary:Q(fb,`bg-secondary-muted text-secondary-foreground outline-ring-secondary [a,button]:before:bg-[radial-gradient(138.15%_78.13%_at_52.05%_50%,var(--secondary)_0%,var(--secondary-muted)_95%)] [a,button]:before:opacity-0`,`[a,button]:hover:before:opacity-100`,`[a,button]:data-pressed:before:opacity-100`,`[a,button]:data-popup-open:before:opacity-100`),soft:Q(fb,`text-foreground-intense before:bg-background-muted before:backdrop-blur-md [a,button]:before:border [a,button]:before:border-transparent outline-ring`,`data-[slot=breadcrumb-link]:not-data-active:text-foreground-muted data-[slot=breadcrumb-link]:hover:text-foreground-intense`,`[a,button]:hover:before:bg-background-subtle [a,button]:hover:before:border-border`,`[a,button]:data-pressed:before:bg-background-subtle [a,button]:data-pressed:before:border-border`,`[a,button]:data-popup-open:before:bg-background-subtle [a,button]:data-popup-open:before:border-border`,`data-active:before:bg-background-subtle data-active:border data-active:before:border-border`),outline:Q(fb,`bg-background text-foreground-intense before:bg-background before:border-border before:border outline-ring`,`data-[slot=breadcrumb-link]:not-data-active:text-foreground-muted data-[slot=breadcrumb-link]:hover:text-foreground-intense`,`[a,button]:hover:before:bg-background-subtle [a,button]:hover:before:border-border-strong`,`[a,button]:data-pressed:before:bg-background-subtle [a,button]:data-pressed:before:border-border-strong`,`[a,button]:data-popup-open:before:bg-background-subtle [a,button]:data-popup-open:before:border-border-strong`,`data-active:before:bg-background-subtle data-active:before:border-border-strong`),error:Q(fb,`bg-error-muted text-error-foreground outline-ring-error [a,button]:before:bg-[radial-gradient(138.15%_78.13%_at_52.05%_50%,var(--error-muted)_0%,rgba(255,255,255,.5)_95%)] [a,button]:before:opacity-0`,`[a,button]:hover:before:opacity-100`,`[a,button]:data-pressed:before:opacity-100`,`[a,button]:data-popup-open:before:opacity-100`),success:Q(fb,`bg-success-muted text-success-foreground outline-ring-success [a,button]:before:bg-[radial-gradient(138.15%_78.13%_at_52.05%_50%,var(--success-muted)_0%,rgba(255,255,255,.5)_95%)] [a,button]:before:opacity-0`,`[a,button]:hover:before:opacity-100`,`[a,button]:data-pressed:before:opacity-100`,`[a,button]:data-popup-open:before:opacity-100`),warning:Q(fb,`bg-warning-muted text-warning-foreground outline-ring-warning [a,button]:before:bg-[radial-gradient(138.15%_78.13%_at_52.05%_50%,var(--warning-muted)_0%,rgba(255,255,255,.5)_95%)] [a,button]:before:opacity-0`,`[a,button]:hover:before:opacity-100`,`[a,button]:data-pressed:before:opacity-100`,`[a,button]:data-popup-open:before:opacity-100`),info:Q(fb,`bg-info-muted text-info-foreground outline-ring-info [a,button]:before:bg-[radial-gradient(138.15%_78.13%_at_52.05%_50%,var(--info-muted)_0%,rgba(255,255,255,.5)_95%)] [a,button]:before:opacity-0`,`[a,button]:hover:before:opacity-100`,`[a,button]:data-pressed:before:opacity-100`,`[a,button]:data-popup-open:before:opacity-100`),light:Q(fb,`text-white before:bg-white/10 before:border-white/10 before:border before:backdrop-blur-md outline-ring-light`,`[a,button]:hover:before:bg-white/15 [a,button]:hover:before:border-white/15`,`[a,button]:data-pressed:before:bg-white/15 [a,button]:data-pressed:before:border-white/15`,`[a,button]:data-popup-open:before:bg-white/15 [a,button]:data-popup-open:before:border-white/15`,`data-active:before:bg-white/15 data-active:before:border-white/15`)},size:{xs:`h-4 w-fit gap-0.5 px-1.5 text-[.625rem] has-data-[icon=end]:pe-1.25 has-data-[icon=start]:ps-1.25 [&_svg:not([class*='size-'])]:size-2.5 [&_svg:not([class*='stroke-'])]:stroke-2`,sm:`h-5 w-fit gap-0.5 px-2 text-xs has-data-[icon=end]:pe-1.5 has-data-[icon=start]:ps-1.5 [&_svg:not([class*='size-'])]:size-3 [&_svg:not([class*='stroke-'])]:stroke-[1.85]`,md:`h-6 w-fit gap-0.75 px-2.5 text-xs has-data-[icon=end]:pe-1.75 has-data-[icon=start]:ps-1.75 [&_svg:not([class*='size-'])]:size-3.5 [&_svg:not([class*='stroke-'])]:stroke-[1.75]`,lg:`h-7 w-fit gap-1 px-3 text-sm has-data-[icon=end]:pe-2.25 has-data-[icon=start]:ps-2.25 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='stroke-'])]:stroke-[1.75]`,"icon-sm":`h-5 w-5 [&_svg:not([class*='size-'])]:size-3 [&_svg:not([class*='stroke-'])]:stroke-[1.85]`,"icon-md":`h-6 w-6 [&_svg:not([class*='size-'])]:size-3.5 [&_svg:not([class*='stroke-'])]:stroke-[1.75]`,"icon-lg":`h-7 w-7 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='stroke-'])]:stroke-[1.75]`}},defaultVariants:{variant:`primary`,size:`md`}});function mb({className:e,variant:t,size:n,render:r,...i}){let a=g.isValidElement(r)?r.props:void 0,o=g.isValidElement(r)&&(r.type===`a`||r.type===`button`)||i.onClick!=null||a?.href!=null||a?.onClick!=null||a?.tabIndex!=null;return db({defaultTagName:`span`,render:r,state:{variant:t,size:n},props:hr({"data-slot":`badge`,...o?vl():{},className:Q(pb({variant:t,size:n}),e)},i)})}var hb=g.forwardRef(function(e,t){let{render:n,className:r,disabled:i=!1,focusableWhenDisabled:a=!1,nativeButton:o=!0,style:s,...c}=e,{getButtonProps:l,buttonRef:u}=ji({disabled:i,focusableWhenDisabled:a,native:o});return kr(`button`,e,{state:{disabled:i},ref:[t,u],props:[c,l]})}),gb=g.createContext(null);function _b({className:e,variant:t,size:n,disabled:r,...i}){let a=g.useContext(gb),o=t??a?.variant,s=n??a?.size,c=r||a?.disabled;return(0,Y.jsx)(hb,{"data-slot":`button`,disabled:c,className:Q(Cl({variant:o,size:s}),e),...i})}function vb(e,t,n,r,i){return g.isValidElement(t)?g.cloneElement(t,{...i,...t.props,className:Q(n,t.props.className,r)}):g.createElement(e,{...i,className:Q(n,r)})}var yb=`[--card-radius:var(--radius-xl)]`,bb=`rounded-[calc(var(--card-radius)*4/3)]`,xb={none:`rounded-(--card-radius)`,solid:Q(bb,`bg-background-muted/60 p-2 backdrop-blur-xl dark:bg-background-subtle`),glass:Q(bb,`border border-white/15 bg-white/10 p-2 backdrop-blur-sm`)},Sb={none:`border`,solid:`border-border-muted border`,glass:``};function Cb({frame:e=!1,inset:t=!0,className:n,contentProps:r,render:i,children:a,...o}){let s=e===!0?`solid`:e===!1?`none`:e;return vb(`div`,i,Q(`group/card flex flex-col`,yb,xb[s]),n,{"data-slot":`card`,"data-frame":s,...t?{"data-inset":``}:{},...o,children:(0,Y.jsx)(`div`,{"data-slot":`card-content`,...r,className:Q(`bg-background flex min-h-0 flex-1 flex-col overflow-hidden rounded-(--card-radius)`,t&&`p-2`,Sb[s],r?.className),children:a})})}function wb({className:e,...t}){return(0,Y.jsx)(`div`,{"data-slot":`card-header`,className:Q(`flex flex-1 flex-col gap-1.5 p-6 group-data-inset/card:px-4`,e),...t})}function Tb({className:e,render:t,...n}){return vb(`h3`,t,`text-foreground-intense text-lg font-semibold`,e,{"data-slot":`card-title`,...n})}function Eb({controlled:e,default:t,name:n,state:r=`value`}){let{current:i}=g.useRef(e!==void 0),[a,o]=g.useState(t);return[i&&e!==void 0?e:a,g.useCallback(e=>{i||o(e)},[])]}function Db(e){return bi(e,`base-ui`)}var Ob=g.createContext(void 0);function kb(){let e=g.useContext(Ob);if(e===void 0)throw Error(S(63));return e}var Ab=`data-valid`,jb=`data-invalid`,Mb={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},Nb={disabled:!1,valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},Pb={valid(e){return e===null?null:e?{[Ab]:``}:{[jb]:``}}},Fb=`data-checked`,Ib=`data-unchecked`,Lb={...Pb,checked(e){return e?{[Fb]:``}:{[Ib]:``}}},Rb={invalid:void 0,name:void 0,validityData:{state:Mb,errors:[],error:``,value:``,initialValue:null},setValidityData:p,disabled:void 0,setTouched:p,setDirty:p,setFilled:p,setFocused:p,validationMode:`onSubmit`,shouldValidateOnChange:()=>!1,state:Nb,registerFieldControl:p,validation:{getValidationProps:(e,t=h)=>t,inputRef:{current:null},registeredInputs:new Map,registerInput:p,getInputControl:()=>null,commit:async()=>{},change:p}},zb=g.createContext(Rb);function Bb(e=!0){let t=g.useContext(zb);if(t.setValidityData===p&&!e)throw Error(S(28));return t}function Vb(e,t,n,r,i=!0,a){let{registerFieldControl:o}=Bb(),s=y(()=>Symbol());b(()=>{let c=s.current;if(!i){o(c,void 0);return}o(c,{controlRef:e,getValue:r,id:t,name:a,value:n})},[e,i,r,t,a,o,s,n]),b(()=>{let e=s.current;return()=>{o(e,void 0)}},[o,s])}var Hb=g.createContext({elementRef:{current:null},formRef:{current:{fields:new Map}},errors:{},clearErrors:p,validationMode:`onSubmit`,submitCountRef:{current:0}});function Ub(){return g.useContext(Hb)}var Wb=g.createContext({controlId:void 0,registerControlId:p,resetControlId:p,labelId:void 0,setLabelId:p,messageIds:[],setMessageIds:p,getDescriptionProps:e=>e});function Gb(){return g.useContext(Wb)}function Kb(e,t,n,r=!0,i){let[a,o]=g.useState(),s=Db(i?`${i}-label`:void 0),c=e??t??a;return b(()=>{let i=e||t||!r?void 0:qb(n.current,s);a!==i&&o(i)}),c}function qb(e,t){let n=Jb(e);if(n)return!n.id&&t&&(n.id=t),n.id||void 0}function Jb(e){if(!e)return;let t=e.parentElement;if(t&&t.tagName===`LABEL`)return t;let n=e.id;if(n){let t=e.nextElementSibling;if(t&&t.htmlFor===n)return t}let r=e.labels;return r&&r[0]}function Yb(e={}){let{id:t,enabled:n=!0}=e,{controlId:r,registerControlId:i,resetControlId:a}=Gb(),o=Db(),s=y(()=>Symbol()),c=g.useRef(!1),l=g.useRef(!1),u=G(()=>{c.current&&i!==p&&(c.current=!1,i(s.current,void 0))});return b(()=>{if(!n||i===p){u();return}let e;if(t!==void 0)l.current=!0,e=t;else if(l.current)e=o;else{a();return}if(e===void 0){u();return}c.current=!0,i(s.current,e)},[t,n,i,a,o,s,u]),b(()=>u,[u]),(n?r:void 0)??t??o}function Xb(e,t){let n=g.useRef(e),r=G(t);b(()=>{n.current!==e&&r(n.current),n.current=e},[e,r])}var Zb=g.forwardRef(function(e,t){let{checked:n,className:r,defaultChecked:i,"aria-labelledby":a,form:o,id:s,inputRef:c,name:l,nativeButton:u=!1,onCheckedChange:d,readOnly:f=!1,required:p=!1,disabled:m=!1,render:_,uncheckedValue:v,value:y,style:x,...S}=e,{clearErrors:C}=Ub(),{state:w,setTouched:T,setDirty:E,validityData:D,setFilled:O,setFocused:k,validationMode:A,disabled:j,name:M,validation:N}=Bb(),{labelId:P}=Gb(),F=j||m,I=M??l,L=g.useRef(null),R=rr(L,c,N.inputRef),z=g.useRef(null),B=Db(),V=Yb({id:s}),H=u?void 0:V,[ee,U]=Eb({controlled:n,default:!!i,name:`Switch`,state:`checked`});Vb(z,B,ee,void 0,!F,l),b(()=>{O(ee)},[ee,O]),Xb(ee,()=>{C(I),E(ee!==D.initialValue),N.change(ee)});let{getButtonProps:te,buttonRef:W}=ji({disabled:F,native:u}),ne=Kb(a,P,L,!u,H),G={id:u?V:B,role:`switch`,"aria-checked":ee,"aria-readonly":f||void 0,"aria-required":p||void 0,"aria-labelledby":ne,onFocus(){F||k(!0)},onBlur(){let e=L.current;e&&!F&&(T(!0),k(!1),A===`onBlur`&&N.commit(e.checked))},onClick(e){if(f||F)return;e.preventDefault();let t=L.current;t&&Ai(t,e)}},K={...N.getValidationProps(F),checked:ee,disabled:F,form:o,id:H,name:I,required:p,style:I?tr:er,tabIndex:-1,type:`checkbox`,"aria-hidden":!0,ref:R,onChange(e){if(e.nativeEvent.defaultPrevented)return;if(f){e.preventDefault();return}let t=e.currentTarget.checked,n=qi(Ii,e.nativeEvent);d?.(t,n),!n.isCanceled&&U(t)},onClick(e){e.stopPropagation()},onFocus(){z.current?.focus()},...y===void 0?h:{value:y}},q=g.useMemo(()=>({...w,checked:ee,disabled:F,readOnly:f,required:p}),[w,ee,F,f,p]),re=kr(`span`,e,{state:q,ref:[t,z,W],props:[G,S,te,e=>N.getValidationProps(F,e)],stateAttributesMapping:Lb});return(0,Y.jsxs)(Ob.Provider,{value:q,children:[re,!ee&&I&&v!==void 0&&(0,Y.jsx)(`input`,{type:`hidden`,form:o,name:I,value:v,disabled:F}),(0,Y.jsx)(`input`,{...K,suppressHydrationWarning:!0})]})}),Qb=g.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e;return kr(`span`,e,{state:kb(),ref:t,stateAttributesMapping:Lb,props:a})}),$b={sm:{root:`h-4 w-7.5`,thumb:`size-3`,thumbWidthKeyframes:[`0.75rem`,`1.25rem`,`0.75rem`],thumbXKeyframes:[0,`0.3125rem`,`0.875rem`],check:`size-2.5`},md:{root:`h-5 w-9.5`,thumb:`size-4`,thumbWidthKeyframes:[`1rem`,`1.6875rem`,`1rem`],thumbXKeyframes:[0,`0.4375rem`,`1.125rem`],check:`size-3`},lg:{root:`h-6 w-11.5`,thumb:`size-5`,thumbWidthKeyframes:[`1.25rem`,`2.125rem`,`1.25rem`],thumbXKeyframes:[0,`0.5rem`,`1.375rem`],check:`size-4`}},ex={duration:.25,ease:[.4,0,.2,1]};function tx(e,t){return t===1?[...e]:e.map(e=>typeof e==`number`?-e:`-${e}`)}function nx({renderProps:e,state:t,dirSign:n,sizeConfig:r,reduced:i}){let{checked:a}=t,{ref:o,onDrag:s,onDragStart:c,onDragEnd:l,onAnimationStart:u,onAnimationEnd:d,...f}=e,p=g.useMemo(()=>{let e=tx(r.thumbXKeyframes,n);return a?e:e.reverse()},[a,n,r]),m=p[p.length-1],[h,_]=Ey(),v=_l(o,h),y=g.useRef(a);return g.useEffect(()=>{let e=y.current!==a;y.current=a,e&&!i?_(h.current,{x:p,width:r.thumbWidthKeyframes},ex):_(h.current,{x:m},{duration:0})},[a,r,_,h,i,p,m]),(0,Y.jsx)(Dy.span,{...f,ref:v,initial:{x:m},children:(0,Y.jsx)(Dy.svg,{className:Q(`text-foreground-intense`,r.check),xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 12 12`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,style:{strokeDasharray:12},initial:!1,animate:{strokeDashoffset:a?0:12},transition:i?{duration:0}:{strokeDashoffset:{duration:a?.3:0,ease:`easeOut`,delay:a?.25:0}},children:(0,Y.jsx)(`path`,{d:`M3 6l2 2 4-4`})})})}function rx({className:e,size:t=`md`,...n}){let r=xs()===`rtl`?-1:1,i=$b[t],a=jy(),o=n[`aria-invalid`],s=o===!0||o===`true`;return(0,Y.jsx)(U_,{features:Jv,strict:!0,children:(0,Y.jsx)(Zb,{"data-slot":`switch`,className:Q(`bg-background-strong outline-ring flex shrink-0 rounded-full border border-transparent p-px outline-offset-1`,i.root,`transition-background duration-200 motion-reduce:transition-none`,`data-checked:bg-primary data-checked:outline-ring-primary`,`data-disabled:not-data-checked:border-border-strong data-disabled:opacity-disabled data-disabled:cursor-not-allowed data-disabled:not-data-checked:border-dashed`,`data-invalid:border-error data-invalid:not-data-checked:bg-error-subtle data-invalid:outline-ring-error`,e),...n,...s?{"data-invalid":``}:{},children:(0,Y.jsx)(Qb,{"data-slot":`switch-thumb`,className:Q(`group flex items-center justify-center rounded-full bg-white shadow-2xs`,i.thumb,`data-checked:bg-primary-foreground`),render:(e,t)=>(0,Y.jsx)(nx,{renderProps:e,state:t,dirSign:r,sizeConfig:i,reduced:a})})})})}function ix(...e){return e.filter(Boolean).join(` `)}var ax={ok:`bg-success`,warn:`bg-warning`,error:`bg-error`,off:`bg-foreground-subtle`},ox={ok:`text-success`,warn:`text-warning`,error:`text-error`,off:`text-foreground-muted`};function sx(e){if(e==null||e===0||e===``)return`—`;let t=new Date(e);return Number.isNaN(t.getTime())?String(e):t.toLocaleString(`zh-CN`,{hour12:!1})}function cx(e){return e===`connected`?`ok`:e===`error`?`error`:e===`connecting`?`warn`:`off`}function lx(e){return{connected:`已连接`,connecting:`连接中`,error:`被关闭`,off:`未启用`}[e]??e}function ux(e,t){return t?e===`listening`?`ok`:e===`error`?`error`:`warn`:`off`}function dx(e,t){return t?e===`listening`?`正在监听`:e===`error`?`启动失败`:e:`未启用`}function fx(e){return{healthy:`运行中`,starting:`启动中`,restarting:`正在重启`,error:`异常`,stopped:`已停止`}[e]??e}function px({tone:e}){return(0,Y.jsx)(`span`,{className:ix(`inline-block size-2 shrink-0 rounded-full`,ax[e]),"aria-hidden":!0})}function mx({label:e,tone:t,mono:n,children:r}){return(0,Y.jsxs)(`div`,{className:`flex items-baseline justify-between gap-4 border-b border-border-muted py-2 last:border-b-0`,children:[(0,Y.jsx)(`dt`,{className:`shrink-0 text-sm text-foreground-muted`,children:e}),(0,Y.jsx)(`dd`,{className:ix(`min-w-0 text-right text-sm break-all`,n?`font-mono text-xs text-foreground-strong`:`text-foreground`,t&&ox[t]),children:r})]})}function hx({children:e}){return(0,Y.jsx)(`dl`,{className:`mt-1`,children:e})}function gx({tone:e,text:t,detail:n}){return(0,Y.jsxs)(`span`,{className:`inline-flex flex-wrap items-center justify-end gap-x-2`,children:[(0,Y.jsx)(px,{tone:e}),(0,Y.jsx)(`span`,{children:t}),n?(0,Y.jsx)(`span`,{className:`text-xs text-foreground-muted`,children:n}):null]})}function _x({on:e,what:t,label:n,className:r,disabled:i,onClick:a}){let o=n??(e?`隐藏`:`显示`);return(0,Y.jsx)(_b,{variant:`ghost`,size:`sm`,className:r,"aria-label":`${o}${t}`,disabled:i,onClick:a,children:o})}function vx({status:e,busy:t,onToggle:n,onOpenLan:r}){let i=e.tunnel,a=e.enabled,[o,s]=g.useState(!1);return(0,Y.jsxs)(Cb,{frame:`solid`,children:[(0,Y.jsx)(wb,{children:(0,Y.jsxs)(Tb,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{children:`连接状态`}),(0,Y.jsx)(mb,{variant:a?`success`:`secondary`,size:`sm`,children:a?`已启用`:`已停用`})]})}),(0,Y.jsxs)(`label`,{className:`flex items-center justify-between gap-4 border-b border-border-muted py-3`,children:[(0,Y.jsx)(`span`,{className:`text-sm text-foreground-muted`,children:`远程控制`}),(0,Y.jsx)(rx,{size:`md`,checked:a,disabled:t!==``,onCheckedChange:e=>n(e),"aria-label":`远程控制`})]}),(0,Y.jsxs)(hx,{children:[(0,Y.jsx)(mx,{label:`插件版本`,mono:!0,children:e.appVersion||`—`}),(0,Y.jsx)(mx,{label:`设备名`,children:e.name||`—`}),(0,Y.jsx)(mx,{label:`实例 ID`,mono:!0,children:e.instanceId||`—`}),(0,Y.jsxs)(mx,{label:`平台`,children:[e.platform,` `,e.osVersion,` · `,e.arch]}),(0,Y.jsx)(mx,{label:`中转地址`,children:(0,Y.jsxs)(`span`,{className:`inline-flex min-w-0 flex-wrap items-center justify-end gap-x-2 gap-y-1`,children:[o?(0,Y.jsx)(`span`,{className:`min-w-0 font-mono text-xs text-foreground-strong`,children:e.relayUrl||`—`}):(0,Y.jsx)(`span`,{className:`text-xs text-foreground-subtle`,children:`已隐藏`}),(0,Y.jsx)(_x,{on:o,what:`中转地址`,label:o?`隐藏`:`显示`,onClick:()=>s(e=>!e)})]})}),(0,Y.jsx)(mx,{label:`中转隧道`,tone:cx(i.state),...i.state===`error`&&i.error?{"data-error":i.error}:{},children:(0,Y.jsx)(gx,{tone:cx(i.state),text:lx(i.state),...i.error?{detail:i.error}:{}})}),(0,Y.jsx)(mx,{label:`局域网直连`,children:(0,Y.jsx)(_b,{variant:`outline`,size:`sm`,disabled:t!==``,onClick:r,"aria-label":`查看局域网直连`,children:`查看`})}),(0,Y.jsx)(mx,{label:`旁挂进程`,children:(0,Y.jsx)(gx,{tone:e.sidecar.state===`healthy`?`ok`:`warn`,text:fx(e.sidecar.state),...e.sidecar.restarts>0?{detail:`已重启 ${e.sidecar.restarts} 次`}:{}})}),(0,Y.jsx)(mx,{label:`会话镜像`,children:(0,Y.jsx)(gx,{tone:e.mirror.ok?`ok`:e.mirror.error?`error`:`warn`,text:e.mirror.ok?`推送正常`:`未推送`,detail:sx(e.mirror.pushedAt)})})]}),(0,Y.jsx)(yx,{status:e})]})}function yx({status:e}){let t=e.tunnel.admissionHint;return t?t===`register-secret`?(0,Y.jsxs)(ob,{variant:`warning`,className:`mt-3`,children:[(0,Y.jsx)(cb,{}),(0,Y.jsx)(lb,{children:`中转要求注册密钥`}),(0,Y.jsx)(ub,{children:`中转服务器开了准入,当前连接被拒绝。向中转的部署者索取注册密钥,填进上面的「中转配置 → 注册密钥」并保存。`})]}):(0,Y.jsxs)(ob,{variant:`warning`,className:`mt-3`,children:[(0,Y.jsx)(cb,{}),(0,Y.jsx)(lb,{children:`这台设备不被中转接受`}),(0,Y.jsx)(ub,{children:`中转开了实例白名单,而上面的实例 ID 不在名单里。把这个实例 ID 交给中转的部署者,让他加进 instances.json。`})]}):null}var bx=g.createContext(void 0);function xx(e){let t=g.useContext(bx);if(!e&&t===void 0)throw Error(S(27));return t}var Sx=g.forwardRef(function(e,t){let{render:n,className:r,style:i,forceRender:a=!1,...o}=e,s=xx(),c=s.useState(`open`),l=s.useState(`nested`),u=s.useState(`mounted`);return kr(`div`,e,{state:{open:c,transitionStatus:s.useState(`transitionStatus`)},ref:[s.context.backdropRef,t],stateAttributesMapping:kt,props:[{role:`presentation`,hidden:!u,style:{userSelect:`none`,WebkitUserSelect:`none`}},o],enabled:a||!l})}),Cx=g.forwardRef(function(e,t){let{render:n,className:r,style:i,disabled:a=!1,nativeButton:o=!0,...s}=e,c=xx(),l=c.useState(`open`),{getButtonProps:u,buttonRef:d}=ji({disabled:a,native:o}),f={disabled:a};function p(e){l&&c.setOpen(!1,qi(Bi,e.nativeEvent))}return kr(`button`,e,{state:f,ref:[t,d],props:[{onClick:p},s,u]})}),wx=g.createContext(void 0);function Tx(){let e=g.useContext(wx);if(e===void 0)throw Error(S(26));return e}var Ex=`ArrowUp`,Dx=`ArrowDown`,Ox=`ArrowLeft`,kx=`ArrowRight`,Ax=new Set([Ex,Dx,Ox,kx,`Home`,`End`]),jx=`Shift`,Mx=[jx,`Control`,`Alt`,`Meta`];function Nx(e){return de(e)&&e.tagName===`INPUT`}function Px(e){return!!(Nx(e)&&e.selectionStart!=null||de(e)&&e.tagName===`TEXTAREA`)}function Fx(e,t,n,r){if(!e||!t||!t.scrollTo)return;let i=e.scrollLeft,a=e.scrollTop,o=e.clientWidth<e.scrollWidth,s=e.clientHeight<e.scrollHeight;if(o&&r!==`vertical`){let r=Ix(e,t,`left`),a=Lx(e),o=Lx(t);n===`ltr`&&(r+t.offsetWidth+o.scrollMarginRight>e.scrollLeft+e.clientWidth-a.scrollPaddingRight?i=r+t.offsetWidth+o.scrollMarginRight-e.clientWidth+a.scrollPaddingRight:r-o.scrollMarginLeft<e.scrollLeft+a.scrollPaddingLeft&&(i=r-o.scrollMarginLeft-a.scrollPaddingLeft)),n===`rtl`&&(r-o.scrollMarginLeft<e.scrollLeft+a.scrollPaddingLeft?i=r-o.scrollMarginLeft-a.scrollPaddingLeft:r+t.offsetWidth+o.scrollMarginRight>e.scrollLeft+e.clientWidth-a.scrollPaddingRight&&(i=r+t.offsetWidth+o.scrollMarginRight-e.clientWidth+a.scrollPaddingRight))}if(s&&r!==`horizontal`){let n=Ix(e,t,`top`),r=Lx(e),i=Lx(t);n-i.scrollMarginTop<e.scrollTop+r.scrollPaddingTop?a=n-i.scrollMarginTop-r.scrollPaddingTop:n+t.offsetHeight+i.scrollMarginBottom>e.scrollTop+e.clientHeight-r.scrollPaddingBottom&&(a=n+t.offsetHeight+i.scrollMarginBottom-e.clientHeight+r.scrollPaddingBottom)}e.scrollTo({left:i,top:a,behavior:`auto`})}function Ix(e,t,n){let r=n===`left`?`offsetLeft`:`offsetTop`,i=0;for(;t.offsetParent&&(i+=t[r],t.offsetParent!==e);)t=t.offsetParent;return i}function Lx(e){let t=getComputedStyle(e);return{scrollMarginTop:parseFloat(t.scrollMarginTop)||0,scrollMarginRight:parseFloat(t.scrollMarginRight)||0,scrollMarginBottom:parseFloat(t.scrollMarginBottom)||0,scrollMarginLeft:parseFloat(t.scrollMarginLeft)||0,scrollPaddingTop:parseFloat(t.scrollPaddingTop)||0,scrollPaddingRight:parseFloat(t.scrollPaddingRight)||0,scrollPaddingBottom:parseFloat(t.scrollPaddingBottom)||0,scrollPaddingLeft:parseFloat(t.scrollPaddingLeft)||0}}var Rx=`--nested-dialogs`,zx=`data-nested-dialog-open`,Bx={...Ot,...ht,nestedDialogOpen(e){return e?{[zx]:``}:null}},Vx=g.forwardRef(function(e,t){let{render:n,className:r,style:i,finalFocus:a,initialFocus:o,...s}=e,c=xx(),l=c.useState(`descriptionElementId`),u=c.useState(`disablePointerDismissal`),d=c.useState(`floatingRootContext`),f=c.useState(`popupProps`),p=c.useState(`modal`),m=c.useState(`mounted`),h=c.useState(`nested`),g=c.useState(`nestedOpenDialogCount`),_=c.useState(`open`),v=c.useState(`openMethod`),y=c.useState(`titleElementId`),b=c.useState(`transitionStatus`),x=c.useState(`role`),S=d.useState(`floatingId`);Tx(),Kr({open:_,ref:c.context.popupRef,onComplete(){_&&c.context.onOpenChangeComplete?.(!0)}});let C=o===void 0?Ko(c.context.popupRef):o,w=g>0,T=c.useStateSetter(`popupElement`),E=kr(`div`,e,{state:{open:_,nested:h,transitionStatus:b,nestedDialogOpen:w},props:[f,{id:S,"aria-labelledby":y,"aria-describedby":l,role:x,...Go,hidden:!m,onKeyDown(e){Ax.has(e.key)&&e.stopPropagation()},style:{[Rx]:g}},s],ref:[t,c.context.popupRef,T],stateAttributesMapping:Bx});return(0,Y.jsx)(ja,{context:d,openInteractionType:v,disabled:!m,closeOnFocusOut:!u,initialFocus:C,returnFocus:a,modal:p!==!1,restoreFocus:`popup`,children:E})}),Hx=g.forwardRef(function(e,t){let{cutout:n,...r}=e,i;if(n){let e=n.getBoundingClientRect();i=`polygon(0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,${e.left}px ${e.top}px,${e.left}px ${e.bottom}px,${e.right}px ${e.bottom}px,${e.right}px ${e.top}px,${e.left}px ${e.top}px)`}return(0,Y.jsx)(`div`,{ref:t,role:`presentation`,"data-base-ui-inert":``,...r,style:{position:`fixed`,inset:0,userSelect:`none`,WebkitUserSelect:`none`,clipPath:i}})}),Ux=g.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e,i=xx(),a=i.useState(`mounted`),o=i.useState(`modal`),s=i.useState(`open`);return a||n?(0,Y.jsx)(wx.Provider,{value:n,children:(0,Y.jsxs)($i,{ref:t,...r,children:[a&&o===!0&&(0,Y.jsx)(Hx,{ref:i.context.internalBackdropRef,inert:Rr(!s)}),e.children]})}):null}),Wx={},Gx={},Kx=``;function qx(e,t){return pe(e)?e:t}function Jx(e,t,n){return/hidden|clip/.test(e.getComputedStyle(qx(t,n)).overflowY)}function Yx(e){if(typeof document>`u`)return!1;let t=je(e);return J(t).innerWidth-t.documentElement.clientWidth>0}function Xx(e){if(!(typeof CSS<`u`&&CSS.supports&&CSS.supports(`scrollbar-gutter`,`stable`))||typeof document>`u`)return!1;let t=je(e),n=t.documentElement,r=t.body,i=qx(n,r),a=i.style.overflowY,o=n.style.scrollbarGutter;n.style.scrollbarGutter=`stable`,i.style.overflowY=`scroll`;let s=i.offsetWidth;i.style.overflowY=`hidden`;let c=i.offsetWidth;return i.style.overflowY=a,n.style.scrollbarGutter=o,s===c}function Zx(e){let t=je(e),n=t.documentElement,r=t.body,i=qx(n,r),a={overflowY:i.style.overflowY,overflowX:i.style.overflowX};return Object.assign(i.style,{overflowY:`hidden`,overflowX:`hidden`}),()=>{Object.assign(i.style,a)}}function Qx(e){let t=je(e),n=t.documentElement,r=t.body,i=J(n),a=0,o=0,s=!1,c=Fe.create();if(et&&(i.visualViewport?.scale??1)!==1)return()=>{};function l(){let t=i.getComputedStyle(n),c=i.getComputedStyle(r),l=(t.scrollbarGutter||``).includes(`both-edges`)?`stable both-edges`:`stable`;a=n.scrollTop,o=n.scrollLeft,Wx={scrollbarGutter:n.style.scrollbarGutter,overflowY:n.style.overflowY,overflowX:n.style.overflowX},Kx=n.style.scrollBehavior,Gx={position:r.style.position,height:r.style.height,width:r.style.width,boxSizing:r.style.boxSizing,overflowY:r.style.overflowY,overflowX:r.style.overflowX,scrollBehavior:r.style.scrollBehavior};let u=n.scrollHeight>n.clientHeight,d=n.scrollWidth>n.clientWidth,f=t.overflowY===`scroll`||c.overflowY===`scroll`,p=t.overflowX===`scroll`||c.overflowX===`scroll`,m=Math.max(0,i.innerWidth-r.clientWidth),h=Math.max(0,i.innerHeight-r.clientHeight),g=parseFloat(c.marginTop)+parseFloat(c.marginBottom),_=parseFloat(c.marginLeft)+parseFloat(c.marginRight),v=qx(n,r);if(s=Xx(e),s){n.style.scrollbarGutter=l,v.style.overflowY=`hidden`,v.style.overflowX=`hidden`;return}Object.assign(n.style,{scrollbarGutter:l,overflowY:`hidden`,overflowX:`hidden`}),(u||f)&&(n.style.overflowY=`scroll`),(d||p)&&(n.style.overflowX=`scroll`),Object.assign(r.style,{position:`relative`,height:g||h?`calc(100dvh - ${g+h}px)`:`100dvh`,width:_||m?`calc(100vw - ${_+m}px)`:`100vw`,boxSizing:`border-box`,overflowY:`hidden`,overflowX:`hidden`,scrollBehavior:`unset`}),r.scrollTop=a,r.scrollLeft=o,n.setAttribute(`data-base-ui-scroll-locked`,``),n.style.scrollBehavior=`unset`}function u(){Object.assign(n.style,Wx),Object.assign(r.style,Gx),s||(n.scrollTop=a,n.scrollLeft=o,n.removeAttribute(`data-base-ui-scroll-locked`),n.style.scrollBehavior=Kx)}function d(){u(),c.request(l)}l();let f=Me(i,`resize`,d);return()=>{c.cancel(),u(),typeof i.removeEventListener==`function`&&f()}}var $x=new class{lockCount=0;restore=null;timeoutLock=Re.create();timeoutUnlock=Re.create();acquire(e){return this.lockCount+=1,this.lockCount===1&&this.restore===null&&this.timeoutLock.start(0,()=>this.lock(e)),this.release}release=()=>{--this.lockCount,this.lockCount===0&&this.restore&&this.timeoutUnlock.start(0,this.unlock)};unlock=()=>{this.lockCount===0&&this.restore&&(this.restore?.(),this.restore=null)};lock(e){if(this.lockCount===0||this.restore!==null)return;let t=je(e),n=t.documentElement,r=t.body,i=J(n);if(Jx(i,n,r)){let t=new i.MutationObserver(()=>{Jx(i,n,r)||(t.disconnect(),this.restore=null,this.lock(e))}),a={attributes:!0};t.observe(n,a),t.observe(r,a),this.restore=()=>t.disconnect();return}let a=Ye||!Yx(e);this.restore=a?Zx(e):Qx(e)}};function eS(e=!0,t=null){b(()=>{if(e)return $x.acquire(t)},[e,t])}function tS({store:e,parentContext:t,isDrawer:n}){let r=e.useState(`open`),i=e.useState(`disablePointerDismissal`),a=e.useState(`modal`),o=e.useState(`popupElement`),s=e.useState(`floatingRootContext`),[c,l]=g.useState(0),[u,d]=g.useState(0),f=c===0,p=Fa(s,{outsidePressEvent(){return e.context.internalBackdropRef.current||e.context.backdropRef.current?`intentional`:{mouse:a===`trap-focus`?`sloppy`:`intentional`,touch:`sloppy`}},outsidePress(t){if(!e.context.outsidePressEnabledRef.current||`button`in t&&t.button!==0)return!1;if(`touches`in t){if(t.type===`touchend`){if(t.changedTouches.length!==1||t.touches.length!==0)return!1}else if(t.touches.length!==1)return!1}let n=at(t);if(f&&!i){if(a){let t=e.context.internalBackdropRef.current,r=e.context.backdropRef.current;return t||r?t===n||r===n||it(n,o)&&!n?.hasAttribute(`data-base-ui-portal`):!0}return!0}return!1},escapeKey:f});return eS(r&&a===!0,o),e.useContextCallback(`onNestedDialogOpen`,(e,t)=>{l(e),d(t)}),b(()=>(t?.onNestedDialogOpen&&(r?t.onNestedDialogOpen(c+1,u+ +!!n):t.onNestedDialogOpen(0,0)),()=>{t?.onNestedDialogOpen&&r&&t.onNestedDialogOpen(0,0)}),[n,r,c,u,t]),Qo(e,{activeTriggerProps:p.reference,inactiveTriggerProps:p.trigger,popupProps:p.floating,nestedOpenDialogCount:c,nestedOpenDrawerCount:u}),null}var nS=class extends re{setState(e){}update(e){}set(e,t){}notifyAll(){}},rS={...ss,modal:e=>e.modal,nested:e=>e.nested,nestedOpenDialogCount:e=>e.nestedOpenDialogCount,nestedOpenDrawerCount:e=>e.nestedOpenDrawerCount,disablePointerDismissal:e=>e.disablePointerDismissal,openMethod:e=>e.openMethod,descriptionElementId:e=>e.descriptionElementId,titleElementId:e=>e.titleElementId,viewportElement:e=>e.viewportElement,role:e=>e.role},iS=class extends re{constructor(e,t,n){let r=new es,i=oS(e,r,t,n);super(i,sS(r),rS)}setOpen=(e,t)=>{t.preventUnmountOnClose=()=>{this.set(`preventUnmountingOnClose`,!0)},!e&&t.trigger==null&&this.state.activeTriggerId!=null&&(t.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(e,t),!t.isCanceled&&(this.state.floatingRootContext.dispatchOpenChange(e,t),this.update(Yo(this.state,e,t.trigger)))}};function aS(){let e=new es;return new nS(Object.freeze(oS(void 0,e)),Object.freeze(sS(e)),rS)}function oS(e,t,n,r=!1){return{...ts(t,n,r),modal:!0,disablePointerDismissal:!1,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,nestedOpenDrawerCount:0,role:`dialog`,...e}}function sS(e){return{popupRef:g.createRef(),backdropRef:g.createRef(),internalBackdropRef:g.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:e,onOpenChange:void 0,onOpenChangeComplete:void 0}}function cS(e,t){let{children:n,open:r,defaultOpen:i=!1,onOpenChange:a,onOpenChangeComplete:o,disablePointerDismissal:s=!1,modal:c=!0,actionsRef:l,handle:u,triggerId:d,defaultTriggerId:f=null}=t,p=e===`drawer`,m=e===`alert-dialog`,h=m?!0:c,_=m||s,v=m?`alertdialog`:`dialog`,y=xx(!0),b={modal:h,disablePointerDismissal:_,nested:y!=null,role:v},x=qo((e,t)=>new iS({open:i,openProp:r,activeTriggerId:f,triggerIdProp:d,...b},e,t),!0);x.useControlledProp(`openProp`,r),x.useControlledProp(`triggerIdProp`,d),x.useSyncedValues(b),x.useContextCallback(`onOpenChange`,a),x.useContextCallback(`onOpenChangeComplete`,o);let S=x.useState(`open`),C=x.useState(`mounted`),w=x.useState(`payload`);$o(x,S),Xo(x);let{forceUnmount:T}=Zo(S,x);g.useImperativeHandle(l,()=>({unmount:T,close:()=>x.setOpen(!1,qi(Gi))}),[T,x]);let E=S||C;return(0,Y.jsxs)(bx.Provider,{value:x,children:[u&&(0,Y.jsx)(Jo,{handle:u,store:x}),E&&(0,Y.jsx)(tS,{store:x,parentContext:y?.context,isDrawer:p}),typeof n==`function`?n({payload:w}):n]})}var lS=F(function(e){return cS(`dialog`,e)}),uS=g.forwardRef(function(e,t){let{render:n,className:r,style:i,children:a,...o}=e,s=Tx(),c=xx(),l=c.useState(`open`),u=c.useState(`nested`),d=c.useState(`transitionStatus`),f=c.useState(`nestedOpenDialogCount`),p=c.useState(`mounted`),m=c.useStateSetter(`viewportElement`);return kr(`div`,e,{enabled:s||p,state:{open:l,nested:u,transitionStatus:d,nestedDialogOpen:f>0},ref:[t,m],stateAttributesMapping:Bx,props:[{role:`presentation`,hidden:!p,style:{pointerEvents:l?void 0:`none`},children:a},o]})}),dS=g.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,...o}=e,s=xx(),c=Db(a);return s.useSyncedValueWithCleanup(`titleElementId`,c),kr(`h2`,e,{ref:t,props:[{id:c},o]})});function fS(e){let t=g.useRef(``),n=g.useCallback(n=>{n.defaultPrevented||(t.current=n.pointerType,e(n,n.pointerType))},[e]);return{onClick:g.useCallback(n=>{if(n.detail===0){e(n,`keyboard`);return}`pointerType`in n?e(n,n.pointerType):e(n,t.current),t.current=``},[e]),onPointerDown:n}}function pS(e,t){let{onClick:n,onPointerDown:r}=fS(G((n,r)=>{(typeof e==`function`?e():e)||t(r||(Ye?`touch`:``))}));return g.useMemo(()=>({onClick:n,onPointerDown:r}),[n,r])}function mS(e){let[t,n]=g.useState(null),r=pS(e,n);return Xb(e,t=>{t&&!e&&n(null)}),g.useMemo(()=>({openMethod:t,triggerProps:r}),[t,r])}var hS=class extends Bo{constructor(){super(aS(),`Dialog`,!1)}open(e){this.openByTrigger(e)}openWithPayload(e){let t=this.attachedStore;t!==null&&(t.set(`payload`,e),t.setOpen(!0,qi(Gi)))}close(){this.closePopup()}get isOpen(){return this.attachedStore?.select(`open`)??!1}};function gS(){return new hS}var _S=[`container`,`keepMounted`];function vS(e){let{portalProps:t,...n}=e,r={...t},i={};for(let e of Object.keys(n)){let t=n[e];_S.includes(e)?t!==void 0&&(r[e]=t):i[e]=t}return{portal:r,popup:i}}var yS=Object.assign(function(e){return(0,Y.jsx)(lS,{...e})},{createHandle:gS});function bS({className:e,children:t,closeButton:n=!0,closeLabel:r=`Close`,backdrop:i=!0,frame:a=!0,backdropProps:o,viewportProps:s,...c}){let l=a&&i,{portal:u,popup:d}=vS(c);return(0,Y.jsxs)(Ux,{...u,children:[i&&(0,Y.jsx)(Sx,{"data-slot":`dialog-backdrop`,...o,className:Q(`fixed inset-0 z-50 bg-black/30 backdrop-blur-sm supports-[-webkit-touch-callout:none]:absolute`,`motion-safe:transition-opacity motion-safe:duration-250 motion-safe:ease-out`,`data-ending-style:motion-safe:opacity-0 data-starting-style:motion-safe:opacity-0`,o?.className)}),(0,Y.jsx)(uS,{"data-slot":`dialog-viewport`,...s,className:Q(`fixed inset-0 z-50 flex items-center justify-center overflow-hidden p-4`,s?.className),children:(0,Y.jsx)(Vx,{"data-slot":`dialog-popup`,...l?{"data-frame":``}:{},className:Q(`group/dialog-popup relative flex max-h-full min-h-0 w-150 max-w-full flex-col`,`rounded-2xl border`,l?`border-white/15 bg-white/10 p-1.5 backdrop-blur-sm`:`bg-background border-border-overlay`,!l&&`shadow-2xl`,`isolate transform-gpu outline-none`,`motion-safe:transition-[opacity,scale] motion-safe:duration-250 motion-safe:ease-[cubic-bezier(0.175,0.885,0.32,1.5)]`,`data-starting-style:motion-safe:scale-95 data-starting-style:motion-safe:opacity-0`,`data-ending-style:motion-safe:scale-95 data-ending-style:motion-safe:opacity-0 data-ending-style:motion-safe:duration-100 data-ending-style:motion-safe:ease-out`,`data-nested-dialog-open:pointer-events-none data-nested-dialog-open:scale-95 data-nested-dialog-open:opacity-0`,e),...d,children:(0,Y.jsxs)(`div`,{"data-slot":`dialog-content`,className:Q(`relative flex min-h-0 flex-col overflow-hidden not-has-[>[data-slot=dialog-footer]]:pb-6 not-has-[>[data-slot=dialog-header]]:pt-6 [&>[data-slot=dialog-header]+[data-slot=dialog-footer]]:pt-0`,l&&`bg-background rounded-[calc(var(--radius-2xl)*5/6)]`),children:[t,n&&(0,Y.jsx)(Cx,{"aria-label":r,"data-slot":`dialog-close-button`,className:Q(Cl({variant:`outline`,size:`icon-sm`}),`absolute inset-e-3 top-3 z-10`),children:(0,Y.jsx)(TS,{})})]})})})]})}function xS({className:e,...t}){return(0,Y.jsx)(`div`,{"data-slot":`dialog-header`,className:Q(`flex shrink-0 flex-col gap-2 p-6`,e),...t})}function SS({className:e,...t}){return(0,Y.jsx)(dS,{"data-slot":`dialog-title`,className:Q(`text-foreground-intense text-2xl font-semibold`,e),...t})}function CS({className:e,...t}){return(0,Y.jsx)(`div`,{"data-slot":`dialog-body`,className:Q(`min-h-0 flex-1 px-6`,e),...t})}function wS({className:e,...t}){return(0,Y.jsx)(`div`,{"data-slot":`dialog-footer`,className:Q(`flex flex-col-reverse gap-2 p-6 sm:flex-row sm:justify-end`,e),...t})}function TS(e){return(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,...e,children:(0,Y.jsx)(`path`,{d:`M11.594 3.594c.225-.225.588-.225.813 0s.225.588 0 .812L8.813 8l3.594 3.594c.225.225.225.588 0 .813s-.588.225-.812 0L8 8.812l-3.594 3.594c-.225.225-.588.225-.812 0s-.225-.588 0-.812L7.188 8 3.594 4.406c-.225-.225-.225-.588 0-.812s.588-.225.813 0L8 7.187l3.594-3.594z`})})}var ES=`data:image/jpeg;base64,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`,DS=`AI-HUB 壹号群二维码:用微信或企业微信扫码加入`;function OS(){return(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,className:`stroke-0`,fill:`currentColor`,"aria-hidden":`true`,children:(0,Y.jsx)(`path`,{d:`M8.691 2.188C3.891 2.188 0 5.476 0 9.53c0 2.212 1.17 4.203 3.002 5.55a.59.59 0 0 1 .213.665l-.39 1.48c-.019.07-.048.141-.048.213 0 .163.13.295.29.295a.326.326 0 0 0 .167-.054l1.903-1.114a.864.864 0 0 1 .717-.098 10.16 10.16 0 0 0 2.837.403c.276 0 .543-.027.811-.05-.857-2.578.157-4.972 1.932-6.446 1.703-1.415 3.882-1.98 5.853-1.838-.576-3.583-4.196-6.348-8.596-6.348zM5.785 5.991c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 0 1-1.162 1.178A1.17 1.17 0 0 1 4.623 7.17c0-.651.52-1.18 1.162-1.18zm5.813 0c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 0 1-1.162 1.178 1.17 1.17 0 0 1-1.162-1.178c0-.651.52-1.18 1.162-1.18zm5.34 2.867c-1.797-.052-3.746.512-5.28 1.786-1.72 1.428-2.687 3.72-1.78 6.22.942 2.453 3.666 4.229 6.884 4.229.826 0 1.622-.12 2.361-.336a.722.722 0 0 1 .598.082l1.584.926a.272.272 0 0 0 .14.047c.134 0 .24-.111.24-.247 0-.06-.023-.12-.038-.177l-.327-1.233a.582.582 0 0 1-.023-.156.49.49 0 0 1 .201-.398C23.024 18.48 24 16.82 24 14.98c0-3.21-2.931-5.837-6.656-6.088V8.89c-.135-.01-.27-.027-.407-.03zm-2.53 3.274c.535 0 .969.44.969.982a.976.976 0 0 1-.969.983.976.976 0 0 1-.969-.983c0-.542.434-.982.97-.982zm4.844 0c.535 0 .969.44.969.982a.976.976 0 0 1-.969.983.976.976 0 0 1-.969-.983c0-.542.434-.982.969-.982z`})})}function kS(){let[e,t]=(0,g.useState)(!1);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`pointer-events-none fixed end-6 bottom-6 z-40`,children:(0,Y.jsxs)(_b,{variant:`primary`,size:`lg`,className:`pointer-events-auto rounded-full shadow-lg`,onClick:()=>t(!0),children:[(0,Y.jsx)(OS,{}),`加入交流群`]})}),(0,Y.jsx)(yS,{open:e,onOpenChange:t,children:(0,Y.jsxs)(bS,{className:`max-w-sm`,children:[(0,Y.jsx)(SS,{className:`sr-only`,children:`加入交流群`}),(0,Y.jsx)(CS,{className:`flex justify-center`,children:(0,Y.jsx)(`img`,{src:ES,alt:DS,className:`w-full rounded-md`})})]})})]})}var AS=g.createContext(void 0);function jS(e=!1){let t=g.useContext(AS);if(!t&&!e)throw Error(S(86));return t}var MS=function(e){let t=Db(),[n,r]=g.useState(t),[i,a]=g.useState(),[o,s]=g.useState([]),c=n===void 0?t:n,l=y(()=>new Map),{messageIds:u}=Gb(),d=G((e,t)=>{let n=l.current;t===void 0?n.delete(e):n.set(e,t),r(e=>{if(n.size===0)return e;let t;for(let r of n.values()){if(r===e)return e;t===void 0&&(t=r)}return t})}),f=G(()=>{l.current.size===0&&r(t)}),p=g.useCallback(e=>{let t=e[`aria-describedby`]?e[`aria-describedby`].split(` `):[];return t.push(...u,...o),{...e,"aria-describedby":Array.from(new Set(t)).join(` `)||void 0}},[u,o]),m=g.useMemo(()=>({controlId:c,registerControlId:d,resetControlId:f,labelId:i,setLabelId:a,messageIds:o,setMessageIds:s,getDescriptionProps:p}),[c,d,f,i,a,o,s,p]);return(0,Y.jsx)(Wb.Provider,{value:m,children:e.children})};function NS(e,t){let n=Db(e);return b(()=>(t(n),()=>{t(e=>e===n?void 0:e)}),[n,t]),n}function PS(e={}){let{id:t,fallbackControlId:n,native:r=!1,setLabelId:i,focusControl:a}=e,{controlId:o,setLabelId:s}=Gb(),c=NS(t,G(e=>{s(e),i?.(e)})),l=o??n;function u(e){if(a){a(e,l);return}if(!l)return;let t=je(e.currentTarget).getElementById(l);de(t)&&FS(t)}function d(e){at(e.nativeEvent)?.closest(`button,input,select,textarea`)||(!e.defaultPrevented&&e.detail>1&&e.preventDefault(),!r&&u(e))}return r?{id:c,htmlFor:l,onMouseDown:d}:{id:c,onClick:d,onPointerDown(e){e.preventDefault()}}}function FS(e){e.focus({focusVisible:!0})}function IS(e,t){return{...e,state:{...e.state,valid:!t&&e.state.valid}}}var LS=Object.keys(Mb);function RS(e,t){return e.matches(`:disabled`)?!1:!t||e.form===t||e.form===null&&!e.hasAttribute(`form`)}function zS(e,t){let n=null;for(let r of e.keys())if(RS(r,t)){if(!r.validity.valid)return r;n??=r}return n}function BS(e){return{...Mb,valid:!e,customError:e}}function VS(e){return e&&e.validationMessage?[e.validationMessage]:[]}function HS(e){let{elementRef:t,formRef:n}=Ub(),{setValidityData:r,validate:i,validityData:a,validationDebounceTime:o,invalid:s,markedDirtyRef:c,state:l,shouldValidateOnChange:u,validationMode:d,registeredFieldIdRef:f}=e,{controlId:p,getDescriptionProps:m}=Gb(),_=ze(),v=g.useRef(null),b=y(()=>new Map).current,x=g.useRef(0),S=g.useRef(null),C=g.useCallback((e,t)=>(b.set(e,t),()=>{b.delete(e)}),[b]),w=G(()=>{let e=zS(b,t.current);return e&&b.get(e)?.controlRef.current||null}),T=G(async(e,o=!1)=>{x.current+=1;let m=x.current;function h(e,t=s){let r=f.current??p;if(r==null)return;let i=n.current.fields.get(r);if(!i)return;let a=IS(e,t);n.current.fields.set(r,{...i,validityData:a})}function g(t,n){let r=t.valid===!1?n:[];return{value:e,state:t,error:r[0]??``,errors:r,initialValue:a.initialValue}}function y(e,t){let n=e.validity.customError?e.validationMessage:``,r=t.replace(/\r\n?/g,`
|
|
23
|
+
`),()=>{s.current?.removeAttribute(`data-motion-pop-id`),b.contains(y)&&b.removeChild(y)}},[t]),(0,Y.jsx)(k_,{isPresent:t,childRef:s,sizeRef:c,pop:a,children:a===!1?e:g.cloneElement(e,{ref:u})})}var j_=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:a,mode:o,anchorX:s,anchorY:c,root:l})=>{let u=yu(M_),d=(0,g.useId)(),f=(0,g.useRef)(n),p=(0,g.useRef)(r);bu(()=>{f.current=n,p.current=r});let m=!0,h=(0,g.useMemo)(()=>(m=!1,{id:d,initial:t,isPresent:n,custom:i,onExitComplete:e=>{u.set(e,!0);for(let e of u.values())if(!e)return;r&&r()},register:e=>(u.set(e,!1),()=>{u.delete(e),!f.current&&!u.size&&p.current?.()})}),[n,u,r]);return a&&m&&(h={...h}),(0,g.useMemo)(()=>{u.forEach((e,t)=>u.set(t,!1))},[n]),g.useEffect(()=>{!n&&!u.size&&r&&r()},[n]),e=(0,Y.jsx)(A_,{pop:o===`popLayout`,isPresent:n,anchorX:s,anchorY:c,root:l,children:e}),(0,Y.jsx)(xu.Provider,{value:h,children:e})};function M_(){return new Map}function N_(e=!0){let t=(0,g.useContext)(xu);if(t===null)return[!0,null];let{isPresent:n,onExitComplete:r,register:i}=t,a=(0,g.useId)();(0,g.useEffect)(()=>{if(e)return i(a)},[e]);let o=(0,g.useCallback)(()=>e&&r&&r(a),[a,r,e]);return!n&&r?[!1,o]:[!0]}var P_=e=>e.key||``;function F_(e){let t=[];return g.Children.forEach(e,e=>{(0,g.isValidElement)(e)&&t.push(e)}),t}var I_=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:a=`sync`,propagate:o=!1,anchorX:s=`left`,anchorY:c=`top`,root:l})=>{let[u,d]=N_(o),f=(0,g.useMemo)(()=>F_(e),[e]),p=o&&!u?[]:f.map(P_),m=(0,g.useRef)(!0),h=yu(()=>new Map),_=(0,g.useRef)(new Set),[v,y]=(0,g.useState)(f),[b,x]=(0,g.useState)(f);bu(()=>{o&&!u&&!b.length&&d?.()},[u,o,b.length,d]),bu(()=>{m.current=!1;for(let e=0;e<b.length;e++){let t=P_(b[e]);p.includes(t)?(h.delete(t),_.current.delete(t)):h.get(t)!==!0&&h.set(t,!1)}},[b,p.length,p.join(`-`)]);let S=[];if(f!==v){let e=[...f],t=0;for(let n of b){let r=p.indexOf(P_(n));r===-1?(e.splice(t++,0,n),S.push(n)):t=r+S.length+1}return S.every(e=>h.get(P_(e)))?e=f:a===`wait`&&(e=S),x(F_(e)),y(f),null}let{forceRender:C}=(0,g.useContext)(vu);return(0,Y.jsx)(Y.Fragment,{children:b.map(e=>{let g=P_(e),v=o&&!u?!1:f===b||p.includes(g);return(0,Y.jsx)(j_,{isPresent:v,initial:!m.current||n?void 0:!1,custom:t,presenceAffectsLayout:i,mode:a,root:l,onExitComplete:v?void 0:()=>{if(_.current.has(g))return;if(h.has(g))_.current.add(g),h.set(g,!0);else return;let e=!0;h.forEach(t=>{t||(e=!1)}),e&&(C?.(),y([]),o&&d?.(),r&&r())},anchorX:s,anchorY:c,children:e},g)})})},L_=(0,g.createContext)({strict:!1}),R_={animation:[`animate`,`variants`,`whileHover`,`whileTap`,`exit`,`whileInView`,`whileFocus`,`whileDrag`],exit:[`exit`],drag:[`drag`,`dragControls`],focus:[`whileFocus`],hover:[`whileHover`,`onHoverStart`,`onHoverEnd`],tap:[`whileTap`,`onTap`,`onTapStart`,`onTapCancel`],pan:[`onPan`,`onPanStart`,`onPanSessionStart`,`onPanEnd`],inView:[`whileInView`,`onViewportEnter`,`onViewportLeave`],layout:[`layout`,`layoutId`]},z_=!1;function B_(){if(z_)return;let e={};for(let t in R_)e[t]={isEnabled:e=>R_[t].some(t=>!!e[t])};t_(e),z_=!0}function V_(){return B_(),n_()}function H_(e){let t=V_();for(let n in e)t[n]={...t[n],...e[n]};t_(t)}function U_({children:e,features:t,strict:n=!1}){let[,r]=(0,g.useState)(!W_(t)),i=(0,g.useRef)(void 0);if(!W_(t)){let{renderer:e,...n}=t;i.current=e,H_(n)}return(0,g.useEffect)(()=>{W_(t)&&t().then(({renderer:e,...t})=>{H_(t),i.current=e,r(!0)})},[]),(0,Y.jsx)(L_.Provider,{value:{renderer:i.current,strict:n},children:e})}function W_(e){return typeof e==`function`}var G_=(0,g.createContext)({});function K_(e,t){if(Kg(e)){let{initial:t,animate:n}=e;return{initial:t===!1||Ug(t)?t:void 0,animate:Ug(n)?n:void 0}}return e.inherit===!1?{}:t}function q_(e){let{initial:t,animate:n}=K_(e,(0,g.useContext)(G_));return(0,g.useMemo)(()=>({initial:t,animate:n}),[J_(t),J_(n)])}function J_(e){return Array.isArray(e)?e.join(` `):e}var Y_=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function X_(e,t,n){for(let r in t)!dh(t[r])&&!c_(r,n)&&(e[r]=t[r])}function Z_({transformTemplate:e},t){return(0,g.useMemo)(()=>{let n=Y_();return tg(n,t,e),Object.assign({},n.vars,n.style)},[t])}function Q_(e,t){let n=e.style||{},r={};return X_(r,n,e),Object.assign(r,Z_(e,t)),r}function $_(e,t){let n={},r=Q_(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout=`none`,r.touchAction=e.drag===!0?`none`:`pan-${e.drag===`x`?`y`:`x`}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}var ev=()=>({...Y_(),attrs:{}});function tv(e,t,n,r){let i=(0,g.useMemo)(()=>{let n=ev();return og(n,t,p_(r),e.transformTemplate,e.style),{...n.attrs,style:{...n.style}}},[t]);if(e.style){let t={};X_(t,e.style,e),i.style={...t,...i.style}}return i}var nv=new Set(`animate.exit.variants.initial.style.values.transition.transformTemplate.custom.inherit.onBeforeLayoutMeasure.onAnimationStart.onAnimationComplete.onUpdate.onDragStart.onDrag.onDragEnd.onMeasureDragConstraints.onDirectionLock.onDragTransitionEnd._dragX._dragY.onHoverStart.onHoverEnd.onViewportEnter.onViewportLeave.globalTapTarget.propagate.ignoreStrict.viewport`.split(`.`));function rv(e){return e.startsWith(`while`)||e.startsWith(`drag`)&&e!==`draggable`||e.startsWith(`layout`)||e.startsWith(`onTap`)||e.startsWith(`onPan`)||e.startsWith(`onLayout`)||nv.has(e)}function iv(e,t){return e.startsWith(`on`)?!rv(e):t?.(e)??!rv(e)}function av(e,t,n,r){let i={};for(let a in e)(a!==`values`||typeof e.values!=`object`)&&(dh(e[a])||(iv(a,r)||n===!0&&rv(a)||!t&&!rv(a)||e.draggable&&a.startsWith(`onDrag`))&&(i[a]=e[a]));return i}var ov=[`animate`,`circle`,`defs`,`desc`,`ellipse`,`g`,`image`,`line`,`filter`,`marker`,`mask`,`metadata`,`path`,`pattern`,`polygon`,`polyline`,`rect`,`stop`,`switch`,`symbol`,`svg`,`text`,`tspan`,`use`,`view`];function sv(e){return typeof e!=`string`||e.includes(`-`)?!1:!!(ov.indexOf(e)>-1||/[A-Z]/u.test(e))}function cv(e,t,n,{latestValues:r},i,a=!1,o,s){let c=(o??sv(e)?tv:$_)(t,r,i,e),l=av(t,typeof e==`string`,a,s),u=e===g.Fragment?{}:{...l,...c,ref:n},{children:d}=t,f=(0,g.useMemo)(()=>dh(d)?d.get():d,[d]);return(0,g.createElement)(e,{...u,children:f})}function lv({scrapeMotionValuesFromProps:e,createRenderState:t},n,r,i){return{latestValues:uv(n,r,i,e),renderState:t()}}function uv(e,t,n,r){let i={},a=r(e,{});for(let e in a)i[e]=w_(a[e]);let{initial:o,animate:s}=e,c=Kg(e),l=qg(e);t&&l&&!c&&e.inherit!==!1&&(o===void 0&&(o=t.initial),s===void 0&&(s=t.animate));let u=n?n.initial===!1:!1;u||=o===!1;let d=u?s:o;if(d&&typeof d!=`boolean`&&!Hg(d)){let t=Array.isArray(d)?d:[d];for(let n=0;n<t.length;n++){let r=rh(e,t[n]);if(r){let{transitionEnd:e,transition:t,...n}=r;for(let e in n){let t=n[e];if(Array.isArray(t)){let e=u?t.length-1:0;t=t[e]}t!==null&&(i[e]=t)}for(let t in e)i[t]=e[t]}}}return i}var dv=e=>(t,n)=>{let r=(0,g.useContext)(G_),i=(0,g.useContext)(xu),a=()=>lv(e,t,r,i);return n?a():yu(a)},fv=dv({scrapeMotionValuesFromProps:l_,createRenderState:Y_}),pv=dv({scrapeMotionValuesFromProps:h_,createRenderState:ev}),mv=Symbol.for(`motionComponentSymbol`);function hv(e,t,n){let r=(0,g.useRef)(n);(0,g.useInsertionEffect)(()=>{r.current=n});let i=(0,g.useRef)(null);return(0,g.useCallback)(n=>{n&&e.onMount?.(n),t&&(n?t.mount(n):t.unmount());let a=r.current;if(typeof a==`function`){if(n){let e=a(n);typeof e==`function`&&(i.current=e)}else i.current?(i.current(),i.current=null):a(n)}else a&&(a.current=n)},[t])}var gv=(0,g.createContext)({});function _v(e){return e&&typeof e==`object`&&Object.prototype.hasOwnProperty.call(e,`current`)}function vv(e,t,n,r,i,a){let{visualElement:o}=(0,g.useContext)(G_),s=(0,g.useContext)(L_),c=(0,g.useContext)(xu),l=(0,g.useContext)(T_),u=l.reducedMotion,d=l.skipAnimations,f=(0,g.useRef)(null),p=(0,g.useRef)(!1);r||=s.renderer,!f.current&&r&&(f.current=r(e,{visualState:t,parent:o,props:n,presenceContext:c,blockInitialAnimation:c?c.initial===!1:!1,reducedMotionConfig:u,skipAnimations:d,isSVG:a}),p.current&&f.current&&(f.current.manuallyAnimateOnMount=!0));let m=f.current,h=(0,g.useContext)(gv);m&&!m.projection&&i&&(m.type===`html`||m.type===`svg`)&&yv(f.current,n,i,h);let _=(0,g.useRef)(!1);(0,g.useInsertionEffect)(()=>{m&&_.current&&m.update(n,c)});let v=n[hh],y=(0,g.useRef)(!!v&&typeof window<`u`&&!window.MotionHandoffIsComplete?.(v)&&window.MotionHasOptimisedAnimation?.(v));return bu(()=>{p.current&&m&&(m.animationState?.animateChanges(),m.enteringChildren=void 0)},[]),bu(()=>{p.current=!0,m&&(_.current=!0,window.MotionIsMounted=!0,m.updateFeatures(),m.scheduleRenderMicrotask(),y.current&&m.animationState&&m.animationState.animateChanges())}),(0,g.useEffect)(()=>{m&&(!y.current&&m.animationState&&m.animationState.animateChanges(),y.current&&=(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(v)}),!1),m.enteringChildren=void 0)}),m}function yv(e,t,n,r){let{layoutId:i,layout:a,drag:o,dragConstraints:s,layoutScroll:c,layoutRoot:l,layoutAnchor:u,layoutCrossfade:d}=t;e.projection=new n(e.latestValues,t[`data-framer-portal-id`]?void 0:bv(e.parent)),e.projection.setOptions({layoutId:i,layout:a,alwaysMeasureLayout:!!o||s&&_v(s),visualElement:e,animationType:typeof a==`string`?a:`both`,initialPromotionConfig:r,crossfade:d,layoutScroll:c,layoutRoot:l,layoutAnchor:u})}function bv(e){if(e)return e.options.allowProjection===!1?bv(e.parent):e.projection}function xv(e,{forwardMotionProps:t=!1,type:n}={},r,i){r&&H_(r);let a=n?n===`svg`:sv(e),o=a?pv:fv;function s(n,s){let c,l={...(0,g.useContext)(T_),...n,layoutId:Sv(n)},{isStatic:u,isValidProp:d}=l,f=q_(n),p=o(n,u);if(!u&&typeof window<`u`){Cv(l,r);let t=wv(l);c=t.MeasureLayout,f.visualElement=vv(e,p,l,i,t.ProjectionNode,a)}return(0,Y.jsxs)(G_.Provider,{value:f,children:[c&&f.visualElement?(0,Y.jsx)(c,{visualElement:f.visualElement,...l}):null,cv(e,n,hv(p,f.visualElement,s),p,u,t,a,d)]})}s.displayName=`motion.${typeof e==`string`?e:`create(${e.displayName??e.name??``})`}`;let c=(0,g.forwardRef)(s);return c[mv]=e,c}function Sv({layoutId:e}){let t=(0,g.useContext)(vu).id;return t&&e!==void 0?t+`-`+e:e}function Cv(e,t){(0,g.useContext)(L_).strict}function wv(e){let{drag:t,layout:n}=V_();if(!t&&!n)return{};let r={...t,...n};return{MeasureLayout:t?.isEnabled(e)||n?.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}function Tv(e,t){if(typeof Proxy>`u`)return xv;let n=new Map,r=(n,r)=>xv(n,r,e,t);return new Proxy((e,t)=>r(e,t),{get:(i,a)=>a===`create`?r:(n.has(a)||n.set(a,xv(a,void 0,e,t)),n.get(a))})}var Ev=Tv(),Dv=(e,t)=>t.isSVG??sv(e)?new g_(t):new d_(t,{allowProjection:e!==g.Fragment}),Ov=class extends a_{constructor(e){super(e),e.animationState||=y_(e)}updateAnimationControlsSubscription(){let{animate:e}=this.node.getProps();Hg(e)&&(this.unmountControls=e.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){let{animate:e}=this.node.getProps(),{animate:t}=this.node.prevProps||{};e!==t&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}},kv=0,Av={animation:{Feature:Ov},exit:{Feature:class extends a_{constructor(){super(...arguments),this.id=kv++}update(){let{presenceContext:e,prevPresenceContext:t,animationState:n}=this.node;if(!e||!n)return;let{isPresent:r,onExitComplete:i}=e,a=t?.isPresent;if(r===a)return;if(r&&a===!1){if(this.exit===!0){let{initial:e}=this.node.getProps();if(e&&!Array.isArray(e)){let{transition:t,transitionEnd:n,...r}=ih(this.node,e)||{};for(let e in r)this.node.getValue(e)?.jump(r[e])}this.node.blockInitialAnimation=!1,n.reset(),n.animateChanges()}else n.setActive(`exit`,!1);this.exit=void 0;return}let o=this.exit=n.setActive(`exit`,!r);i&&!r&&o.then(()=>{this.exit===o&&(this.exit=!0,i(this.id))})}mount(){let{register:e,onExitComplete:t}=this.node.presenceContext||{};t&&t(this.id),e&&(this.unmount=e(this.id))}unmount(){}}}};function jv(e){return{point:{x:e.pageX,y:e.pageY}}}function Mv(e,t,n){let{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive(`whileHover`,n===`Start`);let i=r[`onHover`+n];i&&kf.postRender(()=>i(t,jv(t)))}var Nv=class extends a_{mount(){let{current:e}=this.node;e&&(this.unmount=Eg(e,(e,t)=>(Mv(this.node,t,`Start`),e=>Mv(this.node,e,`End`))))}unmount(){}},Pv=class extends a_{constructor(){super(...arguments),this.isActive=!1}onFocus(){let e=!1;try{e=this.node.current.matches(`:focus-visible`)}catch{e=!0}e&&this.node.animationState&&(this.node.animationState.setActive(`whileFocus`,!0),this.isActive=!0)}onBlur(){this.isActive&&this.node.animationState&&(this.node.animationState.setActive(`whileFocus`,!1),this.isActive=!1)}mount(){this.unmount=ju(C_(this.node.current,`focus`,()=>this.onFocus()),C_(this.node.current,`blur`,()=>this.onBlur()))}unmount(){}};function Fv(e,t,n){let{props:r}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&r.whileTap&&e.animationState.setActive(`whileTap`,n===`Start`);let i=r[`onTap`+(n===`End`?``:n)];i&&kf.postRender(()=>i(t,jv(t)))}var Iv=class extends a_{mount(){let{current:e}=this.node;if(!e)return;let{globalTapTarget:t,propagate:n}=this.node.props;this.unmount=Lg(e,(e,t)=>(Fv(this.node,t,`Start`),(e,{success:t})=>Fv(this.node,e,t?`End`:`Cancel`)),{useGlobalTarget:t,stopPropagation:n?.tap===!1})}unmount(){}},Lv=new WeakMap,Rv=new WeakMap,zv=e=>{let t=Lv.get(e.target);t&&t(e)},Bv=e=>{e.forEach(zv)};function Vv({root:e,...t}){let n=e||document;Rv.has(n)||Rv.set(n,{});let r=Rv.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(Bv,{root:e,...t})),r[i]}function Hv(e,t,n){let r=Vv(t);return Lv.set(e,n),r.observe(e),()=>{Lv.delete(e),r.unobserve(e)}}var Uv={some:0,all:1},Wv=class extends a_{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.stopObserver?.();let{viewport:e={}}=this.node.getProps(),{root:t,margin:n,amount:r=`some`,once:i}=e,a={root:t?t.current:void 0,rootMargin:n,threshold:typeof r==`number`?r:Uv[r]},o=e=>{let{isIntersecting:t}=e;if(this.isInView===t||(this.isInView=t,i&&!t&&this.hasEnteredView))return;t&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive(`whileInView`,t);let{onViewportEnter:n,onViewportLeave:r}=this.node.getProps(),a=t?n:r;a&&a(e)};this.stopObserver=Hv(this.node.current,a,o)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>`u`)return;let{props:e,prevProps:t}=this.node;[`amount`,`margin`,`root`].some(Gv(e,t))&&this.startObserver()}unmount(){this.stopObserver?.(),this.hasEnteredView=!1,this.isInView=!1}};function Gv({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}var Kv={inView:{Feature:Wv},tap:{Feature:Iv},focus:{Feature:Pv},hover:{Feature:Nv}};function qv(e){return(0,g.useEffect)(()=>()=>e(),[])}var Jv={renderer:Dv,...Av,...Kv};function Yv(e){let t=yu(()=>Hm(e)),{isStatic:n}=(0,g.useContext)(T_);if(n){let[,n]=(0,g.useState)(e);(0,g.useEffect)(()=>t.on(`change`,n),[])}return t}function Xv(e,t){let n=Yv(t()),r=()=>n.set(t());return r(),bu(()=>{let t=()=>kf.preRender(r,!1,!0),n=e.map(e=>e.on(`change`,t));return()=>{n.forEach(e=>e()),Af(r)}}),n}function Zv(e){Bm.current=[],e();let t=Xv(Bm.current,e);return Bm.current=void 0,t}function Qv(e,t,n,r){if(typeof e==`function`)return Zv(e);if(n!==void 0&&!Array.isArray(n)&&typeof t!=`function`)return ey(e,t,n,r);let i=typeof t==`function`?t:Rg(t,n,r),a=Array.isArray(e)?$v(e,i):$v([e],([e])=>i(e)),o=Array.isArray(e)?void 0:e.accelerate;if(o&&!o.isTransformed&&typeof t!=`function`&&Array.isArray(n)&&r?.clamp!==!1){let e=r?.ease;a.accelerate={...o,times:[0,...t,1],keyframes:[n[0],...n,n[n.length-1]],isTransformed:!0,...e?{ease:Array.isArray(e)?[e[0],...e]:e}:{}}}return a}function $v(e,t){let n=yu(()=>[]);return Xv(e,()=>{n.length=0;let r=e.length;for(let t=0;t<r;t++)n[t]=e[t].get();return t(n)})}function ey(e,t,n,r){let i=yu(()=>Object.keys(n)),a=yu(()=>({}));for(let o of i)a[o]=Qv(e,t,n[o],r);return a}function ty(){!Xg.current&&Qg();let[e]=(0,g.useState)(Yg.current);return e}function ny(){let e=ty(),{reducedMotion:t}=(0,g.useContext)(T_);return t===`never`?!1:t===`always`||e}function ry(e){return typeof e==`object`&&!Array.isArray(e)}function iy(e,t,n,r){return e==null?[]:typeof e==`string`&&ry(t)?Bh(e,n,r):e instanceof NodeList?Array.from(e):Array.isArray(e)?e.filter(e=>e!=null):[e]}function ay(e,t,n){return e*(t+1)+n*t}function oy(e,t,n,r){return typeof t==`number`?t:t.startsWith(`-`)||t.startsWith(`+`)?Math.max(0,e+parseFloat(t)):t===`<`?n:t.startsWith(`<`)?Math.max(0,n+parseFloat(t.slice(1))):r.get(t)??e}function sy(e,t,n){for(let r=0;r<e.length;r++){let i=e[r];i.at>t&&i.at<n&&(Cu(e,i),r--)}}function cy(e,t,n,r,i,a){sy(e,i,a);for(let o=0;o<t.length;o++)e.push({value:t[o],at:cf(i,a,r[o]),easing:nd(n,o)})}function ly(e,t,n=0){let r=t+1+t*n;for(let t=0;t<e.length;t++)e[t]=e[t]/r}function uy(e,t){return e.at===t.at?e.value===null?1:t.value===null?-1:0:e.at-t.at}var dy=`easeInOut`,fy=20;function py(e,{defaultTransition:t={},...n}={},r,i){let a=t.duration||.3,o=new Map,s=new Map,c={},l=new Map,u=0,d=0,f=0;for(let n=0;n<e.length;n++){let o=e[n];if(typeof o==`string`){l.set(o,d);continue}if(!Array.isArray(o)){l.set(o.name,oy(d,o.at,u,l));continue}let[p,m,h={}]=o;h.at!==void 0&&(d=oy(d,h.at,u,l));let g=0,_=(e,n,r,o=0,s=0)=>{let c=gy(e),{delay:l=0,times:u=$f(c),type:p=t.type||`keyframes`,repeat:m,repeatType:h,repeatDelay:_=0,...v}=n,{ease:y=t.ease||`easeOut`,duration:b}=n,x=typeof l==`function`?l(o,s):l,S=c.length,C=mm(p)?p:i?.[p||`keyframes`];if(S<=2&&C){let e=100;if(S===2&&yy(c)){let t=c[1]-c[0];e=Math.abs(t)}let n={...t,...v};b!==void 0&&(n.duration=Pu(b));let r=If(n,e,C);y=r.ease,b=r.duration}b??=a;let w=d+x;u.length===1&&u[0]===0&&(u[1]=1);let T=u.length-c.length;if(T>0&&Qf(u,T),c.length===1&&c.unshift(null),m&&`${m}${fy}`,m&&m<fy){let e=b>0?_/b:0;b=ay(b,m,_);let t=[...c],n=[...u];y=Array.isArray(y)?[...y]:[y];let r=[...y],i=h===`reverse`||h===`mirror`,a=t,o=r;i&&(a=[...t].reverse(),h===`reverse`&&(o=[...r].reverse().map(e=>typeof e==`function`?Wu(e):e)));for(let s=0;s<m;s++){let l=i&&s%2==0,d=l?a:t,f=l?o:r,p=(s+1)*(1+e);e>0&&(c.push(c[c.length-1]),u.push(p),y.push(`linear`)),c.push(...d);for(let e=0;e<d.length;e++)u.push(n[e]+p),y.push(e===0?`linear`:nd(f,e-1))}ly(u,m,e)}let E=w+b;cy(r,c,y,u,w,E),g=Math.max(x+b,g),f=Math.max(E,f)};if(dh(p)){let e=my(p,s);_(m,h,hy(`default`,e))}else{let e=iy(p,m,r,c),t=e.length;for(let n=0;n<t;n++){m=m,h=h;let r=e[n],i=my(r,s);for(let e in m)_(m[e],_y(h,e),hy(e,i),n,t)}}u=d,d+=g}return s.forEach((e,r)=>{for(let i in e){let a=e[i];a.sort(uy);let s=[],c=[],l=[];for(let e=0;e<a.length;e++){let{at:t,value:n,easing:r}=a[e];s.push(n),c.push(Mu(0,f,t)),l.push(r||`easeOut`)}c[0]!==0&&(c.unshift(0),s.unshift(s[0]),l.unshift(dy)),c[c.length-1]!==1&&(c.push(1),s.push(null)),o.has(r)||o.set(r,{keyframes:{},transition:{}});let u=o.get(r);u.keyframes[i]=s;let{type:d,...p}=t;u.transition[i]={...p,duration:f,ease:l,times:c,...n}}}),o}function my(e,t){return!t.has(e)&&t.set(e,{}),t.get(e)}function hy(e,t){return t[e]||(t[e]=[]),t[e]}function gy(e){return Array.isArray(e)?e:[e]}function _y(e,t){return e&&e[t]?{...e,...e[t]}:{...e}}var vy=e=>typeof e==`number`,yy=e=>e.every(vy);function by(e,t){return dh(e)||typeof e==`number`||typeof e==`string`&&!ry(t)}function xy(e,t,n,r){let i=[];if(by(e,t))i.push(S_(e,ry(t)&&t.default||t,n&&(n.default||n)));else{if(e==null)return i;let a=iy(e,t,r),o=a.length;for(let e=0;e<o;e++){let r=a[e],s={...n};`delay`in s&&typeof s.delay==`function`&&(s.delay=s.delay(e,o)),r instanceof Element?i.push(...vg(r,t,s,Vg.get(r))):i.push(...Fh(Nh(r)??yg,r,t,s))}}return i}function Sy(e,t,n){let r=[];return py(e.map(e=>{if(Array.isArray(e)&&typeof e[0]==`function`){let t=e[0],n=Hm(0);return n.on(`change`,t),e.length===1?[n,[0,1]]:e.length===2?[n,[0,1],e[1]]:[n,e[1],e[2]]}return e}),t,n,{spring:Jf}).forEach(({keyframes:e,transition:t},n)=>{r.push(...xy(n,e,t))}),r}function Cy(e){return Array.isArray(e)&&e.some(Array.isArray)}function wy(e={}){let{scope:t,reduceMotion:n,skipAnimations:r}=e;function i(e,i,a){let o=[],s,c={};if(n!==void 0&&(c.reduceMotion=n),r!==void 0&&(c.skipAnimations=r),Cy(e)){let{onComplete:n,...r}=i||{};typeof n==`function`&&(s=n),o=Sy(e,{...c,...r},t)}else{let{onComplete:n,...r}=a||{};typeof n==`function`&&(s=n),o=xy(e,i,{...c,...r},t)}let l=new Im(o);return s&&l.finished.then(s),t&&(t.animations.push(l),l.finished.then(()=>{Cu(t.animations,l)})),l}return i}var Ty=Object.assign(wy(),{addEffect:jh,removeEffect:Mh});function Ey(){let e=yu(()=>({current:null,animations:[]})),t=ny()??void 0,{skipAnimations:n}=(0,g.useContext)(T_),r=(0,g.useMemo)(()=>wy({scope:e,reduceMotion:t,skipAnimations:n}),[e,t,n]);return qv(()=>{e.animations.forEach(e=>e.stop()),e.animations.length=0}),[e,r]}var Dy=Ev,Oy=(0,g.createContext)({disableAnimations:!1});function ky(){return(0,g.use)(Oy)}var Ay=`(prefers-reduced-motion: reduce)`;function jy(){let e=eu(Ay),{disableAnimations:t}=ky();return t||e}var My=`text-[2.5rem]`,Ny={indicator:`text-primary`,track:`text-primary-soft`},Py={indicator:`text-current`,track:`text-current/20`};function Fy({colors:e,reduced:t}){return(0,Y.jsxs)(`svg`,{width:`1em`,height:`1em`,viewBox:`0 0 40 40`,fill:`none`,stroke:`currentColor`,strokeWidth:`4`,strokeLinecap:`round`,"aria-hidden":`true`,className:Q(`size-[1em] stroke-4!`,e.indicator),children:[(0,Y.jsx)(`circle`,{cx:`20`,cy:`20`,r:`16`,className:e.track}),t?(0,Y.jsx)(`circle`,{cx:`20`,cy:`20`,r:`16`,pathLength:1,strokeDasharray:`0.25 0.75`}):(0,Y.jsx)(Dy.circle,{cx:`20`,cy:`20`,r:`16`,pathLength:1,strokeDasharray:`0.25 0.75`,initial:{strokeDashoffset:0},animate:{strokeDashoffset:-1},transition:{duration:.9,repeat:1/0,ease:`linear`}})]})}var Iy=12,Ly=1.2;function Ry({colors:e,reduced:t}){return(0,Y.jsx)(`svg`,{width:`1em`,height:`1em`,viewBox:`0 0 40 40`,fill:`currentColor`,"aria-hidden":`true`,className:Q(`size-[1em]`,e.indicator),children:Array.from({length:Iy},(e,n)=>{let r={x:18,y:2,width:4,height:6,rx:2,transform:`rotate(${360/Iy*n} 20 20)`};return t?(0,Y.jsx)(`rect`,{...r,opacity:.25},n):(0,Y.jsx)(Dy.rect,{...r,initial:{opacity:0},animate:{opacity:[0,1,.5,0]},transition:{duration:Ly,repeat:1/0,ease:`linear`,delay:n/Iy*Ly-Ly,times:[0,.1,.5,1]}},n)})})}var zy=`M12.846 3.581C12.711 3.231 12.375 3 12 3C11.625 3 11.278 3.263 11.154 3.581C10.604 5.011 10.054 6.442 9.504 7.872C8.752 8.16 8.159 8.752 7.871 9.504C6.441 10.054 5.011 10.604 3.581 11.154C3.41 11.22 3.263 11.336 3.159 11.487C3.055 11.638 3 11.817 3 12C3 12.183 3.056 12.362 3.159 12.513C3.262 12.664 3.41 12.78 3.581 12.846C5.011 13.396 6.442 13.946 7.872 14.496C8.16 15.248 8.752 15.841 9.504 16.129C10.054 17.559 10.604 18.989 11.154 20.419C11.22 20.59 11.336 20.737 11.487 20.841C11.638 20.945 11.817 21 12 21C12.183 21 12.362 20.945 12.513 20.841C12.664 20.737 12.78 20.59 12.846 20.419C13.396 18.989 13.946 17.559 14.496 16.129C15.248 15.841 15.841 15.248 16.129 14.496C17.559 13.946 18.989 13.396 20.419 12.846C20.59 12.78 20.737 12.664 20.841 12.513C20.945 12.362 21 12.183 21 12C21 11.817 20.945 11.638 20.841 11.487C20.737 11.336 20.59 11.22 20.419 11.154C18.989 10.604 17.559 10.054 16.129 9.504C15.841 8.752 15.248 8.16 14.496 7.871C13.946 6.441 13.396 5.011 12.846 3.581Z`,By=`M12.704 5C12.469 5 12.235 5 12 5C11.765 5 11.531 5 11.296 5C10.161 5.053 9.025 5.106 7.889 5.159C6.979 6.069 6.069 6.979 5.159 7.889C5.106 9.025 5.053 10.161 5 11.296C5 11.395 5 11.494 5 11.593C5 11.729 5 11.864 5 12C5 12.136 5 12.271 5 12.407C5 12.506 5 12.605 5 12.704C5.053 13.839 5.106 14.975 5.159 16.111C6.069 17.021 6.979 17.931 7.889 18.841C9.025 18.894 10.161 18.947 11.296 19C11.395 19 11.494 19 11.593 19C11.729 19 11.864 19 12 19C12.136 19 12.271 19 12.407 19C12.506 19 12.605 19 12.704 19C13.839 18.947 14.975 18.894 16.111 18.841C17.021 17.931 17.931 17.021 18.841 16.111C18.894 14.975 18.947 13.839 19 12.704C19 12.605 19 12.506 19 12.407C19 12.271 19 12.136 19 12C19 11.864 19 11.729 19 11.593C19 11.494 19 11.395 19 11.296C18.947 10.161 18.894 9.025 18.841 7.889C17.931 6.979 17.021 6.069 16.111 5.159C14.975 5.106 13.839 5.053 12.704 5Z`;function Vy(e){return e.match(/-?\d+(?:\.\d+)?/g)?.map(Number)??[]}var Hy=Vy(zy),Uy=Vy(By),Wy=(Hy.length-2)/6;function Gy(e){let t=`M${e[0]} ${e[1]}`;for(let n=0;n<Wy;n++){let r=2+n*6;t+=`C${e[r]} ${e[r+1]} ${e[r+2]} ${e[r+3]} ${e[r+4]} ${e[r+5]}`}return t+`Z`}function Ky(e,t,n){return e+(t-e)*n}function qy(e){return e<.5?2*e*e:1-(-2*e+2)**2/2}var Jy=2.5,Yy=.4;function Xy({colors:e,reduced:t}){let n=Yv(0);g.useEffect(()=>{if(t)return;let e=Ty(n,1,{duration:Jy,repeat:1/0,ease:`linear`});return()=>e.stop()},[t,n]);let r=Qv(n,e=>{if(e<Yy/2){let t=qy(e/(Yy/2));return Gy(Hy.map((e,n)=>Ky(e,Uy[n],t)))}if(e<Yy){let t=qy((e-Yy/2)/(Yy/2));return Gy(Uy.map((e,n)=>Ky(e,Hy[n],t)))}return zy}),i=Qv(n,e=>e<Yy?qy(e/Yy)*360:360);return(0,Y.jsx)(`svg`,{width:`1em`,height:`1em`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinejoin:`round`,strokeLinecap:`round`,"aria-hidden":`true`,className:Q(`size-[1em]`,e.indicator),children:t?(0,Y.jsx)(`path`,{d:zy}):(0,Y.jsx)(Dy.path,{d:r,style:{transformOrigin:`12px 12px`,rotate:i}})})}var Zy={circular:Fy,dots:Ry,sparkle:Xy};function Qy({variant:e=`circular`,currentColor:t=!1,"aria-label":n=`Loading`,className:r,...i}){let a=jy(),o=t?Py:Ny,s=Zy[e],c=(0,Y.jsx)(s,{colors:o,reduced:a});return(0,Y.jsx)(`span`,{"data-slot":`spinner`,role:`status`,"aria-label":n,className:Q(`inline-flex shrink-0 items-center justify-center align-middle`,My,r),...i,children:a?c:(0,Y.jsx)(U_,{features:Jv,strict:!0,children:c})})}function $y(e,{storage:t=`local`}={}){let[n,r,i]=Ql(t,e,``,{serializer:e=>e,deserializer:e=>e}),a=n!==`1`,o=(0,g.useCallback)(()=>r(`1`),[r]),s=(0,g.useCallback)(()=>i(),[i]);return(0,g.useMemo)(()=>({open:a,dismiss:o,reset:s}),[a,o,s])}var eb=xl(Q(`group/alert relative rounded-xl border p-5 text-foreground backdrop-blur-xl`,`grid w-full items-start`,`[grid-template-columns:auto_1fr_auto] [grid-template-areas:'icon_title_close'_'._description_.'_'._actions_actions']`,`@min-[460px]:data-[layout=inline]:items-center`,`@min-[460px]:data-[layout=inline]:[grid-template-columns:auto_auto_1fr_auto_auto]`,`@min-[460px]:data-[layout=inline]:[grid-template-areas:'icon_title_description_actions_close']`),{variants:{variant:{default:`bg-background border-border`,primary:`bg-primary-subtle border-primary-soft`,secondary:`bg-secondary-subtle border-secondary-soft`,error:`bg-error-subtle border-error-soft`,success:`bg-success-subtle border-success-soft`,warning:`bg-warning-subtle border-warning-soft`,info:`bg-info-subtle border-info-soft`}},defaultVariants:{variant:`default`}}),tb={default:`text-foreground-intense`,primary:`text-primary`,secondary:`text-secondary-emphasis`,error:`text-error-emphasis`,success:`text-success-emphasis`,warning:`text-warning-emphasis`,info:`text-info-emphasis`},nb=g.createContext(`default`),rb={opacity:0,scale:.88,filter:`blur(12px)`,height:0},ib={opacity:0},ab={default:{duration:.32,ease:[.4,0,.2,1]},height:{duration:.3,ease:[.4,0,.2,1],delay:.18}};function ob({variant:e,layout:t=`block`,dismissible:n=!1,open:r,onOpenChange:i,persistKey:a,persistStorage:o=`local`,closeLabel:s=`Dismiss`,role:c=`alert`,className:l,children:u,style:d,...f}){let p=jy(),[m,h]=g.useState(!0),_=$y(a??``,{storage:o}),v=r!==void 0,y=!v&&a!=null,b=v?r:y?_.open:m,x=g.useCallback(()=>{if(v){i?.(!1);return}y?_.dismiss():h(!1),i?.(!1)},[v,y,_,i]);return(0,Y.jsx)(nb.Provider,{value:e??`default`,children:(0,Y.jsx)(U_,{features:Jv,strict:!0,children:(0,Y.jsx)(I_,{initial:!1,children:b&&(0,Y.jsx)(Dy.div,{initial:!1,exit:p?ib:rb,transition:p?{duration:0}:ab,className:`@container overflow-hidden`,children:(0,Y.jsxs)(`div`,{role:c,"data-slot":`alert`,"data-layout":t,style:d,className:Q(eb({variant:e}),l),...f,children:[u,n&&(0,Y.jsx)(`button`,{type:`button`,"aria-label":s,"data-slot":`alert-close`,onClick:x,className:Q(`text-foreground-muted cursor-pointer rounded-md p-1 transition-colors outline-none [grid-area:close]`,`hover:text-foreground-intense`,`focus-visible:ring-ring focus-visible:ring-2`,`self-start @min-[460px]:group-data-[layout=inline]/alert:self-center`,`ms-3 -me-1 -mt-1 @min-[460px]:group-data-[layout=inline]/alert:my-0`),children:(0,Y.jsx)(sb,{})})]})},`alert`)})})})}function sb(){return(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,className:`size-4`,children:(0,Y.jsx)(`path`,{d:`M11.523 3.522c.264-.264.691-.264.955 0s.264.691 0 .955L8.955 8l3.522 3.522c.264.264.264.691 0 .955s-.691.264-.955 0L8 8.955l-3.522 3.522c-.264.264-.691.264-.955 0s-.264-.691 0-.955L7.045 8 3.522 4.478c-.264-.264-.264-.691 0-.955s.691-.264.955 0L8 7.045l3.523-3.522z`})})}function cb({className:e,...t}){let n=g.useContext(nb);return(0,Y.jsx)(`span`,{"data-slot":`alert-icon`,className:Q(`me-3 flex h-lh shrink-0 items-center [grid-area:icon] [&_svg:not([class*='size-'])]:size-5`,tb[n],e),...t})}function lb({className:e,as:t=`h5`,...n}){return(0,Y.jsx)(t,{"data-slot":`alert-title`,className:Q(`text-foreground-intense self-center font-semibold [grid-area:title]`,`text-base @min-[460px]:group-data-[layout=inline]/alert:me-3 @min-[460px]:group-data-[layout=inline]/alert:text-sm`,e),...n})}function ub({className:e,...t}){return(0,Y.jsx)(`p`,{"data-slot":`alert-description`,className:Q(`text-foreground text-sm [grid-area:description]`,`mt-2 @min-[460px]:group-data-[layout=inline]/alert:mt-0`,e),...t})}function db(e){return kr(e.defaultTagName??`div`,e,e)}var fb=[`before:pointer-events-none`,`before:absolute`,`before:inset-0`,`before:-z-1`,`before:rounded-[inherit]`,`[a,button]:before:transition-[opacity,background-color,border-color]`,`[a,button]:before:duration-250`,`motion-reduce:[a,button]:before:transition-none`],pb=xl(`relative isolate inline-flex shrink-0 items-center justify-center rounded-full whitespace-nowrap outline-offset-1 select-none [&_svg]:shrink-0 [a,button]:transform-gpu [a,button]:cursor-pointer [a,button]:transition [a,button]:duration-250 [a,button]:ease-[cubic-bezier(0.175,0.885,0.32,1.5)] [a,button]:not-data-popup-open:active:translate-y-px [a,button]:not-data-popup-open:active:scale-[0.97] [a,button]:not-data-popup-open:active:duration-100 [a,button]:not-data-popup-open:active:ease-in-out motion-reduce:[a,button]:transition-none`,{variants:{variant:{primary:Q(fb,`bg-primary text-primary-foreground outline-ring-primary [a,button]:before:bg-[radial-gradient(138.15%_78.13%_at_52.05%_50%,var(--primary)_0%,var(--primary-muted)_75%)] [a,button]:before:opacity-0`,`[a,button]:hover:before:opacity-100`,`[a,button]:data-pressed:before:opacity-100`,`[a,button]:data-popup-open:before:opacity-100`),"primary-outline":Q(fb,`text-primary before:border before:border-primary outline-ring-primary`,`[a,button]:hover:before:bg-primary [a,button]:hover:text-primary-foreground`,`[a,button]:data-pressed:before:bg-primary [a,button]:data-pressed:text-primary-foreground`,`[a,button]:data-popup-open:before:bg-primary [a,button]:data-popup-open:text-primary-foreground`),secondary:Q(fb,`bg-secondary-muted text-secondary-foreground outline-ring-secondary [a,button]:before:bg-[radial-gradient(138.15%_78.13%_at_52.05%_50%,var(--secondary)_0%,var(--secondary-muted)_95%)] [a,button]:before:opacity-0`,`[a,button]:hover:before:opacity-100`,`[a,button]:data-pressed:before:opacity-100`,`[a,button]:data-popup-open:before:opacity-100`),soft:Q(fb,`text-foreground-intense before:bg-background-muted before:backdrop-blur-md [a,button]:before:border [a,button]:before:border-transparent outline-ring`,`data-[slot=breadcrumb-link]:not-data-active:text-foreground-muted data-[slot=breadcrumb-link]:hover:text-foreground-intense`,`[a,button]:hover:before:bg-background-subtle [a,button]:hover:before:border-border`,`[a,button]:data-pressed:before:bg-background-subtle [a,button]:data-pressed:before:border-border`,`[a,button]:data-popup-open:before:bg-background-subtle [a,button]:data-popup-open:before:border-border`,`data-active:before:bg-background-subtle data-active:border data-active:before:border-border`),outline:Q(fb,`bg-background text-foreground-intense before:bg-background before:border-border before:border outline-ring`,`data-[slot=breadcrumb-link]:not-data-active:text-foreground-muted data-[slot=breadcrumb-link]:hover:text-foreground-intense`,`[a,button]:hover:before:bg-background-subtle [a,button]:hover:before:border-border-strong`,`[a,button]:data-pressed:before:bg-background-subtle [a,button]:data-pressed:before:border-border-strong`,`[a,button]:data-popup-open:before:bg-background-subtle [a,button]:data-popup-open:before:border-border-strong`,`data-active:before:bg-background-subtle data-active:before:border-border-strong`),error:Q(fb,`bg-error-muted text-error-foreground outline-ring-error [a,button]:before:bg-[radial-gradient(138.15%_78.13%_at_52.05%_50%,var(--error-muted)_0%,rgba(255,255,255,.5)_95%)] [a,button]:before:opacity-0`,`[a,button]:hover:before:opacity-100`,`[a,button]:data-pressed:before:opacity-100`,`[a,button]:data-popup-open:before:opacity-100`),success:Q(fb,`bg-success-muted text-success-foreground outline-ring-success [a,button]:before:bg-[radial-gradient(138.15%_78.13%_at_52.05%_50%,var(--success-muted)_0%,rgba(255,255,255,.5)_95%)] [a,button]:before:opacity-0`,`[a,button]:hover:before:opacity-100`,`[a,button]:data-pressed:before:opacity-100`,`[a,button]:data-popup-open:before:opacity-100`),warning:Q(fb,`bg-warning-muted text-warning-foreground outline-ring-warning [a,button]:before:bg-[radial-gradient(138.15%_78.13%_at_52.05%_50%,var(--warning-muted)_0%,rgba(255,255,255,.5)_95%)] [a,button]:before:opacity-0`,`[a,button]:hover:before:opacity-100`,`[a,button]:data-pressed:before:opacity-100`,`[a,button]:data-popup-open:before:opacity-100`),info:Q(fb,`bg-info-muted text-info-foreground outline-ring-info [a,button]:before:bg-[radial-gradient(138.15%_78.13%_at_52.05%_50%,var(--info-muted)_0%,rgba(255,255,255,.5)_95%)] [a,button]:before:opacity-0`,`[a,button]:hover:before:opacity-100`,`[a,button]:data-pressed:before:opacity-100`,`[a,button]:data-popup-open:before:opacity-100`),light:Q(fb,`text-white before:bg-white/10 before:border-white/10 before:border before:backdrop-blur-md outline-ring-light`,`[a,button]:hover:before:bg-white/15 [a,button]:hover:before:border-white/15`,`[a,button]:data-pressed:before:bg-white/15 [a,button]:data-pressed:before:border-white/15`,`[a,button]:data-popup-open:before:bg-white/15 [a,button]:data-popup-open:before:border-white/15`,`data-active:before:bg-white/15 data-active:before:border-white/15`)},size:{xs:`h-4 w-fit gap-0.5 px-1.5 text-[.625rem] has-data-[icon=end]:pe-1.25 has-data-[icon=start]:ps-1.25 [&_svg:not([class*='size-'])]:size-2.5 [&_svg:not([class*='stroke-'])]:stroke-2`,sm:`h-5 w-fit gap-0.5 px-2 text-xs has-data-[icon=end]:pe-1.5 has-data-[icon=start]:ps-1.5 [&_svg:not([class*='size-'])]:size-3 [&_svg:not([class*='stroke-'])]:stroke-[1.85]`,md:`h-6 w-fit gap-0.75 px-2.5 text-xs has-data-[icon=end]:pe-1.75 has-data-[icon=start]:ps-1.75 [&_svg:not([class*='size-'])]:size-3.5 [&_svg:not([class*='stroke-'])]:stroke-[1.75]`,lg:`h-7 w-fit gap-1 px-3 text-sm has-data-[icon=end]:pe-2.25 has-data-[icon=start]:ps-2.25 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='stroke-'])]:stroke-[1.75]`,"icon-sm":`h-5 w-5 [&_svg:not([class*='size-'])]:size-3 [&_svg:not([class*='stroke-'])]:stroke-[1.85]`,"icon-md":`h-6 w-6 [&_svg:not([class*='size-'])]:size-3.5 [&_svg:not([class*='stroke-'])]:stroke-[1.75]`,"icon-lg":`h-7 w-7 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='stroke-'])]:stroke-[1.75]`}},defaultVariants:{variant:`primary`,size:`md`}});function mb({className:e,variant:t,size:n,render:r,...i}){let a=g.isValidElement(r)?r.props:void 0,o=g.isValidElement(r)&&(r.type===`a`||r.type===`button`)||i.onClick!=null||a?.href!=null||a?.onClick!=null||a?.tabIndex!=null;return db({defaultTagName:`span`,render:r,state:{variant:t,size:n},props:hr({"data-slot":`badge`,...o?vl():{},className:Q(pb({variant:t,size:n}),e)},i)})}var hb=g.forwardRef(function(e,t){let{render:n,className:r,disabled:i=!1,focusableWhenDisabled:a=!1,nativeButton:o=!0,style:s,...c}=e,{getButtonProps:l,buttonRef:u}=ji({disabled:i,focusableWhenDisabled:a,native:o});return kr(`button`,e,{state:{disabled:i},ref:[t,u],props:[c,l]})}),gb=g.createContext(null);function _b({className:e,variant:t,size:n,disabled:r,...i}){let a=g.useContext(gb),o=t??a?.variant,s=n??a?.size,c=r||a?.disabled;return(0,Y.jsx)(hb,{"data-slot":`button`,disabled:c,className:Q(Cl({variant:o,size:s}),e),...i})}function vb(e,t,n,r,i){return g.isValidElement(t)?g.cloneElement(t,{...i,...t.props,className:Q(n,t.props.className,r)}):g.createElement(e,{...i,className:Q(n,r)})}var yb=`[--card-radius:var(--radius-xl)]`,bb=`rounded-[calc(var(--card-radius)*4/3)]`,xb={none:`rounded-(--card-radius)`,solid:Q(bb,`bg-background-muted/60 p-2 backdrop-blur-xl dark:bg-background-subtle`),glass:Q(bb,`border border-white/15 bg-white/10 p-2 backdrop-blur-sm`)},Sb={none:`border`,solid:`border-border-muted border`,glass:``};function Cb({frame:e=!1,inset:t=!0,className:n,contentProps:r,render:i,children:a,...o}){let s=e===!0?`solid`:e===!1?`none`:e;return vb(`div`,i,Q(`group/card flex flex-col`,yb,xb[s]),n,{"data-slot":`card`,"data-frame":s,...t?{"data-inset":``}:{},...o,children:(0,Y.jsx)(`div`,{"data-slot":`card-content`,...r,className:Q(`bg-background flex min-h-0 flex-1 flex-col overflow-hidden rounded-(--card-radius)`,t&&`p-2`,Sb[s],r?.className),children:a})})}function wb({className:e,...t}){return(0,Y.jsx)(`div`,{"data-slot":`card-header`,className:Q(`flex flex-1 flex-col gap-1.5 p-6 group-data-inset/card:px-4`,e),...t})}function Tb({className:e,render:t,...n}){return vb(`h3`,t,`text-foreground-intense text-lg font-semibold`,e,{"data-slot":`card-title`,...n})}function Eb({controlled:e,default:t,name:n,state:r=`value`}){let{current:i}=g.useRef(e!==void 0),[a,o]=g.useState(t);return[i&&e!==void 0?e:a,g.useCallback(e=>{i||o(e)},[])]}function Db(e){return bi(e,`base-ui`)}var Ob=g.createContext(void 0);function kb(){let e=g.useContext(Ob);if(e===void 0)throw Error(S(63));return e}var Ab=`data-valid`,jb=`data-invalid`,Mb={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},Nb={disabled:!1,valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},Pb={valid(e){return e===null?null:e?{[Ab]:``}:{[jb]:``}}},Fb=`data-checked`,Ib=`data-unchecked`,Lb={...Pb,checked(e){return e?{[Fb]:``}:{[Ib]:``}}},Rb={invalid:void 0,name:void 0,validityData:{state:Mb,errors:[],error:``,value:``,initialValue:null},setValidityData:p,disabled:void 0,setTouched:p,setDirty:p,setFilled:p,setFocused:p,validationMode:`onSubmit`,shouldValidateOnChange:()=>!1,state:Nb,registerFieldControl:p,validation:{getValidationProps:(e,t=h)=>t,inputRef:{current:null},registeredInputs:new Map,registerInput:p,getInputControl:()=>null,commit:async()=>{},change:p}},zb=g.createContext(Rb);function Bb(e=!0){let t=g.useContext(zb);if(t.setValidityData===p&&!e)throw Error(S(28));return t}function Vb(e,t,n,r,i=!0,a){let{registerFieldControl:o}=Bb(),s=y(()=>Symbol());b(()=>{let c=s.current;if(!i){o(c,void 0);return}o(c,{controlRef:e,getValue:r,id:t,name:a,value:n})},[e,i,r,t,a,o,s,n]),b(()=>{let e=s.current;return()=>{o(e,void 0)}},[o,s])}var Hb=g.createContext({elementRef:{current:null},formRef:{current:{fields:new Map}},errors:{},clearErrors:p,validationMode:`onSubmit`,submitCountRef:{current:0}});function Ub(){return g.useContext(Hb)}var Wb=g.createContext({controlId:void 0,registerControlId:p,resetControlId:p,labelId:void 0,setLabelId:p,messageIds:[],setMessageIds:p,getDescriptionProps:e=>e});function Gb(){return g.useContext(Wb)}function Kb(e,t,n,r=!0,i){let[a,o]=g.useState(),s=Db(i?`${i}-label`:void 0),c=e??t??a;return b(()=>{let i=e||t||!r?void 0:qb(n.current,s);a!==i&&o(i)}),c}function qb(e,t){let n=Jb(e);if(n)return!n.id&&t&&(n.id=t),n.id||void 0}function Jb(e){if(!e)return;let t=e.parentElement;if(t&&t.tagName===`LABEL`)return t;let n=e.id;if(n){let t=e.nextElementSibling;if(t&&t.htmlFor===n)return t}let r=e.labels;return r&&r[0]}function Yb(e={}){let{id:t,enabled:n=!0}=e,{controlId:r,registerControlId:i,resetControlId:a}=Gb(),o=Db(),s=y(()=>Symbol()),c=g.useRef(!1),l=g.useRef(!1),u=G(()=>{c.current&&i!==p&&(c.current=!1,i(s.current,void 0))});return b(()=>{if(!n||i===p){u();return}let e;if(t!==void 0)l.current=!0,e=t;else if(l.current)e=o;else{a();return}if(e===void 0){u();return}c.current=!0,i(s.current,e)},[t,n,i,a,o,s,u]),b(()=>u,[u]),(n?r:void 0)??t??o}function Xb(e,t){let n=g.useRef(e),r=G(t);b(()=>{n.current!==e&&r(n.current),n.current=e},[e,r])}var Zb=g.forwardRef(function(e,t){let{checked:n,className:r,defaultChecked:i,"aria-labelledby":a,form:o,id:s,inputRef:c,name:l,nativeButton:u=!1,onCheckedChange:d,readOnly:f=!1,required:p=!1,disabled:m=!1,render:_,uncheckedValue:v,value:y,style:x,...S}=e,{clearErrors:C}=Ub(),{state:w,setTouched:T,setDirty:E,validityData:D,setFilled:O,setFocused:k,validationMode:A,disabled:j,name:M,validation:N}=Bb(),{labelId:P}=Gb(),F=j||m,I=M??l,L=g.useRef(null),R=rr(L,c,N.inputRef),z=g.useRef(null),B=Db(),V=Yb({id:s}),H=u?void 0:V,[ee,U]=Eb({controlled:n,default:!!i,name:`Switch`,state:`checked`});Vb(z,B,ee,void 0,!F,l),b(()=>{O(ee)},[ee,O]),Xb(ee,()=>{C(I),E(ee!==D.initialValue),N.change(ee)});let{getButtonProps:te,buttonRef:W}=ji({disabled:F,native:u}),ne=Kb(a,P,L,!u,H),G={id:u?V:B,role:`switch`,"aria-checked":ee,"aria-readonly":f||void 0,"aria-required":p||void 0,"aria-labelledby":ne,onFocus(){F||k(!0)},onBlur(){let e=L.current;e&&!F&&(T(!0),k(!1),A===`onBlur`&&N.commit(e.checked))},onClick(e){if(f||F)return;e.preventDefault();let t=L.current;t&&Ai(t,e)}},K={...N.getValidationProps(F),checked:ee,disabled:F,form:o,id:H,name:I,required:p,style:I?tr:er,tabIndex:-1,type:`checkbox`,"aria-hidden":!0,ref:R,onChange(e){if(e.nativeEvent.defaultPrevented)return;if(f){e.preventDefault();return}let t=e.currentTarget.checked,n=qi(Ii,e.nativeEvent);d?.(t,n),!n.isCanceled&&U(t)},onClick(e){e.stopPropagation()},onFocus(){z.current?.focus()},...y===void 0?h:{value:y}},q=g.useMemo(()=>({...w,checked:ee,disabled:F,readOnly:f,required:p}),[w,ee,F,f,p]),re=kr(`span`,e,{state:q,ref:[t,z,W],props:[G,S,te,e=>N.getValidationProps(F,e)],stateAttributesMapping:Lb});return(0,Y.jsxs)(Ob.Provider,{value:q,children:[re,!ee&&I&&v!==void 0&&(0,Y.jsx)(`input`,{type:`hidden`,form:o,name:I,value:v,disabled:F}),(0,Y.jsx)(`input`,{...K,suppressHydrationWarning:!0})]})}),Qb=g.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e;return kr(`span`,e,{state:kb(),ref:t,stateAttributesMapping:Lb,props:a})}),$b={sm:{root:`h-4 w-7.5`,thumb:`size-3`,thumbWidthKeyframes:[`0.75rem`,`1.25rem`,`0.75rem`],thumbXKeyframes:[0,`0.3125rem`,`0.875rem`],check:`size-2.5`},md:{root:`h-5 w-9.5`,thumb:`size-4`,thumbWidthKeyframes:[`1rem`,`1.6875rem`,`1rem`],thumbXKeyframes:[0,`0.4375rem`,`1.125rem`],check:`size-3`},lg:{root:`h-6 w-11.5`,thumb:`size-5`,thumbWidthKeyframes:[`1.25rem`,`2.125rem`,`1.25rem`],thumbXKeyframes:[0,`0.5rem`,`1.375rem`],check:`size-4`}},ex={duration:.25,ease:[.4,0,.2,1]};function tx(e,t){return t===1?[...e]:e.map(e=>typeof e==`number`?-e:`-${e}`)}function nx({renderProps:e,state:t,dirSign:n,sizeConfig:r,reduced:i}){let{checked:a}=t,{ref:o,onDrag:s,onDragStart:c,onDragEnd:l,onAnimationStart:u,onAnimationEnd:d,...f}=e,p=g.useMemo(()=>{let e=tx(r.thumbXKeyframes,n);return a?e:e.reverse()},[a,n,r]),m=p[p.length-1],[h,_]=Ey(),v=_l(o,h),y=g.useRef(a);return g.useEffect(()=>{let e=y.current!==a;y.current=a,e&&!i?_(h.current,{x:p,width:r.thumbWidthKeyframes},ex):_(h.current,{x:m},{duration:0})},[a,r,_,h,i,p,m]),(0,Y.jsx)(Dy.span,{...f,ref:v,initial:{x:m},children:(0,Y.jsx)(Dy.svg,{className:Q(`text-foreground-intense`,r.check),xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 12 12`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,style:{strokeDasharray:12},initial:!1,animate:{strokeDashoffset:a?0:12},transition:i?{duration:0}:{strokeDashoffset:{duration:a?.3:0,ease:`easeOut`,delay:a?.25:0}},children:(0,Y.jsx)(`path`,{d:`M3 6l2 2 4-4`})})})}function rx({className:e,size:t=`md`,...n}){let r=xs()===`rtl`?-1:1,i=$b[t],a=jy(),o=n[`aria-invalid`],s=o===!0||o===`true`;return(0,Y.jsx)(U_,{features:Jv,strict:!0,children:(0,Y.jsx)(Zb,{"data-slot":`switch`,className:Q(`bg-background-strong outline-ring flex shrink-0 rounded-full border border-transparent p-px outline-offset-1`,i.root,`transition-background duration-200 motion-reduce:transition-none`,`data-checked:bg-primary data-checked:outline-ring-primary`,`data-disabled:not-data-checked:border-border-strong data-disabled:opacity-disabled data-disabled:cursor-not-allowed data-disabled:not-data-checked:border-dashed`,`data-invalid:border-error data-invalid:not-data-checked:bg-error-subtle data-invalid:outline-ring-error`,e),...n,...s?{"data-invalid":``}:{},children:(0,Y.jsx)(Qb,{"data-slot":`switch-thumb`,className:Q(`group flex items-center justify-center rounded-full bg-white shadow-2xs`,i.thumb,`data-checked:bg-primary-foreground`),render:(e,t)=>(0,Y.jsx)(nx,{renderProps:e,state:t,dirSign:r,sizeConfig:i,reduced:a})})})})}function ix(...e){return e.filter(Boolean).join(` `)}var ax={ok:`bg-success`,warn:`bg-warning`,error:`bg-error`,off:`bg-foreground-subtle`},ox={ok:`text-success`,warn:`text-warning`,error:`text-error`,off:`text-foreground-muted`};function sx(e){if(e==null||e===0||e===``)return`—`;let t=new Date(e);return Number.isNaN(t.getTime())?String(e):t.toLocaleString(`zh-CN`,{hour12:!1})}function cx(e){return e===`connected`?`ok`:e===`error`?`error`:e===`connecting`?`warn`:`off`}function lx(e){return{connected:`已连接`,connecting:`连接中`,error:`被关闭`,off:`未启用`}[e]??e}function ux(e,t){return t?e===`listening`?`ok`:e===`error`?`error`:`warn`:`off`}function dx(e,t){return t?e===`listening`?`正在监听`:e===`error`?`启动失败`:e:`未启用`}function fx(e){return{healthy:`运行中`,starting:`启动中`,restarting:`正在重启`,error:`异常`,stopped:`已停止`}[e]??e}function px({tone:e}){return(0,Y.jsx)(`span`,{className:ix(`inline-block size-2 shrink-0 rounded-full`,ax[e]),"aria-hidden":!0})}function mx({label:e,tone:t,mono:n,children:r}){return(0,Y.jsxs)(`div`,{className:`flex items-baseline justify-between gap-4 border-b border-border-muted py-2 last:border-b-0`,children:[(0,Y.jsx)(`dt`,{className:`shrink-0 text-sm text-foreground-muted`,children:e}),(0,Y.jsx)(`dd`,{className:ix(`min-w-0 text-right text-sm break-all`,n?`font-mono text-xs text-foreground-strong`:`text-foreground`,t&&ox[t]),children:r})]})}function hx({children:e}){return(0,Y.jsx)(`dl`,{className:`mt-1`,children:e})}function gx({tone:e,text:t,detail:n}){return(0,Y.jsxs)(`span`,{className:`inline-flex flex-wrap items-center justify-end gap-x-2`,children:[(0,Y.jsx)(px,{tone:e}),(0,Y.jsx)(`span`,{children:t}),n?(0,Y.jsx)(`span`,{className:`text-xs text-foreground-muted`,children:n}):null]})}function _x({on:e,what:t,label:n,className:r,disabled:i,onClick:a}){let o=n??(e?`隐藏`:`显示`);return(0,Y.jsx)(_b,{variant:`ghost`,size:`sm`,className:r,"aria-label":`${o}${t}`,disabled:i,onClick:a,children:o})}function vx({status:e,busy:t,onToggle:n,onOpenLan:r}){let i=e.tunnel,a=e.enabled,[o,s]=g.useState(!1);return(0,Y.jsxs)(Cb,{frame:`solid`,children:[(0,Y.jsx)(wb,{children:(0,Y.jsxs)(Tb,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{children:`连接状态`}),(0,Y.jsx)(mb,{variant:a?`success`:`secondary`,size:`sm`,children:a?`已启用`:`已停用`})]})}),(0,Y.jsxs)(`label`,{className:`flex items-center justify-between gap-4 border-b border-border-muted py-3`,children:[(0,Y.jsx)(`span`,{className:`text-sm text-foreground-muted`,children:`远程控制`}),(0,Y.jsx)(rx,{size:`md`,checked:a,disabled:t!==``,onCheckedChange:e=>n(e),"aria-label":`远程控制`})]}),(0,Y.jsxs)(hx,{children:[(0,Y.jsx)(mx,{label:`插件版本`,mono:!0,children:e.appVersion||`—`}),(0,Y.jsx)(mx,{label:`设备名`,children:e.name||`—`}),(0,Y.jsx)(mx,{label:`实例 ID`,mono:!0,children:e.instanceId||`—`}),(0,Y.jsxs)(mx,{label:`平台`,children:[e.platform,` `,e.osVersion,` · `,e.arch]}),(0,Y.jsx)(mx,{label:`中转地址`,children:(0,Y.jsxs)(`span`,{className:`inline-flex min-w-0 flex-wrap items-center justify-end gap-x-2 gap-y-1`,children:[o?(0,Y.jsx)(`span`,{className:`min-w-0 font-mono text-xs text-foreground-strong`,children:e.relayUrl||`—`}):(0,Y.jsx)(`span`,{className:`text-xs text-foreground-subtle`,children:`已隐藏`}),(0,Y.jsx)(_x,{on:o,what:`中转地址`,label:o?`隐藏`:`显示`,onClick:()=>s(e=>!e)})]})}),(0,Y.jsx)(mx,{label:`中转隧道`,tone:cx(i.state),...i.state===`error`&&i.error?{"data-error":i.error}:{},children:(0,Y.jsx)(gx,{tone:cx(i.state),text:lx(i.state),...i.error?{detail:i.error}:{}})}),(0,Y.jsx)(mx,{label:`局域网直连`,children:(0,Y.jsx)(_b,{variant:`outline`,size:`sm`,disabled:t!==``,onClick:r,"aria-label":`查看局域网直连`,children:`查看`})}),(0,Y.jsx)(mx,{label:`旁挂进程`,children:(0,Y.jsx)(gx,{tone:e.sidecar.state===`healthy`?`ok`:`warn`,text:fx(e.sidecar.state),...e.sidecar.restarts>0?{detail:`已重启 ${e.sidecar.restarts} 次`}:{}})}),(0,Y.jsx)(mx,{label:`会话镜像`,children:(0,Y.jsx)(gx,{tone:e.mirror.ok?`ok`:e.mirror.error?`error`:`warn`,text:e.mirror.ok?`推送正常`:`未推送`,detail:sx(e.mirror.pushedAt)})})]}),(0,Y.jsx)(yx,{status:e})]})}function yx({status:e}){let t=e.tunnel.admissionHint;return t?t===`register-secret`?(0,Y.jsxs)(ob,{variant:`warning`,className:`mt-3`,children:[(0,Y.jsx)(cb,{}),(0,Y.jsx)(lb,{children:`中转要求注册密钥`}),(0,Y.jsx)(ub,{children:`中转服务器开了准入,当前连接被拒绝。向中转的部署者索取注册密钥,填进上面的「中转配置 → 注册密钥」并保存。`})]}):(0,Y.jsxs)(ob,{variant:`warning`,className:`mt-3`,children:[(0,Y.jsx)(cb,{}),(0,Y.jsx)(lb,{children:`这台设备不被中转接受`}),(0,Y.jsx)(ub,{children:`中转开了实例白名单,而上面的实例 ID 不在名单里。把这个实例 ID 交给中转的部署者,让他加进 instances.json。`})]}):null}var bx=g.createContext(void 0);function xx(e){let t=g.useContext(bx);if(!e&&t===void 0)throw Error(S(27));return t}var Sx=g.forwardRef(function(e,t){let{render:n,className:r,style:i,forceRender:a=!1,...o}=e,s=xx(),c=s.useState(`open`),l=s.useState(`nested`),u=s.useState(`mounted`);return kr(`div`,e,{state:{open:c,transitionStatus:s.useState(`transitionStatus`)},ref:[s.context.backdropRef,t],stateAttributesMapping:kt,props:[{role:`presentation`,hidden:!u,style:{userSelect:`none`,WebkitUserSelect:`none`}},o],enabled:a||!l})}),Cx=g.forwardRef(function(e,t){let{render:n,className:r,style:i,disabled:a=!1,nativeButton:o=!0,...s}=e,c=xx(),l=c.useState(`open`),{getButtonProps:u,buttonRef:d}=ji({disabled:a,native:o}),f={disabled:a};function p(e){l&&c.setOpen(!1,qi(Bi,e.nativeEvent))}return kr(`button`,e,{state:f,ref:[t,d],props:[{onClick:p},s,u]})}),wx=g.createContext(void 0);function Tx(){let e=g.useContext(wx);if(e===void 0)throw Error(S(26));return e}var Ex=`ArrowUp`,Dx=`ArrowDown`,Ox=`ArrowLeft`,kx=`ArrowRight`,Ax=new Set([Ex,Dx,Ox,kx,`Home`,`End`]),jx=`Shift`,Mx=[jx,`Control`,`Alt`,`Meta`];function Nx(e){return de(e)&&e.tagName===`INPUT`}function Px(e){return!!(Nx(e)&&e.selectionStart!=null||de(e)&&e.tagName===`TEXTAREA`)}function Fx(e,t,n,r){if(!e||!t||!t.scrollTo)return;let i=e.scrollLeft,a=e.scrollTop,o=e.clientWidth<e.scrollWidth,s=e.clientHeight<e.scrollHeight;if(o&&r!==`vertical`){let r=Ix(e,t,`left`),a=Lx(e),o=Lx(t);n===`ltr`&&(r+t.offsetWidth+o.scrollMarginRight>e.scrollLeft+e.clientWidth-a.scrollPaddingRight?i=r+t.offsetWidth+o.scrollMarginRight-e.clientWidth+a.scrollPaddingRight:r-o.scrollMarginLeft<e.scrollLeft+a.scrollPaddingLeft&&(i=r-o.scrollMarginLeft-a.scrollPaddingLeft)),n===`rtl`&&(r-o.scrollMarginLeft<e.scrollLeft+a.scrollPaddingLeft?i=r-o.scrollMarginLeft-a.scrollPaddingLeft:r+t.offsetWidth+o.scrollMarginRight>e.scrollLeft+e.clientWidth-a.scrollPaddingRight&&(i=r+t.offsetWidth+o.scrollMarginRight-e.clientWidth+a.scrollPaddingRight))}if(s&&r!==`horizontal`){let n=Ix(e,t,`top`),r=Lx(e),i=Lx(t);n-i.scrollMarginTop<e.scrollTop+r.scrollPaddingTop?a=n-i.scrollMarginTop-r.scrollPaddingTop:n+t.offsetHeight+i.scrollMarginBottom>e.scrollTop+e.clientHeight-r.scrollPaddingBottom&&(a=n+t.offsetHeight+i.scrollMarginBottom-e.clientHeight+r.scrollPaddingBottom)}e.scrollTo({left:i,top:a,behavior:`auto`})}function Ix(e,t,n){let r=n===`left`?`offsetLeft`:`offsetTop`,i=0;for(;t.offsetParent&&(i+=t[r],t.offsetParent!==e);)t=t.offsetParent;return i}function Lx(e){let t=getComputedStyle(e);return{scrollMarginTop:parseFloat(t.scrollMarginTop)||0,scrollMarginRight:parseFloat(t.scrollMarginRight)||0,scrollMarginBottom:parseFloat(t.scrollMarginBottom)||0,scrollMarginLeft:parseFloat(t.scrollMarginLeft)||0,scrollPaddingTop:parseFloat(t.scrollPaddingTop)||0,scrollPaddingRight:parseFloat(t.scrollPaddingRight)||0,scrollPaddingBottom:parseFloat(t.scrollPaddingBottom)||0,scrollPaddingLeft:parseFloat(t.scrollPaddingLeft)||0}}var Rx=`--nested-dialogs`,zx=`data-nested-dialog-open`,Bx={...Ot,...ht,nestedDialogOpen(e){return e?{[zx]:``}:null}},Vx=g.forwardRef(function(e,t){let{render:n,className:r,style:i,finalFocus:a,initialFocus:o,...s}=e,c=xx(),l=c.useState(`descriptionElementId`),u=c.useState(`disablePointerDismissal`),d=c.useState(`floatingRootContext`),f=c.useState(`popupProps`),p=c.useState(`modal`),m=c.useState(`mounted`),h=c.useState(`nested`),g=c.useState(`nestedOpenDialogCount`),_=c.useState(`open`),v=c.useState(`openMethod`),y=c.useState(`titleElementId`),b=c.useState(`transitionStatus`),x=c.useState(`role`),S=d.useState(`floatingId`);Tx(),Kr({open:_,ref:c.context.popupRef,onComplete(){_&&c.context.onOpenChangeComplete?.(!0)}});let C=o===void 0?Ko(c.context.popupRef):o,w=g>0,T=c.useStateSetter(`popupElement`),E=kr(`div`,e,{state:{open:_,nested:h,transitionStatus:b,nestedDialogOpen:w},props:[f,{id:S,"aria-labelledby":y,"aria-describedby":l,role:x,...Go,hidden:!m,onKeyDown(e){Ax.has(e.key)&&e.stopPropagation()},style:{[Rx]:g}},s],ref:[t,c.context.popupRef,T],stateAttributesMapping:Bx});return(0,Y.jsx)(ja,{context:d,openInteractionType:v,disabled:!m,closeOnFocusOut:!u,initialFocus:C,returnFocus:a,modal:p!==!1,restoreFocus:`popup`,children:E})}),Hx=g.forwardRef(function(e,t){let{cutout:n,...r}=e,i;if(n){let e=n.getBoundingClientRect();i=`polygon(0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,${e.left}px ${e.top}px,${e.left}px ${e.bottom}px,${e.right}px ${e.bottom}px,${e.right}px ${e.top}px,${e.left}px ${e.top}px)`}return(0,Y.jsx)(`div`,{ref:t,role:`presentation`,"data-base-ui-inert":``,...r,style:{position:`fixed`,inset:0,userSelect:`none`,WebkitUserSelect:`none`,clipPath:i}})}),Ux=g.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e,i=xx(),a=i.useState(`mounted`),o=i.useState(`modal`),s=i.useState(`open`);return a||n?(0,Y.jsx)(wx.Provider,{value:n,children:(0,Y.jsxs)($i,{ref:t,...r,children:[a&&o===!0&&(0,Y.jsx)(Hx,{ref:i.context.internalBackdropRef,inert:Rr(!s)}),e.children]})}):null}),Wx={},Gx={},Kx=``;function qx(e,t){return pe(e)?e:t}function Jx(e,t,n){return/hidden|clip/.test(e.getComputedStyle(qx(t,n)).overflowY)}function Yx(e){if(typeof document>`u`)return!1;let t=je(e);return J(t).innerWidth-t.documentElement.clientWidth>0}function Xx(e){if(!(typeof CSS<`u`&&CSS.supports&&CSS.supports(`scrollbar-gutter`,`stable`))||typeof document>`u`)return!1;let t=je(e),n=t.documentElement,r=t.body,i=qx(n,r),a=i.style.overflowY,o=n.style.scrollbarGutter;n.style.scrollbarGutter=`stable`,i.style.overflowY=`scroll`;let s=i.offsetWidth;i.style.overflowY=`hidden`;let c=i.offsetWidth;return i.style.overflowY=a,n.style.scrollbarGutter=o,s===c}function Zx(e){let t=je(e),n=t.documentElement,r=t.body,i=qx(n,r),a={overflowY:i.style.overflowY,overflowX:i.style.overflowX};return Object.assign(i.style,{overflowY:`hidden`,overflowX:`hidden`}),()=>{Object.assign(i.style,a)}}function Qx(e){let t=je(e),n=t.documentElement,r=t.body,i=J(n),a=0,o=0,s=!1,c=Fe.create();if(et&&(i.visualViewport?.scale??1)!==1)return()=>{};function l(){let t=i.getComputedStyle(n),c=i.getComputedStyle(r),l=(t.scrollbarGutter||``).includes(`both-edges`)?`stable both-edges`:`stable`;a=n.scrollTop,o=n.scrollLeft,Wx={scrollbarGutter:n.style.scrollbarGutter,overflowY:n.style.overflowY,overflowX:n.style.overflowX},Kx=n.style.scrollBehavior,Gx={position:r.style.position,height:r.style.height,width:r.style.width,boxSizing:r.style.boxSizing,overflowY:r.style.overflowY,overflowX:r.style.overflowX,scrollBehavior:r.style.scrollBehavior};let u=n.scrollHeight>n.clientHeight,d=n.scrollWidth>n.clientWidth,f=t.overflowY===`scroll`||c.overflowY===`scroll`,p=t.overflowX===`scroll`||c.overflowX===`scroll`,m=Math.max(0,i.innerWidth-r.clientWidth),h=Math.max(0,i.innerHeight-r.clientHeight),g=parseFloat(c.marginTop)+parseFloat(c.marginBottom),_=parseFloat(c.marginLeft)+parseFloat(c.marginRight),v=qx(n,r);if(s=Xx(e),s){n.style.scrollbarGutter=l,v.style.overflowY=`hidden`,v.style.overflowX=`hidden`;return}Object.assign(n.style,{scrollbarGutter:l,overflowY:`hidden`,overflowX:`hidden`}),(u||f)&&(n.style.overflowY=`scroll`),(d||p)&&(n.style.overflowX=`scroll`),Object.assign(r.style,{position:`relative`,height:g||h?`calc(100dvh - ${g+h}px)`:`100dvh`,width:_||m?`calc(100vw - ${_+m}px)`:`100vw`,boxSizing:`border-box`,overflowY:`hidden`,overflowX:`hidden`,scrollBehavior:`unset`}),r.scrollTop=a,r.scrollLeft=o,n.setAttribute(`data-base-ui-scroll-locked`,``),n.style.scrollBehavior=`unset`}function u(){Object.assign(n.style,Wx),Object.assign(r.style,Gx),s||(n.scrollTop=a,n.scrollLeft=o,n.removeAttribute(`data-base-ui-scroll-locked`),n.style.scrollBehavior=Kx)}function d(){u(),c.request(l)}l();let f=Me(i,`resize`,d);return()=>{c.cancel(),u(),typeof i.removeEventListener==`function`&&f()}}var $x=new class{lockCount=0;restore=null;timeoutLock=Re.create();timeoutUnlock=Re.create();acquire(e){return this.lockCount+=1,this.lockCount===1&&this.restore===null&&this.timeoutLock.start(0,()=>this.lock(e)),this.release}release=()=>{--this.lockCount,this.lockCount===0&&this.restore&&this.timeoutUnlock.start(0,this.unlock)};unlock=()=>{this.lockCount===0&&this.restore&&(this.restore?.(),this.restore=null)};lock(e){if(this.lockCount===0||this.restore!==null)return;let t=je(e),n=t.documentElement,r=t.body,i=J(n);if(Jx(i,n,r)){let t=new i.MutationObserver(()=>{Jx(i,n,r)||(t.disconnect(),this.restore=null,this.lock(e))}),a={attributes:!0};t.observe(n,a),t.observe(r,a),this.restore=()=>t.disconnect();return}let a=Ye||!Yx(e);this.restore=a?Zx(e):Qx(e)}};function eS(e=!0,t=null){b(()=>{if(e)return $x.acquire(t)},[e,t])}function tS({store:e,parentContext:t,isDrawer:n}){let r=e.useState(`open`),i=e.useState(`disablePointerDismissal`),a=e.useState(`modal`),o=e.useState(`popupElement`),s=e.useState(`floatingRootContext`),[c,l]=g.useState(0),[u,d]=g.useState(0),f=c===0,p=Fa(s,{outsidePressEvent(){return e.context.internalBackdropRef.current||e.context.backdropRef.current?`intentional`:{mouse:a===`trap-focus`?`sloppy`:`intentional`,touch:`sloppy`}},outsidePress(t){if(!e.context.outsidePressEnabledRef.current||`button`in t&&t.button!==0)return!1;if(`touches`in t){if(t.type===`touchend`){if(t.changedTouches.length!==1||t.touches.length!==0)return!1}else if(t.touches.length!==1)return!1}let n=at(t);if(f&&!i){if(a){let t=e.context.internalBackdropRef.current,r=e.context.backdropRef.current;return t||r?t===n||r===n||it(n,o)&&!n?.hasAttribute(`data-base-ui-portal`):!0}return!0}return!1},escapeKey:f});return eS(r&&a===!0,o),e.useContextCallback(`onNestedDialogOpen`,(e,t)=>{l(e),d(t)}),b(()=>(t?.onNestedDialogOpen&&(r?t.onNestedDialogOpen(c+1,u+ +!!n):t.onNestedDialogOpen(0,0)),()=>{t?.onNestedDialogOpen&&r&&t.onNestedDialogOpen(0,0)}),[n,r,c,u,t]),Qo(e,{activeTriggerProps:p.reference,inactiveTriggerProps:p.trigger,popupProps:p.floating,nestedOpenDialogCount:c,nestedOpenDrawerCount:u}),null}var nS=class extends re{setState(e){}update(e){}set(e,t){}notifyAll(){}},rS={...ss,modal:e=>e.modal,nested:e=>e.nested,nestedOpenDialogCount:e=>e.nestedOpenDialogCount,nestedOpenDrawerCount:e=>e.nestedOpenDrawerCount,disablePointerDismissal:e=>e.disablePointerDismissal,openMethod:e=>e.openMethod,descriptionElementId:e=>e.descriptionElementId,titleElementId:e=>e.titleElementId,viewportElement:e=>e.viewportElement,role:e=>e.role},iS=class extends re{constructor(e,t,n){let r=new es,i=oS(e,r,t,n);super(i,sS(r),rS)}setOpen=(e,t)=>{t.preventUnmountOnClose=()=>{this.set(`preventUnmountingOnClose`,!0)},!e&&t.trigger==null&&this.state.activeTriggerId!=null&&(t.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(e,t),!t.isCanceled&&(this.state.floatingRootContext.dispatchOpenChange(e,t),this.update(Yo(this.state,e,t.trigger)))}};function aS(){let e=new es;return new nS(Object.freeze(oS(void 0,e)),Object.freeze(sS(e)),rS)}function oS(e,t,n,r=!1){return{...ts(t,n,r),modal:!0,disablePointerDismissal:!1,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,nestedOpenDrawerCount:0,role:`dialog`,...e}}function sS(e){return{popupRef:g.createRef(),backdropRef:g.createRef(),internalBackdropRef:g.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:e,onOpenChange:void 0,onOpenChangeComplete:void 0}}function cS(e,t){let{children:n,open:r,defaultOpen:i=!1,onOpenChange:a,onOpenChangeComplete:o,disablePointerDismissal:s=!1,modal:c=!0,actionsRef:l,handle:u,triggerId:d,defaultTriggerId:f=null}=t,p=e===`drawer`,m=e===`alert-dialog`,h=m?!0:c,_=m||s,v=m?`alertdialog`:`dialog`,y=xx(!0),b={modal:h,disablePointerDismissal:_,nested:y!=null,role:v},x=qo((e,t)=>new iS({open:i,openProp:r,activeTriggerId:f,triggerIdProp:d,...b},e,t),!0);x.useControlledProp(`openProp`,r),x.useControlledProp(`triggerIdProp`,d),x.useSyncedValues(b),x.useContextCallback(`onOpenChange`,a),x.useContextCallback(`onOpenChangeComplete`,o);let S=x.useState(`open`),C=x.useState(`mounted`),w=x.useState(`payload`);$o(x,S),Xo(x);let{forceUnmount:T}=Zo(S,x);g.useImperativeHandle(l,()=>({unmount:T,close:()=>x.setOpen(!1,qi(Gi))}),[T,x]);let E=S||C;return(0,Y.jsxs)(bx.Provider,{value:x,children:[u&&(0,Y.jsx)(Jo,{handle:u,store:x}),E&&(0,Y.jsx)(tS,{store:x,parentContext:y?.context,isDrawer:p}),typeof n==`function`?n({payload:w}):n]})}var lS=F(function(e){return cS(`dialog`,e)}),uS=g.forwardRef(function(e,t){let{render:n,className:r,style:i,children:a,...o}=e,s=Tx(),c=xx(),l=c.useState(`open`),u=c.useState(`nested`),d=c.useState(`transitionStatus`),f=c.useState(`nestedOpenDialogCount`),p=c.useState(`mounted`),m=c.useStateSetter(`viewportElement`);return kr(`div`,e,{enabled:s||p,state:{open:l,nested:u,transitionStatus:d,nestedDialogOpen:f>0},ref:[t,m],stateAttributesMapping:Bx,props:[{role:`presentation`,hidden:!p,style:{pointerEvents:l?void 0:`none`},children:a},o]})}),dS=g.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,...o}=e,s=xx(),c=Db(a);return s.useSyncedValueWithCleanup(`titleElementId`,c),kr(`h2`,e,{ref:t,props:[{id:c},o]})});function fS(e){let t=g.useRef(``),n=g.useCallback(n=>{n.defaultPrevented||(t.current=n.pointerType,e(n,n.pointerType))},[e]);return{onClick:g.useCallback(n=>{if(n.detail===0){e(n,`keyboard`);return}`pointerType`in n?e(n,n.pointerType):e(n,t.current),t.current=``},[e]),onPointerDown:n}}function pS(e,t){let{onClick:n,onPointerDown:r}=fS(G((n,r)=>{(typeof e==`function`?e():e)||t(r||(Ye?`touch`:``))}));return g.useMemo(()=>({onClick:n,onPointerDown:r}),[n,r])}function mS(e){let[t,n]=g.useState(null),r=pS(e,n);return Xb(e,t=>{t&&!e&&n(null)}),g.useMemo(()=>({openMethod:t,triggerProps:r}),[t,r])}var hS=class extends Bo{constructor(){super(aS(),`Dialog`,!1)}open(e){this.openByTrigger(e)}openWithPayload(e){let t=this.attachedStore;t!==null&&(t.set(`payload`,e),t.setOpen(!0,qi(Gi)))}close(){this.closePopup()}get isOpen(){return this.attachedStore?.select(`open`)??!1}};function gS(){return new hS}var _S=[`container`,`keepMounted`];function vS(e){let{portalProps:t,...n}=e,r={...t},i={};for(let e of Object.keys(n)){let t=n[e];_S.includes(e)?t!==void 0&&(r[e]=t):i[e]=t}return{portal:r,popup:i}}var yS=Object.assign(function(e){return(0,Y.jsx)(lS,{...e})},{createHandle:gS});function bS({className:e,children:t,closeButton:n=!0,closeLabel:r=`Close`,backdrop:i=!0,frame:a=!0,backdropProps:o,viewportProps:s,...c}){let l=a&&i,{portal:u,popup:d}=vS(c);return(0,Y.jsxs)(Ux,{...u,children:[i&&(0,Y.jsx)(Sx,{"data-slot":`dialog-backdrop`,...o,className:Q(`fixed inset-0 z-50 bg-black/30 backdrop-blur-sm supports-[-webkit-touch-callout:none]:absolute`,`motion-safe:transition-opacity motion-safe:duration-250 motion-safe:ease-out`,`data-ending-style:motion-safe:opacity-0 data-starting-style:motion-safe:opacity-0`,o?.className)}),(0,Y.jsx)(uS,{"data-slot":`dialog-viewport`,...s,className:Q(`fixed inset-0 z-50 flex items-center justify-center overflow-hidden p-4`,s?.className),children:(0,Y.jsx)(Vx,{"data-slot":`dialog-popup`,...l?{"data-frame":``}:{},className:Q(`group/dialog-popup relative flex max-h-full min-h-0 w-150 max-w-full flex-col`,`rounded-2xl border`,l?`border-white/15 bg-white/10 p-1.5 backdrop-blur-sm`:`bg-background border-border-overlay`,!l&&`shadow-2xl`,`isolate transform-gpu outline-none`,`motion-safe:transition-[opacity,scale] motion-safe:duration-250 motion-safe:ease-[cubic-bezier(0.175,0.885,0.32,1.5)]`,`data-starting-style:motion-safe:scale-95 data-starting-style:motion-safe:opacity-0`,`data-ending-style:motion-safe:scale-95 data-ending-style:motion-safe:opacity-0 data-ending-style:motion-safe:duration-100 data-ending-style:motion-safe:ease-out`,`data-nested-dialog-open:pointer-events-none data-nested-dialog-open:scale-95 data-nested-dialog-open:opacity-0`,e),...d,children:(0,Y.jsxs)(`div`,{"data-slot":`dialog-content`,className:Q(`relative flex min-h-0 flex-col overflow-hidden not-has-[>[data-slot=dialog-footer]]:pb-6 not-has-[>[data-slot=dialog-header]]:pt-6 [&>[data-slot=dialog-header]+[data-slot=dialog-footer]]:pt-0`,l&&`bg-background rounded-[calc(var(--radius-2xl)*5/6)]`),children:[t,n&&(0,Y.jsx)(Cx,{"aria-label":r,"data-slot":`dialog-close-button`,className:Q(Cl({variant:`outline`,size:`icon-sm`}),`absolute inset-e-3 top-3 z-10`),children:(0,Y.jsx)(TS,{})})]})})})]})}function xS({className:e,...t}){return(0,Y.jsx)(`div`,{"data-slot":`dialog-header`,className:Q(`flex shrink-0 flex-col gap-2 p-6`,e),...t})}function SS({className:e,...t}){return(0,Y.jsx)(dS,{"data-slot":`dialog-title`,className:Q(`text-foreground-intense text-2xl font-semibold`,e),...t})}function CS({className:e,...t}){return(0,Y.jsx)(`div`,{"data-slot":`dialog-body`,className:Q(`min-h-0 flex-1 px-6`,e),...t})}function wS({className:e,...t}){return(0,Y.jsx)(`div`,{"data-slot":`dialog-footer`,className:Q(`flex flex-col-reverse gap-2 p-6 sm:flex-row sm:justify-end`,e),...t})}function TS(e){return(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,...e,children:(0,Y.jsx)(`path`,{d:`M11.594 3.594c.225-.225.588-.225.813 0s.225.588 0 .812L8.813 8l3.594 3.594c.225.225.225.588 0 .813s-.588.225-.812 0L8 8.812l-3.594 3.594c-.225.225-.588.225-.812 0s-.225-.588 0-.812L7.188 8 3.594 4.406c-.225-.225-.225-.588 0-.812s.588-.225.813 0L8 7.187l3.594-3.594z`})})}var ES=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxgAAAMYAQAAAABgBnzJAAAGdElEQVR42u2dXY7yOBBFbyY8IoWlsICWiPQtYFY8UtCwAJYCEo8deR4gxPFPOgE62MzJQ0Q3kNOmnL5UuVxVGP368ZdgwIABAwYMGDBg5MjYF86xevhywUu987M6F7V0LupidS5qSVKx6k/9s847mFcwYMCA8cMRk4rKdCfdIhHGPvXPDt+BPV7CKI11NE9dMHCpN+t5sRqc7N91om4/y30OAwYMGE/r+VDDPXl3XoI9XsnYP+uae076KoXPytHu3it3PPXBE8wrGDBgwHiFng+9ck/lrSewB4yJDEesPVHvg+7E22HAgAHjGT3vDkesTUzjibfDmLx+7i+Y96LuRSTQcxgwYMB43j8PL5iHHXL0/KX22JmXXdO9VIL+uZct10k+9zkMGDBg/Ip/7mfLSQZ7vNoebfGyCwYulUJ++8wT8woGDBgwns5vn3XCHk8exf+hrsEgKW7kR/QcBgwYMNAPGG9nOOvivkQ7YXUvq90X+sHedewBAwYMGOg5jIUYA+22ve1IWD3sswerzWAPGDBgwEDPYSzpnw+S1x1h9orK+JF3L+iOfw4DBgwY6DmMBfU8ugXNqejqFIQLP3I0HnvAgAEDBnoOYyk99/ehhfamOYF4T8/xz2HAgAEDPYeh966fe3vNf6jjai+Ye+lxVgYd9oABAwYM9BzGQuvn/rp4OAavSXXkBu469oABAwYM9BzG4no+Vpf9HOs8M7KbLcHP6ryR2lX2Nm83/TnncRxuVsl8HG034zd5j+Nwv03yHkcdeJShnp/76VR+Z2yPo6TKmJOkNjl7yEw+rsO4DmRnZhxLjeNk/1kq+x9P2vXPft8H3Q3o9hKVxpjbqftx8N605tVFqq6PTtIl3/vjKG2vj6qZN0ha46hVNreHTd76se4ebOcpSFLjaO/TSlpf/wnnao/7dCoz9s/PG0vE9/UcRU/X59zme58f+9tcWs/6x7vgOEKNzH/sgzp0yOPtWZKyR21PpvJzYjJ1tuNoPjBG1hBPfC+jzaPe66Cb+Wjp9ttx+tt+XeCVVvnXlL6XtCsZ5u6Ceq5Am/O4nt9jvGN73TJYPz+cP8Pmda56XnIPps04ZjuOOg89D7U5t6SvqX/ukx5p2ZJgvL3/vnv5iPvjK+V6MtGtatcQiWWB859TO2XpPEk9t766H5uqqfOcV2v7H9YfaXvMcxyldaOf7aB1fvf55R4iXUvltqizHEdzv0E22kr6Z7KkpzWO+6JH21nnkpieV7Ee5oM+K+uRFmwa7YmeqA5euvBVm+W8Kp2//DjZJ1k+3h7dV3690ZtDIRVjnVNDu96S6D84uNHbWoW0TnFdbdb33YPt4taTvywmd59fp0vdfG0kqWoy6msZOnbNSmrLU+b+x1Fqpcs6dz/qIjUbHU+55l810q655l6dZP5NK/9qRl5f0afzzYu+JzevvtJd55SVBeeks90e9fOqtHP8qmHKXJ8U56TRJZcPp+3XZ8RFJ+seMWSxfv7oG7cfMY7tHIukvF/tuGXfHYxp/nm0I+qkejIKlJJh/zkMGDBgoIMwlq736ihxOG9disfbw11XsQcMGDBgoOcwlu6vNtJuLdol1W147mx4wx4wYMCAgZ7DeE99uEgR95CKO0+8Jx8OBgwYMNBz7IGe+6Ve/YXwUPlXb5ubUwUe/xwGDBgw0HMYy+8/9/PcxtfKbSfd2XWedP12GDBgwEDPYbyasS/6Y/XWeLvjXo80T3NS5qL14bA5DBgwYPyenu8tn2tY3R17vIdR9oUDkhmHHzj3MuOcNDr0HAYMGDD0RJ2iynhlYO1CsE5d2OgFsMcDDNuzDrjX85z0VVqflVMfLuKLRxLgyG+HAQMGjAf1/C7bVbCmu1/gVQo0dMEecxmlU5fv4WNnvpPTc8cDd75xTCg5072DeQUDBgwYs/zzcAc180M/Fuu32OMBe9yWL+Z1mh8ebZHeZ+WsqQ889fAietzLZ17BgAEDxkQ9r0zEU/c7uBjto98KsMfv9mmIueYpflahlPWo9+5vPR/E5ZlXMGDAgDFHz6ON1/y+qpFeq9gDhrzaMeOL46GFdfafw4ABA8ZD/mCnyaOL46GFdTeXDns8YI+d+fDPypHtaS8euPDMKxgwYMCYE991g+4TX1yh54/bI7bynf9nFaod44Tap1abYV7BgAEDxvx4eyjUHorBB+Py2EPU94EBAwYMGDBgwIDx1PEfwPfvNJna2O0AAAAASUVORK5CYII=`,DS=`微信群二维码:用微信或企业微信扫码加入`;function OS(){return(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,className:`stroke-0`,fill:`currentColor`,"aria-hidden":`true`,children:(0,Y.jsx)(`path`,{d:`M8.691 2.188C3.891 2.188 0 5.476 0 9.53c0 2.212 1.17 4.203 3.002 5.55a.59.59 0 0 1 .213.665l-.39 1.48c-.019.07-.048.141-.048.213 0 .163.13.295.29.295a.326.326 0 0 0 .167-.054l1.903-1.114a.864.864 0 0 1 .717-.098 10.16 10.16 0 0 0 2.837.403c.276 0 .543-.027.811-.05-.857-2.578.157-4.972 1.932-6.446 1.703-1.415 3.882-1.98 5.853-1.838-.576-3.583-4.196-6.348-8.596-6.348zM5.785 5.991c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 0 1-1.162 1.178A1.17 1.17 0 0 1 4.623 7.17c0-.651.52-1.18 1.162-1.18zm5.813 0c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 0 1-1.162 1.178 1.17 1.17 0 0 1-1.162-1.178c0-.651.52-1.18 1.162-1.18zm5.34 2.867c-1.797-.052-3.746.512-5.28 1.786-1.72 1.428-2.687 3.72-1.78 6.22.942 2.453 3.666 4.229 6.884 4.229.826 0 1.622-.12 2.361-.336a.722.722 0 0 1 .598.082l1.584.926a.272.272 0 0 0 .14.047c.134 0 .24-.111.24-.247 0-.06-.023-.12-.038-.177l-.327-1.233a.582.582 0 0 1-.023-.156.49.49 0 0 1 .201-.398C23.024 18.48 24 16.82 24 14.98c0-3.21-2.931-5.837-6.656-6.088V8.89c-.135-.01-.27-.027-.407-.03zm-2.53 3.274c.535 0 .969.44.969.982a.976.976 0 0 1-.969.983.976.976 0 0 1-.969-.983c0-.542.434-.982.97-.982zm4.844 0c.535 0 .969.44.969.982a.976.976 0 0 1-.969.983.976.976 0 0 1-.969-.983c0-.542.434-.982.969-.982z`})})}function kS(){let[e,t]=(0,g.useState)(!1);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`pointer-events-none fixed end-6 bottom-6 z-40`,children:(0,Y.jsxs)(_b,{variant:`primary`,size:`lg`,className:`pointer-events-auto rounded-full shadow-lg`,onClick:()=>t(!0),children:[(0,Y.jsx)(OS,{}),`加入交流群`]})}),(0,Y.jsx)(yS,{open:e,onOpenChange:t,children:(0,Y.jsxs)(bS,{className:`max-w-sm`,children:[(0,Y.jsx)(SS,{className:`sr-only`,children:`加入交流群`}),(0,Y.jsx)(CS,{className:`flex justify-center`,children:(0,Y.jsx)(`img`,{src:ES,alt:DS,className:`w-full rounded-md`})})]})})]})}var AS=g.createContext(void 0);function jS(e=!1){let t=g.useContext(AS);if(!t&&!e)throw Error(S(86));return t}var MS=function(e){let t=Db(),[n,r]=g.useState(t),[i,a]=g.useState(),[o,s]=g.useState([]),c=n===void 0?t:n,l=y(()=>new Map),{messageIds:u}=Gb(),d=G((e,t)=>{let n=l.current;t===void 0?n.delete(e):n.set(e,t),r(e=>{if(n.size===0)return e;let t;for(let r of n.values()){if(r===e)return e;t===void 0&&(t=r)}return t})}),f=G(()=>{l.current.size===0&&r(t)}),p=g.useCallback(e=>{let t=e[`aria-describedby`]?e[`aria-describedby`].split(` `):[];return t.push(...u,...o),{...e,"aria-describedby":Array.from(new Set(t)).join(` `)||void 0}},[u,o]),m=g.useMemo(()=>({controlId:c,registerControlId:d,resetControlId:f,labelId:i,setLabelId:a,messageIds:o,setMessageIds:s,getDescriptionProps:p}),[c,d,f,i,a,o,s,p]);return(0,Y.jsx)(Wb.Provider,{value:m,children:e.children})};function NS(e,t){let n=Db(e);return b(()=>(t(n),()=>{t(e=>e===n?void 0:e)}),[n,t]),n}function PS(e={}){let{id:t,fallbackControlId:n,native:r=!1,setLabelId:i,focusControl:a}=e,{controlId:o,setLabelId:s}=Gb(),c=NS(t,G(e=>{s(e),i?.(e)})),l=o??n;function u(e){if(a){a(e,l);return}if(!l)return;let t=je(e.currentTarget).getElementById(l);de(t)&&FS(t)}function d(e){at(e.nativeEvent)?.closest(`button,input,select,textarea`)||(!e.defaultPrevented&&e.detail>1&&e.preventDefault(),!r&&u(e))}return r?{id:c,htmlFor:l,onMouseDown:d}:{id:c,onClick:d,onPointerDown(e){e.preventDefault()}}}function FS(e){e.focus({focusVisible:!0})}function IS(e,t){return{...e,state:{...e.state,valid:!t&&e.state.valid}}}var LS=Object.keys(Mb);function RS(e,t){return e.matches(`:disabled`)?!1:!t||e.form===t||e.form===null&&!e.hasAttribute(`form`)}function zS(e,t){let n=null;for(let r of e.keys())if(RS(r,t)){if(!r.validity.valid)return r;n??=r}return n}function BS(e){return{...Mb,valid:!e,customError:e}}function VS(e){return e&&e.validationMessage?[e.validationMessage]:[]}function HS(e){let{elementRef:t,formRef:n}=Ub(),{setValidityData:r,validate:i,validityData:a,validationDebounceTime:o,invalid:s,markedDirtyRef:c,state:l,shouldValidateOnChange:u,validationMode:d,registeredFieldIdRef:f}=e,{controlId:p,getDescriptionProps:m}=Gb(),_=ze(),v=g.useRef(null),b=y(()=>new Map).current,x=g.useRef(0),S=g.useRef(null),C=g.useCallback((e,t)=>(b.set(e,t),()=>{b.delete(e)}),[b]),w=G(()=>{let e=zS(b,t.current);return e&&b.get(e)?.controlRef.current||null}),T=G(async(e,o=!1)=>{x.current+=1;let m=x.current;function h(e,t=s){let r=f.current??p;if(r==null)return;let i=n.current.fields.get(r);if(!i)return;let a=IS(e,t);n.current.fields.set(r,{...i,validityData:a})}function g(t,n){let r=t.valid===!1?n:[];return{value:e,state:t,error:r[0]??``,errors:r,initialValue:a.initialValue}}function y(e,t){let n=e.validity.customError?e.validationMessage:``,r=t.replace(/\r\n?/g,`
|
|
24
24
|
`);e.setCustomValidity(r),S.current=[e,r,n]}function C(){let e=S.current;S.current=null,e&&(!e[0].willValidate||e[0].validationMessage===e[1])&&e[0].setCustomValidity(e[2])}function w(e,t,n){let i=g(e,t);h(i,n),r(i)}function T(e){let t=LS.reduce((t,n)=>(t[n]=e.validity[n],t),{}),n=!1;for(let e of LS)if(e!==`valid`){if(e===`valueMissing`&&t[e])n=!0;else if(t[e])return t}return n&&!c.current&&(t.valid=!0,t.valueMissing=!1),t}function E(){return b.size>0?zS(b,t.current):v.current}let D=E();function O(){return D=E(),D?.willValidate?T(D):BS(!1)}if(o){if(l.valid!==!1||!D)return;if(!D.validity.valueMissing){C();let e=E(),t=e?.validity.customError?VS(e):[];w(BS(t.length>0),t,!1);return}for(let e of LS)if(e!==`valid`&&e!==`valueMissing`&&e!==`customError`&&D.validity[e])return}_.clear(),C();let k=O(),A=VS(D),j=u();if(A.length===0||j){let t=Array.from(n.current.fields.values()).reduce((e,t)=>(t.name&&(e[t.name]=t.getValue()),e),{}),r=i(e,t),o;if(typeof r==`object`&&r&&`then`in r){if(k.valid===!1?w(k,A):(d===`onSubmit`||!a.state.customError)&&(k.valid=null,w(k,A)),o=await r,m!==x.current)return;k=O()}else o=r;A=o?[].concat(o).filter(Boolean):[],A.length>0?(k.valid=!1,k.customError=!0,D?.willValidate&&y(D,A.join(`
|
|
25
25
|
`))):A=VS(D)}w(k,A)}),E=G((e,t=!1)=>{if(_.clear(),x.current+=1,t)return;let n=u();n&&e!==``&&o?_.start(o,()=>{T(e)}):T(e,!n)}),D=g.useCallback((e,t={})=>hr(m(t),l.valid===!1&&!l.disabled&&!e?{"aria-invalid":!0}:h),[m,l.disabled,l.valid]);return g.useMemo(()=>({getValidationProps:D,inputRef:v,registeredInputs:b,registerInput:C,getInputControl:w,commit:T,change:E}),[D,b,C,w,T,E])}function US(e){let{change:t,commit:n,invalid:r,markedDirtyRef:i,name:a,setRegisteredFieldName:o,registeredFieldIdRef:s,setValidityData:c,validityData:l}=e,{formRef:u}=Ub(),d=g.useRef(null),f=g.useRef(null),p=g.useRef(!1),m=G(()=>{let e=f.current;if(e)return e.getValue?e.getValue():e.value});function h(e){return e.value===void 0?m():e.value}let _=G(()=>{let e=f.current;if(i.current=!0,!e){n(l.value);return}n(h(e))});function v(){let e=f.current;e&&e.id&&u.current.fields.set(e.id,{getValue:m,name:a??e.name,controlRef:e.controlRef,validityData:IS(l,r),validate:_})}function y(e=f.current?.id){e&&u.current.fields.delete(e)}function x(e){if(p.current)return;p.current=!0;let t=h(e);c(e=>e.initialValue===t?e:{...e,initialValue:t})}return b(()=>{let e=f.current;e&&e.id&&(o(a?void 0:e.name),u.current.fields.set(e.id,{getValue:m,name:a??e.name,controlRef:e.controlRef,validityData:IS(l,r),validate:_}))},[u,m,r,a,o,_,l]),b(()=>{let e=u.current.fields;return()=>{let t=f.current?.id;t&&e.delete(t)}},[u]),[_,G((e,n)=>{if(!n){d.current===e&&(d.current=null,t(void 0,!0),y(),f.current=null,o(void 0),s.current=void 0);return}let r=f.current?.id,i=d.current;i&&i!==e&&t(void 0,!0),d.current=e,f.current=n,a||o(n.name),s.current=n.id,r&&r!==n.id&&y(r),x(n),v()})]}var WS=g.forwardRef(function(e,t){let{errors:n,validationMode:r,submitCountRef:i}=Ub(),{render:a,className:o,validate:s,validationDebounceTime:c=0,validationMode:l=r,name:u,disabled:d=!1,invalid:f,dirty:p,touched:m,actionsRef:h,style:_,...v}=e,y=jS(!0)?.disabled,x=G(s||(()=>null)),S=y||d,[C,w]=g.useState(!1),[T,E]=g.useState(!1),[D,O]=g.useState(!1),[k,A]=g.useState(!1),j=p??T,M=m??C,N=g.useRef(j),P=g.useRef(void 0),[F,I]=g.useState(),L=u??F;b(()=>{p!==void 0&&(N.current=p)},[p]);let R=G(e=>{p===void 0&&(e&&(N.current=!0),E(e))}),z=G(e=>{m===void 0&&w(e)}),B=G(()=>l===`onChange`||l===`onSubmit`&&i.current>0),V=L&&Object.hasOwn(n,L)?n[L]:null,H=!!(Array.isArray(V)?V.length:V),ee=f===!0||H,[U,te]=g.useState({state:Mb,error:``,errors:[],value:null,initialValue:null}),W=!ee&&(S?null:U.state.valid),ne=g.useMemo(()=>({disabled:S,touched:M,dirty:j,valid:W,filled:D,focused:k}),[S,M,j,W,D,k]),K=HS({setValidityData:te,validate:x,validityData:U,validationDebounceTime:c,invalid:ee,markedDirtyRef:N,state:ne,shouldValidateOnChange:B,validationMode:l,registeredFieldIdRef:P}),[q,re]=US({change:K.change,commit:K.commit,invalid:ee,markedDirtyRef:N,name:u,setRegisteredFieldName:I,registeredFieldIdRef:P,setValidityData:te,validityData:U});g.useImperativeHandle(h,()=>({validate:q}),[q]);let ie=g.useMemo(()=>({invalid:ee,name:L,validityData:U,setValidityData:te,disabled:S,setTouched:z,setDirty:R,setFilled:O,setFocused:A,validationMode:l,shouldValidateOnChange:B,state:ne,registerFieldControl:re,validation:K}),[ee,L,U,S,z,R,O,A,l,B,ne,re,K]),ae=kr(`div`,e,{ref:t,state:ne,props:v,stateAttributesMapping:Pb});return(0,Y.jsx)(zb.Provider,{value:ie,children:ae})}),GS=g.forwardRef(function(e,t){return(0,Y.jsx)(MS,{children:(0,Y.jsx)(WS,{...e,ref:t})})}),KS=g.createContext({disabled:!1});function qS(){return g.useContext(KS)}var JS=g.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,nativeLabel:o=!0,...s}=e,c=Bb(!1),l=qS(),{labelId:u}=Gb(),d={...c.state,disabled:c.disabled||l.disabled},f=g.useRef(null),p=PS({id:u??a,native:o});return kr(`label`,e,{ref:[t,f],state:d,props:[p,s],stateAttributesMapping:Pb})}),YS=g.forwardRef(function(e,t){let{render:n,className:r,id:i,name:a,value:o,disabled:s=!1,onValueChange:c,defaultValue:l,autoFocus:u=!1,style:d,...f}=e,{state:p,name:m,disabled:h,setTouched:_,setDirty:v,validityData:y,setFocused:x,setFilled:S,validationMode:C,validation:w}=Bb(),{clearErrors:T,elementRef:E,submitCountRef:D}=Ub(),O=h||s,k=m??a,A={...p,disabled:O},{labelId:j}=Gb(),M=Yb({id:i}),[N]=Eb({controlled:o,default:l,name:`FieldControl`,state:`value`}),P=o!==void 0,F=P?N:void 0,I=F==null?void 0:String(F),L=G(()=>w.inputRef.current?.value);Vb(w.inputRef,M,I,L,!O,a),b(()=>{let e=I??w.inputRef.current?.value;e!==void 0&&S(e!==``)},[I,w.inputRef,S]),Xb(I,()=>{I!==void 0&&(T(k),v(I!==(y.initialValue??``)),w.change(I))});let R=g.useRef(null),z=ze();return b(()=>{u&&R.current===rt(je(R.current))&&x(!0)},[u,x]),kr(`input`,e,{ref:[t,R],state:A,props:[{id:M,disabled:O,name:k,ref:w.inputRef,"aria-labelledby":j,autoFocus:u,...P?{value:F}:{defaultValue:l},onChange(e){let t=e.currentTarget.value,n=qi(Ii,e.nativeEvent);c?.(t,n),!P&&(v(t!==(y.initialValue??``)),S(t!==``),!e.nativeEvent.defaultPrevented&&!n.isCanceled&&(T(k),w.change(t)))},onFocus(){x(!0)},onBlur(e){if(_(!0),x(!1),C===`onBlur`){let t=e.currentTarget.value;w.commit(t),P&&queueMicrotask(()=>{let e=w.inputRef.current?.value;e!==void 0&&e!==t&&e!==(y.initialValue??``)&&w.commit(e)})}},onKeyDown(e){if(e.currentTarget.tagName===`INPUT`&&e.key===`Enter`){_(!0);let t=e.currentTarget.value,n=e.currentTarget.form;if(n&&n===E.current&&!e.defaultPrevented){let t=e.currentTarget,n=D.current;z.start(0,()=>{D.current===n&&w.commit(t.value)})}else w.commit(t)}}},f,e=>w.getValidationProps(O,e)],stateAttributesMapping:Pb})});function XS({className:e,...t}){return(0,Y.jsx)(GS,{"data-slot":`field`,className:Q(e),...t})}function ZS({className:e,...t}){return(0,Y.jsx)(JS,{"data-slot":`field-label`,className:Q(`text-foreground-intense mb-1.5 flex w-fit items-center text-sm font-medium select-none`,`data-disabled:opacity-disabled`,e),...t})}var QS=g.forwardRef(function(e,t){return(0,Y.jsx)(YS,{ref:t,...e})}),$S=xl(`w-full border text-foreground outline-none transition-[background-color,border-color,box-shadow] duration-200 motion-reduce:transition-none [&_svg]:pointer-events-none [&_svg]:shrink-0`,{variants:{variant:{outline:`bg-background border-border-strong hover:not-focus:not-focus-visible:not-has-focus:not-has-focus-visible:not-data-popup-open:not-has-data-popup-open:not-data-pressed:not-has-data-pressed:not-data-invalid:not-has-data-invalid:border-border-emphasis`,soft:`bg-background-muted border-transparent hover:not-focus:not-focus-visible:not-has-focus:not-has-focus-visible:not-data-popup-open:not-has-data-popup-open:not-data-pressed:not-has-data-pressed:not-data-invalid:not-has-data-invalid:border-border-strong`},size:{sm:`h-8 px-3 text-xs pointer-coarse:text-base rounded-sm gap-1.5 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='stroke-'])]:stroke-[1.75]`,md:`h-10 px-3.5 text-sm pointer-coarse:text-base rounded-md gap-2 [&_svg:not([class*='size-'])]:size-4.5 [&_svg:not([class*='stroke-'])]:stroke-[1.65]`,lg:`h-12 px-4 text-base rounded-lg gap-2 [&_svg:not([class*='size-'])]:size-5 [&_svg:not([class*='stroke-'])]:stroke-[1.65]`},state:{self:Q(`focus-visible:ring-3 focus-visible:ring-ring-input focus-visible:border-transparent focus-visible:bg-background`,`data-popup-open:ring-3 data-popup-open:ring-ring-input data-popup-open:border-transparent data-popup-open:bg-background`,`data-pressed:ring-3 data-pressed:ring-ring-input data-pressed:border-transparent data-pressed:bg-background`,`data-invalid:bg-error-subtle data-invalid:border-error`,`data-invalid:focus-visible:border-transparent data-invalid:focus-visible:ring-ring-error data-invalid:focus-visible:bg-background`,`data-invalid:data-popup-open:border-transparent data-invalid:data-popup-open:ring-ring-error data-invalid:data-popup-open:bg-background`,`data-invalid:data-pressed:border-transparent data-invalid:data-pressed:ring-ring-error data-invalid:data-pressed:bg-background`,`data-disabled:border-border-strong! data-disabled:bg-background-subtle! data-disabled:cursor-not-allowed data-disabled:border-dashed data-disabled:opacity-disabled`),within:Q(`flex items-center`,`has-focus:ring-[3px] has-focus:ring-ring-input has-focus:border-transparent has-focus:bg-background`,`has-data-popup-open:ring-3 has-data-popup-open:ring-ring-input has-data-popup-open:border-transparent has-data-popup-open:bg-background`,`has-data-pressed:ring-3 has-data-pressed:ring-ring-input has-data-pressed:border-transparent has-data-pressed:bg-background`,`data-invalid:bg-error-subtle data-invalid:border-error data-invalid:has-focus:border-transparent data-invalid:has-focus:ring-ring-error data-invalid:has-focus:bg-background`,`data-invalid:has-data-popup-open:border-transparent data-invalid:has-data-popup-open:ring-ring-error data-invalid:has-data-popup-open:bg-background`,`data-invalid:has-data-pressed:border-transparent data-invalid:has-data-pressed:ring-ring-error data-invalid:has-data-pressed:bg-background`,`has-data-invalid:bg-error-subtle has-data-invalid:border-error has-data-invalid:has-focus:border-transparent has-data-invalid:has-focus:ring-ring-error has-data-invalid:has-focus:bg-background`,`has-data-invalid:has-data-popup-open:border-transparent has-data-invalid:has-data-popup-open:ring-ring-error has-data-invalid:has-data-popup-open:bg-background`,`has-data-invalid:has-data-pressed:border-transparent has-data-invalid:has-data-pressed:ring-ring-error has-data-invalid:has-data-pressed:bg-background`,`has-[input:disabled]:border-border-strong! has-[input:disabled]:bg-background-subtle! has-[input:disabled]:cursor-not-allowed has-[input:disabled]:border-dashed has-[input:disabled]:opacity-disabled`)}},defaultVariants:{variant:`outline`,size:`md`,state:`self`}});function eC(e,t){(Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,`value`)?.set)?.call(e,t),e.dispatchEvent(new Event(`input`,{bubbles:!0}))}function tC({className:e,variant:t=`outline`,inputSize:n=`md`,clearable:r,startSlot:i,endSlot:a,onClear:o,inputProps:s,ref:c,...l}){let u=g.useRef(null),d=!!(r||i||a),f=l[`aria-invalid`],p=f===!0||f===`true`,m=_l(c,u),h=()=>{u.current&&l.value===void 0&&eC(u.current,``),u.current?.focus(),o?.()};return d?(0,Y.jsxs)(`div`,{"data-slot":`input-wrapper`,className:Q($S({variant:t,size:n,state:`within`}),e),...p?{"data-invalid":``}:{},children:[i&&(0,Y.jsx)(`div`,{"data-slot":`input-start`,className:`-ms-1 flex shrink-0 items-center`,children:i}),(0,Y.jsx)(QS,{"data-slot":`input`,ref:m,placeholder:l.placeholder??` `,...s,className:Q(`peer text-foreground placeholder:text-foreground-subtle h-full min-w-0 flex-1 bg-transparent outline-none disabled:cursor-not-allowed`,s?.className),...l}),r&&(0,Y.jsx)(`button`,{"data-slot":`input-clear`,type:`button`,onClick:h,className:`text-foreground-subtle hover:text-foreground pointer-events-none shrink-0 cursor-pointer opacity-0 transition-[opacity,color] duration-200 peer-not-placeholder-shown:pointer-events-auto peer-not-placeholder-shown:opacity-100`,tabIndex:-1,"aria-label":`Clear input`,children:(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`2 2 16 16`,fill:`currentColor`,className:`size-[1em]`,children:(0,Y.jsx)(`path`,{d:`M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z`})})}),a&&(0,Y.jsx)(`div`,{"data-slot":`input-end`,className:`-me-1 flex shrink-0 items-center`,children:a})]}):(0,Y.jsx)(QS,{"data-slot":`input`,ref:m,...s,className:Q($S({variant:t,size:n,state:`self`}),`placeholder:text-foreground-subtle`,s?.className,e),...l,...p?{"data-invalid":``}:{}})}var nC=`data-checked`,rC=`data-unchecked`,iC={checked(e){return e?{[nC]:``}:{[rC]:``}},...ht,...Pb},aC=`data-composite-item-active`,oC=g.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},nextIndexRef:{current:0}});function sC(){return g.useContext(oC)}function cC(e={}){let{guess:t,label:n,metadata:r,textRef:i,index:a}=e,{register:o,unregister:s,subscribeMapChange:c,nextIndexRef:l}=sC(),u=g.useRef(-1),[d,f]=g.useState(a==null&&t?()=>{if(u.current===-1){let e=l.current;l.current+=1,u.current=e}return u.current}:-1),p=a??d,m=g.useRef(null),h=g.useCallback(e=>{let t=m.current;t&&s(t),m.current=e,e&&o(e,{metadata:r??null,index:a??null,label:n,textRef:i})},[a,o,s,r,n,i]);return b(()=>{if(a==null)return c(e=>{let t=m.current?e.get(m.current)?.index:null;t!=null&&f(t)})},[a,c]),{ref:h,index:p}}function lC(e={}){let{highlightItemOnHover:t,highlightedIndex:n,onHighlightedIndexChange:r}=Oi(),{ref:i,index:a}=cC(e),o=n===a,s=g.useRef(null),c=rr(i,s);return{compositeProps:{tabIndex:o?0:-1,onFocus(){r(a)},onMouseMove(){let e=s.current;if(!t||!e)return;let n=e.hasAttribute(`disabled`)||e.ariaDisabled===`true`;!o&&!n&&e.focus()}},compositeRef:c,index:a}}function uC(e){let{render:t,className:n,style:r,state:i=h,props:a=m,refs:o=m,metadata:s,stateAttributesMapping:c,tag:l=`div`,...u}=e,{compositeProps:d,compositeRef:f}=lC({metadata:s});return kr(l,e,{state:i,ref:[f,...o],props:[d,...a,u],stateAttributesMapping:c})}var dC=g.createContext(void 0);function fC(){return g.useContext(dC)}function pC(e){if(e==null)return``;if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}var mC=g.createContext(void 0);function hC(){let e=g.useContext(mC);if(e===void 0)throw Error(S(52));return e}var gC=g.forwardRef(function(e,t){let{render:n,className:r,disabled:i=!1,readOnly:a=!1,required:o=!1,"aria-labelledby":s,value:c,inputRef:l,nativeButton:u=!1,id:d,style:f,...m}=e,_=fC(),{disabled:v,readOnly:y,required:x,form:S,checkedValue:C,touched:w=!1,validation:T,name:E,setCheckedValue:D=p,setTouched:O=p,registerInputRef:k=p}=_??{},{setTouched:A,setFilled:j,state:M,disabled:N}=Bb(),P=qS(),{labelId:F,getDescriptionProps:I}=Gb(),L=N||P.disabled||v||i,R=y||a,z=x||o,B=S,V=_?C===c:c===``,H=g.useRef(null),ee=g.useRef(null),U=T?.registerInput,te=rr(l,ee,k,g.useCallback(e=>U?.(e,{controlRef:H,value:void 0}),[U]));b(()=>{ee.current?.checked&&j(!0)},[j]),b(()=>{if(ee.current){if(L&&V){k(null);return}k(ee.current)}},[V,L,k]);let W=Db(),ne=Yb({id:d}),G=u?void 0:ne,K={role:`radio`,"aria-checked":V,"aria-labelledby":Kb(s,F,ee,!u,G),[aC]:V?``:void 0,id:u?ne:W,onKeyDown(e){e.key===`Enter`&&e.preventDefault()},onClick(e){if(e.defaultPrevented||L||R)return;e.preventDefault();let t=ee.current;t&&Ai(t,e)},onFocus(e){e.defaultPrevented||L||R||!w||(ee.current?.click(),O(!1))}},{getButtonProps:q,buttonRef:re}=ji({disabled:L,native:u,composite:!1}),ie={type:`radio`,ref:te,form:B,id:G,name:E,tabIndex:-1,style:E?tr:er,"aria-hidden":!0,...c===void 0?h:{value:pC(c)},disabled:L,checked:V,required:z,readOnly:R,onChange(e){if(e.nativeEvent.defaultPrevented||L||R||c===void 0)return;let t=qi(Ii,e.nativeEvent);D(c,t),!t.isCanceled&&A(!0)},onClick(e){e.stopPropagation()},onFocus(){H.current?.focus()}},ae=g.useMemo(()=>({...M,required:z,disabled:L,readOnly:R,checked:V}),[M,L,R,V,z]),oe=ae,se=_!==void 0,J=[t,H,re],ce=[K,m,q,I,T?e=>T.getValidationProps(L,e):h],le=kr(`span`,e,{enabled:!se,state:ae,ref:J,props:ce,stateAttributesMapping:iC});return(0,Y.jsxs)(mC.Provider,{value:oe,children:[se?(0,Y.jsx)(uC,{tag:`span`,render:n,className:r,style:f,state:ae,refs:J,props:ce,stateAttributesMapping:iC}):le,(0,Y.jsx)(`input`,{...ie,suppressHydrationWarning:!0})]})}),_C=g.forwardRef(function(e,t){let{render:n,className:r,style:i,keepMounted:a=!1,...o}=e,s=hC(),c=s.checked,{mounted:l,transitionStatus:u,setMounted:d}=Wo(c),f={...s,transitionStatus:u},p=g.useRef(null),m=a||l,h=kr(`span`,e,{ref:[t,p],state:f,props:o,stateAttributesMapping:iC});return Kr({batch:!0,enabled:!c,open:c,ref:p,onComplete(){c||d(!1)}}),m?h:null}),vC={duration:.3,ease:[.4,0,.2,1]},yC={duration:.3,ease:[.4,0,.2,1]},bC={duration:0};function xC({checked:e,reduced:t}){return(0,Y.jsx)(_C,{"data-slot":`radio-indicator`,className:`flex items-center justify-center`,keepMounted:!0,children:(0,Y.jsx)(Dy.span,{className:`bg-primary-foreground size-[0.5em] min-h-2 min-w-2 rounded-full`,initial:!1,animate:{scale:+!!e},transition:t?bC:yC})})}function SC({renderProps:e,state:t,reduced:n}){let{checked:r}=t,{ref:i,...a}=e,[o,s]=Ey(),c=_l(i,o),l=g.useRef(r);return g.useEffect(()=>{let e=l.current!==r;l.current=r,e&&!n&&s(o.current,{scale:[1,.8,1.1,1]},vC)},[r,s,o,n]),(0,Y.jsx)(`span`,{"data-slot":`radio`,...a,ref:c,children:(0,Y.jsx)(xC,{checked:r,reduced:n})})}function CC({className:e,...t}){let n=jy(),r=t[`aria-invalid`],i=r===!0||r===`true`;return(0,Y.jsx)(U_,{features:Jv,strict:!0,children:(0,Y.jsx)(gC,{...t,...i?{"data-invalid":``}:{},className:Q(`flex size-[1em] min-h-4 min-w-4 shrink-0 cursor-default items-center justify-center`,`bg-background border-border-strong outline-ring-input rounded-full border outline-offset-1`,`transition-[background-color,border-color,box-shadow] duration-200 motion-reduce:transition-none`,`hover:not-data-checked:not-data-disabled:not-data-invalid:border-border-emphasis`,`data-checked:bg-primary data-checked:outline-ring-primary data-checked:border-transparent`,`data-disabled:not-data-checked:bg-background-subtle data-disabled:data-checked:opacity-disabled data-disabled:cursor-not-allowed data-disabled:not-data-checked:border-dashed`,`data-invalid:border-error data-invalid:not-data-checked:bg-error-subtle data-invalid:outline-ring-error`,e),render:(e,t)=>(0,Y.jsx)(SC,{renderProps:e,state:t,reduced:n})})})}function wC(e){let{children:t,elementsRef:n,labelsRef:r,onMapChange:i}=e,a=G(i),[,o]=g.useState(!1),s=y(EC).current,c=y(TC).current,l=g.useRef(0),u=g.useRef(!0),d=g.useRef(null),f=g.useRef(null),p=G(()=>{u.current||(u.current=!0,o(e=>!e))}),m=G((e,t)=>{c.set(e,t),p()}),h=G(e=>{c.delete(e),p()}),_=G(e=>{let t=new Map;return n.current.length=0,r&&(r.current.length=0),e.forEach(e=>{t.set(e.element,{...e.registration.metadata??{},index:e.index}),n.current[e.index]=e.element,r&&(r.current[e.index]=e.registration.label===void 0?e.registration.textRef?.current?.textContent??e.element.textContent:e.registration.label)}),l.current=n.current.length,t});function v(e){if(f.current?.disconnect(),f.current=null,typeof MutationObserver!=`function`||e.length<2)return;let t=new MutationObserver(n=>{if(!kC(n))return;let r=null;for(let n of e)if(n.isConnected){if(r&&AC(r,n)>0){t.disconnect(),p();return}r=n}});f.current=t;let n=new Set;for(let t=1;t<e.length;t+=1){let r=OC(e[t-1],e[t]);r&&n.add(r)}n.forEach(e=>t.observe(e,{childList:!0}))}let x=G(()=>{let[e,t]=DC(c),n=_(e),r=d.current,i=!r||r.length!==e.length||e.some((e,t)=>{let n=r[t];return e.index!==n.index||e.element!==n.element||e.registration.index!==n.registration.index||e.registration.metadata!==n.registration.metadata});v(t),d.current=e,u.current=!1,i&&(s.forEach(e=>e(n)),a(n))});b(()=>(!u.current&&d.current&&_(d.current),()=>{n.current=[],r&&(r.current=[])}),[n,r,_]),b(()=>{u.current&&x()}),b(()=>()=>{f.current?.disconnect(),u.current=!0},[]);let S=G(e=>(s.add(e),()=>{s.delete(e)})),C=g.useMemo(()=>({register:m,unregister:h,subscribeMapChange:S,nextIndexRef:l}),[m,h,S,l]);return(0,Y.jsx)(oC.Provider,{value:C,children:t})}function TC(){return new Map}function EC(){return new Set}function DC(e){let t=new Set,n=[],r=[];e.forEach((e,i)=>{if(!i.isConnected)return;let a=e.index,o={index:a??-1,element:i,registration:e};a===null?r.push(o):a>=0&&(t.add(a),n.push(o))});let i=0;return r.sort((e,t)=>AC(e.element,t.element)),r.forEach(e=>{for(;t.has(i);)i+=1;e.index=i,n.push(e),i+=1}),t.size>0&&n.sort((e,t)=>e.index-t.index),[n,r.map(e=>e.element)]}function OC(e,t){let n=e.parentElement;for(;n&&!n.contains(t);)n=n.parentElement;return n}function kC(e){for(let t of e)for(let e=0;e<t.removedNodes.length;e+=1)if(t.removedNodes[e].isConnected)return!0;return!1}function AC(e,t){return e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1}function jC(e){return e==null||e.hasAttribute(`disabled`)||e.getAttribute(`aria-disabled`)===`true`}function MC(e){let{loopFocus:t=!0,orientation:n=`both`,grid:r,onLoop:i,direction:a,highlightedIndex:o,onHighlightedIndexChange:s,rootRef:c,enableHomeAndEndKeys:l=!1,stopEventPropagation:u,disabledIndices:d,modifierKeys:f=m}=e,[p,h]=g.useState(0),_=r!=null,v=g.useRef(null),y=rr(v,c),x=g.useRef([]),S=g.useRef(!1),C=g.useRef(null),w=o??p,T=G((e,t=!1)=>{if(C.current=x.current[e]??null,(s??h)(e),t){let t=x.current[e];Fx(v.current,t,a,n)}}),E=G(e=>{if(e.size===0)return;if(S.current){let e=x.current,t=e.indexOf(C.current);if(t===-1){let t=e[w];!t||Sn(e,w,d)?T(NC(e,d)):C.current=t}else t!==w&&T(t);return}S.current=!0;let t=Array.from(e.keys()),r=t.find(e=>e?.hasAttribute(`data-composite-item-active`))??null,i=r?e.get(r)?.index??-1:-1;if(i!==-1)T(i);else if(Sn(t,w,d)){let e=xn(t,{disabledIndices:d});vn(t,e)||T(e)}Fx(v.current,r,a,n)});b(()=>{if(d==null||o!=null||!S.current)return;let e=x.current;if(Sn(e,w,d)){let t=xn(e,{disabledIndices:d});vn(e,t)||T(t)}},[d,o,w,x,T]);let D=G((e,t,n)=>i?i(e,t,n,x):n),O=G(e=>{let o=e.key===`Home`||e.key===`End`;if(!Ax.has(e.key)||!l&&o||PC(e,f)||!v.current)return;let s=a===`rtl`,c=s?Ox:kx,p=s?kx:Ox,m=n===`vertical`?Dx:c,h=n===`vertical`?Ex:p,g=at(e.nativeEvent);if(g!=null&&Px(g)&&!jC(g)){let t=g.selectionStart,n=g.selectionEnd,r=g.value;if(t==null||e.shiftKey||t!==n||e.key!==h&&t<r.length||e.key!==m&&t>0)return}let y=w,b=yn(x,d),S=bn(x,d);r!=null&&(y=r({disabledIndices:d,elementsRef:x,event:e,highlightedIndex:w,loopFocus:t,maxIndex:S,minIndex:b,onLoop:D,orientation:n,rtl:s}));let C=n!==`vertical`&&e.key===c||n!==`horizontal`&&e.key===`ArrowDown`,E=n!==`vertical`&&e.key===p||n!==`horizontal`&&e.key===`ArrowUp`;l&&(e.key===`Home`?y=b:e.key===`End`&&(y=S)),y===w&&(C||E)&&(t&&y===S&&C?(y=b,i&&(y=i(e,w,y,x))):t&&y===b&&E?(y=S,i&&(y=i(e,w,y,x))):y=xn(x.current,{startingIndex:y,decrement:E,disabledIndices:d})),y!==w&&!vn(x.current,y)&&(u&&e.stopPropagation(),(_||o||C||E)&&e.preventDefault(),T(y,!0),queueMicrotask(()=>{x.current[y]?.focus()}))});return{props:{ref:y,onFocus(e){let t=v.current,n=at(e.nativeEvent);t&&n!=null&&Px(n)&&n.setSelectionRange(0,n.value.length)},onKeyDown:O},highlightedIndex:w,onHighlightedIndexChange:T,elementsRef:x,onMapChange:E,relayKeyboardEvent:O}}function NC(e,t){let n=-1;for(let r=0;r<e.length;r+=1){let i=e[r];if(i&&!Sn(e,r,t)){if(i.hasAttribute(`data-composite-item-active`))return r;n===-1&&(n=r)}}return Math.max(n,0)}function PC(e,t){for(let n of Mx)if(!t.includes(n)&&e.getModifierState(n))return!0;return!1}function FC(e){let{render:t,className:n,style:r,refs:i=m,props:a=m,state:o=h,stateAttributesMapping:s,highlightedIndex:c,onHighlightedIndexChange:l,orientation:u,grid:d,loopFocus:f,onLoop:p,enableHomeAndEndKeys:_,onMapChange:v,stopEventPropagation:y=!0,rootRef:b,disabledIndices:x,modifierKeys:S,highlightItemOnHover:C=!1,tag:w=`div`,...T}=e,{props:E,highlightedIndex:D,onHighlightedIndexChange:O,elementsRef:k,onMapChange:A,relayKeyboardEvent:j}=MC({grid:d,loopFocus:f,onLoop:p,orientation:u,highlightedIndex:c,onHighlightedIndexChange:l,rootRef:b,stopEventPropagation:y,enableHomeAndEndKeys:_,direction:xs(),disabledIndices:x,modifierKeys:S}),M=kr(w,e,{state:o,ref:i,props:[E,...a,T],stateAttributesMapping:s}),N=g.useMemo(()=>({highlightedIndex:D,onHighlightedIndexChange:O,highlightItemOnHover:C,relayKeyboardEvent:j}),[D,O,C,j]);return(0,Y.jsx)(Di.Provider,{value:N,children:(0,Y.jsx)(wC,{elementsRef:k,onMapChange:e=>{v?.(e),A(e)},children:M})})}var IC=[jx],LC=g.forwardRef(function(e,t){let{render:n,className:r,disabled:i,readOnly:a,required:o,onValueChange:s,value:c,defaultValue:l,form:u,name:d,inputRef:f,id:p,style:m,...h}=e,{setTouched:_,setFocused:v,validationMode:y,name:b,disabled:x,state:S,validation:C,setDirty:w,setFilled:T,validityData:E}=Bb(),{labelId:D}=Gb(),{clearErrors:O,elementRef:k}=Ub(),A=jS(!0),j=x||i,M=b??d,N=Db(p),[P,F]=Eb({controlled:c,default:l,name:`RadioGroup`,state:`value`}),[I,L]=g.useState(!1),R=G((e,t)=>{s?.(e,t),!t.isCanceled&&F(e)}),z=C.getInputControl,B=g.useMemo(()=>({get current(){return z()}}),[z]),V=g.useRef(null),H=g.useRef(null);function ee(e){let t;return f&&(typeof f==`function`?t=f(e):f.current=e),V.current=e,t}let U=G(e=>{if(!e||e.disabled)return;H.current||=e;let t=V.current,n=e.checked||t==null||t.disabled?ee(e):void 0;return()=>{H.current===e&&(H.current=null),V.current===e?n?(n(),V.current=null):ee(null):n?.()}}),te=G(()=>{let e=k.current;if(!e)return P??null;for(let t of C.registeredInputs.keys())if(t.checked&&RS(t,e))return P??null;return null});Vb(B,N,P??null,te,!j,d),Xb(P,()=>{O(M),w(P!==E.initialValue),T(P!=null),C.change(P);let e=H.current;P==null&&e&&!e.disabled&&ee(e)});let W=D??A?.legendId,ne={...S,disabled:j??!1,required:o??!1,readOnly:a??!1},K=g.useMemo(()=>({checkedValue:P,disabled:j,form:u,validation:C,name:M,readOnly:a,registerInputRef:U,required:o,setCheckedValue:R,setTouched:L,touched:I}),[P,j,u,C,M,a,U,o,R,L,I]),q={id:p,role:`radiogroup`,"aria-required":o||void 0,"aria-disabled":j||void 0,"aria-readonly":a||void 0,"aria-labelledby":W,onFocus(){v(!0)},onBlur(e){it(e.currentTarget,e.relatedTarget)||(_(!0),v(!1),y===`onBlur`&&C.commit(P))},onKeyDownCapture(e){e.key.startsWith(`Arrow`)&&(L(!0),v(!0))}};return(0,Y.jsx)(dC.Provider,{value:K,children:(0,Y.jsx)(FC,{render:n,className:r,style:m,state:ne,props:[q,h,e=>C.getValidationProps(j??!1,e)],refs:[t],stateAttributesMapping:Pb,enableHomeAndEndKeys:!1,modifierKeys:IC})})});function RC({className:e,orientation:t=`vertical`,...n}){return(0,Y.jsx)(LC,{"data-slot":`radio-group`,"aria-orientation":t,className:Q(`flex`,t===`horizontal`?`flex-wrap gap-4`:`flex-col gap-2`,e),...n})}function zC(e){return e?e.lan.length>0?e.lan:e.public:[]}function BC(e){return!e||e.lan.length===0?[]:e.public}function VC(e){return e?.ipv6??[]}function HC(e,t){let n=e===`lan`?`局域网地址`:e===`ipv6`?`IPv6 直连`:`公网地址`;return t?`${n} · ${t}`:n}function UC(e,t){return`http://${e.includes(`:`)?`[${e}]`:e}:${String(t??``)}`}function WC({book:e,port:t,value:n,busy:r=!1,onChange:i,fallbackUrls:a=[]}){let o=String(t??``),s=zC(e),c=BC(e),l=VC(e),u=e&&e.lan.length>0?`lan`:`public`,d=s.some(e=>e.address===n)?n:s[0]?.address??``;return s.length===0?l.length===0&&a.length>0?(0,Y.jsx)(`span`,{className:`flex flex-col items-end gap-0.5`,children:a.map(e=>(0,Y.jsx)(`span`,{children:e},e))}):l.length===0?(0,Y.jsx)(`span`,{className:`font-sans text-foreground-muted`,children:`还没取到地址`}):(0,Y.jsx)(`span`,{className:`flex w-full flex-col items-end gap-1`,children:l.map(e=>(0,Y.jsxs)(`span`,{className:`inline-flex flex-wrap items-baseline justify-end gap-x-2`,children:[(0,Y.jsx)(`span`,{className:`font-mono text-xs text-foreground-muted`,children:UC(e.address,o)}),(0,Y.jsx)(`span`,{className:`shrink-0 font-sans text-xs text-foreground-subtle`,children:`${HC(`ipv6`,e.interface)}(手机按实测择优)`})]},e.address))}):(0,Y.jsxs)(`span`,{className:`flex w-full flex-col items-end gap-1`,children:[s.length>1?(0,Y.jsx)(RC,{className:ix(`w-full items-end gap-1`,r&&`pointer-events-none opacity-60`),value:d,onValueChange:e=>{typeof e==`string`&&e!==d&&i(e)},children:s.map(e=>(0,Y.jsxs)(`label`,{className:`flex w-full cursor-pointer flex-wrap items-baseline justify-end gap-x-2`,children:[(0,Y.jsx)(CC,{value:e.address,"aria-label":UC(e.address,o)}),(0,Y.jsx)(`span`,{className:`font-mono text-xs text-foreground`,children:UC(e.address,o)}),(0,Y.jsx)(`span`,{className:`shrink-0 font-sans text-xs text-foreground-muted`,children:HC(u,e.interface)})]},e.address))}):(0,Y.jsxs)(`span`,{className:`inline-flex flex-wrap items-baseline justify-end gap-x-2`,children:[(0,Y.jsx)(`span`,{className:`font-mono`,children:UC(s[0].address,o)}),(0,Y.jsx)(`span`,{className:`shrink-0 font-sans text-xs text-foreground-muted`,children:HC(u,s[0].interface)})]}),c.map(e=>(0,Y.jsxs)(`span`,{className:`inline-flex flex-wrap items-baseline justify-end gap-x-2`,children:[(0,Y.jsx)(`span`,{className:`font-mono text-xs text-foreground-muted`,children:UC(e.address,o)}),(0,Y.jsx)(`span`,{className:`shrink-0 font-sans text-xs text-foreground-subtle`,children:`${HC(`public`,e.interface)}(手填)`})]},e.address)),l.map(e=>(0,Y.jsxs)(`span`,{className:`inline-flex flex-wrap items-baseline justify-end gap-x-2`,children:[(0,Y.jsx)(`span`,{className:`font-mono text-xs text-foreground-muted`,children:UC(e.address,o)}),(0,Y.jsx)(`span`,{className:`shrink-0 font-sans text-xs text-foreground-subtle`,children:`${HC(`ipv6`,e.interface)}(手机按实测择优)`})]},e.address)),s.length>1?(0,Y.jsx)(`span`,{className:`text-end font-sans text-xs text-foreground-muted`,children:`手机先试选中的那条,试不通会自动换下一条。`}):null]})}var GC=1024,KC=65535;function qC({open:e,onOpenChange:t,status:n,lanUrls:r,addressBook:i,busy:a,onSave:o,onSavePreferred:s}){let[c,l]=(0,g.useState)(String(n.lan.requestedPort)),[u,d]=(0,g.useState)(!1);(0,g.useEffect)(()=>{e&&(l(String(n.lan.requestedPort)),d(!1))},[e]);let f=c.trim(),p=f===``?null:Number(f),m=(p===null||Number.isInteger(p)&&p>=GC&&p<=KC)&&a===``;function h(){l(String(n.lan.requestedPort)),d(!1)}function _(){if(!m)return;let e={};p!==null&&(e.lanPort=p),o(e)}return(0,Y.jsx)(yS,{open:e,onOpenChange:t,children:(0,Y.jsxs)(bS,{className:`max-w-xl`,children:[(0,Y.jsx)(xS,{children:(0,Y.jsx)(SS,{children:`局域网直连`})}),(0,Y.jsxs)(CS,{className:`flex flex-col gap-4`,children:[(0,Y.jsxs)(hx,{children:[(0,Y.jsx)(mx,{label:`状态`,tone:ux(n.lan.state,n.lan.enabled),children:(0,Y.jsx)(gx,{tone:ux(n.lan.state,n.lan.enabled),text:dx(n.lan.state,n.lan.enabled),...n.lan.error?{detail:n.lan.error}:{}})}),(0,Y.jsx)(mx,{label:`手机该填的地址`,children:n.lan.enabled?(0,Y.jsx)(WC,{book:i,port:n.lan.port,value:i?.preferred??``,busy:a!==``,onChange:s,fallbackUrls:r}):(0,Y.jsx)(`span`,{className:`font-sans text-foreground-muted`,children:`局域网直连已关闭`})}),(0,Y.jsx)(mx,{label:`当前端口`,mono:!0,children:(0,Y.jsxs)(`span`,{className:`inline-flex flex-wrap items-center justify-end gap-2`,children:[(0,Y.jsx)(`span`,{children:n.lan.enabled?n.lan.port:`—`}),n.lan.enabled&&n.lan.adjusted?(0,Y.jsx)(`span`,{className:`font-sans text-xs text-foreground-muted`,children:`(首选端口被占用,已自动改用)`}):null,u?null:(0,Y.jsx)(_b,{variant:`ghost`,size:`sm`,onClick:()=>d(!0),children:`修改`})]})})]}),u?(0,Y.jsxs)(XS,{children:[(0,Y.jsx)(ZS,{htmlFor:`relay-lan-port`,children:`局域网端口`}),(0,Y.jsx)(tC,{inputProps:{id:`relay-lan-port`,inputMode:`numeric`},value:c,placeholder:`留空表示不改动`,onChange:e=>l(e.target.value)})]}):null]}),u?(0,Y.jsxs)(wS,{className:`flex justify-end gap-2`,children:[(0,Y.jsx)(_b,{variant:`outline`,disabled:a===`lan`,onClick:h,children:`取消`}),(0,Y.jsx)(_b,{variant:`primary`,disabled:!m,onClick:_,children:`保存`})]}):null]})})}var JC=`M4.3 12.55 L9.25 17.5 L19.7 6.5`,YC={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:1.5,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0};async function XC(e){if(typeof e==`string`)return e;if(typeof e==`function`)return await e();let t=e.current;if(!t)throw Error("CopyButton: the `value` ref is not attached to an element");return t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement?t.value:t.textContent??``}async function ZC(e){if(navigator.clipboard?.writeText){await navigator.clipboard.writeText(e);return}let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t),t.select();try{if(!document.execCommand(`copy`))throw Error(`Copying to clipboard is not supported`)}finally{t.remove()}}function QC({value:e,timeout:t=2e3,label:n=`Copy`,copiedLabel:r=`Copied`,onCopy:i,onCopyError:a,icon:o,onClick:s,variant:c=`ghost`,size:l=`icon-sm`,className:u,children:d,...f}){let[p,m]=g.useState(!1),h=g.useRef(void 0);return g.useEffect(()=>()=>clearTimeout(h.current),[]),(0,Y.jsxs)(_b,{"data-slot":`copy-button`,"data-copied":p||void 0,type:`button`,variant:c,size:l,"aria-label":p?r:n,onClick:async n=>{if(s?.(n),n.defaultPrevented)return;let r;try{r=await XC(e),await ZC(r)}catch(e){a?.(e);return}i?.(r),m(!0),clearTimeout(h.current),h.current=setTimeout(()=>m(!1),t)},className:Q(`group/copy`,u),...f,children:[(0,Y.jsxs)(`span`,{"data-icon":d==null?void 0:`start`,className:`grid place-items-center *:[grid-area:1/1]`,children:[(0,Y.jsx)(`span`,{className:Q(`grid place-items-center transition-[opacity,scale] delay-150 duration-150 ease-out group-data-copied/copy:delay-0`,`group-data-copied/copy:scale-50 group-data-copied/copy:opacity-0`,`motion-reduce:transition-none`),children:o??(0,Y.jsx)(`svg`,{...YC,children:(0,Y.jsx)(`path`,{d:`M4.012 16.737c-.307-.175-.562-.427-.739-.732S3.001 15.353 3 15V5c0-1.1.9-2 2-2h10c.75 0 1.158.385 1.5 1M7 9.667c0-.707.281-1.386.781-1.886S8.96 7 9.667 7h8.666c.35 0 .697.069 1.021.203s.618.33.865.578.444.542.578.865A2.67 2.67 0 0 1 21 9.667v8.666a2.67 2.67 0 0 1-.781 1.886 2.67 2.67 0 0 1-1.886.781H9.667a2.67 2.67 0 0 1-1.021-.203c-.324-.134-.618-.331-.865-.578s-.444-.542-.578-.865S7 18.683 7 18.333V9.667z`})})}),(0,Y.jsx)(`svg`,{...YC,children:(0,Y.jsx)(`path`,{d:JC,pathLength:1,strokeDasharray:`1 2`,className:Q(`[stroke-dashoffset:1.02] group-data-copied/copy:[stroke-dashoffset:0]`,`transition-[stroke-dashoffset] duration-200 ease-in`,`group-data-copied/copy:delay-100 group-data-copied/copy:duration-350 group-data-copied/copy:ease-out`,`motion-reduce:transition-none`)})})]}),typeof d==`string`&&p?r:d,(0,Y.jsx)(`span`,{role:`status`,className:`sr-only`,children:p?r:``})]})}var $C=`https://ai-hub.wnluo.com/`,ew=[{name:`公用中转 1`,url:`https://ai-hub-de-1.wnluo.com`}];ew[0].url;function tw({status:e,pairing:t,addressBook:n,busy:r,error:i,restartError:a,onOpenConfig:o,onRegenerate:s,onReconnect:c,onRevokeAll:l,onSavePreferred:u}){let d=r!==``,f=e.pairingPolicy===`deny`?`一律拒绝新设备`:`凭配对码允许`,p=t?.relayUrl||e.relayUrl||`—`,m=nw(n,t),[h,_]=g.useState({qr:!1,relay:!1,phone:!1}),v=e=>_(t=>({...t,[e]:!t[e]}));return(0,Y.jsxs)(Cb,{frame:`solid`,children:[(0,Y.jsx)(wb,{children:(0,Y.jsx)(Tb,{children:`配对与二维码`})}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 rounded-md bg-background-muted px-3 py-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,Y.jsx)(`span`,{className:`text-sm text-foreground-muted`,children:`配对码`}),(0,Y.jsx)(`span`,{className:`font-mono text-xl tracking-[0.2em] text-foreground-intense`,children:t?.pairingCode||e.pairingCode||`—`})]}),(0,Y.jsx)(QC,{value:t?.pairingCode||e.pairingCode||``,variant:`secondary`,size:`sm`,label:`复制配对码`,copiedLabel:`已复制`})]}),i?(0,Y.jsxs)(ob,{variant:`warning`,className:`mt-3`,children:[(0,Y.jsx)(cb,{}),(0,Y.jsx)(lb,{children:`拿不到二维码`}),(0,Y.jsx)(ub,{children:i})]}):null,(0,Y.jsxs)(`div`,{className:`mt-3 flex flex-col gap-4 sm:flex-row`,children:[(0,Y.jsxs)(`div`,{className:`flex shrink-0 flex-col items-center gap-3`,children:[(0,Y.jsxs)(`div`,{className:`relative`,children:[!h.qr&&t?.svg?(0,Y.jsxs)(`div`,{className:`flex size-[224px] flex-col items-center justify-center gap-1 rounded-md border border-border-muted bg-background-muted text-foreground-subtle`,children:[(0,Y.jsx)(`span`,{className:`text-xs`,children:`二维码已隐藏`}),(0,Y.jsx)(_x,{what:`二维码`,label:`显示`,onClick:()=>v(`qr`)})]}):(0,Y.jsx)(`div`,{className:`flex items-start justify-center overflow-hidden rounded-md border border-border-muted bg-white p-3`,children:t?.svg?(0,Y.jsx)(`div`,{className:`size-[200px] [&_svg]:h-full [&_svg]:w-full`,dangerouslySetInnerHTML:{__html:t.svg}}):(0,Y.jsx)(`div`,{className:`flex size-[200px] items-center justify-center text-foreground-subtle`,children:r===`pairing`?(0,Y.jsx)(Qy,{}):`还没取到二维码`})}),!h.qr&&t?.svg?null:(0,Y.jsx)(_x,{on:!0,what:`二维码`,label:`隐藏二维码`,className:`absolute end-2 top-2`,disabled:!t?.svg,onClick:()=>v(`qr`)})]}),(0,Y.jsx)(_b,{variant:`outline`,size:`md`,disabled:d,onClick:s,children:`重新生成配对码`})]}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsxs)(hx,{children:[(0,Y.jsx)(mx,{label:`配对策略`,children:f}),(0,Y.jsx)(mx,{label:`中转地址`,children:(0,Y.jsxs)(`span`,{className:`inline-flex min-w-0 flex-wrap items-center justify-end gap-x-2 gap-y-1`,children:[h.relay?(0,Y.jsx)(`span`,{className:`min-w-0 font-mono text-xs text-foreground-strong`,children:p}):(0,Y.jsx)(`span`,{className:`text-xs text-foreground-subtle`,children:`已隐藏`}),(0,Y.jsx)(_x,{on:h.relay,what:`中转地址`,label:h.relay?`隐藏`:`显示`,onClick:()=>v(`relay`)})]})}),(0,Y.jsxs)(mx,{label:`局域网端口`,mono:!0,children:[t?.lanPort??e.lan.port,t?.lanPortAdjusted?(0,Y.jsx)(`span`,{className:`ml-2 font-sans text-xs text-foreground-muted`,children:`(首选端口被占用,已自动改用)`}):null]}),(0,Y.jsx)(mx,{label:`手机该填的地址`,children:h.phone?(0,Y.jsxs)(`span`,{className:`inline-flex min-w-0 flex-col items-end gap-1`,children:[(0,Y.jsx)(WC,{book:n,port:t?.lanPort??e.lan.port,value:n?.preferred??``,busy:d,onChange:u,fallbackUrls:t?.lanUrls??[]}),(0,Y.jsx)(_x,{on:!0,what:`手机该填的地址`,label:`隐藏`,onClick:()=>v(`phone`)})]}):(0,Y.jsxs)(`span`,{className:`inline-flex flex-wrap items-center justify-end gap-x-2 gap-y-1`,children:[(0,Y.jsx)(`span`,{className:`text-xs text-foreground-subtle`,children:m?`已隐藏`:`还没取到地址`}),(0,Y.jsx)(_x,{on:!1,what:`手机该填的地址`,label:`显示`,onClick:()=>v(`phone`)})]})})]}),(0,Y.jsx)(`div`,{className:`mt-3 flex justify-end`,children:(0,Y.jsx)(_b,{variant:`outline`,size:`md`,disabled:d,onClick:o,children:`中转配置`})})]})]}),a?(0,Y.jsxs)(ob,{variant:`error`,className:`mt-3`,children:[(0,Y.jsx)(cb,{}),(0,Y.jsx)(lb,{children:`上次重启 sidecar 失败`}),(0,Y.jsx)(ub,{children:a})]}):null,(0,Y.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center justify-end gap-2`,children:[(0,Y.jsx)(`a`,{className:Cl({variant:`outline`}),href:$C,target:`_blank`,rel:`noreferrer noopener`,children:`下载 APP`}),(0,Y.jsx)(_b,{variant:`secondary`,size:`md`,disabled:d,onClick:c,children:`重新连接`}),(0,Y.jsx)(_b,{variant:`outline`,size:`md`,disabled:d,onClick:l,children:`吊销全部设备授权`})]})]})}function nw(e,t){return e&&e.lan.length+e.public.length>0?`book`:t?.lanUrls?.[0]??``}function rw(e){let t=g.useRef(!0);t.current&&(t.current=!1,e())}function iw(e){let[t,n]=g.useState({current:e,previous:null});return Object.is(e,t.current)||n({current:e,previous:t.current}),t.previous}var aw=g.createContext(void 0),ow=g.createContext(void 0),sw=g.createContext(void 0);function cw(){let e=g.useContext(aw);if(e===void 0)throw Error(S(60));return e}function lw(){let e=g.useContext(ow);if(e===void 0)throw Error(S(101));return e}function uw(){let e=g.useContext(sw);if(e===void 0)throw Error(S(61));return e}function dw(e,t,n=Object.is){let{length:r}=e;if(r!==t.length)return!1;for(let i=0;i<r;i+=1)if(!n(e[i],t[i]))return!1;return!0}var fw=(e,t)=>Object.is(e,t);function pw(e,t,n){return e==null||t==null?Object.is(e,t):n(e,t)}function mw(e,t,n){return Array.isArray(e)&&Array.isArray(t)?!dw(e,t,(e,t)=>pw(e,t,n)):e!==t}function hw(e,t,n){return e?e.some(e=>e!==void 0&&pw(t,e,n)):!1}function gw(e,t,n){return e?e.findIndex(e=>e!==void 0&&pw(e,t,n)):-1}function _w(e,t){if(t!==fw)return n=>hw(e,n,t);let n=new Set(e);return n.delete(void 0),t=>n.has(t)&&(t!==0||e.some(e=>Object.is(t,e)))}function vw(e,t,n,r){let i=r&&Array.isArray(t)?e.findIndex(_w(t,n)):gw(e,t,n);return i===-1?null:i}function yw(e,t,n,r,i,a){return hw(r,t,i)?a!=null&&e>a&&hw(r,n[a],i)?a:e:e===a?vw(n,r,i,!0):a}function bw(e,t,n){return e.filter(e=>!pw(t,e,n))}function xw(e){return typeof e==`object`&&!!e&&Array.isArray(e.items)}function Sw(e){return xw(e?.[0])}function Cw(e){return Sw(e)?e.flatMap(e=>e.items):e}function ww(e){if(!Array.isArray(e))return e!=null&&`null`in e;let t=e;if(Sw(t)){for(let e of t)for(let t of e.items)if(t&&t.value==null&&t.label!=null)return!0;return!1}for(let e of t)if(e&&e.value==null&&e.label!=null)return!0;return!1}function Tw(e,t){if(t&&e!=null)return t(e)??``;if(e&&typeof e==`object`){if(`label`in e&&e.label!=null)return String(e.label);if(`value`in e)return String(e.value)}return pC(e)}function Ew(e,t){return t&&e!=null?t(e)??``:e&&typeof e==`object`&&`value`in e&&`label`in e?pC(e.value):pC(e)}function Dw(e,t,n){function r(){return Tw(e,n)}if(n&&e!=null)return n(e);if(e&&typeof e==`object`&&`label`in e&&e.label!=null)return e.label;if(t&&!Array.isArray(t))return(Object.hasOwn(t,e)?t[e]:void 0)??r();if(Array.isArray(t)){let n=Cw(t);if(typeof e!=`object`||!e){let t=n.find(t=>t.value===e);return t&&t.label!=null?t.label:r()}if(`value`in e){let t=n.find(t=>t&&t.value===e.value);if(t&&t.label!=null)return t.label}}return r()}function Ow(e,t,n){return e.reduce((e,r,i)=>(i>0&&e.push(`, `),e.push((0,Y.jsx)(g.Fragment,{children:Dw(r,t,n)},i)),e),[])}var kw={id:e=>e.id,labelId:e=>e.labelId,modal:e=>e.modal,items:e=>e.items,itemToStringLabel:e=>e.itemToStringLabel,isItemEqualToValue:e=>e.isItemEqualToValue,value:e=>e.value,hasSelectedValue:e=>{let{value:t,multiple:n,itemToStringValue:r}=e;return t==null?!1:n&&Array.isArray(t)?t.length>0:Ew(t,r)!==``},hasNullItemLabel:(e,t)=>t?ww(e.items):!1,open:e=>e.open,mounted:e=>e.mounted,forceMount:e=>e.forceMount,transitionStatus:e=>e.transitionStatus,openMethod:e=>e.openMethod,activeIndex:e=>e.activeIndex,selectedIndex:e=>e.selectedIndex,isActive:(e,t)=>e.activeIndex===t,isSelected:(e,t)=>{let n=e.isItemEqualToValue,r=e.value;return e.multiple?Array.isArray(r)&&r.some(e=>pw(t,e,n)):pw(t,r,n)},isSelectedByFocus:(e,t)=>e.selectedIndex===t,popupProps:e=>e.popupProps,triggerProps:e=>e.triggerProps,triggerElement:e=>e.triggerElement,positionerElement:e=>e.positionerElement,listElement:e=>e.listElement,popupSide:e=>e.popupSide,scrollUpArrowVisible:e=>e.scrollUpArrowVisible,scrollDownArrowVisible:e=>e.scrollDownArrowVisible,hasScrollArrows:e=>e.hasScrollArrows};function Aw(e,t){return Math.max(0,e-t)}function jw(e,t){if(t<=0)return 0;let n=ei(e,0,t),r=n,i=t-n,a=r<=1,o=i<=1;return a&&o?r<=i?0:t:a?0:o?t:n}function Mw(e){let{id:t,value:n,defaultValue:r=null,onValueChange:i,open:a,defaultOpen:o=!1,onOpenChange:s,name:c,form:l,autoComplete:u,disabled:d=!1,readOnly:f=!1,required:_=!1,modal:v=!0,actionsRef:x,inputRef:S,onOpenChangeComplete:C,items:w,multiple:T=!1,itemToStringLabel:E,itemToStringValue:D,isItemEqualToValue:O=fw,highlightItemOnHover:k=!0,children:A}=e,{clearErrors:j}=Ub(),{setDirty:M,setTouched:N,setFocused:P,validityData:F,setFilled:I,name:L,disabled:R,validation:z,validationMode:B}=Bb(),V=Yb({id:t}),H=R||d,ee=L??c,[U,te]=Eb({controlled:n,default:T?r??m:r,name:`Select`,state:`value`}),[W,ne]=Eb({controlled:a,default:o,name:`Select`,state:`open`}),K=g.useRef([]),q=g.useRef([]),ie=g.useRef(null),ae=g.useRef(null),oe=g.useRef(0),se=g.useRef(null),J=g.useRef([]),ce=g.useRef(!1),le=g.useRef(null),ue=g.useRef(null),de=g.useRef({allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1,dragY:0}),fe=g.useRef(!1),pe=g.useRef(U),{mounted:me,setMounted:he,transitionStatus:ge}=Wo(W),{openMethod:_e,triggerProps:ve}=mS(W),ye=y(()=>new re({id:V,labelId:void 0,modal:v,multiple:T,itemToStringLabel:E,itemToStringValue:D,isItemEqualToValue:O,value:U,open:W,mounted:me,transitionStatus:ge,items:w,forceMount:!1,openMethod:null,activeIndex:null,selectedIndex:null,popupProps:h,triggerProps:h,triggerElement:null,positionerElement:null,listElement:null,popupSide:null,scrollUpArrowVisible:!1,scrollDownArrowVisible:!1,hasScrollArrows:!1},{setValue:p,setOpen:p,handleScrollArrowVisibility:p,onOpenChangeComplete:p,listRef:K,popupRef:ie,scrollHandlerRef:ae,scrollArrowsMountedCountRef:oe,valueRef:se,valuesRef:J,labelsRef:q,typingRef:ce,selectionRef:de,firstItemTextRef:le,selectedItemTextRef:ue,alignItemWithTriggerActiveRef:fe,initialValueRef:pe},kw)).current,be=ye.useState(`activeIndex`),xe=ye.useState(`selectedIndex`),Se=ye.useState(`triggerElement`),Ce=ye.useState(`positionerElement`),we=iw(_e),Te=_e??we,Ee=g.useMemo(()=>T?``:Ew(U,D),[T,U,D]),De=g.useMemo(()=>T&&Array.isArray(U)?U.map(e=>Ew(e,D)):Ew(U,D),[T,U,D]);Vb(na(Se),V,U,G(()=>De),!H,c);let Oe=T?Array.isArray(U)&&U.length>0:U!=null&&Ee!==``;b(()=>{I(Oe)},[Oe,I]),b(function(){let e=vw(J.current,U,O,T);e===null&&(ue.current=null),!W&&ye.set(`selectedIndex`,e)},[T,W,U,O,ye]),Xb(U,()=>{j(ee),M(mw(U,F.initialValue,O)),z.change(U)});let ke=G((e,t)=>{s?.(e,t),!t.isCanceled&&(ne(e),!e&&(t.reason===`focus-out`||t.reason===`outside-press`)&&(N(!0),P(!1),B===`onBlur`&&z.commit(U)))}),Ae=G(()=>{he(!1),ye.update({activeIndex:null,openMethod:null,scrollUpArrowVisible:!1,scrollDownArrowVisible:!1}),C?.(!1)});Kr({enabled:!x,open:W,ref:ie,onComplete(){W||Ae()}}),g.useImperativeHandle(x,()=>({unmount:Ae}),[Ae]);let je=G((e,t)=>{i?.(e,t),!t.isCanceled&&te(e)}),Me=G(e=>{let t=Aw(e.scrollHeight,e.clientHeight),n=jw(e.scrollTop,t),r=n>0,i=n<t;ye.set(`scrollUpArrowVisible`,r),ye.set(`scrollDownArrowVisible`,i)}),Ne=cs({open:W,onOpenChange:ke,elements:{reference:Se,floating:Ce}}),Pe=Ma(Ne,{enabled:!H,event:`mousedown`}),Fe=Fa(Ne),Ie=vs(Ne,{enabled:!H,listRef:K,activeIndex:be,selectedIndex:xe,disabledIndices:m,onNavigate(e){(e!==null||W)&&ye.set(`activeIndex`,e)},focusItemOnHover:k}),Le=ys(Ne,{enabled:!H&&(W||!f&&!T),listRef:q,activeIndex:be,selectedIndex:xe,disabledIndices:e=>jC(K.current[e]),onMatch(e){W?ye.set(`activeIndex`,e):je(J.current[e],qi(Ii))},onTyping(e){ce.current=e}}),Re=g.useMemo(()=>hr(Le.reference,Ie.reference,Fe.reference,Pe.reference,ve),[Pe.reference,Le.reference,Ie.reference,Fe.reference,ve]),ze=g.useMemo(()=>hr(Go,Le.floating,Ie.floating,Fe.floating),[Le.floating,Ie.floating,Fe.floating]),Be=Ie.item??h;ye.useContextCallback(`setValue`,je),ye.useContextCallback(`setOpen`,ke),ye.useContextCallback(`handleScrollArrowVisibility`,Me),ye.useContextCallback(`onOpenChangeComplete`,C),rw(()=>{ye.update({popupProps:ze,triggerProps:Re})}),ye.useSyncedValues({id:V,modal:v,multiple:T,value:U,open:W,mounted:me,transitionStatus:ge,popupProps:ze,triggerProps:Re,items:w,itemToStringLabel:E,itemToStringValue:D,isItemEqualToValue:O,openMethod:Te});let Ve=g.useMemo(()=>({disabled:H,readOnly:f,required:_,multiple:T,highlightItemOnHover:k,itemProps:Be}),[H,f,_,T,k,Be]),He=rr(S,z.inputRef),Ue=T?void 0:ee,We=g.useMemo(()=>!T||!Array.isArray(U)||!ee?null:U.map(e=>{let t=Ew(e,D);return(0,Y.jsx)(`input`,{type:`hidden`,form:l,name:ee,value:t,disabled:H},t)}),[T,U,l,ee,D,H]);return(0,Y.jsxs)(aw.Provider,{value:ye,children:[(0,Y.jsx)(ow.Provider,{value:Ve,children:(0,Y.jsx)(sw.Provider,{value:Ne,children:A})}),(0,Y.jsx)(`input`,{...z.getValidationProps(H,{onFocus(){ye.state.triggerElement?.focus({focusVisible:!0})},onChange(e){if(e.nativeEvent.defaultPrevented||H||f)return;let t=e.currentTarget.value,n=qi(Ii,e.nativeEvent);function r(){if(T)return;let e=t.toLowerCase(),r=J.current.findIndex(t=>Ew(t,D).toLowerCase()===e||Tw(t,E).toLowerCase()===e);r===-1&&(r=J.current.findIndex((t,n)=>{let r=q.current[n];return r!=null&&r.toLowerCase()===e}));let i=J.current[r];i!=null&&je(i,n)}ye.set(`forceMount`,!0),queueMicrotask(r)}}),id:V&&Ue==null?`${V}-hidden-input`:void 0,form:l,name:Ue,autoComplete:u,value:Ee,disabled:H,required:_&&!(T&&Oe),readOnly:f,ref:He,style:ee?tr:er,tabIndex:-1,"aria-hidden":!0,suppressHydrationWarning:!0}),We]})}function Nw(e,t){return e??t}var Pw=5;function Fw(e,t){let n=Iw(t);return e.clientX>=n.left-Pw&&e.clientX<=n.right+Pw&&e.clientY>=n.top-Pw&&e.clientY<=n.bottom+Pw}function Iw(e){let t=e.getBoundingClientRect(),n=J(e);if(nt)return t;let r=n.getComputedStyle(e,`::before`),i=n.getComputedStyle(e,`::after`);if(r.content===`none`&&i.content===`none`)return t;let a=parseFloat(r.width)||0,o=parseFloat(r.height)||0,s=parseFloat(i.width)||0,c=parseFloat(i.height)||0,l=Math.max(t.width,a,s),u=Math.max(t.height,o,c),d=l-t.width,f=u-t.height;return{left:t.left-d/2,right:t.right+d/2,top:t.top-f/2,bottom:t.bottom+f/2}}var Lw=`data-popup-side`,Rw=400,zw={...Dt,...Pb,popupSide:e=>e?{[Lw]:e}:null,value:()=>null},Bw=g.forwardRef(function(e,t){let{render:n,className:r,id:i,disabled:a=!1,nativeButton:o=!0,style:s,...c}=e,{setTouched:l,setFocused:u,validationMode:d,validation:f,state:p,disabled:m}=Bb(),{labelId:h}=Gb(),_=cw(),{readOnly:v,required:y,disabled:b}=lw(),x=m||b||a,S=_.useState(`open`),C=_.useState(`mounted`),w=_.useState(`value`),T=_.useState(`triggerProps`),E=_.useState(`positionerElement`),D=_.useState(`listElement`),O=_.useState(`popupSide`),k=_.useState(`id`),A=_.useState(`labelId`),j=_.useState(`hasSelectedValue`),M=C&&E?O:null,N=i??k,P=Nw(h,A);Yb({id:i});let F=na(E),I=g.useRef(null),{getButtonProps:L,buttonRef:R}=ji({disabled:x,native:o}),z=_.useStateSetter(`triggerElement`),B=ze(),V=ze(),H=ze();g.useEffect(()=>{if(S)return H.start(Rw,()=>{_.context.selectionRef.current.allowUnselectedMouseUp=!0,_.context.selectionRef.current.allowSelectedMouseUp=!0}),()=>{H.clear()};_.context.selectionRef.current={allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1,dragY:0},V.clear()},[S,_,V,H]);let ee=hr(T,{id:N,role:`combobox`,"aria-expanded":S,"aria-haspopup":`listbox`,"aria-controls":S?D?.id??Ft(E)?.id:void 0,"aria-labelledby":P,"aria-readonly":v||void 0,"aria-required":y||void 0,tabIndex:x?-1:0,onFocus(e){u(!0),S&&_.context.alignItemWithTriggerActiveRef.current&&_.context.setOpen(!1,qi(Ii,e.nativeEvent)),B.start(0,()=>{_.set(`forceMount`,!0)})},onBlur(e){it(E,e.relatedTarget)||(l(!0),u(!1),d===`onBlur`&&f.commit(w))},onMouseDown(e){if(S)return;let t=je(e.currentTarget);function n(e){if(!I.current)return;let t=e.target;it(I.current,t)||it(F.current,t)||Fw(e,I.current)||_.context.setOpen(!1,qi(Wi,e))}V.start(0,()=>{t.addEventListener(`mouseup`,n,{once:!0})})}},c,L),U=f.getValidationProps(x,ee);U.role=`combobox`;let te={...p,open:S,disabled:x,value:w,readOnly:v,popupSide:M,placeholder:!j};return kr(`button`,e,{ref:[t,I,R,z],state:te,stateAttributesMapping:zw,props:U})}),Vw={value:()=>null},Hw=g.forwardRef(function(e,t){let{className:n,render:r,children:i,placeholder:a,style:o,...s}=e,c=cw(),l=c.useState(`value`),u=c.useState(`items`),d=c.useState(`itemToStringLabel`),f=c.useState(`hasSelectedValue`),p=!f&&a!=null&&i==null,m=c.useState(`hasNullItemLabel`,p),h={value:l,placeholder:!f},g=null;return g=typeof i==`function`?i(l):i??(p&&!m?a:Array.isArray(l)?Ow(l,u,d):Dw(l,u,d)),kr(`span`,e,{state:h,ref:[t,c.context.valueRef],props:[{children:g},s],stateAttributesMapping:Vw})}),Uw=g.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e;return kr(`span`,e,{state:{open:cw().useState(`open`)},ref:t,props:[{"aria-hidden":!0,children:`▼`},a],stateAttributesMapping:Et})}),Ww=g.forwardRef(function(e,t){let n=cw(),r=n.useState(`mounted`),i=n.useState(`forceMount`);return r||i?(0,Y.jsx)($i,{ref:t,...e}):null}),Gw=g.createContext(void 0);function Kw(){let e=g.useContext(Gw);if(!e)throw Error(S(59));return e}function qw(e,t){e&&Object.assign(e.style,t)}var Jw={position:`relative`,maxHeight:`100%`,overflowX:`hidden`,overflowY:`auto`},Yw=20;function Xw(e,t,n,r){let[i,a]=g.useState(!1);b(()=>{if(!e||!t||n==null){a(!1);return}let r=je(n).documentElement.clientWidth,i=n.offsetWidth;a(r>0&&i>0&&i>=r-Yw)},[e,t,n]),eS(e&&(!t||i),r)}var Zw={position:`fixed`},Qw=g.forwardRef(function(e,t){let{anchor:n,className:r,render:i,positionMethod:a,side:o,align:s,sideOffset:c,alignOffset:l,collisionBoundary:u=`clipping-ancestors`,collisionPadding:d,arrowPadding:f,sticky:p,disableAnchorTracking:m,alignItemWithTrigger:h=!0,collisionAvoidance:_=Qr,style:v,...y}=e,x=cw(),S=uw(),C=x.useState(`open`),w=x.useState(`mounted`),T=x.useState(`modal`),E=x.useState(`value`),D=x.useState(`openMethod`),O=x.useState(`positionerElement`),k=x.useState(`triggerElement`),A=x.useState(`isItemEqualToValue`),j=x.useState(`transitionStatus`),M=g.useRef(null),N=g.useRef(null),[P,F]=g.useState(h),I=w&&P&&D!==`touch`;!w&&P!==h&&F(h),g.useImperativeHandle(x.context.alignItemWithTriggerActiveRef,()=>I),Xw((I||T)&&C,D===`touch`,O,k);let L=Fs({anchor:n,floatingRootContext:S,positionMethod:a,mounted:w,side:o,sideOffset:c,align:s,alignOffset:l,arrowPadding:f,collisionBoundary:u,collisionPadding:d,sticky:p,disableAnchorTracking:m??I,collisionAvoidance:_,keepMounted:!0}),R=I?`none`:L.side,z=I?Zw:L.positionerStyles,B={open:C,side:R,align:L.align,anchorHidden:L.anchorHidden};b(()=>{x.set(`popupSide`,L.side)},[x,L.side]);let V=zs(e,B,{styles:z,transitionStatus:j,props:y,refs:[t,x.useStateSetter(`positionerElement`)],hidden:!w,inert:!C}),H=g.useRef(0),ee=G(e=>{if(x.context.valuesRef.current.length===0)return;let t=H.current;H.current=e.size;let n=qi(Ii);if(t!==0&&!x.state.multiple&&E!==null&&gw(x.context.valuesRef.current,E,A)===-1){let e=x.context.initialValueRef.current,t=e!=null&&gw(x.context.valuesRef.current,e,A)!==-1?e:null;x.context.setValue(t,n),t===null&&(x.set(`selectedIndex`,null),x.context.selectedItemTextRef.current=null)}if(t!==0&&x.state.multiple&&Array.isArray(E)){let e=E.filter(e=>gw(x.context.valuesRef.current,e,A)!==-1);e.length!==E.length&&(x.context.setValue(e,n),e.length===0&&(x.set(`selectedIndex`,null),x.context.selectedItemTextRef.current=null))}if(C&&I){x.update({scrollUpArrowVisible:!1,scrollDownArrowVisible:!1});let e={height:``};qw(O,e),qw(x.context.popupRef.current,e)}}),U=g.useMemo(()=>({...L,side:R,alignItemWithTriggerActive:I,setControlledAlignItemWithTrigger:F,scrollUpArrowRef:M,scrollDownArrowRef:N}),[L,R,I,F]);return(0,Y.jsx)(wC,{elementsRef:x.context.listRef,labelsRef:x.context.labelsRef,onMapChange:ee,children:(0,Y.jsxs)(Gw.Provider,{value:U,children:[w&&T&&(0,Y.jsx)(Hx,{inert:Rr(!C),cutout:k}),V]})})}),$w=`base-ui-disable-scrollbar`,eT={className:$w,getElement(e){return(0,Y.jsx)(`style`,{nonce:e,href:$w,precedence:`base-ui:low`,children:`.${$w}{scrollbar-width:none}.${$w}::-webkit-scrollbar{display:none}`})}},tT=g.createContext(void 0);function nT(e){let t=g.useContext(tT);if(t===void 0&&!e)throw Error(S(69));return t}var rT=g.createContext(void 0),iT={disableStyleElements:!1};function aT(){return g.useContext(rT)??iT}var oT=`--transform-origin`,sT={...Ot,...ht},cT=g.forwardRef(function(e,t){let{render:n,className:r,style:i,finalFocus:a,...o}=e,s=cw(),{multiple:c,readOnly:l,highlightItemOnHover:u}=lw(),d=uw(),{side:f,align:p,alignItemWithTriggerActive:m,isPositioned:h,setControlledAlignItemWithTrigger:_}=Kw(),v=nT(!0)!=null,y=xs(),{nonce:x,disableStyleElements:S}=aT(),C=s.useState(`id`),w=s.useState(`open`),T=s.useState(`openMethod`),E=s.useState(`mounted`),D=s.useState(`popupProps`),O=s.useState(`transitionStatus`),k=s.useState(`triggerElement`),A=s.useState(`positionerElement`),j=s.useState(`listElement`),M=g.useRef(!1),N=g.useRef(!1),P=g.useRef({}),F=Ie(),I=G(e=>{if(!A||!s.context.popupRef.current||!N.current)return;let t=A.style.top===`0px`,n=A.style.bottom===`0px`;if(M.current||!m||!t&&!n){s.context.handleScrollArrowVisibility(e);return}let r=dT(A),i=fT(A.getBoundingClientRect().height,`y`,r),a=je(A),o=J(A),c=o.getComputedStyle(A),l=parseFloat(c.marginTop),u=parseFloat(c.marginBottom),d=lT(o.getComputedStyle(s.context.popupRef.current)),f=Math.min(a.documentElement.clientHeight-l-u,d),p=e.scrollTop,h=uT(e),g=null,_=e=>{A.style.height=`${e}px`},v=t?h-p:p,y=Math.min(i+v,f);if(v<=1){let n=ei(v,0,f-i);n>0&&_(i+n),e.scrollTop=t?h:0,f-(i+n)<=1&&(M.current=!0),s.context.handleScrollArrowVisibility(e);return}f-y>1?g=t?1/0:0:n&&p<h&&(g=p-(v-(i+v-f)));let b=Math.ceil(y);if(b!==0&&_(b),g!=null){let t=ei(g,0,uT(e));Math.abs(e.scrollTop-t)>1&&(e.scrollTop=t)}b>=f-1&&(M.current=!0),s.context.handleScrollArrowVisibility(e)});g.useImperativeHandle(s.context.scrollHandlerRef,()=>I,[I]),Kr({open:w,ref:s.context.popupRef,onComplete(){w&&s.context.onOpenChangeComplete(!0)}});let L={open:w,transitionStatus:O,side:f,align:p};b(()=>{A&&s.context.popupRef.current&&!Object.keys(P.current).length&&(P.current={top:A.style.top||`0`,left:A.style.left||`0`,right:A.style.right,height:A.style.height,bottom:A.style.bottom,minHeight:A.style.minHeight,maxHeight:A.style.maxHeight,marginTop:A.style.marginTop,marginBottom:A.style.marginBottom})},[s,A]),b(()=>{w||m||(N.current=!1,M.current=!1,qw(A,P.current))},[w,m,A]),b(()=>{let e=s.context.popupRef.current;if(!w||!k||!A||!e||m&&!h||s.state.transitionStatus===`ending`)return;if(N.current=!0,e.style.removeProperty(oT),!m){F.request(()=>s.context.handleScrollArrowVisibility(j||e));return}let t=hT(e);try{let t=s.context.selectedItemTextRef.current;t?.isConnected||(t=!s.select(`hasSelectedValue`)&&s.context.firstItemTextRef.current?.isConnected?s.context.firstItemTextRef.current:null);let n=s.context.valueRef.current,r=J(A),i=r.getComputedStyle(A),a=r.getComputedStyle(e),o=je(k),c=dT(k),l=pT(k.getBoundingClientRect(),c),d=pT(A.getBoundingClientRect(),c),f=l.height,p=j||e,m=p.scrollHeight,h=parseFloat(a.borderBottomWidth),g=parseFloat(i.marginTop)||10,v=parseFloat(i.marginBottom)||10,b=parseFloat(i.minHeight)||100,x=lT(a),S=o.documentElement.clientHeight-g-v,C=o.documentElement.clientWidth,w=S-l.bottom+f,T,E=y===`rtl`?l.right-d.width:l.left,D=0;if(t&&n){let e=pT(n.getBoundingClientRect(),c);T=pT(t.getBoundingClientRect(),c),E=d.left+(y===`rtl`?e.right-T.right:e.left-T.left);let r=e.top-l.top+e.height/2;D=T.top-d.top+T.height/2-r}let O=w+D+v+h,N=Math.min(S,O),F=S-g-v,I=O-N,L=C-5;A.style.left=`${ei(E,5,L-d.width)}px`,A.style.height=`${N}px`,A.style.maxHeight=`none`,A.style.marginTop=`${g}px`,A.style.marginBottom=`${v}px`,e.style.height=`100%`;let R=uT(p),z=I>=R-1;z&&(N=Math.min(S,d.height)-(I-R));let B=l.top<20||l.bottom>S-20||Math.ceil(N)+1<Math.min(m,b),V=(r.visualViewport?.scale??1)!==1&&et;if(B||V){qw(A,P.current),_(!1);return}let H=Math.max(b,N);if(z){let e=Math.max(0,S-O);A.style.top=d.height>=F?`0`:`${e}px`,A.style.height=`${N}px`,p.scrollTop=uT(p)}else A.style.bottom=`0`,p.scrollTop=I;if(T){let t=d.top,n=d.height,r=T.top+T.height/2,i=ei(n>0?(r-t)/n*100:50,0,100);e.style.setProperty(oT,`50% ${i}%`)}(H===S||N>=x)&&(M.current=!0),s.context.handleScrollArrowVisibility(p),u&&s.state.selectedIndex===null&&s.state.activeIndex===null&&s.context.listRef.current[0]!=null&&s.set(`activeIndex`,0)}finally{t()}},[s,w,A,k,m,_,F,j,u,y,h]),g.useEffect(()=>{if(!m||!A||!w)return;let e=J(A);function t(e){s.context.setOpen(!1,qi(Ki,e))}return Me(e,`resize`,t)},[s,m,A,w]);let R={...j?{role:`presentation`}:{role:`listbox`,"aria-multiselectable":c||void 0,"aria-readonly":l||void 0,id:`${C}-list`},onKeyDown(e){v&&Ax.has(e.key)&&e.stopPropagation()},onScroll(e){j||I(e.currentTarget)},...m&&{style:j?{height:`100%`}:Jw},className:!j&&m?eT.className:void 0},z=kr(`div`,e,{ref:[t,s.context.popupRef],state:L,stateAttributesMapping:sT,props:[D,R,Rs(O),o]});return(0,Y.jsxs)(g.Fragment,{children:[!S&&eT.getElement(x),(0,Y.jsx)(ja,{context:d,modal:!1,disabled:!E,openInteractionType:T,returnFocus:a,restoreFocus:!0,children:z})]})});function lT(e){let t=e.maxHeight;return t.endsWith(`px`)&&parseFloat(t)||1/0}function uT(e){return Aw(e.scrollHeight,e.clientHeight)}function dT(e){return yo.getScale(e)}function fT(e,t,n){return e/n[t]}function pT(e,t){return _n({x:fT(e.x,`x`,t),y:fT(e.y,`y`,t),width:fT(e.width,`x`,t),height:fT(e.height,`y`,t)})}var mT=[[`transform`,`none`],[`scale`,`1`],[`translate`,`0 0`]];function hT(e){let{style:t}=e,n={};for(let[e,r]of mT)n[e]=t.getPropertyValue(e),t.setProperty(e,r,`important`);return()=>{for(let[e]of mT){let r=n[e];r?t.setProperty(e,r):t.removeProperty(e)}}}var gT=g.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,o=cw(),{multiple:s,readOnly:c}=lw(),{alignItemWithTriggerActive:l}=Kw(),u=o.useState(`hasScrollArrows`),d=o.useState(`openMethod`),f={id:`${o.useState(`id`)}-list`,role:`listbox`,"aria-multiselectable":s||void 0,"aria-readonly":c||void 0,onScroll(e){o.context.scrollHandlerRef.current?.(e.currentTarget)},...l&&{style:Jw},className:u&&d!==`touch`?eT.className:void 0};return kr(`div`,e,{ref:[t,o.useStateSetter(`listElement`)],props:[f,a]})}),_T=g.createContext(void 0);function vT(){let e=g.useContext(_T);if(!e)throw Error(S(57));return e}var yT=g.memo(g.forwardRef(function(e,t){let{render:n,className:r,style:i,value:a=null,label:o,disabled:s=!1,nativeButton:c=!1,...l}=e,u=g.useRef(null),d=cC({guess:!0,label:o,textRef:u}),f=cw(),{itemProps:p,multiple:m,disabled:h,readOnly:_}=lw(),v=h||s,y=f.useState(`isActive`,d.index),x=f.useState(`open`),S=f.useState(`isSelected`,a),C=f.useState(`isSelectedByFocus`,d.index),w=f.useState(`isItemEqualToValue`),T=d.index,E=g.useRef(null);b(()=>{let e=f.context.valuesRef.current;return e[T]=a,()=>{delete e[T]}},[T,a,f]),b(()=>{let e=f.state.value,t=f.state.selectedIndex,n=t,r;m&&Array.isArray(e)?(n=yw(T,a,f.context.valuesRef.current,e,w,t),r=n===T,T===t&&!r&&(f.context.selectedItemTextRef.current=null)):(r=e!==void 0&&pw(a,e,w),r&&(n=T)),f.set(`selectedIndex`,n),r&&u.current&&(f.context.selectedItemTextRef.current=u.current)},[T,m,w,f,a]);let D=g.useRef(`mouse`),O=g.useRef(!1),{getButtonProps:k,buttonRef:A}=ji({disabled:v,focusableWhenDisabled:!0,native:c,composite:!0}),j={disabled:v,selected:S,highlighted:y};function M(e){if(h||_)return;let t=f.state.value;if(m){let n=Array.isArray(t)?t:[],r=S?bw(n,a,w):[...n,a];f.context.setValue(r,qi(zi,e))}else f.context.setValue(a,qi(zi,e)),f.context.setOpen(!1,qi(zi,e))}function N(){f.context.selectionRef.current.dragY=0}let P={role:`option`,"aria-selected":S,tabIndex:x&&y?0:-1,onKeyDown(e){f.set(`activeIndex`,T),e.key===` `&&f.context.typingRef.current&&e.preventDefault()},onClick(e){let t=D.current!==`touch`,n=e.nativeEvent.pointerType,r=t&&Bt(e.nativeEvent)&&(n!==void 0||y),i=t&&!r&&!O.current;O.current=!1,!(v||i)&&M(e.nativeEvent)},onPointerEnter(e){D.current=e.pointerType},onPointerMove(e){if(e.pointerType===`mouse`&&e.buttons===1){let t=f.context.selectionRef.current;t.dragY+=e.movementY,t.dragY**2>=64&&(t.allowUnselectedMouseUp=!0)}},onPointerDown(e){D.current=e.pointerType,O.current=!0,N()},onMouseUp(){if(N(),v||D.current===`touch`||O.current)return;let e=!f.context.selectionRef.current.allowSelectedMouseUp&&S,t=!f.context.selectionRef.current.allowUnselectedMouseUp&&!S;e||t||(O.current=!0,E.current?.click(),O.current=!1)}},F=kr(`div`,e,{ref:[A,t,d.ref,E],state:j,props:[p,P,l,k]}),I=g.useMemo(()=>({selected:S,index:T,textRef:u,selectedByFocus:C}),[S,T,u,C]);return(0,Y.jsx)(_T.Provider,{value:I,children:F})})),bT=g.forwardRef(function(e,t){let{selected:n}=vT();return e.keepMounted||n?(0,Y.jsx)(xT,{...e,ref:t}):null}),xT=g.memo(g.forwardRef((e,t)=>{let{render:n,className:r,style:i,keepMounted:a,...o}=e,{selected:s}=vT(),c=g.useRef(null),{transitionStatus:l,setMounted:u}=Wo(s),d=kr(`span`,e,{ref:[t,c],state:{selected:s,transitionStatus:l},props:[{"aria-hidden":!0,children:`✔️`},o],stateAttributesMapping:ht});return Kr({batch:!0,enabled:!s,open:s,ref:c,onComplete(){s||u(!1)}}),d})),ST=g.memo(g.forwardRef(function(e,t){let{index:n,textRef:r,selectedByFocus:i}=vT(),a=cw(),{render:o,className:s,style:c,...l}=e;return kr(`div`,e,{ref:[g.useCallback(e=>{e&&(n===0&&(a.context.firstItemTextRef.current=e),i&&(a.context.selectedItemTextRef.current=e))},[a,n,i]),t,r],props:l})})),CT=g.forwardRef(function(e,t){let{render:n,className:r,style:i,direction:a,keepMounted:o,...s}=e,c=a===`up`,l=cw(),{side:u,scrollDownArrowRef:d,scrollUpArrowRef:f}=Kw(),p=c?`scrollUpArrowVisible`:`scrollDownArrowVisible`,m=l.useState(p),h=l.useState(`openMethod`),g=m&&h!==`touch`,_=ze(),v=c?f:d,{mounted:y,transitionStatus:x,setMounted:S}=Wo(g);b(()=>(l.context.scrollArrowsMountedCountRef.current+=1,l.set(`hasScrollArrows`,!0),()=>{l.context.scrollArrowsMountedCountRef.current=Math.max(0,l.context.scrollArrowsMountedCountRef.current-1),l.context.scrollArrowsMountedCountRef.current===0&&l.set(`hasScrollArrows`,!1)}),[l]),Kr({open:g,ref:v,onComplete(){g||S(!1)}});let C=kr(`div`,e,{ref:[t,v],state:{direction:a,visible:g,side:u,transitionStatus:x},props:[{"aria-hidden":!0,children:c?`▲`:`▼`,style:{position:`absolute`},onMouseMove(e){if(e.movementX===0&&e.movementY===0||_.isStarted())return;l.set(`activeIndex`,null);function t(){let e=l.state.listElement??l.context.popupRef.current;if(!e)return;l.set(`activeIndex`,null),l.context.handleScrollArrowVisibility(e);let n=Aw(e.scrollHeight,e.clientHeight),r=jw(e.scrollTop,n),i=r===(c?0:n),a=l.context.listRef.current;if(r!==e.scrollTop&&(e.scrollTop=r),i){_.clear();return}if(a.length>0){let t=v.current?.offsetHeight||0;e.scrollTop=wT(a,c,r,e.clientHeight,t,n)}_.start(40,t)}_.start(40,t)},onMouseLeave(){_.clear()}},s],stateAttributesMapping:ht});return y||o?C:null});function wT(e,t,n,r,i,a){if(t){let t=0,r=n+i-1;for(let n=0;n<e.length;n+=1){let i=e[n];if(i&&i.offsetTop>=r){t=n;break}}let o=Math.max(0,t-1),s=e[o];return o<t&&s?jw(s.offsetTop-i,a):0}let o=e.length-1,s=n+r-i+1;for(let t=0;t<e.length;t+=1){let n=e[t];if(n&&n.offsetTop+n.offsetHeight>s){o=Math.max(0,t-1);break}}let c=Math.min(e.length-1,o+1),l=e[c];return c>o&&l?jw(l.offsetTop+l.offsetHeight-r+i,a):a}var TT=g.forwardRef(function(e,t){return(0,Y.jsx)(CT,{...e,ref:t,direction:`down`})}),ET=g.forwardRef(function(e,t){return(0,Y.jsx)(CT,{...e,ref:t,direction:`up`})}),DT=[`side`,`sideOffset`,`align`,`alignOffset`,`anchor`,`positionMethod`,`collisionBoundary`,`collisionPadding`,`collisionAvoidance`,`sticky`,`arrowPadding`,`disableAnchorTracking`],OT=[`container`,`keepMounted`];function kT(e){let{positionerProps:t,portalProps:n,...r}=e,i={...t},a={...n},o={};for(let e of Object.keys(r)){let t=r[e];DT.includes(e)?t!==void 0&&(i[e]=t):OT.includes(e)?t!==void 0&&(a[e]=t):o[e]=t}return{positioner:i,portal:a,popup:o}}var AT=g.createContext(null);function jT(){let e=g.useContext(AT);if(!e)throw Error(`Select sub-components must be rendered inside <Select>`);return e}function MT({size:e=`md`,variant:t=`outline`,alignItemWithTrigger:n=!0,value:r,defaultValue:i,onValueChange:a,multiple:o=!1,children:s,...c}){let l=jy(),u=r!==void 0,[d,f]=g.useState(i??(o?[]:null)),p=u?r:d,m=o?Array.isArray(p)&&p.length>0:p!=null&&p!==``,h=g.useCallback((e,t)=>{u||f(e),a?.(e,t)},[u,a]),_=g.useCallback(e=>{let t=o?[]:null,n={reason:`none`,event:e?.nativeEvent??new Event(`clear`),trigger:void 0,cancel:()=>{},allowPropagation:()=>{},isCanceled:!1,isPropagationAllowed:!1};h(t,n)},[o,h]),v=g.useMemo(()=>({size:e,variant:t,alignItemWithTrigger:n,hasValue:m,clear:_,multiple:o,reducedMotion:l}),[e,t,n,m,_,o,l]);return(0,Y.jsx)(AT.Provider,{value:v,children:(0,Y.jsx)(Mw,{value:p,onValueChange:h,multiple:o,...c,children:s})})}var NT={sm:`size-4`,md:`size-4.5`,lg:`size-5`};function PT({className:e,clearable:t,startSlot:n,endSlot:r,children:i,onKeyDown:a,...o}){let{size:s,variant:c,alignItemWithTrigger:l,hasValue:u,clear:d}=jT(),f=NT[s],p=o[`aria-invalid`],m=p===!0||p===`true`,h=t&&u,g=e=>{a?.(e),!e.defaultPrevented&&h&&(e.key===`Delete`||e.key===`Backspace`)&&(e.preventDefault(),d(e))};return(0,Y.jsxs)(Bw,{"data-slot":`select-trigger`,className:Q($S({variant:c,size:s,state:`self`}),`data-placeholder:text-foreground-subtle flex items-center justify-between`,e),...o,onKeyDown:g,...m?{"data-invalid":``}:{},children:[n&&(0,Y.jsx)(`span`,{"data-slot":`select-trigger-start`,className:`-ms-1 shrink-0`,children:n}),(0,Y.jsx)(`span`,{className:`flex min-w-0 flex-1 items-center truncate text-start`,children:i}),h?(0,Y.jsx)(`span`,{"data-slot":`select-clear`,"aria-hidden":`true`,onPointerDown:e=>{e.stopPropagation(),e.nativeEvent.stopImmediatePropagation(),e.preventDefault(),d(e)},onClick:e=>{e.stopPropagation(),e.nativeEvent.stopImmediatePropagation()},className:`text-foreground-subtle hover:text-foreground shrink-0 cursor-pointer transition-colors duration-200 motion-reduce:transition-none`,children:(0,Y.jsx)(qT,{className:`size-[1em]`})}):null,r&&(0,Y.jsx)(`span`,{"data-slot":`select-trigger-end`,className:`shrink-0`,children:r}),(0,Y.jsx)(Uw,{"data-slot":`select-icon`,className:`text-foreground -me-1 shrink-0`,render:l?(0,Y.jsx)(GT,{className:f}):(0,Y.jsx)(WT,{className:Q(f,`motion-safe:transition-transform motion-safe:duration-200`,`data-popup-open:rotate-180`)})})]})}function FT({className:e,...t}){return(0,Y.jsx)(Hw,{"data-slot":`select-value`,className:Q(`min-w-0 flex-1 truncate text-start`,e),...t})}var IT={sm:`rounded-md`,md:`rounded-lg`,lg:`rounded-xl`};function LT({className:e,alignItemWithTrigger:t,children:n,...r}){let{size:i,alignItemWithTrigger:a}=jT(),o=t??a,{positioner:s,portal:c,popup:l}=kT(r);return(0,Y.jsx)(Ww,{...c,children:(0,Y.jsx)(Qw,{sideOffset:6,...s,alignItemWithTrigger:o,className:Q(`isolate z-50`,s.className),children:(0,Y.jsxs)(cT,{"data-slot":`select-content`,"data-align-trigger":o||void 0,className:Q(`bg-background border-border-overlay flex flex-col border shadow-2xl outline-none`,IT[i],`min-w-36`,o?`w-[calc(var(--anchor-width)+1rem)]`:`w-(--anchor-width)`,o?`origin-center`:`origin-(--transform-origin)`,`motion-safe:transition-[opacity,scale] motion-safe:duration-200 motion-safe:ease-[cubic-bezier(0.175,0.885,0.32,1.5)]`,`data-starting-style:motion-safe:scale-90 data-starting-style:motion-safe:opacity-0`,`data-ending-style:motion-safe:scale-95 data-ending-style:motion-safe:opacity-0 data-ending-style:motion-safe:duration-100 data-ending-style:motion-safe:ease-out`,e),...l,children:[(0,Y.jsx)(zT,{}),(0,Y.jsx)(gT,{className:`flex max-h-(--available-height) flex-col gap-0.5 overflow-y-auto p-2`,children:n}),(0,Y.jsx)(BT,{})]})})})}var RT=Q(`bg-background text-foreground z-1 flex h-6 w-[calc(100%-var(--border-width)*2)] cursor-default items-center justify-center`);function zT(){let{size:e}=jT();return(0,Y.jsx)(ET,{"data-slot":`select-scroll-up`,"aria-hidden":`true`,className:Q(RT,IT[e],`top-px rounded-b-none`),children:(0,Y.jsx)(WT,{className:Q(NT[e],`rotate-180`)})})}function BT(){let{size:e}=jT();return(0,Y.jsx)(TT,{"data-slot":`select-scroll-down`,"aria-hidden":`true`,className:Q(RT,IT[e],`bottom-px rounded-t-none`),children:(0,Y.jsx)(WT,{className:NT[e]})})}var VT={sm:`gap-1 rounded-xs py-1.5 px-2.5 text-xs has-data-[icon=end]:pe-1.5 has-data-[icon=start]:ps-1.5 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='stroke-'])]:stroke-[1.75]`,md:`gap-1.5 rounded-sm py-2 px-3 text-sm has-data-[icon=end]:pe-2 has-data-[icon=start]:ps-2 [&_svg:not([class*='size-'])]:size-4.5 [&_svg:not([class*='stroke-'])]:stroke-[1.65]`,lg:`gap-1.5 rounded-md py-2.5 px-3.5 text-base has-data-[icon=end]:pe-2.5 has-data-[icon=start]:ps-2.5 [&_svg:not([class*='size-'])]:size-5 [&_svg:not([class*='stroke-'])]:stroke-[1.65]`},HT={sm:`gap-1`,md:`gap-1.5`,lg:`gap-1.5`};function UT({className:e,children:t,...n}){let{size:r,reducedMotion:i}=jT();return(0,Y.jsxs)(yT,{"data-slot":`select-item`,className:Q(`text-foreground relative isolate flex w-full cursor-default items-center justify-between outline-hidden select-none [&_svg]:pointer-events-none [&_svg]:shrink-0`,`before:bg-background-muted before:absolute before:inset-0 before:-z-10 before:rounded-[inherit] before:opacity-0`,`active:translate-y-px active:scale-[0.98]`,`data-highlighted:not-data-disabled:text-foreground-intense data-highlighted:not-data-disabled:before:opacity-100`,`motion-safe:transition motion-safe:duration-250 motion-safe:ease-[cubic-bezier(0.175,0.885,0.32,1.5)]`,`motion-safe:active:duration-100 motion-safe:active:ease-in-out`,`motion-safe:before:transition-opacity motion-safe:before:duration-200 motion-safe:before:ease-out`,`data-disabled:opacity-disabled data-disabled:pointer-events-none`,VT[r],e),...n,children:[(0,Y.jsx)(ST,{className:Q(`flex items-center text-start`,HT[r]),children:t}),(0,Y.jsx)(bT,{"data-slot":`select-item-indicator`,keepMounted:!i,className:`group/check text-foreground-intense shrink-0`,children:(0,Y.jsx)(KT,{"data-icon":`end`,className:`me-0.5 size-[1.125em]`})})]})}function WT(e){return(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,...e,children:(0,Y.jsx)(`path`,{d:`M11.594 5.594c.225-.225.588-.225.813 0s.225.588 0 .813l-4 4c-.225.225-.588.225-.812 0l-4-4c-.225-.225-.225-.588 0-.812s.588-.225.812 0L8 9.187l3.594-3.594z`})})}function GT(e){return(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,...e,children:(0,Y.jsx)(`path`,{d:`M10.26 9.593c.225-.224.589-.224.814 0s.224.589 0 .813l-2.667 2.667c-.225.224-.589.224-.813 0l-2.666-2.667c-.225-.225-.225-.589 0-.813s.588-.224.813 0l2.26 2.26 2.261-2.26zM7.593 2.927c.225-.225.589-.225.813 0l2.667 2.666c.224.224.224.589 0 .813s-.589.225-.814 0L7.999 4.146 5.74 6.407c-.225.224-.588.224-.812 0s-.225-.589 0-.813l2.666-2.666z`})})}function KT({className:e,...t}){return(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,className:Q(`stroke-2`,e),...t,children:(0,Y.jsx)(`path`,{d:`M4.3 12.55 L9.25 17.5 L19.7 6.5`,pathLength:1,strokeDasharray:`1 2`,className:Q(`opacity-0 [stroke-dashoffset:1.02]`,`group-data-selected/check:opacity-100 group-data-selected/check:[stroke-dashoffset:0]`,`motion-safe:transition-[opacity,stroke-dashoffset] motion-safe:ease-out`,`motion-safe:delay-[0ms,150ms] motion-safe:duration-[150ms,0ms]`,`motion-safe:group-data-selected/check:delay-[0ms] motion-safe:group-data-selected/check:duration-[0ms,300ms]`)})})}function qT(e){return(0,Y.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`2 2 16 16`,fill:`currentColor`,"aria-hidden":`true`,...e,children:(0,Y.jsx)(`path`,{d:`M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z`})})}var JT=[{value:`code`,label:`凭配对码允许`},{value:`deny`,label:`一律拒绝新设备`}];function YT({open:e,onOpenChange:t,status:n,busy:r,onSave:i}){let[a,o]=(0,g.useState)(n.name),[s,c]=(0,g.useState)(n.relayUrl),[l,u]=(0,g.useState)(n.lan.enabled),[d,f]=(0,g.useState)(n.pairingPolicy),[p,m]=(0,g.useState)(``),h=(0,g.useRef)(null);(0,g.useEffect)(()=>{e&&(o(n.name),c(n.relayUrl),u(n.lan.enabled),f(n.pairingPolicy),m(``))},[e]);let _=p.trim()!==``,v=a.trim()!==``&&r===``;function y(){if(!v)return;let e={name:a.trim(),relayUrl:s.trim(),lanEnabled:l,pairingPolicy:d};_&&(e.registerSecret=p.trim()),i(e)}return(0,Y.jsx)(yS,{open:e,onOpenChange:t,children:(0,Y.jsxs)(bS,{className:`max-w-xl`,initialFocus:h,children:[(0,Y.jsx)(xS,{children:(0,Y.jsx)(SS,{children:`中转配置`})}),(0,Y.jsx)(`div`,{ref:h,tabIndex:-1,className:`outline-none`,children:(0,Y.jsxs)(CS,{className:`flex flex-col gap-4`,children:[(0,Y.jsxs)(XS,{children:[(0,Y.jsx)(ZS,{htmlFor:`relay-name`,children:`设备名`}),(0,Y.jsx)(tC,{inputProps:{id:`relay-name`},value:a,placeholder:`手机里显示的名字`,onChange:e=>o(e.target.value)})]}),(0,Y.jsxs)(XS,{children:[(0,Y.jsx)(ZS,{htmlFor:`relay-url`,children:`中转地址`}),(0,Y.jsx)(tC,{inputProps:{id:`relay-url`,className:`font-mono`},value:s,placeholder:`https://example.com`,onChange:e=>c(e.target.value)}),(0,Y.jsxs)(`div`,{className:`mt-1.5 rounded-md bg-background-muted px-3 py-2`,children:[(0,Y.jsx)(`p`,{className:`text-xs text-foreground-muted`,children:`公用中转`}),(0,Y.jsx)(`div`,{className:`mt-1 max-h-[112px] overflow-y-auto`,children:(0,Y.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:ew.map(e=>{let t=s.trim()===e.url;return(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>c(e.url),className:`flex w-full items-baseline justify-between gap-3 rounded px-1.5 py-1 text-left ${t?`bg-background`:`hover:bg-background`}`,children:[(0,Y.jsx)(`span`,{className:`font-mono text-xs text-foreground`,children:e.url}),(0,Y.jsx)(`span`,{className:`shrink-0 text-xs text-foreground-muted`,children:t?`已选`:e.name})]},e.url)})})}),(0,Y.jsx)(`button`,{type:`button`,onClick:()=>c(``),disabled:s.trim()===``,className:`mt-1.5 text-xs text-foreground-muted underline-offset-2 hover:underline disabled:opacity-40`,children:`清空(只走局域网直连)`})]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-4 rounded-md bg-background-muted px-3 py-2`,children:[(0,Y.jsx)(`div`,{className:`text-sm text-foreground`,children:`局域网直连`}),(0,Y.jsx)(rx,{size:`md`,checked:l,onCheckedChange:u,"aria-label":`局域网直连`})]}),(0,Y.jsxs)(XS,{children:[(0,Y.jsx)(ZS,{children:`配对策略`}),(0,Y.jsxs)(MT,{items:JT,value:d,onValueChange:e=>f(e),children:[(0,Y.jsx)(PT,{children:(0,Y.jsx)(FT,{})}),(0,Y.jsxs)(LT,{children:[(0,Y.jsx)(UT,{value:`code`,children:`凭配对码允许`}),(0,Y.jsx)(UT,{value:`deny`,children:`一律拒绝新设备`})]})]})]}),(0,Y.jsxs)(XS,{children:[(0,Y.jsx)(ZS,{htmlFor:`relay-register-secret`,children:`注册密钥`}),(0,Y.jsx)(tC,{type:`password`,inputProps:{id:`relay-register-secret`},value:p,placeholder:`留空表示不改动`,onChange:e=>m(e.target.value),clearable:!0,onClear:()=>m(``)})]})]})}),(0,Y.jsxs)(wS,{className:`flex justify-end gap-2`,children:[(0,Y.jsx)(_b,{variant:`outline`,disabled:r===`config`,onClick:()=>t(!1),children:`取消`}),(0,Y.jsx)(_b,{variant:`primary`,disabled:!v,onClick:y,children:`保存配置`})]})]})})}var XT=class extends Error{code;status;constructor(e,t,n){super(e),this.name=`ApiError`,this.code=t,this.status=n}};async function ZT(e){let t=null;try{t=await e.json()}catch{t=null}let n=t?.error;if(typeof n==`string`&&n)return new XT(n,`http_${e.status}`,e.status);if(n&&typeof n==`object`){let t=n,r=typeof t.code==`string`&&t.code?t.code:`http_${e.status}`;return new XT(typeof t.message==`string`&&t.message?t.message:`请求失败(HTTP ${e.status})`,r,e.status)}return new XT(`请求失败(HTTP ${e.status})`,`http_${e.status}`,e.status)}async function QT(e){let t=await fetch(e,{headers:{accept:`application/json`}});if(!t.ok)throw await ZT(t);return await t.json()}async function $T(e,t){let n=await fetch(e,{method:`POST`,headers:{"content-type":`application/json`,accept:`application/json`},body:JSON.stringify(t??{})});if(!n.ok)throw await ZT(n);return await n.json()}function eE(e){return e instanceof XT?e.message:e instanceof Error?e.message||`请求失败`:String(e)}var tE={ok:4e3,soft:6e3,error:9e3};function nE(){let e=(0,g.useRef)(Hl());return e.current=Hl(),(0,g.useCallback)((t,n)=>{e.current.add({title:n,type:t,timeout:tE[t],priority:t===`error`?`high`:`low`})},[])}var rE=`/dsh-market/api/v1`,iE=`dsh-mobile-plugin`,aE=class extends Error{status;code;constructor(e,t,n){super(n),this.name=`MarketError`,this.status=e,this.code=t}},oE=e=>e&&typeof e==`object`?e:{},sE=e=>typeof e==`string`&&e!==``?e:null;async function cE(e,t){let n;try{n=await fetch(`${rE}${e}`,{credentials:`same-origin`,...t})}catch(e){throw new aE(0,`market_unreachable`,`连不上插件市场:${String(e?.message||e)}`)}let r=await n.json().catch(()=>null);if(!n.ok){let e=oE(r),t=oE(e.failure),i=sE(t.code)??(typeof e.error==`string`?e.error:`HTTP ${n.status}`),a=sE(t.message)??sE(e.error)??`插件市场返回 HTTP ${n.status}`;throw new aE(n.status,i,a)}return r}async function lE(){try{return{available:!0,restartSupported:oE(oE(await cE(`/capabilities`)).restart).supported===!0}}catch{return{available:!1,restartSupported:!1}}}async function uE(e=iE,t=!1){let n=oE(await cE(`/updates${`?name=${encodeURIComponent(e)}${t?`&force=1`:``}`}`)),r=oE(n.package??n);return{installedVersion:sE(r.installedVersion),latestVersion:sE(r.latestVersion),updateAvailable:r.updateAvailable===!0,source:sE(r.source)}}var dE={status:`/api/relay/update/status`,check:`/api/relay/update/check`,apply:`/api/relay/update/apply`,auto:`/api/relay/update/auto`,otaStatus:`/api/relay/update/ota/status`,otaCheck:`/api/relay/update/ota/check`,otaApply:`/api/relay/update/ota/apply`};async function fE(e,t=`GET`){let n=await bE(e,t===`POST`?{method:t,body:JSON.stringify({})}:{method:t});return n.data??n}var pE=()=>fE(dE.otaStatus),mE=()=>fE(dE.otaCheck,`POST`),hE=()=>fE(dE.otaApply,`POST`),gE=e=>e&&typeof e==`object`?e:{},_E=e=>typeof e==`string`&&e!==``?e:null,vE=e=>typeof e==`boolean`?e:null,yE=e=>typeof e==`number`&&Number.isFinite(e)?e:null;async function bE(e,t){let n=await fetch(e,{credentials:`same-origin`,headers:{accept:`application/json`,...t?.body?{"content-type":`application/json`}:{}},...t}),r=null;try{r=await n.json()}catch{r=null}let i=gE(r),a=gE(i.error);if(!n.ok){let e=_E(a.code)??`http_${n.status}`;throw new XT(_E(a.message)??`宿主返回 HTTP ${n.status}`,e,n.status)}return i}function xE(e){return e instanceof XT?e.status===404:e instanceof SyntaxError}function SE(e){return e instanceof XT&&e.code===`update_unavailable`}function CE(e){let t=gE(e);return Object.keys(t).length===0?null:{installedVersion:_E(t.installedVersion),latestVersion:_E(t.latestVersion),updateAvailable:t.updateAvailable===!0,source:_E(t.source),checkedAt:_E(t.checkedAt)}}function wE(e){let t=gE(e),n=gE(t.failure),r=_E(n.code);return{installed:vE(t.installed),skipped:vE(t.skipped),state:_E(t.state),beforeVersion:_E(t.beforeVersion),installedVersion:_E(t.installedVersion),swapped:vE(t.swapped),restartRequired:vE(t.restartRequired),refreshRequired:vE(t.refreshRequired),failure:r?{code:r,message:_E(n.message)??r}:null}}function TE(e){let t=gE(e);return{available:t.available===!0,version:_E(t.version),installedVersion:_E(t.installedVersion),source:_E(t.source),previousVersion:_E(t.previousVersion),activatedAt:_E(t.activatedAt),lastError:_E(t.lastError),inFlight:yE(t.inFlight)??0,swapping:t.swapping===!0,autoUpdate:t.autoUpdate===!0,autoIntervalMs:yE(t.autoIntervalMs)??6e5,marketBase:_E(t.marketBase),marketLastCheckedAt:_E(t.marketLastCheckedAt),marketLastError:_E(t.marketLastError),marketResult:CE(t.marketResult),lastApply:t.lastApply?wE(t.lastApply):null,appliedAt:_E(t.appliedAt),runningShellHash:_E(t.runningShellHash),installedShellHash:_E(t.installedShellHash),shellChanged:t.shellChanged===!0}}async function EE(){return TE((await bE(dE.status)).data)}async function DE(){let e=gE((await bE(dE.check,{method:`POST`,body:JSON.stringify({})})).data);return{update:CE(e.update),status:e.status?TE(e.status):null}}async function OE(e=!1){let t=gE((await bE(dE.apply,{method:`POST`,body:JSON.stringify({force:e})})).data),n=gE(t.status);return{...wE(t),status:Object.keys(n).length>0?TE(n):null}}async function kE(e){let t=gE((await bE(dE.auto,{method:`POST`,body:JSON.stringify({enabled:e})})).data);return{enabled:t.enabled===!0,status:t.status?TE(t.status):null}}function AE(e){return e?e.swapping?`swapping`:e.inFlight>0?`in-flight`:`idle`:`idle`}var jE=new Set([`OPERATION_BUSY`,`RELEASE_TOO_FRESH`,`VERSION_UNCHANGED`,`PLUGIN_NOT_INSTALLED`,`AGENTS_RUNNING`]);function ME(e,t){if(!e)return t;let n=new Date(e);return Number.isNaN(n.getTime())?e:n.toLocaleString(void 0,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`})}function NE(e){let t=e.installedVersion??e.beforeVersion;return e.failure?{text:`这次更新没成:${e.failure.message}`,ok:!1}:e.installed===!1?e.skipped?{text:t?`已经是最新版(${t}),没有改动任何文件。`:`已经是最新版,没有改动任何文件。`,ok:!0}:{text:t?`装了但盘上的版本没变(还是 ${t}),这次不算数,可以再点一次。`:`这次更新没成,可以再点一次。`,ok:!1}:{text:t?`已就地切到 ${t},无需重启。`:`已就地切到新版本,无需重启。`,ok:!0}}function PE({version:e,busy:t,onRestartSidecar:n}){let[r,i]=(0,g.useState)(null),[a,o]=(0,g.useState)(!1),[s,c]=(0,g.useState)(!1),[l,u]=(0,g.useState)(null),[d,f]=(0,g.useState)(null),[p,m]=(0,g.useState)(``),h=nE(),[_,v]=(0,g.useState)(null),[y,b]=(0,g.useState)(!0),[x,S]=(0,g.useState)(!1),[C,w]=(0,g.useState)(!1),[T,E]=(0,g.useState)(!1),D=(0,g.useCallback)(async()=>{try{let e=await pE();v(e),S(e.available),b(!0)}catch(e){e instanceof Error&&`status`in e&&e.status===404&&(b(!1),v(null))}},[]);(0,g.useEffect)(()=>{D()},[D]);let O=(0,g.useCallback)(async e=>{w(!0);try{if(e===`check`){let e=await mE();v(e.status),S(e.update.available),h(`soft`,e.update.available?`发现紧急 OTA ${e.update.version??``}。`:`没有可安装的紧急 OTA。`)}else{let e=await hE();v(e.status),S(!1),h(`soft`,e.installed?`已安装调试 OTA ${e.version??``}。`:`没有安装新的调试 OTA。`)}}catch(e){h(`error`,eE(e))}finally{w(!1)}},[h]),k=(0,g.useCallback)(e=>{e&&i(t=>({...e,available:e.available===!0||t?.available===!0}))},[]),A=r!==null&&r.available&&!s,j=t!==``||p!==``,M=(0,g.useCallback)(async()=>{try{let e=await EE();i(e),c(e.available!==!0)}catch(e){i(null),c(SE(e))}finally{o(!0)}},[]);(0,g.useEffect)(()=>{M()},[M]),(0,g.useEffect)(()=>{if(!a)return;let e=!0;return DE().then(t=>{e&&(t.update&&f(t.update),t.status&&k(t.status))}).catch(()=>{}),()=>{e=!1}},[a]);let N=r?.swapping===!0;(0,g.useEffect)(()=>{if(!N)return;let e=window.setInterval(()=>void M(),1500);return()=>window.clearInterval(e)},[N,M]),(0,g.useEffect)(()=>{if(A||!a)return;let e=!0;return lE().then(t=>{e&&u(t)}),()=>{e=!1}},[A,a]);let P=(0,g.useCallback)(e=>{if(e instanceof aE&&jE.has(e.code)){h(`soft`,`${e.message}(${e.code})`);return}h(`error`,eE(e))},[]),F=(0,g.useCallback)(async()=>{m(`check`);try{let e=await DE();e.status&&k(e.status),e.update&&f(e.update)}catch(e){xE(e)||SE(e)?await M():h(`error`,eE(e))}finally{m(``)}},[M]),I=(0,g.useCallback)(async e=>{m(`apply`);try{let t=await OE(e);t.status&&k(t.status);let n=NE(t),r=t.failure!==null&&jE.has(t.failure.code);n.ok||r?h(`soft`,n.text):h(`error`,n.text)}catch(e){xE(e)||SE(e)?await M():h(`error`,eE(e))}finally{m(``)}},[M]),L=(0,g.useCallback)(async()=>{m(`check`);try{let e=await DE();e.status&&k(e.status),f(e.update)}catch(e){if(!xE(e))f(null),h(`error`,eE(e));else try{f(await uE(void 0,!0))}catch(e){f(null),P(e)}}finally{m(``)}},[P]),R=(0,g.useCallback)(async e=>{E(!0);try{let t=await kE(e);t.status&&k(t.status);let n=Math.round((t.status?.autoIntervalMs??r?.autoIntervalMs??6e5)/6e4);h(`soft`,t.enabled?`自动更新已开启:每 ${n} 分钟查一次,有新版会直接装好并就地生效。`:`自动更新已关闭,之后只在点「检查更新」时才问市场。`)}catch(e){h(`error`,`自动更新开关没保存成功:${eE(e)}`),await M()}finally{E(!1)}},[r?.autoIntervalMs,M]),z=d?.latestVersion??r?.marketResult?.latestVersion??null,B=d?.source??r?.marketResult?.source??null,V=B===`linked`||B===`file`||B===`workspace`,H=d?.updateAvailable??r?.marketResult?.updateAvailable??!1,ee=r?.installedVersion??null,U=r?.lastApply?NE(r.lastApply):null,te=AE(r),W=e||`—`,ne=r?.version??null,G=A&&!!ne&&!!e&&ne!==e;return(0,Y.jsxs)(Cb,{frame:`solid`,children:[(0,Y.jsx)(wb,{children:(0,Y.jsxs)(Tb,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{children:`插件更新`}),(0,Y.jsx)(mb,{variant:`soft`,size:`sm`,children:e||`未知版本`})]})}),a?null:(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 py-2 text-sm text-foreground-muted`,children:[(0,Y.jsx)(Qy,{}),`正在读更新状态…`]}),s?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(hx,{children:[(0,Y.jsx)(mx,{label:`运行中版本`,mono:!0,children:W}),(0,Y.jsx)(mx,{label:`线上最新`,mono:!0,children:z??`还没查过`})]}),(0,Y.jsxs)(`p`,{className:`mt-3 text-xs text-foreground-muted`,children:[H?`线上有新版本。`:``,`这台宿主的面板里不装新代码(当前这份实现是直接被挂载的):无头 / 源码同步部署到服务器上同步源码 + 重启宿主服务;桌面端旧版到「设置 → 插件 → 本插件」里更新一版。`]})]}):null,a&&!A&&!s&&l!==null&&!l.available?(0,Y.jsxs)(ob,{variant:`info`,className:`mt-3`,children:[(0,Y.jsx)(cb,{}),(0,Y.jsx)(lb,{children:`这台机器上没有可用的插件市场`}),(0,Y.jsx)(ub,{children:`插件从 npm 分发,更新由 DSH 的插件市场负责:到「设置 → 插件」里更新本插件(或装上插件市场)。`})]}):null,A&&r?(0,Y.jsxs)(Y.Fragment,{children:[V?null:(0,Y.jsxs)(`label`,{className:`mt-1 flex items-start justify-between gap-4 border-b border-border-muted py-3`,children:[(0,Y.jsx)(`span`,{className:`min-w-0`,children:(0,Y.jsx)(`span`,{className:`block text-sm text-foreground`,children:`自动更新`})}),(0,Y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-2`,children:[T?(0,Y.jsx)(Qy,{}):null,(0,Y.jsx)(rx,{size:`md`,checked:r.autoUpdate,disabled:j||T,onCheckedChange:e=>void R(e),"aria-label":`自动更新`})]})]}),(0,Y.jsxs)(hx,{children:[(0,Y.jsx)(mx,{label:`运行中版本`,mono:!0,children:W}),(0,Y.jsx)(mx,{label:`盘上的版本`,mono:!0,children:ee??`—`}),(0,Y.jsx)(mx,{label:`线上最新`,mono:!0,children:z??`还没查过`}),(0,Y.jsx)(mx,{label:`安装来源`,children:B??`—`}),(0,Y.jsx)(mx,{label:`更新操作`,children:te===`swapping`?`正在切换…`:te===`in-flight`?`正在收尾在飞请求(${r.inFlight} 个)…`:`空闲`}),(0,Y.jsx)(mx,{label:`最近一次检查`,children:ME(d?.checkedAt??r.marketLastCheckedAt,`还没查过`)}),(0,Y.jsx)(mx,{label:`最近一次更新`,children:r.lastApply?ME(r.appliedAt,`还没更新过`):`还没更新过`})]}),G?(0,Y.jsx)(`p`,{className:`mt-2 text-xs text-foreground-muted`,children:`这两个版本对不上:面板报的 ${e} 是进程启动时读进内存的,外壳实际装载的是 ${ne??``}。一般是外壳刚换过代、页面还没重新读取;刷新一下这一页就一致了。`}):null,r.shellChanged?(0,Y.jsxs)(ob,{variant:`info`,className:`mt-3`,children:[(0,Y.jsx)(cb,{}),(0,Y.jsx)(lb,{children:`这次更新里外壳也换了`}),(0,Y.jsx)(ub,{children:`它有极少数改动要等下次启动 DSH 才生效(更新本身已经生效,不用管)。`})]}):null,r.lastError?(0,Y.jsx)(`p`,{className:`mt-2 text-xs text-foreground-muted`,children:`最近一次出过错:${r.lastError}`}):null,(0,Y.jsxs)(`div`,{className:`mt-3 flex flex-wrap justify-end gap-2`,children:[(0,Y.jsx)(_b,{variant:`outline`,size:`md`,disabled:j,onClick:n,children:`重启 sidecar`}),(0,Y.jsx)(_b,{variant:`outline`,size:`md`,disabled:j,onClick:()=>void F(),children:p===`check`?`正在检查…`:`检查更新`}),V?null:(0,Y.jsx)(_b,{variant:`primary`,size:`md`,disabled:j,onClick:()=>void I(!1),children:p===`apply`?`正在更新…`:`立即更新`})]}),!V&&(H||U!==null&&!U.ok)?(0,Y.jsx)(`div`,{className:`mt-2 flex justify-end`,children:(0,Y.jsx)(_b,{variant:`ghost`,size:`sm`,disabled:j,onClick:()=>void I(!0),children:`强制更新(有对话在跑、或刚发布的,也照装)`})}):null]}):null,a&&!A&&!s&&l?.available?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(hx,{children:[(0,Y.jsx)(mx,{label:`运行中版本`,mono:!0,children:W}),(0,Y.jsx)(mx,{label:`线上最新`,mono:!0,children:z??`还没查过`}),(0,Y.jsx)(mx,{label:`安装来源`,children:B??`—`}),(0,Y.jsx)(mx,{label:`检查结果`,children:H?`有新版可以装`:`已经是最新版`})]}),(0,Y.jsxs)(`div`,{className:`mt-3 flex flex-wrap justify-end gap-2`,children:[(0,Y.jsx)(_b,{variant:`outline`,size:`md`,disabled:j,onClick:n,children:`重启 sidecar`}),(0,Y.jsx)(_b,{variant:`outline`,size:`md`,disabled:j,onClick:()=>void L(),children:p===`check`?`正在检查…`:`检查更新`}),r!==null&&!V?(0,Y.jsx)(_b,{variant:`primary`,size:`md`,disabled:j,onClick:()=>void I(!1),children:p===`apply`?`正在更新…`:`立即更新`}):null]})]}):null,y?(0,Y.jsxs)(`section`,{className:`mt-4 border-t border-border-muted pt-3`,"aria-label":`本机调试 OTA`,children:[(0,Y.jsxs)(`div`,{className:`mb-2 flex items-center gap-2`,children:[(0,Y.jsx)(`strong`,{className:`text-sm`,children:`本机调试 OTA`}),(0,Y.jsx)(mb,{variant:`soft`,size:`sm`,children:`仅本机`})]}),(0,Y.jsxs)(hx,{children:[(0,Y.jsx)(mx,{label:`当前 OTA 版本`,mono:!0,children:_?.otaVersion??`无`}),(0,Y.jsx)(mx,{label:`正式版覆盖状态`,children:_?.otaVersion?_.absorbed?`已被正式版 ${_.officialVersion??``} 覆盖`:`尚未被正式版覆盖`:`无待吸收的 OTA`})]}),(0,Y.jsxs)(`div`,{className:`mt-3 flex justify-end gap-2`,children:[(0,Y.jsx)(_b,{variant:`outline`,size:`md`,disabled:C,onClick:()=>void O(`check`),children:C?`处理中…`:`检查紧急 OTA`}),(0,Y.jsx)(_b,{variant:`primary`,size:`md`,disabled:C||!x&&!_?.otaVersion||_?.absorbed===!0,onClick:()=>void O(`apply`),children:`立即安装`})]})]}):null]})}function FE(){let[e,t]=(0,g.useState)(null),[n,r]=(0,g.useState)(``),i=nE(),[a,o]=(0,g.useState)(``),[s,c]=(0,g.useState)(null),[l,u]=(0,g.useState)(``),[d,f]=(0,g.useState)(!1),[p,m]=(0,g.useState)(!1),[h,_]=(0,g.useState)(null),v=(0,g.useCallback)(async()=>{try{t(await QT(`/api/relay/status`)),r(``)}catch(e){r(eE(e))}},[]),y=(0,g.useCallback)(async()=>{try{c(await QT(`/api/relay/pairing`)),u(``)}catch(e){c(null),u(eE(e))}},[]),b=(0,g.useCallback)(async()=>{try{_(await QT(`/api/relay/addresses`))}catch{_(null)}},[]);(0,g.useEffect)(()=>{let e=()=>{document.hidden||v()};e();let t=window.setInterval(e,3e3);return document.addEventListener(`visibilitychange`,e),()=>{window.clearInterval(t),document.removeEventListener(`visibilitychange`,e)}},[v]),(0,g.useEffect)(()=>{!e?.enabled||s||l||y()},[e?.enabled,s,l,y]),(0,g.useEffect)(()=>{p&&e?.enabled&&(y(),b())},[p,e?.enabled,y,b]),(0,g.useEffect)(()=>{e?.enabled&&b()},[e?.enabled,s,b]);let x=(0,g.useCallback)(async(e,t)=>{o(e);try{await t()}catch(e){i(`error`,eE(e))}finally{o(``)}},[]),S=e=>x(`toggle`,async()=>{t(await $T(`/api/relay/toggle`,{enabled:e})),e?await y():(c(null),u(``)),i(`soft`,e?`已启用远程控制。`:`已停用远程控制,手机将断开。`)}),C=()=>x(`pairing`,async()=>{t(await $T(`/api/relay/regenerate`)),await y(),i(`soft`,`配对码已重新生成,之前截图的二维码作废。`)}),w=()=>x(`reconnect`,async()=>{t(await $T(`/api/relay/reconnect`)),i(`soft`,`已发起重连。`)}),T=()=>x(`restart`,async()=>{let e=await $T(`/api/relay/restart-sidecar`);t(e.status),i(`soft`,`旁挂进程已重启。`)}),E=()=>{window.confirm(`吊销全部设备授权?所有手机都要重新配对,这一步不能撤销。`)&&x(`revoke`,async()=>{let e=await $T(`/api/relay/revoke-all`);await v(),await y(),i(`soft`,`已吊销 ${e.revoked} 个授权${e.revokedRelay?`(中转侧 ${e.revokedRelay} 个)`:``}。`)})},D=e=>x(`config`,async()=>{t(await $T(`/api/relay/config`,e)),f(!1),await y(),i(`soft`,`配置已保存。`)}),O=e=>x(`lan`,async()=>{t(await $T(`/api/relay/config`,e)),m(!1),await y(),i(`soft`,`局域网配置已保存。`)}),k=e=>x(`lan`,async()=>{t(await $T(`/api/relay/config`,{preferredLanAddress:e})),await Promise.all([y(),b()]),i(`soft`,e?`手机优先使用 ${e}。`:`已改回按网卡顺序自动选。`)});return e?(0,Y.jsxs)(`main`,{className:`mx-auto flex w-full max-w-6xl flex-col gap-4 p-6`,children:[(0,Y.jsxs)(`header`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`h1`,{className:`text-lg font-semibold text-foreground-intense`,children:`移动端`}),(0,Y.jsx)(mb,{variant:`soft`,size:`sm`,children:e.appVersion||`未知版本`}),a?(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-xs text-foreground-muted`,children:[(0,Y.jsx)(Qy,{}),`处理中…`]}):null]}),n?(0,Y.jsxs)(ob,{variant:`error`,children:[(0,Y.jsx)(cb,{}),(0,Y.jsx)(lb,{children:`读不到插件状态`}),(0,Y.jsx)(ub,{children:n})]}):null,(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4 lg:flex-row lg:items-start`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-4`,children:[(0,Y.jsx)(tw,{status:e,pairing:s,addressBook:h,busy:a,error:l,restartError:e.sidecar.restartError,onOpenConfig:()=>f(!0),onRegenerate:()=>void C(),onReconnect:()=>void w(),onRevokeAll:E,onSavePreferred:e=>void k(e)}),(0,Y.jsx)(PE,{version:e.appVersion||``,busy:a,onRestartSidecar:()=>void T()})]}),(0,Y.jsx)(`aside`,{className:`max-lg:order-first lg:sticky lg:top-4 lg:max-h-[calc(100vh-2rem)] lg:w-[340px] lg:shrink-0 lg:overflow-y-auto`,children:(0,Y.jsx)(vx,{status:e,busy:a,onToggle:S,onOpenLan:()=>m(!0)})})]}),(0,Y.jsx)(YT,{open:d,onOpenChange:f,status:e,busy:a,onSave:e=>void D(e)}),(0,Y.jsx)(qC,{open:p,onOpenChange:m,status:e,lanUrls:s?.lanUrls??[],addressBook:h,busy:a,onSave:e=>void O(e),onSavePreferred:e=>void k(e)}),(0,Y.jsx)(kS,{})]}):(0,Y.jsx)(`main`,{className:`mx-auto flex w-full max-w-3xl flex-col gap-4 p-6`,children:n?(0,Y.jsxs)(ob,{variant:`error`,children:[(0,Y.jsx)(cb,{}),(0,Y.jsx)(lb,{children:`读不到插件状态`}),(0,Y.jsx)(ub,{children:n})]}):(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-foreground-muted`,children:[(0,Y.jsx)(Qy,{}),`正在读取状态…`]})})}var IE=`public-relay`,LE=`own-relay`,RE=`https://github.com/WNLUO/dsh-mobile-server`,zE=ew;function BE(e){let t=(e.preferred||``).trim();return t&&e.lan.some(e=>e.address===t)?t:e.lan[0]?.address??``}function VE({onDone:e}){let[t,n]=(0,g.useState)(null),[r,i]=(0,g.useState)(``),[a,o]=(0,g.useState)(``),[s,c]=(0,g.useState)(!1),[l,u]=(0,g.useState)(null),[d,f]=(0,g.useState)(null),[p,m]=(0,g.useState)(``),[h,_]=(0,g.useState)(``),[v,y]=(0,g.useState)(``),[b,x]=(0,g.useState)([]),[S,C]=(0,g.useState)(``),[w,T]=(0,g.useState)(!1),[E,D]=(0,g.useState)(`idle`),O=(0,g.useRef)(!0);(0,g.useEffect)(()=>(O.current=!0,()=>{O.current=!1}),[]),(0,g.useEffect)(()=>{(async()=>{try{let e=await QT(`/api/relay/addresses`);u(e);let n=BE(e);m(n),_(e=>e||(t?.relayUrl?IE:n))}catch{u(null)}})()},[]),(0,g.useEffect)(()=>{(async()=>{try{n(await QT(`/api/relay/status`))}catch(e){i(eE(e))}await A()})()},[]);let k=(0,g.useRef)(!1);(0,g.useEffect)(()=>{k.current||l!==null&&(k.current=!0,!(t&&t.enabled)&&V())},[l,t]);async function A(){try{f(await QT(`/api/relay/pairing`))}catch{}}(0,g.useEffect)(()=>{if(h!==IE)return;let e=!1;return x(zE.map(e=>({...e,ms:null}))),(async()=>{try{let t=await $T(`/api/relay/probe-relays`,{urls:zE.map(e=>e.url)});if(e)return;let n=new Map(t.results.map(e=>[e.url,e.ms]));x(e=>e.map(e=>({...e,ms:n.get(e.url)??null})).sort((e,t)=>(e.ms??1/0)-(t.ms??1/0)))}catch{if(e)return;x(e=>e.map(e=>({...e,ms:1/0})))}})(),()=>{e=!0}},[h]);let j=v||b.find(e=>e.ms!==null&&Number.isFinite(e.ms))?.url||b[0]?.url||``;async function M(){let e=S.trim().replace(/\/+$/,``);if(!/^https?:\/\/[^\s]+$/i.test(e)){D(`failed`);return}D(`busy`);try{let t=await $T(`/api/relay/probe-relays`,{urls:[e]});if(!t.results[0]||t.results[0].ms===null)throw Error(`unreachable`);D(`ok`)}catch{D(`failed`)}}let N=String(t?.lan.port||l?.port||18787),[P,F]=(0,g.useState)(``),I=e=>F(e?`ok`:`failed`),L=h===IE||h===LE,R=(h===LE?S:j).trim(),z=t!==null&&(L?t.tunnel.state===`connected`:t.lan.state===`listening`);async function B(){let e=Date.now();for(;O.current&&Date.now()-e<2e4;){if(await new Promise(e=>window.setTimeout(e,1500)),!O.current)return;let e;try{e=await QT(`/api/relay/status`)}catch{continue}n(e);let t=L?e.tunnel.state:e.lan.state;if(t===`listening`||t===`connected`||t===`error`)return}}async function V(){if(s)return;c(!0),o(``);let e={relayUrl:L?R:``,lanEnabled:!0,pairingPolicy:`code`};p&&(e.preferredLanAddress=p);try{n(await $T(`/api/relay/config`,e)),n(await $T(`/api/relay/toggle`,{enabled:!0})),await $T(`/api/relay/onboarded`,{}).catch(()=>void 0),await A(),B()}catch(e){o(eE(e))}finally{c(!1)}}async function H(e){if(_(e),o(``),e===IE||e===LE){await A();return}let t={preferredLanAddress:e};m(e);try{await $T(`/api/relay/config`,t)}catch(e){o(eE(e))}await A()}let ee=l?.lan??[],U=l?.public??[],te=l?.ipv6??[];return(0,Y.jsxs)(`main`,{className:`flex min-h-screen flex-col items-center justify-center gap-4 p-6`,children:[r?(0,Y.jsxs)(ob,{className:`w-full max-w-2xl`,variant:`error`,children:[(0,Y.jsx)(cb,{}),(0,Y.jsx)(lb,{children:`读不到插件状态`}),(0,Y.jsx)(ub,{children:r})]}):null,a?(0,Y.jsxs)(ob,{className:`w-full max-w-2xl`,variant:`error`,children:[(0,Y.jsx)(cb,{}),(0,Y.jsx)(lb,{children:`这一步没成功`}),(0,Y.jsx)(ub,{children:a})]}):null,(0,Y.jsxs)(Cb,{frame:`solid`,className:`w-full max-w-2xl`,children:[(0,Y.jsx)(wb,{children:(0,Y.jsx)(Tb,{children:`用移动设备连上这台 DSH`})}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-5 px-4 py-2`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[d?.svg?(0,Y.jsx)(`div`,{className:`size-[200px] rounded-lg bg-white p-2 [&_svg]:h-full [&_svg]:w-full`,dangerouslySetInnerHTML:{__html:d.svg}}):(0,Y.jsx)(`div`,{className:`flex size-[200px] items-center justify-center rounded-lg border border-border-muted text-xs text-foreground-muted`,children:s?(0,Y.jsx)(Qy,{}):`没取到二维码`}),(0,Y.jsx)(`p`,{className:`font-mono text-lg tracking-[0.25em] text-foreground-intense`,children:d?.pairingCode??t?.pairingCode??`—`})]}),(0,Y.jsxs)(`div`,{className:`rounded-md bg-background-muted px-3 py-2`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-1 text-xs text-foreground-muted`,children:[(0,Y.jsx)(`span`,{children:`请选择可访问地址(若 App 无法访问局域网,请`}),(0,Y.jsx)(`button`,{type:`button`,className:`cursor-pointer text-xs text-foreground-intense underline underline-offset-2 hover:text-foreground-strong`,onClick:()=>{F(``),T(!0)},children:`检查防火墙`}),(0,Y.jsx)(`span`,{children:`):`})]}),(0,Y.jsxs)(RC,{className:`mt-1.5 gap-1`,value:h,onValueChange:e=>void H(String(e)),children:[ee.map(e=>(0,Y.jsxs)(`label`,{className:`flex cursor-pointer flex-wrap items-baseline justify-between gap-x-3`,children:[(0,Y.jsxs)(`span`,{className:`flex items-baseline gap-1.5`,children:[(0,Y.jsx)(CC,{value:e.address,"aria-label":e.url}),(0,Y.jsx)(`span`,{className:`font-mono text-xs text-foreground`,children:e.url})]}),(0,Y.jsx)(`span`,{className:`shrink-0 text-xs text-foreground-muted`,children:e.interface?`局域网地址 · ${e.interface}`:`局域网地址`})]},e.address)),(0,Y.jsxs)(`label`,{className:`flex cursor-pointer flex-wrap items-baseline justify-between gap-x-3`,children:[(0,Y.jsxs)(`span`,{className:`flex items-baseline gap-1.5`,children:[(0,Y.jsx)(CC,{value:IE,"aria-label":`公用中转`}),(0,Y.jsx)(`span`,{className:`text-sm text-foreground`,children:`公用中转`})]}),(0,Y.jsx)(`span`,{className:`shrink-0 text-xs text-foreground-muted`,children:`公用中转服务·建议临时使用`})]}),(0,Y.jsxs)(`label`,{className:`flex cursor-pointer flex-wrap items-baseline justify-between gap-x-3`,children:[(0,Y.jsxs)(`span`,{className:`flex items-baseline gap-1.5`,children:[(0,Y.jsx)(CC,{value:LE,"aria-label":`自建中转`}),(0,Y.jsx)(`span`,{className:`text-sm text-foreground`,children:`自建中转`})]}),(0,Y.jsx)(`a`,{className:Cl({variant:`outline`,size:`sm`}),href:RE,target:`_blank`,rel:`noreferrer noopener`,onClick:e=>e.stopPropagation(),children:`GitHub 仓库`})]})]}),U.length>0?(0,Y.jsx)(`ul`,{className:`mt-1.5 flex flex-col gap-1`,children:U.map(e=>(0,Y.jsxs)(`li`,{className:`flex flex-wrap items-baseline justify-between gap-x-3`,children:[(0,Y.jsx)(`span`,{className:`font-mono text-xs text-foreground-muted`,children:e.url}),(0,Y.jsx)(`span`,{className:`shrink-0 text-xs text-foreground-muted`,children:e.interface?`公网地址 · ${e.interface}`:`公网地址`})]},e.address))}):null,te.length>0?(0,Y.jsx)(`ul`,{className:`mt-1.5 flex flex-col gap-1`,children:te.map(e=>(0,Y.jsxs)(`li`,{className:`flex flex-wrap items-baseline justify-between gap-x-3`,children:[(0,Y.jsx)(`span`,{className:`font-mono text-xs text-foreground-muted`,children:e.url}),(0,Y.jsx)(`span`,{className:`shrink-0 text-xs text-foreground-muted`,children:e.interface?`IPv6 直连 · ${e.interface}(手机按实测择优)`:`IPv6 直连(手机按实测择优)`})]},e.address))}):null]}),h===IE?(0,Y.jsxs)(`div`,{className:`rounded-md bg-background-muted px-3 py-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,Y.jsx)(`p`,{className:`text-xs text-foreground-muted`,children:`公用中转地址(按实测耗时排)`}),b.some(e=>e.ms===null)?(0,Y.jsx)(`span`,{className:`text-xs text-foreground-muted`,children:`测速中…`}):null]}),(0,Y.jsx)(`div`,{className:`mt-1.5 max-h-[168px] overflow-y-auto`,children:(0,Y.jsxs)(RC,{className:`gap-1`,value:v,onValueChange:e=>y(String(e)),children:[(0,Y.jsxs)(`label`,{className:`flex cursor-pointer flex-wrap items-baseline justify-between gap-x-3`,children:[(0,Y.jsxs)(`span`,{className:`flex items-baseline gap-1.5`,children:[(0,Y.jsx)(CC,{value:``,"aria-label":`自动优选`}),(0,Y.jsx)(`span`,{className:`text-xs text-foreground`,children:`自动优选`})]}),(0,Y.jsx)(`span`,{className:`shrink-0 text-xs text-foreground-muted`,children:`取最快的那条`})]}),b.map(e=>(0,Y.jsxs)(`label`,{className:`flex cursor-pointer flex-wrap items-baseline justify-between gap-x-3`,children:[(0,Y.jsxs)(`span`,{className:`flex items-baseline gap-1.5`,children:[(0,Y.jsx)(CC,{value:e.url,"aria-label":e.url}),(0,Y.jsx)(`span`,{className:`font-mono text-xs text-foreground`,children:e.url})]}),(0,Y.jsx)(`span`,{className:`shrink-0 text-xs text-foreground-muted`,children:e.ms===null?`测速中…`:Number.isFinite(e.ms)?`${e.ms} ms`:`测不通`})]},e.url))]})})]}):null,h===LE?(0,Y.jsxs)(XS,{children:[(0,Y.jsx)(ZS,{htmlFor:`ob-own-relay`,children:`中转地址`}),(0,Y.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,Y.jsx)(tC,{inputProps:{id:`ob-own-relay`,className:`font-mono`},value:S,placeholder:`https://你的中转域名`,onChange:e=>{C(e.target.value),D(`idle`)}})}),(0,Y.jsx)(_b,{className:`shrink-0`,variant:`outline`,disabled:E===`busy`,onClick:()=>void M(),children:E===`busy`?`检测中`:`检测`})]}),E===`ok`?(0,Y.jsx)(`p`,{className:`text-xs text-success`,children:`这个地址连得通。`}):null,E===`failed`?(0,Y.jsx)(`p`,{className:`text-xs text-error`,children:`填一个 http:// 或 https:// 开头的地址,并确认那台中转在跑。`}):null]}):null,(0,Y.jsx)(hx,{children:L?(0,Y.jsx)(mx,{label:`中转隧道`,children:(0,Y.jsx)(gx,{tone:cx(t?.tunnel.state??`off`),text:lx(t?.tunnel.state??`off`)})}):(0,Y.jsx)(mx,{label:`直连`,children:(0,Y.jsx)(gx,{tone:ux(t?.lan.state??`off`,!0),text:dx(t?.lan.state??`off`,!0)})})}),t!==null&&(L?t.tunnel.state===`error`:t.lan.state===`error`)?(0,Y.jsxs)(ob,{variant:`error`,children:[(0,Y.jsx)(cb,{}),(0,Y.jsx)(lb,{children:L?`中转没连上`:`没能开始直连`}),(0,Y.jsx)(ub,{children:L?t.tunnel.error?`${t.tunnel.error}(检查中转地址填对没有、那台中转是不是在跑。)`:`隧道没建起来,检查中转地址。`:t.lan.error?`${t.lan.error}(端口可能被占用,到主页的「局域网直连」里换一个。)`:`直连没起来,端口可能被别的程序占了。`})]}):null]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 px-4 py-4`,children:[(0,Y.jsx)(`a`,{className:Cl({variant:`outline`}),href:$C,target:`_blank`,rel:`noreferrer noopener`,children:`下载 APP`}),z?(0,Y.jsx)(_b,{variant:`primary`,onClick:()=>e?e():window.location.assign(`/`),children:`进入插件`}):(0,Y.jsx)(_b,{variant:`primary`,disabled:s||r!==``||h===LE&&R===``,onClick:()=>void V(),children:s?`正在打开…`:L?`连接中转`:`打开直连`})]})]}),(0,Y.jsx)(yS,{open:w,onOpenChange:T,children:(0,Y.jsxs)(bS,{className:`w-[min(1200px,92vw)] max-w-none`,backdropProps:{className:`z-[80]`},viewportProps:{className:`z-[80]`},children:[(0,Y.jsx)(xS,{children:(0,Y.jsx)(SS,{children:`检查防火墙`})}),(0,Y.jsxs)(CS,{className:`flex flex-col gap-4`,children:[(0,Y.jsxs)(`p`,{className:`text-sm text-foreground-muted`,children:[`手机连不上这台电脑的直连端口时,多半是电脑这边把端口挡了。直连默认端口`,` `,(0,Y.jsx)(`span`,{className:`font-mono`,children:`18787`}),`(首页「局域网直连」里可以改),下面按系统查。`]}),(0,Y.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-3`,children:[(0,Y.jsx)(KE,{title:`Linux`,steps:HE,port:N,onCopied:I}),(0,Y.jsx)(KE,{title:`Mac`,steps:UE,port:N,onCopied:I}),(0,Y.jsx)(KE,{title:`Windows`,steps:WE,port:N,onCopied:I})]})]}),(0,Y.jsxs)(wS,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,Y.jsxs)(`span`,{className:`text-xs text-foreground-muted`,children:[P===`ok`?`已复制,粘贴给你的 AI 就行。`:null,P===`failed`?`复制失败,可以手动选中内容复制。`:null]}),(0,Y.jsx)(_b,{variant:`primary`,onClick:()=>T(!1),children:`知道了`})]})]})})]})}var HE=[{text:`1. 看防火墙状态(firewalld 或 ufw,装哪个查哪个):`},{text:`systemctl status firewalld`,cmd:!0},{text:`sudo ufw status`,cmd:!0},{text:`2. 放行直连端口:`},{text:`sudo firewall-cmd --permanent --add-port={port}/tcp
|
|
26
26
|
sudo firewall-cmd --reload`,cmd:!0},{text:`sudo ufw allow {port}/tcp`,cmd:!0},{text:`3. 云服务器还要去服务商控制台的安全组里放行同一个端口 —— 这台机器上查不到。`}],UE=[{text:`1. 看应用防火墙是不是开着:`},{text:`/usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate`,cmd:!0},{text:`2. 开着的话,在「系统设置 → 网络 → 防火墙 → 选项」里把 DSH / node 设成「允许传入连接」;排查时可以整个关掉:`},{text:`sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off`,cmd:!0},{text:`3. 同一 Wi-Fi 还连不上:确认手机和电脑真在同一个网段,别连到访客网络。`}],WE=[{text:`1. 在 PowerShell(管理员)里看防火墙配置文件:`},{text:`Get-NetFirewallProfile | Select-Object Name, Enabled`,cmd:!0},{text:`2. 放行直连端口:`},{text:`New-NetFirewallRule -DisplayName "DSH Mobile {port}" -Direction Inbound -LocalPort {port} -Protocol TCP -Action Allow`,cmd:!0},{text:`3. 如果以前给 node 配过拒绝规则,记得把那条 Block 删掉;网络类型选「专用」而不是「公用」。`}];function GE(){return[`帮我排查一个问题。`,``,`我的情况:电脑上装了 DSH(DeepSeek Harness)的移动端插件,手机 App 通过局域网直连连不上这台电脑。`,`手机上填的地址是这台电脑的局域网地址加端口(具体的地址和端口你需要到移动端插件的那个网页里看,注意是局域网地址)。`,`电脑这边显示插件已经在监听,但手机连不上。我判断是电脑的防火墙(或者云服务器的安全组)把这个端口挡了。`,``,`请你:`,`1. 先确认我的系统是 Linux、macOS 还是 Windows(不确定就问我,或者告诉我怎么确认)。`,`2. 按属于我这一套的步骤逐条检查,告诉我那个端口现在通不通、卡在哪一步。`,`3. 给出具体该执行的命令或点击路径,把端口放行;需要管理员权限的地方明确说明。`,`4. 最后告诉我怎么验证已经通了(比如用哪条命令从本机、从手机分别确认)。`,``,`补充:如果这台电脑是云服务器,服务商控制台里的安全组/防火墙也要放行同一个端口,这一项在本机查不到。`].join(`
|