@meridianjs/admin-dashboard 0.1.8 → 0.1.10

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.
@@ -0,0 +1,6 @@
1
+ import{j as a,a as Ct,b as Mt}from"./vendor-query-B9zjiv_I.js";import{r as l,c as Ie,g as jt,k as Y,u as St}from"./vendor-react-GAVzOgi0.js";import{c as _t,n as ke,d as Nt,g as Dt,m as It,t as kt,a as j,C as At,b as Et,e as Rt,f as H,i as ie,h as $,j as ye,s as Ae,k as G,l as Ot,o as Pt,P as Ee,p as Tt,q as Bt,r as Lt,u as Wt,v as $t,w as Gt,x as Ht,y as Ft,W as be,B as zt,I as Ut,z as Kt,A as Vt,D as Yt,E as qt}from"./index-Cmix-MPs.js";import{a as Xt,D as ee,M as Jt,g as Re}from"./vendor-dnd-DY2LDzZ0.js";import{a6 as Qt,a7 as Zt,a8 as en,a9 as tn,a3 as F,aa as Oe,ab as nn,ac as on,ad as sn,ae as rn,af as an,ag as cn,ah as ln,ai as dn,aj as un,ak as fn,al as mn,am as hn,an as pn}from"./vendor-radix-CvpS4Cp5.js";import"./vendor-editor-Bc-lI3f8.js";/**
2
+ * @license lucide-react v0.468.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 gn=_t("Trash",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}]]);function Pe(e,t,o){const[n,s]=ke(o==null?void 0:o.in,e,t),r=we(n,s),c=Math.abs(Nt(n,s));n.setDate(n.getDate()-r*c);const i=+(we(n,s)===-r),d=r*(c-i);return d===0?0:d}function we(e,t){const o=e.getFullYear()-t.getFullYear()||e.getMonth()-t.getMonth()||e.getDate()-t.getDate()||e.getHours()-t.getHours()||e.getMinutes()-t.getMinutes()||e.getSeconds()-t.getSeconds()||e.getMilliseconds()-t.getMilliseconds();return o<0?-1:o>0?1:o}function xn(e,t,o){const[n,s]=ke(o==null?void 0:o.in,e,t),r=(+n-+s)/It;return Dt(o==null?void 0:o.roundingMethod)(r)}function Ce(e,t){return kt(e,t==null?void 0:t.in).getDate()}const te=e=>{let{transform:t}=e;return{...t,y:0}};function fe(){const[e,t]=l.useState({x:0,y:0,elementX:0,elementY:0,elementPositionX:0,elementPositionY:0}),o=l.useRef(null);return l.useLayoutEffect(()=>{const n=s=>{var c;let r={x:s.pageX,y:s.pageY};if(((c=o.current)==null?void 0:c.nodeType)===Node.ELEMENT_NODE){const{left:i,top:d}=o.current.getBoundingClientRect(),u=i+window.scrollX,m=d+window.scrollY,h=s.pageX-u,p=s.pageY-m;r.elementX=h,r.elementY=p,r.elementPositionX=u,r.elementPositionY=m}t(i=>({...i,...r}))};return document.addEventListener("mousemove",n),()=>{document.removeEventListener("mousemove",n)}},[]),[e,o]}function vn(e,t=500){const[o,n]=l.useState(e),s=l.useRef(null);return l.useEffect(()=>{const r=Date.now();if(s.current&&r>=s.current+t)s.current=r,n(e);else{const c=window.setTimeout(()=>{s.current=r,n(e)},t);return()=>window.clearTimeout(c)}},[e,t]),o}function yn(){const[e,t]=l.useState({x:null,y:null}),o=l.useCallback((...n)=>{if(typeof n[0]=="object")window.scrollTo(n[0]);else if(typeof n[0]=="number"&&typeof n[1]=="number")window.scrollTo(n[0],n[1]);else throw new Error("Invalid arguments passed to scrollTo. See here for more info. https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo")},[]);return l.useLayoutEffect(()=>{const n=()=>{t({x:window.scrollX,y:window.scrollY})};return n(),window.addEventListener("scroll",n),()=>{window.removeEventListener("scroll",n)}},[]),[e,o]}const W={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1};function Te(e){return"init"in e}function ce(e){return!!e.write}function Me(e){return"v"in e||"e"in e}function J(e){if("e"in e)throw e.e;if((W?"production":void 0)!=="production"&&!("v"in e))throw new Error("[Bug] atom state is not initialized");return e.v}function Q(e){return typeof(e==null?void 0:e.then)=="function"}function Be(e,t,o){if(!o.p.has(e)){o.p.add(e);const n=()=>o.p.delete(e);t.then(n,n)}}function Le(e,t,o){var n;const s=new Set;for(const r of((n=o.get(e))==null?void 0:n.t)||[])s.add(r);for(const r of t.p)s.add(r);return s}const bn=(e,t,...o)=>t.read(...o),wn=(e,t,...o)=>t.write(...o),Cn=(e,t)=>{var o;return(o=t.INTERNAL_onInit)==null?void 0:o.call(t,e)},Mn=(e,t,o)=>{var n;return(n=t.onMount)==null?void 0:n.call(t,o)},jn=(e,t)=>{var o;const n=I(e),s=n[0],r=n[6],c=n[9];if((W?"production":void 0)!=="production"&&!t)throw new Error("Atom is undefined or null");let i=s.get(t);return i||(i={d:new Map,p:new Set,n:0},s.set(t,i),(o=r.i)==null||o.call(r,t),c==null||c(e,t)),i},Sn=e=>{const t=I(e),o=t[1],n=t[3],s=t[4],r=t[5],c=t[6],i=t[13],d=[],u=m=>{try{m()}catch(h){d.push(h)}};do{c.f&&u(c.f);const m=new Set,h=m.add.bind(m);n.forEach(p=>{var g;return(g=o.get(p))==null?void 0:g.l.forEach(h)}),n.clear(),r.forEach(h),r.clear(),s.forEach(h),s.clear(),m.forEach(u),n.size&&i(e)}while(n.size||r.size||s.size);if(d.length)throw new AggregateError(d)},_n=e=>{const t=I(e),o=t[1],n=t[2],s=t[3],r=t[11],c=t[14],i=t[17],d=[],u=new WeakSet,m=new WeakSet,h=Array.from(s);for(;h.length;){const p=h[h.length-1],g=r(e,p);if(m.has(p)){h.pop();continue}if(u.has(p)){if(n.get(p)===g.n)d.push([p,g]);else if((W?"production":void 0)!=="production"&&n.has(p))throw new Error("[Bug] invalidated atom exists");m.add(p),h.pop();continue}u.add(p);for(const y of Le(p,g,o))u.has(y)||h.push(y)}for(let p=d.length-1;p>=0;--p){const[g,y]=d[p];let M=!1;for(const N of y.d.keys())if(N!==g&&s.has(N)){M=!0;break}M&&(c(e,g),i(e,g)),n.delete(g)}},le=new WeakSet,Nn=(e,t)=>{var o,n;const s=I(e),r=s[1],c=s[2],i=s[3],d=s[6],u=s[7],m=s[11],h=s[12],p=s[13],g=s[14],y=s[16],M=s[17],N=s[20],v=s[26],x=m(e,t);if(Me(x)){if(r.has(t)&&c.get(t)!==x.n)return x;let w=!1;for(const[k,E]of x.d)if(g(e,k).n!==E){w=!0;break}if(!w)return x}let S=!0;const A=new Set(x.d.keys()),_=new Map,f=()=>{for(const w of A)_.has(w)||x.d.delete(w)},C=()=>{if(r.has(t)){const w=!i.size;M(e,t),w&&(p(e),h(e))}},b=w=>{var k;if(w===t){const L=m(e,w);if(!Me(L))if(Te(w))N(e,w,w.init);else throw new Error("no atom init");return J(L)}const E=g(e,w);try{return J(E)}finally{_.set(w,E.n),x.d.set(w,E.n),Q(x.v)&&Be(t,x.v,E),r.has(t)&&((k=r.get(w))==null||k.t.add(t)),S||C()}};let R,T;const D={get signal(){return R||(R=new AbortController),R.signal},get setSelf(){return(W?"production":void 0)!=="production"&&console.warn("[DEPRECATED] setSelf is deprecated and will be removed in v3."),(W?"production":void 0)!=="production"&&!ce(t)&&console.warn("setSelf function cannot be used with read-only atom"),!T&&ce(t)&&(T=(...w)=>{if((W?"production":void 0)!=="production"&&S&&console.warn("setSelf function cannot be called in sync"),!S)try{return y(e,t,...w)}finally{p(e),h(e)}}),T}},O=x.n;try{(W?"production":void 0)!=="production"&&le.delete(e);const w=u(e,t,b,D);if((W?"production":void 0)!=="production"&&le.has(e)&&console.warn("Detected store mutation during atom read. This is not supported."),N(e,t,w),Q(w)){v(e,w,()=>R==null?void 0:R.abort());const k=()=>{f(),C()};w.then(k,k)}else f();return(o=d.r)==null||o.call(d,t),x}catch(w){return delete x.v,x.e=w,++x.n,x}finally{S=!1,O!==x.n&&c.get(t)===O&&(c.set(t,x.n),i.add(t),(n=d.c)==null||n.call(d,t))}},Dn=(e,t)=>{const o=I(e),n=o[1],s=o[2],r=o[11],c=[t];for(;c.length;){const i=c.pop(),d=r(e,i);for(const u of Le(i,d,n)){const m=r(e,u);s.get(u)!==m.n&&(s.set(u,m.n),c.push(u))}}},In=(e,t,...o)=>{const n=I(e),s=n[3],r=n[6],c=n[8],i=n[11],d=n[12],u=n[13],m=n[14],h=n[15],p=n[16],g=n[17],y=n[20];let M=!0;const N=x=>J(m(e,x)),v=(x,...S)=>{var A;const _=i(e,x);try{if(x===t){if(!Te(x))throw new Error("atom not writable");(W?"production":void 0)!=="production"&&le.add(e);const f=_.n,C=S[0];y(e,x,C),g(e,x),f!==_.n&&(s.add(x),h(e,x),(A=r.c)==null||A.call(r,x));return}else return p(e,x,...S)}finally{M||(u(e),d(e))}};try{return c(e,t,N,v,...o)}finally{M=!1}},kn=(e,t)=>{var o;const n=I(e),s=n[1],r=n[3],c=n[6],i=n[11],d=n[15],u=n[18],m=n[19],h=i(e,t),p=s.get(t);if(p){for(const[g,y]of h.d)if(!p.d.has(g)){const M=i(e,g);u(e,g).t.add(t),p.d.add(g),y!==M.n&&(r.add(g),d(e,g),(o=c.c)==null||o.call(c,g))}for(const g of p.d)if(!h.d.has(g)){p.d.delete(g);const y=m(e,g);y==null||y.t.delete(t)}}},An=(e,t)=>{var o;const n=I(e),s=n[1],r=n[4],c=n[6],i=n[10],d=n[11],u=n[12],m=n[13],h=n[14],p=n[16],g=n[18],y=d(e,t);let M=s.get(t);if(!M){h(e,t);for(const N of y.d.keys())g(e,N).t.add(t);if(M={l:new Set,d:new Set(y.d.keys()),t:new Set},s.set(t,M),ce(t)){const N=()=>{let v=!0;const x=(...S)=>{try{return p(e,t,...S)}finally{v||(m(e),u(e))}};try{const S=i(e,t,x);S&&(M.u=()=>{v=!0;try{S()}finally{v=!1}})}finally{v=!1}};r.add(N)}(o=c.m)==null||o.call(c,t)}return M},En=(e,t)=>{var o,n;const s=I(e),r=s[1],c=s[5],i=s[6],d=s[11],u=s[19],m=d(e,t);let h=r.get(t);if(!h||h.l.size)return h;let p=!1;for(const g of h.t)if((o=r.get(g))!=null&&o.d.has(t)){p=!0;break}if(!p){h.u&&c.add(h.u),h=void 0,r.delete(t);for(const g of m.d.keys()){const y=u(e,g);y==null||y.t.delete(t)}(n=i.u)==null||n.call(i,t);return}return h},Rn=(e,t,o)=>{const n=I(e),s=n[11],r=n[27],c=s(e,t),i="v"in c,d=c.v;if(Q(o))for(const u of c.d.keys())Be(t,o,s(e,u));c.v=o,delete c.e,(!i||!Object.is(d,c.v))&&(++c.n,Q(d)&&r(e,d))},On=(e,t)=>{const o=I(e)[14];return J(o(e,t))},Pn=(e,t,...o)=>{const n=I(e),s=n[12],r=n[13],c=n[16];try{return c(e,t,...o)}finally{r(e),s(e)}},Tn=(e,t,o)=>{const n=I(e),s=n[12],r=n[18],c=n[19],d=r(e,t).l;return d.add(o),s(e),()=>{d.delete(o),c(e,t),s(e)}},Bn=(e,t,o)=>{const s=I(e)[25];let r=s.get(t);if(!r){r=new Set,s.set(t,r);const c=()=>s.delete(t);t.then(c,c)}r.add(o)},Ln=(e,t)=>{const s=I(e)[25].get(t);s==null||s.forEach(r=>r())},We=new WeakMap,I=e=>{const t=We.get(e);if((W?"production":void 0)!=="production"&&!t)throw new Error("Store must be created by buildStore to read its building blocks");return t};function Wn(e){const t=I(e),o=t[24];return o?o(t):t}function $n(...e){const t={get(n){const s=I(t)[21];return s(t,n)},set(n,...s){const r=I(t)[22];return r(t,n,...s)},sub(n,s){const r=I(t)[23];return r(t,n,s)}},o=[new WeakMap,new WeakMap,new WeakMap,new Set,new Set,new Set,{},bn,wn,Cn,Mn,jn,Sn,_n,Nn,Dn,In,kn,An,En,Rn,On,Pn,Tn,void 0,new WeakMap,Bn,Ln].map((n,s)=>e[s]||n);return We.set(t,Object.freeze(o)),t}const $e={};let Gn=0;function Ge(e,t){const o=`atom${++Gn}`,n={toString(){return($e?"production":void 0)!=="production"&&this.debugLabel?o+":"+this.debugLabel:o}};return typeof e=="function"?n.read=e:(n.init=e,n.read=Hn,n.write=Fn),n}function Hn(e){return e(this)}function Fn(e,t,o){return t(this,typeof o=="function"?o(e(this)):o)}function zn(){return $n()}let z;function Un(){return z||(z=zn(),($e?"production":void 0)!=="production"&&(globalThis.__JOTAI_DEFAULT_STORE__||(globalThis.__JOTAI_DEFAULT_STORE__=z),globalThis.__JOTAI_DEFAULT_STORE__!==z&&console.warn("Detected multiple Jotai instances. It may cause unexpected behavior with the default store. https://github.com/pmndrs/jotai/discussions/2044"))),z}const Kn={},Vn=l.createContext(void 0);function He(e){return l.useContext(Vn)||Un()}const de=e=>typeof(e==null?void 0:e.then)=="function",ue=e=>{e.status||(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}))},Yn=Ie.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(ue(e),e)}),ne=new WeakMap,je=(e,t,o)=>{const s=Wn(e)[26];let r=ne.get(t);return r||(r=new Promise((c,i)=>{let d=t;const u=p=>g=>{d===p&&c(g)},m=p=>g=>{d===p&&i(g)},h=()=>{try{const p=o();de(p)?(ne.set(p,r),d=p,p.then(u(p),m(p)),s(e,p,h)):c(p)}catch(p){i(p)}};t.then(u(t),m(t)),s(e,t,h)}),ne.set(t,r)),r};function qn(e,t){const{delay:o,unstable_promiseStatus:n=!Ie.use}={},s=He(),[[r,c,i],d]=l.useReducer(m=>{const h=s.get(e);return Object.is(m[0],h)&&m[1]===s&&m[2]===e?m:[h,s,e]},void 0,()=>[s.get(e),s,e]);let u=r;if((c!==s||i!==e)&&(d(),u=s.get(e)),l.useEffect(()=>{const m=s.sub(e,()=>{if(n)try{const h=s.get(e);de(h)&&ue(je(s,h,()=>s.get(e)))}catch{}if(typeof o=="number"){setTimeout(d,o);return}d()});return d(),m},[s,e,o,n]),l.useDebugValue(u),de(u)){const m=je(s,u,()=>s.get(e));return n&&ue(m),Yn(m)}return u}function Xn(e,t){const o=He();return l.useCallback((...s)=>{if((Kn?"production":void 0)!=="production"&&!("write"in e))throw new Error("not writable atom");return o.set(e,...s)},[o,e])}function Fe(e,t){return[qn(e),Xn(e)]}var ze="Expected a function",Se=NaN,Jn="[object Symbol]",Qn=/^\s+|\s+$/g,Zn=/^[-+]0x[0-9a-f]+$/i,eo=/^0b[01]+$/i,to=/^0o[0-7]+$/i,no=parseInt,oo=typeof Y=="object"&&Y&&Y.Object===Object&&Y,so=typeof self=="object"&&self&&self.Object===Object&&self,ro=oo||so||Function("return this")(),ao=Object.prototype,io=ao.toString,co=Math.max,lo=Math.min,oe=function(){return ro.Date.now()};function uo(e,t,o){var n,s,r,c,i,d,u=0,m=!1,h=!1,p=!0;if(typeof e!="function")throw new TypeError(ze);t=_e(t)||0,Z(o)&&(m=!!o.leading,h="maxWait"in o,r=h?co(_e(o.maxWait)||0,t):r,p="trailing"in o?!!o.trailing:p);function g(f){var C=n,b=s;return n=s=void 0,u=f,c=e.apply(b,C),c}function y(f){return u=f,i=setTimeout(v,t),m?g(f):c}function M(f){var C=f-d,b=f-u,R=t-C;return h?lo(R,r-b):R}function N(f){var C=f-d,b=f-u;return d===void 0||C>=t||C<0||h&&b>=r}function v(){var f=oe();if(N(f))return x(f);i=setTimeout(v,M(f))}function x(f){return i=void 0,p&&n?g(f):(n=s=void 0,c)}function S(){i!==void 0&&clearTimeout(i),u=0,n=d=s=i=void 0}function A(){return i===void 0?c:x(oe())}function _(){var f=oe(),C=N(f);if(n=arguments,s=this,d=f,C){if(i===void 0)return y(d);if(h)return i=setTimeout(v,t),g(d)}return i===void 0&&(i=setTimeout(v,t)),c}return _.cancel=S,_.flush=A,_}function fo(e,t,o){var n=!0,s=!0;if(typeof e!="function")throw new TypeError(ze);return Z(o)&&(n="leading"in o?!!o.leading:n,s="trailing"in o?!!o.trailing:s),uo(e,t,{leading:n,maxWait:t,trailing:s})}function Z(e){var t=typeof e;return!!e&&(t=="object"||t=="function")}function mo(e){return!!e&&typeof e=="object"}function ho(e){return typeof e=="symbol"||mo(e)&&io.call(e)==Jn}function _e(e){if(typeof e=="number")return e;if(ho(e))return Se;if(Z(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=Z(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=e.replace(Qn,"");var o=eo.test(e);return o||to.test(e)?no(e.slice(2),o?2:8):Zn.test(e)?Se:+e}var po=fo;const go=jt(po),Ue=l.forwardRef(({className:e,...t},o)=>a.jsx("div",{ref:o,className:j("rounded-lg border bg-card text-card-foreground shadow-sm",e),...t}));Ue.displayName="Card";const xo=l.forwardRef(({className:e,...t},o)=>a.jsx("div",{ref:o,className:j("flex flex-col space-y-1.5 p-6",e),...t}));xo.displayName="CardHeader";const vo=l.forwardRef(({className:e,...t},o)=>a.jsx("h3",{ref:o,className:j("text-2xl font-semibold leading-none tracking-tight",e),...t}));vo.displayName="CardTitle";const yo=l.forwardRef(({className:e,...t},o)=>a.jsx("p",{ref:o,className:j("text-sm text-muted-foreground",e),...t}));yo.displayName="CardDescription";const bo=l.forwardRef(({className:e,...t},o)=>a.jsx("div",{ref:o,className:j("p-6 pt-0",e),...t}));bo.displayName="CardContent";const wo=l.forwardRef(({className:e,...t},o)=>a.jsx("div",{ref:o,className:j("flex items-center p-6 pt-0",e),...t}));wo.displayName="CardFooter";function Co(e,t=[]){let o=[];function n(r,c){const i=l.createContext(c),d=o.length;o=[...o,c];const u=h=>{var v;const{scope:p,children:g,...y}=h,M=((v=p==null?void 0:p[e])==null?void 0:v[d])||i,N=l.useMemo(()=>y,Object.values(y));return a.jsx(M.Provider,{value:N,children:g})};u.displayName=r+"Provider";function m(h,p){var M;const g=((M=p==null?void 0:p[e])==null?void 0:M[d])||i,y=l.useContext(g);if(y)return y;if(c!==void 0)return c;throw new Error(`\`${h}\` must be used within \`${r}\``)}return[u,m]}const s=()=>{const r=o.map(c=>l.createContext(c));return function(i){const d=(i==null?void 0:i[e])||r;return l.useMemo(()=>({[`__scope${e}`]:{...i,[e]:d}}),[i,d])}};return s.scopeName=e,[n,Mo(s,...t)]}function Mo(...e){const t=e[0];if(e.length===1)return t;const o=()=>{const n=e.map(s=>({useScope:s(),scopeName:s.scopeName}));return function(r){const c=n.reduce((i,{useScope:d,scopeName:u})=>{const h=d(r)[`__scope${u}`];return{...i,...h}},{});return l.useMemo(()=>({[`__scope${t.scopeName}`]:c}),[c])}};return o.scopeName=t.scopeName,o}function jo(e){const t=So(e),o=l.forwardRef((n,s)=>{const{children:r,...c}=n,i=l.Children.toArray(r),d=i.find(No);if(d){const u=d.props.children,m=i.map(h=>h===d?l.Children.count(u)>1?l.Children.only(null):l.isValidElement(u)?u.props.children:null:h);return a.jsx(t,{...c,ref:s,children:l.isValidElement(u)?l.cloneElement(u,void 0,m):null})}return a.jsx(t,{...c,ref:s,children:r})});return o.displayName=`${e}.Slot`,o}function So(e){const t=l.forwardRef((o,n)=>{const{children:s,...r}=o;if(l.isValidElement(s)){const c=Io(s),i=Do(r,s.props);return s.type!==l.Fragment&&(i.ref=n?Qt(n,c):c),l.cloneElement(s,i)}return l.Children.count(s)>1?l.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var _o=Symbol("radix.slottable");function No(e){return l.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===_o}function Do(e,t){const o={...t};for(const n in t){const s=e[n],r=t[n];/^on[A-Z]/.test(n)?s&&r?o[n]=(...i)=>{const d=r(...i);return s(...i),d}:s&&(o[n]=s):n==="style"?o[n]={...s,...r}:n==="className"&&(o[n]=[s,r].filter(Boolean).join(" "))}return{...e,...o}}function Io(e){var n,s;let t=(n=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:n.get,o=t&&"isReactWarning"in t&&t.isReactWarning;return o?e.ref:(t=(s=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:s.get,o=t&&"isReactWarning"in t&&t.isReactWarning,o?e.props.ref:e.props.ref||e.ref)}var ko=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Ao=ko.reduce((e,t)=>{const o=jo(`Primitive.${t}`),n=l.forwardRef((s,r)=>{const{asChild:c,...i}=s,d=c?o:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),a.jsx(d,{...i,ref:r})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{}),me="ContextMenu",[Eo]=Co(me,[Oe]),P=Oe(),[Ro,Ke]=Eo(me),Ve=e=>{const{__scopeContextMenu:t,children:o,onOpenChange:n,dir:s,modal:r=!0}=e,[c,i]=l.useState(!1),d=P(t),u=Zt(n),m=l.useCallback(h=>{i(h),u(h)},[u]);return a.jsx(Ro,{scope:t,open:c,onOpenChange:m,modal:r,children:a.jsx(en,{...d,dir:s,open:c,onOpenChange:m,modal:r,children:o})})};Ve.displayName=me;var Ye="ContextMenuTrigger",qe=l.forwardRef((e,t)=>{const{__scopeContextMenu:o,disabled:n=!1,...s}=e,r=Ke(Ye,o),c=P(o),i=l.useRef({x:0,y:0}),d=l.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...i.current})}),u=l.useRef(0),m=l.useCallback(()=>window.clearTimeout(u.current),[]),h=p=>{i.current={x:p.clientX,y:p.clientY},r.onOpenChange(!0)};return l.useEffect(()=>m,[m]),l.useEffect(()=>void(n&&m()),[n,m]),a.jsxs(a.Fragment,{children:[a.jsx(tn,{...c,virtualRef:d}),a.jsx(Ao.span,{"data-state":r.open?"open":"closed","data-disabled":n?"":void 0,...s,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:n?e.onContextMenu:F(e.onContextMenu,p=>{m(),h(p),p.preventDefault()}),onPointerDown:n?e.onPointerDown:F(e.onPointerDown,q(p=>{m(),u.current=window.setTimeout(()=>h(p),700)})),onPointerMove:n?e.onPointerMove:F(e.onPointerMove,q(m)),onPointerCancel:n?e.onPointerCancel:F(e.onPointerCancel,q(m)),onPointerUp:n?e.onPointerUp:F(e.onPointerUp,q(m))})]})});qe.displayName=Ye;var Oo="ContextMenuPortal",Xe=e=>{const{__scopeContextMenu:t,...o}=e,n=P(t);return a.jsx(nn,{...n,...o})};Xe.displayName=Oo;var Je="ContextMenuContent",Qe=l.forwardRef((e,t)=>{const{__scopeContextMenu:o,...n}=e,s=Ke(Je,o),r=P(o),c=l.useRef(!1);return a.jsx(on,{...r,...n,ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:i=>{var d;(d=e.onCloseAutoFocus)==null||d.call(e,i),!i.defaultPrevented&&c.current&&i.preventDefault(),c.current=!1},onInteractOutside:i=>{var d;(d=e.onInteractOutside)==null||d.call(e,i),!i.defaultPrevented&&!s.modal&&(c.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});Qe.displayName=Je;var Po="ContextMenuGroup",To=l.forwardRef((e,t)=>{const{__scopeContextMenu:o,...n}=e,s=P(o);return a.jsx(rn,{...s,...n,ref:t})});To.displayName=Po;var Bo="ContextMenuLabel",Ze=l.forwardRef((e,t)=>{const{__scopeContextMenu:o,...n}=e,s=P(o);return a.jsx(an,{...s,...n,ref:t})});Ze.displayName=Bo;var Lo="ContextMenuItem",et=l.forwardRef((e,t)=>{const{__scopeContextMenu:o,...n}=e,s=P(o);return a.jsx(sn,{...s,...n,ref:t})});et.displayName=Lo;var Wo="ContextMenuCheckboxItem",tt=l.forwardRef((e,t)=>{const{__scopeContextMenu:o,...n}=e,s=P(o);return a.jsx(cn,{...s,...n,ref:t})});tt.displayName=Wo;var $o="ContextMenuRadioGroup",Go=l.forwardRef((e,t)=>{const{__scopeContextMenu:o,...n}=e,s=P(o);return a.jsx(ln,{...s,...n,ref:t})});Go.displayName=$o;var Ho="ContextMenuRadioItem",nt=l.forwardRef((e,t)=>{const{__scopeContextMenu:o,...n}=e,s=P(o);return a.jsx(dn,{...s,...n,ref:t})});nt.displayName=Ho;var Fo="ContextMenuItemIndicator",ot=l.forwardRef((e,t)=>{const{__scopeContextMenu:o,...n}=e,s=P(o);return a.jsx(un,{...s,...n,ref:t})});ot.displayName=Fo;var zo="ContextMenuSeparator",st=l.forwardRef((e,t)=>{const{__scopeContextMenu:o,...n}=e,s=P(o);return a.jsx(fn,{...s,...n,ref:t})});st.displayName=zo;var Uo="ContextMenuArrow",Ko=l.forwardRef((e,t)=>{const{__scopeContextMenu:o,...n}=e,s=P(o);return a.jsx(mn,{...s,...n,ref:t})});Ko.displayName=Uo;var Vo="ContextMenuSubTrigger",rt=l.forwardRef((e,t)=>{const{__scopeContextMenu:o,...n}=e,s=P(o);return a.jsx(hn,{...s,...n,ref:t})});rt.displayName=Vo;var Yo="ContextMenuSubContent",at=l.forwardRef((e,t)=>{const{__scopeContextMenu:o,...n}=e,s=P(o);return a.jsx(pn,{...s,...n,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});at.displayName=Yo;function q(e){return t=>t.pointerType!=="mouse"?e(t):void 0}var qo=Ve,Xo=qe,Jo=Xe,it=Qe,ct=Ze,lt=et,dt=tt,ut=nt,ft=ot,mt=st,ht=rt,pt=at;const Qo=qo,Zo=Xo,es=l.forwardRef(({className:e,inset:t,children:o,...n},s)=>a.jsxs(ht,{ref:s,className:j("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",t&&"pl-8",e),...n,children:[o,a.jsx(At,{className:"ml-auto h-4 w-4"})]}));es.displayName=ht.displayName;const ts=l.forwardRef(({className:e,...t},o)=>a.jsx(pt,{ref:o,className:j("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=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",e),...t}));ts.displayName=pt.displayName;const gt=l.forwardRef(({className:e,...t},o)=>a.jsx(Jo,{children:a.jsx(it,{ref:o,className:j("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=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",e),...t})}));gt.displayName=it.displayName;const xt=l.forwardRef(({className:e,inset:t,...o},n)=>a.jsx(lt,{ref:n,className:j("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t&&"pl-8",e),...o}));xt.displayName=lt.displayName;const ns=l.forwardRef(({className:e,children:t,checked:o,...n},s)=>a.jsxs(dt,{ref:s,className:j("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:o,...n,children:[a.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:a.jsx(ft,{children:a.jsx(Et,{className:"h-4 w-4"})})}),t]}));ns.displayName=dt.displayName;const os=l.forwardRef(({className:e,children:t,...o},n)=>a.jsxs(ut,{ref:n,className:j("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...o,children:[a.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:a.jsx(ft,{children:a.jsx(Rt,{className:"h-2 w-2 fill-current"})})}),t]}));os.displayName=ut.displayName;const ss=l.forwardRef(({className:e,inset:t,...o},n)=>a.jsx(ct,{ref:n,className:j("px-2 py-1.5 text-sm font-semibold text-foreground",t&&"pl-8",e),...o}));ss.displayName=ct.displayName;const rs=l.forwardRef(({className:e,...t},o)=>a.jsx(mt,{ref:o,className:j("-mx-1 my-1 h-px bg-border",e),...t}));rs.displayName=mt.displayName;const as=Ge(!1),is=Ge(0),he=()=>Fe(as),pe=()=>Fe(is),cs=e=>{let t=o=>1;return(e==="monthly"||e==="quarterly")&&(t=H),t},V=e=>{let t=Pe;return(e==="monthly"||e==="quarterly")&&(t=Tt),t},ge=e=>{let t=xn;return(e==="monthly"||e==="quarterly")&&(t=Pe),t},K=e=>{let t=Ot;return(e==="monthly"||e==="quarterly")&&(t=Bt),t},ls=e=>{let t=Pt;return(e==="monthly"||e==="quarterly")&&(t=Lt),t},vt=e=>{let t=$;return(e==="monthly"||e==="quarterly")&&(t=Wt),t},U=(e,t)=>{const o=new Date(e.timelineData[0].year,0,1),n=e.columnWidth*e.zoom/100,s=Math.floor(t/n),r=cs(e.range),i=vt(e.range)(o,s),d=r(i),u=Math.round(n/d),m=Math.floor(t%n/u);return $(i,m)},ds=e=>{const t=[];t.push({year:e.getFullYear()-1,quarters:new Array(4).fill(null)},{year:e.getFullYear(),quarters:new Array(4).fill(null)},{year:e.getFullYear()+1,quarters:new Array(4).fill(null)});for(const o of t)o.quarters=new Array(4).fill(null).map((n,s)=>({months:new Array(3).fill(null).map((r,c)=>{const i=s*3+c;return{days:H(new Date(o.year,i,1))}})}));return t},yt=(e,t,o)=>{const n=o.columnWidth*o.zoom/100,s=V(o.range),r=K(o.range),c=s(r(e),t);if(o.range==="daily")return n*c;const i=e.getDate(),d=H(e),u=n/d;return c*n+i*u},us=(e,t,o)=>{const n=o.columnWidth*o.zoom/100;if(!t)return n*2;const s=V(o.range);if(o.range==="daily"){const y=s(t,e);return n*(y||1)}const r=H(e),c=n/r;if(ie(e,t))return c;const i=ge(o.range),d=K(o.range);if(ie(d(e),d(t)))return i(t,e)*c;const u=r-Ce(e),m=Ce(t),h=s(d(t),d(e)),p=H(t),g=n/p;return(h-1)*n+u*c+m*g},bt=(e,t,o)=>{const n=K(t),s=ls(t),r=ge(t),c=n(e),i=s(e),d=r(i,c);return e.getDate()/d*o},B=l.createContext({zoom:100,range:"monthly",columnWidth:50,headerHeight:60,sidebarWidth:300,rowHeight:36,onAddItem:void 0,placeholderLength:2,timelineData:[],ref:null,scrollToFeature:void 0}),xe=({title:e,columns:t,renderHeaderItem:o})=>{const n=l.useId();return a.jsxs("div",{className:"sticky top-0 z-20 grid w-full shrink-0 bg-backdrop/90 backdrop-blur-sm",style:{height:"var(--gantt-header-height)"},children:[a.jsx("div",{children:a.jsx("div",{className:"sticky inline-flex whitespace-nowrap px-3 py-2 text-muted-foreground text-xs",style:{left:"var(--gantt-sidebar-width)"},children:a.jsx("p",{children:e})})}),a.jsx("div",{className:"grid w-full",style:{gridTemplateColumns:`repeat(${t}, var(--gantt-column-width))`},children:Array.from({length:t}).map((s,r)=>a.jsx("div",{className:"shrink-0 border-border/50 border-b py-1 text-center text-xs",children:o(r)},`${n}-${r}`))})]})},fs=()=>l.useContext(B).timelineData.map(t=>t.quarters.flatMap(o=>o.months).map((o,n)=>a.jsxs("div",{className:"relative flex flex-col",children:[a.jsx(xe,{columns:o.days,renderHeaderItem:s=>a.jsxs("div",{className:"flex items-center justify-center gap-1",children:[a.jsx("p",{children:G($(new Date(t.year,n,1),s),"d")}),a.jsx("p",{className:"text-muted-foreground",children:G($(new Date(t.year,n,1),s),"EEEEE")})]}),title:G(new Date(t.year,n,1),"MMMM yyyy")}),a.jsx(ve,{columns:o.days,isColumnSecondary:s=>[0,6].includes($(new Date(t.year,n,1),s).getDay())})]},`${t.year}-${n}`))),ms=()=>l.useContext(B).timelineData.map(t=>a.jsxs("div",{className:"relative flex flex-col",children:[a.jsx(xe,{columns:t.quarters.flatMap(o=>o.months).length,renderHeaderItem:o=>a.jsx("p",{children:G(new Date(t.year,o,1),"MMM")}),title:`${t.year}`}),a.jsx(ve,{columns:t.quarters.flatMap(o=>o.months).length})]},t.year)),hs=()=>l.useContext(B).timelineData.map(t=>t.quarters.map((o,n)=>a.jsxs("div",{className:"relative flex flex-col",children:[a.jsx(xe,{columns:o.months.length,renderHeaderItem:s=>a.jsx("p",{children:G(new Date(t.year,n*3+s,1),"MMM")}),title:`Q${n+1} ${t.year}`}),a.jsx(ve,{columns:o.months.length})]},`${t.year}-${n}`))),ps={daily:fs,monthly:ms,quarterly:hs},gs=({className:e})=>{const t=l.useContext(B),o=ps[t.range];return a.jsx("div",{className:j("-space-x-px flex h-full w-max divide-x divide-border/50",e),children:a.jsx(o,{})})},se=({feature:e,onSelectItem:t,className:o})=>{const n=l.useContext(B),s=e.endAt&&ie(e.startAt,e.endAt)?$(e.endAt,1):e.endAt,r=s?ye(e.startAt,s):`${ye(e.startAt,new Date)} so far`,c=d=>{var u;d.target===d.currentTarget&&((u=n.scrollToFeature)==null||u.call(n,e),t==null||t(e.id))},i=d=>{var u;d.key==="Enter"&&((u=n.scrollToFeature)==null||u.call(n,e),t==null||t(e.id))};return a.jsxs("div",{className:j("relative flex items-center gap-2.5 p-2.5 text-xs hover:bg-secondary",o),onClick:c,onKeyDown:i,role:"button",style:{height:"var(--gantt-row-height)"},tabIndex:0,children:[a.jsx("div",{className:"pointer-events-none h-2 w-2 shrink-0 rounded-full",style:{backgroundColor:e.status.color}}),a.jsx("p",{className:"pointer-events-none flex-1 truncate text-left font-medium",children:e.name}),a.jsx("p",{className:"pointer-events-none text-muted-foreground",children:r})]},e.id)},xs=()=>a.jsxs("div",{className:"sticky top-0 z-10 flex shrink-0 items-end justify-between gap-2.5 border-border/50 border-b bg-backdrop/90 p-2.5 font-medium text-muted-foreground text-xs backdrop-blur-sm",style:{height:"var(--gantt-header-height)"},children:[a.jsx("p",{className:"flex-1 truncate text-left",children:"Issues"}),a.jsx("p",{className:"shrink-0",children:"Duration"})]}),re=({children:e,name:t,className:o})=>a.jsxs("div",{className:o,children:[a.jsx("p",{className:"w-full truncate p-2.5 text-left font-medium text-muted-foreground text-xs",style:{height:"var(--gantt-row-height)"},children:t}),a.jsx("div",{className:"divide-y divide-border/50",children:e})]}),vs=({children:e,className:t})=>a.jsxs("div",{className:j("sticky left-0 z-30 h-max min-h-full overflow-clip border-border/50 border-r bg-white dark:bg-zinc-950 backdrop-blur-md",t),"data-roadmap-ui":"gantt-sidebar",children:[a.jsx(xs,{}),a.jsx("div",{className:"space-y-4",children:e})]}),ys=({top:e,className:t})=>{const[o]=pe(),n=l.useContext(B),[s,r]=fe(),c=()=>{var m,h,p;const i=(h=(m=n.ref)==null?void 0:m.current)==null?void 0:h.getBoundingClientRect(),d=s.x-((i==null?void 0:i.left)??0)+o-n.sidebarWidth,u=U(n,d);(p=n.onAddItem)==null||p.call(n,u)};return a.jsx("div",{className:j("absolute top-0 w-full px-0.5",t),ref:r,style:{marginTop:-n.rowHeight/2,transform:`translateY(${e}px)`},children:a.jsx("button",{className:"flex h-full w-full items-center justify-center rounded-md border border-dashed p-2",onClick:c,type:"button",children:a.jsx(Ee,{className:"pointer-events-none select-none text-muted-foreground",size:16})})})},bs=({index:e,isColumnSecondary:t})=>{var p;const o=l.useContext(B),[n]=he(),[s,r]=fe(),[c,i]=l.useState(!1),[d]=yn(),u=()=>i(!0),m=()=>i(!1),h=vn(s.y-(((p=r.current)==null?void 0:p.getBoundingClientRect().y)??0)-(d.y??0),10);return a.jsx("div",{className:j("group relative h-full overflow-hidden",t!=null&&t(e)?"bg-[#f59e0b]/5 dark:bg-[#f59e0b]/5":""),onMouseEnter:u,onMouseLeave:m,ref:r,children:!n&&c&&o.onAddItem?a.jsx(ys,{top:h}):null})},ve=({columns:e,isColumnSecondary:t})=>{const o=l.useId();return a.jsx("div",{className:"divide grid h-full w-full divide-x divide-border/50",style:{gridTemplateColumns:`repeat(${e}, var(--gantt-column-width))`},children:Array.from({length:e}).map((n,s)=>a.jsx(bs,{index:s,isColumnSecondary:t},`${o}-${s}`))})},Ne=({direction:e,featureId:t,date:o})=>{const[,n]=he(),{attributes:s,listeners:r,setNodeRef:c}=Re({id:`feature-drag-helper-${t}`}),i=!!s["aria-pressed"];return l.useEffect(()=>n(i),[i,n]),a.jsxs("div",{className:j("group -translate-y-1/2 !cursor-col-resize absolute top-1/2 z-[3] h-full w-6 rounded-md outline-none",e==="left"?"-left-2.5":"-right-2.5"),ref:c,...s,...r,children:[a.jsx("div",{className:j("-translate-y-1/2 absolute top-1/2 h-[80%] w-1 rounded-sm bg-muted-foreground opacity-0 transition-all",e==="left"?"left-2.5":"right-2.5",e==="left"?"group-hover:left-0":"group-hover:right-0",i&&(e==="left"?"left-0":"right-0"),"group-hover:opacity-100",i&&"opacity-100")}),o&&a.jsx("div",{className:j("-translate-x-1/2 absolute top-10 hidden whitespace-nowrap rounded-lg border border-border/50 bg-background/90 px-2 py-1 text-foreground text-xs backdrop-blur-lg group-hover:block",i&&"block"),children:G(o,"MMM dd, yyyy")})]})},ws=({id:e,children:t})=>{const[,o]=he(),{attributes:n,listeners:s,setNodeRef:r}=Re({id:e}),c=!!n["aria-pressed"];return l.useEffect(()=>o(c),[c,o]),a.jsx(Ue,{className:"h-full w-full rounded-md bg-background p-2 text-xs shadow-sm",children:a.jsx("div",{className:j("flex h-full w-full items-center justify-between gap-2 text-left",c&&"cursor-grabbing"),...n,...s,ref:r,children:t})})},De=({onMove:e,children:t,className:o,...n})=>{const[s]=pe(),r=l.useContext(B),c=l.useMemo(()=>{var D;return new Date(((D=r.timelineData.at(0))==null?void 0:D.year)??0,0,1)},[r.timelineData]),[i,d]=l.useState(n.startAt),[u,m]=l.useState(n.endAt),h=l.useMemo(()=>us(i,u,r),[i,u,r]),p=l.useMemo(()=>yt(i,c,r),[i,c,r]),g=l.useMemo(()=>vt(r.range),[r.range]),[y]=fe(),[M,N]=l.useState(0),[v,x]=l.useState(i),[S,A]=l.useState(u),_=Xt(Jt,{activationConstraint:{distance:10}}),f=l.useCallback(()=>{N(y.x),x(i),A(u)},[y.x,i,u]),C=l.useCallback(()=>{const D=U(r,y.x),O=U(r,M),w=r.range==="daily"?V(r.range)(D,O):ge(r.range)(D,O),k=$(v,w),E=S?$(S,w):null;d(k),m(E)},[r,y.x,M,v,S]),b=l.useCallback(()=>e==null?void 0:e(n.id,i,u),[e,n.id,i,u]),R=l.useCallback(()=>{var E,L;const D=(L=(E=r.ref)==null?void 0:E.current)==null?void 0:L.getBoundingClientRect(),O=y.x-((D==null?void 0:D.left)??0)+s-r.sidebarWidth,k=K(r.range)(U(r,O));d(k)},[r,y.x,s]),T=l.useCallback(()=>{var E,L;const D=(L=(E=r.ref)==null?void 0:E.current)==null?void 0:L.getBoundingClientRect(),O=y.x-((D==null?void 0:D.left)??0)+s-r.sidebarWidth,k=K(r.range)(U(r,O));m(k)},[r,y.x,s]);return a.jsx("div",{className:j("relative flex w-max min-w-full py-0.5",o),style:{height:"var(--gantt-row-height)"},children:a.jsxs("div",{className:"pointer-events-auto absolute top-0.5",style:{height:"calc(var(--gantt-row-height) - 4px)",width:Math.round(h),left:Math.round(p)},children:[e&&a.jsx(ee,{modifiers:[te],onDragEnd:b,onDragMove:R,sensors:[_],children:a.jsx(Ne,{date:i,direction:"left",featureId:n.id})}),a.jsx(ee,{modifiers:[te],onDragEnd:b,onDragMove:C,onDragStart:f,sensors:[_],children:a.jsx(ws,{id:n.id,children:t??a.jsx("p",{className:"flex-1 truncate text-xs",children:n.name})})}),e&&a.jsx(ee,{modifiers:[te],onDragEnd:b,onDragMove:T,sensors:[_],children:a.jsx(Ne,{date:u?Ae(u):g(i,1),direction:"right",featureId:n.id})})]})})},ae=({children:e,className:t})=>a.jsx("div",{className:t,style:{paddingTop:"var(--gantt-row-height)"},children:e}),Cs=({className:e,children:t})=>a.jsx("div",{className:j("absolute top-0 left-0 h-full w-max space-y-4",e),style:{marginTop:"var(--gantt-header-height)"},children:t}),wt=l.memo(({label:e,date:t,id:o,onRemove:n,className:s})=>{const r=l.useContext(B),c=l.useMemo(()=>V(r.range),[r.range]),i=l.useMemo(()=>{var h;return new Date(((h=r.timelineData.at(0))==null?void 0:h.year)??0,0,1)},[r.timelineData]),d=l.useMemo(()=>c(t,i),[c,t,i]),u=l.useMemo(()=>bt(t,r.range,r.columnWidth*r.zoom/100),[t,r.range,r.columnWidth,r.zoom]),m=l.useCallback(()=>n==null?void 0:n(o),[n,o]);return a.jsxs("div",{className:"pointer-events-none absolute top-0 left-0 z-20 flex h-full select-none flex-col items-center justify-center overflow-visible",style:{width:0,transform:`translateX(calc(var(--gantt-column-width) * ${d} + ${u}px))`},children:[a.jsxs(Qo,{children:[a.jsx(Zo,{asChild:!0,children:a.jsxs("div",{className:j("group pointer-events-auto sticky top-0 flex select-auto flex-col flex-nowrap items-center justify-center whitespace-nowrap rounded-b-md bg-card px-2 py-1 text-foreground text-xs",s),children:[e,a.jsx("span",{className:"max-h-[0] overflow-hidden opacity-80 transition-all group-hover:max-h-[2rem]",children:G(t,"MMM dd, yyyy")})]})}),a.jsx(gt,{children:n?a.jsxs(xt,{className:"flex items-center gap-2 text-destructive",onClick:m,children:[a.jsx(gn,{size:16}),"Remove marker"]}):null})]}),a.jsx("div",{className:j("h-full w-px bg-card",s)})]})});wt.displayName="GanttMarker";const Ms=({zoom:e=100,range:t="monthly",onAddItem:o,children:n,className:s})=>{const r=l.useRef(null),[c,i]=l.useState(ds(new Date)),[,d]=pe(),[u,m]=l.useState(0),h=60,p=36;let g=50;t==="monthly"?g=150:t==="quarterly"&&(g=100);const y=l.useMemo(()=>({"--gantt-zoom":`${e}`,"--gantt-column-width":`${e/100*g}px`,"--gantt-header-height":`${h}px`,"--gantt-row-height":`${p}px`,"--gantt-sidebar-width":`${u}px`}),[e,g,u]);l.useEffect(()=>{r.current&&(r.current.scrollLeft=r.current.scrollWidth/2-r.current.clientWidth/2,d(r.current.scrollLeft))},[d]),l.useEffect(()=>{const v=()=>{var _;const A=((_=r.current)==null?void 0:_.querySelector('[data-roadmap-ui="gantt-sidebar"]'))?300:0;m(A)};v();const x=new MutationObserver(v);return r.current&&x.observe(r.current,{childList:!0,subtree:!0}),()=>{x.disconnect()}},[]);const M=l.useCallback(go(()=>{var _,f;const v=r.current;if(!v)return;const{scrollLeft:x,scrollWidth:S,clientWidth:A}=v;if(d(x),x===0){const C=(_=c[0])==null?void 0:_.year;if(!C)return;const b=[...c];b.unshift({year:C-1,quarters:new Array(4).fill(null).map((R,T)=>({months:new Array(3).fill(null).map((D,O)=>{const w=T*3+O;return{days:H(new Date(C,w,1))}})}))}),i(b),v.scrollLeft=v.clientWidth,d(v.scrollLeft)}else if(x+A>=S){const C=(f=c.at(-1))==null?void 0:f.year;if(!C)return;const b=[...c];b.push({year:C+1,quarters:new Array(4).fill(null).map((R,T)=>({months:new Array(3).fill(null).map((D,O)=>{const w=T*3+O;return{days:H(new Date(C,w,1))}})}))}),i(b),v.scrollLeft=v.scrollWidth-v.clientWidth,d(v.scrollLeft)}},100),[]);l.useEffect(()=>{const v=r.current;return v&&v.addEventListener("scroll",M),()=>{v&&v.removeEventListener("scroll",M)}},[M]);const N=l.useCallback(v=>{const x=r.current;if(!x)return;const S=new Date(c[0].year,0,1),A=yt(v.startAt,S,{zoom:e,range:t,columnWidth:g}),_=Math.max(0,A);x.scrollTo({left:_,behavior:"smooth"})},[c,e,t,g,u,o]);return a.jsx(B.Provider,{value:{zoom:e,range:t,headerHeight:h,columnWidth:g,sidebarWidth:u,rowHeight:p,onAddItem:o,timelineData:c,placeholderLength:2,ref:r,scrollToFeature:N},children:a.jsx("div",{className:j("gantt relative isolate grid h-full w-full flex-none select-none overflow-auto rounded-sm bg-secondary",t,s),ref:r,style:{...y,gridTemplateColumns:"var(--gantt-sidebar-width) 1fr"},children:n})})},js=({children:e,className:t})=>a.jsx("div",{className:j("relative flex h-full w-max flex-none overflow-clip",t),children:e}),Ss=({className:e})=>{const t="Today",o=l.useMemo(()=>new Date,[]),n=l.useContext(B),s=l.useMemo(()=>V(n.range),[n.range]),r=l.useMemo(()=>{var d;return new Date(((d=n.timelineData.at(0))==null?void 0:d.year)??0,0,1)},[n.timelineData]),c=l.useMemo(()=>s(o,r),[s,o,r]),i=l.useMemo(()=>bt(o,n.range,n.columnWidth*n.zoom/100),[o,n.range,n.columnWidth,n.zoom]);return a.jsxs("div",{className:"pointer-events-none absolute top-0 left-0 z-20 flex h-full select-none flex-col items-center justify-center overflow-visible",style:{width:0,transform:`translateX(calc(var(--gantt-column-width) * ${c} + ${i}px))`},children:[a.jsxs("div",{className:j("group pointer-events-auto sticky top-0 flex select-auto flex-col flex-nowrap items-center justify-center whitespace-nowrap rounded-b-md bg-card px-2 py-1 text-foreground text-xs",e),children:[t,a.jsx("span",{className:"max-h-[0] overflow-hidden opacity-80 transition-all group-hover:max-h-[2rem]",children:G(o,"MMM dd, yyyy")})]}),a.jsx("div",{className:j("h-full w-px bg-card",e)})]})};function X(e,t){const o=e.start_date?new Date(e.start_date):new Date(e.due_date),n=e.due_date?$(new Date(e.due_date),1):$(o,1);return{id:e.id,name:`${e.identifier} ${e.title}`,startAt:o,endAt:n,status:{id:e.status,name:e.status,color:t}}}function Es(){const{projectKey:e}=St(),t=Ct(),[o,n]=l.useState("monthly"),[s,r]=l.useState(null),[c,i]=l.useState(!1),d=l.useRef(null);l.useEffect(()=>{const f=requestAnimationFrame(()=>{var w;const C=(w=d.current)==null?void 0:w.querySelector(".gantt");if(!C)return;const b=new Date,R=b.getFullYear()-1,T=300;let D;if(o==="daily"){const k=new Date(R,0,1);D=Math.floor((b.getTime()-k.getTime())/864e5)*50}else{const k=o==="monthly"?150:100,E=(b.getFullYear()-R)*12+b.getMonth(),L=new Date(b.getFullYear(),b.getMonth()+1,0).getDate();D=E*k+(b.getDate()-1)/L*k}const O=C.clientWidth-T;C.scrollLeft=Math.max(0,D-O/2)});return()=>cancelAnimationFrame(f)},[o]);const{data:u}=$t(e??""),m=(u==null?void 0:u.id)??"",{data:h=[]}=Gt(m||void 0),{data:p=[]}=Ht(m||void 0),{data:g=[]}=Ft(m||void 0),y=Mt({mutationFn:({id:f,start_date:C,due_date:b})=>qt.put(`/admin/issues/${f}`,{start_date:C,due_date:b}),onSuccess:()=>{t.invalidateQueries({queryKey:Yt.byProject(m)})},onError:()=>Vt.error("Failed to update issue dates")}),M=Object.fromEntries(p.map(f=>[f.key,f.color])),N=h.filter(f=>f.due_date),v=h.filter(f=>!f.due_date),x={},S=[];for(const f of N)f.sprint_id?(x[f.sprint_id]||(x[f.sprint_id]=[]),x[f.sprint_id].push(f)):S.push(f);const A=(f,C,b)=>{y.mutate({id:f,start_date:G(C,"yyyy-MM-dd"),due_date:b?G(Ae(b),"yyyy-MM-dd"):null})},_=f=>{const C=h.find(b=>b.id===f)??null;r(C)};return e?a.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[a.jsx(be,{zone:"project.timeline.before",props:{projectId:m}}),a.jsxs("div",{className:"flex items-center justify-between px-6 py-3 border-b border-border shrink-0 bg-white dark:bg-zinc-950",children:[a.jsx("div",{className:"flex items-center gap-1 bg-muted rounded-md p-0.5",children:["daily","monthly","quarterly"].map(f=>a.jsx("button",{onClick:()=>n(f),className:`px-3 py-1 rounded text-xs font-medium transition-colors capitalize ${o===f?"bg-white dark:bg-zinc-900 text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:f},f))}),a.jsxs(zt,{size:"sm",variant:"outline",className:"h-7 text-xs gap-1",onClick:()=>i(!0),children:[a.jsx(Ee,{className:"h-3.5 w-3.5"}),"Issue"]})]}),a.jsx("div",{ref:d,className:"flex-1 min-h-0 overflow-hidden",children:a.jsxs(Ms,{range:o,zoom:100,className:"h-full bg-white dark:bg-zinc-950",children:[a.jsxs(vs,{children:[g.map(f=>{const C=x[f.id]??[];return a.jsx(re,{name:f.name,children:C.map(b=>a.jsx(se,{feature:X(b,M[b.status]??"#94a3b8"),onSelectItem:_},b.id))},f.id)}),S.length>0&&a.jsx(re,{name:"No Sprint",children:S.map(f=>a.jsx(se,{feature:X(f,M[f.status]??"#94a3b8"),onSelectItem:_},f.id))}),v.length>0&&a.jsx(re,{name:"Unscheduled",children:v.map(f=>a.jsx(se,{feature:{id:f.id,name:`${f.identifier} ${f.title}`,startAt:new Date,endAt:new Date,status:{id:f.status,name:f.status,color:M[f.status]??"#94a3b8"}},onSelectItem:_},f.id))})]}),a.jsxs(js,{children:[a.jsx(gs,{}),a.jsxs(Cs,{children:[g.map(f=>{const C=x[f.id]??[];return a.jsx(ae,{children:C.map(b=>a.jsx("div",{className:"flex",children:a.jsx(De,{onMove:A,...X(b,M[b.status]??"#94a3b8")})},b.id))},f.id)}),S.length>0&&a.jsx(ae,{children:S.map(f=>a.jsx("div",{className:"flex",children:a.jsx(De,{onMove:A,...X(f,M[f.status]??"#94a3b8")})},f.id))}),v.length>0&&a.jsx(ae,{children:v.map(f=>a.jsx("div",{style:{height:"var(--gantt-row-height)"}},f.id))})]}),g.filter(f=>f.end_date).map(f=>a.jsx(wt,{id:f.id,date:new Date(f.end_date),label:`${f.name} end`},f.id)),a.jsx(Ss,{})]})]})}),a.jsx(be,{zone:"project.timeline.after",props:{projectId:m}}),a.jsx(Ut,{issue:s,projectId:m,open:!!s,onClose:()=>r(null)}),a.jsx(Kt,{open:c,onClose:()=>i(!1),projectId:m})]}):null}export{Es as ProjectTimelinePage};
@@ -0,0 +1 @@
1
+ *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 60 5% 96%;--foreground: 240 10% 3.9%;--card: 0 0% 100%;--card-foreground: 240 10% 3.9%;--popover: 0 0% 100%;--popover-foreground: 240 10% 3.9%;--primary: 240 10% 3.9%;--primary-foreground: 0 0% 98%;--secondary: 240 4.8% 95.9%;--secondary-foreground: 240 5.9% 10%;--muted: 240 4.8% 95.9%;--muted-foreground: 240 3.8% 46.1%;--accent: 240 4.8% 95.9%;--accent-foreground: 240 5.9% 10%;--destructive: 0 72% 51%;--destructive-foreground: 0 0% 98%;--border: 240 5.9% 90%;--input: 240 5.9% 90%;--ring: 240 5.9% 10%;--radius: .5rem;--indigo: 239 84% 67%;--indigo-foreground: 0 0% 100%;--indigo-subtle: 224 76% 97%;--sidebar: 0 0% 100%;--sidebar-foreground: 240 10% 3.9%;--sidebar-accent: 240 4.8% 95.9%;--sidebar-accent-foreground: 240 5.9% 10%;--sidebar-border: 240 5.9% 90%;--sidebar-ring: 239 84% 67%}.dark{--background: 240 6% 8%;--foreground: 0 0% 98%;--card: 240 6% 10%;--card-foreground: 0 0% 98%;--popover: 240 6% 10%;--popover-foreground: 0 0% 98%;--primary: 0 0% 98%;--primary-foreground: 240 5.9% 10%;--secondary: 240 3.7% 15.9%;--secondary-foreground: 0 0% 98%;--muted: 240 3.7% 15.9%;--muted-foreground: 240 5% 64.9%;--accent: 240 3.7% 15.9%;--accent-foreground: 0 0% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 0 0% 98%;--border: 240 3.7% 15.9%;--input: 240 3.7% 15.9%;--ring: 240 4.9% 83.9%;--indigo: 239 84% 67%;--indigo-foreground: 0 0% 100%;--indigo-subtle: 224 30% 13%;--sidebar: 240 6% 10%;--sidebar-foreground: 0 0% 98%;--sidebar-accent: 240 3.7% 15.9%;--sidebar-accent-foreground: 0 0% 98%;--sidebar-border: 240 3.7% 15.9%;--sidebar-ring: 239 84% 67%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));font-family:Inter,system-ui,sans-serif;font-size:.875rem;line-height:1.25rem;color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{border-radius:9999px;background-color:hsl(var(--border))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-left-2\.5{left:-.625rem}.-right-0\.5{right:-.125rem}.-right-2\.5{right:-.625rem}.-top-0\.5{top:-.125rem}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.left-0{left:0}.left-1{left:.25rem}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-\[11px\]{left:11px}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-2\.5{right:.625rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-0\.5{top:.125rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-10{top:2.5rem}.top-2{top:.5rem}.top-3\.5{top:.875rem}.top-4{top:1rem}.top-6{top:1.5rem}.top-\[50\%\]{top:50%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[3\]{z-index:3}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.-mb-px{margin-bottom:-1px}.-ml-1{margin-left:-.25rem}.-ml-2{margin-left:-.5rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.size-3\.5{width:.875rem;height:.875rem}.size-4{width:1rem;height:1rem}.size-6{width:1.5rem;height:1.5rem}.size-7{width:1.75rem;height:1.75rem}.size-8{width:2rem;height:2rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[26px\]{height:26px}.h-\[280px\]{height:280px}.h-\[57px\]{height:57px}.h-\[80\%\]{height:80%}.h-\[82px\]{height:82px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-full{height:100%}.h-max{height:-moz-max-content;height:max-content}.h-px{height:1px}.h-svh{height:100svh}.max-h-48{max-height:12rem}.max-h-96{max-height:24rem}.max-h-\[0\]{max-height:0}.max-h-\[320px\]{max-height:320px}.max-h-\[75vh\]{max-height:75vh}.max-h-\[85vh\]{max-height:85vh}.min-h-0{min-height:0px}.min-h-\[120px\]{min-height:120px}.min-h-\[160px\]{min-height:160px}.min-h-\[200px\]{min-height:200px}.min-h-\[280px\]{min-height:280px}.min-h-\[28px\]{min-height:28px}.min-h-\[320px\]{min-height:320px}.min-h-\[68px\]{min-height:68px}.min-h-\[80px\]{min-height:80px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/3{width:33.333333%}.w-1\/4{width:25%}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-2\/3{width:66.666667%}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[130px\]{width:130px}.w-\[140px\]{width:140px}.w-\[200px\]{width:200px}.w-\[26px\]{width:26px}.w-\[var\(--sidebar-width\)\]{width:var(--sidebar-width)}.w-auto{width:auto}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-5{min-width:1.25rem}.min-w-56{min-width:14rem}.min-w-\[18px\]{min-width:18px}.min-w-\[260px\]{min-width:260px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-\[180px\]{max-width:180px}.max-w-\[200px\]{max-width:200px}.max-w-\[240px\]{max-width:240px}.max-w-\[280px\]{max-width:280px}.max-w-\[360px\]{max-width:360px}.max-w-\[380px\]{max-width:380px}.max-w-\[560px\]{max-width:560px}.max-w-\[var\(--skeleton-width\)\]{max-width:var(--skeleton-width)}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-none{flex:none}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-px{--tw-translate-x: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-px{--tw-translate-x: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-0{--tw-rotate: 0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-0{--tw-scale-x: 0;--tw-scale-y: 0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.\!cursor-col-resize{cursor:col-resize!important}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-auto{-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.resize-none{resize:none}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[180px_1fr\]{grid-template-columns:180px 1fr}.grid-cols-\[1fr_256px\]{grid-template-columns:1fr 256px}.grid-cols-\[20px_130px_1fr_130px_88px\]{grid-template-columns:20px 130px 1fr 130px 88px}.grid-cols-\[2fr_1fr_1fr_1fr_40px\]{grid-template-columns:2fr 1fr 1fr 1fr 40px}.grid-cols-\[70px_1fr_150px_120px_130px_140px_130px_32px\]{grid-template-columns:70px 1fr 150px 120px 130px 140px 130px 32px}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.-space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(-.25rem * var(--tw-space-x-reverse));margin-left:calc(-.25rem * calc(1 - var(--tw-space-x-reverse)))}.-space-x-1\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(-.375rem * var(--tw-space-x-reverse));margin-left:calc(-.375rem * calc(1 - var(--tw-space-x-reverse)))}.-space-x-px>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(-1px * var(--tw-space-x-reverse));margin-left:calc(-1px * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse: 0;border-right-width:calc(1px * var(--tw-divide-x-reverse));border-left-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-border>:not([hidden])~:not([hidden]){border-color:hsl(var(--border))}.divide-border\/40>:not([hidden])~:not([hidden]){border-color:hsl(var(--border) / .4)}.divide-border\/50>:not([hidden])~:not([hidden]){border-color:hsl(var(--border) / .5)}.divide-border\/60>:not([hidden])~:not([hidden]){border-color:hsl(var(--border) / .6)}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-clip{overflow:clip}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.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:.75rem}.rounded-b-md{border-bottom-right-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-background{border-color:hsl(var(--background))}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-border\/70{border-color:hsl(var(--border) / .7)}.border-destructive{border-color:hsl(var(--destructive))}.border-emerald-500\/40{border-color:#10b98166}.border-foreground{border-color:hsl(var(--foreground))}.border-indigo-400{--tw-border-opacity: 1;border-color:rgb(129 140 248 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-primary\/60{border-color:hsl(var(--primary) / .6)}.border-sidebar-border{border-color:hsl(var(--sidebar-border))}.border-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[\#eff6ff\]{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-\[\#f59e0b\]\/5{background-color:#f59e0b0d}.bg-\[hsl\(60_5\%_96\%\)\]{--tw-bg-opacity: 1;background-color:hsl(60 5% 96% / var(--tw-bg-opacity, 1))}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-background\/20{background-color:hsl(var(--background) / .2)}.bg-background\/60{background-color:hsl(var(--background) / .6)}.bg-background\/90{background-color:hsl(var(--background) / .9)}.bg-black\/40{background-color:#0006}.bg-black\/5{background-color:#0000000d}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-foreground\/5{background-color:hsl(var(--foreground) / .05)}.bg-indigo{background-color:hsl(var(--indigo))}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-indigo-50{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.bg-indigo-500{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.bg-indigo\/10{background-color:hsl(var(--indigo) / .1)}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground{background-color:hsl(var(--muted-foreground))}.bg-muted\/10{background-color:hsl(var(--muted) / .1)}.bg-muted\/20{background-color:hsl(var(--muted) / .2)}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/40{background-color:hsl(var(--muted) / .4)}.bg-muted\/5{background-color:hsl(var(--muted) / .05)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sidebar{background-color:hsl(var(--sidebar))}.bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-zinc-100{--tw-bg-opacity: 1;background-color:rgb(244 244 245 / var(--tw-bg-opacity, 1))}.bg-zinc-400{--tw-bg-opacity: 1;background-color:rgb(161 161 170 / var(--tw-bg-opacity, 1))}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-14{padding-left:3.5rem;padding-right:3.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pl-1{padding-left:.25rem}.pl-1\.5{padding-left:.375rem}.pl-14{padding-left:3.5rem}.pl-2{padding-left:.5rem}.pl-8{padding-left:2rem}.pr-1{padding-right:.25rem}.pr-1\.5{padding-right:.375rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:JetBrains Mono,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.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)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-normal{letter-spacing:0em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-\[\#6b7280\]{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-border{color:hsl(var(--border))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-indigo{color:hsl(var(--indigo))}.text-indigo-500{--tw-text-opacity: 1;color:rgb(99 102 241 / var(--tw-text-opacity, 1))}.text-indigo-700{--tw-text-opacity: 1;color:rgb(67 56 202 / var(--tw-text-opacity, 1))}.text-indigo-foreground{color:hsl(var(--indigo-foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/40{color:hsl(var(--muted-foreground) / .4)}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-foreground\/40{color:hsl(var(--sidebar-foreground) / .4)}.text-sidebar-foreground\/50{color:hsl(var(--sidebar-foreground) / .5)}.text-sidebar-foreground\/60{color:hsl(var(--sidebar-foreground) / .6)}.text-sidebar-foreground\/70{color:hsl(var(--sidebar-foreground) / .7)}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-zinc-300{--tw-text-opacity: 1;color:rgb(212 212 216 / var(--tw-text-opacity, 1))}.text-zinc-400{--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.text-zinc-500{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.text-zinc-600{--tw-text-opacity: 1;color:rgb(82 82 91 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.accent-foreground{accent-color:hsl(var(--foreground))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-indigo\/30{--tw-ring-color: hsl(var(--indigo) / .3)}.ring-sidebar-ring{--tw-ring-color: hsl(var(--sidebar-ring))}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-lg{--tw-backdrop-blur: blur(16px);-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)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-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)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-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,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\]{transition-property:width,height;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}.meridian-editor{cursor:text;font-size:.875rem;line-height:1.25rem;line-height:1.625;color:hsl(var(--foreground));outline:2px solid transparent;outline-offset:2px}.meridian-editor>*+*{margin-top:.5rem}.meridian-editor p{line-height:1.625}.meridian-editor h1{font-size:1.25rem;line-height:1.75rem;font-weight:600;letter-spacing:-.025em;color:hsl(var(--foreground))}.meridian-editor h2{font-size:1.125rem;line-height:1.75rem;font-weight:600;letter-spacing:-.025em;color:hsl(var(--foreground))}.meridian-editor h3{font-size:1rem;line-height:1.5rem;font-weight:600;color:hsl(var(--foreground))}.meridian-editor ul{list-style-type:disc}.meridian-editor ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.meridian-editor ul{padding-left:1.25rem}.meridian-editor ol{list-style-type:decimal}.meridian-editor ol>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.meridian-editor ol{padding-left:1.25rem}.meridian-editor li{color:hsl(var(--foreground))}.meridian-editor code{border-radius:.25rem;background-color:hsl(var(--muted));padding:.125rem .375rem;font-family:JetBrains Mono,monospace;font-size:.75rem;line-height:1rem;color:hsl(var(--foreground))}.meridian-editor pre{overflow-x:auto;border-radius:var(--radius);background-color:hsl(var(--muted));padding:1rem;font-family:JetBrains Mono,monospace;font-size:.75rem;line-height:1rem;color:hsl(var(--foreground))}.meridian-editor pre code{background-color:transparent;padding:0;color:inherit}.meridian-editor blockquote{border-left-width:3px;--tw-border-opacity: 1;border-color:rgb(165 180 252 / var(--tw-border-opacity, 1));padding-left:1rem;font-style:italic;color:hsl(var(--muted-foreground))}.meridian-editor blockquote:is(.dark *){--tw-border-opacity: 1;border-color:rgb(67 56 202 / var(--tw-border-opacity, 1))}.meridian-editor hr{border-color:hsl(var(--border))}.meridian-editor strong{font-weight:600}.meridian-editor u{text-decoration-line:underline;text-underline-offset:2px}.meridian-editor s{color:hsl(var(--muted-foreground));text-decoration-line:line-through}.meridian-editor a{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1));text-decoration-line:underline;text-underline-offset:2px}.meridian-editor a:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.meridian-editor ul[data-type=taskList]{list-style-type:none}.meridian-editor ul[data-type=taskList]>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.meridian-editor ul[data-type=taskList]{padding-left:0}.meridian-editor ul[data-type=taskList] li{display:flex;align-items:flex-start;gap:.5rem}.meridian-editor ul[data-type=taskList] li>label{margin-top:3px;display:flex;flex-shrink:0;align-items:center}.meridian-editor ul[data-type=taskList] li>label input[type=checkbox]{height:.875rem;width:.875rem;cursor:pointer;border-radius:calc(var(--radius) - 4px);accent-color:#6366f1}.meridian-editor ul[data-type=taskList] li>div{min-width:0px;flex:1 1 0%}.meridian-editor ul[data-type=taskList] li[data-checked=true]>div{color:hsl(var(--muted-foreground));text-decoration-line:line-through}.meridian-editor .is-editor-empty:first-child:before{color:hsl(var(--muted-foreground) / .5);content:attr(data-placeholder);float:left;height:0;pointer-events:none}.meridian-editor .ProseMirror-selectednode{border-radius:.25rem;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: hsl(var(--ring))}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-\[\#9ca3af\]::-moz-placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.placeholder\:text-\[\#9ca3af\]::placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground\/40::-moz-placeholder{color:hsl(var(--muted-foreground) / .4)}.placeholder\:text-muted-foreground\/40::placeholder{color:hsl(var(--muted-foreground) / .4)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);top:-.5rem;right:-.5rem;bottom:-.5rem;left:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.last\:border-0:last-child{border-width:0px}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}.focus-within\:ring-1:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-within\:ring-ring:focus-within{--tw-ring-color: hsl(var(--ring))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-foreground\/30:hover{border-color:hsl(var(--foreground) / .3)}.hover\:border-foreground\/40:hover{border-color:hsl(var(--foreground) / .4)}.hover\:border-muted-foreground\/40:hover{border-color:hsl(var(--muted-foreground) / .4)}.hover\:border-zinc-300:hover{--tw-border-opacity: 1;border-color:rgb(212 212 216 / var(--tw-border-opacity, 1))}.hover\:bg-\[\#f9fafb\]:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-border:hover{background-color:hsl(var(--border))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-emerald-700:hover{--tw-bg-opacity: 1;background-color:rgb(4 120 87 / var(--tw-bg-opacity, 1))}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/20:hover{background-color:hsl(var(--muted) / .2)}.hover\:bg-muted\/30:hover{background-color:hsl(var(--muted) / .3)}.hover\:bg-muted\/40:hover{background-color:hsl(var(--muted) / .4)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/10:hover{background-color:hsl(var(--primary) / .1)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-foreground\/70:hover{color:hsl(var(--foreground) / .7)}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:text-destructive:focus{color:hsl(var(--destructive))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.active\:bg-sidebar-accent:active{background-color:hsl(var(--sidebar-accent))}.active\:text-sidebar-accent-foreground:active{color:hsl(var(--sidebar-accent-foreground))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group:hover .group-hover\:left-0{left:0}.group:hover .group-hover\:right-0{right:0}.group:hover .group-hover\:block{display:block}.group:hover .group-hover\:max-h-\[2rem\]{max-height:2rem}.group:hover .group-hover\:text-foreground{color:hsl(var(--foreground))}.group\/menu-item:hover .group-hover\/menu-item\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.has-\[\[data-variant\=inset\]\]\:bg-sidebar:has([data-variant=inset]){background-color:hsl(var(--sidebar))}.group\/menu-item:has([data-sidebar=menu-action]) .group-has-\[\[data-sidebar\=menu-action\]\]\/menu-item\:pr-8{padding-right:2rem}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.aria-selected\:opacity-100[aria-selected=true]{opacity:1}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[orientation\=vertical\]\:h-4[data-orientation=vertical]{height:1rem}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=open\]\:bg-sidebar-accent[data-state=open]{background-color:hsl(var(--sidebar-accent))}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[state\=open\]\:text-sidebar-accent-foreground[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[state\=closed\]\:duration-200[data-state=closed]{transition-duration:.2s}.data-\[state\=open\]\:duration-300[data-state=open]{transition-duration:.3s}.data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{left:calc(var(--sidebar-width) * -1)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{right:calc(var(--sidebar-width) * -1)}.group[data-side=left] .group-data-\[side\=left\]\:-right-4{right:-1rem}.group[data-side=right] .group-data-\[side\=right\]\:left-0{left:0}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden{display:none}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!size-8{width:2rem!important;height:2rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+1rem\)\]{width:calc(var(--sidebar-width-icon) + 1rem)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+1rem\+2px\)\]{width:calc(var(--sidebar-width-icon) + 1rem + 2px)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[var\(--sidebar-width-icon\)\]{width:var(--sidebar-width-icon)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:w-0{width:0px}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-side=right] .group-data-\[side\=right\]\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:overflow-hidden{overflow:hidden}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:var(--radius)}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border{border-width:1px}.group[data-side=left] .group-data-\[side\=left\]\:border-r{border-right-width:1px}.group[data-side=right] .group-data-\[side\=right\]\:border-l{border-left-width:1px}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border-sidebar-border{border-color:hsl(var(--sidebar-border))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-2{padding:.5rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group[data-variant=floating] .group-data-\[variant\=floating\]\:shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.group[data-collapsible=offcanvas] .hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar:hover{background-color:hsl(var(--sidebar))}.peer\/menu-button[data-size=default]~.peer-data-\[size\=default\]\/menu-button\:top-1\.5{top:.375rem}.peer\/menu-button[data-size=lg]~.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-button[data-size=sm]~.peer-data-\[size\=sm\]\/menu-button\:top-1{top:.25rem}.peer\/menu-button[data-active=true]~.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.dark\:-rotate-90:is(.dark *){--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:rotate-0:is(.dark *){--tw-rotate: 0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:scale-0:is(.dark *){--tw-scale-x: 0;--tw-scale-y: 0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:scale-100:is(.dark *){--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:bg-\[\#f59e0b\]\/5:is(.dark *){background-color:#f59e0b0d}.dark\:bg-amber-950\/40:is(.dark *){background-color:#451a0366}.dark\:bg-background:is(.dark *){background-color:hsl(var(--background))}.dark\:bg-black\/30:is(.dark *){background-color:#0000004d}.dark\:bg-blue-900\/30:is(.dark *){background-color:#1e3a8a4d}.dark\:bg-blue-950\/40:is(.dark *){background-color:#17255466}.dark\:bg-card:is(.dark *){background-color:hsl(var(--card))}.dark\:bg-emerald-900\/30:is(.dark *){background-color:#064e3b4d}.dark\:bg-emerald-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(2 44 34 / var(--tw-bg-opacity, 1))}.dark\:bg-emerald-950\/30:is(.dark *){background-color:#022c224d}.dark\:bg-emerald-950\/40:is(.dark *){background-color:#022c2266}.dark\:bg-indigo-900\/30:is(.dark *){background-color:#312e814d}.dark\:bg-indigo-900\/50:is(.dark *){background-color:#312e8180}.dark\:bg-indigo-950\/20:is(.dark *){background-color:#1e1b4b33}.dark\:bg-indigo-950\/40:is(.dark *){background-color:#1e1b4b66}.dark\:bg-zinc-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity, 1))}.dark\:bg-zinc-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity, 1))}.dark\:bg-zinc-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(9 9 11 / var(--tw-bg-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.dark\:text-indigo-300:is(.dark *){--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}.dark\:text-indigo-400:is(.dark *){--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.dark\:text-zinc-400:is(.dark *){--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.dark\:hover\:border-zinc-600:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(82 82 91 / var(--tw-border-opacity, 1))}.dark\:hover\:bg-muted\/30:hover:is(.dark *){background-color:hsl(var(--muted) / .3)}@media (min-width: 640px){.sm\:mt-0{margin-top:0}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:inline-flex{display:inline-flex}.sm\:w-56{width:14rem}.sm\:w-auto{width:auto}.sm\:max-w-\[480px\]{max-width:480px}.sm\:max-w-\[520px\]{max-width:520px}.sm\:max-w-\[580px\]{max-width:580px}.sm\:max-w-md{max-width:28rem}.sm\:max-w-sm{max-width:24rem}.sm\:max-w-xl{max-width:36rem}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-center{justify-content:center}.sm\:justify-between{justify-content:space-between}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:text-left{text-align:left}}@media (min-width: 768px){.md\:block{display:block}.md\:flex{display:flex}.md\:opacity-0{opacity:0}.md\:after\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ml-0{margin-left:0}.peer[data-variant=inset][data-state=collapsed]~.md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2{margin-left:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:.75rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media (min-width: 1024px){.lg\:gap-2{gap:.5rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 1280px){.xl\:block{display:block}}.\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]){background-color:hsl(var(--accent))}.\[\&\:has\(\[aria-selected\]\.day-outside\)\]\:bg-accent\/50:has([aria-selected].day-outside){background-color:hsl(var(--accent) / .5)}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>button\]\:bg-accent>button{background-color:hsl(var(--accent))}.\[\&\>button\]\:bg-primary>button{background-color:hsl(var(--primary))}.\[\&\>button\]\:text-accent-foreground>button{color:hsl(var(--accent-foreground))}.\[\&\>button\]\:text-muted-foreground>button{color:hsl(var(--muted-foreground))}.\[\&\>button\]\:text-primary-foreground>button{color:hsl(var(--primary-foreground))}.\[\&\>button\]\:hover\:bg-primary:hover>button{background-color:hsl(var(--primary))}.\[\&\>button\]\:hover\:text-primary-foreground:hover>button{color:hsl(var(--primary-foreground))}.\[\&\>button\]\:focus\:bg-primary:focus>button{background-color:hsl(var(--primary))}.\[\&\>button\]\:focus\:text-primary-foreground:focus>button{color:hsl(var(--primary-foreground))}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:hsl(var(--sidebar-accent-foreground))}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:-.5rem}[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:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}