tmex-cli 0.2.6 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/runtime/{cpufeatures-jxwx4v5j.node → cpufeatures-9rk1k79p.node} +0 -0
- package/dist/runtime/server.js +1813 -1298
- package/dist/runtime/{sshcrypto-sx6755rw.node → sshcrypto-z1hq11fy.node} +0 -0
- package/package.json +1 -1
- package/resources/fe-dist/assets/DevicePage-BE5Hlzny.js +26 -0
- package/resources/fe-dist/assets/DevicePage-BE5Hlzny.js.map +1 -0
- package/resources/fe-dist/assets/DevicesPage-BTB6mlBW.js +17 -0
- package/resources/fe-dist/assets/{DevicesPage-BrvmKNIQ.js.map → DevicesPage-BTB6mlBW.js.map} +1 -1
- package/resources/fe-dist/assets/SettingsPage-BDVq_Akt.js +17 -0
- package/resources/fe-dist/assets/{SettingsPage-XFRzVSzI.js.map → SettingsPage-BDVq_Akt.js.map} +1 -1
- package/resources/fe-dist/assets/ghostty-vt-BKQMf-5X.wasm +0 -0
- package/resources/fe-dist/assets/index-Chps0Pui.js +448 -0
- package/resources/fe-dist/assets/index-Chps0Pui.js.map +1 -0
- package/resources/fe-dist/assets/index-CyKyNcdz.css +1 -0
- package/resources/fe-dist/assets/select-7tfuDWw3.js +17 -0
- package/resources/fe-dist/assets/{select-CRYPgkuV.js.map → select-7tfuDWw3.js.map} +1 -1
- package/resources/fe-dist/assets/switch-CNHRGb7-.js +12 -0
- package/resources/fe-dist/assets/{switch-D216fzW5.js.map → switch-CNHRGb7-.js.map} +1 -1
- package/resources/fe-dist/assets/useValueChanged-Bi_NzPTr.js +7 -0
- package/resources/fe-dist/assets/{useValueChanged-CJav2OS1.js.map → useValueChanged-Bi_NzPTr.js.map} +1 -1
- package/resources/fe-dist/index.html +2 -2
- package/resources/fe-dist/assets/DevicePage-6GBZ9nXN.css +0 -32
- package/resources/fe-dist/assets/DevicePage-BOtxQsop.js +0 -267
- package/resources/fe-dist/assets/DevicePage-BOtxQsop.js.map +0 -1
- package/resources/fe-dist/assets/DevicesPage-BrvmKNIQ.js +0 -17
- package/resources/fe-dist/assets/SettingsPage-XFRzVSzI.js +0 -17
- package/resources/fe-dist/assets/index-CxzyWqMn.css +0 -1
- package/resources/fe-dist/assets/index-Vweko0vT.js +0 -200
- package/resources/fe-dist/assets/index-Vweko0vT.js.map +0 -1
- package/resources/fe-dist/assets/select-CRYPgkuV.js +0 -17
- package/resources/fe-dist/assets/switch-D216fzW5.js +0 -12
- package/resources/fe-dist/assets/useValueChanged-CJav2OS1.js +0 -7
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
var Bt=Object.defineProperty;var zt=(e,n,r)=>n in e?Bt(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r;var Xe=(e,n,r)=>zt(e,typeof n!="symbol"?n+"":n,r);import{c as Be,j as t,D as _t,g as qt,h as dt,X as Gt,B as pe,k as X,l as Vt,m as Yt,n as Qt,o as Jt,r as o,p as ve,q as ut,s as pt,v as Ae,w as mt,x as ft,y as ye,z as Wt,A as Xt,C as Zt,F as en,E as ue,G as tn,H as gt,J as nn,K as ht,L as sn,M as on,P as an,N as rn,O as Me,Q as cn,R as ln,S as dn,T as je,U as un,V as pn,W as mn,Y as fn,Z as Se,_ as xt,$ as gn,a0 as K,a1 as hn,a2 as xn,a3 as vt,a4 as yt,a5 as He,a6 as vn,a7 as yn,a8 as bn,a9 as Cn,aa as Pe,ab as jn,ac as we,ad as Ze,ae as wn,af as Rn,ag as Ke,ah as In,ai as Mn,aj as Pn,ak as Tn,al as Sn,am as Nn,an as Le,ao as En,ap as bt,aq as kn,ar as Ct,as as On,at as Dn,au as Fn,av as $e,aw as An,ax as Hn,ay as Kn,az as De,aA as Ln,aB as $n,aC as Un,aD as Bn,aE as et,aF as zn,aG as _n,aH as qn,aI as Gn,aJ as tt,aK as nt,aL as Vn,aM as Yn,u as be,a as jt,e as Qn,aN as wt,aO as Rt,aP as Jn,f as ce,aQ as st,aR as Ue,aS as Wn,aT as Xn}from"./index-Vweko0vT.js";import{h as It,i as Zn,j as es,k as ts,l as ns,m as ss,n as os,u as Te,C as Re,c as Ie,a as as,b as rs,o as is,I as ie,S as ot,d as at,e as rt,f as it,g as he}from"./select-CRYPgkuV.js";import{A as cs,a as ls,b as ds,h as us,T as Mt,c as ps,d as ms,e as fs,f as gs,g as hs}from"./useValueChanged-CJav2OS1.js";/**
|
|
2
|
-
* @license lucide-react v0.564.0 - ISC
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the ISC license.
|
|
5
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/const xs=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],vs=Be("ellipsis",xs);/**
|
|
7
|
-
* @license lucide-react v0.564.0 - ISC
|
|
8
|
-
*
|
|
9
|
-
* This source code is licensed under the ISC license.
|
|
10
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
-
*/const ys=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],bs=Be("pencil",ys);/**
|
|
12
|
-
* @license lucide-react v0.564.0 - ISC
|
|
13
|
-
*
|
|
14
|
-
* This source code is licensed under the ISC license.
|
|
15
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
-
*/const Cs=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],js=Be("zap",Cs);function ws({...e}){return t.jsx(_t,{"data-slot":"dialog",...e})}function Rs({...e}){return t.jsx(Qt,{"data-slot":"dialog-portal",...e})}function Is({className:e,...n}){return t.jsx(Jt,{"data-slot":"dialog-overlay",className:X("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 isolate z-50",e),...n})}function Ms({className:e,children:n,showCloseButton:r=!0,...s}){return t.jsxs(Rs,{children:[t.jsx(Is,{}),t.jsxs(qt,{"data-slot":"dialog-content",className:X("bg-background data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 ring-foreground/10 grid max-w-[calc(100%-2rem)] gap-4 rounded-xl p-4 text-sm ring-1 duration-100 sm:max-w-sm fixed top-1/2 left-1/2 z-50 w-full -translate-x-1/2 -translate-y-1/2 outline-none",e),...s,children:[n,r&&t.jsxs(dt,{"data-slot":"dialog-close",render:t.jsx(pe,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[t.jsx(Gt,{}),t.jsx("span",{className:"sr-only",children:"Close"})]})]})]})}function Ps({className:e,...n}){return t.jsx("div",{"data-slot":"dialog-header",className:X("gap-2 flex flex-col",e),...n})}function Ts({className:e,showCloseButton:n=!1,children:r,...s}){return t.jsxs("div",{"data-slot":"dialog-footer",className:X("bg-muted/50 -mx-4 -mb-4 rounded-b-xl border-t p-4 flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...s,children:[r,n&&t.jsx(dt,{render:t.jsx(pe,{variant:"outline"}),children:"Close"})]})}function Ss({className:e,...n}){return t.jsx(Vt,{"data-slot":"dialog-title",className:X("text-base leading-none font-medium",e),...n})}function Ns({className:e,...n}){return t.jsx(Yt,{"data-slot":"dialog-description",className:X("text-muted-foreground *:[a]:hover:text-foreground text-sm *:[a]:underline *:[a]:underline-offset-3",e),...n})}const Pt=o.createContext(void 0);function Tt(e){const n=o.useContext(Pt);if(n===void 0&&!e)throw new Error(ve(33));return n}const St=o.createContext(void 0);function me(e){const n=o.useContext(St);if(n===void 0&&!e)throw new Error(ve(36));return n}const Es=o.createContext(void 0);function Ne(e=!0){const n=o.useContext(Es);if(n===void 0&&!e)throw new Error(ve(25));return n}function ks(e){const{closeOnClick:n,highlighted:r,id:s,nodeId:p,store:i,itemRef:m,itemMetadata:c}=e,{events:y}=i.useState("floatingTreeRoot"),b=Ne(!0),C=b!==void 0;return o.useMemo(()=>({id:s,role:"menuitem",tabIndex:r?0:-1,onMouseMove(v){p&&y.emit("itemhover",{nodeId:p,target:v.currentTarget})},onClick(v){n&&y.emit("close",{domEvent:v,reason:ut})},onMouseUp(v){if(b){const I=b.initialCursorPointRef.current;if(b.initialCursorPointRef.current=null,C&&I&&Math.abs(v.clientX-I.x)<=1&&Math.abs(v.clientY-I.y)<=1)return}m.current&&i.context.allowMouseUpTriggerRef.current&&(!C||v.button===2)&&(!c||c.type==="regular-item")&&m.current.click()}}),[n,r,s,y,p,i,m,b,C,c])}const Os={type:"regular-item"};function Ds(e){const{closeOnClick:n,disabled:r=!1,highlighted:s,id:p,store:i,nativeButton:m,itemMetadata:c,nodeId:y}=e,b=o.useRef(null),{getButtonProps:C,buttonRef:v}=pt({disabled:r,focusableWhenDisabled:!0,native:m}),I=ks({closeOnClick:n,highlighted:s,id:p,nodeId:y,store:i,itemRef:b,itemMetadata:c}),x=o.useCallback(g=>Ae(I,{onMouseEnter(){c.type==="submenu-trigger"&&c.setActive()},onKeyUp(M){M.key===" "&&i.context.typingRef.current&&M.preventBaseUIHandler()}},g,C),[I,C,i,c]),S=mt(b,v);return o.useMemo(()=>({getItemProps:x,itemRef:S}),[x,S])}const Fs=o.forwardRef(function(n,r){const{render:s,className:p,id:i,label:m,nativeButton:c=!1,disabled:y=!1,closeOnClick:b=!0,...C}=n,v=It({label:m}),I=Tt(!0),x=ft(i),{store:S}=me(),g=S.useState("isActive",v.index),M=S.useState("itemProps"),{getItemProps:j,itemRef:u}=Ds({closeOnClick:b,disabled:y,highlighted:g,id:x,store:S,nativeButton:c,nodeId:I==null?void 0:I.nodeId,itemMetadata:Os});return ye("div",n,{state:{disabled:y,highlighted:g},props:[M,C,j],ref:[u,r,v.ref]})}),As={...gt,...tn},Hs=o.forwardRef(function(n,r){const{render:s,className:p,finalFocus:i,...m}=n,{store:c}=me(),{side:y,align:b}=Tt(),C=Zn()!=null,v=c.useState("open"),I=c.useState("transitionStatus"),x=c.useState("popupProps"),S=c.useState("mounted"),g=c.useState("instantType"),M=c.useState("activeTriggerElement"),j=c.useState("parent"),u=c.useState("lastOpenChangeReason"),N=c.useState("rootId"),$=c.useState("floatingRootContext"),f=c.useState("floatingTreeRoot"),a=c.useState("closeDelay"),w=c.useState("activeTriggerElement"),l=j.type==="context-menu";Wt({open:v,ref:c.context.popupRef,onComplete(){var O,H;v&&((H=(O=c.context).onOpenChangeComplete)==null||H.call(O,!0))}}),o.useEffect(()=>{function O(H){c.setOpen(!1,ue(H.reason,H.domEvent))}return f.events.on("close",O),()=>{f.events.off("close",O)}},[f.events,c]);const d=c.useState("hoverEnabled"),k=c.useState("disabled");Xt($,{enabled:d&&!k&&!l&&j.type!=="menubar",closeDelay:a});const q={transitionStatus:I,side:y,align:b,open:v,nested:j.type==="menu",instant:g},V=ye("div",n,{state:q,ref:[r,c.context.popupRef],stateAttributesMapping:As,props:[x,{onKeyDown(O){C&&nn.has(O.key)&&O.stopPropagation()}},ht(I),m,{"data-rootownerid":N}]});let A=j.type===void 0||l;return(M||j.type==="menubar"&&u!==Zt)&&(A=!0),t.jsx(en,{context:$,modal:l,disabled:!S,returnFocus:i===void 0?A:i,initialFocus:j.type!=="menu",restoreFocus:!0,externalTree:j.type!=="menubar"?f:void 0,previousFocusableElement:w,nextFocusableElement:j.type===void 0?c.context.triggerFocusTargetRef:void 0,beforeContentFocusGuardRef:j.type===void 0?c.context.beforeContentFocusGuardRef:void 0,children:V})}),Nt=o.createContext(void 0);function Ks(){const e=o.useContext(Nt);if(e===void 0)throw new Error(ve(32));return e}const Ls=o.forwardRef(function(n,r){const{keepMounted:s=!1,...p}=n,{store:i}=me();return i.useState("mounted")||s?t.jsx(Nt.Provider,{value:s,children:t.jsx(sn,{ref:r,...p})}):null}),$s=o.forwardRef(function(n,r){var ae;const{anchor:s,positionMethod:p="absolute",className:i,render:m,side:c,align:y,sideOffset:b=0,alignOffset:C=0,collisionBoundary:v="clipping-ancestors",collisionPadding:I=5,arrowPadding:x=5,sticky:S=!1,disableAnchorTracking:g=!1,collisionAvoidance:M=on,...j}=n,{store:u}=me(),N=Ks(),$=Ne(!0),f=u.useState("parent"),a=u.useState("floatingRootContext"),w=u.useState("floatingTreeRoot"),l=u.useState("mounted"),d=u.useState("open"),k=u.useState("modal"),q=u.useState("activeTriggerElement"),V=u.useState("transitionStatus"),A=u.useState("lastOpenChangeReason"),O=u.useState("floatingNodeId"),H=u.useState("floatingParentNodeId");let le=s,P=b,U=C,Z=y,Y=M;f.type==="context-menu"&&(le=s??((ae=f.context)==null?void 0:ae.anchor),Z=Z??"start",!c&&Z!=="center"&&(U=n.alignOffset??2,P=n.sideOffset??-5));let _=c,Q=Z;f.type==="menu"?(_=_??"inline-end",Q=Q??"start",Y=n.collisionAvoidance??an):f.type==="menubar"&&(_=_??"bottom",Q=Q??"start");const B=f.type==="context-menu",E=rn({anchor:le,floatingRootContext:a,positionMethod:$?"fixed":p,mounted:l,side:_,sideOffset:P,align:Q,alignOffset:U,arrowPadding:B?0:x,collisionBoundary:v,collisionPadding:I,sticky:S,nodeId:O,keepMounted:N,disableAnchorTracking:g,collisionAvoidance:Y,shiftCrossAxis:B&&!("side"in Y&&Y.side==="flip"),externalTree:w}),se=o.useMemo(()=>{const T={};return d||(T.pointerEvents="none"),{role:"presentation",hidden:!l,style:{...E.positionerStyles,...T}}},[d,l,E.positionerStyles]);o.useEffect(()=>{function T(D){D.open&&(D.parentNodeId===O&&u.set("hoverEnabled",!1),D.nodeId!==O&&D.parentNodeId===u.select("floatingParentNodeId")&&u.setOpen(!1,ue(je)))}return w.events.on("menuopenchange",T),()=>{w.events.off("menuopenchange",T)}},[u,w.events,O]),o.useEffect(()=>{if(u.select("floatingParentNodeId")==null)return;function T(D){if(D.open||D.nodeId!==u.select("floatingParentNodeId"))return;const ge=D.reason??je;u.setOpen(!1,ue(ge))}return w.events.on("menuopenchange",T),()=>{w.events.off("menuopenchange",T)}},[w.events,u]),o.useEffect(()=>{function T(D){!d||D.nodeId!==u.select("floatingParentNodeId")||D.target&&q&&q!==D.target&&u.setOpen(!1,ue(je))}return w.events.on("itemhover",T),()=>{w.events.off("itemhover",T)}},[w.events,d,q,u]),o.useEffect(()=>{const T={open:d,nodeId:O,parentNodeId:H,reason:u.select("lastOpenChangeReason")};w.events.emit("menuopenchange",T)},[w.events,d,u,O,H]);const xe={open:d,side:E.side,align:E.align,anchorHidden:E.anchorHidden,nested:f.type==="menu"},fe=o.useMemo(()=>({side:E.side,align:E.align,arrowRef:E.arrowRef,arrowUncentered:E.arrowUncentered,arrowStyles:E.arrowStyles,nodeId:E.context.nodeId}),[E.side,E.align,E.arrowRef,E.arrowUncentered,E.arrowStyles,E.context.nodeId]),de=ye("div",n,{state:xe,stateAttributesMapping:gt,ref:[r,u.useStateSetter("positionerElement")],props:[se,ht(V),j]}),oe=l&&f.type!=="menu"&&(f.type!=="menubar"&&k&&A!==Me||f.type==="menubar"&&f.context.modal);let J=null;return f.type==="menubar"?J=f.context.contentElement:f.type===void 0&&(J=q),t.jsxs(Pt.Provider,{value:fe,children:[oe&&t.jsx(cn,{ref:f.type==="context-menu"||f.type==="nested-context-menu"?f.context.internalBackdropRef:null,inert:ln(!d),cutout:J}),t.jsx(dn,{id:O,children:t.jsx(es,{elementsRef:u.context.itemDomElements,labelsRef:u.context.itemLabels,children:de})})]})}),Us=o.createContext(null);function Et(e){return o.useContext(Us)}const Bs={...mn,disabled:K(e=>e.parent.type==="menubar"&&e.parent.context.disabled||e.disabled),modal:K(e=>(e.parent.type===void 0||e.parent.type==="context-menu")&&(e.modal??!0)),allowMouseEnter:K(e=>e.allowMouseEnter),stickIfOpen:K(e=>e.stickIfOpen),parent:K(e=>e.parent),rootId:K(e=>e.parent.type==="menu"?e.parent.store.select("rootId"):e.parent.type!==void 0?e.parent.context.rootId:e.rootId),activeIndex:K(e=>e.activeIndex),isActive:K((e,n)=>e.activeIndex===n),hoverEnabled:K(e=>e.hoverEnabled),instantType:K(e=>e.instantType),lastOpenChangeReason:K(e=>e.openChangeReason),floatingTreeRoot:K(e=>e.parent.type==="menu"?e.parent.store.select("floatingTreeRoot"):e.floatingTreeRoot),floatingNodeId:K(e=>e.floatingNodeId),floatingParentNodeId:K(e=>e.floatingParentNodeId),itemProps:K(e=>e.itemProps),closeDelay:K(e=>e.closeDelay),keyboardEventRelay:K(e=>{if(e.keyboardEventRelay)return e.keyboardEventRelay;if(e.parent.type==="menu")return e.parent.store.select("keyboardEventRelay")})};class ze extends un{constructor(r){super({...zs(),...r},{positionerRef:o.createRef(),popupRef:o.createRef(),typingRef:{current:!1},itemDomElements:{current:[]},itemLabels:{current:[]},allowMouseUpTriggerRef:{current:!1},triggerFocusTargetRef:o.createRef(),beforeContentFocusGuardRef:o.createRef(),onOpenChangeComplete:void 0,triggerElements:new pn},Bs);Xe(this,"unsubscribeParentListener",null);this.unsubscribeParentListener=this.observe("parent",s=>{var p;if((p=this.unsubscribeParentListener)==null||p.call(this),s.type==="menu"){this.unsubscribeParentListener=s.store.subscribe(()=>{this.notifyAll()}),this.context.allowMouseUpTriggerRef=s.store.context.allowMouseUpTriggerRef;return}s.type!==void 0&&(this.context.allowMouseUpTriggerRef=s.context.allowMouseUpTriggerRef),this.unsubscribeParentListener=null})}setOpen(r,s){this.state.floatingRootContext.context.events.emit("setOpen",{open:r,eventDetails:s})}static useStore(r,s){const p=fn(()=>new ze(s)).current;return r??p}}function zs(){return{...gn(),disabled:!1,modal:!0,allowMouseEnter:!1,stickIfOpen:!0,parent:{type:void 0},rootId:void 0,activeIndex:null,hoverEnabled:!0,instantType:void 0,openChangeReason:null,floatingTreeRoot:new xt,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:Se,keyboardEventRelay:void 0,closeDelay:0}}const _s=o.createContext(void 0);function qs(){return o.useContext(_s)}const Gs=hn(function(n){const{children:r,open:s,onOpenChange:p,onOpenChangeComplete:i,defaultOpen:m=!1,disabled:c=!1,modal:y,loopFocus:b=!0,orientation:C="vertical",actionsRef:v,closeParentOnEsc:I=!1,handle:x,triggerId:S,defaultTriggerId:g=null,highlightItemOnHover:M=!0}=n,j=Ne(!0),u=me(!0),N=Et(!0),$=qs(),f=o.useMemo(()=>$&&u?{type:"menu",store:u.store}:N?{type:"menubar",context:N}:j&&!u?{type:"context-menu",context:j}:{type:void 0},[j,u,N,$]),a=ze.useStore(x==null?void 0:x.store,{open:m,openProp:s,activeTriggerId:g,triggerIdProp:S,parent:f});xn(()=>{s===void 0&&a.state.open===!1&&m===!0&&a.update({open:!0,activeTriggerId:g})}),a.useControlledProp("openProp",s),a.useControlledProp("triggerIdProp",S),a.useContextCallback("onOpenChangeComplete",i);const w=a.useState("floatingTreeRoot"),l=vt(w),d=yt();He(()=>{j&&!u?a.update({parent:{type:"context-menu",context:j},floatingNodeId:l,floatingParentNodeId:d}):u&&a.update({floatingNodeId:l,floatingParentNodeId:d})},[j,u,l,d,a]);const k=a.useState("open"),q=a.useState("activeTriggerElement"),V=a.useState("positionerElement"),A=a.useState("hoverEnabled"),O=a.useState("modal"),H=a.useState("disabled"),le=a.useState("lastOpenChangeReason"),P=a.useState("parent"),U=a.useState("activeIndex"),Z=a.useState("payload"),Y=a.useState("floatingParentNodeId"),_=o.useRef(null),Q=Y!=null;let B;a.useSyncedValues({disabled:c,modal:P.type===void 0?y:void 0,rootId:vn()});const{openMethod:E,triggerProps:se,reset:xe}=yn(k);bn(a);const{forceUnmount:fe}=Cn(k,a,()=>{a.update({allowMouseEnter:!1,stickIfOpen:!0}),xe()}),de=o.useRef(P.type!=="context-menu"),oe=Pe();o.useEffect(()=>{if(k||(_.current=null),P.type==="context-menu"){if(!k){oe.clear(),de.current=!1;return}oe.start(500,()=>{de.current=!0})}},[oe,k,P.type]),jn(k&&O&&le!==Me&&E!=="touch",V),He(()=>{!k&&!A&&a.set("hoverEnabled",!0)},[k,A,a]);const J=o.useRef(!0),ae=Pe(),T=we((h,R)=>{var We;const z=R.reason;if(k===h&&R.trigger===q&&le===z||(R.preventUnmountOnClose=()=>{a.set("preventUnmountingOnClose",!0)},!h&&R.trigger==null&&(R.trigger=q??void 0),p==null||p(h,R),R.isCanceled))return;const $t={open:h,nativeEvent:R.event,reason:R.reason,nested:Q};B==null||B.emit("openchange",$t);const re=R.event;if(h===!1&&(re==null?void 0:re.type)==="click"&&re.pointerType==="touch"&&!J.current)return;if(!h&&U!==null){const Oe=a.context.itemDomElements.current[U];queueMicrotask(()=>{Oe==null||Oe.setAttribute("tabindex","-1")})}h&&z===Ze?(J.current=!1,ae.start(300,()=>{J.current=!0})):(J.current=!0,ae.clear());const Qe=(z===wn||z===ut)&&re.detail===0&&(re==null?void 0:re.isTrusted),Ut=!h&&(z===Rn||z==null),ke={open:h,openChangeReason:z};_.current=R.event??null;const Je=((We=R.trigger)==null?void 0:We.id)??null;(Je||h)&&(ke.activeTriggerId=Je,ke.activeTriggerElement=R.trigger??null),a.update(ke),P.type==="menubar"&&(z===Ze||z===Ke||z===Me||z===In||z===je)?a.set("instantType","group"):Qe||Ut?a.set("instantType",Qe?"click":"dismiss"):a.set("instantType",void 0)}),D=o.useCallback(h=>{const R=ue(h);return R.preventUnmountOnClose=()=>{a.set("preventUnmountingOnClose",!0)},R},[a]),ge=o.useCallback(()=>{a.setOpen(!1,D(Mn))},[a,D]);o.useImperativeHandle(v,()=>({unmount:fe,close:ge}),[fe,ge]);let ee;P.type==="context-menu"&&(ee=P.context),o.useImperativeHandle(ee==null?void 0:ee.positionerRef,()=>V,[V]),o.useImperativeHandle(ee==null?void 0:ee.actionsRef,()=>({setOpen:T}),[T]);const te=Pn({popupStore:a,onOpenChange:T});B=te.context.events,o.useEffect(()=>{const h=({open:R,eventDetails:z})=>T(R,z);return B.on("setOpen",h),()=>{B==null||B.off("setOpen",h)}},[B,T]);const F=Tn(te,{enabled:!H,bubbles:{escapeKey:I&&P.type==="menu"},outsidePress(){var h;return P.type!=="context-menu"||((h=_.current)==null?void 0:h.type)==="contextmenu"?!0:de.current},externalTree:Q?w:void 0}),L=Sn(te,{role:"menu"}),ne=Nn(),G=o.useCallback(h=>{a.select("activeIndex")!==h&&a.set("activeIndex",h)},[a]),Ee=ts(te,{enabled:!H,listRef:a.context.itemDomElements,activeIndex:U,nested:P.type!==void 0,loopFocus:b,orientation:C,parentOrientation:P.type==="menubar"?P.context.orientation:void 0,rtl:ne==="rtl",disabledIndices:Le,onNavigate:G,openOnArrowKeyDown:P.type!=="context-menu",externalTree:Q?w:void 0,focusItemOnHover:M}),Ot=o.useCallback(h=>{a.context.typingRef.current=h},[a]),Dt=ns(te,{listRef:a.context.itemLabels,activeIndex:U,resetMs:En,onMatch:h=>{k&&h!==U&&a.set("activeIndex",h)},onTypingChange:Ot}),{getReferenceProps:_e,getFloatingProps:qe,getItemProps:Ge,getTriggerProps:Ve}=bt([F,L,Ee,Dt]),Ft=o.useMemo(()=>{const h=Ae(_e(),{onMouseMove(){a.set("allowMouseEnter",!0)}},se);return delete h.role,h},[_e,a,se]),At=o.useMemo(()=>{const h=Ve();if(!h)return h;const R=Ae(h,se);return delete R.role,delete R["aria-controls"],R},[Ve,se]),Ht=o.useMemo(()=>qe({onMouseMove(){a.set("allowMouseEnter",!0),P.type==="menu"&&a.set("hoverEnabled",!1)},onClick(){a.select("hoverEnabled")&&a.set("hoverEnabled",!1)},onKeyDown(h){const R=a.select("keyboardEventRelay");R&&!h.isPropagationStopped()&&R(h)}}),[qe,P.type,a]),Kt=o.useMemo(()=>Ge(),[Ge]);a.useSyncedValues({floatingRootContext:te,activeTriggerProps:Ft,inactiveTriggerProps:At,popupProps:Ht,itemProps:Kt});const Lt=o.useMemo(()=>({store:a,parent:f}),[a,f]),Ye=t.jsx(St.Provider,{value:Lt,children:typeof r=="function"?r({payload:Z}):r});return P.type===void 0||P.type==="context-menu"?t.jsx(kn,{externalTree:w,children:Ye}):Ye});function Vs(e={}){const{highlightItemOnHover:n,highlightedIndex:r,onHighlightedIndexChange:s}=Ct(),{ref:p,index:i}=It(e),m=r===i,c=o.useRef(null),y=mt(p,c);return{compositeProps:o.useMemo(()=>({tabIndex:m?0:-1,onFocus(){s(i)},onMouseMove(){const C=c.current;if(!n||!C)return;const v=C.hasAttribute("disabled")||C.ariaDisabled==="true";!m&&!v&&C.focus()}}),[m,s,i,n]),compositeRef:y,index:i}}function Ys(e){const{render:n,className:r,state:s=Se,props:p=Le,refs:i=Le,metadata:m,stateAttributesMapping:c,tag:y="div",...b}=e,{compositeProps:C,compositeRef:v}=Vs({metadata:m});return ye(y,e,{state:s,ref:[...i,v],props:[C,...p,b],stateAttributesMapping:c})}function kt(e){if(On(e)&&e.hasAttribute("data-rootownerid"))return e.getAttribute("data-rootownerid")??void 0;if(!Dn(e))return kt(Fn(e))}function Qs(e){const{enabled:n=!0,mouseDownAction:r,open:s}=e,p=o.useRef(!1);return o.useMemo(()=>n?{onMouseDown:i=>{(r==="open"&&!s||r==="close"&&s)&&(p.current=!0,$e(i.currentTarget).addEventListener("click",()=>{p.current=!1},{once:!0}))},onClick:i=>{p.current&&(p.current=!1,i.preventBaseUIHandler())}}:Se,[n,r,s])}const Ce=2,Js=An(function(n,r){const{render:s,className:p,disabled:i=!1,nativeButton:m=!0,id:c,openOnHover:y,delay:b=100,closeDelay:C=0,handle:v,payload:I,...x}=n,S=me(!0),g=(v==null?void 0:v.store)??(S==null?void 0:S.store);if(!g)throw new Error(ve(85));const M=ft(c),j=g.useState("isTriggerActive",M),u=g.useState("floatingRootContext"),N=g.useState("isOpenedByTrigger",M),$=o.useRef(null),f=Xs(),a=Ct(!0),w=Hn(),l=o.useMemo(()=>w??new xt,[w]),d=vt(l),k=yt(),{registerTrigger:q,isMountedByThisTrigger:V}=Kn(M,$,g,{payload:I,closeDelay:C,parent:f,floatingTreeRoot:l,floatingNodeId:d,floatingParentNodeId:k,keyboardEventRelay:a==null?void 0:a.relayKeyboardEvent}),A=f.type==="menubar",O=g.useState("disabled"),H=i||O||A&&f.context.disabled,{getButtonProps:le,buttonRef:P}=pt({disabled:H,native:m});o.useEffect(()=>{!N&&f.type===void 0&&(g.context.allowMouseUpTriggerRef.current=!1)},[g,N,f.type]);const U=o.useRef(null),Z=Pe(),Y=we(F=>{if(!U.current)return;Z.clear(),g.context.allowMouseUpTriggerRef.current=!1;const L=F.target;if(De(U.current,L)||De(g.select("positionerElement"),L)||L===U.current||L!=null&&kt(L)===g.select("rootId"))return;const ne=ss(U.current);F.clientX>=ne.left-Ce&&F.clientX<=ne.right+Ce&&F.clientY>=ne.top-Ce&&F.clientY<=ne.bottom+Ce||l.events.emit("close",{domEvent:F,reason:Ln})});o.useEffect(()=>{N&&g.select("lastOpenChangeReason")===Me&&$e(U.current).addEventListener("mouseup",Y,{once:!0})},[N,Y,g]);const _=A&&f.context.hasSubmenuOpen,B=$n(u,{enabled:(y??_)&&!H&&f.type!=="context-menu"&&(!A||_&&!V),handleClose:Un({blockPointerEvents:!A}),mouseOnly:!0,move:!1,restMs:f.type===void 0?b:void 0,delay:{close:C},triggerElementRef:$,externalTree:l,isActiveTrigger:j}),E=Ws(N,g.select("lastOpenChangeReason")),se=os(u,{enabled:!H&&f.type!=="context-menu",event:N&&A?"click":"mousedown",toggle:!0,ignoreMouse:!1,stickIfOpen:f.type===void 0?E:!1}),xe=Bn(u,{enabled:!H&&_}),fe=Qs({open:N,enabled:A,mouseDownAction:"open"}),de=bt([se,xe]),oe={disabled:H,open:N},J=g.useState("triggerProps",V),ae=[U,r,P,q,$],T=[de.getReferenceProps(),B??Se,J,{"aria-haspopup":"menu",id:M,onMouseDown:F=>{if(g.select("open"))return;Z.start(200,()=>{g.context.allowMouseUpTriggerRef.current=!0}),$e(F.currentTarget).addEventListener("mouseup",Y,{once:!0})}},A?{role:"menuitem"}:{},fe,x,le],D=o.useRef(null),ge=we(F=>{et.flushSync(()=>{g.setOpen(!1,ue(Ke,F.nativeEvent,F.currentTarget))});const L=zn(D.current);L==null||L.focus()}),ee=we(F=>{var ne;const L=g.select("positionerElement");if(L&&_n(F,L))(ne=g.context.beforeContentFocusGuardRef.current)==null||ne.focus();else{et.flushSync(()=>{g.setOpen(!1,ue(Ke,F.nativeEvent,F.currentTarget))});let G=qn(g.context.triggerFocusTargetRef.current||$.current);for(;G!==null&&De(L,G);){const Ee=G;if(G=Gn(G),G===Ee)break}G==null||G.focus()}}),te=ye("button",n,{enabled:!A,stateAttributesMapping:tt,state:oe,ref:ae,props:T});return A?t.jsx(Ys,{tag:"button",render:s,className:p,state:oe,refs:ae,props:T,stateAttributesMapping:tt}):N?t.jsxs(o.Fragment,{children:[t.jsx(nt,{ref:D,onFocus:ge},`${M}-pre-focus-guard`),t.jsx(o.Fragment,{children:te},M),t.jsx(nt,{ref:g.context.triggerFocusTargetRef,onFocus:ee},`${M}-post-focus-guard`)]}):t.jsx(o.Fragment,{children:te},M)});function Ws(e,n){const r=Pe(),[s,p]=o.useState(!1);return He(()=>{e&&n==="trigger-hover"?(p(!0),r.start(Vn,()=>{p(!1)})):e||(r.clear(),p(!1))},[e,n,r]),s}function Xs(){const e=Ne(!0),n=me(!0),r=Et();return o.useMemo(()=>r?{type:"menubar",context:r}:e&&!n?{type:"context-menu",context:e}:{type:void 0},[e,n,r])}function Zs({...e}){return t.jsx(Gs,{"data-slot":"dropdown-menu",...e})}function eo({...e}){return t.jsx(Js,{"data-slot":"dropdown-menu-trigger",...e})}function to({align:e="start",alignOffset:n=0,side:r="bottom",sideOffset:s=4,className:p,...i}){return t.jsx(Ls,{children:t.jsx($s,{className:"isolate z-50 outline-none",align:e,alignOffset:n,side:r,sideOffset:s,children:t.jsx(Hs,{"data-slot":"dropdown-menu-content",className:X("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-32 rounded-lg p-1 shadow-md ring-1 duration-100 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 z-50 max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto outline-none data-closed:overflow-hidden",p),...i})})})}function Fe({className:e,inset:n,variant:r="default",...s}){return t.jsx(Fs,{"data-slot":"dropdown-menu-item","data-inset":n,"data-variant":r,className:X("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive not-data-[variant=destructive]:focus:**:text-accent-foreground gap-1.5 rounded-md px-1.5 py-1 text-sm data-inset:pl-7 [&_svg:not([class*='size-'])]:size-4 group/dropdown-menu-item relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",e),...s})}function no({className:e,...n}){return t.jsx(Yn,{"data-slot":"dropdown-menu-separator",className:X("bg-border -mx-1 my-1 h-px",e),...n})}function so({className:e,...n}){return t.jsx("textarea",{"data-slot":"textarea",className:X("border-input dark:bg-input/30 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 rounded-lg border bg-transparent px-2.5 py-2 text-base transition-colors focus-visible:ring-3 aria-invalid:ring-3 md:text-sm placeholder:text-muted-foreground flex field-sizing-content min-h-16 w-full outline-none disabled:cursor-not-allowed disabled:opacity-50",e),...n})}function W(e){const n=e.trim();return n||void 0}function oo(e){return e?{name:e.name,type:e.type,host:e.host??"",port:e.port??22,username:e.username??"",sshConfigRef:e.sshConfigRef??"",session:e.session??"tmex",authMode:e.type==="local"?"auto":e.authMode,password:"",privateKey:"",privateKeyPassphrase:""}:{name:"",type:"local",host:"",port:22,username:"",sshConfigRef:"",session:"tmex",authMode:"auto",password:"",privateKey:"",privateKeyPassphrase:""}}function ao(e){if(e.type==="local")return{name:e.name.trim(),type:"local",session:W(e.session)??"tmex",authMode:"auto"};const n={name:e.name.trim(),type:"ssh",host:W(e.host),port:e.port,username:W(e.username),sshConfigRef:W(e.sshConfigRef),session:W(e.session)??"tmex",authMode:e.authMode};return e.authMode==="password"&&(n.password=e.password),e.authMode==="key"&&(n.privateKey=e.privateKey,n.privateKeyPassphrase=e.privateKeyPassphrase||void 0),n}function ro(e){if(e.type==="local")return{name:e.name.trim(),session:W(e.session)??"tmex",authMode:"auto"};const n={name:e.name.trim(),host:W(e.host),port:e.port,username:W(e.username),sshConfigRef:W(e.sshConfigRef),session:W(e.session)??"tmex",authMode:e.authMode};return e.authMode==="password"&&e.password&&(n.password=e.password),e.authMode==="key"&&e.privateKey&&(n.privateKey=e.privateKey,n.privateKeyPassphrase=e.privateKeyPassphrase||void 0),n}async function ct(e,n){try{return(await e.json()).error??n}catch{return n}}function mo(){const{t:e}=be(),[n,r]=o.useState(!1),[s,p]=o.useState(null),[i,m]=o.useState(null),c=jt();o.useEffect(()=>{const x=()=>r(!0);return window.addEventListener("tmex:open-add-device",x),()=>window.removeEventListener("tmex:open-add-device",x)},[]);const{data:y,isLoading:b,isError:C}=Qn({queryKey:["devices"],queryFn:async()=>{const x=await fetch("/api/devices");if(!x.ok)throw new Error(e("device.loadFailed"));return x.json()},throwOnError:!1}),v=Te({mutationFn:async x=>{if(!(await fetch(`/api/devices/${x}`,{method:"DELETE"})).ok)throw new Error(e("device.deleteFailed"))},onSuccess:()=>{c.invalidateQueries({queryKey:["devices"]}),ce.success(e("common.success"))},onError:x=>{ce.error(x instanceof Error?x.message:e("common.error"))}}),I=(y==null?void 0:y.devices)??[];return t.jsxs("div",{className:"mx-auto flex w-full max-w-6xl flex-col gap-3 p-3 pb-[calc(1rem+env(safe-area-inset-bottom))] sm:gap-4 sm:p-5","data-testid":"devices-page",children:[b?t.jsx(Re,{children:t.jsx(Ie,{className:"py-16 text-center text-sm text-muted-foreground",children:e("common.loading")})}):C?t.jsx(Re,{children:t.jsx(Ie,{className:"py-16 text-center text-sm text-destructive",children:e("device.loadFailed")})}):I.length===0?t.jsx(Re,{children:t.jsxs(Ie,{className:"space-y-4 py-14 text-center",children:[t.jsx("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-xl border border-border bg-muted",children:t.jsx(wt,{className:"h-6 w-6 text-muted-foreground"})}),t.jsxs("div",{className:"space-y-1",children:[t.jsx("h2",{className:"text-lg font-medium",children:e("device.noDevices")}),t.jsx("p",{className:"text-sm text-muted-foreground",children:e("device.addDevice")})]}),t.jsxs(pe,{variant:"default","data-testid":"devices-add-empty",onClick:()=>r(!0),children:[t.jsx(Rt,{className:"h-4 w-4"}),e("device.addDevice")]})]})}):t.jsx("div",{className:"grid gap-3 lg:grid-cols-2",children:I.map(x=>t.jsx(io,{device:x,onEdit:()=>p(x),onDelete:()=>m(x)},x.id))}),n&&t.jsx(lt,{mode:"create",onClose:()=>r(!1)}),s&&t.jsx(lt,{mode:"edit",device:s,onClose:()=>p(null)}),t.jsx(cs,{open:i!==null,onOpenChange:x=>!x&&m(null),children:t.jsxs(ls,{children:[t.jsxs(ds,{children:[t.jsx(us,{children:t.jsx(Mt,{className:"h-5 w-5 text-muted-foreground"})}),t.jsx(ps,{children:e("device.deleteConfirm")}),t.jsx(ms,{children:(i==null?void 0:i.name)??""})]}),t.jsxs(fs,{children:[t.jsx(gs,{children:e("common.cancel")}),t.jsx(hs,{variant:"destructive",disabled:!i||v.isPending,onClick:()=>{i&&(v.mutate(i.id),m(null))},children:e("common.delete")})]})]})})]})}function io({device:e,onEdit:n,onDelete:r}){const{t:s}=be(),p=e.type==="local"?t.jsx(wt,{className:"h-5 w-5"}):t.jsx(Jn,{className:"h-5 w-5"}),i=e.type==="local"?s("device.typeLocal"):`${e.username??"-"}@${e.host??"-"}:${e.port??22}`,m=Te({mutationFn:async()=>{const c=await fetch(`/api/devices/${e.id}/test-connection`,{method:"POST"});let y=null;try{y=await c.json()}catch{y=null}if(!c.ok){const b=y;throw new Error((b==null?void 0:b.error)??s("common.error"))}return y},onSuccess:c=>{ce.success(c.message??s("common.success"))},onError:c=>{ce.error(c instanceof Error?c.message:s("common.error"))}});return t.jsxs(Re,{"data-testid":"device-card","data-device-id":e.id,"data-device-name":e.name,className:"overflow-hidden",children:[t.jsxs(as,{className:"space-y-3 pb-3",children:[t.jsxs("div",{className:"flex items-start justify-between gap-3",children:[t.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[t.jsx("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg border border-border bg-muted text-muted-foreground",children:p}),t.jsxs("div",{className:"min-w-0 space-y-1",children:[t.jsx(rs,{className:"line-clamp-1 text-base",title:e.name,children:e.name}),t.jsx(is,{className:"line-clamp-1",children:i})]})]}),t.jsx("div",{className:"flex shrink-0 items-center gap-1",children:t.jsxs(Zs,{children:[t.jsx(eo,{render:t.jsx(pe,{variant:"ghost",size:"icon-sm","data-testid":`device-card-actions-${e.id}`,"aria-label":s("common.edit"),title:s("common.edit")}),children:t.jsx(vs,{className:"h-4 w-4"})}),t.jsxs(to,{align:"end",children:[t.jsxs(Fe,{"data-testid":`device-card-edit-${e.id}`,onClick:n,children:[t.jsx(bs,{className:"h-4 w-4"}),s("common.edit")]}),e.type==="ssh"&&t.jsxs(Fe,{"data-testid":`device-card-test-${e.id}`,onClick:()=>m.mutate(),disabled:m.isPending,children:[t.jsx(js,{className:"h-4 w-4"}),s("common.test")]}),t.jsx(no,{}),t.jsxs(Fe,{"data-testid":`device-card-delete-${e.id}`,variant:"destructive",onClick:r,children:[t.jsx(Mt,{className:"h-4 w-4"}),s("common.delete")]})]})]})})]}),t.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[t.jsx(st,{variant:"outline",children:e.type==="local"?s("device.typeLocal"):s("device.typeSSHBadge")}),e.session&&t.jsx(st,{variant:"outline",children:e.session})]})]}),t.jsxs(Ie,{className:"pt-0",children:[t.jsx(Ue,{className:"mb-3"}),t.jsx("div",{className:"flex items-center justify-end",children:t.jsx(Wn,{to:`/devices/${e.id}`,"data-testid":`device-card-connect-${e.id}`,className:Xn({variant:"default",size:"sm"}),children:s("device.connect")})})]})]})}function lt({mode:e,device:n,onClose:r}){const{t:s}=be(),p=jt(),[i,m]=o.useState(oo(n)),[c,y]=o.useState(!1),b=e==="edit",C=i.type==="ssh",v=Te({mutationFn:async l=>{const d=await fetch("/api/devices",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)});if(!d.ok)throw new Error(await ct(d,s("device.createFailed")));return d.json()},onSuccess:()=>{p.invalidateQueries({queryKey:["devices"]}),ce.success(s("common.success")),r()},onError:l=>{ce.error(l instanceof Error?l.message:s("common.error"))}}),I=Te({mutationFn:async l=>{if(!n)throw new Error(s("apiError.deviceNotFound"));const d=await fetch(`/api/devices/${n.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)});if(!d.ok)throw new Error(await ct(d,s("device.updateFailed")));return d.json()},onSuccess:()=>{p.invalidateQueries({queryKey:["devices"]}),ce.success(s("common.success")),r()},onError:l=>{ce.error(l instanceof Error?l.message:s("common.error"))}}),x=async l=>{l.preventDefault(),y(!0);try{e==="create"?await v.mutateAsync(ao(i)):await I.mutateAsync(ro(i))}catch{}finally{y(!1)}},S=`${e}-device-name`,g=`${e}-device-type`,M=`${e}-device-host`,j=`${e}-device-port`,u=`${e}-device-username`,N=`${e}-device-session`,$=`${e}-device-auth-mode`,f=`${e}-device-password`,a=`${e}-device-private-key`,w=`${e}-device-private-key-passphrase`;return t.jsx(ws,{open:!0,onOpenChange:l=>!l&&r(),children:t.jsxs(Ms,{"data-testid":"device-dialog",className:"w-full max-w-2xl",children:[t.jsxs(Ps,{children:[t.jsx(Ss,{children:s(b?"device.editDevice":"device.addDevice")}),t.jsx(Ns,{children:s(b?"device.editDevice":"device.addDevice")})]}),t.jsxs("form",{onSubmit:x,children:[t.jsxs("div",{className:"max-h-[min(70vh,720px)] space-y-4 overflow-y-auto pr-1",children:[t.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[t.jsxs("div",{className:"space-y-1.5 sm:col-span-2",children:[t.jsx("label",{className:"block text-sm font-medium",htmlFor:S,children:s("device.name")}),t.jsx(ie,{id:S,"data-testid":"device-name-input",type:"text",value:i.name,onChange:l=>m(d=>({...d,name:l.target.value})),placeholder:s("device.namePlaceholder"),required:!0})]}),t.jsxs("div",{className:"space-y-1.5",children:[t.jsx("label",{className:"block text-sm font-medium",htmlFor:g,children:s("device.type")}),t.jsxs(ot,{value:i.type,onValueChange:l=>{if(!l)return;const d=l;m(k=>({...k,type:d,authMode:d==="local"?"auto":k.authMode==="auto"?"password":k.authMode}))},disabled:b,children:[t.jsx(at,{id:g,"data-testid":"device-type-select",className:"w-full",children:t.jsx(rt,{placeholder:s("device.type")})}),t.jsxs(it,{children:[t.jsx(he,{value:"local",children:s("device.typeLocal")}),t.jsxs(he,{value:"ssh",children:["SSH ",s("device.type")]})]})]})]}),t.jsxs("div",{className:"space-y-1.5",children:[t.jsx("label",{className:"block text-sm font-medium",htmlFor:N,children:s("device.session")}),t.jsx(ie,{id:N,"data-testid":"device-session-input",type:"text",value:i.session,onChange:l=>m(d=>({...d,session:l.target.value})),placeholder:s("device.sessionPlaceholder")})]})]}),C&&t.jsxs(t.Fragment,{children:[t.jsx(Ue,{}),t.jsxs("div",{className:"grid gap-3 sm:grid-cols-3",children:[t.jsxs("div",{className:"space-y-1.5 sm:col-span-2",children:[t.jsx("label",{className:"block text-sm font-medium",htmlFor:M,children:s("device.host")}),t.jsx(ie,{id:M,type:"text",value:i.host,onChange:l=>m(d=>({...d,host:l.target.value})),placeholder:s("device.hostPlaceholder")})]}),t.jsxs("div",{className:"space-y-1.5",children:[t.jsx("label",{className:"block text-sm font-medium",htmlFor:j,children:s("device.port")}),t.jsx(ie,{id:j,type:"number",value:i.port,onChange:l=>m(d=>({...d,port:Number.parseInt(l.target.value||"22",10)})),min:1,max:65535})]}),t.jsxs("div",{className:"space-y-1.5 sm:col-span-2",children:[t.jsx("label",{className:"block text-sm font-medium",htmlFor:u,children:s("device.username")}),t.jsx(ie,{id:u,type:"text",value:i.username,onChange:l=>m(d=>({...d,username:l.target.value})),placeholder:s("device.usernamePlaceholder")})]}),t.jsxs("div",{className:"space-y-1.5",children:[t.jsx("label",{className:"block text-sm font-medium",htmlFor:`${e}-device-ssh-config-ref`,children:"SSH Config"}),t.jsx(ie,{id:`${e}-device-ssh-config-ref`,type:"text",value:i.sshConfigRef,onChange:l=>m(d=>({...d,sshConfigRef:l.target.value})),placeholder:"~/.ssh/config"})]})]}),t.jsx(Ue,{}),t.jsxs("div",{className:"space-y-3",children:[t.jsxs("div",{className:"space-y-1.5",children:[t.jsx("label",{className:"block text-sm font-medium",htmlFor:$,children:s("device.authMode")}),t.jsxs(ot,{value:i.authMode,onValueChange:l=>{l&&m(d=>({...d,authMode:l}))},children:[t.jsx(at,{id:$,className:"w-full",children:t.jsx(rt,{placeholder:s("device.authMode")})}),t.jsxs(it,{children:[t.jsx(he,{value:"password",children:s("device.authPassword")}),t.jsx(he,{value:"key",children:s("device.authKey")}),t.jsx(he,{value:"agent",children:s("device.authAgent")}),t.jsx(he,{value:"configRef",children:"SSH Config"})]})]})]}),i.authMode==="password"&&t.jsxs("div",{className:"space-y-1.5",children:[t.jsx("label",{className:"block text-sm font-medium",htmlFor:f,children:s("device.password")}),t.jsx(ie,{id:f,type:"password",value:i.password,onChange:l=>m(d=>({...d,password:l.target.value}))})]}),i.authMode==="key"&&t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"space-y-1.5",children:[t.jsx("label",{className:"block text-sm font-medium",htmlFor:a,children:s("device.privateKey")}),t.jsx(so,{id:a,value:i.privateKey,onChange:l=>m(d=>({...d,privateKey:l.target.value})),className:"h-28 font-mono text-xs",placeholder:s("device.privateKeyPlaceholder")})]}),t.jsxs("div",{className:"space-y-1.5",children:[t.jsx("label",{className:"block text-sm font-medium",htmlFor:w,children:s("device.passphrase")}),t.jsx(ie,{id:w,type:"password",value:i.privateKeyPassphrase,onChange:l=>m(d=>({...d,privateKeyPassphrase:l.target.value}))})]})]})]})]})]}),t.jsxs(Ts,{children:[t.jsx(pe,{type:"button",variant:"outline",className:"flex-1",onClick:r,children:s("common.cancel")}),t.jsx(pe,{type:"submit",variant:"default",className:"flex-1","data-testid":"device-dialog-save",disabled:c,children:s(c?"common.saving":"common.save")})]})]})]})})}function fo(){const{t:e}=be();return t.jsx(t.Fragment,{children:e("sidebar.manageDevices")})}function go(){const{t:e}=be(),n=()=>{window.dispatchEvent(new CustomEvent("tmex:open-add-device"))};return t.jsx(pe,{variant:"ghost",size:"icon-sm","data-testid":"devices-add",onClick:n,"aria-label":e("sidebar.addDevice"),title:e("sidebar.addDevice"),children:t.jsx(Rt,{className:"h-4 w-4"})})}export{go as PageActions,fo as PageTitle,mo as default};
|
|
17
|
-
//# sourceMappingURL=DevicesPage-BrvmKNIQ.js.map
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import{c as G,u as B,a as ge,b as xe,r as i,d as ce,e as z,j as e,B as d,I as de,t as pe,f as o,i as ve}from"./index-Vweko0vT.js";import{u as j,C as M,a as $,b as I,c as D,I as g,S as ke,d as Ce,e as Se,f as Ee,g as Te}from"./select-CRYPgkuV.js";import{T as je,A as Fe,a as Be,b as Pe,c as Re,d as qe,e as Ae,f as Me,g as $e}from"./useValueChanged-CJav2OS1.js";import{S as F,L as me,a as Ie}from"./switch-D216fzW5.js";/**
|
|
2
|
-
* @license lucide-react v0.564.0 - ISC
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the ISC license.
|
|
5
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/const De=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],ze=G("rotate-ccw",De);/**
|
|
7
|
-
* @license lucide-react v0.564.0 - ISC
|
|
8
|
-
*
|
|
9
|
-
* This source code is licensed under the ISC license.
|
|
10
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
-
*/const Le=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],L=G("save",Le);/**
|
|
12
|
-
* @license lucide-react v0.564.0 - ISC
|
|
13
|
-
*
|
|
14
|
-
* This source code is licensed under the ISC license.
|
|
15
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
-
*/const Qe=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],he=G("shield",Qe);async function h(s,m){try{return(await s.json()).error??m}catch{return m}}function We(){var ie,oe,re,le;const{t:s}=B(),m=ge(),{refreshSettings:u}=xe(),[n,r]=i.useState("site"),x=ce(t=>t.theme),y=ce(t=>t.setTheme),b=x==="dark",[w,k]=i.useState("tmex"),[C,S]=i.useState(window.location.origin),[p,N]=i.useState("en_US"),[f,P]=i.useState(6),[R,q]=i.useState(!0),[E,A]=i.useState(!0),[T,a]=i.useState(2),[l,v]=i.useState(10),[we,be]=i.useState(!1),[Q,X]=i.useState(""),[K,Y]=i.useState(""),[fe,ye]=i.useState(null),[U,Z]=i.useState(""),[O,ee]=i.useState(""),Ne=t=>{const c=t?"dark":"light";y(c),document.documentElement.classList.toggle("dark",c==="dark")},_=z({queryKey:["site-settings"],queryFn:async()=>{const t=await fetch("/api/settings/site");if(!t.ok)throw new Error(await h(t,s("settings.loadFailed")));return await t.json()}}),H=z({queryKey:["telegram-bots"],queryFn:async()=>{const t=await fetch("/api/settings/telegram/bots");if(!t.ok)throw new Error(await h(t,s("telegram.loadBotsFailed")));return await t.json()}});i.useEffect(()=>{var c;const t=(c=_.data)==null?void 0:c.settings;t&&(k(t.siteName),S(t.siteUrl),N(t.language??"en_US"),P(t.bellThrottleSeconds),q(t.enableBrowserBellToast??!0),A(t.enableTelegramBellPush??!0),a(t.sshReconnectMaxRetries),v(t.sshReconnectDelaySeconds))},[(ie=_.data)==null?void 0:ie.settings]);const se=j({mutationFn:async()=>{const c=await fetch("/api/settings/site",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({siteName:w,siteUrl:C,language:p,bellThrottleSeconds:f,enableBrowserBellToast:R,enableTelegramBellPush:E,sshReconnectMaxRetries:T,sshReconnectDelaySeconds:l})});if(!c.ok)throw new Error(await h(c,s("settings.saveFailed")))},onSuccess:async()=>{var t,c;await Promise.all([m.invalidateQueries({queryKey:["site-settings"]}),u()]),o.success(s("settings.settingsSaved")),((c=(t=_.data)==null?void 0:t.settings)==null?void 0:c.language)!==p&&(ve.changeLanguage(p),be(!0))},onError:t=>{o.error(t instanceof Error?t.message:s("common.error"))}}),W=j({mutationFn:async()=>{const t=await fetch("/api/settings/telegram/bots",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:Q,token:K,enabled:!0,allowAuthRequests:!0})});if(!t.ok)throw new Error(await h(t,s("telegram.createFailed")))},onSuccess:async()=>{X(""),Y(""),await m.invalidateQueries({queryKey:["telegram-bots"]}),o.success(s("common.success"))},onError:t=>{o.error(t instanceof Error?t.message:s("common.error"))}}),te=((oe=H.data)==null?void 0:oe.bots)??[],J=z({queryKey:["webhooks"],queryFn:async()=>{const t=await fetch("/api/webhooks");if(!t.ok)throw new Error(await h(t,s("webhook.loadFailed")));return await t.json()}}),V=j({mutationFn:async()=>{const t=await fetch("/api/webhooks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:U,secret:O})});if(!t.ok)throw new Error(await h(t,s("webhook.createFailed")))},onSuccess:async()=>{Z(""),ee(""),await m.invalidateQueries({queryKey:["webhooks"]}),o.success(s("common.success"))},onError:t=>{o.error(t instanceof Error?t.message:s("common.error"))}}),ae=j({mutationFn:async t=>{const c=await fetch(`/api/webhooks/${t}`,{method:"DELETE"});if(!c.ok)throw new Error(await h(c,s("webhook.deleteFailed")))},onSuccess:async()=>{await m.invalidateQueries({queryKey:["webhooks"]}),o.success(s("common.success"))},onError:t=>{o.error(t instanceof Error?t.message:s("common.error"))}}),ne=((re=J.data)==null?void 0:re.webhooks)??[];return e.jsxs("div",{className:"mx-auto flex w-full max-w-6xl flex-col gap-4 p-3 pb-[calc(2rem+env(safe-area-inset-bottom))] sm:gap-6 sm:p-5","data-testid":"settings-page",children:[e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(d,{type:"button",size:"sm",variant:n==="site"?"default":"outline","data-testid":"settings-tab-site",onClick:()=>r("site"),children:s("settings.siteSettings")}),e.jsx(d,{type:"button",size:"sm",variant:n==="notifications"?"default":"outline","data-testid":"settings-tab-notifications",onClick:()=>r("notifications"),children:s("settings.notificationsTab")}),e.jsx(d,{type:"button",size:"sm",variant:n==="telegram"?"default":"outline","data-testid":"settings-tab-telegram",onClick:()=>r("telegram"),children:s("telegram.title")}),e.jsx(d,{type:"button",size:"sm",variant:n==="webhooks"?"default":"outline","data-testid":"settings-tab-webhooks",onClick:()=>r("webhooks"),children:s("webhook.title")})]}),n==="site"&&e.jsxs(M,{className:"border-0 ring-0",children:[e.jsx($,{children:e.jsx(I,{children:s("settings.siteSettings")})}),e.jsxs(D,{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"site-name-input",children:s("settings.siteName")}),e.jsx(g,{id:"site-name-input",value:w,onChange:t=>k(t.target.value),placeholder:s("settings.siteNamePlaceholder"),className:"min-h-10"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"site-url-input",children:s("settings.siteUrl")}),e.jsx(g,{id:"site-url-input",value:C,onChange:t=>S(t.target.value),placeholder:s("settings.siteUrlPlaceholder"),className:"min-h-10"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"language-select",children:s("settings.language")}),e.jsxs(ke,{value:p,onValueChange:t=>{t&&N(t)},children:[e.jsx(Ce,{id:"language-select","data-testid":"settings-language-select",className:"w-full min-h-10",children:e.jsx(Se,{placeholder:s("settings.language"),children:((le=de.locales.find(t=>t.code===p))==null?void 0:le.nativeName)??p})}),e.jsx(Ee,{className:"max-h-[var(--tmex-viewport-height)]",children:de.locales.map(t=>e.jsx(Te,{value:t.code,children:t.nativeName},t.code))})]}),we&&e.jsx("p",{className:"mt-1 text-xs text-primary","data-testid":"settings-refresh-notice",children:s("settings.refreshToApply")})]}),e.jsx("div",{className:"space-y-3",children:e.jsxs("div",{className:"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-card px-4 py-2.5",children:[e.jsx("div",{className:"min-w-0 pr-2",children:e.jsx("div",{className:"text-sm font-medium",children:s("settings.theme")})}),e.jsx(F,{checked:b,onCheckedChange:t=>Ne(!!t),"data-testid":"settings-theme-toggle"})]})})]})]}),n==="notifications"&&e.jsxs(M,{className:"border-0 ring-0",children:[e.jsx($,{children:e.jsx(I,{children:s("settings.notificationsTab")})}),e.jsxs(D,{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-card px-4 py-2.5",children:[e.jsx("div",{className:"min-w-0 pr-2",children:e.jsx("div",{className:"text-sm font-medium",children:s("settings.enableBrowserBellToast")})}),e.jsx(F,{checked:R,onCheckedChange:t=>q(!!t),"data-testid":"settings-enable-browser-bell-toast"})]}),e.jsxs("div",{className:"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-card px-4 py-2.5",children:[e.jsx("div",{className:"min-w-0 pr-2",children:e.jsx("div",{className:"text-sm font-medium",children:s("settings.enableTelegramBellPush")})}),e.jsx(F,{checked:E,onCheckedChange:t=>A(!!t),"data-testid":"settings-enable-telegram-bell-push"})]})]}),e.jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"bell-throttle-input",children:s("settings.bellThrottle")}),e.jsx(g,{id:"bell-throttle-input",type:"number",value:f,min:0,max:300,onChange:t=>P(Number(t.target.value)),className:"min-h-10"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"ssh-reconnect-retries-input",children:s("settings.sshReconnectMaxRetries")}),e.jsx(g,{id:"ssh-reconnect-retries-input",type:"number",value:T,min:0,max:20,onChange:t=>a(Number(t.target.value)),className:"min-h-10"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"ssh-reconnect-delay-input",children:s("settings.sshReconnectDelay")}),e.jsx(g,{id:"ssh-reconnect-delay-input",type:"number",value:l,min:1,max:300,onChange:t=>v(Number(t.target.value)),className:"min-h-10"})]})]})]})]}),n==="telegram"&&e.jsxs(M,{className:"border-0 ring-0",children:[e.jsx($,{children:e.jsx(I,{children:s("telegram.title")})}),e.jsxs(D,{className:"space-y-6",children:[e.jsx("div",{className:"space-y-4",children:e.jsxs("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-12 md:items-end",children:[e.jsxs("div",{className:"md:col-span-4 space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"new-bot-name",children:s("telegram.botName")}),e.jsx(g,{id:"new-bot-name",value:Q,onChange:t=>X(t.target.value),placeholder:s("telegram.botNamePlaceholder"),className:"min-h-10"})]}),e.jsxs("div",{className:"md:col-span-6 space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"new-bot-token",children:s("telegram.botToken")}),e.jsx(g,{id:"new-bot-token",type:"password",value:K,onChange:t=>Y(t.target.value),placeholder:s("telegram.botTokenPlaceholder"),className:"min-h-10"})]}),e.jsx("div",{className:"md:col-span-2",children:e.jsxs(d,{variant:"default",className:"w-full md:w-auto","data-testid":"telegram-add-bot",onClick:()=>W.mutate(),disabled:W.isPending||!Q.trim()||!K.trim(),children:[W.isPending?e.jsx(me,{className:"h-4 w-4 animate-spin"}):e.jsx(L,{className:"h-4 w-4"}),s("telegram.addBot")]})})]})}),e.jsxs("div",{className:"space-y-3",children:[H.isLoading&&e.jsx("div",{className:"text-sm text-muted-foreground",children:s("common.loading")}),!H.isLoading&&te.length===0&&e.jsx("div",{className:"text-sm text-muted-foreground",children:s("telegram.addBot")}),te.map(t=>e.jsx(Ke,{bot:t,expanded:fe===t.id,onToggleExpand:()=>{ye(c=>c===t.id?null:t.id)}},t.id))]})]})]}),n==="webhooks"&&e.jsxs(M,{className:"border-0 ring-0",children:[e.jsx($,{children:e.jsx(I,{children:s("webhook.title")})}),e.jsxs(D,{className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-12 md:items-end",children:[e.jsxs("div",{className:"md:col-span-6 space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"webhook-url-input",children:s("webhook.url")}),e.jsx(g,{id:"webhook-url-input","data-testid":"webhook-url-input",value:U,onChange:t=>Z(t.target.value),placeholder:"https://example.com/webhook",className:"min-h-10"})]}),e.jsxs("div",{className:"md:col-span-4 space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"webhook-secret-input",children:s("webhook.secret")}),e.jsx(g,{id:"webhook-secret-input","data-testid":"webhook-secret-input",value:O,onChange:t=>ee(t.target.value),placeholder:s("webhook.secretPlaceholder"),className:"min-h-10"})]}),e.jsx("div",{className:"md:col-span-2",children:e.jsxs(d,{variant:"default",className:"w-full md:w-auto","data-testid":"webhook-add",onClick:()=>V.mutate(),disabled:V.isPending||!U.trim()||!O.trim(),children:[V.isPending?e.jsx(me,{className:"h-4 w-4 animate-spin"}):e.jsx(L,{className:"h-4 w-4"}),s("webhook.add")]})})]}),e.jsxs("div",{className:"space-y-2",children:[J.isLoading&&e.jsx("div",{className:"text-sm text-muted-foreground",children:s("common.loading")}),!J.isLoading&&ne.length===0&&e.jsx("div",{className:"text-sm text-muted-foreground",children:s("webhook.empty")}),ne.map(t=>e.jsxs("div",{"data-testid":"webhook-item","data-webhook-url":t.url,className:"flex items-center justify-between gap-3 rounded-lg border border-border bg-card px-4 py-2.5",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"truncate text-sm font-medium",children:t.url}),e.jsx("div",{className:"text-xs text-muted-foreground",children:new Date(t.createdAt).toLocaleString(pe(p))})]}),e.jsx(d,{variant:"ghost",size:"icon-sm","data-testid":"webhook-delete",onClick:()=>ae.mutate(t.id),disabled:ae.isPending,"aria-label":s("common.delete"),title:s("common.delete"),children:e.jsx(je,{className:"h-4 w-4"})})]},t.id))]})]})]}),(n==="site"||n==="notifications")&&e.jsx("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-end",children:e.jsxs(d,{variant:"default","data-testid":"settings-save",onClick:()=>se.mutate(),disabled:se.isPending,className:"w-full sm:w-auto",children:[e.jsx(L,{className:"h-4 w-4"}),s("common.save")]})})]})}function Ke({bot:s,expanded:m,onToggleExpand:u}){var T;const{t:n}=B(),r=ge(),[x,y]=i.useState(s.name),[b,w]=i.useState(""),[k,C]=i.useState(s.enabled),[S,p]=i.useState(s.allowAuthRequests);i.useEffect(()=>{y(s.name),C(s.enabled),p(s.allowAuthRequests)},[s.allowAuthRequests,s.enabled,s.name]);const N=z({queryKey:["telegram-bot-chats",s.id],enabled:m,queryFn:async()=>{const a=await fetch(`/api/settings/telegram/bots/${s.id}/chats`);if(!a.ok)throw new Error(await h(a,n("telegram.loadChatsFailed")));return await a.json()}}),f=i.useMemo(()=>{var l;const a=((l=N.data)==null?void 0:l.chats)??[];return{pending:a.filter(v=>v.status==="pending"),authorized:a.filter(v=>v.status==="authorized")}},[(T=N.data)==null?void 0:T.chats]),P=j({mutationFn:async()=>{const a={name:x,enabled:k,allowAuthRequests:S};b.trim()&&(a.token=b.trim());const l=await fetch(`/api/settings/telegram/bots/${s.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!l.ok)throw new Error(await h(l,n("telegram.updateFailed")))},onSuccess:async()=>{w(""),await r.invalidateQueries({queryKey:["telegram-bots"]}),o.success(n("common.success"))},onError:a=>{o.error(a instanceof Error?a.message:n("common.error"))}}),R=j({mutationFn:async()=>{const a=await fetch(`/api/settings/telegram/bots/${s.id}`,{method:"DELETE"});if(!a.ok)throw new Error(await h(a,n("telegram.deleteFailed")))},onSuccess:async()=>{await r.invalidateQueries({queryKey:["telegram-bots"]}),o.success(n("common.success"))},onError:a=>{o.error(a instanceof Error?a.message:n("common.error"))}}),q=j({mutationFn:async a=>{const l=await fetch(`/api/settings/telegram/bots/${s.id}/chats/${encodeURIComponent(a)}/approve`,{method:"POST"});if(!l.ok)throw new Error(await h(l,n("telegram.approveFailed")))},onSuccess:async()=>{await Promise.all([r.invalidateQueries({queryKey:["telegram-bots"]}),r.invalidateQueries({queryKey:["telegram-bot-chats",s.id]})]),o.success(n("common.success"))},onError:a=>{o.error(a instanceof Error?a.message:n("common.error"))}}),E=j({mutationFn:async a=>{const l=await fetch(`/api/settings/telegram/bots/${s.id}/chats/${encodeURIComponent(a)}`,{method:"DELETE"});if(!l.ok)throw new Error(await h(l,n("telegram.removeFailed")))},onSuccess:async()=>{await Promise.all([r.invalidateQueries({queryKey:["telegram-bots"]}),r.invalidateQueries({queryKey:["telegram-bot-chats",s.id]})]),o.success(n("common.success"))},onError:a=>{o.error(a instanceof Error?a.message:n("common.error"))}}),A=j({mutationFn:async a=>{const l=await fetch(`/api/settings/telegram/bots/${s.id}/chats/${encodeURIComponent(a)}/test`,{method:"POST"});if(!l.ok)throw new Error(await h(l,n("telegram.testMessageFailed")))},onSuccess:()=>{o.success(n("common.success"))},onError:a=>{o.error(a instanceof Error?a.message:n("common.error"))}});return e.jsxs("div",{className:"space-y-4 rounded-md border-0 bg-card p-4","data-testid":`telegram-bot-card-${s.id}`,"data-bot-name":s.name,children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium",children:s.name}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:[s.authorizedCount," / ",s.pendingCount]})]}),e.jsx(d,{variant:"ghost","data-testid":`telegram-bot-toggle-${s.id}`,onClick:u,children:n(m?"common.collapse":"common.expand")})]}),e.jsxs("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-12 md:items-end",children:[e.jsxs("div",{className:"md:col-span-3 space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:`bot-name-${s.id}`,children:n("telegram.botName")}),e.jsx(g,{id:`bot-name-${s.id}`,value:x,onChange:a=>y(a.target.value),className:"min-h-10"})]}),e.jsxs("div",{className:"md:col-span-4 space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:`bot-token-${s.id}`,children:n("telegram.botToken")}),e.jsx(g,{id:`bot-token-${s.id}`,type:"password",value:b,onChange:a=>w(a.target.value),placeholder:n("telegram.tokenPlaceholder"),className:"min-h-10"})]}),e.jsx("div",{className:"md:col-span-2",children:e.jsxs("div",{className:"flex min-h-10 items-center justify-between gap-3 rounded-lg border border-border bg-background px-3 py-2.5",children:[e.jsx("span",{className:"text-sm font-medium",children:n("common.enabled")}),e.jsx(F,{checked:k,onCheckedChange:a=>C(!!a)})]})}),e.jsx("div",{className:"md:col-span-3",children:e.jsxs("div",{className:"flex min-h-10 items-center justify-between gap-3 rounded-lg border border-border bg-background px-3 py-2.5",children:[e.jsx("span",{className:"text-sm font-medium",children:n("telegram.allowAuthRequests")}),e.jsx(F,{checked:S,onCheckedChange:a=>p(!!a)})]})})]}),e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-end",children:[e.jsxs(d,{variant:"destructive","data-testid":`telegram-bot-delete-${s.id}`,onClick:()=>R.mutate(),className:"w-full sm:w-auto",children:[e.jsx(je,{className:"h-4 w-4"}),n("telegram.deleteBot")]}),e.jsxs(d,{variant:"default","data-testid":`telegram-bot-save-${s.id}`,onClick:()=>P.mutate(),className:"w-full sm:w-auto",children:[e.jsx(L,{className:"h-4 w-4"}),n("common.save")]})]}),m&&e.jsxs("div",{className:"grid grid-cols-1 gap-4 border-t border-border pt-4 lg:grid-cols-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("h3",{className:"text-sm font-semibold flex items-center gap-1",children:[e.jsx(he,{className:"h-4 w-4"}),n("telegram.pendingChats")]}),f.pending.length===0&&e.jsx("div",{className:"text-xs text-muted-foreground",children:"-"}),f.pending.map(a=>e.jsx(ue,{chat:a,pending:!0,onApprove:()=>q.mutate(a.chatId),onDelete:()=>E.mutate(a.chatId)},`${a.botId}-${a.chatId}`))]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("h3",{className:"text-sm font-semibold flex items-center gap-1",children:[e.jsx(he,{className:"h-4 w-4"}),n("telegram.chats")]}),f.authorized.length===0&&e.jsx("div",{className:"text-xs text-muted-foreground",children:"-"}),f.authorized.map(a=>e.jsx(ue,{chat:a,pending:!1,onTest:()=>A.mutate(a.chatId),onDelete:()=>E.mutate(a.chatId)},`${a.botId}-${a.chatId}`))]}),N.isLoading&&e.jsx("div",{className:"lg:col-span-2 text-xs text-muted-foreground",children:n("common.loading")})]})]})}function ue({chat:s,pending:m,onApprove:u,onDelete:n,onTest:r}){const{t:x}=B(),y=xe(b=>{var w;return((w=b.settings)==null?void 0:w.language)??"en_US"});return e.jsxs("div",{className:"space-y-2 rounded border-0 bg-background p-3",children:[e.jsx("div",{className:"text-sm font-medium truncate",title:s.displayName,children:s.displayName}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:[x("telegram.chatId"),":",s.chatId]}),e.jsx("div",{className:"text-xs text-muted-foreground",children:new Date(s.appliedAt).toLocaleString(pe(y))}),e.jsx("div",{className:"flex items-center justify-end gap-2 pt-1",children:m?e.jsxs(e.Fragment,{children:[e.jsx(d,{variant:"outline",size:"sm",onClick:n,children:x("telegram.reject")}),e.jsx(d,{variant:"default",size:"sm",onClick:u,children:x("telegram.authorize")})]}):e.jsxs(e.Fragment,{children:[e.jsxs(d,{variant:"secondary",size:"sm",onClick:r,children:[e.jsx(Ie,{className:"h-3.5 w-3.5"}),x("telegram.sendTestMessage")]}),e.jsx(d,{variant:"destructive",size:"sm",onClick:n,children:x("common.delete")})]})})]})}function Je(){const{t:s}=B();return e.jsx(e.Fragment,{children:s("sidebar.settings")})}function Ve(){const{t:s}=B(),[m,u]=i.useState(!1),n=j({mutationFn:async()=>{const r=await fetch("/api/settings/restart",{method:"POST"});if(!r.ok)throw new Error(await h(r,s("settings.restartFailed")))},onSuccess:()=>{o.success(s("settings.restartScheduled"))},onError:r=>{o.error(r instanceof Error?r.message:s("common.error"))}});return e.jsxs(e.Fragment,{children:[e.jsx(d,{variant:"ghost",size:"icon-sm",onClick:()=>u(!0),disabled:n.isPending,"aria-label":s("settings.restartGateway"),title:s("settings.restartGateway"),className:"text-destructive hover:text-destructive hover:bg-destructive/10",children:e.jsx(ze,{className:"h-4 w-4"})}),e.jsx(Fe,{open:m,onOpenChange:u,children:e.jsxs(Be,{children:[e.jsxs(Pe,{children:[e.jsx(Re,{children:s("settings.restartGateway")}),e.jsx(qe,{children:s("settings.restartConfirm")})]}),e.jsxs(Ae,{children:[e.jsx(Me,{onClick:()=>u(!1),children:s("common.cancel")}),e.jsx($e,{variant:"destructive",onClick:()=>{n.mutate(),u(!1)},children:s("common.confirm")})]})]})})]})}export{Ve as PageActions,Je as PageTitle,We as default};
|
|
17
|
-
//# sourceMappingURL=SettingsPage-XFRzVSzI.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-orange-500:oklch(70.5% .213 47.604);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-emerald-500:oklch(69.6% .17 162.48);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-600:oklch(60.9% .126 221.723);--color-cyan-700:oklch(52% .105 223.128);--color-cyan-800:oklch(45% .085 224.283);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-indigo-800:oklch(39.8% .195 277.366);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-fuchsia-600:oklch(59.1% .293 322.896);--color-fuchsia-700:oklch(51.8% .253 323.949);--color-fuchsia-800:oklch(45.2% .211 324.591);--color-gray-400:oklch(70.7% .022 261.325);--color-neutral-100:oklch(97% 0 0);--color-neutral-500:oklch(55.6% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-2xl:42rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-widest:.1em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:calc(var(--radius) - 2px);--radius-4xl:2rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-xs:4px;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--text-family);--default-mono-font-family:var(--font-mono);--color-accent:var(--accent);--color-border:var(--border);--display-weight:var(--display-weight)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}.font-display{font-weight:var(--display-weight)}[data-slot=button],[data-slot=dialog-trigger],[data-slot=dropdown-menu-item],[data-slot=command-item],[data-slot=toggle-group-item],[data-slot=dropdown-menu-trigger],[data-slot=popover-trigger],[data-slot=tooltip-trigger],[data-slot=sheet-trigger],[data-slot=collapsible-trigger]{cursor:pointer!important}[data-slot=dialog-overlay],[data-slot=sheet-overlay],[data-slot=drawer-overlay]{background-color:#0003!important}@supports (color:color-mix(in lab,red,red)){[data-slot=dialog-overlay],[data-slot=sheet-overlay],[data-slot=drawer-overlay]{background-color:color-mix(in oklab,var(--color-black)20%,transparent)!important}}[data-slot=dialog-overlay],[data-slot=sheet-overlay],[data-slot=drawer-overlay]{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\.5{top:calc(var(--spacing)*1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-3{top:calc(var(--spacing)*3)}.top-3\.5{top:calc(var(--spacing)*3.5)}.right-0{right:calc(var(--spacing)*0)}.right-1{right:calc(var(--spacing)*1)}.right-1\.5{right:calc(var(--spacing)*1.5)}.right-2{right:calc(var(--spacing)*2)}.right-3{right:calc(var(--spacing)*3)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.left-1\/2{left:50%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.-mx-4{margin-inline:calc(var(--spacing)*-4)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-3\.5{margin-inline:calc(var(--spacing)*3.5)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-auto{margin-top:auto}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-\[-8px\]{margin-right:-8px}.mr-auto{margin-right:auto}.-mb-4{margin-bottom:calc(var(--spacing)*-4)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.field-sizing-content{field-sizing:content}.aspect-square{aspect-ratio:1}.size-2\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-full{width:100%;height:100%}.h-1{height:calc(var(--spacing)*1)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-11{height:calc(var(--spacing)*11)}.h-12{height:calc(var(--spacing)*12)}.h-28{height:calc(var(--spacing)*28)}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[var\(--tmex-safe-area-bottom\)\]{height:var(--tmex-safe-area-bottom)}.h-\[var\(--tmex-safe-area-top\)\]{height:var(--tmex-safe-area-top)}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-\(--available-height\){max-height:var(--available-height)}.max-h-\[28vh\]{max-height:28vh}.max-h-\[min\(70vh\,720px\)\]{max-height:min(70vh,720px)}.max-h-\[var\(--tmex-viewport-height\)\]{max-height:var(--tmex-viewport-height)}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-10{min-height:calc(var(--spacing)*10)}.min-h-16{min-height:calc(var(--spacing)*16)}.min-h-\[88px\]{min-height:88px}.min-h-svh{min-height:100svh}.w-\(--anchor-width\){width:var(--anchor-width)}.w-\(--sidebar-width\){width:var(--sidebar-width)}.w-1{width:calc(var(--spacing)*1)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-72{width:calc(var(--spacing)*72)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\(--skeleton-width\){max-width:var(--skeleton-width)}.max-w-2xl{max-width:var(--container-2xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-5{min-width:calc(var(--spacing)*5)}.min-w-9{min-width:calc(var(--spacing)*9)}.min-w-32{min-width:calc(var(--spacing)*32)}.min-w-36{min-width:calc(var(--spacing)*36)}.min-w-\[96px\]{min-width:96px}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.origin-\(--transform-origin\){transform-origin:var(--transform-origin)}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-px{--tw-translate-x:-1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-px{--tw-translate-x:1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[calc\(-50\%-2px\)\]{--tw-translate-y: calc(-50% - 2px) ;translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-45{rotate:45deg}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.touch-none{touch-action:none}.resize{resize:both}.resize-y{resize:vertical}.scroll-my-1{scroll-margin-block:calc(var(--spacing)*1)}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-rows-\[auto_1fr\]{grid-template-rows:auto 1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:calc(var(--spacing)*0)}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-auto{overscroll-behavior:auto}.rounded{border-radius:.25rem}.rounded-4xl{border-radius:var(--radius-4xl)}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md),10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md),12px)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-t-xl{border-top-left-radius:calc(var(--radius) + 4px);border-top-right-radius:calc(var(--radius) + 4px)}.rounded-b-xl{border-bottom-right-radius:calc(var(--radius) + 4px);border-bottom-left-radius:calc(var(--radius) + 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-black{border-color:var(--color-black)}.border-border,.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,var(--border)50%,transparent)}}.border-destructive\/50{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/50{border-color:color-mix(in oklab,var(--destructive)50%,transparent)}}.border-input{border-color:var(--input)}.border-primary,.border-primary\/20{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/20{border-color:color-mix(in oklab,var(--primary)20%,transparent)}}.border-primary\/30{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/30{border-color:color-mix(in oklab,var(--primary)30%,transparent)}}.border-primary\/45{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/45{border-color:color-mix(in oklab,var(--primary)45%,transparent)}}.border-primary\/50{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/50{border-color:color-mix(in oklab,var(--primary)50%,transparent)}}.border-primary\/65{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/65{border-color:color-mix(in oklab,var(--primary)65%,transparent)}}.border-sidebar-border,.border-sidebar-border\/60{border-color:var(--sidebar-border)}@supports (color:color-mix(in lab,red,red)){.border-sidebar-border\/60{border-color:color-mix(in oklab,var(--sidebar-border)60%,transparent)}}.border-sidebar-border\/70{border-color:var(--sidebar-border)}@supports (color:color-mix(in lab,red,red)){.border-sidebar-border\/70{border-color:color-mix(in oklab,var(--sidebar-border)70%,transparent)}}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.bg-background,.bg-background\/85{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/85{background-color:color-mix(in oklab,var(--background)85%,transparent)}}.bg-background\/95{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/95{background-color:color-mix(in oklab,var(--background)95%,transparent)}}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.bg-black\/10{background-color:color-mix(in oklab,var(--color-black)10%,transparent)}}.bg-border{background-color:var(--border)}.bg-card,.bg-card\/50{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.bg-card\/50{background-color:color-mix(in oklab,var(--card)50%,transparent)}}.bg-card\/85{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.bg-card\/85{background-color:color-mix(in oklab,var(--card)85%,transparent)}}.bg-card\/90{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.bg-card\/90{background-color:color-mix(in oklab,var(--card)90%,transparent)}}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-foreground,.bg-foreground\/50{background-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.bg-foreground\/50{background-color:color-mix(in oklab,var(--foreground)50%,transparent)}}.bg-foreground\/80{background-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.bg-foreground\/80{background-color:color-mix(in oklab,var(--foreground)80%,transparent)}}.bg-gray-400{background-color:var(--color-gray-400)}.bg-muted,.bg-muted\/20{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/20{background-color:color-mix(in oklab,var(--muted)20%,transparent)}}.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--muted)30%,transparent)}}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-primary-foreground\/80{background-color:var(--primary-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-primary-foreground\/80{background-color:color-mix(in oklab,var(--primary-foreground)80%,transparent)}}.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--primary)10%,transparent)}}.bg-primary\/15{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/15{background-color:color-mix(in oklab,var(--primary)15%,transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-accent,.bg-sidebar-accent\/30{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab,red,red)){.bg-sidebar-accent\/30{background-color:color-mix(in oklab,var(--sidebar-accent)30%,transparent)}}.bg-sidebar-accent\/55{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab,red,red)){.bg-sidebar-accent\/55{background-color:color-mix(in oklab,var(--sidebar-accent)55%,transparent)}}.bg-sidebar-accent\/60{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab,red,red)){.bg-sidebar-accent\/60{background-color:color-mix(in oklab,var(--sidebar-accent)60%,transparent)}}.bg-sidebar-border{background-color:var(--sidebar-border)}.bg-sidebar\/60{background-color:var(--sidebar)}@supports (color:color-mix(in lab,red,red)){.bg-sidebar\/60{background-color:color-mix(in oklab,var(--sidebar)60%,transparent)}}.bg-transparent{background-color:#0000}.bg-clip-padding{background-clip:padding-box}.fill-foreground{fill:var(--foreground)}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-8{padding:calc(var(--spacing)*8)}.p-\[3px\]{padding:3px}.p-px{padding:1px}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-14{padding-block:calc(var(--spacing)*14)}.py-16{padding-block:calc(var(--spacing)*16)}.\!pt-0{padding-top:calc(var(--spacing)*0)!important}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-4{padding-top:calc(var(--spacing)*4)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-7{padding-right:calc(var(--spacing)*7)}.pr-8{padding-right:calc(var(--spacing)*8)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-\[calc\(1rem\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(1rem + env(safe-area-inset-bottom))}.pb-\[calc\(2rem\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(2rem + env(safe-area-inset-bottom))}.pl-1\.5{padding-left:calc(var(--spacing)*1.5)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-2\.5{padding-left:calc(var(--spacing)*2.5)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.whitespace-nowrap{white-space:nowrap}.text-background{color:var(--background)}.text-card-foreground{color:var(--card-foreground)}.text-destructive{color:var(--destructive)}.text-emerald-500{color:var(--color-emerald-500)}.text-foreground,.text-foreground\/60{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/60{color:color-mix(in oklab,var(--foreground)60%,transparent)}}.text-muted-foreground{color:var(--muted-foreground)}.text-orange-500{color:var(--color-orange-500)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground,.text-primary-foreground\/80{color:var(--primary-foreground)}@supports (color:color-mix(in lab,red,red)){.text-primary-foreground\/80{color:color-mix(in oklab,var(--primary-foreground)80%,transparent)}}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-accent-foreground{color:var(--sidebar-accent-foreground)}.text-sidebar-foreground,.text-sidebar-foreground\/70{color:var(--sidebar-foreground)}@supports (color:color-mix(in lab,red,red)){.text-sidebar-foreground\/70{color:color-mix(in oklab,var(--sidebar-foreground)70%,transparent)}}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-border)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-foreground\/10{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.ring-foreground\/10{--tw-ring-color:color-mix(in oklab,var(--foreground)10%,transparent)}}.ring-sidebar-ring{--tw-ring-color:var(--sidebar-ring)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[-webkit-overflow-scrolling\:touch\]{-webkit-overflow-scrolling:touch}.duration-100{animation-duration:.1s}.duration-200{animation-duration:.2s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.group-focus-within\:opacity-100:is(:where(.group):focus-within *),.group-focus-within\/menu-item\:opacity-100:is(:where(.group\/menu-item):focus-within *){opacity:1}@media(hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/menu-item\:opacity-100:is(:where(.group\/menu-item):hover *){opacity:1}}.group-focus\/dropdown-menu-item\:text-accent-foreground:is(:where(.group\/dropdown-menu-item):focus *){color:var(--accent-foreground)}.group-has-data-\[sidebar\=menu-action\]\/menu-item\:pr-8:is(:where(.group\/menu-item):has([data-sidebar=menu-action]) *){padding-right:calc(var(--spacing)*8)}.group-data-horizontal\/tabs\:h-8:is(:where(.group\/tabs)[data-horizontal] *){height:calc(var(--spacing)*8)}.group-data-vertical\/tabs\:h-fit:is(:where(.group\/tabs)[data-vertical] *){height:fit-content}.group-data-vertical\/tabs\:w-full:is(:where(.group\/tabs)[data-vertical] *){width:100%}.group-data-vertical\/tabs\:flex-col:is(:where(.group\/tabs)[data-vertical] *){flex-direction:column}.group-data-vertical\/tabs\:justify-start:is(:where(.group\/tabs)[data-vertical] *){justify-content:flex-start}.group-data-\[collapsible\=icon\]\:-mt-8:is(:where(.group)[data-collapsible=icon] *){margin-top:calc(var(--spacing)*-8)}.group-data-\[collapsible\=icon\]\:hidden:is(:where(.group)[data-collapsible=icon] *){display:none}.group-data-\[collapsible\=icon\]\:size-8\!:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--spacing)*8)!important;height:calc(var(--spacing)*8)!important}.group-data-\[collapsible\=icon\]\:w-\(--sidebar-width-icon\):is(:where(.group)[data-collapsible=icon] *){width:var(--sidebar-width-icon)}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing)*4)))}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing)*4)) + 2px)}.group-data-\[collapsible\=icon\]\:overflow-hidden:is(:where(.group)[data-collapsible=icon] *){overflow:hidden}.group-data-\[collapsible\=icon\]\:p-0\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing)*0)!important}.group-data-\[collapsible\=icon\]\:p-2\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing)*2)!important}.group-data-\[collapsible\=icon\]\:opacity-0:is(:where(.group)[data-collapsible=icon] *){opacity:0}.group-data-\[collapsible\=offcanvas\]\:w-0:is(:where(.group)[data-collapsible=offcanvas] *){width:calc(var(--spacing)*0)}.group-data-\[collapsible\=offcanvas\]\:translate-x-0:is(:where(.group)[data-collapsible=offcanvas] *){--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[side\=left\]\:-right-4:is(:where(.group)[data-side=left] *){right:calc(var(--spacing)*-4)}.group-data-\[side\=left\]\:border-r:is(:where(.group)[data-side=left] *){border-right-style:var(--tw-border-style);border-right-width:1px}.group-data-\[side\=right\]\:left-0:is(:where(.group)[data-side=right] *){left:calc(var(--spacing)*0)}.group-data-\[side\=right\]\:rotate-180:is(:where(.group)[data-side=right] *){rotate:180deg}.group-data-\[side\=right\]\:border-l:is(:where(.group)[data-side=right] *){border-left-style:var(--tw-border-style);border-left-width:1px}.group-data-\[size\=default\]\/switch\:size-4:is(:where(.group\/switch)[data-size=default] *){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.group-data-\[size\=sm\]\/alert-dialog-content\:grid:is(:where(.group\/alert-dialog-content)[data-size=sm] *){display:grid}.group-data-\[size\=sm\]\/alert-dialog-content\:grid-cols-2:is(:where(.group\/alert-dialog-content)[data-size=sm] *){grid-template-columns:repeat(2,minmax(0,1fr))}.group-data-\[size\=sm\]\/card\:p-3:is(:where(.group\/card)[data-size=sm] *){padding:calc(var(--spacing)*3)}.group-data-\[size\=sm\]\/card\:px-3:is(:where(.group\/card)[data-size=sm] *){padding-inline:calc(var(--spacing)*3)}.group-data-\[size\=sm\]\/card\:text-sm:is(:where(.group\/card)[data-size=sm] *){font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.group-data-\[size\=sm\]\/switch\:size-3:is(:where(.group\/switch)[data-size=sm] *){width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.group-data-\[variant\=floating\]\:rounded-lg:is(:where(.group)[data-variant=floating] *){border-radius:var(--radius)}.group-data-\[variant\=floating\]\:shadow-sm:is(:where(.group)[data-variant=floating] *){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[variant\=floating\]\:ring-1:is(:where(.group)[data-variant=floating] *){--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[variant\=floating\]\:ring-sidebar-border:is(:where(.group)[data-variant=floating] *){--tw-ring-color:var(--sidebar-border)}.group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){background-color:#0000}@media(hover:hover){.peer-hover\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button):hover~*){color:var(--sidebar-accent-foreground)}}.peer-data-active\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button)[data-active]~*){color:var(--sidebar-accent-foreground)}.peer-data-\[size\=default\]\/menu-button\:top-1\.5:is(:where(.peer\/menu-button)[data-size=default]~*){top:calc(var(--spacing)*1.5)}.peer-data-\[size\=lg\]\/menu-button\:top-2\.5:is(:where(.peer\/menu-button)[data-size=lg]~*){top:calc(var(--spacing)*2.5)}.peer-data-\[size\=sm\]\/menu-button\:top-1:is(:where(.peer\/menu-button)[data-size=sm]~*){top:calc(var(--spacing)*1)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-6::file-selector-button{height:calc(var(--spacing)*6)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:calc(var(--spacing)*-2)}.after\:-inset-x-3:after{content:var(--tw-content);inset-inline:calc(var(--spacing)*-3)}.after\:-inset-y-2:after{content:var(--tw-content);inset-block:calc(var(--spacing)*-2)}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing)*0)}.after\:start-1\/2:after{content:var(--tw-content);inset-inline-start:50%}.after\:top-1:after{content:var(--tw-content);top:calc(var(--spacing)*1)}.after\:right-1:after{content:var(--tw-content);right:calc(var(--spacing)*1)}.after\:h-1\.5:after{content:var(--tw-content);height:calc(var(--spacing)*1.5)}.after\:w-1\.5:after{content:var(--tw-content);width:calc(var(--spacing)*1.5)}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:bg-emerald-500:after{content:var(--tw-content);background-color:var(--color-emerald-500)}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.group-data-horizontal\/tabs\:after\:inset-x-0:is(:where(.group\/tabs)[data-horizontal] *):after{content:var(--tw-content);inset-inline:calc(var(--spacing)*0)}.group-data-horizontal\/tabs\:after\:bottom-\[-5px\]:is(:where(.group\/tabs)[data-horizontal] *):after{content:var(--tw-content);bottom:-5px}.group-data-horizontal\/tabs\:after\:h-0\.5:is(:where(.group\/tabs)[data-horizontal] *):after{content:var(--tw-content);height:calc(var(--spacing)*.5)}.group-data-vertical\/tabs\:after\:inset-y-0:is(:where(.group\/tabs)[data-vertical] *):after{content:var(--tw-content);inset-block:calc(var(--spacing)*0)}.group-data-vertical\/tabs\:after\:-right-1:is(:where(.group\/tabs)[data-vertical] *):after{content:var(--tw-content);right:calc(var(--spacing)*-1)}.group-data-vertical\/tabs\:after\:w-0\.5:is(:where(.group\/tabs)[data-vertical] *):after{content:var(--tw-content);width:calc(var(--spacing)*.5)}.group-data-\[collapsible\=offcanvas\]\:after\:left-full:is(:where(.group)[data-collapsible=offcanvas] *):after{content:var(--tw-content);left:100%}@media(hover:hover){.hover\:border-border:hover{border-color:var(--border)}.hover\:border-sidebar-border:hover{border-color:var(--sidebar-border)}.hover\:bg-accent\/30:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/30:hover{background-color:color-mix(in oklab,var(--accent)30%,transparent)}}.hover\:bg-accent\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.hover\:bg-background:hover{background-color:var(--background)}.hover\:bg-destructive\/10:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/10:hover{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.hover\:bg-destructive\/20:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:bg-sidebar-accent:hover,.hover\:bg-sidebar-accent\/35:hover{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-sidebar-accent\/35:hover{background-color:color-mix(in oklab,var(--sidebar-accent)35%,transparent)}}.hover\:bg-sidebar-accent\/45:hover{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-sidebar-accent\/45:hover{background-color:color-mix(in oklab,var(--sidebar-accent)45%,transparent)}}.hover\:text-destructive:hover{color:var(--destructive)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:text-sidebar-accent-foreground:hover{color:var(--sidebar-accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-accent)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar:hover:is(:where(.group)[data-collapsible=offcanvas] *){background-color:var(--sidebar)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:var(--sidebar-border)}}.focus\:border-ring:focus{border-color:var(--ring)}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:opacity-100:focus{opacity:1}:is(.focus\:\*\*\:text-accent-foreground:focus *),:is(.not-data-\[variant\=destructive\]\:focus\:\*\*\:text-accent-foreground:not([data-variant=destructive]):focus *){color:var(--accent-foreground)}.focus-visible\:border-destructive\/40:focus-visible{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:border-destructive\/40:focus-visible{border-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-3:focus-visible,.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.active\:bg-sidebar-accent:active{background-color:var(--sidebar-accent)}.active\:text-sidebar-accent-foreground:active{color:var(--sidebar-accent-foreground)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-input\/50:disabled{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.disabled\:bg-input\/50:disabled{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.disabled\:opacity-50:disabled{opacity:.5}:where([data-side=left]) .in-data-\[side\=left\]\:cursor-w-resize{cursor:w-resize}:where([data-side=right]) .in-data-\[side\=right\]\:cursor-e-resize{cursor:e-resize}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:var(--radius)}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--spacing)*1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--spacing)*2)}.has-data-\[icon\=inline-end\]\:pr-3:has([data-icon=inline-end]){padding-right:calc(var(--spacing)*3)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--spacing)*1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--spacing)*2)}.has-data-\[icon\=inline-start\]\:pl-3:has([data-icon=inline-start]){padding-left:calc(var(--spacing)*3)}.has-data-\[slot\=alert-dialog-media\]\:grid-rows-\[auto_auto_1fr\]:has([data-slot=alert-dialog-media]){grid-template-rows:auto auto 1fr}.has-data-\[slot\=alert-dialog-media\]\:gap-x-4:has([data-slot=alert-dialog-media]){column-gap:calc(var(--spacing)*4)}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-data-\[slot\=card-description\]\:grid-rows-\[auto_auto\]:has([data-slot=card-description]){grid-template-rows:auto auto}.has-data-\[slot\=card-footer\]\:pb-0:has([data-slot=card-footer]){padding-bottom:calc(var(--spacing)*0)}.has-data-\[variant\=inset\]\:bg-sidebar:has([data-variant=inset]){background-color:var(--sidebar)}.has-\[\>img\:first-child\]\:pt-0:has(>img:first-child){padding-top:calc(var(--spacing)*0)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.aria-expanded\:opacity-100[aria-expanded=true]{opacity:1}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-active\:bg-background[data-active]{background-color:var(--background)}.data-active\:bg-sidebar-accent[data-active]{background-color:var(--sidebar-accent)}.data-active\:font-medium[data-active]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-active\:text-foreground[data-active]{color:var(--foreground)}.data-active\:text-sidebar-accent-foreground[data-active]{color:var(--sidebar-accent-foreground)}.group-data-\[variant\=default\]\/tabs-list\:data-active\:shadow-sm:is(:where(.group\/tabs-list)[data-variant=default] *)[data-active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-active]{background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-active\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *)[data-active]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[variant\=line\]\/tabs-list\:data-active\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *)[data-active]:after{content:var(--tw-content);opacity:1}.data-checked\:bg-primary[data-checked]{background-color:var(--primary)}.group-data-\[size\=default\]\/switch\:data-checked\:translate-x-\[calc\(100\%-2px\)\]:is(:where(.group\/switch)[data-size=default] *)[data-checked],.group-data-\[size\=sm\]\/switch\:data-checked\:translate-x-\[calc\(100\%-2px\)\]:is(:where(.group\/switch)[data-size=sm] *)[data-checked]{--tw-translate-x: calc(100% - 2px) ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-closed\:overflow-hidden[data-closed]{overflow:hidden}.data-closed\:animate-out[data-closed]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.data-closed\:fade-out-0[data-closed]{--tw-exit-opacity:0}.data-closed\:zoom-out-95[data-closed]{--tw-exit-scale:.95}.data-disabled\:pointer-events-none[data-disabled]{pointer-events:none}.data-disabled\:cursor-not-allowed[data-disabled]{cursor:not-allowed}.data-disabled\:opacity-50[data-disabled]{opacity:.5}.data-ending-style\:opacity-0[data-ending-style]{opacity:0}.data-horizontal\:h-2\.5[data-horizontal]{height:calc(var(--spacing)*2.5)}.data-horizontal\:h-px[data-horizontal]{height:1px}.data-horizontal\:w-full[data-horizontal]{width:100%}.data-horizontal\:flex-col[data-horizontal]{flex-direction:column}.data-horizontal\:border-t[data-horizontal]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-horizontal\:border-t-transparent[data-horizontal]{border-top-color:#0000}.data-inset\:pl-7[data-inset]{padding-left:calc(var(--spacing)*7)}.data-open\:bg-accent[data-open]{background-color:var(--accent)}.data-open\:text-accent-foreground[data-open]{color:var(--accent-foreground)}.data-open\:animate-in[data-open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-open\:fade-in-0[data-open]{--tw-enter-opacity:0}.data-open\:zoom-in-95[data-open]{--tw-enter-scale:.95}@media(hover:hover){.data-open\:hover\:bg-sidebar-accent[data-open]:hover{background-color:var(--sidebar-accent)}.data-open\:hover\:text-sidebar-accent-foreground[data-open]:hover{color:var(--sidebar-accent-foreground)}}.data-placeholder\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-popup-open\:bg-accent[data-popup-open]{background-color:var(--accent)}.data-popup-open\:text-accent-foreground[data-popup-open]{color:var(--accent-foreground)}.data-starting-style\:opacity-0[data-starting-style]{opacity:0}.data-unchecked\:bg-input[data-unchecked]{background-color:var(--input)}.group-data-\[size\=default\]\/switch\:data-unchecked\:translate-x-0:is(:where(.group\/switch)[data-size=default] *)[data-unchecked],.group-data-\[size\=sm\]\/switch\:data-unchecked\:translate-x-0:is(:where(.group\/switch)[data-size=sm] *)[data-unchecked]{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-vertical\:h-full[data-vertical]{height:100%}.data-vertical\:w-2\.5[data-vertical]{width:calc(var(--spacing)*2.5)}.data-vertical\:w-px[data-vertical]{width:1px}.data-vertical\:self-stretch[data-vertical]{align-self:stretch}.data-vertical\:border-l[data-vertical]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-vertical\:border-l-transparent[data-vertical]{border-left-color:#0000}.data-\[align-trigger\=true\]\:animate-none[data-align-trigger=true]{animation:none}.data-\[orientation\=vertical\]\:h-4[data-orientation=vertical]{height:calc(var(--spacing)*4)}.data-\[side\=bottom\]\:inset-x-0[data-side=bottom]{inset-inline:calc(var(--spacing)*0)}.data-\[side\=bottom\]\:top-1[data-side=bottom]{top:calc(var(--spacing)*1)}.data-\[side\=bottom\]\:bottom-0[data-side=bottom]{bottom:calc(var(--spacing)*0)}.data-\[side\=bottom\]\:h-auto[data-side=bottom]{height:auto}.data-\[side\=bottom\]\:border-t[data-side=bottom]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-.5rem}.data-\[side\=bottom\]\:data-closed\:slide-out-to-bottom-10[data-side=bottom][data-closed]{--tw-exit-translate-y:2.5rem}.data-\[side\=bottom\]\:data-open\:slide-in-from-bottom-10[data-side=bottom][data-open]{--tw-enter-translate-y:2.5rem}.data-\[side\=inline-end\]\:top-1\/2\![data-side=inline-end]{top:50%!important}.data-\[side\=inline-end\]\:-left-1[data-side=inline-end]{left:calc(var(--spacing)*-1)}.data-\[side\=inline-end\]\:-translate-y-1\/2[data-side=inline-end]{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=inline-end\]\:slide-in-from-left-2[data-side=inline-end]{--tw-enter-translate-x:-.5rem}.data-\[side\=inline-start\]\:top-1\/2\![data-side=inline-start]{top:50%!important}.data-\[side\=inline-start\]\:-right-1[data-side=inline-start]{right:calc(var(--spacing)*-1)}.data-\[side\=inline-start\]\:-translate-y-1\/2[data-side=inline-start]{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=inline-start\]\:slide-in-from-right-2[data-side=inline-start]{--tw-enter-translate-x:.5rem}.data-\[side\=left\]\:inset-y-0[data-side=left]{inset-block:calc(var(--spacing)*0)}.data-\[side\=left\]\:top-1\/2\![data-side=left]{top:50%!important}.data-\[side\=left\]\:-right-1[data-side=left]{right:calc(var(--spacing)*-1)}.data-\[side\=left\]\:left-0[data-side=left]{left:calc(var(--spacing)*0)}.data-\[side\=left\]\:h-full[data-side=left]{height:100%}.data-\[side\=left\]\:w-3\/4[data-side=left]{width:75%}.data-\[side\=left\]\:-translate-y-1\/2[data-side=left]{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=left\]\:border-r[data-side=left]{border-right-style:var(--tw-border-style);border-right-width:1px}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:.5rem}.data-\[side\=left\]\:group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\][data-side=left]:is(:where(.group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width)*-1)}.data-\[side\=left\]\:data-closed\:slide-out-to-left-10[data-side=left][data-closed]{--tw-exit-translate-x:-2.5rem}.data-\[side\=left\]\:data-open\:slide-in-from-left-10[data-side=left][data-open]{--tw-enter-translate-x:-2.5rem}.data-\[side\=right\]\:inset-y-0[data-side=right]{inset-block:calc(var(--spacing)*0)}.data-\[side\=right\]\:top-1\/2\![data-side=right]{top:50%!important}.data-\[side\=right\]\:right-0[data-side=right]{right:calc(var(--spacing)*0)}.data-\[side\=right\]\:-left-1[data-side=right]{left:calc(var(--spacing)*-1)}.data-\[side\=right\]\:h-full[data-side=right]{height:100%}.data-\[side\=right\]\:w-3\/4[data-side=right]{width:75%}.data-\[side\=right\]\:-translate-y-1\/2[data-side=right]{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=right\]\:border-l[data-side=right]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-.5rem}.data-\[side\=right\]\:group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\][data-side=right]:is(:where(.group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width)*-1)}.data-\[side\=right\]\:data-closed\:slide-out-to-right-10[data-side=right][data-closed]{--tw-exit-translate-x:2.5rem}.data-\[side\=right\]\:data-open\:slide-in-from-right-10[data-side=right][data-open]{--tw-enter-translate-x:2.5rem}.data-\[side\=top\]\:inset-x-0[data-side=top]{inset-inline:calc(var(--spacing)*0)}.data-\[side\=top\]\:top-0[data-side=top]{top:calc(var(--spacing)*0)}.data-\[side\=top\]\:-bottom-2\.5[data-side=top]{bottom:calc(var(--spacing)*-2.5)}.data-\[side\=top\]\:h-auto[data-side=top]{height:auto}.data-\[side\=top\]\:border-b[data-side=top]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:.5rem}.data-\[side\=top\]\:data-closed\:slide-out-to-top-10[data-side=top][data-closed]{--tw-exit-translate-y:-2.5rem}.data-\[side\=top\]\:data-open\:slide-in-from-top-10[data-side=top][data-open]{--tw-enter-translate-y:-2.5rem}.data-\[size\=default\]\:h-8[data-size=default]{height:calc(var(--spacing)*8)}.data-\[size\=default\]\:h-\[18\.4px\][data-size=default]{height:18.4px}.data-\[size\=default\]\:w-\[32px\][data-size=default]{width:32px}.data-\[size\=default\]\:max-w-xs[data-size=default]{max-width:var(--container-xs)}.data-\[size\=md\]\:text-sm[data-size=md]{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.data-\[size\=sm\]\:h-7[data-size=sm]{height:calc(var(--spacing)*7)}.data-\[size\=sm\]\:h-\[14px\][data-size=sm]{height:14px}.data-\[size\=sm\]\:w-\[24px\][data-size=sm]{width:24px}.data-\[size\=sm\]\:max-w-xs[data-size=sm]{max-width:var(--container-xs)}.data-\[size\=sm\]\:gap-3[data-size=sm]{gap:calc(var(--spacing)*3)}.data-\[size\=sm\]\:rounded-\[min\(var\(--radius-md\)\,10px\)\][data-size=sm]{border-radius:min(var(--radius-md),10px)}.data-\[size\=sm\]\:py-3[data-size=sm]{padding-block:calc(var(--spacing)*3)}.data-\[size\=sm\]\:text-xs[data-size=sm]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.data-\[size\=sm\]\:has-data-\[slot\=card-footer\]\:pb-0[data-size=sm]:has([data-slot=card-footer]){padding-bottom:calc(var(--spacing)*0)}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-1\.5>*)[data-slot=select-value]{gap:calc(var(--spacing)*1.5)}.data-\[state\=delayed-open\]\:animate-in[data-state=delayed-open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-\[state\=delayed-open\]\:fade-in-0[data-state=delayed-open]{--tw-enter-opacity:0}.data-\[state\=delayed-open\]\:zoom-in-95[data-state=delayed-open]{--tw-enter-scale:.95}.data-\[state\=open\]\:rotate-90[data-state=open]{rotate:90deg}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}.data-\[variant\=line\]\:rounded-none[data-variant=line]{border-radius:0}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-backdrop-filter\:backdrop-blur-xs{--tw-backdrop-blur:blur(var(--blur-xs));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}}@media(min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:flex{display:flex}.sm\:w-auto{width:auto}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:gap-4{gap:calc(var(--spacing)*4)}.sm\:gap-6{gap:calc(var(--spacing)*6)}.sm\:p-5{padding:calc(var(--spacing)*5)}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:row-span-2:is(:where(.group\/alert-dialog-content)[data-size=default] *){grid-row:span 2/span 2}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:place-items-start:is(:where(.group\/alert-dialog-content)[data-size=default] *){place-items:start}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:text-left:is(:where(.group\/alert-dialog-content)[data-size=default] *){text-align:left}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:group-has-data-\[slot\=alert-dialog-media\]\/alert-dialog-content\:col-start-2:is(:where(.group\/alert-dialog-content)[data-size=default] *):is(:where(.group\/alert-dialog-content):has([data-slot=alert-dialog-media]) *){grid-column-start:2}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:has-data-\[slot\=alert-dialog-media\]\:grid-rows-\[auto_1fr\]:is(:where(.group\/alert-dialog-content)[data-size=default] *):has([data-slot=alert-dialog-media]){grid-template-rows:auto 1fr}.data-\[side\=left\]\:sm\:max-w-sm[data-side=left],.data-\[side\=right\]\:sm\:max-w-sm[data-side=right],.data-\[size\=default\]\:sm\:max-w-sm[data-size=default]{max-width:var(--container-sm)}}@media(min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-6{grid-column:span 6/span 6}.md\:block{display:block}.md\:flex{display:flex}.md\:h-16{height:calc(var(--spacing)*16)}.md\:w-auto{width:auto}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:items-end{align-items:flex-end}.md\:p-4{padding:calc(var(--spacing)*4)}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:text-pretty{text-wrap:pretty}.md\:opacity-0{opacity:0}.md\:peer-data-\[variant\=inset\]\:m-2:is(:where(.peer)[data-variant=inset]~*){margin:calc(var(--spacing)*2)}.md\:peer-data-\[variant\=inset\]\:ml-0:is(:where(.peer)[data-variant=inset]~*){margin-left:calc(var(--spacing)*0)}.md\:peer-data-\[variant\=inset\]\:rounded-xl:is(:where(.peer)[data-variant=inset]~*){border-radius:calc(var(--radius) + 4px)}.md\:peer-data-\[variant\=inset\]\:shadow-sm:is(:where(.peer)[data-variant=inset]~*){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2:is(:where(.peer)[data-variant=inset]~*):is(:where(.peer)[data-state=collapsed]~*){margin-left:calc(var(--spacing)*2)}.md\:after\:hidden:after{content:var(--tw-content);display:none}}@media(min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.ltr\:-translate-x-1\/2:where(:dir(ltr),[dir=ltr],[dir=ltr] *),.rtl\:-translate-x-1\/2:where(:dir(rtl),[dir=rtl],[dir=rtl] *){--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.dark\:border-destructive:is(.dark *){border-color:var(--destructive)}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/20:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/20:is(.dark *){background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}@media(hover:hover){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:color-mix(in oklab,var(--destructive)30%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.dark\:hover\:text-foreground:is(.dark *):hover{color:var(--foreground)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:color-mix(in oklab,var(--input)80%,transparent)}}.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:color-mix(in oklab,var(--destructive)50%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:data-active\:border-input:is(.dark *)[data-active]{border-color:var(--input)}.dark\:data-active\:bg-input\/30:is(.dark *)[data-active]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-active\:bg-input\/30:is(.dark *)[data-active]{background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:data-active\:text-foreground:is(.dark *)[data-active]{color:var(--foreground)}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *)[data-active]{border-color:#0000}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *)[data-active]{background-color:#0000}.dark\:data-checked\:bg-primary-foreground:is(.dark *)[data-checked]{background-color:var(--primary-foreground)}.dark\:data-unchecked\:bg-foreground:is(.dark *)[data-unchecked]{background-color:var(--foreground)}.dark\:data-unchecked\:bg-input\/80:is(.dark *)[data-unchecked]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-unchecked\:bg-input\/80:is(.dark *)[data-unchecked]{background-color:color-mix(in oklab,var(--input)80%,transparent)}}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\.border-b\]\:pb-4.border-b{padding-bottom:calc(var(--spacing)*4)}.group-data-\[size\=sm\]\/card\:\[\.border-b\]\:pb-3:is(:where(.group\/card)[data-size=sm] *).border-b{padding-bottom:calc(var(--spacing)*3)}:is(.\*\:\[a\]\:underline>*):is(a){text-decoration-line:underline}:is(.\*\:\[a\]\:underline-offset-3>*):is(a){text-underline-offset:3px}@media(hover:hover){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.\[a\]\:hover\:bg-muted:is(a):hover{background-color:var(--muted)}.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:color-mix(in oklab,var(--primary)80%,transparent)}}.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.\[a\]\:hover\:text-muted-foreground:is(a):hover{color:var(--muted-foreground)}:is(.\*\:\[a\]\:hover\:text-foreground>*):is(a):hover{color:var(--foreground)}}:is(.\*\:\[img\:first-child\]\:rounded-t-xl>*):is(img:first-child){border-top-left-radius:calc(var(--radius) + 4px);border-top-right-radius:calc(var(--radius) + 4px)}:is(.\*\:\[img\:last-child\]\:rounded-b-xl>*):is(img:last-child){border-bottom-right-radius:calc(var(--radius) + 4px);border-bottom-left-radius:calc(var(--radius) + 4px)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing)*2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)}:is(.\*\:\[svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-6>*):is(svg:not([class*=size-])){width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:top-4>svg{top:calc(var(--spacing)*4)}.\[\&\>svg\]\:left-4>svg{left:calc(var(--spacing)*4)}.\[\&\>svg\]\:size-3\!>svg{width:calc(var(--spacing)*3)!important;height:calc(var(--spacing)*3)!important}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:var(--destructive)}.\[\&\>svg\]\:text-foreground>svg{color:var(--foreground)}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:var(--sidebar-accent-foreground)}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:calc(var(--spacing)*7)}@media(any-pointer:coarse){.\[\@media\(any-pointer\:coarse\)\]\:hidden{display:none}.\[\@media\(any-pointer\:coarse\)\]\:size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.\[\@media\(any-pointer\:coarse\)\]\:h-8{height:calc(var(--spacing)*8)}.\[\@media\(any-pointer\:coarse\)\]\:h-9{height:calc(var(--spacing)*9)}.\[\@media\(any-pointer\:coarse\)\]\:w-8{width:calc(var(--spacing)*8)}.\[\@media\(any-pointer\:coarse\)\]\:w-9{width:calc(var(--spacing)*9)}.\[\@media\(any-pointer\:coarse\)\]\:min-w-10{min-width:calc(var(--spacing)*10)}.\[\@media\(any-pointer\:coarse\)\]\:px-3{padding-inline:calc(var(--spacing)*3)}.\[\@media\(any-pointer\:coarse\)\]\:opacity-100{opacity:1}}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:calc(var(--spacing)*-2)}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:calc(var(--spacing)*-2)}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}}body{overscroll-behavior:none;background-color:var(--sidebar);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--text-family:var(--font-outfit),sans-serif}[data-theme-preset=underground]{--base-50:oklch(98.4% .0022 247.84);--base-100:oklch(96.87% .0051 247.88);--base-200:oklch(92.9% .0095 255.53);--base-300:oklch(86.9% .016 252.91);--base-400:oklch(70.4% .0291 256.81);--base-500:oklch(55.4% .0335 257.44);--base-600:oklch(44.6% .0313 257.3);--base-700:oklch(37.2% .0321 257.31);--base-800:oklch(27.9% .0299 260.05);--base-900:oklch(20.8% .0306 265.77);--base-950:oklch(12.9% .0306 264.71);--base-1000:oklch(7.8% .0306 264.02);--primary-50:oklch(97.97% .0095 159.88);--primary-100:oklch(95.64% .0234 159.23);--primary-200:oklch(91.64% .0434 159.21);--primary-300:oklch(86.03% .0731 158.6);--primary-400:oklch(78.1% .0975 156.24);--primary-500:oklch(71.22% .0991 154.66);--primary-600:oklch(61.47% .0867 154.73);--primary-700:oklch(53.15% .0694 156.19);--primary-800:oklch(44.16% .0544 157.47);--primary-900:oklch(38.7% .0436 159);--primary-950:oklch(26.43% .0295 160.27);--primary-1000:oklch(18.45% .0202 160.95);--secondary-50:oklch(97.55% .0049 330.01);--secondary-100:oklch(95.12% .0104 328.92);--secondary-200:oklch(90.2% .0219 329.77);--secondary-300:oklch(82.92% .0422 332);--secondary-400:oklch(73.08% .07 333.6);--secondary-500:oklch(66.24% .0855 334.26);--secondary-600:oklch(57.48% .0862 336.52);--secondary-700:oklch(52.11% .0755 338.14);--secondary-800:oklch(45.52% .0631 338.88);--secondary-900:oklch(40.42% .0512 339.72);--secondary-950:oklch(28.93% .0391 340.38);--secondary-1000:oklch(21.46% .0313 340.82);--background:var(--base-50);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-700);--primary-foreground:var(--color-white);--secondary:var(--secondary-600);--secondary-foreground:var(--color-white);--muted:var(--base-100);--muted-foreground:var(--base-600);--accent:var(--base-200);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-700);--chart-1:var(--primary-700);--chart-2:var(--secondary-600);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--radius:.5rem;--sidebar:var(--color-white);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-700);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-700);--display-family:var(--font-hedvig-letters-serif),sans-serif;--display-weight:800;--text-family:var(--font-kumbh-sans),sans-serif}[data-theme-preset=underground]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-900);--card-foreground:var(--base-200);--popover:var(--base-900);--popover-foreground:var(--base-200);--primary:var(--primary-700);--primary-foreground:var(--color-white);--secondary:var(--secondary-600);--secondary-foreground:var(--color-white);--muted:var(--base-800);--muted-foreground:var(--base-300);--accent:var(--base-800);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-700);--chart-1:var(--primary-700);--chart-2:var(--secondary-600);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-700);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--base-200);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-700)}[data-theme-preset=rose-garden]{--base-50:oklch(98.51% .001 33.69);--base-100:oklch(95.67% .0021 34.31);--base-200:oklch(92.27% .0029 34.49);--base-300:oklch(86.96% .0034 34.89);--base-400:oklch(70.88% .0038 34.83);--base-500:oklch(55.43% .0041 35.95);--base-600:oklch(44.23% .004 36.92);--base-700:oklch(37.31% .0037 36.25);--base-800:oklch(26.86% .0032 34.85);--base-900:oklch(21.2% .0029 34.69);--base-950:oklch(14.63% .0027 33.58);--base-1000:oklch(10.36% .0021 33.95);--primary-50:oklch(96.98% .0142 5.62);--primary-100:oklch(94.29% .0283 5.52);--primary-200:oklch(89.38% .0563 3.77);--primary-300:oklch(81.31% .1129 5.67);--primary-400:oklch(71.35% .1879 7.69);--primary-500:oklch(64.76% .2348 10.36);--primary-600:oklch(58.27% .2418 12.23);--primary-700:oklch(51.66% .2131 12.28);--primary-800:oklch(45.59% .1801 10);--primary-900:oklch(40.96% .1512 7.52);--primary-950:oklch(27.41% .1016 9.26);--primary-1000:oklch(18.61% .0693 10.39);--background:var(--color-white);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--primary-300);--secondary-foreground:var(--base-800);--muted:var(--base-200);--muted-foreground:var(--base-600);--accent:var(--base-100);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--primary-200);--chart-3:var(--primary-400);--chart-4:var(--primary-300);--chart-5:var(--primary-100);--radius:1rem;--sidebar:var(--base-100);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary-600);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-600);--text-family:var(--font-poppins),sans-serif;--display-weight:600}[data-theme-preset=rose-garden]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-950);--card-foreground:var(--base-200);--popover:var(--base-950);--popover-foreground:var(--base-200);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--primary-300);--secondary-foreground:var(--base-200);--muted:var(--base-900);--muted-foreground:var(--base-400);--accent:var(--base-900);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--primary-200);--chart-3:var(--primary-400);--chart-4:var(--primary-300);--chart-5:var(--primary-100);--sidebar:var(--base-800);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary-600);--sidebar-accent-foreground:var(--base-200);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-600)}[data-theme-preset=lake-view]{--base-50:oklch(98.49% .0024 160.68);--base-100:oklch(96.92% .005 161.7);--base-200:oklch(92.63% .0099 162.17);--base-300:oklch(85.04% .0147 163.22);--base-400:oklch(70.64% .0222 164.73);--base-500:oklch(55.37% .0287 165.9);--base-600:oklch(44.53% .0279 166.55);--base-700:oklch(37.31% .0248 166.06);--base-800:oklch(27.42% .0208 165.96);--base-900:oklch(21.19% .0173 166.78);--base-950:oklch(13.74% .0152 166.46);--base-1000:oklch(8.91% .0136 166.9);--primary-50:oklch(97.9% .021 166.11);--primary-100:oklch(95% .052 163.05);--primary-200:oklch(90.5% .093 164.15);--primary-300:oklch(84.5% .143 164.98);--primary-400:oklch(76.5% .177 163.22);--primary-500:oklch(69.6% .17 162.48);--primary-600:oklch(59.6% .145 163.22);--primary-700:oklch(50.8% .118 165.61);--primary-800:oklch(43.2% .095 166.91);--primary-900:oklch(37.8% .077 168.94);--primary-950:oklch(26.2% .051 171.55);--primary-1000:oklch(18.7% .034 172.89);--secondary-50:oklch(98.08% .0145 191.25);--secondary-100:oklch(95.16% .0437 191.52);--secondary-200:oklch(91.08% .0804 191.57);--secondary-300:oklch(85.76% .1202 192.38);--secondary-400:oklch(78.09% .1376 194.73);--secondary-500:oklch(70.79% .1273 196.21);--secondary-600:oklch(60.35% .1094 198.95);--secondary-700:oklch(55.1% .0899 200.52);--secondary-800:oklch(44.22% .0729 202.06);--secondary-900:oklch(39.06% .0594 203.06);--secondary-950:oklch(28.71% .0452 205.42);--secondary-1000:oklch(21.98% .036 206.01);--background:var(--base-50);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-400);--primary-foreground:var(--color-black);--secondary:var(--secondary-700);--secondary-foreground:var(--color-white);--muted:var(--base-100);--muted-foreground:var(--base-600);--accent:var(--base-100);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-400);--chart-1:var(--primary-400);--chart-2:var(--secondary-700);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--radius:.75rem;--sidebar:var(--color-white);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-400);--sidebar-primary-foreground:var(--color-black);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--base-800);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-400);--display-weight:800;--text-family:var(--font-pt-sans),sans-serif}[data-theme-preset=lake-view]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-900);--card-foreground:var(--base-200);--popover:var(--base-900);--popover-foreground:var(--base-200);--primary:var(--primary-400);--primary-foreground:var(--color-black);--secondary:var(--secondary-700);--secondary-foreground:var(--color-white);--muted:var(--base-800);--muted-foreground:var(--base-300);--accent:var(--base-800);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-400);--chart-1:var(--primary-400);--chart-2:var(--secondary-700);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-400);--sidebar-primary-foreground:var(--color-black);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-black);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-400)}[data-theme-preset=sunset-glow]{--base-50:oklch(98.53% .0041 157.18);--base-100:oklch(96.9% .0045 158.2);--base-200:oklch(92.61% .0057 158.66);--base-300:oklch(86.9% .0066 159.7);--base-400:oklch(70.64% .0074 161.16);--base-500:oklch(55.35% .008 162.35);--base-600:oklch(44.5% .0078 163.03);--base-700:oklch(37.3% .0072 162.52);--base-800:oklch(27.38% .0062 162.35);--base-900:oklch(21.18% .0057 163.13);--base-950:oklch(13.76% .0053 162.77);--base-1000:oklch(8.94% .0049 163.21);--primary-50:oklch(97.19% .0102 16.36);--primary-100:oklch(93.81% .0241 16.66);--primary-200:oklch(88.72% .0467 16.63);--primary-300:oklch(80.9% .0875 17.95);--primary-400:oklch(70.59% .1462 20.42);--primary-500:oklch(63.87% .1822 23.51);--primary-600:oklch(55.91% .1882 25.33);--primary-700:oklch(50.69% .1639 25.35);--primary-800:oklch(44.65% .1368 24.19);--primary-900:oklch(39.92% .1104 22.56);--primary-950:oklch(26.09% .0723 23.19);--primary-1000:oklch(17.09% .0473 23.59);--secondary-50:oklch(97.81% .0149 45.53);--secondary-100:oklch(94.91% .0351 44.57);--secondary-200:oklch(89.64% .0724 43.73);--secondary-300:oklch(79.38% .1248 42.42);--secondary-400:oklch(73.63% .1869 41.57);--secondary-500:oklch(68.49% .222 40.89);--secondary-600:oklch(62.57% .2229 39.75);--secondary-700:oklch(53.91% .1994 37.91);--secondary-800:oklch(46.28% .1643 36.26);--secondary-900:oklch(40.51% .1294 35.11);--secondary-950:oklch(26.41% .0836 34.57);--secondary-1000:oklch(17.26% .0534 33.77);--background:var(--color-white);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--secondary-300);--secondary-foreground:var(--color-black);--muted:var(--base-50);--muted-foreground:var(--base-600);--accent:var(--primary-100);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--secondary-300);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--radius:1rem;--sidebar:var(--base-100);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-600)}[data-theme-preset=sunset-glow]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-950);--card-foreground:var(--base-200);--popover:var(--base-950);--popover-foreground:var(--base-200);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--secondary-300);--secondary-foreground:var(--color-black);--muted:var(--base-900);--muted-foreground:var(--base-400);--accent:var(--base-900);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--secondary-300);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-600)}[data-theme-preset=forest-whisper]{--base-50:oklch(98.43% .0035 287.12);--base-100:oklch(96.65% .007 286.66);--base-200:oklch(91.97% .014 286.6);--base-300:oklch(87.08% .021 286.57);--base-400:oklch(72.44% .0315 286.35);--base-500:oklch(55.19% .042 286.22);--base-600:oklch(44.18% .0385 286.07);--base-700:oklch(36.98% .0315 286.09);--base-800:oklch(27.38% .021 286.32);--base-900:oklch(20.98% .014 286.17);--base-950:oklch(14.08% .0105 286.11);--base-1000:oklch(9.59% .007 286.07);--primary-50:oklch(98.15% .0164 177.79);--primary-100:oklch(95.11% .0547 177.24);--primary-200:oklch(90.8% .1019 177.16);--primary-300:oklch(85.22% .1484 177.84);--primary-400:oklch(77.41% .1676 178.16);--primary-500:oklch(70.21% .1559 178.48);--primary-600:oklch(59.91% .1318 180.39);--primary-700:oklch(52.76% .1072 182.22);--primary-800:oklch(43.59% .0869 183.94);--primary-900:oklch(38.42% .0703 184.51);--primary-950:oklch(27.38% .0502 187.51);--primary-1000:oklch(20.2% .0372 188.32);--secondary-50:oklch(97.7% .0034 244.64);--secondary-100:oklch(94.5% .0074 245.19);--secondary-200:oklch(89.44% .015 243.47);--secondary-300:oklch(82.08% .0278 242.12);--secondary-400:oklch(72.94% .0416 244.67);--secondary-500:oklch(65.78% .0485 247.35);--secondary-600:oklch(52.36% .0505 250.18);--secondary-700:oklch(49.5% .0469 251.28);--secondary-800:oklch(43.5% .0384 252.42);--secondary-900:oklch(38.63% .0295 252.97);--secondary-950:oklch(28.87% .0198 254.2);--secondary-1000:oklch(22.51% .0134 255.72);--background:var(--base-50);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-700);--primary-foreground:var(--color-white);--secondary:var(--secondary-600);--secondary-foreground:var(--color-white);--muted:var(--base-100);--muted-foreground:var(--base-600);--accent:var(--base-100);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-700);--chart-1:var(--primary-700);--chart-2:var(--secondary-600);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--radius:.5rem;--sidebar:var(--color-white);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-700);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-700)}[data-theme-preset=forest-whisper]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-900);--card-foreground:var(--base-200);--popover:var(--base-900);--popover-foreground:var(--base-200);--primary:var(--primary-700);--primary-foreground:var(--color-white);--secondary:var(--secondary-600);--secondary-foreground:var(--color-white);--muted:var(--base-800);--muted-foreground:var(--base-300);--accent:var(--base-800);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-700);--chart-1:var(--primary-700);--chart-2:var(--secondary-600);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-700);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-700)}[data-theme-preset=ocean-breeze]{--base-50:oklch(99% .0053 106.5);--base-100:oklch(96.95% .0058 107.51);--base-200:oklch(92.45% .0074 107.89);--base-300:oklch(86.89% .0085 108.73);--base-400:oklch(70.76% .0095 109.42);--base-500:oklch(55.32% .0103 110.92);--base-600:oklch(44.44% .0101 112.04);--base-700:oklch(37.34% .0093 111.24);--base-800:oklch(27.08% .008 110.04);--base-900:oklch(21.38% .0074 110.31);--base-950:oklch(14.21% .0069 109.25);--base-1000:oklch(9.56% .0064 109.76);--primary-50:oklch(97% .0123 254.6);--primary-100:oklch(93.2% .0281 255.58);--primary-200:oklch(88.2% .0518 254.13);--primary-300:oklch(80.9% .0922 251.81);--primary-400:oklch(70.7% .1449 254.62);--primary-500:oklch(62.3% .188 259.81);--primary-600:oklch(54.61% .2152 262.88);--primary-700:oklch(48.8% .2134 264.37);--primary-800:oklch(42.4% .1748 265.64);--primary-900:oklch(37.9% .1282 265.52);--primary-950:oklch(28.2% .0799 267.93);--primary-1000:oklch(21.9% .0483 269.5);--secondary-50:oklch(96.2% .0158 272.32);--secondary-100:oklch(93% .0298 272.79);--secondary-200:oklch(87% .0569 274.04);--secondary-300:oklch(78.5% .1007 274.72);--secondary-400:oklch(67.3% .1594 276.94);--secondary-500:oklch(58.54% .2041 277.12);--secondary-600:oklch(51.1% .2295 276.97);--secondary-700:oklch(45.7% .2102 277.03);--secondary-800:oklch(39.8% .1708 277.37);--secondary-900:oklch(35.9% .1261 278.7);--secondary-950:oklch(25.7% .0788 281.29);--secondary-1000:oklch(19.1% .0482 282.97);--background:var(--color-white);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--secondary-500);--secondary-foreground:var(--color-white);--muted:var(--base-50);--muted-foreground:var(--base-600);--accent:var(--base-100);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--secondary-500);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--radius:.3rem;--sidebar:var(--base-100);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-600);--text-family:var(--font-plus-jakarta-sans),sans-serif;--display-weight:800}[data-theme-preset=ocean-breeze]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-950);--card-foreground:var(--base-200);--popover:var(--base-950);--popover-foreground:var(--base-200);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--secondary-500);--secondary-foreground:var(--color-black);--muted:var(--base-900);--muted-foreground:var(--base-400);--accent:var(--base-900);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--secondary-500);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-600)}[data-theme-preset=lavender-dream]{--base-50:oklch(98.68% .0029 259.84);--base-100:oklch(96.92% .0058 262.54);--base-200:oklch(92.53% .0117 262.53);--base-300:oklch(86.92% .0175 260.34);--base-400:oklch(70.7% .0262 261.33);--base-500:oklch(55.1% .035 262.36);--base-600:oklch(44.6% .0335 258.8);--base-700:oklch(37.3% .0306 259.73);--base-800:oklch(27.8% .0277 258.85);--base-900:oklch(21% .024 262.66);--base-950:oklch(13% .0219 261.69);--base-1000:oklch(7.8% .0204 259.76);--primary-50:oklch(97.66% .0092 310.91);--primary-100:oklch(94.7% .0212 309.77);--primary-200:oklch(90.2% .0412 309.57);--primary-300:oklch(82.81% .078 309.73);--primary-400:oklch(71.97% .1318 309.2);--primary-500:oklch(63.59% .1699 307.95);--primary-600:oklch(57.09% .1808 306.89);--primary-700:oklch(50.09% .164 306.81);--primary-800:oklch(44.1% .1353 308.36);--primary-900:oklch(38.53% .1093 309.57);--primary-950:oklch(29.13% .0914 307.81);--primary-1000:oklch(22.29% .0786 306.49);--secondary-50:oklch(98.31% .0066 196.52);--secondary-100:oklch(95.43% .0181 196.87);--secondary-200:oklch(91.4% .033 197.14);--secondary-300:oklch(86.11% .0504 198.03);--secondary-400:oklch(81.1% .0589 201.14);--secondary-500:oklch(71.07% .0545 203.05);--secondary-600:oklch(60.54% .0473 206.07);--secondary-700:oklch(51.64% .0391 207.58);--secondary-800:oklch(44.48% .0317 208.98);--secondary-900:oklch(39.31% .0259 210.38);--secondary-950:oklch(29.23% .0201 212.36);--secondary-1000:oklch(22.7% .0163 212.92);--background:var(--base-50);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--secondary-400);--secondary-foreground:var(--color-black);--muted:var(--base-100);--muted-foreground:var(--base-600);--accent:var(--base-200);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--secondary-400);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--radius:1rem;--sidebar:var(--color-white);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-600);--display-family:var(--font-hedvig-letters-serif),sans-serif}[data-theme-preset=lavender-dream]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-900);--card-foreground:var(--base-200);--popover:var(--base-900);--popover-foreground:var(--base-200);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--secondary-400);--secondary-foreground:var(--color-black);--muted:var(--base-800);--muted-foreground:var(--base-300);--accent:var(--base-800);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--secondary-400);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-600)}[data-theme-chart-preset=cyan]{--chart-1:var(--color-cyan-800);--chart-2:var(--color-cyan-700);--chart-3:var(--color-cyan-600);--chart-4:var(--color-cyan-500);--chart-5:var(--color-cyan-400)}[data-theme-chart-preset=amber]{--chart-1:var(--color-amber-800);--chart-2:var(--color-amber-700);--chart-3:var(--color-amber-600);--chart-4:var(--color-amber-500);--chart-5:var(--color-amber-400)}[data-theme-chart-preset=green]{--chart-1:var(--color-green-800);--chart-2:var(--color-green-700);--chart-3:var(--color-green-600);--chart-4:var(--color-green-500);--chart-5:var(--color-green-400)}[data-theme-chart-preset=indigo]{--chart-1:var(--color-indigo-800);--chart-2:var(--color-indigo-700);--chart-3:var(--color-indigo-600);--chart-4:var(--color-indigo-500);--chart-5:var(--color-indigo-400)}[data-theme-chart-preset=fuchsia]{--chart-1:var(--color-fuchsia-800);--chart-2:var(--color-fuchsia-700);--chart-3:var(--color-fuchsia-600);--chart-4:var(--color-fuchsia-500);--chart-5:var(--color-fuchsia-400)}[data-theme-radius=sm]{--radius:.3rem}[data-theme-radius=md]{--radius:.5rem}[data-theme-radius=lg]{--radius:1rem}[data-theme-radius=xl]{--radius:1.5rem}[data-theme-radius=none]{--radius:0rem}[data-theme-scale=sm]{--text-lg:1.05rem;--text-base:.85rem;--text-sm:.75rem;--spacing:.222222rem}[data-theme-scale=lg]{--text-lg:1.55rem;--text-base:1.35rem;--text-sm:1rem;--spacing:.262222rem}[data-theme-font=inter]{--font-sans:var(--font-inter)}[data-theme-font=roboto]{--font-sans:var(--font-roboto)}[data-theme-font=poppins]{--font-sans:var(--font-poppins)}[data-theme-font=montserrat]{--font-sans:var(--font-montserrat)}[data-theme-font=pt-sans]{--font-sans:var(--font-pt-sans)}[data-theme-font=overpass-mono]{--font-sans:var(--font-overpass-mono);letter-spacing:-.05em}:root{--tmex-safe-area-top:env(safe-area-inset-top,0px);--tmex-safe-area-bottom:env(safe-area-inset-bottom,0px);--base-50:oklch(98.5% .0013 286.84);--base-100:oklch(96.7% .0027 286.38);--base-200:oklch(92% .0053 286.32);--base-300:oklch(87.1% .008 286.29);--base-400:oklch(70.5% .012 286.07);--base-500:oklch(55.2% .016 285.94);--base-600:oklch(44.2% .0147 285.79);--base-700:oklch(37% .012 285.81);--base-800:oklch(27.4% .008 286.03);--base-900:oklch(21% .0053 285.89);--base-950:oklch(14.1% .004 285.83);--base-1000:oklch(9.6% .0027 285.79);--background:var(--color-white);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--base-950);--primary-foreground:var(--color-white);--secondary:var(--base-300);--secondary-foreground:var(--base-800);--muted:var(--color-neutral-100);--muted-foreground:var(--color-neutral-500);--accent:var(--base-200);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--base-800);--chart-1:var(--base-950);--chart-2:var(--base-600);--chart-3:var(--base-800);--chart-4:var(--base-400);--chart-5:var(--base-300);--radius:.5rem;--sidebar:var(--base-100);--sidebar-foreground:var(--base-500);--sidebar-primary:var(--base-950);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--base-200);--sidebar-accent-foreground:var(--base-950);--sidebar-border:var(--base-200);--sidebar-ring:var(--base-800);--display-weight:700;--fc-button-bg-color:var(--primary);--fc-button-hover-bg-color:var(--primary);--fc-button-active-bg-color:var(--primary);--fc-button-hover-border-color:transparent;--fc-button-active-border-color:transparent;--fc-button-border-color:transparent;--fc-event-border-color:transparent;--fc-event-text-color:oklch(100% 0 0);--fc-border-color:var(--border);--fc-page-bg-color:var(--muted);--fc-today-bg-color:var(--muted)}.dark{--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-950);--card-foreground:var(--base-200);--popover:var(--base-950);--popover-foreground:var(--base-200);--primary:var(--base-50);--primary-foreground:var(--base-900);--secondary:var(--base-500);--secondary-foreground:var(--base-200);--muted:var(--base-900);--muted-foreground:var(--base-400);--accent:var(--base-900);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--base-200);--chart-1:var(--base-50);--chart-2:var(--base-400);--chart-3:var(--base-200);--chart-4:var(--base-600);--chart-5:var(--base-700);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--base-50);--sidebar-primary-foreground:var(--base-900);--sidebar-accent:var(--base-800);--sidebar-accent-foreground:var(--base-200);--sidebar-border:var(--base-800);--sidebar-ring:var(--base-200)}*{scrollbar-width:thin;scrollbar-color:var(--border)transparent}html{overscroll-behavior:none;overflow:hidden}*{text-autospace:no-autospace}body{overscroll-behavior:none;scrollbar-width:none;-ms-overflow-style:none;height:100vh;overflow:hidden}body::-webkit-scrollbar{display:none}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
|