Jasmine Wong commited on
Commit ·
dac7a24
1
Parent(s): 7dadf75
pre-built frontend
Browse files- Dockerfile +3 -14
- dist/client/.assetsignore +2 -0
- dist/client/assets/activity-DUyzKHVj.js +1 -0
- dist/client/assets/arrow-right-CwJHC0j6.js +1 -0
- dist/client/assets/button-BAzW2TLJ.js +1 -0
- dist/client/assets/car-CrRh3e9N.js +1 -0
- dist/client/assets/client-ioni_H2j.js +0 -0
- dist/client/assets/cpu-VePeYMw4.js +1 -0
- dist/client/assets/createLucideIcon-CxpWYIt5.js +1 -0
- dist/client/assets/createServerFn-rAZ5w09o.js +1 -0
- dist/client/assets/dashboard-CyqrXyxO.js +1 -0
- dist/client/assets/dashboard.branch-debug-B4nG6S3W.js +87 -0
- dist/client/assets/dashboard.coaching-DLmSk2kf.js +1 -0
- dist/client/assets/dashboard.compliance-wkmcyW8M.js +1 -0
- dist/client/assets/dashboard.forensic-Br585dp5.js +9 -0
- dist/client/assets/dashboard.forensic-Dzs1zTvd.js +1 -0
- dist/client/assets/dashboard.index-BduboK1J.js +6 -0
- dist/client/assets/dashboard.reports-C1e-th7r.js +1 -0
- dist/client/assets/download-DQLIuwN2.js +1 -0
- dist/client/assets/git-branch-DyRL9CvM.js +1 -0
- dist/client/assets/graduation-cap-6slvDJ0t.js +1 -0
- dist/client/assets/index-Bu5pclA7.js +1 -0
- dist/client/assets/index-CfFa2yOe.js +0 -0
- dist/client/assets/input-WOEoisk1.js +1 -0
- dist/client/assets/radar-CKHMnejp.js +1 -0
- dist/client/assets/scroll-area-DblZQRqr.js +45 -0
- dist/client/assets/severity-badge-ZTZFlOxb.js +1 -0
- dist/client/assets/shield-BsNfmvT5.js +1 -0
- dist/client/assets/styles-ze8PoXHv.css +1 -0
- dist/client/assets/terminal-CBmIRH_y.js +1 -0
- dist/client/assets/triangle-alert-DXh3iSRC.js +1 -0
- dist/client/assets/tslib.es6-eMSY344_.js +1 -0
- dist/client/assets/utils-BQHNewu7.js +1 -0
- dist/client/branchdebug-vscode-extension.zip +0 -0
Dockerfile
CHANGED
|
@@ -1,22 +1,11 @@
|
|
| 1 |
FROM node:20-slim
|
| 2 |
|
| 3 |
-
RUN npm install -g
|
| 4 |
|
| 5 |
WORKDIR /app
|
| 6 |
|
| 7 |
-
COPY
|
| 8 |
-
RUN bun install
|
| 9 |
-
|
| 10 |
-
COPY . .
|
| 11 |
-
|
| 12 |
-
ENV AI_BASE_URL=http://165.245.137.74:8006
|
| 13 |
-
ENV AI_API_KEY=dummy
|
| 14 |
-
ENV AI_MODEL=qwen3
|
| 15 |
-
|
| 16 |
-
RUN bun run build
|
| 17 |
-
|
| 18 |
-
WORKDIR /app/dist/client
|
| 19 |
|
| 20 |
EXPOSE 7860
|
| 21 |
|
| 22 |
-
CMD ["serve", "-l", "7860", "--single", "
|
|
|
|
| 1 |
FROM node:20-slim
|
| 2 |
|
| 3 |
+
RUN npm install -g serve
|
| 4 |
|
| 5 |
WORKDIR /app
|
| 6 |
|
| 7 |
+
COPY dist/client ./public
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
|
| 9 |
EXPOSE 7860
|
| 10 |
|
| 11 |
+
CMD ["serve", "-l", "7860", "--single", "public"]
|
dist/client/.assetsignore
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
wrangler.json
|
| 2 |
+
.dev.vars
|
dist/client/assets/activity-DUyzKHVj.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{c as t}from"./createLucideIcon-CxpWYIt5.js";const c=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],o=t("activity",c);export{o as A};
|
dist/client/assets/arrow-right-CwJHC0j6.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{c as o}from"./createLucideIcon-CxpWYIt5.js";const r=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],c=o("arrow-right",r);export{c as A};
|
dist/client/assets/button-BAzW2TLJ.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{r as a,j as m,e as V}from"./index-CfFa2yOe.js";import{a as j,c as R}from"./utils-BQHNewu7.js";function b(e,n){if(typeof e=="function")return e(n);e!=null&&(e.current=n)}function C(...e){return n=>{let t=!1;const i=e.map(r=>{const o=b(r,n);return!t&&typeof o=="function"&&(t=!0),o});if(t)return()=>{for(let r=0;r<i.length;r++){const o=i[r];typeof o=="function"?o():b(e[r],null)}}}}function F(...e){return a.useCallback(C(...e),e)}var N=Symbol.for("react.lazy"),y=V[" use ".trim().toString()];function w(e){return typeof e=="object"&&e!==null&&"then"in e}function _(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===N&&"_payload"in e&&w(e._payload)}function O(e){const n=k(e),t=a.forwardRef((i,r)=>{let{children:o,...u}=i;_(o)&&typeof y=="function"&&(o=y(o._payload));const l=a.Children.toArray(o),f=l.find($);if(f){const s=f.props.children,c=l.map(d=>d===f?a.Children.count(s)>1?a.Children.only(null):a.isValidElement(s)?s.props.children:null:d);return m.jsx(n,{...u,ref:r,children:a.isValidElement(s)?a.cloneElement(s,void 0,c):null})}return m.jsx(n,{...u,ref:r,children:o})});return t.displayName=`${e}.Slot`,t}var P=O("Slot");function k(e){const n=a.forwardRef((t,i)=>{let{children:r,...o}=t;if(_(r)&&typeof y=="function"&&(r=y(r._payload)),a.isValidElement(r)){const u=W(r),l=T(o,r.props);return r.type!==a.Fragment&&(l.ref=i?C(i,u):u),a.cloneElement(r,l)}return a.Children.count(r)>1?a.Children.only(null):null});return n.displayName=`${e}.SlotClone`,n}var A=Symbol("radix.slottable");function $(e){return a.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===A}function T(e,n){const t={...n};for(const i in n){const r=e[i],o=n[i];/^on[A-Z]/.test(i)?r&&o?t[i]=(...l)=>{const f=o(...l);return r(...l),f}:r&&(t[i]=r):i==="style"?t[i]={...r,...o}:i==="className"&&(t[i]=[r,o].filter(Boolean).join(" "))}return{...e,...t}}function W(e){let n=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=n&&"isReactWarning"in n&&n.isReactWarning;return t?e.ref:(n=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=n&&"isReactWarning"in n&&n.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}const h=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,x=j,z=(e,n)=>t=>{var i;if(n?.variants==null)return x(e,t?.class,t?.className);const{variants:r,defaultVariants:o}=n,u=Object.keys(r).map(s=>{const c=t?.[s],d=o?.[s];if(c===null)return null;const p=h(c)||h(d);return r[s][p]}),l=t&&Object.entries(t).reduce((s,c)=>{let[d,p]=c;return p===void 0||(s[d]=p),s},{}),f=n==null||(i=n.compoundVariants)===null||i===void 0?void 0:i.reduce((s,c)=>{let{class:d,className:p,...E}=c;return Object.entries(E).every(S=>{let[g,v]=S;return Array.isArray(v)?v.includes({...o,...l}[g]):{...o,...l}[g]===v})?[...s,d,p]:s},[]);return x(e,u,f,t?.class,t?.className)},B=z("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),I=a.forwardRef(({className:e,variant:n,size:t,asChild:i=!1,...r},o)=>{const u=i?P:"button";return m.jsx(u,{className:R(B({variant:n,size:t,className:e})),ref:o,...r})});I.displayName="Button";export{I as B,z as a,C as b,O as c,F as u};
|
dist/client/assets/car-CrRh3e9N.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{c}from"./createLucideIcon-CxpWYIt5.js";const e=[["path",{d:"M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2",key:"5owen"}],["circle",{cx:"7",cy:"17",r:"2",key:"u2ysq9"}],["path",{d:"M9 17h6",key:"r8uit2"}],["circle",{cx:"17",cy:"17",r:"2",key:"axvx0g"}]],o=c("car",e);export{o as C};
|
dist/client/assets/client-ioni_H2j.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
dist/client/assets/cpu-VePeYMw4.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{c as t}from"./createLucideIcon-CxpWYIt5.js";const h=[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}],["path",{d:"M8 11h8",key:"vwpz6n"}],["path",{d:"M8 7h6",key:"1f0q6e"}]],d=t("book-text",h);const e=[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]],k=t("cpu",e);export{d as B,k as C};
|
dist/client/assets/createLucideIcon-CxpWYIt5.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{r as s}from"./index-CfFa2yOe.js";const l=(...t)=>t.filter((e,r,o)=>!!e&&e.trim()!==""&&o.indexOf(e)===r).join(" ").trim();const C=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const f=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,r,o)=>o?o.toUpperCase():r.toLowerCase());const i=t=>{const e=f(t);return e.charAt(0).toUpperCase()+e.slice(1)};var w={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const h=t=>{for(const e in t)if(e.startsWith("aria-")||e==="role"||e==="title")return!0;return!1};const g=s.forwardRef(({color:t="currentColor",size:e=24,strokeWidth:r=2,absoluteStrokeWidth:o,className:n="",children:a,iconNode:u,...c},p)=>s.createElement("svg",{ref:p,...w,width:e,height:e,stroke:t,strokeWidth:o?Number(r)*24/Number(e):r,className:l("lucide",n),...!a&&!h(c)&&{"aria-hidden":"true"},...c},[...u.map(([m,d])=>s.createElement(m,d)),...Array.isArray(a)?a:[a]]));const b=(t,e)=>{const r=s.forwardRef(({className:o,...n},a)=>s.createElement(g,{ref:a,iconNode:e,className:l(`lucide-${C(i(t))}`,`lucide-${t}`,o),...n}));return r.displayName=i(t),r};export{b as c};
|
dist/client/assets/createServerFn-rAZ5w09o.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{c as _}from"./createLucideIcon-CxpWYIt5.js";import{r as b,j,u as R,i as p,p as E,T as m,g}from"./index-CfFa2yOe.js";import{c as A}from"./utils-BQHNewu7.js";function M(r){if(Array.isArray(r))return r.flatMap(i=>M(i));if(typeof r!="string")return[];const n=[];let e=0,s,l,t,a,o;const d=()=>{for(;e<r.length&&/\s/.test(r.charAt(e));)e+=1;return e<r.length},c=()=>(l=r.charAt(e),l!=="="&&l!==";"&&l!==",");for(;e<r.length;){for(s=e,o=!1;d();)if(l=r.charAt(e),l===","){for(t=e,e+=1,d(),a=e;e<r.length&&c();)e+=1;e<r.length&&r.charAt(e)==="="?(o=!0,e=a,n.push(r.slice(s,t)),s=e):e=t+1}else e+=1;(!o||e>=r.length)&&n.push(r.slice(s))}return n}function N(r){return r instanceof Headers?r:Array.isArray(r)?new Headers(r):typeof r=="object"?new Headers(r):null}function C(...r){return r.reduce((n,e)=>{const s=N(e);if(!s)return n;for(const[l,t]of s.entries())l==="set-cookie"?M(t).forEach(a=>n.append("set-cookie",a)):n.set(l,t);return n},new Headers)}const S=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],U=_("loader-circle",S),T=b.forwardRef(({className:r,...n},e)=>j.jsx("textarea",{className:A("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",r),ref:e,...n}));T.displayName="Textarea";function Y(r){const n=R();return b.useCallback(async(...e)=>{try{const s=await r(...e);if(p(s))throw s;return s}catch(s){if(p(s))return s.options._fromLocation=n.stores.location.get(),n.navigate(n.resolveRedirect(s).options);throw s}},[n,r])}function v(r){return r!=="__proto__"&&r!=="constructor"&&r!=="prototype"}function y(r,n){const e=Object.create(null);if(r)for(const s of Object.keys(r))v(s)&&(e[s]=r[s]);if(n&&typeof n=="object")for(const s of Object.keys(n))v(s)&&(e[s]=n[s]);return e}function F(r){return Object.create(null)}var O=()=>{throw new Error("createServerOnlyFn() functions can only be called on the server!")},w=(r,n)=>{const e=n||r||{};return typeof e.method>"u"&&(e.method="GET"),Object.assign(t=>w(void 0,{...e,...t}),{options:e,middleware:t=>{const a=[...e.middleware||[]];t.map(d=>{m in d?d.options.middleware&&a.push(...d.options.middleware):a.push(d)});const o=w(void 0,{...e,middleware:a});return o[m]=!0,o},inputValidator:t=>w(void 0,{...e,inputValidator:t}),handler:(...t)=>{const[a,o]=t,d={...e,extractedFn:a,serverFn:o},c=[...d.middleware||[],I(d)];return a.method=e.method,Object.assign(async i=>{const u=await x(c,"client",{...a,...d,data:i?.data,headers:i?.headers,signal:i?.signal,fetch:i?.fetch,context:F()}),f=E(u.error);if(f)throw f;if(u.error)throw u.error;return u.result},{...a,method:e.method,__executeServer:async i=>{const u=O(),f=u.contextAfterGlobalMiddlewares;return await x(c,"server",{...a,...i,serverFnMeta:a.serverFnMeta,context:y(i.context,f),request:u.request}).then(h=>({result:h.result,error:h.error,context:h.sendContext}))}})}})};async function x(r,n,e){let s=V([...g()?.functionMiddleware||[],...r]);if(n==="server"){const t=O();t?.executedRequestMiddlewares&&(s=s.filter(a=>!t.executedRequestMiddlewares.has(a)))}const l=async t=>{const a=s.shift();if(!a)return t;try{"inputValidator"in a.options&&a.options.inputValidator&&n==="server"&&(t.data=await H(a.options.inputValidator,t.data));let o;if(n==="client"?"client"in a.options&&(o=a.options.client):"server"in a.options&&(o=a.options.server),o){const c=await o({...t,next:async(i={})=>{const u=await l({...t,...i,context:y(t.context,i.context),sendContext:y(t.sendContext,i.sendContext),headers:C(t.headers,i.headers),_callSiteFetch:t._callSiteFetch,fetch:t._callSiteFetch??i.fetch??t.fetch,result:i.result!==void 0?i.result:i instanceof Response?i:t.result,error:i.error??t.error});if(u.error)throw u.error;return u}});if(p(c))return{...t,error:c};if(c instanceof Response)return{...t,result:c};if(!c)throw new Error("User middleware returned undefined. You must call next() or return a result in your middlewares.");return c}return l(t)}catch(o){return{...t,error:o}}};return l({...e,headers:e.headers||{},sendContext:e.sendContext||{},context:e.context||F(),_callSiteFetch:e.fetch})}function V(r,n=100){const e=new Set,s=[],l=(t,a)=>{if(a>n)throw new Error(`Middleware nesting depth exceeded maximum of ${n}. Check for circular references.`);t.forEach(o=>{o.options.middleware&&l(o.options.middleware,a+1),e.has(o)||(e.add(o),s.push(o))})};return l(r,0),s}async function H(r,n){if(r==null)return{};if("~standard"in r){const e=await r["~standard"].validate(n);if(e.issues)throw new Error(JSON.stringify(e.issues,void 0,2));return e.value}if("parse"in r)return r.parse(n);if(typeof r=="function")return r(n);throw new Error("Invalid validator type!")}function I(r){return{"~types":void 0,options:{inputValidator:r.inputValidator,client:async({next:n,sendContext:e,fetch:s,...l})=>{const t={...l,context:e,fetch:s};return n(await r.extractedFn?.(t))},server:async({next:n,...e})=>{const s=await r.serverFn?.(e);return n({...e,result:s})}}}}export{U as L,T,w as c,Y as u};
|
dist/client/assets/dashboard-CyqrXyxO.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{u as d,r as l,a as h,b as m,j as e,L as c,O as p}from"./index-CfFa2yOe.js";import{c as u}from"./utils-BQHNewu7.js";import{R as b}from"./radar-CKHMnejp.js";import{T as x}from"./triangle-alert-DXh3iSRC.js";import{G as f}from"./git-branch-DyRL9CvM.js";import{C as g}from"./car-CrRh3e9N.js";import{c as i}from"./createLucideIcon-CxpWYIt5.js";import{G as v}from"./graduation-cap-6slvDJ0t.js";function y(s){const a=d(),r=l.useRef(void 0);return h(a.stores.location,t=>{const o=t;if(a.options.defaultStructuralSharing){const n=m(r.current,o);return r.current=n,n}return o})}const j=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M8 18v-2",key:"qcmpov"}],["path",{d:"M12 18v-4",key:"q1q25u"}],["path",{d:"M16 18v-6",key:"15y0np"}]],k=i("file-chart-column-increasing",j);const N=[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"m19 8 3 8a5 5 0 0 1-6 0zV7",key:"zcdpyk"}],["path",{d:"M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1",key:"1yorad"}],["path",{d:"m5 8 3 8a5 5 0 0 1-6 0zV7",key:"eua70x"}],["path",{d:"M7 21h10",key:"1b0cd5"}]],w=i("scale",N),C=[{to:"/dashboard",label:"Incident Bot",icon:x},{to:"/dashboard/branch-debug",label:"Branch Debug Bot",icon:f},{to:"/dashboard/forensic",label:"Forensics Bot",icon:g},{to:"/dashboard/reports",label:"Reports Bot",icon:k},{to:"/dashboard/coaching",label:"Coaching Bot",icon:v},{to:"/dashboard/compliance",label:"Compliance Bot",icon:w}];function B(){const s=y();return e.jsxs("aside",{className:"w-64 shrink-0 bg-sidebar border-r border-sidebar-border flex flex-col",children:[e.jsx("div",{className:"p-6 border-b border-sidebar-border",children:e.jsxs(c,{to:"/dashboard",className:"flex items-center gap-3",children:[e.jsx("div",{className:"h-9 w-9 rounded-lg bg-primary text-primary-foreground flex items-center justify-center shadow-[var(--shadow-glow)]",children:e.jsx(b,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"font-bold tracking-tight leading-none",children:"DriveCore"}),e.jsx("div",{className:"text-[10px] uppercase tracking-widest text-muted-foreground mt-1",children:"Safety Console"})]})]})}),e.jsx("nav",{className:"flex-1 p-4 space-y-1",children:C.map(({to:a,label:r,icon:t})=>{const o=s.pathname===a||a!=="/dashboard"&&s.pathname.startsWith(a);return e.jsxs(c,{to:a,className:u("flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition-colors",o?"bg-sidebar-accent text-primary":"text-sidebar-foreground/70 hover:bg-sidebar-accent hover:text-sidebar-foreground"),children:[e.jsx(t,{className:"h-4 w-4"}),r]},a)})})]})}function _(){return e.jsxs("div",{className:"flex min-h-screen bg-background",children:[e.jsx(B,{}),e.jsx("main",{className:"flex-1 min-w-0 flex flex-col",children:e.jsx(p,{})})]})}export{_ as component};
|
dist/client/assets/dashboard.branch-debug-B4nG6S3W.js
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import{c as Y,r as g,j as e,t as y}from"./index-CfFa2yOe.js";import{c as Z,u as V,T as q,L as H}from"./createServerFn-rAZ5w09o.js";import{B as W}from"./button-BAzW2TLJ.js";import{C as Q,F as ie,D as le,g as de,h as ce,i as pe,j as me,k as he,S as xe}from"./scroll-area-DblZQRqr.js";import{c as N}from"./utils-BQHNewu7.js";import{T as ue,L as fe,S as D,F as U}from"./terminal-CBmIRH_y.js";import{c as b}from"./createLucideIcon-CxpWYIt5.js";import{D as be}from"./download-DQLIuwN2.js";import{G as ge}from"./git-branch-DyRL9CvM.js";import{S as $}from"./shield-BsNfmvT5.js";import{A as ye}from"./arrow-right-CwJHC0j6.js";import"./tslib.es6-eMSY344_.js";const je=[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]],ve=b("brain",je);const we=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],ke=b("chevron-left",we);const Ne=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Se=b("chevron-right",Ne);const Ce=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],X=b("copy",Ce);const Ee=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],B=b("external-link",Ee);const Te=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Re=b("eye",Te);const Ae=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1",key:"1oajmo"}],["path",{d:"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1",key:"mpwhp6"}]],_e=b("file-braces",Ae);const Ie=[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]],$e=b("link-2",Ie);const ze=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 9.9-1",key:"1mm8w8"}]],Le=b("lock-open",ze);const Me=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],Oe=b("paperclip",Me);const Pe=[["path",{d:"M13 21h8",key:"1jsn5i"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]],De=b("pen-line",Pe);const Ue=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],Be=b("play",Ue);const Je=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],Fe=b("rotate-ccw",Je);const Ve=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],qe=b("send",Ve);const He=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],Ge=b("target",He);const Ke=[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"M13 5v2",key:"dyzc3o"}],["path",{d:"M13 17v2",key:"1ont0d"}],["path",{d:"M13 11v2",key:"1wjjxi"}]],G=b("ticket",Ke),Ye=Z({method:"POST"}).handler(Y("c30cc377cacf02f4356c5ee473f240ba629458c2581f540429830ee709d9a5db")),Ze=Z({method:"POST"}).handler(Y("6aa76f8a51c9cb9ea5c44bb252f3a3f931b761920bafc19e84372febe1794304")),We=[{id:"auto",label:"Auto-detect language"},{id:"python",label:"Python"},{id:"typescript",label:"TypeScript / JS"},{id:"cpp",label:"C / C++"},{id:"csharp",label:"C#"},{id:"java",label:"Java"},{id:"kotlin",label:"Kotlin"},{id:"swift",label:"Swift"},{id:"go",label:"Go"},{id:"rust",label:"Rust"},{id:"ruby",label:"Ruby"},{id:"php",label:"PHP"},{id:"scala",label:"Scala"},{id:"elixir",label:"Elixir"},{id:"haskell",label:"Haskell"},{id:"lua",label:"Lua"},{id:"r",label:"R"},{id:"dart",label:"Dart"},{id:"sql",label:"SQL"},{id:"bash",label:"Bash / Shell"},{id:"html",label:"HTML / CSS"},{id:"yaml",label:"YAML / JSON / TOML"}];function Qe(t){if(!t||t.trim().length<10)return"unknown";const n=t.trim().split(`
|
| 2 |
+
`),d=n.filter(o=>/^(diff --git|---\s|\+\+\+\s|@@\s|index [a-f0-9])/.test(o)).length,p=n.filter(o=>/^[+\-](?![+\-])/.test(o)).length;return d>=1||p/n.length>.3&&p>=3?"diff":"snippet"}const j=[{id:1,label:"Capture the failing change",sublabel:"git diff — or any code snippet",color:"#4af0c4",Icon:ue,zone:"user",track:"both",code:`# Diff mode
|
| 3 |
+
git diff main..feature/checkout-fix
|
| 4 |
+
|
| 5 |
+
# OR — Snippet mode
|
| 6 |
+
# Just paste the suspicious function
|
| 7 |
+
def compute_ttc(distance, velocity):
|
| 8 |
+
if velocity == 0: return float('inf')
|
| 9 |
+
return distance / velocity`,detail:"Something broke. Either grab a unified git diff between your branch and main, OR copy the single function/file you suspect. BranchDebug auto-detects which one you pasted — no flag, no setup.",codeLabel:"TERMINAL / EDITOR"},{id:2,label:"Describe the failure in plain English",sublabel:"No structured format required",color:"#4af0c4",Icon:De,zone:"user",track:"both",code:`"API throwing 500 on /checkout after deploy.
|
| 10 |
+
Card validation seems broken for Amex cards."`,detail:"Paste your code on the left, write what you observed on the right. Stack traces, vague hunches, log lines — all fine. The AI uses your description to weight which lines matter.",codeLabel:"FAILURE NOTE"},{id:3,label:"IP Shield sanitizes everything",sublabel:"Server-side, before any external call",color:"#ffcc44",Icon:fe,zone:"server",track:"both",code:`validate_card → fn_0042
|
| 11 |
+
AmexValidator → fn_0019
|
| 12 |
+
card_number → fn_0003
|
| 13 |
+
|
| 14 |
+
# comments stripped
|
| 15 |
+
# secrets [REDACTED]`,detail:"Before a single byte leaves your server, identifiers are tokenized, comments are stripped, and secret patterns (API keys, JWTs, bearer tokens) are redacted. The token map stays in-memory on your server.",codeLabel:"SANITIZER OUTPUT"},{id:4,label:"Anonymized payload sent to AI",sublabel:"Zero-retention gateway",color:"#aa88ff",Icon:qe,zone:"ai",track:"both",code:`// Diff track
|
| 16 |
+
diff --git a/fn_0019.py b/fn_0019.py
|
| 17 |
+
- if fn_0003 > 15:
|
| 18 |
+
+ if fn_0003 > 16:
|
| 19 |
+
|
| 20 |
+
// Snippet track
|
| 21 |
+
12 | def fn_0042(fn_0003):
|
| 22 |
+
13 | if len(fn_0003) > 15:`,detail:"Whether you sent a diff or a snippet, only the anonymized version reaches the model. Even if intercepted, the payload reveals nothing about your real codebase.",codeLabel:"PAYLOAD TO AI"},{id:5,label:"AI ranks suspects by mechanism",sublabel:"Tool-calling for structured output",color:"#aa88ff",Icon:ve,zone:"ai",track:"both",code:`{
|
| 23 |
+
"summary": "Threshold off-by-one
|
| 24 |
+
excludes valid 15-digit Amex",
|
| 25 |
+
"suspects": [{
|
| 26 |
+
"hunkIndex": 0,
|
| 27 |
+
"confidence": "high",
|
| 28 |
+
"mechanism": "..."
|
| 29 |
+
}]
|
| 30 |
+
}`,detail:"The model returns ranked suspects with confidence + cause-and-effect. Diff mode references hunk indexes; snippet mode references line numbers. Both come back as strict JSON.",codeLabel:"AI RESPONSE (anonymized)"},{id:6,label:"Token map restores real names",sublabel:"Decrypted server-side",color:"#ffcc44",Icon:Le,zone:"server",track:"both",code:`fn_0019 → AmexValidator
|
| 31 |
+
fn_0042 → validate_card
|
| 32 |
+
fn_0003 → card_number`,detail:"Your server swaps tokens back to real identifiers in the AI response. The model never saw — and still doesn't know — your actual function or file names.",codeLabel:"TOKEN RESTORATION"},{id:7,label:"Jump to the suspect line in your editor",sublabel:"vscode:// & cursor:// deep links",color:"#4af0c4",Icon:Ge,zone:"user",track:"both",code:`HIGH payments/AmexValidator.py:14
|
| 33 |
+
validate_card()
|
| 34 |
+
|
| 35 |
+
→ Click "Jump" to open VS Code
|
| 36 |
+
at the exact line.`,detail:"Each suspect shows real file path + line, confidence, and a one-click deep link that opens VS Code or Cursor at the offending location. Copy the location too — handy for tickets.",codeLabel:"RANKED SUSPECTS"},{id:8,label:"Export the report",sublabel:"Markdown for tickets · JSON for tooling",color:"#4af0c4",Icon:be,zone:"user",track:"both",code:`branchdebug-report-2026-05-06.md
|
| 37 |
+
branchdebug-report-2026-05-06.json
|
| 38 |
+
|
| 39 |
+
# .md → paste into Jira / PR description
|
| 40 |
+
# .json → feed to your incident pipeline`,detail:"One click exports a self-contained report: verdict, sanitization stats, and every ranked suspect with mechanism + before/after diff. Markdown is review-ready; JSON is automation-ready.",codeLabel:"EXPORT"}],O={user:{label:"YOUR MACHINE",color:"#4af0c4"},server:{label:"YOUR SERVER (IP SHIELD)",color:"#ffcc44"},ai:{label:"AI API (anonymized only)",color:"#aa88ff"}};function vt(){const[t,n]=g.useState(0),[d,p]=g.useState(!1),[o,i]=g.useState([0]),h=g.useRef(null);g.useEffect(()=>(d&&(h.current=setInterval(()=>{n(l=>{const x=l+1;return x>=j.length?(p(!1),h.current&&clearInterval(h.current),l):(i(k=>k.includes(x)?k:[...k,x]),x)})},1800)),()=>{h.current&&clearInterval(h.current)}),[d]);const a=l=>{n(l),i(x=>x.includes(l)?x:[...x,l]),p(!1),h.current&&clearInterval(h.current)},m=()=>{t>=j.length-1&&(n(0),i([0])),p(!0)},E=()=>{n(0),i([0]),p(!1),h.current&&clearInterval(h.current)},c=j[t],R=O[c.zone],[C,f]=g.useState("analyzer"),[S,_]=g.useState(""),[A,z]=g.useState(""),[L,r]=g.useState(null),[s,v]=g.useState(!1),[u,w]=g.useState(()=>localStorage.getItem("branchdebug.editorBase")??"vscode://file/"),I=V(Ye),re=V(Ze),[M,se]=g.useState("auto"),J=Qe(S),ae=async()=>{if(!S.trim()||!A.trim()){y.error("Provide both code and a failure description.");return}v(!0),r(null);try{const l=J==="snippet"?await re({data:{snippet:S,failureDescription:A,language:M==="auto"?void 0:M}}):await I({data:{diff:S,failureDescription:A}});r(l),y.success(`Found ${l.suspects.length} suspect${l.suspects.length===1?"":"s"}`)}catch(l){y.error(await at(l,"Analysis failed"))}finally{v(!1)}},ne=()=>{_(`diff --git a/payments/AmexValidator.py b/payments/AmexValidator.py
|
| 41 |
+
index 1a2b3c4..5d6e7f8 100644
|
| 42 |
+
--- a/payments/AmexValidator.py
|
| 43 |
+
+++ b/payments/AmexValidator.py
|
| 44 |
+
@@ -10,7 +10,7 @@ class AmexValidator:
|
| 45 |
+
def validate_card(self, card_number):
|
| 46 |
+
# Amex cards are 15 digits
|
| 47 |
+
- if len(card_number) > 15:
|
| 48 |
+
+ if len(card_number) > 16:
|
| 49 |
+
return False
|
| 50 |
+
return self._luhn_check(card_number)
|
| 51 |
+
diff --git a/checkout/handler.py b/checkout/handler.py
|
| 52 |
+
index aaa..bbb 100644
|
| 53 |
+
--- a/checkout/handler.py
|
| 54 |
+
+++ b/checkout/handler.py
|
| 55 |
+
@@ -42,6 +42,7 @@ def process_checkout(payload):
|
| 56 |
+
validator = AmexValidator()
|
| 57 |
+
+ payload = sanitize_payload(payload)
|
| 58 |
+
if not validator.validate_card(payload["card"]):
|
| 59 |
+
raise ValueError("Invalid card")`),z("API throwing 500 on /checkout after deploy. Card validation seems broken for Amex cards.")};return e.jsxs(e.Fragment,{children:[e.jsxs("header",{className:"h-16 border-b border-border flex items-center justify-between px-8 bg-surface/40 backdrop-blur",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-widest text-muted-foreground font-mono",children:"Engineering"}),e.jsxs("h1",{className:"text-lg font-semibold flex items-center gap-2",children:[e.jsx(ge,{className:"h-4 w-4 text-primary"})," Branch Debug Bot"]})]}),e.jsxs("div",{className:"flex gap-1 p-1 rounded-lg bg-surface border border-border",children:[e.jsxs("button",{onClick:()=>f("analyzer"),className:N("px-3 py-1.5 rounded-md text-xs font-mono uppercase tracking-widest transition-colors",C==="analyzer"?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground"),children:[e.jsx(D,{className:"h-3 w-3 inline mr-1.5"})," Analyzer"]}),e.jsxs("button",{onClick:()=>f("cli"),className:N("px-3 py-1.5 rounded-md text-xs font-mono uppercase tracking-widest transition-colors",C==="cli"?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground"),children:[e.jsx(U,{className:"h-3 w-3 inline mr-1.5"})," VS Code"]}),e.jsx("button",{onClick:()=>f("howto"),className:N("px-3 py-1.5 rounded-md text-xs font-mono uppercase tracking-widest transition-colors",C==="howto"?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground"),children:"How it works"})]})]}),C==="analyzer"&&e.jsx(rt,{diff:S,setDiff:_,failure:A,setFailure:z,result:L,analyzing:s,onRun:ae,onSample:ne,editorBase:u,setEditorBase:l=>{w(l),localStorage.setItem("branchdebug.editorBase",l)},detected:J,language:M,setLanguage:se}),C==="cli"&&e.jsx(et,{}),C==="howto"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"px-8 py-3 border-b border-border flex justify-end gap-2 bg-surface/20",children:[e.jsxs("button",{onClick:m,className:"flex items-center gap-2 px-3 py-2 rounded-md text-xs font-mono uppercase tracking-widest border border-primary/40 bg-primary/10 text-primary hover:bg-primary/20 transition-colors",children:[e.jsx(Be,{className:"h-3 w-3"})," ",d?"Playing…":"Auto-Play"]}),e.jsxs("button",{onClick:E,className:"flex items-center gap-2 px-3 py-2 rounded-md text-xs font-mono uppercase tracking-widest border border-border text-muted-foreground hover:text-foreground",children:[e.jsx(Fe,{className:"h-3 w-3"})," Reset"]})]}),e.jsxs("div",{className:"flex-1 grid grid-cols-1 lg:grid-cols-[360px_1fr] min-h-0 overflow-hidden",children:[e.jsxs("div",{className:"border-r border-border overflow-y-auto p-4 space-y-2 bg-surface/20",children:[e.jsx("div",{className:"px-2 pb-3 space-y-1.5",children:Object.entries(O).map(([l,x])=>e.jsxs("div",{className:"flex items-center gap-2 text-[10px] font-mono uppercase tracking-wider text-muted-foreground",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full",style:{background:x.color}}),x.label]},l))}),j.map((l,x)=>{const k=t===x,T=o.includes(x),F=O[l.zone],oe=x===0||j[x-1].zone!==l.zone;return e.jsxs("div",{children:[oe&&e.jsxs("div",{className:"px-2 pt-3 pb-1 text-[9px] font-mono uppercase tracking-widest",style:{color:F.color},children:["── ",F.label," ──"]}),e.jsxs("button",{onClick:()=>a(x),className:N("w-full text-left p-3 rounded-lg border flex items-start gap-3 transition-all",k?"border-primary/60 bg-primary/5 shadow-[var(--shadow-glow)]":T?"border-border bg-surface hover:border-primary/30":"border-border/40 bg-surface/30 opacity-50"),style:k?{borderColor:l.color+"80",background:l.color+"12"}:void 0,children:[e.jsx("div",{className:"h-7 w-7 rounded-full flex items-center justify-center shrink-0",style:{background:k?l.color:T?l.color+"30":"hsl(var(--muted))",color:k?"#001a0d":l.color},children:e.jsx(l.Icon,{className:"h-3.5 w-3.5"})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"text-sm font-medium truncate",children:l.label}),e.jsx("div",{className:"text-[10px] text-muted-foreground mt-0.5",children:l.sublabel})]})]}),x<j.length-1&&e.jsx("div",{className:"ml-[26px] h-3 w-px bg-border"})]},l.id)})]}),e.jsxs("div",{className:"overflow-y-auto p-8 space-y-6 max-w-4xl",children:[e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"h-12 w-12 rounded-xl flex items-center justify-center text-xl shrink-0",style:{background:c.color+"20",color:c.color,border:`1px solid ${c.color}40`},children:e.jsx(c.Icon,{className:"h-6 w-6"})}),e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"text-[10px] font-mono uppercase tracking-widest text-muted-foreground",children:["Step ",c.id," of ",j.length," — ",R.label]}),e.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:c.label}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed pt-2 max-w-2xl",children:c.detail})]})]}),e.jsxs("div",{className:"rounded-xl border border-border bg-surface overflow-hidden",children:[e.jsxs("div",{className:"px-4 py-2 border-b border-border bg-background/40 text-[10px] font-mono uppercase tracking-widest text-muted-foreground flex items-center justify-between",children:[e.jsx("span",{children:c.codeLabel}),e.jsxs("span",{style:{color:c.color},children:["● ",c.zone.toUpperCase()]})]}),e.jsx("pre",{className:"p-4 text-xs font-mono whitespace-pre-wrap leading-relaxed text-foreground/90 overflow-x-auto",children:c.code})]}),(c.id===3||c.id===6)&&e.jsxs("div",{className:"rounded-xl border border-yellow-500/40 bg-yellow-500/5 p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs font-mono uppercase tracking-widest text-yellow-500 font-bold mb-2",children:[e.jsx($,{className:"h-3.5 w-3.5"})," IP Shield Active"]}),e.jsx("p",{className:"text-xs text-muted-foreground leading-relaxed",children:c.id===3?"Real names are replaced with opaque tokens BEFORE any data leaves your server. The token map is encrypted with AES-256-GCM using a key derived from your org ID. It is never transmitted anywhere.":"The token map is decrypted on your server using your org's encryption key. Real identifiers are restored locally. The AI never saw — and still doesn't know — your actual function or file names."})]}),e.jsxs("div",{className:"rounded-xl border border-border bg-surface/60 p-4",children:[e.jsx("div",{className:"text-[10px] font-mono uppercase tracking-widest text-muted-foreground mb-3",children:"Pipeline Progress"}),e.jsx("div",{className:"flex items-center gap-1",children:j.map((l,x)=>{const k=x<t,T=x===t;return e.jsxs("div",{className:"flex items-center flex-1 last:flex-initial",children:[e.jsx("div",{className:N("h-7 w-7 rounded-full flex items-center justify-center text-[10px] font-mono font-bold shrink-0",T&&"ring-2 ring-offset-2 ring-offset-background"),style:{background:k||T?l.color:"hsl(var(--muted))",color:k||T?"#001a0d":"hsl(var(--muted-foreground))",...T?{"--tw-ring-color":l.color}:{}},children:k?e.jsx(Q,{className:"h-3 w-3"}):l.id}),x<j.length-1&&e.jsx("div",{className:"flex-1 h-px mx-1",style:{background:x<t?l.color:"hsl(var(--border))"}})]},l.id)})})]}),e.jsxs("div",{className:"flex justify-between gap-2 pt-2",children:[e.jsxs("button",{onClick:()=>a(Math.max(0,t-1)),disabled:t===0,className:"flex items-center gap-1.5 px-4 py-2 rounded-md text-xs font-mono uppercase tracking-widest border border-border text-muted-foreground hover:text-foreground disabled:opacity-30 disabled:cursor-not-allowed",children:[e.jsx(ke,{className:"h-3 w-3"})," Prev"]}),e.jsxs("button",{onClick:()=>a(Math.min(j.length-1,t+1)),disabled:t===j.length-1,className:"flex items-center gap-1.5 px-4 py-2 rounded-md text-xs font-mono uppercase tracking-widest font-bold disabled:opacity-30 disabled:cursor-not-allowed",style:{background:t===j.length-1?"hsl(var(--muted))":c.color,color:t===j.length-1?"hsl(var(--muted-foreground))":"#001a0d"},children:["Next ",e.jsx(Se,{className:"h-3 w-3"})]})]})]})]})]}),e.jsx(Xe,{})]})}function Xe(){return null}function et(){const t=typeof window<"u"?`${window.location.origin}/api/public/branch-debug`:"/api/public/branch-debug",n=`curl -fsSL ${t.replace("/api/public/branch-debug","/cli/eventdash-debug.mjs")} -o eventdash-debug.mjs`,d='node ./eventdash-debug.mjs "Checkout 500s on Amex cards after deploy"',p='node ./eventdash-debug.mjs --editor cursor "..."',o='node ./eventdash-debug.mjs --base origin/main "..."',i=({cmd:a})=>e.jsxs("div",{className:"group relative rounded-lg border border-border bg-[#0a0e15] p-4 font-mono text-xs text-foreground",children:[e.jsx("pre",{className:"whitespace-pre-wrap break-all",children:a}),e.jsx("button",{onClick:()=>{navigator.clipboard.writeText(a),y.success("Copied")},className:"absolute top-2 right-2 opacity-0 group-hover:opacity-100 transition-opacity p-1.5 rounded bg-surface border border-border hover:border-primary/50",children:e.jsx(X,{className:"h-3 w-3"})})]}),h=()=>{fetch("/branchdebug-vscode-extension.zip").then(a=>{if(!a.ok)throw new Error(`Download failed: ${a.status}`);return a.blob()}).then(a=>{const m=document.createElement("a");m.href=URL.createObjectURL(a),m.download="branchdebug-vscode-extension.zip",m.click(),URL.revokeObjectURL(m.href),y.success("Extension downloaded")}).catch(a=>y.error(a.message))};return e.jsx("div",{className:"flex-1 overflow-y-auto p-8",children:e.jsxs("div",{className:"max-w-3xl mx-auto space-y-8",children:[e.jsxs("div",{children:[e.jsxs("h2",{className:"text-xl font-semibold flex items-center gap-2",children:[e.jsx(U,{className:"h-5 w-5 text-primary"})," Run Branch Debug from VS Code"]}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"Two ways to connect your editor: install the official VS Code extension, or use the lightweight terminal helper."})]}),e.jsxs("section",{className:"rounded-xl border border-primary/40 bg-primary/5 p-6 space-y-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-widest text-primary font-mono",children:"Recommended"}),e.jsx("h3",{className:"text-lg font-semibold mt-0.5",children:"BranchDebug VS Code Extension"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1 max-w-xl",children:"Sidebar panel, inline highlights, and one-click navigation to every suspect line. Works with VS Code, Cursor, and other Code-based editors."})]}),e.jsxs(W,{onClick:h,className:"shrink-0",children:[e.jsx(B,{className:"h-4 w-4 mr-2"})," Download .zip"]})]}),e.jsxs("div",{className:"rounded-lg bg-[#0a0e15] border border-border p-4 text-xs text-foreground space-y-2",children:[e.jsx("div",{className:"text-[10px] uppercase tracking-widest text-muted-foreground font-mono",children:"Install (unpacked)"}),e.jsxs("ol",{className:"list-decimal list-inside space-y-1 text-muted-foreground",children:[e.jsx("li",{children:"Unzip the downloaded file."}),e.jsxs("li",{children:["In VS Code / Cursor, open the unzipped folder and run ",e.jsx("code",{className:"text-primary",children:"npm install && npm run compile"}),"."]}),e.jsxs("li",{children:["Press ",e.jsx("code",{className:"text-primary",children:"F5"})," to launch an Extension Development Host, or run ",e.jsx("code",{className:"text-primary",children:"vsce package"})," and install the resulting ",e.jsx("code",{className:"text-primary",children:".vsix"}),"."]}),e.jsxs("li",{children:["Open the BranchDebug sidebar → set ",e.jsx("code",{className:"text-primary",children:"serverUrl"})," to ",e.jsx("code",{className:"text-primary",children:t.replace("/api/public/branch-debug","")}),"."]})]})]}),e.jsxs("div",{className:"grid sm:grid-cols-3 gap-2 text-[11px]",children:[e.jsxs("div",{className:"rounded-md bg-surface/50 border border-border p-2",children:[e.jsx("div",{className:"font-mono text-primary",children:"Analyze Current Branch"}),e.jsx("div",{className:"text-muted-foreground mt-0.5",children:"Run analysis on your current branch."})]}),e.jsxs("div",{className:"rounded-md bg-surface/50 border border-border p-2",children:[e.jsx("div",{className:"font-mono text-primary",children:"URI handler"}),e.jsxs("div",{className:"text-muted-foreground mt-0.5",children:["Opens ",e.jsx("code",{children:"branchdebug://"})," deep links."]})]}),e.jsxs("div",{className:"rounded-md bg-surface/50 border border-border p-2",children:[e.jsx("div",{className:"font-mono text-primary",children:"Inline highlights"}),e.jsx("div",{className:"text-muted-foreground mt-0.5",children:"Suspect lines decorated in the editor."})]})]})]}),e.jsxs("section",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-widest text-muted-foreground font-mono",children:"Alternative"}),e.jsx("h3",{className:"text-base font-semibold mt-0.5",children:"Terminal helper (no install)"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:"For CI, headless servers, or when you don't want an extension."})]}),e.jsx(i,{cmd:n}),e.jsx(i,{cmd:d}),e.jsxs("div",{className:"grid sm:grid-cols-2 gap-2",children:[e.jsx(i,{cmd:p}),e.jsx(i,{cmd:o})]})]}),e.jsxs("div",{className:"rounded-lg border border-primary/30 bg-primary/5 p-4 text-xs text-muted-foreground flex gap-3",children:[e.jsx($,{className:"h-4 w-4 text-primary shrink-0 mt-0.5"}),e.jsx("div",{children:"Both paths send your diff through the same IP Shield — identifiers tokenized, comments stripped, secrets blocked — before any AI sees it. Real file paths and line numbers are restored locally."})]})]})})}const tt={high:{bg:"bg-severity-critical/10",border:"border-severity-critical/40",text:"text-severity-critical",dot:"bg-severity-critical"},medium:{bg:"bg-severity-high/10",border:"border-severity-high/40",text:"text-severity-high",dot:"bg-severity-high"},low:{bg:"bg-muted/30",border:"border-border",text:"text-muted-foreground",dot:"bg-muted-foreground"}};function rt({diff:t,setDiff:n,failure:d,setFailure:p,result:o,analyzing:i,onRun:h,onSample:a,editorBase:m,setEditorBase:E,detected:c,language:R,setLanguage:C}){return e.jsxs("div",{className:"flex-1 grid grid-cols-1 lg:grid-cols-[480px_1fr] min-h-0 overflow-hidden",children:[e.jsxs("div",{className:"border-r border-border overflow-y-auto p-6 space-y-4 bg-surface/20",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-2 gap-2 flex-wrap",children:[e.jsx("label",{className:"text-[10px] font-mono uppercase tracking-widest text-muted-foreground",children:"Git diff or code snippet"}),e.jsxs("div",{className:"flex items-center gap-2",children:[c!=="unknown"&&e.jsx("span",{className:N("text-[9px] font-mono uppercase tracking-widest px-2 py-0.5 rounded border",c==="diff"?"border-purple-400/40 bg-purple-400/10 text-purple-300":"border-primary/40 bg-primary/10 text-primary"),children:c==="diff"?"⎇ git diff":"{} snippet"}),e.jsx("button",{onClick:a,className:"text-[10px] font-mono uppercase tracking-widest text-primary hover:underline",children:"Load sample"})]})]}),e.jsx(q,{value:t,onChange:f=>n(f.target.value),placeholder:"Paste a git diff (git diff main..feature/...) — OR — paste a raw code snippet and we'll analyze it directly.",className:"font-mono text-xs h-64 resize-none bg-background"}),c==="snippet"&&e.jsxs("div",{className:"mt-2 flex items-center gap-2",children:[e.jsx("label",{className:"text-[10px] font-mono uppercase tracking-widest text-muted-foreground",children:"Language"}),e.jsx("select",{value:R,onChange:f=>C(f.target.value),className:"text-[11px] font-mono px-2 py-1 rounded-md bg-background border border-border focus:border-primary outline-none",children:We.map(f=>e.jsx("option",{value:f.id,children:f.label},f.id))})]}),c==="unknown"?t.trim().length>0&&e.jsx("p",{className:"text-[10px] text-muted-foreground mt-2 leading-relaxed",children:"⏳ Detecting input type — paste at least a few lines to auto-classify as diff or snippet."}):e.jsx("p",{className:"text-[10px] text-muted-foreground mt-2 leading-relaxed",children:c==="diff"?`⎇ Diff mode · ${t.split(`
|
| 60 |
+
`).length} lines · AI will map changed lines to ranked suspects.`:`{} Snippet mode · ${t.split(`
|
| 61 |
+
`).length} lines · AI will scan this code directly for bugs matching your failure.`})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-[10px] font-mono uppercase tracking-widest text-muted-foreground mb-2 block",children:"Failure description"}),e.jsx(q,{value:d,onChange:f=>p(f.target.value),placeholder:"What broke? Stack trace, error message, observed behavior…",className:"text-sm h-28 resize-none bg-background"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-[10px] font-mono uppercase tracking-widest text-muted-foreground mb-2 block",children:"Editor deep-link prefix"}),e.jsx("input",{value:m,onChange:f=>E(f.target.value),className:"w-full text-xs font-mono px-3 py-2 rounded-md bg-background border border-border focus:border-primary outline-none",placeholder:"vscode://file/ or cursor://file/"}),e.jsx("p",{className:"text-[10px] text-muted-foreground mt-1",children:"Used to jump directly to suspect lines in your editor."})]}),e.jsx(W,{onClick:h,disabled:i,className:"w-full gap-2",children:i?e.jsxs(e.Fragment,{children:[e.jsx(H,{className:"h-4 w-4 animate-spin"})," Analyzing…"]}):e.jsxs(e.Fragment,{children:[e.jsx(D,{className:"h-4 w-4"})," Analyze ",c==="snippet"?"snippet":c==="diff"?"diff":"code"]})}),e.jsxs("div",{className:"rounded-lg border border-yellow-500/30 bg-yellow-500/5 p-3 flex gap-2 text-[11px] text-muted-foreground",children:[e.jsx($,{className:"h-3.5 w-3.5 text-yellow-500 shrink-0 mt-0.5"}),e.jsx("span",{children:"Identifiers, comments, and secrets are stripped server-side before any AI call. Real names are restored locally after analysis."})]})]}),e.jsxs("div",{className:"overflow-y-auto p-8 space-y-5 max-w-4xl",children:[!o&&!i&&e.jsxs("div",{className:"h-full flex flex-col items-center justify-center text-center text-muted-foreground py-24",children:[e.jsx(D,{className:"h-10 w-10 mb-4 text-primary/40"}),e.jsx("p",{className:"text-sm font-medium",children:"Paste a diff and describe the failure"}),e.jsx("p",{className:"text-xs mt-1",children:"BranchDebug will rank suspect changes by likely root cause."})]}),i&&e.jsxs("div",{className:"rounded-xl border border-primary/30 bg-primary/5 p-6 flex items-center gap-3",children:[e.jsx(H,{className:"h-5 w-5 animate-spin text-primary"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-sm",children:"Sanitizing diff and analyzing…"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Tokenize → AI ranks suspects → restore real names"})]})]}),o&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"rounded-xl border border-border bg-surface/60 p-5 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2 flex-wrap",children:[e.jsx("div",{className:"text-[10px] font-mono uppercase tracking-widest text-muted-foreground",children:"Verdict"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(lt,{result:o,mode:c}),e.jsx(nt,{audit:o.audit,stats:o.sanitizationStats})]})]}),e.jsx("p",{className:"text-sm leading-relaxed",children:o.summary}),e.jsxs("div",{className:"flex flex-wrap gap-3 text-[10px] font-mono uppercase tracking-wider text-muted-foreground pt-2 border-t border-border",children:[e.jsxs("span",{children:[e.jsx($,{className:"h-3 w-3 inline mr-1 text-yellow-500"}),o.sanitizationStats.identifiersTokenized," identifiers tokenized"]}),e.jsxs("span",{children:[o.sanitizationStats.commentsStripped," comment lines stripped"]}),e.jsxs("span",{children:[o.sanitizationStats.secretsBlocked," secrets blocked"]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"text-[10px] font-mono uppercase tracking-widest text-muted-foreground",children:["Ranked suspects (",o.suspects.length,")"]}),o.suspects.length===0?e.jsx("p",{className:"text-sm text-muted-foreground",children:"No suspect changes identified."}):o.suspects.map((f,S)=>e.jsx(st,{suspect:f,editorBase:m,rank:S+1},S))]})]})]})]})}function st({suspect:t,editorBase:n,rank:d}){const p=tt[t.confidence],o=`${n}${t.filePath}:${t.lineStart}`,i=()=>{navigator.clipboard.writeText(`${t.filePath}:${t.lineStart}`),y.success("Location copied")};return e.jsxs("div",{className:N("rounded-xl border p-5 space-y-3",p.border,p.bg),children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"flex items-start gap-3 min-w-0",children:[e.jsxs("div",{className:N("h-7 w-7 rounded-full flex items-center justify-center text-[11px] font-bold font-mono shrink-0",p.text,"bg-background border",p.border),children:["#",d]}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsxs("span",{className:N("text-[10px] font-mono uppercase tracking-widest font-bold px-2 py-0.5 rounded",p.bg,p.text,"border",p.border),children:[e.jsx("span",{className:N("inline-block h-1.5 w-1.5 rounded-full mr-1.5",p.dot)}),t.confidence]}),e.jsx("span",{className:"text-sm font-semibold",children:t.changeSummary})]}),e.jsxs("div",{className:"flex items-center gap-1.5 text-xs font-mono text-muted-foreground mt-1.5 min-w-0",children:[e.jsx(U,{className:"h-3 w-3 shrink-0"}),e.jsx("span",{className:"truncate",children:t.filePath}),e.jsxs("span",{className:"text-primary",children:[":",t.lineStart,t.lineEnd!==t.lineStart&&`-${t.lineEnd}`]}),t.functionName&&e.jsxs("span",{className:"text-muted-foreground/60",children:["· ",t.functionName,"()"]})]})]})]}),e.jsxs("div",{className:"flex gap-1 shrink-0",children:[e.jsx("button",{onClick:i,className:"h-7 w-7 rounded-md border border-border bg-background hover:bg-surface flex items-center justify-center text-muted-foreground hover:text-foreground",title:"Copy location",children:e.jsx(X,{className:"h-3 w-3"})}),e.jsxs("a",{href:o,className:"h-7 px-2 rounded-md border border-primary/40 bg-primary/10 hover:bg-primary/20 text-primary text-[10px] font-mono uppercase tracking-widest flex items-center gap-1",title:"Open in editor",children:[e.jsx(B,{className:"h-3 w-3"})," Jump"]})]})]}),e.jsx("p",{className:"text-sm leading-relaxed text-foreground/90",children:t.mechanism}),(t.beforeSnippet||t.afterSnippet)&&e.jsx("div",{className:"rounded-lg border border-border bg-background overflow-hidden",children:e.jsxs("pre",{className:"text-[11px] font-mono leading-relaxed",children:[t.beforeSnippet?.split(`
|
| 62 |
+
`).map((h,a)=>e.jsxs("div",{className:"px-3 py-0.5 text-severity-critical bg-severity-critical/5",children:["- ",h]},`b${a}`)),t.afterSnippet?.split(`
|
| 63 |
+
`).map((h,a)=>e.jsxs("div",{className:"px-3 py-0.5 text-severity-low bg-severity-low/5",children:["+ ",h]},`a${a}`))]})})]})}async function at(t,n){if(t instanceof Response)return`${t.status} ${await t.text().catch(()=>t.statusText||n)}`;const d=t?.message;return d&&d!=="[object Response]"?d:n}function nt({audit:t,stats:n}){const[d,p]=g.useState("tokens"),o=t.sample.original.split(`
|
| 64 |
+
`),i=t.sample.sanitized.split(`
|
| 65 |
+
`),h=Math.max(o.length,i.length);return e.jsxs(le,{children:[e.jsx(de,{asChild:!0,children:e.jsxs("button",{className:"flex items-center gap-1.5 px-2.5 py-1 rounded-md text-[10px] font-mono uppercase tracking-widest border border-yellow-500/40 bg-yellow-500/10 text-yellow-500 hover:bg-yellow-500/20 transition-colors",children:[e.jsx(Re,{className:"h-3 w-3"})," View audit"]})}),e.jsxs(ce,{className:"max-w-4xl max-h-[85vh] flex flex-col p-0 gap-0",children:[e.jsxs(pe,{className:"px-6 pt-5 pb-3 border-b border-border",children:[e.jsxs(me,{className:"flex items-center gap-2",children:[e.jsx($,{className:"h-4 w-4 text-yellow-500"})," IP Shield Audit"]}),e.jsx(he,{className:"text-xs",children:"Everything that was sanitized before the diff reached the AI. Real names and secrets never left your server."})]}),e.jsxs("div",{className:"grid grid-cols-3 border-b border-border",children:[e.jsx(P,{label:"Identifiers tokenized",value:n.identifiersTokenized}),e.jsx(P,{label:"Comment lines stripped",value:n.commentsStripped}),e.jsx(P,{label:"Secrets blocked",value:n.secretsBlocked,highlight:n.secretsBlocked>0})]}),e.jsx("div",{className:"flex gap-1 px-6 pt-3 border-b border-border",children:[["tokens",`Token map (${t.tokenMap.length})`],["comments",`Comments (${t.redactedComments.length})`],["secrets",`Secrets (${t.secretMatches.length})`],["diff","Before / After"]].map(([a,m])=>e.jsx("button",{onClick:()=>p(a),className:N("px-3 py-2 text-[11px] font-mono uppercase tracking-wider border-b-2 transition-colors",d===a?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"),children:m},a))}),e.jsx(xe,{className:"flex-1 min-h-0",children:e.jsxs("div",{className:"p-6",children:[d==="tokens"&&(t.tokenMap.length===0?e.jsx("p",{className:"text-sm text-muted-foreground",children:"No identifiers were tokenized."}):e.jsxs("div",{className:"rounded-lg border border-border overflow-hidden",children:[e.jsxs("div",{className:"grid grid-cols-[1fr_auto_2fr_auto] gap-3 px-4 py-2 bg-surface text-[10px] font-mono uppercase tracking-widest text-muted-foreground border-b border-border",children:[e.jsx("span",{children:"Token sent to AI"}),e.jsx("span",{}),e.jsx("span",{children:"Real identifier (local only)"}),e.jsx("span",{children:"Uses"})]}),t.tokenMap.map(a=>e.jsxs("div",{className:"grid grid-cols-[1fr_auto_2fr_auto] gap-3 px-4 py-2 text-xs font-mono items-center border-b border-border last:border-b-0 hover:bg-surface/50",children:[e.jsx("code",{className:"text-primary",children:a.token}),e.jsx(ye,{className:"h-3 w-3 text-muted-foreground"}),e.jsx("code",{className:"text-foreground truncate",children:a.real}),e.jsxs("span",{className:"text-muted-foreground tabular-nums",children:[a.occurrences,"×"]})]},a.token))]})),d==="comments"&&(t.redactedComments.length===0?e.jsx("p",{className:"text-sm text-muted-foreground",children:"No comments were stripped."}):e.jsx("ul",{className:"space-y-1.5",children:t.redactedComments.map((a,m)=>e.jsxs("li",{className:"rounded-md border border-border bg-surface/40 px-3 py-2 text-xs font-mono text-muted-foreground",children:[e.jsx("span",{className:"text-yellow-500",children:"×"})," ",a]},m))})),d==="secrets"&&(t.secretMatches.length===0?e.jsxs("div",{className:"rounded-lg border border-severity-low/30 bg-severity-low/5 p-4 text-sm flex items-center gap-2 text-severity-low",children:[e.jsx(Q,{className:"h-4 w-4"})," No secret patterns detected in the diff."]}):e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-[11px] text-muted-foreground mb-2",children:"Only the pattern type and length are recorded. The original values were destroyed before reaching this view."}),t.secretMatches.map((a,m)=>e.jsxs("div",{className:"rounded-md border border-severity-critical/30 bg-severity-critical/5 px-3 py-2 flex items-center justify-between text-xs font-mono",children:[e.jsx("span",{className:"text-severity-critical font-semibold",children:a.pattern}),e.jsx("span",{className:"text-muted-foreground",children:a.replaced})]},m))]})),d==="diff"&&e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{className:"text-[11px] text-muted-foreground",children:["Side-by-side preview (first ",h," lines). Left = local, right = exactly what the AI saw."]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[e.jsxs("div",{className:"rounded-lg border border-border bg-surface/40 overflow-hidden",children:[e.jsx("div",{className:"px-3 py-1.5 text-[10px] font-mono uppercase tracking-widest bg-surface border-b border-border",children:"Local (real)"}),e.jsx("pre",{className:"text-[11px] font-mono p-3 leading-relaxed whitespace-pre overflow-x-auto",children:o.map((a,m)=>e.jsxs("div",{className:"flex",children:[e.jsx("span",{className:"text-muted-foreground/40 w-8 shrink-0 select-none",children:m+1}),e.jsx("span",{children:a||" "})]},m))})]}),e.jsxs("div",{className:"rounded-lg border border-yellow-500/30 bg-yellow-500/5 overflow-hidden",children:[e.jsx("div",{className:"px-3 py-1.5 text-[10px] font-mono uppercase tracking-widest bg-yellow-500/10 border-b border-yellow-500/30 text-yellow-500",children:"Sent to AI (sanitized)"}),e.jsx("pre",{className:"text-[11px] font-mono p-3 leading-relaxed whitespace-pre overflow-x-auto",children:i.map((a,m)=>{const c=(a||" ").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/(fn_\d{4})/g,'<span class="text-primary">$1</span>').replace(/(\[SECRET_REDACTED\])/g,'<span class="text-severity-critical font-bold">$1</span>');return e.jsxs("div",{className:"flex",children:[e.jsx("span",{className:"text-muted-foreground/40 w-8 shrink-0 select-none",children:m+1}),e.jsx("span",{dangerouslySetInnerHTML:{__html:c}})]},m)})})]})]})]})]})})]})]})}function P({label:t,value:n,highlight:d}){return e.jsxs("div",{className:"px-6 py-3 border-r border-border last:border-r-0",children:[e.jsx("div",{className:N("text-2xl font-bold tabular-nums",d?"text-severity-critical":"text-foreground"),children:n}),e.jsx("div",{className:"text-[10px] font-mono uppercase tracking-widest text-muted-foreground",children:t})]})}const ee="branchdebug.jiraConfig",te=`h2. Context
|
| 66 |
+
Briefly describe what you were trying to do.
|
| 67 |
+
|
| 68 |
+
h2. Steps to reproduce
|
| 69 |
+
#
|
| 70 |
+
#
|
| 71 |
+
|
| 72 |
+
h2. Expected vs actual
|
| 73 |
+
|
| 74 |
+
{{REPORT}}
|
| 75 |
+
|
| 76 |
+
h2. Notes
|
| 77 |
+
- App: BranchDebug
|
| 78 |
+
- Reporter: {{REPORTER}}
|
| 79 |
+
- Generated: {{TIMESTAMP}}`;function ot(){const t={baseUrl:"",projectKey:"",issueType:"Bug",assignee:"",labels:"",components:"",descriptionTemplate:te};if(typeof window>"u")return t;try{const d=localStorage.getItem(ee);if(d)return{...t,...JSON.parse(d)}}catch{}const n=localStorage.getItem("branchdebug.jiraBaseUrl")||"";return{...t,baseUrl:n}}const K=["Bug","Task","Story","Incident","Epic","Sub-task","Improvement","New Feature"];function it(t){const n={},d=t.baseUrl.trim();if(!d)n.baseUrl="Base URL is required";else try{const o=new URL(d);o.protocol!=="https:"&&o.protocol!=="http:"?n.baseUrl="Must start with https:// or http://":o.hostname.includes(".")?(o.search||o.hash||o.pathname&&o.pathname!=="/"&&o.pathname!=="")&&(n.baseUrl="Use the base URL only — no path, query, or hash"):n.baseUrl="Enter a full hostname (e.g. acme.atlassian.net)"}catch{n.baseUrl="Not a valid URL"}const p=t.issueType.trim();return p&&(p.length>60?n.issueType="Issue type is too long":/^[A-Za-z][A-Za-z0-9 \-]*$/.test(p)?K.some(o=>o.toLowerCase()===p.toLowerCase())||(n.issueType=`Unknown type. Try: ${K.slice(0,4).join(", ")}…`):n.issueType="Letters, numbers, spaces and hyphens only"),n}function lt({result:t,mode:n}){const d=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19),[p,o]=g.useState(!1),[i,h]=g.useState(()=>ot()),a=it(i),m=Object.keys(a).length>0,E=(r,s,v)=>{const u=new Blob([s],{type:v}),w=URL.createObjectURL(u),I=document.createElement("a");I.href=w,I.download=r,I.click(),URL.revokeObjectURL(w),y.success(`Exported ${r}`)},c=()=>{const r={generatedAt:new Date().toISOString(),mode:n,summary:t.summary,suspects:t.suspects,sanitizationStats:t.sanitizationStats};E(`branchdebug-report-${d}.json`,JSON.stringify(r,null,2),"application/json")},R=()=>{const r=[];r.push("# BranchDebug Root-Cause Report"),r.push(""),r.push(`**Generated:** ${new Date().toLocaleString()}`),r.push(`**Mode:** ${n==="snippet"?"Code snippet":n==="diff"?"Git diff":"Unknown"}`),r.push(""),r.push("## Verdict"),r.push(""),r.push(t.summary||"_No summary available._"),r.push(""),r.push("## IP Shield Sanitization"),r.push(""),r.push(`- ${t.sanitizationStats.identifiersTokenized} identifiers tokenized`),r.push(`- ${t.sanitizationStats.commentsStripped} comment lines stripped`),r.push(`- ${t.sanitizationStats.secretsBlocked} secrets blocked`),r.push(""),r.push(`## Ranked Suspects (${t.suspects.length})`),r.push(""),t.suspects.length===0?r.push("_No suspect changes identified._"):t.suspects.forEach((s,v)=>{r.push(`### #${v+1} · [${s.confidence.toUpperCase()}] ${s.changeSummary}`),r.push(""),r.push(`- **File:** \`${s.filePath}\``),r.push(`- **Lines:** ${s.lineStart}${s.lineEnd!==s.lineStart?`–${s.lineEnd}`:""}`),s.functionName&&r.push(`- **Function:** \`${s.functionName}()\``),r.push(""),r.push(`**Mechanism:** ${s.mechanism}`),r.push(""),(s.beforeSnippet||s.afterSnippet)&&(r.push("```diff"),s.beforeSnippet&&s.beforeSnippet.split(`
|
| 80 |
+
`).forEach(u=>r.push(`- ${u}`)),s.afterSnippet&&s.afterSnippet.split(`
|
| 81 |
+
`).forEach(u=>r.push(`+ ${u}`)),r.push("```"),r.push(""))}),E(`branchdebug-report-${d}.md`,r.join(`
|
| 82 |
+
`),"text/markdown")},C=()=>{const r=[];return r.push(`*Mode:* ${n==="snippet"?"Code snippet":n==="diff"?"Git diff":"Unknown"}`),r.push(`*Generated:* ${new Date().toLocaleString()}`),r.push(""),r.push("h2. Verdict"),r.push(t.summary||"_No summary available._"),r.push(""),r.push("h2. IP Shield Sanitization Stats"),r.push(`* ${t.sanitizationStats.identifiersTokenized} identifiers tokenized`),r.push(`* ${t.sanitizationStats.commentsStripped} comment lines stripped`),r.push(`* ${t.sanitizationStats.secretsBlocked} secrets blocked`),r.push(""),r.push(`h2. Ranked Suspects (${t.suspects.length})`),t.suspects.length===0?r.push("_No suspect changes identified._"):t.suspects.forEach((s,v)=>{r.push(`h3. #${v+1} [${s.confidence.toUpperCase()}] ${s.changeSummary}`),r.push(`* *File:* {{${s.filePath}}}`),r.push(`* *Lines:* ${s.lineStart}${s.lineEnd!==s.lineStart?`-${s.lineEnd}`:""}`),s.functionName&&r.push(`* *Function:* {{${s.functionName}()}}`),r.push(`*Mechanism:* ${s.mechanism}`),(s.beforeSnippet||s.afterSnippet)&&(r.push("{code}"),s.beforeSnippet&&s.beforeSnippet.split(`
|
| 83 |
+
`).forEach(u=>r.push(`- ${u}`)),s.afterSnippet&&s.afterSnippet.split(`
|
| 84 |
+
`).forEach(u=>r.push(`+ ${u}`)),r.push("{code}")),r.push("")}),r.join(`
|
| 85 |
+
`)},f=()=>{const r=typeof window<"u"&&window.__bdReporter||"BranchDebug user";return(i.descriptionTemplate?.includes("{{REPORT}}")?i.descriptionTemplate:`${i.descriptionTemplate||""}
|
| 86 |
+
|
| 87 |
+
{{REPORT}}`).replaceAll("{{REPORT}}",C()).replaceAll("{{TIMESTAMP}}",new Date().toLocaleString()).replaceAll("{{REPORTER}}",r).replaceAll("{{MODE}}",n)},S=()=>{const r=i.baseUrl.replace(/\/$/,""),s=t.suspects[0],v=s?`BranchDebug: ${s.changeSummary} (${s.filePath})`:`BranchDebug: ${(t.summary||"Root-cause report").slice(0,80)}`,u=new URLSearchParams;return u.set("summary",v),u.set("description",f()),i.projectKey.trim()&&u.set("pid",i.projectKey.trim()),i.issueType.trim()&&u.set("issuetype",i.issueType.trim()),i.assignee.trim()&&u.set("assignee",i.assignee.trim()),i.labels.split(",").map(w=>w.trim()).filter(Boolean).forEach(w=>u.append("labels",w)),i.components.split(",").map(w=>w.trim()).filter(Boolean).forEach(w=>u.append("components",w)),`${r}/secure/CreateIssue!default.jspa?${u.toString()}`},_=()=>{const r={...i,baseUrl:i.baseUrl.replace(/\/$/,"")};localStorage.setItem(ee,JSON.stringify(r))},A=async()=>{if(m){y.error(a.baseUrl||a.issueType||"Fix the highlighted fields");return}_(),R(),c();try{await navigator.clipboard.writeText(f()),y.success("Description copied · .md + .json downloaded — attach in Jira")}catch{y.message("Description ready — attach the downloaded .md/.json in Jira")}window.open(S(),"_blank","noopener,noreferrer"),o(!1)},z=async()=>{if(m){y.error(a.baseUrl||a.issueType||"Fix the highlighted fields");return}_();try{await navigator.clipboard.writeText(S()),y.success("Jira create-issue link copied to clipboard")}catch{y.error("Could not copy link")}},L=[{key:"baseUrl",label:"Base URL *",placeholder:"https://acme.atlassian.net"},{key:"projectKey",label:"Project key / ID",placeholder:"ENG or 10001"},{key:"issueType",label:"Issue type",placeholder:"Bug, Task, Story, Incident"},{key:"assignee",label:"Assignee (username / accountId)",placeholder:"jdoe"},{key:"labels",label:"Labels (comma-separated)",placeholder:"bug, regression, branch-debug"},{key:"components",label:"Components (comma-separated)",placeholder:"API, Auth"}];return e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsxs("button",{onClick:R,className:"h-7 px-2 rounded-md border border-border bg-background hover:border-primary/40 hover:text-primary text-muted-foreground text-[10px] font-mono uppercase tracking-widest flex items-center gap-1",title:"Export Markdown report",children:[e.jsx(ie,{className:"h-3 w-3"})," .md"]}),e.jsxs("button",{onClick:c,className:"h-7 px-2 rounded-md border border-border bg-background hover:border-primary/40 hover:text-primary text-muted-foreground text-[10px] font-mono uppercase tracking-widest flex items-center gap-1",title:"Export JSON report",children:[e.jsx(_e,{className:"h-3 w-3"})," .json"]}),e.jsxs("button",{onClick:()=>o(!0),className:"h-7 px-2 rounded-md border border-[#2684ff]/40 bg-[#2684ff]/10 hover:bg-[#2684ff]/20 hover:border-[#2684ff] text-[#2684ff] text-[10px] font-mono uppercase tracking-widest flex items-center gap-1",title:"Create Jira ticket with sanitization stats and ranked suspects",children:[e.jsx(G,{className:"h-3 w-3"})," Jira"]}),p&&e.jsx("div",{className:"fixed inset-0 z-50 bg-black/70 flex items-center justify-center p-4 overflow-y-auto",onClick:()=>o(!1),children:e.jsxs("div",{className:"w-full max-w-lg my-8 bg-[#0d1520] border border-border rounded-lg p-5 space-y-3",onClick:r=>r.stopPropagation(),children:[e.jsxs("div",{className:"flex items-center gap-2 text-[#2684ff]",children:[e.jsx(G,{className:"h-4 w-4"}),e.jsx("h3",{className:"text-sm font-mono uppercase tracking-widest",children:"Create Jira ticket"})]}),e.jsxs("p",{className:"text-[11px] text-muted-foreground",children:["Optional fields pre-fill the new issue. Saved locally. Use ","{{REPORT}}",", ","{{TIMESTAMP}}",", ","{{REPORTER}}",", ","{{MODE}}"," in the template."]}),e.jsx("div",{className:"grid grid-cols-2 gap-2",children:L.map(r=>{const s=r.key==="baseUrl"?a.baseUrl:r.key==="issueType"?a.issueType:void 0,v=r.key==="baseUrl";return e.jsxs("label",{className:v?"col-span-2 block":"block",children:[e.jsx("span",{className:"text-[10px] font-mono uppercase tracking-widest text-muted-foreground",children:r.label}),e.jsx("input",{type:"text",value:i[r.key],onChange:u=>h({...i,[r.key]:u.target.value}),placeholder:r.placeholder,"aria-invalid":!!s,"aria-describedby":s?`jira-${r.key}-err`:void 0,className:`mt-1 w-full h-8 px-2 rounded-md bg-[#080c10] border text-xs font-mono text-foreground outline-none ${s?"border-red-500/60 focus:border-red-500":"border-border focus:border-[#2684ff]"}`}),s&&e.jsx("span",{id:`jira-${r.key}-err`,className:"mt-1 block text-[10px] font-mono text-red-400",children:s})]},r.key)})}),e.jsxs("label",{className:"block",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-[10px] font-mono uppercase tracking-widest text-muted-foreground",children:"Description template"}),e.jsx("button",{type:"button",onClick:()=>h({...i,descriptionTemplate:te}),className:"text-[10px] font-mono uppercase tracking-widest text-muted-foreground hover:text-[#2684ff]",children:"Reset"})]}),e.jsx("textarea",{value:i.descriptionTemplate,onChange:r=>h({...i,descriptionTemplate:r.target.value}),rows:6,className:"mt-1 w-full px-2 py-1.5 rounded-md bg-[#080c10] border border-border text-xs font-mono text-foreground focus:border-[#2684ff] outline-none resize-y"})]}),e.jsxs("div",{className:"rounded-md border border-border bg-[#080c10] p-2 flex items-start gap-2",children:[e.jsx(Oe,{className:"h-3 w-3 text-[#2684ff] mt-0.5 flex-shrink-0"}),e.jsxs("p",{className:"text-[10px] text-muted-foreground leading-relaxed",children:["Jira's web URL doesn't support direct file attachments. When you click ",e.jsx("strong",{className:"text-foreground",children:"Open in Jira"}),", the Markdown + JSON reports are auto-downloaded so you can drag-drop them onto the new issue."]})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2 pt-2 flex-wrap",children:[e.jsx("button",{onClick:()=>o(!1),className:"h-8 px-3 rounded-md border border-border text-[10px] font-mono uppercase tracking-widest text-muted-foreground hover:text-foreground",children:"Cancel"}),e.jsxs("button",{onClick:z,disabled:m,className:"h-8 px-3 rounded-md border border-[#2684ff]/40 bg-[#2684ff]/10 hover:bg-[#2684ff]/20 text-[#2684ff] text-[10px] font-mono uppercase tracking-widest flex items-center gap-1 disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-[#2684ff]/10",title:m?"Fix the highlighted fields first":"Copy the full Jira create-issue URL with all parameters",children:[e.jsx($e,{className:"h-3 w-3"})," Copy link"]}),e.jsxs("button",{onClick:A,disabled:m,className:"h-8 px-3 rounded-md bg-[#2684ff] hover:bg-[#2684ff]/90 text-white text-[10px] font-mono uppercase tracking-widest flex items-center gap-1 disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-[#2684ff]",title:m?"Fix the highlighted fields first":void 0,children:[e.jsx(B,{className:"h-3 w-3"})," Open in Jira"]})]})]})})]})}export{vt as component};
|
dist/client/assets/dashboard.coaching-DLmSk2kf.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{r as c,j as e}from"./index-CfFa2yOe.js";import{s as i}from"./client-ioni_H2j.js";import{G as m}from"./graduation-cap-6slvDJ0t.js";import"./tslib.es6-eMSY344_.js";import"./createLucideIcon-CxpWYIt5.js";function f(){const[a,n]=c.useState([]);return c.useEffect(()=>{i.from("incidents").select("title,severity,analysis").eq("status","complete").then(({data:s})=>{const t=[];(s??[]).forEach(r=>(r.analysis?.coachingRecommendations??[]).forEach(o=>t.push({incident:r.title,rec:o,severity:r.severity}))),n(t)})},[]),e.jsxs("div",{className:"p-8 space-y-6",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-widest text-muted-foreground font-mono",children:"Operator Development"}),e.jsx("h1",{className:"text-2xl font-bold",children:"Coaching Bot"})]}),e.jsxs("div",{className:"space-y-2",children:[a.map((s,t)=>e.jsxs("div",{className:"rounded-lg border border-border bg-surface p-4 flex items-start gap-4",children:[e.jsx("div",{className:"h-9 w-9 rounded-lg bg-primary/10 text-primary flex items-center justify-center shrink-0",children:e.jsx(m,{className:"h-4 w-4"})}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"text-sm",children:s.rec}),e.jsxs("p",{className:"text-[11px] text-muted-foreground font-mono mt-1",children:["From: ",s.incident]})]})]},t)),a.length===0&&e.jsx("p",{className:"text-sm text-muted-foreground",children:"No recommendations yet."})]})]})}export{f as component};
|
dist/client/assets/dashboard.compliance-wkmcyW8M.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{r as o,j as e}from"./index-CfFa2yOe.js";import{s as i}from"./client-ioni_H2j.js";import{S as l}from"./severity-badge-ZTZFlOxb.js";import"./tslib.es6-eMSY344_.js";import"./utils-BQHNewu7.js";function f(){const[r,c]=o.useState([]);return o.useEffect(()=>{i.from("incidents").select("title,analysis").eq("status","complete").then(({data:s})=>{const t=[];(s??[]).forEach(a=>(a.analysis?.complianceFlags??[]).forEach(n=>t.push({...n,incident:a.title}))),c(t)})},[]),e.jsxs("div",{className:"p-8 space-y-6",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-widest text-muted-foreground font-mono",children:"Regulatory"}),e.jsx("h1",{className:"text-2xl font-bold",children:"Compliance Bot"})]}),e.jsxs("div",{className:"space-y-2",children:[r.map((s,t)=>e.jsxs("div",{className:"rounded-lg border border-border bg-surface p-4",children:[e.jsxs("div",{className:"flex items-center justify-between mb-1",children:[e.jsx("code",{className:"text-sm font-mono text-primary",children:s.code}),e.jsx(l,{severity:s.severity})]}),e.jsx("p",{className:"text-sm text-foreground/90",children:s.description}),e.jsxs("p",{className:"text-[11px] text-muted-foreground font-mono mt-2",children:["From: ",s.incident]})]},t)),r.length===0&&e.jsx("p",{className:"text-sm text-muted-foreground",children:"No compliance flags yet."})]})]})}export{f as component};
|
dist/client/assets/dashboard.forensic-Br585dp5.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import{c as D,r as o,j as e,t as l}from"./index-CfFa2yOe.js";import{c as M,u as _,T as b,L as T}from"./createServerFn-rAZ5w09o.js";import{B as F}from"./button-BAzW2TLJ.js";import{C as ue,I as h}from"./input-WOEoisk1.js";import{c as he}from"./utils-BQHNewu7.js";import{C as fe}from"./car-CrRh3e9N.js";import{c as j}from"./createLucideIcon-CxpWYIt5.js";import{A as X}from"./activity-DUyzKHVj.js";import{G as ge}from"./git-branch-DyRL9CvM.js";import{T as J}from"./triangle-alert-DXh3iSRC.js";import{S as q}from"./shield-BsNfmvT5.js";import{L as be,S as K,T as je,F as Ne}from"./terminal-CBmIRH_y.js";import{A as ve}from"./arrow-right-CwJHC0j6.js";const ye=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],I=j("circle-check",ye);const we=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],ke=j("circle-x",we);const Se=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],Ce=j("database",Se);const _e=[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z",key:"1xoxul"}],["path",{d:"M9 8V2",key:"14iosj"}]],W=j("plug",_e),Te=M({method:"POST"}).handler(D("d8d794077c60ae4e2ef5312e1967b6d98c1f9fcd718d14d2ad43307fa8e35610")),Fe=M({method:"POST"}).handler(D("1b5dee00655e766d26faf2943aec62c4f4156dd4064a257354f493b25c9f7ec5")),Re=M({method:"POST"}).handler(D("1fc4718c431d60cf1d4df9f23734cc414dc85ebbea371ab7748ae2fd7eb08e84")),x={1:{label:"Stage 1",sub:"Code Only",color:"#4af0c4",time:"Immediate",desc:"Hypotheses & log signatures from the deployed code alone — before the bag finishes downloading."},2:{label:"Stage 2",sub:"Code + Logs",color:"#ffaa00",time:"10–30 min",desc:"Correlate logs against hypotheses. Eliminate, confirm, reconstruct the timeline."},3:{label:"Stage 3",sub:"Full Correlation",color:"#aa88ff",time:"Hours later",desc:"Add ROS bag excerpts. Trace perception → planning → control. Definitive cause + fix."}};function Xe(){const[t,i]=o.useState(""),[a,c]=o.useState(""),[p,Y]=o.useState(""),[A,Z]=o.useState("main"),[N,ee]=o.useState(""),[E,se]=o.useState(""),[L,te]=o.useState(`perception/tracker.py
|
| 2 |
+
planning/policy.py`),[V,O]=o.useState(!1),[G,z]=o.useState(null),[v,B]=o.useState(!1),[n,P]=o.useState(null),[y,ae]=o.useState(""),[w,re]=o.useState(""),[k,oe]=o.useState(""),[m,$]=o.useState(1),[S,H]=o.useState(null),[d,U]=o.useState({1:null,2:null,3:null}),[f,ne]=o.useState(null),ie=_(Te),ce=_(Fe),le=_(Re),de=async()=>{if(!t.trim())return l.error("Enter a vehicle ID first");O(!0),z(null);try{const s=await ie({data:{vehicleId:t.trim(),manifestUrl:a.trim()||void 0,githubRepo:p.trim()||void 0,githubToken:N.trim()||void 0}});z(s.results),l.success("Connection probed")}catch(s){l.error(await R(s,"Connection test failed"))}finally{O(!1)}},me=async()=>{if(!t.trim())return l.error("Vehicle ID required");if(!p.trim())return l.error("GitHub repo (org/repo) is required to fetch deployed files");const s=L.split(`
|
| 3 |
+
`).map(r=>r.trim()).filter(Boolean);if(s.length===0)return l.error("List at least one target file");B(!0),P(null),U({1:null,2:null,3:null});try{const r=await ce({data:{vehicleId:t.trim(),targetFiles:s,manifestUrl:a.trim()||void 0,githubRepo:p.trim(),githubBranch:A.trim()||"main",githubToken:N.trim()||void 0,manualCommit:E.trim()||void 0}});P(r),l.success(`Fetched ${r.files.length} file(s) at ${r.manifest.commitHash.slice(0,8)}`)}catch(r){l.error(await R(r,"Fetch failed"))}finally{B(!1)}},xe=async s=>{if(!n)return l.error("Connect to a vehicle first");if(!y.trim())return l.error("Describe the failure");if(s>=2&&!w.trim())return l.error("Paste system logs for Stage 2");if(s>=3&&!k.trim())return l.error("Paste ROS bag / sensor data for Stage 3");H(s);try{const r=n.files.map(u=>`// ── ${u.path} ──
|
| 4 |
+
${u.content}`).join(`
|
| 5 |
+
|
| 6 |
+
`),g=await le({data:{stage:s,code:r,failureDescription:y,logs:s>=2?w:void 0,bagData:s>=3?k:void 0,priorStage1:s>=2?d[1]:void 0,priorStage2:s>=3?d[2]:void 0}});U(u=>({...u,[s]:g.result})),ne(g.sanitizationStats),s<3&&$(s+1),l.success(`Stage ${s} complete`)}catch(r){l.error(await R(r,`Stage ${s} failed`))}finally{H(null)}},pe=n?Math.max(0,Math.floor((Date.now()-n.manifest.fetchedAt)/1e3)):0;return e.jsxs(e.Fragment,{children:[e.jsxs("header",{className:"h-16 border-b border-border flex items-center justify-between px-8 bg-surface/40 backdrop-blur",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-widest text-muted-foreground font-mono",children:"Engineering · Post-Deployment"}),e.jsxs("h1",{className:"text-lg font-semibold flex items-center gap-2",children:[e.jsx(fe,{className:"h-4 w-4 text-primary"})," Forensics Bot"]})]}),n&&e.jsxs("div",{className:"flex items-center gap-3 text-[11px] font-mono",children:[e.jsxs("span",{className:"flex items-center gap-1.5 text-primary",children:[e.jsx("span",{className:"h-2 w-2 rounded-full bg-primary animate-pulse"}),n.manifest.vehicleId]}),e.jsxs("span",{className:"text-muted-foreground",children:["@ ",n.manifest.commitHash.slice(0,8)]}),e.jsx("span",{className:"text-muted-foreground",children:n.manifest.branch}),e.jsxs("span",{className:"text-muted-foreground",children:[e.jsx(ue,{className:"h-3 w-3 inline mr-1"}),pe,"s ago"]})]})]}),e.jsxs("div",{className:"flex-1 grid grid-cols-1 lg:grid-cols-[420px_1fr] min-h-0 overflow-hidden",children:[e.jsxs("div",{className:"border-r border-border overflow-y-auto p-6 space-y-6 bg-surface/20",children:[e.jsxs("section",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs font-mono uppercase tracking-widest text-muted-foreground",children:[e.jsx(W,{className:"h-3.5 w-3.5 text-primary"})," Connect to vehicle"]}),e.jsx(h,{value:t,onChange:s=>i(s.target.value),placeholder:"Vehicle ID or IP (e.g. AV-073 or 10.42.0.21)"}),e.jsxs("div",{className:"grid grid-cols-1 gap-2",children:[e.jsx(h,{value:a,onChange:s=>c(s.target.value),placeholder:"Manifest server URL (optional)"}),e.jsx(h,{value:p,onChange:s=>Y(s.target.value),placeholder:"GitHub repo (org/repo) — required to fetch files"}),e.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[e.jsx(h,{value:A,onChange:s=>Z(s.target.value),placeholder:"branch (main)"}),e.jsx(h,{value:E,onChange:s=>se(s.target.value),placeholder:"commit (optional)"})]}),e.jsx(h,{type:"password",value:N,onChange:s=>ee(s.target.value),placeholder:"GitHub token (private repos)"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-[10px] font-mono uppercase tracking-widest text-muted-foreground",children:"Target files"}),e.jsx(b,{value:L,onChange:s=>te(s.target.value),rows:3,className:"font-mono text-xs mt-1",placeholder:`perception/tracker.py
|
| 7 |
+
planning/policy.py`})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(F,{variant:"outline",size:"sm",className:"flex-1",onClick:de,disabled:V,children:[V?e.jsx(T,{className:"h-3 w-3 animate-spin"}):e.jsx(X,{className:"h-3 w-3"})," Test"]}),e.jsxs(F,{size:"sm",className:"flex-1 gap-1.5",onClick:me,disabled:v,children:[v?e.jsx(T,{className:"h-3 w-3 animate-spin"}):e.jsx(W,{className:"h-3 w-3"}),v?"Fetching…":"Connect & fetch"]})]}),G&&e.jsx("div",{className:"rounded-md border border-border bg-background p-3 text-[11px] font-mono space-y-1",children:Object.entries(G).map(([s,r])=>e.jsxs("div",{className:"flex justify-between gap-3",children:[e.jsx("span",{className:"text-muted-foreground",children:s}),e.jsx("span",{className:"text-foreground truncate",children:String(r)})]},s))}),n&&e.jsxs("div",{className:"rounded-md border border-primary/40 bg-primary/5 p-3 text-[11px] space-y-1.5",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-primary font-mono uppercase tracking-widest text-[10px]",children:[e.jsx(I,{className:"h-3 w-3"})," Connected · ",n.fetchMethod]}),e.jsxs("div",{className:"font-mono text-muted-foreground",children:[e.jsx(ge,{className:"h-3 w-3 inline mr-1"}),n.manifest.branch," @ ",n.manifest.commitHash.slice(0,12)]}),e.jsxs("div",{className:"text-muted-foreground",children:[n.files.length," file(s) loaded"]}),n.warnings.length>0&&e.jsx("div",{className:"pt-1 border-t border-primary/20 text-yellow-500",children:n.warnings.slice(0,3).map((s,r)=>e.jsxs("div",{className:"flex gap-1",children:[e.jsx(J,{className:"h-3 w-3 shrink-0 mt-0.5"}),s]},r))})]})]}),e.jsxs("section",{className:"space-y-2",children:[e.jsx("div",{className:"text-[10px] font-mono uppercase tracking-widest text-muted-foreground",children:"Failure description"}),e.jsx(b,{value:y,onChange:s=>ae(s.target.value),rows:3,placeholder:"e.g. Vehicle failed to stop for pedestrian at intersection. Clear weather, daytime.",className:"text-xs"})]}),m>=2&&e.jsxs("section",{className:"space-y-2",children:[e.jsx("div",{className:"text-[10px] font-mono uppercase tracking-widest text-yellow-500",children:"System logs (Stage 2)"}),e.jsx(b,{value:w,onChange:s=>re(s.target.value),rows:6,placeholder:`[14:33:18.201] perception: tracker init ok
|
| 8 |
+
[14:33:21.442] FAILURE: emergency brake override`,className:"font-mono text-[11px]"})]}),m>=3&&e.jsxs("section",{className:"space-y-2",children:[e.jsx("div",{className:"text-[10px] font-mono uppercase tracking-widest",style:{color:x[3].color},children:"ROS bag / sensor (Stage 3)"}),e.jsx(b,{value:k,onChange:s=>oe(s.target.value),rows:6,placeholder:`/perception/tracked_objects [14:33:21.101]:
|
| 9 |
+
objects: [{id:7, class:'pedestrian', confidence:0.12}]`,className:"font-mono text-[11px]"})]}),e.jsxs("div",{className:"rounded-lg border border-yellow-500/30 bg-yellow-500/5 p-3 flex gap-2 text-[10px] text-muted-foreground",children:[e.jsx(q,{className:"h-3.5 w-3.5 text-yellow-500 shrink-0 mt-0.5"}),e.jsx("span",{children:"Code, logs, and sensor data are sanitized server-side (identifiers tokenized, comments stripped, secrets redacted) before any AI call. Real names restored locally."})]})]}),e.jsxs("div",{className:"overflow-y-auto p-6 space-y-5",children:[e.jsx("div",{className:"grid grid-cols-3 gap-2",children:[1,2,3].map(s=>{const r=x[s],g=!!d[s],u=m===s,C=s>1&&!d[s-1];return e.jsxs("button",{disabled:C,onClick:()=>$(s),className:he("rounded-lg border p-3 text-left transition-all",C?"opacity-40 cursor-not-allowed":"cursor-pointer hover:border-primary/40",u?"border-primary/60 bg-primary/5":"border-border bg-surface"),style:u?{borderColor:r.color+"80",background:r.color+"10"}:void 0,children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-[10px] font-mono uppercase tracking-widest font-bold",style:{color:r.color},children:r.label}),g&&e.jsx(I,{className:"h-3 w-3",style:{color:r.color}}),C&&e.jsx(be,{className:"h-3 w-3 text-muted-foreground"})]}),e.jsx("div",{className:"text-xs font-medium mt-1",children:r.sub}),e.jsx("div",{className:"text-[10px] text-muted-foreground",children:r.time})]},s)})}),e.jsxs("div",{className:"rounded-xl border p-4 space-y-3",style:{borderColor:x[m].color+"40",background:x[m].color+"06"},children:[e.jsx("p",{className:"text-xs text-muted-foreground leading-relaxed",children:x[m].desc}),e.jsxs(F,{onClick:()=>xe(m),disabled:!n||S!==null,className:"gap-2",style:{background:x[m].color,color:"#001a0d"},children:[S===m?e.jsx(T,{className:"h-4 w-4 animate-spin"}):e.jsx(K,{className:"h-4 w-4"}),"Run Stage ",m," analysis",e.jsx(ve,{className:"h-3 w-3"})]}),!n&&e.jsx("p",{className:"text-[10px] text-yellow-500 font-mono",children:"Connect to a vehicle first."})]}),f&&e.jsxs("div",{className:"rounded-md border border-yellow-500/30 bg-yellow-500/5 p-2.5 flex flex-wrap gap-3 text-[10px] font-mono uppercase tracking-wider text-muted-foreground",children:[e.jsxs("span",{children:[e.jsx(q,{className:"h-3 w-3 inline mr-1 text-yellow-500"}),f.identifiersTokenized," tokens"]}),e.jsxs("span",{children:[f.commentsStripped," comments stripped"]}),e.jsxs("span",{children:[f.secretsBlocked," secrets blocked"]})]}),d[1]&&e.jsx(Ie,{r:d[1]}),d[2]&&e.jsx(De,{r:d[2]}),d[3]&&e.jsx(Me,{r:d[3]}),!d[1]&&!S&&e.jsxs("div",{className:"text-center py-16 text-muted-foreground",children:[e.jsx(je,{className:"h-10 w-10 mx-auto mb-3 text-primary/30"}),e.jsx("p",{className:"text-sm",children:"Connect to a vehicle, describe the failure, then run Stage 1."}),e.jsx("p",{className:"text-xs mt-1",children:"Within 30 seconds you'll have hypotheses to grep against logs."})]})]})]})]})}async function R(t,i){if(t instanceof Response)return`${t.status} ${await t.text().catch(()=>t.statusText||i)}`;const a=t?.message;return a&&a!=="[object Response]"?a:i}function Ie({r:t}){const i=x[1].color;return e.jsxs("section",{className:"rounded-xl border p-5 space-y-4",style:{borderColor:i+"40",background:i+"06"},children:[e.jsxs("div",{className:"flex items-center gap-2 text-[10px] font-mono uppercase tracking-widest",style:{color:i},children:[e.jsx(K,{className:"h-3 w-3"})," Stage 1 — Code-only hypotheses"]}),e.jsx("p",{className:"text-sm font-semibold",children:t.summary}),t.critical_path?.length>0&&e.jsxs("div",{className:"text-xs font-mono text-muted-foreground",children:["Critical path: ",t.critical_path.join(" → ")]}),e.jsx("div",{className:"space-y-2",children:t.hypotheses.map(a=>e.jsxs("div",{className:"rounded-lg border border-border bg-background p-3 space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-[10px] font-mono uppercase tracking-widest font-bold px-2 py-0.5 rounded",style:Q(a.confidence),children:a.confidence}),e.jsxs("span",{className:"text-xs font-semibold",children:[a.id," · ",a.title]})]}),e.jsx("p",{className:"text-xs text-muted-foreground leading-relaxed",children:a.mechanism}),e.jsxs("div",{className:"text-[11px] font-mono bg-surface rounded p-2 text-foreground/80",children:[e.jsx("span",{className:"text-yellow-500",children:"code:"})," ",a.code_evidence]}),a.log_signatures?.length>0&&e.jsxs("div",{className:"text-[11px] font-mono text-muted-foreground",children:["grep for: ",a.log_signatures.map((c,p)=>e.jsx("code",{className:"mx-1 px-1.5 py-0.5 rounded bg-surface text-primary",children:c},p))]}),e.jsxs("div",{className:"text-[10px] text-muted-foreground italic",children:["eliminates if: ",a.eliminates_if]})]},a.id))}),t.what_to_grep?.length>0&&e.jsxs("div",{className:"rounded-md bg-background border border-border p-3 text-[11px] font-mono",children:[e.jsx("div",{className:"text-muted-foreground uppercase text-[10px] tracking-widest mb-1",children:"What to grep in logs"}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:t.what_to_grep.map((a,c)=>e.jsx("code",{className:"px-1.5 py-0.5 rounded bg-surface text-primary",children:a},c))})]})]})}function De({r:t}){const i=x[2].color;return e.jsxs("section",{className:"rounded-xl border p-5 space-y-4",style:{borderColor:i+"40",background:i+"06"},children:[e.jsxs("div",{className:"flex items-center gap-2 text-[10px] font-mono uppercase tracking-widest",style:{color:i},children:[e.jsx(Ce,{className:"h-3 w-3"})," Stage 2 — Logs correlated"]}),e.jsx("p",{className:"text-sm font-semibold",children:t.summary}),e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] font-mono uppercase tracking-widest text-muted-foreground mb-1.5",children:"Timeline"}),e.jsx("div",{className:"space-y-1",children:t.timeline.map((a,c)=>e.jsxs("div",{className:"grid grid-cols-[60px_1fr] gap-3 text-xs items-baseline",children:[e.jsx("span",{className:"font-mono text-yellow-500",children:a.offset}),e.jsxs("div",{children:[e.jsx("span",{children:a.event}),e.jsx("div",{className:"text-[10px] text-muted-foreground font-mono",children:a.source})]})]},c))})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] font-mono uppercase tracking-widest text-muted-foreground mb-1.5",children:"Hypothesis verdicts"}),e.jsx("div",{className:"space-y-1.5",children:t.hypothesis_verdicts.map((a,c)=>e.jsxs("div",{className:"rounded-md border border-border bg-background p-2 text-xs flex gap-2",children:[e.jsxs("span",{className:"font-mono font-bold",style:Ae(a.verdict),children:[a.verdict==="CONFIRMED"?e.jsx(I,{className:"h-3 w-3 inline"}):a.verdict==="ELIMINATED"?e.jsx(ke,{className:"h-3 w-3 inline"}):e.jsx(J,{className:"h-3 w-3 inline"})," ",a.id]}),e.jsx("span",{className:"text-muted-foreground flex-1",children:a.evidence})]},c))})]}),e.jsxs("div",{className:"rounded-lg border border-primary/40 bg-primary/5 p-3 space-y-1.5",children:[e.jsx("div",{className:"text-[10px] font-mono uppercase tracking-widest text-primary",children:"Root cause"}),e.jsxs("div",{className:"text-sm font-semibold",children:[e.jsx(Ne,{className:"h-3.5 w-3.5 inline mr-1"}),t.root_cause.function," ",e.jsxs("span",{className:"text-muted-foreground text-xs font-normal",children:["(",t.root_cause.line_hint,")"]})]}),e.jsx("p",{className:"text-xs leading-relaxed",children:t.root_cause.mechanism}),e.jsxs("span",{className:"text-[10px] font-mono uppercase px-2 py-0.5 rounded inline-block",style:Q(t.root_cause.confidence),children:[t.root_cause.confidence," confidence"]})]}),e.jsxs("div",{className:"text-xs text-muted-foreground italic",children:["What the vehicle saw: ",t.what_vehicle_saw]})]})}function Me({r:t}){const i=x[3].color,a={SENSING:"#44aaff",PROCESSING:"#ffaa00",PLANNING:"#aa88ff",CONTROL:"#ff4444"};return e.jsxs("section",{className:"rounded-xl border p-5 space-y-4",style:{borderColor:i+"40",background:i+"06"},children:[e.jsxs("div",{className:"flex items-center gap-2 text-[10px] font-mono uppercase tracking-widest",style:{color:i},children:[e.jsx(X,{className:"h-3 w-3"})," Stage 3 — Definitive"]}),e.jsx("p",{className:"text-sm font-semibold",children:t.summary}),e.jsxs("div",{className:"inline-block rounded-md px-3 py-1 text-[11px] font-mono uppercase tracking-widest font-bold",style:{background:(a[t.failure_layer]??"#888")+"20",color:a[t.failure_layer]??"#888"},children:["Failure layer: ",t.failure_layer]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-2 text-xs",children:[e.jsxs("div",{className:"rounded-md bg-background border border-border p-2.5",children:[e.jsx("div",{className:"text-[10px] font-mono uppercase text-muted-foreground",children:"Vehicle saw"}),e.jsx("div",{className:"mt-1",children:t.perception_state.what_vehicle_saw})]}),e.jsxs("div",{className:"rounded-md bg-background border border-border p-2.5",children:[e.jsx("div",{className:"text-[10px] font-mono uppercase text-muted-foreground",children:"Should have seen"}),e.jsx("div",{className:"mt-1",children:t.perception_state.what_it_should_have_seen})]}),e.jsxs("div",{className:"rounded-md bg-severity-critical/10 border border-severity-critical/40 p-2.5",children:[e.jsx("div",{className:"text-[10px] font-mono uppercase text-severity-critical",children:"Discrepancy"}),e.jsx("div",{className:"mt-1",children:t.perception_state.discrepancy})]})]}),e.jsx("div",{className:"space-y-1",children:t.full_chain.map((c,p)=>e.jsxs("div",{className:"rounded-md border border-border bg-background p-2.5 text-xs",children:[e.jsx("div",{className:"font-mono uppercase text-[10px] tracking-widest",style:{color:a[c.layer.toUpperCase()]??"#888"},children:c.layer}),e.jsxs("div",{className:"grid grid-cols-3 gap-2 mt-1 text-[11px]",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"in:"})," ",c.input]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"out:"})," ",c.output]}),e.jsx("div",{className:c.issue?"text-severity-critical":"text-muted-foreground",children:c.issue||"—"})]})]},p))}),e.jsxs("div",{className:"rounded-lg border border-primary/40 bg-primary/5 p-3 space-y-2",children:[e.jsx("div",{className:"text-[10px] font-mono uppercase tracking-widest text-primary",children:"Definitive cause"}),e.jsx("div",{className:"text-sm font-semibold",children:t.definitive_cause.function}),e.jsx("p",{className:"text-xs leading-relaxed",children:t.definitive_cause.mechanism})]}),e.jsxs("div",{className:"rounded-lg border border-severity-low/40 bg-severity-low/5 p-3 text-xs",children:[e.jsx("div",{className:"text-[10px] font-mono uppercase tracking-widest text-severity-low mb-1",children:"Fix"}),e.jsx("p",{className:"leading-relaxed",children:t.fix})]}),e.jsxs("div",{className:"rounded-lg border border-border bg-background p-3 text-xs",children:[e.jsx("div",{className:"text-[10px] font-mono uppercase tracking-widest text-muted-foreground mb-1",children:"Regression test"}),e.jsx("p",{className:"leading-relaxed font-mono",children:t.test_case})]})]})}function Q(t){return t==="High"?{background:"rgba(255,68,68,0.15)",color:"#ff6666"}:t==="Medium"?{background:"rgba(255,170,0,0.15)",color:"#ffaa00"}:{background:"rgba(68,170,255,0.15)",color:"#44aaff"}}function Ae(t){return t==="CONFIRMED"?{color:"#4af0c4"}:t==="ELIMINATED"?{color:"#ff6666"}:{color:"#ffaa00"}}export{Xe as component};
|
dist/client/assets/dashboard.forensic-Dzs1zTvd.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{j as e}from"./index-CfFa2yOe.js";const o=({error:t,reset:r})=>e.jsxs("div",{className:"p-8 max-w-2xl mx-auto space-y-4",children:[e.jsx("h2",{className:"text-lg font-semibold text-destructive",children:"Forensic request failed"}),e.jsx("p",{className:"text-sm text-muted-foreground whitespace-pre-wrap",children:t.message}),e.jsx("button",{onClick:()=>r(),className:"px-4 py-2 rounded-md bg-primary text-primary-foreground text-sm font-medium",children:"Try again"})]});export{o as errorComponent};
|
dist/client/assets/dashboard.index-BduboK1J.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import{r as u,j as s,R as xe,c as qo,t as we,d as Pt}from"./index-CfFa2yOe.js";import{s as je}from"./client-ioni_H2j.js";import{c as De,u as Le,P as H,a as L,b as It,d as Ue,e as _t,f as Xo,D as Zo,g as Qo,h as Jo,i as er,j as tr,k as nr,F as mt,C as Ot,l as J,m as or,n as rr,o as sr,R as ir,p as ar,q as cr,r as zt,S as lr}from"./scroll-area-DblZQRqr.js";import{c as dr,a as ur,b as ln,u as G,B as se}from"./button-BAzW2TLJ.js";import{I as Ut,C as fr}from"./input-WOEoisk1.js";import{c as U}from"./utils-BQHNewu7.js";import{c as pr,u as dn,T as mr,L as Ze}from"./createServerFn-rAZ5w09o.js";import{c as Ce}from"./createLucideIcon-CxpWYIt5.js";import{C as We,B as ht}from"./cpu-VePeYMw4.js";import{S as gt}from"./shield-BsNfmvT5.js";import{A as xt}from"./activity-DUyzKHVj.js";import{T as un}from"./triangle-alert-DXh3iSRC.js";import{S as Kt}from"./severity-badge-ZTZFlOxb.js";import{D as hr}from"./download-DQLIuwN2.js";import"./tslib.es6-eMSY344_.js";const gr=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],fn=Ce("chevron-down",gr);const xr=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],vr=Ce("chevron-up",xr);const wr=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M11 18h2",key:"12mj7e"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"M9 13v-.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 .5.5v.5",key:"qbrxap"}]],Gt=Ce("file-type",wr);const yr=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],vt=Ce("refresh-cw",yr);const br=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],Sr=Ce("trash-2",br);const Cr=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],Nr=Ce("upload",Cr);const Rr=[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]],jr=Ce("video",Rr);var Tr=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Ar=Tr.reduce((e,t)=>{const n=dr(`Primitive.${t}`),o=u.forwardRef((r,a)=>{const{asChild:i,...c}=r,l=i?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),s.jsx(l,{...c,ref:a})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{}),Er="Label",pn=u.forwardRef((e,t)=>s.jsx(Ar.label,{...e,ref:t,onMouseDown:n=>{n.target.closest("button, input, select, textarea")||(e.onMouseDown?.(n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));pn.displayName=Er;var mn=pn;const Pr=ur("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),hn=u.forwardRef(({className:e,...t},n)=>s.jsx(mn,{ref:n,className:U(Pr(),e),...t}));hn.displayName=mn.displayName;function Yt(e){const t=Ir(e),n=u.forwardRef((o,r)=>{const{children:a,...i}=o,c=u.Children.toArray(a),l=c.find(Or);if(l){const d=l.props.children,f=c.map(p=>p===l?u.Children.count(d)>1?u.Children.only(null):u.isValidElement(d)?d.props.children:null:p);return s.jsx(t,{...i,ref:r,children:u.isValidElement(d)?u.cloneElement(d,void 0,f):null})}return s.jsx(t,{...i,ref:r,children:a})});return n.displayName=`${e}.Slot`,n}function Ir(e){const t=u.forwardRef((n,o)=>{const{children:r,...a}=n;if(u.isValidElement(r)){const i=kr(r),c=Mr(a,r.props);return r.type!==u.Fragment&&(c.ref=o?ln(o,i):i),u.cloneElement(r,c)}return u.Children.count(r)>1?u.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var _r=Symbol("radix.slottable");function Or(e){return u.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===_r}function Mr(e,t){const n={...t};for(const o in t){const r=e[o],a=t[o];/^on[A-Z]/.test(o)?r&&a?n[o]=(...c)=>{const l=a(...c);return r(...c),l}:r&&(n[o]=r):o==="style"?n[o]={...r,...a}:o==="className"&&(n[o]=[r,a].filter(Boolean).join(" "))}return{...e,...n}}function kr(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function gn(e){const t=e+"CollectionProvider",[n,o]=De(t),[r,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=g=>{const{scope:h,children:b}=g,w=xe.useRef(null),y=xe.useRef(new Map).current;return s.jsx(r,{scope:h,itemMap:y,collectionRef:w,children:b})};i.displayName=t;const c=e+"CollectionSlot",l=Yt(c),d=xe.forwardRef((g,h)=>{const{scope:b,children:w}=g,y=a(c,b),S=G(h,y.collectionRef);return s.jsx(l,{ref:S,children:w})});d.displayName=c;const f=e+"CollectionItemSlot",p="data-radix-collection-item",m=Yt(f),x=xe.forwardRef((g,h)=>{const{scope:b,children:w,...y}=g,S=xe.useRef(null),C=G(h,S),R=a(f,b);return xe.useEffect(()=>(R.itemMap.set(S,{ref:S,...y}),()=>{R.itemMap.delete(S)})),s.jsx(m,{[p]:"",ref:C,children:w})});x.displayName=f;function v(g){const h=a(e+"CollectionConsumer",g);return xe.useCallback(()=>{const w=h.collectionRef.current;if(!w)return[];const y=Array.from(w.querySelectorAll(`[${p}]`));return Array.from(h.itemMap.values()).sort((R,N)=>y.indexOf(R.ref.current)-y.indexOf(N.ref.current))},[h.collectionRef,h.itemMap])}return[{Provider:i,Slot:d,ItemSlot:x},v,o]}var lt="rovingFocusGroup.onEntryFocus",Dr={bubbles:!1,cancelable:!0},Fe="RovingFocusGroup",[wt,xn,Lr]=gn(Fe),[Fr,vn]=De(Fe,[Lr]),[$r,Br]=Fr(Fe),wn=u.forwardRef((e,t)=>s.jsx(wt.Provider,{scope:e.__scopeRovingFocusGroup,children:s.jsx(wt.Slot,{scope:e.__scopeRovingFocusGroup,children:s.jsx(Vr,{...e,ref:t})})}));wn.displayName=Fe;var Vr=u.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:o,loop:r=!1,dir:a,currentTabStopId:i,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:l,onEntryFocus:d,preventScrollOnEntryFocus:f=!1,...p}=e,m=u.useRef(null),x=G(t,m),v=It(a),[g,h]=Ue({prop:i,defaultProp:c??null,onChange:l,caller:Fe}),[b,w]=u.useState(!1),y=_t(d),S=xn(n),C=u.useRef(!1),[R,N]=u.useState(0);return u.useEffect(()=>{const T=m.current;if(T)return T.addEventListener(lt,y),()=>T.removeEventListener(lt,y)},[y]),s.jsx($r,{scope:n,orientation:o,dir:v,loop:r,currentTabStopId:g,onItemFocus:u.useCallback(T=>h(T),[h]),onItemShiftTab:u.useCallback(()=>w(!0),[]),onFocusableItemAdd:u.useCallback(()=>N(T=>T+1),[]),onFocusableItemRemove:u.useCallback(()=>N(T=>T-1),[]),children:s.jsx(H.div,{tabIndex:b||R===0?-1:0,"data-orientation":o,...p,ref:x,style:{outline:"none",...e.style},onMouseDown:L(e.onMouseDown,()=>{C.current=!0}),onFocus:L(e.onFocus,T=>{const k=!C.current;if(T.target===T.currentTarget&&k&&!b){const O=new CustomEvent(lt,Dr);if(T.currentTarget.dispatchEvent(O),!O.defaultPrevented){const M=S().filter(E=>E.focusable),D=M.find(E=>E.active),I=M.find(E=>E.id===g),F=[D,I,...M].filter(Boolean).map(E=>E.ref.current);Sn(F,f)}}C.current=!1}),onBlur:L(e.onBlur,()=>w(!1))})})}),yn="RovingFocusGroupItem",bn=u.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:o=!0,active:r=!1,tabStopId:a,children:i,...c}=e,l=Le(),d=a||l,f=Br(yn,n),p=f.currentTabStopId===d,m=xn(n),{onFocusableItemAdd:x,onFocusableItemRemove:v,currentTabStopId:g}=f;return u.useEffect(()=>{if(o)return x(),()=>v()},[o,x,v]),s.jsx(wt.ItemSlot,{scope:n,id:d,focusable:o,active:r,children:s.jsx(H.span,{tabIndex:p?0:-1,"data-orientation":f.orientation,...c,ref:t,onMouseDown:L(e.onMouseDown,h=>{o?f.onItemFocus(d):h.preventDefault()}),onFocus:L(e.onFocus,()=>f.onItemFocus(d)),onKeyDown:L(e.onKeyDown,h=>{if(h.key==="Tab"&&h.shiftKey){f.onItemShiftTab();return}if(h.target!==h.currentTarget)return;const b=zr(h,f.orientation,f.dir);if(b!==void 0){if(h.metaKey||h.ctrlKey||h.altKey||h.shiftKey)return;h.preventDefault();let y=m().filter(S=>S.focusable).map(S=>S.ref.current);if(b==="last")y.reverse();else if(b==="prev"||b==="next"){b==="prev"&&y.reverse();const S=y.indexOf(h.currentTarget);y=f.loop?Ur(y,S+1):y.slice(S+1)}setTimeout(()=>Sn(y))}}),children:typeof i=="function"?i({isCurrentTabStop:p,hasTabStop:g!=null}):i})})});bn.displayName=yn;var Hr={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Wr(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function zr(e,t,n){const o=Wr(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return Hr[o]}function Sn(e,t=!1){const n=document.activeElement;for(const o of e)if(o===n||(o.focus({preventScroll:t}),document.activeElement!==n))return}function Ur(e,t){return e.map((n,o)=>e[(t+o)%e.length])}var Kr=wn,Gr=bn,Qe="Tabs",[Yr]=De(Qe,[vn]),Cn=vn(),[qr,Mt]=Yr(Qe),Nn=u.forwardRef((e,t)=>{const{__scopeTabs:n,value:o,onValueChange:r,defaultValue:a,orientation:i="horizontal",dir:c,activationMode:l="automatic",...d}=e,f=It(c),[p,m]=Ue({prop:o,onChange:r,defaultProp:a??"",caller:Qe});return s.jsx(qr,{scope:n,baseId:Le(),value:p,onValueChange:m,orientation:i,dir:f,activationMode:l,children:s.jsx(H.div,{dir:f,"data-orientation":i,...d,ref:t})})});Nn.displayName=Qe;var Rn="TabsList",jn=u.forwardRef((e,t)=>{const{__scopeTabs:n,loop:o=!0,...r}=e,a=Mt(Rn,n),i=Cn(n);return s.jsx(Kr,{asChild:!0,...i,orientation:a.orientation,dir:a.dir,loop:o,children:s.jsx(H.div,{role:"tablist","aria-orientation":a.orientation,...r,ref:t})})});jn.displayName=Rn;var Tn="TabsTrigger",An=u.forwardRef((e,t)=>{const{__scopeTabs:n,value:o,disabled:r=!1,...a}=e,i=Mt(Tn,n),c=Cn(n),l=In(i.baseId,o),d=_n(i.baseId,o),f=o===i.value;return s.jsx(Gr,{asChild:!0,...c,focusable:!r,active:f,children:s.jsx(H.button,{type:"button",role:"tab","aria-selected":f,"aria-controls":d,"data-state":f?"active":"inactive","data-disabled":r?"":void 0,disabled:r,id:l,...a,ref:t,onMouseDown:L(e.onMouseDown,p=>{!r&&p.button===0&&p.ctrlKey===!1?i.onValueChange(o):p.preventDefault()}),onKeyDown:L(e.onKeyDown,p=>{[" ","Enter"].includes(p.key)&&i.onValueChange(o)}),onFocus:L(e.onFocus,()=>{const p=i.activationMode!=="manual";!f&&!r&&p&&i.onValueChange(o)})})})});An.displayName=Tn;var En="TabsContent",Pn=u.forwardRef((e,t)=>{const{__scopeTabs:n,value:o,forceMount:r,children:a,...i}=e,c=Mt(En,n),l=In(c.baseId,o),d=_n(c.baseId,o),f=o===c.value,p=u.useRef(f);return u.useEffect(()=>{const m=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(m)},[]),s.jsx(Xo,{present:r||f,children:({present:m})=>s.jsx(H.div,{"data-state":f?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":l,hidden:!m,id:d,tabIndex:0,...i,ref:t,style:{...e.style,animationDuration:p.current?"0s":void 0},children:m&&a})})});Pn.displayName=En;function In(e,t){return`${e}-trigger-${t}`}function _n(e,t){return`${e}-content-${t}`}var Xr=Nn,On=jn,Mn=An,kn=Pn;const Zr=Xr,Dn=u.forwardRef(({className:e,...t},n)=>s.jsx(On,{ref:n,className:U("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...t}));Dn.displayName=On.displayName;const yt=u.forwardRef(({className:e,...t},n)=>s.jsx(Mn,{ref:n,className:U("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",e),...t}));yt.displayName=Mn.displayName;const bt=u.forwardRef(({className:e,...t},n)=>s.jsx(kn,{ref:n,className:U("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...t}));bt.displayName=kn.displayName;const Ln=pr({method:"POST"}).handler(qo("abb0cf5aa49329fb8d77c490610ded4ff76ee16f51e4e0239bbe0ecfdd202def"));function Qr({onCreated:e}){const[t,n]=u.useState(!1),[o,r]=u.useState(!1),[a,i]=u.useState(""),[c,l]=u.useState(""),[d,f]=u.useState(null),[p,m]=u.useState("text"),x=dn(Ln),v=()=>{i(""),l(""),f(null),m("text")},g=async()=>{r(!0);try{let h=null,b=null,w=null,y="text";if(p==="text"){if(!c.trim()&&!a.trim())throw new Error("Type something to analyze");h=c||a}else{if(!d)throw new Error("Select a file");w=d.name;const N=d.name.split(".").pop()?.toLowerCase()??"";y=N==="pdf"?"pdf":["mp4","mov","webm","avi","mkv"].includes(N)?"video":"file";const T=`public/${Date.now()}-${d.name}`,{error:k}=await je.storage.from("incident-files").upload(T,d);if(k)throw k;b=T,["txt","csv","json","log","md","xml","yaml","yml"].includes(N)?(h=await d.text(),y="file"):N==="pdf"?h=`[PDF file: ${d.name}, ${(d.size/1024).toFixed(1)} KB. Extract incident details from the document referenced by file_name.]`:y==="video"&&(h=`[Video file: ${d.name}, ${(d.size/1024/1024).toFixed(2)} MB. Treat as recorded incident footage; analyze based on title + any supplied notes. Recommend transcription if not yet performed.]`)}const S=a.trim()||(h?h.slice(0,80):w)||"Untitled incident",{data:C,error:R}=await je.from("incidents").insert({title:S,raw_text:h,file_url:b,file_name:w,source_type:y,status:"pending"}).select().single();if(R)throw R;we.success("Incident logged. Running multi-agent analysis…"),n(!1),v(),e?.(C.id);try{await x({data:{incidentId:C.id}}),we.success("Analysis complete")}catch(N){we.error(`Analysis failed: ${await qt(N,"Analysis request failed")}`)}}catch(h){we.error(await qt(h,"Request failed"))}finally{r(!1)}};return s.jsxs(Zo,{open:t,onOpenChange:n,children:[s.jsx(Qo,{asChild:!0,children:s.jsxs(se,{className:"bg-primary text-primary-foreground hover:bg-primary/90 font-semibold gap-2",children:[s.jsx(Nr,{className:"h-4 w-4"})," New Incident"]})}),s.jsxs(Jo,{className:"max-w-2xl bg-card border-border",children:[s.jsxs(er,{children:[s.jsx(tr,{children:"Submit incident for analysis"}),s.jsx(nr,{children:"Paste a report/transcript or upload sensor logs, PDF reports, or video evidence. DriveCore will route it through Event, Safety, Risk, and Documentation agents."})]}),s.jsxs("div",{className:"space-y-4",children:[s.jsxs("div",{className:"space-y-2",children:[s.jsx(hn,{children:"Incident title"}),s.jsx(Ut,{value:a,onChange:h=>i(h.target.value),placeholder:"e.g. Sudden braking event — I-280 NB"})]}),s.jsxs(Zr,{value:p,onValueChange:h=>m(h),children:[s.jsxs(Dn,{className:"grid grid-cols-2 w-full bg-surface",children:[s.jsxs(yt,{value:"text",className:"gap-2",children:[s.jsx(mt,{className:"h-3.5 w-3.5"}),"Paste text"]}),s.jsxs(yt,{value:"file",className:"gap-2",children:[s.jsx(Gt,{className:"h-3.5 w-3.5"}),"Upload file"]})]}),s.jsx(bt,{value:"text",className:"mt-3",children:s.jsx(mr,{value:c,onChange:h=>l(h.target.value),placeholder:"Paste incident report, video transcript, or sensor log summary…",className:"min-h-[200px] font-mono text-xs"})}),s.jsxs(bt,{value:"file",className:"mt-3 space-y-3",children:[s.jsx(Ut,{type:"file",accept:".txt,.csv,.json,.log,.md,.pdf,.mp4,.mov,.webm,.xml,.yaml,.yml",onChange:h=>f(h.target.files?.[0]??null)}),d&&s.jsxs("div",{className:"text-xs text-muted-foreground flex items-center gap-2 font-mono",children:[d.name.endsWith(".pdf")?s.jsx(Gt,{className:"h-3.5 w-3.5"}):d.name.match(/\.(mp4|mov|webm)$/i)?s.jsx(jr,{className:"h-3.5 w-3.5"}):s.jsx(mt,{className:"h-3.5 w-3.5"}),d.name," · ",(d.size/1024).toFixed(1)," KB"]}),s.jsx("p",{className:"text-[11px] text-muted-foreground",children:"Supported: text logs (.txt/.csv/.json/.log), PDF reports, video files. Files are stored privately to your account."})]})]})]}),s.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[s.jsx(se,{variant:"ghost",onClick:()=>n(!1),disabled:o,children:"Cancel"}),s.jsx(se,{onClick:g,disabled:o,className:"bg-primary text-primary-foreground hover:bg-primary/90",children:o?s.jsxs(s.Fragment,{children:[s.jsx(Ze,{className:"h-4 w-4 animate-spin mr-2"}),"Analyzing…"]}):"Submit & analyze"})]})]})]})}async function qt(e,t){if(e instanceof Response)return`${e.status} ${await e.text().catch(()=>e.statusText||t)}`;const n=e?.message;return n&&n!=="[object Response]"?n:t}const Be=[{key:"event",label:"Event Extraction",icon:We,task:"Parsing timeline & sensor events…"},{key:"safety",label:"Safety",icon:gt,task:"Cross-checking NHTSA / ISO 26262…"},{key:"risk",label:"Risk",icon:xt,task:"Inferring probable root causes…"},{key:"docs",label:"Documentation",icon:ht,task:"Drafting safety report…"}],Xt=1400;function Jr(){const[e,t]=u.useState(0),[n,o]=u.useState(0);u.useEffect(()=>{const i=setInterval(()=>{o(c=>c+1),t(c=>(c+1)%Be.length)},Xt);return()=>clearInterval(i)},[]);const[r,a]=u.useState(0);return u.useEffect(()=>{a(0);const i=Date.now(),c=setInterval(()=>{const l=Math.min(100,(Date.now()-i)/Xt*100);a(l),l>=100&&clearInterval(c)},40);return()=>clearInterval(c)},[n]),s.jsxs("div",{className:"rounded-xl border border-primary/30 bg-primary/5 p-5 space-y-4 overflow-hidden relative",children:[s.jsx("div",{className:"absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-primary to-transparent opacity-60 animate-[scanline_2.4s_linear_infinite]"}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(Ze,{className:"h-4 w-4 animate-spin text-primary"}),s.jsx("p",{className:"font-medium text-sm",children:"Multi-agent analysis in progress"}),s.jsxs("span",{className:"ml-auto text-[10px] font-mono uppercase tracking-widest text-muted-foreground",children:[String(e+1).padStart(2,"0")," / ",String(Be.length).padStart(2,"0")]})]}),s.jsx("div",{className:"grid grid-cols-4 gap-2",children:Be.map((i,c)=>{const l=i.icon,d=c<e?"done":c===e?"active":"pending";return s.jsxs("div",{className:U("rounded-lg border p-3 transition-colors duration-300",d==="done"&&"border-severity-low/40 bg-severity-low/5",d==="active"&&"border-primary/60 bg-primary/10 shadow-[0_0_20px_-8px_hsl(var(--primary))]",d==="pending"&&"border-border bg-surface/40 opacity-60"),children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("div",{className:U("h-7 w-7 rounded-md flex items-center justify-center shrink-0 transition-colors",d==="done"&&"bg-severity-low/20 text-severity-low",d==="active"&&"bg-primary/20 text-primary",d==="pending"&&"bg-muted/30 text-muted-foreground"),children:d==="done"?s.jsx(Ot,{className:"h-3.5 w-3.5"}):d==="active"?s.jsx(l,{className:"h-3.5 w-3.5 animate-pulse"}):s.jsx(l,{className:"h-3.5 w-3.5"})}),s.jsxs("div",{className:"min-w-0",children:[s.jsxs("div",{className:"text-[10px] font-mono uppercase tracking-wider text-muted-foreground truncate",children:["Agent ",c+1]}),s.jsx("div",{className:"text-xs font-medium truncate",children:i.label})]})]}),s.jsx("div",{className:"mt-2 h-1 w-full rounded-full bg-background/60 overflow-hidden",children:s.jsx("div",{className:U("h-full rounded-full transition-all",d==="done"&&"w-full bg-severity-low",d==="active"&&"bg-primary",d==="pending"&&"w-0 bg-primary"),style:d==="active"?{width:`${r}%`}:void 0})})]},i.key)})}),s.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground font-mono",children:[s.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-primary animate-pulse"}),s.jsx("span",{className:"truncate",children:Be[e].task})]}),s.jsx("style",{children:`
|
| 2 |
+
@keyframes scanline {
|
| 3 |
+
0% { transform: translateX(-100%); }
|
| 4 |
+
100% { transform: translateX(100%); }
|
| 5 |
+
}
|
| 6 |
+
`})]})}const dt=[{key:"queued",label:"Queued"},{key:"analyzing",label:"Analyzing"},{key:"completed",label:"Completed"}];function es(e){return e==="complete"||e==="completed"?"completed":e==="analyzing"||e==="processing"?"analyzing":e==="failed"?"failed":"queued"}function ts({status:e}){const t=es(e),n=t==="failed",o=n?1:dt.findIndex(r=>r.key===t);return s.jsxs("div",{className:"rounded-xl border border-border bg-surface/60 p-4",children:[s.jsx("div",{className:"text-[10px] uppercase tracking-widest text-muted-foreground font-mono mb-3",children:"Pipeline status"}),s.jsx("div",{className:"flex items-center gap-2",children:dt.map((r,a)=>{const i=a<o,c=a===o&&!n,l=n&&a===1,d=l?un:i?Ot:c?Ze:fr;return s.jsxs("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[s.jsx("div",{className:U("h-7 w-7 rounded-full flex items-center justify-center shrink-0 border",l&&"bg-destructive/15 border-destructive text-destructive",i&&"bg-severity-low/20 border-severity-low text-severity-low",c&&"bg-primary/15 border-primary text-primary",!i&&!c&&!l&&"bg-surface border-border text-muted-foreground"),children:s.jsx(d,{className:U("h-3.5 w-3.5",c&&"animate-spin")})}),s.jsx("div",{className:"min-w-0 flex-1",children:s.jsx("div",{className:U("text-xs font-medium truncate",l&&"text-destructive",c&&"text-foreground",!c&&!l&&"text-muted-foreground"),children:l?"Failed":r.label})}),a<dt.length-1&&s.jsx("div",{className:U("h-px flex-1 min-w-4",i?"bg-severity-low/60":l?"bg-destructive/40":"bg-border")})]},r.key)})})]})}const ns=["top","right","bottom","left"],de=Math.min,q=Math.max,Ke=Math.round,Ve=Math.floor,oe=e=>({x:e,y:e}),os={left:"right",right:"left",bottom:"top",top:"bottom"};function St(e,t,n){return q(e,de(t,n))}function ie(e,t){return typeof e=="function"?e(t):e}function ae(e){return e.split("-")[0]}function Ee(e){return e.split("-")[1]}function kt(e){return e==="x"?"y":"x"}function Dt(e){return e==="y"?"height":"width"}function ne(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function Lt(e){return kt(ne(e))}function rs(e,t,n){n===void 0&&(n=!1);const o=Ee(e),r=Lt(e),a=Dt(r);let i=r==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return t.reference[a]>t.floating[a]&&(i=Ge(i)),[i,Ge(i)]}function ss(e){const t=Ge(e);return[Ct(e),t,Ct(t)]}function Ct(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const Zt=["left","right"],Qt=["right","left"],is=["top","bottom"],as=["bottom","top"];function cs(e,t,n){switch(e){case"top":case"bottom":return n?t?Qt:Zt:t?Zt:Qt;case"left":case"right":return t?is:as;default:return[]}}function ls(e,t,n,o){const r=Ee(e);let a=cs(ae(e),n==="start",o);return r&&(a=a.map(i=>i+"-"+r),t&&(a=a.concat(a.map(Ct)))),a}function Ge(e){const t=ae(e);return os[t]+e.slice(t.length)}function ds(e){return{top:0,right:0,bottom:0,left:0,...e}}function Fn(e){return typeof e!="number"?ds(e):{top:e,right:e,bottom:e,left:e}}function Ye(e){const{x:t,y:n,width:o,height:r}=e;return{width:o,height:r,top:n,left:t,right:t+o,bottom:n+r,x:t,y:n}}function Jt(e,t,n){let{reference:o,floating:r}=e;const a=ne(t),i=Lt(t),c=Dt(i),l=ae(t),d=a==="y",f=o.x+o.width/2-r.width/2,p=o.y+o.height/2-r.height/2,m=o[c]/2-r[c]/2;let x;switch(l){case"top":x={x:f,y:o.y-r.height};break;case"bottom":x={x:f,y:o.y+o.height};break;case"right":x={x:o.x+o.width,y:p};break;case"left":x={x:o.x-r.width,y:p};break;default:x={x:o.x,y:o.y}}switch(Ee(t)){case"start":x[i]-=m*(n&&d?-1:1);break;case"end":x[i]+=m*(n&&d?-1:1);break}return x}async function us(e,t){var n;t===void 0&&(t={});const{x:o,y:r,platform:a,rects:i,elements:c,strategy:l}=e,{boundary:d="clippingAncestors",rootBoundary:f="viewport",elementContext:p="floating",altBoundary:m=!1,padding:x=0}=ie(t,e),v=Fn(x),h=c[m?p==="floating"?"reference":"floating":p],b=Ye(await a.getClippingRect({element:(n=await(a.isElement==null?void 0:a.isElement(h)))==null||n?h:h.contextElement||await(a.getDocumentElement==null?void 0:a.getDocumentElement(c.floating)),boundary:d,rootBoundary:f,strategy:l})),w=p==="floating"?{x:o,y:r,width:i.floating.width,height:i.floating.height}:i.reference,y=await(a.getOffsetParent==null?void 0:a.getOffsetParent(c.floating)),S=await(a.isElement==null?void 0:a.isElement(y))?await(a.getScale==null?void 0:a.getScale(y))||{x:1,y:1}:{x:1,y:1},C=Ye(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:c,rect:w,offsetParent:y,strategy:l}):w);return{top:(b.top-C.top+v.top)/S.y,bottom:(C.bottom-b.bottom+v.bottom)/S.y,left:(b.left-C.left+v.left)/S.x,right:(C.right-b.right+v.right)/S.x}}const fs=50,ps=async(e,t,n)=>{const{placement:o="bottom",strategy:r="absolute",middleware:a=[],platform:i}=n,c=i.detectOverflow?i:{...i,detectOverflow:us},l=await(i.isRTL==null?void 0:i.isRTL(t));let d=await i.getElementRects({reference:e,floating:t,strategy:r}),{x:f,y:p}=Jt(d,o,l),m=o,x=0;const v={};for(let g=0;g<a.length;g++){const h=a[g];if(!h)continue;const{name:b,fn:w}=h,{x:y,y:S,data:C,reset:R}=await w({x:f,y:p,initialPlacement:o,placement:m,strategy:r,middlewareData:v,rects:d,platform:c,elements:{reference:e,floating:t}});f=y??f,p=S??p,v[b]={...v[b],...C},R&&x<fs&&(x++,typeof R=="object"&&(R.placement&&(m=R.placement),R.rects&&(d=R.rects===!0?await i.getElementRects({reference:e,floating:t,strategy:r}):R.rects),{x:f,y:p}=Jt(d,m,l)),g=-1)}return{x:f,y:p,placement:m,strategy:r,middlewareData:v}},ms=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:o,placement:r,rects:a,platform:i,elements:c,middlewareData:l}=t,{element:d,padding:f=0}=ie(e,t)||{};if(d==null)return{};const p=Fn(f),m={x:n,y:o},x=Lt(r),v=Dt(x),g=await i.getDimensions(d),h=x==="y",b=h?"top":"left",w=h?"bottom":"right",y=h?"clientHeight":"clientWidth",S=a.reference[v]+a.reference[x]-m[x]-a.floating[v],C=m[x]-a.reference[x],R=await(i.getOffsetParent==null?void 0:i.getOffsetParent(d));let N=R?R[y]:0;(!N||!await(i.isElement==null?void 0:i.isElement(R)))&&(N=c.floating[y]||a.floating[v]);const T=S/2-C/2,k=N/2-g[v]/2-1,O=de(p[b],k),M=de(p[w],k),D=O,I=N-g[v]-M,P=N/2-g[v]/2+T,F=St(D,P,I),E=!l.arrow&&Ee(r)!=null&&P!==F&&a.reference[v]/2-(P<D?O:M)-g[v]/2<0,_=E?P<D?P-D:P-I:0;return{[x]:m[x]+_,data:{[x]:F,centerOffset:P-F-_,...E&&{alignmentOffset:_}},reset:E}}}),hs=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,o;const{placement:r,middlewareData:a,rects:i,initialPlacement:c,platform:l,elements:d}=t,{mainAxis:f=!0,crossAxis:p=!0,fallbackPlacements:m,fallbackStrategy:x="bestFit",fallbackAxisSideDirection:v="none",flipAlignment:g=!0,...h}=ie(e,t);if((n=a.arrow)!=null&&n.alignmentOffset)return{};const b=ae(r),w=ne(c),y=ae(c)===c,S=await(l.isRTL==null?void 0:l.isRTL(d.floating)),C=m||(y||!g?[Ge(c)]:ss(c)),R=v!=="none";!m&&R&&C.push(...ls(c,g,v,S));const N=[c,...C],T=await l.detectOverflow(t,h),k=[];let O=((o=a.flip)==null?void 0:o.overflows)||[];if(f&&k.push(T[b]),p){const P=rs(r,i,S);k.push(T[P[0]],T[P[1]])}if(O=[...O,{placement:r,overflows:k}],!k.every(P=>P<=0)){var M,D;const P=(((M=a.flip)==null?void 0:M.index)||0)+1,F=N[P];if(F&&(!(p==="alignment"?w!==ne(F):!1)||O.every(A=>ne(A.placement)===w?A.overflows[0]>0:!0)))return{data:{index:P,overflows:O},reset:{placement:F}};let E=(D=O.filter(_=>_.overflows[0]<=0).sort((_,A)=>_.overflows[1]-A.overflows[1])[0])==null?void 0:D.placement;if(!E)switch(x){case"bestFit":{var I;const _=(I=O.filter(A=>{if(R){const $=ne(A.placement);return $===w||$==="y"}return!0}).map(A=>[A.placement,A.overflows.filter($=>$>0).reduce(($,Y)=>$+Y,0)]).sort((A,$)=>A[1]-$[1])[0])==null?void 0:I[0];_&&(E=_);break}case"initialPlacement":E=c;break}if(r!==E)return{reset:{placement:E}}}return{}}}};function en(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function tn(e){return ns.some(t=>e[t]>=0)}const gs=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n,platform:o}=t,{strategy:r="referenceHidden",...a}=ie(e,t);switch(r){case"referenceHidden":{const i=await o.detectOverflow(t,{...a,elementContext:"reference"}),c=en(i,n.reference);return{data:{referenceHiddenOffsets:c,referenceHidden:tn(c)}}}case"escaped":{const i=await o.detectOverflow(t,{...a,altBoundary:!0}),c=en(i,n.floating);return{data:{escapedOffsets:c,escaped:tn(c)}}}default:return{}}}}},$n=new Set(["left","top"]);async function xs(e,t){const{placement:n,platform:o,elements:r}=e,a=await(o.isRTL==null?void 0:o.isRTL(r.floating)),i=ae(n),c=Ee(n),l=ne(n)==="y",d=$n.has(i)?-1:1,f=a&&l?-1:1,p=ie(t,e);let{mainAxis:m,crossAxis:x,alignmentAxis:v}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return c&&typeof v=="number"&&(x=c==="end"?v*-1:v),l?{x:x*f,y:m*d}:{x:m*d,y:x*f}}const vs=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,o;const{x:r,y:a,placement:i,middlewareData:c}=t,l=await xs(t,e);return i===((n=c.offset)==null?void 0:n.placement)&&(o=c.arrow)!=null&&o.alignmentOffset?{}:{x:r+l.x,y:a+l.y,data:{...l,placement:i}}}}},ws=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:o,placement:r,platform:a}=t,{mainAxis:i=!0,crossAxis:c=!1,limiter:l={fn:b=>{let{x:w,y}=b;return{x:w,y}}},...d}=ie(e,t),f={x:n,y:o},p=await a.detectOverflow(t,d),m=ne(ae(r)),x=kt(m);let v=f[x],g=f[m];if(i){const b=x==="y"?"top":"left",w=x==="y"?"bottom":"right",y=v+p[b],S=v-p[w];v=St(y,v,S)}if(c){const b=m==="y"?"top":"left",w=m==="y"?"bottom":"right",y=g+p[b],S=g-p[w];g=St(y,g,S)}const h=l.fn({...t,[x]:v,[m]:g});return{...h,data:{x:h.x-n,y:h.y-o,enabled:{[x]:i,[m]:c}}}}}},ys=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:o,placement:r,rects:a,middlewareData:i}=t,{offset:c=0,mainAxis:l=!0,crossAxis:d=!0}=ie(e,t),f={x:n,y:o},p=ne(r),m=kt(p);let x=f[m],v=f[p];const g=ie(c,t),h=typeof g=="number"?{mainAxis:g,crossAxis:0}:{mainAxis:0,crossAxis:0,...g};if(l){const y=m==="y"?"height":"width",S=a.reference[m]-a.floating[y]+h.mainAxis,C=a.reference[m]+a.reference[y]-h.mainAxis;x<S?x=S:x>C&&(x=C)}if(d){var b,w;const y=m==="y"?"width":"height",S=$n.has(ae(r)),C=a.reference[p]-a.floating[y]+(S&&((b=i.offset)==null?void 0:b[p])||0)+(S?0:h.crossAxis),R=a.reference[p]+a.reference[y]+(S?0:((w=i.offset)==null?void 0:w[p])||0)-(S?h.crossAxis:0);v<C?v=C:v>R&&(v=R)}return{[m]:x,[p]:v}}}},bs=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,o;const{placement:r,rects:a,platform:i,elements:c}=t,{apply:l=()=>{},...d}=ie(e,t),f=await i.detectOverflow(t,d),p=ae(r),m=Ee(r),x=ne(r)==="y",{width:v,height:g}=a.floating;let h,b;p==="top"||p==="bottom"?(h=p,b=m===(await(i.isRTL==null?void 0:i.isRTL(c.floating))?"start":"end")?"left":"right"):(b=p,h=m==="end"?"top":"bottom");const w=g-f.top-f.bottom,y=v-f.left-f.right,S=de(g-f[h],w),C=de(v-f[b],y),R=!t.middlewareData.shift;let N=S,T=C;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(T=y),(o=t.middlewareData.shift)!=null&&o.enabled.y&&(N=w),R&&!m){const O=q(f.left,0),M=q(f.right,0),D=q(f.top,0),I=q(f.bottom,0);x?T=v-2*(O!==0||M!==0?O+M:q(f.left,f.right)):N=g-2*(D!==0||I!==0?D+I:q(f.top,f.bottom))}await l({...t,availableWidth:T,availableHeight:N});const k=await i.getDimensions(c.floating);return v!==k.width||g!==k.height?{reset:{rects:!0}}:{}}}};function Je(){return typeof window<"u"}function Pe(e){return Bn(e)?(e.nodeName||"").toLowerCase():"#document"}function X(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function re(e){var t;return(t=(Bn(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Bn(e){return Je()?e instanceof Node||e instanceof X(e).Node:!1}function ee(e){return Je()?e instanceof Element||e instanceof X(e).Element:!1}function ce(e){return Je()?e instanceof HTMLElement||e instanceof X(e).HTMLElement:!1}function nn(e){return!Je()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof X(e).ShadowRoot}function $e(e){const{overflow:t,overflowX:n,overflowY:o,display:r}=te(e);return/auto|scroll|overlay|hidden|clip/.test(t+o+n)&&r!=="inline"&&r!=="contents"}function Ss(e){return/^(table|td|th)$/.test(Pe(e))}function et(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const Cs=/transform|translate|scale|rotate|perspective|filter/,Ns=/paint|layout|strict|content/,ve=e=>!!e&&e!=="none";let ut;function Ft(e){const t=ee(e)?te(e):e;return ve(t.transform)||ve(t.translate)||ve(t.scale)||ve(t.rotate)||ve(t.perspective)||!$t()&&(ve(t.backdropFilter)||ve(t.filter))||Cs.test(t.willChange||"")||Ns.test(t.contain||"")}function Rs(e){let t=ue(e);for(;ce(t)&&!Ae(t);){if(Ft(t))return t;if(et(t))return null;t=ue(t)}return null}function $t(){return ut==null&&(ut=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),ut}function Ae(e){return/^(html|body|#document)$/.test(Pe(e))}function te(e){return X(e).getComputedStyle(e)}function tt(e){return ee(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function ue(e){if(Pe(e)==="html")return e;const t=e.assignedSlot||e.parentNode||nn(e)&&e.host||re(e);return nn(t)?t.host:t}function Vn(e){const t=ue(e);return Ae(t)?e.ownerDocument?e.ownerDocument.body:e.body:ce(t)&&$e(t)?t:Vn(t)}function ke(e,t,n){var o;t===void 0&&(t=[]),n===void 0&&(n=!0);const r=Vn(e),a=r===((o=e.ownerDocument)==null?void 0:o.body),i=X(r);if(a){const c=Nt(i);return t.concat(i,i.visualViewport||[],$e(r)?r:[],c&&n?ke(c):[])}else return t.concat(r,ke(r,[],n))}function Nt(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Hn(e){const t=te(e);let n=parseFloat(t.width)||0,o=parseFloat(t.height)||0;const r=ce(e),a=r?e.offsetWidth:n,i=r?e.offsetHeight:o,c=Ke(n)!==a||Ke(o)!==i;return c&&(n=a,o=i),{width:n,height:o,$:c}}function Bt(e){return ee(e)?e:e.contextElement}function Te(e){const t=Bt(e);if(!ce(t))return oe(1);const n=t.getBoundingClientRect(),{width:o,height:r,$:a}=Hn(t);let i=(a?Ke(n.width):n.width)/o,c=(a?Ke(n.height):n.height)/r;return(!i||!Number.isFinite(i))&&(i=1),(!c||!Number.isFinite(c))&&(c=1),{x:i,y:c}}const js=oe(0);function Wn(e){const t=X(e);return!$t()||!t.visualViewport?js:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Ts(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==X(e)?!1:t}function ye(e,t,n,o){t===void 0&&(t=!1),n===void 0&&(n=!1);const r=e.getBoundingClientRect(),a=Bt(e);let i=oe(1);t&&(o?ee(o)&&(i=Te(o)):i=Te(e));const c=Ts(a,n,o)?Wn(a):oe(0);let l=(r.left+c.x)/i.x,d=(r.top+c.y)/i.y,f=r.width/i.x,p=r.height/i.y;if(a){const m=X(a),x=o&&ee(o)?X(o):o;let v=m,g=Nt(v);for(;g&&o&&x!==v;){const h=Te(g),b=g.getBoundingClientRect(),w=te(g),y=b.left+(g.clientLeft+parseFloat(w.paddingLeft))*h.x,S=b.top+(g.clientTop+parseFloat(w.paddingTop))*h.y;l*=h.x,d*=h.y,f*=h.x,p*=h.y,l+=y,d+=S,v=X(g),g=Nt(v)}}return Ye({width:f,height:p,x:l,y:d})}function nt(e,t){const n=tt(e).scrollLeft;return t?t.left+n:ye(re(e)).left+n}function zn(e,t){const n=e.getBoundingClientRect(),o=n.left+t.scrollLeft-nt(e,n),r=n.top+t.scrollTop;return{x:o,y:r}}function As(e){let{elements:t,rect:n,offsetParent:o,strategy:r}=e;const a=r==="fixed",i=re(o),c=t?et(t.floating):!1;if(o===i||c&&a)return n;let l={scrollLeft:0,scrollTop:0},d=oe(1);const f=oe(0),p=ce(o);if((p||!p&&!a)&&((Pe(o)!=="body"||$e(i))&&(l=tt(o)),p)){const x=ye(o);d=Te(o),f.x=x.x+o.clientLeft,f.y=x.y+o.clientTop}const m=i&&!p&&!a?zn(i,l):oe(0);return{width:n.width*d.x,height:n.height*d.y,x:n.x*d.x-l.scrollLeft*d.x+f.x+m.x,y:n.y*d.y-l.scrollTop*d.y+f.y+m.y}}function Es(e){return Array.from(e.getClientRects())}function Ps(e){const t=re(e),n=tt(e),o=e.ownerDocument.body,r=q(t.scrollWidth,t.clientWidth,o.scrollWidth,o.clientWidth),a=q(t.scrollHeight,t.clientHeight,o.scrollHeight,o.clientHeight);let i=-n.scrollLeft+nt(e);const c=-n.scrollTop;return te(o).direction==="rtl"&&(i+=q(t.clientWidth,o.clientWidth)-r),{width:r,height:a,x:i,y:c}}const on=25;function Is(e,t){const n=X(e),o=re(e),r=n.visualViewport;let a=o.clientWidth,i=o.clientHeight,c=0,l=0;if(r){a=r.width,i=r.height;const f=$t();(!f||f&&t==="fixed")&&(c=r.offsetLeft,l=r.offsetTop)}const d=nt(o);if(d<=0){const f=o.ownerDocument,p=f.body,m=getComputedStyle(p),x=f.compatMode==="CSS1Compat"&&parseFloat(m.marginLeft)+parseFloat(m.marginRight)||0,v=Math.abs(o.clientWidth-p.clientWidth-x);v<=on&&(a-=v)}else d<=on&&(a+=d);return{width:a,height:i,x:c,y:l}}function _s(e,t){const n=ye(e,!0,t==="fixed"),o=n.top+e.clientTop,r=n.left+e.clientLeft,a=ce(e)?Te(e):oe(1),i=e.clientWidth*a.x,c=e.clientHeight*a.y,l=r*a.x,d=o*a.y;return{width:i,height:c,x:l,y:d}}function rn(e,t,n){let o;if(t==="viewport")o=Is(e,n);else if(t==="document")o=Ps(re(e));else if(ee(t))o=_s(t,n);else{const r=Wn(e);o={x:t.x-r.x,y:t.y-r.y,width:t.width,height:t.height}}return Ye(o)}function Un(e,t){const n=ue(e);return n===t||!ee(n)||Ae(n)?!1:te(n).position==="fixed"||Un(n,t)}function Os(e,t){const n=t.get(e);if(n)return n;let o=ke(e,[],!1).filter(c=>ee(c)&&Pe(c)!=="body"),r=null;const a=te(e).position==="fixed";let i=a?ue(e):e;for(;ee(i)&&!Ae(i);){const c=te(i),l=Ft(i);!l&&c.position==="fixed"&&(r=null),(a?!l&&!r:!l&&c.position==="static"&&!!r&&(r.position==="absolute"||r.position==="fixed")||$e(i)&&!l&&Un(e,i))?o=o.filter(f=>f!==i):r=c,i=ue(i)}return t.set(e,o),o}function Ms(e){let{element:t,boundary:n,rootBoundary:o,strategy:r}=e;const i=[...n==="clippingAncestors"?et(t)?[]:Os(t,this._c):[].concat(n),o],c=rn(t,i[0],r);let l=c.top,d=c.right,f=c.bottom,p=c.left;for(let m=1;m<i.length;m++){const x=rn(t,i[m],r);l=q(x.top,l),d=de(x.right,d),f=de(x.bottom,f),p=q(x.left,p)}return{width:d-p,height:f-l,x:p,y:l}}function ks(e){const{width:t,height:n}=Hn(e);return{width:t,height:n}}function Ds(e,t,n){const o=ce(t),r=re(t),a=n==="fixed",i=ye(e,!0,a,t);let c={scrollLeft:0,scrollTop:0};const l=oe(0);function d(){l.x=nt(r)}if(o||!o&&!a)if((Pe(t)!=="body"||$e(r))&&(c=tt(t)),o){const x=ye(t,!0,a,t);l.x=x.x+t.clientLeft,l.y=x.y+t.clientTop}else r&&d();a&&!o&&r&&d();const f=r&&!o&&!a?zn(r,c):oe(0),p=i.left+c.scrollLeft-l.x-f.x,m=i.top+c.scrollTop-l.y-f.y;return{x:p,y:m,width:i.width,height:i.height}}function ft(e){return te(e).position==="static"}function sn(e,t){if(!ce(e)||te(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return re(e)===n&&(n=n.ownerDocument.body),n}function Kn(e,t){const n=X(e);if(et(e))return n;if(!ce(e)){let r=ue(e);for(;r&&!Ae(r);){if(ee(r)&&!ft(r))return r;r=ue(r)}return n}let o=sn(e,t);for(;o&&Ss(o)&&ft(o);)o=sn(o,t);return o&&Ae(o)&&ft(o)&&!Ft(o)?n:o||Rs(e)||n}const Ls=async function(e){const t=this.getOffsetParent||Kn,n=this.getDimensions,o=await n(e.floating);return{reference:Ds(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function Fs(e){return te(e).direction==="rtl"}const $s={convertOffsetParentRelativeRectToViewportRelativeRect:As,getDocumentElement:re,getClippingRect:Ms,getOffsetParent:Kn,getElementRects:Ls,getClientRects:Es,getDimensions:ks,getScale:Te,isElement:ee,isRTL:Fs};function Gn(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Bs(e,t){let n=null,o;const r=re(e);function a(){var c;clearTimeout(o),(c=n)==null||c.disconnect(),n=null}function i(c,l){c===void 0&&(c=!1),l===void 0&&(l=1),a();const d=e.getBoundingClientRect(),{left:f,top:p,width:m,height:x}=d;if(c||t(),!m||!x)return;const v=Ve(p),g=Ve(r.clientWidth-(f+m)),h=Ve(r.clientHeight-(p+x)),b=Ve(f),y={rootMargin:-v+"px "+-g+"px "+-h+"px "+-b+"px",threshold:q(0,de(1,l))||1};let S=!0;function C(R){const N=R[0].intersectionRatio;if(N!==l){if(!S)return i();N?i(!1,N):o=setTimeout(()=>{i(!1,1e-7)},1e3)}N===1&&!Gn(d,e.getBoundingClientRect())&&i(),S=!1}try{n=new IntersectionObserver(C,{...y,root:r.ownerDocument})}catch{n=new IntersectionObserver(C,y)}n.observe(e)}return i(!0),a}function Vs(e,t,n,o){o===void 0&&(o={});const{ancestorScroll:r=!0,ancestorResize:a=!0,elementResize:i=typeof ResizeObserver=="function",layoutShift:c=typeof IntersectionObserver=="function",animationFrame:l=!1}=o,d=Bt(e),f=r||a?[...d?ke(d):[],...t?ke(t):[]]:[];f.forEach(b=>{r&&b.addEventListener("scroll",n,{passive:!0}),a&&b.addEventListener("resize",n)});const p=d&&c?Bs(d,n):null;let m=-1,x=null;i&&(x=new ResizeObserver(b=>{let[w]=b;w&&w.target===d&&x&&t&&(x.unobserve(t),cancelAnimationFrame(m),m=requestAnimationFrame(()=>{var y;(y=x)==null||y.observe(t)})),n()}),d&&!l&&x.observe(d),t&&x.observe(t));let v,g=l?ye(e):null;l&&h();function h(){const b=ye(e);g&&!Gn(g,b)&&n(),g=b,v=requestAnimationFrame(h)}return n(),()=>{var b;f.forEach(w=>{r&&w.removeEventListener("scroll",n),a&&w.removeEventListener("resize",n)}),p?.(),(b=x)==null||b.disconnect(),x=null,l&&cancelAnimationFrame(v)}}const Hs=vs,Ws=ws,zs=hs,Us=bs,Ks=gs,an=ms,Gs=ys,Ys=(e,t,n)=>{const o=new Map,r={platform:$s,...n},a={...r.platform,_c:o};return ps(e,t,{...r,platform:a})};var qs=typeof document<"u",Xs=function(){},ze=qs?u.useLayoutEffect:Xs;function qe(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,o,r;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(o=n;o--!==0;)if(!qe(e[o],t[o]))return!1;return!0}if(r=Object.keys(e),n=r.length,n!==Object.keys(t).length)return!1;for(o=n;o--!==0;)if(!{}.hasOwnProperty.call(t,r[o]))return!1;for(o=n;o--!==0;){const a=r[o];if(!(a==="_owner"&&e.$$typeof)&&!qe(e[a],t[a]))return!1}return!0}return e!==e&&t!==t}function Yn(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function cn(e,t){const n=Yn(e);return Math.round(t*n)/n}function pt(e){const t=u.useRef(e);return ze(()=>{t.current=e}),t}function Zs(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:o=[],platform:r,elements:{reference:a,floating:i}={},transform:c=!0,whileElementsMounted:l,open:d}=e,[f,p]=u.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[m,x]=u.useState(o);qe(m,o)||x(o);const[v,g]=u.useState(null),[h,b]=u.useState(null),w=u.useCallback(A=>{A!==R.current&&(R.current=A,g(A))},[]),y=u.useCallback(A=>{A!==N.current&&(N.current=A,b(A))},[]),S=a||v,C=i||h,R=u.useRef(null),N=u.useRef(null),T=u.useRef(f),k=l!=null,O=pt(l),M=pt(r),D=pt(d),I=u.useCallback(()=>{if(!R.current||!N.current)return;const A={placement:t,strategy:n,middleware:m};M.current&&(A.platform=M.current),Ys(R.current,N.current,A).then($=>{const Y={...$,isPositioned:D.current!==!1};P.current&&!qe(T.current,Y)&&(T.current=Y,Pt.flushSync(()=>{p(Y)}))})},[m,t,n,M,D]);ze(()=>{d===!1&&T.current.isPositioned&&(T.current.isPositioned=!1,p(A=>({...A,isPositioned:!1})))},[d]);const P=u.useRef(!1);ze(()=>(P.current=!0,()=>{P.current=!1}),[]),ze(()=>{if(S&&(R.current=S),C&&(N.current=C),S&&C){if(O.current)return O.current(S,C,I);I()}},[S,C,I,O,k]);const F=u.useMemo(()=>({reference:R,floating:N,setReference:w,setFloating:y}),[w,y]),E=u.useMemo(()=>({reference:S,floating:C}),[S,C]),_=u.useMemo(()=>{const A={position:n,left:0,top:0};if(!E.floating)return A;const $=cn(E.floating,f.x),Y=cn(E.floating,f.y);return c?{...A,transform:"translate("+$+"px, "+Y+"px)",...Yn(E.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:$,top:Y}},[n,c,E.floating,f.x,f.y]);return u.useMemo(()=>({...f,update:I,refs:F,elements:E,floatingStyles:_}),[f,I,F,E,_])}const Qs=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:o,padding:r}=typeof e=="function"?e(n):e;return o&&t(o)?o.current!=null?an({element:o.current,padding:r}).fn(n):{}:o?an({element:o,padding:r}).fn(n):{}}}},Js=(e,t)=>{const n=Hs(e);return{name:n.name,fn:n.fn,options:[e,t]}},ei=(e,t)=>{const n=Ws(e);return{name:n.name,fn:n.fn,options:[e,t]}},ti=(e,t)=>({fn:Gs(e).fn,options:[e,t]}),ni=(e,t)=>{const n=zs(e);return{name:n.name,fn:n.fn,options:[e,t]}},oi=(e,t)=>{const n=Us(e);return{name:n.name,fn:n.fn,options:[e,t]}},ri=(e,t)=>{const n=Ks(e);return{name:n.name,fn:n.fn,options:[e,t]}},si=(e,t)=>{const n=Qs(e);return{name:n.name,fn:n.fn,options:[e,t]}};var ii="Arrow",qn=u.forwardRef((e,t)=>{const{children:n,width:o=10,height:r=5,...a}=e;return s.jsx(H.svg,{...a,ref:t,width:o,height:r,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:s.jsx("polygon",{points:"0,0 30,0 15,10"})})});qn.displayName=ii;var ai=qn;function ci(e){const[t,n]=u.useState(void 0);return J(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const o=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;const a=r[0];let i,c;if("borderBoxSize"in a){const l=a.borderBoxSize,d=Array.isArray(l)?l[0]:l;i=d.inlineSize,c=d.blockSize}else i=e.offsetWidth,c=e.offsetHeight;n({width:i,height:c})});return o.observe(e,{box:"border-box"}),()=>o.unobserve(e)}else n(void 0)},[e]),t}var Vt="Popper",[Xn,Zn]=De(Vt),[li,Qn]=Xn(Vt),Jn=e=>{const{__scopePopper:t,children:n}=e,[o,r]=u.useState(null);return s.jsx(li,{scope:t,anchor:o,onAnchorChange:r,children:n})};Jn.displayName=Vt;var eo="PopperAnchor",to=u.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:o,...r}=e,a=Qn(eo,n),i=u.useRef(null),c=G(t,i),l=u.useRef(null);return u.useEffect(()=>{const d=l.current;l.current=o?.current||i.current,d!==l.current&&a.onAnchorChange(l.current)}),o?null:s.jsx(H.div,{...r,ref:c})});to.displayName=eo;var Ht="PopperContent",[di,ui]=Xn(Ht),no=u.forwardRef((e,t)=>{const{__scopePopper:n,side:o="bottom",sideOffset:r=0,align:a="center",alignOffset:i=0,arrowPadding:c=0,avoidCollisions:l=!0,collisionBoundary:d=[],collisionPadding:f=0,sticky:p="partial",hideWhenDetached:m=!1,updatePositionStrategy:x="optimized",onPlaced:v,...g}=e,h=Qn(Ht,n),[b,w]=u.useState(null),y=G(t,j=>w(j)),[S,C]=u.useState(null),R=ci(S),N=R?.width??0,T=R?.height??0,k=o+(a!=="center"?"-"+a:""),O=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},M=Array.isArray(d)?d:[d],D=M.length>0,I={padding:O,boundary:M.filter(pi),altBoundary:D},{refs:P,floatingStyles:F,placement:E,isPositioned:_,middlewareData:A}=Zs({strategy:"fixed",placement:k,whileElementsMounted:(...j)=>Vs(...j,{animationFrame:x==="always"}),elements:{reference:h.anchor},middleware:[Js({mainAxis:r+T,alignmentAxis:i}),l&&ei({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?ti():void 0,...I}),l&&ni({...I}),oi({...I,apply:({elements:j,rects:W,availableWidth:K,availableHeight:B})=>{const{width:V,height:z}=W.reference,Z=j.floating.style;Z.setProperty("--radix-popper-available-width",`${K}px`),Z.setProperty("--radix-popper-available-height",`${B}px`),Z.setProperty("--radix-popper-anchor-width",`${V}px`),Z.setProperty("--radix-popper-anchor-height",`${z}px`)}}),S&&si({element:S,padding:c}),mi({arrowWidth:N,arrowHeight:T}),m&&ri({strategy:"referenceHidden",...I})]}),[$,Y]=so(E),me=_t(v);J(()=>{_&&me?.()},[_,me]);const _e=A.arrow?.x,Oe=A.arrow?.y,le=A.arrow?.centerOffset!==0,[Ne,he]=u.useState();return J(()=>{b&&he(window.getComputedStyle(b).zIndex)},[b]),s.jsx("div",{ref:P.setFloating,"data-radix-popper-content-wrapper":"",style:{...F,transform:_?F.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Ne,"--radix-popper-transform-origin":[A.transformOrigin?.x,A.transformOrigin?.y].join(" "),...A.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:s.jsx(di,{scope:n,placedSide:$,onArrowChange:C,arrowX:_e,arrowY:Oe,shouldHideArrow:le,children:s.jsx(H.div,{"data-side":$,"data-align":Y,...g,ref:y,style:{...g.style,animation:_?void 0:"none"}})})})});no.displayName=Ht;var oo="PopperArrow",fi={top:"bottom",right:"left",bottom:"top",left:"right"},ro=u.forwardRef(function(t,n){const{__scopePopper:o,...r}=t,a=ui(oo,o),i=fi[a.placedSide];return s.jsx("span",{ref:a.onArrowChange,style:{position:"absolute",left:a.arrowX,top:a.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[a.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[a.placedSide],visibility:a.shouldHideArrow?"hidden":void 0},children:s.jsx(ai,{...r,ref:n,style:{...r.style,display:"block"}})})});ro.displayName=oo;function pi(e){return e!==null}var mi=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:o,middlewareData:r}=t,i=r.arrow?.centerOffset!==0,c=i?0:e.arrowWidth,l=i?0:e.arrowHeight,[d,f]=so(n),p={start:"0%",center:"50%",end:"100%"}[f],m=(r.arrow?.x??0)+c/2,x=(r.arrow?.y??0)+l/2;let v="",g="";return d==="bottom"?(v=i?p:`${m}px`,g=`${-l}px`):d==="top"?(v=i?p:`${m}px`,g=`${o.floating.height+l}px`):d==="right"?(v=`${-l}px`,g=i?p:`${x}px`):d==="left"&&(v=`${o.floating.width+l}px`,g=i?p:`${x}px`),{data:{x:v,y:g}}}});function so(e){const[t,n="center"]=e.split("-");return[t,n]}var hi=Jn,gi=to,xi=no,vi=ro;function wi(e){const t=yi(e),n=u.forwardRef((o,r)=>{const{children:a,...i}=o,c=u.Children.toArray(a),l=c.find(Si);if(l){const d=l.props.children,f=c.map(p=>p===l?u.Children.count(d)>1?u.Children.only(null):u.isValidElement(d)?d.props.children:null:p);return s.jsx(t,{...i,ref:r,children:u.isValidElement(d)?u.cloneElement(d,void 0,f):null})}return s.jsx(t,{...i,ref:r,children:a})});return n.displayName=`${e}.Slot`,n}function yi(e){const t=u.forwardRef((n,o)=>{const{children:r,...a}=n;if(u.isValidElement(r)){const i=Ni(r),c=Ci(a,r.props);return r.type!==u.Fragment&&(c.ref=o?ln(o,i):i),u.cloneElement(r,c)}return u.Children.count(r)>1?u.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var bi=Symbol("radix.slottable");function Si(e){return u.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===bi}function Ci(e,t){const n={...t};for(const o in t){const r=e[o],a=t[o];/^on[A-Z]/.test(o)?r&&a?n[o]=(...c)=>{const l=a(...c);return r(...c),l}:r&&(n[o]=r):o==="style"?n[o]={...r,...a}:o==="className"&&(n[o]=[r,a].filter(Boolean).join(" "))}return{...e,...n}}function Ni(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Ri(e){const t=u.useRef({value:e,previous:e});return u.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var io=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),ji="VisuallyHidden",Ti=u.forwardRef((e,t)=>s.jsx(H.span,{...e,ref:t,style:{...io,...e.style}}));Ti.displayName=ji;var Ai=[" ","Enter","ArrowUp","ArrowDown"],Ei=[" ","Enter"],be="Select",[ot,rt,Pi]=gn(be),[Ie]=De(be,[Pi,Zn]),st=Zn(),[Ii,fe]=Ie(be),[_i,Oi]=Ie(be),ao=e=>{const{__scopeSelect:t,children:n,open:o,defaultOpen:r,onOpenChange:a,value:i,defaultValue:c,onValueChange:l,dir:d,name:f,autoComplete:p,disabled:m,required:x,form:v}=e,g=st(t),[h,b]=u.useState(null),[w,y]=u.useState(null),[S,C]=u.useState(!1),R=It(d),[N,T]=Ue({prop:o,defaultProp:r??!1,onChange:a,caller:be}),[k,O]=Ue({prop:i,defaultProp:c,onChange:l,caller:be}),M=u.useRef(null),D=h?v||!!h.closest("form"):!0,[I,P]=u.useState(new Set),F=Array.from(I).map(E=>E.props.value).join(";");return s.jsx(hi,{...g,children:s.jsxs(Ii,{required:x,scope:t,trigger:h,onTriggerChange:b,valueNode:w,onValueNodeChange:y,valueNodeHasChildren:S,onValueNodeHasChildrenChange:C,contentId:Le(),value:k,onValueChange:O,open:N,onOpenChange:T,dir:R,triggerPointerDownPosRef:M,disabled:m,children:[s.jsx(ot.Provider,{scope:t,children:s.jsx(_i,{scope:e.__scopeSelect,onNativeOptionAdd:u.useCallback(E=>{P(_=>new Set(_).add(E))},[]),onNativeOptionRemove:u.useCallback(E=>{P(_=>{const A=new Set(_);return A.delete(E),A})},[]),children:n})}),D?s.jsxs(_o,{"aria-hidden":!0,required:x,tabIndex:-1,name:f,autoComplete:p,value:k,onChange:E=>O(E.target.value),disabled:m,form:v,children:[k===void 0?s.jsx("option",{value:""}):null,Array.from(I)]},F):null]})})};ao.displayName=be;var co="SelectTrigger",lo=u.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:o=!1,...r}=e,a=st(n),i=fe(co,n),c=i.disabled||o,l=G(t,i.onTriggerChange),d=rt(n),f=u.useRef("touch"),[p,m,x]=Mo(g=>{const h=d().filter(y=>!y.disabled),b=h.find(y=>y.value===i.value),w=ko(h,g,b);w!==void 0&&i.onValueChange(w.value)}),v=g=>{c||(i.onOpenChange(!0),x()),g&&(i.triggerPointerDownPosRef.current={x:Math.round(g.pageX),y:Math.round(g.pageY)})};return s.jsx(gi,{asChild:!0,...a,children:s.jsx(H.button,{type:"button",role:"combobox","aria-controls":i.contentId,"aria-expanded":i.open,"aria-required":i.required,"aria-autocomplete":"none",dir:i.dir,"data-state":i.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":Oo(i.value)?"":void 0,...r,ref:l,onClick:L(r.onClick,g=>{g.currentTarget.focus(),f.current!=="mouse"&&v(g)}),onPointerDown:L(r.onPointerDown,g=>{f.current=g.pointerType;const h=g.target;h.hasPointerCapture(g.pointerId)&&h.releasePointerCapture(g.pointerId),g.button===0&&g.ctrlKey===!1&&g.pointerType==="mouse"&&(v(g),g.preventDefault())}),onKeyDown:L(r.onKeyDown,g=>{const h=p.current!=="";!(g.ctrlKey||g.altKey||g.metaKey)&&g.key.length===1&&m(g.key),!(h&&g.key===" ")&&Ai.includes(g.key)&&(v(),g.preventDefault())})})})});lo.displayName=co;var uo="SelectValue",fo=u.forwardRef((e,t)=>{const{__scopeSelect:n,className:o,style:r,children:a,placeholder:i="",...c}=e,l=fe(uo,n),{onValueNodeHasChildrenChange:d}=l,f=a!==void 0,p=G(t,l.onValueNodeChange);return J(()=>{d(f)},[d,f]),s.jsx(H.span,{...c,ref:p,style:{pointerEvents:"none"},children:Oo(l.value)?s.jsx(s.Fragment,{children:i}):a})});fo.displayName=uo;var Mi="SelectIcon",po=u.forwardRef((e,t)=>{const{__scopeSelect:n,children:o,...r}=e;return s.jsx(H.span,{"aria-hidden":!0,...r,ref:t,children:o||"▼"})});po.displayName=Mi;var ki="SelectPortal",mo=e=>s.jsx(or,{asChild:!0,...e});mo.displayName=ki;var Se="SelectContent",ho=u.forwardRef((e,t)=>{const n=fe(Se,e.__scopeSelect),[o,r]=u.useState();if(J(()=>{r(new DocumentFragment)},[]),!n.open){const a=o;return a?Pt.createPortal(s.jsx(go,{scope:e.__scopeSelect,children:s.jsx(ot.Slot,{scope:e.__scopeSelect,children:s.jsx("div",{children:e.children})})}),a):null}return s.jsx(xo,{...e,ref:t})});ho.displayName=Se;var Q=10,[go,pe]=Ie(Se),Di="SelectContentImpl",Li=wi("SelectContent.RemoveScroll"),xo=u.forwardRef((e,t)=>{const{__scopeSelect:n,position:o="item-aligned",onCloseAutoFocus:r,onEscapeKeyDown:a,onPointerDownOutside:i,side:c,sideOffset:l,align:d,alignOffset:f,arrowPadding:p,collisionBoundary:m,collisionPadding:x,sticky:v,hideWhenDetached:g,avoidCollisions:h,...b}=e,w=fe(Se,n),[y,S]=u.useState(null),[C,R]=u.useState(null),N=G(t,j=>S(j)),[T,k]=u.useState(null),[O,M]=u.useState(null),D=rt(n),[I,P]=u.useState(!1),F=u.useRef(!1);u.useEffect(()=>{if(y)return rr(y)},[y]),sr();const E=u.useCallback(j=>{const[W,...K]=D().map(z=>z.ref.current),[B]=K.slice(-1),V=document.activeElement;for(const z of j)if(z===V||(z?.scrollIntoView({block:"nearest"}),z===W&&C&&(C.scrollTop=0),z===B&&C&&(C.scrollTop=C.scrollHeight),z?.focus(),document.activeElement!==V))return},[D,C]),_=u.useCallback(()=>E([T,y]),[E,T,y]);u.useEffect(()=>{I&&_()},[I,_]);const{onOpenChange:A,triggerPointerDownPosRef:$}=w;u.useEffect(()=>{if(y){let j={x:0,y:0};const W=B=>{j={x:Math.abs(Math.round(B.pageX)-($.current?.x??0)),y:Math.abs(Math.round(B.pageY)-($.current?.y??0))}},K=B=>{j.x<=10&&j.y<=10?B.preventDefault():y.contains(B.target)||A(!1),document.removeEventListener("pointermove",W),$.current=null};return $.current!==null&&(document.addEventListener("pointermove",W),document.addEventListener("pointerup",K,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",W),document.removeEventListener("pointerup",K,{capture:!0})}}},[y,A,$]),u.useEffect(()=>{const j=()=>A(!1);return window.addEventListener("blur",j),window.addEventListener("resize",j),()=>{window.removeEventListener("blur",j),window.removeEventListener("resize",j)}},[A]);const[Y,me]=Mo(j=>{const W=D().filter(V=>!V.disabled),K=W.find(V=>V.ref.current===document.activeElement),B=ko(W,j,K);B&&setTimeout(()=>B.ref.current.focus())}),_e=u.useCallback((j,W,K)=>{const B=!F.current&&!K;(w.value!==void 0&&w.value===W||B)&&(k(j),B&&(F.current=!0))},[w.value]),Oe=u.useCallback(()=>y?.focus(),[y]),le=u.useCallback((j,W,K)=>{const B=!F.current&&!K;(w.value!==void 0&&w.value===W||B)&&M(j)},[w.value]),Ne=o==="popper"?Rt:vo,he=Ne===Rt?{side:c,sideOffset:l,align:d,alignOffset:f,arrowPadding:p,collisionBoundary:m,collisionPadding:x,sticky:v,hideWhenDetached:g,avoidCollisions:h}:{};return s.jsx(go,{scope:n,content:y,viewport:C,onViewportChange:R,itemRefCallback:_e,selectedItem:T,onItemLeave:Oe,itemTextRefCallback:le,focusSelectedItem:_,selectedItemText:O,position:o,isPositioned:I,searchRef:Y,children:s.jsx(ir,{as:Li,allowPinchZoom:!0,children:s.jsx(ar,{asChild:!0,trapped:w.open,onMountAutoFocus:j=>{j.preventDefault()},onUnmountAutoFocus:L(r,j=>{w.trigger?.focus({preventScroll:!0}),j.preventDefault()}),children:s.jsx(cr,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:i,onFocusOutside:j=>j.preventDefault(),onDismiss:()=>w.onOpenChange(!1),children:s.jsx(Ne,{role:"listbox",id:w.contentId,"data-state":w.open?"open":"closed",dir:w.dir,onContextMenu:j=>j.preventDefault(),...b,...he,onPlaced:()=>P(!0),ref:N,style:{display:"flex",flexDirection:"column",outline:"none",...b.style},onKeyDown:L(b.onKeyDown,j=>{const W=j.ctrlKey||j.altKey||j.metaKey;if(j.key==="Tab"&&j.preventDefault(),!W&&j.key.length===1&&me(j.key),["ArrowUp","ArrowDown","Home","End"].includes(j.key)){let B=D().filter(V=>!V.disabled).map(V=>V.ref.current);if(["ArrowUp","End"].includes(j.key)&&(B=B.slice().reverse()),["ArrowUp","ArrowDown"].includes(j.key)){const V=j.target,z=B.indexOf(V);B=B.slice(z+1)}setTimeout(()=>E(B)),j.preventDefault()}})})})})})})});xo.displayName=Di;var Fi="SelectItemAlignedPosition",vo=u.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:o,...r}=e,a=fe(Se,n),i=pe(Se,n),[c,l]=u.useState(null),[d,f]=u.useState(null),p=G(t,N=>f(N)),m=rt(n),x=u.useRef(!1),v=u.useRef(!0),{viewport:g,selectedItem:h,selectedItemText:b,focusSelectedItem:w}=i,y=u.useCallback(()=>{if(a.trigger&&a.valueNode&&c&&d&&g&&h&&b){const N=a.trigger.getBoundingClientRect(),T=d.getBoundingClientRect(),k=a.valueNode.getBoundingClientRect(),O=b.getBoundingClientRect();if(a.dir!=="rtl"){const V=O.left-T.left,z=k.left-V,Z=N.left-z,ge=N.width+Z,it=Math.max(ge,T.width),at=window.innerWidth-Q,ct=zt(z,[Q,Math.max(Q,at-it)]);c.style.minWidth=ge+"px",c.style.left=ct+"px"}else{const V=T.right-O.right,z=window.innerWidth-k.right-V,Z=window.innerWidth-N.right-z,ge=N.width+Z,it=Math.max(ge,T.width),at=window.innerWidth-Q,ct=zt(z,[Q,Math.max(Q,at-it)]);c.style.minWidth=ge+"px",c.style.right=ct+"px"}const M=m(),D=window.innerHeight-Q*2,I=g.scrollHeight,P=window.getComputedStyle(d),F=parseInt(P.borderTopWidth,10),E=parseInt(P.paddingTop,10),_=parseInt(P.borderBottomWidth,10),A=parseInt(P.paddingBottom,10),$=F+E+I+A+_,Y=Math.min(h.offsetHeight*5,$),me=window.getComputedStyle(g),_e=parseInt(me.paddingTop,10),Oe=parseInt(me.paddingBottom,10),le=N.top+N.height/2-Q,Ne=D-le,he=h.offsetHeight/2,j=h.offsetTop+he,W=F+E+j,K=$-W;if(W<=le){const V=M.length>0&&h===M[M.length-1].ref.current;c.style.bottom="0px";const z=d.clientHeight-g.offsetTop-g.offsetHeight,Z=Math.max(Ne,he+(V?Oe:0)+z+_),ge=W+Z;c.style.height=ge+"px"}else{const V=M.length>0&&h===M[0].ref.current;c.style.top="0px";const Z=Math.max(le,F+g.offsetTop+(V?_e:0)+he)+K;c.style.height=Z+"px",g.scrollTop=W-le+g.offsetTop}c.style.margin=`${Q}px 0`,c.style.minHeight=Y+"px",c.style.maxHeight=D+"px",o?.(),requestAnimationFrame(()=>x.current=!0)}},[m,a.trigger,a.valueNode,c,d,g,h,b,a.dir,o]);J(()=>y(),[y]);const[S,C]=u.useState();J(()=>{d&&C(window.getComputedStyle(d).zIndex)},[d]);const R=u.useCallback(N=>{N&&v.current===!0&&(y(),w?.(),v.current=!1)},[y,w]);return s.jsx(Bi,{scope:n,contentWrapper:c,shouldExpandOnScrollRef:x,onScrollButtonChange:R,children:s.jsx("div",{ref:l,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:S},children:s.jsx(H.div,{...r,ref:p,style:{boxSizing:"border-box",maxHeight:"100%",...r.style}})})})});vo.displayName=Fi;var $i="SelectPopperPosition",Rt=u.forwardRef((e,t)=>{const{__scopeSelect:n,align:o="start",collisionPadding:r=Q,...a}=e,i=st(n);return s.jsx(xi,{...i,...a,ref:t,align:o,collisionPadding:r,style:{boxSizing:"border-box",...a.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});Rt.displayName=$i;var[Bi,Wt]=Ie(Se,{}),jt="SelectViewport",wo=u.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:o,...r}=e,a=pe(jt,n),i=Wt(jt,n),c=G(t,a.onViewportChange),l=u.useRef(0);return s.jsxs(s.Fragment,{children:[s.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:o}),s.jsx(ot.Slot,{scope:n,children:s.jsx(H.div,{"data-radix-select-viewport":"",role:"presentation",...r,ref:c,style:{position:"relative",flex:1,overflow:"hidden auto",...r.style},onScroll:L(r.onScroll,d=>{const f=d.currentTarget,{contentWrapper:p,shouldExpandOnScrollRef:m}=i;if(m?.current&&p){const x=Math.abs(l.current-f.scrollTop);if(x>0){const v=window.innerHeight-Q*2,g=parseFloat(p.style.minHeight),h=parseFloat(p.style.height),b=Math.max(g,h);if(b<v){const w=b+x,y=Math.min(v,w),S=w-y;p.style.height=y+"px",p.style.bottom==="0px"&&(f.scrollTop=S>0?S:0,p.style.justifyContent="flex-end")}}}l.current=f.scrollTop})})})]})});wo.displayName=jt;var yo="SelectGroup",[Vi,Hi]=Ie(yo),Wi=u.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e,r=Le();return s.jsx(Vi,{scope:n,id:r,children:s.jsx(H.div,{role:"group","aria-labelledby":r,...o,ref:t})})});Wi.displayName=yo;var bo="SelectLabel",So=u.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e,r=Hi(bo,n);return s.jsx(H.div,{id:r.id,...o,ref:t})});So.displayName=bo;var Xe="SelectItem",[zi,Co]=Ie(Xe),No=u.forwardRef((e,t)=>{const{__scopeSelect:n,value:o,disabled:r=!1,textValue:a,...i}=e,c=fe(Xe,n),l=pe(Xe,n),d=c.value===o,[f,p]=u.useState(a??""),[m,x]=u.useState(!1),v=G(t,w=>l.itemRefCallback?.(w,o,r)),g=Le(),h=u.useRef("touch"),b=()=>{r||(c.onValueChange(o),c.onOpenChange(!1))};if(o==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return s.jsx(zi,{scope:n,value:o,disabled:r,textId:g,isSelected:d,onItemTextChange:u.useCallback(w=>{p(y=>y||(w?.textContent??"").trim())},[]),children:s.jsx(ot.ItemSlot,{scope:n,value:o,disabled:r,textValue:f,children:s.jsx(H.div,{role:"option","aria-labelledby":g,"data-highlighted":m?"":void 0,"aria-selected":d&&m,"data-state":d?"checked":"unchecked","aria-disabled":r||void 0,"data-disabled":r?"":void 0,tabIndex:r?void 0:-1,...i,ref:v,onFocus:L(i.onFocus,()=>x(!0)),onBlur:L(i.onBlur,()=>x(!1)),onClick:L(i.onClick,()=>{h.current!=="mouse"&&b()}),onPointerUp:L(i.onPointerUp,()=>{h.current==="mouse"&&b()}),onPointerDown:L(i.onPointerDown,w=>{h.current=w.pointerType}),onPointerMove:L(i.onPointerMove,w=>{h.current=w.pointerType,r?l.onItemLeave?.():h.current==="mouse"&&w.currentTarget.focus({preventScroll:!0})}),onPointerLeave:L(i.onPointerLeave,w=>{w.currentTarget===document.activeElement&&l.onItemLeave?.()}),onKeyDown:L(i.onKeyDown,w=>{l.searchRef?.current!==""&&w.key===" "||(Ei.includes(w.key)&&b(),w.key===" "&&w.preventDefault())})})})})});No.displayName=Xe;var Me="SelectItemText",Ro=u.forwardRef((e,t)=>{const{__scopeSelect:n,className:o,style:r,...a}=e,i=fe(Me,n),c=pe(Me,n),l=Co(Me,n),d=Oi(Me,n),[f,p]=u.useState(null),m=G(t,b=>p(b),l.onItemTextChange,b=>c.itemTextRefCallback?.(b,l.value,l.disabled)),x=f?.textContent,v=u.useMemo(()=>s.jsx("option",{value:l.value,disabled:l.disabled,children:x},l.value),[l.disabled,l.value,x]),{onNativeOptionAdd:g,onNativeOptionRemove:h}=d;return J(()=>(g(v),()=>h(v)),[g,h,v]),s.jsxs(s.Fragment,{children:[s.jsx(H.span,{id:l.textId,...a,ref:m}),l.isSelected&&i.valueNode&&!i.valueNodeHasChildren?Pt.createPortal(a.children,i.valueNode):null]})});Ro.displayName=Me;var jo="SelectItemIndicator",To=u.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e;return Co(jo,n).isSelected?s.jsx(H.span,{"aria-hidden":!0,...o,ref:t}):null});To.displayName=jo;var Tt="SelectScrollUpButton",Ao=u.forwardRef((e,t)=>{const n=pe(Tt,e.__scopeSelect),o=Wt(Tt,e.__scopeSelect),[r,a]=u.useState(!1),i=G(t,o.onScrollButtonChange);return J(()=>{if(n.viewport&&n.isPositioned){let c=function(){const d=l.scrollTop>0;a(d)};const l=n.viewport;return c(),l.addEventListener("scroll",c),()=>l.removeEventListener("scroll",c)}},[n.viewport,n.isPositioned]),r?s.jsx(Po,{...e,ref:i,onAutoScroll:()=>{const{viewport:c,selectedItem:l}=n;c&&l&&(c.scrollTop=c.scrollTop-l.offsetHeight)}}):null});Ao.displayName=Tt;var At="SelectScrollDownButton",Eo=u.forwardRef((e,t)=>{const n=pe(At,e.__scopeSelect),o=Wt(At,e.__scopeSelect),[r,a]=u.useState(!1),i=G(t,o.onScrollButtonChange);return J(()=>{if(n.viewport&&n.isPositioned){let c=function(){const d=l.scrollHeight-l.clientHeight,f=Math.ceil(l.scrollTop)<d;a(f)};const l=n.viewport;return c(),l.addEventListener("scroll",c),()=>l.removeEventListener("scroll",c)}},[n.viewport,n.isPositioned]),r?s.jsx(Po,{...e,ref:i,onAutoScroll:()=>{const{viewport:c,selectedItem:l}=n;c&&l&&(c.scrollTop=c.scrollTop+l.offsetHeight)}}):null});Eo.displayName=At;var Po=u.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:o,...r}=e,a=pe("SelectScrollButton",n),i=u.useRef(null),c=rt(n),l=u.useCallback(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null)},[]);return u.useEffect(()=>()=>l(),[l]),J(()=>{c().find(f=>f.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[c]),s.jsx(H.div,{"aria-hidden":!0,...r,ref:t,style:{flexShrink:0,...r.style},onPointerDown:L(r.onPointerDown,()=>{i.current===null&&(i.current=window.setInterval(o,50))}),onPointerMove:L(r.onPointerMove,()=>{a.onItemLeave?.(),i.current===null&&(i.current=window.setInterval(o,50))}),onPointerLeave:L(r.onPointerLeave,()=>{l()})})}),Ui="SelectSeparator",Io=u.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e;return s.jsx(H.div,{"aria-hidden":!0,...o,ref:t})});Io.displayName=Ui;var Et="SelectArrow",Ki=u.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e,r=st(n),a=fe(Et,n),i=pe(Et,n);return a.open&&i.position==="popper"?s.jsx(vi,{...r,...o,ref:t}):null});Ki.displayName=Et;var Gi="SelectBubbleInput",_o=u.forwardRef(({__scopeSelect:e,value:t,...n},o)=>{const r=u.useRef(null),a=G(o,r),i=Ri(t);return u.useEffect(()=>{const c=r.current;if(!c)return;const l=window.HTMLSelectElement.prototype,f=Object.getOwnPropertyDescriptor(l,"value").set;if(i!==t&&f){const p=new Event("change",{bubbles:!0});f.call(c,t),c.dispatchEvent(p)}},[i,t]),s.jsx(H.select,{...n,style:{...io,...n.style},ref:a,defaultValue:t})});_o.displayName=Gi;function Oo(e){return e===""||e===void 0}function Mo(e){const t=_t(e),n=u.useRef(""),o=u.useRef(0),r=u.useCallback(i=>{const c=n.current+i;t(c),(function l(d){n.current=d,window.clearTimeout(o.current),d!==""&&(o.current=window.setTimeout(()=>l(""),1e3))})(c)},[t]),a=u.useCallback(()=>{n.current="",window.clearTimeout(o.current)},[]);return u.useEffect(()=>()=>window.clearTimeout(o.current),[]),[n,r,a]}function ko(e,t,n){const r=t.length>1&&Array.from(t).every(d=>d===t[0])?t[0]:t,a=n?e.indexOf(n):-1;let i=Yi(e,Math.max(a,0));r.length===1&&(i=i.filter(d=>d!==n));const l=i.find(d=>d.textValue.toLowerCase().startsWith(r.toLowerCase()));return l!==n?l:void 0}function Yi(e,t){return e.map((n,o)=>e[(t+o)%e.length])}var qi=ao,Do=lo,Xi=fo,Zi=po,Qi=mo,Lo=ho,Ji=wo,Fo=So,$o=No,ea=Ro,ta=To,Bo=Ao,Vo=Eo,Ho=Io;const na=qi,oa=Xi,Wo=u.forwardRef(({className:e,children:t,...n},o)=>s.jsxs(Do,{ref:o,className:U("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[t,s.jsx(Zi,{asChild:!0,children:s.jsx(fn,{className:"h-4 w-4 opacity-50"})})]}));Wo.displayName=Do.displayName;const zo=u.forwardRef(({className:e,...t},n)=>s.jsx(Bo,{ref:n,className:U("flex cursor-default items-center justify-center py-1",e),...t,children:s.jsx(vr,{className:"h-4 w-4"})}));zo.displayName=Bo.displayName;const Uo=u.forwardRef(({className:e,...t},n)=>s.jsx(Vo,{ref:n,className:U("flex cursor-default items-center justify-center py-1",e),...t,children:s.jsx(fn,{className:"h-4 w-4"})}));Uo.displayName=Vo.displayName;const Ko=u.forwardRef(({className:e,children:t,position:n="popper",...o},r)=>s.jsx(Qi,{children:s.jsxs(Lo,{ref:r,className:U("relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover 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 origin-(--radix-select-content-transform-origin)",n==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:n,...o,children:[s.jsx(zo,{}),s.jsx(Ji,{className:U("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),s.jsx(Uo,{})]})}));Ko.displayName=Lo.displayName;const ra=u.forwardRef(({className:e,...t},n)=>s.jsx(Fo,{ref:n,className:U("px-2 py-1.5 text-sm font-semibold",e),...t}));ra.displayName=Fo.displayName;const Go=u.forwardRef(({className:e,children:t,...n},o)=>s.jsxs($o,{ref:o,className:U("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[s.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:s.jsx(ta,{children:s.jsx(Ot,{className:"h-4 w-4"})})}),s.jsx(ea,{children:t})]}));Go.displayName=$o.displayName;const sa=u.forwardRef(({className:e,...t},n)=>s.jsx(Ho,{ref:n,className:U("-mx-1 my-1 h-px bg-muted",e),...t}));sa.displayName=Ho.displayName;function Na(){const[e,t]=u.useState([]),[n,o]=u.useState(null),[r,a]=u.useState(!0),i=dn(Ln),c=u.useRef(new Set),l=u.useCallback(async()=>{const{data:m}=await je.from("incidents").select("*").order("created_at",{ascending:!1});t(m??[]),a(!1),m&&m.length&&!n&&o(m[0].id)},[n]);u.useEffect(()=>{l()},[l]),u.useEffect(()=>{const m=je.channel("incidents-rt").on("postgres_changes",{event:"*",schema:"public",table:"incidents"},()=>l()).subscribe();return()=>{je.removeChannel(m)}},[l]);const d=e.find(m=>m.id===n),f=u.useCallback(async m=>{try{await i({data:{incidentId:m}}),we.success("Analysis updated")}catch(x){let v=x?.message;x instanceof Response&&(v=`${x.status} ${await x.text().catch(()=>x.statusText)}`),(!v||v==="[object Response]")&&(v="Analysis request failed"),we.error(v)}},[i]);u.useEffect(()=>{d&&d.status==="pending"&&!c.current.has(d.id)&&(c.current.add(d.id),f(d.id))},[d?.id,d?.status,f]);const p=async m=>{await je.from("incidents").delete().eq("id",m),we.success("Incident deleted")};return s.jsxs(s.Fragment,{children:[s.jsxs("header",{className:"border-b border-border px-8 py-4 bg-surface/40 backdrop-blur flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[s.jsxs("div",{className:"min-w-0",children:[s.jsx("div",{className:"text-[10px] uppercase tracking-widest text-muted-foreground font-mono",children:"Operations"}),s.jsx("h1",{className:"text-lg font-semibold",children:"Incident Bot"})]}),s.jsxs("div",{className:"flex items-center gap-2 w-full sm:w-auto",children:[s.jsxs(na,{value:n??void 0,onValueChange:m=>o(m),disabled:r||e.length===0,children:[s.jsx(Wo,{className:"w-full sm:w-[320px]",children:s.jsx(oa,{placeholder:r?"Loading reports…":e.length===0?"No reports yet":`Select report (${e.length})`})}),s.jsx(Ko,{className:"max-h-[60vh]",children:e.map(m=>s.jsx(Go,{value:m.id,children:s.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[s.jsx(Yo,{status:m.status}),s.jsx("span",{className:"truncate max-w-[220px]",children:m.title}),s.jsx("span",{className:"text-[10px] uppercase tracking-wider text-muted-foreground font-mono shrink-0",children:m.severity})]})},m.id))})]}),s.jsx(se,{variant:"ghost",size:"icon",onClick:l,"aria-label":"Refresh feed",children:s.jsx(vt,{className:"h-4 w-4"})}),s.jsx(Qr,{onCreated:m=>o(m)})]})]}),s.jsx(lr,{className:"flex-1 bg-background",children:r?s.jsx("div",{className:"py-24 text-center text-muted-foreground",children:s.jsx(Ze,{className:"h-5 w-5 animate-spin mx-auto"})}):e.length===0?s.jsx(ia,{}):d?s.jsx(ca,{incident:d,onRerun:()=>f(d.id),onDelete:()=>p(d.id)}):s.jsx(aa,{})})]})}function Yo({status:e}){const t=e==="complete"?"bg-severity-low":e==="analyzing"?"bg-primary animate-pulse":e==="failed"?"bg-severity-critical":"bg-muted-foreground";return s.jsx("span",{className:U("h-1.5 w-1.5 rounded-full",t)})}function ia(){return s.jsxs("div",{className:"text-center py-12 px-4",children:[s.jsx(un,{className:"h-8 w-8 mx-auto text-muted-foreground mb-3"}),s.jsx("p",{className:"text-sm font-medium",children:"No incidents yet"}),s.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Submit your first report to begin analysis."})]})}function aa(){return s.jsx("div",{className:"h-full flex items-center justify-center text-muted-foreground text-sm",children:"Select an incident to view analysis."})}function ca({incident:e,onRerun:t,onDelete:n}){const o=e.analysis,r=()=>{if(!o?.reportMarkdown)return;const a=new Blob([o.reportMarkdown],{type:"text/markdown"}),i=URL.createObjectURL(a),c=document.createElement("a");c.href=i,c.download=`${e.title.replace(/\s+/g,"-")}.md`,c.click(),URL.revokeObjectURL(i)};return s.jsxs("div",{className:"p-6 lg:p-8 space-y-6 max-w-5xl mx-auto",children:[s.jsxs("div",{className:"flex items-start justify-between gap-4",children:[s.jsxs("div",{className:"min-w-0 space-y-1",children:[s.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[s.jsx("h2",{className:"text-xl font-bold tracking-tight truncate",children:e.title}),s.jsx(Kt,{severity:e.severity})]}),s.jsxs("div",{className:"text-[11px] text-muted-foreground font-mono uppercase tracking-wider flex items-center gap-2",children:[s.jsx(Yo,{status:e.status})," ",e.status," · ",e.source_type," · ",new Date(e.created_at).toLocaleString()]})]}),s.jsxs("div",{className:"flex gap-1 shrink-0",children:[s.jsxs(se,{variant:"ghost",size:"sm",onClick:t,className:"gap-1.5",children:[s.jsx(vt,{className:"h-3.5 w-3.5"})," Rerun"]}),o?.reportMarkdown&&s.jsxs(se,{variant:"ghost",size:"sm",onClick:r,className:"gap-1.5",children:[s.jsx(hr,{className:"h-3.5 w-3.5"})," Export"]}),s.jsx(se,{variant:"ghost",size:"icon",onClick:n,className:"text-destructive hover:text-destructive",children:s.jsx(Sr,{className:"h-3.5 w-3.5"})})]})]}),o&&s.jsx(Re,{title:"Executive Summary",children:s.jsx("p",{className:"text-sm leading-relaxed text-foreground/90",children:o.summary})}),o&&s.jsxs("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3",children:[s.jsx(He,{icon:We,label:"Events",count:o.events?.length}),s.jsx(He,{icon:gt,label:"Safety",count:o.complianceFlags?.length}),s.jsx(He,{icon:xt,label:"Risk",count:o.rootCauses?.length}),s.jsx(He,{icon:ht,label:"Coaching",count:o.coachingRecommendations?.length})]}),s.jsx(ts,{status:e.status}),e.status==="pending"&&s.jsxs("div",{className:"rounded-xl border border-primary/40 bg-primary/5 p-5 flex items-center justify-between gap-4",children:[s.jsxs("div",{children:[s.jsx("p",{className:"font-medium text-sm",children:"Awaiting analysis"}),s.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Qwen3 hasn't analyzed this incident yet. Kick off the multi-agent pipeline now."})]}),s.jsxs(se,{onClick:t,className:"bg-primary text-primary-foreground hover:bg-primary/90 gap-1.5",children:[s.jsx(We,{className:"h-3.5 w-3.5"})," Analyze now"]})]}),e.status==="analyzing"&&s.jsx(Jr,{}),e.status==="failed"&&s.jsxs("div",{className:"rounded-xl border border-destructive/40 bg-destructive/10 p-5 flex items-start justify-between gap-4",children:[s.jsxs("div",{children:[s.jsx("p",{className:"font-medium text-sm text-destructive",children:"Analysis failed"}),s.jsx("p",{className:"text-xs text-muted-foreground mt-1 font-mono",children:e.error})]}),s.jsxs(se,{onClick:t,variant:"outline",size:"sm",className:"gap-1.5 shrink-0",children:[s.jsx(vt,{className:"h-3.5 w-3.5"})," Retry"]})]}),o&&s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"grid lg:grid-cols-2 gap-6",children:[s.jsx(Re,{title:"Timeline of Events",icon:We,children:s.jsx("ol",{className:"space-y-2",children:o.events?.map((a,i)=>s.jsxs("li",{className:"flex gap-3 text-sm",children:[s.jsx("span",{className:"font-mono text-xs text-primary w-6 shrink-0",children:String(i+1).padStart(2,"0")}),s.jsx("span",{className:"text-foreground/85",children:a})]},i))})}),s.jsx(Re,{title:"Probable Root Causes",icon:xt,children:s.jsx("ul",{className:"space-y-2",children:o.rootCauses?.map((a,i)=>s.jsxs("li",{className:"text-sm flex gap-2",children:[s.jsx("span",{className:"text-severity-high",children:"▸"}),a]},i))})}),s.jsx(Re,{title:"Compliance Concerns",icon:gt,children:s.jsx("div",{className:"space-y-2",children:o.complianceFlags?.map((a,i)=>s.jsxs("div",{className:"rounded-lg border border-border bg-surface p-3",children:[s.jsxs("div",{className:"flex items-center justify-between mb-1",children:[s.jsx("code",{className:"text-xs font-mono text-primary",children:a.code}),s.jsx(Kt,{severity:a.severity})]}),s.jsx("p",{className:"text-xs text-muted-foreground",children:a.description})]},i))})}),s.jsx(Re,{title:"Coaching Recommendations",icon:ht,children:s.jsx("ul",{className:"space-y-2",children:o.coachingRecommendations?.map((a,i)=>s.jsxs("li",{className:"text-sm flex gap-2",children:[s.jsx("span",{className:"text-primary",children:"→"}),a]},i))})})]}),e.raw_text&&s.jsx(Re,{title:"Raw Input",icon:mt,children:s.jsx("pre",{className:"text-[11px] font-mono whitespace-pre-wrap text-muted-foreground max-h-48 overflow-auto",children:e.raw_text})})]})]})}function Re({title:e,icon:t,children:n}){return s.jsxs("div",{className:"rounded-xl border border-border bg-surface/60 p-5",children:[s.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[t&&s.jsx(t,{className:"h-3.5 w-3.5 text-primary"}),s.jsx("h3",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground",children:e})]}),n]})}function He({icon:e,label:t,count:n}){return s.jsxs("div",{className:"rounded-lg border border-border bg-surface p-3 flex items-center gap-3",children:[s.jsx("div",{className:"h-8 w-8 rounded-md bg-primary/10 text-primary flex items-center justify-center",children:s.jsx(e,{className:"h-4 w-4"})}),s.jsxs("div",{children:[s.jsx("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground font-mono",children:t}),s.jsxs("div",{className:"text-sm font-semibold",children:[n??0," ",n===1?"item":"items"]})]})]})}export{Na as component};
|
dist/client/assets/dashboard.reports-C1e-th7r.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{r as o,j as e}from"./index-CfFa2yOe.js";import{s as d}from"./client-ioni_H2j.js";import{S as i}from"./severity-badge-ZTZFlOxb.js";import{B as l}from"./button-BAzW2TLJ.js";import{D as p}from"./download-DQLIuwN2.js";import"./tslib.es6-eMSY344_.js";import"./utils-BQHNewu7.js";import"./createLucideIcon-CxpWYIt5.js";function b(){const[r,n]=o.useState([]);o.useEffect(()=>{d.from("incidents").select("*").eq("status","complete").order("created_at",{ascending:!1}).then(({data:s})=>n(s??[]))},[]);const c=s=>{const m=new Blob([s.analysis?.reportMarkdown??""],{type:"text/markdown"}),a=URL.createObjectURL(m),t=document.createElement("a");t.href=a,t.download=`${s.title}.md`,t.click(),URL.revokeObjectURL(a)};return e.jsxs("div",{className:"p-8 space-y-6",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-widest text-muted-foreground font-mono",children:"Documentation"}),e.jsx("h1",{className:"text-2xl font-bold",children:"Reports Bot"})]}),e.jsxs("div",{className:"space-y-2",children:[r.map(s=>e.jsxs("div",{className:"rounded-lg border border-border bg-surface p-4 flex items-center gap-4",children:[e.jsx(i,{severity:s.severity}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"font-medium truncate",children:s.title}),e.jsx("div",{className:"text-xs text-muted-foreground line-clamp-1",children:s.analysis?.summary})]}),e.jsxs(l,{size:"sm",variant:"ghost",onClick:()=>c(s),className:"gap-1.5",children:[e.jsx(p,{className:"h-3.5 w-3.5"})," Markdown"]})]},s.id)),r.length===0&&e.jsx("p",{className:"text-sm text-muted-foreground",children:"No completed reports yet."})]})]})}export{b as component};
|
dist/client/assets/download-DQLIuwN2.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{c as o}from"./createLucideIcon-CxpWYIt5.js";const a=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],e=o("download",a);export{e as D};
|
dist/client/assets/git-branch-DyRL9CvM.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{c}from"./createLucideIcon-CxpWYIt5.js";const e=[["path",{d:"M15 6a9 9 0 0 0-9 9V3",key:"1cii5b"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}]],i=c("git-branch",e);export{i as G};
|
dist/client/assets/graduation-cap-6slvDJ0t.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{c as a}from"./createLucideIcon-CxpWYIt5.js";const o=[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]],e=a("graduation-cap",o);export{e as G};
|
dist/client/assets/index-Bu5pclA7.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{j as e,L as a}from"./index-CfFa2yOe.js";import{R as r}from"./radar-CKHMnejp.js";import{A as t}from"./arrow-right-CwJHC0j6.js";import{C as n,B as o}from"./cpu-VePeYMw4.js";import{S as i}from"./shield-BsNfmvT5.js";import{A as l}from"./activity-DUyzKHVj.js";import"./createLucideIcon-CxpWYIt5.js";function h(){return e.jsxs("div",{className:"min-h-screen bg-background relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 opacity-40 pointer-events-none",style:{backgroundImage:"radial-gradient(ellipse at 20% 10%, oklch(0.78 0.14 200 / 0.25), transparent 50%), radial-gradient(ellipse at 80% 60%, oklch(0.32 0.12 280 / 0.3), transparent 50%)"}}),e.jsxs("header",{className:"relative max-w-7xl mx-auto px-6 py-6 flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"h-9 w-9 rounded-lg bg-primary text-primary-foreground flex items-center justify-center shadow-[var(--shadow-glow)]",children:e.jsx(r,{className:"h-5 w-5"})}),e.jsx("span",{className:"font-bold tracking-tight",children:"DriveCore"})]}),e.jsx(a,{to:"/dashboard",className:"text-sm font-medium text-muted-foreground hover:text-foreground",children:"Open console →"})]}),e.jsxs("section",{className:"relative max-w-5xl mx-auto px-6 pt-20 pb-24 text-center",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 px-3 py-1 rounded-full border border-border bg-surface/60 backdrop-blur text-[11px] font-mono uppercase tracking-widest text-muted-foreground mb-8",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-primary animate-pulse"})," Multi-agent AV safety analysis"]}),e.jsxs("h1",{className:"text-5xl md:text-7xl font-bold tracking-tight leading-[1.05]",children:["Turn raw incident logs into ",e.jsx("span",{className:"text-primary",children:"actionable safety intelligence"}),"."]}),e.jsx("p",{className:"mt-6 text-lg text-muted-foreground max-w-2xl mx-auto",children:"DriveCore routes every autonomous vehicle event, near miss, and sensor log through four specialized AI agents — surfacing root causes, compliance concerns, and operator coaching plans in seconds."}),e.jsx("div",{className:"mt-10 flex items-center justify-center gap-3",children:e.jsxs(a,{to:"/dashboard",className:"inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-primary text-primary-foreground font-semibold hover:bg-primary/90 shadow-[var(--shadow-glow)]",children:["Open the console ",e.jsx(t,{className:"h-4 w-4"})]})}),e.jsx("div",{className:"mt-20 grid sm:grid-cols-2 lg:grid-cols-4 gap-4 text-left",children:[{icon:n,name:"Event Extraction",desc:"Parses logs, transcripts, and sensor data into a clean event timeline."},{icon:i,name:"Safety Agent",desc:"Flags violations against NHTSA, ISO 26262, SAE J3016, and FMVSS."},{icon:l,name:"Risk Agent",desc:"Identifies probable root causes across perception, planning, and control."},{icon:o,name:"Documentation",desc:"Drafts an export-ready Markdown safety report and coaching plan."}].map(s=>e.jsxs("div",{className:"rounded-xl border border-border bg-surface/60 backdrop-blur p-5",children:[e.jsx("div",{className:"h-9 w-9 rounded-lg bg-primary/10 text-primary flex items-center justify-center mb-3",children:e.jsx(s.icon,{className:"h-4 w-4"})}),e.jsx("h3",{className:"font-semibold text-sm",children:s.name}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1.5",children:s.desc})]},s.name))})]})]})}export{h as component};
|
dist/client/assets/index-CfFa2yOe.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
dist/client/assets/input-WOEoisk1.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{c as s}from"./createLucideIcon-CxpWYIt5.js";import{r as i,j as n}from"./index-CfFa2yOe.js";import{c as a}from"./utils-BQHNewu7.js";const c=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]],p=s("clock",c),l=i.forwardRef(({className:e,type:o,...r},t)=>n.jsx("input",{type:o,className:a("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:t,...r}));l.displayName="Input";export{p as C,l as I};
|
dist/client/assets/radar-CKHMnejp.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{c as a}from"./createLucideIcon-CxpWYIt5.js";const e=[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]],c=a("radar",e);export{c as R};
|
dist/client/assets/scroll-area-DblZQRqr.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import{c as Se}from"./createLucideIcon-CxpWYIt5.js";import{r as a,j as v,e as Be,d as Wt,f as Bt}from"./index-CfFa2yOe.js";import{b as He,u as A}from"./button-BAzW2TLJ.js";import{b as F,a as Ue,c as Ht}from"./tslib.es6-eMSY344_.js";import{c as H}from"./utils-BQHNewu7.js";const Ut=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],so=Se("check",Ut);const $t=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],io=Se("file-text",$t);const Vt=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],zt=Se("x",Vt);function D(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e?.(o),n===!1||!o.defaultPrevented)return t?.(o)}}function Xt(e,t){const n=a.createContext(t),r=s=>{const{children:c,...i}=s,l=a.useMemo(()=>i,Object.values(i));return v.jsx(n.Provider,{value:l,children:c})};r.displayName=e+"Provider";function o(s){const c=a.useContext(n);if(c)return c;if(t!==void 0)return t;throw new Error(`\`${s}\` must be used within \`${e}\``)}return[r,o]}function $e(e,t=[]){let n=[];function r(s,c){const i=a.createContext(c),l=n.length;n=[...n,c];const u=f=>{const{scope:h,children:p,...S}=f,m=h?.[e]?.[l]||i,g=a.useMemo(()=>S,Object.values(S));return v.jsx(m.Provider,{value:g,children:p})};u.displayName=s+"Provider";function d(f,h){const p=h?.[e]?.[l]||i,S=a.useContext(p);if(S)return S;if(c!==void 0)return c;throw new Error(`\`${f}\` must be used within \`${s}\``)}return[u,d]}const o=()=>{const s=n.map(c=>a.createContext(c));return function(i){const l=i?.[e]||s;return a.useMemo(()=>({[`__scope${e}`]:{...i,[e]:l}}),[i,l])}};return o.scopeName=e,[r,Yt(o,...t)]}function Yt(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(s){const c=r.reduce((i,{useScope:l,scopeName:u})=>{const f=l(s)[`__scope${u}`];return{...i,...f}},{});return a.useMemo(()=>({[`__scope${t.scopeName}`]:c}),[c])}};return n.scopeName=t.scopeName,n}var X=globalThis?.document?a.useLayoutEffect:()=>{},Kt=Be[" useId ".trim().toString()]||(()=>{}),Gt=0;function le(e){const[t,n]=a.useState(Kt());return X(()=>{n(r=>r??String(Gt++))},[e]),e||(t?`radix-${t}`:"")}var Zt=Be[" useInsertionEffect ".trim().toString()]||X;function qt({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[o,s,c]=Qt({defaultProp:t,onChange:n}),i=e!==void 0,l=i?e:o;{const d=a.useRef(e!==void 0);a.useEffect(()=>{const f=d.current;f!==i&&console.warn(`${r} is changing from ${f?"controlled":"uncontrolled"} to ${i?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),d.current=i},[i,r])}const u=a.useCallback(d=>{if(i){const f=Jt(d)?d(e):d;f!==e&&c.current?.(f)}else s(d)},[i,e,s,c]);return[l,u]}function Qt({defaultProp:e,onChange:t}){const[n,r]=a.useState(e),o=a.useRef(n),s=a.useRef(t);return Zt(()=>{s.current=t},[t]),a.useEffect(()=>{o.current!==n&&(s.current?.(n),o.current=n)},[n,o]),[n,r,s]}function Jt(e){return typeof e=="function"}function en(e){const t=tn(e),n=a.forwardRef((r,o)=>{const{children:s,...c}=r,i=a.Children.toArray(s),l=i.find(rn);if(l){const u=l.props.children,d=i.map(f=>f===l?a.Children.count(u)>1?a.Children.only(null):a.isValidElement(u)?u.props.children:null:f);return v.jsx(t,{...c,ref:o,children:a.isValidElement(u)?a.cloneElement(u,void 0,d):null})}return v.jsx(t,{...c,ref:o,children:s})});return n.displayName=`${e}.Slot`,n}function tn(e){const t=a.forwardRef((n,r)=>{const{children:o,...s}=n;if(a.isValidElement(o)){const c=an(o),i=on(s,o.props);return o.type!==a.Fragment&&(i.ref=r?He(r,c):c),a.cloneElement(o,i)}return a.Children.count(o)>1?a.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var nn=Symbol("radix.slottable");function rn(e){return a.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===nn}function on(e,t){const n={...t};for(const r in t){const o=e[r],s=t[r];/^on[A-Z]/.test(r)?o&&s?n[r]=(...i)=>{const l=s(...i);return o(...i),l}:o&&(n[r]=o):r==="style"?n[r]={...o,...s}:r==="className"&&(n[r]=[o,s].filter(Boolean).join(" "))}return{...e,...n}}function an(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var sn=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],T=sn.reduce((e,t)=>{const n=en(`Primitive.${t}`),r=a.forwardRef((o,s)=>{const{asChild:c,...i}=o,l=c?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),v.jsx(l,{...i,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function cn(e,t){e&&Wt.flushSync(()=>e.dispatchEvent(t))}function _(e){const t=a.useRef(e);return a.useEffect(()=>{t.current=e}),a.useMemo(()=>(...n)=>t.current?.(...n),[])}function ln(e,t=globalThis?.document){const n=_(e);a.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var un="DismissableLayer",ge="dismissableLayer.update",dn="dismissableLayer.pointerDownOutside",fn="dismissableLayer.focusOutside",Ne,Ve=a.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),ze=a.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:s,onInteractOutside:c,onDismiss:i,...l}=e,u=a.useContext(Ve),[d,f]=a.useState(null),h=d?.ownerDocument??globalThis?.document,[,p]=a.useState({}),S=A(t,y=>f(y)),m=Array.from(u.layers),[g]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),b=m.indexOf(g),E=d?m.indexOf(d):-1,C=u.layersWithOutsidePointerEventsDisabled.size>0,w=E>=b,R=mn(y=>{const O=y.target,x=[...u.branches].some(N=>N.contains(O));!w||x||(o?.(y),c?.(y),y.defaultPrevented||i?.())},h),P=pn(y=>{const O=y.target;[...u.branches].some(N=>N.contains(O))||(s?.(y),c?.(y),y.defaultPrevented||i?.())},h);return ln(y=>{E===u.layers.size-1&&(r?.(y),!y.defaultPrevented&&i&&(y.preventDefault(),i()))},h),a.useEffect(()=>{if(d)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(Ne=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(d)),u.layers.add(d),De(),()=>{n&&u.layersWithOutsidePointerEventsDisabled.size===1&&(h.body.style.pointerEvents=Ne)}},[d,h,n,u]),a.useEffect(()=>()=>{d&&(u.layers.delete(d),u.layersWithOutsidePointerEventsDisabled.delete(d),De())},[d,u]),a.useEffect(()=>{const y=()=>p({});return document.addEventListener(ge,y),()=>document.removeEventListener(ge,y)},[]),v.jsx(T.div,{...l,ref:S,style:{pointerEvents:C?w?"auto":"none":void 0,...e.style},onFocusCapture:D(e.onFocusCapture,P.onFocusCapture),onBlurCapture:D(e.onBlurCapture,P.onBlurCapture),onPointerDownCapture:D(e.onPointerDownCapture,R.onPointerDownCapture)})});ze.displayName=un;var vn="DismissableLayerBranch",hn=a.forwardRef((e,t)=>{const n=a.useContext(Ve),r=a.useRef(null),o=A(t,r);return a.useEffect(()=>{const s=r.current;if(s)return n.branches.add(s),()=>{n.branches.delete(s)}},[n.branches]),v.jsx(T.div,{...e,ref:o})});hn.displayName=vn;function mn(e,t=globalThis?.document){const n=_(e),r=a.useRef(!1),o=a.useRef(()=>{});return a.useEffect(()=>{const s=i=>{if(i.target&&!r.current){let l=function(){Xe(dn,n,u,{discrete:!0})};const u={originalEvent:i};i.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=l,t.addEventListener("click",o.current,{once:!0})):l()}else t.removeEventListener("click",o.current);r.current=!1},c=window.setTimeout(()=>{t.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(c),t.removeEventListener("pointerdown",s),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function pn(e,t=globalThis?.document){const n=_(e),r=a.useRef(!1);return a.useEffect(()=>{const o=s=>{s.target&&!r.current&&Xe(fn,n,{originalEvent:s},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function De(){const e=new CustomEvent(ge);document.dispatchEvent(e)}function Xe(e,t,n,{discrete:r}){const o=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?cn(o,s):o.dispatchEvent(s)}var ue="focusScope.autoFocusOnMount",de="focusScope.autoFocusOnUnmount",Te={bubbles:!1,cancelable:!0},gn="FocusScope",Ye=a.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:s,...c}=e,[i,l]=a.useState(null),u=_(o),d=_(s),f=a.useRef(null),h=A(t,m=>l(m)),p=a.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;a.useEffect(()=>{if(r){let m=function(C){if(p.paused||!i)return;const w=C.target;i.contains(w)?f.current=w:k(f.current,{select:!0})},g=function(C){if(p.paused||!i)return;const w=C.relatedTarget;w!==null&&(i.contains(w)||k(f.current,{select:!0}))},b=function(C){if(document.activeElement===document.body)for(const R of C)R.removedNodes.length>0&&k(i)};document.addEventListener("focusin",m),document.addEventListener("focusout",g);const E=new MutationObserver(b);return i&&E.observe(i,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",m),document.removeEventListener("focusout",g),E.disconnect()}}},[r,i,p.paused]),a.useEffect(()=>{if(i){Oe.add(p);const m=document.activeElement;if(!i.contains(m)){const b=new CustomEvent(ue,Te);i.addEventListener(ue,u),i.dispatchEvent(b),b.defaultPrevented||(bn(Cn(Ke(i)),{select:!0}),document.activeElement===m&&k(i))}return()=>{i.removeEventListener(ue,u),setTimeout(()=>{const b=new CustomEvent(de,Te);i.addEventListener(de,d),i.dispatchEvent(b),b.defaultPrevented||k(m??document.body,{select:!0}),i.removeEventListener(de,d),Oe.remove(p)},0)}}},[i,u,d,p]);const S=a.useCallback(m=>{if(!n&&!r||p.paused)return;const g=m.key==="Tab"&&!m.altKey&&!m.ctrlKey&&!m.metaKey,b=document.activeElement;if(g&&b){const E=m.currentTarget,[C,w]=Sn(E);C&&w?!m.shiftKey&&b===w?(m.preventDefault(),n&&k(C,{select:!0})):m.shiftKey&&b===C&&(m.preventDefault(),n&&k(w,{select:!0})):b===E&&m.preventDefault()}},[n,r,p.paused]);return v.jsx(T.div,{tabIndex:-1,...c,ref:h,onKeyDown:S})});Ye.displayName=gn;function bn(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(k(r,{select:t}),document.activeElement!==n)return}function Sn(e){const t=Ke(e),n=Ae(t,e),r=Ae(t.reverse(),e);return[n,r]}function Ke(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Ae(e,t){for(const n of e)if(!yn(n,{upTo:t}))return n}function yn(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function En(e){return e instanceof HTMLInputElement&&"select"in e}function k(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&En(e)&&t&&e.select()}}var Oe=wn();function wn(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=_e(e,t),e.unshift(t)},remove(t){e=_e(e,t),e[0]?.resume()}}}function _e(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function Cn(e){return e.filter(t=>t.tagName!=="A")}var xn="Portal",Ge=a.forwardRef((e,t)=>{const{container:n,...r}=e,[o,s]=a.useState(!1);X(()=>s(!0),[]);const c=n||o&&globalThis?.document?.body;return c?Bt.createPortal(v.jsx(T.div,{...r,ref:t}),c):null});Ge.displayName=xn;function Rn(e,t){return a.useReducer((n,r)=>t[n][r]??n,e)}var W=e=>{const{present:t,children:n}=e,r=Pn(t),o=typeof n=="function"?n({present:r.isPresent}):a.Children.only(n),s=A(r.ref,Nn(o));return typeof n=="function"||r.isPresent?a.cloneElement(o,{ref:s}):null};W.displayName="Presence";function Pn(e){const[t,n]=a.useState(),r=a.useRef(null),o=a.useRef(e),s=a.useRef("none"),c=e?"mounted":"unmounted",[i,l]=Rn(c,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return a.useEffect(()=>{const u=K(r.current);s.current=i==="mounted"?u:"none"},[i]),X(()=>{const u=r.current,d=o.current;if(d!==e){const h=s.current,p=K(u);e?l("MOUNT"):p==="none"||u?.display==="none"?l("UNMOUNT"):l(d&&h!==p?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,l]),X(()=>{if(t){let u;const d=t.ownerDocument.defaultView??window,f=p=>{const m=K(r.current).includes(CSS.escape(p.animationName));if(p.target===t&&m&&(l("ANIMATION_END"),!o.current)){const g=t.style.animationFillMode;t.style.animationFillMode="forwards",u=d.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=g)})}},h=p=>{p.target===t&&(s.current=K(r.current))};return t.addEventListener("animationstart",h),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{d.clearTimeout(u),t.removeEventListener("animationstart",h),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(i),ref:a.useCallback(u=>{r.current=u?getComputedStyle(u):null,n(u)},[])}}function K(e){return e?.animationName||"none"}function Nn(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var fe=0;function Dn(){a.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??Le()),document.body.insertAdjacentElement("beforeend",e[1]??Le()),fe++,()=>{fe===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),fe--}},[])}function Le(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var J="right-scroll-bar-position",ee="width-before-scroll-bar",Tn="with-scroll-bars-hidden",An="--removed-body-scroll-bar-size";function ve(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function On(e,t){var n=a.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(r){var o=n.value;o!==r&&(n.value=r,n.callback(r,o))}}}})[0];return n.callback=t,n.facade}var _n=typeof window<"u"?a.useLayoutEffect:a.useEffect,Me=new WeakMap;function Ln(e,t){var n=On(null,function(r){return e.forEach(function(o){return ve(o,r)})});return _n(function(){var r=Me.get(n);if(r){var o=new Set(r),s=new Set(e),c=n.current;o.forEach(function(i){s.has(i)||ve(i,null)}),s.forEach(function(i){o.has(i)||ve(i,c)})}Me.set(n,e)},[e]),n}function Mn(e){return e}function In(e,t){t===void 0&&(t=Mn);var n=[],r=!1,o={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(s){var c=t(s,r);return n.push(c),function(){n=n.filter(function(i){return i!==c})}},assignSyncMedium:function(s){for(r=!0;n.length;){var c=n;n=[],c.forEach(s)}n={push:function(i){return s(i)},filter:function(){return n}}},assignMedium:function(s){r=!0;var c=[];if(n.length){var i=n;n=[],i.forEach(s),c=n}var l=function(){var d=c;c=[],d.forEach(s)},u=function(){return Promise.resolve().then(l)};u(),n={push:function(d){c.push(d),u()},filter:function(d){return c=c.filter(d),n}}}};return o}function jn(e){e===void 0&&(e={});var t=In(null);return t.options=F({async:!0,ssr:!1},e),t}var Ze=function(e){var t=e.sideCar,n=Ue(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return a.createElement(r,F({},n))};Ze.isSideCarExport=!0;function kn(e,t){return e.useMedium(t),Ze}var qe=jn(),he=function(){},oe=a.forwardRef(function(e,t){var n=a.useRef(null),r=a.useState({onScrollCapture:he,onWheelCapture:he,onTouchMoveCapture:he}),o=r[0],s=r[1],c=e.forwardProps,i=e.children,l=e.className,u=e.removeScrollBar,d=e.enabled,f=e.shards,h=e.sideCar,p=e.noRelative,S=e.noIsolation,m=e.inert,g=e.allowPinchZoom,b=e.as,E=b===void 0?"div":b,C=e.gapMode,w=Ue(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),R=h,P=Ln([n,t]),y=F(F({},w),o);return a.createElement(a.Fragment,null,d&&a.createElement(R,{sideCar:qe,removeScrollBar:u,shards:f,noRelative:p,noIsolation:S,inert:m,setCallbacks:s,allowPinchZoom:!!g,lockRef:n,gapMode:C}),c?a.cloneElement(a.Children.only(i),F(F({},y),{ref:P})):a.createElement(E,F({},y,{className:l,ref:P}),i))});oe.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};oe.classNames={fullWidth:ee,zeroRight:J};var Fn=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function Wn(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=Fn();return t&&e.setAttribute("nonce",t),e}function Bn(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function Hn(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var Un=function(){var e=0,t=null;return{add:function(n){e==0&&(t=Wn())&&(Bn(t,n),Hn(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},$n=function(){var e=Un();return function(t,n){a.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},Qe=function(){var e=$n(),t=function(n){var r=n.styles,o=n.dynamic;return e(r,o),null};return t},Vn={left:0,top:0,right:0,gap:0},me=function(e){return parseInt(e||"",10)||0},zn=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[me(n),me(r),me(o)]},Xn=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return Vn;var t=zn(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},Yn=Qe(),z="data-scroll-locked",Kn=function(e,t,n,r){var o=e.left,s=e.top,c=e.right,i=e.gap;return n===void 0&&(n="margin"),`
|
| 2 |
+
.`.concat(Tn,` {
|
| 3 |
+
overflow: hidden `).concat(r,`;
|
| 4 |
+
padding-right: `).concat(i,"px ").concat(r,`;
|
| 5 |
+
}
|
| 6 |
+
body[`).concat(z,`] {
|
| 7 |
+
overflow: hidden `).concat(r,`;
|
| 8 |
+
overscroll-behavior: contain;
|
| 9 |
+
`).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&`
|
| 10 |
+
padding-left: `.concat(o,`px;
|
| 11 |
+
padding-top: `).concat(s,`px;
|
| 12 |
+
padding-right: `).concat(c,`px;
|
| 13 |
+
margin-left:0;
|
| 14 |
+
margin-top:0;
|
| 15 |
+
margin-right: `).concat(i,"px ").concat(r,`;
|
| 16 |
+
`),n==="padding"&&"padding-right: ".concat(i,"px ").concat(r,";")].filter(Boolean).join(""),`
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
.`).concat(J,` {
|
| 20 |
+
right: `).concat(i,"px ").concat(r,`;
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
.`).concat(ee,` {
|
| 24 |
+
margin-right: `).concat(i,"px ").concat(r,`;
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
.`).concat(J," .").concat(J,` {
|
| 28 |
+
right: 0 `).concat(r,`;
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
.`).concat(ee," .").concat(ee,` {
|
| 32 |
+
margin-right: 0 `).concat(r,`;
|
| 33 |
+
}
|
| 34 |
+
|
| 35 |
+
body[`).concat(z,`] {
|
| 36 |
+
`).concat(An,": ").concat(i,`px;
|
| 37 |
+
}
|
| 38 |
+
`)},Ie=function(){var e=parseInt(document.body.getAttribute(z)||"0",10);return isFinite(e)?e:0},Gn=function(){a.useEffect(function(){return document.body.setAttribute(z,(Ie()+1).toString()),function(){var e=Ie()-1;e<=0?document.body.removeAttribute(z):document.body.setAttribute(z,e.toString())}},[])},Zn=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=r===void 0?"margin":r;Gn();var s=a.useMemo(function(){return Xn(o)},[o]);return a.createElement(Yn,{styles:Kn(s,!t,o,n?"":"!important")})},be=!1;if(typeof window<"u")try{var G=Object.defineProperty({},"passive",{get:function(){return be=!0,!0}});window.addEventListener("test",G,G),window.removeEventListener("test",G,G)}catch{be=!1}var U=be?{passive:!1}:!1,qn=function(e){return e.tagName==="TEXTAREA"},Je=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!qn(e)&&n[t]==="visible")},Qn=function(e){return Je(e,"overflowY")},Jn=function(e){return Je(e,"overflowX")},je=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var o=et(e,r);if(o){var s=tt(e,r),c=s[1],i=s[2];if(c>i)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},er=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},tr=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},et=function(e,t){return e==="v"?Qn(t):Jn(t)},tt=function(e,t){return e==="v"?er(t):tr(t)},nr=function(e,t){return e==="h"&&t==="rtl"?-1:1},rr=function(e,t,n,r,o){var s=nr(e,window.getComputedStyle(t).direction),c=s*r,i=n.target,l=t.contains(i),u=!1,d=c>0,f=0,h=0;do{if(!i)break;var p=tt(e,i),S=p[0],m=p[1],g=p[2],b=m-g-s*S;(S||b)&&et(e,i)&&(f+=b,h+=S);var E=i.parentNode;i=E&&E.nodeType===Node.DOCUMENT_FRAGMENT_NODE?E.host:E}while(!l&&i!==document.body||l&&(t.contains(i)||t===i));return(d&&Math.abs(f)<1||!d&&Math.abs(h)<1)&&(u=!0),u},Z=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},ke=function(e){return[e.deltaX,e.deltaY]},Fe=function(e){return e&&"current"in e?e.current:e},or=function(e,t){return e[0]===t[0]&&e[1]===t[1]},ar=function(e){return`
|
| 39 |
+
.block-interactivity-`.concat(e,` {pointer-events: none;}
|
| 40 |
+
.allow-interactivity-`).concat(e,` {pointer-events: all;}
|
| 41 |
+
`)},sr=0,$=[];function ir(e){var t=a.useRef([]),n=a.useRef([0,0]),r=a.useRef(),o=a.useState(sr++)[0],s=a.useState(Qe)[0],c=a.useRef(e);a.useEffect(function(){c.current=e},[e]),a.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var m=Ht([e.lockRef.current],(e.shards||[]).map(Fe),!0).filter(Boolean);return m.forEach(function(g){return g.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),m.forEach(function(g){return g.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var i=a.useCallback(function(m,g){if("touches"in m&&m.touches.length===2||m.type==="wheel"&&m.ctrlKey)return!c.current.allowPinchZoom;var b=Z(m),E=n.current,C="deltaX"in m?m.deltaX:E[0]-b[0],w="deltaY"in m?m.deltaY:E[1]-b[1],R,P=m.target,y=Math.abs(C)>Math.abs(w)?"h":"v";if("touches"in m&&y==="h"&&P.type==="range")return!1;var O=window.getSelection(),x=O&&O.anchorNode,N=x?x===P||x.contains(P):!1;if(N)return!1;var M=je(y,P);if(!M)return!0;if(M?R=y:(R=y==="v"?"h":"v",M=je(y,P)),!M)return!1;if(!r.current&&"changedTouches"in m&&(C||w)&&(r.current=R),!R)return!0;var ce=r.current||R;return rr(ce,g,m,ce==="h"?C:w)},[]),l=a.useCallback(function(m){var g=m;if(!(!$.length||$[$.length-1]!==s)){var b="deltaY"in g?ke(g):Z(g),E=t.current.filter(function(R){return R.name===g.type&&(R.target===g.target||g.target===R.shadowParent)&&or(R.delta,b)})[0];if(E&&E.should){g.cancelable&&g.preventDefault();return}if(!E){var C=(c.current.shards||[]).map(Fe).filter(Boolean).filter(function(R){return R.contains(g.target)}),w=C.length>0?i(g,C[0]):!c.current.noIsolation;w&&g.cancelable&&g.preventDefault()}}},[]),u=a.useCallback(function(m,g,b,E){var C={name:m,delta:g,target:b,should:E,shadowParent:cr(b)};t.current.push(C),setTimeout(function(){t.current=t.current.filter(function(w){return w!==C})},1)},[]),d=a.useCallback(function(m){n.current=Z(m),r.current=void 0},[]),f=a.useCallback(function(m){u(m.type,ke(m),m.target,i(m,e.lockRef.current))},[]),h=a.useCallback(function(m){u(m.type,Z(m),m.target,i(m,e.lockRef.current))},[]);a.useEffect(function(){return $.push(s),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:h}),document.addEventListener("wheel",l,U),document.addEventListener("touchmove",l,U),document.addEventListener("touchstart",d,U),function(){$=$.filter(function(m){return m!==s}),document.removeEventListener("wheel",l,U),document.removeEventListener("touchmove",l,U),document.removeEventListener("touchstart",d,U)}},[]);var p=e.removeScrollBar,S=e.inert;return a.createElement(a.Fragment,null,S?a.createElement(s,{styles:ar(o)}):null,p?a.createElement(Zn,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function cr(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const lr=kn(qe,ir);var nt=a.forwardRef(function(e,t){return a.createElement(oe,F({},e,{ref:t,sideCar:lr}))});nt.classNames=oe.classNames;var ur=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},V=new WeakMap,q=new WeakMap,Q={},pe=0,rt=function(e){return e&&(e.host||rt(e.parentNode))},dr=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=rt(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},fr=function(e,t,n,r){var o=dr(t,Array.isArray(e)?e:[e]);Q[n]||(Q[n]=new WeakMap);var s=Q[n],c=[],i=new Set,l=new Set(o),u=function(f){!f||i.has(f)||(i.add(f),u(f.parentNode))};o.forEach(u);var d=function(f){!f||l.has(f)||Array.prototype.forEach.call(f.children,function(h){if(i.has(h))d(h);else try{var p=h.getAttribute(r),S=p!==null&&p!=="false",m=(V.get(h)||0)+1,g=(s.get(h)||0)+1;V.set(h,m),s.set(h,g),c.push(h),m===1&&S&&q.set(h,!0),g===1&&h.setAttribute(n,"true"),S||h.setAttribute(r,"true")}catch(b){console.error("aria-hidden: cannot operate on ",h,b)}})};return d(t),i.clear(),pe++,function(){c.forEach(function(f){var h=V.get(f)-1,p=s.get(f)-1;V.set(f,h),s.set(f,p),h||(q.has(f)||f.removeAttribute(r),q.delete(f)),p||f.removeAttribute(n)}),pe--,pe||(V=new WeakMap,V=new WeakMap,q=new WeakMap,Q={})}},vr=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=ur(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),fr(r,o,n,"aria-hidden")):function(){return null}};function hr(e){const t=mr(e),n=a.forwardRef((r,o)=>{const{children:s,...c}=r,i=a.Children.toArray(s),l=i.find(gr);if(l){const u=l.props.children,d=i.map(f=>f===l?a.Children.count(u)>1?a.Children.only(null):a.isValidElement(u)?u.props.children:null:f);return v.jsx(t,{...c,ref:o,children:a.isValidElement(u)?a.cloneElement(u,void 0,d):null})}return v.jsx(t,{...c,ref:o,children:s})});return n.displayName=`${e}.Slot`,n}function mr(e){const t=a.forwardRef((n,r)=>{const{children:o,...s}=n;if(a.isValidElement(o)){const c=Sr(o),i=br(s,o.props);return o.type!==a.Fragment&&(i.ref=r?He(r,c):c),a.cloneElement(o,i)}return a.Children.count(o)>1?a.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var pr=Symbol("radix.slottable");function gr(e){return a.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===pr}function br(e,t){const n={...t};for(const r in t){const o=e[r],s=t[r];/^on[A-Z]/.test(r)?o&&s?n[r]=(...i)=>{const l=s(...i);return o(...i),l}:o&&(n[r]=o):r==="style"?n[r]={...o,...s}:r==="className"&&(n[r]=[o,s].filter(Boolean).join(" "))}return{...e,...n}}function Sr(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var ae="Dialog",[ot]=$e(ae),[yr,I]=ot(ae),at=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:o,onOpenChange:s,modal:c=!0}=e,i=a.useRef(null),l=a.useRef(null),[u,d]=qt({prop:r,defaultProp:o??!1,onChange:s,caller:ae});return v.jsx(yr,{scope:t,triggerRef:i,contentRef:l,contentId:le(),titleId:le(),descriptionId:le(),open:u,onOpenChange:d,onOpenToggle:a.useCallback(()=>d(f=>!f),[d]),modal:c,children:n})};at.displayName=ae;var st="DialogTrigger",it=a.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=I(st,n),s=A(t,o.triggerRef);return v.jsx(T.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":we(o.open),...r,ref:s,onClick:D(e.onClick,o.onOpenToggle)})});it.displayName=st;var ye="DialogPortal",[Er,ct]=ot(ye,{forceMount:void 0}),lt=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:o}=e,s=I(ye,t);return v.jsx(Er,{scope:t,forceMount:n,children:a.Children.map(r,c=>v.jsx(W,{present:n||s.open,children:v.jsx(Ge,{asChild:!0,container:o,children:c})}))})};lt.displayName=ye;var te="DialogOverlay",ut=a.forwardRef((e,t)=>{const n=ct(te,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,s=I(te,e.__scopeDialog);return s.modal?v.jsx(W,{present:r||s.open,children:v.jsx(Cr,{...o,ref:t})}):null});ut.displayName=te;var wr=hr("DialogOverlay.RemoveScroll"),Cr=a.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=I(te,n);return v.jsx(nt,{as:wr,allowPinchZoom:!0,shards:[o.contentRef],children:v.jsx(T.div,{"data-state":we(o.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),B="DialogContent",dt=a.forwardRef((e,t)=>{const n=ct(B,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,s=I(B,e.__scopeDialog);return v.jsx(W,{present:r||s.open,children:s.modal?v.jsx(xr,{...o,ref:t}):v.jsx(Rr,{...o,ref:t})})});dt.displayName=B;var xr=a.forwardRef((e,t)=>{const n=I(B,e.__scopeDialog),r=a.useRef(null),o=A(t,n.contentRef,r);return a.useEffect(()=>{const s=r.current;if(s)return vr(s)},[]),v.jsx(ft,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:D(e.onCloseAutoFocus,s=>{s.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:D(e.onPointerDownOutside,s=>{const c=s.detail.originalEvent,i=c.button===0&&c.ctrlKey===!0;(c.button===2||i)&&s.preventDefault()}),onFocusOutside:D(e.onFocusOutside,s=>s.preventDefault())})}),Rr=a.forwardRef((e,t)=>{const n=I(B,e.__scopeDialog),r=a.useRef(!1),o=a.useRef(!1);return v.jsx(ft,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(r.current||n.triggerRef.current?.focus(),s.preventDefault()),r.current=!1,o.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(o.current=!0));const c=s.target;n.triggerRef.current?.contains(c)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&o.current&&s.preventDefault()}})}),ft=a.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:s,...c}=e,i=I(B,n),l=a.useRef(null),u=A(t,l);return Dn(),v.jsxs(v.Fragment,{children:[v.jsx(Ye,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:s,children:v.jsx(ze,{role:"dialog",id:i.contentId,"aria-describedby":i.descriptionId,"aria-labelledby":i.titleId,"data-state":we(i.open),...c,ref:u,onDismiss:()=>i.onOpenChange(!1)})}),v.jsxs(v.Fragment,{children:[v.jsx(Pr,{titleId:i.titleId}),v.jsx(Dr,{contentRef:l,descriptionId:i.descriptionId})]})]})}),Ee="DialogTitle",vt=a.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=I(Ee,n);return v.jsx(T.h2,{id:o.titleId,...r,ref:t})});vt.displayName=Ee;var ht="DialogDescription",mt=a.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=I(ht,n);return v.jsx(T.p,{id:o.descriptionId,...r,ref:t})});mt.displayName=ht;var pt="DialogClose",gt=a.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=I(pt,n);return v.jsx(T.button,{type:"button",...r,ref:t,onClick:D(e.onClick,()=>o.onOpenChange(!1))})});gt.displayName=pt;function we(e){return e?"open":"closed"}var bt="DialogTitleWarning",[co,St]=Xt(bt,{contentName:B,titleName:Ee,docsSlug:"dialog"}),Pr=({titleId:e})=>{const t=St(bt),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
|
| 42 |
+
|
| 43 |
+
If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
|
| 44 |
+
|
| 45 |
+
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return a.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},Nr="DialogDescriptionWarning",Dr=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${St(Nr).contentName}}.`;return a.useEffect(()=>{const o=e.current?.getAttribute("aria-describedby");t&&o&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},Tr=at,Ar=it,Or=lt,yt=ut,Et=dt,wt=vt,Ct=mt,_r=gt;const lo=Tr,uo=Ar,Lr=Or,xt=a.forwardRef(({className:e,...t},n)=>v.jsx(yt,{ref:n,className:H("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));xt.displayName=yt.displayName;const Mr=a.forwardRef(({className:e,children:t,...n},r)=>v.jsxs(Lr,{children:[v.jsx(xt,{}),v.jsxs(Et,{ref:r,className:H("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...n,children:[t,v.jsxs(_r,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[v.jsx(zt,{className:"h-4 w-4"}),v.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Mr.displayName=Et.displayName;const Ir=({className:e,...t})=>v.jsx("div",{className:H("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});Ir.displayName="DialogHeader";const jr=a.forwardRef(({className:e,...t},n)=>v.jsx(wt,{ref:n,className:H("text-lg font-semibold leading-none tracking-tight",e),...t}));jr.displayName=wt.displayName;const kr=a.forwardRef(({className:e,...t},n)=>v.jsx(Ct,{ref:n,className:H("text-sm text-muted-foreground",e),...t}));kr.displayName=Ct.displayName;var Fr=a.createContext(void 0);function Wr(e){const t=a.useContext(Fr);return e||t||"ltr"}function Br(e,[t,n]){return Math.min(n,Math.max(t,e))}function Hr(e,t){return a.useReducer((n,r)=>t[n][r]??n,e)}var Ce="ScrollArea",[Rt]=$e(Ce),[Ur,L]=Rt(Ce),Pt=a.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:o,scrollHideDelay:s=600,...c}=e,[i,l]=a.useState(null),[u,d]=a.useState(null),[f,h]=a.useState(null),[p,S]=a.useState(null),[m,g]=a.useState(null),[b,E]=a.useState(0),[C,w]=a.useState(0),[R,P]=a.useState(!1),[y,O]=a.useState(!1),x=A(t,M=>l(M)),N=Wr(o);return v.jsx(Ur,{scope:n,type:r,dir:N,scrollHideDelay:s,scrollArea:i,viewport:u,onViewportChange:d,content:f,onContentChange:h,scrollbarX:p,onScrollbarXChange:S,scrollbarXEnabled:R,onScrollbarXEnabledChange:P,scrollbarY:m,onScrollbarYChange:g,scrollbarYEnabled:y,onScrollbarYEnabledChange:O,onCornerWidthChange:E,onCornerHeightChange:w,children:v.jsx(T.div,{dir:N,...c,ref:x,style:{position:"relative","--radix-scroll-area-corner-width":b+"px","--radix-scroll-area-corner-height":C+"px",...e.style}})})});Pt.displayName=Ce;var Nt="ScrollAreaViewport",Dt=a.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,nonce:o,...s}=e,c=L(Nt,n),i=a.useRef(null),l=A(t,i,c.onViewportChange);return v.jsxs(v.Fragment,{children:[v.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:o}),v.jsx(T.div,{"data-radix-scroll-area-viewport":"",...s,ref:l,style:{overflowX:c.scrollbarXEnabled?"scroll":"hidden",overflowY:c.scrollbarYEnabled?"scroll":"hidden",...e.style},children:v.jsx("div",{ref:c.onContentChange,style:{minWidth:"100%",display:"table"},children:r})})]})});Dt.displayName=Nt;var j="ScrollAreaScrollbar",xe=a.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=L(j,e.__scopeScrollArea),{onScrollbarXEnabledChange:s,onScrollbarYEnabledChange:c}=o,i=e.orientation==="horizontal";return a.useEffect(()=>(i?s(!0):c(!0),()=>{i?s(!1):c(!1)}),[i,s,c]),o.type==="hover"?v.jsx($r,{...r,ref:t,forceMount:n}):o.type==="scroll"?v.jsx(Vr,{...r,ref:t,forceMount:n}):o.type==="auto"?v.jsx(Tt,{...r,ref:t,forceMount:n}):o.type==="always"?v.jsx(Re,{...r,ref:t}):null});xe.displayName=j;var $r=a.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=L(j,e.__scopeScrollArea),[s,c]=a.useState(!1);return a.useEffect(()=>{const i=o.scrollArea;let l=0;if(i){const u=()=>{window.clearTimeout(l),c(!0)},d=()=>{l=window.setTimeout(()=>c(!1),o.scrollHideDelay)};return i.addEventListener("pointerenter",u),i.addEventListener("pointerleave",d),()=>{window.clearTimeout(l),i.removeEventListener("pointerenter",u),i.removeEventListener("pointerleave",d)}}},[o.scrollArea,o.scrollHideDelay]),v.jsx(W,{present:n||s,children:v.jsx(Tt,{"data-state":s?"visible":"hidden",...r,ref:t})})}),Vr=a.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=L(j,e.__scopeScrollArea),s=e.orientation==="horizontal",c=ie(()=>l("SCROLL_END"),100),[i,l]=Hr("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return a.useEffect(()=>{if(i==="idle"){const u=window.setTimeout(()=>l("HIDE"),o.scrollHideDelay);return()=>window.clearTimeout(u)}},[i,o.scrollHideDelay,l]),a.useEffect(()=>{const u=o.viewport,d=s?"scrollLeft":"scrollTop";if(u){let f=u[d];const h=()=>{const p=u[d];f!==p&&(l("SCROLL"),c()),f=p};return u.addEventListener("scroll",h),()=>u.removeEventListener("scroll",h)}},[o.viewport,s,l,c]),v.jsx(W,{present:n||i!=="hidden",children:v.jsx(Re,{"data-state":i==="hidden"?"hidden":"visible",...r,ref:t,onPointerEnter:D(e.onPointerEnter,()=>l("POINTER_ENTER")),onPointerLeave:D(e.onPointerLeave,()=>l("POINTER_LEAVE"))})})}),Tt=a.forwardRef((e,t)=>{const n=L(j,e.__scopeScrollArea),{forceMount:r,...o}=e,[s,c]=a.useState(!1),i=e.orientation==="horizontal",l=ie(()=>{if(n.viewport){const u=n.viewport.offsetWidth<n.viewport.scrollWidth,d=n.viewport.offsetHeight<n.viewport.scrollHeight;c(i?u:d)}},10);return Y(n.viewport,l),Y(n.content,l),v.jsx(W,{present:r||s,children:v.jsx(Re,{"data-state":s?"visible":"hidden",...o,ref:t})})}),Re=a.forwardRef((e,t)=>{const{orientation:n="vertical",...r}=e,o=L(j,e.__scopeScrollArea),s=a.useRef(null),c=a.useRef(0),[i,l]=a.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=Mt(i.viewport,i.content),d={...r,sizes:i,onSizesChange:l,hasThumb:u>0&&u<1,onThumbChange:h=>s.current=h,onThumbPointerUp:()=>c.current=0,onThumbPointerDown:h=>c.current=h};function f(h,p){return Zr(h,c.current,i,p)}return n==="horizontal"?v.jsx(zr,{...d,ref:t,onThumbPositionChange:()=>{if(o.viewport&&s.current){const h=o.viewport.scrollLeft,p=We(h,i,o.dir);s.current.style.transform=`translate3d(${p}px, 0, 0)`}},onWheelScroll:h=>{o.viewport&&(o.viewport.scrollLeft=h)},onDragScroll:h=>{o.viewport&&(o.viewport.scrollLeft=f(h,o.dir))}}):n==="vertical"?v.jsx(Xr,{...d,ref:t,onThumbPositionChange:()=>{if(o.viewport&&s.current){const h=o.viewport.scrollTop,p=We(h,i);s.current.style.transform=`translate3d(0, ${p}px, 0)`}},onWheelScroll:h=>{o.viewport&&(o.viewport.scrollTop=h)},onDragScroll:h=>{o.viewport&&(o.viewport.scrollTop=f(h))}}):null}),zr=a.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...o}=e,s=L(j,e.__scopeScrollArea),[c,i]=a.useState(),l=a.useRef(null),u=A(t,l,s.onScrollbarXChange);return a.useEffect(()=>{l.current&&i(getComputedStyle(l.current))},[l]),v.jsx(Ot,{"data-orientation":"horizontal",...o,ref:u,sizes:n,style:{bottom:0,left:s.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:s.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":se(n)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.x),onDragScroll:d=>e.onDragScroll(d.x),onWheelScroll:(d,f)=>{if(s.viewport){const h=s.viewport.scrollLeft+d.deltaX;e.onWheelScroll(h),jt(h,f)&&d.preventDefault()}},onResize:()=>{l.current&&s.viewport&&c&&r({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:l.current.clientWidth,paddingStart:re(c.paddingLeft),paddingEnd:re(c.paddingRight)}})}})}),Xr=a.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...o}=e,s=L(j,e.__scopeScrollArea),[c,i]=a.useState(),l=a.useRef(null),u=A(t,l,s.onScrollbarYChange);return a.useEffect(()=>{l.current&&i(getComputedStyle(l.current))},[l]),v.jsx(Ot,{"data-orientation":"vertical",...o,ref:u,sizes:n,style:{top:0,right:s.dir==="ltr"?0:void 0,left:s.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":se(n)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.y),onDragScroll:d=>e.onDragScroll(d.y),onWheelScroll:(d,f)=>{if(s.viewport){const h=s.viewport.scrollTop+d.deltaY;e.onWheelScroll(h),jt(h,f)&&d.preventDefault()}},onResize:()=>{l.current&&s.viewport&&c&&r({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:l.current.clientHeight,paddingStart:re(c.paddingTop),paddingEnd:re(c.paddingBottom)}})}})}),[Yr,At]=Rt(j),Ot=a.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:o,onThumbChange:s,onThumbPointerUp:c,onThumbPointerDown:i,onThumbPositionChange:l,onDragScroll:u,onWheelScroll:d,onResize:f,...h}=e,p=L(j,n),[S,m]=a.useState(null),g=A(t,x=>m(x)),b=a.useRef(null),E=a.useRef(""),C=p.viewport,w=r.content-r.viewport,R=_(d),P=_(l),y=ie(f,10);function O(x){if(b.current){const N=x.clientX-b.current.left,M=x.clientY-b.current.top;u({x:N,y:M})}}return a.useEffect(()=>{const x=N=>{const M=N.target;S?.contains(M)&&R(N,w)};return document.addEventListener("wheel",x,{passive:!1}),()=>document.removeEventListener("wheel",x,{passive:!1})},[C,S,w,R]),a.useEffect(P,[r,P]),Y(S,y),Y(p.content,y),v.jsx(Yr,{scope:n,scrollbar:S,hasThumb:o,onThumbChange:_(s),onThumbPointerUp:_(c),onThumbPositionChange:P,onThumbPointerDown:_(i),children:v.jsx(T.div,{...h,ref:g,style:{position:"absolute",...h.style},onPointerDown:D(e.onPointerDown,x=>{x.button===0&&(x.target.setPointerCapture(x.pointerId),b.current=S.getBoundingClientRect(),E.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",p.viewport&&(p.viewport.style.scrollBehavior="auto"),O(x))}),onPointerMove:D(e.onPointerMove,O),onPointerUp:D(e.onPointerUp,x=>{const N=x.target;N.hasPointerCapture(x.pointerId)&&N.releasePointerCapture(x.pointerId),document.body.style.webkitUserSelect=E.current,p.viewport&&(p.viewport.style.scrollBehavior=""),b.current=null})})})}),ne="ScrollAreaThumb",_t=a.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=At(ne,e.__scopeScrollArea);return v.jsx(W,{present:n||o.hasThumb,children:v.jsx(Kr,{ref:t,...r})})}),Kr=a.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...o}=e,s=L(ne,n),c=At(ne,n),{onThumbPositionChange:i}=c,l=A(t,f=>c.onThumbChange(f)),u=a.useRef(void 0),d=ie(()=>{u.current&&(u.current(),u.current=void 0)},100);return a.useEffect(()=>{const f=s.viewport;if(f){const h=()=>{if(d(),!u.current){const p=qr(f,i);u.current=p,i()}};return i(),f.addEventListener("scroll",h),()=>f.removeEventListener("scroll",h)}},[s.viewport,d,i]),v.jsx(T.div,{"data-state":c.hasThumb?"visible":"hidden",...o,ref:l,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:D(e.onPointerDownCapture,f=>{const p=f.target.getBoundingClientRect(),S=f.clientX-p.left,m=f.clientY-p.top;c.onThumbPointerDown({x:S,y:m})}),onPointerUp:D(e.onPointerUp,c.onThumbPointerUp)})});_t.displayName=ne;var Pe="ScrollAreaCorner",Lt=a.forwardRef((e,t)=>{const n=L(Pe,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?v.jsx(Gr,{...e,ref:t}):null});Lt.displayName=Pe;var Gr=a.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,o=L(Pe,n),[s,c]=a.useState(0),[i,l]=a.useState(0),u=!!(s&&i);return Y(o.scrollbarX,()=>{const d=o.scrollbarX?.offsetHeight||0;o.onCornerHeightChange(d),l(d)}),Y(o.scrollbarY,()=>{const d=o.scrollbarY?.offsetWidth||0;o.onCornerWidthChange(d),c(d)}),u?v.jsx(T.div,{...r,ref:t,style:{width:s,height:i,position:"absolute",right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function re(e){return e?parseInt(e,10):0}function Mt(e,t){const n=e/t;return isNaN(n)?0:n}function se(e){const t=Mt(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function Zr(e,t,n,r="ltr"){const o=se(n),s=o/2,c=t||s,i=o-c,l=n.scrollbar.paddingStart+c,u=n.scrollbar.size-n.scrollbar.paddingEnd-i,d=n.content-n.viewport,f=r==="ltr"?[0,d]:[d*-1,0];return It([l,u],f)(e)}function We(e,t,n="ltr"){const r=se(t),o=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,s=t.scrollbar.size-o,c=t.content-t.viewport,i=s-r,l=n==="ltr"?[0,c]:[c*-1,0],u=Br(e,l);return It([0,c],[0,i])(u)}function It(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function jt(e,t){return e>0&&e<t}var qr=(e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function o(){const s={left:e.scrollLeft,top:e.scrollTop},c=n.left!==s.left,i=n.top!==s.top;(c||i)&&t(),n=s,r=window.requestAnimationFrame(o)})(),()=>window.cancelAnimationFrame(r)};function ie(e,t){const n=_(e),r=a.useRef(0);return a.useEffect(()=>()=>window.clearTimeout(r.current),[]),a.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function Y(e,t){const n=_(t);X(()=>{let r=0;if(e){const o=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return o.observe(e),()=>{window.cancelAnimationFrame(r),o.unobserve(e)}}},[e,n])}var kt=Pt,Qr=Dt,Jr=Lt;const eo=a.forwardRef(({className:e,children:t,...n},r)=>v.jsxs(kt,{ref:r,className:H("relative overflow-hidden",e),...n,children:[v.jsx(Qr,{className:"h-full w-full rounded-[inherit]",children:t}),v.jsx(Ft,{}),v.jsx(Jr,{})]}));eo.displayName=kt.displayName;const Ft=a.forwardRef(({className:e,orientation:t="vertical",...n},r)=>v.jsx(xe,{ref:r,orientation:t,className:H("flex touch-none select-none transition-colors",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...n,children:v.jsx(_t,{className:"relative flex-1 rounded-full bg-border"})}));Ft.displayName=xe.displayName;export{so as C,lo as D,io as F,T as P,nt as R,eo as S,D as a,Wr as b,$e as c,qt as d,_ as e,W as f,uo as g,Mr as h,Ir as i,jr as j,kr as k,X as l,Ge as m,vr as n,Dn as o,Ye as p,ze as q,Br as r,le as u};
|
dist/client/assets/severity-badge-ZTZFlOxb.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{j as i}from"./index-CfFa2yOe.js";import{c as o}from"./utils-BQHNewu7.js";const r={critical:"bg-severity-critical/15 text-severity-critical border-severity-critical/40",high:"bg-severity-high/15 text-severity-high border-severity-high/40",medium:"bg-severity-medium/15 text-severity-medium border-severity-medium/40",low:"bg-severity-low/15 text-severity-low border-severity-low/40",unknown:"bg-severity-unknown/15 text-muted-foreground border-severity-unknown/40"};function d({severity:e,className:t}){return i.jsx("span",{className:o("inline-flex items-center px-2 py-0.5 rounded-full border text-[10px] font-bold uppercase tracking-wider font-mono",r[e]??r.unknown,t),children:e})}export{d as S};
|
dist/client/assets/shield-BsNfmvT5.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{c}from"./createLucideIcon-CxpWYIt5.js";const e=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],a=c("shield",e);export{a as S};
|
dist/client/assets/styles-ze8PoXHv.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:"Inter", ui-sans-serif, system-ui, sans-serif;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-yellow-500:oklch(79.5% .184 86.047);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-5xl:3rem;--text-5xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-relaxed:1.625;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Inter", ui-sans-serif, system-ui, sans-serif;--default-mono-font-family:"JetBrains Mono", ui-monospace, monospace;--color-background:var(--background);--color-foreground:var(--foreground);--color-border:var(--border);--shadow-glow:0 0 40px -10px oklch(78% .14 200/.45)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--color-border)}html,body{background-color:var(--color-background);color:var(--color-foreground)}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.-top-12{top:calc(var(--spacing) * -12)}.top-0{top:calc(var(--spacing) * 0)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3\.5{top:calc(var(--spacing) * 3.5)}.top-4{top:calc(var(--spacing) * 4)}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.-right-12{right:calc(var(--spacing) * -12)}.right-0{right:calc(var(--spacing) * 0)}.right-1{right:calc(var(--spacing) * 1)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.-bottom-12{bottom:calc(var(--spacing) * -12)}.bottom-0{bottom:calc(var(--spacing) * 0)}.-left-12{left:calc(var(--spacing) * -12)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-\[50\%\]{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[1\]{z-index:1}.col-span-2{grid-column:span 2/span 2}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-3\.5{margin-inline:calc(var(--spacing) * 3.5)}.mx-auto{margin-inline:auto}.my-0\.5{margin-block:calc(var(--spacing) * .5)}.my-1{margin-block:calc(var(--spacing) * 1)}.my-8{margin-block:calc(var(--spacing) * 8)}.-mt-4{margin-top:calc(var(--spacing) * -4)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-20{margin-top:calc(var(--spacing) * 20)}.mt-24{margin-top:calc(var(--spacing) * 24)}.mt-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.-ml-4{margin-left:calc(var(--spacing) * -4)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-\[26px\]{margin-left:26px}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-\(--cell-size\){width:var(--cell-size);height:var(--cell-size)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.h-\(--cell-size\){height:var(--cell-size)}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-28{height:calc(var(--spacing) * 28)}.h-64{height:calc(var(--spacing) * 64)}.h-\[1px\]{height:1px}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-\(--radix-context-menu-content-available-height\){max-height:var(--radix-context-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-\[60vh\]{max-height:60vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[300px\]{max-height:300px}.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[60px\]{min-height:60px}.min-h-\[200px\]{min-height:200px}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-\(--cell-size\){width:var(--cell-size)}.w-\(--sidebar-width\){width:var(--sidebar-width)}.w-0{width:calc(var(--spacing) * 0)}.w-1{width:calc(var(--spacing) * 1)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\[1px\]{width:1px}.w-\[100px\]{width:100px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-\(--skeleton-width\){max-width:var(--skeleton-width)}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[220px\]{max-width:220px}.max-w-lg{max-width:var(--container-lg)}.max-w-max{max-width:max-content}.max-w-md{max-width:var(--container-md)}.max-w-xl{max-width:var(--container-xl)}.min-w-\(--cell-size\){min-width:var(--cell-size)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-4{min-width:calc(var(--spacing) * 4)}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-9{min-width:calc(var(--spacing) * 9)}.min-w-10{min-width:calc(var(--spacing) * 10)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-\(--radix-context-menu-content-transform-origin\){transform-origin:var(--radix-context-menu-content-transform-origin)}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-hover-card-content-transform-origin\){transform-origin:var(--radix-hover-card-content-transform-origin)}.origin-\(--radix-menubar-content-transform-origin\){transform-origin:var(--radix-menubar-content-transform-origin)}.origin-\(--radix-popover-content-transform-origin\){transform-origin:var(--radix-popover-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-px{--tw-translate-x:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-px{--tw-translate-x:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\[scanline_2\.4s_linear_infinite\]{animation:2.4s linear infinite scanline}.animate-caret-blink{animation:1.25s ease-out infinite caret-blink}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize-none{resize:none}.resize-y{resize:vertical}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[1fr_auto_2fr_auto\]{grid-template-columns:1fr auto 2fr auto}.grid-cols-\[60px_1fr\]{grid-template-columns:60px 1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 1) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-x-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\(--color-border\){border-color:var(--color-border)}.border-\[\#2684ff\]\/40{border-color:#2684ff66}.border-border,.border-border\/40{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/40{border-color:color-mix(in oklab,var(--border) 40%,transparent)}}.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,var(--border) 50%,transparent)}}.border-destructive,.border-destructive\/40{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/40{border-color:color-mix(in oklab,var(--destructive) 40%,transparent)}}.border-destructive\/50{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/50{border-color:color-mix(in oklab,var(--destructive) 50%,transparent)}}.border-input{border-color:var(--input)}.border-primary,.border-primary\/20{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/20{border-color:color-mix(in oklab,var(--primary) 20%,transparent)}}.border-primary\/30{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/30{border-color:color-mix(in oklab,var(--primary) 30%,transparent)}}.border-primary\/40{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/40{border-color:color-mix(in oklab,var(--primary) 40%,transparent)}}.border-primary\/50{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/50{border-color:color-mix(in oklab,var(--primary) 50%,transparent)}}.border-primary\/60{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/60{border-color:color-mix(in oklab,var(--primary) 60%,transparent)}}.border-purple-400\/40{border-color:#c07eff66}@supports (color:color-mix(in lab,red,red)){.border-purple-400\/40{border-color:color-mix(in oklab,var(--color-purple-400) 40%,transparent)}}.border-red-500\/60{border-color:#fb2c3699}@supports (color:color-mix(in lab,red,red)){.border-red-500\/60{border-color:color-mix(in oklab,var(--color-red-500) 60%,transparent)}}.border-severity-critical\/30{border-color:var(--severity-critical)}@supports (color:color-mix(in lab,red,red)){.border-severity-critical\/30{border-color:color-mix(in oklab,var(--severity-critical) 30%,transparent)}}.border-severity-critical\/40{border-color:var(--severity-critical)}@supports (color:color-mix(in lab,red,red)){.border-severity-critical\/40{border-color:color-mix(in oklab,var(--severity-critical) 40%,transparent)}}.border-severity-high\/40{border-color:var(--severity-high)}@supports (color:color-mix(in lab,red,red)){.border-severity-high\/40{border-color:color-mix(in oklab,var(--severity-high) 40%,transparent)}}.border-severity-low,.border-severity-low\/30{border-color:var(--severity-low)}@supports (color:color-mix(in lab,red,red)){.border-severity-low\/30{border-color:color-mix(in oklab,var(--severity-low) 30%,transparent)}}.border-severity-low\/40{border-color:var(--severity-low)}@supports (color:color-mix(in lab,red,red)){.border-severity-low\/40{border-color:color-mix(in oklab,var(--severity-low) 40%,transparent)}}.border-severity-medium\/40{border-color:var(--severity-medium)}@supports (color:color-mix(in lab,red,red)){.border-severity-medium\/40{border-color:color-mix(in oklab,var(--severity-medium) 40%,transparent)}}.border-severity-unknown\/40{border-color:var(--severity-unknown)}@supports (color:color-mix(in lab,red,red)){.border-severity-unknown\/40{border-color:color-mix(in oklab,var(--severity-unknown) 40%,transparent)}}.border-sidebar-border{border-color:var(--sidebar-border)}.border-transparent{border-color:#0000}.border-yellow-500\/30{border-color:#edb2004d}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/30{border-color:color-mix(in oklab,var(--color-yellow-500) 30%,transparent)}}.border-yellow-500\/40{border-color:#edb20066}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/40{border-color:color-mix(in oklab,var(--color-yellow-500) 40%,transparent)}}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-\(--color-bg\){background-color:var(--color-bg)}.bg-\[\#0a0e15\]{background-color:#0a0e15}.bg-\[\#0d1520\]{background-color:#0d1520}.bg-\[\#080c10\]{background-color:#080c10}.bg-\[\#2684ff\]{background-color:#2684ff}.bg-\[\#2684ff\]\/10{background-color:#2684ff1a}.bg-accent{background-color:var(--accent)}.bg-background,.bg-background\/40{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/40{background-color:color-mix(in oklab,var(--background) 40%,transparent)}}.bg-background\/60{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/60{background-color:color-mix(in oklab,var(--background) 60%,transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.bg-black\/70{background-color:color-mix(in oklab,var(--color-black) 70%,transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.bg-black\/80{background-color:color-mix(in oklab,var(--color-black) 80%,transparent)}}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive,.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.bg-destructive\/15{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/15{background-color:color-mix(in oklab,var(--destructive) 15%,transparent)}}.bg-destructive\/40{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/40{background-color:color-mix(in oklab,var(--destructive) 40%,transparent)}}.bg-foreground{background-color:var(--foreground)}.bg-muted{background-color:var(--muted)}.bg-muted-foreground{background-color:var(--muted-foreground)}.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--muted) 30%,transparent)}}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/5{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/5{background-color:color-mix(in oklab,var(--primary) 5%,transparent)}}.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--primary) 10%,transparent)}}.bg-primary\/15{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/15{background-color:color-mix(in oklab,var(--primary) 15%,transparent)}}.bg-primary\/20{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/20{background-color:color-mix(in oklab,var(--primary) 20%,transparent)}}.bg-purple-400\/10{background-color:#c07eff1a}@supports (color:color-mix(in lab,red,red)){.bg-purple-400\/10{background-color:color-mix(in oklab,var(--color-purple-400) 10%,transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-severity-critical,.bg-severity-critical\/5{background-color:var(--severity-critical)}@supports (color:color-mix(in lab,red,red)){.bg-severity-critical\/5{background-color:color-mix(in oklab,var(--severity-critical) 5%,transparent)}}.bg-severity-critical\/10{background-color:var(--severity-critical)}@supports (color:color-mix(in lab,red,red)){.bg-severity-critical\/10{background-color:color-mix(in oklab,var(--severity-critical) 10%,transparent)}}.bg-severity-critical\/15{background-color:var(--severity-critical)}@supports (color:color-mix(in lab,red,red)){.bg-severity-critical\/15{background-color:color-mix(in oklab,var(--severity-critical) 15%,transparent)}}.bg-severity-high,.bg-severity-high\/10{background-color:var(--severity-high)}@supports (color:color-mix(in lab,red,red)){.bg-severity-high\/10{background-color:color-mix(in oklab,var(--severity-high) 10%,transparent)}}.bg-severity-high\/15{background-color:var(--severity-high)}@supports (color:color-mix(in lab,red,red)){.bg-severity-high\/15{background-color:color-mix(in oklab,var(--severity-high) 15%,transparent)}}.bg-severity-low,.bg-severity-low\/5{background-color:var(--severity-low)}@supports (color:color-mix(in lab,red,red)){.bg-severity-low\/5{background-color:color-mix(in oklab,var(--severity-low) 5%,transparent)}}.bg-severity-low\/15{background-color:var(--severity-low)}@supports (color:color-mix(in lab,red,red)){.bg-severity-low\/15{background-color:color-mix(in oklab,var(--severity-low) 15%,transparent)}}.bg-severity-low\/20{background-color:var(--severity-low)}@supports (color:color-mix(in lab,red,red)){.bg-severity-low\/20{background-color:color-mix(in oklab,var(--severity-low) 20%,transparent)}}.bg-severity-low\/60{background-color:var(--severity-low)}@supports (color:color-mix(in lab,red,red)){.bg-severity-low\/60{background-color:color-mix(in oklab,var(--severity-low) 60%,transparent)}}.bg-severity-medium\/15{background-color:var(--severity-medium)}@supports (color:color-mix(in lab,red,red)){.bg-severity-medium\/15{background-color:color-mix(in oklab,var(--severity-medium) 15%,transparent)}}.bg-severity-unknown\/15{background-color:var(--severity-unknown)}@supports (color:color-mix(in lab,red,red)){.bg-severity-unknown\/15{background-color:color-mix(in oklab,var(--severity-unknown) 15%,transparent)}}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-accent{background-color:var(--sidebar-accent)}.bg-sidebar-border{background-color:var(--sidebar-border)}.bg-surface,.bg-surface\/20{background-color:var(--surface)}@supports (color:color-mix(in lab,red,red)){.bg-surface\/20{background-color:color-mix(in oklab,var(--surface) 20%,transparent)}}.bg-surface\/30{background-color:var(--surface)}@supports (color:color-mix(in lab,red,red)){.bg-surface\/30{background-color:color-mix(in oklab,var(--surface) 30%,transparent)}}.bg-surface\/40{background-color:var(--surface)}@supports (color:color-mix(in lab,red,red)){.bg-surface\/40{background-color:color-mix(in oklab,var(--surface) 40%,transparent)}}.bg-surface\/50{background-color:var(--surface)}@supports (color:color-mix(in lab,red,red)){.bg-surface\/50{background-color:color-mix(in oklab,var(--surface) 50%,transparent)}}.bg-surface\/60{background-color:var(--surface)}@supports (color:color-mix(in lab,red,red)){.bg-surface\/60{background-color:color-mix(in oklab,var(--surface) 60%,transparent)}}.bg-transparent{background-color:#0000}.bg-yellow-500\/5{background-color:#edb2000d}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/5{background-color:color-mix(in oklab,var(--color-yellow-500) 5%,transparent)}}.bg-yellow-500\/10{background-color:#edb2001a}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/10{background-color:color-mix(in oklab,var(--color-yellow-500) 10%,transparent)}}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-primary{--tw-gradient-via:var(--primary);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.fill-current{fill:currentColor}.fill-primary{fill:var(--primary)}.p-0{padding:calc(var(--spacing) * 0)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-\[1px\]{padding:1px}.px-\(--cell-size\){padding-inline:var(--cell-size)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-24{padding-block:calc(var(--spacing) * 24)}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-20{padding-top:calc(var(--spacing) * 20)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:JetBrains Mono,ui-monospace,monospace}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-\[1\.05\]{--tw-leading:1.05;line-height:1.05}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#2684ff\]{color:#2684ff}.text-accent-foreground{color:var(--accent-foreground)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-destructive{color:var(--destructive)}.text-destructive-foreground{color:var(--destructive-foreground)}.text-foreground,.text-foreground\/80{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/80{color:color-mix(in oklab,var(--foreground) 80%,transparent)}}.text-foreground\/85{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/85{color:color-mix(in oklab,var(--foreground) 85%,transparent)}}.text-foreground\/90{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/90{color:color-mix(in oklab,var(--foreground) 90%,transparent)}}.text-muted-foreground,.text-muted-foreground\/40{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/40{color:color-mix(in oklab,var(--muted-foreground) 40%,transparent)}}.text-muted-foreground\/60{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/60{color:color-mix(in oklab,var(--muted-foreground) 60%,transparent)}}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-primary\/30{color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.text-primary\/30{color:color-mix(in oklab,var(--primary) 30%,transparent)}}.text-primary\/40{color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.text-primary\/40{color:color-mix(in oklab,var(--primary) 40%,transparent)}}.text-purple-300{color:var(--color-purple-300)}.text-red-400{color:var(--color-red-400)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-severity-critical{color:var(--severity-critical)}.text-severity-high{color:var(--severity-high)}.text-severity-low{color:var(--severity-low)}.text-severity-medium{color:var(--severity-medium)}.text-sidebar-foreground,.text-sidebar-foreground\/70{color:var(--sidebar-foreground)}@supports (color:color-mix(in lab,red,red)){.text-sidebar-foreground\/70{color:color-mix(in oklab,var(--sidebar-foreground) 70%,transparent)}}.text-white{color:var(--color-white)}.text-yellow-500{color:var(--color-yellow-500)}.uppercase{text-transform:uppercase}.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,)}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_0_1px_var\(--sidebar-border\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--sidebar-border));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_20px_-8px_hsl\(var\(--primary\)\)\]{--tw-shadow:0 0 20px -8px var(--tw-shadow-color,hsl(var(--primary)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[var\(--shadow-glow\)\]{--tw-shadow:var(--shadow-glow);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-ring{--tw-ring-color:var(--ring)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-1000{--tw-duration:1s;transition-duration:1s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.\[--cell-size\:2rem\]{--cell-size:2rem}.group-focus-within\/menu-item\:opacity-100:is(:where(.group\/menu-item):focus-within *){opacity:1}@media(hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/menu-item\:opacity-100:is(:where(.group\/menu-item):hover *){opacity:1}}.group-has-\[\[data-sidebar\=menu-action\]\]\/menu-item\:pr-8:is(:where(.group\/menu-item):has([data-sidebar=menu-action]) *){padding-right:calc(var(--spacing) * 8)}.group-data-\[collapsible\=icon\]\:-mt-8:is(:where(.group)[data-collapsible=icon] *){margin-top:calc(var(--spacing) * -8)}.group-data-\[collapsible\=icon\]\:hidden:is(:where(.group)[data-collapsible=icon] *){display:none}.group-data-\[collapsible\=icon\]\:\!size-8:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--spacing) * 8)!important;height:calc(var(--spacing) * 8)!important}.group-data-\[collapsible\=icon\]\:w-\(--sidebar-width-icon\):is(:where(.group)[data-collapsible=icon] *){width:var(--sidebar-width-icon)}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + 1rem)}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)_\+2px\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + 1rem + 2px)}.group-data-\[collapsible\=icon\]\:overflow-hidden:is(:where(.group)[data-collapsible=icon] *){overflow:hidden}.group-data-\[collapsible\=icon\]\:\!p-0:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing) * 0)!important}.group-data-\[collapsible\=icon\]\:\!p-2:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing) * 2)!important}.group-data-\[collapsible\=icon\]\:opacity-0:is(:where(.group)[data-collapsible=icon] *){opacity:0}.group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width) * -1)}.group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width) * -1)}.group-data-\[collapsible\=offcanvas\]\:w-0:is(:where(.group)[data-collapsible=offcanvas] *){width:calc(var(--spacing) * 0)}.group-data-\[collapsible\=offcanvas\]\:translate-x-0:is(:where(.group)[data-collapsible=offcanvas] *){--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-data-\[focused\=true\]\/day\:relative:is(:where(.group\/day)[data-focused=true] *){position:relative}.group-data-\[focused\=true\]\/day\:z-10:is(:where(.group\/day)[data-focused=true] *){z-index:10}.group-data-\[focused\=true\]\/day\:border-ring:is(:where(.group\/day)[data-focused=true] *){border-color:var(--ring)}.group-data-\[focused\=true\]\/day\:ring-\[3px\]:is(:where(.group\/day)[data-focused=true] *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[focused\=true\]\/day\:ring-ring\/50:is(:where(.group\/day)[data-focused=true] *){--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.group-data-\[focused\=true\]\/day\:ring-ring\/50:is(:where(.group\/day)[data-focused=true] *){--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.group-data-\[side\=left\]\:-right-4:is(:where(.group)[data-side=left] *){right:calc(var(--spacing) * -4)}.group-data-\[side\=left\]\:border-r:is(:where(.group)[data-side=left] *){border-right-style:var(--tw-border-style);border-right-width:1px}.group-data-\[side\=right\]\:left-0:is(:where(.group)[data-side=right] *){left:calc(var(--spacing) * 0)}.group-data-\[side\=right\]\:rotate-180:is(:where(.group)[data-side=right] *){rotate:180deg}.group-data-\[side\=right\]\:border-l:is(:where(.group)[data-side=right] *){border-left-style:var(--tw-border-style);border-left-width:1px}.group-data-\[state\=open\]\:rotate-180:is(:where(.group)[data-state=open] *){rotate:180deg}.group-data-\[variant\=floating\]\:rounded-lg:is(:where(.group)[data-variant=floating] *){border-radius:var(--radius)}.group-data-\[variant\=floating\]\:border:is(:where(.group)[data-variant=floating] *){border-style:var(--tw-border-style);border-width:1px}.group-data-\[variant\=floating\]\:border-sidebar-border:is(:where(.group)[data-variant=floating] *){border-color:var(--sidebar-border)}.group-data-\[variant\=floating\]\:shadow:is(:where(.group)[data-variant=floating] *){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-\[\.toast\]\:bg-muted:is(:where(.group).toast *){background-color:var(--muted)}.group-\[\.toast\]\:bg-primary:is(:where(.group).toast *){background-color:var(--primary)}.group-\[\.toast\]\:text-muted-foreground:is(:where(.group).toast *){color:var(--muted-foreground)}.group-\[\.toast\]\:text-primary-foreground:is(:where(.group).toast *){color:var(--primary-foreground)}.group-\[\.toaster\]\:border-border:is(:where(.group).toaster *){border-color:var(--border)}.group-\[\.toaster\]\:bg-background:is(:where(.group).toaster *){background-color:var(--background)}.group-\[\.toaster\]\:text-foreground:is(:where(.group).toaster *){color:var(--foreground)}.group-\[\.toaster\]\:shadow-lg:is(:where(.group).toaster *){--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.peer-data-\[size\=default\]\/menu-button\:top-1\.5:is(:where(.peer\/menu-button)[data-size=default]~*){top:calc(var(--spacing) * 1.5)}.peer-data-\[size\=lg\]\/menu-button\:top-2\.5:is(:where(.peer\/menu-button)[data-size=lg]~*){top:calc(var(--spacing) * 2.5)}.peer-data-\[size\=sm\]\/menu-button\:top-1:is(:where(.peer\/menu-button)[data-size=sm]~*){top:calc(var(--spacing) * 1)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:calc(var(--spacing) * -2)}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:calc(var(--spacing) * 1)}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.group-data-\[collapsible\=offcanvas\]\:after\:left-full:is(:where(.group)[data-collapsible=offcanvas] *):after{content:var(--tw-content);left:100%}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.last\:flex-initial:last-child{flex:0 auto}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.last\:border-r-0:last-child{border-right-style:var(--tw-border-style);border-right-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media(hover:hover){.hover\:border-\[\#2684ff\]:hover{border-color:#2684ff}.hover\:border-primary\/30:hover{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/30:hover{border-color:color-mix(in oklab,var(--primary) 30%,transparent)}}.hover\:border-primary\/40:hover{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/40:hover{border-color:color-mix(in oklab,var(--primary) 40%,transparent)}}.hover\:border-primary\/50:hover{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab,var(--primary) 50%,transparent)}}.hover\:bg-\[\#2684ff\]\/20:hover{background-color:#2684ff33}.hover\:bg-\[\#2684ff\]\/90:hover{background-color:#2684ffe6}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-destructive\/80:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/80:hover{background-color:color-mix(in oklab,var(--destructive) 80%,transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}.hover\:bg-muted:hover,.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.hover\:bg-primary\/20:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/20:hover{background-color:color-mix(in oklab,var(--primary) 20%,transparent)}}.hover\:bg-primary\/80:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab,var(--primary) 80%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary) 80%,transparent)}}.hover\:bg-sidebar-accent:hover{background-color:var(--sidebar-accent)}.hover\:bg-surface:hover,.hover\:bg-surface\/50:hover{background-color:var(--surface)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-surface\/50:hover{background-color:color-mix(in oklab,var(--surface) 50%,transparent)}}.hover\:bg-yellow-500\/20:hover{background-color:#edb20033}@supports (color:color-mix(in lab,red,red)){.hover\:bg-yellow-500\/20:hover{background-color:color-mix(in oklab,var(--color-yellow-500) 20%,transparent)}}.hover\:text-\[\#2684ff\]:hover{color:#2684ff}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-destructive:hover{color:var(--destructive)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:text-primary:hover{color:var(--primary)}.hover\:text-sidebar-foreground:hover{color:var(--sidebar-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_var\(--sidebar-accent\)\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--sidebar-accent));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[collapsible\=offcanvas\]\:hover\:bg-sidebar:is(:where(.group)[data-collapsible=offcanvas] *):hover{background-color:var(--sidebar)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:var(--sidebar-border)}}.focus\:border-\[\#2684ff\]:focus{border-color:#2684ff}.focus\:border-primary:focus{border-color:var(--primary)}.focus\:border-red-500:focus{border-color:var(--color-red-500)}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--ring)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--background)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:bg-sidebar-accent:active{background-color:var(--sidebar-accent)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media(hover:hover){.disabled\:hover\:bg-\[\#2684ff\]:disabled:hover{background-color:#2684ff}.disabled\:hover\:bg-\[\#2684ff\]\/10:disabled:hover{background-color:#2684ff1a}}.has-focus\:border-ring:has(:focus){border-color:var(--ring)}.has-focus\:ring-\[3px\]:has(:focus){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.has-focus\:ring-ring\/50:has(:focus){--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.has-focus\:ring-ring\/50:has(:focus){--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.has-\[\[data-variant\=inset\]\]\:bg-sidebar:has([data-variant=inset]){background-color:var(--sidebar)}.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:var(--muted-foreground)}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:var(--sidebar-accent)}.data-\[active\=true\]\:font-medium[data-active=true]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x:calc(52*var(--spacing))}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x:calc(52*var(--spacing)*-1)}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x:calc(52*var(--spacing))}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x:calc(52*var(--spacing)*-1)}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity:0}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-]{--tw-exit-opacity:0}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:calc(var(--spacing) * 0)}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:calc(var(--spacing) * 1)}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:var(--primary)}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:var(--primary-foreground)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:var(--accent)}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:var(--accent-foreground)}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-start\=true\]\:bg-primary[data-range-start=true]{background-color:var(--primary)}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true]{color:var(--primary-foreground)}.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:var(--primary)}.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:var(--primary-foreground)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:var(--accent)}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:var(--accent-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50% }.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48% }.data-\[state\=hidden\]\:animate-out[data-state=hidden]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity:0}.data-\[state\=on\]\:bg-accent[data-state=on]{background-color:var(--accent)}.data-\[state\=on\]\:text-accent-foreground[data-state=on]{color:var(--accent-foreground)}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open],.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:color-mix(in oklab,var(--accent) 50%,transparent)}}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:var(--secondary)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale:.9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50% }.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48% }@media(hover:hover){.data-\[state\=open\]\:hover\:bg-accent[data-state=open]:hover{background-color:var(--accent)}.data-\[state\=open\]\:hover\:bg-sidebar-accent[data-state=open]:hover{background-color:var(--sidebar-accent)}}.data-\[state\=open\]\:focus\:bg-accent[data-state=open]:focus{background-color:var(--accent)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--input)}.data-\[state\=visible\]\:animate-in[data-state=visible]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity:0}@media(min-width:40rem){.sm\:mt-0{margin-top:calc(var(--spacing) * 0)}.sm\:flex{display:flex}.sm\:w-\[320px\]{width:320px}.sm\:w-auto{width:auto}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:calc(var(--spacing) * 2.5)}:where(.sm\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}@media(min-width:48rem){.md\:absolute{position:absolute}.md\:block{display:block}.md\:flex{display:flex}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:flex-row{flex-direction:row}.md\:text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:opacity-0{opacity:0}.md\:peer-data-\[variant\=inset\]\:m-2:is(:where(.peer)[data-variant=inset]~*){margin:calc(var(--spacing) * 2)}.md\:peer-data-\[variant\=inset\]\:ml-0:is(:where(.peer)[data-variant=inset]~*){margin-left:calc(var(--spacing) * 0)}.md\:peer-data-\[variant\=inset\]\:rounded-xl:is(:where(.peer)[data-variant=inset]~*){border-radius:calc(var(--radius) + 4px)}.md\:peer-data-\[variant\=inset\]\:shadow:is(:where(.peer)[data-variant=inset]~*){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.md\:peer-data-\[state\=collapsed\]\:peer-data-\[variant\=inset\]\:ml-2:is(:where(.peer)[data-state=collapsed]~*):is(:where(.peer)[data-variant=inset]~*){margin-left:calc(var(--spacing) * 2)}}.after\:md\:hidden:after{content:var(--tw-content)}@media(min-width:48rem){.after\:md\:hidden:after{display:none}}@media(min-width:64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-\[360px_1fr\]{grid-template-columns:360px 1fr}.lg\:grid-cols-\[420px_1fr\]{grid-template-columns:420px 1fr}.lg\:grid-cols-\[480px_1fr\]{grid-template-columns:480px 1fr}.lg\:p-8{padding:calc(var(--spacing) * 8)}}.dark\:border-destructive:is(.dark *){border-color:var(--destructive)}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:var(--muted-foreground)}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:var(--border)}@supports (color:color-mix(in lab,red,red)){.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:color-mix(in oklab,var(--border) 50%,transparent)}}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:var(--border)}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:#0000}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{--tw-outline-style:none;outline-style:none}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:var(--border)}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:var(--muted)}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:var(--border)}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector{--tw-outline-style:none;outline-style:none}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:#0000}.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{--tw-outline-style:none;outline-style:none}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--spacing) * 1.5)}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:var(--muted-foreground)}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:calc(var(--spacing) * 0)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:calc(var(--spacing) * 5)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:calc(var(--spacing) * 5)}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:calc(var(--spacing) * 12)}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-block:calc(var(--spacing) * 3)}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:calc(var(--spacing) * 5)}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:calc(var(--spacing) * 5)}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing) * 0)}:is(.rtl\:\*\*\:\[\.rdp-button\\_next\>svg\]\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *) *):is(.rdp-button_next>svg),:is(.rtl\:\*\*\:\[\.rdp-button\\_previous\>svg\]\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *) *):is(.rdp-button_previous>svg){rotate:180deg}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[\&\>span\]\:text-xs>span{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>span\:last-child\]\:truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:top-4>svg{top:calc(var(--spacing) * 4)}.\[\&\>svg\]\:left-4>svg{left:calc(var(--spacing) * 4)}.\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:h-2\.5>svg{height:calc(var(--spacing) * 2.5)}.\[\&\>svg\]\:h-3>svg{height:calc(var(--spacing) * 3)}.\[\&\>svg\]\:h-3\.5>svg{height:calc(var(--spacing) * 3.5)}.\[\&\>svg\]\:w-2\.5>svg{width:calc(var(--spacing) * 2.5)}.\[\&\>svg\]\:w-3>svg{width:calc(var(--spacing) * 3)}.\[\&\>svg\]\:w-3\.5>svg{width:calc(var(--spacing) * 3.5)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:var(--destructive)}.\[\&\>svg\]\:text-foreground>svg{color:var(--foreground)}.\[\&\>svg\]\:text-muted-foreground>svg{color:var(--muted-foreground)}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:calc(var(--spacing) * 7)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{rotate:90deg}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{rotate:180deg}[data-side=left] .\[\[data-side\=left\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:calc(var(--spacing) * -2)}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize,[data-side=right] .\[\[data-side\=right\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:calc(var(--spacing) * -2)}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:#0000}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.625rem;--background:oklch(16% .04 260);--foreground:oklch(96% .01 250);--surface:oklch(21% .05 260);--surface-elevated:oklch(25% .05 260);--card:oklch(21% .05 260);--card-foreground:oklch(96% .01 250);--popover:oklch(21% .05 260);--popover-foreground:oklch(96% .01 250);--primary:oklch(78% .14 200);--primary-foreground:oklch(16% .04 260);--secondary:oklch(28% .05 260);--secondary-foreground:oklch(96% .01 250);--muted:oklch(28% .04 260);--muted-foreground:oklch(70% .03 250);--accent:oklch(32% .06 230);--accent-foreground:oklch(96% .01 250);--destructive:oklch(62% .22 25);--destructive-foreground:oklch(98% 0 0);--border:oklch(32% .04 260);--input:oklch(28% .04 260);--ring:oklch(78% .14 200);--severity-critical:oklch(58% .24 18);--severity-high:oklch(66% .21 30);--severity-medium:oklch(78% .16 75);--severity-low:oklch(74% .14 160);--severity-unknown:oklch(55% .03 260);--sidebar:oklch(13% .04 260);--sidebar-foreground:oklch(92% .01 250);--sidebar-border:oklch(28% .04 260);--sidebar-accent:oklch(24% .05 260)}.dark{--background:oklch(16% .04 260);--foreground:oklch(96% .01 250)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto)))))}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto)))))}to{height:0}}@keyframes caret-blink{0%,70%,to{opacity:1}20%,50%{opacity:0}}
|
dist/client/assets/terminal-CBmIRH_y.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{c as a}from"./createLucideIcon-CxpWYIt5.js";const e=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}]],d=a("file-code",e);const o=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],l=a("lock",o);const t=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],s=a("sparkles",t);const c=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],h=a("terminal",c);export{d as F,l as L,s as S,h as T};
|
dist/client/assets/triangle-alert-DXh3iSRC.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
import{c as e}from"./createLucideIcon-CxpWYIt5.js";const a=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],o=e("triangle-alert",a);export{o as T};
|
dist/client/assets/tslib.es6-eMSY344_.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
var s=function(){return s=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++){t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},s.apply(this,arguments)};function y(o,e){var t={};for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&e.indexOf(n)<0&&(t[n]=o[n]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,n=Object.getOwnPropertySymbols(o);a<n.length;a++)e.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(o,n[a])&&(t[n[a]]=o[n[a]]);return t}function O(o,e,t,n){function a(r){return r instanceof t?r:new t(function(p){p(r)})}return new(t||(t=Promise))(function(r,p){function i(c){try{u(n.next(c))}catch(f){p(f)}}function l(c){try{u(n.throw(c))}catch(f){p(f)}}function u(c){c.done?r(c.value):a(c.value).then(i,l)}u((n=n.apply(o,e||[])).next())})}function d(o,e,t){if(t||arguments.length===2)for(var n=0,a=e.length,r;n<a;n++)(r||!(n in e))&&(r||(r=Array.prototype.slice.call(e,0,n)),r[n]=e[n]);return o.concat(r||Array.prototype.slice.call(e))}export{O as _,y as a,s as b,d as c};
|
dist/client/assets/utils-BQHNewu7.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
function ye(e){var t,r,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(r=ye(e[t]))&&(o&&(o+=" "),o+=r)}else for(r in e)e[r]&&(o&&(o+=" "),o+=r);return o}function Ne(){for(var e,t,r=0,o="",i=arguments.length;r<i;r++)(e=arguments[r])&&(t=ye(e))&&(o&&(o+=" "),o+=t);return o}const Ee=(e,t)=>{const r=new Array(e.length+t.length);for(let o=0;o<e.length;o++)r[o]=e[o];for(let o=0;o<t.length;o++)r[e.length+o]=t[o];return r},Ve=(e,t)=>({classGroupId:e,validator:t}),ve=(e=new Map,t=null,r)=>({nextPart:e,validators:t,classGroupId:r}),K="-",fe=[],Fe="arbitrary..",We=e=>{const t=Be(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:a=>{if(a.startsWith("[")&&a.endsWith("]"))return _e(a);const b=a.split(K),d=b[0]===""&&b.length>1?1:0;return ze(b,d,t)},getConflictingClassGroupIds:(a,b)=>{if(b){const d=o[a],u=r[a];return d?u?Ee(u,d):d:u||fe}return r[a]||fe}}},ze=(e,t,r)=>{if(e.length-t===0)return r.classGroupId;const i=e[t],m=r.nextPart.get(i);if(m){const u=ze(e,t+1,m);if(u)return u}const a=r.validators;if(a===null)return;const b=t===0?e.join(K):e.slice(t).join(K),d=a.length;for(let u=0;u<d;u++){const h=a[u];if(h.validator(b))return h.classGroupId}},_e=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),r=t.indexOf(":"),o=t.slice(0,r);return o?Fe+o:void 0})(),Be=e=>{const{theme:t,classGroups:r}=e;return $e(r,t)},$e=(e,t)=>{const r=ve();for(const o in e){const i=e[o];ne(i,r,o,t)}return r},ne=(e,t,r,o)=>{const i=e.length;for(let m=0;m<i;m++){const a=e[m];Ue(a,t,r,o)}},Ue=(e,t,r,o)=>{if(typeof e=="string"){De(e,t,r);return}if(typeof e=="function"){Ye(e,t,r,o);return}qe(e,t,r,o)},De=(e,t,r)=>{const o=e===""?t:Ce(t,e);o.classGroupId=r},Ye=(e,t,r,o)=>{if(Xe(e)){ne(e(o),t,r,o);return}t.validators===null&&(t.validators=[]),t.validators.push(Ve(r,e))},qe=(e,t,r,o)=>{const i=Object.entries(e),m=i.length;for(let a=0;a<m;a++){const[b,d]=i[a];ne(d,Ce(t,b),r,o)}},Ce=(e,t)=>{let r=e;const o=t.split(K),i=o.length;for(let m=0;m<i;m++){const a=o[m];let b=r.nextPart.get(a);b||(b=ve(),r.nextPart.set(a,b)),r=b}return r},Xe=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,Je=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,r=Object.create(null),o=Object.create(null);const i=(m,a)=>{r[m]=a,t++,t>e&&(t=0,o=r,r=Object.create(null))};return{get(m){let a=r[m];if(a!==void 0)return a;if((a=o[m])!==void 0)return i(m,a),a},set(m,a){m in r?r[m]=a:i(m,a)}}},se="!",ge=":",He=[],he=(e,t,r,o,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:o,isExternal:i}),Ke=e=>{const{prefix:t,experimentalParseClassName:r}=e;let o=i=>{const m=[];let a=0,b=0,d=0,u;const h=i.length;for(let z=0;z<h;z++){const k=i[z];if(a===0&&b===0){if(k===ge){m.push(i.slice(d,z)),d=z+1;continue}if(k==="/"){u=z;continue}}k==="["?a++:k==="]"?a--:k==="("?b++:k===")"&&b--}const v=m.length===0?i:i.slice(d);let A=v,P=!1;v.endsWith(se)?(A=v.slice(0,-1),P=!0):v.startsWith(se)&&(A=v.slice(1),P=!0);const G=u&&u>d?u-d:void 0;return he(m,P,A,G)};if(t){const i=t+ge,m=o;o=a=>a.startsWith(i)?m(a.slice(i.length)):he(He,!1,a,void 0,!0)}if(r){const i=o;o=m=>r({className:m,parseClassName:i})}return o},Qe=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((r,o)=>{t.set(r,1e6+o)}),r=>{const o=[];let i=[];for(let m=0;m<r.length;m++){const a=r[m],b=a[0]==="[",d=t.has(a);b||d?(i.length>0&&(i.sort(),o.push(...i),i=[]),o.push(a)):i.push(a)}return i.length>0&&(i.sort(),o.push(...i)),o}},Ze=e=>({cache:Je(e.cacheSize),parseClassName:Ke(e),sortModifiers:Qe(e),...We(e)}),eo=/\s+/,oo=(e,t)=>{const{parseClassName:r,getClassGroupId:o,getConflictingClassGroupIds:i,sortModifiers:m}=t,a=[],b=e.trim().split(eo);let d="";for(let u=b.length-1;u>=0;u-=1){const h=b[u],{isExternal:v,modifiers:A,hasImportantModifier:P,baseClassName:G,maybePostfixModifierPosition:z}=r(h);if(v){d=h+(d.length>0?" "+d:d);continue}let k=!!z,T=o(k?G.substring(0,z):G);if(!T){if(!k){d=h+(d.length>0?" "+d:d);continue}if(T=o(G),!T){d=h+(d.length>0?" "+d:d);continue}k=!1}const $=A.length===0?"":A.length===1?A[0]:m(A).join(":"),W=P?$+se:$,E=W+T;if(a.indexOf(E)>-1)continue;a.push(E);const V=i(T,k);for(let O=0;O<V.length;++O){const _=V[O];a.push(W+_)}d=h+(d.length>0?" "+d:d)}return d},ro=(...e)=>{let t=0,r,o,i="";for(;t<e.length;)(r=e[t++])&&(o=Ae(r))&&(i&&(i+=" "),i+=o);return i},Ae=e=>{if(typeof e=="string")return e;let t,r="";for(let o=0;o<e.length;o++)e[o]&&(t=Ae(e[o]))&&(r&&(r+=" "),r+=t);return r},to=(e,...t)=>{let r,o,i,m;const a=d=>{const u=t.reduce((h,v)=>v(h),e());return r=Ze(u),o=r.cache.get,i=r.cache.set,m=b,b(d)},b=d=>{const u=o(d);if(u)return u;const h=oo(d,r);return i(d,h),h};return m=a,(...d)=>m(ro(...d))},so=[],f=e=>{const t=r=>r[e]||so;return t.isThemeGetter=!0,t},Se=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Re=/^\((?:(\w[\w-]*):)?(.+)\)$/i,no=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,ao=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,io=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,lo=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,co=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,mo=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,R=e=>no.test(e),p=e=>!!e&&!Number.isNaN(Number(e)),I=e=>!!e&&Number.isInteger(Number(e)),te=e=>e.endsWith("%")&&p(e.slice(0,-1)),S=e=>ao.test(e),Ie=()=>!0,po=e=>io.test(e)&&!lo.test(e),ae=()=>!1,bo=e=>co.test(e),uo=e=>mo.test(e),fo=e=>!s(e)&&!n(e),go=e=>M(e,Ge,ae),s=e=>Se.test(e),L=e=>M(e,Te,po),we=e=>M(e,Co,p),ho=e=>M(e,je,Ie),wo=e=>M(e,Oe,ae),xe=e=>M(e,Me,ae),xo=e=>M(e,Pe,uo),J=e=>M(e,Le,bo),n=e=>Re.test(e),B=e=>N(e,Te),ko=e=>N(e,Oe),ke=e=>N(e,Me),yo=e=>N(e,Ge),vo=e=>N(e,Pe),H=e=>N(e,Le,!0),zo=e=>N(e,je,!0),M=(e,t,r)=>{const o=Se.exec(e);return o?o[1]?t(o[1]):r(o[2]):!1},N=(e,t,r=!1)=>{const o=Re.exec(e);return o?o[1]?t(o[1]):r:!1},Me=e=>e==="position"||e==="percentage",Pe=e=>e==="image"||e==="url",Ge=e=>e==="length"||e==="size"||e==="bg-size",Te=e=>e==="length",Co=e=>e==="number",Oe=e=>e==="family-name",je=e=>e==="number"||e==="weight",Le=e=>e==="shadow",Ao=()=>{const e=f("color"),t=f("font"),r=f("text"),o=f("font-weight"),i=f("tracking"),m=f("leading"),a=f("breakpoint"),b=f("container"),d=f("spacing"),u=f("radius"),h=f("shadow"),v=f("inset-shadow"),A=f("text-shadow"),P=f("drop-shadow"),G=f("blur"),z=f("perspective"),k=f("aspect"),T=f("ease"),$=f("animate"),W=()=>["auto","avoid","all","avoid-page","page","left","right","column"],E=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],V=()=>[...E(),n,s],O=()=>["auto","hidden","clip","visible","scroll"],_=()=>["auto","contain","none"],l=()=>[n,s,d],y=()=>[R,"full","auto",...l()],ie=()=>[I,"none","subgrid",n,s],le=()=>["auto",{span:["full",I,n,s]},I,n,s],U=()=>[I,"auto",n,s],ce=()=>["auto","min","max","fr",n,s],Q=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],F=()=>["start","end","center","stretch","center-safe","end-safe"],C=()=>["auto",...l()],j=()=>[R,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...l()],Z=()=>[R,"screen","full","dvw","lvw","svw","min","max","fit",...l()],ee=()=>[R,"screen","full","lh","dvh","lvh","svh","min","max","fit",...l()],c=()=>[e,n,s],de=()=>[...E(),ke,xe,{position:[n,s]}],me=()=>["no-repeat",{repeat:["","x","y","space","round"]}],pe=()=>["auto","cover","contain",yo,go,{size:[n,s]}],oe=()=>[te,B,L],w=()=>["","none","full",u,n,s],x=()=>["",p,B,L],D=()=>["solid","dashed","dotted","double"],be=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],g=()=>[p,te,ke,xe],ue=()=>["","none",G,n,s],Y=()=>["none",p,n,s],q=()=>["none",p,n,s],re=()=>[p,n,s],X=()=>[R,"full",...l()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[S],breakpoint:[S],color:[Ie],container:[S],"drop-shadow":[S],ease:["in","out","in-out"],font:[fo],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[S],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[S],shadow:[S],spacing:["px",p],text:[S],"text-shadow":[S],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",R,s,n,k]}],container:["container"],columns:[{columns:[p,s,n,b]}],"break-after":[{"break-after":W()}],"break-before":[{"break-before":W()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:V()}],overflow:[{overflow:O()}],"overflow-x":[{"overflow-x":O()}],"overflow-y":[{"overflow-y":O()}],overscroll:[{overscroll:_()}],"overscroll-x":[{"overscroll-x":_()}],"overscroll-y":[{"overscroll-y":_()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:y()}],"inset-x":[{"inset-x":y()}],"inset-y":[{"inset-y":y()}],start:[{"inset-s":y(),start:y()}],end:[{"inset-e":y(),end:y()}],"inset-bs":[{"inset-bs":y()}],"inset-be":[{"inset-be":y()}],top:[{top:y()}],right:[{right:y()}],bottom:[{bottom:y()}],left:[{left:y()}],visibility:["visible","invisible","collapse"],z:[{z:[I,"auto",n,s]}],basis:[{basis:[R,"full","auto",b,...l()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[p,R,"auto","initial","none",s]}],grow:[{grow:["",p,n,s]}],shrink:[{shrink:["",p,n,s]}],order:[{order:[I,"first","last","none",n,s]}],"grid-cols":[{"grid-cols":ie()}],"col-start-end":[{col:le()}],"col-start":[{"col-start":U()}],"col-end":[{"col-end":U()}],"grid-rows":[{"grid-rows":ie()}],"row-start-end":[{row:le()}],"row-start":[{"row-start":U()}],"row-end":[{"row-end":U()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":ce()}],"auto-rows":[{"auto-rows":ce()}],gap:[{gap:l()}],"gap-x":[{"gap-x":l()}],"gap-y":[{"gap-y":l()}],"justify-content":[{justify:[...Q(),"normal"]}],"justify-items":[{"justify-items":[...F(),"normal"]}],"justify-self":[{"justify-self":["auto",...F()]}],"align-content":[{content:["normal",...Q()]}],"align-items":[{items:[...F(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...F(),{baseline:["","last"]}]}],"place-content":[{"place-content":Q()}],"place-items":[{"place-items":[...F(),"baseline"]}],"place-self":[{"place-self":["auto",...F()]}],p:[{p:l()}],px:[{px:l()}],py:[{py:l()}],ps:[{ps:l()}],pe:[{pe:l()}],pbs:[{pbs:l()}],pbe:[{pbe:l()}],pt:[{pt:l()}],pr:[{pr:l()}],pb:[{pb:l()}],pl:[{pl:l()}],m:[{m:C()}],mx:[{mx:C()}],my:[{my:C()}],ms:[{ms:C()}],me:[{me:C()}],mbs:[{mbs:C()}],mbe:[{mbe:C()}],mt:[{mt:C()}],mr:[{mr:C()}],mb:[{mb:C()}],ml:[{ml:C()}],"space-x":[{"space-x":l()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":l()}],"space-y-reverse":["space-y-reverse"],size:[{size:j()}],"inline-size":[{inline:["auto",...Z()]}],"min-inline-size":[{"min-inline":["auto",...Z()]}],"max-inline-size":[{"max-inline":["none",...Z()]}],"block-size":[{block:["auto",...ee()]}],"min-block-size":[{"min-block":["auto",...ee()]}],"max-block-size":[{"max-block":["none",...ee()]}],w:[{w:[b,"screen",...j()]}],"min-w":[{"min-w":[b,"screen","none",...j()]}],"max-w":[{"max-w":[b,"screen","none","prose",{screen:[a]},...j()]}],h:[{h:["screen","lh",...j()]}],"min-h":[{"min-h":["screen","lh","none",...j()]}],"max-h":[{"max-h":["screen","lh",...j()]}],"font-size":[{text:["base",r,B,L]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[o,zo,ho]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",te,s]}],"font-family":[{font:[ko,wo,t]}],"font-features":[{"font-features":[s]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[i,n,s]}],"line-clamp":[{"line-clamp":[p,"none",n,we]}],leading:[{leading:[m,...l()]}],"list-image":[{"list-image":["none",n,s]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",n,s]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:c()}],"text-color":[{text:c()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...D(),"wavy"]}],"text-decoration-thickness":[{decoration:[p,"from-font","auto",n,L]}],"text-decoration-color":[{decoration:c()}],"underline-offset":[{"underline-offset":[p,"auto",n,s]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:l()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",n,s]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",n,s]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:de()}],"bg-repeat":[{bg:me()}],"bg-size":[{bg:pe()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},I,n,s],radial:["",n,s],conic:[I,n,s]},vo,xo]}],"bg-color":[{bg:c()}],"gradient-from-pos":[{from:oe()}],"gradient-via-pos":[{via:oe()}],"gradient-to-pos":[{to:oe()}],"gradient-from":[{from:c()}],"gradient-via":[{via:c()}],"gradient-to":[{to:c()}],rounded:[{rounded:w()}],"rounded-s":[{"rounded-s":w()}],"rounded-e":[{"rounded-e":w()}],"rounded-t":[{"rounded-t":w()}],"rounded-r":[{"rounded-r":w()}],"rounded-b":[{"rounded-b":w()}],"rounded-l":[{"rounded-l":w()}],"rounded-ss":[{"rounded-ss":w()}],"rounded-se":[{"rounded-se":w()}],"rounded-ee":[{"rounded-ee":w()}],"rounded-es":[{"rounded-es":w()}],"rounded-tl":[{"rounded-tl":w()}],"rounded-tr":[{"rounded-tr":w()}],"rounded-br":[{"rounded-br":w()}],"rounded-bl":[{"rounded-bl":w()}],"border-w":[{border:x()}],"border-w-x":[{"border-x":x()}],"border-w-y":[{"border-y":x()}],"border-w-s":[{"border-s":x()}],"border-w-e":[{"border-e":x()}],"border-w-bs":[{"border-bs":x()}],"border-w-be":[{"border-be":x()}],"border-w-t":[{"border-t":x()}],"border-w-r":[{"border-r":x()}],"border-w-b":[{"border-b":x()}],"border-w-l":[{"border-l":x()}],"divide-x":[{"divide-x":x()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":x()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...D(),"hidden","none"]}],"divide-style":[{divide:[...D(),"hidden","none"]}],"border-color":[{border:c()}],"border-color-x":[{"border-x":c()}],"border-color-y":[{"border-y":c()}],"border-color-s":[{"border-s":c()}],"border-color-e":[{"border-e":c()}],"border-color-bs":[{"border-bs":c()}],"border-color-be":[{"border-be":c()}],"border-color-t":[{"border-t":c()}],"border-color-r":[{"border-r":c()}],"border-color-b":[{"border-b":c()}],"border-color-l":[{"border-l":c()}],"divide-color":[{divide:c()}],"outline-style":[{outline:[...D(),"none","hidden"]}],"outline-offset":[{"outline-offset":[p,n,s]}],"outline-w":[{outline:["",p,B,L]}],"outline-color":[{outline:c()}],shadow:[{shadow:["","none",h,H,J]}],"shadow-color":[{shadow:c()}],"inset-shadow":[{"inset-shadow":["none",v,H,J]}],"inset-shadow-color":[{"inset-shadow":c()}],"ring-w":[{ring:x()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:c()}],"ring-offset-w":[{"ring-offset":[p,L]}],"ring-offset-color":[{"ring-offset":c()}],"inset-ring-w":[{"inset-ring":x()}],"inset-ring-color":[{"inset-ring":c()}],"text-shadow":[{"text-shadow":["none",A,H,J]}],"text-shadow-color":[{"text-shadow":c()}],opacity:[{opacity:[p,n,s]}],"mix-blend":[{"mix-blend":[...be(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":be()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[p]}],"mask-image-linear-from-pos":[{"mask-linear-from":g()}],"mask-image-linear-to-pos":[{"mask-linear-to":g()}],"mask-image-linear-from-color":[{"mask-linear-from":c()}],"mask-image-linear-to-color":[{"mask-linear-to":c()}],"mask-image-t-from-pos":[{"mask-t-from":g()}],"mask-image-t-to-pos":[{"mask-t-to":g()}],"mask-image-t-from-color":[{"mask-t-from":c()}],"mask-image-t-to-color":[{"mask-t-to":c()}],"mask-image-r-from-pos":[{"mask-r-from":g()}],"mask-image-r-to-pos":[{"mask-r-to":g()}],"mask-image-r-from-color":[{"mask-r-from":c()}],"mask-image-r-to-color":[{"mask-r-to":c()}],"mask-image-b-from-pos":[{"mask-b-from":g()}],"mask-image-b-to-pos":[{"mask-b-to":g()}],"mask-image-b-from-color":[{"mask-b-from":c()}],"mask-image-b-to-color":[{"mask-b-to":c()}],"mask-image-l-from-pos":[{"mask-l-from":g()}],"mask-image-l-to-pos":[{"mask-l-to":g()}],"mask-image-l-from-color":[{"mask-l-from":c()}],"mask-image-l-to-color":[{"mask-l-to":c()}],"mask-image-x-from-pos":[{"mask-x-from":g()}],"mask-image-x-to-pos":[{"mask-x-to":g()}],"mask-image-x-from-color":[{"mask-x-from":c()}],"mask-image-x-to-color":[{"mask-x-to":c()}],"mask-image-y-from-pos":[{"mask-y-from":g()}],"mask-image-y-to-pos":[{"mask-y-to":g()}],"mask-image-y-from-color":[{"mask-y-from":c()}],"mask-image-y-to-color":[{"mask-y-to":c()}],"mask-image-radial":[{"mask-radial":[n,s]}],"mask-image-radial-from-pos":[{"mask-radial-from":g()}],"mask-image-radial-to-pos":[{"mask-radial-to":g()}],"mask-image-radial-from-color":[{"mask-radial-from":c()}],"mask-image-radial-to-color":[{"mask-radial-to":c()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":E()}],"mask-image-conic-pos":[{"mask-conic":[p]}],"mask-image-conic-from-pos":[{"mask-conic-from":g()}],"mask-image-conic-to-pos":[{"mask-conic-to":g()}],"mask-image-conic-from-color":[{"mask-conic-from":c()}],"mask-image-conic-to-color":[{"mask-conic-to":c()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:de()}],"mask-repeat":[{mask:me()}],"mask-size":[{mask:pe()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",n,s]}],filter:[{filter:["","none",n,s]}],blur:[{blur:ue()}],brightness:[{brightness:[p,n,s]}],contrast:[{contrast:[p,n,s]}],"drop-shadow":[{"drop-shadow":["","none",P,H,J]}],"drop-shadow-color":[{"drop-shadow":c()}],grayscale:[{grayscale:["",p,n,s]}],"hue-rotate":[{"hue-rotate":[p,n,s]}],invert:[{invert:["",p,n,s]}],saturate:[{saturate:[p,n,s]}],sepia:[{sepia:["",p,n,s]}],"backdrop-filter":[{"backdrop-filter":["","none",n,s]}],"backdrop-blur":[{"backdrop-blur":ue()}],"backdrop-brightness":[{"backdrop-brightness":[p,n,s]}],"backdrop-contrast":[{"backdrop-contrast":[p,n,s]}],"backdrop-grayscale":[{"backdrop-grayscale":["",p,n,s]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[p,n,s]}],"backdrop-invert":[{"backdrop-invert":["",p,n,s]}],"backdrop-opacity":[{"backdrop-opacity":[p,n,s]}],"backdrop-saturate":[{"backdrop-saturate":[p,n,s]}],"backdrop-sepia":[{"backdrop-sepia":["",p,n,s]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":l()}],"border-spacing-x":[{"border-spacing-x":l()}],"border-spacing-y":[{"border-spacing-y":l()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",n,s]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[p,"initial",n,s]}],ease:[{ease:["linear","initial",T,n,s]}],delay:[{delay:[p,n,s]}],animate:[{animate:["none",$,n,s]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[z,n,s]}],"perspective-origin":[{"perspective-origin":V()}],rotate:[{rotate:Y()}],"rotate-x":[{"rotate-x":Y()}],"rotate-y":[{"rotate-y":Y()}],"rotate-z":[{"rotate-z":Y()}],scale:[{scale:q()}],"scale-x":[{"scale-x":q()}],"scale-y":[{"scale-y":q()}],"scale-z":[{"scale-z":q()}],"scale-3d":["scale-3d"],skew:[{skew:re()}],"skew-x":[{"skew-x":re()}],"skew-y":[{"skew-y":re()}],transform:[{transform:[n,s,"","none","gpu","cpu"]}],"transform-origin":[{origin:V()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:X()}],"translate-x":[{"translate-x":X()}],"translate-y":[{"translate-y":X()}],"translate-z":[{"translate-z":X()}],"translate-none":["translate-none"],accent:[{accent:c()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:c()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",n,s]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":l()}],"scroll-mx":[{"scroll-mx":l()}],"scroll-my":[{"scroll-my":l()}],"scroll-ms":[{"scroll-ms":l()}],"scroll-me":[{"scroll-me":l()}],"scroll-mbs":[{"scroll-mbs":l()}],"scroll-mbe":[{"scroll-mbe":l()}],"scroll-mt":[{"scroll-mt":l()}],"scroll-mr":[{"scroll-mr":l()}],"scroll-mb":[{"scroll-mb":l()}],"scroll-ml":[{"scroll-ml":l()}],"scroll-p":[{"scroll-p":l()}],"scroll-px":[{"scroll-px":l()}],"scroll-py":[{"scroll-py":l()}],"scroll-ps":[{"scroll-ps":l()}],"scroll-pe":[{"scroll-pe":l()}],"scroll-pbs":[{"scroll-pbs":l()}],"scroll-pbe":[{"scroll-pbe":l()}],"scroll-pt":[{"scroll-pt":l()}],"scroll-pr":[{"scroll-pr":l()}],"scroll-pb":[{"scroll-pb":l()}],"scroll-pl":[{"scroll-pl":l()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",n,s]}],fill:[{fill:["none",...c()]}],"stroke-w":[{stroke:[p,B,L,we]}],stroke:[{stroke:["none",...c()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},So=to(Ao);function Ro(...e){return So(Ne(e))}export{Ne as a,Ro as c};
|
dist/client/branchdebug-vscode-extension.zip
ADDED
|
Binary file (21.5 kB). View file
|
|
|